Integrating OpenEdge® Applications with SonicMQ®

Slides:



Advertisements
Similar presentations
Server Access The REST of the Story David Cleary
Advertisements

JMS in der Praxis Stefan Kischel Product Manager.
DEV-13: You've Got a Problem, Here’s How to Find It
Scale Up Access to your 4GL Application using Web Services
John Sadd Progress Fellow and OpenEdge Evangelist
DEV-14: Understanding and Programming for the AppServer™
Performance testing of Progress Appservers and a plug-in for Jmeter
What’s new in Progress Developer Studio for OpenEdge 11.0?
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
A New Object Model for WebSpeed and HTTP
SOA-18: Sonic ESB Application Deployment using SDM
SOA-06: Get On the Bus with the OpenEdge ® Adapter for Sonic ESB ® David Cleary Principal Software Engineer, Progress.
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
SOA-4: Introduction to OpenEdge ® Integration Technologies Jamie Townsend Applied Architect.
SOA-12: Integrate over the Web with OpenEdge® Web Services
COMP-10: OpenEdge ® Management & Replication – Divide et impera! Cyril Gleiman & Libor Laubacher Principal Technical Support Engineers.
Java Message Service - What and Why? Bill Kelly, Silvano Maffeis SoftWired AG, Zürich
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
SOA-2: OpenEdge® 10.1A Adapters for SonicMQ® New Install, New Architecture, and New APIs Cheryl LaBarge Senior Training Program Manager.
Java Message Service Sangeetha Chavala. What is Messaging? Method of Communication between software components/applications peer-to-peer facility Not.
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
Message Driven Beans & Web Services INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Agenda 1.Implementation of CustomerService. CustomerService wrapper SOAP → ESB internal format Abstract → Concrete XML syntax ESB internal format → HTTP.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
COMP-13: The “Weakest-Link” in your High Availability system How to make sure your HA is really highly available Hugo Loera Senior Technical Support Engineer.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: JMS.
DEV-09: User Authentication in an OpenEdge™ 10.1 Distributed Computing Environment Michael Jacobs Development Architect.
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
SOA-14: Deploying your SOA Application David Cleary Principal Software Engineer.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
INT-5: Integrate over the Web with OpenEdge® Web Services
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
COMP-1: OpenEdge® Management Overview and Demo Principal Technical Support Engineer Cyril E. Gleiman.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
SOA-3: You Need to Integrate, But What do You Need to Know and Do? Bob Trabucchi Sr Presales Consultant Sandy Caiado Sr Presales Consultant.
SOA-02: Sonic SOA Products Overview Luis Maldonado Technical Product Manager Sonic Software.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2
SOA-5: Did You Get The Message? Giovanni Boschi Director, Sonic Products.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
ARCH-08 A Common Business Service Approach to Application Development Anthony Swindells Progress Fellow.
Session 7: JMS, JCA, JSF Dr. Nipat Jongsawat.
A New Object Model for WebSpeed and HTTP
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
SOA-8: Orchestrate your OpenEdge® Applications with Sonic OpenEdge and the Bus... Jiri De Jagere Product Consultant.
Java Message Service (JMS) Web Apps and Services.
INNOV-6: Innovation in Action! Rick Kuzyk Senior Portfolio Specialist Making IT Happen.
ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect.
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
ARCH-04 Before You Begin Your Transformation Project… Phillip Magnay Architect – Applied Technology.
Rob Straight, Principal Product Manager
DEV-25: You've Got a Problem, Here’s How to Find It
Introduction to J2EE Architecture
Java Messaging Service (JMS)
Java Messaging Service (JMS)
Java Messaging Service (JMS)
Harjutus 3: Aünkroonne hajussüsteemi päring
Inventory of Distributed Computing Concepts
ARCH-1: Application Architecture made Simple
C6: Introducing Native Invocation with the OpenEdge® Adapter for Sonic™ ESB Chris James Senior Consultant.
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Rob Straight, Principal Product Manager
J2EE Lecture 13: JMS and WebSocket
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

Integrating OpenEdge® Applications with SonicMQ® Pat Bonser

Agenda JMS (Java™ Messaging Service) concepts & SonicMQ OpenEdge Adapter for SonicMQ What is it? How do I install and configure? Show me examples! Futures, what’s planned for OpenEdge 10.1A Adapter for SonicMQ Integrating OpenEdge Applications with SonicMQ

What is Messaging? A mechanism enabling autonomous applications to communicate Messages - units of information composed of Payload Header Destinations Priority Ordering Expiration Time-to-Live And more … Integrating OpenEdge Applications with SonicMQ

How Does It Work? Application A Application B Message Oriented Middleware Producer Consumer Bind to destination Bind to destination Read message Send message JMS Broker Destination Consume message Integrating OpenEdge Applications with SonicMQ

JMS Messaging Models Point to Point (1 to 1) Potential Receiver Sender Queue Potential Receiver Publish and Subscribe (1 to Many) Subscriber Publisher Topic Subscriber Integrating OpenEdge Applications with SonicMQ

Connections and Sessions A connection connects to a message broker You can create one or more sessions within a connection JMS Client Connection Queue Session Topic Session Integrating OpenEdge Applications with SonicMQ

Receives Messages From Unified Domain (JMS 1.1) ConnectionFactory Creates Connection Creates Session Creates Creates MessageProducer MessageConsumer Creates Sends Messages To Receives Messages From Message Destination (Queue or Topic) Destination (Queue or Topic) Integrating OpenEdge Applications with SonicMQ

So what is SonicMQ? A Standards-Based Enterprise Messaging Server A full functional implementation of JMS 1.1 specification J2EE Compatibility 1.3 - 1.4 Distributed Management Framework Innovative Deployment Architectures User Benefits Enterprise-class reliability, scalability, performance using standards-based infrastructure Distributed management simplifies and reduces cost of deployment, configuration, monitoring Integrating OpenEdge Applications with SonicMQ

SonicMQ Domain Manager Start →Programs → Sonic Software → SonicMQ → SonicMQ Domain Manager Domain Manager Directory Service Agent Manager SonicMQ Management Broker Integrating OpenEdge Applications with SonicMQ

Sonic Management Console Start →Programs → Sonic Software → SonicMQ → Management Console Integrating OpenEdge Applications with SonicMQ

Queues Must Be Predefined Integrating OpenEdge Applications with SonicMQ

Sonic JMS Test Client Start →Programs → Sonic Software → SonicMQ → JMS Test Client Allows you to use messaging concepts without having to write Java code Integrating OpenEdge Applications with SonicMQ

Demonstration SonicMQ Demonstrate Tool - Management Console Create a queue Tool - JMS Test Client PTP demo using new Queue Pub/Sub demo creating a Topic Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ JMS concepts & SonicMQ OpenEdge Adapter for SonicMQ What is it? How do I install and configure? Show me examples! Futures, what’s planned for OpenEdge 10.1A Adapter for SonicMQ Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ Enterprise Integration for OpenEdge Applications OpenEdge Adapter for SonicMQ Connects Progress 4GL app with SonicMQ Seamless integration with existing 4GL Development tools and Methodologies Uses direct access from the 4GL to SonicMQ Specific procedures for the Sonic API Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ Direct access from 4GL to SonicMQ GUI applications Character applications (UNIX) AppServer Webspeed agents Batch jobs Connection between 4GL applications 4GL and non 4GL applications Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ Architecture PROGRESS 4GL *.w, *.p 4GL Adapter broker 4GL client OpenEdge Database SonicMQ Integrating OpenEdge Applications with SonicMQ

Progress Adapter Programs Supplied .r files with API For point to point Install-dir/jms/ptpsession.r For publish and subscribe Install-dir/jms/pubsubsession.r Integrating OpenEdge Applications with SonicMQ

Leverage SonicMQ jars Copy Alternatively from SonicMQ install to Progress directory install-dir\java\sonicMQ\lib Alternatively Point your lib directory to Integrating OpenEdge Applications with SonicMQ

Environment Variables Used By Description SONIC_HOME Sonic The installation directory for SonicMQ. Typically, this is C:\Sonic\MQ6.1 JAVA_HOME Sonic & Progress Can use the files installed with Sonic, Progress or a compatible jre directory PATH You should include SONIC_HOME\bin and JDK_HOME\bin in your PATH environment variable Integrating OpenEdge Applications with SonicMQ

Progress Components AdminServer OpenEdge Adapter for SonicMQ NameServer (Optional) Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ JMS concepts & SonicMQ OpenEdge Adapter for SonicMQ What is it? How do I install and configure? Show me examples! Futures, what’s planned for OpenEdge 10.1A Adapter for SonicMQ Integrating OpenEdge Applications with SonicMQ

PTP - Example SonicMQ OpenEdge Application OpenEdge Application Integrating OpenEdge Applications with SonicMQ

PTP - Basic Steps Requires a Queue Connect to a SonicMQ Broker Create a Message Consumer Prepare to Receive Message From Queue Send Message to Queue Receive message from Queue Delete message Integrating OpenEdge Applications with SonicMQ

PTP – Requires a Queue Sonic Management Console Integrating OpenEdge Applications with SonicMQ

PTP - Connect to SonicMQ Broker RUN jms/ptpsession.p PERSISTENT SET ptpsession ("-H localhost -S 5162 "). RUN setBrokerURL IN ptpsession (“tcp//machinename:2506"). RUN beginSession IN ptpsession. OpenEdge Application 5162 Broker 2506 Integrating OpenEdge Applications with SonicMQ

PTP – Create Message to Send /* Create a Text Message */ RUN createTextMessage IN ptpsession (OUTPUT messageH)./* Handles the messages */ RUN setText IN MessageH (“Your Message”). OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

PTP - Send Message to Queue /* Send Message to the “desired” Queue */ RUN sendToQueue IN ptpsession (“YourQueue", messageH, /* message handle */ ?, /* priority, ? = system default */ ?, /* timeToLive, ? = system default */ ?). /* deliveryMode, ? = system default */ OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

PTP – Receive Message from Queue- Java /* Create Receiver Queues to receive messages */ javax.jms.Queue receiveQueue = receiveSession.createQueue(rQueue); javax.jms.MessageConsumer qReceiver = receiveSession.createConsumer(receiveQueue); qReceiver.setMessageListener(this); connect.start(); OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

PTP – Receive Message from Queue – 4GL /* Receive Message to the “desired” Queue */ RUN receiveFromQueue IN ptpsession (“YourQueue", /* Name of the Queue */ ?, /* No message selector */ consumerH, /* Handle incoming message default */ OpenEdge Application OpenEdge Application Sonic Broker Integrating OpenEdge Applications with SonicMQ

PTP Demonstration Integrating OpenEdge Applications with SonicMQ

Pub/Sub - Example SonicMQ OpenEdge Application OpenEdge Application Integrating OpenEdge Applications with SonicMQ

Pub\Sub - Basic Steps Connect to a SonicMQ broker Topics can be set on at run time Create a message subscriber Subscribe to Topic Publish message to Topic Consume message from a Topic Delete message Integrating OpenEdge Applications with SonicMQ

Pub\Sub - Connect to SonicMQ Broker RUN jms/pubsubsession.p PERSISTENT SET pubsubsession ("-H localhost -S 5162 "). RUN setBrokerURL IN pubsubsession ("tcp://machinename:2506"). RUN beginSession IN pubsubsession. OpenEdge Application OpenEdge Application 5162 5162 Broker 2506 Integrating OpenEdge Applications with SonicMQ

Pub\Sub - Create Message Consumer – 4GL /* receives requests from the Topic */ RUN createMessageConsumer IN pubsubsession (THIS-PROCEDURE, /* This proc handles it */ “YourHandler", /* name of internal proc. */ OUTPUT consumerH). OpenEdge Application OpenEdge Application 5162 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

Pub\Sub - Create Message Consumer - Java /* receives requests from the Topic */ subSession = connect.createSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE) javax.jms.MessageConsumer subscriber = subsession.createConsumer(topic); Subscriber.setMessageListener(this); OpenEdge Application OpenEdge Application 5162 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

Pub\Sub – Subscribe to Topic RUN SUBSCRIBE IN pubsubsession ("Topic", /* topic name */ ?, /* Subscription durable */ ?, /* No message selector */ NO, /* want my own messages to */ consumerH). /* Handles the messages */ /* Start receiving requests */ RUN startReceiveMessages IN pubsubsession. OpenEdge Application OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

Pub\Sub - Publish Message to Topic /* In Bytes Message use mptr to store the XML*/ RUN setMemptr IN msgH (memFile, ?, ?). RUN publish IN pubsubsession ("Topic", /* Topic name */ msgH, /* message handle */ ?, /* priority, ? = system default */ ?, /* timeToLive, ? = system default */ ?). /* deliverymode, ? = system default */ OpenEdge Application OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

Pub\Sub – Consumer Message from Topic /* From chargeHandler internal procedure */ memptrDoc = DYNAMIC-FUNCTION ('getMemptr':U IN msgH). hDoc:LOAD("memptr", memptrDoc, FALSE). hDoc:GET-DOCUMENT-ELEMENT(hRoot). hRoot:GET-CHILD(hTable, 1). … /* All your standard business logic */ OpenEdge Application OpenEdge Application 5162 Sonic Broker Integrating OpenEdge Applications with SonicMQ

Pub/Sub Demonstration Integrating OpenEdge Applications with SonicMQ

Integrating OpenEdge Applications with SonicMQ JMS concepts & SonicMQ OpenEdge Adapter for SonicMQ What is it? How do I install and configure? Show me examples! Futures, what’s planned for OpenEdge 10.1A Adapter for SonicMQ Integrating OpenEdge Applications with SonicMQ

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 Integrating OpenEdge Applications with SonicMQ

Installation Prior to 10.1A In 10.1A Users had to manually move jar files to appropriate directories In 10.1A Sonic “Silent Install” will move files to appropriate locations without user interaction Integrating OpenEdge Applications with SonicMQ

Architecture Prior to 10.1A, only one option OpenEdge Adapter for SonicMQ In 10.1A, two additional options OpenEdge Adapter for SonicMQ ClientConnect OpenEdge Adapter for SonicMQ ServerConnect Integrating OpenEdge Applications with SonicMQ

Prior to 10.1A OpenEdge Adapter for SonicMQ RUN jms/ptpsession.p PERSISTENT SET hptpsession ("-H myAdminServerMachine -S 5162 "). RUN setBrokerURL IN hptpsession (“tcp//mySonicMachine:2506"). RUN beginSession IN hptpsession. AdminServer SonicMQ Broker 2506 API-JMS NameServer MQAdapter JMS Thread 1 QUEUE Thread 2 API-JMS Thread 3 mySonicMachine myAdminServerMachine Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ ClientConnect RUN jms/ptpsession.p PERSISTENT SET hptpsession (“-SMQConnect"). RUN setBrokerURL IN hptpsession (“tcp//mySonicMachine:2506"). RUN beginSession IN hptpsession. API-JMS SonicMQ Broker 2506 Thread 1 Thread 2 QUEUE API-JMS Thread 1 Thread 2 mySonicMachine Integrating OpenEdge Applications with SonicMQ

OpenEdge Adapter for SonicMQ ServerConnect X AdminServer SonicMQ Broker 2506 NameServer AppServer API-JMS Thread 1 QUEUE Thread 1 Thread 1 mySonicMachine Integrating OpenEdge Applications with SonicMQ

Combination of PTP and Pub/Sub Prior to 10.1A Two different session RUN jms/ptpsession.p.. RUN jms/pubsubsession.p… In 10.1A Parent containing all API RUN jms/jmssession.p… Integrating OpenEdge Applications with SonicMQ

Functionalities and Upgraded APIs Client Persistence Enhanced XML support Temp Table messages ProDataSet messages Fault Tolerance Serialized Connection Objects … Integrating OpenEdge Applications with SonicMQ

In Summary The adapter allows 4GL programmers to use JMS messaging techniques from 4GL code It is easy to install and run examples Customers are successfully using this technology in Progress V9 and OpenEdge 10 4GL WebSpeed .NET Sonic Broker Web Client Any Java Integrating OpenEdge Applications with SonicMQ

Questions JMS concepts & SonicMQ OpenEdge Adapter for SonicMQ What is it? How do I install and configure? Show me examples! Futures OpenEdge 10.1A Adapter for SonicMQ Integrating OpenEdge Applications with SonicMQ