Try OpenEdge Now
skip to main content
Guide for New Developers
Understanding OpenEdge Reference Architecture : OpenEdge Reference Architecture design principles and its usage : Recommended order for an OERA design

Recommended order for an OERA design

As an architect or developer, you must determine how much of your application will follow the OERA design principles recommended by Progress Software. Start by first gathering the application requirements. If there are existing parts of the application, determine if you will retrofit them to conform to OERA. In order to partition your application into usable Business Components, document the use cases of the application.
Ideally, you would want the use cases to drive the Business Component design, and use ABL’s strengths in supporting business logic and data access to help with the design and implementation.
Follow the recommended order provided below for an application design that uses OERA layers.
1. Determine the types of data each use case requires. These types of data can be used to begin the definition of your ABL DataSets.
2. Determine the sources of your data for each ABL DataSet to define the data source layer.
3. Define the business entities, business tasks, and business work flows to support the use cases. Each business entity has its own data access layer implementation. Define the functionality required for each business component. Define the key services or entry points each business component will provide.
4. Define the service interface(s) for every business component’s service or entry point. Understand who the requesters will be as that will affect the types for the parameters used. Add discovery, authorization, and authentication to the logic of the service interface, as required.
5. Define service adapters based on the service interfaces. You have to understand which types of clients will access the business components. Ensure that the service adapters are written to locate the service they are interested in.
6. Define the client business entities used by the model for the user interface.
7. Define the model, view, and presenter components for the user interface.