FUSE ESB – ServiceMix 4 Dream platform for Java Integration FUSE Community Day, Paris, 14 th  October 2010 Charles Moullia...
Agenda <ul><ul><li>Presentation of the Fuse ESB technologies </li></ul></ul><ul><ul><ul><li>Platform unmasked </li></ul></...
Fuse ESB –Technologies “ Open the ServiceMix box to discover it ?”
Fuse ESB - Unmasked <<jvm>> :ServiceMix4 Java Boot (Register as service - Wrapper) Lightweight container (Apache Karaf) OS...
Fuse ESB – Conceptual Architecture <ul><li>Containers for Integration, Web, Java and SOA. </li></ul><ul><ul><li>Java Appli...
<<jvm>> :ServiceMix4 EIP Web  Services RESTful Services Business Processes Messaging Java Application Web Applications Jav...
Fuse ESB - Standards and Technologies <<jvm>> :ServiceMix4 Logging Lifecycle / Deployment Configuration Versioning Managem...
Fuse ESB – Architectures design « What a beautiful world ! »
<<jvm>> :ServiceMix4 BUS Fuse ESB – “Messaging” Architecture  <ul><li>The bus (camel, jms, nmr) orchestrates exchange of m...
<<jvm>> :ServiceMix4 OSGI & Services Fuse ESB – “OSGI” Architecture  <ul><li>This model is oriented for deployment of Java...
<<jvm>> :ServiceMix4 Fuse ESB – “Messaging + OSGI” Architecture  <ul><li>Camel routes allow you to link POJOS together usi...
<<jvm>> :ServiceMix4 Fuse ESB – “Web” Architecture  <ul><li>Web projects can be deployed as WAR bundles </li></ul><ul><li>...
Fuse ESB – Bundle border  <ul><li>OSGi with bundles offer modularity but … create « limitation » in camel routes  </li></u...
Fuse ESB – Bundle border (con’t)  <ul><li>Camel ‘vm://’ component overcomes this limitation because it works within the JV...
<<jvm>> :ServiceMix4 : Nestor Fuse ESB – JVM border <ul><li>When more cpu, memory are required, we need more than one JVM ...
ServiceMix and ActiveMQ « The perfect match for high-available solutions and distributed applications »
ActiveMQ replication, clustering & failover Broker replication Shared message store <<jvm>> samwise:ActiveMQ Master state ...
Server 2 Server 1 Networks of master-slave pairs <ul><li>A clustered, highly available approach with 2 machines </li></ul>...
…  the thing is, it’s largely the same scaling model in ServiceMix « Simplicity is the best »
Master Fuse ESB : networks of master-slave pairs <ul><li>Differs from AMQ only in that slaves can be ‘partially active’ </...
Master Fuse ESB : embedded brokers <ul><li>Embedded brokers speed up in-VM traffic </li></ul><<jvm>> frodo:SMX4 <<jvm>> ga...
Breaking out the broker <ul><li>Broker ‘meta-traffic’ will increase as more brokers are added . </li></ul><ul><li>If you h...
Fuse ESB – All Together Slave Regional Office Headquarter queue:order BUS Camel - FTP from(amq:queue:order) .bean://order ...
<ul><li>Questions ? </li></ul><ul><li>More info    http://fusesource.com/products/ </li></ul><ul><li>Follow me </li></ul>...
Upcoming SlideShare
Loading in...5
×

Apache ServiceMix4 : Dream platform for Java Integration

2,611

Published on

Apache ServiceMix4 : Dream platform for Java Integration !

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

No Downloads
Views
Total Views
2,611
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
142
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Apache ServiceMix4 : Dream platform for Java Integration

  1. 1. FUSE ESB – ServiceMix 4 Dream platform for Java Integration FUSE Community Day, Paris, 14 th October 2010 Charles Moulliard Sr. Principal Solution Architect Apache Committer
  2. 2. Agenda <ul><ul><li>Presentation of the Fuse ESB technologies </li></ul></ul><ul><ul><ul><li>Platform unmasked </li></ul></ul></ul><ul><ul><ul><li>Concepts </li></ul></ul></ul><ul><ul><ul><li>Standards </li></ul></ul></ul><ul><ul><li>Architecture design </li></ul></ul><ul><ul><ul><li>Messaging </li></ul></ul></ul><ul><ul><ul><li>OSGI service </li></ul></ul></ul><ul><ul><ul><li>Messaging + OSGI services </li></ul></ul></ul><ul><ul><ul><li>Web </li></ul></ul></ul><ul><ul><li>High availability and distributed applications </li></ul></ul><ul><ul><ul><li>Real example </li></ul></ul></ul><ul><ul><li>Q/A </li></ul></ul>
  3. 3. Fuse ESB –Technologies “ Open the ServiceMix box to discover it ?”
  4. 4. Fuse ESB - Unmasked <<jvm>> :ServiceMix4 Java Boot (Register as service - Wrapper) Lightweight container (Apache Karaf) OSGI Kernel (Apache Felix / Eclipse Equinox) Container Container Container Container Container Container
  5. 5. Fuse ESB – Conceptual Architecture <ul><li>Containers for Integration, Web, Java and SOA. </li></ul><ul><ul><li>Java Application </li></ul></ul><ul><ul><li>Web Applications </li></ul></ul><ul><ul><li>SOAP/REST web services </li></ul></ul><ul><ul><li>Business processes </li></ul></ul><ul><ul><li>Routing - EIP </li></ul></ul><ul><ul><li>Messaging </li></ul></ul><ul><ul><li>Server (FTP, SMTP, LDAP,…) </li></ul></ul><<jvm>> :ServiceMix4 EIP Web Services RESTful Services Business Processes Messaging Java Application Web Applications Java Business Integration Servers
  6. 6. <<jvm>> :ServiceMix4 EIP Web Services RESTful Services Business Processes Messaging Java Application Web Applications Java Business Integration Servers Fuse ESB - conceptual architecture (cont’) <ul><li>Provides a uniform approach for common cross-functional concerns </li></ul><ul><ul><li>Logging </li></ul></ul><ul><ul><li>Lifecycle and deployment </li></ul></ul><ul><ul><li>Configuration </li></ul></ul><ul><ul><li>Versioning & Dependency Mgmt </li></ul></ul><ul><ul><li>Instances Management </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions </li></ul></ul>Logging Lifecycle / Deployment Configuration Versioning Management Security
  7. 7. Fuse ESB - Standards and Technologies <<jvm>> :ServiceMix4 Logging Lifecycle / Deployment Configuration Versioning Management Security Apache Camel, servicemix-eip BPEL (Apache ODE) WSDL, SOAP, XML, XSD, JAX-WS, JAX-RS, (Apache CXF) Java, JVM-based languages, Spring JMS (Apache ActiveMQ) OSGi Config Admin Log4J, slf4J, commons, Java logging OSGi JAAS JMX, web-console, ssh EIP Web Services RESTful Services Business Processes Reliable Messaging Java Application Web Applications Java Business Integration JBI, NMR JSF, JSP, Struts, Wicket
  8. 8. Fuse ESB – Architectures design « What a beautiful world ! »
  9. 9. <<jvm>> :ServiceMix4 BUS Fuse ESB – “Messaging” Architecture <ul><li>The bus (camel, jms, nmr) orchestrates exchange of messages through different endpoints </li></ul><ul><li>The exchanges can be of type (InOnly, InOut) and processed in a Sync/Async / Transaction way </li></ul>FTP Route Service (Java/Spring) JAX-WS
  10. 10. <<jvm>> :ServiceMix4 OSGI & Services Fuse ESB – “OSGI” Architecture <ul><li>This model is oriented for deployment of Java application where we use Spring or Blueprint to configure « services » </li></ul><ul><li>The part of OSGI EE covering (JPA, Transaction, JNDI, …) will help the design of such architecture </li></ul><ul><li>Modules can be designed according to « decoupage » technical or business </li></ul>DAO Ordering Service Java, JPA Java / Spring / Hibernate
  11. 11. <<jvm>> :ServiceMix4 Fuse ESB – “Messaging + OSGI” Architecture <ul><li>Camel routes allow you to link POJOS together using camel-bean, Spring DM or Blueprint, … </li></ul>BUS FTP JAX-WS Java, JPA OSGI & Services Java / Spring / Hibernate Ordering Service DAO Camel Route from(ftp) .validate() .to(bean:orderOsgi) from(cxf:bean:orderWS) .validate() .to(bean:orderOsgi)
  12. 12. <<jvm>> :ServiceMix4 Fuse ESB – “Web” Architecture <ul><li>Web projects can be deployed as WAR bundles </li></ul><ul><li>They could only contain HTML artifacts (hml, gif, css, js, … files) </li></ul><ul><li>They have access to business modules using OSGI service </li></ul>OSGI & Services Java / Spring / Hibernate Java, JPA Ordering Service DAO Web Application Html, gif, jpeg, css, js files
  13. 13. Fuse ESB – Bundle border <ul><li>OSGi with bundles offer modularity but … create « limitation » in camel routes </li></ul><ul><li>Camel ‘direct://’ component can only be used within camel routes packaged in the same ‘camel context’ in the same bundle. </li></ul><<jvm>> :ServiceMix4 BUS Camel - FTP from(ftp) .to(direct://order) from(direct://order) .bean://order?method=place Camel-cxf Bundle Bundle
  14. 14. Fuse ESB – Bundle border (con’t) <ul><li>Camel ‘vm://’ component overcomes this limitation because it works within the JVM context </li></ul><ul><li>This offers much flexibility for project packaging </li></ul><ul><li>Is it enough ? </li></ul><<jvm>> :ServiceMix4 BUS Camel - FTP from(ftp) .to(vm://order) from(vm://order) .bean://order?method=place Camel-cxf Bundle A Bundle B
  15. 15. <<jvm>> :ServiceMix4 : Nestor Fuse ESB – JVM border <ul><li>When more cpu, memory are required, we need more than one JVM - Server </li></ul><ul><li>This is where ActiveMQ save us and bridge our jvm, servers </li></ul><<jvm>> :ServiceMix4 : Toto BUS Camel - FTP from(ftp) .to(amq:queue:order) from(amq:queue:order) .bean://order?method=place Bundle A Bundle B BUS Camel - ActiveMq ActiveMQ
  16. 16. ServiceMix and ActiveMQ « The perfect match for high-available solutions and distributed applications »
  17. 17. ActiveMQ replication, clustering & failover Broker replication Shared message store <<jvm>> samwise:ActiveMQ Master state replicated to slave using network connector. <<jvm>> frodo:ActiveMQ <<jvm>> samwise:ActiveMQ Brokers compete for file system or database lock. <<jvm>> frodo:ActiveMQ
  18. 18. Server 2 Server 1 Networks of master-slave pairs <ul><li>A clustered, highly available approach with 2 machines </li></ul>Slave <<jvm>> Frodo:ActiveMq <<jvm>> Frodo:ActiveMq <<jvm>> Frodo:ActiveMq <<jvm>> Frodo:ActiveMq Network Of Brokers Master
  19. 19. … the thing is, it’s largely the same scaling model in ServiceMix « Simplicity is the best »
  20. 20. Master Fuse ESB : networks of master-slave pairs <ul><li>Differs from AMQ only in that slaves can be ‘partially active’ </li></ul><<jvm>> frodo: SMX4 <<jvm>> gandalf: SMX4 <<jvm>> saruman: SMX4 <<jvm>> samwise: SMX4 Slave
  21. 21. Master Fuse ESB : embedded brokers <ul><li>Embedded brokers speed up in-VM traffic </li></ul><<jvm>> frodo:SMX4 <<jvm>> gandalf:SMX4 <<jvm>> saruman: SMX4 <<jvm>> samwise: SMX4 Slave ActiveMq ActiveMq ActiveMq ActiveMq
  22. 22. Breaking out the broker <ul><li>Broker ‘meta-traffic’ will increase as more brokers are added . </li></ul><ul><li>If you have many SMX instances, then it might be more sensible to deploy your AMQ infrastructure separately </li></ul><<jvm>> merry: SMX4 <<jvm>> frodo:SMX4 <<jvm>> gandalf:SMX4 <<jvm>> saruman: SMX4 <<jvm>> samwise: SMX4 <<jvm>> pip: SMX4 Slave <<jvm>> master:AMQ <<jvm>> slave: AMQ Master
  23. 23. Fuse ESB – All Together Slave Regional Office Headquarter queue:order BUS Camel - FTP from(amq:queue:order) .bean://order BUS bean://order queue:order Master queue:order BUS SMX4 - Master SMX4 - Slave queue:order from(ftp) .to(amq:queue:order) Regional Office Camel - WS BUS queue:order from(ftp) .to(amq:queue:order) from(amq:queue:order) .bean://order bean://order
  24. 24. <ul><li>Questions ? </li></ul><ul><li>More info  http://fusesource.com/products/ </li></ul><ul><li>Follow me </li></ul><ul><ul><li>Twitter : http://twitter.com/cmoulliard </li></ul></ul><ul><ul><li>LinkedIn : http://www.linkedin.com/in/charlesmoulliard </li></ul></ul><ul><li>My blog : http://cmoulliard.blogspot.com </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×