ARCH-1: It’s a Tall World After All Taking Application Architecture Seriously John Sadd Progress...
-
Upload
alexandra-mccoy -
Category
Documents
-
view
220 -
download
0
Transcript of ARCH-1: It’s a Tall World After All Taking Application Architecture Seriously John Sadd Progress...
ARCH-1: It’s a Tall World After AllTaking Application Architecture Seriously
John SaddProgress Fellow and OpenEdge Evangelist
Mike OrmerodTechnical Architect and OpenEdge Evangelist
© 2006 Progress Software Corporation2ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge® Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation3ARCH-1: It’s a Tall World After All
It’s not such a small world anymore…
© 2006 Progress Software Corporation4ARCH-1: It’s a Tall World After All
Your current application??
© 2006 Progress Software Corporation5ARCH-1: It’s a Tall World After All
Your current application?
© 2006 Progress Software Corporation6ARCH-1: It’s a Tall World After All
Where you may wind up
© 2006 Progress Software Corporation7ARCH-1: It’s a Tall World After All
This is what you really need to build
© 2006 Progress Software Corporation8ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation9ARCH-1: It’s a Tall World After All
OpenEdge Reference ArchitectureFor Service Oriented Business Applications
Design for longevity, flexibility, and competitive advantage
Accommodates evolving business requirements
Anticipates trends in technology
Provides agile and flexible architecture
PresentationPresentation
Business ServicesBusiness Services
Data AccessData Access
Data SourcesData Sources
Co
mm
on
Infrastru
cture
Co
mm
on
Infrastru
cture
Enterprise ServicesEnterprise Services
© 2006 Progress Software Corporation10ARCH-1: It’s a Tall World After All
OpenEdge Reference Architecture
Data Access manages the physical data storage
Isolates specifics of physical data
Manages data retrieval and update transactions
Must adapt to a variety of data sources
Data SourcesData SourcesDatabaseDatabase DocumentDocument XMLXML
© 2006 Progress Software Corporation11ARCH-1: It’s a Tall World After All
OpenEdge Reference Architecture
Business Services manages logical data definition
Separates logical from physical schemas
Allows business logic and UI to use logical data definition
Larger task and workflow containers for complex operations and services
Business EntityBusiness Entity TaskTask WorkflowWorkflow
© 2006 Progress Software Corporation12ARCH-1: It’s a Tall World After All
OpenEdge Reference Architecture
Business Services also manages standard application services
Service interfaces provide uniform access to core services such as auditing
Also provide hooks to custom application services
Handle communication between client and server
Service InterfaceService Interface
Co
mm
on
Infrastru
cture
Co
mm
on
Infrastru
cture
Au
dit
Au
dit
Secu
rityS
ecurity
Tran
slateT
ranslate
© 2006 Progress Software Corporation13ARCH-1: It’s a Tall World After All
OpenEdge Reference Architecture
Presentation controls the user interface and requests data and other services
Model-View-Controller Pattern separates data from UI
Model is the client side data management View is the user interface definition
Controller mediates between them and provides UI services
© 2006 Progress Software Corporation14ARCH-1: It’s a Tall World After All
OpenEdge Reference Architecture
Enterprise Services manages data input from and output to other applications and services
Web services SonicMQ® Sonic ESB®
© 2006 Progress Software Corporation15ARCH-1: It’s a Tall World After All
OpenEdge® 10Product Platform for SOBA
A complete platform that delivers everything needed by competitive business applications
PresentationPresentation
Business ServicesBusiness Services
Data AccessData Access
Data SourcesData Sources
Co
mm
on
Infrastru
cture
Co
mm
on
Infrastru
cture
Enterprise ServicesEnterprise ServicesClient ProcessingClient Processing
WebClient™
WebSpeed®
OpenClient
WebClient™
WebSpeed®
OpenClient
Integration PlatformIntegration Platform
Adapter for Sonic MQ
Adapter for Sonic
ESB
Adapter for Sonic MQ
Adapter for Sonic
ESB
Application ServersApplication ServersOpenEdge® Application ServerOpenEdge® Application Server
Data Management ServicesData Management ServicesOpenEdge® Database
OpenEdge® DataServer
XML
OpenEdge® Database
OpenEdge® DataServer
XML
© 2006 Progress Software Corporation16ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation17ARCH-1: It’s a Tall World After All
Every day there is…
Someone who wants to do something you used to do• Opportunities for outsourcing services
your application your business partner
your core business
value
© 2006 Progress Software Corporation18ARCH-1: It’s a Tall World After All
Every day there is…
Someone who wants you to do something they used to do• Opportunities for value-added services
your application your business partner
your core business
value
new
value
© 2006 Progress Software Corporation19ARCH-1: It’s a Tall World After All
Every day there is…
Someone who wants to share information that you previously have not dealt with• Opportunities to provide integration points
your application your business partner
new
value
© 2006 Progress Software Corporation20ARCH-1: It’s a Tall World After All
Every day there is…
Someone who wants information that you have not previously shared
• Opportunities to satisfy integration demands
your application your business partner
your core business
value
© 2006 Progress Software Corporation21ARCH-1: It’s a Tall World After All
What is that “agile and flexible” architecture really for?
UPS slogans: “Covering More Ground
Faster Than Ever” “Helping your business
move faster is part of everything we do”
“Your World Synchronized”
Dynamic Supply Chain Management
“What the Guys in Funny Brown Shorts Are Really Doing”
??
© 2006 Progress Software Corporation22ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation23ARCH-1: It’s a Tall World After All
Business Servicing and Data Access Layers
Client
Dataset dsOrder
run fillDataset
in ghdsOrderBE
(input-output
dataset dsOrder
by-reference).
run fillDataset
in ghdsOrderBE
(input-output
dataset dsOrder
by-reference).
Bu
sin
ess
En
tity
Clie
nt P
roxy
Bu
sin
ess
En
tity
Clie
nt P
roxy
Server
Service InterfaceService Interface
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Data Access Object•Define queries
•Attach data sources
•Fill dataset
Data Access Object•Define queries
•Attach data sources
•Fill dataset
DB
From ARCH-12: Designing an OpenEdge Reference Architecture-compliant
3-tier framework based on the ProDataSet – Gunnar Schug
© 2006 Progress Software Corporation24ARCH-1: It’s a Tall World After All
Data Access Layer
Server
Data Access Object•Define queries
•Attach data sources
•Fill dataset
Data Access Object•Define queries
•Attach data sources
•Fill dataset
DB
Transactions
Physical bus. logic
© 2006 Progress Software Corporation25ARCH-1: It’s a Tall World After All
Server-side Business Entity
Server
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Data Access Object•Define queries
•Attach data sources
•Fill dataset
Data Access Object•Define queries
•Attach data sources
•Fill dataset
DB
Logical data definition
Public API
Business Logic
© 2006 Progress Software Corporation26ARCH-1: It’s a Tall World After All
Service Interface
Server
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Business Entity
run fillDataset
in ghdsOrderDAO
(input-output
dataset sOrder
by-reference).
Data Access Object•Define queries
•Attach data sources
•Fill dataset
Data Access Object•Define queries
•Attach data sources
•Fill dataset
DBService InterfaceService Interface
Session Manager
Client requests
© 2006 Progress Software Corporation27ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation28ARCH-1: It’s a Tall World After All
La Fondiaria : RMI Class Diagramcd RMI Class Diagram
Support Classes Server Side
Client Side
rmiSIproxy.p
+ InvokeMethod(ipcMethodNamespace, iptInPar, optOutPar) : char::ttParameters.p+ clearInputParameters() : void+ getOuputParametersByName(ipcParNam) : char+ getOutputParametersByPosition(ipiParPos) : char+ setInputParameters(ipcParName, ipcParValue) : void
rmiSIgateway.p
+ rmiSIgateway.p(ipcInvocationName, ipcMethodNamespace, iptIN_par, iptOUT_par, opcErrorMessage) : void
«persistent»rmiSIserver.p
+ InvokeMethod(ipcMethodNamespace, iptInPar, optOutPar) : char::ttParameters.p+ clearInputParameters() : void+ getOuputParametersByName(ipcParNam) : char+ getOutputParametersByPosition(ipiParPos) : char+ setInputParameters(ipcParName, ipcParValue) : void::ClassCache+ getClassHandle(ipcClassName) : HANDLE+ loadConfiguration() : void+ startClass(ipcClassName) : HANDLE
«generated»clXXX.p
+ mhKKK(iptInPar, optOutPar) : void+ mhYYY(iptInPar, optOutPar) : void+ mhZZZ(iptInPar, optOutPar) : void
«4GL procedure»mhYYY.p
«TEMP-TABLE»ClassHandles
UI
«4GL procedure»mhKKK.p
«4GL procedure»mhZZZ.p
ttIn
column* ParNam: CHAR(15)*PK ParPos: INTEGER ParVal: CHAR(15)
ttOut
column* ParNam: CHAR(15)*PK ParPos: INTEGER ParVal: CHAR(15)
«reusable»ttParameters.p
+ clearInputParameters() : void+ getOuputParametersByName(ipcParNam) : char+ getOutputParametersByPosition(ipiParPos) : char+ setInputParameters(ipcParName, ipcParValue) : void
«reusable»ClassCache
- CurrentNoOfClasses: int- MaxNoOfClasses: int- NumOfClassesToFree: int
+ getClassHandle(ipcClassName) : HANDLE+ loadConfiguration() : void+ startClass(ipcClassName) : HANDLE
La configurazione viene letta da Database o da file di configurazione.
Can Invoke Server-Side methods
«AppServer call»
«call»
1 0..*
«call»
«call»
ADM2 UI
Client Service
Interface
Server Gateway
Invocation Process
Generated
Service Interface
Existing ABL
Procedures
© 2006 Progress Software Corporation29ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Servicing Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation30ARCH-1: It’s a Tall World After All
Selexyz : Process improvement with RFID
Shop check of goods received
Received goods will be matched through RFID with the ASN
Placing books in the shelves by employee
Through shelve plan and RFID, the employee knows where to put the book
Payment of the book
Through RFID tag product and price details will be made available for the POS
CB produces order
RFID Tag is printed and linked to a book + check of the tag
Exit check
RFID tag can be used for payment check
CB shipment of the goods
Advanced Shipping Notice (ASN) with RFID article identification will be send electronically to BGN
BGNCBOrderOrder ShipmentShipment ReceivingReceiving StockStock PaymentPayment SecuritySecurity
From ARCH-8: Implementing the OpenEdge Reference Architecture with OpenEdge 10.1 – Bart Schouw & Eric Debeij
© 2006 Progress Software Corporation31ARCH-1: It’s a Tall World After All
Centraal Boekhuis
BooksTagged & Packaged In
fo
OpenEdge“Nobis”
Back Office Application
OpenEdgeRFID Services
EasyAskNatural
LanguageSearch
ASNProcessing
Sonic Enterprise Service Bus
Sonic Enterprise Service Bus
OpenEdge“Atlas”
Stock Tracking
CaptureTechRFID Gate
BGN Central
CustomerSelf-Service
Kiosk
WebSpeedCustomer Info Portal
Shop Staff Inventory Access
Apama ESPASN
Reconciliation
BGN Store
Advanced Shipping Notice Issued
RFIDTunnelat store
Customer OrdersAwait Pickup
Store Shelves Cash Register
BooksShippedto Store
The Selexyz Retail Supply Chain ~ System Deployment
© 2006 Progress Software Corporation32ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation33ARCH-1: It’s a Tall World After All
AutoEdge Architecture
A2A & B2B CollaborationA2A & B2B Collaboration
B2C
Web SiteWeb Site
WirelessDevicesWirelessDevices
Head Quarter
CRMCRM
Dealer 1
CRMCRM InventoryInventory
Dealer n
CRMCRM InventoryInventory
Car Supplier
InventoryInventory
InformationKiosk
InformationKiosk
Back OfficeApplicationBack OfficeApplication
Enterprise ReportingEnterprise Reporting
© 2006 Progress Software Corporation34ARCH-1: It’s a Tall World After All
OpenEdge GUI Client – Use Cases
© 2006 Progress Software Corporation35ARCH-1: It’s a Tall World After All
OpenEdge GUI Client - Realization
© 2006 Progress Software Corporation36ARCH-1: It’s a Tall World After All
High Level Architecture
Progress
Graphical User Interface
Service Adapter
Server Service Interface
Business Logic
© 2006 Progress Software Corporation37ARCH-1: It’s a Tall World After All
Container MVC Structure Control
• maincontrol.p
Model• mainmodel.p
View• mainview.w
• mainviewxp.w
MVC Application Container
cd mainWindow
mainControlmainView
mainModel
loginControl
This is the application startup class.
© 2006 Progress Software Corporation38ARCH-1: It’s a Tall World After All
Alternative View
© 2006 Progress Software Corporation39ARCH-1: It’s a Tall World After All
Agenda
Why an Architecture? The OpenEdge Reference Architecture Services and the value of your application Business Entity Example Service Interface Example Integration Layer Example Presentation Layer Example Conclusions
© 2006 Progress Software Corporation40ARCH-1: It’s a Tall World After All
In Summary
Consider the importance of a serious architecture for the future of your application
Learn from what we provide, but adapt and extend to your own requirements
Be prepared for the unexpected!
© 2006 Progress Software Corporation41ARCH-1: It’s a Tall World After All
For More Information, go to…
PSDN• http://psdn.progress.com
Relevant Exchange Sessions:• ARCH-13:Designing an OpenEdge
Reference Architecture compliant 3-Tier framework based on the ProDataSet
• ARCH-8:Implementing the OpenEdge Reference Architecture with OpenEdge 10.1
© 2006 Progress Software Corporation42ARCH-1: It’s a Tall World After All
Questions?
© 2006 Progress Software Corporation43ARCH-1: It’s a Tall World After All
Thank you foryour time
© 2006 Progress Software Corporation44ARCH-1: It’s a Tall World After All
© 2006 Progress Software Corporation45ARCH-1: It’s a Tall World After All
Sample: Transition to Demo
© 2006 Progress Software Corporation46ARCH-1: It’s a Tall World After All
Name that article…
Web Enterprise Architecture for Integration Patterns Architects
Web Integration Architecture Patterns for Enterprise Architects
Enterprise Integration for Web Architecture Patterns Architects
Integration Architecture Patterns for Web Enterprise Architects
Architecture Architects for Web Enterprise Integration Patterns
© 2006 Progress Software Corporation47ARCH-1: It’s a Tall World After All
OpenEdge® 10Product Platform for SOBA
Designed for productivity
Architected for service-orientedapplications
Proven capabilities and performance
A complete platform that delivers everything needed by competitive business applications
Client Processing Integration Platform
Application Servers
Data Management Servers
© 2006 Progress Software Corporation48ARCH-1: It’s a Tall World After All
The Service-Oriented Business Application (SOBA)
Integration Layer using the Enterprise Service Bus
CRM Supply Chain Partner
FinancialOrder Entry Inventory
• It is not the whole application that is the service, it is the business functionality within the application
• The application is an aggregation of individual services
• It is not the whole application that is the service, it is the business functionality within the application
• The application is an aggregation of individual services
© 2006 Progress Software Corporation49ARCH-1: It’s a Tall World After All
Client-side Business Entity Proxy and Service Interface
Client
Dataset dsOrder
run fillDataset
in ghdsOrderBE
(input-output
dataset dsOrder
by-reference).
run fillDataset
in ghdsOrderBE
(input-output
dataset dsOrder
by-reference).
Bu
sin
ess
En
tity
Clie
nt P
roxy
Bu
sin
ess
En
tity
Clie
nt P
roxy
Service InterfaceService Interface
Client-side data & logic
Data batching
Requests to server