1 / 85

An Overview of JBI

An Overview of JBI. May 2007. About Me. Application Architect with Daugherty Business Solutions Working on a Fraud Detection Platform NOT doing integrations right now :-( Implemented several of Hohpe’s patterns in JMS. Part 0 - The “level-set”. We all know Java, except Stacey

june
Download Presentation

An Overview of JBI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Overview of JBI • May 2007

  2. About Me • Application Architect with Daugherty Business Solutions • Working on a Fraud Detection Platform • NOT doing integrations right now :-( • Implemented several of Hohpe’s patterns in JMS

  3. Part 0 - The “level-set” • We all know Java, except Stacey • We’ve played with Web services and WSDL • We know <sarcasm> and love </sarcasm> XML • May have used JMS or another messaging provider, IBM MQSeries, MSMQ etc.

  4. A motivating example... • Consider the traditional client/server application...

  5. Client/Server Problems • Tight coupling • Protocol independence? (TCP/IP connection-oriented protocol) • No platform independence - 32 or 64 bit, PC to Mainframe, etc. • No recovery • No failover

  6. Enterprise “Opportunities” • Data is transported between apps • Data needs to be understood by both apps • Require a communication channel to move the information • Two endpoints must be available • Information is transported as a message

  7. Definitions...

  8. Service-Oriented Architecture (SOA) • A design approach (paradigm) that encapsulates application logic in a set of services that interact using a common communications protocol. • Communications protocols can be XML-based Web services, JMS, CORBA etc.

  9. Enterprise Service Bus(ESB) • Data grid capable of spanning the Enterprise globally • Standards-based integration • Integrates with anything that supports SOAP and Web services • Highly distributed, deployed services

  10. ESB continued... • Distributed Data transformation • Remote configuration and management • Uses XML as the lingua franca of communication • Real-time Business data

  11. Web Service • Based on open standards • Discoverable, distributed Service • XML based interaction • Platform agnostic • Vendor neutral

  12. Web Service Roles • Services can assume different roles when involved in different integration scenarios: • Service provider • Service requestor • Intermediary • Initial sender • Ultimate receiver

  13. WSDL (whiz-dul) • WSDL 1.1 originally submitted by Ariba, IBM and Microsoft • XML document describing a Web service • Binding section “operation” attribute is the exposed service • Each operation requires a SOAP action to be defined

  14. Document Structure <definitions> <types> </types> <message> </message> <portType> </portType> <binding> </binding> </definitions>

  15. Document Sample <definitions name=”OrderingService”> <message name=”placeOrderRequest”> <part name=”custName” type=”string”/> <part name=”prodNum” type=”string”/> </message> <message name=”placeOrderRequest”> <part name=”custName” type=”string”/> <part name=”prodNum” type=”string”/> </message> <portType name=”OrderingPort”> <operation name=”placeOrder”> <input message=”placeOrderRequest”/> <output message=”placeOrderResponse”/> </operation> </portType> <binding type=”OrderingPort” name=”OrderingBinding”> <soap: binding style=”rpc” transport=”http”/> <operation name=”placeOrder”/> </binding> <service name=”SalesOrderService”> <port binding=”OrderingBinding”> <soap:address location=”http://...”/> </port> </service> </definitions>

  16. SOAP (not the cleaner) • A W3C Spec, originally submitted by Microsoft • A protocol for exchanging XML-based messages and accessing Webservices • Allows for RPC and Document styles of communication • SOAP message consists of Envelope and Body

  17. Sample SOAP Request <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productID>827635</productID> </getProductDetails> </soap:Body> </soap:Envelope> Source: http://en.wikipedia.org/wiki/SOAP

  18. Sample SOAP Response <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productID>827635</productID> <description>3-Piece luggage set. Black Polyester.</description> <price currency="NIS">96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope> Source: http://en.wikipedia.org/wiki/SOAP

  19. Messaging • Some form of data exchange between a provider/sender and a consumer/receiver of information through an Enterprise channel

  20. Message...Hohpe’s • A data record that the messaging system can transmit through a “Message Channel” • Consists of header information used by the messaging system that describes the data being transmitted, its origin, its destination etc. (Note: Message Routing semantics)

  21. Message...Buschmann/Henney/Schmidt • Message queuing systems, such as IBM MQSeries or Microsoft MSMQ messages, define a user-defined body with which higher layers can implicitly transmit user data. (Infers Message Routing intelligence)

  22. Message...Krafzig/Banke/Slama • Consists of header and a payload. The structure of the header file is usually predefined by the system and contains network routing information

  23. So, how does JBI define a Message? • Called a Normalized Message • Consists of 3 parts: • a payload - XML document that conforms to WSDL message type • message properties/metadata (a.k.a routing information) • message attachments

  24. What do they all agree on? • A message contains a data payload and supplemental information that allows it to be intelligently routed through some sort of message delivery channel

  25. Basic Integration • Sending messages through a channel that may, or may not, provide transformations and/or business logic between endpoints.

  26. So what were integrations prior to JBI?

  27. Integrations, silly!

  28. Integration Patterns

  29. Integration Components • Application(s) • Channel • Message • Endpoints • Message Router

  30. Applications • Can be either a provider or consumer of a particular service • Acts as an Endpoint, stay tuned...more on this in a few minutes

  31. Channel • Logical address, not physical • Agreed upon by both consumer and producer • A good example: http://www.foo.com • JMS: Topic or Queue

  32. Message • A representation of “some” data • The payload that either consumer or producer care about • E.g. Raw bytes, formatted text (XML) etc. • Metadata describing routing information through ESB

  33. Endpoints • Initiator or receiver of information • one end of the entire integration • Or can be a router of information to other consumers • JMS: Topics have subscribers

  34. Message Router • Logcially routes messages based on payload, content or other metadata • Example Patterns: Message Broker, Message Dispatcher, Splitter, Filter

  35. Message Transformations • When sender and receiver do not agree on the format • Converts a message from one format to another • Hohpe’s patterns: Message Translator, Content Enricher, Normalizer etc.

  36. Ok John, get to the point!

  37. Java Business Integrations

  38. JBI - The What? • JSR 208, Standard Specification • Infrastructure and Component framework for integrations • JBI Components plug into the JBI Framework

  39. JBI - What? part deux • Divided into Service Engine Components and Binding Components • Components communicate through mediated Message Exchanges

  40. Service Engine (SE)Components • Plug-in components provide business logic, transformational services etc. • Some SE's can contain other SE's, “container of containers” • ServiceMix provides SE's for JMS, EJB, Drools, HTTP and many many more

  41. Binding (BC) Components • Provide connectivity to components external to the JBI environment • Send and receive messages for some particular protocol and transports • Provide a sort of adapter for messages and the transport and protocol

  42. JBI Management • Management Structure based on JMX • Standardizes: • Installation • Managing component lifecycle • Deploying services to components • Components can act as a container for other components

  43. JBI Roles • Similar to JEE, based on roles for development and deployment • Integration Architect – designs the overall approach to solving integration problems • Integration Technologist – identifies particular services needed for solving integration problems

  44. Roles continued... • System Administrator – installs, configures and monitors the JBI environment • JBI Component Developer – provides Java components that conform to the JBI-spec contracts

  45. JBI Architecture • WSDL-based Messaging Model • Declarative (XML) service model • Supports plug-in components • Management configuration through JMX

  46. WSDL Messaging Model • Produces or Consumes services using WSDL 1.1 or WSDL 2.0 specifications • Abstract Model • Concrete Model

  47. Abstract Model • Message Types defined in XML schema • Operations defined with a name and a Message Exchange Pattern (MEP) and a type • Interfaces - collections of related operations (not the same as a Java interface) • Communication protocol neutral

  48. Concrete Model • Build upon the Abstract Service Model • Maps abstract definition to communication protocol and communication endpoint • Binding type - communication protocol • Endpoints - designates endpoint information • Service - name, type and endpoint of service

  49. Normalized Message Router (NMR) • Receives Message Exchanges from JBI components • Routes to appropriate handling component • Decouples Producers from Consumers enabling different processing

  50. Normalized Message • Defined earlier • JBI’s “version” of a plain Message • Consists of 3 parts: • Message metadata for routing • Payload • Arbitrary attachments

More Related