make easier integration of your services with fuse solutions - redhat 2013

82
Make easier Integration of your services with Fuse Solutions Charles Moulliard Sr. Enterprise Architect / Apache member 23/01/2013

Upload: charles-moulliard

Post on 28-Nov-2014

2.130 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

Make easier Integration of your services with Fuse Solutions

Charles MoulliardSr. Enterprise Architect / Apache member

23/01/2013

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

Speaker : Charles Moulliard

• Engineer in Agronomy & Master in Zoology19 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

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

Agenda

● Why Integration is so hard

● How Fuse technology makes that easier

● What we offer

● Fuse Enterprise (MB, ESB)

● Fuse IDE

● Fuse Management Console

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

Why integration is so hard

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

Why integration is so hard

IT is like a jungle, completely crazy

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

Why integration is so hard

Constellation of protocols & standards

HTTP(S) (S)FTP(S)

(S)SMTP

TCP/IP

UDP

SSL

PKI

SOA BPEL

BPMN

WS-*

SCAREST JDBC

JPA

JMS

JavaEE

AMQP

POP

IMAP

POJOEJB

JBI

RMI

RPC

CORBA

DCOM

SNMPSSH

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

Why integration is so hard

Support huge family of Formats

EDI

XML

CSV

SOAP

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

Why integration is so hard

Microsoft (.NET, COM) ↔ Java (EJB, POJO)CORBA, DCOM fail to simplify inter-operability

CORBA

DCOM

BRIDGE

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

How Fuse makes that easier

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

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

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

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)

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

Camel Integration Engine ...

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

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

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

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

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

Camel (1)

More than 50 patterns are implemented

http://camel.apache.org/enterprise-integration-patterns.html

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

Camel (2)

More than 120 components

http://camel.apache.org/components.html

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

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

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

Camel (4)

The model Content Based Router

& its DSL representation

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

Camel (5)

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

Camel (6)

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

Camel (7)

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

Camel (8)

URI corresponds to component name + properties

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

Camel (9)

• Transpose the DSL using Java• First the configure() method must be created

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

Camel (10)

Next we create a java class extending RouteBuilder class

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

Camel (11)

Language is flexible and proposesdifferent ways to define the

endpoints and predicates

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

Camel (12)

Integrate easily with IntelliJ, Eclipse, JBoss Developer Studio, Fuse Ide, NetBeans

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

Camel (13)

Instead of Java, you can use Spring / XML DSL

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

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● Runtime to deploy services● Modularity/granularity● Async architecture & persistence● Tools to develop/package & deploy projects● Supervision strategy● (Cloud) infrastructure

Camel

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

Multi-technology container

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

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

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

ESB - ServiceMix (2)

● Allow to separate the business layer from those that will transport the information and transform (marshal) it

•Provide connectors(= endpoints) to collect information and send it on the bus as messages

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

ServiceMix (3)

Message is ACK or ERR

Routing is defined into

the SU

Normalized = XML

exchanges

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

ServiceMix (4)

Based on an OSGI kernelOffer modularity for services

Multi-Technology Platform ● Camel● CXF● ActiveMQ,● Aries (JPA,

Transaction, JNDI, Web)

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

Karaf – Heart of ServiceMix (5)

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

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, ….)

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

Karaf – Heart of ServiceMix (6)

The platform is « modular » because we can select the libraries, containers.

Camel, JBIJetty, Pax Web

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

Architecture - Messaging

from(«ftp://server/dir»).beanRef(«myBean»);

from(«cxf:bean:myWS»).beanRef(«myBean») ;

The BUS operates the exchanges between the endpoints using Camel (individual), NMR – JBI (transversal)

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

Architecture - Java

The OSGI platform proposes a Service Registry (aka JNDI) to 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>

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

Architecture - Messaging + Java

Decoupling of the "services" from integration layer

from(« cxf:bean:myWS »).beanRef(« myBean », « validate »).beanRef(«aBean»,« saveDB »).beanaRef(« myBean », « generateResponse »);

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

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, …

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

How Fuse makes that easier

What do we need to solve these issues

● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating● Integration language● Runtime to deploy services● Modularity/Granularity● Async architecture & persistence● Tools to develop/package & deploy projects● Supervision strategy● (Cloud) infrastructure

Camel

Karaf

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

Middleware to persist, propagate asynchronous exchanges, scale your

architecture

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

Architecture

When we need asymetric deployment (CPU, memory is not enough) ActiveMQ interconnect the instances and persist messages

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

ActiveMQ

Clients connect to the broker using connectors with simple URIs

File & JDBC-based message stores supported.

… all based on a flexible Spring-based core.

Topics and queues created dynamically.

Network connectors control how the broker interacts with other brokers for discovery, replication, failover, clustering and store & forward.

•A high performance, reliable messaging fabric, supporting JMS, C, C++,.Net, Stomp clients. Offers persistence for messages and bridge between ServiceMix instances

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

How Fuse makes that easier

What do we need to solve these issues

● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating ● Integration language● Runtime to deploy services● Modularity/Granularity● Async architecture & persistence● Tools to develop/package & deploy project● Supervision strategy● (Cloud) infrastructure

Camel

Karaf

ActiveMQ

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

And now move on to Fuse World

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

47

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

Fuse vs Fuse Enterprise

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

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

What is Fuse Fabric

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

50

Fuse Fabric : What does it do ?

A. Development (Fuse IDE -WYSIWYG editor, Debug, Runtime, Profiling)

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

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.

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

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

Fuse Fabric : What does it do ?

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

53

C. Instance Management

Fabric (through profiles + maven proxy + registry) will create instances and manage them•Locally•Remotely (ssh)•In the cloud

Fuse Fabric : What does it do ?

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

Registry = Configurations Repository → replicated, manageable

Agents = Java Fabric runtime Profiles = Artifacts to be deployed

54

What is Fabric

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

Based on Apache ZooKeeper•Is a Centralized Coordination Service, distributed and highly

reliable•Uses a directory & file based structure

Registry

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

Registry

2 kinds of registry : Configurations & RuntimeRecommended to have >= 1 registry

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

Fabric-agent deployed per Fuse ESB containerZookeeper client Agent listens to the registry configurations

provisions features & services

57

Agent registers important information into the registry (jmx)

Agent

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

Fabric → fabric commands to manage containers, profiles, ensemble, users

58

Fuse Fabric : What does it do ?

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

Could be managed from Fuse Management Console = WAR + Rest API + Fabric

59

Instance Management - FMC

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

Create Local, Remote or in the cloud instances

60

Instance Management - FMC

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

61

Instance Management - FMC

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

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

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

63

Management (create/delete/version,…)

Profiling - FMC

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

64

Example of profile (Camel – Version 1)

Profiling - FMC

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

65

Configuration files, parameters, jvm

Profiling - FMC

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

66

Associate profiles to a container (deployment)

Deploying - FMC

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

67

Fabric : What does it do ?

E. “Services” factory - Virtualisation• Create “indirection” points• Load balancing and failover• Easy elastic scaling of services

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

Exposing Camel endpoint into the fabric Invoking remote Camel endpoint Loadbalance requests

68

Virtualisation – Camel Fabric

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

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

Virtualisation – ActiveMQ Fabric

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

70

Virtualisation – ActiveMQ Fabric

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

CXF FabricAdds a feature to the CXF bus for discovery & load balancing

D-OSGIDistribute OSGI services between Fabric instances

ServiceMix FabricAllow local NMR to use remote endpoints when no local NMR endpoint available

Process FabricStart & monitor processesKeep processes running across machines

71

Other Fabric

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

72

Fabric : What does it do ?

F. Monitoring containers (bundles, OSGI services)

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

Containers – info (cpu, memory, profiles deployed)

73

Real Time Monitoring - FMC

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

Statistics - Routes

74

Real Time Monitoring - FMC

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

Statistics – Brokers

75

Real Time Monitoring - FMC

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

Statistics – JMS Messages

76

Real Time Monitoring - FMC

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

77

To be complete

Production Monitoring Solution → JON

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

78

To be complete

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

79

To be complete

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

How Fuse makes that easier

What do we need to solve these issues

● Technology supporting existing protocols/standards● Facilitate Transformation or DataFormating ● Integration language● Runtime to deploy services● Modularity/Granularity● Async architecture & persistence● Tools to develop/package & deploy● Supervision strategy ● (Cloud) infrastructure

Camel

Karaf

ActiveMQ

Fuse

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

How Fuse makes that easier

Time to make a DEMO

Camel

Karaf

ActiveMQ

Fuse

CXF

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

Questions?

More info www.fusesource.com & www.redhat.com

@cmoulliard

[email protected]

cmoulliard.blogspot.com

linkedin.com/in/charlesmoulliard

slideshare.net/cmoulliard