unidadi ssdd fisi

16
8 Primera Unidad Definición y concepto de Sistemas Distribuidos Sumario Define los conceptos fundamentales acerca de los Sistemas Distribuidos, pasa revista a las principales características como: comunicación entre cliente/servidor, ejecución de servicios, arquitectura hardware y software para la implementación, uso del MIDDLEWARE, interfaces y Stubs, asi como el papel de la web en las implementaciones distribuidas y la forma como las aplicaciones móviles se integran con las aplicaciones basadas en computador asistentes. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.

Upload: mevt13

Post on 20-Jan-2016

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UnidadI SSDD Fisi

8

Primera Unidad

Definición y concepto de Sistemas Distribuidos

Sumario

Define los conceptos fundamentales acerca de los Sistemas Distribuidos, pasa revista a las principales características como: comunicación entre cliente/servidor, ejecución de servicios, arquitectura hardware y software para la implementación, uso del MIDDLEWARE, interfaces y Stubs, asi como el papel de la web en las implementaciones distribuidas y la forma como las aplicaciones móviles se integran con las aplicaciones basadas en computador asistentes.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 2: UnidadI SSDD Fisi

9

Lección 1

Hacia los Sistemas Distribuidos

El uso de los Sistemas Distribuidos proviene inicialmente de la implementación de los sistemas de comunicaciones a larga distancia (teléfono, operaciones bancarias, televisión, etc.). Posteriormente, evolucionó a las primeras implementaciones software basadas en redes WAN como UNIX, implementación de redes bajo IBM y el sistema conocido como ARPANET.

Actualmente, los Sistemas Distribuidos nos rodean, no es posible encontrar un sistema dentro de las actividades humanas que no tengan algún tipo de relación con los Sistemas Distribuidos como:

a) Sistema de ventas de boletos aéreos b) Sistema de consultas médicas en hospitales y clínicas c) Facturación en línea en farmacias

Un ejemplo de este tipo de implementación es indudablemente Google ya que implementa las siguientes características:

Es una aplicación montada sobre un sistema distribuido Yo como usuario desconozco Máquina o máquinas en las que se realiza la búsqueda Lugares donde estén ubicadas esas máquinas Tipos de comunicación que se utilizan Equipos que intervienen Forma de realizar la búsqueda Qué se ejecuta en mi máquina y qué no se ejecuta Casi siempre funciona correctamente

1.1. Conceptos que originan los Sistemas Distribuidos

Sistemas Distribuidos es una forma de implementación de aplicaciones de software que tiene su origen en varias áreas informáticas preexistentes como:

Sistemas Operativos. Procesamiento en Paralelo. Sistemas en Tiempo Real. Sistemas Multimedia Distribuidos. Tipos de comunicaciones. Bases de datos distribuidas. Cliente – Servidor, Tres niveles, Internet. Objetos, Componentes Distribuidos. Computación Móvil. Aplicaciones Tradicionales.

Todas ellas han contribuido con conceptos, implementaciones, herramientas al surgimiento de la tecnología necesaria para permitir que los Sistemas Distribuidos pasen de la teoría a la práctica.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 3: UnidadI SSDD Fisi

10

1.2. Necesidad empresarial de los Sistemas Distribuidos

Aún cuando los Sistemas Distribuidos, se considera como una propuesta tecnológica importante, éstos no hubieran surgido sin el necesario apoyo de empresas interesadas en su aplicación práctica y por ello el advenimiento del internet como tecnología que permite enlazar computadoras desde todas partes del mundo, haciendo posible que las operaciones de las empresas puedan llegar a sitios remotos. Ello provocaría un crecimiento importante de los negocios en la red a través de la creación de páginas web, implementación de programas a partir del modelo WAN y crecimiento en inversión de nuevas tecnologías. Pero, a la par de este desarrollo surgieron nuevos retos que los informáticos a partir de los noventas tuvieron que afrontar los cuales fueron: a) Adopción de nuevas tecnologías y nuevos requisitos de desarrollo b) Rápidos cambios tecnológicos c) Desafíos técnicos para los informáticos como capacidad de respuesta,

productividad, confiabilidad y disponibilidad, seguridad, escalabilidad, integración con otros sistemas y desarrollo de interface de usuarios más amigables. Todo esto nos conduce a un requerimiento fundamental y que se traduce en “necesitamos una plataforma con una rica infraestructura que ofrezca diferentes posibilidades arquitectónicas favoreciendo un entorno de desarrollo rápido”.

1.3. El papel de Internet como impulsor de los Sistemas Distribuidos

La aparición del Internet y su consolidación posterior mostró claramente la factibilidad de la implementación de los Sistemas Distribuidos, en el siguiente gráfico mostramos una estructura básica de un conexionado utilizado en Internet:

Fig. 1 Representación de Internet

Sin embargo, el poder del Internet se ve reflejado en los números mostrados en el año 2009 y que cuantifica el tráfico de datos que atreves de esta carretera de la información han circulado: 1.730 millones de usuarios de Internet en todo el mundo.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 4: UnidadI SSDD Fisi

11

1.400 millones de usuarios de correo electrónico que enviamos una media de 247.000 millones de correo cada día aunque lamentablemente unos 200.000 millones son correo basura (SPAM).

En diciembre de 2009 había 234 millones de sitios web. De ellos, 126 millones son blogs, según BlogPulse. Hay 350 millones de usuarios registrados en Facebook, lo que lo haría el tercer

país más poblado del mundo. Se suben 2.500 millones de fotos al mes a Facebook, lo que hace palidecer los

4.000 millones de fotos que había en total Flickr en octubre de 2009. YouTube sirve 1.000 millones de vídeos cada día. Lamentablemente, se crean unos 148.000 nuevos ordenadores zombi cada día. Estos números nos muestran la importancia del Internet como el medio de comunicación dominante en el planeta y el uso intensivo de productos derivados de los Sistemas Distribuidos que han literalmente cambiado los hábitos de consumo y la forma de intercambiar información en la sociedad actual.

1.4. Conceptos técnicos

A continuación se enuncian algunos conceptos técnicos necesarios para entender el funcionamiento de un Sistema Distribuido.

1.4.1. Modelo Cliente/Servidor

Parte de la evolución de los sistemas de información que pasaron de LAN a WAN fue el cambio del modelo tradicional cliente servidor de dos capas o tres capas hacia un modelo de n capas, fraccionando por ello tanto el interfaz de usuario, la lógica de negocios y el acceso a los datos. También el cambio se da al pasar de un ambiente computarizado de tipo homogéneo (CPU, sistema operativo del mismo modelo o compatibles) a un modelo de implementación heterogéneo con máquinas de diferentes tecnológicas y ubicados en diferentes puntos de la red. Esta evolución permitió la utilización de diferentes productos informáticos los cuales utilizando estándares pueden comunicarse entre sí dando lugar a la aparición de los Sistemas Distribuidos. El modelo resultante, de n capas heterogéneo se muestra en el siguiente gráfico:

Fig. 2 Organización de aplicación informática basada en capas

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 5: UnidadI SSDD Fisi

12

1.4.2. Comparación entre diferentes implementaciones cliente/servidor Con el fin de realizar una comparación efectiva entre las diferentes implementaciones informáticas efectuadas usando cliente servidor se implementó un modelo espacial utilizando tres magnitudes de medición como son: a) Tipo de modelo: corresponde a la forma como los datos se encuentran

organizados dentro de la aplicación. Valores relacional, objeto y semiestructurado.

b) Número de capas: representa el número de capas en que se ha organizado la

aplicación. Valores dos capas, tres capas, n capas. c) Tipo de procesamiento: representa el tipo de procesamiento de datos y

generación de respuesta ante la solicitud de un servicio. Valores transaccional (salida en función a los datos existentes), informacional o analítico (respuesta obtenida a través de los datos existentes y de generación de nuevos datos).

El resultado se presenta en el siguiente gráfico:

Fig. 3 Modelo espacial de implementación cliente/servidor

1.4.3. Nuevo modelo de software La evolución de los sistemas, que pasaron de LAN a WAN permitió la aparición de un elemento fundamental de las aplicaciones informáticas, como es el medio de comunicación, éste tiene la posibilidad de conectar puntos alejados geográficamente de la red y posibilitar el envío de mensajes por lo que, el software actual se considera una combinación entre la implementación informática y el sistema de comunicaciones. Por lo tanto, hemos pasado de un modelo centralizado o monolítico basado en Mainframe, minicomputadoras a aplicaciones de tipo distribuidos basados en componentes heterogéneos conectados a través de una red, tal como lo muestra el siguiente gráfico:

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 6: UnidadI SSDD Fisi

13

Fig. 4 Evolución del modelo centralizado al distribuido

Gracias, a estos conceptos técnicos y a la evolución de las aplicaciones informáticas en el tiempo se logra llegar a su implementación más importante la aparición de los Sistemas Distribuidos.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 7: UnidadI SSDD Fisi

14

Lección 2

Definiciones de Sistemas Distribuidos

Muchas son las definiciones que existen sobre los Sistemas Distribuidos algunas con una orientación netamente hardware y otras bajo el punto de vista de software, sin embargo, consideramos que una definición bastante cercana a los criterios que creemos que deben ser considerados en una aplicación de ese tipo sería la que se enuncia a continuación: Un Sistema Distribuido es aquel que ofrece servicios implementados sobre una red de computadoras como si se tratara de un único sistema. Esto se logra a través de transparencias de distribución y son: Transparencia de localización. Transparencia de escalabilidad. Transparencia de replicación. Transparencia de concurrencia. Transparencia de paralelismo. Transparencia de acceso. Transparencia de fallo. Transparencia de movilidad. Transparencia de rendimiento.

¿Pero qué significan transparencias? Este concepto alude a que la implementación de una característica no será visible por parte del usuario final, tanto si este fuera una persona como una aplicación. Gracias a este enunciado se pueden implementar gran parte de las características que constan en un Sistema Distribuido. A continuación, una breve definición de cada una de las transparencias: Transparencia de localización: Permite que los recursos puedan ser accesados

sin el conocimiento de su localización física o de la red (por ejemplo, la dirección IP).

Transparencia de escalabilidad: Permite que el sistema y las aplicaciones crezcan, sin cambio en la estructura del sistema o los algoritmos de la aplicación.

Transparencia de replicación: Habilita varias instancias de recursos que se utilizarán para aumentar la fiabilidad y rendimiento sin el conocimiento de las réplicas de los usuarios o programadores de aplicaciones.

Transparencia de concurrencia: Permite que varios procesos puedan operar al mismo tiempo utilizando recursos compartidos sin interferencia entre ellos.

Transparencia de paralelismo: Permite que 2 o más servidores trabajen en forma cooperativa para un servicio sin que el usuario lo pueda observar.

Transparencia de acceso: Permite que los recursos locales y remotos puedan ser accesados mediante operaciones idénticas.

Transparencia de fallo: Permite el ocultamiento de fallas, haciendo posible a los usuarios y los programas de aplicación, completar sus tareas a pesar del fracaso de los componentes de hardware o software.

Transparencia de movilidad: Permite el movimiento de recursos y clientes dentro de un sistema sin afectar el funcionamiento de los usuarios o programas.

Transparencia de rendimiento: Permite que el sistema sea reconfigurado para mejorar el rendimiento conforme las cargas varíen.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 8: UnidadI SSDD Fisi

15

Es bueno agregar otras definiciones importantes enunciadas por conocedores de este tema así pues Tanenbaum nos dice que “Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora”. Con esta definición se quiere poner énfasis en el aspecto de la interconexión de los sistemas computadores que trabajan de manera conjunta en una red y que utilizan mecanismos protocolos y estándares que garantizan su interoperabilidad simulando ser un solo sistema computador. Otra definición muy importante y la más ampliamente aceptada es la de Coulouris que indica que “Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes”, aquí el autor de este concepto pone de manifiesto claramente una de las principales características de los Sistemas Distribuidos que es la comunicación a través del paso de mensajes y que gracias a ella se definen las grandes implementaciones que más adelante veremos como los sockets, el middleware y la web.

2.1. Cambio de paradigma

La aparición e implementación de los Sistemas Distribuidos constituye una forma de construcción de soluciones informáticas que cambiaron drásticamente la forma de ver y entender los sistemas de información, no solo por su carácter amplio en cuanto al número de computadoras involucradas ni la distancia geográfica que podrían establecerse entre ellas, sino fundamentalmente porque permitió la evolución de una serie de conceptos y paradigmas existentes en los sistemas de información de tipo centralizado y de tipo LAN como por ejemplo la adopción de tecnologías heterogéneas que manteniendo un funcionamiento autónomo tienen capacidad de comunicarse eficientemente, o la posibilidad de la ejecución concurrente de procesos independientemente del sistema operativo sobre el cual funcionen. Un punto importante en dicha evolución fue la capacidad de enfrentar fallos de operación desde cualquier punto de la red a diferencia del enfoque anterior que era de tipo centralizado atreves de un único punto de tratamiento de fallos, también es importante señalar la evolución progresiva del acceso de información, anteriormente limitado a consultas únicamente al servidor local al que se encuentra conectado la máquina cliente esto ha cambiado hacia una solicitud de información a servidores remotos y que inclusive la máquina cliente no conoce siquiera su existencia. La tabla a continuación permite observar la evolución de los sistemas de información del modo centralizado al modo distribuido:

Control central Autonomía

Nombramiento global Nombramiento federado (no resuelto distribuidamente, por partes)

Consistencia global Consistencia débil

Ejecución secuencial Ejecución concurrente Vulnerabilidad Tolerancia a fallos Información local Información remota

Localización fija Migración

Homogeneidad Heterogeneidad Tabla 1 Evolución entre sistemas de sistemas de información

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 9: UnidadI SSDD Fisi

16

Sin embargo, la aparición de los Sistemas Distribuidos ha traído como consecuencia la necesidad de enfrentar desafíos tecnológicos que son importantes para garantizar la calidad de servicio que estos sistemas deben ofrecer estos retos son: a) Heterogeneidad: La capacidad de utilizar equipos informáticos y software de

diferente tecnología. b) Extensibilidad: La capacidad de que el Sistema Distribuido pueda aumentar el

número de clientes a los que pueda atender. c) Seguridad: Definición de medidas de seguridad que garanticen la confiabilidad

de los mensajes que circulan a través del Sistema Distribuido. d) Escalabilidad: La capacidad del Sistema Distribuido en poder aceptar mas

servicios de los que inicialmente posee y estos puedan ser accesados igualmente por todos los clientes.

e) Tratamiento de fallos: La capacidad que desde cualquier punto pueda corregirse cualquier fallo producido dentro del Sistema Distribuido.

f) Concurrencia: La capacidad de que varios clientes puedan accesar de manera simultánea a un mismo servicio.

g) Transparencia: La característica de que toda implementación del Sistema Distribuido tanto hardware como software no debe ser visible a los usuarios que la utilizan.

2.2. Características de los Sistemas Distribuidos

De una manera rápida podemos decir que tres son las características implícitas que posee todo Sistema Distribuido y que son: a) Consta de múltiples computadoras b) Todas estas computadoras se encuentran interconectadas c) Dichas computadoras poseen un estado compartido Para poder describir e implementar los puntos a y b se requiere transparencia en la construcción del Sistema Distribuido, mientras que para el punto c se necesita criterios de consistencia. Muchos son los estudios que se han hecho para poder definir de una manera clara los elementos necesarios para la implementación de un Sistema Distribuido tanto como modelo teórico y como implementación efectiva uno de los trabajos más conocidos sobre la conceptualización de Sistema Distribuido es el presentado por Enslow que en 1978 mostró un modelo espacial para poder graficar lo que su criterio debería ser considerado un Sistema Distribuido. Dicha gráfica constaba de tres magnitudes fundamentales: el hardware a utilizar, la organización de los datos y el tipo de control para tratamiento de fallos. El modelo presentado se aprecia en la página siguiente:

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 10: UnidadI SSDD Fisi

17

Fig. 5 Grados de Distribución (Enslow, 78) Colocando diferentes tipos de aplicaciones informáticas dentro de este modelo (base de datos, sistemas LAN, sistemas transaccionales, aplicaciones mainframe, etc.), Enslow llego a la conclusión que “un sistema se podría considerar como un Sistema Distribuido si las tres categorías (hardware, control, datos) alcanzan un cierto nivel de descentralización”. Posteriormente, generaliza su modelo para presentar lo que él considera la región admisible para aquellos sistemas que son considerados distribuidos. Se muestra en el gráfico a continuación:

Fig. 6 Generalización del modelo de Enslow También es importante consignar que si bien los Sistemas Distribuidos abarcan una implementación que incluyen computadoras personales, redes LAN, sistemas multiprocesadores, mainframe y minicomputadoras, se tiende a comparar este tipo de sistema con las implementaciones realizadas en tiempos anteriores. Por ello, en la tabla siguiente se hace una comparación entre los Sistemas Distribuidos, los sistemas basados en red y los sistemas multiprocesadores, utilizando como criterio

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 11: UnidadI SSDD Fisi

18

de medición algunos factores importantes a considerar como medio de comunicación, capacidad de manejo de cola ejecución, posibilidad de compartir archivos y otros, donde visiblemente se encuentran las ventajas inherentes del Sistema Distribuido. A continuación se muestra la tabla aludida:

Ítem Sistema en Red Sistema Distribuido

Multiprocesadores

Como si fuera un uniprocesador virtual

No Si Si

Se ejecuta el mismo sistema operativo

No Si Si

Copias del sistema operativo

N copias N copias 1 copia

Medios de comunicación

Archivos compartidos

Mensajes Archivos compartidos

¿Acuerdo de los protocolos de red?

Si Si No

Una simple cola de ejecución

No Si Si

Compartición de archivos bien definida

Normalmente no Si Si

Tabla 2 Comparación entre sistemas

2.3. Características de la transparencia de los Sistemas Distribuidos

Se ha dicho en párrafos anteriores de la importancia que es para la implementación de los Sistemas Distribuidos la transparencia de su funcionamiento esto es, el usuario y los sistemas involucrados no tienen mayor conocimiento de la forma como ésta aplicación está construida ni sus protocolos, ni sus medidas de seguridad, ni lejanía o cercanía entre ellos. Para lograr esta transparencia se deben tener una serie de características consideradas deseables en cualquier implementación de ese tipo y que son las siguientes: a) Compartición de recursos b) Tolerancia a fallos c) Sistema abierto d) Escalabilidad e) Seguridad Veremos los detalles de cada una de estas características y su contribución a la implementación del Sistema Distribuido. 2.3.1. Compartición de recursos Se define como la posibilidad de utilizar recursos y datos públicos por parte de los distintos usuarios autorizados del sistema. Como beneficio de la compartición tenemos en el caso de hardware una economía lograda gracias a la no compra de equipo redundante, en el caso de software un desarrollo eficiente en equipo y la posibilidad de que todos puedan acceder a los mismos datos. ¿Entonces como se comparten los recursos? En los sistemas centralizados la compartición es directa ya que todos pueden acceder al punto central donde se encuentran dichos recursos. En los Sistemas Distribuidos el acceso de los recursos no es directo debido a que éstos se encuentran en diferentes servidores muchos de ellos remotos y de

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 12: UnidadI SSDD Fisi

19

diferentes tecnologías por lo que se requiere algún mecanismo de comunicación que garantice dicho acceso. Para lograrlo se requiere una interfaz homogénea independiente de la tecnología a usarse y un gestor de recursos que sea el que reciba las peticiones de acceso y las administre. Esto podrá lograrse gracias a una implementación de tipo cliente servidor en la cual el proceso servidor tiene el papel de gestor de recursos mientras que el proceso cliente es quien solicita y posteriormente usa el hardware y software compartido. En el gráfico siguiente se muestra la relación entre el proceso cliente y proceso servidor dentro del modelo que se está observando:

Fig. 7 Comunicación entre procesos Un hecho importante para señalar es que el gestor de recurso no debe verse en ningún momento como el proveedor centralizado de recurso ya que, los recursos realmente están en los diferentes servidores diseminados en todo el sistema. 2.3.5 Sistema abierto Un sistema se considera abierto si puede ser ampliado fácilmente. Esta definición alcanza tanto aspecto hardware (periféricos, memorias, interface de comunicación) como el aspecto software (agregar extensiones al sistema operativo, agregar nuevos recursos compartidos, etc.). El concepto de sistema abierto es importante porque implica la implementación de una serie de elementos fundamentales de todo Sistema Distribuido como son: a) Interfaces públicas, tanto de software como de hardware b) Los componentes de Sistema Distribuido deberán ser heterogéneos Para lograr de que los Sistemas Distribuidos sean abiertos se necesita una comunicación uniforme y pública entre procesos y la forma de lograr esto es a través de estándares los cuales permitirán el uso de nuevos recursos compartidos. 2.3.5 Escalabilidad Es la capacidad de que el sistema pueda ser ampliado sin que por ello los usuarios tengan que modificar su protocolo de comunicación, ni la eficiencia del sistema quede afectada. El concepto de escalabilidad es importante tal es así que se establece dos tipos definidos: a) Escalabilidad horizontal: El poder añadir más equipos de cómputo al Sistema

Distribuido y estos puedan acceder a los servicios existentes.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 13: UnidadI SSDD Fisi

20

b) Escalabilidad vertical: La posibilidad de poder aumentar el número de servicios disponibles permitiendo al mismo tiempo de que todos los clientes puedan acceder a dichos servicios.

¿Cómo lograr mantener la escalabilidad de un Sistema Distribuido? Hay dos técnicas que pueden lograrlo: a) Descentralizando los algoritmos, con ello podremos usar de manera más

eficiente los datos existentes en los repositorios de información b) Haciendo replicación de datos, es decir generando base de datos espejo,

distribuidas en los múltiples servidores del sistema y también aumentando la eficiencia de la memoria caché de los distintos servidores disponibles.

2.3.5 Tolerancia a fallos Un Sistema Distribuido deberá tener un mecanismo para detectar fallos y corregirlos a tiempo, ya que, no existe ningún sistema informático que no pueda presentar fallos, los cuales, presentarán fallas a nivel de hardware (el equipo de cómputo deja de funcionar o funciona de manera errática) y también fallas a nivel de software (generación de resultados incorrectos). Dos magnitudes son fundamentales para poder medir la capacidad de sistema en tolerar fallos y son las siguientes: a) Estabilidad: Un sistema es estable cuando ante la presencia de una perturbación

en la entrada generará una salida que dependa de dicha perturbación, pero que al cesar la entrada anómala el sistema vuelve a generar la salida normal.

b) Disponibilidad: Es la proporción del tiempo total en que el sistema está disponible para su uso. En condiciones ideales la disponibilidad es de 100%.

¿Cuáles serían las consecuencias de la aparición de fallos en un sistema informático? Si es de tipo centralizado el sistema se cae completamente y no estará disponible para ningún cliente, en un Sistema Distribuido el nodo afectado por el fallo provocará una negación de servicios a aquellos usuarios que están físicamente conectados a dicho nodo, pero el resto del sistema seguirá funcionando normalmente. ¿Cuáles serían las medidas a tomar dentro de una política de tolerancia a fallos? Se sugieren algunas acciones a) realizar redundancia de hardware de tal manera que puedan aprovecharse los equipos de reserva para actividades que no sean críticas, mientras no haya aparición de fallo, por ejemplo: replicar una base de datos en varios servidores; ante la aparición de un fallo dicho equipo de reserva reemplazara automáticamente al servidor fuera de servicio. B) establecer una recuperación de fallos de software en la cual, se establezca una consistencia de actualización. Esto quiere decir que en presencia de un fallo el sistema tiene que ser capaz de dejar los datos permanentes en el último estado consistente anterior al error, dicho mecanismo se conoce con el nombre de Rollback. 2.3.5 Seguridad Es innegable que los niveles de seguridad en un Sistema Distribuido deberán ser mayores a un sistema LAN o sistema de tipo Desktop debido al número de clientes y servidores involucrados y a las distancias geográficas en las que ellas se encuentran por lo que se requiere medidas de seguridad para proteger los recursos y los datos de un acceso indebido. En un sistema centralizado es mucho más fácil establecer medida de seguridad dado el carácter concentrado de la información, pero a la par un fallo de seguridad puede traer consecuencias catastróficas y de

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 14: UnidadI SSDD Fisi

21

pronto hacer caer todo el sistema en sí. En el caso de un Sistema Distribuido los mecanismos de seguridad son más complejos de establecer pero al mismo tiempo un fallo en la seguridad perjudicaría a una parte del sistema y no al todo. Por lo tanto, se deberán establecer mecanismos de seguridad frente a las amenazas potenciales que provienen tanto del exterior como del interior del sistema tales como: filtraciones, intromisiones, robo de recursos y vandalismo. Una buena auditoria informática y establecimiento de estándares de auditoría como COBIT minimizara la posibilidad de filtraciones de seguridad, así como políticas de uso de antivirus, claves y perfiles son importantes en este punto.

2.4. Ventajas e inconfidentes de los Sistemas Distribuidos

Como todo tipo de solución informática los Sistemas Distribuidos tienen ventajas y desventajas frente a otros tipos de aplicaciones que se desarrollaron anteriormente, en la tabla siguiente establecemos criterios de comparación frente a sistemas centralizados y a sistema independientes así como mostramos inconvenientes presentados en los Sistemas Distribuidos.

Ventaja de los Sistemas Distribuidos frente a los

centralizados

Economía: Mejor relación calidad/precio Velocidad: Más potencia que mainframes Distribución inherente: Aplicaciones especiales Fiabilidad: Tolerancia a fallos Escalabidad: Fácil crecimiento incremental

Ventaja de los Sistemas Distribuidos frente a los

independientes

Comparten datos: Acceso a base de datos comunes Comparten dispositivos: Impresoras, scanners, etc. Comunicación: Facilita comunicación (e-mail) Flexibilidad: Reparto de carga eficiente

Inconvenientes de los Sistemas Distribuidos

Software: Hay poco Red: Se puede saturar Seguridad: Más difícil

Tabla 3 Ventajas y desventajas

Todas estas características deberán permitir implementar una solución informática que conjugue una arquitectura de n capas heterogénea montada sobre un medio de comunicación, corriendo bajo estándares definidos por dicho sistema y accesando a cualquier punto geográfico no importando si este es cliente o servidor. De lograrse esto la implementación final será lo que se muestra en el siguiente gráfico.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 15: UnidadI SSDD Fisi

22

Fig. 8 Implementación final de un Sistema Distribuido

2.5. Aplicaciones de los Sistemas Distribuidos

Son múltiples las aplicaciones que se encuentran para los Sistemas Distribuidos a continuación una breve relación de ellos:

Aplicaciones comerciales

Reservas de líneas aéreas Aplicaciones bancarias Cajeros de grandes almacenes Cajeros y Almacén de Cadena de Supermercados

Aplicaciones para Redes WAN

Correo electrónico Servicio de Noticias (NEWS) Servicio de Transferencia de Ficheros (FTP) Búsqueda de Ficheros (Archie) Servicio de consulta textual (Gopher) World Wide Web (www)

Aplicaciones Multimedia

Videoconferencia Televigilancia Juegos multiusuario Enseñanza asistida por ordenador

Tabla 4 Aplicaciones de Sistemas Distribuidos 2.6 Casos de uso de Sistemas Distribuidos 3.6.2 Empresa Boeing Boeing es un ejemplo de empresa que utiliza aplicaciones basadas en Sistemas Distribuidos para el control de sus operaciones, a continuación una reseña de los datos y operaciones que justifican su uso:

Cada avión consta de tres millones de componentes.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.

Page 16: UnidadI SSDD Fisi

23

Cada avión tiene una configuración diferente Es necesario guardar la información sobre todos los componentes, debido a

que un mismo componente se puede utilizar en más de un tipo de avión La empresa produce un aproximado de 500 aviones al año La base de datos crece cada año con información correspondiente a mil

quinientos millones de componentes La vida útil de cada avión es aproximadamente de 30 años Hay un aproximado de 45 mil ingenieros que acceden en línea al sistema

para búsqueda de datos Existen 20 servidores solamente para datos de ingeniería (diseño de nuevos

modelos, adaptación de los existentes, etc.) Hay un aproximado de 200 servidores que utilizan aplicaciones UNIX Las estaciones cliente utilizan sistemas operativos UNIX, LINUX o WINDOWS

3.6.2 Mercedes Benz Los modelos más modernos en automóviles de esta compañía utilizan tecnología basada en computadoras que se encuentran interconectadas atreves de redes semejando un Sistema Distribuido. Por ejemplo un automóvil de la clase S está equipado con más de 50 procesadores empotrados todos los cuales se interconectan atreves de una red de área local de naturaleza heterogénea.

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.