150 likes | 304 Views
iCalendar Compatible Collaborative Calendar-Server (CCS) Web Services. Ahmet Fatih Mustacoglu Indiana University Computer Science Department Community Grids Laboratory amustaco@cs.indiana.edu http://www.cs.indiana.edu/~amustaco May 15, 2006 CTS-2006, Las Vegas, NV, U.S.A. Outline .
E N D
iCalendar Compatible Collaborative Calendar-Server (CCS) Web Services Ahmet Fatih Mustacoglu Indiana University Computer Science Department Community Grids Laboratory amustaco@cs.indiana.edu http://www.cs.indiana.edu/~amustaco May 15, 2006 CTS-2006, Las Vegas, NV, U.S.A.
Outline • Introduction • Internet Calendaring and Scheduling Core Object Specification (iCalendar) • Web Services • Collaborative Calendar-Server • Collaborative Calendar-Server (Why?, How?) • Collaborative Calendar-Server Services Overview • Conclusion
Internet Calendaring and Scheduling Core Object Specification (iCalendar) • A format, specification for calendaring and scheduling applications • http://www.ietf.org/rfc/rfc2445.txt • Intend to advance the interoperability between different calendaring and scheduling applications • Developed by Internet Engineering Task Force Calendaring and Scheduling Working Group, and Internet Engineering Task Force (IETF) web-site: • http://www.ietf.org
Web Services • Provides a distributed computing environment to solve interoperability issues • XML based and easy to extend • Platform and operating system independent • Has support from large community • An effort for seamless communication
Collaborative Calendar-Server • Is a calendar repository for • Private calendars • Collaborative calendars • Implemented based on iCalendar Specification (rfc2445) • http://www.ietf.org/rfc/rfc2445.txt • Provides calendaring and scheduling services via Web Services • Has a bridge module • A way to communicate with other calendaring and scheduling applications via http methods (put, get etc.) • Project web site: • http://www.opengrids.org/wscalendar
Collaborative Calendar-Server Architecture Bridge Module (Java Servlet Technology) Collaborative Calendar-Server Web Services (WSDL) Invokes Associated Web Service Invokes Associated Web Service Http Put/Get methods INTERNET Requests for CCS’s Web Service Requests for CCS’s Web Service GlobalMMCS Portal Client Module Mozilla Calendar Client Clients
Collaborative Calendar Server (Why?) • To provide standard based calendaring services for Global Multimedia Collaboration System (GlobalMMCS) developed by Community Grids Lab at Indiana University. More information at www.globalmmcs.org Current calendaring functionalities includes: • Schedule a meeting into collaborative calendar • Add event into user’s private calendar • Get the collaborative calendar • Get user’s private calendar • To provide services for the requests coming from other calendaring and scheduling applications. The requests can be made: • Via http methods (put, get etc.) • Via client applications by calling one of the CCS Web Services directly
Collaborative Calendar-Server (How?) • Services were implemented using JAVA Language • Other technologies includes • JSP technology is used for User Interface • Apache Axis for Web Services • http://ws.apache.org/axis • iCal4J Library for iCalendar specification from Source Forge • http://ical4j.sourceforge.net • Java Servlet technology for the bridge module
Collaborative Calendar-Server Services • Current users are required to enter their username and passwords in order to access the following Collaborative Calendar-Server Services: • Publish Calendar Service • Subscribe to a Calendar Service • Make an Empty Calendar Service • New Event Service • Schedule a Meeting Service • Get Collaborative Calendar Service • Get Private Calendar Service • Register Service for new users
Collaborative Calendar-Server Services in Detail - I • Publish a Calendar Service • Stores the given calendar on the calendar server’s repository for the specified the user • Parameters: byte[], username, password, calendar name • Subscribe to a Calendar Service • Retrieves the requested calendar from the calendar server • Subscribe to a private calendar • Parameters: username, password, calendar name • Subscribe to a collaborative calendar • Parameters: username, password, group name
Collaborative Calendar-Server Services in Detail - II • Make an Empty Calendar Service • Sets up an empty iCalendar file • Parameters: Username, password, calendar name • New Event Service • Make an event and add it to the user’s specified calendar • Parameters: Username, password, calendar name, event type, public/private event, start date, end date, location, notes
Collaborative Calendar-Server Services in Detail - III • Schedule Meeting Service • Schedules a meeting into the collaborative calendar if there is no conflict with registered users’ schedule • Parameters: Username, password, group name, event type, start time, end time, location, summary • Get Collaborative Calendar Service • Retrieves the collaborative calendar for the group • Parameters: Username, password, group name
Collaborative Calendar-Server Services in Detail - IV • Get Private Calendar Service • Retrieves the user’s private calendar • Parameters: Username, password, calendar name • Register Service • Does the registration operation for the new users • Parameters: Username, password, name, last name, email, group name (s)
Collaborative Calendar-Server Conclusion • Tends to leverage interoperability between different calendaring and scheduling applications • Provides iCalendar specification based calendaring and scheduling services • Services provided via Web Services • Username and password protected access to the calendar and services
THANK YOU! Ahmet Fatih Mustacoglu amustaco@cs.indiana.edu http://www.cs.indiana.edu/~amustaco