Make easier Integration of yourservices with Fuse SolutionsCharles MoulliardSr. Enterprise Architect / Apache member23/01/...
Speaker : Charles Moulliard • Engineer in Agronomy & Master in Zoology   19 years of experience in IT world development (J...
Agenda●    Why Integration is so hard●    How Fuse technology makes that easier●    What we offer●    Fuse Enterprise (MB,...
Why integration is so hard
Why integration is so hard  IT is like a jungle, completely crazy
Why integration is so hard  Constellation of protocols & standards                                                        ...
Why integration is so hard  Support huge family of Formats     EDI                                          CSV   XML     ...
Why integration is so hard  Microsoft (.NET, COM) ↔ Java (EJB, POJO)  CORBA, DCOM fail to simplify inter-operability      ...
How Fuse makes that easier
How Fuse makes that easier    What do we need to solve these issues●    Technology supporting existing protocols/standards...
How Fuse make that easier    Where do we find such a technology →    OpenSource community (Apache, JBoss)●    Integration ...
Camel Integration Engine ...
Camel●    Birthdate - March 2007●    OpenSource Integration Framework implementing    EIP patterns (Book : 2005 by Gregor ...
CamelSome of features/characteristics  ●    In memory bus ← → alternative to JBI - NMR  ●      Route objects → can be XML,...
Camel (1)More than 50 patterns are implementedhttp://camel.apache.org/enterprise-integration-   patterns.html
Camel (2)More than 120 components http://camel.apache.org/components.html
Camel (3)●   ConvertBody●   Data formats to simplify    exchange between layers,    applications connected    (JAXB, Bindy...
Camel (4) The model  Content Based Router  & its DSL representation
Camel (5)
Camel (6)
Camel (7)
Camel (8)   URI corresponds to component name + properties
Camel (9)• Transpose the DSL using Java• First the configure() method must be created
Camel (10)Next we create a java class  extending RouteBuilder class
Camel (11)Language is flexible and proposesdifferent ways to define the    endpoints and predicates
Camel (12)Integrate easily with IntelliJ, Eclipse,   JBoss Developer Studio, Fuse Ide, NetBeans
Camel (13)Instead of Java, you can use   Spring / XML DSL
How Fuse makes that easier    What do we need to solve these issues●    Technology supporting existing protocol/standards●...
Multi-technology container
ESB – ServiceMix (1)Demystify the conceptEnterprise Service Bus→ This is not→ Or aBut an exchangingplatform of messages,ob...
ESB - ServiceMix (2)• Provide connectors(=   endpoints) to collect   information and send it on   the bus as messages●    ...
ServiceMix (3)                Message is               ACK or ERR Routing isdefined into                 Normalized =   th...
ServiceMix (4)Based on an OSGI kernelOffer modularity for servicesMulti-Technology Platform   ●     Camel  ●      CXF  ●  ...
Karaf – Heart of ServiceMix (5)
Karaf – Heart of ServiceMix (6)Features :●  Administration console (local, remote, ssh, web,   jmx)●  Provisioning system ...
Karaf – Heart of ServiceMix (6)The platform is « modular » because we canselect the libraries, containers.                ...
Architecture - MessagingThe BUS operates the exchanges between the endpoints using  Camel (individual), NMR – JBI (transve...
Architecture - JavaThe OSGI platform proposes a Service Registry (aka JNDI) t  deploy Java Interfaces     <bean id="incide...
Architecture - Messaging + JavaDecoupling of the "services" from integration layer                            from(« cxf:b...
Architecture - Messaging + Java + WebCan be web platform, it uses  Jetty Web Application  Server, Pax Web – a tooling for...
How Fuse makes that easier    What do we need to solve these issues●    Technology supporting existing protocols/standards...
Middleware to persist, propagateasynchronous exchanges, scale your           architecture
ArchitectureWhen we need asymetric deployment (CPU, memory is not  enough)  ActiveMQ interconnect the instances and  pers...
ActiveMQ• A high performance, reliable messaging fabric, supporting JMS, C,     C++,.Net, Stomp clients. Offers persistenc...
How Fuse makes that easier    What do we need to solve these issues●    Technology supporting existing protocols/standards...
And now move on  to Fuse World
47
Fuse vs Fuse Enterprise
What is Fuse Fabric http://fabric.fusesource.org/ Open Source Software for “configuring,  provisioning & running Fuse an...
Fuse Fabric : What does it do ? A. Development (Fuse IDE -WYSIWYG editor, Debug,    Runtime, Profiling)50
Fuse Fabric : What does it do ? B. Simplify Packaging - FAB     FAB = any jar file containing a pom.xml file under     ME...
Fuse Fabric : What does it do ? Fuse ESB allows to create  new instances and  administrate them locally or  remotely (ssh...
Fuse Fabric : What does it do ? C. Instance  Management Fabric (through  profiles + maven  proxy + registry)  will creat...
What is Fabric Registry = Configurations Repository →  replicated, manageable Agents = Java Fabric runtime Profiles = A...
Registry Based on Apache ZooKeeper  • Is a Centralized Coordination Service, distributed and highly    reliable  • Uses a...
Registry 2 kinds of registry : Configurations & Runtime Recommended to have >= 1 registry
Agent Fabric-agent deployed per Fuse ESB container Zookeeper client Agent listens to the registry  configurations   p...
Fuse Fabric : What does it do ? Fabric → fabric commands to manage  containers, profiles, ensemble, users58
Instance Management - FMC Could be managed from Fuse Management Console  = WAR + Rest API + Fabric59
Instance Management - FMC Create Local, Remote or in the cloud instances60
Instance Management - FMC61
Fuse Fabric : What does it do ? D. Profiling     •Simplify deployment in Fuse ESB instances     •Provisioning of features...
Profiling - FMC Management (create/delete/version,…)63
Profiling - FMC Example of profile (Camel – Version 1)64
Profiling - FMC Configuration files, parameters, jvm65
Deploying - FMC Associate profiles to a container (deployment)66
Fabric : What does it do ? E. “Services” factory - Virtualisation     • Create “indirection” points     • Load balancing ...
Virtualisation – Camel Fabric Exposing Camel endpoint into the fabric Invoking remote Camel endpoint Loadbalance reques...
Virtualisation – ActiveMQ Fabric Message brokers automatically discovery each other Clients use connection URI “fabric:d...
Virtualisation – ActiveMQ Fabric70
Other Fabric      CXF Fabric       Adds a feature to the CXF bus for discovery & load       balancing      D-OSGI       ...
Fabric : What does it do ? F. Monitoring containers (bundles, OSGI services)72
Real Time Monitoring - FMC Containers  – info (cpu,  memory,  profiles  deployed)73
Real Time Monitoring - FMC Statistics - Routes74
Real Time Monitoring - FMC  Statistics – Brokers75
Real Time Monitoring - FMC Statistics –  JMS  Messages76
To be complete Production Monitoring Solution → JON77
To be complete78
To be complete79
How Fuse makes that easier    What do we need to solve these issues●    Technology supporting existing protocols/standards...
How Fuse makes that easier  Time                                CXF     to make                              Camel        ...
Questions?                         @cmoulliard                         cmoulliard@redhat.com                         cmoul...
Upcoming SlideShare
Loading in …5
×

Make easier Integration of your services with Fuse Solutions - RedHat 2013

3,404 views

Published on

This presentation is all about why Fuse technology makes live easier of Integration projects / services using Camel, Karaf & Fabric

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,404
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
158
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Make easier Integration of your services with Fuse Solutions - RedHat 2013

  1. 1. Make easier Integration of yourservices with Fuse SolutionsCharles MoulliardSr. Enterprise Architect / Apache member23/01/2013
  2. 2. Speaker : Charles Moulliard • Engineer in Agronomy & Master in Zoology 19 years of experience in IT world development (J2EE, .NET), specialized in new technologies web/Internet & integration, Project manager in bank, financial, telco, insurance - Team builder – Coach - Evangelist • Architect @RedHat • Apache Committer : ServiceMix, Karaf (PMC), Camel (PMC), DeltaSpike, Fabric Twitter : http://twitter.com/cmoulliard LinkedIn : http://www.linkedin.com/in/charlesmoulliard My blog : http://cmoulliard.blogspot.com Slideshare : http://www.slideshare.net/cmoulliard
  3. 3. Agenda● Why Integration is so hard● How Fuse technology makes that easier● What we offer● Fuse Enterprise (MB, ESB)● Fuse IDE● Fuse Management Console
  4. 4. Why integration is so hard
  5. 5. Why integration is so hard IT is like a jungle, completely crazy
  6. 6. Why integration is so hard Constellation of protocols & standards RMIDCOM HTTP(S) (S)FTP(S) POP UDP RPC (S)SMTP IMAP CORBA TCP/IP SSL SSH SNMP PKI JavaEE SOA BPEL BPMN JPA WS-* SCA JMS AMQP REST JDBC POJO EJB JBI
  7. 7. Why integration is so hard Support huge family of Formats EDI CSV XML SOAP
  8. 8. Why integration is so hard Microsoft (.NET, COM) ↔ Java (EJB, POJO) CORBA, DCOM fail to simplify inter-operability BRIDGECORBA DCOM
  9. 9. How Fuse makes that easier
  10. 10. How Fuse makes that easier What do we need to solve these issues● Technology supporting existing protocols/standards● Facilitate Transformation or Data Formating● Integration language● Runtime to deploy services● Modularity/Granularity● Async architecture & persistence● Tools to develop/package & deploy projects● Supervision strategy● (Cloud) infrastructure
  11. 11. How Fuse make that easier Where do we find such a technology → OpenSource community (Apache, JBoss)● Integration Technology (Camel)● Multi-Technology Java OSGI Server (Karaf)● WS/REST framework (CXF) – SOA Vision● Middleware (ActiveMQ)● Modular runtime (Felix)● OSGI Tooling (OPS4J)● EE Features – JPA, Web, JTA, JNDI (Aries)● Cloud (jcloud, cloudstack, openshift)
  12. 12. Camel Integration Engine ...
  13. 13. Camel● Birthdate - March 2007● OpenSource Integration Framework implementing EIP patterns (Book : 2005 by Gregor Hohpe & Bobby Woolf)● Why EIP ? To provide words, grammar & language● Camel uses a Domain Specific Language transposing the EIP patterns into Java, XML, Scala
  14. 14. CamelSome of features/characteristics ● In memory bus ← → alternative to JBI - NMR ● Route objects → can be XML, File, Stream, Bytes ● Predicate & Expression language (xslt, xpath,..) ● Support Sync/Async exchanges ● Threads Management, Tx Architecture ● Error and exception handling ● Policy driven ● Container agnostic
  15. 15. Camel (1)More than 50 patterns are implementedhttp://camel.apache.org/enterprise-integration- patterns.html
  16. 16. Camel (2)More than 120 components http://camel.apache.org/components.html
  17. 17. Camel (3)● ConvertBody● Data formats to simplify exchange between layers, applications connected (JAXB, Bindy, SOAP, ...)● marshaler (obj-A  obj-B)● unmarshaler (obj-B  obj-A) http://camel.apache.org/data-format.html
  18. 18. Camel (4) The model  Content Based Router & its DSL representation
  19. 19. Camel (5)
  20. 20. Camel (6)
  21. 21. Camel (7)
  22. 22. Camel (8) URI corresponds to component name + properties
  23. 23. Camel (9)• Transpose the DSL using Java• First the configure() method must be created
  24. 24. Camel (10)Next we create a java class extending RouteBuilder class
  25. 25. Camel (11)Language is flexible and proposesdifferent ways to define the endpoints and predicates
  26. 26. Camel (12)Integrate easily with IntelliJ, Eclipse, JBoss Developer Studio, Fuse Ide, NetBeans
  27. 27. Camel (13)Instead of Java, you can use Spring / XML DSL
  28. 28. How Fuse makes that easier What do we need to solve these issues● Technology supporting existing protocol/standards● Facilitate Transformation or Data Formating● Integration language Camel● Runtime to deploy services● Modularity/granularity● Async architecture & persistence● Tools to develop/package & deploy projects● Supervision strategy● (Cloud) infrastructure
  29. 29. Multi-technology container
  30. 30. ESB – ServiceMix (1)Demystify the conceptEnterprise Service Bus→ This is not→ Or aBut an exchangingplatform of messages,objects moving withintransport layers
  31. 31. ESB - ServiceMix (2)• Provide connectors(= endpoints) to collect information and send it on the bus as messages● Allow to separate the business layer from those that will transport the information and transform (marshal) it
  32. 32. ServiceMix (3) Message is ACK or ERR Routing isdefined into Normalized = the SU XML exchanges
  33. 33. ServiceMix (4)Based on an OSGI kernelOffer modularity for servicesMulti-Technology Platform ● Camel ● CXF ● ActiveMQ, ● Aries (JPA, Transaction, JNDI, Web)
  34. 34. Karaf – Heart of ServiceMix (5)
  35. 35. Karaf – Heart of ServiceMix (6)Features :● Administration console (local, remote, ssh, web, jmx)● Provisioning system (features)● Hot deployment and configuration management● Instances management● Security integration (JAAS → ldap, jdbc, file)● Logging management (log4j, logger, commons logging, ….)
  36. 36. Karaf – Heart of ServiceMix (6)The platform is « modular » because we canselect the libraries, containers. Jetty, Pax Web Camel, JBI
  37. 37. Architecture - MessagingThe BUS operates the exchanges between the endpoints using Camel (individual), NMR – JBI (transversal) from(«ftp://server/dir») from(«cxf:bean:myWS») .beanRef(«myBean»); .beanRef(«myBean») ;
  38. 38. Architecture - JavaThe OSGI platform proposes a Service Registry (aka JNDI) t deploy Java Interfaces <bean id="incidentServiceTarget" class="org.apache.camel.service.impl.IncidentServiceImpl"> <property name="incidentDAO"> <osgi:reference interface="org.apache.camel.dao.IncidentDAO"/> </property> </bean>
  39. 39. Architecture - Messaging + JavaDecoupling of the "services" from integration layer from(« cxf:bean:myWS ») .beanRef(« myBean », « validate ») .beanRef(«aBean»,« saveDB ») .beanaRef(« myBean », « generateResponse »);
  40. 40. Architecture - Messaging + Java + WebCan be web platform, it uses  Jetty Web Application Server, Pax Web – a tooling for war and OSGI HTTP Service to register Servlet, …
  41. 41. How Fuse makes that easier What do we need to solve these issues● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating Camel● Integration language● Runtime to deploy services Karaf● Modularity/Granularity● Async architecture & persistence● Tools to develop/package & deploy projects● Supervision strategy● (Cloud) infrastructure
  42. 42. Middleware to persist, propagateasynchronous exchanges, scale your architecture
  43. 43. ArchitectureWhen we need asymetric deployment (CPU, memory is not enough)  ActiveMQ interconnect the instances and persist messages
  44. 44. ActiveMQ• A high performance, reliable messaging fabric, supporting JMS, C, C++,.Net, Stomp clients. Offers persistence for messages and bridge between ServiceMix instancesClients connect to the Network connectorsbroker using connectors control how thewith simple URIs broker interacts with other brokers for discovery, replication, failover,Topics and queues clustering and storecreated dynamically. & forward. … all based on a flexible Spring-based File & JDBC-based core. message stores supported.
  45. 45. How Fuse makes that easier What do we need to solve these issues● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating Camel● Integration language● Runtime to deploy services Karaf● Modularity/Granularity● Async architecture & persistence ActiveMQ● Tools to develop/package & deploy project● Supervision strategy● (Cloud) infrastructure
  46. 46. And now move on to Fuse World
  47. 47. 47
  48. 48. Fuse vs Fuse Enterprise
  49. 49. What is Fuse Fabric http://fabric.fusesource.org/ Open Source Software for “configuring, provisioning & running Fuse and Apache software on any machines” •physical, virtual, private, public, private+public cloud or not etc Keeps you DRY from those rainy clouds :) Weave your containers into an easy to manage fabric49
  50. 50. Fuse Fabric : What does it do ? A. Development (Fuse IDE -WYSIWYG editor, Debug, Runtime, Profiling)50
  51. 51. Fuse Fabric : What does it do ? B. Simplify Packaging - FAB FAB = any jar file containing a pom.xml file under META-INF/maven/groupId/artifactId/pom.xml (and pom.properties file) which contain the transitive dependency information for the jar.51
  52. 52. Fuse Fabric : What does it do ? Fuse ESB allows to create new instances and administrate them locally or remotely (ssh/jmx)BUT Instances are not “cloned” Configurations must be updated (manually) Process is error prone No Deployment Platform52
  53. 53. Fuse Fabric : What does it do ? C. Instance Management Fabric (through profiles + maven proxy + registry) will create instances and manage them •Locally •Remotely (ssh) •In the cloud53
  54. 54. What is Fabric Registry = Configurations Repository → replicated, manageable Agents = Java Fabric runtime Profiles = Artifacts to be deployed54
  55. 55. Registry Based on Apache ZooKeeper • Is a Centralized Coordination Service, distributed and highly reliable • Uses a directory & file based structure
  56. 56. Registry 2 kinds of registry : Configurations & Runtime Recommended to have >= 1 registry
  57. 57. Agent Fabric-agent deployed per Fuse ESB container Zookeeper client Agent listens to the registry  configurations  provisions features & servicesAgent registers important information into the registry (jmx)57
  58. 58. Fuse Fabric : What does it do ? Fabric → fabric commands to manage containers, profiles, ensemble, users58
  59. 59. Instance Management - FMC Could be managed from Fuse Management Console = WAR + Rest API + Fabric59
  60. 60. Instance Management - FMC Create Local, Remote or in the cloud instances60
  61. 61. Instance Management - FMC61
  62. 62. Fuse Fabric : What does it do ? D. Profiling •Simplify deployment in Fuse ESB instances •Provisioning of features across machines Profile •Envelope for features, bundles, OSGI configurations & config files •Profiles can be inherited, combined, versioned •Can be defined using commands62
  63. 63. Profiling - FMC Management (create/delete/version,…)63
  64. 64. Profiling - FMC Example of profile (Camel – Version 1)64
  65. 65. Profiling - FMC Configuration files, parameters, jvm65
  66. 66. Deploying - FMC Associate profiles to a container (deployment)66
  67. 67. Fabric : What does it do ? E. “Services” factory - Virtualisation • Create “indirection” points • Load balancing and failover • Easy elastic scaling of services67
  68. 68. Virtualisation – Camel Fabric Exposing Camel endpoint into the fabric Invoking remote Camel endpoint Loadbalance requests68
  69. 69. Virtualisation – ActiveMQ Fabric Message brokers automatically discovery each other Clients use connection URI “fabric:default” to connect to a message broker If you have multiple logical ActiveMQ clusters just name them in the URI e.g. • fabric:us-west, fabric:us-east, fabric:europe69
  70. 70. Virtualisation – ActiveMQ Fabric70
  71. 71. Other Fabric  CXF Fabric Adds a feature to the CXF bus for discovery & load balancing  D-OSGI Distribute OSGI services between Fabric instances  ServiceMix Fabric Allow local NMR to use remote endpoints when no local NMR endpoint available  Process Fabric Start & monitor processes Keep processes running across machines71
  72. 72. Fabric : What does it do ? F. Monitoring containers (bundles, OSGI services)72
  73. 73. Real Time Monitoring - FMC Containers – info (cpu, memory, profiles deployed)73
  74. 74. Real Time Monitoring - FMC Statistics - Routes74
  75. 75. Real Time Monitoring - FMC  Statistics – Brokers75
  76. 76. Real Time Monitoring - FMC Statistics – JMS Messages76
  77. 77. To be complete Production Monitoring Solution → JON77
  78. 78. To be complete78
  79. 79. To be complete79
  80. 80. How Fuse makes that easier What do we need to solve these issues● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating Camel● Integration language● Runtime to deploy services Karaf● Modularity/Granularity● Async architecture & persistence ActiveMQ● Tools to develop/package & deploy● Supervision strategy Fuse● (Cloud) infrastructure
  81. 81. How Fuse makes that easier Time CXF to make Camel a DEMO Karaf ActiveMQ Fuse
  82. 82. Questions? @cmoulliard cmoulliard@redhat.com cmoulliard.blogspot.com linkedin.com/in/charlesmoulliard slideshare.net/cmoulliard More info www.fusesource.com & www.redhat.com

×