introduction to enterprise service bus
TRANSCRIPT
![Page 1: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/1.jpg)
Enterprise Service BusSERVICE ORIENTED ARCHITECTURE
Eng. Mahmoud EzzatSenior Software Engineer
![Page 2: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/2.jpg)
Agenda
1. Architecture
2. Service-Oriented Architecture• Overview• What is a Service?• Characteristics of a Service• Reference Architecture
3. Enterprise Integration Pattern
4. Enterprise Service Bus
5. IBM Websphere ESB• Common Used Patterns• Service Component Architecture
![Page 3: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/3.jpg)
Architecture
![Page 4: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/4.jpg)
Architecture
• Architecture implies a consistent and coherent design approach. Essential principles include:• Consistency: The same challenges should be addressed in a uniform
way.• Reliability: The structures created must be fit to purpose and meet the
demands for which they are designed.• Extensibility: A design must provide a framework that can be
expanded in ways both foreseen and unforeseen.• Scalability: The implementation must be capable of being scaled to
accommodate increasing load by adding hardware to the solution.
![Page 5: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/5.jpg)
Service-Oriented ArchitectureOVERVIEW
![Page 6: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/6.jpg)
Service-Oriented Architecture Overview
SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology agnostic manner. SOA consists of a composite set of business-aligned services that support a flexible and dynamically re-configurable end-to-end business process realization using interface-based service descriptions.
![Page 7: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/7.jpg)
Service-Oriented Architecture Overview
Providing a method to disconnect the service provider (service capability which delivers a defined action) from the service requester (client that sends the request).
![Page 8: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/8.jpg)
Service-Oriented ArchitectureWHAT IS A SERVICE?
![Page 9: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/9.jpg)
Service-Oriented ArchitectureWhat is a Service?
• A service is a reusable component that can be used as a building block to form larger, more complex business-application functionality.
• A service may be as simple as “get me some person data,” or as complex as “process a disbursement.”
![Page 10: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/10.jpg)
Service-Oriented Architecture What is a Service?
• A service provides a discrete business function that operates on data. Its job is to ensure that the business functionality is applied consistently, returns predictable results, and operates within the quality of service required.
• How the service is implemented, and how a user of the service accesses it, are limited only by the SOA infrastructure choices of the enterprise.
• From a theory point of view, it really doesn’t matter how a service is implemented.
![Page 11: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/11.jpg)
Service-Oriented ArchitectureCHARACTERISTICS OF A SERVICE?
![Page 12: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/12.jpg)
Service-Oriented Architecture Characteristics of a Service?
• Supports open standards for integration: Although proprietary integration mechanisms may be offered by the SOA infrastructure, SOA’s should be based on open standards. Open standards ensure the broadest integration compatibility opportunities.
• Loose coupling: The consumer of the service is required to provide only the stated data on the interface definition, and to expect only the specified results on the interface definition. The service is capable of handling all processing (including exception processing).
![Page 13: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/13.jpg)
Service-Oriented Architecture Characteristics of a Service?
• Stateless: The service does not maintain state between invocations. It takes the parameters provided, performs the defined function, and returns the expected result. If a transaction is involved, the transaction is committed and the data is saved to the database.
• Location agnostic: Users of the service do not need to worry about the implementation details for accessing the service. The SOA infrastructure will provide standardized access mechanisms with service-level agreements.
![Page 14: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/14.jpg)
Service-Oriented ArchitectureREFERENCE ARCHITECTURE
![Page 15: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/15.jpg)
Service-Oriented Architecture Reference Architecture
![Page 16: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/16.jpg)
Enterprise Integration Patterns
![Page 17: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/17.jpg)
Enterprise Integration Patterns
Why Do We Need Integration?
What Makes Integration so Hard?
How can Patterns Help?
![Page 18: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/18.jpg)
Enterprise Integration Patterns• Integration Styles document different ways applications can be integrated. These patterns
present somewhat of a historical account of integration technologies. All subsequent patterns follow the Messaging style.
• Channel Patterns describe the fundamental attributes of a messaging system. These patterns are implemented by most commercial messaging systems. This section focuses on the interrelationships between different features and highlights implementation trade-off made by different vendors.
• Message Construction Patterns describe the intent, form and content of the messages that travel across the messaging system. The base pattern for this section is the Message pattern.
• Routing Patterns discuss mechanisms to direct messages from a sender to the correct receiver. Message routing patterns consume messages from one channel and republish the message to another channel that is determined by a varying set of conditions. The message content is not modified. The patterns presented in this section are special cases of the Message Router base pattern.
![Page 19: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/19.jpg)
Enterprise Integration Patterns• Transformation Patterns change the information content of a message. In many
cases, a message format needs to be changed due to different data formats used by the sending and the receiving system. Data may have to be added, taken away or existing data may have to be rearranged. The base pattern for this section is the Message Translator.
• Endpoint Patterns describe the behavior of messaging system clients. They illustrate different ways in which applications can produce or consume messages.
• System Management Patterns provide the tools to keep a complex message-based system running. A message-based integration solution can process thousands or even millions of messages in a day. Messages are generated, routed, transformed and consumed. The solution has to deal with error conditions, performance bottlenecks and changes in the participating systems. Message management patterns address these requirements.
![Page 20: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/20.jpg)
Enterprise Integration Patterns
• Examples
http://www.enterpriseintegrationpatterns.com/toc.html
![Page 21: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/21.jpg)
Enterprise Service BusIMPLEMENTATION OF ENTERPRISE INTEGRATION PATTERNS
![Page 22: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/22.jpg)
Enterprise Service Bus
An "Enterprise Service Bus" (ESB) is a system to which all services are connected. Through the enterprise service bus
all connected services can also be accessed.
Implement Enterprise Integration Patterns
![Page 23: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/23.jpg)
Enterprise Service Bus
• An ESB is used to connect the service requester to the service provider so that messages can be routed between the two platforms.
• The ESB is a collection of software components that manage messaging from one part of the network to another.
• The ESB handles mismatches between the requesters and providers, including protocol, interface or quality of service mismatches.
![Page 24: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/24.jpg)
Enterprise Service Bus
• The ESB processes messages exchanged between the service endpoints.
• In contrast with regular business application components, the ESB is concerned with the flow of the messages through the infrastructure and not just with the business content of the messages. Rather than performing business functions.
• The ESB performs mediation capabilities including, routing, transformation, and logging operations on the messages.
![Page 25: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/25.jpg)
Enterprise Service Bus• An Enterprise Service Bus which
acts as central "bridge" or "gateway" to all applications exposing services underneath it.
• The term "bus" is an analogy to the internal bus of a computer onto which the CPU, RAM and other chips are connected. An enterprise service bus is typically implemented as a server or a set of servers, and is thus more than just a "network".
![Page 26: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/26.jpg)
Enterprise Service Bus
• Clients and services connected to an enterprise service bus do not communicate directly. They communicate via the ESB.
• This is done by having the ESB essentially expose the same service interface to potential clients, that the connected services expose to the ESB.
![Page 27: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/27.jpg)
Enterprise Service Bus
ESB as Single Point of Access
• One advantage of connecting clients and services via an enterprise service bus is that clients need only look for services in a single location: The enterprise service bus.
• If a service is moved from one server to another, you only need to reconfigure the ESB. The clients still just access the service via the ESB.
![Page 28: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/28.jpg)
Enterprise Service Bus
ESB as Transaction Manager
• ESB can coordinate distributed transactions which multiple services participate in.
• When multiple distributed services need to participate in a transaction some entity typically has to coordinate the transaction. Rather than forcing the client to do this, the enterprise service bus can do so.
![Page 29: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/29.jpg)
Enterprise Service Bus
ESB as Security Manager
• Security aspects like authentication and authorization can be centralized in the enterprise service bus. Even if a service in an application does not have authentication and authorization, the enterprise service bus can require this in the service interface it exposes to potential clients.
![Page 30: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/30.jpg)
Enterprise Service BusESB as Service Proxy
• An ESB may function as a gateway or proxy for applications that do not expose a standardized service interface to the world. For instance, lets say an application exposes a Java RMI service. The rest of your network is running on .NET which cannot directly call the RMI service.
• To solve this problem you can implement a service proxy in Java which can call the RMI service. The service proxy then exposes a web service interface (SOAP + WSDL) via the ESB to the .NET applications.
![Page 31: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/31.jpg)
Enterprise Service Bus
ESB as Gateway to the World
• If some clients need to connect to services running in the outside world, the ESB can potentially function as a gateway to the world outside. Again, security aspects etc. can be added on top of the external service. Furthermore, if the external service is capable of participating in distributed transactions, the ESB can coordinate this too.
![Page 32: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/32.jpg)
IBM Websphere ESB
![Page 33: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/33.jpg)
IBM Websphere ESB
Websphere ESB is designed to provide an ESB for IT environments built around open standards and SOA. It delivers easy to use functionality that is built on the messaging and web services
technologies of Websphere Application Server.
![Page 34: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/34.jpg)
IBM Websphere ESB• Websphere Integration Developer, is the tool for use with Websphere ESB.
It is designed to build applications that will be deployed to either Websphere ESB or Websphere Process Server.
• WebSphere ESB supports connectivity between endpoints through a variety of protocols and application programming interfaces (APIs) such as:• WebServices SOAP 1.1 and 1.2• Java Message Service (JMS) 1.1• WebSphere MQ• Enterprise Java Bean (EJB) Stateless Session Bean• HTTP• Enterprise Information Systems (EIS) integration using WebSphere Adapters
![Page 35: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/35.jpg)
IBM Websphere ESBCOMMON USED PATTERNS
![Page 36: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/36.jpg)
Simple Service Proxy Pattern
![Page 37: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/37.jpg)
Service Selector Pattern
![Page 38: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/38.jpg)
Service Translator Pattern
![Page 39: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/39.jpg)
Service Gateway Pattern
![Page 40: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/40.jpg)
Message Enrichment Pattern
![Page 41: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/41.jpg)
Batch Aggregation Pattern
![Page 42: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/42.jpg)
Multiple Source Aggregation Pattern
![Page 43: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/43.jpg)
IBM Websphere ESBSERVICE COMPONENT ARCHITECTURE
![Page 44: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/44.jpg)
Service Component Architecture
• Module, A unite of deployment, where services are packaged together.
• Modules can include:• Service components, that hold the business function within a module.• Imports, that are calls to services external to the module.• Exports, that are used to expose components to callers that are external to the
module.• Interfaces, which can be associated with one or more components.• Stand-alone references or reference applications that are not defined as SCA
components (for exemple, JavaServer Pages).• Other elements, for example WSDL files, Java classes, XSD files.
![Page 45: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/45.jpg)
Service Component Architecture – Module Structure
![Page 46: Introduction to Enterprise Service Bus](https://reader036.vdocuments.us/reader036/viewer/2022081506/55c63a0dbb61ebe7418b45e6/html5/thumbnails/46.jpg)
References
• WebSphere Enterprise Service Bus - Development Guid
• IBM ESB Paper: http://www.eecg.utoronto.ca/~jacobsen/courses/ece1770/reader06/paper-esb1.pdf
• http://tutorials.jenkov.com/soa
• http://www.enterpriseintegrationpatterns.com/
• http://www.javaworld.com/article/2071889/soa/what-is-service-oriented-architecture.html
• http://www.j2mesalsa.com/soa/intro.php
• http://www.secc.org.eg/recocape/Documents/SECC_Tutorials_A%20Quick%20Introduction%20to%20SOA.pdf