Introdução ao Openbus
Tecgraf PUC-Rio
Setembro de 2013
Conteúdo
•
•
•
•
•
•
•
O que é?
Motivação
Requisitos
Serviços básicos
Governança
SDKs
Tecnologias envolvidas
O que é?
• Uma arquitetura aberta e orientada a serviços
(SOA) para integrar dados e aplicações
heterogêneas.
• Essas aplicações podem estar escritas em
diferentes linguagens e plataformas (POSIXcompliant, Windows, MacOSX e outras).
Motivação
• Múltiplos sistemas permeiam diferentes
fases dos fluxos de trabalho
• Dados volumosos e operações complexas
• Inviabilidade de uso de um único sistema
• Necessidade de troca de dados entre
sistemas
• A seguir, exemplos de integrações comuns
Motivação – Integração de Sistemas
• Integração externa
• Exemplo:
•
•
•
Exportação de arquivos no sistema origem
Importação de arquivos no sistema destino
Reconstrução de atributos e/ou informações perdidas
no processo
• Depende dos formatos reconhecidos pelos
sistemas envolvidos
• Exige esforço manual a cada operação
• Suscetível a erros na importação
Motivação – Integração de Sistemas
• Integração direta
• Uso de funcionalidades explícitas de integração
construídas nos sistemas
• Melhor qualidade na integração e menor
suscetibilidade a erros
• Exige codificações específicas em cada sistema
para integrar com os demais
• Ordem quadrática de “pontes” para
comunicação
Motivação – Integração de Sistemas
• Integração via serviços
•
•
•
•
Definição de padrões de dados e operações
Descoberta de serviços em tempo de execução
Independência de linguagem e arquitetura
Também oferece a melhor qualidade e menor
suscetibilidade a erros
• Não exige codificações específicas em cada
sistema para integrar com os demais
• Apenas uma ponte de comunicação para cada
sistema integrado
Requisitos
• Flexibilidade
• Desempenho
• Apoio à integração
Requisitos - Flexibilidade
• Arquitetura aberta e extensível a diferentes
domínios
• Compatibilidade com múltiplas linguagens
• Suporte a múltiplas plataformas
• Suporte a extensibilidade independente
Requisitos - Desempenho
• Eficiência na transferência de grandes
volumes de dados
• Escalabilidade para grandes volumes de
mensagens
Requisitos - Integração
• Transferência de dados estruturados e
adequados ao domínio
• Mecanismo de catálogo e busca por
aplicações
• Suporte a mecanismos de autenticação e
autorização
Arquitetura Orientada a Serviço (SOA)
Serviço
de
Diretório
2. Cliente procura detalhes
do serviço no diretório
Cliente
do
Serviço
1. Serviço se registra
no diretório
3. Cliente interage com
o serviço
Serviço
SOA
• O que é?
– Padrão de referência para a implementação de
soluções de integração em que aplicações
compartilham dados e funcionalidades sob a forma
de serviços
• Principais características:
– Baixo acoplamento entre provedores e consumidores
– Linguagem neutra para descrição dos serviços
– Relação dinâmica entre consumidores e provedores
Padrão CORBA
• Especificado pela OMG
• Infraestrutura para o desenvolvimento de aplicações
distribuídas em ambientes heterogêneos
• Tecnologia madura, comprovadamente estável e
eficiente
• Independência de plataforma e linguagem de
programação
• Especificação de interfaces de serviço em uma
linguagem neutra (IDL)
• Transporte eficiente de diversos tipos de dados,
inclusive dados binários
Proposta OpenBus
• Arquitetura SOA
• Tecnologias CORBA e SCS
• Serviços básicos
• Controle de acesso (autenticação e identificação)
• Registro de ofertas (catálogo de serviços)
• Comunicação direta ponto a ponto
• Padronização de serviços de dados e
colaboração (serviços adicionais)
Visão de uma Integração
Visão de uma Integração
Visão de uma Integração
Visão de uma Integração
Visão de uma Integração
Visão da Arquitetura
Governança
• O objetivo do mecanismo de governança é
estabelecer um controle dos membros (usuários e
aplicações) do barramento e de quais serviços esses
membros podem prover.
• Cadastro de Categorias
• Cadastro de Entidades
• Cadastro das interfaces dos serviços exportados no
barramento
• Cadastro das autorizações de ofertas de serviços
CORBA e SCS
• O Openbus utiliza CORBA como
middleware de comunicação e distribuição
das aplicações
• Mecanismo de interceptação de CORBA é usado
para garantir a autenticação e fornecer segurança
nas requisições
• Serviços são componentes SCS
• Um serviço é um componente que exporta uma ou
mais facetas (interfaces)
• As facetas dos componentes são definidas usando
IDLs (linguagem neutra)
• Componentes podem especificar seus requisitos de
integração através de receptáculos
Suporte ao Desenvolvimento
• Para desenvolver serviços ou clientes, o OpenBus
fornece SDKs nas seguintes linguagens:
•
C++, C#, Java e Lua
• O SDK implementa o protocolo de acesso do
OpenBus
•
Implementa também algumas otimizações e
facilitadores como caches e renovação de lease
• São fornecidas duas APIs, uma completa e outra
guiada aos usos mais comuns (Assistente)
• Neste curso, veremos o uso do SDK Java para
desenvolvimento de clientes e servidores integrados
ao barramento OpenBus
Versionamento
• O OpenBus oferece suporte ao protocolo de
sua versão atual e da imediatamente anterior
• Atualmente versões 2.0.x.y e 1.5.w.z são
suportadas
• Versionamento com quatro dígitos
(A.B.C.D)
• A.B: major version (versão do protocolo)
• C: minor version
• D: patch version
Versionamento
• Isso resulta em impacto zero na atualização
do barramento para a próxima versão
• Caso todos os clientes já estejam trabalhando na
versão atual
• Integrações também não são afetadas caso
apenas uma de suas partes atualize para a
nova versão
• Ou seja, não é necessário que todas as partes
atualizem o SDK do OpenBus ao mesmo tempo
Versionamento
• Caso haja diferenças no nível de segurança
dos protocolos (como entre o 1.5 e o 2.0), a
melhoria só será aproveitada quando todos
evoluírem para a nova versão
Melhorias da Versão 2.0
• Segurança:
•
•
•
•
Criptografia sobre dados secretos de autenticação
Delegação não baseada em confiança
Impedimento de personificação
Provimento de informações para realização de
auditorias
• Governança e Administração:
•
•
•
•
Maior número de informações sobre ofertas
Capacidade de gerência sobre logins
Revisão do log do barramento
Correção do problema de ofertas “zumbi”
Melhorias da Versão 2.0
• Revisão da API:
•
•
•
•
Remodelagem da Biblioteca de Acesso
Inclusão do Assistente
Possibilidade de multiplexação de conexões
Revisão e definição de conceitos
Download

Integração - Tecgraf JIRA / Confluence - PUC-Rio