Sistemas Distribuidos
Clasificado en Informática
Escrito el en español con un tamaño de 44,55 KB
Qué es un Sistema Distribuido:
Sistema de información en el cual las funciones se reparten por áreas de trabajo diferentes que trabajan de forma coordinada para asumir los objetivos que la organización asigna a ese sistema de información.
Elementos que integran un SID.
Plataforma de proceso: elemento encargado de proporcionar los recursos físicos y el software de base para ejecutarlo( Mainframe, PCs, PDAs, teléfonos).
Elementos de Conectividad: encargados de proporcionar el transporte para comunicar e integrar los elementos de la plataforma de proceso (redes y las comunicaciones).
Almacenamiento de datos: datos en sí y los gestores donde se localizan.
Elementos de software: Incluye aplicaciones y los servicios que ayudan a crearlas y las interfaces que ayudan a usarlas. En esta etapa se integran las arquitecturas posibles para crearlas: centralizada, Batch, transaccional, cliente / servidor basado en sistema operativo, cliente/servidor basada en Internet y aplicaciones Web Internet.
Seguridad: todo lo concerniente a la seguridad lógica de los datos o información.
Gestión del sistema: 1. debe realizarse como un conjunto integrado y coordinado a través de los recursos de dirección y administración. 2. debe permitir la coexistencia de varios centros de de gestión. diferentes.
Cuadro de mandos: Parte fundamental del sistema de gestión, se divide en dos:
1. De seguimiento de los objetivos de negocio: encargado de proporcionar información automática a los gestores de cómo la realidad se mueve respecto a las previsiones de los objetivos de negocio en tiempo real.
2. De explotación: desde donde se centraliza y coordina toda la administración, supervisión y explotación del sistema.
Qué es Diseñar un sistema distribuido: crear aplicaciones de software, utilizando servicios y ayudándose de la conectividad, que participen y se integren en este entorno de forma transparente a las plataformas de proceso y de almacenamiento de datos, dotándolas de los recursos necesarios para gestionarse de forma integrada con el resto del sistema distribuido.
Los sistemas distribuidos deben: 1.estar alineados con los objetivos de negocio de la empresa,
2. aumentar la eficacia y eficiencia operacional de la compañía, 3. permitir el mayor rendimiento con el menor coste en las estructuras informáticas que dan soporte.
Objetivos: 1. siempre alinear tecnología y negocio. 2. Transparencia. 3. Tolerancia. 4. Buscar la continuidad de operaciones.
Arquitectura de la empresa: Es el plano de ruta para el desarrollo de los negocios y de la tecnología que va apoyarlos, tanto en lo nuevo como en la revolución.
Plan Estratégico Distribuido de la Compañía: donde se registrarán todos los prerrequisitos de desarrollo y gestión que los sistemas distribuidos de la compañía deberán seguir y cumplir.
Se articula sobre cinco enfoques ó perspectivas : 1. Negocios. 2. Aplicación. 3. Información
4. Gestión. 5. Tecnológica (Techology Perspective).
1.Negocios: Describe como trabaja la compañía. Incluye las relaciones con terceros y los planes de evolución desde el estado actual al objetivo deseado.
Componentes clásicos: 1. Los procesos de negocio. 2. Los Manuales de Procedimientos. 3. Objetivos a corto, medio y largo plazo. 4. Las estructuras organizativas y sus condicionamientos. 5. Las funciones de negocio que se realizan. 6. Las relaciones entre estos componentes. 7. Los organigramas de la empresa, etc.
2.Aplicación: Define las aplicaciones de la empresa.
Componente clásicos: 1. Descripción de las aplicaciones existentes. 2. Descripción de los servicios disponibles, internos o externos, y sobre los que se soportan los procesos de negocio. 2. Forma de obtener esos servicios. 3. Planes para el desarrollo de nuevas aplicaciones y reingeniería de las antiguas para alinearlas con los objetivos y retos de los negocios.
3.Información: Define que necesita saber la organización para funcionar.
Componentes clásicos: 1. La descripción y contenido de los datos.
2. Diccionario de conceptos donde se explican todos los términosutilizados en la información de la aplicación. 3. Los modelos de datos y las estructuras de las bases de datos. 3. Las políticas de administración de datos. 4. Descripción de las diferentes visiones con que esos datos se crean, manipulan y consultan por la organización. 5. Procesos de Workflow de datos.
4.Gestión: Define los condicionamientos de gestión y administración de toda la plataforma
distribuida.
Componentes clásicos: 1. Lugares donde existe administración informática.
2. Condicionamientos organizativos. 3. Políticas de soporte a usuario. 4. Gestión de adquisición de recursos. 5. Horarios de disponibilidad. 6. Políticas de
medición y análisis de rendimientos, etc.
5.Tecnología: Propone el software básico, el hardware, las redes y las comunicaciones que soportan el sistema distribuido y por tanto a la organización.
Componentes clásicos: 1. Hardware y software básico de los puestos clientes y de los puestos servidores. 2. Estándares adoptados por la organización.
3. Recursos de impresión. 4. Ofimática. 5. PDAs y telefonía móvil.
Arquitectura: es la organización fundamental de un sistema, donde se integran sus componentes, se establecen las relaciones e interdependencias entre esos componentes y su entorno y se establecen los principios para su diseño, gestión y evolución.
Arquitectura Distribuida y sus componentes:
Una forma de diseñar sistemas de información basada en la utilización de servicios.
Qué es un servicio? mecanismo que permite el acceso a servicios de forma transparente a la través de la red. Dan datos y procesos especializados proveídos por servidores o Agentes.
Estructura básica de un Servicio: El servicio en sí, definido por un contrato de especificación y desarrollado y encapsulado de forma análoga a una rutina convencional. Proporciona la funcionalidad y/o los datos. Forma de llamarlo: (RPC, SOAP, Cola, ODBC,). Modo de utilizarlo: (asincrona, sincrona, desacopladamente).
La ficha de enviroment, que permitirá parametrizarlo para adaptar la funcionalidad y ajusta la explotación y la administración.
Arquitectura Distribuida Cliente/Servidor: forma de diseñar Sistemas de Información a partir de la distribución del trabajo en servicios especializados basada en laexistencia de programas que piden Servicios(Clientes), a otros programasespecializados que los suministran (Servidores). ¿Qué es el Cliente? Conjunto de Software y Hardware que invoca los servicios de uno o varios servidores.
¿Qué es el Servidor? Conjunto de Hardware y Software que responde a los requerimientos de un cliente.
Transportistas: Se encargan de recoger y transportar los mensajes que se intercambian cliente y servidor.
PLATAFORMA o SISTEMA: Es el conjunto de hardware, sistemas operativos, redes y comunicaciones.
Proceso Cliente/Servidor: si 2 o más programas actúande forma coordinada eso es un proceso distribuido. Hablar de diseño C/S es hablar de diseño de procesos distribuidos, en los cuales el lado de el servidor está especializado y proporciona servicio a más de un cliente y en el cual los dos servicios se comunican mediante el diálogo C/S.
La forma de comunicarse dos programas está caracterizada por dos pasos:
1. Petición del serv. del Clte al Srvid. 2. Respuesta del S. al Clte con la rspta al servicio solicitado.
¿Qué no es C/S? No es una forma de hacer análisis funcional ni de requerimientos. No es una metodología de programación.
Prerrequisitos de una Arquitectura Distribuida Cliente/Servidor:
Capacidad de ejecutar más de un programa simultáneamente.
—Un sistema multitarea: Capaz de ejecutar sobre una misma máquina más de un programa a la vez.
—Un sistema con más de un ordenador: Donde cliente y servidor se ejecutan sobre máquinas, y posiblemente sistemas operativos, diferentes.
—La plataforma Internet: Donde el servicio se pide a través de la red y se suministra desde plataformas desconocidas para el cliente.
—Un sistema de comunicación y de intercambio de mensajes entre programas: Sobre el que se montará el transportista. Por ejemplo, una plataforma TCP/IP.
—Potencia de proceso en los clientes en las aplicaciones basadas en sistema operativo.
Que no obliga la adopción de una estrategia:
1. A trabajar con más de un ordenador. 2. A colocar un ordenador por servidor. 3. A separar en diferentes máquinas clientes y servidores. 4. A comunicaciones remotas aunque cada vez es más habitual. 5. A trabajar en paradigma OO.
Características diferenciales del diseño C/S:
1.Servicios disponibles, básicamente, en protocolo de petición / respuesta(cliente / servidor). 2. Especialización de esos servicios. 3. Recursos compartidos. 4. Transparencia de localización. 5. Independencia del hardware, sistemas operativos y comunicaciones. 6. Diálogo basado en mensajes. 7. Escalabilidad horizontal y vertical. 8. Reusabilidad de componentes.
¿Qué cualidades conviene buscar en un diseño distribuido? VENTAJAS - S.I.D
1.Trabajar con una imagen de sistema única. 2. Adaptabilidad a la organización. 3. Transportabilidad entre diferentes sistemas. 4. Reusabilidad.
INFRAESTRUCTURA: es la concreción física del componente básico sistema. Proporciona los elementos para crear, desarrollar y administrar las aplicaciones.
Elementos de infraestructura: 1Hardware. 2.Software. 3. Elementos de Seguridad. 4. Internet.
Transportista: Elemento encargado de comunicar cliente y servidor en la solución C/S basada en Sistemas Operativos y de conectar al cliente a la WEB o el proveedor de servicio en la solución Internet.
El transportista está dotado de dos mecanismos: 1. Capacidad para recepción y notificación de mensajes entre programas. 2. Capacidad para transportarlos.
Middleware: El conjunto de servicios que permiten distribuir datos y procesos a través de un sistema multitarea, una red local, una red remota o Internet.
Estos servicios se catalogan en dos grandes grupos:
1. Servicios de desarrollo. 2. Servicios de administración.
El objetivo principal es conseguir la TRANSPARENCIA.
Localización de los servicios: Cuando la aplicación entre en explotación los servicios se habrán de situar sobre los elementos físicos de la infraestructura.
Localización Estática y Dinámica:
La localización de un sistema distribuido sobre una plataforma es un conjunto de localización estática y dinámica.
Localización es estática (en frío): caso en que los servidores se arranquen cuando se arranca cada el elemento del sistema donde están localizados.
Localización dinámica:
En un sistema de una mínima complejidad, el administrador ya necesitará poder activar y desactivar servicios en caliente una vez arrancado el sistema.
El diseñador deberá dotar a la aplicación de cualidades como replicación y paralelismo (posibilidad de arrancar más de una copia del servidor simultáneamente), tolerancia a fallos, etc. Que permitan al Administrador realizar una gestión estática y dinámica del sistema, cómoda, eficaz y barata.
Servicios de interés para Aplicaciones Distribuidas proporcionadas por las Redes:
—Servidores de ficheros, datos e impresión.
—Gestión centralizada y unificada de los recursos de comunicaciones remotas de la plataforma para disponer de:
—Acceso unificado a Internet.
—Servidores de FTP para implementar servidores de ficheros remotos e interoperables de forma transparente a los sistemas conectados.
—Integración de puntos de red remotos, de forma interoperable si las redes locales y remotas son homogéneas y cuasi-interoperable si no los son.
—En redes homogéneas, servicios unificados e integrados de gestión y autentificación de usuarios y gestión de seguridad de acceso a recursos compartidos.
—Comunicaciones externas con terceros.
Protocolos: Reglas y proced. q utilizan las redes p establecer la comunicación en los nodos. Son el soporte del transportista. Sin importancia en el diseño ya que están embebidos en el Middleware.
Gestionan dos niveles de comunicación distintos: Alto nivel: definen como se comunican las aplicaciones. Bajo Nivel: definen como se transmiten las señales por el cable.
Funciones de los Protocolos:
1. Define la asignación de las interfaces físicas.
2. Define la disciplina de línea a ser usada (Full dúplex - Half dúplex).
3. Detección y Corrección de errores en la transmisión.
4. Proveer una secuencia para los paquetes de datos transmitidos.
5. Establece una técnica de enrutamiento dentro de la Red.
¿Qué es un Clúster?
Conjunto de dos o más ordenadores acoplados en red que comparten un subsistema de discos, muchas veces en replicación por espejo, y un software que trabaja como un sistema único garantizando el funcionamiento normal del sistema aunque falle uno de los ordenadores.
Los elementos de un clúster son:
1. Los nodos de proceso.2. La red de interconexión.3. El subsistema de discos compartidos.
Clúster y aplicaciones distribuidas:
Una de la razones de montar aplicaciones distribuidas es conseguir dar servicio cuando se cae un servidor. Si los servidores los colocamos en clúster, la tolerancia a fallos de la aplicación distribuida será muy alta y podremos ahorrar en software dedicado al análisis de consistencia que ha de garantizar la recuperación y funcionamiento del sistema en caso de caída en uno de los nodos.
SAN (Storage Area Networks): una red de fibra óptica y dispositivos de conmutación dedicados a interconectar recursos de almacenamiento y servidores sin interferencia de la red de trabajo.
Proporcionan: 1. Carencia de puntos únicos de fallos. 2. Alto rendimiento, la conexión no es por la LAN convenc . 3. Escalabilidad, es muy fácil añadir new elements of storage. 4. Disponibilidad.
Cotejemos diseño con infraestructura: 1. Velocidad y Disponib. de la conexión. 2. Necesidad de autonomía de los puestos remotos. 3. El coste de la comunicación. 4. La Administración remota
Arquitectura del Middleware:—
El nivel de Transporte (Transport Stack): Formado por los protocolos de transporte que proporcionan comunicación end-to-end en las LANs y las WANs.
—El Sistema operativo de red (Netware Operating System): NOS extiende las opciones locales del sistema operativo hasta incluir todos los dispositivos de red (impresoras, directorios de ficheros, módem, scanner, etc.).
—El Administrador del Sistema Distribuido (Distribuited System Administration): Su función es asumir las funciones de administración del sistema distribuido. Su importancia es notable en los diseños distribuidos ya que la administración que el DSM no resuelva habrá de aportarla con el diseño.
—Nivel de Servicios Específicos: Aprovechando las tres plataformas anteriores se establece la capa de servicios específicos como RPC,Colas, Mail, ODBC etc.
Interaccesibilidad o interconexión: Los sistemas son accesibles entre ellos pero no de forma transparente a los programas. Si los sistemas se mantienen interaccesibles, la conexión entre ellos sólo será posible con filosofía de interface y no existirán aplicaciones distribuidas si no se desarrolla Middleware específico.
Interoperatividad: Los sistemas son accesibles de forma transparente a los programas. Supone la existencia de un Middleware, comprado o construido, que lo permite.
Para lograr la interoperatividad hay tres caminos:
1.Comprar Middleware. 2. Migrar a sistemas interoperables. 3. Encapsular las causas creando el Middleware en los puntos y funciones en que se necesite interoperatividad.
Conectividad y Diseño Distribuido:
El diseño de cualquier aplicación distribuida tiene como precondición que los sistemas integrados son interoperables. Si no fuera así se habrían de marcar los puntos de heterogeneidad y actuar tal como se explica al final del apartado anterior.
El diseño distribuido es: la forma de conseguir aplicaciones distribuidas sobre la plataforma interoperable. El diseño se apoya en las posibilidades de interoperabilidad que le proporciona la conectividad.
Diseño de Consistencia: La necesidad de recuperar errores y de añadir funcionalidad para resolver estas Situaciones.
Arquitectura física y lógica:
Física: está determinada por las capas de conectividad de la plataforma del sistema.
Ejem: una arquitectura física de cuatro niveles puede estar compuesta por:
Un HOST.
Uno o varios servidores en la central que actúan de Front-end conectado(s) al HOST.
Servidores departamentales conectados a los servidores de la central.
Redes de PCs conectados a cada servidor departamental.
Lógica:
Está determinada por los niveles o capas donde las aplicaciones pueden localizar recursos (datos y procesos) gestionados de forma interoperable a través de Middleware. La arquitectura lógica resulta de la física filtrándola con los puntos donde la organización permite o necesita colocar administración.
Diferentes criterios para establecer la arquitectura lógica sobre la física:
La interoperabilidad del Middleware.
La estructura empresarial.
La dispersión geográfica.
La política de administración del sistema distribuido.
Necesidades específicas de cada aplicación.Procesos Distribuidos:
la funcionalidad y/o los datos que lo conforman pueden residir de forma transparente en cualquier punto de la plataforma de la arquitectura distribuida.
Procesos Distribuibles:
Aquel en el cual, si bien las funciones y/o los datos pueden estar distribuidos por la plataforma, la distribución no es transparente y está ligado a puntos concretos de la plataforma.
Sistema centralizado : basado en una sola CPU+memoria+disco, con uno o varios puestos de trabajo. Varias CPUs desacopladas (unidas por una red).
Principal problema para tener un SID: El software base.
Definición suave: sistema informático consistente en múltiples máquinas conectadas entre sí que no comparten memoria global (definición débil).
Definición fuerte: sistema informático consistente en un conjunto de máquinas que no comparten una memoria global y que dan la apariencia de ser un solo computador.
Ventajas de un s.d. frente a un s.centralizado: 1. Mejor relación prestaciones/precio. 2.Más velocidad total. 3. Crecimiento incremental. 4. Soporte a servicios inherentemente distribuidos (ej. correo, web, P2P…). 5.Mayor fiabilidad y disponibilidad.
Prestaciones relativas: Resulta más rentable aumentar la potencia del sistema CPU comprando más ordenadores, que comprando una CPU más potente.
Velocidad: Un solo procesador no puede alcanzar tanta velocidad como queramos (existen límites físicos).
Escalabilidad: Si se desea más potencia, en un s.d. basta con comprar más microprocesadores. Además, los equipos antiguos pueden seguir dando servicio.
Aplicaciones distribuidas: Muchas aplicaciones sólo se conciben como distribuidas (correo electrónico, sistemas de información en Internet, trabajo corporativo, etc.)
Características problemáticas de un sistema distribuido:
Problemas de comunicación:
qFiabilidad (pérdidas, corrupción, desorden…)
qSeguridad (confianza)
qMás coste en la comunicación entre procesos
Fallos:
qMás probabilidad de fallos en algún punto
qNuestro sistema local puede verse afectado por fallos en máquinas de otros lugares. Heterogeneidad de los nodos (hw, SO). Imposibilidad de mantener un estado global.
Objetivos de diseño de los servicios distribuidos:
1.Comportamiento transparente
2.Soporte a la heterogeneidad
3.Fiabilidad (reliability)
4.Rendimiento (performance)
5.Escalabilidad
1. Transparencia:
Que los usuarios no perciban la naturaleza distribuida del servicio.
Aspectos de la transparencia:
Ubicación (dónde está ubicado el servicio)
Migración (se pueden reubicar los recursos)
Replicación (los recursos pueden estar replicados, sin que lo controle el usuario)
Concurrencia (varios usuarios comparten un recurso, sin que se note)
Ejemplo: servicios P2P
2. Soporte a la Heterogeneidad:
Permitir la convivencia de sistemas diferentes en hardware, sistema operativo, etc.
Ejemplo: máquinas virtuales (Java)
3. Fiabilidad:
Disponibilidad (availability). Conseguir que el servicio esté disponible la mayor cantidad de tiempo.
Tolerancia a fallos (fault tolerance). Conseguir mantener la disponibilidad del servicio incluso si hay fallos parciales.
Integridad. Garantizar que la información contenida es correcta y completa.
Protección. Garantizar que no se producen accesos no autorizados.
4. Rendimiento:
La transparencia, el soporte a la heterogeneidad y el aumento de fiabilidad no deberían penalizar excesivamente el rendimiento.
Aspectos a tener en cuenta: Lentitud de la red de comunicaciones.
Coste de los protocolos que garantizan la integridad de la información y la tolerancia a fallos. Impacto de los servicios que se gestionan de forma centralizada.
5. Escalabilidad:
Un servicio distribuido debe ser muy escalable: el número de nodos debería poder crecer indefinidamente sin que la calidad del servicio se degrade notablemente.
Esto tiene mucho que ver con evitar centralizar recursos o componentes.
Escalabilidad y descentralización:
Características de un sistema distribuido escalable:
Ninguna máquina contiene información completa y actualizada sobre todo el sistema
Las decisiones se toman usando solamente información local
Los algoritmos funcionan bien incluso si alguna máquina participante deja de estar disponible
Los algoritmos no se basan en un reloj global.
Administración de un s.d.:
La administración se vuelve más complicada
¿Cómo lanzamos un servicio distribuido?
¿Cómo monitorizamos el servicio?
¿Tenemos permiso para actuar sobre todos los servidores?
Conclusión: el enfoque tradicional de administración centralizada no es el más adecuado en un sistema distribuido.
Fallos en un s.d:
Tipos de fallos:
fallo de un enlace
fallo de una máquina
pérdida de mensajes
fallos de software
En un sistema asíncrono, es imposible conocer con certeza si una máquina ha fallado. La detección de fallos se basa en suposiciones.
Problema añadido: desconexiones temporales (particiones en la red)
Modelos de diseño de componentes distribuidos
El modelo natural en un s.d. es la interacción cliente-servidor
Enfoques:
Procesos/aplicaciones distribuidas
Objetos distribuidos
Servicios distribuidos
Tecnologías:
Paso de mensajes (tecnología más básica)
Llamada a procedimiento remoto (RPC)
Llamadas a objetos remotos
Servicios Web (Web Services, SOAP)
S.D -existentes en organizaciones: 1. Sist. Con códigos de barra. 2. Sist. Con transferencia elect. De fondos (banco). 3. Intercambio Electrónico de Datos. 4. Tarjetas clientes frecuentes (millas, puntos, descuentos). 5. Comercio electrónico. 6. Sist. de servic. Bancarios y financieros. 7. Interfaz de voz p servicio al cliente y ventas.
Ventajas competitivas de SID: 1. Reducir costos: increm. Barreras entrada al mercado(1er pág. De transacciones del B.N). con esto tengo una barrera (el tiempo q tenga hasta q´me alcancen con otro sist., parecido). 2. Altos costos de cambio: quedarnos en eso, inversión q valga la pena, algo grande y escalable. 3. Crear diferencia (Produc y Servic), servicios para facilitar y realizar ciertas transacciones desde internet, sin trasladarse. 4. Creación de alianzas estratégicas: pago de servicios x internet. 5. Rivalidad entre competidores: exite cierta rivalidad por la existencia de ciertos productos o servicios.