Study About Rich Internet Caldav Client Computer Science Essay

Published:

Rich Internet CalDAV (RIC) client is a hassle free time management, rich Internet client application based on CalDAV protocol and JavaFX. CalDAV is a calendaring and scheduling client/server protocol designed to allow users to access calendar data on a server, and to schedule meetings with other users on that server or other servers. JavaFX is a java platform for creating and delivering rich internet and web applications.

RIC client can be used to create events, tasks and schedule appointments. The created events, tasks are stored online. An Internet connection and RIC client are required to connect to any CalDAV server and view the events in the calendar. Day view, week view and month view are the views of this client.

RIC client is an Internet client application, compatible with any CalDAV server and runs across a wide variety of connected devices like desktop, browser and mobile. The compatibility and write once and run anywhere are the key aspects of this application. As this application client runs on applet engine it is easy to integrate the application into the browser. The available rich java library can be easily integrated into the development of JavaFX RIC client application script. JavaFX gives a rich UI look to this web and Internet application

Lady using a tablet
Lady using a tablet

Professional

Essay Writers

Lady Using Tablet

Get your grade
or your money back

using our Essay Writing Service!

Essay Writing Service

The authors are deeply indebted to Professor Dan Harkey and Professor S.K.Reddy for their invaluable comments and assistance in the preparation of this study.

Chapter 1. Project Overview

1.1 Introduction

We cannot remember all the appointments or tasks that need to be completed on time. We depend on calendars to remind the tasks and meetings. Calendars can be physical or electronic. Rich Internet CalDAV client is a device independent application that can run on across many devices like desktop, browser and mobile. Nowadays internet is being used as a medium for any type of event or task. With CalDAV protocol it is possible to connect to any CalDAV server and access the server. People can create events, share their calendars and even synchronize with other calendars.

Calendars are the best tools to use, mark events and get remind of the events. There are many companies that are developing and developed CalDAV servers like Google, Yahoo, Zimbra, Apple and Oracle. All these companies have their respective CalDAV clients. But this application can connect to any CalDAV server like Google, Yahoo, Zimbra, Apple and Oracle.

Rich Internet CalDAV client application can run across many devices like desktop, browser and mobile. User can connect to any CalDAV server and access event information. The features of this application are creating events, setting alarms, sharing calendar with family and friends, hiding specific events from other users, user can stop sharing the calendar from other users, can synchronize all the calendars to view all at once. JavaFx makes the UI of this application very rich. The main UI of the application will be same as other clients. This is purposely done in order not to confuse the users with entirely new UI and users need not learn the entire UI to use the application. The main intention of the application is to synchronize all the different CalDAV calendar accounts on one page. In this way the user need not open different browser windows for different calendar accounts.

1.2 Proposed Areas of Study and Academic Contribution

Proposed Area of Study

Java

Java is a platform independent programming language. It is the most popular object oriented programming language widely used around the world. It is used to develop all types of software applications across all types of electronic devices. The devices like computers, mobile, electronic devices, games etc. It has rich set of libraries, which allows the user to concentrate on high level details of the application. The main business logic of this project is developed using Java. Java is a programming language that can be written once and run everywhere with the help of java virtual machine.

JavaFx

JavaFx is a scripting language for developing rich internet applications. This language is based on Java platform. The language is used to develop applications for devices like Mobile, TV's, desktop, games and browser. It is rich because it has tools like video, audio, animation and libraries that can easily embed into the application and makes front end look richer to the user. In this project the front end of the application in completely developed using JavaFx language. Apart from the front end the rich internet scripting language is also used to develop business logic.

RFC 4791

Lady using a tablet
Lady using a tablet

Comprehensive

Writing Services

Lady Using Tablet

Plagiarism-free
Always on Time

Marked to Standard

Order Now

RFC 4791 is a request for comments document for calendaring extensions for WebDAV. The document provides the information regarding the internet standards for developing CalDAV server. CalDAV is a standard internet protocol for developing calendar servers. The document provides the details for calendaring data model, calendar resources, calendar access feature, calendar collection properties, calendaring access control, calendar reporting method. (Daboo, C., Desruisseaux, B & Dusseault, L, March 2007).

RFC 4918

RFC 4918 is a request for comments document for HHTP extensions for WebDAV. The document provides the information regarding the internet standards for developing WebDAV server. WebDAV facilitates the users to edit and manage the documents stored on a remote server. The document provides the details for data model for resource properties, collections of web resources, locking models and privileges, write lock and its properties and general request and response handling. (Dusseault, L, June 2007).

RFC 5545

RFC 5545 is a request for comments document for Internet Calendaring and Scheduling Core Object Specification. The document provides the details for representing the calendar data such as events, to-do's, journal entries and free or busy information independent of any particular calendar server. (Desruisseaux, B, September, 2009)

RFC 5546

RFC 5546 is a request for comments document for iCalendar Transport-Independent Interoperability Protocol. The document provides the details for providing scheduling interoperability between different calendaring systems. The document helps in publishing, scheduling, rescheduling, responding to scheduling requests and negotiating changes or cancelling the event between any two calendaring systems.(Daboo, C, December, 2009)

RFC 2447

RFC 2447 is a request for comments document for iCalendar Message-Based Interoperability Protocol. The document provides the specifications for binding the iCalendar. The document provides the information regarding the MIME message format binding and its security for the iCalendar object. ( Dawson, F., Mansour, S & Silverberg, S, November, 1998)

Academic Contribution

The courses provided in this degree (M.S in Software Engineering) helped in the completion of the project at various stages. The core courses, specialization and the elective courses collectively form the fundamental base while the concepts learned are the building blocks. The core courses like Software Engineering Management helped in understand the various phases involved in the development lifecycle and apply properly to my project, Software Systems Engineering helped in designing the project visually and Enterprise Software Overview helped in understanding the advantages of following the standards for developing the servers for their survival. The specialization courses Enterprise Distributed Systems and Enterprise Software Components helped in designing the architecture for the specific problems and developed implementation skills. The elective courses JavaFx helped in learning a new language for developing rich internet applications and Software Quality Assurance and testing helped in testing of the project.

1.3 Current State of the Art

In today's busy life everyone has many appointments and tasks to remember and need to complete them on time. Due to the work pressures and project deadlines it is difficult to remember all the tasks and appointments. To solve these problems we use calendars. Calendar is used as a time-management tool. Using calendars is not a new technique. From our great grandfathers age we have been using calendars. As the technology and creativity is increased the look and technology used to develop the calendars has been changing.

There are many web and desktop calendars available in the market. In the laptops, PC's, digital organizer, iPod, iPad and Mobile phones we have calendars. But all these calendars have certain limitations. From the above many of the calendars are standalone applications some has Wi-Fi ability to connect to the internet to look into their web calendars. Apart from the desktop calendars there are web calendars provided by different software companies. The companies like Google, Yahoo, Apple, Hotmail and Oracle etc. provide web calendar. The calendar events are stored in a server. If these servers are developed using a standard protocol many issues will be solved. An issue like interoperability is one among them. To develop calendar servers there is a standard protocol called CalDAV. Google, Yahoo, Apple, Oracle and other companies follow this protocol. While Hotmail uses its proprietary protocol called Exchange ActiveSync Protocol. Adding CalDAV account was a new feature in the IOS3.

Lady using a tablet
Lady using a tablet

This Essay is

a Student's Work

Lady Using Tablet

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Examples of our work

Students, Employees, Teachers, Professors, Mothers, Fathers everyone need to schedule and remember their tasks and appointments. A single person can be a student, employee, mother or father at a time. In this case it will be difficult to remember all the tasks to be done on time. To keep track of all these different tasks sometimes we need different personal calendars. Color coding can help in organizing the calendars. To find a time slot from all the calendars sometimes we need to combine all the calendars to look for a common empty slot. Sometimes the calendars need to be shared between users to find the time slots to schedule an appointment with the person.

Rich Internet CalDAV client application is a calendar application which runs on both desktop and browser. The application is developed using JavaFX. The application provides different views of the calendar like day, month and week. It also provides adding tasks, adding calendar accounts, combining different calendars, sharing and stop sharing the calendar with family, friends and colleagues. The application can connect to any CalDAV server and the users can view all their calendar accounts in one place.

Chapter 2. Project Architecture

2.1 Introduction

The high level technical details of the project are explained in this chapter through an architecture diagram. The project is divided into two components of my application into layers. The application is divided into two layers namely the presentation layer and the business logic layer. The users of the Rich Internet CalDAV client interact with the presentation layer of the application, the business logic layer of the application is developed using Java and JavaFx. The whole client application is built upon certain specific libraries like CalDAV4j, webdav client library and the http client library. These three libraries depend on one another. CalDAV4j is the library developed in Java. Apart from these libraries it also uses two other libraries like ical4j and xercesimpl. The RIC client application with the help of internet and above mentioned libraries can connect to any CalDAV server.

Figure 1. "Rich Internet CalDAV client" Architecture.

2.2 Architecture Subsystems

The architecture for "Rich Internet CalDAV" client application is shown in the above diagram. The various components of the project are organized in tiers are the client, the libraries and the CalDAV server.

Client:

From the above Architecture diagram, the client is a desktop or a web browser that uses the different libraries to interact with the CalDAV server. The user can access the Rich Internet CalDAV client application using desktop or a web browser. The GUI of the application is purely in JavaFx. The application logic layer uses different libraries to interact with the server. The application logic is a combination of Java and JavaFx. The libraries are listed and given a brief introduction in the "Libraries". The application needs to store some data for the users. The data need to store is very minimal and thus can be stored locally on the client machine.

Libraries:

The application requires different libraries like caldav4j, webDAV client and Http client library to interact with the server. Caldav4j is the extension of webDAV client and http client libraries. Caldav4j allows high level manipulation of CalDAV calendar collections as well as lower level CalDAV protocol interactions. The Http client library is the lowest level API which contains the methods like GET, PUT, DELETE and REPORT. Using this API we can have full control over the request sent by using http. WebDAV contains the methods based on HTTP protocol. It allows the users to edit and manage the documents stored on World Wide Web servers. Apart from these libraries the application needs two more libraries ical4j and xercesimpl. Ical4j library is used to parse the event data between client application and the server. Xercesimpl is a high performance XML parser library. The library is used to parse the documents written in XML.

CalDAV Server:

CalDAV servers are developed using a CalDAV protocol. This protocol is a standard for developing calendar servers. The protocol promises to unlock the calendar interoperability issues. Yahoo Calendar, Google Calendar, MobileMe servers are developed using CalDAV protocol. The calendar server protocol provides services like maintenance, queries, event scheduling and security. In any project, data security is the main issue. Users can control their visibility of calendar from other users. They can give and stop permission to view their calendar for other users. With this protocol and existing tools we can schedule cross-organization meetings as good as with-in organizations. CalDAV stores the event data in an icalendar text format.

2.3 Architecture Goals:

Usability:

The GUI of the application should be user friendly, simple and easily understandable.

Security:

The application should ensure data is protected from un-authorized access.

Implementation and Portability:

The application has to be platform independent.

The application will be both web based and desktop application.

Scalability:

The application should be designed to add extra features easily in the future.

Availability:

The application shall be available to the user 24 hours a day 7 days a week.

Reliability:

The application should be highly reliable as it should process all requests with zero percent failure.

Maintainability:

Maintenance overhead should be very low.

Chapter 3. Technology Descriptions

3.1 Introduction

The technologies used for developing this application are JavaFx and Java, apart from these technologies there are other libraries used, like CalDAV4j, iCal4j and xercesimpl libraries. In this chapter a detail description of each technology and libraries is given.

3.2 Presentation Tier

For any application to be pleasing and attractive the presentation of the application plays very important role. In this application JavaFx is used to give a rich fancy look.

JavaFx gives the soothing and calming effect to the customer. As JavaFx runs on multiple platforms it is easy to run on any platform. There are many built in tools available to develop the application. It is easy to make custom nodes and include them in the application. JavaFx is also an object oriented programming; we can fully utilize the OO concepts. As JavaFx runs on applet server engine it is very easy to run in a browser. So this application can be run on any browser, thus it is not a browser specific application. With very little changes the application can also be run on mobile. JavaFx contains tools for animations, videos, audios which make this framework very rich and easy to use. All the components are organized so properly that it is very easy to dig into the code.

3.3 Application Logic Tier

The middle tier or the application logic tier of this application is developed with the combination of both Java and JavaFx. There are java libraries available to connect to any CalDAV server. The information about the libraries is given in the next section. Java has a rich library which allows the developer to concentrate on the higher level design of the application. As JavaFx is also on the top of Java, the Java code can be easily added to the JavaFx. But the reverse is not possible. The Java and JavaFx both gives a good strength to the developer in developing the application logically and presentation wise.

3.4 Libraries

The application requires different libraries like caldav4j, WebDAV client and Http client library to interact with the server. Caldav4j is the extension of WebDAV client and http client libraries. Caldav4j allows high level manipulation of CalDAV calendar collections as well as lower level CalDAV protocol interactions. The Http client library is the lowest level API which contains the methods like GET, PUT, DELETE and REPORT. Using this API we can have full control over the request sent by using http. WebDAV contains the methods based on HTTP protocol. It allows the users to edit and manage the documents stored on World Wide Web servers. Apart from these libraries the application needs two more libraries ical4j and xercesimpl. Ical4j library is used to parse the event data between client application and the server. Xercesimpl is a high performance XML parser library. The library is used to parse the documents written in XML.

Chapter 4. Project Design

4.1 Use Case Diagram

Figure 2. Use case diagram.

Use Case Id: 1

Use Case Title: Create Event

Brief Description: The user adds a CalDAV account to the calendar application

Actors: User, RIC Client application

Use Case Id: 2

Use Case Title: Create Event

Brief Description: The user creates an event in the CalDAV account through the RIC application

Actors: User, RIC Client application

Use Case Id: 3

Use Case Title: Delete Event

Brief Description: The user deletes an event in the CalDAV account through the RIC application

Actors: User, RIC Client application

Use Case Id: 4

Use Case Title: Create New Task

Brief Description: The user creates a new task for a specific date in the calendar.

Actors: User, RIC Client application

Use Case Id: 5

Use Case Title: Delete task

Brief Description: The user deletes a task in the CalDAV account through the RIC application

Actors: User, RIC Client application

Use Case Id: 6

Use Case Title: Club all calendars.

Brief Description: The user can combine all the calendars to see all at a time.

Actors: User, RIC Client application

Use Case Id: 7

Use Case Title: View friend calendar.

Brief Description: The user can view the friends or family member calendar.

Actors: User, RIC Client application

Use Case Id: 8

Use Case Title: Day view

Brief Description: The user can view the calendar by day.

Actors: User, RIC Client application

Use Case Id: 9

Use Case Title: Week view

Brief Description: The user can view the calendar by Week.

Actors: User, RIC Client application

Use Case Id: 10

Use Case Title: Month view

Brief Description: The user can view the calendar by month.

Actors: User, RIC Client application

Use Case Id: 11

Use Case Title: Edit Event

Brief Description: The user can edit an event in the CalDAV account through the RIC application

Actors: User, RIC Client application

Use Case Id: 12

Use Case Title: Edit Task

Brief Description: The user edits task in the CalDAV account through the RIC application

Actors: User, RIC Client application

4.2 Sequence Diagram

Sequence diagram for Adding Calendar account to the application

The above sequence diagram shows the flow of steps for adding a calendar account to

Figure 3. Sequence diagram for adding a CalDAV account

the application. The user selects the "Add Calendar" from the application and enters the server information. When the user clicks "Add" button the information is authenticated and if the information is correct the account is successfully added to the application.

Sequence diagram for adding New Task to the application

Figure 4. Sequence diagram for adding new task.

The above sequence diagram shows creating an event from the application. The user selects "New Appointment" from the application. Enters the meeting information and selects the "Save" button. The appointment is successfully stored in the server.

Sequence diagram for sharing a calendar with friends

Figure 5. Sequence diagram for sharing calendar with friends.

The sequence diagram shows how a user shares his calendar with other users or friends. The user selects the share and enters the friend's calendar name. The user now clicks the "Share" button. The friend user at the other end needs to find the user and subscribe. Now the friend user can view the user's calendar.

Sequence diagram for viewing all the calendars

Figure 6. Sequence diagram for viewing all the calendars.

The above sequence shows the flow of steps for combining all the calendars and viewing on one page. The user selects the "Club Calendar" and selects the calendars to combine. When the user is done selecting the calendars he/she can view all the calendar events on the main calendar in the application UI.

4.3 Class Diagram

Figure 7. Class diagram.

Class diagram description:

The above diagram is a high level class diagram for Rich Internet CalDAV client application. The application has no administrator. The user is the administrator of the application. It has users to interact with the application. The users need to have an account in any CalDAV server. The user can then add an CalDAV account to the application. The user can create, edit and delete tasks and appointments for a specific calendar through the application. The user can set alarms for the tasks and appointments. He/she can syndicate all the calendars to view at once for common empty slots. The user can share his/her calendar and subscribe to the friends calendars.

Chapter 5. Project Implementation

This web and desktop application is implemented using JavaFx and Java. The main components of this application are adding a CalDAV account to the application, adding an event, adding a task and subscribing to the other calendars.

5.1 Adding CalDAV account

In RIC this is one of the main screens to be implemented. Through this user can create the CalDAV accounts in the application. Once user have an account user can create events and tasks through this account in the application. The user need to enter server, username,

Figure 8. Screen shot for adding calendar.

Password, color choice and description for this calendar account and click the save button. The created account is displayed in the Account's pane in the application. By right clicking on the account in the accounts pane user can delete and edit the account. Here is the screen shot of the developed application.

Figure 9. Screen shot showing the added calendar in the accounts pane.

5.2 Adding an event

Once an account is created user can create events through this application. Before entering the event details user needs to select the type of calendar to create the event. Then user need to enter the event details like start date, end date, start time, end time, priority, description and all day details of the event. Once the details are entered the user can save the event by clicking the save button. The created event can be viewed in all the three views of the application i.e., month, week and day. When the user takes the mouse on to the created event, a balloon with event information is displayed with the calendar chosen color. The balloon disappears when the mouse is taken away. On right clicking the event a window appears with the event information. The user can edit and delete the event. The different screen shots are shown below.

Figure 10. Screen shot for adding new event.

5.3 Adding a task

Once an account is created, user can create tasks for that calendar if it supports through this application. Before entering the task details user needs to select the type of calendar to create the task. Then user need to enter the task details like calendar, due date, priority, description and all day details of the event. Once the details are entered the user can save the task by clicking the save button. The created task can be viewed in the task pane of the application i.e., under "To do items list". When the user takes the mouse on to the created task, a balloon with task information is displayed with the calendar chosen color. The balloon disappears when the mouse is taken away. On right clicking the event a window appears with the task information. The user can edit and delete the task. The different screen shots are shown below.

Figure 11. Screen shot for adding new task.

5.4 Subscribing to other Calendars

The user can subscribe to his friends calendar. All the subscribed calendars are shown separately in the accounts of the application. The user can edit and delete the subscribed calendar. When right clicking on the subscribed calendars the user can see the pop up menu. There the user can chose edit or delete menu item. The user can only view the subscribed calendars, cannot edit the calendar event information. The user needs to enter the friend's calendar URL, user's user name, user password, description and color of the calendar.

Figure 12. Screen shot for subscribing to other calendars.

5.5 Displaying the events on different views.

The events can be viewed on the different views of the calendar. On the month view the

user can view only three events for a single day. The user needs to click on the more

Figure 13. Screen shot showing week view.

link to view the events for that day. The link takes to the day view of the date. In the

Figure 14. Screen shot showing day view.

day view the user can see all the events for the selected calendars. In the week view the user can view the events for a particular week. On double clicking the event in any view, a pop up

Figure 15. Screen shot showing month view.

window appears where the user can edit or delete the event info.

Chapter 6. Performance and Benchmarks

6.1 Unit Testing

Unit testing is testing technique where a small piece of code is tested to behave as expected. This technique is very important in any software application. By doing unit testing at each and every step of application development, the testing cost of the application doesn't cost much at the later stages. Usually this testing is performed by a developer. As a developer I performed this testing at regular intervals to ensure that the application behaves as expected.

6.2 Integration Testing

Integration testing is performed to integrate two or more components. To ensure the flow of application as expected this testing is done. This testing is done after successful completion of unit testing. In this application the integration testing is performed between UI and business logic and between business logic and server. Apart from this integration testing the testing also performed between groups of modules. I was able to fix many bugs in this stage which helped in developing the application as expected in behavior.

6.3 System Testing

This testing is performed after unit and integration testing is done. This type of testing is done to evaluate the system's compliance with the application specified requirements. Usually this type of testing comes within the scope of black box testing. Black box testing is performed to test the user interface usability, acceptance testing, performance testing, load testing and security testing. In this application user interface usability, acceptance testing and security testing are done. Many of the bugs are solved in this testing phase.

Chapter 7. Deployment, Operations, Maintenance.

7.1 Deployment

The JavaFx application can be executed and deployed in different ways. There are four different ways the application can be deployed, they are using a Standard Execution Model, Web Start Execution Model, Run in Browser Model and Run in Mobile Emulator Model. In this application Web Start model is used which is fast in performance when compared to other models.

Java Web Start is a mechanism that enables users to start a Java based application directly from a Web browser. The application is deployed to the client and executed outside the scope of the browser. After it is deployed, the application does not need to be downloaded again, it can automatically download updates on startup without requiring the user to repeat the whole installation process. The application can be executed using this model through the IDE. Through IDE it executes locally. The IDE takes care of everything in building the project. In this model a JNLP file have to be created to run the application. The JNLP creation is taken care by IDE. The main advantage of this model is, the application can be distributed over the internet and the application can be run outside the browser.

7.2 Operations

RIC is a very user friendly client application. The main home screen can be viewed by the user once the application is launched on the desktop or browser. Then, the user can add a new CalDAV account to the application and can view the events or tasks in the application and can also add, modify or delete events or tasks from the application.

7.3 Maintenance

The application requires no maintenance specially. But need to be solved if any bugs are found. Since no application is 100% bug free application. As the unit testing is done at regular intervals most of the bugs are fixed still there might be some corner case bugs to be fixed.

Chapter 8. Summary, Conclusions and Recommendations

8.1 Summary

RIC was a challenging learning experience for me. The application requires learning about different CalDAV servers to function the client application properly. In this application reading the RFC documents was a new experience. Java and JavaFx were used in the implementation of this application. The design phase of this project was very challenging. I got a chance to apply all my knowledge that I have gained in my study. Based on the knowledge gained every care is taken in designing the application. All the phases of the project life cycle went very smoothly because of proper timing and schedule. I tried maximum to implement all the features as specified in the requirements.

8.2 Conclusions

In this application JavaFx is used for the UI and Java is used to implement the business logic. JavaFx is a little new and it was a good experience in learning and implementing the application. The development methodology used is the Incremental model and a little bit of SCRUM at challenging and complex modules. In this project, all the phases of an Incremental model and SCRUM model namely project planning, design, coding, integration, testing, and deployment are practiced. This project improved both my written and verbal communication skills.

8.3 Recommendations for Further Research

RIC is a both desktop and web application designed for the CalDAV users. This is an application where all the CalDAV accounts can be viewed at one place. This application can be further extended in developing the features like sending the invitations to the users, recurrence of the events. With simple changes in the UI it can be used as a mobile application.