Getting the Most out of Your Servicemix Deployment of Camel

Getting the Most out of Your Servicemix Deployment of Camel

Getting the most out of your ServiceMix deployment of Camel Jonathan Anstey Principal Engineer FuseSource A Progress Software Company 1 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Your Presenter is: Jonathan Anstey . Principal Software Engineer at FuseSource http://fusesource.com . Apache Camel PMC member, Apache ActiveMQ committer . Co-author of Camel in Action 2 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Agenda . What is Apache Camel? . What is Apache ServiceMix? . Rider Auto Parts example . Best practices for deploying into ServiceMix 3 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company What is Camel? . Apache Camel focuses on making integration easier by having: • Implementations of the Enterprise Integration Patterns (EIPs) • Connectivity to many transports and APIs • Easy to use Domain Specific Language (DSL) to wire EIPs and transports together • No container dependency 4 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Known Deployment Containers . Apache ServiceMix / Fuse ESB . Sonic ESB . Apache Karaf . IBM WebSphere . Apache ActiveMQ / Fuse MB . Oracle WebLogic . Apache Tomcat . Oracle OC4j . Jetty . Google App Engine . JBoss . Amazon EC2 . OpenESB . Etc… . Etc… 5 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company What is ServiceMix? . Open source container useful for integration and SOA – an ESB. • EIP-style integration flows • SOAP & REST web services • Business processes • Reliable messaging 6 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company What is ServiceMix? . Support for various cross- functional concerns • Logging • Lifecycle and deployment • Configuration • Versioning & Dependency Mgmt • Management • Security • Transactions 7 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company ServiceMix – the Technologies JAX-WS and EIP via Camel JAX-RS via CXF BPEL via ODE JMS via ActiveMQ OSGi, JCL, JUL, Log4j, Slf4j OSGi Config Admin OSGi JAAS, SSH, HTTPS, TLS, etc JMX, web console, SSH 8 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Modular Deployment with OSGi bundles . ServiceMix will deploy almost anything • OSGi bundles, JBI, WARS, Spring , JARs, etc . Prefer to create Java modules as OSGi bundles • Precise control over classloading • Builtin versioning support • Lifecycle: load, start, stop bundles • Dependency management • Highly dynamic: upgrade your application without bringing the whole app server down . OSGi bundles are just a JAR + MANIFEST enties 9 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Let’s look at the example… 10 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example . http://java.dzone.com/articles/open-source-integration-apache 11 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example . Rider Auto Parts Example - 3 Routes 1 3 2 12 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example from 1 to 13 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example from to 2 14 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example from 3 choice to route on next slide 15 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example 16 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Rider Auto Parts Example JAXB & Bindy annotated POJO Spring CamelContext Maven-based build 17 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Best practices for deploying to ServiceMix… 18 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company OSGi-ifying the example . Change Maven POM packaging type • <packaging>bundle</packaging> . Use the maven-bundle-plugin to generate OSGi entries in the JAR's MANIFEST . This will automatically import and export the necessary packages. 19 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company OSGi-ifying the example . Usually best to NOT export implementation packages however. If we had Java DSL routes in org.fusesource.camel.impl, we could tell the bundle plugin to not export those routes. 20 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Using Blueprint… 21 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Using Blueprint . Spring-DM is an OSGi add-on to Spring . Blueprint from the Apache Aries project is a standardized version of Spring-DM . Better integration with OSGi • Ability to wait on bundles with custom namespaces prior to starting • Don't need tons of schema imports • Version of Camel namespace used determined at runtime 22 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Using Blueprint . Blueprint file should be placed in OSGI-INF/blueprint . Syntax within the camelContext is identical to plain Spring deployment 23 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Using Blueprint – Caveats . Blueprint support across all components in Camel is not complete in current releases • Ex. Camel-cxf component will start having Blueprint support in Camel 2.8 . Best practice • Keep Spring-DM in place for already developed projects • Consider Blueprint for new projects 24 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Grouping bundles… 25 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Deploy with features . Features group bundles into a logical unit of deployment . Installing feature "Foo" would install bundles A, B, C and D 26 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Deploy with features . You should specify existing features in ServiceMix to depend on rather than individual bundles. 27 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Deploy with features . You can then SSH into ServiceMix and use the features shell to install the feature. 28 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Configuring your routes… 29 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Take advantage of OSGi Config Admin . The Config Admin service provides an easy way of getting configuration into your bundle . You can then use these properties in your routes 30 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Take advantage of OSGi Config Admin . You can update properties in the command shell or by modifying a properties file. Updating the HTTP endpoint at runtime is simple: 31 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Confidential A Progress Software Company Reference existing services… 32 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    47 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us