Como instalar e utilizar o omniOrb no Ubuntu
Bem pessoal, eu estou escrevendo este tópico (meio diferente,rs) pois estou cursando no momento a disciplina Sistema Distribuídos e estou em um projeto que requer a utilização da tecnologia CORBA.
Mais especificamente, preciso criar um servidor em C++ e um cliente em Java, bem a implementação de um cliente Java e servidor Java pode ser encontrada aqui.
Bem agora vou explicar como instalar o omniOrb no Ubuntu.
Faça o download da última versão em download .
Descompacte em algum local de sua preferência no meu caso eu utilizei :
/home/valter/Corba/omniOrb/install/omniORB-4.1.4
Faça a instalação do pacote de desenvolvimento para Python, já que o idl do omniOrb (omniidl) utiliza o Python para fazer os arquivos .hh e .cc gerados, iremos discutir mais adiante.
sudo apt-get install python-dev
Importante : para instalar o omniOrb no Fedora instale o pacote de desenvolvimento do Python com o comando : # yum install python-devel
Depois pode fazer os mesmos passos que o descrito abaixo para o Ubuntu.
Depois de instalado do pacote de desenvolvedor para Python crie uma pasta 'build' dentro da sua pasta do omniOrb, ex :
$ cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/
$ mkdir build
É recomendável criar esta pasta para configurarmos a instalação pois assim poderemos ter várias instacias, caso dê errado a configuração, apague a pasta e repita o processo de criação da pasta build e então faça os seguintes passos novamente.
Agora vamos configurar a instalação do omniOrb no Ubuntu :
$ cd build
$ ../configure --prefix=
No meu caso ficou :
$ ../configure --prefix=/home/valter/Corba/omniOrb/program/
Com isso estamos definindo aonde será a nossa pasta de instação do omniOrb.
Depois compile com o comando 'make', ex:
$ make
Depois de compilar vamos instalar, executando o comando, é necessário logar como root neste comando :
$ sudo make install
Uma coisa deve ficar clara, a parte de configuração pode ser feita de forma automática (que foi como fizemos) ou pode ser feita manualmente, já que fizemos de forma automática teremos que ir aonde construímos o nosso omniOrb, ou seja o nosso /build, então precisamos definir as bibliotecas e executáveis necessários para o omniOrb, então vá para sua pasta /build/src
E dê o comando 'make export', ex :
$ make export
No meu caso ficou :
$ cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/build/src/
$ make export
Agora vamos configurar o serviço de nomes, essa parte é muito importante, um exemplo de serviço de nomes pode ser visto no arquivo 'sample.cfg', ele sera a base para o nosso serviço de nomes, que terá todas as suas variáveis de configuração no arquivo omniORB.cfg, então faça o seguinte:
Copie o arquivo 'sample.cfg' que fica localizado dentro da pasta aonde foi extraido o omniOrb, no meu caso como inicial ficou :
/home/valter/Corba/omniOrb/install/omniORB-4.1.4/sample.cfg
Copie o sample.cfg para alguma pasta de sua preferência, e renomeie este arquivo de sample.cfg para omniORB.cfg, como iremos rodar o nosso exemplo na mesma máquina é necessário informar isso no arquivo que acabamos de renomear, abra o omniORB.cfg e localize a linha :
InitRef = NameService=corbaname::my.host.name
altere para :
InitRef = NameService=corbaname::localhost
Feito isso agora precisamos informar as variáveis de ambiente que o omniOrb necessita, que são duas :
OMNIORB_CONFIG : Irá conter o caminho o nosso arquivo de configuração, o omniORB.cfg
OMNINAMES_LOGDIR : Irá conter o caminho para aonde deve ser gerado um arquivo log quando o serviço de nomes for iniciado
Para isso execute :
sudo gedit /etc/bash.bashrc
Acesse o arquivo como root com o comando acima e adicione as seguintes linhas (de acordo com o seu contexto é claro) :
export OMNIORB_CONFIG=/home/valter/Corba/omniOrb/program/omniORB.cfg
export OMNINAMES_LOGDIR=/home/valter/Corba/omniOrb/program
Lembrando que você deve alterar os respectitvas caminhos de acordo aonde esta localizado o arquivo omniORB.cfg e aonde você quer que seja criado o log quando o serviço de nomes for iniciado.
Depois disso é bom reiniciar o computador.
Bom, agora vamos construir e executar alguns exemplos apenas para verificarmos se esta correta o nosso ambiente omniOrb.
Os códigos de exemplos estão localizados dentro :
$cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/src/examples/
Aqui você verá várias pastas contem alguns exemplos de programas que utilizam o omniOrb, mas lembrando que nosso omniOrb foi construido na pasta /build, lembra ?
Então os exemplos que vamos executar estão em :
cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/build/src/examples/
Isso se dá pois configuramos o nosso omniOrb de forma automática, agora que estamos dentro da pasta examples digite o comando 'make':
$ make
Isso fará que todos os exemplos será compilados, agora entre na pasta echo, dentro dela execute os comandos :
$ ./eg1
Deverá ter a saída :
I said, "Hello!".
The Echo object replied, "Hello!".
Depois execute :
$ ./eg2_impl
Deverá ter a saída :
IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e3300c69700000e000000fe6e14e34c000012df000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Copie esta saída, sim copie TODA a saída.
O IOR é uma referência única ao objeto que queremos acessar através do nosso cliente, note que o terminal ficará aguardando algo, na verdade é o nosso servidor que esta esperando o cliente enviar o IOR para executar uma função que retorna uma string.
Agora iremos executar o cliente, para isso abra outro terminal e digite :
$ ./eg2_clt
No meu caso ficou :
./eg2_clt IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e3300c69700000e000000fe6e14e34c000012df000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Deverá ter como saída:
I said, "Hello!".
The Echo object replied, "Hello!".
Note que no terminal que teve como o comando ./eg2_impl teve como saída :
Upcall Hello!
Informando que recebeu uma chamada do cliente, agora vamos executar um cliente e servidor que estariam em máquinas separadas:
Agora precisamos iniciar o nosso serviço de nomes, então execute :
$ omniNames -start
No meu caso teve como saída :
valter@Eniac:~/Corba/omniOrb/install/omniORB-4.1.4/build/src/examples/echo$ omniNames -start
Tendo como saída no meu caso :
Tue Nov 16 21:42:45 2010:
Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000070000000010102000c0000003139322e3136382e322e3300f90a00000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c000000010000000100010001000000010001050901010001000000090101000354544108000000f516e34c0100131c
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.
Note que será gerado dois arquivos aonde você definiu o caminho para a variável OMNINAMES_LOGDIR, que novamente, no meu caso ficou em :
/home/valter/Corba/omniOrb/program
Os arquivos gerados são : omninames-Eniac.bak, omninames-Eniac.log (no meu caso, o nome pode ser diferentes para cada computador)
Agora com o nosso serviço de nomes iniciado e rodando vamos abrir outro termianal e executarmos o nosso servidor :
$ ./eg3_impl
Deverá ter como saída um IOR :
IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e33003ed400000e000000fe7118e34c0000135e000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Agora vamos executar o cliente :
$ ./eg3_clt
Como saída, deverá ter :
I said, "Hello!".
The Echo object replied, "Hello!".
Prontinho,rs.
Há mais explicações sobre o omniOrb dentro da pasta ./doc e mais exemplos a serem executados também.
Bem espero que ajude a todos, pois deu um trabalhão descubrir isso tudo,rs.
Gostaria de agradecer ao Allan Vidal e ao Tiago Pasqualini.
Um forte abraço a todos.
Mais especificamente, preciso criar um servidor em C++ e um cliente em Java, bem a implementação de um cliente Java e servidor Java pode ser encontrada aqui.
Bem agora vou explicar como instalar o omniOrb no Ubuntu.
Faça o download da última versão em download .
Descompacte em algum local de sua preferência no meu caso eu utilizei :
/home/valter/Corba/omniOrb/install/omniORB-4.1.4
Faça a instalação do pacote de desenvolvimento para Python, já que o idl do omniOrb (omniidl) utiliza o Python para fazer os arquivos .hh e .cc gerados, iremos discutir mais adiante.
sudo apt-get install python-dev
Importante : para instalar o omniOrb no Fedora instale o pacote de desenvolvimento do Python com o comando : # yum install python-devel
Depois pode fazer os mesmos passos que o descrito abaixo para o Ubuntu.
Depois de instalado do pacote de desenvolvedor para Python crie uma pasta 'build' dentro da sua pasta do omniOrb, ex :
$ cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/
$ mkdir build
É recomendável criar esta pasta para configurarmos a instalação pois assim poderemos ter várias instacias, caso dê errado a configuração, apague a pasta e repita o processo de criação da pasta build e então faça os seguintes passos novamente.
Agora vamos configurar a instalação do omniOrb no Ubuntu :
$ cd build
$ ../configure --prefix=
No meu caso ficou :
$ ../configure --prefix=/home/valter/Corba/omniOrb/program/
Com isso estamos definindo aonde será a nossa pasta de instação do omniOrb.
Depois compile com o comando 'make', ex:
$ make
Depois de compilar vamos instalar, executando o comando, é necessário logar como root neste comando :
$ sudo make install
Uma coisa deve ficar clara, a parte de configuração pode ser feita de forma automática (que foi como fizemos) ou pode ser feita manualmente, já que fizemos de forma automática teremos que ir aonde construímos o nosso omniOrb, ou seja o nosso /build, então precisamos definir as bibliotecas e executáveis necessários para o omniOrb, então vá para sua pasta /build/src
E dê o comando 'make export', ex :
$ make export
No meu caso ficou :
$ cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/build/src/
$ make export
Agora vamos configurar o serviço de nomes, essa parte é muito importante, um exemplo de serviço de nomes pode ser visto no arquivo 'sample.cfg', ele sera a base para o nosso serviço de nomes, que terá todas as suas variáveis de configuração no arquivo omniORB.cfg, então faça o seguinte:
Copie o arquivo 'sample.cfg' que fica localizado dentro da pasta aonde foi extraido o omniOrb, no meu caso como inicial ficou :
/home/valter/Corba/omniOrb/install/omniORB-4.1.4/sample.cfg
Copie o sample.cfg para alguma pasta de sua preferência, e renomeie este arquivo de sample.cfg para omniORB.cfg, como iremos rodar o nosso exemplo na mesma máquina é necessário informar isso no arquivo que acabamos de renomear, abra o omniORB.cfg e localize a linha :
InitRef = NameService=corbaname::my.host.name
altere para :
InitRef = NameService=corbaname::localhost
Feito isso agora precisamos informar as variáveis de ambiente que o omniOrb necessita, que são duas :
OMNIORB_CONFIG : Irá conter o caminho o nosso arquivo de configuração, o omniORB.cfg
OMNINAMES_LOGDIR : Irá conter o caminho para aonde deve ser gerado um arquivo log quando o serviço de nomes for iniciado
Para isso execute :
sudo gedit /etc/bash.bashrc
Acesse o arquivo como root com o comando acima e adicione as seguintes linhas (de acordo com o seu contexto é claro) :
export OMNIORB_CONFIG=/home/valter/Corba/omniOrb/program/omniORB.cfg
export OMNINAMES_LOGDIR=/home/valter/Corba/omniOrb/program
Lembrando que você deve alterar os respectitvas caminhos de acordo aonde esta localizado o arquivo omniORB.cfg e aonde você quer que seja criado o log quando o serviço de nomes for iniciado.
Depois disso é bom reiniciar o computador.
Bom, agora vamos construir e executar alguns exemplos apenas para verificarmos se esta correta o nosso ambiente omniOrb.
Os códigos de exemplos estão localizados dentro :
$cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/src/examples/
Aqui você verá várias pastas contem alguns exemplos de programas que utilizam o omniOrb, mas lembrando que nosso omniOrb foi construido na pasta /build, lembra ?
Então os exemplos que vamos executar estão em :
cd /home/valter/Corba/omniOrb/install/omniORB-4.1.4/build/src/examples/
Isso se dá pois configuramos o nosso omniOrb de forma automática, agora que estamos dentro da pasta examples digite o comando 'make':
$ make
Isso fará que todos os exemplos será compilados, agora entre na pasta echo, dentro dela execute os comandos :
$ ./eg1
Deverá ter a saída :
I said, "Hello!".
The Echo object replied, "Hello!".
Depois execute :
$ ./eg2_impl
Deverá ter a saída :
IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e3300c69700000e000000fe6e14e34c000012df000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Copie esta saída, sim copie TODA a saída.
O IOR é uma referência única ao objeto que queremos acessar através do nosso cliente, note que o terminal ficará aguardando algo, na verdade é o nosso servidor que esta esperando o cliente enviar o IOR para executar uma função que retorna uma string.
Agora iremos executar o cliente, para isso abra outro terminal e digite :
$ ./eg2_clt
No meu caso ficou :
./eg2_clt IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e3300c69700000e000000fe6e14e34c000012df000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Deverá ter como saída:
I said, "Hello!".
The Echo object replied, "Hello!".
Note que no terminal que teve como o comando ./eg2_impl teve como saída :
Upcall Hello!
Informando que recebeu uma chamada do cliente, agora vamos executar um cliente e servidor que estariam em máquinas separadas:
Agora precisamos iniciar o nosso serviço de nomes, então execute :
$ omniNames -start
No meu caso teve como saída :
valter@Eniac:~/Corba/omniOrb/install/omniORB-4.1.4/build/src/examples/echo$ omniNames -start
Tendo como saída no meu caso :
Tue Nov 16 21:42:45 2010:
Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000070000000010102000c0000003139322e3136382e322e3300f90a00000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c000000010000000100010001000000010001050901010001000000090101000354544108000000f516e34c0100131c
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.
Note que será gerado dois arquivos aonde você definiu o caminho para a variável OMNINAMES_LOGDIR, que novamente, no meu caso ficou em :
/home/valter/Corba/omniOrb/program
Os arquivos gerados são : omninames-Eniac.bak, omninames-Eniac.log (no meu caso, o nome pode ser diferentes para cada computador)
Agora com o nosso serviço de nomes iniciado e rodando vamos abrir outro termianal e executarmos o nosso servidor :
$ ./eg3_impl
Deverá ter como saída um IOR :
IOR:010000000d00000049444c3a4563686f3a312e3000000000010000000000000064000000010102000c0000003139322e3136382e322e33003ed400000e000000fe7118e34c0000135e000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Agora vamos executar o cliente :
$ ./eg3_clt
Como saída, deverá ter :
I said, "Hello!".
The Echo object replied, "Hello!".
Prontinho,rs.
Há mais explicações sobre o omniOrb dentro da pasta ./doc e mais exemplos a serem executados também.
Bem espero que ajude a todos, pois deu um trabalhão descubrir isso tudo,rs.
Gostaria de agradecer ao Allan Vidal e ao Tiago Pasqualini.
Um forte abraço a todos.
3 comentários
-
Jessica Machado
12 de janeiro de 2013 às 17:54Acho que faltou falar que tem que tirar o '#' do início da linha "# InitRef = NameService=corbaname::localhost" do OmniORB.cfg. Esse tutorial ajudou muito! :)
Quem sou eu
Blog Archive
-
▼
2010
(118)
-
▼
novembro
(15)
- 50 Free Apps We're Most Thankful For
- Como fazer um cliente em Java e um servidor em C++
- Google tem 2076 vagas de emprego para 2010
- Como fazer comunicação cliente/servidor em Java u...
- Como fazer comunicação cliente/servidor em Java u...
- Maioria dos brasileiros prefere trabalho Home Office
- Como instalar e utilizar o omniOrb no Ubuntu
- Show ao vivo com um holograma no Japão, demais!
- Configurando para receber emails no Evolution
- Video Tutorial : Como carregar as próximas páginas...
- Vídeo Tutorial:Controle seu firefox pelo mouse
- Google Instant Preview–Veja sites em sua busca no ...
- Kinect–A nova aposta da Microsoft
- Rakesh Vaidyanathan, presidente do BRICs Institute
- GameTrailers–Saiba tudo sobre os games
-
▼
novembro
(15)
26 de novembro de 2010 às 20:33
Valew Vartao!