Implementing the OpenEdge Reference Architecture: 1 Introduction - Wiki - OpenEdge Architecture - Progress Community

Implementing the OpenEdge Reference Architecture: 1 Introduction

Implementing the OpenEdge Reference Architecture: 1 Introduction

OERA_v4_notop (420).jpg

The OpenEdge® Reference Architecture (OERA) is a recommended approach to designing business applications in OpenEdge 10. It defines an application as a set of layers, with the goal of guiding architects and developers in the proper separation of different aspects of the application, so that business logic and support logic are as general-purpose, as flexible, and as reusable as possible.

This introductory white paper launches a set of materials, white papers, templates, and code samples, that illustrate one approach to implementing the OpenEdge Reference Architecture. Progress is providing these so that the application architect can review the OpenEdge RA concepts, see a concrete example of their implementation, and begin considering how to apply them to their own projects.


  • Where can I find the sample code ?

  • Hi RuudThe code that goes along with this series of papers can be found here will also find more example code and documentation in the AutoEdge sample application which can be found here : you're interested in looking at a class based implementation then you can start with this with the code samples here :

  • But, you should also scour the forums for discussion of this code.  It is not intended to be a model for a production system.

  • It's as described on the Tin, sample code

  • Yes, but you know perfectly well that people have a tendency to read sample code that comes from PSC and look at it uncritically ... "if it comes from PSC, it must be the right way to do things, mustn't it".  You and I know it wasn't intended that way.  Even the much more thoroughly worked over AutoEdge code wasn't intended as a model for production code, but rather just to get people talking and thinking. Based on experience, I think this stuff needs to come with big red warning labels.

  • Like this one you mean, taken straight from the document above: "It’s important to emphasize that the templates and support procedure that make up the example code are not in any way intended to be a complete solution to the challenges of creating an application based on the OpenEdge RA. You should not expect to take these procedures and simply use them as is, or extendand adapt them for your own needs without fully understanding what they illustrate. The code and the papers together are meant to get you thinking about how to use the many features of OpenEdge 10 and the concepts of OpenEdge RA to construct an application that is flexible, powerful, and built to adapt to changing requirements."

  • Print it in red and put in in 36pt type on the cover and people will still overlook it.  Given the psychology cited, i.e., it comes from PSC so it must be Right, people are likely to take this as a standard disclaimer that doesn't really mean anything.  It is like that standard disclaimer slide we get at Exchange sessions ... we all know perfectly well by now that if it wasn't a real solid plan well under way, it wouldn't be being discussed, so the disclaimer slide isn't taken seriously ... except maybe in the interactive sessions where the speakers are clearly saying "this is on our list, but not committed to a specific release yet". and the like.

  • If one were to grant PSC the "warning label", where's the examples that show people how to do it "right"? Perhaps if there was some information out there one wouldn't need to worry about developers taking these 'discussion programs' too seriously.

  • There are, of course, some good examples out there ... presumably including your own published utilities ... but nothing that comes from a third party is going to have the same impact because it lacks the imprimatur.

  • Nice disdcussion on my short question.Then let me refrase:Is there any sample code that reflects a "good" implementation of the OERA that you can use in a production system ?

  • Now, you have asked a hard question.  In many ways, I think the answer is, not really.  Part of the problem is that there isn't a lot of consensus about what "good" is.  You might want to check out my PUG Challenge presentation at While its focus is specifically OOABL, there is an implicit OERA focus behind the discussion.  There is more coming in this series, but I am busy at the moment working on the benchmarks in response to the OO and Performance thread on the OO forum.  That discussion and the one on Model-Set-Entity in the same forum should give you something to think about.