miércoles, 4 de septiembre de 2013

Modelos de Sistema Distribuido



  1. Estaciones y servidores
    • Es el más común en la actualidad
    • A cada usuario, se le asigna una estación
    • Las estaciones:
      • ejecutan las aplicaciones,
      • dan soporte a la interfaz de usuario (GUI),
      • acceden a los servicios compartidos, mediante software de comunicaciones
    • Los servidores dan acceso a:
      • información compartida (servicio de ficheros)
      • dispositivos hardware compartidos (impresoras, scanners)
      • funciones de Sistema Operativo (autenticación).
    • Ejemplos:
      • XDS y Cedar, del Xerox PARC
      • V-system, de la Universidad de Stanford
      • Argus, del MIT
2.       Banco de procesadores 


  • Ejemplo: CDCS, basado en el Anillo de Cambridge
  • Los procesadores del banco (PB):
    • Tienen una CPU + suficiente memoria
    • No tienen ni discos ni terminales
  • Los usuarios acceden al sistema desde terminales conectados a PAD's
  • Gestor de Recursos: controla el acceso a los PB.
    • el usuario especifica sus requerimientos (CPU, memoria, programa)
    • el GR le asigna un procesador como ordenador personal.
  • Ancilla:
    • Carga los programas en los PB
    • Emula la consola de la máquina
  • Los servidores corren en los PB, excepto:
    • Servidor de Ficheros, basado en miniordenadores con disco.
  • Ventajas respecto a Estaciones y Servidores:
    • Mejor utilización de recursos
      • muchos puntos de entrada con pocas CPU's
    • Mayor flexibilidad
      • se pueden dedicar procesadores para expandir servicios
    • Compatibilidad con el sw preexistente
    • Utilización de procesadores heterogéneos
  • Inconveniente: mala respuesta interactiva.

3.       Miniordenadores integrados


    • Basado en máquinas multiusuario
    • El usuario se conecta a una máquina específica.
    • Enfoques históricos:
      • Acceso remoto mediante copias:
        1. No se mezclan los espacios de nombramiento locales
        2. No es distribuido.
      • Sistemas de ficheros contiguos 
        1. Ejemplos: NETIX y Newcastle Connection
        2. Super directorio virtual: "/../" ==> esquema de nombramiento global
        3. No es distribuido: el nombre de los ficheros depende de su ubicación
      • Enfoque realmente distribuido:
        1. Ejemplo: Locus, de la UCLA
        2. Cada ordenador mantiene su autonomía
          1. Corre un conjunto completo de sw estándar
          2. Maneja sus propias aplicaciones y servicios
        3. Comparten un esquema de nombramiento global
          1. El acceso es independiente de la ubicación
          2. El sistema operativo puede migrar y replicar ficheros.

  • Modelos híbridos
    • Ejemplo: Amoeba, de la Universidad Libre de Amsterdam
    • Consiste en:
      • Un sistema de Estaciones y Servidores +
      • un Banco de Procesadores.
    • Funcionalidad mixta:
      • Estaciones para las aplicaciones interactivas
      • procesadores variados
      • servidores especializados
    • Características:
      • Núcleo pequeño: planificación y paso de mensajes
      • El Sistema Operativo corre como procesos de usuario
      • Servicio de pasarelas a WAN
      • Gestión del banco:
        • Servidor de carga: informa al cliente de los requisitos de su programa (tipo de CPU, cantidad de memoria, ...)
        • Servidor de procesos: selecciona un procesador del banco y le da al cliente una credencial.
    • Ventajas:
      • Recursos de procesamiento ajustados a las necesidades del usuario
      • Ejecución concurrente
      • Acceso a través de terminales.


Aporte: Eduardo Medina


Seguridad en Sistemas Distribuidos


Evolución de las Necesidades de Seguridad


Debemos de distinguir entre políticas de seguridad y mecanismos de seguridad, es de utilidad cuando se diseñan sistemas seguros, pero lo complicado es estar seguro de si los conjuntos de mecanismos de seguridad se implementan completamente y complementan las políticas de seguridad deseadas.

Seguridad Física

Esta es proporcionada por aparatos o tecnologías de seguridad como:

FIREWALLS

Un firewalls es un host con varios interfaces de red que es capaz de filtrar el tráfico de datos en bases a diversos criterios (reglas). Se utilizan para definir segmentos protegidos en una red. Separan a los hosts sin privilegios, de los servicios y estaciones (normalmente servidores) considerados como protegidos.
Un buen firewall, tiene por defecto la regla de bloquear todo lo que no sea explícitamente autorizado. Pueden consistir en un software corriendo en un servidor, o en un dispositivo hard dedicado exclusivamente al filtrado. Si son servidores, se recomienda que sean dedicados, y ‘hardened’. Los ‘appliances’ son considerados más seguros. 
Desde el punto de vista funcional hay dos tipos básicos de firewalls:
  • Packet Filtering
  • Proxy Firewalls



Seguridad Lógica

Esta es proporcionada por el software, en sí todo equipo que ofrece seguridad a nivel de redes y más aun de sistemas distribuidos es dependiente completamente del software, puesto que sin este solo sería un aparato más sin función.

Criptografía:

La encriptación es el proceso de codificación de un mensaje de forma que queden ocultos sus contenidos. 
La criptografía moderna incluye algunos algoritmos seguros de encriptación y desencriptación de mensajes. 
Todos ellos se basan en el uso de ciertos secretos llamados claves.  Una clave criptográfica es un parámetro empleado en un algoritmo de encriptación de manera que no sea reversible sin el conocimiento de una clave.

Autenticación: 

La criptografía se emplea como base para los mecanismos para autenticar la comunicación entre pares de principales. Un principal que desencripta un mensaje con éxito empleando una clave particular puede presuponer que el mensaje es auténtico si contiene una suma de chequeo correcta o, si se emplea el modo de encriptación de encadenamiento de bloques. 
Éstos podrán inferir que el emisor del mensaje estaba en posesión de la clave de encriptación correspondiente y entonces deducir la identidad del emisor, siempre qué la clave sólo sea conocida por las dos partes. 
En resumen, si las claves se mantienen en secreto, una desencriptación con éxito da fe de que el mensaje desencriptado proviene de un emisor concreto.

Firmas Digitales:

Una firma digital robusta es un requisito esencial para los sistemas seguros. Se las necesita para certificar ciertos trozos de información, por ejemplo para proporcionar enunciados dignos de confianza que relacionan identidades de usuarios con claves públicas. 
Las firmas manuscritas necesitan verificar que éste es: 
  • Autentico: convence al receptor de que el firmante firmó deliberadamente el documento y que la firma no ha sido alterado por nadie. 
  • Infalsificable: aporta la prueba de que el firmante firmó el documento. 
  • No repudiable: el firmante no puede negar de forma creíble que eldocumento fue por él.



Amenazas de seguridad: 
  • Fuga: la adquisición de información por receptores no autorizados. 
  • Alteración: la modificación no autorizada de información. 
  • Vandalismo: interferencia en el modo de operación adecuado de un sistema, sin ganancia para el responsable. 
Los ataques en los sistemas distribuidos dependen de la obtención de acceso a los canales de comunicación. Los métodos de ataque pueden clasificarse en función del modo en que se abusa del canal: 
  • Fisgar: obtener copias sin autorización. 
  • Suplantar: enviar o recibir mensajes utilizando la identidad de otro sin su autorización. 
  • Alterar mensajes: interceptar mensajes y alterar sus contenidos antes de pasarlos al receptor. 
  • Reenviar: almacenar mensajes interceptados y enviarlos más tarde. 
  • Denegación de servicio: desbordar un canal o recurso para impedir que otros accedan a él.

De acuerdo al Modelo de Seguridad
  • Autenticación: comprobación de la identidad del proceso 
  • Criptografía: uso de claves públicas y privadas
  • Canales seguros: canal de comunicación sobre el que dos procesos han establecido una capa de seguridad basada en criptografía + autenticación: 
    • Se garantiza la identidad fiable de servidores y clientes 
    • Se garantiza la integridad y privacidad de los mensajes enviados 
    • Los mensajes incluyen una marca de tiempo para prevenir su repetición o reordenación maliciosa

Modelo Arquitectónico P2P

Una red peer-to-peer, red de pares, red entre iguales, red entre pares o red punto a punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos.

Los sistemas peer-to-peer son sistemas descentralizados, en los que los cálculos pueden llevarse a cabo en cualquier nodo de la red y, al menos en principio , no se hacen distinciones entre clientes y servidores . En las aplicaciones peer-to-peer, el sistema en su totalidad se diseña para aprovechar la ventaja de la potencia computacional y disponibilidad de almacenamiento a través de una red de computadoras potencialmente enorme.




Clay Shirky, del The Accelerator Group definió que “P2P es una clase de aplicaciones que toma ventajas de los recursos – almacenamiento, ciclos de CPU, contenido y presencia humana – disponible en los entremos de Internet” [SHI01], y planteó un test para definir si una aplicación es P2P basado en dos preguntas:

  1. ¿Permite (la aplicación) conectividad variable y direcciones de red temporarias?
  2. ¿Brinda a los nodos de los extremos de la red autonomía significativa?
Según el mencionado autor, si la respuesta a ambas preguntas es afirmativa, entonces la aplicación es considerada P2P.

Ejemplos de P2P


En los últimos años han surgido aplicaciones en Internet que aprovechan las capacidades de los equipos de usuario final. Cada una de estas aplicaciones implementan un servicio que opera de manera distribuida en computadoras de usuario final. Por ejemplo ICQ [ICQ03] y AIM [AIM03] brindan servicios de mensajería, Gnutella [BOR01], Freenet [CLA00] y Napster [NAP00] servicio de distribución de archivos y SETI@Home [KOR01] procesamiento distribuido.

AplicaciónRed o ProtocoloSistema operativoSoftware libre
aMuleeDonkey, KadMultiplataforma
eMuleeDonkey, KadWindows
FilesWireGnutella, G3MultiplataformaNo
giFTeDonkey, FastTrack, GnutellaMultiplataforma
GnucleusGnutella, Gnutella2Windows
iMeshFastTrack, eDonkey, Gnutella, Gnutella2 (versiones anteriores a la 6.0)WindowsNo
KCeasyAres Galaxy, FastTrack, Gnutella, OpenFTWindows
Kiwi AlphaGnutella, Gnutella2WindowsNo
MLDonkeyBitTorrent, Direct Connect, eDonkey, FastTrack, Kad, OpenNap, SoulSeek, HTTP/FTPMultiplataforma
MorpheusBitTorrent, Gnutella, Gnutella2WindowsNo
ShareazaGnutella, Gnutella2, eDonkey, BitTorrent, HTTP/FTPWindowsNo
VagaaBitTorrent, eDonkey, KadWindowsNo
WinMXWPNP, OpenNapWindowsNo
ZultraxGnutella, ZEPPWindowsNo






Características deseables:




  • Escalabilidad. Las redes P2P tienen un alcance mundial con cientos de millones de usuarios potenciales. En general, lo deseable es que cuantos más nodos estén conectados a una red P2P, mejor será su funcionamiento. Así, cuando los nodos llegan y comparten sus propios recursos, los recursos totales del sistema aumentan. Esto es diferente en una arquitectura del modo servidor-cliente con un sistema fijo de servidores, en los cuales la adición de clientes podría significar una transferencia de datos más lenta para todos los usuarios. Algunos autores advierten que, si proliferan mucho este tipo de redes, cliente-servidor, podrían llegar a su fin, ya que a cada una de estas redes se conectarán muy pocos usuarios.
  • Robustez. La naturaleza distribuida de las redes peer-to-peer también incrementa la robustez en caso de haber fallos en la réplica excesiva de los datos hacia múltiples destinos, y en sistemas P2P puros permitiendo a los peers encontrar la información sin hacer peticiones a ningún servidor centralizado de indexado. En el último caso, no hay ningún punto singular de falla en el sistema.
  • Descentralización. Estas redes por definición son descentralizadas y todos los nodos son iguales. No existen nodos con funciones especiales, y por tanto ningún nodo es imprescindible para el funcionamiento de la red. En realidad, algunas redes comúnmente llamadas P2P no cumplen esta característica, como Napster, eDonkey o BitTorrent.
  • Distribución de costes entre los usuarios. Se comparten o donan recursos a cambio de recursos. Según la aplicación de la red, los recursos pueden ser archivos, ancho de banda, ciclos de proceso o almacenamiento de disco.
  • Anonimato. Es deseable que en estas redes quede anónimo el autor de un contenido, el editor, el lector, el servidor que lo alberga y la petición para encontrarlo, siempre que así lo necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de autor son incompatibles entre sí, y la industria propone mecanismos como el DRM para limitar ambos.
  • Seguridad. Es una de las características deseables de las redes P2P menos implementada. Los objetivos de un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones entre nodos, creación de grupos seguros de nodos dentro de la red, protección de los recursos de la red... La mayor parte de los nodos aún están bajo investigación, pero los mecanismos más prometedores son: cifrado multiclave, cajas de arena, gestión de derechos de autor (la industria define qué puede hacer el usuario; por ejemplo, la segunda vez que se oye la canción se apaga), reputación (permitir acceso sólo a los conocidos), comunicaciones seguras, comentarios sobre los ficheros, etc.


Ventajas y desventajas


En un sistema p2p, donde un cálculo (que requiere un uso intensivo del procesador) se distribuye a través de un gran número de nodos , es normal que se distingan algunos nodos cuyo papel es distribuir el trabajo a otros nodos y reunir y comprobar los resultados del cálculo. Si bien hay sobrecargas obvias en los sistemas peer-to-peer, éstos son una aproximación mucho más eficiente para la computación interorganizacional que la aproximación basada en servicios que veremos seguidamente. 

Todavía hay problemas en el uso de las arquitecturas p2p , ya que cuestiones tales como la protección y la autenticidad no están del todo resueltas . Esto significa que los sistemas p2p se usan más en sistemas de información no críticos.

Principales tipos de redes P2P





Enlaces de Interés:


Modelo Arquitectónico Cliente-Servidor

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.



  • Una arquitectura Cliente-Servidor es una relación entre procesos corriendo en máquinas separadas
  • El servidor es un proveedor de servicios.
  • El cliente es un consumidor de servicios.
  • El cliente y el servidor interactúan por un mecanismo de pasaje de mensajes que son básicamente:
  • Pedido de servicio.
  • Respuesta








CLIENTE



Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de las aplicaciones es totalmente transparente para el cliente.



SERVIDOR



Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a través de redes LAN o WAN, para proveer de múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax, procesamiento de imágenes, etc.




Ventajas



  • Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P)
  • Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores)
  • Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación.
  • Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad de la interfaz, y la facilidad de empleo.




Desventajas



  • La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una gran cantidad de clientes envían peticiones simultáneas al mismo servidor, puede ser que cause muchos problemas para éste (a mayor número de clientes, más problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de servidor, cuanto más nodos hay, mejor es el ancho de banda que se tiene.
  • El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en la red.
  • El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste.
  • El cliente no dispone de los recursos que puedan existir en el servidor. Por ejemplo, si la aplicación es una Web, no podemos escribir en el disco duro del cliente o imprimir directamente sobre las impresoras sin sacar antes la ventana previa de impresión de los navegadores.






CARACTERÍSTICAS DEL MODELO CLIENTE/SERVIDOR




  1. El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.
  2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma.
  3. Un servidor da servicio a múltiples clientes en forma concurrente.
  4. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.
  5. La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos.
  6. Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones Clientes. Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final.
  7. También es importante hacer notar que las funciones Cliente - Servidor pueden ser dinámicas. Ejemplo, un servidor puede convertirse en cliente cuando realiza la solicitud de servicios a otras plataformas dentro de la red.
  8. Su capacidad para permitir integrar los equipos ya existentes en una organización, dentro de una arquitectura informática descentralizada y heterogénea.
  9. Además se constituye como el nexo de unión mas adecuado para reconciliar los sistemas de información basados en mainframes o minicomputadores, con aquellos otros sustentados en entornos informáticos pequeños y estaciones de trabajo.
  10. Designa un modelo de construcción de sistemas informáticos de carácter distribuido.
  11. Su representación típica es un centro de trabajo (PC), en donde el usuario dispone de sus propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del sistema central de información de la organización, al tiempo que puede acceder a los recursos de este host central y otros sistemas de la organización ponen a su servicio.








La arquitectura Cliente - Servidor puede contener diferente plataformas como: bases de datos, redes y sistemas operativos. Estos pueden ser de distintos proveedores, en arquitecturas propietarias y no propietarias y funcionando todos al mismo tiempo. Por lo tanto, su implantación involucra diferentes tipos de estándares: APPC, TCP/IP, OSI, NFS, DRDA corriendo sobre DOS, OS/2, Windows o PC UNIX, en TokenRing, Ethernet, FDDI o medio coaxial.

jueves, 29 de agosto de 2013

Introducción a los Modelos de Sistemas Distribuidos


INTRODUCCION A LOS MODELOS DE SISTEMAS DISTRIBUIDOS



  • Los sistemas distribuidos en general tienen características básicas comunes sean cuales sean.
  • Un modelo es la descripción abstracta de manera simplificada pero consistente de cada aspecto relevante del diseño de un sistema distribuido
Los tipos de modelos son:
  • Físicos: Es la representación abstracta de los elementos del sistema
  • Arquitectónicos: Son las relación entre los componentes del sistema
  • Fundamentales: Siguen según las principales características de un sistema (interacción, fallos, seguridad)

I. Modelos físicos

  • Representación de los elementos de hardware en un sistema distribuido, estos abstraen los detalles de las tecnologías de red o de las computadores subyacentes
  • Sirven para diferenciar las distintas generaciones de sistemas distribuidos

Generaciones de Sistemas Distribuidos

II. Modelos arquitectónicos 


  • Sirve para describir las interacciones entre componentes y dentro de la plataforma de red:“simplifica y abstrae las funciones y roles de los componentes individuales” 
  • Tipos de modelos
  • Cliente-servidor
  • Servicios proporcionados por múltiples servidores
  • Servidores proxy y cachés
  • Sistemas de igual a igual (peer to peer)


III.  Modelos fundamentales


  • Todas las arquitecturas comparten algunas propiedades fundamentales como son procesos que se comunican por paso de mensajes a través de una red de computadoras
  • Los principales temas tratados por este modelo son:
  • Interacción: el modelo debe definir y clasificar la comunicación
  • Fallos: el modelo debe definir y clasificar los fallos que pueden darse en el sistema.
  • Seguridad: el modelo debe definir y clasificar los tipos de ataque que pueden afectar al sistema.

Aspectos legales del E-commerce

Para detallar los aspectos legales debemos de entender primero algunos términos vistos desde el lado jurídico. Propiedad intelectual Com...