arch-7: integrate this! sonicmq® and the openedge® reference architecture christian stiller...
DESCRIPTION
© 2006 Progress Software Corporation3 ARCH-7: Integrate this! SonicMQ and the OpenEdge RA OpenEdge Reference Architecture Presentation Business Services Data Access Data Sources Common Infrastructure Enterprise ServicesTRANSCRIPT
ARCH-7: Integrate this!
SonicMQ® and the OpenEdge® Reference Architecture
Christian StillerTechnical Architect
© 2006 Progress Software Corporation2ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Agenda
Review OpenEdge Reference Architecture Review SonicMQ implementation Adding Sonic to the Reference Architecture
• Sending messages• Receiving messages
Alternative approaches
© 2006 Progress Software Corporation3ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
OpenEdge Reference Architecture
Presentation
Business Services
Data Access
Data Sources
Com
mon Infrastructure
Enterprise Services
© 2006 Progress Software Corporation4ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Starting point to implement Reference Architecture
Business Entities
Service Interface• Dynamic interface• Uses ProDatasets
OpenEdge Reference Implementation
© 2006 Progress Software Corporation5ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
fetchWhere• Retrieves Dataset with customer records• Optional filter
saveChanges• Uses Dataset to pass in creates, updates and
deletes on customer records
validateCustomer• Validation logic using error flags on Dataset
Sample Customer Business Entity
© 2006 Progress Software Corporation6ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code in OpenEdge Architect
Sample Customer Business Entity
© 2006 Progress Software Corporation7ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Dynamic Service Interface• Single point of entry into system• Same signature for all exposed methods
– Using Datasets
Core services• Session• Context• Security• Service Registry
Sample Service Interface
© 2006 Progress Software Corporation8ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code in OpenEdge Architect
Sample Service Interface
© 2006 Progress Software Corporation9ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Sending messages• Extend Business Entity• Send out Sonic message when records are
changed
Receiving messages• Receive messages with changes• Call existing business entity to validate and
apply changes
Goals
© 2006 Progress Software Corporation10ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Agenda
Review OpenEdge Reference Architecture Review SonicMQ implementation Adding Sonic to the Reference Architecture
• Sending messages• Receiving messages
Alternative approaches
© 2006 Progress Software Corporation11ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Run jmssession persistent Initialize connection to Sonic Create message object Set message body Set message properties Send message
• Send to queue• Publish to topic
Sending messages from the ABL
© 2006 Progress Software Corporation12ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code in OpenEdge Architect
Sending messages from the ABL
© 2006 Progress Software Corporation13ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Run jmssession persistent Initialize connection to Sonic Receive Messages
• Subscribe to Topics• Receive from Queues
Process Messages• Receive Body• Receive Properties• Pass to Business Entity for processing
Receiving messages to the ABL
© 2006 Progress Software Corporation14ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code in OpenEdge Architect
Receiving messages to the ABL
© 2006 Progress Software Corporation15ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Agenda
Review OpenEdge Reference Architecture Review SonicMQ implementation Adding Sonic to the Reference Architecture
• Sending messages• Receiving messages
Alternative approaches
© 2006 Progress Software Corporation16ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Sending messages
saveChanges in beCustomer.p• Send message with new customer data• Send message with changed customer data• Send message with customer deletes
Message• Includes XML with customer data• Includes property to indicate add/change or
delete• Includes properties to find Business Entity
© 2006 Progress Software Corporation17ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show XML message in OpenEdge Architect
Sample Message
© 2006 Progress Software Corporation18ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
saveChanges and sending messages
Need separate send for updates/adds vs deletes• Dataset handling of deletes
Adds / updates• Need to after the Data Access layer
Deletes• Need to happen before the Data Access layer• Need to look at before table
© 2006 Progress Software Corporation19ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code example for saveChanges in OpenEdge Architect
saveChanges and sending messages
© 2006 Progress Software Corporation20ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Recieving messages
Need some process to receive messages from queue
Prepare dataset with proper Before/After information
Call saveChanges in beCustomer.p
© 2006 Progress Software Corporation21ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
saveChanges and recieving messages
Need separate send for updates/adds vs deletes• Dataset handling of deletes
Adds / updates• Need to after the Data Access layer
Deletes• Need to happen before the Data Access layer• Need to look at before table
© 2006 Progress Software Corporation22ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Show code example for saveChanges in OpenEdge Architect
saveChanges and receiving messages
© 2006 Progress Software Corporation23ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Agenda
Review OpenEdge Reference Architecture Review SonicMQ implementation Adding Sonic to the Reference Architecture
• Sending messages• Receiving messages
Alternative approaches
© 2006 Progress Software Corporation24ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Breaking up saveChanges
Create finer-grained services• createCustomer• deleteCutomer• changeCustomer• Could call saveChanges
Easier message handling Might need additional work for Datasets
© 2006 Progress Software Corporation25ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Moving the services
Service “createCustomer”• Validation / processing• Create record in database
• Send Integration message
• Send email to salesrep• Send welcome package to customer
© 2006 Progress Software Corporation26ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Moving the services
Business Task “createCustomer”• Validate and create record in database• Send Integration message• Send email to salesrep• Send welcome package to customer
Business Entity “customer”• “createCustomer”• Validate• Create record in database
© 2006 Progress Software Corporation27ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Exposing the Business task as a service
Expose as Web service• ProxyGen
Use OpenEdge Adapter for Sonic ESB®
© 2006 Progress Software Corporation28ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
In Summary
SonicMQ and the Reference Architecture
• Need to bridge XML messages and ProDatasets
• Can reuse existing Business Servicing Layer
• Well defined services are easier to integrate
Presentation
Business Services
Data Access
Data Sources
Com
mon Infrastructure
Enterprise Services
© 2006 Progress Software Corporation29ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Relevant Exchange Sessions
ARCH-10: Delivering Services within Sonic ESB
SOA-7: Designing Sonic ESB Services and Processes for the OpenEdge Developer
© 2006 Progress Software Corporation30ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Questions?
© 2006 Progress Software Corporation31ARCH-7: Integrate this! SonicMQ and the OpenEdge RA
Thank you foryour time
© 2006 Progress Software Corporation32ARCH-7: Integrate this! SonicMQ and the OpenEdge RA