SOA-09: Conducting Business with OpenEdge® and SonicMQ® David Cleary Principal Software Engineer, Progress
Under Development D I S C L A I M E R This talk includes information about potential future products and/or product enhancements. What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D I S C L A I M E R SOA-09 Conducting Business with OpenEdge and Sonic
Glossary CBR – Content Based Routing ESB – Enterprise Service Bus WSDL – Web Services Description Language SOA – Service Oriented Architecture SSL – Secure Socket Layer SOA-09 Conducting Business with OpenEdge and Sonic
Agenda Automating a business process Using the OpenEdge Adapter for SonicMQ to start a process Using the OpenEdge Adapter Sonic ESB to publish services Using the WSA Adapter in the process Advanced topics and futures SOA-09 Conducting Business with OpenEdge and Sonic
The Business Problem Call Center Corporate Warehouse 2 Warehouse 1 SOA-09 Conducting Business with OpenEdge and Sonic
The Business Pain Information entered in each application manually Data entry errors multiply High latency for complete transaction Prone to lost messages No idea when transaction is complete SOA-09 Conducting Business with OpenEdge and Sonic
The Progress Solution OpenEdge Adapters for getting on the bus SonicMQ for reliable messaging Sonic ESB for routing, transformation, and distributed service containers SOA-09 Conducting Business with OpenEdge and Sonic
Business Processes Required Add a new product Modify an existing product Remove an existing product SOA-09 Conducting Business with OpenEdge and Sonic
Agenda Automating a business process Using the OpenEdge Adapter for SonicMQ to start a process Using the OpenEdge Adapter Sonic ESB to publish services Using the WSA Adapter in the process Advanced topics and futures SOA-09 Conducting Business with OpenEdge and Sonic
Corporate Product Application Current situation 4GL client-server application Dedicated data line to call center Solution Create trigger to distinguish process Assign trigger to create and publish message SOA-09 Conducting Business with OpenEdge and Sonic
Application Connectivity Options AppServer™ call Tightly coupled Synchronous Web Services Out HTTP not reliable No need for RPC model JMS Messaging Reliable Loosely coupled Asynchronous NOTE> AppServer still refers to V9.x is no longer used to identify the product in release 10. Officially known as OpenEdge Application Server. AppServer is noted throughout the presentation. SOA-09 Conducting Business with OpenEdge and Sonic
Creating Our Message Check for industry standard schemas Include all data that is useful for present and future processes Define an XML Namespace to identify the message Create an XML Schema to document and validate the message Put message on bus using OpenEdge Adapter for SonicMQ SOA-09 Conducting Business with OpenEdge and Sonic
Code Sample ON ASSIGN OF Product.SKU DO: CREATE X-DOCUMENT itemXML. CREATE X-NODEREF parentH. . . /* Create our XML message */ itemXML:SAVE("memptr", xmlBuffer). RUN setText IN itemMsgH(GET-STRING(xmlBuffer, 1)). RUN sendToQueue IN mqSessionH(“Product", itemMsgH, ?, ?, ?). END. SOA-09 Conducting Business with OpenEdge and Sonic
Agenda Automating a business process Using the OpenEdge Adapter for SonicMQ to start a process Using the OpenEdge Adapter for Sonic ESB to publish services Using the WSA Adapter in the process Advanced topics and futures SOA-09 Conducting Business with OpenEdge and Sonic
Order Entry Application Current Situation .NET™ Open Client application Session managed state-aware AppServer Solution Define a service interface layer Integrate interface with existing application SOA-09 Conducting Business with OpenEdge and Sonic
Application Connectivity Options Publish services from session-managed AppServer Connection logic required Context in message Interface not SOA friendly Batch process message listener Client management issues Manual processing of message (I.E. code) SOA-09 Conducting Business with OpenEdge and Sonic
Application Connectivity Options State free AppServer Create and expose a coarse grained interface No XML processing Uses legacy application directly SOA-09 Conducting Business with OpenEdge and Sonic
OpenEdge Reference Architecture Users Enterprise Services Presentation Layer Integration Layer Business Servicing Layer Data Access Layer Managed Data Stores Unmanaged Data Stores SOA-09 Conducting Business with OpenEdge and Sonic
Creating a Business Process with Sonic Integration Workbench™ Wrap a sub-process around each operation of our service Use CBR service to route message to proper operation Use Web Services Call Composer to map message to service SOA-09 Conducting Business with OpenEdge and Sonic
Integration Workbench Demo INTEGRATED SERVICE DEVELOPMENT ENVIRONMENT PARTNER PROFILE EDITOR INTELLIGENT ROUTING EDITOR PROCESS EDITOR XML SCHEMA DIAGRAM XML 2 XML MAPPERS DATABASE SERVICE EDITOR XSLT / XQUERY EDITORS DEPLOYMENT TOOLS WEB SERVICE CALL EDITOR SONIC WORKBENCH SONIC ORCHESTRATION SERVER SONIC DATABASE SERVICE ADAPTERS FOR SONIC ESB SONIC COLLABORATION SERVER SONIC XML SERVER SONIC ESB SOA-09 Conducting Business with OpenEdge and Sonic
Agenda Automating a business process Using the OpenEdge Adapter for SonicMQ to start a process Using the OpenEdge Adapter Sonic ESB to publish services Using the WSA Adapter in the process Advanced topics and futures SOA-09 Conducting Business with OpenEdge and Sonic
Warehouse Management Application Current Situation AppServer application with WebSpeed® front end Internet connectivity to other offices Solution Create a service interface layer Integrate interface with existing application SOA-09 Conducting Business with OpenEdge and Sonic
Application Connectivity Options Use WebSpeed to process message Requires manual XML processing No standard interface definition (WSDL) No SOAP headers for security information Use WSA Adapter to expose service Concentrate on business logic instead of infrastructure code SOAP allows authentication info in headers SOA-09 Conducting Business with OpenEdge and Sonic
Security Considerations SSL Allows privacy and server authentication HTTPS Allowed as a SOAP transport Session-Managed AppServer Connection logic allows authentication at application level SOA-09 Conducting Business with OpenEdge and Sonic
Create a Process to Connect to a Session-Manage AppServer Import WSDL into ESB Create sub-processes to connect and disconnect from AppServer Wrap it in a process for complete transaction SOA-09 Conducting Business with OpenEdge and Sonic
Business Process Demo WAREHOUSE 2 NEW PRODUCT PROCESS ORDER ENTRY WAREHOUSE 1 Check Inventory ACK SOA-09 Conducting Business with OpenEdge and Sonic
Agenda Automating a business process Using the OpenEdge Adapter for SonicMQ to start a process Using the OpenEdge Adapter Sonic ESB to publish services Using the WSA Adapter in the process Advanced topics and futures SOA-09 Conducting Business with OpenEdge and Sonic
Sonic Orchestration Server™ Allows more advanced workflows Suitable for long running transactions Allows people to be a part of the process SOA-09 Conducting Business with OpenEdge and Sonic
Sonic Collaboration Server™ Allows integration with partners Supports RosettaNet and ebXML SOA-09 Conducting Business with OpenEdge and Sonic
OpenEdge Adapter for SonicMQ ClientConnect and ServerConnect No adapter to manage ClientConnect allows 4GL clients to use Sonic messaging directly ServerConnect provides same functionality for AppServer and WebSpeed No API changes! SOA-09 Conducting Business with OpenEdge and Sonic
XML and 4GL Messaging Integration X-Document and XML Message integration No need to write serialization code Get and set X-Documents SAX Reader and XML Message integration Fire off a SAX Reader upon message reception SAX Writer No more DOM API! Temptable and ProDataSet message types SOA-09 Conducting Business with OpenEdge and Sonic
More SonicMQ Features Supported Client Persistence Messages stored on client when connection to SonicMQ Broker down Fault Tolerance Unified messaging domain No more separation of queues and topics Serialized connection objects SOA-09 Conducting Business with OpenEdge and Sonic
Improved ‘Out Of Box Experience’ SonicMQ client installed ESB service container configured and installed SOA-09 Conducting Business with OpenEdge and Sonic
OpenEdge Courseware XML Essentials 4GL Development with XML Consuming Web Services OpenEdge Development with Sonic ESB SOA-09 Conducting Business with OpenEdge and Sonic
Sonic Software Courseware JMS Messaging with SonicMQ Service-Oriented Integration with Sonic ESB Business Process Management with Orchestration Server SOA-09 Conducting Business with OpenEdge and Sonic
Exchange Presentation Reference SOA-12 – Solving OpenEdge Integration Scenarios with Sonic ESB SOA-04 – Integrating OpenEdge Applications with SonicMQ SOA-03 – Open Up Access to your 4GL Applications Using Web Services SOA-05 – Building an Enterprise SOA Using ESB SOA-06 – Get on the Bus with the OpenEdge Adapter for Sonic ESB SOA-09 – Conducting Business with OpenEdge and Sonic SOA-09 Conducting Business with OpenEdge and Sonic
In Conclusion… Use the OpenEdge Adapter for SonicMQ to start a process Use the OpenEdge Adapter for Sonic ESB to expose services Use the OpenEdge Web Services Adapter as part of ESB process SOA-09 Conducting Business with OpenEdge and Sonic
Call To Action! Download Sonic trials Educate yourself on SOA Explore industry consortia Create integration points in your application Take an iterative approach to service orientation SOA-09 Conducting Business with OpenEdge and Sonic
Questions? SOA-09 Conducting Business with OpenEdge and Sonic
Thank you for your time! SOA-09 Conducting Business with OpenEdge and Sonic
SOA-09 Conducting Business with OpenEdge and Sonic