Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL.

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Modelo de Objetos ODMG.
Sistemas Distribuídos Resolvendo o Problema da Heterogeneidade
Prof. Thiago Pereira Rique
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.
Repositório de Interfaces em CORBA
Rafael Pinto Frederico Corrêa
Sistemas Distribuídos CORBA
Linguagens de programação
Programação II Estruturas, uniões e enumerações
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 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Documentando con Javadoc
Robson Godoi / Sandra Siebra
Contratos Modelagem Funcional.
Classes e objetos P. O. O. Prof. Grace.
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.
DEFINIÇÃO DE TIPOS – LF3 PLP – Apresentação 2. Equipe Felype Santiago Maria Carolina Paola Rodrigues Rodrigo Cardoso.
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
CORBA e Desenvolvimento Baseado em Componentes
Chamada Remota de Procedimentos
Introdução à Programação Orientada a Objetos com Java
Tipos de Dados Paradigmas de Programação
Estudo dos Conceitos e Paradigmas de Programação
Desenvolvimento de Aplicações CORBA
Classes, Objetos, Atributos e Métodos JAVA
Linguagem de Programação JAVA
Orientação a Objetos Parte I
Programação Orientada à Objetos
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.
Tecgraf PUC-Rio maio de 2011 Data Service. Motivação Aplicações científicas tem como característica a elevada complexidade de seus dados e dos algoritmos.
Java Kickstart, day 2 Semelhanças com linguagem C.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Classes Abstratas e Interface
Tecgraf PUC-Rio Setembro de 2013 Data Service. Motivação Aplicações científicas têm como característica a elevada complexidade de seus dados e dos algoritmos.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Fevereiro de 2014 IDL.
Chat Aplicativo de um chat em Corba. Grupo: -Fausto Feitosa -Guilherme Alexandre -Juliana Carvalho -Luciana Oliveira -Marília Oliveira -Tarciana Dias.
Tarciana Dias Luciana Oliveira Flávia Falcão
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Tecgraf PUC-Rio setembro de 2013 IDL. Interface Definition Language Linguagem neutra Define a interface dos objetos CORBA struct Book { string author;
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Tecgraf PUC-Rio maio de 2011 Mapeamento de IDL para Java.
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Agosto de 2013 Mapeamento de IDL para Java.
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 Introdução ao OpenBus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Mapeamento de IDL para C#
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Serviço de Colaboração OpenBus.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Estrutura de Dados Prof. André Cypriano M. Costa
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL

versão 1 - julho/2013 IDL Interface Definition Language Linguagem neutra Define a interface dos objetos CORBA struct Book { string author; string title; }; typedef sequence BookSeq; interface Biblioteca { boolean addBook(in Book pbook); BookSeq getBooks(); Book getBook(in string title); };

versão 1 - julho/2013 Mapeamento de IDL para uma linguagem de programação A OMG define especificações para mapeamentos de IDL em diversas linguagens Cada especificação define como traduzir a descrição feita em IDL para o código gerado (stubs e skeletons) em uma determinada linguagem de programação

versão 1 - julho/2013 Conteúdo Elementos principais da IDL: Interface Tipos primitivos Tipos estruturados (user-defined) Tipo ANY Módulos

versão 1 - julho/2013 Interface O tipo de um objeto CORBA é definido como uma interface IDL Uma interface IDL pode conter atributos e operações Atributos são simplesmente “açúcar sintático” para operações de get e set Um atributo readonly representa uma operação de estilo get

versão 1 - julho/2013 Interface interface Account { void deposit (in double amount); void withdraw (in double amount) raises (insufficientFunds); double getTotal(); readonly attribute AccountDetails details; }; A interface Account será implementada por um objeto CORBA que possua as operações deposit e withdraw O atributo details representa uma operação de consulta ao valor AccountDetails

versão 1 - julho/2013 Herança de Interface Uma interface pode estender uma outra interface interface Account {... }; interface Savings : Account { //Inherits all Account definitions //then adds Savings definitions... };

versão 1 - julho/2013 Operações da interface - parâmetros Os parâmetros de uma operação possuem uma direção, que pode ser: in: o parâmetro é passado do cliente para o servidor out: o parâmetro é passado de volta para o cliente inout: o parâmetro é passado em ambas as direções void deposit (in double amount);

versão 1 - julho/2013 Operações da interface – retorno As operações de uma interface IDL definem um valor de retorno Se a operação não possuir valor de retorno, o tipo void deve ser utilizado void deposit (in double amount); double getTotal();

versão 1 - julho/2013 Operações da interface - exceções Uma operação pode lançar ( raise ) uma exceção se algo não ocorrer conforme esperado Existem mais de 30 tipos de exceções pré- definidas e o desenvolvedor pode definir novos tipos de exceções (user-defined) exception insufficientFunds { }; interface Account {... void withdraw(in double amount) raises(insufficientFunds); };

versão 1 - julho/2013 Operações da Interface – tipos dos parâmetros e do valor de retorno Os parâmetros de uma operação e o valor de retorno possuem tipos, que podem ser: tipos primitivos (ex: boolean, string, long, etc) tipos user-defined struct AccountDetails {... }; interface Account {... void deposit (in double amount); double getTotal(); readonly attribute AccountDetails details; };

versão 1 - julho/2013 Tipos primitivos

versão 1 - julho/2013 Tipos user-defined struct sequence array typedef enum union valuetype

versão 1 - julho/2013 struct Permite definir um tipo que agrupa valores de outros tipos, primitivos ou estruturados struct AccountDetails { string name; StringSeq address; long account_number; double current_balance; };

versão 1 - julho/2013 sequence Representa uma sequência de valores de um determinado tipo É como um array uni-dimensional que pode ter um tamanho máximo ou não sequence address;

versão 1 - julho/2013 array Assim como sequence, representa uma sequência de valores de um determinado tipo Diferente de sequence, a dimensão do array é fixada na definição do tipo, portanto, não pode ser alterada em tempo de execução Pode ter várias dimensões EmployeeRecord Employees[100]; long shares[1000]; string spreadsheet[100][100];

versão 1 - julho/2013 typedef Define um novo nome para um tipo existente É bastante comum usar typedef para nomear um tipo definido como sequence ou array typedef short id; typedef sequence StringSeq;

versão 1 - julho/2013 enum Permite definir um tipo para representar uma lista enumerada enum TrafficLight { red, yellow, green };

versão 1 - julho/2013 union É usado para definir um tipo cujo valor pode ser um dentro os tipos especificados union Foo switch(short) { case 1: boolean boolVal; case 2: long longVal; case 3: string stringVal; }; enum PersonKind {A_GUEST, AN_EMPLOYEE, OTHER}; union Person switch (PersonKind) { case A_GUEST :GuestRecord guest_record; case AN_EMPLOYEE: EmployeeRecord employee_record; default: string description; };

versão 1 - julho/2013 valuetype Usado para definir um objeto-por-valor que combina um struct (variáveis de estado) com operações valuetype Date { public short year; public short month; public short date; public void next_day(); public void previous_day(); };

versão 1 - julho/2013 valuetype Uma das vantagens do valuetype é que ele pode ser retornado como null A introdução do conceito de valuetype em CORBA tornou possível a definição de objetos com referências recursivas, o que não era possível usando apenas struct valuetype Node { public long id; public Node next; };

versão 1 - julho/2013 abstract valuetype O valuetype pode ser definido como abstrato e, nesse caso, não pode ter estado, apenas operações Objetos do tipo abstract value type não podem ser instanciados

versão 1 - julho/2013 valuetype Podem ser estendidos usando herança valuetype Time : Date { public short minutes; public short seconds; void next_time(); void previous_time(); };

versão 1 - julho/2013 abstract interface Assim como abstract value type, possui apenas as operações e não possui estado. Representa uma entidade que, em tempo de execução, pode ser uma interface regular ou um objeto por valor (valuetype) Dependendo do tipo real da entidade em tempo de execução é escolhida a semântica usada na passagem de parâmetro: por referência ou por valor

versão 1 - julho/2013 abstract interface abstract interface Describable { string get_description(); }; interface Example { void display (in Describable anObject); }; interface Account : Describable {// by reference // Métodos de Account }; valuetype Currency supports Describable {// by value // Métodos de Currency };

versão 1 - julho/2013 Tipo Any Pode armazenar valores de qualquer tipo de dado representável em IDL O tipo de seu conteúdo só pode ser verificado em tempo de execução struct NameValuePair { string name; any value; };

versão 1 - julho/2013 Módulos Permite definir espaços de nomes para as interfaces e tipos definidos no arquivo IDL Podem ser aninhados module tecgraf { module openbus { module DRMAA {... }