CORBACleivson 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 Prático Dúvidas
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
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
CORBA especifica um total de 18 servicos
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 implementadosNaming serviceTrading serviceEvent serviceRelationship serviceProperty serviceTime serviceSecurity service
CONFIGURANDO IDES
www.mico.org MICO 2.3.13
No Windows 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 STUDIO1) 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 STUDIO14) Add New Item -> Add15) Selecione “C++ File”
16) Especifique um nome para o arquivo, como “server.cpp”, por exemplo
17) Clique em “Open”
CONFIGURANDO O VISUAL STUDIOO 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 STUDIO22) 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/corba/
http://www.omg.org/gettingstarted/corbafaq.htm
http://www.opendylan.org/documentation/opendylan/corba/corba_1.htm
http://www.answers.com/topic/corba?cat=technology
http://en.wikipedia.org/wiki/CORBA