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