O documento discute os desafios e soluções de integração de software, mencionando a necessidade de integrar sistemas desenvolvidos por diferentes fabricantes ou com tecnologias diferentes. Apresenta alguns dos principais desafios da integração como a limitada capacidade de controle sobre as aplicações e a fragmentação causada por novas tecnologias. Discute também diferentes estilos de integração como serviços web, replicação de dados e arquitetura orientada a serviços.
1. Integração de software
soluções e estilos
Universidade Federal de Goiás
Prof Leonardo A Alves
2. Integrando para resolver
problemas
• Necessidade de Integração
• Software de diferentes fabricantes;
• Software desenvolvido com tecnologias diferentes;
• Software desenvolvido com necessidades governamentais ou
legais.
3. Desafios da Integração
• Integração pode significar mudanças nas politicas
coorporativas. Cada aplicação é agora parte de um fluxo global
de aplicações e serviços integrados;
• Os esforços de integração normalmente têm implicações de
longo alcance sobre o negócio; Uma solução de integração
que falha pode custar milhões de dólares em negócios
perdidos, ordens de pagamentos erradas e clientes
insatisfeitos.
4. Desafios da Integração
• Quantidade limitada de “controle” que os desenvolvedores de
integração normalmente têm sobre as aplicações a serem
integradas.
• O advento do XML, XSL e Web sevices certamente marcam o
avanço mais significativo de padrões baseados em
características de uma solução de integração. No entanto, o
boom em torno de serviços da Web também tem dado
motivos para nova fragmentação do mercado, resultando em
um turbilhão de novas "extensões" e
"Interpretações" das normas.
5. Desafios da Integração
• Serviços/Soluções Web abordam apenas uma fração dos
desafios de integração.
• A mistura de tecnologias e a natureza distribuída de soluções
exige um conjuntos de habilidades que não muitas vezes
combinam gestão e tecnologia.
6. O que integrar?
• Portais de Informação
• Replicação de Dados
• Funções compartilhadas de Negócios
• Arquiteturas Orientadas a Serviços
• Processos distribuídos de Negócios
• Integração Business-to-Business(B2B)
7. Exemplo comum de Integração:
Portal de aplicações empresariais
rodando na Web.
10. Problemas comuns
• Forte dependência entre módulos;
• Manutenabilidade comprometida;
• Mais de um elemento integrador conjugado;
• Incapacidade de manutenção on-line do serviço;
• ...
12. Como foi a resolução das
agendas?
• Trabalho de agendas, qual solução você tomou?
• Qual foi a melhor? Vamos avaliar?
13. Soluções Possíveis
• Há muitas maneiras de implementar a replicação de dados.
Por exemplo, alguns fornecedores de banco de dados
constroem funções de replicação no banco de dados,
podemos exportar os dados em arquivos e re-importá-los para
outro sistema, ou podemos usar middleware orientado a
mensagem para o transporte de registros de dados dentro de
mensagens.
14. Solução: Função de negócios
compartilhada
• Da mesma forma que muitas aplicações de negócio armazenar
dados redundantes, eles também tendem a implementar a
funcionalidade redundante.
• Conferência de CPF, averiquação de cheques, serviços de
avaliação de informação.
16. Solução: Função de negócios
compartilhada
• Obs.:uma função é geralmente mais invasiva do que o
carregamento de dados na base de dados, e pode requerer
programação direta no código, por isso é menos usada.
19. Serviços Orientados a
Arquitetura
• Funções de negócios compartilhados são muitas vezes
referidos como serviços.
• Iniciamente, as aplicações precisam de uma lista centralizada
de todos os serviços disponíveis. Em segundo lugar, cada
serviço necessita descrever a sua interface de tal maneira que
uma aplicação possa "negociar" sua comunicações com base
no serviço. Estas duas funções, a descoberta de serviços e
negociação, são os principais elementos que compõem uma
arquitetura orientada a serviços.
21. Processo Distribuído de
Negócio
• você poderia desenvolver serviços que compartilhem todas as
funções empresariais relevantes e então codificar o processo
de negócio dentro de um aplicativo que acessa todos os
serviços através de uma SOA.
22. Integração B2B
• Em muitos casos, as funções de negócios podem estar
disponíveis a partir de fornecedores externos ou parceiros de
negócios.
24. Integração B2B
• No entanto, a comunicação através da Internet ou outra rede
normalmente suscita novas questões relacionadas protocolos
de segurança. Além disso, formatos de dados padronizados
são extremamente importantes.
25. Acoplamento Fraco
• Um grande exemplo de acoplamento forte é uma invocação
de método local.
• Muitas abordagens preferem comunicações simple, com troca
de mensagens, tais como o RPC e RMI, suportado por diversos
frameworks.
26. Acoplamento Fraco
• "os objetos que interagem em um sistema distribuído precisa
ser tratado de maneiras que são intrinsecamente diferentes
dos objetos que interagem em um único espaço de endereço"
[Waldo].
Waldo, J., Wyant, G., Wollrath, A., and Kendall, S., A Note on Distributed
Computing, Technical Report SMLI TR-94-29, Sun Microsystems Laboratories,
November 1994, http://citeseer.nj.nec.com/waldo94note.html
27. Solução de integração com
Acoplamento fraco
• Devemos ter a capacidade de mover dados de um sistema
para outro, sem perceber as diferenças no formato de dados,
encaminhar os dados para os sistemas necessários e
monitorizar o desempenho da solução.
29. Solução de integração com
Acoplamento fraco
• As soluções de integração pode rapidamente tornar-se
complexas, pois lidam com múltiplas aplicações, formatos de
dados, canais de roteamento e de transformação. Todos esses
elementos podem ser distribuídos em várias plataformas
operacionais e podem estar dispersas geograficamente. Para
se ter alguma idéia do que está acontecendo dentro do
sistema, precisamos de uma função de gerenciamento de
sistemas. Este subsistema controla o fluxo de dados, garante
que todos os aplicativos e componentes disponíveis e as
condições de relatórios de erros em um local centralizado.
30. Estilos de integração (cap2)
• Integração de Aplicação é a tarefa de fazer aplicações
separadas trabalhar juntos para produzir um conjunto
unificado de funcionalidades.
• Todas as empresas por menor que sejam na atualidade
necessitam trabalhar com algum método que integre seus
sistemas aos de outras empresas, fornecedores ou governo.
31. Critérios de Integração
• Acoplamento de aplicação - Mesmo aplicações integradas
devem minimizar suas dependências entre si de modo que
cada uma possa evoluir sem causar problemas para a outra.
• Simplicidade na Integração - Ao integrar aplicações em uma
empresa, os desenvolvedores devem se esforçar para
minimizar a quantidade de código de integração necessário.
32. Critérios de Integração
• Tecnologia de integração - técnicas de integração diferentes
requerem softwares especializados e hardware novo ou mais
robusto.
• Formato de dados - As aplicações integradas devem
padronizar o formato dos dados para intercambio, ou deve ter
uma tradutor intermediário para unificar aplicações que
insistem em diferentes formatos de dados.
33. Critérios de Integração
• Atualização dos dados - Integração deve minimizar o tempo
na atualização de dados entre as aplicações.
• Dados ou serviços - As aplicações integradas não podem
simplesmente compartilhar dados, eles devem compartilhar a
funcionalidade de tal forma que cada aplicativo possa chamar
a funcionalidade nos outros.
34. Critérios de Integração
• Assincronia - processamento no computador é geralmente
síncrono, de modo que um procedimento espera enquanto a
sua subprocedimento executa. Um dado deve estar disponível
quando o procedimento necessitar utilizá-lo. Como ocorre na
memória cache “dirt data”.
35. Opções de Integração
Transferência de arquivos - Faça com que cada aplicação produza
arquivos de dados compartilhados para outras.
Banco de dados Compartilhado – As aplicações armazenam os
dados que deseja compartilhar em um banco de dados comum.
Invocação de Procedure Remoto – Cada aplicação expõe alguns
dos seus procedimentos, para que possam ser invocados
remotamente, através de trocar de mensagens.
36. Opções de Integração
Transferência de arquivos - Faça com que cada aplicação produza
arquivos de dados compartilhados para outras.
Banco de dados Compartilhado – As aplicações armazenam os dados
que deseja compartilhar em um banco de dados comum.
Invocação de Procedure Remoto – Cada aplicação expõe alguns dos
seus procedimentos, para que possam ser invocados remotamente.
Mensagens – Cada aplicação se conectar a um sistema de mensagens
comum, e trocar dados e chama procedimentos usando mensagens.
41. Conclusão
• Mensagens tem o benefício de permitir que as aplicações
sejam muito mais dissociados umas das outras do que em
Invocação de procedimento remoto e transferência de
arquivos.
• Como podemos ver usar as mensagens para integração de
sistemas, há uma série de novas questões a considerar e
práticas que podemos empregar.
42. Exercício
Você foi contratado por uma empresa desenvolvedora de software
que comercializa um sistema de controle e armazena os dados em
um banco de dados em Postgres, como o MER apresentada na
figura 1, e deverá apresentar uma solução para migrar dados de um
banco desconhecido para esse banco, sabendo-se que o banco
desconhecido consegue exportar os dados para xml ou txt (csv). Sua
empresa terá de migrar os dados de um sistema antigo, como parte
do contrato de adesão do sistema. Dê sua solução, imaginando essa
situação, segundo as características da ISO 1471/2000, onde a
arquitetura deve considerar três aspectos: descrição, objetivos e
fundamentação.
44. Moodle
Implemente sua própria solução de migração de dados, considere
a necessidade de se manter funcional os dois sistemas durante o
processo de migração. Enviar o trabalho compactado, com um
descritivo de Arquitetura do seu sistema e esquema de
integração. Entrega 20/04/2012.