Technology

What is EJOSA Template?

  • EJOSA Template offers easy to use templates and is a good starting point for your J2EE development based on Enhydra and JOnAS application structure.
  • EJOSA Template provides a collection of Open Source components which are bundled together and already pre-configured, so there is no need to download all the components separately (see ejosa/ext-libs/readme-external-libs.txt for a list of included components). Just unpack the file and you have everything you need to start your J2EE development.
  • EJOSA Template defines an easy to understand structure to be followed by the development of J2EE applications.
  • EJOSA Template does not use IDE, wizards or assistants. This means you need to understand the whole process before you can develop your own J2EE application. On the other hand you have the freedom to choose your own IDE.
  • EJOSA Template can be used to make a prototype fast and easily without having to throw the prototype result for continuing the project. This means projects use EJOSA Template can scale.
  • EJOSA Template combines Model Driven Architecture (MDA) and Sourcecode Centric Development (SCD) model. It allows you to integrate both models in one environment to get the best of both worlds. It is very important to integrate the modelling part of the components directly into the developer's compile, run and test cycle.

These are some aspects from the J2EE-Technology used by the EJOSA-Template model:

             
Presentation interface   Enterprise JavaBean business application   JDBC API   Database management system
Presentation layer Business layer Data layer
             
Remote Methode Invocation protocol   Java Mail API = mail + pop3   Transaction API   JNDI API
Java runtime environment from JDK

EJOSA Template uses best practices from Model Driven Architecture concept from Object Management Group (OMG) which consist following elements:

  • Application of available Reference Models.
  • Application of Product-Line Software Engineering which separate Domain Engineering and Application Engineering.
  • Application of Architecture and Pattern-based Techniques like using Common J2EE design patterns. EJOSA Template only uses some of the J2EE design patterns which are a must and does not try to use all of them. This keeps EJOSA Template simple.
  • Application of Component-based Software Engineering which consists of following techniques:
    • Object-oriented and Extended Object-oriented Programming delivered by general purpose programming languages like using annotations and metadata,
    • Generative Programming like using templates and generators,
    • Programming using Frameworks,
    • Aspect-oriented Programming and
    • Business Rules Programming.
  • Exeperiences taken from development of OpenUSS (http://openuss.sourceforge.net) and other applications.

Use of EJOSA in different information systems

Here is a typical use of EJOSA as your technical infrastructure:



EJOSA can be used to create transactional business applications (OpenUSS, mdaVOFI, etc. please see references). For this purpose it uses AndroMDA general Model-Text/Code cartridges (transformation definitions) which are using following language elements e.g. <<Service>>, <<Entity>> and <<Identifier>>, for building J2EE transactional applications. This is the scope of EJOSA application variants.

Further you can build your own variants by defining your own application scope. An example for this purpose is the product family mdaVOFI which may consist many of VOFI variants (end products). These variants serve as the scope of mdaVOFI. In mdaVOFI you also have a VOFI language which is using following language elements e.g. <<VoofiVofi>>, <<VoofiPeriod>> and <<VoofiPayment>>. To be able to have an executable code you need to transform the VOFI language into a general transactional business application language based on the language elements described by AndroMDA (see above). To implement this, EJOSA uses Model-Model cartriges (transformation defiinitions) which is based on MTL and/or ATL.