CORBA
Cleivson Arruda – [email protected]
Rafael Lima – [email protected]
ROTEIRO
O

que é CORBA?
Servicos

servico de nomes
 IDL
 MICO

Configurando IDEs
No Windows (Visual Studio 2005)
 No linux (Eclipse 3.2 + CDT)

 Exemplo
 Exercício
 Dúvidas
Prático
O QUE É CORBA?
Common Object Request Broker Architeture
 CORBA é uma ESPECIFICAÇÃO de
middleware, criado pela OMG(Object
Management Group )
 MICO é um exemplo de implementação desta
especificação

SERVIÇO DE MIDDLEWARE

Definição de Bernstein:

Serviço de propósito geral, situado entre plataformas
(serviços de baixo nível) e aplicações, sendo
caracterizado pelas APIs e pelos protocolos que
suporta
SERVIÇOS DE CORBA
CORBA especifica um total de 18 servicos
Additional Structuring
Mechanisms for the OTS
 Collection Service
 Concurrency Service
 Enhanced View of Time
 Event Service
 Externalization Service
 Naming Service
 Licensing Service
 Life Cycle Service

Notification Service
 Persistent State Service
 Property Service
 Query Service
 Relationship Service
 Security Service
 Time Service
 Trading Object Service
 Transaction Service

SERVIÇO DE NOMES

Definição


Associação biunívoca entre um nome e um serviço
Para que usar?

Transparência de localização dos serviços
IDL
Interface Definition Language
 Baseada em C++
 Não possui algoritmos ou variáveis



Puramente declarativa
Padrões definidos para:

Java, COBOL, Smalltalk, Ada, Lisp, Python,
IDLscript...
CORBA
MICO
 Uma
implementacao LGPL (free software)
de CORBA em C++
 Serviços implementados
Naming service
 Trading service
 Event service
 Relationship service
 Property service
 Time service
 Security service

CONFIGURANDO IDES

www.mico.org


No Windows


MICO 2.3.13
Visual Studio 2008
No Linux

Eclipse 3.2 + CDT
CONFIGURANDO O MICO NO
WINDOWS
 Faça
o download do código fonte do MICO em
http://www.mico.org
 Descompacte e leia as instruções presentes no
arquivo README-WIN32 para compilar o
código
 Edite as variáveis de ambiente, adicionando o
diretório win32-bin à variável PATH
 Como alternativa a todo esse processo, você
poderá fazer o download de uma versão já
compilada de MICO, através do link:
http://www.cin.ufpe.br/~if677/monitoria/corba
CONFIGURANDO O VISUAL STUDIO
1) File -> New-> Project…
2) Expanda “Visual C++ Projects”
3) Selecione a pasta Win32
4) Selecione Win32
Console Project
5) Especifique um
nome para o projeto
6) Clique OK
CONFIGURANDO O VISUAL STUDIO
7) Clique em “Application
Settings”
8) Cerfifique-se de que a
opção “Console Application”
está selecionada
9) Marque a opção “Empty
project”
10) Clique em “Finish” para
criar o projeto
CONFIGURANDO O VISUAL STUDIO
Foi criado um “Empty project”
11) Clique com o botão direito em cima do projeto
para abrir o menu
12) Selecione o item “Properties”
Onde estão as opções “C/C++”?
13) Clique na opção “Cancel”
CONFIGURANDO O VISUAL STUDIO
14) Add New Item -> Add
15) Selecione “C++ File”
16) Especifique um
nome para o arquivo,
como “server.cpp”, por
exemplo
17) Clique em “Open”
CONFIGURANDO O VISUAL STUDIO
O arquivo “server.cpp” foi criado.
18) Clique em “Project Menu”
19) Selecione “Properties”
O diretório “C/C++” está agora habilitado!
20) Expanda-o
21)
Em “Additional
Included Directories”
especifique o
caminho completo
até o diretório
include do MICO
Exemplo:
D:\mico\include
CONFIGURANDO O VISUAL STUDIO
22) Expanda “Linker”
23) Em “Additonal Library
Directories”, especifique o
caminho completo até as
bibliotecas do mico para
win-32
Exemplo:
D:\mico\win32-bin\lib
24) Selecione Input
25) Digite as strings *
“mico2313.lib” e *
“micocoss2313.lib” (sem
as aspas e separadas
por um espaço)
26) Clique em OK
*2313 para nova versão do mico e 2312 para a já compilada
CONFIGURANDO O MICO NO LINUX

No linux (Eclipse 3.2 + CDT)

Criar um Projeto C/C++

Vocês já fizeram isso milhões de vezes. 
CONFIGURANDO AS BIBLIOTECAS
PRONTO!!

Acredite!!

Eclipse Configurado!
EXEMPLO: CONTA ONLINE






Criando a IDL
Compilando a IDL
Implementando o Serviço
Implementando o Servidor
Implementando o Cliente
Inicializando o Servidor de nomes
CRIAR IDL
interface account{
void deposito (in long valor);
void saque (in long valor);
long getSaldo();
};
 Colocar isso no arquivo account.idl
COMPILANDO A IDL
Lembrar de mudar
no arquivo
account.cc o include
<account.h> para
include “account.h”
IMPLEMENTANDO O SERVIÇO
IMPLEMENTANDO O SERVIDOR
IMPLEMENTANDO O CLIENTE
INICIALIZANDO O SERVIDOR DE
NOMES
APÓS INICIAR O SERVIDOR DE
NOMES...

Basta executar o Servidor

E depois executar o Cliente
DÚVIDAS

Dúvidas?
EXERCÍCIO
interface AulaPratica{
void imprimirNoProjetor(in string
mensagem);
};
 Nome

do servico
“projetor”
 Endereco

do servidor de nomes:
“serverAddress:9001”
REFERÊNCIAS
 http://www.frb.br/ciente/Impressa/Info/I.8.
Semiramis.Middleware.pdf
 http://www.cin.ufpe.br/~if677/monitoria/co
rba/
 http://www.omg.org/gettingstarted/corbafa
q.htm
 http://www.opendylan.org/documentation/
opendylan/corba/corba_1.htm
 http://www.answers.com/topic/corba?cat=t
echnology
 http://en.wikipedia.org/wiki/CORBA
Download

CORBA