You are on page 1of 35

Enterprise Service Bus

Mojtaba Akbarzadeh
Nov 2015

1
Agenda

Service Oriented Architecture


About ESB
ESB Architecture and Components
ESB Features
EIP Enterprise Integration Pattern
A little example

2
Service Oriented Architecture

3
Service Protocols

SOAP
REST
CORBA
RPC
RMI
Database (SQL, NoSQL, Key-Value, …)
Network Protocols(HTTP, FTP, TCP, POP, …)

4
Serialization formats

XML
JSON
Java serialization
Apache Thrift
Apache Avro
Google Protocol Buffers (protobuf)
JAXB

5
Service Call

Synchronous
Asynchronous
Blocking and Non-blocking

6
Service QoS

Availability
Performance
Reliability
Scalability
Integrity
Security

7
About ESB

software architecture construct,


which lives between the
(business) applications and
enables communication among
them
replace all direct contact with the
applications on the bus
 reduces the number of point-to-
point connections between
communicating applications

8
About ESB
Event handling - Guarantee event processing
Protocol conversion - Transparently translate
between communication protocols (e.g., HTTP,
FTP, REST, SOAP, JSON, DCOM, CORBA, SAP
RFC etc.)
Mapping - Transfer between tabular data formats

9
About ESB

Translation and transformation - Change data


content based on rules
Queuing and buffering - Handle differing data
processing speeds between sender and receiver

10
ESB Architecture

11
Components

Application Layer

Service Service Layer Service Registry


Orchestration
JMS Web Service Routing EIP Transaction
)ActiveMQ( CXF )camel( )Camel( )JTA(

Kernel Layer
Log Deployment Configuration Security
Lifecycle Management
12
Components

95 92
77

58

35
28
14

g g n n es n t
t in in io io ic t io en
u sa
g at i at r v r a pm
Ro es rm ed fs
e
es
t
el
o
M fo m o ch v
ns n n or de
t r a tio tio ed
a sa
c ea ed s
at Cr as ba
D an -b -
Tr EL EL
P BP
B

13
Progress Software

Tibco Software
Software AG
IBM (WESB)
FuseSource
Forrester’s
Weighting

MuleSoft

Red Hat
Oracle

WSO2
CURRENT OFFERING 50% 4.6 3.68 4.35 4.74 4.78 3.21 4.89 4.71 4.47
Architecture 40% 4.88 3.92 4.7 4.58 5 2.9 4.88 5 4.48
Orchestration 10% 5 3 2.5 5 5 2.5 5 4 4
Mediation 20% 3.89 3.77 4.14 4.76 4.27 3.98 4.69 4.63 4.75
Connection 10% 4.7 4.6 5 4.6 4.6 3.33 5 4.6 4.26
Change and control 20% 4.52 2.99 4.47 5 4.84 3.37 5 4.6 4.49
STRATEGY 50% 3.48 3.1 2.78 4.2 4.05 3.05 4.6 4.45 2.95
Product strategy 50% 4.2 3.6 3.2 5 4.7 3.7 5 4.7 4.5
Strategic alliances 10% 1.8 5 3.8 5 5 4 5 5 3
Customer reference checks 40% 3 2 2 3 3 2 4 4 1
MARKET PRESENCE 0% 2.2 3.45 1.73 4.55 3.23 1.45 4.78 4.63 1.03
Installed base 40% 2.5 3 1.5 5 3 1 5 5 0.5
New customers 30% 2 2.5 2 4 3 1 5 5 1
Delivery footprint 30% 2 5 1.75 4.5 3.75 2.5 4.25 3.75 1.75
14
ESB Features

Connecting Anything to Anything


Minimal Custom Development, Developer Friendly
and Easy to Deploy
Routing, Mediation & Transformation
Message, Service, API & Security Gateway
High Performance, High Availability, Scalability &
Stability
Manage & Monitor

15
Routing, Mediation & Transformation

Routing:
 header based
 content based
 rule-based
 priority-based
Enterprise Integration Patterns (EIP):
 message filter, aggregator, splitter, ..
 recipient list
 dead-letter channels
 guaranteed delivery

16
Manage & Monitor

Comprehensive management & monitoring


Built-in collection and monitoring of standard access
and performance statistics
JMX MBeans for key metrics monitoring and
management
Flexible logging support with integration to
enterprise logging systems
Centralized configuration management

17
Auditing & Logging

Centralized Auditing & Monitoring


Capture any user action capture any user action
Logging can be a very crucial aspect
ESB is a distributed clustered set up where we have several
applications
We need to keep centralized application logs
Asynchronous and None-Blocking Data publishing
Receives and Stores Log Events in highly scalable and Big Data
Repository
Rich tool set for analytics
Dashboards and reports

18
Before ESB

Legacy Application Enterprise resource


planning
Cobol Application ERP J2EE

New Application

New Application

Call Center Application CRM Application

Java Application .Net Application

19
After ESB

Legacy Application Enterprise resource New Application


planning
Cobol Application ERP J2EE New Application

Enterprise Service Bus


Routing Messaging Security
Connectivity Transformation Monitoring Management

Call Center Application CRM Application

Java Application .Net Application

20
‫‪ESB Nodes‬‬

‫یک ‪ ESB‬مجموعهای از نودها (کانتینرها) است که هر نود میتواند حاوی تعدادی سرویس فعال باشد‪.‬‬

‫‪ ESB‬میدهند‪.‬‬ ‫در واقع این مجموعه از کانتینرها تشکیل یک‬

‫‪21‬‬
Deployment

22
Deployment

23
What is Apache Camel

Why do we need integration?


 Your apps are build using different tech stacks
 Critical for your business to integrate
Why Integration Framework?
 Framework do the heavy lifting
 Focus on business problem
 Not "reinventing the wheel"

24
Components 80

activemq cxf flatpack jasypt

activemq-journal cxfrs freemarker javaspace

amqp dataset ftp/ftps/sftp jbi

atom db4o gae jcr

bean direct hdfs jdbc

bean validation ejb hibernate jetty

browse esper hl7 jms

cache event http jmx

cometd exec ibatis jpa

crypto file irc jt/400

25
Data Formats

bindy protobuf
castor serialization
csv soap
crypto syslog
dozer tidy markup
flatpack xml beans
gzip xml security
json xstream
jaxb zip

from("activemq:QueueWithJavaObjects”)
.marshal().jaxb()
.to("mq:QueueWithXmlMessages");

26
DSL in multiple flavors

Java
from(A).filter(isWidget).to(B);
BeanShell Python
<route> EL Ruby
<from ref="A"/>
Groovy Simple
<filter>
<xpath>/quote/product = ‘widget’</xpath> JavaScript SpEL
<to ref="B"/> JSR 223 SQL
</filter> OGNL XPath
</route>
MVEL XQuery
Scala PHP
from(A) filter(isWidget) --> B

27
Enterprise Integration Patterns

http://camel.apache.org/eip
28
A little example

Goals
 1) Pickup files from a directory
 2) Make sure we only pickup 3 files per 30 seconds
 3) Store into JMS queue
 4) Listen on JMS queue
 5) And upload file to FTP server

29
A little example

Goals using Enterprise Integration Patterns

1 2 3 4 5

Goals
 1) Pickup files from a directory
 2) Make sure we only pickup 3 files per 30 seconds
 3) Store into JMS queue
 4) Listen on JMS queue
 5) And upload file to FTP server
30
A little example
Goals using Enterprise Integration Patterns

from throttle to from to

Goals
 1) Pickup files from a directory
 2) Make sure we only pickup 3 files per 30 seconds
 3) Store into JMS queue
 4) Listen on JMS queue
 5) And upload file to FTP server
31
A little example
Camel Route in XML DSL

<camelContext>
<route>
<from uri="file:camellos/inbox?move=.done"/>
<throttle maximumRequestsPerPeriod="3"
timePeriodMillis="30000”>
<to uri="activemq:queue:camellos"/>
</throttle>
</route>
<route>
<from uri="activemq:queue:camellos"/>
<to uri="ftp://admin:secret@localhost:3333"/>
</route>
</camelContext>
32
Q and A

Where do I get more information?


 Join the Mailinglist
 http://camel.apache.org/mailing-lists.html

 Try the IRC-room


 http://camel.apache.org/irc-room.html

 Use the Search Box

 Checkout the Camel Articles


 http://camel.apache.org/articles.html

 Run Camel Examples


 http://camel.apache.org/examples.html

33
Q and A

Where do I get more information?


 Camel in Action book: http://manning.com/ibsen

40% Discount Code


Use coupon code
camel40
when ordering from
Manning

34
Q and A

?
35

You might also like