DE COMPUTACIÓN Hace unos cuantos años los equipos que trabajaban aislados unos de otros, que se basaban en aplicaciones de software que cumplirían un propósito específico. YIM ISAIAS APESTEGUI FLORENTINO 3
Compartir algunos datos entre estos sistemas era
escaso y de hacerse se hacía por los métodos rústicos del momento. Se llevaba físicamente los medios de almacenamiento como tarjetas, cintas discos de un sistema a otro. YIM ISAIAS APESTEGUI FLORENTINO 4
Con la industria militar, el siguiente paso sería
conectar los anteriores sistemas a través de las redes bajo la configuración de los distintos protocolos de comunicación. Unos protocolos se estandarizaron. Las diferentes configuraciones que se hacían dependerían del costo de inversión que pretendería hacer. YIM ISAIAS APESTEGUI FLORENTINO 5
De la mano de la tecnología física de información
también fueron creciendo los distintos lenguajes que gestionarían dicha maquinaria.
1.- Programación estructurada
2.- Programación Modular y 3.- Programación orientada a objetos. YIM ISAIAS APESTEGUI FLORENTINO 6
Surge la herencia de tecnología
Sin embargo, aún hoy con métodos de
programación orientada a objetos, no se ha logrado el objetivo pleno: Que a bajos costos se obtenga varios componentes software que se integren para varias plataformas y tecnologías, en un solo sistema complejo. YIM ISAIAS APESTEGUI FLORENTINO 7
En la búsqueda de encontrar el mecanismo de
cubrir el estándar de interfaces que sean abiertas a varios sistemas, se destacan:
Microsoft COM+, COM, DCOM
Sun Microsystems, Java Beans Object Group CORBA (Common Request Broker Architecture) YIM ISAIAS APESTEGUI FLORENTINO 8
CORBA, ofrece servicios de interconexión e
interoperabilidad de objetos, servicios conocidos como middleware, desde sus comienzos CORBA se plantea como objetivo la interconexión abierta de distintos lenguajes, plataformas e implementaciones, asegurando los estándares necesarios para lograr interoperabilidad en todos los niveles del mercado de objetos. YIM ISAIAS APESTEGUI FLORENTINO 9
CORBA está constituido en esencia por tres
componentes: El primero es un conjunto de interfaces de invocación. El segundo el Object request broker (ORB) El tercero un conjunto de adaptador de objetos (Objects adapters). YIM ISAIAS APESTEGUI FLORENTINO 10
Para un ambiente de sistemas donde actúe CORBA,
se tendrá que para cada implementación de objeto, se define una interface a través de la especificación normalizada conocida como IDL (Interface Definition Language) : que es suma un archivo con el equivalente a un archivo de cabecera en C++, en el que se definen las clases y las propiedades (variables de la clase) y métodos de esas clases. YIM ISAIAS APESTEGUI FLORENTINO 11
IDL no es un lenguaje para implementar
interfaces CORBA, sino que es un lenguaje que llega a definir interfaces CORBA Similar a un archivo de cabecera de C++, donde, normalmente, no se incluye ninguna implementación, sino simplemente definiciones. El archivo IDL es el que establece el contrato de comunicación entre los objetos y las aplicaciones que hagan uso de ellos. YIM ISAIAS APESTEGUI FLORENTINO 12
Sesión 2
ESTRUCTURA DE CORBA YIM ISAIAS APESTEGUI FLORENTINO 13
Corba llega así a proveer más allá de los servicios
middleware, llegando con una infraestructura framework para construir aplicaciones orientadas a objetos. De esta manera las interfaces definen los servicios que prestan los objetos, luego el ORB se encarga de la localización e invocación de los métodos sobre los objetos y el object adapter es aquel que liga la implementación del objeto con el ORB. YIM ISAIAS APESTEGUI FLORENTINO 14
Como una introducción a lo que en esencia es
CORBA se tendría que esta es un Middleware, o marco de trabajo estándar y abierto de objetos distribuidos que permite a los componentes en la red ínter operar en un ambiente común sin importar el lenguaje de desarrollo sistema operacional, tipo de red, responde así a la necesidad de interoperabilidad ante la gran proliferación de productos en el mercado hardware y software. YIM ISAIAS APESTEGUI FLORENTINO 15
CORBA automatiza muchas tareas comunes y
“pesadas” de programación de redes tales como registro, localización y activación de objetos; manejo de errores y excepciones; codificación y decodificación de parámetros, y protocolo de transmisión. YIM ISAIAS APESTEGUI FLORENTINO 16
Para un ambiente de sistemas donde actúe CORBA,
se tendrá que para cada implementación de objeto, se define una interface a través de la especificación normalizada conocida como IDL (Interface Definition Language) : que es suma un archivo con el equivalente a un archivo de cabecera en C++, en YIM ISAIAS APESTEGUI FLORENTINO 17
el que se definen las clases y las propiedades
(variables de la clase) y métodos de esas clases.
IDL no es un lenguaje para implementar
interfaces CORBA, sino que es un lenguaje que llega a definir interfaces CORBA Similar a un archivo de cabecera de C++, donde, normalmente, no se incluye ninguna implementación, sino simplemente definiciones. YIM ISAIAS APESTEGUI FLORENTINO 18
El archivo IDL es el que establece el contrato de
comunicación entre los objetos y las aplicaciones que hagan uso de ellos. Así, este archivo es lo único que necesita una aplicación cliente para acceder a los objetos, pues a partir de ella podrá generar los cabos y esqueletos para el lenguaje que vaya a ser usado para la implementación de los clientes. YIM ISAIAS APESTEGUI FLORENTINO 19
El cliente no necesitará de unas librerías
específicas desarrolladas para acceder a los objetos, sino que simplemente necesitará la definición de las interfaces implementadas por nuestros objetos. CORBA se encarga del resto, a través del IDL en forma Estática al momento de compilación, o en forma Dinámica al momento de ejecución un Cliente que requiera el servicio de una Implementación de Objeto, podrá ser ejecutado. YIM ISAIAS APESTEGUI FLORENTINO 20
Las invocaciones a métodos remotos son enviados
por los clientes llamando objetos locales llamados “Stubs”, el cual intercepta dichas invocaciones y continúa el proceso de llevar y retornar automáticamente dicha invocación. La Implementación del objeto, no tiene que conocer el mecanismo por el cual un Cliente le ha invocado un servicio. YIM ISAIAS APESTEGUI FLORENTINO 21
CORBA está fundamentado en dos modelos:
Un modelo de Objetos, el cual agrega todas las características de la teoría orientada a objetos como lo son los tipos de datos, abstracción, herencia polimorfismo, además se fundamenta en un modelo de referencia o arquitectura conocida como Object Management Architecture., que es una entidad sin ánimo de lucro que desarrolla especificaciones independientes de cualquier YIM ISAIAS APESTEGUI FLORENTINO 22
proveedor en la industria del software; y
actualmente esta entidad tiene más de 800 miembros. La OMG se perfila para llegar a establecer a CORBA como el “//Middleware que está en todas partes de los sistemas del mundo//” a través de sus especificaciones CORBA/IIOP.
La OMG está estructurado en tres grandes frentes:
YIM ISAIAS APESTEGUI FLORENTINO 23
El Comité de Plataforma Tecnológica (PTC), el
Comité de Dominio Tecnológico (DTC) y la Junta de Arquitectura (Architecture Board). Dentro de los Comités Técnicos y Junta de Arquitectura, trabajan las Fuerzas de Trabajo, Grupos de Interés especial y Grupos de Trabajo quienes llevan a cabo los procesos de adopción tecnológico de la OMG. YIM ISAIAS APESTEGUI FLORENTINO 24
El modelo de referencia de OMA está compuesto
por los elementos de: 1.)Object Request Broker – ORB, que representa el medio o bus de objetos a través del cual se comunican todos los objetos participantes en el sistema, es el núcleo de comunicaciones del estándar, provee la infraestructura que permite a objetos comunicarse, independiente de la YIM ISAIAS APESTEGUI FLORENTINO 25
plataforma específica y técnicas que se usen para
implementar el objeto. 2.) Objetos de Servicio - CORBAServices: conjunto de objetos genéricos, que se usan como soporte para tareas comunes pr programas distribuidos. 3.) Objetos de Dominio – CORBADomain : conjunto de objetos que son comunes y estándares dentro de un dominio o mercado de aplicación. YIM ISAIAS APESTEGUI FLORENTINO 26
4.) Facilidades Comunes - CORBAFacilities:
conjunto de objetos orientados hacia las aplicaciones de usuario final como Administración de datos, aplicaciones, interfaces de usuario. 5.) Objetos de Aplicación: objetos de aplicación desarrollados por los programadores. YIM ISAIAS APESTEGUI FLORENTINO 27
En suma CORBA es una tecnología que oculta la
programación a bajo nivel de aplicaciones distribuidas, de tal forma que el programador no se tiene que ocupar de tratar con sockets, flujos de datos, paquetes, sesiones etc. CORBA oculta todos estos detalles de bajo nivel. YIM ISAIAS APESTEGUI FLORENTINO 28
No obstante CORBA también brinda al
programador una tecnología orientada objetos, las funciones y los datos se agrupan en objetos, estos objetos pueden estar en diferentes máquinas, pero el programador accederá a ellos a través de funciones normales dentro de su programa. 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 YIM ISAIAS APESTEGUI FLORENTINO 29
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.