T. D. S. I. PARA WEB Prof. Emmanuel Nolêto

Slides:



Advertisements
Apresentações semelhantes
Java Remote Method Invocation Java RMI
Advertisements

Modelo de Objetos ODMG.
Sistemas Distribuídos Resolvendo o Problema da Heterogeneidade
Sistemas distribuídos
Paulo Marques Hernâni Pedroso
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Exemplo dos Internamentos
Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity.
RMI-IIOP.
CORBA Um Padrão Industrial para Objetos Distribuídos
Repositório de Interfaces em CORBA
Comunicação Distribuída
Desenvolvimento de Aplicações Distribuídas
Sistemas Distribuídos CORBA
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
1 Serviços CORBA. Serviços CORBA. Funcionalidades que podem ser utilizadas por objetos distribuídos. Naming Service (Serviço de Nomes) Event and Notification.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Inter-Processos
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Estrutura de Dados em Java
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Middleware e Sistemas Distribuídos
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
Estudo dos Conceitos e Paradigmas de Programação
Desenvolvimento de Aplicações CORBA
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Concorrência e Java RMI
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
CORBA Commom Object Request Broker Architecture Conhecendo o Padrão da OMG 3º Engenharia da Computação Vitor C. Tamarozi Romeu L. Furlan Júnior Prof. Edson.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Java RMI João Gabriel (jggxm).
RMI - JAVA.
CORBA Grupo: Sergio Cosme N. C. Filho Tatiana Cardia Petra.
RPC and Web Service André Pereira.
Java Kickstart, day 2 Semelhanças com linguagem C.
Padrões de Interação com o Usuário
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Fevereiro de 2014 IDL.
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Tecgraf PUC-Rio setembro de 2013 IDL. Interface Definition Language Linguagem neutra Define a interface dos objetos CORBA struct Book { string author;
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
Infra-Estrutura para Computação Distribuída
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
Programação com Objetos Distribuídos – CMP167 – Prof. Cláudio Geyer CORBA Artigo – Programming with Object Groups in CORBA Por Pascal Felber e Rachid Guerraoui.
Tecgraf PUC-Rio maio de 2011 Mapeamento de IDL para Java.
Módulo II Capítulo 1: Orientação a Objetos
Versão 3 – fevereiro/2014 Tecgraf PUC-Rio Fevereiro de 2014 Introdução ao SCS.
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Mapeamento de IDL para C#
Sistemas Distribuídos Prof. Marcus Rodrigues
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL.
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
Transcrição da apresentação:

T. D. S. I. PARA WEB Prof. Emmanuel Nolêto

IDL - Corba

Introdução Multicast IP Otimização do uso do link eliminando redundância; Múltiplas notificações divididas por grupos. Facilidade de desenvolvimento; Permite que a aplicação cresça.

Componentes IDL (Interface Definition Language) A linguagem em que se especificam os objectos distribuídos A arquitectura que materializa o sistema. GIOP (General Inter-ORB Protocol) O protocolo de comunicação utilizado nas invocações IIOP (Internet Inter-Orb Protocol) Implementação do GIOP sobre TCP/IP.

Origem Norma definida pelo OMG (Object Management Group), uma organização independente formada em O objectivo principal reside em permitir a implementação de objectos distribuídos em qualquer linguagem e garantir a interoperabilidade, mesmo perante cenários de grande heterogeneidade. Faz parte de um conjunto de especificações introduzidas de forma escalonada: 1992, 1995,..., 2000

Origem CORBA (“Common Object Request Broker Architecture”) Especificação da OMG (“Object Management Group”) para sistemas distribuídos multi- plataforma, independente de fornecedor; Outra especificação bastante conhecida: UML Possui muitas implementações, para várias linguagem e arquiteturas; Inclusive para sistemas embarcados e sistemas em tempo real (CORBART);

Meta-Modelo de Objectos “Objecto CORBA” é sinónimo de objecto remoto Corresponde ao servidor no paradigma C/S  Aceita invocações (pedidos) e envia respostas Os clientes não precisam de ser objectos Os objectos CORBA são independentes de qualquer linguagem Podem-se traduzir para várias linguagens, mesmo que não sejam OO Há mappings standard para: C, C++, Java, COBOL, Smalltalk, Ada, Lisp, Python, and IDLscript. Comporta a noção de herança (múltipla).

Meta-Modelo de Objetos Os objectos CORBA são caracterizados por uma interface, um identificador único e são acessíveis através de referências As referências para os objectos remotos são opacas Pode haver múltiplas referências para o mesmo objecto CORBA A localização dos objectos remotos está contida na próprias referências, mas é completamente transparente para os clientes

CORBA

IDL A linguagem IDL serve para: Especificar a interface dos objectos remotos Definir agrupamentos de objectos em módulos Estabelecer as relações hierárquicas entre tipos de objectos

IDL - Módulos Module A { … }; Module B { … Module C { … }; }; São opcionais e permitem limitar a visibilidade (escopo) de conjuntos de definições.

Interfases IDL module M { interface I { … }; }; O tipo dos objectos CORBA é definido através de um nome único assinalado com a palavra chave: INTERFASE Podem incluir a definição de operações, tipos, atributos e excepções...

Operações IDL module M { interface I { string op1( in long arg1, out short arg2, inout boolean arg3 ) ; oneway void shutdown(... ) ; }; As operações podem ter (ou não) um resultado e parâmetros de entrada, saída ou entrada e saída. Podem ser assíncronas e lançar exceções...

Excepções IDL module M { exception E1 { long errorCode; };... Interface I { void op(...) raises (E1, E2,...) ;... }; Cada operação pode lançar vários tipos de excepções e estas podem conter variáveis...

Atributos IDL module M { interface I { attribute A1; readonly attribute A2;... }; Um objecto CORBA pode ter um ou mais atributos Os atributos podem ser marcados como sendo só de leitura. Cada atributo define implicitamente até duas operações (para fazer a consulta e a atualização dos valores se permitido).

Tipos básicos do IDL Os tipos primitivos usuais, com diversas precisões, estão presentes em CORBA IDL. Short unsigned short long unsigned long long unsigned long long float

Tipos básicos do IDL double long double boolean char wchar string Estes tipos podem ser usados para construir novos tipos mais complexos

Tipos complexos do IDL module M { struct { long l;....} T1 ; typedef sequence T2; typedef sequence T3; typedef T3 T4[10][20]; }; enum E { e1, e2, e3,..., en}; A definição de novos tipos é feita através da palavra chave typedef. Pode-se definir novos tipos à custa de estruturas, sequências, arrays, enumerações e unions.

Unions IDL module M { enum E { e1, e2, e3,..., en}; typedef union U switch( E ) { case e1: string s; case e2: long l ;... default: float f; } T1 ;... }; As unions podem ter a validade dos campos ditada por um atributo de controlo, ao estilo dos registos com variante da linguagem Pascal.

Herança IDL module MyServer { interface Service { readonly attribute string name ; oneway void shutdown() ; }; interface MyService : Service { void ping( inout string msg) ; }; Um objecto CORBA pode derivar de um ou mais objectos, desde que não haja colisões de nomes

NameService O espaço dos nomes dos objectos CORBA é hierárquico e relativo a uma dada raiz. Qualquer caráter pode ser usado na designação de um objecto Não havendo um separador (“/”), não é (sempre) possível designar o nome completo por uma string. O código de acesso ao NameService é relativamente complexo. O nome é sempre relativo à raiz associada a cada ORB. É possível organizar os NameServices em federações, para particionar o espaço de nomes, por exemplo.

Name Services São oferecidas as operações usuais de interacção com um repositório (registry): bind(...), unbind(...), rebind(...), resolve(...) e list(...) A operação de listagem devolve um iterador e evita transferir de uma só vez o conteúdo do repositório...

Serialização em Java Classes Tipos primitivos ( Sim ) Tipos básicos que implementam Serializable ( Sim ) Conteiners caso os objetos sejam serializáveis ( Sim ) Classes que herdam tipos serializáveis (Integer herda Number) ( Sim ) Exceções e erros ( Sim ) Conteiners, componentes e eventos AWT e Swing ( Sim ) Classes matemáticas (java.math) ( Sim ) Classes de reflexão (java.lang.reflect) ( Sim ) Adapter, filters e classes filhas ( Não ) Streams, readers, writers e outras classes de I/O ( Não ) Serialização permitida ( Não )

RMI

Problemas Apesar da normalização verificam-se problemas de interoperabilidade entre ORBs distintos. A melhor maneira de garantir a inter-operabilidade entre clientes e servidores heterogéneos (linguagens diferentes) é usar um ORB e ferramentas da mesma proveniência... O servidor precisa de uma interface para expor seus métodos para JVMs remotas; O cliente precisa pensar que está acessando objetos locais; A passagem de objetos e variáveis por valor e por referência precisa ser resolvida por meio de serialização.