Title: Sistemas Distribu
1Sistemas DistribuídosExemplo de Plataforma de
Middleware CORBA
- Especialização em Redes de Computadores
- Prof. Fábio M. Costa
- Instituto de Informática - UFG
2Visão Geral
- CORBA
- O modelo de objetos de CORBA
- A Linguagem de Definição de interfaces
- Arquitetura
- COM
- Common Object Model
- Microsoft IDL
- Arquitetura
- RMI
- O modelo de objetos de Java (RMI)
- Definição de interfaces em Java
- Arquitetura
3CORBA
4OMG Object Management Group
- Organização sem fins lucrativos com sede nos EUA
e representações em vários países - Fundada em abril de 1989
- Mais de 800 membros
- Dedicada à criação e popularização de padrões
industriais de orientação a objetos para
integração de aplicações, por exemplo - CORBA
- UML
5Objetivos de CORBA
- Oferecer suporte para requisições de objetos em
ambientes distribuídos e heterogêneos de forma
transparente para usuários e programadores de
aplicações - Facilitar a integração de novos componentes com
componentes legados - Padrão aberto e de livre acesso
- Baseado em amplo consenso na indústria
6Arquitetura de Gerenciamento de Objetos da OMG
Application Objects
CORBA facilities
Domain Interfaces
Object Request Broker (ORB)
CORBAservices
7Modelo de Objetos e Definição de Interfaces
- Objetos
- Tipos
- Módulos
- Atributos
- Operações
- Requisições
- Exceções
- Sub-tipos
8A Linguagem de Definição de Interfaces da OMG
- Uma linguagem para expressar todos os conceitos
do modelo de objetos de CORBA - Características da OMG/IDL
- Independente de linguagem de programação
- Sintaxe semelhante à de C
- Mapeamentos para várias linguagens de programação
estão disponíveis
9Exemplo em Uso
train()
Player
-namestring -Numberint
book()
10O Modelo de Objetos de CORBA Objetos
- Cada objeto tem um identificador que é único
dentro do contexto de um ORB - Múltiplas referências para o mesmo objeto
- Referências suportam transparência de localização
- Referências de objetos são persistentes
- Válidas mesmo que o objeto em questão tenha sido
desativado
11O Modelo de Objetos de CORBA Tipos
typedef struct _Address string street string
postcode string city Address typedef
sequenceltAddressgt AddressList interface Team
...
12O Modelo de Objetos de CORBA Módulos
module Soccer typedef struct _Address
string street string postcode string city
Address module People typedef struct
_Address string flat_number string
street string postcode string city
string country Address
13O Modelo de Objetos de CORBA Atributos
interface Player typedef sequenceltPlayergt
PlayerList interface Trainer typedef
sequenceltTrainergt TrainerList interface Team
readonly attribute string name attribute
TrainerList coached_by attribute Club
belongs_to attribute PlayerList players
...
14O Modelo de Objetos de CORBA Operações
interface Team ... void bookGoalies(in
Date d) string print()
15O Modelo de Objetos de CORBA Requisições
- Requisições são definidas por objetos clientes
- Uma requisição consiste de
- uma referência ao objeto servidor
- o nome da operação requisitada
- argumentos da requisição (parâmetros reais)
- informação de contexto
- Requisições são executadas sincronamente
- Requisições podem ser definidas
- estaticamente
- dinamicamente
16O Modelo de Objetos de CORBA Exceções
- Exceções genéricas (ex. rede fora do ar, ref. de
objeto inválida, esgotou a memória) - Exceções específicas de determinados tipos
exception PlayerBookedsequenceltDategt free
interface Team ... void bookGoalies(in Date
d) raises(PlayerBooked)
17O Modelo de Objetos de CORBA Sub-tipos
interface Organization readonly attribute
string name interface Club Organization
exception NotInClub readonly attribute
short noOfMembers readonly attribute Address
location attribute TeamList teams attribute
TrainerList trainers void transfer(in Player
p) raises NotInClub
18CORBA Arquitetura