Smx + Camel - Maciek Próchniak
-
Upload
maciek-prochniak -
Category
Technology
-
view
1.890 -
download
1
Transcript of Smx + Camel - Maciek Próchniak
Servicemix 4
Camel
ActiveMQ
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}