innovative ideas for integration solutions through jboss esb · innovative ideas for integration...

31

Upload: others

Post on 19-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com
Page 2: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

Innovative ideas for Integration Solutions through JBoss ESB

Edgar SilvaMiddleware Lead, Red Hat Brazil

[email protected]

Page 3: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

Agenda

• JBoss ESB today and tomorrow

• Extending JBoss ESB Components

• Working with:– GoogleDocs– Openfire (XMPP)

• Apache Camel and JBoss ESB

• Breakinwoods Project

Page 4: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com
Page 5: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com
Page 6: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

6

Enterprise Integration Patterns

Page 7: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

7

Enterprise Integration Patterns• There are just 4 Integration Styles :

– File Transfer– Shared Database– RPC– Messaging

• http://www.eaipatterns.com/

Page 8: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

JBoss ESB is built according EIPs

principles

Page 9: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

Is there a place for an ESB into your Architecture ?(*) Curiosity: Red Hat Brazil Viewing in São Paulo Brazil

Page 10: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

10

Why do I need an ESB ?You shall be bored to listen it again though :)

• An ESB can promote an “Event Architecture” simply due to the capacity to listen the events that the company produces and must to react based on them.

• Would be great we think in Clouds of ESBs

• Collaboration is required

• Transport warranty (JMS Clustering + Fault Tolerance)

• Events are like Messages for ESBs

Page 11: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

11

ESB vs Standards• There is no JSR that standardize an ESB, however the

majority of ESB are created on top of many standards:

– JDBC, JMS, JAX-WS, JAX-RS, JNDI etc

• ESB (Service Bus) offers a way to integrate several applications through standards and common protocols such as File Systems, FTP, E-mail etc

• Caution:

– Sometimes is had better to adopt a standardized document / protocol to perform data interchange as well as integration

• Ex: XML+Schema , JSON, CSV etc

Page 12: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

12

JBoss ESB• Can be used as a Lightweight Enterprise Service Bus

• Inherits benefits from the traditional JBoss Application Server

• Many services “out-of-the-box”

– CBR based on Rules Engines (Drools (drl) e Guvnor)

– Workflow based on JBPM

– Services Orchestration via BPEL (Riftsaw/Apache ODE)

– Transformation Services via Smooks

– Adapters ( File, FTP, Http, REST, WS, JMS etc)

– InVM Transport

• Available at: http://www.jboss.org/jbossesb

Page 13: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

13

“Show me thesource code” !

Page 14: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

14

http://code.google.com/p/breakingwoods

Page 15: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

15

esbgen.sh

Creating a new ESB Project made easy

Page 16: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

16

GoogleDocs Listener

Page 17: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

17

XMPPListener (Openfire+Smack)

Page 18: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

18

Page 19: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

19

Apache Camel is already present

in JBoss ESB 4.9 svn trunk

Thanks David Ward !

http://community.jboss.org/wiki/CamelGateway

Page 20: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

20

<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd" parameterReloadSecs="5">    <services>        <service category="camel_helloworld" name="service1" description="Hello World" invmScope="GLOBAL">            <listeners>                <camel-gateway name="gateway1">                    <from uri="file://.../samples/quickstarts/camel_helloworld/build/input1?delete=true"/>                    <from uri="file://.../samples/quickstarts/camel_helloworld/build/input2?delete=true"/>                </camel-gateway>            </listeners>            <actions>                <action name="action1" class="org.jboss.esb.actions.SystemPrintln"/>            </actions>        </service>    </services></jbossesb>

Page 21: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

21

<to uri=”jbossesb://service?category=camel_helloworld&name=service1”/>

Page 22: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

22

Introducing Apache Camel• http://camel.apache.org • Apache Camel is a powerful open source Integration

Framework based on known Enterprise Integration Patterns

• Apache Camel uses URIs so that it can easily work directly with any

kind of Transport or messaging model, for instance:– mina:tcp://localhost:6200?textline=true&sync=false

– ftp://scott@localhost/public/reports?password=tiger&amp;binary=true&amp;delay=60000

Page 23: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

23

Apache Camel can to Act as...• Event Consumer

• Event Producer

Source ProtocolsHTTPFTPJMS

GOOGLEAMQPSMTPOthers

Destination ProtocolsHTTPFTPJMS

GOOGLEAMQPSMTPOthers

Page 24: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

24

Available Components URI• ActiveMQ / activemq-camel

• ActiveMQ Journal / activemq-core

• AMQP / camel-amqp

• Atom / camel-atom

• Bean / camel-core

• Browse / camel-core

• Cache / camel-cache

• Cometd / camel-cometd

• CXF / camel-cxf

• CXFRS / camel-cxf

• DataSet / camel-core

• Direct / camel-core

• Esper / camel-esper in camel-extra

• Event / camel-spring

• File / camel-core

• Flatpack / camel-flatpack

• Freemarker / camel-freemarker

• FTP / camel-ftp

• FTPS / camel-ftp

• GAuth / camel-gae

• GHttp / camel-gae

• GLogin / camel-gae

• GTask / camel-gae

• GMail / camel-gae

• HDFS / camel-hdfs in camel-hdfs

• Hibernate / camel-hibernate in camel-extra

• HL7 / camel-hl7

• HTTP / camel-http

• IRC / camel-irc

• RSS / camel-rss

• SERVLET / camel-servlet

• Smooks / camel-smooks in camel-extra

• SMTP / camel-mail

• SMPP / camel-smpp

• SNMP / camel-snmp

• SpringIntegration / camel-spring-integration

• SQL / camel-sql

• Stream / camel-stream

• TCP / camel-mina

• Others

Full Components List:http://camel.apache.org/components.html

Page 25: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

25

Routing (from...to)

From an URI (Process the Exchange) deliver to another URI

from("direct:start") .setHeader(HttpConstants.HTTP_METHOD, constant(org.apache.camel.component.http.HttpMethods.POST)) .to("http://www.google.com") .to("mock:results");

Page 26: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

26

Extending Apache Camel

Page 27: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

27

Camel Component Model

Consumer

EndpointComponent

Producer

Page 28: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

28

Creating a New Apache Camel Component

Infinispan (Cache/Datagrid)

http://www.jboss.org/infinispan

Page 29: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

29

“Show me thesource code” !

Page 30: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

30

Proposed Architecture

Apache Camel Data Consumer Cloud

JBoss ESB Server

CBR, Drools, CEP, Workflow, BPM, BPEL, EJB, Transactions, Clustering, Loadbalancing etc

Java Virtual Machine

Page 31: Innovative ideas for Integration Solutions through JBoss ESB · Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil edgar@redhat.com

31

QAEdgar Silva

[email protected]

http://ankiewsky.blogspot.com