<ul><li>Apache ServiceMix 4 </li></ul><ul><li>FUSE Community Day London, 10th June 2010 </li></ul>Adrian Trenaman Distingu...
Agenda <ul><li>A little bit about what ServiceMix 4  really  is </li></ul><ul><ul><li>Conceptual architecture </li></ul></...
ServiceMix 4 - architecture, standards & technologies
Apache ServiceMix 4 - conceptual architecture <ul><li>JVM-based runtime container for integration and SOA. </li></ul><ul><...
Apache ServiceMix 4 - conceptual architecture (cont’) <ul><li>ServiceMix provides a uniform approach for common cross-func...
Apache ServiceMix 4 - standards and technologies <<jvm>> :ServiceMix4 Integration Flows Web  Services RESTful Services Bus...
Modular deployment with bundles and features <ul><li>You can deploy almost anything into ServiceMix 4 </li></ul><ul><ul><l...
Getting into production… <ul><li>Deployment from Maven repository is ideal… </li></ul><ul><ul><li>…  but remember, admins ...
Scaling up, scaling out… ‘to understand ServiceMix, first you must understand ActiveMQ’
ActiveMQ: networked brokers <ul><li>Brokers use network connectors to share consumer information and make routing decision...
Aside: networked brokers allow you to create  local broker clusters  and  implement wide-scale cross-geography architectur...
ActiveMQ replication, clustering & failover Broker replication Shared message store <<jvm>> samwise:ActiveMQ Master state ...
Networks of master-slave pairs <ul><li>A clustered, highly available approach </li></ul>Master <<jvm>> merry:ActiveMQ <<jv...
…  the thing is, it’s largely the same scaling model in ServiceMix
ServiceMix 4: networks of master-slave pairs <ul><li>Differs from AMQ only in that slaves can be ‘partially active’ </li><...
ServiceMix 4: embedded brokers <ul><li>Embedded brokers speed up in-VM traffic, and facilitate location transparency via a...
‘ The unbearable chattiness of brokers’ or ‘too many brokers spoiled the pot’
Breaking out the broker <ul><li>Broker ‘meta-traffic’ will increase as more brokers are added. </li></ul><ul><ul><li>Shari...
Respecting and supporting our JBI heritage
JBI - fundamentals <<jvm>> :SMX <<component>> :FTP NMR <<component>> :EIP <<component>> :SAXON <<component>> :JMS ServiceM...
JBI fundamentals (cont’) <<jvm>> :SMX <<component>> :FTP NMR <<component>> :EIP <<component>> :SAXON <<component>> :JMS Bu...
JBI fundamentals: packaging Each component is specialized using a SU.  In ServiceMix, the endpoint(s) are defined in an xb...
JBI support in ServiceMix 4 <ul><li>Full support for JBI 1.0 </li></ul><ul><li>Use JBI  without  the packaging!  </li></ul...
Where we are today
What is the community up to? <ul><li>Better documentation - the ServiceMix book </li></ul><ul><li>Building on OSGi Bluepri...
Adopting ServiceMix 4 <ul><li>Java, Maven, Spring - if you don ’t  have these skills, be prepared to get them. </li></ul><...
Words from a battle-hardened consultant… <ul><li>Don’t confuse enterprise integration with workflow or BPM </li></ul><ul><...
<ul><li>Apache ServiceMix 4 </li></ul><ul><li>FUSE Community Day London, 10th June 2010 </li></ul>Adrian Trenaman Distingu...
Upcoming SlideShare
Loading in...5
×

An Introduction to Apache ServiceMix 4 - FUSE ESB

10,564

Published on

A presentation I gave at the FUSE Community Day in London, June 10th 2010.

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,564
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
384
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

An Introduction to Apache ServiceMix 4 - FUSE ESB

  1. 1. <ul><li>Apache ServiceMix 4 </li></ul><ul><li>FUSE Community Day London, 10th June 2010 </li></ul>Adrian Trenaman Distinguished Consultant Financial Services Group, Progress Professional Services [email_address] .com http: //trenaman . blogspot .com
  2. 2. Agenda <ul><li>A little bit about what ServiceMix 4 really is </li></ul><ul><ul><li>Conceptual architecture </li></ul></ul><ul><ul><li>Standards and technologies </li></ul></ul><ul><ul><li>Deployment and scaling </li></ul></ul><ul><ul><li>Experience on the road </li></ul></ul><ul><li>How you can be successful with ServiceMix 4 </li></ul><ul><ul><li>As architects </li></ul></ul><ul><ul><li>As developers </li></ul></ul><ul><ul><li>As project managers </li></ul></ul>
  3. 3. ServiceMix 4 - architecture, standards & technologies
  4. 4. Apache ServiceMix 4 - conceptual architecture <ul><li>JVM-based runtime container for integration and SOA. </li></ul><ul><ul><li>EIP-style integration flows </li></ul></ul><ul><ul><li>SOAP web services </li></ul></ul><ul><ul><li>REST web services </li></ul></ul><ul><ul><li>Business processes </li></ul></ul><ul><ul><li>Reliable messaging </li></ul></ul><ul><ul><li>Business Logic </li></ul></ul><<jvm>> :ServiceMix4 Integration Flows Web Services RESTful Services Business Processes Reliable Messaging Business Logic
  5. 5. Apache ServiceMix 4 - conceptual architecture (cont’) <ul><li>ServiceMix 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>Management </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions </li></ul></ul><<jvm>> :ServiceMix4 Integration Flows Web Services RESTful Services Business Processes Reliable Messaging Business Logic Logging Lifecycle / Deployment Configuration Versioning Management Security
  6. 6. Apache ServiceMix 4 - standards and technologies <<jvm>> :ServiceMix4 Integration Flows Web Services RESTful Services Business Processes Reliable Messaging Business Logic Logging Lifecycle / Deployment Configuration Versioning Management Security EIP (Apache Camel) or JBI (ServiceMix 3) BPEL (Apache ODE) WSDL, SOAP, XML, XSD, JAX-WS, JSON, (Apache CXF) Java, JVM-based languages JMS (Apache ActiveMQ) OSGi Config Admin Log4J, Slf4J, commons, Java logging, … OSGi SSH, JAAS, HTTPS, TLS, … JMX, web-console, ssh
  7. 7. Modular deployment with bundles and features <ul><li>You can deploy almost anything into ServiceMix 4 </li></ul><ul><ul><li>War, Jar, bundle, spring, … </li></ul></ul><ul><li>Prefer OSGi bundles for your routing / integration / business logic </li></ul><ul><ul><li>More modular design, explicit versioning, classpath control. </li></ul></ul><ul><ul><li>Can share classes or objects (OSGi services) </li></ul></ul><ul><ul><li>Dynamic wiring of OSGi services allows live hot deployment of patches without impacting your production deployment. </li></ul></ul><ul><li>Use the ‘feature’ mechanism to group and co-deploy bundles. </li></ul><<jvm>> :ServiceMix4 smx:> features:addUrl file:my-features.xml smx:> features:install f1 a:bundle b:bundle c:bundle f1 f2 x:bundle y:bundle common my-features.xml
  8. 8. Getting into production… <ul><li>Deployment from Maven repository is ideal… </li></ul><ul><ul><li>… but remember, admins don’t like running internet-happy developer tools like Maven in production! </li></ul></ul><ul><ul><li>Be prepared to deliver artifacts via .zip or .tar.gz - there are features-based Maven plugins to help! </li></ul></ul>Maven DEV SYSTEST UAT PROD .tar.gz
  9. 9. Scaling up, scaling out… ‘to understand ServiceMix, first you must understand ActiveMQ’
  10. 10. ActiveMQ: networked brokers <ul><li>Brokers use network connectors to share consumer information and make routing decisions using “store-and-forward” </li></ul><ul><ul><li>JMS clients use failover URLs or auto-discovery to connect to a live broker. </li></ul></ul>c1:Consumer c2:Consumer p:Producer <<jvm>> frodo:ActiveMQ <<jvm>> gandalf:ActiveMQ Foo: Foo: m 1: Producer sends a message m to the broker. m 2: Broker ‘frodo’ decides to route message via broker ‘gandalf’. m 3: message is delivered.
  11. 11. Aside: networked brokers allow you to create local broker clusters and implement wide-scale cross-geography architectures.
  12. 12. 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
  13. 13. Networks of master-slave pairs <ul><li>A clustered, highly available approach </li></ul>Master <<jvm>> merry:ActiveMQ <<jvm>> frodo:ActiveMQ <<jvm>> gandalf:ActiveMQ <<jvm>> saruman:ActiveMQ <<jvm>> samwise:ActiveMQ <<jvm>> pip:ActiveMQ Slave
  14. 14. … the thing is, it’s largely the same scaling model in ServiceMix
  15. 15. ServiceMix 4: networks of master-slave pairs <ul><li>Differs from AMQ only in that slaves can be ‘partially active’ </li></ul><<jvm>> merry: SMX4 <<jvm>> frodo:SMX4 <<jvm>> gandalf:SMX4 Master <<jvm>> saruman: SMX4 <<jvm>> samwise: SMX4 <<jvm>> pip: SMX4 Slave
  16. 16. ServiceMix 4: embedded brokers <ul><li>Embedded brokers speed up in-VM traffic, and facilitate location transparency via a ‘messaging fabric’ </li></ul><<jvm>> merry: SMX4 <<jvm>> frodo:SMX4 <<jvm>> gandalf:SMX4 ActiveMQ ActiveMQ ActiveMQ ActiveMQ ActiveMQ ActiveMQ Master <<jvm>> saruman: SMX4 <<jvm>> samwise: SMX4 <<jvm>> pip: SMX4 Slave
  17. 17. ‘ The unbearable chattiness of brokers’ or ‘too many brokers spoiled the pot’
  18. 18. Breaking out the broker <ul><li>Broker ‘meta-traffic’ will increase as more brokers are added. </li></ul><ul><ul><li>Sharing info on what consumers are listening to what destinations. </li></ul></ul><ul><li>If you have many SMX instances, then it might be more sensible to deploy your AMQ infrastructure separately. </li></ul><ul><ul><li>This also keeps things conceptually simple. </li></ul></ul><ul><ul><li>We like simple. </li></ul></ul>Master <<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
  19. 19. Respecting and supporting our JBI heritage
  20. 20. JBI - fundamentals <<jvm>> :SMX <<component>> :FTP NMR <<component>> :EIP <<component>> :SAXON <<component>> :JMS ServiceMix acts as a container for “components”, communicating with each other using the XML-based Normalized Message Router. Use well-known components like JMS, HTTP, CXF, Bean, FTP, FILE, or write your own.
  21. 21. JBI fundamentals (cont’) <<jvm>> :SMX <<component>> :FTP NMR <<component>> :EIP <<component>> :SAXON <<component>> :JMS Build an application by configuring and wiring endpoints as SUs, combining them into SAs that can be deployed atomically. Endpoints are configured using xbean (Spring) configuration; deployment artifacts are created using maven plugins. :Transformer :Pipeline :Producer :Poller
  22. 22. JBI fundamentals: packaging Each component is specialized using a SU. In ServiceMix, the endpoint(s) are defined in an xbean.xml file. Maven plugins are used to generate jbi.xml file SUs can optionally contain support classes and resources such as WSDL & XSD SUs are bundled together into an SA to be deployed atomically. <<jar>> <<zip>> .class xbean.xml jbi.xml resources ftp-input-su <<zip>> .class xbean.xml jbi.xml resources eip-su <<zip>> .class xbean.xml jbi.xml resources jms-output-su <<zip>> .class xbean.xml jbi.xml resources xslt-transformer-su
  23. 23. JBI support in ServiceMix 4 <ul><li>Full support for JBI 1.0 </li></ul><ul><li>Use JBI without the packaging! </li></ul><ul><ul><li>Spring + JBI components. </li></ul></ul><ul><li>Use NMR without canonical XML payload </li></ul><ul><li>Use Interceptors to monitor endpoints and message exchanges. </li></ul><ul><li>New clustering architecture: </li></ul><ul><ul><li>Clustered consumers write to NMR which uses a single JMS queue. </li></ul></ul><ul><ul><li>Providers listen on queue using message selectors </li></ul></ul><ul><ul><li>ActiveMQ network connectors provide location transparency. </li></ul></ul><<jvm>> :SMX NMR <<jvm>> :SMX NMR :FilePoller :JMSProvider
  24. 24. Where we are today
  25. 25. What is the community up to? <ul><li>Better documentation - the ServiceMix book </li></ul><ul><li>Building on OSGi Blueprints technology </li></ul><ul><li>Supporting Apache Ode </li></ul><ul><li>Scalability, performance, feature build-out </li></ul>
  26. 26. Adopting ServiceMix 4 <ul><li>Java, Maven, Spring - if you don ’t have these skills, be prepared to get them. </li></ul><ul><li>Invest in technical steering - don’t go in the wrong direction </li></ul><ul><li>Nominate FUSE expert(s) on your team - then let them spread the love. </li></ul><ul><li>Know yourself - If you 池 e not source-friendly, then get professional help. </li></ul><ul><li>In the source, there is truth - don’t be afraid of the truth. </li></ul>
  27. 27. Words from a battle-hardened consultant… <ul><li>Don’t confuse enterprise integration with workflow or BPM </li></ul><ul><ul><li>Use the right tool for the job at hand. </li></ul></ul><ul><li>Respect the {n|cr}appy path above the happy path. </li></ul><ul><li>Validate performance early, and keep validating it. </li></ul><ul><li>Prefer Camel; use JBI as an integration point. </li></ul><ul><li>Never forget your customer. Give them visibility and control. </li></ul><ul><ul><li>Thing about management early. </li></ul></ul>
  28. 28. <ul><li>Apache ServiceMix 4 </li></ul><ul><li>FUSE Community Day London, 10th June 2010 </li></ul>Adrian Trenaman Distinguished Consultant Financial Services Group, Progress Professional Services [email_address] .com http: //trenaman . blogspot .com
  1. A particular slide catching your eye?

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

×