Skip to content. | Skip to navigation

 

Document Actions
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
  <!NOTATION BMP PUBLIC "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
  <!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
  <!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
  <!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
  <!NOTATION DITROFF SYSTEM "file:///files/etc/DITROFF">
  <!NOTATION DVI SYSTEM "file:///files/etc/DVI">
  <!NOTATION EPS PUBLIC "+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
  <!NOTATION EQN SYSTEM "file:///files/etc/EQN">
  <!NOTATION FAX PUBLIC "-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
  <!NOTATION GIF SYSTEM "file:///files/etc/GIF">
  <!NOTATION GIF87a PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
  <!NOTATION GIF89a PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
  <!NOTATION JPG SYSTEM "file:///files/etc/JPG">
  <!NOTATION JPEG SYSTEM "file:///files/etc/JPG">
  <!NOTATION IGES PUBLIC "-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
  <!NOTATION PCX PUBLIC "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
  <!NOTATION PIC SYSTEM "file:///files/etc/PIC">
  <!NOTATION PNG SYSTEM "http://www.w3.org/TR/REC-png">
  <!NOTATION PS SYSTEM "file:///files/etc/PS">
  <!NOTATION SGML PUBLIC "ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
  <!NOTATION TBL SYSTEM "file:///files/etc/TBL">
  <!NOTATION TEX PUBLIC "+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
  <!NOTATION TIFF SYSTEM "file:///files/etc/TIFF">
  <!NOTATION WMF PUBLIC "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
  <!NOTATION WPG SYSTEM "file:///files/etc/WPG">
  <!NOTATION SVG SYSTEM "http://www.w3.org/TR/SVG/">
  <!NOTATION linespecific SYSTEM "file:///files/etc/linespecific">
]>
<article lang="en"><title>Model Driven Architecture (MDA):<?d-linebreak?>Integration and Model Reuse for <?d-linebreak?>Open Source eLearning Platforms</title><articleinfo><authorblurb><para role="Verfasser">Heinz Lothar Grob, Frank Bensberg, Blasius Lofi Dewanto</para></authorblurb><authorblurb><para role="Institut">European Research Center for Information Systems (ERCIS)<?d-linebreak?>University of Muenster<?d-linebreak?>Leonardo-Campus 3, D-48149 Muenster, Germany</para></authorblurb><authorblurb><para role="Institut"><ulink url="http://www.wi.uni-muenster.de/aw"><phrase role="Hyperlink">http://www.wi.uni-muenster.de/aw</phrase></ulink></para></authorblurb><authorblurb><para role="Verfasser"><ulink url="mailto:grob@uni-muenster.de"><phrase role="Hyperlink">grob@uni-m<anchor id="_Hlt94690667" />uens<anchor id="_Hlt94690559" />ter.de</phrase></ulink>, <ulink url="mailto:bensberg@uni-muenster.de"><phrase role="Hyperlink">bensbe<anchor id="_Hlt94690525" />rg@uni-muenster.de</phrase></ulink>, <ulink url="mailto:dewanto@uni-muenster.de"><phrase role="Hyperlink">dewanto@uni-muenster.de</phrase></ulink></para></authorblurb><abstract lang="de"><para role="TextAbstract">Die Open Source-Community bietet zahlreiche eLearning-Plattformen an: Learning Management-Systeme (LMS) sowie Learning Content-Systeme (LCS). Allgemeine Open-Source-Mediatoren, wie SourceForge, ObjectWeb, Apache und der eLearning-spezifische Mediator CampusSource ermöglichen eine einfache Suche nach eLearning-Softwareprodukten. Ein Vergleich unterschiedlicher Plattformen in Bezug auf ihre Funktionalitäten ist jedoch aufwändig. Beiträge aus der “eLearning Wikipedia” können kaum als Entscheidungsgrundlage genutzt werden, da sie schnell veraltet sind [<xref linkend="a1" />]. Zudem fehlen derzeit Aktivitäten zur Integration von Open Source-eLearning-Plattformen, die oft über identische Funktionalitäten und Implementierungstechnologien verfügen. Solche Aktivitäten sind allerdings notwendig, da sowohl finanzielle und als auch personelle Ressourcen vieler Projekte stagnieren. Der vorliegende Beitrag skizziert eine mögliche Lösung der aufgezeigten Probleme mit Hilfe des MDA-Ansatzes. Er trägt zur Erkennung gemeinsamer Funktionalitäten bei und ermöglicht eine Integration von eLearning-Plattformen. Die Idee hierzu entstand anlässlich der zweiten CampusSource-Entwicklerkonferenz an der Westfälischen Wilhelms-Universität Münster am (27. August 2004).</para><para role="keywords"><emphasis role="bold">Stichwörter:</emphasis> Model Driven Architecture (MDA), Learning Management System (LMS), Open Source (OS), Open University Support System (OpenUSS).</para></abstract><abstract lang="en"><para role="TextAbstractEN">Open Source (OS) community offers numerous eLearning platforms of both types: Learning Management Systems (LMS) and Learning Content Systems (LCS). General purpose OS intermediaries such as SourceForge, ObjectWeb, Apache or specialized intermediaries like CampusSource reduce the cost to locate such eLearning platforms. Still, it is impossible to directly compare the functionalities of those OS software products without performing detailed testing on each product. Some articles available from eLearning Wikipedia show comparisons between eLearning platforms which can help, but at the end they barely serve as documentation which are becoming out of date quickly [<xref linkend="a1" />]. The absence of integration activities between OS eLearning platforms - which are sometimes quite similar in terms of functionalities and implementation technologies - is sometimes critical since most of the OS projects possess small financial and human resources. This paper shows a possible solution for these barriers of OS eLearning platforms. We propose the Model Driven Architecture (MDA) concept to capture functionalities and to identify similarities between available OS eLearning platforms. This contribution evolved from a fruitful discussion at the 2<superscript>nd</superscript> CampusSource Developer Conference at the University of Muenster (27<superscript>th</superscript> August 2004).</para><para role="keywords"><emphasis role="bold">Keywords:</emphasis> Model Driven Architecture (MDA), Learning Management System (LMS), Open Source (OS), Open University Support System (OpenUSS).</para></abstract><authorgroup><author><firstname>Heinz Lothar</firstname><surname>Grob</surname></author><author><firstname>Frank</firstname><surname>Bensberg</surname></author><author><firstname>Blasius Lofi</firstname><surname>Dewanto</surname></author></authorgroup><biblioid class="uri">urn:nbn:de:0009-5-817</biblioid><keywordset><keyword>Model Driven Architecture (MDA)</keyword><keyword>Learning Management System (LMS)</keyword><keyword>Open Source (OS)</keyword><keyword>Open University Support System (OpenUSS)</keyword></keywordset><subjectset scheme="ddc"><subject>Programming: Philosophy and theory</subject><subject>electronic distance education</subject></subjectset></articleinfo><section><title>1. Introduction</title><para>Various Open Source eLearning platforms<footnote><para> A portfolio of Open Source LMS is provided by the intermediary CampusSource. Further examples are uPortal, CHEF, .LRN, Manhattan Virtual Classroom and Moodle. A good link list of LMS and LCS can be found at: http://www.elearningworkshops.com/-<?d-linebreak?>-modules.php?-name=Web_Links&amp;-l_op=viewlink-&amp;cid=27 [01.09.2004].</para></footnote> available via intermediaries like CampusSource induce a severe economical dilemma: On the one hand, a broad spectrum of different products is available under permissive legal regulations of the OS domain. Consequently, potential adopters do not have to pay license fees or royalties. On the other hand, the OS domain offers poor documentation and integration between platforms, such that the transaction costs to find a product which meets the requirements are exorbitantly high. Practically speaking, the procurement process for an OS eLearning platform starts with installing a set of platforms and evaluating their features product by product.</para><para>A possible solution for this dilemma is the creation of comparative studies, which serve as foundation to compare available eLearning platforms in terms of functionalities and implementation technologies [<xref linkend="a2" />]. Nevertheless, these studies show some severe deficiencies:</para><itemizedlist mark="disc" spacing="normal"><listitem><para>OS software products have rapid development cycles and suffer from the symptom of lacking documentation. At best, the documentation state lies behind the product state. Consequently, comparative studies on eLearning platforms become quickly obsolete.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>Different authors have different views on identical functionalities, such that comparative studies only reflect some specific characteristics. In addition, comparative studies predominantly focus on enumerating static product criteria, which do not show the dynamic abilities to support specific eLearning processes. The creation and utilization of reference models is not common yet [<xref linkend="a3" />].</para></listitem></itemizedlist><para>According to our experience, the majority of Open Source eLearning platforms shows following characteristics:</para><itemizedlist mark="disc" spacing="normal"><listitem><para>Similar functionalities. Almost all LMS have collaborative mechanisms like discussion forums, chat tools and mailing lists. Though, it is difficult to compare these functionalities since product descriptions are based on different terminologies.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>Similar technologies. Most Open Source LMS are based on PHP, just a minority is implemented using Java and J2EE. Some LCS are directly integrated within the LMS itself, thus they use the same technology. Other LCS are completely independent and are mostly implemented with Java.<footnote><para> Javanti and FSL are some examples of OS LCS.</para></footnote></para></listitem></itemizedlist><para>Despite of some standardization activities like Open Knowledge Initiative (OKI) Sharable Content Object Reference Model (SCORM) and IMS Global Learning Consortium, there are no actions discernible, which try to integrate <emphasis>similar</emphasis> and <emphasis>already available </emphasis>eLearning platforms. The result of a fictitious integration process of OS eLearning platforms would be a standardised platform, which covers a generic set of eLearning processes and business objects conforming to a generally accepted reference model. </para><para>The absence of integration is an interesting economical phenomenon, since most OS projects lack of financial and human resources. Certainly, there are some obvious barriers which prevent platform convergence:</para><itemizedlist mark="disc" spacing="normal"><listitem><para>The installed base of eLearning platforms is high, so that it is cost intensive to migrate to a new platform.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>The knowledge on special implementation technologies (e. g. PHP, Java, C, C#, Linux, Windows) is available on the intra-project level. Learning other implementation technologies is costly.</para></listitem></itemizedlist><para>Using Web Services as an integration technology would be inadequate, since Web Services can only be used to make different type of implementation technologies <emphasis>interoperable</emphasis> [<xref linkend="a4" />]. The effort to <emphasis>install</emphasis>, <emphasis>manage</emphasis> and <emphasis>maintain</emphasis> each platform will still remain. In this area Web Services help platforms to become interoperable with others in order to support Service Oriented Architecture (SOA). They can use services offered by other platforms easily [<xref linkend="a5" />]. Figure 1 shows how Web Services establish interoperability between four different OS LMS. Each platform can use functionalities and services offered by other platforms straightforwardly, regardless of different implementation technologies used by each platform. However it is almost unfeasible for an institution to install, manage and maintain four different LMS, implemented with different technologies to cover the needed eLearning infrastructure. In many cases the institution chooses one LMS, depending on the implementation knowledge of its human resources and extends it in case of adding new functionalities by its internal personnel.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="96.5mm" depth="86.6mm" fileref="RedaktionELEED1111569236.22-1.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><inlinemediaobject><imageobject><imagedata width="96.8mm" depth="86.8mm" fileref="RedaktionELEED1111569236.22-2.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 1 - Integration of Open Source LMS by Using Web Services</para><para>The mentioned integration problem is not an excuse to continue with the development of OS eLearning projects just like today. Following is a short summary of the requirements to all OS eLearning platform projects:</para><orderedlist numeration="arabic" spacing="normal" inheritnum="ignore" continuation="restarts"><listitem><para>It must be easily possible to compare functionalities between all Open Source eLearning platforms (LMS and LCS).</para></listitem><listitem><para>The reuse of functionalities between eLearning platforms must be possible.</para></listitem><listitem><para>The co-existence of heterogeneous implementation technologies has to be accepted, since institutions have made technology specific investments.</para></listitem><listitem><para>To administrate and to optimize different platforms with different technologies is cost intensive. Therefore it is preferable to install one platform based on a homogeneous technology.</para></listitem></orderedlist><para>To fulfil these requirements, we propose the use of the <emphasis>Model Driven Architecture</emphasis> (MDA) concept in the domain of Open Source eLearning platforms. The next section gives a short introduction to MDA. Subsequently, section 3 shows a possible solution to the identified requirements using MDA. Afterwards, section 4 will present a real world example of how this concept can be implemented.</para></section><section><title>2. Basics of MDA Concept</title><para>In general, MDA aims to separate business, application or domain logic (<emphasis>Platform Independent Model</emphasis> = PIM) from the underlying implementation technology (<emphasis>Platform Specific Model</emphasis> = PSM and <emphasis>Implementation</emphasis>) [<xref linkend="a6" />][<xref linkend="a7" />][<xref linkend="a8" />][<xref linkend="a9" />][<xref linkend="a10" />][<xref linkend="a11" />]. The separation of PIM, PSM and implementation conforms to the most important rule in information systems development, the <emphasis>separation of concerns</emphasis> [<xref linkend="a12" />][<xref linkend="a13" />]. Additionally, using PIM allows us to abstract from the implementation technology, such that information system development reaches a higher level of abstraction. This augmentation in abstraction is comparable to the evolution of programming languages, from machine language to assembler to procedure and module oriented language and today to object oriented language. </para><para>The idea to separate platform independent and specific models is not new. For instance, the Architecture of Integrated Information Systems (ARIS), which has gained acceptance in Enterprise Resource Planning (ERP) systems, has already proposed the same concept. A major drawback of ARIS concept is the lack of formal transformation mechanisms, which ensure the automatic translation of platform independent models to platform specific models [<xref linkend="a14" />]. In contrast to this, MDA explicitly uses <emphasis>transformation rules</emphasis> to translate models. These mechanisms accomplish transformation from PIM to PSM and to implementation. Figure 2 shows a comparison between ARIS and MDA concept.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="112.7mm" depth="76.1mm" fileref="RedaktionELEED1111569236.22-3.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 2 - Comparison of MDA and ARIS</para><para>For the PIM and/or PSM modeling purpose, the Object Management Group (OMG), creator of MDA, suggests using the Unified Modeling Language (UML) [<xref linkend="a15" />], which originally also comes from this institution. The use of UML is not a must and currently there is increasing interest in development of the so called Domain Specific Language (DSL) [<xref linkend="a16" />].</para><para>To have the ability to define DSL or to use UML for special purposes, the concepts <emphasis>model</emphasis>, <emphasis>metamodel</emphasis> and <emphasis>meta-metamodel</emphasis> play a fundamental role. Also transformation rules in MDA are based upon the same concept [<xref linkend="a7" />]. For this intention OMG defines the so called OMG Meta-Object Facility (MOF) which includes a four layer architecture. Figure 3 presents MOF four-layer architecture with an example.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="87.4mm" depth="92.9mm" fileref="RedaktionELEED1111569236.22-5.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 3 - MOF Four Layer Architecture</para><para>The lowest level M0 shows a real world object of a Student who has the name ”Lofi Dewanto”. To be able to describe the Student object ”Lofi Dewanto”, we need to declare a Student class at the level of M1. This Student class comprises all objects which have similar characteristics. At level M1 we use UML as modeling language. This is the typical approach of modeling and implementing object-oriented information systems today.</para><para>The level M2 describes the metamodel of UML which serves as a tool to check the correctness of the model semantic developed in the level M1. An example of this would be: </para><itemizedlist mark="disc" spacing="normal"><listitem><para>A Class can have an Association only with other Classes.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>A Class can extend another Class (Generalization).</para></listitem></itemizedlist><para>At the level M2 UML metamodel offers a MetaClass ”Class” modeling element to describe the Class at the lower level M1.</para><para>The level M3, the meta-metamodel layer, is the highest layer. UML metamodel from level M2 needs a description and this is where MOF plays its role. In our example, MOF ”Class” describes UML metamodel ”Class”. Since MOF describes itself, it does not require further metamodels.</para><para>MOF has a very small set of constructs to describe other models below the M3 level. The most important constructs are <emphasis>Classes</emphasis>, <emphasis>Associations</emphasis>, <emphasis>DataTypes</emphasis> and <emphasis>Packages</emphasis> [<xref linkend="a17" />]. Using MOF we can define metamodels of any DSL, just like how MOF describes UML metamodel. Therefore it is clear that MDA does not depend on UML as modeling language. It is possible to create your own DSL (metamodels), which will be described by MOF. Thus, MDA is very flexible and powerful.</para><para>One important aspect in MDA is the availability of <emphasis>transformation rules</emphasis> – sometimes also called <emphasis>mappings</emphasis> – which will transform one model into another model or source code. Currently, OMG works on a transformation rules language, the so called QVT (Query/-Views/-Transformations) standard [<xref linkend="a18" />]. Since QVT is not available yet, one can use JMI (Java Metadata Interface) for transformations using Java programming language [<xref linkend="a19" />]. It is also possible to employ XSLT (Extensible Stylesheet Language Transformation), since all models and metamodels are available in the form of XML documents, the so called XMI (XML Metadata Interchange) documents [<xref linkend="a20" />].</para><para>Furthermore, the <emphasis>openness</emphasis> of MDA concept needs to be emphasized. Currently, there are a set of Open Source implementations for MDA tools, which are essential for MDA diffusion within the developer community.<footnote><para> A valuable discussion about this topic can be found at: http://www.theserverside.com/news/thread.tss?thread_id=26853 [01.09.2004].</para></footnote></para></section><section><title>3. MDA for eLearning Domain</title><para>eLearning is considered as a specific information systems domain among others - like eBusiness, eGovernment, eHealth, eFinancial. In these domains, the MDA concept already has proven its value for software engineering [<xref linkend="a21" />]. Also in the domain of eLearning, the MDA concept is not a brand new topic [<xref linkend="a22" />]. Rather the question is whether MDA is able to solve our Open Source integration dilemma in the eLearning domain. Consequently, we have to evaluate the MDA concept against our requirements mentioned in section 1. We start with a scenario, which integrates different OS LMS under the MDA umbrella. Figure 4 shows a diagram of MDA concept with one common PIM mapped to different OS LMS.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="158.8mm" depth="158.2mm" fileref="RedaktionELEED1111569236.22-7.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 4 - Applying MDA to Open Source LMS</para><para>Following is a step-by-step solution to apply MDA to OS LMS:</para><itemizedlist mark="disc" spacing="normal"><listitem><para>Each eLearning platform should add a PIM, the so called <emphasis>LMS specific PIM</emphasis>, into its development cycle. In our example we will have PIMs for OpenUSS, ILIAS, .LRN and Manhattan Virtual Classroom. By having a PIM for each platform, it is easy to compare functionalities between platforms. We propose to use UML as modeling language, because UML is widespread and has a mechanism to let us create our own UML-based DSL by using <emphasis>profile</emphasis> and <emphasis>metamodel extension</emphasis>. Furthermore, UML has a very strong tool support.<footnote><para> A valuable discussion about UML, UML-based DSL, MOF-based DSL vs. proprietary DSL can be found at: http://www.theserverside.com/news/thread.tss?thread_id=30488 [18.01.2005].</para></footnote></para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>After each eLearning platform has its own PIM, they should be systematically compared and refactored. Identical PIMs will be integrated into a <emphasis>Common PIM</emphasis>. The more we can group the existing PIMs into this Common PIM, the more we can reuse them. In a perfect world we would only have one Common PIM at the end – this means that all LMS will have same functionalities and structures. They only differ in implementation technologies.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>In order to transform the Common PIM into the LMS Specific PIM, we use transformation rules. Afterwards we transform the LMS Specific PIM into a PSM and at the end into the implementation platform.</para></listitem></itemizedlist><para>Certainly, the creation of a Common PIM for the domain of eLearning is a visionary goal, because it is impossible to calibrate the functionalities and structure of all the LMS within a short time. Nevertheless, this approach shows some other benefits: </para><itemizedlist mark="disc" spacing="normal"><listitem><para>We will have <emphasis>a reusable Common PIM</emphasis>, which can be used as basis system (”eLearning Engine”). In the long run, we may have only <emphasis>one Common PIM</emphasis> for all LMS and <emphasis>no LMS specific PIM</emphasis>. Consequently, we achieve cost effectiveness (see requirements #2 and #4 in section 1).</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>It is possible to <emphasis>easily compare the functionalities and structures</emphasis>. Also the documentation of the platforms will be synchronised with the systems as the PIM will be directly integrated into the development cycle of the LMS (see requirement #1 in section 1).</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>The actors of the OS projects can still use and maintain their knowledge in specific implementation technologies. Consequently, <emphasis>investments into knowledge and human resources are preserved</emphasis> (see requirement #3 in section 1).</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>To move to another implementation technology we just change the <emphasis>transformation rules</emphasis> and re-implement some parts of the LMS using the new technology.</para></listitem></itemizedlist><para>In order to substantiate the benefits and feasibility of our innovative approach, we provide an example for an OS LMS.</para></section><section><title>4. Example</title><para>To prove the potentials of MDA in the real world, we use Open University Support System (OpenUSS), which is an Open Source LMS based on Java2 Enterprise Edition (J2EE). OpenUSS serves as a simple step-by-step example according to the solution we already presented above [<xref linkend="a23" />][<xref linkend="a24" />][<xref linkend="a25" />].</para><para>As development infrastructure, we use the EJOSA concept. This acronym stands for Enterprise Java Open Source Architecture (EJOSA). EJOSA was invented to achieve the separation of concerns, because the development of OpenUSS was getting very complex (see Figure 5) [<xref linkend="a26" />][<xref linkend="a27" />]. EJOSA also gives some best practices, such as a useful directory structure for the components, separation of layers and also a straight and easy to understand development process in developing multi-tier applications. It also plays a support role for component development within OpenUSS, so that many developers can easily add individual components to OpenUSS [<xref linkend="a28" />][<xref linkend="a29" />] [<xref linkend="a30" />][<xref linkend="a31" />]. Since EJOSA supports MDA, it simplifies refactoring OpenUSS. This conceptual basis is not common for the majority of Open Source eLearning platforms. Most of them were implemented without separation of concerns in mind.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="85.5mm" depth="46.3mm" fileref="RedaktionELEED1111569236.22-9.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 5 - Separation of Concerns: EJOSA as Infrastructure for OpenUSS</para><para>MDA support in EJOSA is realised by using AndroMDA [<xref linkend="a32" />]. This is an Open Source, Java-based tool supporting model driven development. It has an open and pluggable design, such that many of its components can be extended easily. The core concept of AndroMDA is the use of so called <emphasis>cartridges</emphasis>. A cartridge describes the transformation rules from PIM over PSM to implementation code (see Figure 6).</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="91.9mm" depth="93.6mm" fileref="RedaktionELEED1111569236.22-11.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 6 - AndroMDA Concept</para><para>AndroMDA brings some cartridges with it. To scope with the EJOSA structure we extended and customized some of the cartridges. Additionally we implemented some new cartridges, which are important for EJOSA. Table 1 shows the cartridges in EJOSA which can be divided into the <emphasis>specification </emphasis>(Application Programming Interface – API) and different layers of implementation like <emphasis>business</emphasis> layer implementation and <emphasis>presentation</emphasis> layer implementation [<xref linkend="a27" />].</para><table frame="all"><title>Table 1 - AndroMDA-Cartridges for EJOSA</title><tgroup cols="2"><colspec colname="col1" colwidth="176.6pt" colnum="1" /><colspec colname="col2" colwidth="212.7pt" colnum="2" /><tbody><row><entry colname="col1" valign="top" rowsep="1" colsep="1"><para>Type</para></entry><entry colname="col2" valign="top" rowsep="1" colsep="1"><para>Cartridges</para></entry></row><row><entry colname="col1" valign="top" rowsep="1" colsep="1"><para>Model</para></entry><entry colname="col2" valign="top" rowsep="1" colsep="1"><para>Language Transformation</para></entry></row><row><entry colname="col1" valign="top" rowsep="1" colsep="1"><para>Specification (API)</para></entry><entry colname="col2" valign="top" rowsep="1" colsep="1"><para>EJB, Remote, Independent</para></entry></row><row><entry colname="col1" valign="top" rowsep="1" colsep="1"><para>Business (implementation)</para></entry><entry colname="col2" valign="top" rowsep="1" colsep="1"><para>EJB, EJB - Hibernate</para></entry></row><row><entry colname="col1" valign="top" rowsep="1" colsep="1"><para>Presentation (implementation)</para></entry><entry colname="col2" valign="top" rowsep="1" colsep="1"><para>Enhydra - XMLC</para></entry></row></tbody></tgroup></table><para>Following steps are necessary to use AndroMDA as MDA tool:</para><itemizedlist mark="disc" spacing="normal"><listitem><para>The PIM has to be modeled with an UML tool like PoseidonUML Community Edition, which is free to use but not Open Source [<xref linkend="a33" />].</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>The PIM has to be marked with <emphasis>stereotypes</emphasis> and <emphasis>tagged values</emphasis>, depending on the cartridge to be used.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>The PIM is exported into a XMI document, so that AndroMDA can use this XMI document as an input. AndroMDA will create all artefacts (source codes, documents, models) driven by stereotypes.</para></listitem></itemizedlist><itemizedlist mark="disc" spacing="normal"><listitem><para>Compile the PIM to create source codes, other models and other documents. The result depends on the utilized cartridge [<xref linkend="a34" />].</para></listitem></itemizedlist><para>For simplicity we will focus on the Student component described in Figure 7. Following steps are necessary to implement our MDA approach:</para><para><emphasis role="bold">Step 1: Creation of an LMS specific PIM, in this case a PIM for OpenUSS.</emphasis></para><para>Figure 7 shows the PIM for OpenUSS. In this PIM you can see that the Student class extends the Person class. Both have the type of &lt;&lt;Entity&gt;&gt;, which will drive the generation process of AndroMDA.</para><para role="caption"><inlinemediaobject><imageobject><imagedata width="86.8mm" depth="131.6mm" fileref="RedaktionELEED1111569236.22-13.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 7 - PIM for OpenUSS: Student Class</para><para><emphasis role="bold">Step 2: Usage of AndroMDA for code generation. </emphasis></para><para>The code must be the same as the already available code. The AndroMDA cartridge can be customized to get the same code. Code generated by AndroMDA using the <emphasis>ejosa-specification-remote</emphasis> cartridge will look like below. This example is identical with the current code in the OpenUSS specification:</para><para><emphasis role="bold">Person.java:</emphasis></para><para role="Body Text 2">package org.openuss.business.foundation.person;<?d-linebreak?>public interface Person {<?d-linebreak?>    public java.lang.String getId() throws java.rmi.RemoteException;<?d-linebreak?>    public void setId(java.lang.String newValue) throws java.rmi.RemoteException;<?d-linebreak?>    public java.lang.String getFirstName() throws java.rmi.RemoteException;<?d-linebreak?>    …<?d-linebreak?>}</para><para><emphasis role="bold">Student.java:</emphasis></para><para role="Body Text 2">package org.openuss.business.foundation.student;<?d-linebreak?>public interface Student extends org.openuss.business.foundation.person.Person {<?d-linebreak?>    public java.lang.String getPersonalId() throws java.rmi.RemoteException;<?d-linebreak?>    public void setPersonalId(java.lang.String newValue)<?d-linebreak?>        throws java.rmi.RemoteException;<?d-linebreak?>    public java.lang.String getYear() throws java.rmi.RemoteException;<?d-linebreak?>   …<?d-linebreak?>}</para><para>We can now remove the current specification code as we always regenerate them from the PIM for OpenUSS automatically. In the first iteration we can replace the specification (API) with the model. Afterwards we can additionally generate almost all of the <emphasis>business</emphasis> and <emphasis>presentation</emphasis> implementation layer. This process should be done iteratively.</para><para><emphasis role="bold">Step 3: Creation of the Common PIM and refactoring the LMS specific PIM.</emphasis></para><para>After we have all the PIMs for each LMS e.g. PIM for OpenUSS, PIM for ILIAS, PIM for Manhattan Virtual Class Room and PIM for .LRN – in this paper we only show how to create the PIM for OpenUSS (Step 1 – 2 above), for any other platforms the process looks similar – we can discuss to move some of the attributes, methods or classes into its own place. Let’s say that we agree with all LMS on a new class PersonCommonEntity, which has id, lastName and firstName as attributes. </para><para>In the OpenUSS PIM we need to delete all those attributes and change the stereotype of the Person class from &lt;&lt;Entity&gt;&gt; to &lt;&lt;PersonCommonEntity&gt;&gt; (refactoring the PIM for OpenUSS). We also need to customize the cartridge, such that AndroMDA will also take care of the &lt;&lt;PersonCommonEntity&gt;&gt; stereotype. All the classes which have this stereotype will extend automatically from a PersonCommonEntity class.<footnote><para> You also can use inheritance in this case but it is better to use stereotype since we can model PersonCommonEntity from the Common PIM independently from the Person class within the PIM for OpenUSS.</para></footnote></para><para role="caption"><inlinemediaobject><imageobject><imagedata width="91.1mm" depth="97.7mm" fileref="RedaktionELEED1111569236.22-15.png" format="PNG" srccredit="embed" /></imageobject></inlinemediaobject><?d-linebreak?>Figure 8 - Common PIM: PersonCommonEntity and updated PIM for OpenUSS</para><para><emphasis role="bold">Step 4: From now on, forward engineering is carried out, using the ”model” as the ”first class citizen” source.</emphasis></para><para>Changes in PersonCommonEntity will also directly change the implementation of the Person class in OpenUSS since it uses the &lt;&lt;PersonCommonEntity&gt;&gt; stereotype. Following code shows the inheritance relationship between Person and PersonCommonEntity, which will be automatically regenerated from the Common PIM and the PIM for OpenUSS each time those PIMs are modified.</para><para><emphasis role="bold">PersonCommonEntity.java:</emphasis></para><para role="Body Text 2">package org.cs.business.foundation;<?d-linebreak?>public interface PersonCommonEntity {<?d-linebreak?>    public java.lang.String getId() throws java.rmi.RemoteException;<?d-linebreak?>    public void setId(java.lang.String newValue) throws java.rmi.RemoteException;<?d-linebreak?>    public java.lang.String getFirstName() throws java.rmi.RemoteException;<?d-linebreak?>    …<?d-linebreak?>}</para><para><emphasis role="bold">Person.java:</emphasis></para><para role="Body Text 2">package org.openuss.business.foundation.person;<?d-linebreak?>public interface Person extends org.cs.business.foundation.PersonCommonEntity {<?d-linebreak?>    …<?d-linebreak?>}</para></section><section><title>5. Summary</title><para>At the moment it is difficult to compare functionalities of available Open Source eLearning platforms, such that the search costs to find a product which fits the requirements are exorbitantly high. At the same time, the absence of integration activities between Open Source eLearning platforms is critical since most of the Open Source projects exhibit declining financial and human resources.</para><para>Using Web Services for the integration of technologically heterogeneous Open Source eLearning platforms is a pragmatic approach. However, in the long run it is better to pursue the goal of a single Open Source LMS, which is written in one language, so that Open Source developers can contribute on the same product instead of different Open Source products. The problem with this approach is that the choice of programming language depends on many factors. At the moment surely Java is the choice but many developers opt for PHP as a scripting language since it is pure Open Source, it has a big community and almost all system administrators know how to manage it. Also the knowledge already invested in those languages and technologies must not be neglected.</para><para>Our solution based on MDA will help to reuse the models without becoming dependent on specific technologies. The automatic transformation and generation from models also assure the synchronization with the actual implementations and documentations, so that the models are the ”source codes” of development. This enables all developers to reuse reference models, customize and refine models to fulfil their own requirements, and will ensure a high degree of TCO effectiveness [<xref linkend="a35" />]. With the MDA support of OpenUSS through EJOSA, we present the first milestone to create eLearning components based on platform independent models. Visionary speaking, this milestone serves as a foundation for an eLearning engine, which provides basic services and can be reused within a broader spectrum of use cases.</para></section><section><title>6. Acknowledgements</title><para>The authors would like to thank all developers of CampusSource for their fruitful input and discussion on MDA during the 2<superscript>nd</superscript> CampusSource Developer Conference at the University of Muenster (27<superscript>th</superscript> August 2004).</para><para>7. References</para><para>[<anchor id="a1" />1] 	Wikipedia – the free encyclopedia, ”E-Learning,” <ulink url="http://en.wikipedia.org/wiki/E-learning"><phrase role="Hyperlink">http://en.wikipedia.org/wiki/E-learning</phrase></ulink> (current July 2004).</para><para>[<anchor id="a2" />2] 	EduTools, LMS Comparison Articles Website, <ulink url="http://www.edutools.info/course"><phrase role="Hyperlink">http://www.edutools.info/course</phrase></ulink> (current September 2004).</para><para>[<anchor id="a3" />3] 	E. E. Doberkat, et al., Anforderungen an eine eLearning-Plattform – Innovation und Integration, Dortmund, 2002.</para><para>[<anchor id="a4" />4] 	M. Gehrke, M. Meyer, W. Schäfer, ”Eine Rahmenarchitektur für verteilte Lehr- und Lernsysteme,” <ulink url="http://www.campussource.de/projekte/docs/rahmenarchitektur.pdf"><phrase role="Hyperlink">http://www.campussource.de/projekte/docs/rahmenarchitektur.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a5" />5]	G. Vossen, P. Westerkamp, ”E-Learning as a Web Service,” Proceedings of the Seventh International Database Engineering and Applications Symposium (IDEAS’03).</para><para>[<anchor id="a6" />6]	OMG, MDA Website, <ulink url="http://www.omg.org/mda"><phrase role="Hyperlink">http://www.omg.org/mda</phrase></ulink> (current September 2004).</para><para>[<anchor id="a7" />7]	A. Kleppe, J. Warmer, W. Bast, MDA Explained, The Model Driven Architecture: Practice and Promise, Boston 2003.</para><para>[<anchor id="a8" />8]	S. J. Mellor, K. Scott, A. Uhl, D. Weise, MDA Distilled, Principles of Model-Driven Architecture, Boston et al. 2004.</para><para>[<anchor id="a9" />9]	S. J. Mellor, K. Scott, A. Uhl, D. Weise, ”Model-Driven Architecture,” Advances in Object-Oriented Information Systems, OOIS 2002 Workshops, LNCS 2426, Berlin 2002, page 290-297.</para><para>[<anchor id="a10" />10]	D. S. Frankel, Model Driven Architecture, Applying MDA to Enterprise Computing, Indianapolis et al. 2003.</para><para>[<anchor id="a11" />11]	M. Belaunde, et al., ”MDA Guide Version 1.0.1,” <ulink url="http://www.omg.org/docs/omg/03-06-01.pdf"><phrase role="Hyperlink">http://www.omg.org/docs/omg/03-06-01.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a12" />12]	N. Habra, ”Separation of Concerns in Software Engineering Education,” <ulink url="http://researchweb.watson.ibm.com/hyperspace/workshops/icse2001/Papers/habra.pdf"><phrase role="Hyperlink">http://researchweb.watson.ibm.com/hyperspace/workshops/icse2001/Papers/habra.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a13" />13]	E. L. A. Baniassad, G. C. Murphy, C. Schwanninger, ”Determining the ”Why” of Concerns,” <ulink url="http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/baniassad.pdf"><phrase role="Hyperlink">http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/baniassad.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a14" />14]	P. Fettke, P. Loos, ”Model Driven Architecture (MDA),” Wirtschaftsinformatik, 45, 2003, page 555-559.</para><para>[<anchor id="a15" />15]	OMG, UML Website, <ulink url="http://www.omg.org/uml"><phrase role="Hyperlink">http://www.omg.org/uml</phrase></ulink> (current September 2004).</para><para>[<anchor id="a16" />16]	COMPOSE Project, ”An Overview to Domain Specific Language (DSL),” <ulink url="http://compose.labri.fr/documentation/dsl/dsl_overview.php3"><phrase role="Hyperlink">http://compose.labri.fr/documentation/dsl/dsl_overview.php3</phrase></ulink> (current September 2004).</para><para>[<anchor id="a17" />17]	OMG, ”Meta Object Facility (MOF) Specification,” <ulink url="http://www.omg.org/docs/formal/02-04-03.pdf"><phrase role="Hyperlink">http://www.omg.org/docs/formal/02-04-03.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a18" />18]	OMG, ”QVT Request for Proposal and a Revised Submission,”  <ulink url="http://www.omg.org/docs/ad/02-04-10.pdf"><phrase role="Hyperlink">http://www.omg.org/docs/ad/02-04-10.pdf</phrase></ulink> and <ulink url="http://www.omg.org/docs/ad/03-08-08.pdf"><phrase role="Hyperlink">http://www.omg.org/docs/ad/03-08-08.pdf</phrase></ulink> (current July 2004).</para><para>[<anchor id="a19" />19]	Sun Microsystems, JMI Specification Website, <ulink url="http://java.sun.com/products/jmi/index.jsp"><phrase role="Hyperlink">http://java.sun.com/products/jmi/index.jsp</phrase></ulink> (current July 2004).</para><para>[<anchor id="a20" />20]	UMT-QVT, Open Source MDA ToolUsing JMI and XSLT as Transformation for Models Website, <ulink url="http://umt-qvt.sourceforge.net"><phrase role="Hyperlink">http://umt-qvt.sourceforge.net</phrase></ulink> (current July 2004).</para><para>[<anchor id="a21" />21]	OMG, ”Success Stories about MDA,” <ulink url="http://www.omg.org/mda/products_success.htm"><phrase role="Hyperlink">http://www.omg.org/mda/products_success.htm</phrase></ulink> (current July 2004).</para><para>[<anchor id="a22" />22]	H. Wang, D. Zhang, ”MDA-based Development of E-Learning System,” Proceedings of the 27th Annual International Computer Software and Applications Conference (COMPSAC’03).</para><para>[<anchor id="a23" />23]	B. L. Dewanto, ”Learning Java Programming Language with Open Source Products and Technologies,” <ulink url="http://edu.-netbeans.-org-/-support/oss.html"><phrase role="Hyperlink">http://edu.-netbeans.-org-/-support/oss.html</phrase></ulink> (current July 2003).</para><para>[<anchor id="a24" />24]	H. L. Grob, Informationsverarbeitung in der Hochschullehre, Working Paper, Computer Assisted Learning and Computer Assisted Teaching, No. 25, Muenster, 2003.</para><para>[<anchor id="a25" />25]	ObjectWeb, ”JOnAS and Enhydra pass OpenUSS entrance exam,” <ulink url="http://-www.-objectweb--.-org/-wws/d_read/marketing-/-public--/-SS_OpenUSS_2p.pdf"><phrase role="Hyperlink">http://-www.-objectweb--.-org/-wws/d_read/marketing-/-public--/-SS_OpenUSS_2p.pdf</phrase></ulink> (current January 2004).</para><para>[<anchor id="a26" />26]	B. L. Dewanto, ”Enterprise Java Open Source Architecture, User Manual,” <ulink url="http://prdownloads.sourceforge.net/ejosa/ejosa-revo2.2-doc.pdf?download"><phrase role="Hyperlink">http://prdownloads.sourceforge.net/ejosa/ejosa-revo2.2-doc.pdf?download</phrase></ulink> (current January 2005).</para><para>[<anchor id="a27" />27]	B. L. Dewanto, ”The Enterprise Java Open Source Architecture Template - A Beginners' Way to J2EE Application Development - Part I,” <ulink url="http://www.jaxmagazine.com/itr/online_artikel/psecom%2Cid%2C653%2Cnodeid%2C147.html"><phrase role="Hyperlink">http://www.jaxmagazine.com/itr/online_artikel/psecom,id,653,nodeid,147.html</phrase></ulink> (current January 2005).</para><para>[<anchor id="a28" />28]	F. Bensberg and B. L. Dewanto, ”Entwurfsmuster bei der Implementierung von OpenUSS Teil 1: Mustergültig,” JavaMagazin Ausgabe 12, 2001.</para><para>[<anchor id="a29" />29]	F. Bensberg and B. L. Dewanto, ”Entwurfsmuster bei der Implementierung von OpenUSS Teil 2: BLOB: Big and Beautiful,” JavaMagazin Ausgabe 02, 2002.</para><para>[<anchor id="a30" />30]	F. Bensberg and B. L. Dewanto, ”Entwurfsmuster bei der Implementierung von OpenUSS Teil 3: Divide et impera!,” JavaMagazin Ausgabe 06, 2002.</para><para>[<anchor id="a31" />31]	H. L. Grob, F. Bensberg and B. L. Dewanto, ”Developing, Deploying, Using and Evaluating an Open Source Learning Management System,” Journal of Computing and Information Technology (CIT), Vol. 12 (2004), No. 2, pp. 127-134.</para><para>[<anchor id="a32" />32]	AndroMDA, Project Website, <ulink url="http://www.andromda.org"><phrase role="Hyperlink">http://www.andromda.org</phrase></ulink> (current September 2004).</para><para>[<anchor id="a33" />33]	Gentleware, PoseidonUML Community Edition Website, <ulink url="http://www.gentleware.com"><phrase role="Hyperlink">http://www.gentleware.com</phrase></ulink> (current September 2004).</para><para>[<anchor id="a34" />34]	AndroMDA, AndroMDA Documentation - How to Model PIM - Website, <ulink url="http://www.andromda.org/modeling.html"><phrase role="Hyperlink">http://www.andromda.org/modeling.html</phrase></ulink> (current January 2005).</para><para>[<anchor id="a35" />35]	F. Bensberg and B. L. Dewanto, ”TCO VO-FI for eLearning Platforms,” Poster Abstracts of the 25th International Conference on Information Technology Interfaces (ITI 03), SRCE, Zagreb (Croatia), 2003, pp. 9-12.</para></section></article>