arch-7: integrate this! sonicmq® and the openedge® reference architecture christian stiller...

32
ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

Upload: delphia-hamilton

Post on 08-Jan-2018

223 views

Category:

Documents


0 download

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 Services

TRANSCRIPT

Page 1: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

ARCH-7: Integrate this!

SonicMQ® and the OpenEdge® Reference Architecture

Christian StillerTechnical Architect

Page 2: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical 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

Page 3: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 4: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 5: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 6: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation6ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code in OpenEdge Architect

Sample Customer Business Entity

Page 7: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 8: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation8ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code in OpenEdge Architect

Sample Service Interface

Page 9: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 10: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 11: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 12: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation12ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code in OpenEdge Architect

Sending messages from the ABL

Page 13: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 14: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation14ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code in OpenEdge Architect

Receiving messages to the ABL

Page 15: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 16: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 17: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation17ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show XML message in OpenEdge Architect

Sample Message

Page 18: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 19: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation19ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code example for saveChanges in OpenEdge Architect

saveChanges and sending messages

Page 20: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 21: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 22: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation22ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Show code example for saveChanges in OpenEdge Architect

saveChanges and receiving messages

Page 23: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 24: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 25: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 26: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 27: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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®

Page 28: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 29: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 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

Page 30: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation30ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Questions?

Page 31: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation31ARCH-7: Integrate this! SonicMQ and the OpenEdge RA

Thank you foryour time

Page 32: ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect

© 2006 Progress Software Corporation32ARCH-7: Integrate this! SonicMQ and the OpenEdge RA