Smx + Camel - Maciek Próchniak

download Smx + Camel - Maciek Próchniak

If you can't read please download the document

Transcript of Smx + Camel - Maciek Próchniak

Servicemix 4
Camel
ActiveMQ

[email protected]

Servicemix 4

Modularna szyna ESB

Komponenty:Karaf jdro

NMR router wiadomoci

Implementacja JBI

Komponenty:Http, CXF

Camel, Drools

File, JMS

...

Servicemix 4 - architektura

Felix KarafServicemix NMRActiveMQJBICamel NMRCXF NMRKomponenty SMX (Drools, Http, Jms, ...)

Felix Karaf cechy

Podprojekt FelixPoprzednio Servicemix Kernel

Dziaa take z Equinox

atwo rozszerzalna konsolaWbudowane moduy OSGI, konfiguracji, podstawowych funkcji shella (grep :))

Moliwo dostpu przez ssh

Wsparcie dla OSGI 4.2Blueprint / Spring DM

Konfiguracja logowania przez Pax Logging

Felix Karaf instalacja i konfiguracja

Hotdeployment

Instalacja artefaktw w rnych formachWizki OSGI

Konteksty aplikacji Spring

War, JBI, ...

Konfiguracja aplikacji przez ConfigurationAdmin OSGI Compendium + pliki .properties

Uatwiona instalacja aplikacji featuresWizki OSGI + konfiguracja

Jak w Eclipse ;)

JBI

Definicja architektury kontenera SOA

Wymiana wiadomoci XML oparta na WSDL 2.0

Centralna szyna danych NMR

KomponentyBC (Binding Component) czce (np. http, jms)

SE (Service Engine) przetwarzajce (np. BPEL, drools, camel)

Rodzaje artefaktwSA (Service Assembly) - zestaw SU

SU (Service Unit) serwisy dla danego komponentu

JBI 2.0 chyba ju zarzucona...

JBI - schemat

JBI zalety i wady

ZaletySpjny standard wymiany informacji

Elastyczna definicja szyny danych NMR

WadyDue problemy z adowaniem klas

Skomplikowana struktura artefaktwSztywny podzia na SU

Komponenty s do skomplikowane w tworzeniu i obsudze

NMR w SMX 4

Wydzielenie NMRPrzykad: Camel NMR, CXF NMR

Uproszczenie APIDo prostych zastosowa nie trzeba penego JBI

Moliwo dodawania listenerw

Obsuga wiadomoci XML oraz POJO

TransakcyjnoDostp do menedera transakcji poprzez serwis OSGI

Transakcyjno wymian wiadomoci poprzez zastosowanie endpointw JMS

JBI w SMX4

Dodatkowa warstwa nad NMR

Pene wsparcie artefaktw JBI

Moliwo instalacji wizek OSGI wystawiajcych endpointy JBIJeden XML wiele komponentw

Technicznie konwersja kadego endpointu do oddzielnego SU

Czasami jeszcze nie do koca stabilne ;)

Komponenty Servicemix

Cay czas architektura JBIMoliwo stosowania razem z instalacjami OSGI

HTTP, JMS, CXF, File, Quartz, Drools

Konfiguracja w wikszoci poprzez XBean:

JBI+NMR klastrowanie

KlastrowanieNa poziomie poszczeglnych endpointwDrobnoziarnista kontrola, moliwo dostosowania

Domylnie komunikacja za pomoc JMSUycie selektorw do wybierania odpowiednich instancji serwera

Apache Camel

Lekkie rozwizanie do trasowania wiadomoci

Oparte na EIP Hohpe & Woolf np. :Message Router

Dead Letter Channel

Filter

Pipeline

Splitter

Apache Camel definiowanie tras

Kontekst Camela:Zbir endpointw

Trasy midzy nimi

Dodatki ;)

Przyjazny w uyciu DSL

Moliwo konfiguracji poprzez XML

Camel komponenty, jzyki, formaty

atwe w tworzeniu (nie jak w JBI ;) ):file, direct, jms, jbi, sql, comet, mina, quartz, seda, velocity, xslt, ...

Jednolity dostp poprzez URI identyfikator + parametry

from("file://inbox/order?move=.done").to("jms:queue:order?jmsMessageType=Text");Uycie wbudowanych jzykw do definicji warunkw i transformacjiXpath - //ns:books/page[@no=5] = 'ALA', XQuery

OGNL, jzyki skryptowe, SQL ;)

Simple, Header, Bean Content of ${body} with header: ${header.bela}

Wiele dostpnych formatw danych - (un)marshallingXML, CSV

JAXB, Serialized, XMLBeans, Xbeans, ...

Apache Camel

Bezporednie odwoania do metod POJOPrzekazywanie parametrw

public boolean testExchange(@XPath("//value") value, Exchange ex) { } from("direct:endpoint").choice().when().method("bean", "testExchange")...

Due moliowci konfiguracji

atwe testowanie jednostkowe Specjalne komponenty (mock) do przechwytywania wiadomoci

Alternatywy dla SMX + Camel

SCA komplementarne do JBI, konkurencyjne do OSGI

MuleESB konkurencja bardziej dla Camel

Petals, OpenESB,

Rozszerzenia:FUSE tworzone przez twrcw SMX jako wersja Enterprise

SwordFish oparte na Eclipse + SMX4

Alternatywy dla Camel:MuleESB

Spring Integration

ActiveMQ

Domylny dostawca JMS w Servicemix

Moliwo szybkiego utworzenia domylnej konfiguracji brokera JMS w SMX 4

MoliwociWiele dostpnych topologii sieci brokerwMulticasting, przekazywanie wiadomoci

Persystencja wiadomoci w plikach (kahaStore) oraz w bazie danych

Wiele protokow wymiany wiadomociOpenwire

Stomp

Przykad ODE + SMX

Przykad poczenia procesu z zewntrznymi
serwisami orchestration

SMX1:Service AssemblyODE SU, JMS SU

SMX2:OSGi BundleJMS, Camel, File

Przykad ODE + SMX

SOAPUI http request

ODE SEHTTP BC

JMS BC

Broker AMQFile EndpointCamel Endpoint

JMS Endpoint

1

2

3

4

5

6

7

8

9

10

11

12

13

SMX 1 v. 3.3

SMX 2 v. 4

from("direct:endpoint").to("jms:rr").transform()...

Przysza wiadomo: ${body}