Java Messaging Service (JMS) and Enterprise Messaging Strategy
Java Messaging Service (JMS) and Enterprise Messaging Strategy
Application Application
Interface Interface
Application Application
Interface Interface
Client Client
Unreliable
Unreliable
Network
Network
Application Application
Message Message
Interface Server Server Interface
Store & Store &
Client Forward Forward Client
Unreliable
Unreliable
Network
Network
Unreliable
Unreliable
Message Network
Network Message
Queue Queue
J2EE J2EE
Application Application
(JMS Client) (JMS Client)
JMS API JMS API
JMS Provider Messaging System JMS Provider
Presentation Presentation
Session Session
Transport Transport
Network Network
Physical Physical
M
Problem Solving
Conversation
Sentences
Words
Phonemes
Sound
XML Tags
XML
Internet
Data
Database Database
M
Share process
Share read-only
data
Integration Costs
Header:
Header:
Outgoing To:
To: From:
From: Subject:
Subject:
Priority: Urgent
Priority: Urgent
Mail
Server
Body
Body
Recipients
e-Mail
M
Server
Header
Header
Properties
Properties
Body
Body
Header
Header
Properties
Properties
Body
Body
Message
Queue
M
To:
To:My
MyEnterprise
EnterpriseService
ServiceBus
Bus
TransactionNumber=12345
TransactionNumber=12345
<?xml
<?xml version="1.0"?>
version="1.0"?>
<RequestedAction>Person
<RequestedAction>Person Search</RequestedAction>
Search</RequestedAction>
<Person>
<Person>
<PersonSurName>Jones</PersonSurName>
<PersonSurName>Jones</PersonSurName>
<PersonGivenName>Sam</PersonGivenName>
<PersonGivenName>Sam</PersonGivenName>
<PersonBirthDate>1980-12-31</PersonBirthDate>
<PersonBirthDate>1980-12-31</PersonBirthDate>
</Person>
</Person>
Sender
• One-to-Many (aka Publish-subscribe)
Message
– Send (publish) message to a JMS Topic
Topic
– Enables many readers (subscribers)
– Also enables many-to-many subscription Subscriber Subscriber
First Name:
Phone:
Save
Database
Database
M
Container-Component
Container Contract
Application
ApplicationComponent
Component
Application Contract
Connection Pool
Manager System
Contract
Resource Adapter
Security
Transaction
Services
Manager
Manager
EIS-specific Interface
Application Server
Enterprise Information
System
M
Vendor A Vendor B
• Bridges translate from one vendor system into another
• Example IBM-MQ to/from MSMQ
• Some loss of information when headers do not have precise
mappings
• Allows interoperability
M
SOAP
SOAPDocument
Document • Any XML tags can be
SOAP Header
SOAP Body added to SOAP header to
tell the receiving system
how to transmit the message
• Security can also be added
• Must agree on what tags to
use
M
CriMNet Rules
Processing
Database JMS Server
Client
Ÿ Browser (SSL)
Message Ÿ Custom App via
Processing Point-to-Point https
Registry Access
Security Publish
Logging
Logging
Config
Messaging
Profiles
Meta Data
Admin
. Other CriMNet Hub
.
Critical Data
.
Rules Interface with
Legacy systems
Archiving (e.g. local agencies)
Adaptor Operational
Systems
D From January
Copyright 2004-2008 2000 Macro
Dan McCreary Group Logical Architecture
& Associates 64
BizTalk Architecture
Application
Application BizTalk Message
Adapter
Adapter
Transport
TransportEnvelope
Envelope
BizTalk BizTalk
BizTalkDoc
BizTalkDoc
Doc Doc
Header Header
Body Body
BizTalk
BizTalkServer
Server Internet
Internet BizTalk
BizTalkServer
Server
Roy Schulte
VP and Research Fellow
M
Gartner Research
D Copyright 2004-2008 Dan McCreary & Associates 68
References
• Best high-level book for
EAI architects using J2EE
– J2EE Connector
Architecture and Enterprise
Application Integration (by
Sharma, Stearns and Ng)