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

Post on 08-Jan-2018

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

top related