jueves, 7 de mayo de 2015

Arquitectura Cliente Servidor

La Arquitectura-Cliente-Servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes. En este modelo las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario.


Características de la arquitectura Cliente/Servidor

Ø  Combinación de un cliente que interactúa con el usuario, y un servidor que interactúa con los recursos compartidos. El proceso del cliente proporciona la interfaz entre el usuario y el resto del sistema. El proceso del servidor actúa como un motor de software que maneja recursos compartidos tales como bases de datos, etc.
Ø  La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a recursos compartidos.
Ø  Los clientes corresponden a procesos activos en cuanto a que son éstos los que hacen peticiones de servicios a los servidores.  Estos últimos tienen un carácter pasivo ya que esperan las peticiones de los clientes.
Ø  No existe otra relación entre clientes y servidores que no sea la que se establece a través del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega de solicitudes de servicio.
Ø El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre la misma. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas.

En la actualidad una gran mayoría de sistemas están basados en la arquitectura cliente-servidor; siendo que este modelo aporta gran funcionalidad y optimización en el uso de recursos lo cual repercute favorablemente en el rendimiento de tales sistemas.

Características deseables de las redes P2P

  • Escalabilidad.. Se da 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.
  • 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.
  • Descentralización. Estas redes por definición son descentralizadas y todos los nodos son iguales.
  • 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.
  • Seguridad.. 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

P2P (PEER –TO- PEER)

Una red peer-to-peer, red de pares, red entre iguales o red entre pares (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, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados.




Actualmente, en Internet el ancho de banda o las capacidades de almacenamiento y cómputo son recursos caros. En aquellas aplicaciones y servicios que requieran una enorme cantidad de recursos pueden usarse las redes P2P.

Algunos ejemplos de aplicación de las redes P2P son los siguientes:


  • Intercambio y búsqueda de ficheros: Algunos ejemplos sonBitTorrent o emule
  • Sistemas de ficheros distribuidos, como CFS o Freenet.
  • Sistemas para proporcionar cierto grado de anonimato, como i2p, Tarzan P2P o MorphMix. Este tipo de tecnologías forman parte de la llamada red oscura y constituyen el llamado peer-to-peer anónimo.
  • Sistemas de telefonía por Internet, como Skype.

Arquitectura de Pizarra

En esta arquitectura hay dos componentes principales: una estructura de datos que representa el estado actual y una colección de componentes independientes que operan sobre él. En base a esta distinción se han definidos dos subcategorías principales del estilo:


  1. Si los tipos de transacciones en el flujo de entrada definen los procesos a ejecutar, el repositorio puede ser una base de datos tradicional (implícitamente no cliente-servidor).
  2. Si el estado actual de la estructura de datos dispara los procesos a ejecutar, el repositorio es lo que se llama una pizarra pura o un tablero de control.

Todo modelo de este tipo consiste en las siguientes tres partes:

Ø  Fuentes de conocimiento, necesarias para resolver el problema.
Ø  Una pizarra que representa el estado actual de la resolución del problema.
Ø  Una estrategia, que regula el orden en que operan las fuentes.

Modelo REST

La Transferencia de Estado Representacional (Representational State Transfer) o MODELO REST, es un estilo de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web. El término se originó en el año 2000, en una tesis doctoral sobre la web escrita por Roy Fielding, uno de los principales autores de la especificación del protocolo HTTP y ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.

Cabe destacar que REST no es un estándar, ya que es tan solo un estilo de arquitectura. Aunque REST no es un estándar, está basado en estándares:

Ø  HTTP
Ø  URL
Ø  Representación de los recursos: XML/HTML/GIF/JPEG/…
Ø  Tipos MIME: text/xml, text/html, …

¿Cuáles son los principios de REST?

El estilo de arquitectura subyacente a la Web es el modelo REST. Los objetivos de este estilo de arquitectura se listan a continuación:

Ø  Escalabilidad de la interacción con los componentes.
Ø  Generalidad de interfaces.
Ø  Puesta en funcionamiento independiente.
Ø  Compatibilidad con componentes intermedios.
       ØRepresentación de los recursos: XML/HTML/GIF/JPEG/…


Sistemas de HiperTexto

Un documento hipertextual puede crearse como un sistema independiente o para integrarse en un sistema en red, y también ofrece la posibilidad de presentarse bien como un sistema sólo de lectura en el que el lector/usuario no puede modificar nada a pesar de poder elegir un recorrido propio de lectura o navegación; o bien puede aparecer como un sistema que permite al lector/usuario no sólo escoger su propio modo de lectura o exploración, sino también crear sus propios enlaces y anotaciones. 


El sistema hipertextual por excelencia es el sistema de la World Wide Web basado en el lenguaje HTML, pero existen otros muchos. Por ejemplo, muchos sistemas de edición electrónica, o la propia ayuda de Windows, utilizan sistemas de hipertexto.

Tipos Principales de Sistemas de Gestión de HiperTexto:

Byers distingue dos tipos de sistemas de hipertexto: 

  • Estáticos: no permiten cambios en la base de datos, el usuario sólo puede hacer búsquedas a través de enlaces ya creados. 
  •  Dinámicos: permiten la participación del usuario. Éste puede agregar o suprimir datos y enlaces, crear nuevos vínculos y anotaciones, etc. Un aspecto importante de muchos sistemas de hipertexto dinámicos es la capacidad de mantener las diferentes versiones de un documento para ver cómo cambia en el tiempo.

Sistemas Centrados en Bases de Datos

Ahora bien, dentro de la categoría de Sistemas Centrados en Datos, prevalecen una serie de estilos o tendencias de arquitectura entre las cuales tenemos la de los Sistemas Centrados en Bases de Datos, los cuales presentan una serie de características altamente favorables, entre las cuales podemos mencionar:


  • Se evita la redundancia: Por ejemplo, una aplicación de personal y otra de registros educativos pueden poseer cada una un archivo que contenga información de departamento de los empleados.   Estos dos archivos pueden integrarse (para eliminar la redundancia)

  • Se evita la inconsistencia: Ya que si un hecho específico se representa por una sola entrada (es decir, si la redundancia se elimina), la no-concordancia de datos no puede ocurrir.

  • Pueden hacerse cumplir las normas establecidasEsto es que permiten unificar los formatos de los datos almacenados como ayuda para el intercambio o migración de datos entre sistemas.


  • Pueden aplicarse restricciones de seguridadDiferentes controles pueden establecerse para cada tipo de acceso (recuperación, modificación, supresión, etc.) a cada parte de la información de la base de datos.

Sistemas Centrados en Datos (repositorios)

Los Sistemas Centrados en Datos son aquellos cuyas estructuras están basadas e repositorios. Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos.