Jazoon2010 - Edgar Silva - Open source SOA on Steroids

1,380
-1

Published on

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

No Downloads
Views
Total Views
1,380
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Jazoon2010 - Edgar Silva - Open source SOA on Steroids

  1. 1. Open source SOA on Steroids: Combining the robustness of JBoss ESB with the flexibility of Apache Camel Edgar A Silva JBoss, by Red Hat Submission ID 88
  2. 2. About the Speaker <ul><li>Working with Java and Distributed Computing since 1998
  3. 3. Worked as an architect for large scale Java solutions in Brazil, such as: New Federal Brazilian Lottery System
  4. 4. JBoss Employee in charge to bring technology and business viewing at Red Hat Brazil </li></ul>
  5. 5. Agenda <ul><li>Systems Integrations Overview
  6. 6. What about: </li><ul><li>Apache Camel
  7. 7. JBoss ESB
  8. 8. Where they meet each other </li></ul><li>Creating new Listeners for JBoss ESB
  9. 9. Creating new Components for Apache Camel
  10. 10. Mixing both solutions
  11. 11. Introducing breakingwoods project </li><ul><li>http://code.google.com/p/breakingwoods </li></ul></ul>
  12. 12. <ul><ul><li>Level One </li><ul><li>Level Two </li></ul></ul></ul>How do you integrate your solutions today?
  13. 13. Where and how to plug in ?
  14. 14. Enterprise Integration Patterns
  15. 15. Enterprise Integration Patterns <ul><li>There are just 4 Integration Styles : </li><ul><li>File Transfer
  16. 16. Shared Database
  17. 17. RPC
  18. 18. Messaging </li></ul><li>http://www.eaipatterns.com/ </li></ul>
  19. 19. That's why <ul><li>JBoss ESB
  20. 20. Apache Camel </li><ul><li>Both are adherent with the EIP's principles and recommendations
  21. 21. Implementations from a ServiceBus and a Compoenent Framework that made the systems integrations easier </li></ul></ul>
  22. 23. Introducing Apache Camel <ul><li>http://camel.apache.org
  23. 24. Apache Camel is a powerful open source Integration Framework based on known Enterprise Integration Patterns
  24. 25. 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
  25. 26. ftp://scott@localhost/public/reports?password=tiger&amp;binary=true&amp;delay=60000 </li></ul></ul>
  26. 27. Apache Camel can to Act as... <ul><li>Event Consumer
  27. 28. Event Producer </li></ul>Source Protocols HTTP FTP JMS GOOGLE AMQP SMTP Others Destination Protocols HTTP FTP JMS GOOGLE AMQP SMTP Others
  28. 29. Available Components URI <ul><li>ActiveMQ / activemq-camel
  29. 30. ActiveMQ Journal / activemq-core
  30. 31. AMQP / camel-amqp
  31. 32. Atom / camel-atom
  32. 33. Bean / camel-core
  33. 34. Browse / camel-core
  34. 35. Cache / camel-cache
  35. 36. Cometd / camel-cometd
  36. 37. CXF / camel-cxf
  37. 38. CXFRS / camel-cxf
  38. 39. DataSet / camel-core
  39. 40. Direct / camel-core
  40. 41. Esper / camel-esper in camel-extra
  41. 42. Event / camel-spring
  42. 43. File / camel-core
  43. 44. Flatpack / camel-flatpack </li></ul><ul><li>Freemarker / camel-freemarker
  44. 45. FTP / camel-ftp
  45. 46. FTPS / camel-ftp
  46. 47. GAuth / camel-gae
  47. 48. GHttp / camel-gae
  48. 49. GLogin / camel-gae
  49. 50. GTask / camel-gae
  50. 51. GMail / camel-gae
  51. 52. HDFS / camel-hdfs in camel-hdfs
  52. 53. Hibernate / camel-hibernate in camel-extra
  53. 54. HL7 / camel-hl7
  54. 55. HTTP / camel-http
  55. 56. IRC / camel-irc </li></ul><ul><li>RSS / camel-rss
  56. 57. SERVLET / camel-servlet
  57. 58. Smooks / camel-smooks in camel-extra
  58. 59. SMTP / camel-mail
  59. 60. SMPP / camel-smpp
  60. 61. SNMP / camel-snmp
  61. 62. SpringIntegration / camel-spring-integration
  62. 63. SQL / camel-sql
  63. 64. Stream / camel-stream
  64. 65. TCP / camel-mina
  65. 66. Others </li></ul>Full Components List: http://camel.apache.org/components.html
  66. 67. 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;);
  67. 68. “ Show me the source code” !
  68. 69. Extending Apache Camel
  69. 70. Camel Component Model Consumer Endpoint Component Producer
  70. 71. Creating a New Apache Camel Component Infinispan (Cache/Datagrid) http://www.jboss.org/infinispan
  71. 72. “ Show me the source code” !
  72. 74. 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.
  73. 75. Would be great we think in Clouds of ESBs, clustering and making them HA.
  74. 76. Collaboration is required
  75. 77. Transport warranty (JMS Clustering + Fault Tolerance)
  76. 78. Events are like Messages for ESBs </li></ul>
  77. 79. 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, for instance: </li><ul><li>JDBC, JMS, JAX-WS, JAX-RS, JNDI etc </li></ul><li>ESB (Service Bus) offers an way to integrate several applications through standards and common protocols such as File Systems, FTP, E-mail etc
  78. 80. Caution: </li><ul><li>Sometimes is better to adopt an standardized document / protocol to perform data interchange as well as integrations </li><ul><li>Ex: XML+Schema , JSON, CSV etc </li></ul></ul></ul>
  79. 82. JBoss ESB <ul><li>Scalable however Lightweight Enterprise Service Bus
  80. 83. Inherits benefits from the traditional JBoss Application Server
  81. 84. Many required services “out-of-the-box” </li><ul><li>CBR based on Rules Engines ( Drools )
  82. 85. Workflow based on JBPM
  83. 86. Services Orchestration via BPEL (Riftsaw/Apache ODE)
  84. 87. Transformation Services via Smooks
  85. 88. Adapters ( File, FTP, Http, REST, JMS etc)
  86. 89. InVM Transport </li></ul><li>Available at: http://www.jboss.org/jbossesb </li></ul>
  87. 90. esbgen.sh Creating a new ESB Project made easy
  88. 91. Using JBoss ESB Effectively
  89. 92. “ Show me the source code” !
  90. 93. Introducing Breakingwoods Project http://code.google.com/p/breakingwoods
  91. 94. Adding a New Event Gateway/Listener
  92. 95. “ Show me the source code” !
  93. 97. Apache Camel is already present in JBoss ESB 4.9 svn trunk Thanks David Ward ! http://community.jboss.org/wiki/CamelGateway
  94. 98. <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>
  95. 99. <to uri=”jbossesb://service?category=camel_helloworld&name=service1”/>
  96. 100. Proposed Architecture JBoss ESB Server CBR, Drools, CEP, Workflow, BPM, BPEL, EJB, Transactions, Clustering, Loadbalancing etc Java Virtual Machine Apache Camel Data Consumer Cloud
  97. 101. Images References <ul><li>http://www.flickr.com/photos/85034017@N00/2038987328/sizes/o/ </li></ul>
  98. 102. References <ul><li>http://camel.apache.org
  99. 103. http://www.jboss.org/jbossesb/
  100. 104. http://www.jboss.org/infinispan
  101. 105. http://code.google.com/p/breakingwoods
  102. 106. http://github.com/edgars/
  103. 107. http://ankiewsky.blogspot.com
  104. 108. Books </li><ul><li>Camel In Action </li></ul></ul>
  105. 109. Edgar A Silva Red Hat Inc [email_address] QA Thank you

×