PDF de programación - Corba y C++ Builder 5

Imágen de pdf Corba y C++ Builder 5

Corba y C++ Builder 5gráfica de visualizaciones

Publicado el 19 de Junio del 2020
671 visualizaciones desde el 19 de Junio del 2020
2,9 MB
19 paginas
Creado hace 13a (26/01/2011)
Universidad Técnica de Oruro
Facultad Nacional de Ingeniería
Ingeniería Informática



RESUMEN



1



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

Ariel Richard Condori Rodriguez

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


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.


2

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.

Ariel Richard Condori Rodriguez

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


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.


3

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

Invocación estática y dinámica

- Repositorios de interfaces
-
- 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.



Ariel Richard Condori Rodriguez

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


Instalando lo necesario

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


4

 C++Borland 5

 Java Runtime

Inprise-VisiBroker para C++


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.

Ariel Richard Condori Rodriguez

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



Empecemos


5



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.

Ariel Richard Condori Rodriguez

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



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
  • Links de descarga
http://lwp-l.com/pdf17799

Comentarios de: Corba y C++ Builder 5 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad