# Architectural Model

Here we give an explanation of the way the inner components of the IMS-LD package interact internally between them and externally with some other packages of .LRN Next, a figure about the general architecture about IMS-LD and the ims-ld package is shown.

We have two methods for loading the information into the ims-ld package. One is by means of an internal .LRN editor (as we said this is not planned for the short term). The other method is loading an IMS-LD compliant XML file, as we said before, it can be generated using an authoring tool which is not part of .LRN, at least not when writing this specification. The file is requested to the user by the UI of the parser. This UI will consist of a small number of pages with a form where the user can upload the file and with some others with error or log messages displayed to the user via web. In this step, the IMS-LD package will also validate the IMS-LD file for proving conformance with the IMS-LD standard. It indicates when the parser didn't parse the whole file correctly and it needs human help in order to finish its job. So, the first component of the IMS-LD package that interacts with the database is the parser, using the TCL and SQL API.

At the lowest level we have the information stored in the data base. The information that have been loaded from an IMS-LD file is parsed and stored in the database in the tables related to the level A, B and C that have been shown in the previous Data Model Section. With this mapping we will have all the information contained from the IMS-LD package in the .LRN

Once all the information of the IMS-LD compliant XML file is stored in the database, the course is ready to be played. As we mentioned above, the player has two modes for the professor, on-line and off-line. The first one is the off-line mode, because the course has not being played or instanced yet. In the off-line mode the teacher should associate the students and course admins to their respective roles in the unit of learning. In this step are fulfilled the tables IMS-LD_party_roles_map and IMS-LD_parties_property_values_map. Also the rest of the tables of the run tables are initialized for each user at this time. All the information that is stored in this Run Tables is not contained in the IMS-LD file, this information is particular for each run. At this step the information is particularized for the users of the unit of learning.

Be aware that a professor can have the student role in the unit of learning or vice versa, that is the professor's choice. The roles of the unit of learning are stored in the database, but the mappings between the real users with their respective roles is the professor's task. When doing these mappings, the respective conditions recently obtained from the XML file start to be verified. For instance, there is a max-number-of-persons tag for a role, so the professor can't assign more than n users to that role. There is also a match-person tag, that implies that the person with that role can't have any other role inside the unit of leaning while being assigned to the first role. In this off-line mode, the professor can take a general perspective of the unit of learning. He/she can take a look at all the activities that will be done by the students, as well as the conditions and every information that is important to be shown.

Once the real users are mapped to the roles, the unit of learning can be instantiated. This will start the on-line mode of the viewer.

For the professor, the on-line mode of the viewer lets him/her to see the status of the course(unit of learning). As mentioned in the user requirements chapter, this mode of the viewer lets the professor to do any tracking activity of the students. Such as seeing how many students are in what act of the play, what user-choice activities are being accessed and what aren't, etc. By the time when writing this specification, the professor can't modify anything from the viewer, it is read only information. At the time of run of the unit of learning the Run Tables are refreshed with new completed activities, acts and plays of each user.

For the student, the on-line mode of the viewer is very similar to the one for the professor, with the main difference that with the student can only see his/her own information, whereas the professor can see the information of all the class students. From the viewer the students can see what activities have already completed, as well as how much time between activities they took, and how much time they spent in each activity. In some designs (of the IMS-LD compliant XML file), the student can see the rest of activities that he/she has to complete in order to finish the unit of learning. This is not true in every case, because, for instance, when creating the unit of learning, the professor can set the is-visible tag to false for every activity in the unit of learning, not allowing the students to see any more than what they have already done.

Everything is ready now for the most important component of the IMS-LD package: The Player. Of course, the viewer will be always accessible to the class members, so they can interact with the player and then with the viewer, any time they want and in any sequence.

The player, from the visualization point of view, is nothing more tan a centralized page. This centralized page has some menus and message sections at the sides and at the bottom, with instructions and descriptions that the student has to read. The professor can be part of the unit of learning being played too, the only thing he/she has to do is assign him/herself to a role of the unit of learning.

The player is the component that is in charge of verifying the properties and conditions that were specified in the XML file. It will detect whichever change in the properties, check the completion of activities, acts, etc. and evaluate the conditions. In particular the properties that at least the ims-ld package is going to support are:

- Global user properties. These type of properties are as the nationality, user model, etc.

- Properties selected by the user when navigation through HTML page. The user can select different values and this became properties. Depending on the values selected by the user, he/she can go through different paths in the course. For this option is necessary that the player understand HTML modified with some IMS-LD properties in order to enable this

- Properties that are the result of an evaluation or an assessment. Depending on the values of the evaluation or assessment, he/she can go through different paths in the course.

Every time that for whichever user a resource is served, an activity is started or completed, an assessment is finished, etc, the player must check for every possible condition in order to follow the worklow defined by the unit of learning. The player is also the one in charge of changing the corresponding property values of each resource and to make sure that the workflow of the course is the one the course creator intended.

Moreover, the player is the component that interacts with the .LRN packages mentioned before. It make use of them in order to interact with the users. The information about every resource is stored in the database by the parser, but the actual interaction happens when the player finds out that a given resource has to be instantiated and shown to the user. This is then the intercommunication between .LRN packages takes place. As mentioned before, in order to make this intercommunication as clean as possible, we will make use of the callbacks functionality. Using callbacks is the best way of intercomunicating .LRN packages, because we don't have to rewrite the code and we can verify if two packages are connected. Besides, we can't depend on the packages that are not required by .LRN. In fact, we can't assume that any package is installed, because we don't know how the site wide admin configured the .LRN service. That is something that the player is aware of.

This is a detailed explanation of what .LRN packages and for what resources we will use:

- Forums. To deal with the asynchronous IMS-LD defined services. More specifically, it will deal with the <conference> IMS-LD tag, when conference-type is asynchronous.

- Jabber. To deal with the synchronous IMS-LD services. More specifically, it will deal with the <conference> IMS-LD tag, when conference-type is synchronous.

- Assessment. To deal with activities in which environment has a QTI resource or a reference to an assessment. Therefore, whichever QTI file or a predefined reference to an assessment will be interpreted by the assessment module.

- Evaluation (grade book). We will have an standard way in order to recognize that Evaluation package should be invoked when interpreting an IMS-LD file. This is not mentioned in the IMS-LD specification so it is an adaptation to our LMS system. So we have to establish a new proprietary criterion: A necessary condition for launching the Evaluation package will be that we would have two associated resources together in the same act with a concrete reference to the evaluation package. One resource inside an environment of a learning activity (usually for students) and the other resource for a support activity (usually for a professor). When the agreed href for evaluation arrives, then the IMS-LD package will be launched and the professor will parametrize a new exam, file to submit, homework, etc. with its respective mark load if proceeds. On the other hand the student will be able to upload his/her solution. But another necessary condition will be that there would be in the following act another two associated resources together: one for the professor in order to be able to mark and evaluate his/her work, and other for the students that will receive the results and comments for the professor and should study them. As we can see there are really 4 different resources that could be in 4 different activities.

- Calendar. We will have an standard way in the IMS-LD package in order to recognize that the Calendar package should be invoked. Some activities can require as a resource to see dates or/and notes in a Calendar or to put them in it.

- News. To deal with the announcements. More specifically, it will deal with the <conference> IMS-LD tag, when conference-type is announcement.

- FAQ We will have an standard way in the IMS-LD package in order to recognize that the FAQ package should be invoked. When the package is invoked then a set of FAQ will be presented to the student.

- Notifications. The system will generate notifications in the form of emails for all the users of the learning experience or for particular roles, and also the different applications will communicate in order to advice about some events

- File Storage. The IMS-LD can refer to an existing resource (file or URL) of the File Storage. Although, the more usual case is that if we want to refer to some files, then the files will go inside the IMS-LD package instead of being a reference to the File Storage.

`What specific functions of each package we use will be defined during the development phase.`