Exchange 2008For more detailed information, please send an email to:

 

info@my.imo.com

 

Who are we ?

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.