Professional Documents
Culture Documents
Mojtaba Akbarzadeh
Nov 2015
1
Agenda
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
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
10
ESB Architecture
11
Components
Application Layer
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
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
17
Auditing & Logging
18
Before ESB
New Application
New Application
19
After ESB
20
ESB Nodes
یک ESBمجموعهای از نودها (کانتینرها) است که هر نود میتواند حاوی تعدادی سرویس فعال باشد.
21
Deployment
22
Deployment
23
What is Apache Camel
24
Components 80
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
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
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
33
Q and A
34
Q and A
?
35