ARCH-2: OpenEdge Reference Architecture (OERA) Latest Thinking Mike Ormerod Product Manager & Applied Architect
Agenda New Colo(u)rs! Misconceptions ARCH-2: OERA Latest Thinking
OpenEdge® Reference Architecture circa 2003 PROGRESS Users Presentation Layer/s Business Servicing Layers Data Access Layers Managed Data Stores Unmanaged Enterprise Services Integration Layer/s ARCH-2: OERA Latest Thinking
OpenEdge® Reference Architecture 2007 Presentation Enterprise Services Business Components Common Infrastructure Data Access Data Sources ARCH-2: OERA Latest Thinking
Agenda New Colo(u)rs! Misconceptions ARCH-2: OERA Latest Thinking
OERA is just “slide-ware” OERA Misconception #1 OERA is just “slide-ware” >115 Material postings in OpenEdge Principles on PSDN ARCH-2: OERA Latest Thinking
OERA is a prescribed code base OERA Misconception #2 OERA is a prescribed code base OERA isn’t code! OERA is a set of guidelines & definitions ARCH-2: OERA Latest Thinking
There is only 1 implementation OERA Misconception #3 There is only 1 implementation Already 3 variants of Implementations posted on PSDN ARCH-2: OERA Latest Thinking
It’s way too complex and scary! OERA Misconception #4 It’s way too complex and scary! Application Architecture Series on PSDN ARCH-2: OERA Latest Thinking
It’s an all or nothing approach OERA Misconception #4 It’s an all or nothing approach Application Transformation Approach ARCH-2: OERA Latest Thinking
I have to use ProDataSets OERA Misconception #5 I have to use ProDataSets ProDataSets have advantages but not mandatory ARCH-2: OERA Latest Thinking
OERA is an enabler for SOA, not OERA Misconception #6 OERA is only for SOA OERA is an enabler for SOA, not only for SOA ARCH-2: OERA Latest Thinking
Thank you for your time ARCH-2: OERA Latest Thinking
Agenda New Colo(u)rs! Misconceptions New Component Model ARCH-2: OERA Latest Thinking
OpenEdge® Reference Architecture 2007 Presentation Business Components Data Access Data Sources Common Infrastructure Enterprise Services ARCH-2: OERA Latest Thinking
OERA Component Model ARCH-2: OERA Latest Thinking
Thank you for your time ARCH-2: OERA Latest Thinking
Agenda New Colo(u)rs! Misconceptions New Component Model The Devil is in the Detail ARCH-2: OERA Latest Thinking
OpenEdge® Reference Architecture 2007 OpenEdge® Architecture circa 1800 Application Common Infrastructure Enterprise Services Presentation Business Components Data Access Data Sources ARCH-2: OERA Latest Thinking
The Break Up! Can we Talk!! Client Application Server ARCH-2: OERA Latest Thinking
Service Adapter Is Accessed by Has Access to Client Business Component Common Infrastructure Has Access to Service Interface of the Service Provider ARCH-2: OERA Latest Thinking
Service Adapter Role & Responsibilities Manages Access to Service Provider Includes Discovery Isolates client from specific terms of Service Contract ARCH-2: OERA Latest Thinking
Service Interface Is Accessed by Has Access to Service Adapter (Service Requester) Has Access to Business Components Common Infrastructure ARCH-2: OERA Latest Thinking
Service Interface Role & Responsibilities Exposes Methods of Business Components Manages Data Transformation Includes Discovery ARCH-2: OERA Latest Thinking
OERA Component Model Client Server ARCH-2: OERA Latest Thinking
OERA Component Model Client Server ARCH-2: OERA Latest Thinking
Business Components Server Service Interface Business Entity Business Task Business Workflow Business Components Data Access ARCH-2: OERA Latest Thinking
Business Components Service Interface Service Interface Business Entity Business Task Business Workflow ARCH-2: OERA Latest Thinking
Business Workflow Is Accessed by Has Access to Service Interface 1:M Business Workflow 1:M Business Tasks 1:M Business Entities ARCH-2: OERA Latest Thinking
Business Workflow Role & Responsibilities Manages Multi-Step Process Manages State, NOT Transaction Exposes Methods to Service Interface ARCH-2: OERA Latest Thinking
Business Task Is Accessed by Has Access to Service Interface Business Workflow Business Task Has Access to 1:M Business Entities Common Infrastructure ARCH-2: OERA Latest Thinking
Business Task Role & Responsibilities process/transaction Manages process > 1 Business Entity Must complete in a single process/transaction Manages Transactions Exposes Methods to Service Interface ARCH-2: OERA Latest Thinking
Business Entity Is Accessed by Has Access to Service Interface Business Workflow Business Task Has Access to Data Access Object Common Infrastructure ARCH-2: OERA Latest Thinking
Business Entity Role & Responsibilities Encapsulates Business Logic No knowledge of Physical DataSource Exposes Methods to Service Interface Manages Transaction ARCH-2: OERA Latest Thinking
Business Components OERA Component Model Client Server ARCH-2: OERA Latest Thinking
OERA Component Model Client Server Server ARCH-2: OERA Latest Thinking
Data Access Components Server Business Components Data Access Data Access Object Data Source Object ARCH-2: OERA Latest Thinking
Data Access Object Is Accessed by Has Access to Business Entity 1:M Data Source Objects Common Infrastructure ARCH-2: OERA Latest Thinking
Data Access Object Role & Responsibilities Aggregates & Manages 1:M Data Source Objects Manages data flow between Business Component Layer & Data Source Layer Encapsulates logic to complete a Data Instance No Knowledge of Physical Data Source ARCH-2: OERA Latest Thinking
Data Source Object Is Accessed by Has Access to 1:M Data Access Objects Has Access to Data Source Common Infrastructure ARCH-2: OERA Latest Thinking
Data Source Object Role & Responsibilities Access to Data Source Knowledge of Physical Data Source Structure Maps Data Instance to Data Source Encapsulates logic that requires knowledge of physical Data Source Optimistic Concurrency Control Manages Data Source Connection (if required) Handles Compensating Transactions ARCH-2: OERA Latest Thinking
Data Access Components OERA Component Model Data Access Components Client ARCH-2: OERA Latest Thinking
OERA Component Model Client Client ARCH-2: OERA Latest Thinking
Client Business Component Presentation Layer Client Presenter Client Business Component View Service Adapter ARCH-2: OERA Latest Thinking
Client Business Component (Model) Is Accessed by Client Presenter Has Access to Service Adapter Client Common Infrastructure ARCH-2: OERA Latest Thinking
Client Business Component (Model) Role & Responsibilities Client representation of Service Provider Business Component Encapsulates client-side business logic Manages Data Instance ARCH-2: OERA Latest Thinking
Client Presenter Is Accessed by Has Access to Client View Client Business Component Client Common Infrastructure ARCH-2: OERA Latest Thinking
Client Presenter Role & Responsibilities Handles events for Presentation Coordinates presentation components ARCH-2: OERA Latest Thinking
Client View Is Accessed by Has Access to Client Presenter User! Client Common Infrastructure ARCH-2: OERA Latest Thinking
Client View Role & Responsibilities Contains visual components Displays data provided by Client Business Component ARCH-2: OERA Latest Thinking
OERA Component Model ARCH-2: OERA Latest Thinking
OERA Component Model ARCH-2: OERA Latest Thinking
Enterprise Services Service Provider acting as a Service Requester Service Adapter Accessed by Business Components (outbound) Accesses Service Provider Service Interface (inbound) ARCH-2: OERA Latest Thinking
Common Infrastructure OERA Component Model Presentation Business Components Data Access Data Sources Common Infrastructure Enterprise Services ARCH-2: OERA Latest Thinking
For More Information, go to… PSDN http://www.psdn.com OpenEdge Principles http://www.psdn.com/library/kbcategory.jspa?categoryID=230 OpenEdge Principles Forum http://www.psdn.com/library/forum.jspa?forumID=11 ARCH-2: OERA Latest Thinking
Relevant Exchange Sessions ARCH-1: Application Architecture Made Simple ARCH-7: A Class based implementation of the OERA ARCH-11: Building your presentation with classes ARCH-13: Transactions in an SOA World ARCH-14: Power Your Organization with OpenEdge DEV-5: Using ProDataSets in OpenEdge 10 DEV-6: Getting started with OO Programming ARCH-2: OERA Latest Thinking
Questions? ARCH-2: OERA Latest Thinking
Thank you for your time ARCH-2: OERA Latest Thinking
ARCH-2: OERA Latest Thinking