14
Enterprise Service Bus (SOA) کانال مرکزی خدمات سازمانی مبتنی برعماری مرويس س گرا آذر۱۳۹۱ حامد حاتمی

Enterprise Service Bus

Embed Size (px)

DESCRIPTION

Enterprise Service Bus

Citation preview

Page 1: Enterprise Service Bus

Enterprise Service Bus(SOA)

سازمانی خدمات مرکزی کانالگرا سرويس معماری بر مبتنی

۱۳۹۱ آذر

حاتمی حامد

Page 2: Enterprise Service Bus

Enterprise Service Bus and Services Oriented Infrastructure

Enterprise Service Bus (ESB) Definition

An ESB can be thought of as a set of software patterns that enable enterprise integration of software assets through a consistent, standards and message-based infrastructure. By approaching application and data integration in this way, enterprises and organizations can provide a common set of mechanisms by which deployed software assets can communicate over multiple protocols and are able to be reused in a flexible way with little or no new development. Some of the key concepts provided by an ESB through which all its capabilities derive are:

• Abstraction. As in a hardware bus from which the "B" in ESB is derived, an ESB provides a consistent and standard layer of abstraction for the software assets (both consumers and services) that utilize it. This abstraction cuts across multiple contexts and typically includes the idea of location independence (consumers are not required to make point to point connections to services), dynamic message routing (consumers can specify or rules or policies that can determine how messages travel between services), transformation (services can rely on the ESB to transform messages appropriately for consumption including both schema and protocol mapping ), and ensuring quality of service (authentication and authorization as well as reliable delivery). This abstraction also provides the point at which value-added operational services such as logging, monitoring, and load balancing can be injected into the infrastructure. These capabilities as well as many others are listed and defined in the "Capabilities Comparison" section of this document.

• Messaging Layer. The creation of a messaging layer is what enables the various kinds of abstractions, described above, to operate effectively. That is, the adoption of standard ways of sending and receiving essages and a common language for representing messages (i.e. XML and various specifications built on top of XML) provides the opportunity for dynamic routing, message transformation, and security. For example, by utilizing XML and SOAP, information can be encoded into messages that enable the ESB to act on the message and perform services such as dynamic routing and message authentication while the industry standard nature of XML itself allows for message transformation using mechanisms like Xpath and XQuery that can be surfaced by the ESB. Architectures based this concept can also

Page 3: Enterprise Service Bus

be referred to as IFaPs (Identifiers, Formats, and Protocols) since they encapsulate identifiers (for example a URI for a web service), formats (e.g. XML and SOAP), and protocols (e.g. HTTP). Although SOAP over XML is one IfaP that can be used to create a messaging layer, there are other IFaPs that an ESB could surface to allow consumers to interact with deployed software assets. One such example is Representational State Transfer of REST which is much lighter weight than SOAP.

Services Oriented Infrastructure(SOI)A Service Oriented Infrastructure provides the foundation for IT services. A concept initially developed by Intel discussed three domains for Service Orientation: the Enterprise, the (Application) Architecture and the Infrastructure. This specific item covers the Infrastructure. Key aspects of Service Oriented Infrastructure are Industrialization and Virtualization, providing IT Infrastructure services via a pool of resources (web servers, application servers, database servers, servers, storage instances) instead of through discrete instances.While service-oriented architecture (SOA) is widely adopted by the IT Industry, a Service Oriented Infrastructure or SOI has lagged in adoption. This has now changed with the availability of SOI solutions like Application Server Grids, Database Grids, Virtualized Servers and Virtualized Storage.

The term SOI also has a broader usage, which includes all configurable infrastructure resources such as compute, storage, and networking hardware and software to support the running of applications. Consistent with the objectives for SOA, SOI facilitates the reuse and dynamic allocation of necessary infrastructure resources. The development of SOI solutions focuses around the service characteristics to be provided. The service characteristics are the basis for both the development as well as the delivery of the services. The notion of a fully managed lifecycle of the services provide a continuum that is in contrast to the event based deployment of IT Infrastructure that provided discrete silo's of IT Infrastructure for specific applications .

In a typical SOI implementation the primary interest in an ESB is to enable both application and data integration in a way that logically extends the existing service oriented infrastructure (commonly referred to as "the SOA"). The SOI implementation should not be confused with the web services architecture built on the concept of point to

point integration. Enterprise services can be classified as:

• Entity Services. These services expose and allow the manipulation of business entities in the system. They are the data-centric components of the business process. Entity Services abstract data stores (such as SQL Server or Active Directory) and expose information stored in one or more data stores in the system through a service interface. The information they manage can transcend a specific system and be used in some or all the systems in the organization.

Page 4: Enterprise Service Bus

A service may aggregate the information stored in several database tables or in separate databases and project the information as a single entity.

• Capability Services. These services implement the business-level capabilities of an organization, and represent the building blocks that comprise an organization's business processes. Such services may interface with a Business Process Management (BPM) product to create and populate human workflow incidents. Capability Services expose the service interface specific to the capability they represent.

• Infrastructure Services. These services provide common facilities that are not part of the application and that do not add any explicit business value. Infrastructure is required for implementing any business process in an SOA. They expose operations used to measure and determine the availability of performance of components within the service oriented infrastructure. For example, a Management Infrastructure service may used to probe key components of the system to measure up time and service availability. In addition several infrastructure services can be used to communicate with the human workflow engine as well handle the retry and resubmission of service invocations that fail.

• Activity Services. These services implement the business-level capabilities that are unique to a particular application. The main difference between Activity Services and Capability Services is the scope in which they are used. While Capability Services are an organizational resource, Activity Services are used in a much smaller scope, such as a single composite application or a single solution (comprising several applications). Over time and with enough reuse across the organization, an Activity Service may evolve into a Capability Service.

• Process Services. These services implement the business processes of an organization by composing the functionality of the Activity Services, Capability Services, and Entity Services and tying them together with business logic within the Process Service to define the business operation. An example of a Process Service is the Reconcile Constituent Process Service used to create, locate, and update constituent data based on an incoming message. Process services communicate with Entity and Capability services through the message mapping capability.

At a recent Gartner Application Architecture, Development and Integration Summit it was noted that when organizations grow to field 25 or more services "a middleware-based intermediary, a SOA backplane, is required.

Page 5: Enterprise Service Bus

That "SOA backplane" is a superset of the ESB capabilities discussed in this document. The requirement that Gartner notes is driven by the notion that as the business functionality of the services expand to include more of the key entities and processes within the organization, the number and types of consumers of those services and the need to integrate other types of software assets (applications and data) expands even more rapidly. The result is that service implementations must be developed and executed on platforms that more easily provide the necessary quality of services.

From a maturity perspective Gartner breaks down SOA adoption into four stages :

• Introduction. Addresses a specific pain for a single application and is composed of fewer than 25 services and 10,000 service calls per day. The enabling technology in this stage is individual application servers and customer adapters.

• Spreading. Addresses process integration with the goal of establishing a technology platform that encompasses multiple applications. Here the number of services reaches to 100 with 100,000 service calls per day from up to 25 consumers and implemented using an ESB and web services managementintegration suite.

• Exploitation. Addresses process flexibility through leveraging shared services across multiple applications and business units. Here there may be up to 500 deployed services and 50 consumers making 1,000,000 calls per day.

• Plateau. Finally, in this last stage, the infrastructure supports continuous adaptation and evolution and is exposed throughout the enterprise with an infrastructure that scales to over 500 services and millions of service calls per day from more than 50 consumers.

Page 6: Enterprise Service Bus

Conceptual SOI/SOA “to-be” Architecture

A holistic SOI architecture might look like the following figure (Figure 1) where much of the Shared Services Infrastructure is managed by an Enterprise Service Bus (ESB) and applications are typically surfaced through portal acting as the consumer. This approach is one of three application integration styles discussed in the Gartner presentation mentioned previously where applications can be created that provide a seamless interface to users or machines through the back-end invocation and aggregation of multiple services.

Figure 1: SOI Architecture

It might also be apparent from this architecture that the ESB provides the centralized

mechanism through which the various layers communicate. However, it should be remembered that while the ESB functionality is primarily concerned with communication

Page 7: Enterprise Service Bus

(e.g. routing, message transformation, security, and location independence) Figure 1 highlights the larger role for the Shared Services Infrastructure layer and some of the functionalities that it must support. For example, elements displayed to the right of the ESB component in Figure 1 imply that Shared Services Infrastructure layer must support the management of deployed services in a reliable infrastructure that is secure , governable, and driven by the organization's understanding of how data and applications are classified . Finally, before moving on to the capabilities comparison it should be cautioned that although the products discussed in the remainder of this document do provide core capabilities that can be leveraged to build an ESB and Shared Services Infrastructure, the software products themselves are not the Services Layer or the ESB. As Gartner has cautioned it's important to remember that SOA initiatives are likely to be 10% infrastructure and 90% best practices and culture. Those best practices and culture involve the governance of the Services Layer ("SOA backplane") through the creation of standard processes and patterns for doing everything from defining message schemas using the supported IFaPs to provisioning and hosting new services.

There are various "ESB" vendors in the market today that can divide them into two categories :

• Commercials : IBM , Oracle , Microsoft , ...

• Open Sources : JBoss , WSO2 , Mule , Apache , ...

In general, the software that provides ESB is expected to meet some criteria at the least. Below are the following :

• Support for various message exchange patterns like Publish/Subscribe, Synchronous, Asynchronous, Request/Response models.

• Provide interoperability between various development platforms to enable disparate systems to talk to each other.

• Emphasizes the use of XML as the common communication language although the different ESB products support almost every data exchange mechanism.

• Provide ability to draft workflows that do data transformations.• Ability to breakdown various input messages in different output formats.• It should be able to apply rules based data formatting uniformly.• Conditional rules processing to transform messages.• Standardized security model that controls the use of the ESB services.• Be able to transform data & values using transformation services like XSL, XQuery,

XPath between the senders and receivers.• Service Orchestration - ability to aggregate different services as a single service.• Provide management services like logging, monitoring, administration.• Provide adapaters to talk to various system with a plug and play rather than

handling the implementation specifics on how the systems need to communicate. The approach being to provide a standard communication format for various systems.

• Ability to implement SOA driven solutions.

Page 8: Enterprise Service Bus

All the ESB products provide similar functionalities and similar same ease of use.

Some Open Source Products

• Red Hat JBoss ESB• Red Hat FuseSource ESB• WSO2• Mule ESB• Adroit Logic UltraESB• Apache ServiceMix• Apache Synapse

Some Commercial Products

• IBM ESB• IBM Message Broker• Oracle ESB• Microsoft BizTalk•

Page 9: Enterprise Service Bus

Some Advantages Of Open Source Products :

• Less dependence on vendors (Freedom – No Black Boxes)• Lower Cost • Interoperability• Flexibility• Easier to customize (Customizability)• High Availability - Better Security - High Performance (Quality)• Auditability• Ability to integrate with other open source frameworks easily like open

source Wife Swift Engine.• There are many developers• Support Options like excellent documentation, forums,

mail ing lists, forges, wikis, newsgroups and even live support chat.

• Compatibi l ity (Java EE 5 / Java EE 6 / Aria Product)

Comparison Of Some Open Source Products

WSO2 ESB and SOA Platform

Mule ESB

FuseSource ESB

Adroit Logic UltraES B

JBoss ESB and SOA Platform

Tibco ActiveMatrix

Supports Enterprise Integration Patterns

Yes Yes Yes Yes Yes Yes

Delivers all required ESB features(i.e. web services, message transformation, protocol mediation, content routing)

Yes Yes Yes Yes Yes Yes

Page 10: Enterprise Service Bus

Offers a complete and cohesive SOA Platform(i.e. ESB, Message Broker, Governance Registry, Business Process Server, Data Services Server, Application Server)

Yes No No No Yes Yes

SOA Governance Yes No No No No Yes

Graphical ESB Development Workbench

Yes Yes Yes No Yes Yes

Based on a composable architecture

Yes No No No No No

Cloud integration platform offering (iPaaS)

Yes Yes No No No Yes

Cloud Connectors and Legacy Adapters

Yes Yes No No Yes Yes

PerformanceVery High

High HighVery High

High High

Security and Identity Management

Yes Limited Limited Limited Limited Limited

Open Business Model

Yes Yes Yes Yes No No

Page 11: Enterprise Service Bus

JBoss Enterprise SOA Platform Cost Comparison CalculatorThis calculator compares the ongoing subscription costs of JBoss Enterprise SOA Platform (SOA-P) to the upfront license and ongoing support/maintenance costs of IBM WebSphere ESB and Oracle SOA Suite.

Pricing models for IBM WebSphere and Oracle WebLogic are highly dependent on both the number of processor cores as well as the type of processor core in use. Please review the instructions for each comparison to ensure the correct IBM Processor Value Units (PVUs) and Oracle Core Factors are being used. To calculate license and support costs for IBM WebSphere you must know the number of CPUs, plus the brand of server, chip type, and number of cores per chip that you plan to deploy upon.

Using the calculatorInput all variables in white cells. Mouse over the marked rows for more information. See charts graphically displaying the JBoss Enterprise SOA Platform savings below the calculator.

• IBM

Year 1 Year 2 Year 3

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

Existing Processors

4 n/a 8 n/a 12 n/a

New Processors

4 4 4

Cores per Processor

4 4 4

Total Cores 32 32 48 48 64 64

IBM Value Units per Core *

70 n/a 70 n/a 70 n/a

New Value Units

1120 1120 1120

Total Value Units

2240 3360 4480

IBM List License Cost /

Value Unit $383 $383 $383

License Discount

0% 0% 0%

Total License Costs

$428,960 $428,960 $428,960

Page 12: Enterprise Service Bus

Year 1 Year 2 Year 3

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

IBM Websphere

ESB

JBoss Enterprise

SOA Platform

Production Support

(% of License Net)

20% n/a 20% n/a 20% n/a

Total Support Costs

$85,792 $171,584 $257,376

Total License + Support

-or- Subscription

Cost

$514,752 $58,000 $600,544 $87,000 $686,336 $108,000

JBoss Savings per Year

$456,752 $513,544 $578,336

JBoss Savings Over 3 Years

$1,548,632

JBoss Savings % Over 3

Years86%

Note :• The default is set for the new Nehalem chips (70 PVUs). When customizing,

please be specific as to whether or not they are Nehelem chips and adjust accordingly.

Disclaimers

Oracle/IBM prices are as of January 19, 2012

• JBoss Enterprise Middleware pricing is for demonstration purposes only and DOES NOT constitute an official price quote. Red Hat reserves the right to change prices in this calculator without notice. JBoss pricing in this calculator does not include volume discounts. For an official quote with pricing customized for your business, please contact your Red Hat sales representative.

Page 13: Enterprise Service Bus

• Calculator assumes the same number of cores/processor and same Oracle core factor or the same number of IBM Value Units per core for all years.

• IBM and Oracle pricing and support costs are derived from publicly available data. See above links for details.

• Oracle

Year 1 Year 2 Year 3

Oracle SOA Suite

JBoss Enterprise

SOA Platform

Oracle SOA Suite

JBoss Enterprise

SOA Platform

Oracle SOA Suite

JBoss Enterprise

SOA Platform

Existing Processors

0 n/a 4 n/a 8 n/a

New Processors 4 4 4

Cores per Processors

4 4 4

Total JBoss Cores n/a 16 n/a 32 n/a 48

Oracle Core Factor

0.5 n/a 0.5 n/a 0.5 n/a

Total Adjusted Oracle Processors

8 8 8

Oracle SOA Suite for Oracle

Middleware List License Cost per

processor

$57,500 $57,500 $57,500

Oracle WebLogic Suite List License

Cost per processor

$45,000 $45,000 $45,000

Total Oracle List License Costs

$102,500 $102,500 $102,500

License Discount 0% 0% 0%

Total License Costs

$820,000 $820,000 $820,000

Production Support

(% of License Net)

22% n/a 22% n/a 22% n/a

Total Support Costs

$180,400 $360,800 $541,200

Total License + Support

-or- Subscription Cost

$1,000,400 $29,000 $1,180,800 $58,000 $1,361,200 $87,000

Page 14: Enterprise Service Bus

Year 1 Year 2 Year 3

Oracle SOA Suite

JBoss Enterprise

SOA Platform

Oracle SOA Suite

JBoss Enterprise

SOA Platform

Oracle SOA Suite

JBoss Enterprise

SOA Platform

JBoss Savings per Year

$971,400 $1,122,800 $1,274,200

JBoss Savings Over 3 Years

$3,368,400

JBoss Savings % Over 3 Years

95%

Note : • The default is set for the new Nehalem chips (70 PVUs). When customizing,

please be specific as to whether or not they are Nehelem chips and adjust accordingly.

Disclaimers

Oracle/IBM prices are as of January 19, 2012.

• JBoss Enterprise Middleware pricing is for demonstration purposes only and DOES NOT constitute an official price quote. Red Hat reserves the right to change prices in this calculator without notice. JBoss pricing in this calculator does not include volume discounts. For an official quote with pricing customized for your business, please contact your Red Hat sales representative.

• Calculator assumes the same number of cores/processor and same Oracle core factor or the same number of IBM Value Units per core for all years.

• IBM and Oracle pricing and support costs are derived from publicly available data. See above links for details.