RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la...

19
Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática Ariel Richard Condori Rodriguez 1 RESUMEN En el presente artículo, veremos de manera breve lo que es un sistema distribuido, como también la descripción de la arquitectura CORBA, se hará más énfasis en la implementación de esta. SISTEMAS DISTRIBUIDOS Se han dado varias definiciones de sistema distribuido en la bibliografía pero ninguna de ellas es satisfactoria ni está de acuerdo con las demás. Para nuestros propósitos es suficiente dar una vaga caracterización: Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como única computadora. 1 CORBA CORBA (Common Object Request Broker Architecture arquitectura común de intermediarios en peticiones a objetos); es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos. CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida. En un sentido general, CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información. Ver Fig. 1. Cuando un cliente solicita los servicios de un objeto, este debe conocer las operaciones soportadas o servidas por dicho objeto. Las interfaces de un objeto describen dichas operaciones. Una de las ventajas de describir las operaciones de esta forma, es separar los puntos de acceso a un objeto de su propia implementación, lo que permite que los objetos sean implementados en diferentes L.P. e interactúen entres si en forma transparente al usuario. Los L.P. estándar son Ada, C, C++, Cobol, Smalltalk, Java, Python, Perl y Tcl. Ver Fig. 2. 1 Sistemas Operativos Distribuidos de Andrew S. Tanenbaum Pág. 2

Transcript of RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la...

Page 1: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

1

RESUMEN

En el presente artículo, veremos de manera breve lo que es un sistema distribuido, como también la descripción de la arquitectura CORBA, se hará más énfasis en la implementación de esta.

SISTEMAS DISTRIBUIDOS

Se han dado varias definiciones de sistema distribuido en la bibliografía pero ninguna de ellas es satisfactoria ni está de acuerdo con las demás. Para nuestros propósitos es suficiente dar una vaga caracterización:

Un sistema distribuido es una colección de computadoras independientes que aparecen ante

los usuarios del sistema como única computadora. 1

CORBA

CORBA (Common Object Request Broker Architecture — arquitectura común de intermediarios en peticiones a objetos); es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.

CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida.

En un sentido general, CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información. Ver Fig. 1.

Cuando un cliente solicita los servicios de un objeto, este debe conocer las operaciones soportadas o servidas por dicho objeto. Las interfaces de un objeto describen dichas operaciones. Una de las ventajas de describir las operaciones de esta forma, es separar los puntos de acceso a un objeto de su propia implementación, lo que permite que los objetos sean implementados en diferentes L.P. e interactúen entres si en forma transparente al usuario. Los L.P. estándar son Ada, C, C++, Cobol, Smalltalk, Java, Python, Perl y Tcl. Ver Fig. 2.

1 Sistemas Operativos Distribuidos de Andrew S. Tanenbaum Pág. 2

Page 2: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

2

Al compilar una interfaz IDL se genera código para el cliente y el servidor. El código del cliente sirve para poder realizar las llamadas a métodos remotos. Es el conocido como stub, el cual incluye un proxy (representante) del objeto remoto en el lado del cliente. El código generado para el servidor consiste en unos skeletons (esqueletos) que el desarrollador tiene que rellenar para implementar los métodos del objeto.

Figura. 1

Figura 2. Interoperabilidad de objetos implementados en diferentes L.P.

Un stub es el encargado de enviar las peticiones de un cliente a un servidor mediante el ORB. A esto se le denomina marshaling o serialización. Las peticiones del cliente se convierten en algún L.P. representada adecuadamente para el envío de información.

El skeleton o esqueleto es el encargado en el servidor de colaborar con la recepción de dichas peticiones desde el ORB y enviarlas a la implementación de objetos de CORBA. A esta otra operación se la llama unmarshaling o deserialización. Las peticiones se pasan de un formato de transmisión a un formato en un L.P. dado.

Page 3: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

3

La descripción del funcionamiento de estos dos importantes elementos es simple, cuando el cliente invoca un método puesto en servicio, el Stub es quien serializa la información a enviar, y cuando la información es enviada, el skeleton es quien lo deserializa y el servidor procesa la información con los métodos puestos en servicio, luego al enviar la respuesta las tareas cambian, ahora el skeleton es quien serializa la información y es enviada al cliente, por último: el stub recibe la respuesta y deserializa la información y es mostrada al cliente. Para mayor comprensión, la información es empaquetada y enviada al servidor, luego desempaquetada, procesada y por último, empaquetada y enviada al cliente, recibida, desempaquetada y mostrada.

Creo que es lo básico para empezar a implementar CORBA, podríamos seguir describiendo muchas características de CORBA, como por ejemplo:

- Repositorios de interfaces

- Invocación estática y dinámica

- Protocolos

- Abstracción, encapsulamiento, jerarquía de herencia, seguridad, etc.

Pero no es esa la finalidad de este artículo,

CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y de transacciones. Es un middleware.

IMPLEMENTANDO

Antecedentes

Borland C++Builder 4 fue una de las primeras herramientas de desarrollo que integra todos los elementos necesarios para crear objetos CORBA, ahora su sucesor C++Builder 5 también nos ofrece estas herramientas, aunque hoy en día hay versiones más actualizadas, como C++Builder 6, C++Builder 2007 y C++Builder 2009, pero por la simplicidad y facilidad usaremos C++Builder 5. Visibroker es un ORB que cumple con todos los requerimientos de CORBA. Visibroker viene para muchas plataformas, como UNIX, Solaris, Linux y claro Windows, se compone de lo siguiente:

Librerías de CORBA. Servicio de Nombres "SmartAgent", Agente Inteligente. Servicio de Activación "OAD" Compilador de IDL

IDL es un lenguaje "neutral" para definición de interfases. Como tal, tiene declaraciones pero no tiene sintaxis de control (for, do while, etc). Bajo CORBA, usted describe su interfase utilizando IDL y utiliza el compilador de IDL para crear clases de apoyo a su implementación, y clases auxiliares para que los clientes puedan crear instancias del objeto.

Para más información usted puede buscar todas las características de Visibroker en internet o en su ayuda “vbcpp.html” que se encuentra en el directorio donde se instalara Visibroker, está en inglés.

Page 4: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

4

Instalando lo necesario

Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como:

C++Borland 5

Inprise-VisiBroker para C++

Java Runtime Empecemos con la instalación de C++Builder 5. La instalación es típica, es decir lo de siempre a excepción de que nos pide la opción de instalar VisiBroker para C++, marcamos Install VisiBroker for C++Builder y Java Runtime.

Si tenemos instalado Java Runtime o “jdk-6u17-windows-i586” u otra versión sólo nos mostrará la siguiente ventana.

Todo lo mostrado será en caso de no tener instalado C++Builder 5, pero si ya lo tenemos instalado (que es lo más seguro), lo instalamos de manera independiente desde el CD-ROM, el archivo se encuentra en la raíz. Se detalla en las ventanas de la siguiente página.

Ahora ya tenemos lo necesario para empezar a implementar la aplicación, tenemos casi todo, pero nos falta la idea a implementar.

La idea a implementar es, un sistema de cobro para una gasolinera, contendrán dos puntos de cobro, luego tendrá que mostrar el parcial de dinero cobrado por punto como también el total de los puntos de cobro, algo simple pero cotidiano

Así que empecemos por analizar las funcionalidades de nuestra aplicación, tanto el servidor como el cliente.

Page 5: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

5

Empecemos

Analizando el servidor: será quien controle las sumas de cada punto para luego mostrarlo. El cliente: será quien enviara la información ingresada por el empleado, para luego ser procesada por el servidor y posteriormente recibir la respuesta del servidor.

Para implementar nuestro servidor. Iniciamos C++Builder 5, al iniciar nos mostrara un formulario vacio

con su correspondiente código, clic en File→Close All, luego aparecerá un mensaje pidiendo si desea

guardarlo, clic en “No”.

Ahora File→New, elegimos el siguiente ítem que se muestra en la imagen de la siguiente página,

posteriormente pedirá que tipo de aplicación queremos implementar (Console/Window) como también si deseamos agregar un IDL existente o Adicionar un nuevo IDL, la respuesta a todos estas opciones se les muestra en la imagen de la siguiente página. Prácticamente ya tenemos implementado el servidor, solo falta ingresar los métodos que pondremos a servicio para los clientes (puntos de cobro), en comparación a JAVA, en C++Builder es más fácil la implementación. En este articulo podrán ver la facilidad de implementar CORBA, luego les mostrare las grandes ventajas que tiene CORBA como también las desventajas.

Page 6: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

6

Por último nos mostrara el código generado para nuestro servidor con su IDL correspondiente, como se muestra en la imagen, ahora debemos implementar el IDL.

Como podrán observar, hace uso de un IDL llamado “File1.idl”, si hacen clic en esa pestaña, verán que no hay nada de código, es ahí donde debemos ingresar las siguientes líneas a nuestro IDL.

Page 7: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

7

Guardamos todo el proyecto, yo cambie el nombre “File1.idl” por “gasolina.idl”. Ahora necesitamos crear el stub y el skeleton, para ello tenemos que compilar el proyecto para luego implementar cada método que hemos definido en el código IDL.

Si no compila el proyecto correctamente y nos muestra el siguiente error.

Debemos crear el directorio, es decir: crear una carpeta con el nombre de “classic” y luego copiar el archivo jvm.dll de la carpeta “server” y pegarla en la carpeta “classic”. Con todo esto, el proyecto se compilara correctamente.

Luego de haber compilado correctamente el proyecto, visibroker nos genera todo el código necesario, y creara otros archivos, que no nos importa su contenido, si gusta ver… Los archivos que se crearan son los siguientes.

Ahora ya tenemos los archivos necesarios para empezar a implementar el contenido de cada método

que habíamos definido en el código IDL. Para ello debemos hacer clic en File→New luego elegir el

ítem “CORBA Object Implementation”, luego debemos elegir el IDL a implementar, el asistente por defecto localizara los IDL’s que se encuentra en la carpeta donde se ha guardado el proyecto, todo se muestra en las imágenes de la siguiente página.

Page 8: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

8

Nos generó dos archivos, donde debemos ingresar las funcionalidades de nuestros métodos.

Page 9: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

9

El otro archivo lo podremos ver haciendo doble clic en:

Necesitamos variables globales para poder acumular el subtotal de cobro de los dos puntos de cobro, como también el número de puntos máximo que permitirá que ingrese, para ello ingresamos el siguiente código en el archivo anteriormente mostrado.

Hay varias formas de implementar este tipo de aplicaciones, algunos implementan primero el servidor luego el cliente, yo prefiero implementarlo paralelamente, para tener un mayor entendimiento y prevenir errores de lógica, claro que antes de crear los IDL’s debemos analizar perfectamente la idea. Suponiendo que luego de haber creado los IDL’s, generado el stub y skeleton y la implementación de los objetos, vemos que es necesario ingresar otro método, ya es muy tarde, nos dará muchos errores si ingresamos este método que hacía falta, la solución es empezar de nuevo, esa es una de las desventajas. Empecemos con el servidor, hacemos clic en “puntodecobroServer.cpp” e ingresamos las siguientes líneas de código.

Page 10: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

10

Compilamos el proyecto, aparecerá una aplicación de consola, por el momento nuestro servidor no trabaja eficientemente, porque nuestro servidor busca ser representado en la red y busca a este agente cada 15 segundos (normalmente) y eso es un problema, por ello necesitamos un agente inteligente de Visibroker llamado “osagent.exe”, lo encontramos en el directorio donde está instalado el VisiBroker, en la carpeta bin.

puntodecobroImpl::puntodecobroImpl(const char *object_name):

_sk_gasolina::_sk_puntodecobro(object_name)

{//iniciamos las variables donde se acumularan los cobros

numeropunto=0; cobropto1=0;

cobropto2=0;

}

CORBA::Float puntodecobroImpl::asignarnumcaja()

{

//asignamos el numero de caja, máximo estas permitido 2 puntos

if(numeropunto<2)

numeropunto=numeropunto+1;

else

numeropunto=0;

return numeropunto;

}

CORBA::Float puntodecobroImpl::cobrar(CORBA::Float _litros,

CORBA::Float _caja)

{

calculamos el cobro, suponiendo que el litro es Bs.3

cobro=_litros*3;

if(_caja==1) // si es caja 1 se acumula en cobropto1

cobropto1=cobropto1+cobro;

if(_caja==2)// si es caja 2 se acumula en cobropto2

cobropto2=cobropto2+cobro;

return cobro; //y retornamos el cobro correspondiente

}

CORBA::Float puntodecobroImpl::subtotal1()

{

return cobropto1; //retornamos todos los cobros del punto1

}

CORBA::Float puntodecobroImpl::subtotal2()

{

return cobropto2; //retornamos todos los cobros del punto2

}

CORBA::Float puntodecobroImpl::total()

{

return cobropto1+cobropto2; //retornamos los cobros totales de cada punto

}

Page 11: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

11

Ejecutamos el osagent.exe, en este asistente podemos configurar nuestras preferencias, una de ellas es… cuantos clientes como máximo pueden comunicarse con el servidor, por defecto tiene la propiedad “Sin límite”. Con el osagent.exe en ejecución ahora podemos ejecutar nuestro servidor, funcionara perfectamente, hemos acabado de implementar nuestro servidor, ahora empecemos con nuestro cliente. Para implementar la aplicación del cliente, abramos otra ventana de C++Builder e iniciemos un nuevo proyecto.

Empecemos implementando el cliente, File→New, luego elegimos la pestaña “Multitier” y luego

“CORBA Client”. Luego elegimos el IDL a usar, buscamos el archivo “gasolina.idl”, todo esto se muestra en las siguientes imágenes.

Ahora empecemos la creación de los objetos, para ello clic en Edit y luego Use CORBA Object…

Page 12: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

12

El asistente genera el código que se mostro anteriormente. Diseñemos el formulario.

Page 13: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

13

Para verificar si el servidor nos responde, en el evento del formulario OnCreate escribimos:

Siempre es bueno trabajar con excepciones, tratamos de que el servidor nos dé una respuesta (try), en este caso el servidor nos tiene que asignar un numero de caja, en caso de que el servidor no responda mostramos el mensaje “NO EXISTE CONEXIÓN CON EL SERVIDOR” y terminamos la aplicación. Llamamos al método asignarnumcaja, la forma de llamarlo es

puntodecobro_→asignarnumcaja(); y para llamar a otros métodos es

puntodecobro_→xxxxx(ppp); donde “xxxxx” es el nombre del método puesto en servicio y “ppp”

son los parámetros que recibe el método. Ahora, en el botón en su evento OnClick, realizamos el cobro correspondiente y al mismo tiempo actualizamos el cobro total de esta caja, se muestra en la siguiente imagen. En el evento OnTimer del Control Timer, actualizamos los cambios que se hacen de los dos puntos de cobro para luego mostrar la suma de los puntos, es decir el total. Antes de compilar el proyecto guardemos el proyecto como también verificar que el servidor este arriba (en ejecución).

Controles Necesitamos

• TEdit *EditLITRO;

• TLabel *Label1;

• TButton *btnCOBRAR;

• TLabel *Label2;

• TLabel *lblPRECIO;

• TLabel *lblCAJA;

• TLabel *Label3;

• TLabel *lblSUBTOTAL;

• TLabel *lblnumerocaja;

• TLabel *Label4;

• TLabel *lblTOTAL;

• TTimer *Timer1;

Page 14: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

14

A compilar el proyecto…!!!!! Ahora verán que el servidor les asignará un número de caja, máximo permite 2 cajas y si pasa de dos la aplicación termina.

Vemos en ejecución al servidor y al cliente, se ingresan algunos datos y el servidor responde, en la caja 2 se manda 2 litros y el servidor responde que Bs.6 es lo que se debe cobrar, como también devuelve el cobro total de la caja que es Bs.42 y el total el cual debe actualizarse en las dos cajas (Bs.39+Bs.42=Bs.81). Básicamente esta es la funcionalidad, a esto podríamos agregarle detalles, reporte del día, impresión,

El servidor en ejecución Aplicación del Cliente

El servidor nos asigna la caja 1

El servidor nos asigna la caja 2

El servidor nos limita el número de

cajas y termina la aplicación

Se manda al servidor “3” litros y

devuelve “9” (3 litros * bs.3) que

es lo que se tiene que pagar

Page 15: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

15

más cantidad de cajas… etc, pero eso se los dejo a ustedes. Adornando un poquito la aplicación del cliente tenemos…

Finalmente terminamos con la implementación, podemos ampliar a una aplicación con base de datos, como anteriormente dije, eso se les dejo a ustedes. Como otros ejemplos de implementación, les mostrare algunas aplicaciones que hice con Corba. Todos conocemos el msn o algún programa para “chatear”, claro que necesitamos internet para ello, pero que tal si no tenemos acceso a internet y queremos chatear en una LAN, puede ser en una organización u otro lugar con muchas computadoras conectadas entre sí. Esa es la labor de esta aplicación, es una aplicación que permite conversar entre usuarios, hice 2 versiones, la primera es como un foro es decir: todos los usuarios conectados ven todo lo que escriben (chat publico). Y la otra versión es punto a punto, o también decir es privado estilo msn (chat privado).

Page 16: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

16

Page 17: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

17

Cuando salen de la aplicación se avisa a los demás.

Page 18: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

18

La versión privada tiene un destinatario, donde se puede elegir a quien mandar el mensaje.

Como habrán visto en algunas entidades bancarias o la prefectura, existe un sistema de ticket’s donde hay 3 tipos de clientes, 1) el que reparte los ticket’s. 2) el cajero que va llamando a los ticket’s y atendiendo. 3) Las personas que están viendo una pantalla, esperando ser atendidas por los cajeros según su número de ticket. Una aplicación muy interesante. En esta aplicación tenemos que considerar 3 aplicaciones de tipo cliente y un servidor quien

Page 19: RESUMEN SISTEMAS DISTRIBUIDOS CORBA · Instalando lo necesario Antes de empezar a implementar la aplicación, necesitamos algunas herramientas como: C++Borland 5 Inprise-VisiBroker

Universidad Técnica de Oruro Facultad Nacional de Ingeniería Ingeniería Informática

Ariel Richard Condori Rodriguez

19

controlara el número de ticket’s, ver qué número está siendo atendido y porque número de caja está siendo atendido, a su vez mostrar a las personas que ticket’s están siendo atendidas y llamar a los siguientes ticket’s. El destino de esta aplicación seria para el TESORO UNIVERSITARIO. Aparentemente parece simple, pero no es tan simple…

Ventajas y Desventajas

Ventajas Provee soporte a través de varias plataformas, Unix, Linux, Solaris, Windows… Abstrae a la aplicación, el programa ni siquiera sabe dónde está el objeto al que llama. Se puede programar en varios lenguajes. Es un estándar para todas las plataformas. Buena infraestructura para construir aplicaciones distribuidas. Adaptación a Lenguajes de Programación. Es posible emplear los servicios de CORBA desde

cualquier lenguaje de programación. No tenemos que especificar alguna IP de localización de host o servidor como lo hace RMI,

RPC o los Socket’s. Desventajas

Hay servicios básicos, pero pocos servicios avanzados. Hay limitadas herramientas de desarrollo. CORBA es muy grande, un fallo en CORBA podría ser difícil de detectar. No es la tecnología más sencilla de utilizar. Las especificaciones tardan en desarrollarse, y en consecuencia las implementaciones tardan

en salir al mercado. Si una especificación es añadida después de su creación del skeleton y stub, provoca errores,

la solución es empezar de nuevo.

Consejos extras Tomarse el tiempo necesario para entender las especificaciones, para prevenir errores de lógica. Antes de implementar, representar los métodos del servidor, como que parámetros recibirá, si devolverá algún valor, que tipo de dato devolverá, etc… Y al mismo tiempo el diseño de las interfaces de la aplicación para ver como interactúa los controles con los métodos puestos en servicio. Claro todo esto dibujado en un papel, o con la ayuda de algún software como por ejemplo Enterprise Architect para que luego nuestra implementación sea limpia. Un consejo súper extra, nuestra herramienta fundamental son nuestros IDE’s, configuren sus IDE’s, que su editor sea un color oscuro, negro, azul, etc… cuidemos nuestros ojos, los colores claros como el blanco daña nuestra vista.

Autor

Ariel Richard Condori Rodríguez

Estudiante de Ingeniería Informática [email protected]