Make easier Integration of your services with Fuse Solutions - RedHat 2013
1. Make easier Integration of your
services with Fuse Solutions
Charles Moulliard
Sr. Enterprise Architect / Apache member
23/01/2013
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. Agenda
●
Why Integration is so hard
●
How Fuse technology makes that easier
●
What we offer
●
Fuse Enterprise (MB, ESB)
●
Fuse IDE
●
Fuse Management Console
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. 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)
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. Camel
Some 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. Camel (1)
More than 50 patterns are implemented
http://camel.apache.org/enterprise-integration-
patterns.html
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
30. ESB – ServiceMix (1)
Demystify the concept
Enterprise Service Bus
→ This is not
→ Or a
But an exchanging
platform of messages,
objects moving within
transport layers
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. ServiceMix (3)
Message is
ACK or ERR
Routing is
defined into Normalized =
the SU XML
exchanges
33. ServiceMix (4)
Based on an OSGI kernel
Offer modularity for
services
Multi-Technology Platform
●
Camel
●
CXF
●
ActiveMQ,
●
Aries (JPA,
Transaction, JNDI,
Web)
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. Karaf – Heart of ServiceMix (6)
The platform is « modular » because we can
select the libraries, containers.
Jetty, Pax Web
Camel, JBI
37. Architecture - Messaging
The 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. Architecture - Java
The 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>
40. Architecture - Messaging + Java + Web
Can be web platform, it uses Jetty Web Application
Server, Pax Web – a tooling for war and OSGI HTTP
Service to register Servlet, …
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
43. Architecture
When we need asymetric deployment (CPU, memory is not
enough) ActiveMQ interconnect the instances and
persist messages
44. ActiveMQ
• A high performance, reliable messaging fabric, supporting JMS, C,
C++,.Net, Stomp clients. Offers persistence for messages and
bridge between ServiceMix instances
Clients connect to the Network connectors
broker using connectors control how the
with simple URIs broker interacts with
other brokers for
discovery,
replication, failover,
Topics and queues clustering and store
created dynamically. & forward.
… all based on a
flexible Spring-based
File & JDBC-based core.
message stores
supported.
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
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
fabric
49
50. Fuse Fabric : What does it do ?
A. Development (Fuse IDE -WYSIWYG editor, Debug,
Runtime, Profiling)
50
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. 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 Platform
52
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 cloud
53
54. What is Fabric
Registry = Configurations Repository →
replicated, manageable
Agents = Java Fabric runtime
Profiles = Artifacts to be deployed
54
55. Registry
Based on Apache ZooKeeper
• Is a Centralized Coordination Service, distributed and highly
reliable
• Uses a directory & file based structure
56. Registry
2 kinds of registry : Configurations & Runtime
Recommended to have >= 1 registry
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. Fuse Fabric : What does it do ?
Fabric → fabric commands to manage
containers, profiles, ensemble, users
58
59. Instance Management - FMC
Could be managed from Fuse Management Console
= WAR + Rest API + Fabric
59
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 commands
62
67. Fabric : What does it do ?
E. “Services” factory - Virtualisation
• Create “indirection” points
• Load balancing and failover
• Easy elastic scaling of services
67
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:europe
69
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 machines
71
72. Fabric : What does it do ?
F. Monitoring containers (bundles, OSGI services)
72
73. Real Time Monitoring - FMC
Containers
– info (cpu,
memory,
profiles
deployed)
73
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. How Fuse makes that easier
Time CXF
to make
Camel
a DEMO
Karaf
ActiveMQ
Fuse
82. Questions?
@cmoulliard
cmoulliard@redhat.com
cmoulliard.blogspot.com
linkedin.com/in/charlesmoulliard
slideshare.net/cmoulliard
More info
www.fusesource.com & www.redhat.com