39
An introduction to An introduction to Enterprise Service Bus Enterprise Service Bus www.folio3.com @folio_3

Introduction to Enterprise Service Bus

Embed Size (px)

Citation preview

An introduction toAn introduction toEnterprise Service BusEnterprise Service Bus

www.folio3.com@folio_3

Folio3 – OverviewFolio3 – Overview

www.folio3.com @folio_3

Who We Are

We are a Development Partner for our customers

Design software solutions, not just implement them

Focus on the solution – Platform and technology agnostic

Expertise in building applications that are:

Mobile Social Cloud-based Gamified

What We Do Areas of Focus

Enterprise

Custom enterprise applications

Product development targeting the enterprise

Mobile

Custom mobile apps for iOS, Android, Windows Phone, BB OS

Mobile platform (server-to-server) development

Social Media

CMS based websites for consumers and enterprise (corporate, consumer,

community & social networking)

Social media platform development (enterprise & consumer)

Folio3 At a Glance Founded in 2005

Over 200 full time employees

Offices in the US, Canada, Bulgaria & Pakistan

Palo Alto, CA. Sofia, Bulgaria

Karachi, Pakistan

Toronto, Canada

Areas of Focus: Enterprise Automating workflows

Cloud based solutions

Application integration

Platform development

Healthcare

Mobile Enterprise

Digital Media

Supply Chain

Some of Our Enterprise Clients

Areas of Focus: Mobile Serious enterprise applications for Banks,

Businesses

Fun consumer apps for app discovery,

interaction, exercise gamification and play

Educational apps

Augmented Reality apps

Mobile Platforms

Some of Our Mobile Clients

Areas of Focus: Web & Social Media

Community Sites based on

Content Management Systems

Enterprise Social Networking

Social Games for Facebook &

Mobile

Companion Apps for games

Some of Our Web Clients

An introduction toAn introduction toEnterprise Service BusEnterprise Service Bus

www.folio3.com @folio_3

Background

Enterprises usually have more than one application

Custom build applications

Legacy systems

ERP, CRM systems like SAP, Salesforce etc.

Users expect instant access to all business functions an enterprise can

offer.

This requires disparate applications to be connected into a larger,

integrated solution.

This integration is usually achieved through the use of some form of

"middleware“.

Middleware Solutions

MOM (Message Oriented Middleware)

SOA (Service Oriented Architecture)

ESB (Enterprise Service Bus)

Example

CRM

Linux, WS

Billing

Mainframe, FTP

GL

Linux, JMS

Reporting

Windows, WS

Challenges

Operating Systems

Platforms

Protocols

APIs

CRM

Linux, WS

Billing

Mainframe, FTP

GL

Linux, JMS

Reporting

Windows, WS

Solution

CRM Billing

GL Reporting

ESBs used by Google

Yahoo

Walmart

Ebay

Bank of America

Verizon

Nestle

Adobe

Motorola

T-Mobile

Xerox

Enterprise Service Bus (ESB)

ESB is a software infrastructure that facilitates application integration.

An ESB provides an abstraction layer on top of an implementation of

an enterprise messaging system, which allows integration architects to

exploit the value of messaging without writing code. The ESB forms the

backbone of the SOA system and provides necessary infrastructure for

building SOA applications. It acts as a transit system or bus through

which different applications talk to each other using different protocols

and message formats.

Enterprise Service Bus (ESB)

Integrates applications

Coordinates resources

Manipulates information

Enables the connection of software that runs on:

Different platforms

Different programming languages

Different programming models.

Enterprise Service Bus (ESB)

Properties of an ESB

Loosely coupled

Event Driven

Abstract Endpoints

Intelligent Routing

Message Transformation (inbound/outbound)

Reliable Messaging

Multi-Protocol Message Bus

Transactional

Securable

Features of an ESB

Multiple Protocols

Data Transformation

Data Mapping

Message Routing

Orchestration

Job Scheduling

Audit Trail

Configuration UI

Protocols

FTP / FTPS

HTTP / HTTPS

SOAP

REST

JMS

Etc.

Data Transformation

Object to XML Transformer

XML to Object Transformer

XML to String Transformer

XSLT Transformer

Xquery Transformer

Custom Transformer

Smooks

Etc.

Data Mapping

Database to XML

XML to Database

Object to XML

Object to Database

XML to Object

Database to Object

BPEL and Smooks Mapper

Etc.

Message Routing

Inbound Routers

Outbound Routers

Content based Message Routing

Xpath

Groovy

String matching etc.

Inbound Routers No Router

Selective Consumer

Idempotent Message Filter

Idempotent Secure Hash Message Filter

Collection Aggregator

Message Chunking Aggregator

Custom Correlation Aggregator

Correlation Resequencer

Forwarding Router

Wiretap Router

Custom inbound Router

No Router

If no router is defined on the inbound, all messages received via the

endpoints will be processed by the service component.

<inbound>

<jms:inbound-endpoint queue=“inbound.A"/>

</inbound>

<component class="PatientEvaluationService“/>

Selective Consumer

Can apply one or more filters to the incoming message.

If the filters match, the message is forwarded to the component.

Otherwise, the message is forwarded to the catch-all strategy on the router.

<selective-consumer-router>

<jxpath-filter expression="msg/header/resultcode = 'success'"/>

</selective-consumer-router>

<forwarding-catch-all-strategy>

<jms:endpoint topic="error.topic"/>

</forwarding-catch-all-strategy>

Outbound Routers Pass through Router

Filtering Router

Recipient List Routers

Multicasting Router

Chaining Router

List Message Splitter

Filtering XML Message Splitter

Expression Splitter Router

Exception Based Routers

Template Endpoint Router

Custom Outbound Router

Matching All Routers

A message is processed only by the FIRST outbound router

whose conditions it matches

Matching All Routers is used for processing by ALL the matching

outbound routers

For example, assume you always want to send a confirmation of

a deposit back to the original depositor. Also assume that if the

deposit was above $100,000, you want to send a notification

message to the 'high net worth client manager' for possible

follow-up

Matching All Routers

<outbound matchAll="true">

<filtering-router>

<endpoint address="jms://deposit.queue"/>

</filtering-router>

<filtering-router>

<jms:outbound-endpoint queue="large.deposit.queue"/>

<jxpath-filter expression="deposit/amount >= 100000"/>

</filtering-router>

</outbound>

Orchestration

Architecture of ESB

ESB Products Commercial

MS Biztalk Server 2010

Weblogic Integration

IBM Websphere Enterprise Service Bus

Open Source

Apache Mule

Jboss ESB

SUN Open ESB

Jitterbit

ObjectWeb PEtALS

Fuse ESB, WSO2 ESB

Apache ServiceMix

Apache Mule Screenshot

References

http://www.esbinaction.com/presentation/EIwithMule_javazon

e_2007.pdf

http://blogs.msdn.com/b/mohammadakif/archive/

http://d3s.mff.cuni.cz/research/seminar/download/2006-03-14-

Kapova-ESB.pdf2006/09/17/759414.aspx

http://www.binaryspectrum.com/service-oriented_arc

http://www.esbinaction.com/presentation/OpenSourceESBs_ja

vapolis_2007.pdfhitecture/esb.html

Contact

For more details about our services, please get in

touch with us.

[email protected]

US Office: (408) 365-4638

www.folio3.com