How To Develop Applications For Business Integration

838 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
838
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

How To Develop Applications For Business Integration

  1. 1. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation How To Develop Applications For Business Integration Pulling J2EE, SOA and Web Services Together André Tost IBM Software Group atost@us.ibm.com André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 1
  2. 2. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Agenda Service Oriented Architectures Vision and Reality Web Services versus SOA Introduction to Enterprise Service Bus loose coupling patterns Programming Model Elements ESB runtime architecture SOA Component Model J2EE anyone?? —> JSR109 SDO Service Components ESB Mediation Business Process Abstraction BPEL André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 2
  3. 3. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Agenda Service Oriented Architectures Vision and Reality Web Services versus SOA Introduction to Enterprise Service Bus loose coupling patterns Programming Model Elements ESB runtime architecture SOA Component Model J2EE anyone?? —> JSR109 SDO Service Components ESB Mediation Business Process Abstraction BPEL André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 3
  4. 4. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Service Oriented Architecture Application functionality contained in building blocks Create complete applications by connecting blocks together Model business relationships by providing blocks to others and using others' blocks Building blocks are services André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 4
  5. 5. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Service Oriented Architecture A Service Oriented Architecture enables flexible connectivity of applications or resources by Representing every application or resource as a service with a standardized interface Enabling them to exchange structured information (messages, documents, ‘business objects’) Mediating the message exchange through a service integration bus Providing on-ramps to the bus for legacy application environments This allows quick combination of new and existing applications to address changing business needs and improve operational effectiveness by managing the topology of the application ‘network’ The SOA infrastructure is also used to facilitate the management of business performance and quality of service André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 5
  6. 6. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation The Beginning: Roles & Functions Set of industry-standard approaches to enable simplified connection of applications Service Broker • A searchable repository of service descriptions • Service Providers publish their services • Service requesters find services • Service broker match providers with requesters Broker h Fi Fi is nd P Pu bl ub nd Pu bl Fi iis h Provider Bind Requester Service Provider Service Requester • Provide applications as WebService • A client who needs a service • Publish their services • Find service • Find service request to develop • Publish their needs André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 6
  7. 7. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation How It Works... SOAP Processor SOAP Processor API (Java, C#, ...) API (Java, C#, ...) „Wrapper“ / „DD“ XML XML HTTP HTTP Proxy Server- Parser Parser Client „Object“ André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 7
  8. 8. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Characteristics of Service Oriented Architecture Reduced interdependency between software assets. Loosely Coupled Allows individual Shared services software assets to Leverages open Standards Based become building blocks standards to represent that can be reused in Service Oriented software assets as developing other Architecture services (XML, SOAP, applications (application WSDL, UDDI, …). assembly). Federated Control Federated and policy based security, management and deployment. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 8
  9. 9. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation A Couple of Best Practices Services are defined A service encapsulates a well-defined using explicit interfaces invoke-able unit of business function, that are independent of and exists either to provide information service implementations, or to facilitate a change of business and that both service data from one valid and consistent requestors and service state to another. providers agree to. Services neither remember the last Service A Service B thing they were asked to do nor care what the next is, and are not Services should be invoke- dependent on the context or able through defined state of other services. communication protocols that Service C stress interoperability and location transparency. Any dependencies between services should be defined in terms of common business process, function and data models. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 9
  10. 10. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation The Art of Service Interface Design Service API Code API Impact Few, large-grained interactions Many, small-grained interactions Less frequent interaction, but Flexibility more data in each interaction Service Every interaction the same Lots of APIs for variation scope Granularity Less complex to change if one Balancing Act between interactions aspect of the interaction must change All requestors must agree with Code the provider about the way the APIs provider service works Each interaction fufills one step Many interactions required to Less complexity to understand in a business process. There is complete one step in a or coordinate if the requestor or no shared process at a lower Complexity business process. Much shared provider need to change level, and no shared state process and state in these Process, state and data models between calls (only business interactions need only agree at the level of data) shared business process André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 10
  11. 11. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Agenda Service Oriented Architectures Vision and Reality Web Services versus SOA Introduction to Enterprise Service Bus loose coupling patterns Programming Model Elements ESB runtime architecture SOA Component Model J2EE anyone?? —> JSR109 SDO Service Components ESB Mediation Business Process Abstraction BPEL André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 11
  12. 12. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation “Loose Coupling”?? “Services are loosely coupled and invoked through communication protocols that stress location transparency and interoperability.” tightly coupled capacitor Source Received signal signal loosely coupled capacitor Source Received signal signal ? André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 12
  13. 13. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Aspects of Service Interactions … Location Language Data Delivery Format Assurance Interaction Semantic State Interface Requester Provider Service Service Provider Security Version Identity Time Protocol Platform Decoupled ? Coupled André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 13
  14. 14. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Coupling Styles Coupled − Directly manipulated by service requester and provider application code. − e.g. business data model Declared − Clients and providers declare matching behaviour in interfaces. − e.g. WS-Security Transformed − Specified in the service interface, but not manipulated by application code. Services declare different characteristics but the service infrastructure can mediate between requester and provider. − e.g. data format Negotiated − Requester and provider interfaces declare a spectrum of behaviours, infrastructure negotiates an agreed behaviour for each interaction. − e.g. proposed WS-Policy, service provider identified dynamically through UDDI Decoupled − Entirely independent between client, provider and infrastructure. − e.g. platform independence through use of XML and HTTP André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 14
  15. 15. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Applying Coupling Styles to Aspects of Service Interactions Aspect Coupling Style Techniques Semantic Interface Coupled WSDL, Application code, common objects, data dictionary Language Decoupled Open standards, Web Services, J2EE, HTTP, XML Platform Decoupled As above Data Format Declared or Transformed WSDL, XML, adaptors, stylesheets, AD tools, middleware Protocol Declared or Transformed HTTP, SOAP, Middleware, adaptors Location Decoupled Communication protocols, HTTP, SOAP, middleware Service provider identity Declared, transformed or Service routing, or implementation negotiated middleware, "broker"s, UDDI etc. etc. ... etc ... etc ... Time, Delivery Assurance, Error Handling, Security, Service Version, Interaction State André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 15
  16. 16. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation SOA in the Enterprise As a counter-example, consider the use of simple SOAP/HTTP wrappers Existing component or components providing services (Legacy, Applications, EAI Middleware etc.) SOAP/HTTP and WSDL leverage Proprietary interface URL addressing and the existing HTTP and DNS infrastructure for Service Oriented Architecture. Service Adaptor Service Adaptor Service Adaptor Service Adaptor But they do not address WSDL / SOAP Interface WSDL / SOAP Interface WSDL / SOAP Interface WSDL / SOAP Interface enterprise requirements for SOA: Multiple qualities of service DNS DNS Widespread integration and Internet or Intranet Router Router interoperability Transformations and mediations WSDL / SOAP WSDL / SOAP WSDL / SOAP Substitution of service Interface Interface Interface implementations Service Client Service Client Service Client Critically, management of an SOA “infrastructure” provided in this way is distributed between service Service Bus Components endpoints and the existing infrastructure. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 16
  17. 17. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation “Enterprise Service Bus” Analysts describe a middleware capability … “…a new architecture that exploits Web Services, messaging middleware, intelligent routing and transformation…” Roy Schulte, Gartner, Predicts 2003: Enterprise Service Buses Emerge Vendors talk about their low cost Java and Web Services “bus” solutions and contrast them to “high cost, proprietary hub and spoke EAI middleware”. “Message brokers tend to be rather heavy duty and often require significant additional skills … In contrast, an ESB is a pre-packaged SOA implementation ...” Steve Craggs, Best of Breed ESBs … distributed by Polar Lake, Sonic, Fiorano, etc. IT shops have built their own … primarily using XML with EAI technology (e.g. message brokers or adaptors) or HTTP. My view: ESB is a logical infrastructure component that can be described by patterns The ESB is defined by capabilities required to support SOA in the Enterprise in combination with other integration styles (messages and events) The ESB provides a means to concentrate control and distribute topology André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 17
  18. 18. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation ESB Capabilities Communications, e.g. Service Interaction, e.g. Routing, addressing, protocols, pub/sub, async. Interface definition, service substitution, messaging model, SOAP, WSDL, directories Integration, e.g. Quality of Service, e.g. Database, legacy, middleware connectivity, Transactions, delivery assurance service aggregation, app server connectivity, protocol transformation. Security, e.g. Service Level, e.g. Authentication, authorisation, non-repudiation, Performance, throughput, availability, confidentiality, standards support scalability. (WS-Security, Kerberos etc.) Message Processing, e.g. Management and Autonomic, e.g. Encoded logic, content-based logic, message Service provisioning and registration, logging, and data transformations, intermediaries etc.. metering, monitoring, systems management etc.. Modelling, e.g. Infrastructure Intelligence, e.g. Object modelling, common formats and Business rules, policy driven behaviour, pattern libraries, public vs. private etc.. recognition, etc.. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 18
  19. 19. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Minimum ESB capabilities for SOA If we require ESB to support our definition of SOA and add : The ESB provides the means to manage the service infrastructure and the capability to operate in today’s distributed, heterogeneous environment. We can define a minimum capability ESB implementation: Communication Integration Routing and addressing services providing Support for multiple means of location transparency. integration, e.g. Java 2 Connectors, An administration capability Web Services, etc. At least one messaging paradigm (e.g. request / response, pub/sub, etc.).· At least one transport protocol that is or can be made widely available. Service Interaction Service messaging and interfacing model. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 19
  20. 20. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation ESB in Terms of Existing and Future Technology We can position current and future technologies: “Whilst packaged ESB technologies will mature they are not the only way to implement an ESB.” “SOAP/HTTP provides opportunistic integration capabilities, but not an ESB.” “ESB capabilities are available in existing products such as WebSphere Application Server, Web Services Gateway or WebSphere Business Integration”. We can address some specific customer pain points: Many enterprises have implemented a bespoke “service bus”, often using proprietary XML data models and MOM like WebSphere MQ. This definition of ESB does not mandate the use of Web Services. We can suggest enterprises evolve towards a more standard based approach whilst retaining their investment in existing technology. The flexible definition is consistent with an incremental approach. We can respond to a range of requirements in the marketplace: We can include basic SOAP and JMS-based solutions, but also position more sophisticated offerings. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 20
  21. 21. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation “Distributed Bus” versus “Centralized Broker” Single Point of Control Distributed Infrastructure Service Service Service Service Service Client Client Client Client Provider <Hub> Service Service <Bus>ESB Client Provider ESB Service Service Service Service Service Provider Provider Provider Client Provider Service Service Service Service Service Service Client Client Client Provider Provider Provider <Hub> <Hub> <Hub> <Hub> Runtime Node Runtime Node Runtime Node Runtime Node Configuration and Control Services Control Configuration Client <Bus>Enterprise Service Bus André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 21
  22. 22. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation ESB Scenarios ESB Scenarios in Service Oriented Architecture: Basic Integration of Two Systems Enable Wider Connectivity to One or More Applications Enable Wider Connectivity to Legacy Systems Enable Wider Connectivity to an EAI Infrastructure Implement Controlled Integration Between Organisations Automate Processes by Choreographing Services Implement a Robust SOA with Web Services Support … the scenarios suggest particular ESB capabilities from the model. The scenarios also suggest particular architectural issues, e.g.: Provision of interfaces of appropriate content and granularity Importance of support for open standards Control over external access etc. … … the resolution of these issues in turn implies additional ESB capabilities. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 22
  23. 23. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Example Scenario: Enable Wider Connectivity to Legacy Systems Description: Enormous investment in legacy technologies Significant value in providing open standard, service-based access to those systems Relevant issues: ESB capability requirements: 1. Function and Data Interfaces • Communications (all) 2. Common Business Data Model • Service Interaction (Service interface 3. Technologies for Interoperability definition, Service messaging models) 4. Advanced Interaction Characteristics • Integration (Database, Legacy and Application adapters) 5. Legacy XML Support and Processing • Quality of Services (all) 6. Availability of Services in EAI Infrastructure • Security (all) 7. Service Provider Protection • Service Level (all) 8. Consistent and Controlled Service • Message Processing (Message / service Enablement aggregation and correlation, Message and data transformations) 9. External Access to Services • Management and Autonomic (Service 10. Service Level Requirements Provisioning and Registration, Logging, 11. Security Requirements Metering and Monitoring André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 23
  24. 24. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Stepping from Scenarios toward Implementation We can use the Patterns for e-business Process Integration patterns to describe the ESB and it’s role in the ESB scenarios. <ESB> <Exposed ESB> <Exposed Service Gateway> By using the P4eb patterns, we can relate the ESB patterns to other patterns such as service directories, <Serial Process>, <Parallel Workflow>, etc. We can then match the requirements to technologies using the ESB capability model, e.g. for IBM products: Web Services Gateway WBI Message Broker Bespoke implementations using HTTP and WebSphere MQ Related technologies such as WBI Server Foundation, WBI Interchange Server, etc. André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 24
  25. 25. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation The ESB Modelled as a <Zone> Each Port is identified with a specific protocol and Service Requesters set of addresses through which it provides access to Service the Process Services Invocation . Zone. <ESB> Protocols <Inbound <Inbound <Inbound Port>C Port>A Port>B <Zone>ESB ESB Requester view of capabilities Address Service and services namespace are available Configuration and controlled by the <Hub> Control Services in the <zone>. <ESB> over Configuration supported <Outbound <Outbound <Outbound invocation Port>1 Port>2 protocols. Port>3 Service Integration . Protocols Service addresses of service implementations. Service Providers Enterprise André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 25
  26. 26. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation The ESB Modelled as a <Zone> (Continued) Service Requesters Requester Perspective Semantic Interface <Inbound <Inbound <Inbound Language Port>C Port>A Port>B Platform Data Format <ESB> Protocol Location Service Provider Identity or Implementation <Hub> Time Delivery Assurance and Error Handling <Outbound <Outbound <Outbound Provider Port>1 Port>2 Port>3 Security Perspective Service Version Interaction State Service Providers André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 26
  27. 27. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Linking Multiple Patterns Service Requesters Service Requesters <Exposed Service <ESB> Gateway> WWW <ESB Link> Service Providers Service Providers Enterprise 1 Internet Other Enterprises André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 27
  28. 28. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Web Services Gateway “The Web Services Gateway is a run-time component that provides configurable mapping based on WSDL documents. It maps any WSDL-defined service to another service on any available transport channel. It is usually deployed at the firewall and has access to internal services. “ SOAP/HTTP EJB/RMI-IIOP WSDL A* Publish SOAP/JMS UDDI WSIF provider WSDL B* Query WSG Filter WSDL A WSG Filter Service Provider Client SOAP/HTTP WSDL B Service ... WSG Provider WSDL C Service Provider Client Query SOAP/HTTP WSDL C* UDDI WSG Filter Publish WAS André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 28
  29. 29. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Enterprise Service Bus Portal Service SOAP Service Request (e.g. J2EE, .NET) B2B Interactions Service Flow Data Existing Applications New Service Logic André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 29
  30. 30. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Agenda Service Oriented Architectures Vision and Reality Web Services versus SOA Introduction to Enterprise Service Bus loose coupling patterns Programming Model Elements ESB runtime architecture SOA Component Model J2EE anyone?? —> JSR109 SDO Service Components ESB Mediation Business Process Abstraction BPEL André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 30
  31. 31. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation The Business Integration Programming Model Challenge Adaptors, Business Objects, A Business View WBI Traditional Mediations, Collaborations, Concepts Organization Model, Relationships, Bring it all Maps, Business Processes, …. together in a Pattern consumable s Practic , Best es, etc programming .. Service Oriented Architecture, Components, model Object Technology, Transformation, Wiring, (Service Assembly, BPEL, Human Interaction, components, Common Event Infrastructure … SDO, Patterns, Tooling, Templates) EJBs, Web Services, WSDL, Containers, Qualities-of- Technology View J2EE and Web Service, Portlets, SDO, JCA, Services JMS … André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 31
  32. 32. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Programming Model Elements Service Oriented Binding Component Model I cannot look for Web Why do things look J2EE, Service, Broker things by name? I Services, similar but are SDO do not know who WSDL, different? might be myProvider Consumer partner. Partners Mediation Target Selection Flow Composition BPEL, What I want is not (Selector FW), WBI I have to write too Compensation, quite what I found. much code. Too X Mapping/Relationships, microflow Transformation/routing at slow message level Policy Enabled Container Based Business Rules Business Rules Declarative, I can assemble, These service APIs but how can I Connector/Adapter are spooky, fragile Configurable customize? and site specific. I have to integrate too many protocols and apps JCA 1.5, Inbound, Outbound André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 32
  33. 33. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Enterprise Service Bus (from the outside in) ~~~~ WSAD ~~~~ ~~~~ WSDL Request XML/HTTP Servlet Servlet Broker AXIS Runtime Legacy/Procedural Local Java Java Objects Adapter / wFlow J2C / uFlow / wFlow Adapter JMS Message EJB EJB JMS/MQ Listener SessionBean SessionBean Java Objects SOAP/HTTP XML/HTTP Java Beans SOAP/JMS JMS/MQ RMI/IIOP ORB Other RMI/IIOP RMI/IIOP Relational Persistence JAX-RPC Proxy DB2 Stored Procedures Protocol/Implementation Bindings Converging on J2CA In-bound Connector Support Enterprise Service Bus Enables a service-bus of loosely-coupled components Standardized services specification Multi-protocol support — separates developer and deployment concerns André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 33
  34. 34. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Enterprise Services Bus (from the inside out) Web browser, JMS msg EJB client EIS Web svcs client producer EIS listener HTTP IIOP JMS listener listener listener Container Application server Application components JDBC provider JMS provider IIOP provider EIS adapter Message RMI/IIOP target Database EIS Publisher e.g. EJB André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 34
  35. 35. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Virtualized Messaging – Core Model End Applications are represented as Message Producers and/or Consumers Destinations virtualize the resources attached to the bus Have a distribution pattern (one or all), and an option to queue messages Can be connected together by the administrator, or dynamically Mediations modify routing, format and/or content of a message Logic hosted in the network rather than at an endpoint Message Message Message Message Producer Destination Consumer Consumer M MMeess es ssaag sa gee ge Mediation Destination Destination André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 35
  36. 36. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Virtualized Messaging for Web Services Messaging can be deployed in a single process or distributed across a bus. The core model and the bus topology are hidden from applications Applications unaffected by changes to the topology Administration XML/HTTP Servlet AXIS Runtime Legacy/Procedural Adapter / wFlow JCA Adapter SOAP/HTTP HTTP Producer Message Destination Message Consumer Consumer JMS/MQ JMS Message Listener EJB EJB SessionBean SessionBean Java Beans SOAP/JMS JMS RMI/IIOP ORB Other Relational RMI/IIOP RMI/IIOP Persistence JAX-RPC DB2 Stored Procedures Proxy Converging on J2CA In-bound Connector Support Mediation WSPolicy doc André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 36
  37. 37. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Agenda Service Oriented Architectures Vision and Reality Web Services versus SOA Introduction to Enterprise Service Bus loose coupling patterns Programming Model Elements ESB runtime architecture SOA Component Model J2EE anyone?? —> JSR109 SDO Service Components ESB Mediation Business Process Abstraction BPEL André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 37
  38. 38. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation WSEE – JSR 109 1.1 ƒ Defines web services support within a J2EE environment ƒ Leverages JSR 101 work ƒ Defines client programming model WSDL document' JAXRPC mapping' Generated <portType> <portType> Svc Intfc <SOAP binding> <SOAP binding> <service> <service> <port> <port> Endpoint WSDL to Java Intfc emitter J2EE DDs <service-ref> Use JNDI to access svc inftc <service-interface> Use Svc Intfc to access endpoint <wsdl-file>? interface getPort(port,SEI) <jaxrpc-mapping-file>? getPort() <service-endpoint- createCall() interface>? </service-ref> André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 38
  39. 39. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation JSR 109 1.1 (Continued) ƒ Defines deployment model JAXRPC mapping WSDL document <portType> <SOAP binding> <portType> <service> Endpoint <SOAP binding> <port> <service> Intfc <port> Bind SOAP Find Client Stub Engine Registry Deployment WSDL document' JAXRPC mapping Publish <portType> <SOAP binding> WSDL document <portType> Java Business Object <service> <portType> binding> <SOAP (JavaBean or EJB) <port> <service> <SOAP binding> <port> <service> <port> Tooling Runtime André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 39
  40. 40. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation JSR 109 1.1 (Continued) J2EE 1.4: Changes to DDs - ejb-jar.xml and webservicesclient.xml <ejb-jar id="ejb-jar_ID"> <display-name>Stock Quote Sample EJB</display-name> <enterprise-beans> <session id="Session_1"> <ejb-name>com_ibm_websphere_samples_webservices_stock_StockQuote</ejb-name> <home>com.ibm.websphere.samples.webservices.stock.StockQuoteHome</home> <remote>com.ibm.websphere.samples.webservices.stock.StockQuote</remote> <ejb-class>com.ibm.websphere.samples.webservices.stock.StockQuoteBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> </session> </enterprise-beans> <assembly-descriptor id="AssemblyDescriptor_1"> </assembly-descriptor> </ejb-jar> <webservicesclient> <component-scoped-refs> <component-name>com_ibm_websphere_samples_webservices_stock_StockQuote</component-name> <service-ref> <description>Stock Quote Service</description> <service-ref-name>service/StockQuote</service-ref-name> <service-interface>com.ibm.websphere.samples.webservices.stock.StockQuote</service-interface> <port-component-ref> <service-endpoint-interface>com.ibm.websphere.samples.webservices.stock.StockQuote</service-endpoint-interface> </port-component-ref> </service-ref> </component-scoped-refs> </webservicesclient> André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 40
  41. 41. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation JSR 109 1.1 (Continued) New DDs – ejb-jar.xml <ejb-jar id="ejb-jar_ID" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1"> <display-name>Stock Quote Sample EJB</display-name> <enterprise-beans> <session id="Session_1"> <ejb-name>com_ibm_websphere_samples_webservices_stock_StockQuote</ejb-name> <home>com.ibm.websphere.samples.webservices.stock.StockQuoteHome</home> <remote>com.ibm.websphere.samples.webservices.stock.StockQuote</remote> <service-endpoint>com.ibm.websphere.samples.webservices.stock.StockQuote</service-endpoint> <ejb-class>com.ibm.websphere.samples.webservices.stock.StockQuoteBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> <service-ref> <description>Stock Quote Service</description> <service-ref-name>service/StockQuote</service-ref-name> <service-interface>com.ibm.websphere.samples.webservices.stock.StockQuote</service-interface> <port-component-ref> <service-endpoint-interface>com.ibm.websphere.samples.webservices.stock.StockQuote</service-endpoint-interface> </port-component-ref> </service-ref> </session> </enterprise-beans> <assembly-descriptor id="AssemblyDescriptor_1"> </assembly-descriptor> </ejb-jar> André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 41
  42. 42. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation JSR 109 1.1 (Continued) webservices.xml André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 42
  43. 43. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Current Data Access Challenges Access APIs Many different models/APIs for data and metadata retrieval and Data APIs XML representation Metadata Access APIs File Relational Databases (JDBC), XML Metadata APIs files, JMS, Web Services (JAX-RPC), Enterprise Information Systems (EIS) Access APIs Lack of support for standard Data APIs application patterns Client Data Metadata Access APIs Base Transfer Object Metadata APIs Optimistic concurrency … Pagination of large data-sets … Access APIs Data APIs Metadata Access APIs EIS Metadata APIs André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 43
  44. 44. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Consequences of Current Data Access Challenges Programmers focus on learning technologies, rather than solving business problems Programmers do a lot of low-level coding Tooling does not offer an easy development experience for J2EE application developers André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 44
  45. 45. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation Solution: Service Data Objects (SDO) SDO Core Access APIs APIs Data APIs Custom Mediator Metadata Access APIs File Metadata APIs Client Access APIs JDBC Data APIs Data Mediator Metadata Access APIs Base Metadata APIs … Unified data … representation & Access APIs retrieval across EJB Data APIs heterogeneous Data data sources Mediator Metadata Access APIs Base Metadata APIs André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 45
  46. 46. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation SDO: Design Points Unified data access and representation across heterogeneous data stores SDO supports Dynamic and static (strongly typed) data APIs Disconnected programming model Introspection of data Change history for data modifications Relationship integrity Designed to integrate well in a tooling environment Data objects defined/configured using wizards and views Tooling can integrate utilities for generating static data access APIs Not intended to replace other data access technologies SDO proposal was published jointly by BEA and IBM as JSR 235 André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 46
  47. 47. Colorado Software Summit: October 24 – 29, 2004 © Copyright 2004, IBM Corporation SDO Comparison with Other Technologies Technology Model API Data Source Metadata API Query Language JDBC RowSet Connected Dynamic Relational Relational SQL JDBC Disconnected Dynamic Relational Relational SQL CachedRowSet Entity EJB Connected Static Relational Java introspection EJBQL JDO Connected Static Relational, Java JDOQL Object introspection JCA Disconnected Dynamic Record-based Undefined Undefined DOM and SAX N/A Dynamic XML XML infoset XPath, XQuery JAXB N/A Static XML Java introspection N/A JAX-RPC N/A Static XML Java N/A introspection SDO Disconnected Both Any SDO Metadata Any API,Java Introspection André Tost — How To Develop Applications For Business Integration: Pulling J2EE, SOA and Web Services Together Page 47

×