Sistemas de Objetos Distribuídos

Documentos relacionados
Prof. Me. Sérgio Carlos Portari Júnior

Principais conceitos de CORBA

Common Object Request Broker Architecture

Plataformas de Distribuição de Objetos

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Sistemas Distribuídos

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

PMR3507 Fábrica digital

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Infra-Estrutura de Software

INTRODUÇÃO. RPC x RMI

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Desenvolvimento de Aplicações Distribuídas

Sistemas Operacionais II

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

Sistemas Distribuídos

SIST706 Sistemas Distribuídos

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Introdução a CORBA. Renato Cerqueira. Departamento de Informática, PUC-Rio

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Sistemas Distribuídos

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

Sistemas Distribuídos. Visão Geral Expandida

Introdução a Web Services

SISTEMAS DISTRIBUIDOS

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Plataformas de Distribuição de Objetos

Sistemas Distribuídos Arquiteturas Middlewares

COMPUTAÇÃO DISTRIBUÍDA

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Programação Distribuída. Tipos de Sistemas Distribuídos

Engenharia de Software

Sistemas Distribuídos

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Análise comparativa entre as especificações de objetos distribuídos DCOM e CORBA

Comunicação. capítulo

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Sistemas Distribuídos CORBA. Edeyson Andrade Gomes.

CORBA IDL. Interface Definition Language. Mário Meireles Teixeira.

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a

Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas

Sistemas Distribuídos

Sistemas Distribuídos

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Desenvolvimento de Aplicações Distribuídas

Objetos e Componentes Distribuídos: EJB e CORBA

DERYK SEDLAK RIBEIRO UM ESTUDO DAS ARQUITETURAS DE MIDDLEWARE ABORDADAS EM SISTEMAS DE COMÉRCIO ELETRÔNICO

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Características de Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

CENTRO UNIVERSITÁRIO DO TRIÂNGULO INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE CIÊNCIA DA COMPUTAÇÃO OBJETOS DISTRIBUÍDOS ELIANA SILVA SOUZA

Sistemas Especializados

COMPUTAÇÃO DISTRIBUÍDA

3 Trabalhos relacionados

Projeto. Observatório Nacional de Clima e Saúde

Vamos fazer um pequeno experimento

Conceitos de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais II

Sistemas Distribuídos

Web Services. (Introdução)

Comunicação entre Processos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

COMPUTAÇÃO DISTRIBUÍDA

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Características de Sistemas Distribuídos

Um Repositório Chave-Valor com Garantia de Localidade de Dados. Patrick A. Bungama Wendel M. de Oliveira Flávio R. C. Sousa Carmem S.

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Comunicação Objetos Distribuídos e RMI

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

4 ALBATROZ : Um ambiente para desenvolvimento de SMA

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

RMI e RPC. RPC significou um passo muito grande em direcção à

5 Trabalhos Relacionados

Protocolo Request-Reply

INE Sistemas Distribuídos

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos

BD e Cloud Gerenciamento de. Dados na Nuvem

Programação Distribuída. Metas de um Sistema Distribuído

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos

Tópicos em Sistemas Distribuídos CORBA

O que é um sistema distribuído?

Transcrição:

Sistemas de Objetos Distribuídos Alex Carneiro Carlos Eduardo Elmadjian Karina Awoki Prof. Fabio Kon POO 2016.1

Agenda Conceitos Histórico CORBA Demos Comparação com SOA Conclusão 1

CONCEITOS Sistemas distribuídos 2

CONCEITOS Sistemas distribuídos Componentes de software autônomos 2

CONCEITOS Sistemas distribuídos Componentes de software autônomos Comunicação via rede 2

CONCEITOS Sistemas distribuídos Componentes de software autônomos Comunicação via rede Ausência de memória compartilhada 2

CONCEITOS Sistemas distribuídos Componentes de software autônomos Comunicação via rede Ausência de memória compartilhada Coordenação descentralizada 2

CONCEITOS Sistemas distribuídos Componentes de software autônomos Comunicação via rede Ausência de memória compartilhada Coordenação descentralizada Processamento paralelo 2

CONCEITOS Sistemas distribuídos 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas sistema aberto 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas sistema aberto escalabilidade 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas sistema aberto escalabilidade hardware heterogêneo 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas sistema aberto escalabilidade hardware heterogêneo Encapsulamento da complexidade via middleware 3

CONCEITOS Sistemas distribuídos Requisitos não funcionais: tolerância a falhas sistema aberto escalabilidade hardware heterogêneo Encapsulamento da complexidade via middleware Transparência para o usuário 3

CONCEITOS Objetos distribuídos 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos Comunicação via rede 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos Comunicação via rede Referenciação complexa 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos Comunicação via rede Referenciação complexa Troca de mensagens lenta 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos Comunicação via rede Referenciação complexa Troca de mensagens lenta Podem executar operações em paralelo 4

CONCEITOS Objetos distribuídos Localizados em diferentes dispositivos Comunicação via rede Referenciação complexa Troca de mensagens lenta Podem executar operações em paralelo Suscetível a ataques 4

CONCEITOS Objetos distribuídos - Arquitetura 5

CONCEITOS Middleware 6

CONCEITOS Middleware RPC - Chamada Remota de Procedimento (Remote Procedure Call) 6

CONCEITOS Middleware RPC - Chamada Remota de Procedimento (Remote Procedure Call) ORB - Agente de Requisição de Objetos (Object Request Broker) 6

CONCEITOS Middleware RPC - Chamada Remota de Procedimento (Remote Procedure Call) ORB - Agente de Requisição de Objetos (Object Request Broker) MOM - Middleware Orientado a Mensagem (Message Oriented Middleware) 6

CONCEITOS Middleware RPC - Chamada Remota de Procedimento (Remote Procedure Call) ORB - Agente de Requisição de Objetos (Object Request Broker) MOM - Middleware Orientado a Mensagem (Message Oriented Middleware) TP - Monitor de Processamento de Transações (Transaction Processing Monitor) 6

CONCEITOS RPC - Remote Procedure Call 7

CONCEITOS RPC - Remote Procedure Call Comunicação entre cliente e servidor 7

CONCEITOS RPC - Remote Procedure Call Comunicação entre cliente e servidor Troca de mensagens sincronizada 7

CONCEITOS RPC - Remote Procedure Call Comunicação entre cliente e servidor Troca de mensagens sincronizada Transparência de acesso 7

CONCEITOS RPC - Remote Procedure Call 8

CONCEITOS RPC - Remote Procedure Call Empacota dados usando um processo de serialização 8

CONCEITOS RPC - Remote Procedure Call Empacota dados usando um processo de serialização Usa protocolo TCP ou UDP Cliente método ----------- arg 1 ----------- arg 2 Servidor return ----------- 8

CONCEITOS ORB (Object Request Broker) 9

CONCEITOS ORB (Object Request Broker) Comunicação entre objetos 9

CONCEITOS ORB (Object Request Broker) Comunicação entre objetos Transparência de acesso 9

CONCEITOS ORB (Object Request Broker) Comunicação entre objetos Transparência de acesso Transparência de localização 9

CONCEITOS ORB (Object Request Broker) Comunicação entre objetos Transparência de acesso Transparência de localização Usado pela arquitetura CORBA Obj 1 Obj 2 ORB 9

PANORAMA 1990 s 10

PANORAMA 1990 s Remote Procedure Calls (RPCs) 10

PANORAMA 1990 s Remote Procedure Calls (RPCs) CORBA 1.0 10

PANORAMA 1990 s Remote Procedure Calls (RPCs) CORBA 1.0 CORBA 2.0 10

PANORAMA 1990 s Remote Procedure Calls (RPCs) CORBA 1.0 CORBA 2.0 DCOM - Microsoft 10

PANORAMA 1990 s Remote Procedure Calls (RPCs) CORBA 1.0 CORBA 2.0 DCOM - Microsoft Java Remote Method Invocation (RMI/J2EE) 10

PANORAMA 2000 s 11

PANORAMA 2000 s COM+ - Microsoft 11

PANORAMA 2000 s COM+ - Microsoft CORBA 3.0 11

PANORAMA 2000 s COM+ - Microsoft CORBA 3.0 Sucesso no mercado corporativo 11

PANORAMA 2000 s COM+ - Microsoft CORBA 3.0 Sucesso no mercado corporativo Aperfeiçoamento das RPCs 11

PANORAMA 2000 s COM+ - Microsoft CORBA 3.0 Sucesso no mercado corporativo Aperfeiçoamento das RPCs Frameworks para linguagens (DRuby, Pyro...) 11

CORBA 12

CORBA Common Object Request Broker Architecture 12

CORBA Common Object Request Broker Architecture Colaboração entre sistemas heterogêneos 12

CORBA Common Object Request Broker Architecture Colaboração entre sistemas heterogêneos Padrão aberto orientado a objetos 12

CORBA Common Object Request Broker Architecture Colaboração entre sistemas heterogêneos Padrão aberto orientado a objetos Interface Definition Language (IDL) para especificação 12

CORBA Common Object Request Broker Architecture Colaboração entre sistemas heterogêneos Padrão aberto orientado a objetos Interface Definition Language (IDL) para especificação Object Request Broker (ORB) para mediação 12

CORBA Arquitetura Fonte: Aleksy et al. Implementing Distributed Systems with Java and CORBA 13

CORBA Arquitetura Fonte: Aleksy et al. Implementing Distributed Systems with Java and CORBA 14

CORBA IDL 15

CORBA IDL Puramente declarativa e orientada a objetos 15

CORBA IDL Puramente declarativa e orientada a objetos Diversos mapeamentos (ADA, C, C++, COBOL, Java, Python, Ruby, Smalltalk...) 15

CORBA IDL Puramente declarativa e orientada a objetos Diversos mapeamentos (ADA, C, C++, COBOL, Java, Python, Ruby, Smalltalk...) Sintaxe inspirada em C++ 15

CORBA IDL Puramente declarativa e orientada a objetos Diversos mapeamentos (ADA, C, C++, COBOL, Java, Python, Ruby, Smalltalk...) Sintaxe inspirada em C++ Fortemente tipada 15

CORBA IDL - tipos Fonte: Aleksy et al. Implementing Distributed Systems with Java and CORBA 16

CORBA IDL - interfaces 17

CORBA IDL - interfaces Interfaces são mapeadas para classes 17

CORBA IDL - interfaces Interfaces são mapeadas para classes Herança se dá por meio delas (inclusive múltipla) 17

CORBA IDL - interfaces Interfaces são mapeadas para classes Herança se dá por meio delas (inclusive múltipla) Não é possível usar overloading de operações 17

CORBA IDL - interfaces Interfaces são mapeadas para classes Herança se dá por meio delas (inclusive múltipla) Não é possível usar overloading de operações Não é possível usar overriding de operações 17

CORBA IDL - interfaces Interfaces são mapeadas para classes Herança se dá por meio delas (inclusive múltipla) Não é possível usar overloading de operações Não é possível usar overriding de operações Declaração de atributos geram getters e setters 17

CORBA IDL - operações 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado Podem conter uma lista de exceções 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado Podem conter uma lista de exceções Atributos são direcionais: 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado Podem conter uma lista de exceções Atributos são direcionais: in 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado Podem conter uma lista de exceções Atributos são direcionais: in out 18

CORBA IDL - operações Operações são síncronas (exceção: oneway) O tipo de retorno sempre deve ser declarado Podem conter uma lista de exceções Atributos são direcionais: in out inout 18

CORBA Exemplo module Zoo { interface Animal { attribute string nome; attribute short idade; string coma(in string comida); }; interface Capivara : Animal { string nade(in string rio); }; }; interface Preguica : Animal { void durma(in string arvore); }; 19

DEMO Vamos ver isso na prática Demo de R2CORBA (Ruby) Demo de omniorbpy (Python) Demo de Distributed Ruby (DRb) 20

COMPARAÇÃO ENTRE SOA E DOA Histórico No princípio, SOA era vista como uma reinvenção de DOA com um apelo de marketing. 21

COMPARAÇÃO ENTRE SOA E DOA Histórico No princípio, SOA era vista como uma reinvenção de DOA com um apelo de marketing. Este entendimento era fundamentado pelas semelhanças entre os conceitos dos dois padrões. 21

COMPARAÇÃO ENTRE SOA E DOA Semelhanças SOA e DOA definem padrões de software para sistemas distribuídos, onde diferentes componentes de software (serviços ou objetos) são executadas em máquinas remotas. 22

COMPARAÇÃO ENTRE SOA E DOA Semelhanças SOA e DOA definem padrões de software para sistemas distribuídos, onde diferentes componentes de software (serviços ou objetos) são executadas em máquinas remotas. O objetivo de ambos é especificar como um software pode gerar e atender demandas em outro software remoto. 22

COMPARAÇÃO ENTRE SOA E DOA Semelhanças SOA e DOA utilizam linguagens específicas para a definição das interfaces, e. g. WSDL ou IDL, e um protocolo de comunicação independente da linguagem, e. g. SOAP ou IIOP. 23

COMPARAÇÃO ENTRE SOA E DOA Semelhanças SOA e DOA utilizam linguagens específicas para a definição das interfaces, e. g. WSDL ou IDL, e um protocolo de comunicação independente da linguagem, e. g. SOAP ou IIOP. As duas abordagens permitem interoperabilidade entre diferentes plataformas de hardware e software. 23

COMPARAÇÃO ENTRE SOA E DOA Diferenças SOA DOA HW1 SW1 HW1 SW1 HW2 SW2 HW2 SW2 24

COMPARAÇÃO ENTRE SOA E DOA Diferenças SOA: utiliza linguagens flexíveis para descrição das interfaces como WDSL. DOA: utilizadas linguagens que são compiladas com o software para descrição das interfaces, como IDL. 25

COMPARAÇÃO ENTRE SOA E DOA Diferenças SOA: comunicação entre serviços baseada em troca de mensagens. DOA: comunicação entre componentes de software baseada na chamada de métodos. 26

COMPARAÇÃO ENTRE SOA E DOA Diferenças SOA: identifica as interfaces tipicamente por URIs para cada serviço que recebe as requisições. DOA: identifica as interfaces de forma mais rígida, e. g. CORBA IORs ou referências a objetos. 27

COMPARAÇÃO ENTRE SOA E DOA Diferenças SOA: consiste de aplicações independentes que conhecem apenas as interfaces para troca de mensagens. DOA: pode ser visto como uma única aplicação que invoca métodos de objetos instanciados remotamente. 28

Conclusão O modelo de sistemas de objetos distribuídos permitiu o desenvolvimento de sistemas distribuídos entre os anos e 1990 e 2000. 29

Conclusão Apesar de forçar o acoplamento entre os softwares cliente e servidor, existem algumas flexibilidades com o uso de DOA, por exemplo a substituição de software servidor sem a necessidade de alteração do software cliente. 30

Conclusão O padrão DOA tem sido substituído pelo SOA, porém é possível aproveitar sistemas funcionais desenvolvido com DOA através de Façades orientada a serviços que escondem as implementações DOA e apenas oferecem interfaces compatíveis com SOA. 31

Referências 1. Saleh, K., Probert, R., & Khanafer, H. (1999). The distributed object computing paradigm: concepts and applications. Journal of Systems and Software, 47(2), 125-131. 2. Özsu, M. T., Dayal, U., & Valduriez, P. (1992). An Introduction to Distributed Object Management. In IWDOM (pp. 1-24). 3. Baker, S., & Dobson, S. (2005). Comparing service-oriented and distributed object architectures. In On the Move to Meaningful Internet Systems 2005: CoopIS, DOA, and ODBASE (pp. 631-645). Springer Berlin Heidelberg. 4. Aleksy, M., Korthaus, A., & Shader M. (2005). Implementing distributed systems with Java and CORBA. Springer Berlin Heidelberg. 5. http://www.corba.org 32

Obrigado! Perguntas?