Table of Contents
In this tutorial, a simple course management system is used as an example system. This system is called CourseManager and will be explained in this chapter.
The CourseManager stores data of lectures, for example the name and the schedules, and people related to these lectures, that are lecturers and students. The students are able to retrieve a list of managed lectures, to enquire their performance in the lectures' exams and to get their overall grading they have achieved in the lecture.
The system is implemented as a client-server architecture. The server stores the data and handles requests from the clients used by the students. Client and server communicate by exchanging XML messages. A client's request may be provided with a checksum to enable a validation of the message. This checksum is sent in the checksum attribute of the root node. Even if this attribute is optional, if it exists, the server validates the checksum and rejects the request in case of a failed validation. In the following, the different messages are explained.
All client requests have a common structure:
Example 2.1. A client request
<request>
<timestamp></timestamp>
<sender></sender>
<type></type>
<parameters/>
</request>
The timestamp element contains the time the
message was build and sent by the client. The sender node
includes information to identify the user of the client, e.g. the id or name of the
student. In requests that do not need this information, e.g. the request to get the
course list, sender should be set to
UNKNOWN . The type element
identifies the type of request. The allowed value is
getCourseList to get the list of managed courses. If the
request needs parameters, they are sent in parameters.