JUDCon 2010 - Innovative ideas for Integration Solutions through JBoss ESB

1,270 views
1,202 views

Published on

Presentation at JUDCon 2010

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,270
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

JUDCon 2010 - Innovative ideas for Integration Solutions through JBoss ESB

  1. 2. Innovative ideas for Integration Solutions through JBoss ESB Edgar Silva Middleware Lead, Red Hat Brazil [email_address]
  2. 3. Agenda <ul><li>JBoss ESB today and tomorrow
  3. 4. Extending JBoss ESB Components
  4. 5. Working with: </li><ul><li>GoogleDocs
  5. 6. Openfire (XMPP) </li></ul><li>Apache Camel and JBoss ESB
  6. 7. Breakinwoods Project </li></ul>
  7. 10. Enterprise Integration Patterns
  8. 11. Enterprise Integration Patterns <ul><li>There are just 4 Integration Styles : </li><ul><li>File Transfer
  9. 12. Shared Database
  10. 13. RPC
  11. 14. Messaging </li></ul><li>http://www.eaipatterns.com/ </li></ul>
  12. 15. JBoss ESB is built according EIPs principles
  13. 17. Why do I need an ESB ? You shall be bored to listen it again though :) <ul><li>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.
  14. 18. Would be great we think in Clouds of ESBs
  15. 19. Collaboration is required
  16. 20. Transport warranty (JMS Clustering + Fault Tolerance)
  17. 21. Events are like Messages for ESBs </li></ul>
  18. 22. ESB vs Standards <ul><li>There is no JSR that standardize an ESB, however the majority of ESB are created on top of many standards: </li><ul><li>JDBC, JMS, JAX-WS, JAX-RS, JNDI etc </li></ul><li>ESB (Service Bus) offers a way to integrate several applications through standards and common protocols such as File Systems, FTP, E-mail etc
  19. 23. Caution: </li><ul><li>Sometimes is had better to adopt a standardized document / protocol to perform data interchange as well as integration </li><ul><li>Ex: XML+Schema , JSON, CSV etc </li></ul></ul></ul>
  20. 24. JBoss ESB <ul><li>Can be used as a Lightweight Enterprise Service Bus
  21. 25. Inherits benefits from the traditional JBoss Application Server
  22. 26. Many services “out-of-the-box” </li><ul><li>CBR based on Rules Engines ( Drools (drl) e Guvnor )
  23. 27. Workflow based on JBPM
  24. 28. Services Orchestration via BPEL (Riftsaw/Apache ODE)
  25. 29. Transformation Services via Smooks
  26. 30. Adapters ( File, FTP, Http, REST, WS, JMS etc)
  27. 31. InVM Transport </li></ul><li>Available at: http://www.jboss.org/jbossesb </li></ul>
  28. 32. “ Show me the source code” !
  29. 33. http://code.google.com/p/breakingwoods
  30. 34. esbgen.sh Creating a new ESB Project made easy
  31. 35. GoogleDocs Listener
  32. 36. XMPPListener (Openfire+Smack)
  33. 38. Apache Camel is already present in JBoss ESB 4.9 svn trunk Thanks David Ward ! http://community.jboss.org/wiki/CamelGateway
  34. 39. <jbossesb xmlns=&quot; http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd &quot; parameterReloadSecs=&quot;5&quot;>     <services>         <service category=&quot;camel_helloworld&quot; name=&quot;service1&quot; description=&quot;Hello World&quot; invmScope=&quot;GLOBAL&quot;>             <listeners>                 <camel-gateway name=&quot;gateway1&quot;>                     <from uri=&quot;file://.../samples/quickstarts/camel_helloworld/build/input1?delete=true&quot;/>                     <from uri=&quot;file://.../samples/quickstarts/camel_helloworld/build/input2?delete=true&quot;/>                 </camel-gateway>             </listeners>             <actions>                 <action name=&quot;action1&quot; class=&quot;org.jboss.esb.actions.SystemPrintln&quot;/>             </actions>         </service>     </services> </jbossesb>
  35. 40. <to uri=”jbossesb://service?category=camel_helloworld&name=service1”/>
  36. 41. Introducing Apache Camel <ul><li>http://camel.apache.org
  37. 42. Apache Camel is a powerful open source Integration Framework based on known Enterprise Integration Patterns
  38. 43. Apache Camel uses URIs so that it can easily work directly with any kind of Transport or messaging model, for instance: </li><ul><li>mina:tcp://localhost:6200?textline=true&sync=false
  39. 44. ftp://scott@localhost/public/reports?password=tiger&amp;binary=true&amp;delay=60000 </li></ul></ul>
  40. 45. Apache Camel can to Act as... <ul><li>Event Consumer
  41. 46. Event Producer </li></ul>Source Protocols HTTP FTP JMS GOOGLE AMQP SMTP Others Destination Protocols HTTP FTP JMS GOOGLE AMQP SMTP Others
  42. 47. Available Components URI <ul><li>ActiveMQ / activemq-camel
  43. 48. ActiveMQ Journal / activemq-core
  44. 49. AMQP / camel-amqp
  45. 50. Atom / camel-atom
  46. 51. Bean / camel-core
  47. 52. Browse / camel-core
  48. 53. Cache / camel-cache
  49. 54. Cometd / camel-cometd
  50. 55. CXF / camel-cxf
  51. 56. CXFRS / camel-cxf
  52. 57. DataSet / camel-core
  53. 58. Direct / camel-core
  54. 59. Esper / camel-esper in camel-extra
  55. 60. Event / camel-spring
  56. 61. File / camel-core
  57. 62. Flatpack / camel-flatpack </li></ul><ul><li>Freemarker / camel-freemarker
  58. 63. FTP / camel-ftp
  59. 64. FTPS / camel-ftp
  60. 65. GAuth / camel-gae
  61. 66. GHttp / camel-gae
  62. 67. GLogin / camel-gae
  63. 68. GTask / camel-gae
  64. 69. GMail / camel-gae
  65. 70. HDFS / camel-hdfs in camel-hdfs
  66. 71. Hibernate / camel-hibernate in camel-extra
  67. 72. HL7 / camel-hl7
  68. 73. HTTP / camel-http
  69. 74. IRC / camel-irc </li></ul><ul><li>RSS / camel-rss
  70. 75. SERVLET / camel-servlet
  71. 76. Smooks / camel-smooks in camel-extra
  72. 77. SMTP / camel-mail
  73. 78. SMPP / camel-smpp
  74. 79. SNMP / camel-snmp
  75. 80. SpringIntegration / camel-spring-integration
  76. 81. SQL / camel-sql
  77. 82. Stream / camel-stream
  78. 83. TCP / camel-mina
  79. 84. Others </li></ul>Full Components List: http://camel.apache.org/components.html
  80. 85. Routing (from...to) From an URI (Process the Exchange) deliver to another URI from (&quot;direct:start&quot;) .setHeader(HttpConstants.HTTP_METHOD, constant(org.apache.camel.component.http.HttpMethods.POST)) . to (&quot;http://www.google.com&quot;) . to (&quot;mock:results&quot;);
  81. 86. Extending Apache Camel
  82. 87. Camel Component Model Consumer Endpoint Component Producer
  83. 88. Creating a New Apache Camel Component Infinispan (Cache/Datagrid) http://www.jboss.org/infinispan
  84. 89. “ Show me the source code” !
  85. 90. Proposed Architecture JBoss ESB Server CBR, Drools, CEP, Workflow, BPM, BPEL, EJB, Transactions, Clustering, Loadbalancing etc Java Virtual Machine Apache Camel Data Consumer Cloud
  86. 91. QA Edgar Silva [email_address] http://ankiewsky.blogspot.com

×