robot de la enciclopedia para niños

Peer-to-peer para niños

Enciclopedia para niños
Archivo:P2P-network
Ejemplo de una red basada en peer-to-peer.

En Informática, cliente-servidor es un modelo de arquitectura de software que consta de dos partes, sistemas cliente y sistemas servidores, comunicándose ambos a través de una red informática o en el mismo ordenador. Una aplicación cliente-servidor es un sistema distribuido compuesto por software de cliente y servidor. La aplicación cliente-servidor proporciona una mejor manera de compartir la carga de trabajo. El proceso del cliente siempre inicia una conexión con el servidor, mientras que el proceso del servidor siempre espera solicitudes de cualquier cliente.

Cuando tanto el proceso del cliente como el del servidor se ejecutan en la misma computadora, esto se denomina configuración de un solo puesto.

Otro tipo de arquitectura de software relacionada se conoce como peer-to-peer, porque cada host o instancia de aplicación puede actuar simultáneamente como cliente y servidor (a diferencia de los servidores centralizados del modelo cliente-servidor) y porque cada uno tiene responsabilidades y estados equivalentes. Las arquitecturas peer-to-peer suelen abreviarse utilizando el acrónimo P2P.

La relación cliente-servidor describe la relación entre el cliente y cómo realiza una solicitud de servicio al servidor, y cómo el servidor puede aceptar estas solicitudes, procesarlas y devolver la información solicitada al cliente. La interacción entre el cliente y el servidor a menudo se describe mediante diagramas de secuencia. Los diagramas de secuencia están estandarizados en el Lenguaje de modelado unificado.

Tanto la arquitectura cliente-servidor como la P2P se utilizan ampliamente en la actualidad.

El tipo básico de arquitectura de software cliente-servidor emplea sólo dos tipos de hosts: clientes y servidores. A este tipo de arquitectura a veces se le llama de dos niveles. La arquitectura de dos niveles significa que el cliente actúa como un nivel y el proceso del servidor actúa como el otro nivel.

La arquitectura de software cliente-servidor se ha convertido en uno de los modelos básicos de informática en red. Se han escrito muchos tipos de aplicaciones utilizando el modelo cliente-servidor. Las funciones de red estándar, como el intercambio de correo electrónico, el acceso a la web y el acceso a la base de datos, se basan en el modelo cliente-servidor. Por ejemplo, un navegador web es un programa cliente en la computadora del usuario que puede acceder a información en cualquier servidor web del mundo.

Aplicaciones de las redes P2P

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. Quizás sea la aplicación más extendida de este tipo de redes. Algunos ejemplos son BitTorrent o emule (de la red eDonkey2000) .
  • 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 versiones anteriores de Skype.
  • A partir del año 2006, cada vez más compañías europeas y norteamericanas, como Warner Bros o la BBC, empezaron a ver el P2P como una alternativa a la distribución convencional de películas y programas de televisión, y ofrecen parte de sus contenidos a través de tecnologías como la de BitTorrent.
  • Cálculos científicos que procesen enormes bases de datos, como los procedimientos bioinformáticos.
  • Monedas virtuales para transacciones entre partes. Bitcoin
  • Grabadores de sistemas de CCTV que transmiten las imágenes a usuarios conectados desde celulares y computadores en ISP con puertos bloqueados. DVR
Archivo:Leech bittorrent
Representación gráfica de un enjambre que muestra la distribución de los peers con sus respectivas trasmisiones y recepciones de datos dentro de un torrent en Vuze.

Las redes P2P pueden usarse también para hacer funcionar grandes sistemas de software diseñados para realizar pruebas que identifiquen la presencia de posibles fármacos. El primer sistema diseñado con tal propósito se desarrolló en el 2001, en el Centro Computacional para el Descubrimiento de Medicamentos en la prestigiosa Universidad de Oxford y con la cooperación de la Fundación Nacional para la Investigación del Cáncer (National Foundation for Cancer Research) de los Estados Unidos.

Actualmente existen varios sistemas software similares que se desarrollan bajo el auspicio de proyectos como el proyecto de Dispositivos Unidos en la Investigación del Cáncer (United Devices Cancer Research Project). En una escala más pequeña, existen sistemas de administración autónoma para los biólogos computacionales, como el Chinook, que se unen para ejecutar y hacer comparaciones de datos bioinformáticos con los más de 25 diferentes servicios de análisis que ofrece. Uno de sus propósitos consiste en facilitar el intercambio de técnicas de análisis dentro de una comunidad local.

Las instituciones académicas también han comenzado la experimentación con compartición de archivos, como es el caso de LionShare.

Desarrollo histórico

Si bien los sistemas P2P se habían utilizado anteriormente en muchos dominios de aplicaciones, el concepto se popularizó gracias a los sistemas de intercambio de archivos, como la aplicación para compartir música Napster (originalmente lanzada en 1999). El movimiento de igual a igual permitió que millones de usuarios de Internet se conectaran "directamente, formando grupos y colaborando para convertirse en motores de búsqueda creados por los usuarios, supercomputadores virtuales y sistemas de archivos". El concepto básico de computación peer-to-peer se previó en los sistemas de software anteriores y en las discusiones de redes, remontándose a los principios establecidos en la primera Solicitud de Comentarios, RFC 1.

La visión de Tim Berners-Lee para la World Wide Web era similar a la de una red P2P, ya que suponía que cada usuario de la web sería un editor y colaborador activo, creando y vinculando contenido para formar una "red" de enlaces entrelazados. La Internet inicial era más abierta que el presente, donde dos máquinas conectadas a Internet podían enviar paquetes entre sí sin firewalls y otras medidas de seguridad. [ página necesaria ] Esto contrasta con la estructura de transmisión de la web como se ha desarrollado a lo largo de los años. Como precursor de Internet, ARPANET fue una exitosa red cliente-servidor donde "cada nodo participante podía solicitar y servir contenido". Sin embargo, ARPANET no se autoorganizó y carecía de la capacidad de "proporcionar ningún medio para el enrutamiento basado en el contexto o el contenido más allá del enrutamiento basado en direcciones 'simple'".

Por lo tanto, se estableció USENET, un sistema de mensajería distribuida que a menudo se describe como una arquitectura de extremo a extremo temprana. Fue desarrollado en 1979 como un sistema que impone un modelo de control descentralizado . El modelo básico es un modelo cliente-servidor desde la perspectiva del usuario o cliente que ofrece un enfoque autoorganizado para los servidores de grupos de noticias. Sin embargo, los servidores de noticias se comunican entre sí como pares para propagar artículos de noticias de Usenet en todo el grupo de servidores de red. La misma consideración se aplica al correo electrónico SMTP en el sentido de que la red central de retransmisión de correo electrónico de los agentes de transferencia de correo tiene un carácter de igual a igual, mientras que la periferia de los clientes de correo electrónico y sus conexiones directas es estrictamente una relación cliente-servidor.

En mayo de 1999, con millones de personas más en Internet, Shawn Fanning presentó la aplicación de música y uso compartido de archivos llamada Napster. Napster fue el comienzo de las redes P2P, tal como las conocemos hoy en día, donde "los usuarios participantes establecen una red virtual, totalmente independiente de la red física, sin tener que obedecer ninguna autoridad administrativa o restricciones".

Características

Características de los clientes

  • Siempre inicia solicitudes a los servidores.
  • Espera respuestas.
  • Recibe respuestas.
  • Por lo general, se conecta a una pequeña cantidad de servidores a la vez.
  • Por lo general, interactúa directamente con los usuarios finales mediante cualquier interfaz de usuario, como la interfaz gráfica de usuario.

Características del servidor

  • Espera siempre una solicitud de uno de los clientes.
  • Atiende las solicitudes de los clientes y luego responde a los clientes con los datos solicitados.
  • Un servidor puede comunicarse con otros servidores para atender una solicitud de un cliente.
  • Si se requiere información adicional para procesar una solicitud (o se implementa seguridad), un servidor puede solicitar datos adicionales (contraseñas) de un cliente antes de procesar una solicitud.
  • Los usuarios finales normalmente no interactúan directamente con un servidor, sino que utilizan un cliente.

Ventajas

  • La alta capacidad de almacenamiento: La información no se encuentra centralizada o puesta sobre un punto sino que está distribuida,entonces podemos tener gran volumen de información almacenada en la red porque está de forma focalizada o distribuida en muchos equipos.
  • Disponibilidad: Dado que la información se encuentra repartida, hay muchos sitios para poder descargar por lo que existe una gran probabilidad de conseguir lo que nosotros necesitemos en ese momento.
  • La fiabilidad: Es fiable porque si falla un nodo podemos seguir descargando, podemos encontrar más modos que sí permiten las descargas.
  • Distribución de tráfico en la red: La información está en todos los puntos o en todos los nodos dentro de la red la información puede ser realmente localizada en cualquier lugar por lo tanto el tráfico se va hacer reducido y los servidores no se van a saturar.
  • Compatibilidad: Tiene alta compatibilidad con cualquier sistema operativo para conectarse en red entre las computadoras.
  • Accesibilidad: Al no tener que pagar cargo por uso o licencia tiene una gran accesibilidad.
  • Sencillez: El uso de P2P es muy fácil ya que solo se tiene que descargar el programa.

Desventajas

  • Los pares de nodos se desconectan después de descargar, de esta forma reciben datos pero no ceden contenidos por lo que la arquitectura fallará, ya que no hay donde descargar.
  • Presencia de los famosos firewall, ocasionalmente estos evitan que los usuarios reciban contenidos y que a su vez los cedan.
  • Los problemas de confianza en ocasiones se descargan archivos con errores, los cuales pueden contener información que no se desea.
  • Algunas veces las compañías intentan poner trampas para saber quien descarga la información.
  • Un problema serio que tienen las redes P2P es la violación de derechos de autor y propiedad intelectual.
  • Es muy fácil disipar virus y demás programas maliciosos por redes P2P que tiene como lógica la cooperación desinteresada.
  • No se puede tener el control sobre la accesibilidad de la información en el software, por lo que se puede dificultar navegar para obtener un archivo en específico.
  • Al aumentar la cantidad de dispositivos conectados, disminuye el rendimiento de los datos de navegación.
  • La red no es totalmente estable, si los clientes no dejan acceder a los archivos, no podrán ser descargados por otros clientes.

Otras aplicaciones

  • Bitcoin y PPCoin son monedas digitales punto a punto basadas en pares, que permite el manejo y transacción de las monedas por medio de la red; promovido por la comunidad e independizado de cualquier autoridad central.
  • Red comunitaria inalámbrica, Netsukuku (sistema de routing experimental de tipo peer-to-peer), permite una rápida conexión de la red en cualquier espacio del tiempo, sin la ayuda de ningún servidor central o de alguna firma autoritaria.
  • Peer-to-peer para redes de área local (basado en la multidifusión IP), en las LAN los ordenadores trabajan en forma de igualdad, de tal manera que todos manejen las mismas funciones; sin privilegiarse uno sobre otro.
  • Garden, aplicación que permite compartir la conexión abierta que comparte el acceso a Internet con otros dispositivos mediante Wi-Fi o Bluetooth.
  • JXTA (plataforma de protocolo de red peer-to-peer), se centra en definir un conjunto de protocolos para creación de redes P2P, facilitando así a los programadores y diseñadores de aplicaciones; la creación de una topología que suministre los requisitos específicos para la aplicación propuesta.
  • Algunas empresas que utilizan P2P para proveer servicios a sus clientes son:
    • Skype y su exitoso servicio de telefonía VoIP.
    • Netflix con streaming de películas.
    • Spotify hace la distribución de música.

Relación con los sistemas distribuidos

Si bien los sistemas distribuidos existen desde antes de la arquitectura P2P, esta última representó una revolución en el campo. P2P permitió abstraer a un mayor nivel a los sistemas distribuidos, de forma que, para los usuarios externos, pareciera una única máquina virtual. Todos los pormenores relacionados con los protocolos de comunicación entre nodos, las diferencias técnicas entre los dispositivos del sistema, el manejo de recursos y la seguridad se ocultaron. Así, P2P tomó los fundamentos existentes de los sistemas distribuidos y los llevó al siguiente nivel. A su vez, los sistemas distribuidos más recientes retomaron lo aprendido de las redes P2P, generando una relación simbiótica. Por ejemplo, el middleware P2P fungió como base para el middleware de otros sistemas distribuidos, favoreciendo la independencia entre las aplicaciones que corren sobre ellos y el sistema en sí. Profundizando más sobre el middleware P2P, en la actualidad las aplicaciones que corren sobre sistemas distribuidos requieren poder ejecutarse desde cualquier sitio, sin que esto afecte a su velocidad de respuesta o su rendimiento en general. Por lo tanto, requieren que el middleware ofrezca los servicios y recursos necesarios para que los programas se ejecuten de manera fluida. Además, este módulo abstrae a las capas inferiores del sistema y las independiza de las superiores, simplificando la tarea de usuarios y de programadores. Todos estos aspectos fundamentales para cualquier sistema distribuido, fueron traídos a la luz en el desarrollo de las redes P2P primigenias.

Véase también

Kids robot.svg En inglés: Client-server Facts for Kids

kids search engine
Peer-to-peer para Niños. Enciclopedia Kiddle.