1200 wsrr & iib - advanced integration - final
-
Upload
smithsonmartin -
Category
Software
-
view
1.130 -
download
5
description
Transcript of 1200 wsrr & iib - advanced integration - final
© 2014 IBM Corporation
IBM WebSphere Service
Registry and Repository &
IBM Integration Bus
Advanced Integration
Martin Smithson – WSRR Architect
Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be incorporated
into any contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
Introduction
WebSphere Service Registry and Repository
3
4
Google-style search
Collection filters
Email owner
Service catalog view
Download service definition
Service lifecycle management
Managing consumers
Managing versions
Email Consumers
Managing the
dashboard
Controlling Access to Backend Services
It is generally accepted that service consumers should never be
allowed to access a backend service directly
9
!
Controlling Access to Backend Services
It is generally accepted that service consumers should never be
allowed to access a backend service directly
Routing requests through an ESB provides an additional level of
indirection
• Loose coupling between providers and consumers
Overall approach is referred to as service virtualization
10
Controlling Access to Backend Services
It is generally accepted that service consumers should never be
allowed to access a backend service directly
Routing requests through an ESB provides an additional level of
indirection
• Loose coupling between providers and consumers
Overall approach is referred to as service virtualization
Service virtualization patterns provide a controlled point of
access to the backend service
11
Enhance the Connectivity of ESB using WSRR
Integrating WSRR with your ESB allows you to use the
metadata retrieved from WSRR when making decisions at
runtime
The behaviour of your flow can be modified simply by changing
the metadata in WSRR
Enables your ESB to be more dynamic, more flexible, more
adaptable!
12
WSRR
WSRR & IIB Integration
IBM Integration Bus
IBM Integration Bus is IBM’s strategic integration technology providing
• Universal Connectivity
– Simplifies application connectivity to provide a flexible and dynamic
infrastructure
• Routing and transformation of messages from anywhere, to
anywhere
– Supports a wide range of protocols
• MQ, JMS1, HTTP(S), Web Services, File, 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…
• Simple programming
14
Endpoint and Registry Lookup Nodes
The Endpoint Lookup node is used to retrieve
service endpoints for a WSDL defined web
service from WSRR
Enables dynamic routing of service requests
with little or no programming
15
The Registry Lookup node is a general purpose
node used to query and retrieve
• Service metadata from WSRR
• Any document, for example, WSDL, XML
schema, XSLT, policy documents
Enables dynamic routing of requests to any
type of service
Both nodes cache the results of the queries performed against WSRR
Node Properties
16
Controlling the number of results returned
The Match Policy controls the number of matching results
returned from WSRR
• One returns the first matching object
– When more than one match found, the result is arbitrary
• For example, not necessarily the latest version
• All returns all matching objects
17
Controlling the depth of results – Registry Lookup
The objects in WSRR can be related to
other objects
The Depth Policy on the Registry
Lookup Node can be used to control
whether related objects are returned
There are three options:
• Return just the match object
• Return the matched object and the
immediate related objects
• Return the matched object and all
related objects
18
Overriding the node properties at runtime
The LocalEnvironment can be used to override the properties of
the Endpoint and Registry Lookup nodes at runtime
19
LocalEnvironment.ServiceRegistryLookupProperties.Name LocalEnvironment.ServiceRegistryLookupProperties.NamespaceLocalEnvironment.ServiceRegistryLookupProperties.VersionLocalEnvironment.ServiceRegistryLookupProperties.UserProperties.<Property Name>LocalEnvironment.ServiceRegistryLookupProperties.Classification.<Classification name>LocalEnvironment.ServiceRegistryLookupProperties.MatchPolicyLocalEnvironment.ServiceRegistryLookupProperties.DepthPolicy
Lookup Results
The results of the queries performed against WSRR are placed
into the LocalEnvironment
• Allows them to be accessed/processed by downstream nodes
Endpoint Lookup results are stored as one or more ITService
entries
• LocalEnvironment.ServiceRegistry.ITService
Registry Lookup results are stored as one or more Entity entries
• LocalEnvironment.ServiceRegistry.Entity
20
HTTP Request Node
The HTTP Request node can be used to invoke the WSRR
REST API
Enables message flows to:
• Perform complex queries against WSRR
• Invoke WSRR Named Queries
• Update the metadata in WSRR using POST/PUT/DELETE
operations
• Retrieve document content
• Interact with the WSRR Policy Service
Results are not cached so message flows need to implement
their own caching policy
• IIB Global Cache
21
JMS Input Node
WSRR publishes JMS messages to a set of pre-defined topics
in response to operations that are performed within the product
The JMS Input node can be used to receive these notifications
within a message flow
Enables message flows to respond to events that occur in
WSRR including:
• Create, delete and update of objects
• Lifecycle transitions
22
Usage Patterns
23
Service Proxy Service Selection Alternate Service
Provider
Service
Transformation
Service Gateway SLA Checking
500
Messages
per second
WLM Policy
Enforcement
File Transfer
Integration
Service Proxy
One of the fundamental ESB patterns
• Many ESB patterns extend/embellish this pattern
Provides:
• Loose coupling between providers and consumers
• Controlled point of access
Enables the introduction of:
• Logging
• Security configuration
• Performance measurement
• Alerting
• Traffic management
• Service charging
• Etc…
24
Service Proxy (SOAP/HTTP)
When Destination is a SOAP/HTTP Web Service
• Use Endpoint Lookup node to retrieve endpoint address from
WSRR
– Set “Match Policy” = “One”
• Use any Input Node (MQ, HTTP, JMS etc.)
• Wire Endpoint Lookup output directly to SOAP/HTTP Request
node
25
Service Proxy (Non Web Service)
When Destination is NOT a SOAP/HTTP Web Service
• Use Registry Lookup node to retrieve an entity from WSRR
(this can include endpoint information!)
– Set “Match Policy” = “One”
• Use any transformation node to set the endpoint address and
add an appropriate transport header
26
Service Selection
Extends the service proxy pattern
Introduces the ability to route service requests
Routing can be based on:
• Content of service request
• Status of service providers
• Timing of the request
• Etc…
27
Service Selection
For example, choosing between premium and standard service
• Use Endpoint Lookup node to retrieve a set of endpoints
– Set “Match Policy” = “All”
• Use a transformation node to
– Select the required service
– Copy the endpoint information into the correct place for the SOAP
Request node
Alternatively, branch earlier in the message flow and use two
Endpoint Lookup nodes
28
Alternate Service Provider
Extends the service selection pattern
Provides a level of fault tolerance in the ESB
• Detects failures when invoking selected service provider
• Selects an alternative service provider from the list of available
endpoints
• Can potentially try all of the available service providers
Service consumer is unaware of failures
29
Alternate Service Provider
The Failure terminal is used to denote problems accessing services
with the SOAP Request node
• In this case, pass the message back to the “Endpoint Selector” node to
select the next available endpoint
Use Registry Lookup for non SOAP/HTTP services (as before)
30
Alternate Service Provider
The Failure terminal is used to denote problems accessing services
with the SOAP Request node
• In this case, pass the message back to the “Endpoint Selector” node to
select the next available endpoint
Use Registry Lookup for non SOAP/HTTP services (as before)
Remember to cope with “all services failed” situation
31
Service Transformation
Extends the service proxy pattern
Introduces transform(s) which allow the interface(s) presented by the ESB to
differ from that of the service provider
Various drivers:
• Not always desirable to expose the interface of a backend service as the
published interface of an enterprise service on the ESB
• Expose a standard interface to a number of semantically equivalent backend
services that have different interfaces
• Transform service requests/responses from one version of a service to another
32
Service Transformation
Transform message using a stylesheet retrieved from WSRR
• Use Registry Lookup node to retrieve XSL stylesheet
– Set “Match Policy” = “One”
• Use a transformation node to copy the returned stylesheet into
the input message
• Use the XSL Transform node to transform the message using
the embedded stylesheet
• Use an Endpoint Lookup node to route the request to the target
service
Similar process is used to transform the response message
33
Provides boundary functions which apply to all incoming requests
Boundary functions can include
• Request routing
• Authentication
• Authorisation
• Audit and logging
• Protocol conversion
Enables the ability to apply common processing to a number of backend
services without the need to develop individual message flows for each
service
Service Gateway
34
Use service metadata in WSRR as the lookup table for the
gateway
• Use information extracted from the request message to identify
the target service, for example:
– Namespace of the request message
– Operation name
• Use Registry Lookup node to retrieve the matching Service
Operation from WSRR
• Use the metadata on the Service Operation to retrieve the
target endpoint from WSRR using an Endpoint Lookup node
Service Gateway
35
SLA Checking
Service Level Agreements (SLAs) in WSRR represent consumption
agreements between service providers and service consumers
They can be enforced by the ESB at runtime to ensure that the service
consumer is authorized to invoke the target service
Must be able identify the service consumer, the SLA or both
• Input message could contain a “consumer id” and/or “context id”
• Could map from the security credentials of the client
• Target endpoint can also be used to identify relevant SLA
36
SLA Checking (Registry Lookup Node)
Use Registry Lookup node to retrieve metadata for service consumer
• Specify a “User Property” with name “gep63_consumerIdentifier” and the
specified “consumer id” as the value
• Set “Depth Policy” = “Return matched plus all related entities”
Use a transformation node to:
• Check that only a single service version was returned
• Check that the service version has an active SLA with the specified “context id”
• Check that the target service has at least one online endpoint
• Forward the request to the target service if all of the above checks pass, or
return a SOAP fault
37
SLA Checking (HTTP Request Node)
Use HTTP Request node to invoke WSRR REST API• Recommended to use a Named Query:
– Details of the WSRR query are stored in WSRR configuration
– Hides WSRR knowledge from the message flow
– Message flow only needs to know the name of the query and the parameters to pass
– No programmatic checking required… all of the checks are encapsulated in the query
performed against WSRR
• A number of named queries already available in WSRR, for example:
– SLACheck
– SLACheckWithConsumerID
– SLAEndpointLookup
• These named queries return list of agreed online endpoints for the target service
Message flow must implement its own caching policy
38
Policy Enforcement
IIB v9.0 introduced the ability to control the rate of processing within a
message flow by attaching Workload Management (WLM) policies to the flow
• Policies can be attached to message flows dynamically at runtime
• No need to restart the execution group or the individual flows
WSRR can centrally manage/govern policies
• Ensures that policies are applied consistently across your SOA
WSRR v8.5 introduces the ability to author IIB WLM policies directly in the
Service Registry Dashboard user interface
• WLM policies can then be attached to, or detached from, services in WSRR
39
500
Messages
per second
WLM Policy Enforcement – Policy Creation
Use JMS Input node to listen for messages published by WSRR
• Set “Subscription topic” = “jms/PolicyUpdateTopic”
• Specify a “Message Selector” of “action=‘CREATE’”
Use a transformation node to process the input message
• Extracts the id of the WLM policy
• Programmatically sets the local environment entries required by the HTTP
Request node
Use a HTTP Request node to query the WSRR Policy Service REST API
• Retrieves the actual content of the WLM policy from WSRR
Use a Java Compute node to create the policy in IIB
• Uses the BrokerProxy::createPolicy method
40
WLM Policy Enforcement – Policy Attachment
Use JMS Input node to listen for messages published by WSRR
• Set “Subscription topic” = “jms/PolicyAttachmentTopic”
• Specify a “Message Selector” of “action=‘CREATE’”
Use a transformation node to process the input message
• Extracts the id of the target object in WSRR
• Programmatically sets the local environment entries required by the HTTP
Request node
Use a HTTP Request node to query the WSRR REST API
• Retrieves the name of the target service (flow) from WSRR
Use a Java Compute node to attach the policy in IIB
• Uses the MessageFlowProxy::setWlmPolicy method
41
WLM Policy Enforcement in Action
The IIB web user interface can display message flow statistics
The chart shown here displays the message rate for a flow that
is also represented in WSRR
The dips in the chart correspond to:
• Attaching a WLM policy in WSRR limiting the maximum rate to
200 messages/sec
• Attaching a WLM policy in WSRR limiting the maximum rate to
50 messages/sec
42
File Transfer Integration
The business models used by WSRR can be customized
• Allows you to tailor the product to meet your needs
• Enables you to represent more than just services
For example, file transfers can be represented in WSRR using a custom model
• Enables you to manage the creation and lifecycle of the file transfer definition
• Enables you to control the file transfer at runtime
43
File Transfer Integration
Message flow in IIB can be used to expose a service to initiate a file transfer
• “transferId” passed in service request
Use Registry Lookup node to retrieve file transfer definition with matching id
• Specify a “primaryType” user property so that only “File Transfer Definitions” are
matched
• Set “Match Policy” = “One”
• Set “Depth Policy” = “Return matched plus all related entities”
Use MQ Output node to put XML message on the source agent command
queue
44
Gratuitous Advertisement
You can see the scenarios described here in action at IMPACT
(except for the File Transfer scenario – sorry!!!)
• 1201: IBM WebSphere Service Registry and Repository & IBM
Integration Bus: Advanced Integration Lab
– Thursday: 09:00 – 11:30 - Murano 3305
WSRR and IIB Integration series on IBM developerWorks
http://www.ibm.com/developerworks/views/websphere/libraryview.jsp
?search_by=Integrating+IBM+Integration+Bus+with+WebSphere+Service+Registry+and+Repository
45
Questions?
WSRR Sessions at Impact 2014
Client use case presentations2089: Lessons Learned Using a Service Registry for Service Governance
• Tuesday: 10:30 – 11:30 – Palazzo F; Steve Romanowski (State Farm), Dennis Miller (IBM)
3358: How PSCU Implemented Its Intelligent Platform Through a SOA COE
• Tuesday: 14:15 – 15:15 – Marcello 4402; Prithvi Srinivasan (Prolifics)
1501: API Lifecycle Management: Integrating IBM WebSphere Service Registry and Repository & API
Management
• Wednesday : 10:30 – 11:30 – Marcello 4402; John Falkl (Haddon Hill Group Associates)
2781: How CVS Caremark Implemented a Service Oriented Architecture Center of Excellence
• Wednesday : 10:30 – 11:30 – Marcello 4405; Prithvi Srinivasan (Prolifics), Ajay Behuria (CVS CareMark)
2740: Extending IBM WebSphere Service Registry and Repository to Legacy IBM WebSphere
Application Server
• Wednesday: 14:15 – 15:15 – Marcello 4405; Animesh Jain (Prolifics)
2699: SOA at Highmark - One Company's Journey
• Wednesday : 17:00 – 18:00 – Lando 4305; Rich Turney (Highmark Inc.), Ed Ober (Highmark Inc.)
3128: Implementing an ESB with IBM Integration Solutions at Danske Bank
• Wednesday : 17:00 – 18:00 – Marcello 4404; John Alex Jensen (Danske Bank)
1540: Reusable Policy Templates in IBM WebSphere Service Registry and Repository
• Thursday: 10:30 – 11:30 – Palazzo F; Yevgen Khibin (Kaiser Permanente)
2946: SOA Best Practices & Pitfalls
• Thursday : 15:45 – 16:45 – Lido 3005; Rich Turney (Highmark Inc.), Ed Ober (Highmark Inc.), Chris Hengst
(Highmark Inc.), Bryan Lichtenwalner (Highmark Inc.)
47
WSRR Sessions at Impact 2014
Product presentations1159: IBM Integration & Governance: Featured Session
• Monday: 14:30 – 15:30 – Palazzo H; Nicola Hills (IBM)
1250: What’s New in IBM WebSphere Service Registry and Repository
• Tuesday : 10:30 – 11:30 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)
• Wednesday: 15:45 – 16:45 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)
1200: IBM WebSphere Service Registry and Repository & IBM Integration Bus: Advanced Integration
• Tuesday: 17:00 – 18:00 - Palazzo I; Martin Smithson (IBM)
1251: Service Visibility & Management with IBM WebSphere Service Registry and Repository
• Wednesday : 13:00 – 14:00 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)
3237: Meet the Experts: IBM WebSphere Service Registry and Repository
• Thursday: 13:00 – 14:00 – San Polo 3503; Nick Butler (IBM), Martin Smithson (IBM)
Roundtable Feedback Sessions1244: Roundtable: IBM WebSphere Service Registry and Repository
• Monday: 17:15 – 18:15 – Zeno 4708; Robert Laird (IBM), Gary Thornton (IBM)
• Tuesday: 17:00 – 18:00 – Zeno 4708; Robert Laird (IBM), Gary Thornton (IBM)
48
WSRR Sessions at Impact 2014
Hands on labs1223: Enable Role-based Service Views & Change Notification to Effectively Govern Services
• Wednesday: 15:45 – 18:00 - Murano 3305; Martin Smithson (IBM), Dennis Miller (IBM)
1201: IBM WebSphere Service Registry and Repository & IBM Integration Bus: Advanced Integration Lab
• Thursday: 09:00 – 11:30 - Murano 3305; Martin Smithson (IBM), Dennis Miller (IBM)
49
We Value Your Feedback
Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to
continually improve the conference.
Use the Conference Mobile App or the online Agenda Builder to
quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
50
Thank You
Legal Disclaimer
• © IBM Corporation 2014. All Rights Reserved.
• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained
in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are
subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or
capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to
future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by
you will result in any specific sales, revenue growth or other results.
• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs
and performance characteristics may vary by customer.
• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM
Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server).
Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your
presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in
your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International
Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:
Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and
other countries.
• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:
UNIX is a registered trademark of The Open Group in the United States and other countries.
• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of
others.
• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta
Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration
purposes only.