Integrating OpenEdge Applications with SonicMQ - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

Integrating OpenEdge Applications with SonicMQ

Description:

PTP demo using new Queue. Pub/Sub demo creating a Topic. 14 ... our current thinking, but the information contained herein is preliminary and subject to change. ... – PowerPoint PPT presentation

Number of Views:660
Avg rating:3.0/5.0
Slides: 52
Provided by: shukumar
Category:

less

Transcript and Presenter's Notes

Title: Integrating OpenEdge Applications with SonicMQ


1
Integrating OpenEdge Applications with SonicMQ
  • Pat Bonser

2
Agenda
  • JMS (Java Messaging Service) concepts SonicMQ
  • OpenEdge Adapter for SonicMQ
  • What is it?
  • How do I install and configure?
  • Show me examples!
  • Futures, whats planned for OpenEdge 10.1A
    Adapter for SonicMQ

3
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

4
How Does It Work?
Message Oriented Middleware
Bind to destination
Bind to destination
Read message
Consume message
Send message
5
JMS Messaging Models
  • Point to Point (1 to 1)

Potential Receiver
Queue
Sender
Potential Receiver
  • Publish and Subscribe (1 to Many)

Subscriber
Topic
Publisher
Subscriber
6
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
7
Unified Domain (JMS 1.1)
ConnectionFactory
Connection
Session
MessageConsumer
MessageProducer
Message
Destination (Queue or Topic)
Destination (Queue or Topic)
8
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

9
SonicMQ Domain Manager
Start ?Programs ? Sonic Software ? SonicMQ ?
SonicMQ Domain Manager
Domain Manager
Directory Service
Agent Manager
SonicMQ Management Broker
10
Sonic Management Console
Start ?Programs ? Sonic Software ? SonicMQ ?
Management Console
11
Queues Must Be Predefined
12
Sonic JMS Test Client
Start ?Programs ? Sonic Software ? SonicMQ ? JMS
Test Client
  • Allows you to use messaging concepts without
    having to write Java code

13
Demonstration SonicMQ
  • Demonstrate
  • Tool - Management Console
  • Create a queue
  • Tool - JMS Test Client
  • PTP demo using new Queue
  • Pub/Sub demo creating a Topic

14
OpenEdge Adapter for SonicMQ
  • JMS concepts SonicMQ
  • OpenEdge Adapter for SonicMQ
  • What is it?
  • How do I install and configure?
  • Show me examples!
  • Futures, whats planned for OpenEdge 10.1A
    Adapter for SonicMQ

15
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

16
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

17
OpenEdge Adapter for SonicMQ Architecture
PROGRESS 4GL.w, .p
4GL Adapterbroker
4GL client
OpenEdge Database
18
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

19
Leverage SonicMQ jars
  • Copy
  • from SonicMQ install to Progress directory
  • install-dir\java\sonicMQ\lib
  • Alternatively
  • Point your lib directory to
  • install-dir\java\sonicMQ\lib

20
Environment Variables
21
Progress Components
  • AdminServer
  • OpenEdge Adapter for SonicMQ
  • NameServer (Optional)

22
OpenEdge Adapter for SonicMQ
  • JMS concepts SonicMQ
  • OpenEdge Adapter for SonicMQ
  • What is it?
  • How do I install and configure?
  • Show me examples!
  • Futures, whats planned for OpenEdge 10.1A
    Adapter for SonicMQ

23
PTP - Example
24
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

25
PTP Requires a Queue
Sonic Management Console
26
PTP - Connect to SonicMQ Broker
RUN jms/ptpsession.p PERSISTENT SET ptpsession
("-H localhost -S 5162 "). RUN
setBrokerURL IN ptpsession (tcp//machinenam
e2506"). RUN beginSession IN ptpsession.
5162
Broker 2506
27
PTP Create Message to Send
/ Create a Text Message / RUN createTextMessage
IN ptpsession (OUTPUT messageH)./ Handles the
messages / RUN setText IN MessageH (Your
Message).
5162
Sonic Broker
28
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 /
5162
Sonic Broker
29
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(receive
Queue) qReceiver.setMessageListener(this) conne
ct.start()
5162
Sonic Broker
30
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 /
Sonic Broker
31
PTP Demonstration
32
Pub/Sub - Example
33
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

34
Pub\Sub - Connect to SonicMQ Broker
RUN jms/pubsubsession.p PERSISTENT SET
pubsubsession ("-H localhost -S 5162 "). RUN
setBrokerURL IN pubsubsession
("tcp//machinename2506"). RUN beginSession IN
pubsubsession.
5162
5162
Broker 2506
35
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).
5162
5162
Sonic Broker
36
Pub\Sub - Create Message Consumer - Java
/ receives requests from the Topic
/ subSession connect.createSession(false,javax
.jms.Session.AUTO_ACKNOWLEDGE) javax.jms.MessageCo
nsumer subscriber subsession.createConsumer(top
ic) Subscriber.setMessageListener(this)
5162
5162
Sonic Broker
37
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.
5162
Sonic Broker
38
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 /
5162
Sonic Broker
39
Pub\Sub Consumer Message from Topic
/ From chargeHandler internal procedure /
memptrDoc DYNAMIC-FUNCTION ('getMemptr'U IN
msgH). hDocLOAD("memptr", memptrDoc, FALSE).
hDocGET-DOCUMENT-ELEMENT(hRoot).
hRootGET-CHILD(hTable, 1). / All your
standard business logic /
5162
Sonic Broker
40
Pub/Sub Demonstration
41
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, whats planned for OpenEdge 10.1A
    Adapter for SonicMQ

42
Under Development
  • 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.

43
Installation
  • Prior to 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

44
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

45
Prior to 10.1AOpenEdge Adapter for SonicMQ
RUN jms/ptpsession.p PERSISTENT SET hptpsession
("-H myAdminServerMachine -S 5162 "). RUN
setBrokerURL IN hptpsession (tcp//mySonicMa
chine2506"). RUN beginSession IN hptpsession.
AdminServer
SonicMQ Broker 2506
NameServer
API-JMS
MQAdapter
JMS
QUEUE
Thread 1
Thread 2
API-JMS
Thread 3
mySonicMachine
myAdminServerMachine
46
OpenEdge Adapter for SonicMQ ClientConnect
RUN jms/ptpsession.p PERSISTENT SET hptpsession
(-SMQConnect"). RUN setBrokerURL IN
hptpsession (tcp//mySonicMachine2506"). RU
N beginSession IN hptpsession.
SonicMQ Broker 2506
API-JMS
Thread 1
Thread 2
QUEUE
API-JMS
Thread 1
Thread 2
mySonicMachine
47
OpenEdge Adapter for SonicMQ ServerConnect
X
AdminServer
SonicMQ Broker 2506
NameServer
AppServer
API-JMS
Thread 1
QUEUE
Thread 1
Thread 1
mySonicMachine
48
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

49
Functionalities and Upgraded APIs
  • Client Persistence
  • Enhanced XML support
  • Temp Table messages
  • ProDataSet messages
  • Fault Tolerance
  • Serialized Connection Objects

50
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
Any
Web Client
Java
51
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
Write a Comment
User Comments (0)
About PowerShow.com