versão 1 - julho/2013 tecgraf puc-rio novembro de 2013 introdução ao openbus
TRANSCRIPT
versão 1 - julho/2013
Tecgraf PUC-RioNovembro de 2013
Introdução ao OpenBus
versão 1 - julho/2013
Conteúdo
• O que é?• Motivação• Requisitos• Serviços básicos• Governança• SDKs• Tecnologias envolvidas
versão 1 - julho/2013
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).
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
Requisitos
• Flexibilidade• Desempenho• Apoio à integração
versão 1 - julho/2013
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
versão 1 - julho/2013
Requisitos - Desempenho
• Eficiência na transferência de grandes volumes de dados
• Escalabilidade para grandes volumes de mensagens
versão 1 - julho/2013
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
versão 1 - julho/2013
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)
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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)
versão 1 - julho/2013
Visão de uma Integração
versão 1 - julho/2013
Visão de uma Integração
versão 1 - julho/2013
Visão de uma Integração
versão 1 - julho/2013
Visão de uma Integração
versão 1 - julho/2013
Visão de uma Integração
versão 1 - julho/2013
Visão da Arquitetura
versão 1 - julho/2013
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
versão 1 - julho/2013
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• Representação única para as aplicações distribuídas que
participem do barramento, independente de linguagem• 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
versão 1 - julho/2013
Suporte ao Desenvolvimento (SDK)
• Para desenvolver serviços ou clientes, o OpenBus fornece SDKs nas seguintes linguagens:• C++, C#, Java e Lua
• A biblioteca implementa o protocolo de acesso do OpenBus• Implementa também algumas otimizações
• O SDK fornece, além da biblioteca, um utilitário guiado a facilitar os usos mais comuns (Assistente)
• Neste curso, veremos o uso do SDK C# para desenvolvimento de clientes e servidores integrados ao barramento OpenBus
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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
versão 1 - julho/2013
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