1. INTRODUCCIÓN 

  En este documento se pretende analizar dos especificaciones diferentes de sistemas operativos distribuidos, como son CORBA y DCE. Para ello examinaremos cada especificación con el fin de poder entender mejor la posterior comparación de los dos sistemas.
Pero antes de comenzar el análisis de CORBA y DCE introduciremos algunos conceptos clave para estas especificaciones.
 

1.1. OMG

El Object Management Group es una organización sin ánimo de lucro dedicada a la promoción de la teoría y la práctica de la Tecnología de los Objetos para el desarrollo de los sistemas operativos distribuidos.
El OMG se fundó con la intención de reducir la complejidad, bajar los costes y agilizar la introducción de nuevas aplicaciones software.

Además OMG se dedica al desarrollo de modelos de comandos e interfaces comunes para el desarrollo y uso de aplicaciones distribuidas a gran escala utilizando la metodología orientada a objeto y basándose en especificaciones de interface ya muy extendidas.

En 1990, OMG publicó la Object Management Architecture (OMA) Guide, en el que se mostraba una única terminología para lenguajes, sistemas, bases de datos... orientados a objeto, un esquema de la estructura de los sistemas orientados a objeto, un conjunto de metas tanto técnicas y arquitectónicas, y una arquitectura (modelo de referencia) para aplicaciones distribuidas utilizando técnicas orientadas a objeto. Para la creación de este modelo de referencia se definieron cuatro áreas de estándarización:

             1) El Object Request Broker (ORB), elemento clave de la comunicación, para el manejo de mensajes entre objetos de aplicaciones de forma altamente interoperable.

            2) El Object Model, para comunicaciones con sistemas orientados a objeto conformes con OMG,

            3) Los Object Services, que proveerán las funciones principales para asegurar las funcionalidades básicas de los objetos usando el ORB,

            4) Las Common Facilities formadas por las facilidades que son usadas por muchas aplicaciones y las que estarán disponibles a través de las interface de clases de OMA.

  En 1991, OMG adoptó la primera tecnología de interface para el ORB del modelo de referencia. Esta tecnología incluía interfaces estáticas y dinámicas para el manejo de peticiones entre aplicaciones.

 Con el fin de servir a sus miembros interesados en otras áreas de los sistemas orientados a objeto, paralelamente al problema de los sistemas distribuidos, el OMG mantiene abiertos Grupos para la discusión de posibles estándares en otras áreas.
En estos momentos esos grupos son:

            a) Bases de datos Orientadas a Objeto
            b) Lenguajes Orientados a Objeto
            c) Requerimientos del usuario final
            d) Procesamiento paralelo
            e) Análisis y Diseño de Metodologías
            f) Smalltalk
            g) Class Libraries 

Cualquier empresa, universidad, instituto de investigación o individuo (ya sea usuario final o vendedor) puede convertirse en miembro de esta asociación.
Actualmente el OMG está formado por unos 600 socios entre vendedores, desarrolladores de software y usuarios finales.
 

1.2. OSF - OPENGROUP

La Open Sotware Foundation es una organización dedicada a la promoción de los sistemas operativos distribuidos, desde un punto de vista diferente al de la OMG.
Entre los miembros del consorcio OSF se encuentran IBM, HP y DEC.
Las tecnologías que aplican no son orientadas a objeto, y fruto de su trabajo es la especificación DCE.

En enero de 1992 la OSF difunde la especificación DCE 1.0. Además se incluye un modelo de referencia para los vendedores.
Hacia 1993 estuvo disponible la primera implementación de DCE.
Durante 1994 OSF lanzó la versión 1.1 de DCE a los vendedores que llevaron a cabo la implementación de las mismas a mediados de 1995.
La versión de DCE 1.2 se lanza en dos fases: DCE 1.2.1 en noviembre de 1995 y DCE 1.2.2. en Julio de 1996. Los temas principales de esta actualización son administración, facilidad de programación, soporte a legalidad de sistemas, escalabilidad, seguridad y mejoras de DFS.
 

1.3. SISTEMAS OPERATIVOS DISTRIBUIDOS

La necesidad de compartir recursos de diferentes usuarios en diferentes máquinas hizo surgir los Sistemas Operativos Distribuidos, que permiten dividir la carga de trabajo de un máquina entre varias llevando a cada una la parte de trabajo que más se adecua a su capacidad, todo esto de forma transparente al usuario, de forma que él perciba una sola máquina cuando en realidad está utilizando una red de computadoras.

En dicha red, existe un único sistema operativo, de forma que cada máquina ejecuta una pequeña parte de dicho sistema. Todas las máquina trabajan coordinadamente para obtener la más eficiente compartición de recursos.
La clave de los sistemas operativos distribuidos es el manejo global del conjunto de llamadas al sistema. En cada máquina se ejecutan copias idénticas del mismo kernel.
Ante la aparición de un fallo un Sistema Operativo Distribuido ha de ser capaz de reconfigurar el sistema para que todos los usuarios puedan continuar con su trabajo, aunque es posible que después de esta recuperación las prestaciones del sistema se hayan visto degradadas.
 
La diversidad tanto de software como de hardware hace cada día más complejo nuestro entorno de red, lo que dificulta la homogeneización de dicho entorno. Algunos de los problemas que se nos presentan son los siguientes:

    - Es difícil que distintos hardwares trabajen juntos, necesitamos distintos tipos de maquinas y varios sistemas operativos trabajando en un mismo proyecto.

    - Necesitamos obtener software capaz de compenetrarse con distintas aplicaciones de diferentes distribuidores, que sea capaz de ejecutarse en diferentes sistemas operativos. El coste de compatibilizarlos es muy alto

    - El desarrollo de software es muy costoso tanto en tiempo como en dinero. Los proyectos software suelen comenzarse desde cero lo que en aplicaciones pequeñas resulta aceptable; sin embargo en grandes aplicaciones esto aumenta gravemente el coste, lo ideal seria construir todo nuestro software bajo una base común que facilite la reutilización y compatibilidad de unas aplicaciones con otras. 

Todos estos problemas han de verse solventados por los Sistemas Operativos Distribuidos que diseñemos. Los objetivos que se persiguen son:

                                        1. Transparencia
                                        2. Fiabilidad
                                        3. Flexibilidad
                                        4. Prestaciones
                                        5. Escalabilidad
                                        6. Heterogeneidad
                                        7. Seguridad
                                        8. Emulación de Sistemas Operativos ya existentes.
 

 1.4. LA TECNOLOGÍA ORIENTADA A OBJETO

Los objetos son componentes discretos de software que describen distintos tipos de datos y ofrecen ciertos servicios para manipular dichos datos ocultando al exterior la implementacion de dichos datos y de sus operaciones.

Normalmente los objetos modelan a objetos del mundo real, aunque también pueden modelar a "entidades de computación" que necesitemos crear para nuestras aplicaciones.

Los objetos se crean a partir de templates (plantillas), en realidad lo que creamos son instancias a dichas plantillas en las que indicamos los valores que queremos dar a los diferentes componentes que nos provee el template para crear el objeto concreto.
La plantilla conoce todas las propiedades y servicios que tendrá el objeto, los mensajes que podrá recibir y los que podrá enviar para comunicarse con otros objetos.

Se pueden crear tantos objetos como se deseen instanciando al template. Todos los objetos que se creen a partir de una misma plantilla tendrán las mismas propiedades.
A cada tipo de template se le llama clase. Podemos construir distintas clases a partir de una ya existente usando la herencia.
Para trabajar con objetos de forma eficiente el cliente debe saber exactamente que debe esperar de cada objeto.
Podemos hablar también de objetos distribuidos, que no son más que objetos que pueden ser accedidos remotamente. Un objeto distribuido puede ser utilizado como un objeto corriente, pero desde cualquier punto de la red.

Algunas de las razones que nos empujan al uso de objetos distribuidos son:

    - Permiten compartir información a varios usuarios y distintas aplicaciones.
    - Permiten sincronizar actividades en varias máquinas.
    - Aumentan las prestaciones asociadas a una determinada tarea.
    - Permiten el trabajo en equipo a personas que se encuentran en diferentes ciudades.
    - Permiten la alteración de procesos que los usan sin alterar a otras aplicaciones que también hacen uso de ellos.

No obstante, no todos los objetos deben ser distribuidos, esto provocaría graves problemas en las prestaciones de nuestro sistema. Tan sólo debemos implementar objetos distribuidos cuando sea necesario.
 

[siguiente]     [indice general]

Autor: Susana Abadín Izquierdo 
313586@cepsz.unizar.es 
Fecha de creación: 23 de julio de 1998 
Última modificación: 31 de julio de 1998 
 
  1