Anda di halaman 1dari 16

Autores:

Carine Gomes Henriques


Felipe Moreira de S
ndice
Introduo ao Enterprise Service Bus (ESB)...........................................3
Introduo ao MULE............................................................................5
Instalando o Mule...............................................................................8
Executando o Mule............................................................................!
Exe"plo de con#i$urao do Mule no Eclipse.........................................
Bi%lio$ra#ia.......................................................................................&
Introduo ao Enterprise Service Bus (ESB)
'ara entender o (ue ) o ESB* ) necess+rio antes con,ecer o conceito
de S-..
S-. (.r(uitetura -rientada a Servios) no ) u" produto* e si" u"
paradi$"a. /o "es"o 0eito (ue pro$ra"ao orientada a o%0etos ) u"
paradi$"a* e no u" produto. -u se0a* S-. ) u" paradi$"a para $randes
siste"as distri%u1dos de propriet+rios e tecnolo$ias di#erentes.
2iente deste conceito* a$ora pode"os entender (ue o ESB no
i"ple"enta S-. por)" o#erece as #uncionalidades necess+rias para
i"ple"entar esta ar(uitetura.
. "aneira "ais co"u" de se i"ple"entar u" ESB ,o0e ) atrav)s de
3e% Services* "as isso no ) re$ra* existe" outras #or"as de se reali4ar a
"es"a atividade. U" ESB no ) u"a lin$ua$e" de pro$ra"ao para
3e%services. Ele ) co"o u" 5u% utili4ado e" sua rede de co"putadores
tradicional* "as co" "uitas outras caracter1sticas.
U" Enterprise Service Bus ) u" #ra"e6or7 (ue possui v+rias
#uncionalidades8 escol,a e use. 'or exe"plo* voc9 pode utili4ar apenas
parte das #eatures e i$norar as de"ais (ue no #a4e" sentido para a
soluo proposta pela ar(uitetura (ue voc9 pro0etou. /e (ual(uer #or"a*
u" :%o" ESB: deve ter* pelo "enos* as se$uintes caracter1sticas8
;er u"a ins#raestrutura de "ensa$eria ro%usta e con#i+vel
'ossi%ilitar desenvolvi"ento de siste"as %aseados e" ar(uitetura
orientada a servios
Ser #orte"ente %aseado e" <ML
Suportar padr=es de 3e% Service (e.$. S-.')
Ser independente de plata#or"a
Suportar transa=es e ter #eatures de se$urana
Utili4ar protocolos padro e ter inte$rao co" :le$ados:
- ESB per"ite custo"i4a=es no servio de "ensa$ens* isto ) ele ) u"
Mediador. 2o"o ele pode>se #a4er valida=es e rotea"ento de "ensa$ens
%aseado no conte?do da "ensa$e" por exe"plo. U"a outra caracter1stica*
) poder ter u" produtor produ4indo "ensa$ens e" u" #or"ato e ter u"
consu"idor consu"indo e" outro #or"ato. o ESB #a4 essa converso
auto"atica"ente.
- ESB per"ite u" %aixo acopla"ento entre siste"a visto (ue u"
siste"a de ori$e" no precisa con,ecer o siste"a de destino. Ele ta"%)"
#a4 controles de acesso de siste"as externos e per"ite con#i$urar
se$urana das "ensa$ens* por exe"plo* usando encriptao.
2o"parao "atri48 ESB versus @MS e 3e% Services.
ESB MOM Servios e!
2a"ada de
transporte.
@MS #ornecedor* provedor
S-.'* 3S/L #ornecedor*
provedor Strea"* .r(uivo
#ornecedor* e "ais.
@MS. S-.' so%re ,ttp.
Mediao e
re$ras.
'rotocolo de traduo*
enca"in,a"ento* e de
trans#or"ao de dados.
Enca"in,a"ento
de dados e de
trans#or"ao.
/ados
trans#or"ao.
I"plantao. A1vel "+xi"o de #lexi%ilidade
para a con#i$urao dinB"ica.
Ce(uer reco"pilar
cDdi$o cliente.
Ce(uer
reco"pilarE
Es%oos.
'ara explicar "el,or o conceito* se$ue u" exe"plo de utili4ao.
Supon,a a se$uinte situao* u"a e"presa < possui u" siste"a de $rande
porte desenvolvido e" @ava (@EE* E@B e outros). Essa e"presa < ad(uire
u"a e"presa F (ue por sua ve4 utili4a tecnolo$ia .AE;. . e"presa possui
u" siste"a de 2CM (ue necessita* por al$u" "otivo* o%ter in#or"a=es
dos dois siste"as para (ue possa #a4er al$u" processo de atendi"ento ao
cliente. 'ara #a4er isso voc9 teria v+rias op=es* poderia conectar os dois
siste"as direta"ente* poderia desenvolver u"a classe (ou todo u" pacote
de classes) (ue #aa acesso aos dois siste"as.
2o" te"po* G "edida (ue sur$isse" outras necessidades de conectar esses
dois siste"as* voc9 aca%aria por ter u"a con#uso $eral de siste"as
acessando outros siste"as. 'ara evitar isso* entra o papel de ESB* (ue
neste caso seria u" :ne$ociador:* seria u"a :inter#ace: para a (ual voc9
iria solicitar a execuo de al$uns processos* consultas* etc. -u se0a* u"
ele"ento inter"edi+rio (ue seria respons+vel por conectar siste"as
di#erentes. - seu siste"a @ava ne" to"aria con,eci"ento de (ue o outro
siste"a ) #eito e" .AE; ou e" (ual(uer outra tecnolo$ia* por(ue ele se
co"unicaria apenas co" o ESB* o (ual por sua ve4 teria o papel de se
conectar a esses outros siste"as. Cesu"ida"ente* ESB seria u"a
a%strao dessa interconexo de siste"as (ue usa" tecnolo$ias di#erentes.
Introduo ao MULE
- MULE ) u" popular ESB open source* lanado e" H!!3 por C.
Mason. Ele ) #lex1vel e per"ite as co"unica=es entre os co"ponentes
distri%u1dos* pela execuo de "ensa$e" de co"ando* no"eado co"o
Universal Messa$in$ -%0ects (U"os).
Sua estrutura #ornece u" a"%iente alta"ente escal+vel* e" (ue )
poss1vel i"plantar os co"ponentes para seu ne$Dcio. - Mule $erencia
todas as intera=es entre os co"ponentes de #or"a transparente* se eles
existe" na "es"a "+(uina virtual ou atrav)s da internet e independente
do transporte su%0acente utili4ada.
- Mule #oi conce%ido e" torno da ar(uitetura Enterprise Service Bus*
(ue estipula (ue os di#erentes co"ponentes ou aplica=es co"uni(ue">se
atrav)s de u"a "ensa$e" co"u"* utili4ando nor"al"ente @MS ou al$u"
outro servidor de "ensa$ens. - Mule vai "uito "ais lon$e* a%straindo @MS
e (ual(uer outra tecnolo$ia de transportes de distBncia do ne$Dcio o%0etos
usados para rece%er "ensa$ens.
. #i$ura a%aixo ilustra os dados de #luxo de entrada* apresentando os
parB"etros na sa1da8
UMO (Universal Messaging Object)
Event>driven so#t6are cliente. 2o"ponente (ue rece%e e processa
u"a "ensa$e".
Inbound transformer
2o"ponente (ue #ornece "ensa$e" de trans#or"a=es a partir do
transporte do cliente e" #or"ato i"ediata"ente anteriores G
invocao ")todo UM-.
Outbound transformer
2o"ponente (ue #ornece "ensa$e" de trans#or"a=es do cliente e"
#or"ato de transportes. Iica entre o e"issor de "ensa$e" e o
enca"in,ador da "ensa$e".
Endpoint
J u"a con#i$urao do o%0eto (ue de#ine a #or"a co"o os dados
sero rece%idos e trans#or"ada pelo Mule.
Inbound router
2o"ponente (ue controla o #luxo e" "ensa$e">endpoint a direo>
UM-.
Outbound router
2o"ponente (ue controla o #luxo na "ensa$e" UM->to>end point
direoK pode incluir v+rios tipos de #iltros para testar se a "ensa$e"
pode ser enviada para u" deter"inado parB"etro.
Interceptor
-#erece servios adicionais* co"o a explorao da "ensa$e"*
coletando dados estat1sticos* etc.
Conector
'rev9 a i"ple"entao do conector de li$ao ao siste"a exterior.
"rincipais vanta#ens do Mule:
'ossi%ilidade de validar a sua ar(uitetura antes de partir para u"
investi"ento e" u"a soluo co"ercial (se #or o caso).
Si"plicidade de instalao e i"plantao.
/isponi%ilidade da "ais a"pla "ar$e" de transportes apoiados* e
Inverso de 2ontrole contentores.
/isponi%ilidade de apoio ativo da co"unidade* %e" co"o o apoio
co"ercial.
"rincipais desvanta#ens do Mule:
Ialta de inte$rao co" os produtos de outros #a%ricantes
2o"plexidade para i"ple"entar Lservios co"ple"entaresM
necess+rios para ad"inistrar u" ESB8
o service "onitorin$
o ad"inistration
o contract "ana$e"ent
o securitN policies
Instalando o Mule
- Mule #uncionar+ e" toda a plata#or"a (ue suportar @ava* incluindo8
3indo6s <' S'H and 3indo6s H!!!
Linux* Solaris* .I<* and 5'>U<
Mac -S<
'ara a ?lti"a verso do "ule #uncionar* a $arantia de (ualidade de MuleSource
certi#icou as se$uintes plata#or"as8
Siste"a operacional8 Ced 5at Enterprise Linux O.! (3H>%it) e 5.H (&O>%it) e
3indo6s H!!3 Server
Mensa$eria8 .ctiveMP O. e 3e%Sp,ere MP Series &.!.
Banco de dados8 /er%N and -racle !$ !.H.H..!
@ava8 @/Q .5 and .&
.ntes da instalo e utili4ao do Mule* ) necess+rio con#i$urar o Maven. .pDs* e"
seu repositDrio ."H a%ra o ar(uivo settin$s.x"l e especi#i(ue o diretDrio do
repositDrio8
<localRepository>c:/.m2/repository</localRepository>
.pDs ) necess+rio criar a vari+vel de a"%iente MULER5-ME apontando para o
diretDrio e" (ue se #ar+ a instalao do MULE.
Ao 3indo6s caso no se ten,a o 0ava associador aos ar(uivos .0ar* a%rir o pro"pt
de co"ando* nave$ar at) o diretDrio para onde #oi #eito o do6nload do ar(uivo .0ar
e entrar co" o se$uinte co"ando8
java -jar mule-<version>-ee-installer.jar
.pDs si$a as instru=es do instalador do Mule.
;er"inando a instalao* deve>se setar o repositDrio do "ule* no diretDrio %in*
dentro do pro"pt de co"ando di$itar o se$uinte co"ando8
cd c:\mule\bin
populate_m2_repo.cmd c:\.m2\repository
'ara executar o Mule* %asta no pro"pt de co"ando di$itar8
mule [-confi your-confi.!ml"
Executando o Mule
'ara executar o Mule* %asta no pro"pt de co"ando di$itar8
mule [-confi your-confi.!ml"
'ara parar o Mule %asta dar u" ctrlSc.
'ara startar o Mule pela I/E usando o @ava Service 3rapper* voc9 pode usar a
classe de or$."ule.MuleServer* (ue aceita os se$uintes parB"etros8
or.mule.#ule$erver -confi mule-confi.!ml
Ou
or.mule.#ule$erver -builder <fully %ualified classname> -confi
app&onte!t.!ml
$con%i# representa u" ou "ais ar(uivos de con#i$urao. Se est+ in#or"ao no
existir* ele utili4a o ar(uivo "ule>con#i$.x"l
$!uilder ) o classna"e (uali#icado para a con#i$urao %uilder e" uso. Se est+
in#or"ao no existir* ele utili4a a classe
or$."ule.con#i$.%uilders..uto2on#i$urationBuilder
. "aneira a "ais si"ples de a0ustar o classpat, ) incluir todos os ar(uivos .0ar nos
diretDrios de .Tli%T"ule e de .Tli%Topt da distri%uio.
;a"%)" ) poss1vel startar u" usu+rio servidor do Mule utili4ando o se$uinte
cDdi$o8
//create a new server and configure it with two configuration files
#ule$erver server ' new #ule$erver("mule-config1.xml,mule-config2.xml")*
//Start the server. The boolean argument determines if the server should start
//in a new thread or use the current thread
server.start(true)*
Exemplo de configurao do Mule no Eclipse
'ara instalar o Mule ) necess+rio ter o @/Q .5 ou superior instalado e
con#i$urado. ;a"%)" ) necess+rio ter o Maven ou o .nt instalado. Aesse
tutorial va"os utili4ar o Maven.
&' Baixe a verso Mule 2o""unitN Edition (Iull distri%ution)
(,ttp8TT"ulesource.or$TdisplaNTMULET/o6nload)
(' Extraia o ar(uivo 4ip.
)' 2rie a vari+vel de a"%iente MULER5-ME e acrescente ao classpat,8
*' Ao eclipse i"porte o pro0eto L,elloM co"o Maven pro0ect.
+' 2o"pile o pro0eto usando o Maven Build.
Aa 0anela escol,a @ava .plication e especi#i(ue or$."ule.MuleServer
para a "ain class.
,' Aa a%a ar$u"ents adicione $con%i# con%-.ello$con%i#'/ml
0' .pplN e Cun8
E pronto. . aplicao de exe"plo do Mule est+ rodando no eclipse.EE
Bibliografia
http://mulesource.org/pages/viewpage.action?pageId=13729892
http://mulesource.org/displa/!"#$2I%&'(/Installing)!ule
htt!//mulesource.org/disla"/#$%&2'(T)O/)unning*#ule
http://soasimples.com/*log/?p=18+
http://www.in,o*logs.com.*r/view.action?
contentId=3-1.3/!ule)continua)liderando)no)(pen0ource)$01
http://translate.google.com.*r/translate?hl=pt2
1'/sl=en/u=http://www.na**le.com/0oap2!essage2232+3$2$0124ueue2232+3$2
0oap25e*20ervice2
td26-29.37.html/sa=7/oi=translate/resnum=-/ct=result/prev=/search3389
33:$0132132+21321we*321service32132+21321!"#$32.hl33:pt21'
http://translate.google.com.*r/translate?hl=pt2
1'/sl=en/u=http://toda.;ava.net/pu*/a/toda/2667/67/31/e<ploring2es*2patterns2
with2mule.html/sa=7/oi=translate/resnum=+/ct=result/prev=/search3389
33:$0132132+21321we*321service32132+21321!"#$32.hl33:pt21'
http://translate.google.com.*r/translate?hl=pt21'/sl=en/u=http://;ava2
source.net/open2source/enterprise2service2
*us/sa=7/oi=translate/resnum=9/ct=result/prev=/search338933:$01321
32+21321we*321service32132+21321!"#$32.hl33:pt21'

Anda mungkin juga menyukai