310 likes | 458 Views
CORBA. Cleivson Arruda – csa3@cin.ufpe.br Rafael Lima – ragpl@cin.ufpe.br. 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?.
E N D
CORBA Cleivson Arruda – csa3@cin.ufpe.br Rafael Lima – ragpl@cin.ufpe.br
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 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...
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 • 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 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 separadaspor 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.
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”
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