miércoles, 1 de octubre de 2008

Protocolo

Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Se requieren dos partes:

Especificación de la secuencia de mensajes que se han de intercambiar.

Especificación del formato de los datos en los mensajes.
Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse independientemente, y por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes. Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor.

Ejemplos de protocolos usados en los sistemas distribuidos:

IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la unidad básica de transferencia de datos y se encarga del direccionamiento de la información, para que llegue a su destino en la red.

TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte, que permite dividir y ordenar la información a transportar en paquetes de menor tamaño para su transporte y recepción.

HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el cliente WEB y los servidores.

SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de aplicación, que permite el envío de correo electrónico por la red.

POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo recuperar los correos que están almacenados en el servidor.

Componentes de Software

Se distinguen tres componentes básicos de software:

Presentación:Tiene que ver con la presentación al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor.

Lógica de aplicación:Esta capa es la responsable del procesamiento de la información que tiene lugar en la aplicación.

Base de datos: Esta compuesta de los archivos que contienen los datos de la aplicación.

Categorías de Servidores:

Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía.

Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la información que se envía está ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al cliente.

Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo.

Servidores WEB.- Son los que guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y envía la página correspondiente.

Servidores de correo.- Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo.

Servidor de objetos.- Permite almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor.

Servidores de impresión.- Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión.

Servidores de aplicación.- Se dedica a una única aplicación. Es básicamente una aplicación a la que pueden acceder los clientes.

Desventajas de la distribución de los datos

La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinación adecuada entre localidades.
El aumento de la complejidad se refleja en:

Coste del desarrollo de software: es más difícil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor

Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es más difícil garantizar que los algoritmos sean correctos.

Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.

Ventajas de la distribución de datos

La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la información de una forma fiable y eficaz.

Utilización compartida de los datos y distribución del control
La ventaja principal de compartir los datos por medio de la distribución es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseño del sistema distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se conoce como autonomía local. La posibilidad de contar con autonomía local es en muchos casos una ventaja importante de las bases de datos distribuidas.

Fiabilidad y disponibilidad
Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.
El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.

La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.

Agilización del procesamiento de consultas
Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, así que no todas las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que hay repetición de los datos, el sistema puede pasar la consulta a las localidades más ligeras de carga.

Estructura de Base de Datos Distribuidas

Un sistema distribuido de base de datos consiste en un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicación entre ellas.

Las localidades pueden conectarse físicamente de diversas formas, las principales son:
Red totalmente conectada
Red prácticamente conectada
Red con estructura de árbol
Red de estrella
Red de anillo

Las diferencias principales entre estas configuraciones son:
Coste de instalación: El coste de conectar físicamente las localidades del sistema.

Coste de comunicación: El coste en tiempo y dinero que implica enviar un mensaje desde la localidad A a la B.

Fiabilidad: La frecuencia con que falla una línea de comunicación o una localidad.

Disponibilidad: La posibilidad de acceder a información a pesar de fallos en algunas localidades o líneas de comunicación.

Las localidades pueden estar dispersas, ya sea por un área geográfica extensa (a lo largo de un país), llamadas redes de larga distancia; o en un área reducida (en un mismo edificio), llamadas redes de área local. Para las primeras se utilizan en la comunicación líneas telefónicas, conexiones de microondas y canales de satélites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda ancha y fibra óptica.

Bases de Datos Distribuidas

En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican entre sí a través de diversos medios de comunicación, tales como cables de alta velocidad o líneas telefónicas. No comparten la memoria principal ni el reloj.

Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función. Pueden incluir microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores.

Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades.

Ventajas de las VPN

Integridad, confidencialidad y seguridad de datos.

Las VPN reducen los costes y son sencillas de usar.

Facilita la comunicación entre dos usuarios en lugares distantes.

Tipos de VPN

VPN de acceso remoto

Es quizás el modelo más usado actualmente y consiste en usuarios o proveedores que se conectan con la empresa desde sitios remotos (oficinas comerciales, domicilios, hoteles, aviones preparados, etcétera) utilizando Internet como vínculo de acceso. Una vez autentificados tienen un nivel de acceso muy similar al que tienen en la red local de la empresa. Muchas empresas han reemplazado con esta tecnología su infraestructura «dial-up» (módems y líneas telefónicas).

VPN punto a punto

Este esquema se utiliza para conectar oficinas remotas con la sede central de la organización. El servidor VPN, que posee un vínculo permanente a Internet, acepta las conexiones vía Internet provenientes de los sitios y establece el túnel VPN. Los servidores de las sucursales se conectan a Internet utilizando los servicios de su proveedor local de Internet, típicamente mediante conexiones de banda ancha. Esto permite eliminar los costosos vínculos punto a punto tradicionales, sobre todo en las comunicaciones internacionales. Es más común el punto anterior, también llamada tecnología de túnel o tunneling.

Tunneling
Internet se construyó desde un principio como un medio inseguro. Muchos de los protocolos utilizados hoy en día para transferir datos de una máquina a otra a través de la red carecen de algún tipo de cifrado o medio de seguridad que evite que nuestras comunicaciones puedan ser interceptadas y espiadas. HTTP, FTP, POP3 y otros muchos protocolos ampliamente usados, utilizan comunicaciones que viajan en claro a través de la red. Esto supone un grave problema, en todas aquellas situaciones en las que queremos transferir entre máquinas información sensible, como pueda ser una cuenta de usuario (nombre de usuario y contraseña), y no tengamos un control absoluto sobre la red, a fin de evitar que alguien pueda interceptar nuestra comunicación por medio de la técnica del hombre en el medio (man in the middle), como es el caso de la Red de redes.

El problema de los protocolos que envían sus datos en claro, es decir, sin cifrarlos, es que cualquier persona que tenga acceso físico a la red en la que se sitúan las máquinas puede ver dichos datos. De este modo, alguien que conecte su máquina a una red y utilice un sniffer recibirá y podrá analizar por tanto todos los paquetes que circulen por dicha red. Si alguno de esos paquetes pertenece a un protocolo que envía sus comunicaciones en claro, y contiene información sensible, dicha información se verá comprometida. Si por el contrario, se cifran las comunicaciones con un sistema que permita entenderse sólo a las dos máquinas que son partícipes de la comunicación, cualquiera que intercepte desde una tercera máquina los paquetes, no podrá hacer nada con ellos, al no poder descifrar los datos.

Una forma de evitar este problema, sin dejar por ello de utilizar todos aquellos protocolos que carezcan de medios de cifrado, es usar una técnica llamada tunneling. Básicamente, esta técnica consiste en abrir conexiones entre dos máquinas por medio de un protocolo seguro, como puede ser SSH (Secure SHell), a través de las cuales realizaremos las transferencias inseguras, que pasarán de este modo a ser seguras. De esta analogía viene el nombre de la técnica, siendo la conexión segura (en este caso de ssh) el túnel por el cual se envían los datos para que nadie más aparte de los interlocutores que se sitúan a cada extremo del túnel, pueda ver dichos datos. Este tipo de técnica requiere de forma imprescindible tener una cuenta de acceso seguro en la máquina con la que se quiere comunicar.

VPN interna WLAN

Este esquema es el menos difundido pero uno de los más poderosos para utilizar dentro de la empresa. Es una variante del tipo "acceso remoto" pero, en vez de utilizar Internet como medio de conexión, emplea la misma red de área local (LAN) de la empresa. Sirve para aislar zonas y servicios de la red interna. Esta capacidad lo hace muy conveniente para mejorar las prestaciones de seguridad de las redes inalámbricas (WiFi).

Un ejemplo clásico es un servidor con información sensible, como las nóminas de sueldos, ubicado detrás de un equipo VPN, el cual provee autenticación adicional más el agregado del cifrado, haciendo posible que sólo el personal de recursos humanos habilitado pueda acceder a la información.

Requerimientos Básicos

Identificación de usuario: Las VPN deben verificar la identidad de los usuarios y restringir su acceso a aquellos que no se encuentren autorizados.

Codificación de datos: Los datos que se van a transmitir a través de la red pública (Internet), antes deben ser cifrados, para que así no puedan ser leídos. Esta tarea se realiza con algoritmos de cifrado como DES o 3DES que solo pueden ser leidos por el emisor y receptor.
Administración de claves: Las VPN deben actualizar las claves de cifrado para los usuarios.

VPN (Red Privada Virtual)

La Red Privada Virtual (RPV), en inglés Virtual Private Network (VPN), es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada , como por ejemplo Internet.

Ejemplos comunes son, la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.

Para hacerlo posible de manera segura es necesario proporcionar los medios para garantizar la autenticación, integridad y confidencialidad de toda la comunicación:
Autenticación y autorización: ¿Quién está del otro lado? Usuario/equipo y qué nivel de acceso debe tener.

Integridad: La garantía de que los datos enviados no han sido alterados. Para ello se utiliza funciones de Hash. Los algoritmos de hash más comunes son los Message Digest (MD2 y MD5) y el Secure Hash Algorithm (SHA).

Confidencialidad: Dado que los datos viajan a través de un medio potencialmente hostil como Internet, los mismos son susceptibles de intercepción, por lo que es fundamental el cifrado de los mismos. De este modo, la información no debe poder ser interpretada por nadie más que los destinatarios de la misma.Se hace uso de algoritmos de cifrado como Data Encryption Standard (DES), Triple DES (3DES) y Advanced Encryption Standard (AES).

No repudio: es decir, un mensaje tiene que ir firmado, y el que lo firma no puede negar que el mensaje lo envió él.

Archivos Distribuidos

Un Sistema de Archivos Distribuido, es un administrador de recursos, y que es parte de un Sistema Operativo distribuido, puede ser compartido por todas las computadoras autónomas dentro del sistema.

El poder administrar sistemas de archivos remotos proporciona una ventaja muy grande a los Sistemas Operativos ampliando su capacidad de administración de recursos. Se tienen varios objetivos en un sistemas de este tipo:
Diversidad de aplicaciones.

Semántica del sistema de archivos (fase, simple, comprensible, pocos comandos).
Cumple con requerimientos de diferentes usuarios.
Nomenclatura consistente (el mismo nombre en cada sitio).
Transparencia de localización (mover un archivo sin cambiar su nombre y procesos involucrados).

Acceso transparente (acceso remoto igual a acceso local).
Consistencia de datos (garantizar integridad).

Consistencia de autentificación (reconocer identidad y derechos de usuarios y procesos).

Protección de información (protección contra accesos no autorizados).

Mobilidad de usuarios (acceso desde cualquier parte).

Rendimiento (mismo rendimiento que en sistemas convencionales).

Disponibilidad (baja aceptación de fallas).

Recuperación (Recuperación de procesos y servicios).

Escalabilidad (disponibilidad para crecer).

Adaptación a diferentes medios de almacenamiento (disponibilidad para adaptarse a diferentes sistemas de almacenamiento en software y hardware).

Servicios de un Sistema de Archivos

Los sistemas de archivos son considerados como uno de los componentes mas importantes de cualquier Sistema Distribuido. Debe tener conocimiento de cada uno de los sitios disponibles de información, de manera que los servicios sean transparentes para cualquier usuario.

En Sistemas Distribuidos se utilizan dos tipos de servicios:
Servicio de Archivos.- Es una especificación sobre el tipo de servicios de archivos que el sistema ofrece a los clientes, establece todas aquellas directivas sobre donde encontrar un archivo.
Servicio de Directorios.- Es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos de manera que podamos establecer ligas entre uno o más grupos de archivos (directorios). Un sistema puede tener uno o varios servidores de archivos que son transparentes para los clientes ya que no debe de conocer su posición.

Diseño de un Sistema de Archivos
Los sistemas de archivos distribuidos están compuestos de dos elementos importantes, como lo son el servicio de archivos y el de directorios (mencionados con anterioridad). Decíamos que el primero se encarga de las operaciones, en los archivos individuales, como la escritura, lectura y adición, mientras que el segundo se encarga de crear y administrar directorios, además de añadir y eliminar archivos en los directorios.

Interface De Un Servicio De Archivos
La Interface de un Servicio de Archivos proporciona toda la información necesaria sobre cada archivo individual como pueden ser sus atributos.
La función más importante de un servicio de archivos corresponde a su mantenimiento, ya que este servicio se encarga de todas las operaciones disponibles de lectura y escritura como pueden ser create, read, write, delete.

Los usuarios de archivos se pueden dividir en dos tipos:

Modelo de Carga y Descarga.- Éste sólo proporciona dos operaciones principales que son la lectura y escritura del archivo. La operación consiste en transferir todo un archivo hacia el cliente y todos los movimientos de operación sobre el archivo, lo realiza el cliente, cuando ha dejado de utilizar el archivo, éste se es regresado hacia el servidor en forma completa. ( con todos los cambios realizados actualmente).

Modelo de acceso remoto.- Este tipo de servicios proporciona un gran número de operaciones para abrir y cerrar archivos leer y escribir partes de archivos, moverse a través de un archivo, así como examinar y modificar los atributos de uno o varios archivos.

Complejidad y Aspectos que intervienen en el diseño de un Sistema Operativo Distribuido.

Conocimiento Global.
Se trata de conocer y actualizar el estado global (global Knowledge) de todos los procesos y recursos del sistema.

Características:
Se tiene soluciones mucho más complejas.
No se tiene disponibilidad de una memoria global y un reloj global, no se pueden predecir los retardos y mensajes.

Una sola computadora no puede colectar toda la información del sistema distribuido.
Un problema que se presenta es determinar técnicas eficientes para establecer controles amplios en un sistema descentralizado y donde una sola computadora no conoce el estado actual y completo del sistema global.

Otro problema significativo se presenta debido a la ausencia de un reloj global y no permite tener formas de ordenar y controlar todos los eventos que ocurren en diferentes tiempos y en diferentes computadoras.

Nomenclatura.
En ese aspecto se utilizan nombres para referirse a los objetos (Computadoras, impresoras, servicios, archivos y usuarios).
Por ejemplo: El servicio de FTP o el servicio de DNS.

Características:
En un servidor de nombres se mapea un nombre lógico a una dirección física por medio de tablas.
En un Sistema Distribuido los directivos pueden ser replicados y almacenados en varias lugares para reducir las posibilidades de fallas e incrementar la disponibilidad del servicio.
Se requiere más capacidad de almacenamiento.
Requiere de sincronización para actualizar los directorios de cada localización.
Puede utilizarse partición de directorios en lugar de replicación, pero es mucho más complejo.

Escalabilidad.
Los sistemas crecen con el tiempo y les puede afectar la poca disponibilidad y la degradación del rendimiento cuando el crecimiento ocurre.

Compatibilidad.
Se refiere a la interoperabilidad entre los recursos de un sistema. Generalmente existen 3 niveles de compatibilidad aplicados a los sistemas.

Nivel binario:
Todos los procesadores ejecutan el mismo conjunto de instrucciones binarias, sin embargo los procesadores pueden diferir en rendimiento y su forma de entrada y salida.

Ventajas:
Es más fácil el desarrollo de sistemas.
No pueden incluirse arquitecturas diferentes de un fabricante o varios.
Es raramente soportado por sistemas grandes.

Nivel Ejecución:
Se presenta cuando el mismo código fuente puede ser compilado y ejecutado correctamente en cualquier computadora del sistema.

Nivel Protocolo:
Es el menos receptivo de todos ya que se obtiene interoperabilidad con el simple requerimiento de los componentes de comunicación de los sistemas, soportan un conjunto común de protocolos por ejemplo las computadoras individuales pueden ejecutar diferentes Sistemas y sacrificar su operatibilidad.

Sincronización de Procesos
Es uno de los más importantes a considerar dentro de los sistemas distribuidos. La sincronización es difícil por la falta de una memoria común al no conocerse las características de los procesos que se ejecutan.

Características:
Un Sistema Operativo Distribuido tiene que sincronizar los procesos que se están ejecutando en diferentes computadoras cuando estas tratan de accesar concurrentemente un recurso compartido, por ejemplo: un directorio.

El recurso compartido debe ser accesado por un proceso a la vez, a esto se le conoce como mutua exclusión.

Cuando se tiene acceso concurrentemente a un recurso compartido por diversas peticiones no coordinadas de usuarios, estas deben de seriabilizarse para asegurar la integridad del recurso.
Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido.

Si la ausencia de asignación de recursos de los procesos no se controla se puede presentar un " Dead Lock " ( Candado muerto o recurso bloqueado ) que degrade al sistema.

Administración de Recursos.
Se refiere en hacer que los recursos locales y remotos de una manera efectiva y fácil. Esta localización de recursos debe ser transparente para el usuario.

Los recursos deben estar disponibles de la siguiente manera:

Migración de datos:
Los datos son traídos al lugar del sistema donde son necesitados, pueden llegar a ser desde un archivo ( local o remoto ) o hasta el contenido de una memoria física.

Características:
1. Si un proceso actualiza un conjunto de datos, la localización original debe de ser también actualizada.
2. Se utiliza normalmente sistemas de archivos distribuidos que son componentes que implementan un sistema común de archivos disponibles para todas las computadoras autónomas del sistema. Su objetivo principal es proveer la misma capacidad funcional de acceso a los archivos sin importar su localización dentro de la red. A esto se le conoce como transparencia.
3. Otro de los elementos utilizados para la migración de datos es la administración de memoria compartida distribuida. Provee de un espacio de direccionamiento virtual que es compartido entre todas las computadoras del sistema distribuido. La mayor complejidad de implementar memoria compartida distribuida es el mantener la consistencia de los datos y reducir los retardos en el acceso de los mismos.

Migración de Cálculos:
Los cálculos procesados son llevados hacia otra localización y puede ser eficiente bajo ciertas circunstancias, por ejemplo: Cuando se requiere información de un directorio remoto es más eficiente enviar el mensaje solicitando la información necesaria y recibiéndola de regreso.

Planeación Distribuida:
Los procesos son transferidos de una computadora a otra dentro del sistema distribuido, esto es que un proceso puede ser ejecutado en una computadora diferente de donde fue originado.
Este proceso de relocalización puede ser deseable si la computadora donde se origino se encuentra sobrecargada o no posee los recursos necesarios.
La planeación distribuida es la responsable de todos los procesos distribuidos que se lleven a cabo entre computadoras sean efectuados con criterio y transparencia para obtener el máximo rendimiento.

Seguridad
La seguridad de un sistema es la responsable de la integridad del Sistema Operativo dentro del diseño de un sistema de seguridad se consideren dos aspectos importantes:
Autentificación: Es el proceso de garantizar que una entidad es quien debe ser.
Autorización: Es el proceso de decidir que privilegios tiene una entidad y hacer que solo esos privilegios se encuentren disponibles.

Estructuración
La estructuración de un sistema Operativo define como están organizadas sus partes y que comúnmente especifican el funcionamiento del mismo.
En Sistemas Distribuidos Utilizan normalmente los siguientes métodos tradicionales de estructuración de un Sistema Operativo.

Núcleo Monolítico: Es el método tradicional de estructurar Sistemas Operativos, esto se lleva a cabo a través de un gran núcleo monolítico que contiene todas las funciones y servicios provistos por el Sistema Operativo. Existen casos entre los Sistemas Distribuidos donde el uso de un bloque monolítico grande no es de mucha utilidad para los servicios ofrecidos por el Sistema Operativo (Estaciones sin disco, estaciones con medios locales de almacenamiento, estaciones con procesadores matemáticos específicos, etc.).

Núcleo Colectivo: En esta estructura se tiene una colección de procesos que son ampliamente independientes unos de otros. Los servicios del Sistema Operativo ( Administración de memoria distribuida, sistemas de archivos distribuidos, sincronización distribuida, procesos RPC, administración de tiempos, etc.) son implementados como procesos independientes. El núcleo del Sistema Operativo ( Comúnmente llamado Microkernel ) soporta la interacción entre los procesos que proveen los servicios al Sistema Operativo, también provee los servicios típicamente esenciales para cada computadora tal como la administración de tareas. El microkernel se ejecuta en todas las computadoras del sistema, mientras que los otros procesos pueden o no correr según se requiera.

Sistema Orientado a Objetos: Estos sistemas son estructurados utilizando el concepto de objetos, donde cada uno de los servicios son implementados como un objeto del sistema y que en términos de un ambiente de objeto, se le conoce como colección. Cada objeto encapsula una estructura de datos y define un conjunto de operaciones para ese objeto, de manera que cada uno de estos objetos corresponden a un tipo definido, por ejemplo: Objetos de procesos, directorios o archivos. Este modelo se puede cambiar con la estructura colectiva y las técnicas de separación de funciones y mecanismos.

Sistema Operativo Distribuido

Extiende el concepto de administración de recursos e interfaces con el usuario hacia computadoras de memoria compartida para formar un sistema Operativo Distribuido, el cual consiste en varias computadoras autónomas conectadas por una red de comunicaciones.
S.O+Administración de Recursos Remotos+Entorno de Red

Características:
Para cada uno de los usuarios debe de ser similar al trabajo en el Sistema Centralizado.
Se ejecuta en múltiples Computadoras.

Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios.

Transparencia (El uso de múltiples procesadores y el acceso remoto debe de ser invisible)

Categorías de los sistemas Distribuidos

Modelo de Minicomputadoras.
Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos.
Por lo menos un usuario por cada computadora ( CPU < Usuarios ).

Modelo de Estación de Trabajo.
Varias estaciones (Por lo general cientos), donde cada usuario cuenta con una estación de trabajo (ET) y realiza en ella todo su trabajo. Requiere de un Sistema Operativo que soporte funciones de acceso y control remoto.
Un microprocesador por cada usuario ( CPU = Usuarios).
Las estaciones de trabajo cuentan con Interfaces Gráficas, CPU potentes y Memorias propias.

Modelo microprocesadores en Pooling.
Trata de utilizar uno o más microprocesadores dependiendo de las necesidades de los usuarios.
Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignación.
El número de microprocesadores normalmente es mayor a uno por usuario ( CPU > Usuarios ).

Definiciones de Interés

Sistemas operativos de red.
Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.

Principios De Los Sistemas Operativos
El diseño e investigación de herramientas para los sistemas operativos centralizados convencionales, los cuales corren en sistemas de uno o varios procesadores, esta muy bien entendido. Sin embargo la proliferación de estaciones de trabajo personales y redes de área local ha llevado al desarrollo de nuevos conceptos del sistema operativo, a saber sobre, sistemas operativos en red y sistemas operativos distribuidos.Antes de empezar no hay que confundir un Sistema Operativo de Red con un Sistema Operativo Distribuido. En un Sistema Operativo de Red las computadoras están interconectadas por medios de comunicación: software y hardware. En este tipo de red los usuarios saben donde están ejecutando su trabajo y guardando su información. En cambio en los Sistemas Operativos Distribuidos existe un software que distribuye las tareas de los usuarios sobre una red de computadoras y para los usuarios es transparente donde realizan sus tareas y guardan su información.Existen dos esquemas básicos de éstos sistemas. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Modelos de procesamiento distribuido

Procesamiento distribuido basado en entrada y salida.
· Comunicarse con un proceso remoto es similar a leer o escribir a un archivo
· La biblioteca de sockets usa este modelo
· Enviar y recibir mensajes es realmente Entrada/Salida
· Es un enfoque de nivel relativamente bajo

Procesamiento distribuido basado en llamadas a procedimientos remotos.
· Comunicarse con un proceso remoto es similar a invocar un procedimiento
· El procedimiento invocado no reside en el proceso que invoca sino en otro proceso (posiblemente en otra máquina)
· Los procedimientos reciben parámetros y devuelven resultados
· Es un enfoque de nivel más alto que el orientado a entrada/salida
· Los detalles de enviar y recibir mensajes quedan ocultos al programador

Procesamiento distribuido basado en objetos distribuidos.
· Comunicarse con un proceso remoto es similar a invocar un método de un objeto
· El objeto al cual se hace la solicitud no reside en el proceso que invoca el método sino en otro proceso (posiblemente en otra máquina)
· Los métodos en POO reciben parámetros y devuelven resultados
· Es un enfoque de nivel más alto que los anteriores
· Los detalles de enviar y recibir mensajes quedan ocultos al programador

Procesamiento distribuido basado en memoria compartida
· Comunicarse con un proceso consiste en leer y escribir datos de una memoria común
· El sistema de comunicación subyacente se encarga de duplicar el bloque de memoria común en las diferentes computadoras que forman parte del sistema

Ventajas de los sistemas cliente-servidor

La principal ventaja de los sistemas cliente-servidor está en la correspondencia natural de las aplicaciones en el marco cliente-servidor. Un ejemplo de esto es una agenda electrónica. Debido a que los datos son relativamente estáticos y son visto de manera uniforme por todos los usuarios del sistema parece lógico colocarlos en un servidor que acepte peticiones sobre dichos datos. Es más, en este caso la lógica de aplicación debería estar colocada del lado del servidor, para proporcionar una mayor flexibilidad al sistema de búsquedas (cambios en los algoritmos, etcétera...).

Como resultado de la disponibilidad de middleware compatible para múltiples plataformas y de los avances recientes de la interoperabilidad binaria, los sistemas cliente-servidor pueden conectar clientes ejecutándose en una plataforma con servidores ejecutándose en otra plataforma completamente distinta. Las tecnologías como Java y los ORBs (Object Request Brokers), de los que trata en profundidad este trabajo, esperan proveer una total integración de todas las plataformas en unos pocos años. Si las porciones de un sistema cliente-servidor encapsulan una única función y siguen un interfaz perfectamente definido, aquellas partes del sistema que proveen los servicios pueden ser intercambiadas sin afectar a otras porciones del sistema. Esto permite a los usuarios, desarrolladores y administradores adecuar el sistema con sus necesidades en cada momento.

Otra ventaja es la posibilidad de ejecutar aplicaciones que hacen uso intensivo de los recursos en plataformas hardware de bajo coste. También el sistema es más escalable, pudiéndose añadir tanto nuevo clientes como nuevos servidores.

Middleware

El término middleware se discute en [Lewandosky 1998]. El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina middleware. El acceso transparente a servicios y recursos no locales distribuidos a través de una red se provee a través del middleware, que sirve como marco para la comunicaciones entre las porciones cliente y servidor de un sistema.

El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisión física de la petición vía red, y la devolución de resultados desde el servidor al cliente. Ejemplos de middleware estándar para dominios específicos incluyen: ODBC, para bases de datos, Lotus para groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para objetos distribuidos.

El middleware fundamental o genérico es la base de los sistemas cliente-servidor. Los servicios de autentificación en red, llamadas a procedimiento remoto, sistemas de ficheros distribuidos y servicios de tiempo en red se consideran parte del middleware genérico. Este tipo de middleware empieza a ser parte estándar de los sistemas operativos modernos como Windows NT. En sistemas donde no se disponga deberá recurrirse a middlware del tipo OSD DCE (Distributed Computing Environment) [OSF 1994]. El middleware especifico para un dominio complementa al middlware genérico de cara a aplicaciones mucho mas especificas.

El protocolo de comunicaciones mas usado por el middlware, tanto genérico como especifico, es TCP/IP. Esto se debe a su amplia difusión en todos los sistemas operativos del mercado y en especial en los ordenadores personales.

El Modelo Cliente Servidor

El modelo cliente-servidor de un sistema distribuido es el modelo más conocido y más ampliamente adoptado en la actualidad. Hay un conjunto de procesos servidores, cada uno actuando como un gestor de recursos para una colección de recursos de un tipo, y una colección de procesos clientes, cada uno llevando a cabo una tarea que requiere acceso a algunos recursos hardware y software compartidos. Los gestores de recursos a su vez podrían necesitar acceder a recursos compartidos manejados por otros procesos, así que algunos procesos son ambos clientes y servidores. En el modelo, cliente-servidor, todos los recursos compartidos son mantenidos y manejados por los procesos servidores. Los procesos clientes realizan peticiones a los servidores cuando necesitan acceder a algún recurso. Si la petición es valida, entonces el servidor lleva a cabo la acción requerida y envía una respuesta al proceso cliente.

El termino proceso se usa aquí en el sentido clásico de los sistemas operativos. Un proceso es un programa en ejecución. Consiste en un entorno de ejecución con al menos un thread de control.

El modelo cliente-servidor nos da un enfoque efectivo y de propósito general para la compartición de información y de recursos en los sistemas distribuidos. El modelo puede ser implementado en una gran variedad de entornos software y hardware. Las computadoras que ejecuten los programas clientes y servidores pueden ser de muchos tipos y no existe la necesidad de distinguir entre ellas; los procesos cliente y servidor pueden incluso residir en la misma maquina.

En esta visión simple del modelo cliente-servidor, cada proceso servidor podría ser visto como un proveedor centralizado de los recursos que maneja. La provisión de recursos centralizada no es deseable en los sistemas distribuidos. Es por esta razón por lo que se hace una distinción entre los servicios proporcionados a los clientes y los servidores encargados de proveer dichos servicios. Se considera un servicio como una entidad abstracta que puede ser provista por varios procesos servidores ejecutándose en computadoras separadas y cooperando vía red.

El modelo cliente-servidor se ha extendido y utilizado en los sistemas actuales con servicios manejando muchos diferentes tipos de recursos compartidos - correo electrónico y mensajes de noticias, ficheros, sincronización de relojes, almacenamiento en disco, impresoras, comunicaciones de área extensa, e incluso las interfaces gráficas de usuario. Pero no es posible que todos los recursos que existen en un sistema distribuido sean manejados y compartidos de esta manera; algunos tipos de recursos deben permanecer locales a cada computadora de cara a una mayor eficiencia - RAM, procesador, interfaz de red local -. Estos recursos clave son manejados separadamente por un sistema operativo en cada maquina; solo podrían ser compartidos entre procesos localizados en el mismo ordenador.

Aunque el modelo cliente-servidor no satisface todos los requisitos necesarios para todas las aplicaciones distribuidos, es adecuado para muchas de las aplicaciones actuales y provee una base efectiva para los sistemas operativos distribuidos de propósito general.

Características Principales de los Sistemas Distribuidos

Compartición de Recursos

El término 'recurso' es bastante abstracto, pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde componentes hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de datos y otros objetos de datos.

La idea de compartición de recursos no es nueva ni aparece en el marco de los sistemas distribuidos. Los sistemas multiusuario clásicos desde siempre han provisto compartición de recursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario se comparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o computadoras personales dentro de un sistema distribuido no obtienen automáticamente los beneficios de la compartición de recursos.

Los recursos en un sistema distribuido están físicamente encapsulados en una de las computadoras y sólo pueden ser accedidos por otras computadoras mediante las comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe ser manejada por un programa que ofrezca un interfaz de comunicación permitiendo que el recurso sea accedido, manipulado y actualizado de una manera fiable y consistente. Surge el término genérico de gestor de recursos.

Un gestor de recursos es un modulo software que maneja un conjunto de recursos de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto con requisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localización; la traslación de nombre de recurso a direcciones de comunicación y la coordinación de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia.

Un sistema distribuido puede verse de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores de los recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en objetos.

Apertura (opennesss)

Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones hardware (añadir periféricos, memoria o interfaces de comunicación, etc... ) o con respecto a las extensiones software ( añadir características al sistema operativo, protocolos de comunicación y servicios de compartición de recursos, etc... ). La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya existentes.

Básicamente los sistemas distribuidos cumplen una serie de características:

Los interfaces software clave del sistema están claramente especificados y se ponen a disposición de los desarrolladores. En una palabra, los interfaces se hacen públicos.
Los sistema distribuidos abiertos se basan en la provisión de un mecanismo uniforme de comunicación entre procesos e interfaces publicados para acceder a recursos compartidos.
Los sistema distribuidos abiertos pueden construirse a partir de hardware y software heterogéneo, posiblemente proveniente de vendedores diferentes. Pero la conformidad de cada componente con el estándar publicado debe ser cuidadosamente comprobada y certificada si se quiere evitar tener problemas de integración.

Concurrencia

Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente. Si el ordenador esta equipado con un único procesador central, la concurrencia tiene lugar entrelazando la ejecución de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos.
En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas procesadores centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central cada una entonces hasta M procesos estar ejecutándose en paralelo.
En un sistema distribuido que esta basado en el modelo de compartición de recursos, la posibilidad de ejecución paralela ocurre por dos razones:
Muchos usuarios interactuan simultáneamente con programas de aplicación.
Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo a diferentes peticiones de los procesos clientes.

El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interacción se ejecutan aisladamente en la estación de trabajo del usuario y no entran en conflicto con las aplicaciones ejecutadas en las estaciones de trabajo de otros usuarios.

El caso (2) surge debido a la existencia de uno o mas procesos servidores para cada tipo de recurso. Estos procesos se ejecutan en distintas maquinas, de manera que se están ejecutando en paralelo diversos servidores, junto con diversos programas de aplicación. Las peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias concurrentemente por múltiples instancias del proceso gestor de recursos. Cuando esto ocurre los procesos servidores deben sincronizar sus acciones para asegurarse de que no existen conflictos. La sincronización debe ser cuidadosamente planeada para asegurar que no se pierden los beneficios de la concurrencia.

Escalabilidad

Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala más pequeña consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de área local simple podría contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresión y otros servidores de propósito especifico. A menudo se conectan varias redes de área local para formar internetworks, y éstas podrían contener muchos miles de ordenadores que forman un único sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.

Tanto el software de sistema como el de aplicación no deberían cambiar cuando la escala del sistema se incrementa. La necesidad de escalabilidad no es solo un problema de prestaciones de red o de hardware, sino que esta íntimamente ligada con todos los aspectos del diseño de los sistemas distribuidos. El diseño del sistema debe reconocer explícitamente la necesidad de escalabilidad o de lo contrario aparecerán serias limitaciones.

La demanda de escalabilidad en los sistemas distribuidos ha conducido a una filosofía de diseño en que cualquier recurso simple -hardware o software- puede extenderse para proporcionar servicio a tantos usuarios como se quiera. Esto es, si la demanda de un recurso crece, debería ser posible extender el sistema para darla servicio,. Por ejemplo, la frecuencia con la que se accede a los ficheros crece cuando se incrementa el numero de usuarios y estaciones de trabajo en un sistema distribuido. Entonces, debe ser posible añadir ordenadores servidores para evitar el cuello de botella que se produciría si un solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En este caso el sistema deberá estar diseñado de manera que permita trabajar con ficheros replicados en distintos servidores, con las consideraciones de consistencias que ello conlleva.

Cuando el tamaño y complejidad de las redes de ordenadores crece, es un objetivo primordial diseñar software de sistema distribuido que seguirá siendo eficiente y útil con esas nuevas configuraciones de la red. Resumiendo, el trabajo necesario para procesar una petición simple para acceder a un recurso compartido debería ser prácticamente independiente del tamaño de la red. Las técnicas necesarias para conseguir estos objetivos incluyen el uso de datos replicados, la técnica asociada de caching, y el uso de múltiples servidores para manejar ciertas tareas, aprovechando la concurrencia para permitir una mayor productividad.

Tolerancia a Fallos

Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de componentes redundantes) y recuperación del software (diseño de programas que sean capaces de recuperarse de los fallos).

En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operación continuada de aplicaciones criticas.

La recuperación del software tiene relación con el diseño de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo.

Los sistemas distribuidos también proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporción de tiempo que esta disponible para su uso. Un fallo simple en una maquina multiuruario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podría desplazarse a otra estación de trabajo; un proceso servidor podría ejecutarse en otra maquina.

Transparencia

La transparencia se define como la ocultación al usuario y al programador de aplicaciones de la separación de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una colección de componentes independientes. La transparencia ejerce una gran influencia en el diseño del software de sistema.

El manual de referencia RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un resumen útil de la motivación y metas de los sistemas distribuidos. Las transparencias definidas son:

Transparencia de Acceso : Permite el acceso a los objetos de información remotos de la misma forma que a los objetos de información locales.
Transparencia de Localización: Permite el acceso a los objetos de información sin conocimiento de su localización
Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de información compartidos y de forma que no exista interferencia entre ellos.
Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos de información para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas de aplicación tengan por que conoces la existencia de las replicas.
Transparencia de Fallos: Permite a los usuarios y programas de aplicación completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software.
Transparencia de Migración: Permite el movimiento de objetos de información dentro de un sistema sin afectar a los usuarios o a los programas de aplicación.
Transparencia de Prestaciones. Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga varia.
Transparencia de Escalado: Permite la expansión del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicación.

Las dos mas importantes son las transparencias de acceso y de localización; su presencia o ausencia afecta fuertemente a la utilización de los recursos distribuidos. A menudo se las denomina a ambas transparencias de red. La transparencia de red provee un grado similar de anonimato en los recursos al que se encuentra en los sistemas centralizados.

Los Sistemas Distribuidos

Un sistema distribuido se define como una colección de computadores autónomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación.

El desarrollo de los sistemas distribuidos vino de la mano de las redes locales de alta velocidad a principios de 1970. Mas recientemente, la disponibilidad de computadoras personales de altas prestaciones, estaciones de trabajo y ordenadores servidores ha resultado en un mayor desplazamiento hacia los sistemas distribuidos en detrimento de los ordenadores centralizados multiusuario. Esta tendencia se ha acelerado por el desarrollo de software para sistemas distribuidos, diseñado para soportar el desarrollo de aplicaciones distribuidas. Este software permite a los ordenadores coordinar sus actividades y compartir los recursos del sistema - hardware, software y datos.

Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores.

Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y organizaciones de usuarios.

viernes, 23 de mayo de 2008

Sección para envio de la dirección del blog

Aqui.... se deberan colocar a través de los comentarios las direcciones del blog, sección , nombres y número correspondiente a su grupo.

Temas para el Desarrollo del Blog

Grupo #

1. Sistemas Distribuidos
Clasificación.
Términos Básicos.
Ventajas y Desventajas.
Los Sistemas Distribuidos Dentro de las Organizaciones.
Estructura Cliente Servidor.
Servidores en dos y tres Capas.
Partes del Software.
El Papel que juegan los Sistemas distribuidos y la seguridad de la información.

2. Servidores
Definición de Términos Básicos.
Clasificación de los Servidores.
Dinámica de Conexión de los Servidores.
Protocolos y sistemas operativos que manejan los servidores.
¿Qué es el Middleware?
¿Qué técnicas en la actualidad utilizan los servidores para la seguridad y resguardo de la información?
Características del Agente Usuario.
Arquitectura utilizada para el diseño y contrucción de salas se servidores.

3. Redes LAN
Descripción de Conceptos Básicos
Medios de Transmisión de las Redes LAN.
Topologías Utilizadas en las Redes LAN (Esquematizar Logicamente).
Componentes Físicos Utilizados.
Sistemas Operativos Compatibles como este tipo de Redes.
Tipos de Servidores Utilizados en las Redes LAN.
Protocolos que utilizan.
Hacer un Esquema Gráfico donde describan el funcionamiento de una arquitectura de una Red LAN.

4.Redes WAN
Descripción de Conceptos Básicos
Medios de Transmisión de las Redes WAN.
Topologías Utilizadas en las Redes WAN (Esquematizar Logicamente).
Componentes Físicos Utilizados.
Sistemas Operativos Compatibles como este tipo de Redes.
Tipos de Servidores Utilizados en las Redes WAN.
Protocolos que utilizan.
Hacer un Esquema Gráfico donde describan el funcionamiento de una arquitectura de una Red WAN.

5. Redes MAN
Descripción de Conceptos Básicos
Medios de Transmisión de las Redes MAN.
Topologías Utilizadas en las Redes MAN(Esquematizar Logicamente).
Componentes Físicos Utilizados.
Sistemas Operativos Compatibles como este tipo de Redes.
Tipos de Servidores Utilizados en las Redes MAN.
Protocolos que utilizan.
Hacer un Esquema Gráfico donde describan el funcionamiento de una arquitectura de una Red WAN.

6. VPN
Descripción de Conceptos Básicos de las VPN.
Ventajas y Desventajas de la Utilización de las VPN ( Si existen).
Implementaciones de las VPN.
Arquitectura a nivel de Hardware implementadas para la construcción de una VPN.
Sistemas Operativos Compatibles con las VPN.
Comparación de los sistemas distribuidos con las VPN.
Hacer un Esquema Gráfico donde describan el funcionamiento de una arquitectura de una VPN.
Describir el papel que desempeña el Internet en la Utilización y diseño de las VPN.

7. Sistemas Operativos Distribuidos
Descripción de conceptos básicos.
Historia de los Sistemas Operativos Distribuidos.
Clasificación de los Sistemas operativos Distribuidos.
Ventanjas de los Sistemas Opeativos Distribuidos.
Describa y defina la clasificación de los servidores.
Dibuje y explique el esquema funcional de un sistema distribuido.
El papel de las Redes en los Sistemas Operativos Distribuidos.
Realice cuales son las diferencias de utilizar un sistema distribuido y un sistema operativo centralizado segun su especificaciones lógicas y técnicas.

8. Bases de Datos Distribuidas.
Definición de conceptos básicos.
El papel que desempeñan las bases de datos distribuidas dentro de los sistemas operativos sistribuidos.
Que papel juegan las redes en las bases de datos distribuidas.
Dibuje un esquema de como seria el funcionamiento lógico de una base de datos distribuida.
Defina las partes del Software.
Sistemas Operativos que utilizan a gran escala las bases de datos distribuidas. (Justifique).
Ventajas de la utilización de las bases de datos distribuidas.
Explique el factor seguridad de la información dentro de la utilización de las bases de datos distribuidas. (Justifique).

miércoles, 21 de mayo de 2008

Primera Evaluación (Caso Práctico)

Artículos:

http://tecnologiaedu.us.es/bibliovir/pdf/15.pdf
http://www.di.uniovi.es/~lourdes/publicaciones/bt99.pdf
El desarrollo del mismo debe estar enmarcado según las pautas que se encuentran en el blog.

Pautas y Normas que se deben seguir para el envio de las evaluaciones

Bienvenidos Alumnos
Culaquier duda por favor comunicar a la siguiente dirección de correo: sistemasdistribuidos.unerg@gmail.com

Al momento de Elaborar la evaluamción la misma debe contener:
  • Título de la Actividad
  • Integrantes del Equipo, indicando Nombres, Apellidos CI, y Sección Correspondiente.
  • Presentanción de la Actividad: Resumen de la misma, donde se presentan las ideas principales del autor.
  • Análisis, en esta etapa los participantes del equipo expondran sus ideas sustentadas.
  • Conclusiones.
  • Glosario de Términos, en caso de ser necesario.
  • Los Trabajos no deben de pasar de cuatro páginas, en caso contrario se le será indicado con previo aviso la cantidad.
  • El formato de envio de actividades deben ser en formatos (.doc).