Tecgraf PUC-Rio
Setembro de 2013
Introdução ao Openbus
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 (POSIX-compliant, 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
Serviçode
Diretório
Clientedo
ServiçoServiço
1. Serviço se registra no diretório
2. Cliente procura detalhesdo serviço no diretório
3. Cliente interage com o serviço
Arquitetura Orientada a Serviço (SOA)
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
Top Related