img-02

An Introduction to the Common Component Specifications Project


by Andrei Popa

Nowadays, software applications are growing to never-imagined-before proportions, increasing the need for fast and efficient software development cycles. In this respect, software architects must take into consideration not only the existing code (what has been done) and the required code (what will be done), but, also, the future code (what might be done).

Another specification is the OERA specification, short for OpenEdge Reference Architecture, which provides the base template for any business oriented application developed in OpenEdge ABL. This is done by separating the application into 3 layers: Service Interface, Business Logic and Data Access. The Service Interface layer is the common access point for both internal and external callers. It handles different access protocols and ensures that the following layers can provide a general, unitary implementation for any client type. The Business Logic layer, as the name suggests, is solely responsible for the business-oriented logic, separate from any other programming aspects. Lastly, the Data Access layer, is the only layer with direct access to the application’s data sources (databases, files, …).

The advantage of such layered architectures is the separation of concern, reusability of the layers, better testability and the possibility of developing layers concurrently. Despite its many advantages, OERA is quite lacking as it is limited only to the flow of data from the data source to the requesting client, whereas this is just a part of any modern application. In response to the need of a more complete specification the Common Component Specifications Project was started to define the OEAA (OpenEdge Application Architecture), an extension of OERA, which would provide a more complete template for a modern business application.

At the moment, OEAA is still a work in progress but several specifications have already been published:
• Architectural Overview – a general look at what an OEAA application should look like and a preview of what will be released in the future
• Business Entity – constructs upon the foundations laid in OERA to provide a more complete BusinessEntity class
• Service Manager – services have a fundamental role in all modern applications and need to be properly managed to ensure correct and efficient use
• Startup Manager – it is responsible of correctly starting and shutting down the application, with focus on the administration of other managers
• Session Manager – maintains all the required information about the current user’s session

Additionally, there are several other specification proposals.

The whole project can be accessed at CCS

Leave a Reply

Your email address will not be published. Required fields are marked *