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.
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 |