SlideShare ist ein Scribd-Unternehmen logo
1 von 43
WMQ, WMB & EIP


Message-Oriented Middleware



jPrase


Vít Kotačka



29. 3. 2012
© Adastra Group
Agenda


     Enterprise Integration Patterns
        ̶   Overview
        ̶   Basic Patterns
        ̶   Complex Patterns
     WebSphere MQ
        ̶   Overview
        ̶   Java Interaction
     WebSphere Message Broker
        ̶   Overview
        ̶   Route Node
        ̶   Java Compute Node
        ̶   Web Services




2
Enterprise Integration Patterns




3
Enterprise (Application) Integration


     Enterprise integration is the task of making disparate
      applications work together to produce a unified set of
      functionality.




4
Main Integration Styles


     File Transfer – each application produce files of shared data
      for others to consume and consume files that others have
      produced.
     Shared Database – applications store the data they wish to
      share in a common database.
     Remote Procedure Invocation – each application expose
      some of its procedures so that they can be invoked
      remotedly, and have applications invoke those to initiate
      behavior and exchange data.
     Messaging – each application connect to a common
      messaging system, and exchange data and invoke behavior
      using messages.


5
Message


     An atomic data packet that the messaging system can
      transmit from one system to another.
     Two basic parts:
       ̶   Header – information used by the messaging system that describes the
           data being transmited (destination, expiration, sequence, etc).
       ̶   Body – data being transmited.
     Types:
       ̶   Document Message – passes a set of data to another application.
       ̶   Event Message – notifies another application of change.
       ̶   Command Message – invokes a procedure in another application.


     Java: JMS Message
      (TextMessage, BytesMessage, ObjectMessage, StreamMess
      age, MapMessage)
6
Message Channel


     A logical address in the messaging system, connecting two
      applications.
     One-way path – first application writes into while second
      application reads from the channel.
     Types:
        ̶   Point-toPoint Channel – one receiver will receive a particular message.
        ̶   Publish-Subscribe Channel – delivers a copy of a particular message to
            each receiver.
        ̶   Message Bus – well-designed set of channels that acts like a
            messaging API for a whole group of application.


     Java: JMS Destination (Queue, Topic)



7
Message Endpoint


     Encapsulates the messaging system from the rest of the
      application.
     Is channel-specific, can be used to send OR receive
      messages(not both).
     Types:
        ̶   Selective Consumer
        ̶   Durable Subscriber
        ̶   Idempotent Receiver
        ̶   Competing Consumers


     Java: JMS Producer & Consumer




8
Message Router


     A special filter which consumes a message from one
      message channel and republish it to a different message
      channel.
     Types:
        ̶   Content-Based Router
        ̶   Dynamic Router
        ̶   Message Broker


     Java: Apache ActiveMQ/Camel, Spring Integration




9
Pipes and Filters


      An architectural style to divide a larger processing task into a
       sequence of smaller, independent processing steps (filters)
       that are connected by channels (pipes).




      Java: Intercepting Filter (Core J2EE Patterns)




10
Message Translator


      A special filter for translation one data format into another.
      GoF Design Pattern Adapter.
      Levels of transformation:
         ̶   Data Structures – aggregations, cardinalities
         ̶   Data Types - conversions
         ̶   Data Representation – parse date and render in a different format.
         ̶   Transport – move data across protocols


      Java: ???, XSLT (Xalan)




11
EIP Basic Patterns Example




12
Message Broker


      A central component that can receive messages from multiple
       destinations, determine the correct destination, and route the
       message to the correct channel.
      Prevention of the spaghetti point-to-point integrations.
      Usually has to deal with translating message data formats
       between applications.
      Usually uses a Canonical Data Model.

      Java: Apache ActiveMQ/Camel, HornetQ (JBoss), BlazeDS




13
Canonical Data Model


      A common model independent from any specific application.
       Require each application to produce and consume messages
       in this common format.




      Java: Data Integration Guidelines (Java BluePrints Patterns)
      Non-Java: WSDL




14
WebSphere MQ




15
What is WebSphere MQ?


      Software that enables programs to communicate across a
       network using a simple and consistent application
       programming interface. It is messaging and
       queuing middleware.

      Messaging: programs communicate by sending each other
       data in messages rather than by calling each other directly.
      Queuing: the messages are placed on queues in storage, so
       that programs can run independently of each other, at
       different speeds and times, in different locations, and without
       having a logical connection between them.



16
WebSphere MQ Explorer




17
Queue Manager


      Owns and manages queues.
      Provides API to access queues and messages:
        ̶   Message Queue Interface (MQI)
        ̶   Java Message Service (JMS)
      May have multiple queue managers per system.
      The first WMQ object to be created.




18
Queue


      Local queue: stores messages
      Remote queue: definition for queue that is owned by another
       queue manager
      Transmission queue: temporarily stores messages that are
       destined for remote queue managers.
      Dead-letter queue: designated for messages that cannot be
       delivered




19
Message channel


      Provides a one-way communication path from one queue
       manager to another for the transmission of messages.
      Consists of
         ̶   Sending MCA (Message Channel Agent)
         ̶   Receiving MCA
         ̶   Communication connection
      Transmission queue is required (at the sending end).




20
Remote Queue Messaging

class WebSphere MQ



                                                                                                              remote host
                                           localhost



                                                                                                        «executi onEnvi ronment»
                                  «executi onEnvi ronment»
                                                                                                             WMQ remote
                                        WMQ local



                                                                                                         «Queue Manager»
                                       «Queue Manager»                                                    QM_REMOTE
                                        QM_JPRASE




                                                                                    «Transmi ssi on Queue»                     «Remote Queue»
                                                       «Local Queue»                                             «use»
                                                                                        QM_JPRASE                                 SENDER
                                                        RECEIVER



                                                               «use»                    «use»




                                                                           TCP
                     «Dead-Letter Queue»             «Recei ver Channel»              «Sender Channel»                      «Dead-Letter Queue»
                                                                           «use»   QM_REMOTE.QM_JPRASE
                            DLQ                   QM_REMOTE.QM_JPRASE                                                              DLQ




     21
Java Interaction


      WMQ classes for Java
        ̶   Encapsulate the Message Queue Interface (MQI).
        ̶   Full range of features of WMQ.
        ̶   Not a standard, but more easy.
      WMQ classes for JMS
        ̶   An industry standard
        ̶   Part of Java EE
        ̶   Central repository of JMS administered objects




22
WMQ classes for Java


      Requires Server-connection channel on the queue manager.

     MQQueueManager queueManager =
                     new MQQueueManager(QM_NAME);
     MQQueue queue =
     queueManager.accessQueue(QUEUE,
                               CMQC.MQOO_OUTPUT);
     MQMessage message = new MQMessage();
     message.writeUTF("Hello, jPrase!");
     queue.put(message);

     queue.close();
     queueManager.disconnect();
23
WMQ classes for Java (configuration)




24
WMQ classes for JMS


      Requires Server-connection channel on the queue manager.
      Requires Initial Context (JMS Administered Objects)
      JNDI Namespace
        ̶   LDAP Server
        ̶   File System
        ̶   Other
      JMS Administered Objects
        ̶   Connection Factories
        ̶   Destinations (mapped on queues)




25
WMQ classes for JMS (code)


     ConnectionFactory factory = (ConnectionFactory)
          context.lookup("jPraseConnectionFactory");
     Connection connection =
                     factory.createConnection();
     Session session=connection.createSession(false,
                           Session.AUTO_ACKNOWLEDGE);
     Destination destination =
                     session.createQueue("JPRASE");
     MessageProducer producer =
                session.createProducer(destination);
     TextMessage message =
        session.createTextMessage("Hello, jPrase!");
     producer.send(message);
26
WMQ classes for JMS (configuration)
     deployment JMS Interaction



                                                              localhost


                                                        «executi onEnvi ronment»
                                                              WMQ local




                              «Queue Manager»                                        «Ini ti al Context»
                                QM_JAVA                                                   file:/jms




                                  «Local Queue»                                      «Desti nati on»
                                    JPRASE                                             JPRASE




                         «Server-connecti on Channel»                              «Connecti on Factory»
                              JAVA.CHANNEL                                            jmsConnFact




27
WebSphere Message Broker




28
What is WebSphere Message Broker?


      You can use IBM® WebSphere® Message Broker to connect
       applications together, regardless of the message formats or
       protocols that they support.
      The product supports a wide range of protocols:
       WebSphere MQ, JMS 1.1, HTTP and HTTPS, Web Services
       (SOAP and REST), File, Enterprise Information Systems
       (including SAP and Siebel), and TCP/IP.
      It supports a broad range of data formats: binary formats (C
       and COBOL), XML, and industry standards (WIFT, EDI, and
       HIPAA).
      It supports many operations, including routing, transforming,
       filtering, enriching, monitoring, distribution, collection,
       correlation, and detection.

29
WebSphere Message Broker Toolkit




30
Message Flow


      A sequence of processing steps that run in the broker when
       an input message is received.
      A message flow must include an input node that provides the
       source of the messages that are processed. You can process
       the message in one or more ways, and optionally deliver it
       through one or more output nodes.
      The message is received as a bit stream, and is converted by
       a parser into a tree structure that is used internally in the
       message flow. Before the message is delivered to a final
       destination, it is converted back into a bit stream.




31
Message Set


      A container for grouping messages and associated message
       resources (elements, types, groups).
      Every message set requires at least one message definition
       file to describe its messages.
      A message describes the structure and content of a set of
       data that is passed from one application to another.
      Typically import of message formats described by:
        ̶   XML DTD
        ̶   XML Schema
        ̶   WSDL
        ̶   C structure




32
Execution Group


      An execution group is a named grouping of message
       flows that have been assigned to a broker. The broker
       enforces a degree of isolation between message flows in
       distinct execution groups by ensuring that they run in separate
       address spaces, or as unique processes.
      Each execution group is started as a separate operating
       system process, providing an isolated runtime environment
       for a set of deployed message flows. Within
       an execution group, the assigned message flows run in
       different thread pools.




33
Message Flow Deployment




34
Message Routing




35
Message Routing Example




36
Java Compute Node




37
Java Compute Node Example




38
Web Services Nodes


      Service
        ̶   SOAPInput
        ̶   SOAPReply
      Client
        ̶   SOAPRequest
        ̶   SOAPAsyncRequest
        ̶   SOAPAsyncResponse




39
Web Service Example, flow




40
Web Service Example, components




41
Sources


      Enterprise Integration Patterns: Designing, Building and
       Deploying Messaging Solutions. Gregor Hope, Bobby Woolf.
      WebSphere MQ Help
       http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp
      WebSphere Message Broker Help
       http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/inde
       x.jsp




42
43

Weitere ähnliche Inhalte

Was ist angesagt?

IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online TutorialsBigClasses.com
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerAnt Phillips
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]Ryan Cuprak
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)Juarez Junior
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQAn Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQRavi Yogesh
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction ejlp12
 
JMS Providers Overview
JMS Providers OverviewJMS Providers Overview
JMS Providers OverviewVadym Lotar
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1 von gosling
 
Understanding JMS Integration Patterns
Understanding JMS Integration Patterns Understanding JMS Integration Patterns
Understanding JMS Integration Patterns WSO2
 
Reliable Messaging /Guaranteed delivery
Reliable Messaging /Guaranteed deliveryReliable Messaging /Guaranteed delivery
Reliable Messaging /Guaranteed deliveryWSO2
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
Java Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPJava Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPIMC Institute
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixBruce Snyder
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesIMC Institute
 
Resume_vaibhav _MQ-3Yr
Resume_vaibhav _MQ-3YrResume_vaibhav _MQ-3Yr
Resume_vaibhav _MQ-3YrVaibhav Birla
 

Was ist angesagt? (20)

IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online Tutorials
 
WebSphere Message Broker Training Agenda
WebSphere Message Broker Training AgendaWebSphere Message Broker Training Agenda
WebSphere Message Broker Training Agenda
 
IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQAn Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction
 
JMS Providers Overview
JMS Providers OverviewJMS Providers Overview
JMS Providers Overview
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1
 
Understanding JMS Integration Patterns
Understanding JMS Integration Patterns Understanding JMS Integration Patterns
Understanding JMS Integration Patterns
 
Reliable Messaging /Guaranteed delivery
Reliable Messaging /Guaranteed deliveryReliable Messaging /Guaranteed delivery
Reliable Messaging /Guaranteed delivery
 
WhatsNewInJMS21
WhatsNewInJMS21WhatsNewInJMS21
WhatsNewInJMS21
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
Java Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPJava Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAP
 
WebSphere MQ tutorial
WebSphere MQ tutorialWebSphere MQ tutorial
WebSphere MQ tutorial
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web Services
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
Resume_vaibhav _MQ-3Yr
Resume_vaibhav _MQ-3YrResume_vaibhav _MQ-3Yr
Resume_vaibhav _MQ-3Yr
 

Ähnlich wie WMQ, WMB and EIP

Practical Wireless Mesh Networks and Their Applications
Practical Wireless Mesh Networks and Their ApplicationsPractical Wireless Mesh Networks and Their Applications
Practical Wireless Mesh Networks and Their ApplicationsRaluca Musaloiu-E.
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSBruce Snyder
 
Rabbit MQ introduction
Rabbit MQ introductionRabbit MQ introduction
Rabbit MQ introductionSitg Yao
 
Ibm websphere mq
Ibm websphere mqIbm websphere mq
Ibm websphere mqRakeshtoodi
 
Messaging for Modern Applications
Messaging for Modern ApplicationsMessaging for Modern Applications
Messaging for Modern ApplicationsTom McCuch
 
Lindsay distributed geventzmq
Lindsay distributed geventzmqLindsay distributed geventzmq
Lindsay distributed geventzmqRobin Xiao
 
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
WSO2 Product Release Webinar   Introducing the WSO2 Message BrokerWSO2 Product Release Webinar   Introducing the WSO2 Message Broker
WSO2 Product Release Webinar Introducing the WSO2 Message BrokerWSO2
 
IBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ ClustersIBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ ClustersIBM Systems UKI
 
Architectures with Windows Azure
Architectures with Windows AzureArchitectures with Windows Azure
Architectures with Windows AzureDamir Dobric
 
Cloud 2010
Cloud 2010Cloud 2010
Cloud 2010steccami
 
PLNOG 13: Michał Dubiel: OpenContrail software architecture
PLNOG 13: Michał Dubiel: OpenContrail software architecturePLNOG 13: Michał Dubiel: OpenContrail software architecture
PLNOG 13: Michał Dubiel: OpenContrail software architecturePROIDEA
 
RabbitMQ interview Questions and Answers
RabbitMQ interview Questions and AnswersRabbitMQ interview Questions and Answers
RabbitMQ interview Questions and Answersjeetendra mandal
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with NeutronKwonSun Bae
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQWoo Young Choi
 
quickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqquickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqjorgesimao71
 
533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdfMatt Leming
 

Ähnlich wie WMQ, WMB and EIP (20)

Practical Wireless Mesh Networks and Their Applications
Practical Wireless Mesh Networks and Their ApplicationsPractical Wireless Mesh Networks and Their Applications
Practical Wireless Mesh Networks and Their Applications
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
 
Rabbit MQ introduction
Rabbit MQ introductionRabbit MQ introduction
Rabbit MQ introduction
 
Ibm websphere mq
Ibm websphere mqIbm websphere mq
Ibm websphere mq
 
Messaging in Java
Messaging in JavaMessaging in Java
Messaging in Java
 
Messaging for Modern Applications
Messaging for Modern ApplicationsMessaging for Modern Applications
Messaging for Modern Applications
 
Lindsay distributed geventzmq
Lindsay distributed geventzmqLindsay distributed geventzmq
Lindsay distributed geventzmq
 
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
WSO2 Product Release Webinar   Introducing the WSO2 Message BrokerWSO2 Product Release Webinar   Introducing the WSO2 Message Broker
WSO2 Product Release Webinar Introducing the WSO2 Message Broker
 
IBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ ClustersIBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ Clusters
 
Architectures with Windows Azure
Architectures with Windows AzureArchitectures with Windows Azure
Architectures with Windows Azure
 
Spring integration
Spring integrationSpring integration
Spring integration
 
Cloud 2010
Cloud 2010Cloud 2010
Cloud 2010
 
PLNOG 13: Michał Dubiel: OpenContrail software architecture
PLNOG 13: Michał Dubiel: OpenContrail software architecturePLNOG 13: Michał Dubiel: OpenContrail software architecture
PLNOG 13: Michał Dubiel: OpenContrail software architecture
 
RabbitMQ interview Questions and Answers
RabbitMQ interview Questions and AnswersRabbitMQ interview Questions and Answers
RabbitMQ interview Questions and Answers
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ
 
quickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmqquickguide-einnovator-3-rabbitmq
quickguide-einnovator-3-rabbitmq
 
IBM MQ Basics
IBM MQ BasicsIBM MQ Basics
IBM MQ Basics
 
533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf
 
Mq Lecture
Mq LectureMq Lecture
Mq Lecture
 

Mehr von Vít Kotačka

Použití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyPoužití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyVít Kotačka
 
Enterprise Systems Integration
Enterprise Systems IntegrationEnterprise Systems Integration
Enterprise Systems IntegrationVít Kotačka
 
Prototypování v Groovy a Grails
Prototypování v Groovy a GrailsPrototypování v Groovy a Grails
Prototypování v Groovy a GrailsVít Kotačka
 

Mehr von Vít Kotačka (8)

Kanban Overview
Kanban OverviewKanban Overview
Kanban Overview
 
Gradle
GradleGradle
Gradle
 
Použití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architekturyPoužití JUnit a Mock frameworků pro testování Java EE architektury
Použití JUnit a Mock frameworků pro testování Java EE architektury
 
jBPM
jBPMjBPM
jBPM
 
Enterprise Systems Integration
Enterprise Systems IntegrationEnterprise Systems Integration
Enterprise Systems Integration
 
Prototypování v Groovy a Grails
Prototypování v Groovy a GrailsPrototypování v Groovy a Grails
Prototypování v Groovy a Grails
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Apache Wicket
Apache WicketApache Wicket
Apache Wicket
 

Kürzlich hochgeladen

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

WMQ, WMB and EIP

  • 1. WMQ, WMB & EIP Message-Oriented Middleware jPrase Vít Kotačka 29. 3. 2012 © Adastra Group
  • 2. Agenda  Enterprise Integration Patterns ̶ Overview ̶ Basic Patterns ̶ Complex Patterns  WebSphere MQ ̶ Overview ̶ Java Interaction  WebSphere Message Broker ̶ Overview ̶ Route Node ̶ Java Compute Node ̶ Web Services 2
  • 4. Enterprise (Application) Integration  Enterprise integration is the task of making disparate applications work together to produce a unified set of functionality. 4
  • 5. Main Integration Styles  File Transfer – each application produce files of shared data for others to consume and consume files that others have produced.  Shared Database – applications store the data they wish to share in a common database.  Remote Procedure Invocation – each application expose some of its procedures so that they can be invoked remotedly, and have applications invoke those to initiate behavior and exchange data.  Messaging – each application connect to a common messaging system, and exchange data and invoke behavior using messages. 5
  • 6. Message  An atomic data packet that the messaging system can transmit from one system to another.  Two basic parts: ̶ Header – information used by the messaging system that describes the data being transmited (destination, expiration, sequence, etc). ̶ Body – data being transmited.  Types: ̶ Document Message – passes a set of data to another application. ̶ Event Message – notifies another application of change. ̶ Command Message – invokes a procedure in another application.  Java: JMS Message (TextMessage, BytesMessage, ObjectMessage, StreamMess age, MapMessage) 6
  • 7. Message Channel  A logical address in the messaging system, connecting two applications.  One-way path – first application writes into while second application reads from the channel.  Types: ̶ Point-toPoint Channel – one receiver will receive a particular message. ̶ Publish-Subscribe Channel – delivers a copy of a particular message to each receiver. ̶ Message Bus – well-designed set of channels that acts like a messaging API for a whole group of application.  Java: JMS Destination (Queue, Topic) 7
  • 8. Message Endpoint  Encapsulates the messaging system from the rest of the application.  Is channel-specific, can be used to send OR receive messages(not both).  Types: ̶ Selective Consumer ̶ Durable Subscriber ̶ Idempotent Receiver ̶ Competing Consumers  Java: JMS Producer & Consumer 8
  • 9. Message Router  A special filter which consumes a message from one message channel and republish it to a different message channel.  Types: ̶ Content-Based Router ̶ Dynamic Router ̶ Message Broker  Java: Apache ActiveMQ/Camel, Spring Integration 9
  • 10. Pipes and Filters  An architectural style to divide a larger processing task into a sequence of smaller, independent processing steps (filters) that are connected by channels (pipes).  Java: Intercepting Filter (Core J2EE Patterns) 10
  • 11. Message Translator  A special filter for translation one data format into another.  GoF Design Pattern Adapter.  Levels of transformation: ̶ Data Structures – aggregations, cardinalities ̶ Data Types - conversions ̶ Data Representation – parse date and render in a different format. ̶ Transport – move data across protocols  Java: ???, XSLT (Xalan) 11
  • 12. EIP Basic Patterns Example 12
  • 13. Message Broker  A central component that can receive messages from multiple destinations, determine the correct destination, and route the message to the correct channel.  Prevention of the spaghetti point-to-point integrations.  Usually has to deal with translating message data formats between applications.  Usually uses a Canonical Data Model.  Java: Apache ActiveMQ/Camel, HornetQ (JBoss), BlazeDS 13
  • 14. Canonical Data Model  A common model independent from any specific application. Require each application to produce and consume messages in this common format.  Java: Data Integration Guidelines (Java BluePrints Patterns)  Non-Java: WSDL 14
  • 16. What is WebSphere MQ?  Software that enables programs to communicate across a network using a simple and consistent application programming interface. It is messaging and queuing middleware.  Messaging: programs communicate by sending each other data in messages rather than by calling each other directly.  Queuing: the messages are placed on queues in storage, so that programs can run independently of each other, at different speeds and times, in different locations, and without having a logical connection between them. 16
  • 18. Queue Manager  Owns and manages queues.  Provides API to access queues and messages: ̶ Message Queue Interface (MQI) ̶ Java Message Service (JMS)  May have multiple queue managers per system.  The first WMQ object to be created. 18
  • 19. Queue  Local queue: stores messages  Remote queue: definition for queue that is owned by another queue manager  Transmission queue: temporarily stores messages that are destined for remote queue managers.  Dead-letter queue: designated for messages that cannot be delivered 19
  • 20. Message channel  Provides a one-way communication path from one queue manager to another for the transmission of messages.  Consists of ̶ Sending MCA (Message Channel Agent) ̶ Receiving MCA ̶ Communication connection  Transmission queue is required (at the sending end). 20
  • 21. Remote Queue Messaging class WebSphere MQ remote host localhost «executi onEnvi ronment» «executi onEnvi ronment» WMQ remote WMQ local «Queue Manager» «Queue Manager» QM_REMOTE QM_JPRASE «Transmi ssi on Queue» «Remote Queue» «Local Queue» «use» QM_JPRASE SENDER RECEIVER «use» «use» TCP «Dead-Letter Queue» «Recei ver Channel» «Sender Channel» «Dead-Letter Queue» «use» QM_REMOTE.QM_JPRASE DLQ QM_REMOTE.QM_JPRASE DLQ 21
  • 22. Java Interaction  WMQ classes for Java ̶ Encapsulate the Message Queue Interface (MQI). ̶ Full range of features of WMQ. ̶ Not a standard, but more easy.  WMQ classes for JMS ̶ An industry standard ̶ Part of Java EE ̶ Central repository of JMS administered objects 22
  • 23. WMQ classes for Java  Requires Server-connection channel on the queue manager. MQQueueManager queueManager = new MQQueueManager(QM_NAME); MQQueue queue = queueManager.accessQueue(QUEUE, CMQC.MQOO_OUTPUT); MQMessage message = new MQMessage(); message.writeUTF("Hello, jPrase!"); queue.put(message); queue.close(); queueManager.disconnect(); 23
  • 24. WMQ classes for Java (configuration) 24
  • 25. WMQ classes for JMS  Requires Server-connection channel on the queue manager.  Requires Initial Context (JMS Administered Objects)  JNDI Namespace ̶ LDAP Server ̶ File System ̶ Other  JMS Administered Objects ̶ Connection Factories ̶ Destinations (mapped on queues) 25
  • 26. WMQ classes for JMS (code) ConnectionFactory factory = (ConnectionFactory) context.lookup("jPraseConnectionFactory"); Connection connection = factory.createConnection(); Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("JPRASE"); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage("Hello, jPrase!"); producer.send(message); 26
  • 27. WMQ classes for JMS (configuration) deployment JMS Interaction localhost «executi onEnvi ronment» WMQ local «Queue Manager» «Ini ti al Context» QM_JAVA file:/jms «Local Queue» «Desti nati on» JPRASE JPRASE «Server-connecti on Channel» «Connecti on Factory» JAVA.CHANNEL jmsConnFact 27
  • 29. What is WebSphere Message Broker?  You can use IBM® WebSphere® Message Broker to connect applications together, regardless of the message formats or protocols that they support.  The product supports a wide range of protocols: WebSphere MQ, JMS 1.1, HTTP and HTTPS, Web Services (SOAP and REST), File, Enterprise Information Systems (including SAP and Siebel), and TCP/IP.  It supports a broad range of data formats: binary formats (C and COBOL), XML, and industry standards (WIFT, EDI, and HIPAA).  It supports many operations, including routing, transforming, filtering, enriching, monitoring, distribution, collection, correlation, and detection. 29
  • 31. Message Flow  A sequence of processing steps that run in the broker when an input message is received.  A message flow must include an input node that provides the source of the messages that are processed. You can process the message in one or more ways, and optionally deliver it through one or more output nodes.  The message is received as a bit stream, and is converted by a parser into a tree structure that is used internally in the message flow. Before the message is delivered to a final destination, it is converted back into a bit stream. 31
  • 32. Message Set  A container for grouping messages and associated message resources (elements, types, groups).  Every message set requires at least one message definition file to describe its messages.  A message describes the structure and content of a set of data that is passed from one application to another.  Typically import of message formats described by: ̶ XML DTD ̶ XML Schema ̶ WSDL ̶ C structure 32
  • 33. Execution Group  An execution group is a named grouping of message flows that have been assigned to a broker. The broker enforces a degree of isolation between message flows in distinct execution groups by ensuring that they run in separate address spaces, or as unique processes.  Each execution group is started as a separate operating system process, providing an isolated runtime environment for a set of deployed message flows. Within an execution group, the assigned message flows run in different thread pools. 33
  • 38. Java Compute Node Example 38
  • 39. Web Services Nodes  Service ̶ SOAPInput ̶ SOAPReply  Client ̶ SOAPRequest ̶ SOAPAsyncRequest ̶ SOAPAsyncResponse 39
  • 41. Web Service Example, components 41
  • 42. Sources  Enterprise Integration Patterns: Designing, Building and Deploying Messaging Solutions. Gregor Hope, Bobby Woolf.  WebSphere MQ Help http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp  WebSphere Message Broker Help http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/inde x.jsp 42
  • 43. 43