1 / 31

CORBA

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?.

tibor
Download Presentation

CORBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CORBA Cleivson Arruda – csa3@cin.ufpe.br Rafael Lima – ragpl@cin.ufpe.br

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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...

  8. CORBA

  9. 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

  10. Configurando IDEs • www.mico.org • MICO 2.3.13 • No Windows • Visual Studio 2008 • No Linux • Eclipse 3.2 + CDT

  11. 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

  12. 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

  13. 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

  14. 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”

  15. 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”

  16. 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

  17. 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

  18. 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. 

  19. Configurando as Bibliotecas

  20. PRONTO!! • Acredite!! • Eclipse Configurado!

  21. Exemplo: Conta Online • Criando a IDL • Compilando a IDL • Implementando o Serviço • Implementando o Servidor • Implementando o Cliente • Inicializando o Servidor de nomes

  22. Criar IDL interface account{ void deposito (in long valor); void saque (in long valor); long getSaldo(); }; • Colocar isso no arquivo account.idl

  23. Compilando a IDL Lembrar de mudar no arquivo account.cc o include <account.h> para include “account.h”

  24. Implementando o Serviço

  25. Implementando o Servidor

  26. Implementando o Cliente

  27. Inicializando o Servidor de nomes

  28. Após iniciar o servidor de nomes... • Basta executar o Servidor • E depois executar o Cliente

  29. Dúvidas • Dúvidas?

  30. Exercício interface AulaPratica{ void imprimirNoProjetor(in string mensagem); }; • Nome do servico • “projetor” • Endereco do servidor de nomes: • “serverAddress:9001”

  31. 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

More Related