

For
more detailed information, please send an email to:
The Dutch Service
organization
of
Progress Software
developed a Model Driven Architecting tool to be used in concordance
with Progress® OpenEdge® called iMo.
With iMo it is possible to
decrease development-time for applications that are totally compliant with the
OpenEdge
Reference Architecture (OERA). The toolkit is based on OE10.1
meaning that it takes full advantage of the latest techniques
available like prodatasets and Object Orientation (OO). In this
respect iMo is an OpenEdge reference implementation fully based on
Progress Advanced Business Logic (ABL).
The requirements and specifications for iMo were gathered in 2004
and 2005 in projects where the OERA was adopted by Progress
Application Partners who aimed to modernize their application. These
projects are called Application Transformation Approach (or short
ATA projects). In those ATA projects it became clear that the manual
implementation of a n-tier architectures takes a lot of effort. The
definition by hand of the different layers like the Data layer and
Business Logic layer created a serious amount of components that
needed manual maintenance too.
The development of iMo itself started in 2005, as an outcome that a
productivity toolkit was needed to make the BGN RFID case (Selexyz
smartstores) possible. For the consultants involved in the BGN case
it is very clear iMo has been a critical component in the success of
this high visibility SOA project. The project took less than
5 months from design to full implementation (see white paper on this
project).
iMo has been made available for Progress partners.
Currently in the Netherlands the following partners have adopted or
are in the process of adopting iMo: Actuera, CCS, Van Meijel and
Eurosystems. iMo based applications are in production at BGN, OAD
and Interpolis; in Belgium Intris, as application partner, has
adopted iMo and in France the base classes have been used
successfully in a PoC.
iMo facilitates the full proces of Round Trip Engineering. Therefore iMo consists of several components:
1. An architectural model and a full set of design patterns to be used in an UML tool. This set forms the basis for any ‘iMo-based’ application.
2. iMo can generate the skeleton of the application based on a pre-defined UML model of the application. The skeleton already contains a lot of services that are general used in any application as well as the structure of the application, as well server-side (appserver) as client-side (GUI client) The services that are part of the generated application are:
a. Authentication
b. Authorization
c. Context Management
d. Exeption handling
e. Menu Management
f. Messaging
g. Service Management
h. Translation
i. Logging
j. Configuration
k. Notification
l. Batch Scheduling
m. Unit Testing
3. A generated skeleton is used as the basis to add all business logic that is specific to each to be build transaction. The focus of the developer is to create/build this business logic based on the functional specifications.
4. When a developer changes the structure of the application this can be fed back into the UML design by Reverse Engineering of the changes. This way, the UML model is always 1 on 1 in line with the actual code. If in a later stage changes are needed, one can count on the model being an exact representation of reality. So one can use it to add the required changes to the model being sure that the changes are applicable.
5. iMo is setup with the reuse of software as a starting point. While each functionality is created from an OO perspective each functionality is reusable in new to be build software / additional components. This way of working is a big step towards fully componant based development.
6. iMo supports the layers of the OERA in such a way that multiple user interfaces can be used on one set of business logic. The implementation is being created by building per UI a separate cardridge.
7. iMo contains the basic elements for automatic testing.