240 likes | 469 Views
ESB SOA Architecture. This presentation will attempt to outline some thoughts related to how the ESB will interact with WSRR to support SOA. What is a Service ?. A self-contained, stateless, well defined business function that operates via a documented standard interface A Service(s):
E N D
This presentation will attempt to outline some thoughts related to how the ESB will interact with WSRR to support SOA
What is a Service ? A self-contained, stateless, well defined business function that operates via a documented standard interface • A Service(s): • Performs discrete units of work • Operates independently of other functions or processes • Should function without regard to underlying technology used to render or invoke them • Are often stitched together to satisfy a business need • Can centralize logic eliminating redundancy, and easing maintenance efforts • Can provide agility to gain capabilities quickly • Like anything else must be governed properly
What is a Service Oriented Architecture ? A flexible set of design principles for systems development and integration where functionality is grouped around business processes and packaged as interoperable services
The role of the ESB in support of SOA To provide functionality to consumers by exposing providers as governed services for an organization, thru the use of mediations
WSRR offers an interesting option for driving the functionality of the ESB dynamically. The dynamic reference comes from the external metadata that WSRR holds, that could drive the actions of the ESB on demand, if we can identify a flexible and extensible approach to accessing that metadata in real time. To a large extent, the ability to realize this capability depends almost entirely on what gets stored in WSRR to facilitate the ESB processing. To further this point, if this capability is to be ascertained, the process of providing, and populating the metadata must be well governed due to its impact on ESB processing. This governance process must be flexible, controlled, well defined, and efficient so that it is intuitive as to the outcome of the governance process. All that said, this is just a more structured way of externalizing data that impacts the actions of the system based on configuration changes, rather than coding changes.
Some common capabilities of an ESB • Routing • Translation • Validation • Context Stamping
Routing: Use WSRR for endpoint lookups, not only for HTTP endpoints, but more importantly for WMQ endpoints. WMQ endpoints will be used to route messages to the proper queues that will be entry points to be serviced by ESB components
Translation Use WSRR to obtain, or identify a component to be used in message translation. On the ESB, this artifact would be a stylesheet
Validation Use WSRR to obtain, or identify a component to be used to validate an xml message.
Context stamping Use WSRR to set IBUS properties as we obtain artifacts from WSRR to facilitate the processing of the message
ESB Framework An internal framework for ESB development consisting of the following discrete functional layers • Consumer Proxy Services • Provider Orchestration/Integration Services • Business Systems interface Services
Consumer Proxy Services Provide an entry point, or “on-ramp” for consuming applications that allows for the exposure of defined functionality without the detailed knowledge of the underlying provider(s) required to satisfy the request
Consumer Proxy Services functions • Expose the entry point to the ESB to consumers by accepting requests over a specific protocol, and data bindings • Possible security check • Translate to proper enterprise canonical structure for the operation • Log activity • Possible transport switch • Simple validation • Route to Provider Orchestration/Integration Services
Consumer Proxy Services Use WSRR to: Get policy that states that the source system (consumer) can use the service, and to indicate what version of the service to use(Port type), and the stylesheet to use to create the initial GetEligibility IBUS request • Lookup the policy on ActionName and Source If none found lookup on ActionName The idea here is the look up by ActionName will get you the default behavior, and the lookup by ActioName and Source, we will get any “overrides” for the consumer Note: All policies used at the Consumer proxy portion of the framework should use NameSpace=www.lt.com/esb/mediation/ProxyServices targetNamespace="http://www.iha.com/ps/wsdl/AddressBook-v1"
Consumer Proxy Services (cont.) • ActionName: Loosely identifies an operation, for example GetClaimStatus, or IdentifyMember • Source: Identifies the consumer, for example HNET(HeatleNet) or SIEBEL
Consumer Proxy Services (cont.) The default policy may look like so for GetEligibility : <wsp:Policy Name="http://www.lt.com/policies#GetEligibilityProxyPolicy" targetNamespace="www.lt.com/esb/mediation/ProxyServices" xmlns:wsrr="http://www.ibm.com/xmlns/prod/serviceregistry/wspolicy" xml:base="http://www.lt.com/policies" wsu:Id="GetEligibilityProxyPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <wsp:All> <!-- Get these exact assertions --> <wsp:ExactlyOne> <wsrr:Port Version="3.1">GetMembership_GetEligibility_v3.1</wsrr:Port> </wsp:ExactlyOne> <wsp:ExactlyOne> <wsrr:RequestTransform From="" To="">5010_To_GetEligibility_v3.xsl</wsrr:RequestTransform> </wsp:ExactlyOne> </wsp:All> </wsp:Policy>
Consumer Proxy Services (cont.) • Call WSRR to get the 5010_To_GetEligibility_v3.xsl stylesheet and use it to transform the incoming xml data 2) Call WSRR to get the service endpoints associated with port = GetMembership_GetEligibility_v3.1 to get the WMQ endpoints, and use these to route the message to the Orchestration/Integration Services flows in the ESB
Provider Orchestration/Integration Services Enable, and manage interactions between existing providers to support the service specification of the service operation
Provider Orchestration/Integration Services • Chorography the invocation of the supporting provider(s) • Translate to the expected enterprise canonical format for that operation • Aggregation of data from multiple participating providers • Route requests to the appropriate provider(s)
Provider Orchestration/Integration Services Use WSRR to: TBD