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
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
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
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
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