Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus

Preview:

Citation preview

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

Recommended