Você está na página 1de 12

06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

fontes favorito (5) imprimir anotar marcar como lido dvidas?

Artigo Java Magazine 69 - Estratgias de Integrao de


Aplicaes Java EE
(0) (0)

Conhea as estratgias e tticas para voc aprender a integrar aplicaes Java EE com as melhores prticas de mercado e padres provados de
integrao (EAI)

[lead]Dequesetrataoartigo:

OartigoapresentatcnicaseprticasprovadasdeintegraodeaplicaesJavacomoutrasaplicaes,sistemasebancosdedados.Projetosde

integraoapresentammuitascomplexidadestcnicasemuitaspossibilidadestcnicasemJavataiscomoJMS,JCA,JDBC,RMI,HTTPeSOAP.

Oartigomostracomoescolherestastecnologiasecomoutilizlasadequadamenteatravsdepadresdeintegraodeaplicaes(EIP).

Paraqueserve:

OartigotilparaquedesenvolvedorespossamconhecerosriscosassociadosintegraodesistemasJavacomoutrossistemaseaplicaras

melhoresprticasdemercadoepadresdeintegraoparamitigareeliminarestesriscos.Projetoscomriscostcnicosreduzidospossuemmaior

garantiadesucesso,maiorqualidade,estabilidadeemanutenesmaissimplesefacilitadas.

Emquesituaootematil:

EmprojetosdeTIquerequeremintegraesdetodotipo,comobancosdedadosrelacionais,basesdedadosemoutrosformatos,sistemasdefilas

demensagens,aplicaeslegadasemplataformasbaixasealtasouaplicativoscomoCRM(CustomerRelationshipManagement)eERP

(EntepriseResourcePlanning).

EstratgiasdeIntegraodeAplicaesJavaEE:

IntegraraplicaesJavacomoutrossistemasnoumatarefatrivial.Parareduzirriscosemanterprojetossobcontrole,devemosusarprticas

provadasdeintegraodesistemas.

AsmelhoresprticasdeintegraosodenominadaspadresEAI(EAIPatterns)eforampopularizadasporGregorHohpeatravsdoseulivro

EnterpriseIntegrationPatterns.Estasprticaspermitemqueumarquitetooudesenvolvedorescolhaasestratgiasmaiseficientesdeintegraode

sistemasJavacomoutrossistemaseproduzasoluesmaispereneseeconmicas.

EstasprticasdeintegraotambmsofundamentaisparaempresasqueestejambuscandoiniciativasSOAeBPM,poispermitemgerir

adequadamenteacriaoeevoluodeservios(ativos)emrepositriosdeservios(ESB).

Umprocessosimplesparaquevocpossaaprenderaintegrarsistemasemprojetosenvolveosseguintespassos:(1)Coletarosrequisitos

arquiteturaisdeinteroperabilidade(2)Desenvolversoluesindependentesdetecnologiaparacadarequisitoarquiteturalcoletado(3)Estudaros

exemplosdisponibilizadosnareferncia[1](4)EstudarastecnologiasJavamaisadequadasparacadarequisito(ex:WebServicesouRMI)(5)

ImplementaroscenrioscomastecnologiasJavaescolhidas(6)Testarassoluesemambientedehomologao.[/lead]

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 1/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Integraraplicaesnoumatarefatrivial.Protocolosdiversos,APIsexticas,tecnologiaseambientescomplexosecronogramasagressivosso

algunsaspectosquedesafiamdiariamenteanalistasdesenvolvedoresJavaEE.

Contoaquiumahistriaqueresumeestesdesafios.UmaequipenecessitavaenviaremailsdesuaaplicaoJava.Umatarefaaparentemente

trivial,quemuitosdesenvolvedoresvivemtodososdias.AequipenopossuaexperinciacomaAPIJavaMail,mascomaajudadeumrecurso

externoaequipesecapacitouedesenvolveuocdigonecessrioparasuportaraintegrao,quenestecasoocorreriacomoservidorMicrosoft

Exchange.Cdigoimplementado,testesinternosrealizadoscomsucessoeaprovaogerencial.Aparentementeoproblemafoiresolvido.

Avidareal,entretanto,guardasurpresas.Navsperadasemanadeimplementao,ocdigofoiimplantadonaempresadocliente(vamoscham

ladeempresaACME),masoscasosdeusoquerequeriamaintegraocomoMicrosoftExchangenofuncionavam.Todososolhoseatenes(e

culpas)foramlanadosparaoservidordeemaildaMicrosoft.Apsadescobertaqueoservidordeemaildocliente(v2007)estavaemuma

diferenteversodoambienteinternodadesenvolvedora(v2003),modificaesnoambientededesenvolvimentoforamrealizadasparaadequaro

servidor.Nenhumresultadopositivofoialcanado.Opnicoseinstalou!

Maisinvestigaesforamrealizadaseaequipedescobriuqueoservidordeemaildeproduonoresidianamesmarededoservidordeaplicao

docliente,masemumdistantelocalremoto(emoutracidade)emumprovedorcomumacessocontroladoporumfirewall.Oanalistadeinfra

estruturadoclientenofoiquestionadoobastanteparainformarestefato.Paraencurtarahistria,aequipedescobriuqueoenviodeemailsneste

ambienterequeriaousodecertificadoseprotocoloscomgarantiadetransporteseguro(SMTPsobreSSL).Noitesmaldormidas,umatrasode

algumassemanasnocronograma,umclienterelativamenteestressadoeodesafiofoifinalmentevencido.

Queliespodemosaprendercomestahistria?Enumeroalgumasabaixo:

Certificarqueasversesdosambientesaseremintegradossejamexatamenteiguais

Analisarcuidadosamenteatopologia,isto,aorganizaofsicadoambientedeproduodocliente.DiagramasUMLdeimplantaosouma

ferramentatilnesteaspecto

Analisarosprotocoloserequisitosnofuncionaisquepossaminterferirnainteroperabilidade

Antecipartestesrealizadosnaplataformarealdocliente.

[nota]RequisitosFuncionaiseRequisitosNoFuncionais

Requisitosfuncionaisexpressamosdesejosdosinteressadosdoprojetonaperspectivadafuncionalidade.Exemplosincluemcadastros,relatrios

efluxosdetrabalho.Requisitosnofuncionaisexpressamatributosdequalidadedeumsistemataiscomodesempenho,usabilidade,

disponibilidadeouportabilidade.

Requisitosfuncionaisenofuncionaisimportantesparaonegcio(prioritrios)ecomplexosformamoconjuntoderequisitosarquiteturaisque

devemserfocoinicialdequalquerprojetodeTI.

Requisitosfuncionaisenofuncionaiscoletadospodemresponderaperguntassobreescolhasdeestratgiasetecnologiassobre

interoperabilidade.Porexemplo,restriessobredesempenhopodemeventualmenteinfluenciarnaescolhadeumaintegraocomsoquetesao

invsdeXMLeWebServices.[/nota]

Oleitormaisexperientepodequestionarasliesaprendidasnesteexemplo.Estasliessobvias.Masdevemoslembrarquesensocomum

noprticacomum.

[nota]Dica

SejaumIndianaJonesdeaplicaesJavanasuaempresa.FaaumaarqueologiadesoftwarenasaplicaesJavadasuaempresaecoleteos

erroseliesaprendidas.Oserrosdopassadosoumaexcelentefontedeaprendizadoparaprojetosfuturos.[/nota]

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 2/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Oobjetivodesteartigomostraravoccomotornarsensocomumemprticacomum,isto,evitarerroscomunsdeintegraesdesistemasem

projetoseevitarestressesdesnecessrios.Vamosabordarestratgiasetcnicasparaorganizaroseutrabalho,organizadosdaseguinteformanas

seesseguintesdesteartigo:

Estilos,NveiseTopologiasdeIntegrao.Iremosconheceraquifundamentosdaintegraodesistemas

TecnologiasparaInteroperabilidadeJava.AquiiremoscitarasprincipaistecnologiasepadresJavaparaaintegraodeaplicaes

PadresdeIntegrao(EIP).Iremosconheceraquiasmelhoresprticasdemercadoparaintegraraplicaes

ProcessoparaIntegrarAplicaes.Vamosabordaraquiasprincipaistarefasnecessriasduranteumprojetoparagarantirumaboa

interoperabilidadedesuasaplicaesJava.

[subtitulo]Estilos,NveiseTopologiasdeIntegrao[/subtitulo]

Sevocseconhece,masnooinimigo,paracadavitriasofrerumaderrota,SunTzu,AArtedaGuerra.

Comoconheceroinimigo?Primeiramentedevemoscompreenderqueinteroperabilidadeummecanismoarquitetural,ouseja,umapreocupao

importantedeumprojetoeque,portanto,requeraatenotcnicaaindanocomeodoprojeto.Devemosinvestigarasinteroperabilidades

requeridasnonossoprojetoatravsdoestilo,nveletopologiaassociados,poisparacadaumhaverumaabordagemtcnicadiferenciadae

tecnologiasdistintasemJava.

[nota]Dica

Coleteosrequisitosarquiteturaisdiretamentecomrepresentantesdoseuclienteemreuniesconjuntascomoanalistaderequisitos.Normalmente

analistasderequisitostmdificuldadedecapturareexpressarinformaestcnicas,oqueimplicaeminformaestruncadasenovasdescobertas

indesejadasnofinaldoprojeto.[/nota]

Ainteroperabilidadedeaplicaespodeseapresentaremquatroestilos,conformeGregorHohpe[1].

1.Oprimeiroestiloatransfernciadearquivos,ondeduasaplicaescompartilhamasinformaesatravsdeumarquivotextooubinrio.O

protocoloFTPumexemplopopulardetecnologiaquesuportaesteestilo

2.Osegundoestilo,talvezomaispopular,atravsdedadoscompartilhadosembancosdedados

3.Oprximoestiloatravsdeprocedimentosremotos(RPC),ondeumprogramaclienteinvocaumafuncionalidadeemoutramquina.As

tecnologiasdeWebServicessoexemplosnormalmenteassociadosaRPC

4.Oltimoestiloatravsdepassagemdemensagens.Programascomsuporteafilasdemensagens,comoaespecificaoJavaJMS,so

exemplodesteestilo.

Pareumminutoeresponda:QualoestilorequeridonoexemplocitadodeinteroperabilidadecomoMicrosoftExchange?(Respostanofinaldeste

artigo).

Almdosestilos,podemosclassificarainteroperabilidadeemnveis,listadosaseguir:

1.Nveldedados.Comointegrarfontesdedadosrelacionaisouemoutrosformatosecomoreduzirasuaredundncia?Aintegraoemnvelde

dadosfocanamovimentaodedadosentreaplicaescomoobjetivodecompartilharomesmodadoentreaplicaesdiferentes

2.NveldeInterfacesdeAplicao(API).ComointegrarAPIsdeaplicaoemoutrastecnologiasquenosejamJava?AintegraoviaAPIs

passapelachamadadefunesatravsdeprotocolossncronos(RPC)ouassncronos(mensagens)

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 3/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

3.NveldeProcessosdeNegcio.DomniodomundoBPM/SOA,aintegraoemnveldeprocessosdenegciofocanodesenvolvimentode

componentesdealtonvelqueirofornecerinterfacesdealtonvelquepodemserconsideradosservios

4.NveldeApresentao.Popularmenteconhecidoscomomashups,integramaplicaesatravsdeumconjuntodevriosportlets(janelas

visuaisindependentes)queresidememumdeterminadoportal.AFigura1mostraumexemplodeintegraonestenvel.

Figura1.MashupdoInternetGoogle.Diferentesaplicaesforamintegradasaquiemnveldecamadadeapresentao.Podemosverno

exemploacimablogsdediferentesautores,oGoogleTalkemesmoumaaplicaodeprevisodetempo.

Umnovoteste:QualonvelassociadoaoexemplocitadodeinteroperabilidadecomoMicrosoftExchange?(Respostanofinaldesteartigo).

Finalmente,devemosconsiderartambmaquestodatopologiadaaplicao.Doismodelosclssicosexistem:

1.ComunicaoPontoaPonto.Aintegraopontoapontotambmchamadadeintegraooportunistaeocorrediretamenteentredois

sistemasquequeiramconversar.QuandoconectamosumaTVdiretamenteaumDVD,usamosintuitivamenteestatopologiadeintegrao

2.ComunicaoHubandSpoke.TopologiapopularizadapelosESB(umtipoparticulardeHubandSpoke),estatopologiausaummediador

centralparacomunicarcadaaplicao(Spoke)quedesejeconversar.Nenhumaaplicaoconversadiretamentecomoutraaplicao.Istopode

parecerconfusoecomplexo,masconsidere(nasuasaladeTVdossonhos)comovocpoderiaintegraradequadamenteumatelevisodigital,um

computador,umsistemadesom7.1,umDVD,umvdeocassete(paraasfitasdeformaturadasuafamlia),umprojetoreumvdeogamedeltima

gerao.claronesteexemploqueusarumaparelhocentralparagerirtodasasconexesmaisvantajoso.OHomeTheaterumhubnasua

saladeTVdossonhosepodeligartodososfiosdosaparelhos(Figura2).

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 4/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Figura2.Atopologiadecomunicaopontoapontoligaduasaplicaesdiretamente.Atopologia HubandSpokeusaumbarramentocentral

(Hub)paraligarmltiplosclientes.

Maisumdesafio:QualatopologiaassociadaaoexemplocitadodeinteroperabilidadecomoMicrosoftExchange?(Respostanofinaldesteartigo).

Dica:Coleteosrequisitosarquiteturaisdeinteroperabilidadenasuaaplicao.Paracadarequisitoarquitetural,definaoestilo,nveletopologia

associada.

[subtitulo]TecnologiasdeInteroperabilidadeJava[/subtitulo]

Umchefedeveempregartticasvariadasdeacordocomostiposdeterreno,SunTzu.

AplataformaJavafoidesenhadaeevoludanosltimosanoscomumgrandesuporteparainteroperabilidade.Considerecomoexemplosimplesa

especificaoJDBC.Projetadadeformaeleganteparasuportaraportabilidadedesistemasoperacionaisebancosdedados,elaumexemplo

quesuportaaintegraodoestilo(verTabela1)bancodedadoscompartilhados,emnvel(verTabela2)dedados.

Diversasoutrastecnologiasforamprojetadasparasuportaroutrosestilosenveis.ApresentamosalgunsexemplosnasTabelas1,2e3,semnos

ateraosdetalhesdaAPI,quepodemserencontradosemartigosanterioresdarevistaJavaMagazine.

EstilodeInteroperabilidade APIs/TecnologiasJava

TransfernciadeArquivos StreamsI/OSoquetes

BancosdeDadosCompartilhados JDBC

ProcedimentosRemotos(RPC) Servlets,JCA,WebServices/SOAP

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 5/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

PassagemdeMensagens JMS,WebServices/SOAP

Tabela1.TecnologiasJavaparasuportarestilosdeinteroperabilidade.

NveisdeInteroperabilidade APIs/TecnologiasJava

NveldeDados JDBC

NveldeInterfacedeAplicao Servlets,EJB/RMI,JCA,WebServices/SOAP,JavaMail

NveldeProcessosdeNegcio JBI(JavaBusinessIntegration),OpenSOASCA

NveldeApresentao Portlets

Tabela2.TecnologiasJavaparasuportarnveisdeinteroperabilidade.

TopologiasdeInteroperabilidade APIs/TecnologiasJava

Pontoaponto Servlets,WebServices/SOAP,EJB/RMI

HubandSpoke JBI,OpenSOASCA

Tabela3.TecnologiasJavaparasuportartopologiasdeinteroperabilidade.

AsTabelas1,2e3mostramquefundamentalescolheradequadamenteattica(tecnologia)conformeotipodeterreno(estilo,nvelou

topologia).

Dica:NouseastecnologiasJavanoprimeirocombateaumproblemadeinteroperabilidade.Atecnologiasecundriaedeveserconsiderada

apenasapsacorretacoletaedesenvolvimentodosrequisitosarquiteturaisedefiniodosestilos,nveisetopologia.

[subtitulo]PadresdeIntegraodeAplicaes(EIP)[/subtitulo]

Umsoberanoiluminadoestudadeliberadamenteasituaoeumbomgenerallidacuidadosamentecomela.Senovantajoso,nuncaenviesuas

tropassenolherendeganhos,nuncautilizeseushomenssenoumasituaoperigosa,nuncaluteumabatalhaprecipitada.,SunTzu.

Conhecemosoinimigo.Conhecemosasferramentas.Entretanto,agrandechavenainteroperabilidadedeaplicaessabercomoaplicaras

tecnologiasJavaanossofavor.Nesteaspecto,introduzimosoconceitodeumpadrodeintegraodeaplicaes.

UmpadroEIPumasoluoprovadaaplicvelaocontextodeintegraodeaplicaescorporativas.

OlivroEnterpriseIntegrationPatterns[1]apresenta65padresdeintegraodesistemas.Cadapadroresolveumproblemaparticularno

contextodeintegraodeaplicaescorporativasepodeserusadojuntocomoutrospadresEIPparasolucionarumproblemadomundoreal.

Consideremos,parailustraroconceito,umproblemasimilaraocitadonocomeodesteartigo.Poderamosformalizarosrequisitosarquiteturaisda

seguinteforma:

R1.AaplicaoACMEdeveinteroperarcomoservidorMicrosoftExchange2007atravsdeprotocolosSMTPparaenviodeemails.

R2.Otransporteparainteroperabilidadecomoservidordeemailsdevegarantirconfidencialidadeeintegridadedasinformaesenviadasatravs

dousodoprotocoloSMTPsobreSSL.

AolermosolivroEAIPatterns,capturamosalgunspadrescandidatosparaoproblemaacima.EstespadressodocumentadosnaTabela4.

PadroEAI Perguntaendereada

Comoeupossointegrarmltiplasaplicaesdeformaqueelaspossamtrocarinformaes?

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 6/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Messaging

Comoumaaplicaosecomunicacomoutraatravsdemensagens?

MessageChannel

Comoumaaplicaoseconectaaumcanaldemensagensparaenviarerecebermensagens?

MessageEndpoint

Comomensagenspodemserusadasparatransferirdadosentreaplicaes?

DocumentMessage

Comomensagenspodemserenviadasparaoutrosistemaseooriginadornotemtodasasinformaesnecessrias?

ContentEnricher

Comoumconsumidordemensagens(ex:MicrosoftExchange)podeselecionarquetiposdemensagenseledesejareceber.

SelectiveConsumer

Tabela4.PadresEAIusadospararesolverainteroperabilidadecomoMicrosoftExchange.

OprimeiropadrodaTabela4nosdizqueasoluoprovavelmenteserresolvidacomummecanismoassncrono.Dadasasrestriesde

protocolosnorequisitoR1,vemosqueaespecificaoJavanossugereaespecificaoJavaMail.

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 7/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Osegundoeterceiropadresnosdizqueteremosumcanalparaoenvioerecebimentodeinformaeseestecanaldeveseconectaraum

sistemadeemailcomooMicrosoftExchange.AoexaminarmosaclasseTransport,daAPIdoJavaMail,veremosqueelapossuiestafuno.

Naturalmente,umMessageEndpointrequerumaimplementaodaespecificaoJavaMail.AssumamosnesteexemploqueusamosoJBossAS

paraestasoluo.

Oquartopadronosdizquedevemosenviarumdocumentotextual.AoobservamosnovamenteaclasseTransport,notamosqueelapossuium

mtodosend()queesperacomoargumentoumobjetodotipoMessage,quemodelaumDocumentMessage.

Oquintopadroendereaosrequisitosdesegurana.Umenriquecedordecontedopermiteadicionarmensagemoriginalinformaes

adicionais.Nonossocaso,estasinformaesadicionaisserodesegurana,quenospermitequeamensagemsejaentregueemservidoresque

operemsobreprotocoloSSL.AoexaminarmosahierarquiadaclasseTransport,vemosaclasseSMTPSSLTransport.Estaclassefornecea

funcionalidadedeenviodeemailssobrecanalseguro(confidencialidadeeintegridade).

OltimopadroestforadoescopoJava,maseleindicaquealgumdeveconfiguraroservidorExchangeparanoaceitarmensagensSMTP,

massomentemensagensSMTPsobreSSL.OpadroConsumidorSeletivorepresentaestemecanismo.

SeconectarmosospadresEIPteremosodesenhodanossasoluoapresentadonaFigura3.

Figura3.EsquemadasoluodeintegraocomoMSExchangeServer

Otrechodecdigoabaixomostraestaspeasconectadas.

Listagem1.FragmentodeCdigoparaEnviodeEmail.


Security.addProvider(newcom.sun.net.ssl.internal.ssl.Provider());
Propertiesprops=newProperties();
props.put("mail.smtp.host",SMTP_HOST_NAME);//Servidordeemail
props.put("mail.smtp.auth","true");//Requerautenticacao
props.put("mail.debug","true");
props.put("mail.smtp.port",SMTP_PORT);//Portodoservidordeemail
props.put("mail.smtp.socketFactory.port",SMTP_PORT);
props.put("mail.smtp.socketFactory.class",//EnriquecedordamensagemcomSSL
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback","false");

Sessionsession=Session.getDefaultInstance(props,newjavax.mail.Authenticator(){
protectedPasswordAuthenticationgetPasswordAuthentication(){
returnnewPasswordAuthentication("username","password");
}
});

Messagemessage=newMimeMessage(session);
InternetAddressaddressFrom=newInternetAddress(from);
message.setFrom(addressFrom);
message.setSubject(OLEIP);
message.setText(PadresEIPorganizamecomunicamassoluesJava!);
Transport.send(message);
...

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 8/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

EstefragmentodecdigopodeserentendidocomoarealizaodoesquemticodaFigura3.

Paraumproblemasimples,naturalmente,podemosatirintuitivamenteparaumatecnologiaouumcdigo,masissocomocomearacorreruma

maratonasempreparaofsicaadequada.Ospadresrepresentamestapreparaofsica.Elespermitemquevocpensenosaspectosda

soluosemseateraosdetalhesdatecnologia.AoescolheremosumatecnologiaJavadeterminada,elaseraconseqnciadospadres,que

naturalmentedevemsuportarosrequisitosarquiteturaisespecificados.

Paraproblemascomplexosdeintegraodomundoreal,entretanto,devemosconhecereaplicarospadresEIP.Outraexcelentefontedepadres

olivroPOSA[2],quecontmmaisdeumacentenadepadresarquiteturais,entreelesdiversospadresEIP.

ComoexemplodepadresEIPusadosparamodelaraplicaescomintegraocomplexa,ditaaplicaesEAI,poderamoscitarospadres

descritosnaTabela5.

PadroEAI Comentrios

MessageBroker CapturaaessnciadassoluesESBdemercado.NotequeotermoESB,emsua

definiooriginal,umpadroouestiloarquiteturalenoumatecnologiaou

especificao.

ProdutoscomooJBossESBouApacheServiceMixpodemservistoscomoprodutos

queimplementamopadroEIPMessageBroker.

ProcessManager CapturaaessnciadassoluesBPMSdemercado.OpadroProcessManager

permitequeumaintegraocommltiplasfontesdedadoseaplicaespossamser

integradasatravsdeumfluxodetrabalhoarbitrrio.

ProdutoscomooJBossBPMouIBMWebSphereProcessServersoexemplosdeste

padro.

AlinguagemBPEL(BusinessProcessExecutionLanguage)umexemplode

linguagemusadaparadescreverosfluxosdopadroProcessManager.

Normalizer Padrousadoparaimplementarainteroperabilidadecommltiplosprotocolosem

aplicaesESB.

UmprodutocomooJBossESB,porexemplo,suportaFTP,HTTP,SMTP,HTTPSe

diversosoutrosformatosparainteroperaraplicaes.

Nointeriordasuasoluo,vemosqueopadroNormalizerfoiusadoparasuportarisso.

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 9/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

Tabela5.PadresEAItipicamenteusadosemaplicaesBPM/SOA/ESB.

[subtitulo]UmProcessoparaInteroperarAplicativos[/subtitulo]

Seumgeneralsabeolugareahoradeumabatalha,elepodeconduzirassuastropasparaatmilmilhas,mesmoparaumabatalhadecisiva.Se

elenosabenemolugarnemahoradeumabatalha,entooseuladoesquerdonopodeajudarasuadireitaeaaladireitanopodesalvara

esquerdaatropadafrentenopodeauxiliaratropadaretaguarda,nematropadaretaguardapodeajudaratropadafrente.,SunTzu.

Conhecerumprocessoparasolucionarproblemastcnicosfundamental.Saberahoraeolugardasaesfundamental,especialmentenos

mecanismosarquiteturaisdeinteroperabilidade.

PodemosresumiroprocessodeaplicaodasestratgiasepadresEIPdaseguinteforma:

1.Coleteosrequisitosarquiteturaisdeinteroperabilidade.Umaboafonteparaissosoatoressecundriosemdiagramasdecasosdeuso.Eles

normalmenterevelamsistemaseaplicaesquedevemserintegrados.Especifiquedetalhadamenteestesrequisitosparaquenoexistamdvidas

sobreasversesdeservidores,topologiaseprotocolosexatosaseremutilizados

2.Desenvolvasoluesindependentesdetecnologiaparacadarequisitoarquiteturaldeinteroperabilidade.Paraisso,identifiqueosestilos,nveise

topologiasdecadarequisitoarquiteturaldeinteroperabilidade.ExpresseentoasuasoluoatravsdospadresEIPencontradosem[1]e[2]

3.Estudeosexemplos(maiscomplexosealmdoescopodesteartigo)disponveisem[1]

4.Paracadasoluoindependentedetecnologia,escolhaastecnologiasJavamaisadequadaspararesolveroseuproblema.UseasTabelas1,2

e3comopontodepartidaeentoestudeasespecificaesdecadatecnologiaapresentadaeprodutosJavaquesuportemestasespecificaes

5.Proveasuasoluo.Talvezadicamaisvaliosa,asuasoluodeveserprovadacomumcdigorealequepossacapturarumcenriode

utilizaodoseusistema

6.Testeasuasoluoemambienteidnticoaodeproduo.Envolvaousurioefaatestesreaisesignificativos,poisesteopassomais

complexo.Aplicaesnotestadasadiamriscosepodemlevaraproblemasgravesnofimdoprojeto.Emcenriosmaiscomplexosondevocno

temacessoaoaplicativosendointeroperado,considereousodeferramentascomoojMOCKouEasyMock.Recomendo,nesteparticular,o

excelenteartigoMocksArentStubs,deMartinFowler,eoartigoTestandocomMocksdeformafcil,Edio62

7.Garantaquevocrealizouospassos15nocomeodoprojeto.Requisitosdeinteroperabilidadesocomplexosedevemserendereadosno

INCIOdoprojeto.SevocusaumprocessoderivadodoUP(UnifiedProcess),ositens15paratodososrequisitosarquiteturaisdevemestar

finalizadosato3/10temporaldoseuprojeto.Sevocusaprocessosgeis,endereceestesrequisitosnosprimeirossprints/iteraes.

[nota]DiagramasdeCasosdeUso

Diagramasdecasosdeusosovisualizaesdenegciousadasporanalistasderequisitosparaoauxlionacoletaeentendimentoderequisitos.

Estesdiagramaspossuematualmentegrandepopularidadenacomunidadedeanalistasepodemserferramentaspoderosasparaacoletade

interoperabilidades.Nonossoexemplo,poderamosrepresentarainteroperabilidadedoenviodoemailcomoseguintediagrama.

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 10/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

NotequenestediagramaoMicrosoftExchangesuportaaoperaodeenviodeemaileporissochamadodeAtorSecundrio.[/nota]

[nota]ProcessoUnificado(UP)

OUP(UnifiedProcess)umprocessoparadesenvolvimentodesoftwarebaseadonoconceitodeumprojetocentradoemarquiteturasdesoftware.

Emtermossimplesissosignificareduzirosriscostcnicosdoprojetonassuasfasesiniciaisatravsdoataqueaosrequisitosmaisprioritriose

complexosatravsdeprovasdeconceitoquebusquemmitigareeliminarestesriscos.

OUPpossuidiversasvariantescomoporexemploopopularIBMRationalUnifiedProcess,oEnterpriseUnifiedProcessdeScottAmblerouo

processogilOpenUP.[/nota]

[subtitulo]Concluses[/subtitulo]

Esteartigoapresentou,deformaintrodutria,princpiosquedevemnortearaplicaesquerequeremintegraesdesistemas.Colocoabaixoum

guiadeestudoparaosmaisinteressadosnoassunto.

1.Certifiquesedeconhecerosfundamentosdeintegraodesistemas.Estilos,topologiaseespecificaessofundamentaiselivroscomo[1]e

[2]sofontesfundamentais

2.EstudeantecipadamenteasferramentaseAPIsJavaparasuportarosestilosetopologiasacima

3.Nuncaacrediteemtecnologiasquenoforamprovadasnoseuprojeto.Negocietempodoseugerentedeprojetoparaprovarconceitoserealizar

testesdeintegrao.Sevocnorealizarestanegociaonocomeodoprojeto,espereestresses,noitesmaldormidaseproblemasnaentrega

doseucdigo

4.LembresequeomundonocentradoemJava.VocprecisarconhecerpeaseprotocolosalmdalinguagemJavaparasetornarumbom

arquitetodeintegraes

5.Testeoseucdigodeintegrao.Jobserveidiversosproblemasemprojetosdevidoaprocessosdetestesdeintegraofalhoseque

aconteceramliteralmentenaentregadoprojeto.

OleitorcuriosodeveternotadoousodeconesdiferenciadospararepresentarpadresEIP.Estesconesestodisponveisgratuitamenteem

formatoVisionoprprioportaldeGregorHohpe(EAIPatterns).

Paraoleitoraindamaiscuriosoquebuscaaquiasrespostasparaasperguntasfeitasaolongodoartigo,oproblematemcomosoluo:oestilo

PassagemdeMensagens,integraoemNveldeAplicaoetopologiaPontoaPonto.

Boasintegraes!

[nota]Links

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 11/12
06/04/2017 ArtigoJavaMagazine69EstratgiasdeIntegraodeAplicaesJavaEE

martinfowler.com/articles/mocksArentStubs.html

DescreveoconceitodeMocksequeelepodeserusadoparasimularaplicaesexternasnocontextodeprojetosdeintegraode

aplicaes.

eaipatterns.com/

SitecentraldospadresEIPequeresumemuitomaterialinteressantesobreintegraodeaplicaes.

eaipatterns.com/downloads.html

RecursossobreEIPeemparticularostencil(plugin)MicrosoftVisioparadesenharEIP.

epf.eclipse.org/wikis/openup/

OpenUP.ProcessodedesenvolvimentogratuitobaseadonosconceitosdoUP.

Livros

[1]EnterpriseIntegrationPatterns,GregorHohpe,AddisonWesley,2003

[2]PatternOrientedSoftwareArchitecturevol05,Buschmanneal.,Wileyandsons,2007

[3]AArtedaGuerraSunTzu,SculoIVA.C.[/nota]

por Marco Aurlio (0) (0)

Ficou com alguma dvida?

Posteaquisuadvidaoucomentrioquenossaequiperesponderomaisrpidopossvel.

Assine | Faleconosco | App

HospedagemwebporPorta80WebHosting

http://www.devmedia.com.br/artigojavamagazine69estrategiasdeintegracaodeaplicacoesjavaee/12887 12/12