Nederlands    Contact    

  Home > Community Toolkit Developers: Documentation

Technical background information EMERGO

EMERGO is a web-application developed in Java: software runs on a server machine, and can be accessed from client machines by using a browser. During testing we used Internet Explore (version 7), but any other internet browser is suitable for this purpose.
Windows Media Player (from version 6 onwards) needs to be available for playing video. If this appears not to be the case, the EMERGO software will automatically detect this and request for its download and installation.

EMERGO uses authorisation based on username / password access to the application.
The EMERGO admin allocates certain roles to each user, depending on the required functionality. As ‘teacher’ or ‘student’ one gets to see the case player (to execute a case run). As a ‘case manager’ one can define runs based on existing cases. A run is a selection of students and teachers who can play a certain case in a certain period.
User activities in runs are saved in the EMERGO-database, grouped by run. Within a certain run, users may see or interfere with each others activities, which is not possible between two runs. Finally, the ‘case developer’ can, if needed with support from other case developers, build cases. A manual for data entry is available, in which the functional possibilities are described, as well as information about including elements to increase user-friendlyness (like screen formats and codes of video and stills of locations).

We currently use Apache Tomcat (version 6.09) as server for the EMERGO application. Other servers are suitable if they comply to Java- and JSP-code.
The database uses MySQL (version 5.1.16), but here other databases are possible as well. For such alternatives, the files that connect the Java-code to the MySQL-database (so called connectors) have to be replaced by a suitable file for the alternative database. Connectors are pieces of software that translate requests for database manipulation to command lines the connector will send to the database server. Furthermore, the XML-file containing the database configuration needs to be adjusted, since this is the file containing the database location, and data about account management.

Java jdk (version 1.6.0_01) is used for developing and compiling code. The development platform used is Eclipse (versions 3.2/3.3) with plugins for the Spring- and Hibernate frameworks

The EMERGO architecture is a Model-View-Controller architecture, which means that the source code has been divided over a model-, a view-, and a controller layer. De model layer implements functional specifications, the view layer contains code for the user-interfaces, and the controller layer supplies the connection between the other two layers. By dividing code in this manner, layers can be replaced without needing all. For instance, various versions of a view layer can be build depending on the way an institution wants to present data to their students.

The layering structure is depicted in some more detail in Figure 1. besides the aforementioned three layers, you will see the database layer which, through an extra persistence layer, is connected to the model layer. The persistence layer can be considered as the connection between the relational data model (in the database) and the object-oriented data model, which is referred to as ORM (Object Relational Modelling).
Data are stored in the database that pertain to the relations between certain functional objects, for instance linking user accounts to case runs. The persistence layer submits these data to the objects, enabling the case run-object to determine if certain users are allowed to play certain cases.

Figure 1 also shows how the layers were implemented technically. The Spring-framework (version 2.02) supplies the MVC implementation, while the ZK-framework (version 2.2) was applied for the user-interface. Spring is a modern, easy to use framework, based on JavaBeans. Java-objects can be easily managed using XML-configuration files within this framework. ZK uses AJAX principles (asynchronous Java and XML). An important advantage of this approach is that the server does no longer need to send a whole webpage to the client after each user activity, but only has to adjust the relevant part of the page. The ZK-framework contains a large number interface components, which can be managed from JSP-code. The framework is still very much under development, with new versions becoming available monthly. For the implementation of the persistence layer, the Hibernate-framework was selected, because Hibernate is used most often and has good performance.

Figure 1: implementation of the layers