DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Artigo Java Magazine 69 - Estratégias de Integração de Aplicações Java EE

Conheça as estratégias e táticas para você aprender a integrar aplicações Java EE com as melhores práticas de mercado e padrões provados de integração (EAI)






Estratégias de Integração de Aplicações Java EE

Melhores práticas de interoperabilidade Java

Conheça as estratégias e táticas para você aprender a integrar aplicações Java EE com as melhores práticas de mercado e padrões provados de integração (EAI)

De que se trata o artigo:

O artigo apresenta técnicas e práticas provadas de integração de aplicações Java com outras aplicações, sistemas e bancos de dados. Projetos de integração apresentam muitas complexidades técnicas e muitas possibilidades técnicas em Java tais como JMS, JCA, JDBC, RMI, HTTP e SOAP. O artigo mostra como escolher estas tecnologias e como utilizá-las adequadamente através de padrões de integração de aplicações (EIP).

Para que serve:

O artigo é útil para que desenvolvedores possam conhecer os riscos associados à integração de sistemas Java com outros sistemas e aplicar as melhores práticas de mercado e padrões de integração para mitigar e eliminar estes riscos. Projetos com riscos técnicos reduzidos possuem maior garantia de sucesso, maior qualidade, estabilidade e manutenções mais simples e facilitadas.

Em que situação o tema é útil:

Em projetos de TI que requerem integrações de todo tipo, como bancos de dados relacionais, bases de dados em outros formatos, sistemas de filas de mensagens, aplicações legadas em plataformas baixas e altas ou aplicativos como CRM (Customer Relationship Management) e ERP (Enteprise Resource Planning).

Estratégias de Integração de Aplicações Java EE:

Integrar aplicações Java com outros sistemas não é uma tarefa trivial. Para reduzir riscos e manter projetos sob controle, devemos usar práticas provadas de integração de sistemas.

As melhores práticas de integração são denominadas padrões EAI (EAI Patterns) e foram popularizadas por Gregor Hohpe através do seu livro Enterprise Integration Patterns. Estas práticas permitem que um arquiteto ou desenvolvedor escolha as estratégias mais eficientes de integração de sistemas Java com outros sistemas e produza soluções mais perenes e econômicas.

Estas práticas de integração também são fundamentais para empresas que estejam buscando iniciativas SOA e BPM, pois permitem gerir adequadamente a criação e evolução de serviços (ativos) em repositórios de serviços (ESB).

Um processo simples para que você possa aprender a integrar sistemas em projetos envolve os seguintes passos: (1) Coletar os requisitos arquiteturais de interoperabilidade; (2) Desenvolver soluções independentes de tecnologia para cada requisito arquitetural coletado; (3) Estudar os exemplos disponibilizados na referência [1]; (4) Estudar as tecnologias Java mais adequadas para cada requisito (ex: WebServices ou RMI); (5) Implementar os cenários com as tecnologias Java escolhidas; (6) Testar as soluções em ambiente de homologação.

 

Em alguma empresa do Brasil, uma história comum...

Integrar aplicações não é uma tarefa trivial. Protocolos diversos, APIs exóticas, tecnologias e ambientes complexos e cronogramas agressivos são alguns aspectos que desafiam diariamente analistas desenvolvedores Java EE.

Conto aqui uma história que resume estes desafios. Uma equipe necessitava enviar emails de sua aplicação Java. Uma tarefa aparentemente trivial, que muitos desenvolvedores vivem todos os dias. A equipe não possuía experiência com a API JavaMail, mas com a ajuda de um recurso externo a equipe se capacitou e desenvolveu o código necessário para suportar a integração, que neste caso ocorreria com o servidor Microsoft Exchange. Código implementado, testes internos realizados com sucesso e aprovação gerencial. Aparentemente o problema foi resolvido.

A vida real, entretanto, guarda surpresas. Na véspera da semana de implementação, o código foi implantado na empresa do cliente (vamos chamá-la de empresa ACME), mas os casos de uso que requeriam a integração com o Microsoft Exchange não funcionavam. Todos os olhos e atenções (e culpas) foram lançados para o servidor de email da Microsoft. Após a descoberta que o servidor de email do cliente (v2007) estava em uma diferente versão do ambiente interno da desenvolvedora (v2003), modificações no ambiente de desenvolvimento foram realizadas para adequar o servidor. Nenhum resultado positivo foi alcançado. O pânico se instalou!

Mais investigações foram realizadas e a equipe descobriu que o servidor de email de produção não residia na mesma rede do servidor de aplicação do cliente, mas em um distante local remoto (em outra cidade) em um provedor com um acesso controlado por um firewall. O analista de infra-estrutura do cliente não foi questionado o bastante para informar este fato. Para encurtar a história, a equipe descobriu que o envio de emails neste ambiente requeria o uso de certificados e protocolos com garantia de transporte seguro (SMTP sobre SSL). Noites mal-dormidas, um atraso de algumas semanas no cronograma, um cliente relativamente estressado e o desafio foi finalmente vencido.

Que lições podemos aprender com esta história? Enumero algumas abaixo:

·         Certificar que as versões dos ambientes a serem integrados sejam exatamente iguais;

·         Analisar cuidadosamente a topologia, isto é, a organização física do ambiente de produção do cliente. Diagramas UML de implantação são uma ferramenta útil neste aspecto;

·         Analisar os protocolos e requisitos não-funcionais que possam interferir na interoperabilidade;

·         Antecipar testes realizados na plataforma real do cliente.

 

O leitor mais experiente pode questionar as lições aprendidas neste exemplo. “Estas lições são óbvias”. Mas devemos lembrar que senso comum não é prática comum.

Dica: Seja um “Indiana Jones” de aplicações Java na sua empresa. Faça uma arqueologia de software nas aplicações Java da sua empresa e colete os erros e lições aprendidas. Os erros do passado são uma excelente fonte de aprendizado para projetos futuros.

O objetivo deste artigo é mostrar a você como tornar senso comum em prática comum, isto é, evitar erros comuns de integrações de sistemas em projetos e evitar estresses desnecessários. Vamos abordar estratégias e técnicas para organizar o seu trabalho, organizados da seguinte forma nas seções seguintes deste artigo:

"


ATENÇÃO! A exibição deste artigo foi interrompida.

Clique aqui e acesse o Leitor Digital DevMedia para ler este artigo completo.




    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Marco Aurélio De Souza Mendes

É consultor independente de Arquitetura de Software e Engenharia de Software com mais de 16 anos de experiência em projetos de TI. É também professor de pós-graduação dos cursos de Estratégias de Arquitetura de Sistemas do IGTI e Engenharia de Software do IEC/PUC-Minas. Ele mantém artigos diversos s...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03