domingo, 25 de agosto de 2013

Redes Informáticas




¿Qué es una Red?


Una red de ordenadores es una forma de transmitir y compartir datos e información entre varios ordenadores, independientemente de dónde se encuentre cada uno. Normalmente hablamos de tres tipos de redes: LAN, MAN Y WAN

LAN
Red de área local o LAN, conjunto de computadoras que pueden compartir datos, aplicaciones y recursos (por ejemplo impresoras). Las computadoras de una red de área local (LAN, Local Area Network) están separadas por distancias de hasta unos pocos kilómetros, y suelen usarse en oficinas o campus universitarios. Una LAN permite la transferencia rápida y eficaz de información en el seno de un grupo de usuarios y reduce los costos de explotación.









WAN
Red de Area Amplia o WAN
Una red extendida (WAN: Wide Area Network) es, como lo implica su nombre, una red que se extiende a larga distancia. Las redes extendidas son posibles gracias al extenso cableado de líneas telefónicas, torres de retransmisión de microondas y satélites que abarcan todo el globo terráqueo. Algunas redes extendidas en operaciones privadas diseñadas para enlazar oficinas corporativas; otras son redes públicas o semipúblicas usadas por muchas organizaciones.



MAN:
Las redes de área metropolitana (Metropolitan Area Network) son redes de ordenadores de tamaño superior a una LAN, soliendo abarcar el tamaño de una ciudad. Son típicas de empresas y organizaciones que poseen distintas oficinas repartidas en un mismo área metropolitana, por lo que, en su tamaño máximo, comprenden un área de unos 10 kilómetros.





Topologías de red
Las topologías de red describen la distribución física de la red. “Es impensable el uso de los actuales computadores, sin que se aproveche la gran capacidad de interconexión con la que cuentan, ya sea usándolos en pequeñas redes locales o en la gran red mundial, la Internet.”
 Existen diferentes topologías:
v  Jerárquica
v  BUS
v  Anillo
v  Estrella
v  Malla
Jerárquica
o   La Computadora de mayor jerarquía controla la red
o   Las Computadoras con jerarquía suelen ocasionar “cuellos de botella”
o   Si se estropea una Computadora con jerarquía se corta la comunicación que depende de ella.
o   Fácil agregar o quitar nuevos equipos de cómputo.







BUS
o   Existe un único canal físico que conecta Las Computadoras
o   Problemas si hay un fallo en el canal (a veces se duplica)
o   Todas las Computadoras pueden escuchar lo que envía cualquier ordenador conectado


Anillo
o   Un único canal con repetidores de señal en cada computadora (retardo)
o   La información viaja en un sentido del anillo
o   Diferentes modos de conexión: escucha, trasmite, cortocircuito


Estrella
o   Las Computadoras se conectan a un HUB o Concentrador.
o   El concentrador controla el acceso al medio físico.
o   Es fácil agregar o quitar Computadoras.





En conclusión las Redes informáticas son un mecanismo que ha hecho que la vida moderna cambie totalmente, con el uso del Internet la vida es otra cosa, todo es mucho más veloz y todos podemos comunicarnos además las redes informáticas son muy  importantes ya que la información está disponible en muchas fuentes además que te permite transportarla a velocidades increíbles.
Estos son algunos ejemplos de los beneficios que nos otorgan las redes:
·         Intercambio de recursos (archivos, aplicaciones o hardware, una conexión a   Internet, etc.)
  • Comunicación entre personas (correo electrónico, debates en vivo, etc.)
  • Comunicación entre procesos (por ejemplo, entre equipos industriales)
  • Garantía de acceso único y universal a la información (bases de datos en red)
  • Videojuegos de varios jugadores Las redes también se usan para estandarizar aplicaciones. 

Trabajos citados

computación, U. A.-D. (05 de 2002). genesis.uag.mx. Recuperado el 25 de 08 de 2013, de genesis.uag.mx: http://genesis.uag.mx/edmedia/material/comuelectro/uni1_3.cfm
Hidalgo, U. A. (2011). uaeh.edu.mx. Recuperado el 25 de 08 de 2013, de uaeh.edu.mx: http://www.uaeh.edu.mx/docencia/P_Presentaciones/huejutla/sistemas/redes/topologias.pdf
vivos, L. (s.f.). Librosvivos.net. Recuperado el 25 de 08 de 2013, de Librosvivos.net: www.librosvivos.net



sábado, 17 de agosto de 2013

Comunicación en Sistemas Distribuidos

Comunicación en Sistemas Distribuidos

Tipos de comunicación

Comunicación Persistente: almacena el mensaje  (información) enviado por el emisor el tiempo que tome entregarlo al receptor.
Comunicación Transitoria: almacena un mensaje sólo  mientras las aplicaciones del emisor y receptor están en  ejecución.
Comunicación asincrónica: el emisor continúa  inmediatamente después de que ha pasado su mensaje  para la transmisión.
 Comunicación sincrónica: el emisor es bloqueado hasta que se sabe que su petición es aceptada.
(Informática, 2010)

Las características de la comunicación entre Procesos
El paso de mensajes entre un par de procesos se puede basar en dos operaciones: envía y recibe, definidas en función del destino y del mensaje. Para que un proceso se pueda comunicar con otro, el proceso envía (una secuencia de bytes) a un destino y otro proceso en el destino recibe el mensaje. Esta actividad implica la comunicación de datos desde el proceso emisor al proceso receptor y puede implicar además la sincronización de los procesos.
Comunicación Síncrona y Asíncrona
A cada destino de mensajes se asocia una cola. Los procesos emisores producen mensajes que serán añadidos a las colas remotas mientras que los procesos receptores eliminarán mensajes de las colas locales. La comunicación entre los procesos emisor y receptor puede ser síncrona o asíncrona.
En la forma síncrona, los procesos receptor y emisor se sincronizan con cada mensaje. En este caos, tanto envía como recibe son operaciones bloqueantes. A cada envía producido el proceso emisor se bloquea hasta que se produce el correspondiente recibe. Cuando se invoca un recibe, el proceso se desbloquea hasta que llega un mensaje.
En la forma de comunicación asíncrona, la utilización de la operación envía es no bloqueante, de modo que el proceso emisor puede continuar tan pronto como el mensaje haya sido copiado en el buffer local, y la transmisión del mensaje se lleva a cabo en paralelo con el proceso emisor. La operación recibe puede tener variantes bloqueantes y no bloqueantes. En la variable no bloqueante, el proceso receptor sigue con su programa después de invocar la operación recibe, la cual proporciona un búffer que será llenado en un segundo plano, pero el proceso debe ser informado por separado de que su búffer ha sido llenado, ya sea por el método de encuesta o mediante una interrupción.
Destino de los mensajes
Los mensajes son enviados a direcciones construidas por pares (dirección internet, puerto local). Un puerto local es el destino de un mensaje dentro de un computador, especificado como un número entero. Un puerto tiene exactamente un receptor pero puede tener muchos emisores. Los procesos pueden utilizar múltiples puertos desde lo que recibir mensajes. Generalmente, los servidores hacen públicos sus números de puerto para que sean utilizados por los clientes. Siel cliente utiliza una dirección Internet fija para referirse a un servicio, entonces ese servicio debe ejecutarse siempre en el mismo computador para que la dirección se considera válida.
Fiabilidad
Se dice que un servicio de mensajes punto a punto es fiable si se garantiza que los mensajes se entregan a pesar de poder dejar caer o perder un número razonable de ellos. Por el contrario, puede decirse que un servicio de mensajes punto a punto es no fiable si no se garantiza la entrega de los mensajes ante la pérdida o eliminación incluso de un solo paquete. Respecto a la integirdad, los mensajes deben llegar sin corromperse ni duplicarse.
Ordenación
Algunas aplicaciones necesitan que los mensajes sean entregados en el orden de su emisión, esto es, en el orden en el que fueron transmitidos por el emisor. La entega de mensajes desordenados, por esas aplicaciones es considerada como un fallo.
Sockets
La comunicación entre procesos consiste en la transmisión de un mensaje entre un conector de un proceso y un conector de otro proceso. Para los procesos receptores de mensajes, su conector debe estar asociado a un puerto local y a una dirección de internet y a un número de puertos concretos, sólo se pueden ser recibidos por el proceso cuyo conector tanto para enviar como para recibir mensajes. Cada computador permite  un gran número de puertos posibles, que pueden ser usados por los procesos locales para recibir mensaje. Cada proceso puede utilizar cerios puertos para recibir mensajes, pero un proceso no puede compartir puertos con otros procesos del mismo computador. Los procesos que utilizan multidifusión  IP son una excepción ya si comparten puertos. No obstante, cualquier cantidad de procesos puede enviar mensajes a un mismo puerto. Cada conector se asocia con un protocolo concreto, que puede ser UDP o TCP.
Utilización de UDP
Para algunas aplicaciones, resulta aceptable utilizar un servicio que sea susceptible de sufrir fallos de omisión ocasionales. Por ejemplo, el servicio de nombres de dominio en internet (Domain Name Service , DNS) está implementado sobre UDP. Los datagramas UDP son en algunas ocasiones, una elección atractiva porque no padecen las sobrecargas asociadas a la entrega de mensajes garantizada. Existen tres fuentes principales para la sobrecarga:
1.       La necesidad de almacenar información de estado en el origen y en el destino.
2.       La transmisión de mensajes extra.
3.       La latencia para el emisor.
Utilización de TCP
Muchos de los servicios utilizados se ejecutan sobre conexiones TCP, con números de puertos reservados. Entre ellos se encuentran los siguientes:
HTTP: El protocolo de transferencia de hipertexto se utiliza en comunicación entre un navegador y un servidor web.
FTO: El protocolo de transferencia de archivos permite leer los directorios de un computador remoto y transferir archivos entre los computadores de una conexión.
Telnet: La herramienta Telnet nos proporciona acceso a una terminal en un computador remoto.
SMTP: El protocolo simple de transferencia de correo se utiliza para mandar correos electrónicos entre computadores.

Comunicación Cliente-Servidor


Esta forma de comunicación está orientada a soportar los roles y el intercambio de mensajes de las interacciones típicas cliente-servidor. En el caso normal, la comunicación petición respuesta es síncrona, ya que el proceso cliente se bloquea hasta que llega la respuesta del servidor es, en efecto, un acuse de recibo para el cliente. La comunicación cliente-servidor asíncrona es una alternativa que puede ser útil en situaciones donde los clientes pueden recuperar las respuestas más tarde.
El protocolo Petición-respuesta
El siguiente protocolo está basado en un trío de primitivas de comunicación hazOperación, damePetición, enviaRespuesta.
La primitiva hazOperación se utiliza en el cliente para invocar las operaciones remotas. Sus argumentos especifican el objeto remoto y el método a invocar junto con información adicional (argumentos) requerida por el método. Su resultado es una respuesta RMI.
La primitiva damePeticion se usa en el servidor para hacerse con las peticiones de servicio. Cuando el servidor ha invocado el método sobre el objeto especificado, utiliza el método enviaRespuesta para mandar el mensaje de respuesta al cliente. Cuando el cliente recibe el mensaje de respuesta, desbloquea la operación hazOperacion y continúa la ejecución el programa cliente.
La primitiva hazOperación en un cliente genera un idPetición, para cada mensaje de petición y el servidor lo copia al correspondiente mensaje de respuesta. Esto hace posible que hazOperacion pueda comprobar que un mensaje de respuesta es el resultado de la petición actual, no de una invocación que se ha retrasado.

Comunicación en grupo

Una operación de multidifusión envía un único mensaje desde un proceso a cada uno de los miembros de un grupo de procesos, normalmente de modo que la pertenencia al grupo resulte transparente para el emisor. Existe un abanico de posibilidades respecto al comportamiento deseado de la multidifusión. La más simple no proporciona garantía alguna sobre la entrega del mensaje y el mantenimiento del orden de la emisión de los mismos.
Los mensajes de multidifusión proporcionan una infraestructura para construir sistemas distribuidos con las siguientes características:

  1.     Tolerancia a fallos basada en servicios replicados: un servicio replicado consta de un grupo de servidores. Las solicitudes de los clientes se dirigen a todos los miembros del grupo y cada uno de ellos realiza la misma operación. Incluso cuando varios de los miembros fallen, los clientes todavía serán servidos.
  2. Búsqueda de los servidores de descubrimiento en redes espontáneas: Los servidores y los clientes pueden utilizar la multidifusión mensajes para localizar los servicios disponibles, y registrar sus interfaces o para buscar las interfaces de otros servicios en el sistema distribuido.
  3.    Mejores prestaciones basada en datos replicados: Los datos se replican para incrementar las prestaciones de un servicio; en algunos casos se colocan réplicas de los datos en los computadores de los usuarios. Cada vez que se producen cambios en los datos, el nuevo valor se comunica a los procesos que gestionan las réplicas de los datos mediante multidifusión.
  4. Propagación de las notificaciones de eventos: la multidifusión a un grupo puede utilizarse para notificar a los procesos que algo ha sucedido.
(Coulouris, 2001)

La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos. En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida: En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse. Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos .Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la “llamada a un procedimiento remoto”.


Trabajos citados

Coulouris, G. (2001). Sistemas Distribuidos: Conceptos y Diseño. Madrid: Addison Wesley.
Informática, D. d. (2010). Universidad de la Patagonia San Juan Bosco. Recuperado el 17 de 08 de 2013, de Universidad de la Patagonia San juan Bosco: http://www.ing.unp.edu.ar/asignaturas/sistemasdistribuidos/2010/SD-UNPSJB-2010-mod2.pdf




sábado, 10 de agosto de 2013

Introducción a los Sistemas Distribuidos

¿Qué es un Sistema Distribuido?

 Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios como una única computadora.

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 .




¿Para qué sirven los Sistemas Distribuidos?

Para  Compartir recursos – Tanto hardware (discos, impresoras), como software (archivos, bases de datos)  En algún caso, por economizar
– Compartir datos es esencial en muchas aplicaciones  Equipos de desarrollo comparten herramientas y datos. Aplicaciones comerciales ofrecen a usuarios acceso a datos compartidos  Trabajo cooperativo en algunas empresas.  Existen aplicaciones inherentemente distribuidas
– Por ejemplo, una cadena de supermercados con varias tiendas y almacenes
– Sistemas de reservas de billetes de líneas 

Con los  nuevos tipos de dispositivos hay un problema a resolver para los sistemas distribuidos: Necesidad de adaptar el interfaz de usuario a cada tipo de dispositivo por lo cual se deberá de separar la lógica de aplicación del interfaz de usuario  y utilizar métodos estándar de comunicación entre la lógica de aplicación y el interfaz de usuario así como el uso de herramientas que permitan adaptar rápidamente las aplicaciones a los nuevos tipos de dispositivos que irán apareciendo .