Chapter 2. Example: CourseManager

Table of Contents

2.1. Request
2.2. Error Response
2.3. Course List

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.

2.1. Request

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.