Enterprise Service Bus Mojtaba Akbarzadeh Nov 2015 1

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, No. SQL, 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 Qo. S �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-topoint 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 Orchestration Service Registry JMS Web Service Routing EIP Transaction (Active. MQ) CXF (camel) (Camel) (JTA) Kernel Layer Log Deployment Configuration Security Lifecycle Management 12

t en 35 op m n io at n ce s rv i tr es el de v ed -b as EL BP or ch ed -b as EL BP of se n tio ea Cr io n io at ed i m n io ct sa an at ng 95 Tr m sf or an tr a at D gi sa es M g in ut Ro Components 92 77 58 28 14 13

WSO 2 Tibco Software AG Red Hat Progress Software Oracle Mule. Soft IBM (WESB) Fuse. Source Forrester’s Weighting 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 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 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 MARKET PRESENCE 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 J 2 EE New Application Call Center Application CRM Application Java Application . Net Application 19

After ESB Legacy Application Enterprise resource planning New Application Cobol Application ERP J 2 EE New Application Enterprise Service Bus Routing Messaging Security Connectivity Transformation Monitoring Management Call Center Application CRM Application Java Application . Net Application 20


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

80 Components activemq cxf flatpack jasypt activemq-journal cxfrs freemarker javaspace amqp dataset ftp/ftps/sftp jbi atom db 4 o gae jcr bean direct hdfs jdbc bean validation ejb hibernate jetty browse esper hl 7 jms cache event http jmx cometd exec ibatis jpa crypto file irc jt/400 25

Data Formats bindy castor csv crypto dozer flatpack gzip json jaxb protobuf serialization soap syslog tidy markup xml beans xml security xstream zip from("activemq: Queue. With. Java. Objects”). marshal(). jaxb(). to("mq: Queue. With. Xml. Messages"); 26

DSL in multiple flavors Java from(A). filter(is. Widget). to(B); <route> <from ref="A"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to ref="B"/> </filter> </route> Scala from(A) filter(is. Widget) --> B Bean. Shell Python EL Ruby Groovy Simple Java. Script Sp. EL JSR 223 SQL OGNL XPath MVEL XQuery PHP 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 <camel. Context> <route> <from uri="file: camellos/inbox? move=. done"/> <throttle maximum. Requests. Period="3" time. Period. Millis="30000”> <to uri="activemq: queue: camellos"/> </throttle> </route> <from uri="activemq: queue: camellos"/> <to uri="ftp: //admin: secret@localhost: 3333"/> </route> </camel. Context> 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 camel 40 when ordering from Manning 34

Q and A ? 35
- Slides: 35