Upload
vohuong
View
234
Download
5
Embed Size (px)
Citation preview
© 2008 IBM Corporation
A Technical Introduction to WebSphere Message Broker and WebSphere Enterprise Service Bus
Gerry ReillyWebSphere MQ & ESB DevelopmentIBM Software Group – Hursley Development Lab
© 2008 IBM Corporation
What is an ESB and why do I care?
WebSphere ESB and SOA
3© 2008 IBM Corporation
The Enterprise Service BusAn Enterprise Service Bus (ESB) is a flexible connectivity infrastructure for integrating applications and services.
Shape = Transport protocolColor = Data format
An ESB performs the following between requestor and service
CONVERTSbetween different transport protocols
MATCHES & ROUTEScommunications between services
TRANSFORMSbetween different data formats
IDENTIFIES & DISTRIBUTESbusiness events
4© 2008 IBM Corporation
Interaction Services Process Services Information Services
Partner Services Business App Services Access Services
Business Innovation & Optimization Services
Dev
elop
men
tSe
rvic
es
Man
agem
ent
Serv
ices
Infrastructure Services
Business Services
ESB
SOA and BPM Platform
WebSphere Business Modeler WebSphere Business Monitor
Rational Software Architect
Rational Application Developer
WebSphere Integration Developer
WebSphere PortalWebSphere Process Server WebSphere Information
Integrator
WebSphere Partner Gateway WebSphere App ServerWebSphere Adapters
WebSphere Network Deployment WebSphere Extended Deployment
WebSphere Everyplace Deployment
Tivoli Composite Application Manager
Tivoli Identity
Manager
Tivoli Federated
Identity Manager
Tivoli Access
Manager
Lotus Workplace Server
WebSphere Message Broker
WebSphere Service Registry and Repository
WebSphere Enterprise Service Bus
WebSphere Business Services Fabric
5© 2008 IBM Corporation
ESB offerings from IBM WebSphereWebSphere delivers the most complete ESB solution
WebSphere ESBBuilt on WebSphere
Application Server for an integrated SOA platform
WebSphereMessage Broker
Built for universal connectivity and transformation in heterogeneous
IT environments
WebSphere DataPowerIntegration AppliancePurpose-built hardware ESB for simplified deployment and
hardened security
© 2008 IBM Corporation
WebSphere Message Broker
WebSphere ESB and SOA
7© 2008 IBM Corporation
Agenda
What is Message Broker?Programming Concepts
– Message Flows
– Nodes
– Message ModelProduct Overview
– Components
– User Roles and Environments
– Connectivity Scenarios
8© 2008 IBM Corporation
What is WebSphere Message Broker?
Message Broker enables “universal connectivity” by integrating protocols, message formats and mediation patterns– Emphasis on application re-use
Three programming constructs are used: – Message Flows
– Nodes
– Message Models
9© 2008 IBM Corporation
Application Connectivity
Protocols– e.g. MQ, TCP/IP, HTTP, File system, FTP, SMTP etc.
Message Formats– e.g. Binary (C/COBOL), XML, Industry (SWIFT, EDI, HL7), User-defined
Mediation Patterns– e.g. Route, Transform, Enrich, Filter, Monitor, Distribute, Decompose, Correlate, Fire and Forget,
Request/Reply, Publish/Subscribe, Aggregation, Fan-in, Complex Event Processing
10© 2008 IBM Corporation
Mediation Patterns – Routing and Transformation
[Customer, Order, Quantity, Price, Date]
Mr. Smith, Graphics Card, 32, 100, 11/07/08
<order><name><first>John</first><last>Smith</last>
</name><item>Graphics Card</item><quantity>32</quantity><price>200</price><date>07/11/08</date>
</order>[Customer, Order, Quantity, Price, Date]
11© 2008 IBM Corporation
Output targetTransform
Input source Output target
Output target (Failure)
Message Flows
ReusableScalableTransactional
12© 2008 IBM Corporation
Message Flow Example
13© 2008 IBM Corporation
Nodes
The building blocks of message flows
Each node type performs a different (input, output or processing) action
Many different node types– Grouped into logical categories in the
message flow editor
14© 2008 IBM Corporation
Node Types [1]
15© 2008 IBM Corporation
Node Types [2]
Many other nodes available through product extensions and supportpacs– E.g. WebSphere TX, Tibco RV, CICS, VSAM, QSAM
Write your own User-Defined Nodes in C or Java
16© 2008 IBM Corporation
Action
Nodes
input terminal
input connector
output connectors
node
input message
tree output terminals
error terminal
output message
trees
17© 2008 IBM Corporation
Parsers
…draCscihparG,htimSderF
Input Message Bit-streamInput Message Bit-stream
…n/<htimS.rM>eman<>redro<
Output Message Bit-stream
Output Message Bit-stream
Parser converts bit-stream to logical structure
Model
Parser converts logical structure to bit-stream
Model
18© 2008 IBM Corporation
19© 2008 IBM Corporation
20© 2008 IBM Corporation
Message Modeling
<order><name>
<first>John</first><last>Smith</last>
</name><item>Graphics Card</item><quantity>32</quantity><price>200</price><date>07/11/08</date>
</order>
John,Smith,Graphics Card,32,200,07/11/08
John Smith............Graphics Card.........3220020071108.........
Order
Name Item Qty Price Date
First LastString String
String Integer Integer Date
Physical Logical
21© 2008 IBM Corporation
Creating Message Models
Message Set
C Header
XMLSchema
COBOLCopybook
WSDL
DTD
File Import
EnterpriseInformation
System(SAP, Siebel, PeopleSoft)
Pre-built
SOAP, MIME, CSV, IDOC,
SWIFT, EDIFACT, X12,
FIX, HL7,etc
Defineyour ownusing the
Eclipse-based Tooling
Parsers
Message Broker
WebSphereTransformation
Extender
Type tree
22© 2008 IBM Corporation
Message Transformation
The conversion of one message format into another
Graphical, easy to useDrag and Drop fields, apply functions
Convert XML to anythingUses standard XSL Style sheets
Describe powerful transformations quicklyUses SQL-based language (ESQL)
Uses Java programming languageAbility to use XPath
Run a WebSphere Transformation Extender map
23© 2008 IBM Corporation
Examples of Message Addressing
public class jcn extends MbJavaComputeNode {public void evaluate(MbMessageAssembly assembly) throws MbException {...String lastName =
(String)assembly.getMessage().evaluateXPath(“/Body/Order/Name/Last”);...}
}
IF Body.Order.Date < ‘2008/01/01’ THENINSERT INTO Database.OldOrders (LastName,Item,Quantity)VALUES (Body.Order.Name.Last,
Body.Order.Item,Body.Order.Quantity);
ENDIF;
24© 2008 IBM Corporation
Product Architecture
Configuration Manager
Broker
Broker
BrokerMessage Broker Toolkit
Standalone runtime environmentExecution groups for isolation and scalabilityMany different platformsAlso provides runtime security model and augmented pub/sub
Broker Development and Administration EnvironmentBased on Rational Application DeveloperWindows and Linux
Manages a domain of brokersDrives deploymentControls access to domain
25© 2008 IBM Corporation
Typical User Roles and Environments
Application Developer– Develops message flows, message models
etc.
– Unit Tests on local machine
– Creates Broker Archive (BAR) files containing required artefacts
Administrator– Customizes BAR for target environment
(message flow properties including queues, database names etc.)
– Deploys BAR to target broker
– Broker management and operational control
– Monitoring…
Development Test QA Production
26© 2008 IBM Corporation
Monitoring
Broker provides extensive monitoring and tracking capability
– Accounting and Statistics– Message Tracking Exits
Many monitoring and message tracking tools available from IBM and Business Partners, for example
– IS02 SupportPac– Omegamon XE – Q Nami!– ITCAM for SOA
Broker event publishing– e.g. Ability to publish business events
Web Services NavigatorWeb Services Navigator
Response TimeResponse Time
Message CountMessage Count Message
SizeMessage Size
27© 2008 IBM Corporation
Usage Patterns with Message Broker
Service Enablement
Service Virtualization
OROR
OR
Message Enablement
Message Brokering
File Processing
Event Processing
28© 2008 IBM Corporation
Connectivity Examples
29© 2008 IBM Corporation
WebSphere Message Broker
Universal Connectivity– Simplify application connectivity to provide a flexible and dynamic infrastructure
Routes and transforms messages FROM anywhere, TO anywhere– Supports a wide range of protocols
– MQ, JMS 1.1, HTTP(S), Web Services, File, EIS (SAP,SEBL…), TCP/IP, User Defined– Supports a broad range of data formats
– Binary (C/COBOL), XML, Industry (SWIFT, EDI, HIPAA…), User Defined– Interactions and Operations
– Route, Filter, Transform, Enrich, Monitor, Distribute, Decompose, Correlate, Detect…
Simple programming– Message Flows to describe application connectivity comprising…– Message Nodes which encapsulate required integration logic which operate on…– Message Tree which describes the data in a format independent manner– Transformation options include Graphical mapping, Java, ESQL, XSL and WTX
Operational Management and Performance– Extensive Administration and Systems Management facilities for developed solutions– Wide range of operating system and hardware platforms supported– Offers performance of traditional transaction processing environments
© 2008 IBM Corporation
WebSphere Enterprise Service Bus
WebSphere ESB and SOA
31© 2008 IBM Corporation
Agenda
ContextWESB Product SummaryConcepts
– Programming Model
– Configuration
32© 2008 IBM Corporation
• Provides business visibility with embedded event engine for Business Activity Monitoring solutions
• Optimized for standard XML and web services formats, with basic support for other common formats
• Integrates everything with WebSphere Adapters for enterprise applications, the breadth of the WebSphere ecosystem, and support for standard protocols
• Delivers leadership in SOA standards for service composition, and leverages the embedded messaging and web services engines from WebSphere
WebSphere ESBBuilt on WebSphere Application Server for an integrated SOA platform
Integrates seamlessly with WebSphere platform
Delivers business-critical qualities of service
Easily extended to WebSphere Process Server
Integrated solution for service mediation and hosting
33© 2008 IBM Corporation
WebSphere Application Server, ESB, and Process Server
WebSphereApplication
Server
WebSphereApplication Server ND
WebSphere ESB
WebSphere Process Server
App Server
Clustering
Mediation
ChoreographyAnd Solution
Viewpoint
34© 2008 IBM Corporation
WebSphere ESB: ...the story so far
C++Client
.NetClient
WebSphere ESB
WebSphere Application ServerTivoli Access Manager DB2 Universal Database
Edge Components
Clients:Messaging:
JMS 1.1MQ interoperability
Mediation Function
Web Services:
WebSphere Adapter Support
WS-*
SOAP/HTTP
UDDI Registry 3.0
SOAP/JMS
WebSphere IntegrationDeveloper
SCAProgrammingModel:
SDO
SCA
UDDI Web Services Gateway
SMO
Adapters*
Email Flat File JDBC
*Licence to use. Adapters packaged with WID
35© 2008 IBM Corporation
Service Component Architecture (SCA)
Component-based programming model for constructing distributed applications
– Components run in SCA container
– Component interfaces described by WSDLComponent invocations via API or by wiring in SCA assemblyApplication data represented by business objects (SDO)Many possible component implementation types
– ESB focus is on Mediation Flow Component
36© 2008 IBM Corporation
Common Data Model: Business Objects
Business Objects represent structured application dataConsistent logical representation, independent of data source or wire formatBased upon SDO standardMultiple data bindings can be supported
Business object definition
(SDO/XML schema)
37© 2008 IBM Corporation
Service Message Object
ServiceMessageObject
headers context body
SMOHeader
JMSHeader
SOAPHeader correlation transient failInfo
MQHeader primitiveContext
38© 2008 IBM Corporation
Service Message Object addressability
Addressable by XPath:
ServiceMessageObject
headers context body
SMOHeader
JMSHeader
SOAPHeader correlation transient failInfo
/
ServiceMessageObject
/context
context
/context/transient
transient
MQHeader primitiveContext
39© 2008 IBM Corporation
Interactions with external service requesters and providers defined by imports and exports
–Interfaces are defined using the Web Services Description Language (WSDL)–Which may contain several service operations
–Different kinds of requester and provider are made available via different bindings for the imports and exports
Concepts: Mediation Module
Export ImportMediationmodule
40© 2008 IBM Corporation
Export/Import Bindings
WebSphere Adapters (e.g. CICS, IMS, SAP...)
Web services (SOAP/HTTP, SOAP/JMS)
JMS / WebSphere MQ JMS / WebSphere MQ
EJB
Native (SCA)
Java invocation
41© 2008 IBM Corporation
Concepts: Integrating request-response interactions using WebSphere ESB Mediation Flow Components
Processing is performed by one or more mediation flows, comprising instances of mediation primitivesProcessing of requests is separated from processing of responsesWebSphere ESB Mediation Flow Components can act as ‘service intermediaries’
– Allowing the mediation flow component to – pass a (potentially modified) request from a service requester to a
service provider– pass a (potentially modified) response from a service provider to a
service requesterRequest processing within a mediation flow component can send a response back to the requester without necessarily needing to contact a service provider
42© 2008 IBM Corporation
Mediation Flow (Example)
43© 2008 IBM Corporation
Anatomy of a Mediation Primitive
One or more typed inputTerminal (shipped primitives
only have one) 0..n output typed outputterminals
Fail terminal fired if processing fails
• Acts like a Java catch block if wired• If not wired then causal exception is thrown up causing flow failure• Receives original message from input terminal
44© 2008 IBM Corporation
WebSphere ESB Mediation Primitives
Routes messages within a flow
Transforms content
Logs message header and/or body to database
Enriches message with content from databaseExecutes custom logic (Java)
Terminates a flow with an exception
Terminates flow normally
Emits a common base event at a point significant in the mediation flow.
Sets, copies, or deletes the content of message headers or bodies
Queries WSRR and retrieves service endpoints can then be used to dynamically invoke a service
Performs structure-structure mapping, provides access to relationships function.
Allows a service to be invoked from within a request or response flow
Allows a weakly typed element (xs:any, xs:anyType, ...) to have a type asserted at runtime
Enables a flow to be split and may be paired with Fanin
Allows a flow that has been split using Fanout to be joined - can be used to perform aggregation
45© 2008 IBM Corporation
Dynamic Service Invocation
Property configuration –promoted from MediationFlow component
Dynamic Endpoint Selection – based on endpoint contained in SMO
Mediation Module
Service endpoints
Mediation flow
component
46© 2008 IBM Corporation
Typical Integration Developer Task Flow
Identify service endpointsto be integrated
Assert basic connectivitybetween endpoints
Implement mediation functionto allow communication
Test and debug mediationfunction
Deploy results to theruntime
47© 2008 IBM Corporation
1. Integration developer specifies the service endpoints that need to be integrated
Uses the ‘module editor’ to construct a mediation module
– specifies how a subset of WebSphere ESB’sservice requesters and service providers interact
Within the module– Service requesters are represented
as ‘exports’
– Service providers are represented as ‘imports’
– The integration (mediation) function is represented as a ‘mediation flow component’
– Imports and exports are connected to the mediation flow component
ExportRepresents a service offered by the module, such as a Web Service client or a JMS application.
Import
Represents a service provider invoked by the module, such as a Web Service provider or a JMS application
Mediation Flow Component
Allows the integration specialist to compose a variety of useful intermediation functionse.g. routing, message transformation, and logging
Interface
Interface offered by the component
ReferenceSpecifies the interface of a service used bythe component
Module EditorAllows the user to define and connect the contents of a module.
The module defines the unit of deployment to the WebSphere ESB
48© 2008 IBM Corporation
Typical Integration Developer Task Flow
Identify service endpointsto be integrated
Assert basic connectivitybetween endpoints
Implement mediation functionto allow communication
Test and debug mediationfunction
Deploy results to theruntime
49© 2008 IBM Corporation
Assert the basic connectivity between endpoints
Concept– Operation connections define links between service requester interfaces and service provider interfaces– Define paths along which mediation can occurTask
– Identify paths between, and connect requester operations to provider operations
Service requesteroperation
Service requesteroperation
50© 2008 IBM Corporation
2. Integration Developer asserts the basic connectivity between these endpoints
The integration developer uses the mediation tooling to specify the essential connectivity between a requester and one or more service providers
Provider’s invoked operation
Client’s requested operation
Provider’s invoked operation
51© 2008 IBM Corporation
Typical Integration Developer Task Flow
Identify service endpointsto be integrated
Assert basic connectivitybetween endpoints
Implement mediation functionto allow communication
Test and debug mediationfunction
Deploy results to theruntime
52© 2008 IBM Corporation
Implement mediation function to allow communicationConcept
– Mediate message using supplied primitives and/or by implementing custom mediations– Mediate the message in the form of a Service Message ObjectTask
– Construct a mediation flow by selecting and connecting mediation primitives together
53© 2008 IBM Corporation
3. Decides on the mediation function required to allow endpoints to communicate effectively
The integration developer constructs a mediation flow for the service request by selecting and connecting mediation primitives from supplied function
Primitives
Perform basic logic or message manipulation
‘Callout’Causes the specified operation to be invoked
‘Input’Represents the invocation of the specified operation on the mediation flow component’s interface
‘Callout’Causes the specified operation to be invoked
54© 2008 IBM Corporation
3. Decides on the mediation function required to allow endpoints to communicate effectively
Response flow
handles responses
The integration developer constructs a mediation flow for the service request by selecting and connecting mediation primitives from supplied function
55© 2008 IBM Corporation
4. Integration developer customizes the elements of the mediation flow
e.g. Customizes the XSLT transform mediation primitive by using mapping tool to construct an XSLT transform
The structure of the message is represented
graphically
A properties view is provided where the details
of the mapping can be specified
Define functions that apply to the mapping
56© 2008 IBM Corporation
Debug mediation flows using an in-place visual debugger
Breakpoints can be added, step into, through, or over areas of interest while inspecting the values of the messages
Use the visual debugging tools to debug a solution
5. Debugs the composed/configured mediation function: WID Mediation Visual Debug
57© 2008 IBM Corporation
Test and Debug – Integration Test Client
Launch Integration Test ClientSelect Module, Operation
Enter Input Data & Launch Operation
Examine, Event Trace & Output
58© 2008 IBM Corporation
Module Centric View
SCA module collection panel
Applications can be started and stopped
Status can be monitored
Link to enterprise application detail
Link to SCA module detail
59© 2008 IBM Corporation
Module connectivityOne module can be directed to interact with another by ‘wiring’ an import to an export
– This is supported by the WebSphere ESB ‘default bindings’– Service requests from the import will be fulfilled by the specified export
The administrator can change this wiring post-deployment– This allows the administrator to change how modules are connected by altering the ‘wiring’ of an import
module
module
WireConfigures the connection between a default module import binding and a
default module export
Read-only module properties
Link to WSDL interface detail
Link to SCA import binding detail
Link to SCA export binding detail (read-only)
60© 2008 IBM Corporation
WebService Endpoint Administration
Can specify a new endpoint
61© 2008 IBM Corporation
ESB Mediation Module Properties
To effect this change, the administrator uses the administrative console to view the module properties defined for the mediation module, and modifies the value of the MessageLogger.root module property from /body to /
62© 2008 IBM Corporation
• Provides business visibility with embedded event engine for Business Activity Monitoring solutions
• Optimized for standard XML and web services formats, with basic support for other common formats
• Integrates everything with WebSphere Adapters for enterprise applications, the breadth of the WebSphere ecosystem, and support for standard protocols
• Delivers leadership in SOA standards for service composition, and leverages the embedded messaging and web services engines from WebSphere
Summary
Integrates seamlessly with WebSphere platform
Delivers business-critical qualities of service
Easily extended to WebSphere Process Server
Integrated solution for service mediation and hosting
63© 2008 IBM Corporation
Examples of Complementary Products
Assured, reliable messaging with WebSphere MQBusiness event processing with WebSphere Business EventsSOA Governance with WebSphere Service Registry and Repository(WSRR) Federated ESBs with WebSphere ESB, WebSphere DataPower, WebSphere Message BrokerEdge of Network processing with WebSphere DataPowerIndustry Modeling with WebSphere TXPublish CEI with WebSphere Modeler / MonitorEnd-to-End monitoring with ITCAM for SOA