A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida

Apresentações semelhantes


Apresentação em tema: "CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida"— Transcrição da apresentação:

1 CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida

2 2 Objetivos Apresentação Tecnologia CORBAApresentação Tecnologia CORBA Conceitos Básicos e TerminologiaConceitos Básicos e Terminologia Considerações GeraisConsiderações Gerais

3 3 O Problema Necessidade de compartilhamento de informações entre empresas e integração de hardware e software de plataformas diversas de forma a resolver problemas presentes e futuros

4 4 Facilidades A arquitetura CORBA permite: Acesso a recursos computacionais e informações distribuídas a partir de aplicações popularesAcesso a recursos computacionais e informações distribuídas a partir de aplicações populares Tornar dados e aplicações legadas disponíveis como recursos de redeTornar dados e aplicações legadas disponíveis como recursos de rede Atualizar sistemas baseados em rede de forma a refletir novas topologias ou recursosAtualizar sistemas baseados em rede de forma a refletir novas topologias ou recursos

5 5 Integração das Aplicações Integração baseada em um modelo orientado a objetosIntegração baseada em um modelo orientado a objetos –Modelo provê técnicas para análise, projeto e implementação de software que seja extensível, reusável e menos dispensioso para produzir e manter Próxima geração de softwarePróxima geração de software

6 6 Computação Distribuída com Objetos Dois ingredientes essenciais Associação da computação distribuída com um modelo de objetosAssociação da computação distribuída com um modelo de objetos Uso de um corretor (broker)Uso de um corretor (broker)

7 7 Arquitetura Cliente/Servidor

8 8 CORBA Broker

9 9 Computação Distribuída Dois ou mais elementos de software compartilhando informação entre si. Grande parte das implementações de computação distribuída existentes são baseados no modelo cliente/servidor: –software cliente: pedidos –software servidor: informação ou serviço

10 10 Benefícios da Computação Distribuída Uso mais eficiente de recursos computacionais –Compartilhamento de recursos escassos e dispendiosos –Distribuição da carga computacional –Execução de aplicações nos ambientes mais adequados

11 11 Evolução de Sistemas Distribuídos

12 12 Sistemas monolíticos e mainframes A interface com o usuário, a lógica do negócio e a funcionalidade de acesso aos dados estavam todas contidas em uma única aplicação

13

14 14 Arquitetura Cliente/Servidor Parte do processamento realizado por microcomputadores na mesa dos usuáriosParte do processamento realizado por microcomputadores na mesa dos usuários Computação mais acessívelComputação mais acessível Maior poder para os usuáriosMaior poder para os usuários

15

16 16 Desvantagens Funcionalidade de acesso ao banco de dados e lógica do negócio contidas no componente clienteFuncionalidade de acesso ao banco de dados e lógica do negócio contidas no componente cliente Mudanças na lógica do negócio envolvem a substituição dos clientesMudanças na lógica do negócio envolvem a substituição dos clientes Aplicações mais frágeisAplicações mais frágeis

17 17 Arquitetura Cliente/Servidor de Múltiplas Camadas Modelo mais comum são sistemas particionados em três camadas lógicas:Modelo mais comum são sistemas particionados em três camadas lógicas: –interface com o usuário –regras do negócio –acesso ao banco de dados

18

19 19 Vantagens Cliente isolado das mudanças no restante da aplicaçãoCliente isolado das mudanças no restante da aplicação Componentes executáveis menores resultando em maior facilidade na distribuição das aplicaçõesComponentes executáveis menores resultando em maior facilidade na distribuição das aplicações –múltiplos bancos de dados, servidores, distribuição da carga de processamento Maior isolamento entre as camadas da aplicaçãoMaior isolamento entre as camadas da aplicação –mudanças na aplicação não afetam o componente cliente

20 20 Sistemas Distribuídos O modelo de sistemas distribuídos expõe toda a funcionalidade da aplicação como objetos, cada um dos quais pode usar qualquer dos serviços oferecidos por outros objetos do sistema, sendo extremamente flexível e configurável

21 21 Interação entre Objetos Flexibilidade obtida pela adoção da definição de interfaces específicas para cada componenteFlexibilidade obtida pela adoção da definição de interfaces específicas para cada componente A interface de cada componente especifica para os demais quais serviços são oferecidos e como devem ser usadosA interface de cada componente especifica para os demais quais serviços são oferecidos e como devem ser usados Enquanto a interface de um componente se mantiver inalterada sua implementação pode ser radicalmente alterada sem afetar os demais objetosEnquanto a interface de um componente se mantiver inalterada sua implementação pode ser radicalmente alterada sem afetar os demais objetos –P. ex., informação armazenada em bancos de dados relacionais podem ser mudadas para bancos de dados orientados a objetos

22 22 Interfaces Protocolo de comunicação a ser utilizado entre dois componentes de um sistemaProtocolo de comunicação a ser utilizado entre dois componentes de um sistema Descreve que serviços são oferecidos por qual componente e o protocolo para utilizar estes serviçosDescreve que serviços são oferecidos por qual componente e o protocolo para utilizar estes serviços Para objetos, a interface pode ser entendida como um conjunto de métodos definidos por aquele objeto, incluindo os parâmetros de entrada e saídaPara objetos, a interface pode ser entendida como um conjunto de métodos definidos por aquele objeto, incluindo os parâmetros de entrada e saída

23 23 Serviços de Catálogo (Directory Services) Conjunto de serviços que permitem com que objetos (servidores, empresas ou até mesmo pessoas) sejam localizados por outros objetos

24 24 Monitores de Transação Mantém o sincronismo entre diversos componentes, garantindo um estado consistente entre todos os participantes em uma transação, cancelando ou efetuando operações

25 25 Porque CORBA? CORBA oferece um mecanismo padrão para a definição de interfaces entre componentes e ferramentas para facilitar a implementação destas interfaces nas linguagens escolhidas pelos desenvolvedores

26 26 Independência de Linguagens de Programação objetos e clientes CORBA podem ser implementados em qualquer linguagem de programaçãoobjetos e clientes CORBA podem ser implementados em qualquer linguagem de programação objetos CORBA não precisam saber como foram implementados os objetos com os quais se comunicamobjetos CORBA não precisam saber como foram implementados os objetos com os quais se comunicam

27 27 Independência de Plataforma Computacional Objetos CORBA podem ser usados em qualquer plataforma para a qual exista a implementação de um CORBA ORB (Object Request Broker), ou seja, praticamente qualquer sistema computacional existente

28 28 CORBA Visão Geral

29 29

30 30 Object Request Broker (ORB) Componente de software cuja função é facilitar a comunicação entre objetos –localização de objetos remotos –passagem e recepção de parâmetros (marshaling/unmarshaling)

31 31 Marshaling/Unmarshaling Marshaling - formatação dos parâmetros para transmissão via redeMarshaling - formatação dos parâmetros para transmissão via rede on-the-wire format - formato para transmissão via redeon-the-wire format - formato para transmissão via rede Unmarshaling - transformação do formato on-the-wire para o formato localUnmarshaling - transformação do formato on-the-wire para o formato local Processo ocorre sem intervenção do programadorProcesso ocorre sem intervenção do programador Diferenças entre plataformas são resolvidas pelo ORBDiferenças entre plataformas são resolvidas pelo ORB

32 32 Interface Definition Language (IDL) Interfaces CORBA são definidas em uma linguagem de sintaxe neutra conhecida como Interface Definition Language ou IDLInterfaces CORBA são definidas em uma linguagem de sintaxe neutra conhecida como Interface Definition Language ou IDL Fundamental para a independência de linguagemFundamental para a independência de linguagem Interfaces descritas em IDL podem mapear para qualquer linguagem de programaçãoInterfaces descritas em IDL podem mapear para qualquer linguagem de programação Seu único propósito é definir interfaces e estruturas de dadosSeu único propósito é definir interfaces e estruturas de dados Não é utilizada para escrever algoritimosNão é utilizada para escrever algoritimos

33 33 IDL: Vantagens/Desvantagens Vantagens IDL é uma linguagem neutra que permite que clientes e servidores sejam implementados em linguagens diferentes. Um cliente Java pode interagir com aplicações COBOL empacotadas com CORBAIDL é uma linguagem neutra que permite que clientes e servidores sejam implementados em linguagens diferentes. Um cliente Java pode interagir com aplicações COBOL empacotadas com CORBA IDL permite que a especificação dos serviços seja separada da implementação.IDL permite que a especificação dos serviços seja separada da implementação.Desvantagens Difícil de usarDifícil de usar Um passo extra de compilação é necessárioUm passo extra de compilação é necessário

34 34 Arquivo OMG IDL Descreve o formato dos dados, operações e objetos que o cliente pode usar para fazer um pedido e que o servidor precisa prover para a implementação de um objeto

35 35 Exemplo interface Employee { void promote (in char new_job_class); void dismiss (in DismissalCode reason, in string description); };

36 36 Cliente e implementação no servidor interface Employee { void promote (in char new_job_class); void dismiss (in DismissalCode reason, in string description); }; operação promote operação dismiss Ap. Cliente Método Emp_dismiss Método Emp_promote Implementação Employee Ap. Servidor Referência ao empregado X

37 37 Mapeamento de Linguagens Mapeamento de linguagem é uma especificação que mapeia as construções da linguagem IDL às construções de uma determinada linguagem de programação

38 38 Protocolos Inter-ORB Especificação CORBA é neutra em relação a protocolos de redeEspecificação CORBA é neutra em relação a protocolos de rede Padrão CORBA especifica um padrão geral (GIOP - General Inter-ORB Protocol)Padrão CORBA especifica um padrão geral (GIOP - General Inter-ORB Protocol) IIOP - Internet Inter-ORB ProtocolIIOP - Internet Inter-ORB Protocol –CORBA ORBs se comunicam utilizando o protocolo IIOP –mais popular (transportado sobre TCP/IP)

39

40 40 Modelo de Comunicações Cliente: objetos que invocam um ou mais métodos em outros objetosCliente: objetos que invocam um ou mais métodos em outros objetos Servidor: aplicação que cria objetos CORBA e torna os serviços oferecidos por estes objetos disponíveis para outras aplicaçõesServidor: aplicação que cria objetos CORBA e torna os serviços oferecidos por estes objetos disponíveis para outras aplicações

41 41 Modelo de Comunicações... IOR - Interoperable Object ReferencesIOR - Interoperable Object References –quando um componente deseja acessar um objeto CORBA, é necessário obter um IOR para este objeto

42 42 CORBA: Modelo de Objetos Toda comunicação entre objetos se dá por meio de referências a objetos (IOR)Toda comunicação entre objetos se dá por meio de referências a objetos (IOR) BOA - Basic Object AdapterBOA - Basic Object Adapter –Provê a objetos CORBA um conjunto comum de métodos para acessar funções ORB. Estas funções variam desde a autenticação de usuários a ativação de objetos. Segundo a especificação CORBA, o BOA deve estar disponível em toda implementação ORB

43 43 OMG Object Management Group Organização sem fins lucrativos fundada em 1989, com 8 membrosOrganização sem fins lucrativos fundada em 1989, com 8 membros Conta hoje com mais de 800 membrosConta hoje com mais de 800 membros Seu objetivo é promover a teoria e o uso de tecnologia OO para sistemas distribuídosSeu objetivo é promover a teoria e o uso de tecnologia OO para sistemas distribuídos

44 44 OMA: Object Management Architecture Conjunto de padrões que definem a arquitetura sob a qual aplicações distribuídas são construídasConjunto de padrões que definem a arquitetura sob a qual aplicações distribuídas são construídas CORBA: parte da arquitetura OMACORBA: parte da arquitetura OMA

45 45 OMA: Componentes ORB (Object Request Broker)ORB (Object Request Broker) serviços de objetos (CORBAservices)serviços de objetos (CORBAservices) recursos comuns (CORBAfacilities)recursos comuns (CORBAfacilities) Interfaces de domínio (domain interfaces)Interfaces de domínio (domain interfaces) objetosobjetos

46 Object Request Broker Object Services Common Facilities Domain Interfaces Application Interfaces

47 47 Stubs / Skeletons Client StubClient Stub –código que permite um componente cliente acessar um componente servidor. Compilado juntamente com a parte cliente da aplicação Server SkeletonServer Skeleton –código integrado quando da implementação do servidor Código gerado quando a definição das interfaces IDL são compiladasCódigo gerado quando a definição das interfaces IDL são compiladas

48 48 CORBAservices/CORBAfacilities Não fazem parte da especificação CORBA, mas são um componente complementar da OMANão fazem parte da especificação CORBA, mas são um componente complementar da OMA Serviços e facilidades horizontais (comuns a todas as empresas) e verticais (comuns a um setor específico)Serviços e facilidades horizontais (comuns a todas as empresas) e verticais (comuns a um setor específico)

49 49

50 50

51 51 Aplicações Legadas Especificar a funcionalidade de aplicações legadas em termos de interfacesEspecificar a funcionalidade de aplicações legadas em termos de interfaces Criar envelopes (wrappers) CORBA para conversar com aplicações legadasCriar envelopes (wrappers) CORBA para conversar com aplicações legadas Fingir que a aplicação legada é um objeto e desenvolver normalmenteFingir que a aplicação legada é um objeto e desenvolver normalmente

52 52 CORBA Wrappers Uma aplicação legada escrita em Cobol pode ser usada em ambiente CORBA através da codificação de um wrapper usando as ligações para COBOL definidas pela OMGUma aplicação legada escrita em Cobol pode ser usada em ambiente CORBA através da codificação de um wrapper usando as ligações para COBOL definidas pela OMG O wrapper conecta a aplicação ao servidor. Devido ao uso de IDL e estabelecimento das conexões via ORB, os clientes não se dão conta de estarem se comunicando com uma aplicação legada. A aplicação COBOL por sua vez pensa estar conversando com outras aplicações COBOLO wrapper conecta a aplicação ao servidor. Devido ao uso de IDL e estabelecimento das conexões via ORB, os clientes não se dão conta de estarem se comunicando com uma aplicação legada. A aplicação COBOL por sua vez pensa estar conversando com outras aplicações COBOL

53 53 Linux e CORBA GNOMEGNOME –Utiliza CORBA para troca de dados entre aplicações –Red Hat ORBit IONA OrbixIONA Orbix –versão para Linux em breve

54 54 Linux e CORBA... IBM WebsphereIBM Websphere –capacidade de executar nativamente, em breve, transações CORBA em Linux AT&T omniORBAT&T omniORB –utilizado por mais de 700 desenvolvedores (ALCATEL entre eles) –implementação CORBA enxuta –Projeto Active Badge –Livre (GPL) –http://www.uk.research.att.com/omniORB

55 55 CORBA: Alternativas socketssockets RPC (Remote Procedure Call)RPC (Remote Procedure Call) DCE (Distributed Computing Environment)DCE (Distributed Computing Environment) Microsoft DCOM (Distributed Computing)Microsoft DCOM (Distributed Computing) JAVA RMI (Remote Method Invocation)JAVA RMI (Remote Method Invocation)

56 56 Bibliografia Understanding CORBA Randy Otte, Paul Patrick, Mark Roy Prentice HallUnderstanding CORBA Randy Otte, Paul Patrick, Mark Roy Prentice Hall Byte Magazine Magazine Object Management Group Management Group Links


Carregar ppt "CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida"

Apresentações semelhantes


Anúncios Google