Al utilizar CORBA tiene que haber un Smart Agent que corre en la red,
si ejecutamos más de un Smart Agent en la red proporcionamos protección
contra la máquina que esta ejecutando el Smart Agent. Para arrancar
el Smart Agent podemos utilizar una utilidad que es: osagent. Si arrancamos
con opción -v se escribe infomación y mensajes de diagnostico
a un archivo osagent.log. Con -p especificamos el puerto UDP que el Smart
Agent acostumbra a escuchar para los mensajes de la transmisión.
Con -c permite correr el smart agent en modo de consola si se ha instalado
como un servicio en windows nt.
Ejemplo: osagent -p 11000
el puerto definido es el 14000. Podemos utilizar más de un ORB
en la misma red utilizando un número de puerto en cada ORB. El valor
por defecto es escrito en el registro de windows cuando se instala. Para
sobreescribir el valor establecer la variable de entorno OSAGENT -PORT
a un valor diferente o sobreescribirlo arrancando el smart Agent con -p.
Podemos utilizar el Smart Agent para comunicarnos con otra red. Esto lo
podemos hacer utilizando un fichero agentaddr.
Ejemplo:
El Smart Agent de la red 1 puede contactar con el Smart Agent de la red 2 si este puede encontrar un fichero llamado agentaddr el cual contiene la siguiente línea: 101.10.2.6.
En el caso de los ejemplos realizados anteriormente utilizando DCOM, lo único que teniamos que hacer es ejecutar la aplicación servidora para que después la aplicación cliente pueda conectar con la aplicación servidora, pero no es necesario tener la aplicación servidora arrancada para ejecutar la cliente. Al ejecutar la cliente esta es capaz de arrancar la aplicación servidora. Al utilizar CORBA si la aplicación servidora no esta en ejecución, la aplicación cliente no es capaz de ejecutarla. Si queremos que la aplicación cliente sea capaz de ejecutar la aplicación CORBA tenemos que registrar de alguna forma el objeto, para ello utilizamos otra herramienta que es Object Activation Daemon. Para el ejemplo que desarrollaremos con corba tenemos que seguir los siguientes pasos:
1.- Ejecutar el OAD, una vez en ejecución tenemos que registrar el objeto, para ello utilizaremos otra herramienta que es OADUTIL.
2.- Antes de ejecutar OADUTIL hay que entrar en el editor de bibliotecas y pulsar el botón export para exportar la definición al fichero .IDL, así salvaremos la definición del interface .
3.- Lo siguiente sería registrar el interface utilizando oadutil con una serie de parametros. En nuestro caso sería:
oadutil reg -r IDL:miserv/TMIAPLICACIONFACTORY:1.0 - o TMIAPLICACION -cpp d:\ejemplos\miserv.exe |
-cpp d:\ejemplos\miserv.exe
Las opciones especifican:
. -cpp .- Especifica el nombre del servidor
ejecutable
. -o.- Nombre del objeto que soporta el
interface
. -r .- Es el interface. Esta información
es obtenida de la unidad asociada a la librería de tipos.
Para quitar del registro de objetos:
oadutil unreg -r IDL:Myserver/myobjectFactory:1.0 |