310 likes | 382 Views
CORBA. André Ricardo (xico) – arss at cin Hugo Calazans – htcrs at cin. 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 André Ricardo (xico) – arss at cin Hugo Calazans – htcrs at cin
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 • Mediador da computação distribuída • 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
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ços de CORBA 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...
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.12 • No Windows • Visual Studio 2005 • 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++” 3) Selecione a pasta “Win32” 4) Selecione “Win32 Console Application” 5) Especifique um nome e um diretório para o projeto 6) Clique em “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 projeto vazio 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 em “Cancel”
Configurando o Visual Studio 14) Add -> New Item 15) Clique em “Visual C++” e selecione “C++ File” 16) Especifique um nome para o arquivo Exemplo: “server.cpp” 17) Clique em “Add”
Configurando o Visual Studio O arquivo “server.cpp” foi criado. 18) Clique com o botão direito em cima do projeto 19) Selecione “Properties” O diretório “C/C++” está agora habilitado! 20) Clique nele 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” e selecione “Geral” 23) Em “Additional Library Directories”, especifique o caminho completo até as bibliotecas do mico para win-32 Exemplo: D:\mico\win32-bin\lib 24) Selecione Input 25) Em “Additional Dependencies”, digite as strings “mico2312.lib” e “micocoss2312.lib” (sem as aspas e separadas por um espaço) 26) Clique em OK
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
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