Introduo ao Openbus Tecgraf PUCRio Setembro de 2013
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, Mac. OSX 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 Open. Bus • 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 • 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 Open. Bus fornece SDKs nas seguintes linguagens: • C++, C#, Java e Lua • O SDK implementa o protocolo de acesso do Open. Bus • 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 Open. Bus
Versionamento • O Open. Bus 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 Open. Bus 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
- Slides: 29