viernes, 29 de noviembre de 2013

Justificación de Proyecto distribuido

J U S T I F I C A C I Ó N:
Se puede decir que el proyecto SCAF, desarrollado por la empresa HydraSoft a lo largo del semestre es distribuido ya que considera y cubre cada una de las características con las que se definió un sistema distribuido, a continuación, desglosaremos cada una de ellas y explicaremos de qué forma el proyecto las cubre.
Por definición, el proyecto tiene corriendo en distintas computadoras (con distintos procesadores), los distintos módulos que lo integran, se accede a él a través de una red local de computadoras, cuyos componentes se comunican a través de un protocolo (IP) para intercambiar mensajes para un fin común, por lo que lo que cumple con la definición estricta de  un sistema distribuido.


CARACTERISTICAS DEFINIDAS:
"Por definición estricta, se menciona que un sistema distribuido cumple con las siguientes características..." (Coulouris, 2005)

1.-Concurrencia: Los recursos del proyecto pueden ser utilizados o consultados al mismo tiempo por los diversos usuarios que utilizan el sistema. A su vez, dichos recursos están disponibles en forma de módulos para todos los usuarios, cada uno de ellos instalado y ejecutándose en una unidad de procesamiento distinta.

2.-Fallos independientes: Cuando se da el caso de que un modulo o servidor individual falle, los otros 3 pueden seguir corriendo los procesos propios de cada modulo, es decir que cada modulo tiene tolerancia a fallos independientes.

3.-Carencia de reloj global: Cada computadora tiene definida su propia hora de sistema y este no está conectado o relacionado de ninguna forma con el de los otros tres componentes del sistema, en los procesos en los que se requiere obtener hora de un sistema, se utiliza aquella obtenida del reloj de la unidad de procesamiento donde se está ejecutando el proceso.


DESAFIOS O CARACTERISTICAS REQUERIDAS:
"Como parte de las características requeridas para el óptimo funcionamiento de un sistema se señalan características, comúnmente llamados “desafíos” que deben ser cubiertas" (Liu, 2004)

1.-Heterogeneidad: La comunicación entre unidades de procesamiento está regulada y estandarizada por los protocolos de conexión y la estructura de las clases, aunado a la validación del sistema lo que permite una conexión que se da a través de múltiples elementos de hardware y software: De igual forma, al ser conformada por 4 equipos distintos, cada uno utiliza su propio hardware y un software estandarizado para el sistema.

2.-Seguridad:La seguridad se cubre dado que al establecerse el intercambio de mensajes entre las unidades de procesamiento, no puede haber intrusión de un agente externo y a su vez, la información que se guarda a base de datos, como por ejemplo contraseñas, se manejan de una forma distinta que los datos de comunicación comunes y siempre que el sistema este corriendo, estos están disponibles, aunado a la seguridad que proporciona centralizar la base de datos en un servidor, aun siendo 4 los que ejecuten el sistema integrado.

3.-Escalabilidad: Se conserva la capacidad de respuesta y efectividad del sistema al aumentar las peticiones y usuarios, lo que se puede hacer de una manera confiable y sin riesgo a que el proceso se vea afectado de ninguna forma desde cualquiera de los 4 servidores disponibles.

4.-Transparencia: La comunicación entre un cliente y los distintos servidores distribuidos que conforman al sistema en sí, es totalmente transparente para el usuario, ya que el re direccionamiento con la tecnología IP permite una navegación fluida y continua, sin necesidad de direccionar manualmente en ningún momento y sin muestras muy evidentes del cambio entre los distintos servidores.

5.-Extensibilidad: Puede darse el caso del desarrollo de un nuevo modulo del proyecto el cual podría acoplarse al sistema actual, pudiéndose ejecutar en un servidor externo a los que actualmente llevan a cabo la ejecución del sistema. Del mismo modo en el caso de la eliminación de un modulo actualmente implementado, es posible el retiro de dicho modulo del sistema sin afectar el resto.

El utilizar la tecnología de los sistemas distribuidos en el proyecto nos da la enseñanza de lo útiles y poderosas que pueden ser estas herramientas en el desarrollo de un sistema, ya que, aunque parecieran simples en un único, las características que se adquieren al distribuir una aplicación en servidores separados y modulares, son útiles en el proceso de la ejecución y también interesantes para el estudio de la lógica del programa.






miércoles, 20 de noviembre de 2013

SRC Juego distribuido


:D
public interface JugadorPelicula{
public void enviarPista();
public void masterTurn();
public void valida_Gana();
public boolean seguir();

}
////////////////////////////////////////////////
import java.io.*;
import java.net.*;
import java.util.*;
public class cJugador1 implements JugadorPelicula{
public String opcion="";
public String pelicula=null;
public String aux=null;
public String n="1";
public char gamer=' ';
Scanner scaner = new Scanner(System.in);
MulticastSocket s;
InetAddress grupo;
public boolean seguir()
{
if(gamer=='x')
return false;
else
return true;
}
public void masterTurn()
{
System.out.println("Eres el turno MAESTRO");
System.out.println("Teclea la pelicula a adivinar:");
pelicula=scaner.nextLine();
//System.out.println(pelicula);

}
public void enviarPista()
{
String pista = "";
try{
grupo=InetAddress.getByName("239.1.2.3");
s=new MulticastSocket(12345);
s.setTimeToLive(32);
System.out.println("Teclea la pista: ");
pista=n+(scaner.nextLine());
DatagramPacket paquete=new DatagramPacket(pista.getBytes(), pista.length(),grupo,12345);
s.send(paquete);
s.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
public void valida_Gana(){
String auxP="";
String auxO="";
String win="";
auxP=pelicula.replaceAll(" ","");
auxP=auxP.toLowerCase();
auxO=opcion.replaceAll(" ","");
auxO=auxO.toLowerCase();
//System.out.println(auxO.length());
String magia=auxO.substring(0,auxP.length());
if(auxP.equals(magia))
{  
try{
grupo=InetAddress.getByName("239.1.2.3");
s=new MulticastSocket(12345);
s.setTimeToLive(32);
if(gamer=='1')
{
win="xFELICIDADES Jugador 1, HAS GANADO!!!";
gamer='x';
}
if(gamer=='2')
{
win="xFELICIDADES Jugador 2, HAS GANADO!!!";
gamer='x';
}
if(gamer=='3')
{
win="xFELICIDADES Jugador 3, HAS GANADO!!!";
gamer='x';
}
if(gamer=='4')
{
win="xFELICIDADES Jugador 4, HAS GANADO!!!";
gamer='x';
}
DatagramPacket paquete=new DatagramPacket(win.getBytes(), win.length(),grupo,12345);
s.send(paquete);
s.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
else
{
try{
grupo=InetAddress.getByName("239.1.2.3");
s=new MulticastSocket(12345);
s.setTimeToLive(4);
String lose="RESPUESTA INCORRECTA, SIGUIENTE TURNO: ";
DatagramPacket paquete=new DatagramPacket(lose.getBytes(), lose.length(),grupo,12345);
s.send(paquete);
s.close();
opcion=null;
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
}
 /////////////////////////////////////////////////////////////////////////////////////
import java.io.*;
import java.net.*;
import java.util.*;

public class Jugador1
{
public static void main(String[] args) throws InterruptedException
{
 
boolean cont=true;
cJugador1 ejecutor = new cJugador1();
ejecutor.masterTurn();
while(cont==true)
{
ejecutor.enviarPista();
ejecutor.escuchar();
Thread.sleep(1000);
ejecutor.valida_Gana();
cont=ejecutor.ValidarContinuar();
// System.out.println(cont);
}  
}
}

domingo, 8 de septiembre de 2013

Modelo OSI

Introducción

Al estudiar sistemas distribuidos, uno de los principales interrogantes que se nos presentaran es ¿Cómo viajan los datos de un host a otro?, es en este punto donde conviene analizar y entender el modelo OSI de transferencia de datos.
Como ya sabemos, la necesidad de comunicación entre dos elementos de procesamiento (o host) se ha dado desde el principio de la evolución de los sistemas, en un principio, uno de los principales problemas que se tuvieron que resolver fue que debido a la competencia entre empresas que producían los elementos de procesamiento, muchas veces no había una compatibilidad entre uno y otro, ya que cada empresa utilizaba el modo que quería para especificar las conexiones entre un host y otro (Se involucraban cuestiones de marketing).
A partir de esta problemática, surge  la llamada “compatibilidad y operatividad”, que era la característica que  permitía que los distintos equipos fabricados en distintas compañías pudieran realizar con éxito el proceso de comunicación a través de una red.

Desarrollo

La encargada de proponer la solución fue la organización internacional de normalización (la que todos conocemos por las siglas ISO), la cual, a la mitad de la década de los 80´s crea el denominado modelo de referencia OSI (Por sus siglas en inglés Open Systems Interconnected), que pretendía homogeneizar la forma en la que se llevaba a cabo el tránsito de datos en una conexión.
Este modelo, utilizaba un sistema de “pila” o “capas”  en la que los datos debían pasar por cada una de las capas para llegar al destinatario, todo esto en forma de un paquete de datos. Un paquete de datos es información agrupada con el fin que pueda viajar a través de los sistemas. Contiene la información que se desea transmitir, conjuntamente con los elementos necesarios para lograr una comunicación que sea confiable y entendible para el destinatario.

El modelo abarca principalmente el modo en que los datos se transmiten, se traducen y se direccionan lógicos y físicamente a través de la red, más adelante se hablara de la relación de los protocolos con cada capa del modelo.



Las 7 capas del modelo OSI

El modelo divide el proceso de transmisión de información entre elementos de procesamiento en 7 niveles o capas, donde cada una de ellas se encarga de una parte determinada del proceso.
El usuario únicamente es capaz de interactuar con dos de ellas, la primera (Física) y la última (Aplicación), interactúa con la capa física por ejemplo al conectar un cable  y en realidad y en un sentido estricto, no interactúa con la capa de aplicación, sino con una interfaz que es proporcionada por dicha capa.
Se presenta el desglose de cada una de estas capas desde la número 7 hasta la número 1, siguiendo el proceso por el cual pasará el paquete de datos:

7. Capa de aplicación:
Esta proporciona  la interfaz de comunicación entre el usuario y el sistema, aporta  los elementos necesarios para la interacción,  aquí se hacen las transferencias de archivos y las consultas a bases de datos.

6. Capa de presentación:
Muchas veces se habla de la capa de presentación como la “traductora” del modelo. Esta se encarga de tomar los datos de la capa de aplicación y darles un formato que puedan leer todos  los dispositivos, también muchas veces comprime los datos para reducir  su tamaño. A su vez es la encargada de colocar el formato que podría mostrarse en la capa de aplicación en caso de una respuesta. El formato y estructura que adquiere el paquete en la capa 6 es con la que viajara por las demás capas del modelo, aunque se le irán agregando más elementos, pero no cambia su formato.

5. Capa de sesión:
Esta es la encargada de establecer el enlace  entre los hosts, administra, inicia y termina sesiones entre las aplicaciones. Otra de sus funciones principales es la de pasar de aplicaciones a lo que propiamente un proceso de red.

4. Capa de transporte:
Esta es la que s encarga de controlar el tránsito y el flujo de datos entre las unidades  conectadas, revisa por ejemplo que estos lleguen en la secuencia adecuada .Establece los circuitos virtuales y revisa que el tamaño que tiene e paquete de daos este en el intervalo que permita que este pueda pasar satisfactoriamente por las ultimas capas. Se pueden usar los protocolos TCP y UDP dependiendo si es orientado a conexión o no orientado a conexión.

3. Capa de red:
Es en este punto del proceso donde las direcciones virtuales (Por ejemplo la IP de la computadora) pasan a ser direcciones físicas, aspecto importante en la relación entre las capas 2 y 3. Proporciona la ruta por la que viajará el paquete de datos para llegar al destinatario, encamina el paquete y lo entrega.

2. Capa de enlace:
Tiene la función del direccionamiento físico, dependiendo de la topología de red que se esté empleando,  se encarga de mover los datos a través de este enlace físico que la red proporciona.
Esta se divide en dos subcapas, el control de acceso a medio (MAC por el inglés)  y el control lógico de enlace (LLC)
La subcapa MAC marca la forma en que los host se van a comunicar al entrono físico de la red, ya que de hecho, el numero MAC es un identificador  único a cada dispositivo de red.
El control lógico de enlace establece y mantiene el enlace (Valga la redundancia) entre el emisor y el receptor cuando el paquete de datos ya está en el entorno físico de la red y proporciona puntos de acceso al servicio.

1. Capa física:
En esta capa los datos se convierten a bits que son enviados por medio de un cable mediante pulsos eléctricos. De hecho la capa esta conformada por todo el entorno físico de la red (llámese cables, conectores, puertos, etc.) y también la forma del cableado en que está conectada la red.
Autor de la imágen: Sergio Otaño


Protocolos y el modelo OSI


Conclusión


El modelo OSI es el principal fundamento sobre el cual se basan todos los sistemas de transferencia de información, por lo que es importante que como parte del estudio y construcción de sistemas distribuidos (los cuales a su vez se basan en redes) entender cada una de sus partes, la forma de comunicación, la estructura y el por qué de la misma, teniendo en cuenta cuales son los objetivos y medios que abarca.
Indudablemente es imperioso seguir ciertos pasos para la transferencia de información desde los modos más simples hasta los mas complejos, y en el área de la programación se tiene la ventaja de que este modelo ya existe y pese a que muchas veces pareciera un proceso demasiado amplio, es importante reconocer que cada elemento del modelo es importante para el fin que se está buscando, y cada uno de ellos responde a una necesidad que surge en el proceso que debe ser cubierta para un optimo desempeño de los sistemas que se desarrollen.

Bibliografía / Fuentes de consulta


  • Fouruzan, B. A. (2007). Data communications and networking. McGraw-Hill.
  • Galeon. (s.f.). Recuperado el 8 de Septiembre de 2013, de http://belarmino.galeon.com/
  • Olifer, N. (2009). Redes de computadoras. McGrawn Hill.
  • Sierra, L. S. (noviembre de 2008). Recuperado el 8 de septiembre de 2013, de Scribd: http://es.scribd.com/doc/52676661/5/CAPITULO-5-MODELO-DE-REFERENCIA-OSI
  • Tanenbaum, A. S. (2003). Redes de Computadoras. Mexico: Pearson.
  • Torazo, F. R. (2011). Topologias en redes, Introducción al modelo OSI. Distrito Federal. 





domingo, 25 de agosto de 2013

Redes

Introducción
La fusión de las computadoras y las comunicaciones ha tenido una influencia profunda en la manera en que están organizados los sistemas computacionales. Actualmente, el concepto de “centro de cómputo” como un espacio amplio con una computadora grande a la que los usuarios llevaban su trabajo a procesar es totalmente obsoleto. El modelo antiguo de una sola computadora que realiza todas las tareas computacionales de una empresa ha sido reemplazado por otro en el que un gran número de computadoras separadas pero interconectadas hacen el trabajo. Estos sistemas se denominan redes de computadoras. (Tanenbaum, 2003)
Es predecible pensar que las redes de computadoras se originaron en respuesta de un problema, en este caso, fue el hecho que los investigadores del CERN (Organización Europea para la Investigación Nuclear) tuvieran que recorrer la extensión de todo un laboratorio para compartir información con el equipo de trabajo, problemática la cual llevo a pensar en la conexión de los equipos de computo para intercomunicarse de forma remota.
Desarrollo

Definición

Una red es un conjunto de computadoras autónomas interconectadas.”
Se dice que dos computadoras están interconectadas si pueden intercambiar  datos con el fin de compartir información. No es necesario que la conexión se realice mediante un cable de cobre; también se pueden utilizar las fibras ópticas, las microondas, los rayos infrarrojos y los satélites de comunicaciones.
Cabe destacar que, ni Internet ni Web son una red de computadoras (Tanenbaum, 2003) La respuesta rápida es: Internet no es una red única, sino una red de redes, y Web es un sistema distribuido que se ejecuta sobre Internet.
Existe una gran confusión entre una red de computadoras y un sistema distribuido. La diferencia principal radica en que, en un sistema distribuido, un conjunto de computadoras independientes aparece ante sus usuarios como un sistema consistente y único.
Un ejemplo bien conocido de un sistema distribuido es World Wide Web, en la cual todo se ve como un documento (una página Web), de este modo, la diferencia entre una red y un sistema distribuido está en el software (sobre todo en el sistema operativo), más que en el hardware.



Clasificación de red

Un criterio para clasificar redes de ordenadores es el que se basa en su extensión geográfica, es en este sentido en el que hablamos de redes LAN, MAN y WAN. (Tanenbaum, 2003)

·       -  LAN (Local Area Network/Red de Área local):
 Son redes de propiedad privada que se encuentran en un solo edificio o en un campus de pocos kilómetros de longitud. Se utilizan ampliamente para conectar computadoras personales y estaciones de trabajo en oficinas de una empresa y de fábricas para compartir recursos (por ejemplo, impresoras) e intercambiar información. (Tanenbaum, 2003) (Tanenbaum, 2003)

·    -    MAN (Metropolitan Area Network/Red de Área Metropolitana):
Esta abarca una ciudad. El ejemplo más conocido de una MAN es la red de televisión por cable disponible en muchas ciudades. Este sistema creció a partir de los primeros sistemas de antena comunitaria en áreas donde la recepción de la televisión al aire era pobre. En dichos sistemas se colocaba una antena grande en la cima de una colina cercana y la señal se canalizaba a las casas de los suscriptores. (Tanenbaum, 2003)


·        WAN (Wide Area Network/Red de Área amplia):
Son redes que se extienden sobre un área geográfica extensa. Contiene una colección de máquinas dedicadas a ejecutar los programas de usuarios (hosts). Estos están conectados por la red que lleva los mensajes de un host a otro. Estas LAN de host acceden a la subred de la WAN por un router.Suelen ser por tanto redes punto a punto. 



Topologías de red
“Es el patrón de interconexión entre los nodos de una red de computadoras o servidores, mediante la combinación de estándares y protocolos”. (Castlan, 2011)
Esencialmente al tender una red, se busca que esta cumpla con las características de bajo costo, alta velocidad en el tráfico de información y rendimiento alto (como tiempo de respuesta corto)
Hay muchas y muy diversas formas de conectar computadoras, pero entre las más conocidas y utilizadas se encuentran:

Red en Estrella

Esta topología se caracteriza por existir en ella un punto central, o más propiamente nodo  central, al cual se conectan todos los equipos, de un modo muy similar a los radios de una rueda. Es muy utilizada ara redes locales. (Castlan, 2011)
·        VENTAJAS:
Es fácil la inserción de nuevos elementos, para aumentar el número de estaciones, o nodos, de la red en estrella no es necesario interrumpir, ni siquiera parcialmente el flujo de datos; es fácil detectar nodos con fallos y a su vez tiene la posibilidad de ejecutar acciones bajo múltiples protocolos aunado a la alta seguridad en el nodo central y por ende en toda la red.

·         DESVENTAJAS:
Un fallo en el nodo central bloquea las comunicaciones, y la capacidad del mismo es la que delimita el tamaño de la red.

Red en Anillo

El anillo, como su propio nombre indica, consiste en conectar linealmente entre sí todos los  ordenadores, en un bucle cerrado. La información se transfiere en un solo sentido a través  del anillo, mediante un paquete especial de datos, que se transmite de un  nodo a otro, hasta alcanzar el nodo destino. (Castlan, 2011)

·         VENTAJAS:
Velocidad de transmisión de datos muy alta y buen desempeño en situaciones de alto tráfico de datos

·         DESVENTAJAS:
El coste del cable suele ser más alto que la mayoría de las topologías y en el  momento de agregar nuevos dispositivos o reparar fallos se tiene que aislar la zona en cuestión.

Red en Bus

En la topología en bus, al contrario que en la topología de Estrella, no existe un nodo  central, si no que todos los nodos que componen la red quedan unidos entre sí linealmente,  uno a continuación del otro. Físicamente cada host está conectado a un cable común, por lo que se pueden comunicar directamente, aunque la ruptura del cable hace que los hosts queden desconectados. (Castlan, 2011)

·         VENTAJAS:
Un fallo individual no afecta otros nodos, alta velocidad en transmisión de datos y fácil inserción de elementos

·         DESVENTAJAS:
El cable mantiene toda la conexión, es decir si ese sufre una avería o se rompe, toda la re queda incomunicada, fallos cuando en tráfico de datos es muy alta.

Red en Árbol

Topología de red en la que los nodos están colocados en forma de árbol. Desde una  visión topológica, la conexión en árbol es parecida a una serie de redes en estrella  interconectadas.  (Torazo, 2011)
·         VENTAJAS:
Es una variación de la red en bus, la falla de un nodo no implica interrupción en las  comunicaciones. Se comparte el mismo canal de comunicaciones, combina las ventajas de las topologías de estrella y bus.

·         DESVENTAJAS:
El coste del cable es elevado, aunado al tiempo de respuesta medio a moderado.

Red en Malla/Completa/Compleja

La Red en malla es una topología de red en la que cada nodo está conectado a uno o más de los otros nodos. De esta manera es posible llevar los mensajes de un nodo a otro por diferentes caminos.
·         VENTAJAS:
Si la red de malla está completamente conectada no puede existir absolutamente ninguna interrupción en las comunicaciones. Cada servidor tiene sus propias conexiones con todos los demás servidores.

·         DESVENTAJAS:
El coste del cable es elevado, aunado al tiempo de instalación y tiempo e transmisión.



Conclusión
Como conclusión podemos decir que ya tenemos un concepto claro de lo que es una red, las topologías y la clasificación , las cuales varían independientemente según el uso que se le dé, siendo los casos de uso administrativo y de investigación los más usuales.

Fuentes de consulta

Castlan, E. S. (2011). Topologías de Red. Hidalgo.
Tanenbaum, A. S. (2003). Redes de Computadoras. Mexico: Pearson.
Torazo, F. R. (2011). Topologias en redes, Introducción al modelo OSI. Distrito Federal.


domingo, 18 de agosto de 2013

Comunicación

Introducción
El ser humano es un ente social por naturaleza, no puede sobrevivir aislado. El tránsito de sus estados más primitivos hasta las sociedades actuales puede explicarse por su capacidad excepcional de darle sentido al mundo y de compartir esas ideas con sus semejantes para lograr una organización e incidir en su entorno, es decir, comunicarse para trabajar. El proceso comunicativo se desarrolla a través de la emisión de señales que pueden ser sonidos, gestos o señas, olores, etc., con la intención de dar a conocer un mensaje, y que a consecuencia de éste, se produzca una acción o reacción en quienes lo reciben. Para el caso de los seres humanos, estas señales son más complejas que en los animales, situación que deriva de nuestra capacidad intelectual; el lenguaje escrito, por ejemplo. (Sanz, 1982)

Desarrollo

Definición

La comuniación es el proceso mediante el cual se puede transmitir información de una entidad a otra. Los procesos de comunicación son interacciones mediadas por signos entre al menos dos agentes que comparten un mismo repertorio de signos y códigos. (Charles, 1994)

Componentes clave (Sanz, 1982)

Código:  El código es un sistema de signos y reglas para combinarlos, que por un lado es arbitrario y por otra parte debe de estar organizado de antemano.

Canal: Es el conducto físico mediante el cual se transmite el mensaje.

Codificador: Es quien asume la función de tomarla información y decidir qué tipo de código usará para construir el mensaje.

Decodificador: Es la contraparte del anterior. Recibe el mensaje codificado y lo descifra para conocer su significado.

Emisor: Es la persona que se encarga de transmitir el mensaje. Esta persona elige y selecciona los signos que le convienen, es decir, realiza un proceso de codificación; codifica el mensaje.

El Receptor: Será aquella persona a quien va dirigida la comunicación; realiza un proceso inverso al del emisor, ya que descifra e interpreta los signos elegidos por el emisor; es decir, descodifica el mensaje.

Mensaje: Es el contenido, es decir los datos que el emisor envía paraqué el receptor los decodifique para generar información.

Contexto: Las circunstancias que rodean un hecho de comunicación se denominan Contexto situacional (situación), es el contexto en que se transmite el mensaje y que contribuye a su significado.




Conclusión
Como conclusión se puede decir que el proceso de comunicación es sumamente importante en los distintos niveles de la interacción, tanto entre los humanos como entre las computadoras, ya que es principalmente el proceso clave para la generación de sistemas, ya que es el proceso mediático para captar información. (Charles, 1994)
Al saber los elementos del proceso comunicativo, como por ejemplo el contexto, o el medio, podemos determinar qué tipo de código utilizar, si es apropiado decir mandar cierto tipo de datos, con qué frecuencia enviarlos etc.
También podemos concluir que el proceso de comunicación es muy importante siempre que se tenga la necesidad de algo, ya sea de información, de enviar una alerta, informar acerca de un acontecimiento, recabar datos para almacenarlos ye en general toda situación en la que se requiera información.


Bibliografía/Fuentes de Consulta

Charles, O. (1994). Modelos de la comunicación.
Sanz, J. G. (1982). El proceso de la comunicación. Madrid: A Corazon Editores.


domingo, 11 de agosto de 2013

Sistemas Distribuidos


Introducción

La tecnología ha ido evolucionando enormemente desde el momento en que el ser humano decidió hacer uso de ella para como parte esencial de su vida. Con el desarrollo reciente de la computación, han surgido nuevos campos de investigación cada vez más sofisticados y que pretenden agilizar los procesos tanto cotidianos como particulares.
Una de estas nuevas tecnologías es el uso de redes y desarrollo de comunicaciones que pudieron lograr la conexión entre 2 computadoras y así abrir una nueva era en la materia de telecomunicaciones.
Prácticamente todos los sistemas de computación actuales forman parte de un sistema distribuido. Los programadores, desarrolladores e ingenieros deben entender los principios y paradigmas subyacentes, así como la aplicación real de esos principios. (Tanenbaum, 2007)

Desarrollo

Definición

"Sistemas cuyos componentes hardware y software, que están en computadoras conectadas en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un  objetivo. Se establece la comunicación mediante un protocolo preestablecido” (Coulouris, 2005)

Protocolos

Un protocolo es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse independientemente, y haya una comunicación transparente entre ambos componentes. Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor. (Weitzenfield, 2004)
Ejemplos de protocolos usados en los sistemas distribuidos: 
• IP: Protocolo de Internet.
• TCP: Protocolo de Control de Transmisión.
• HTTP: Protocolo de Transferencia de Hipertexto


Características definidas
Por definición estricta, se menciona que un sistema distribuido cumple con las siguientes características: (Coulouris, 2005)
1.      Concurrencia: Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes  que interactúan en la red.
2.      Fallos independientes: Cada componente del sistema pudiera fallar de manera independientemente, y los demás continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.
3.      Carencia de reloj global: Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, está más bien distribuida en los componentes

Características requeridas ("Desafíos")

Como parte de las características requeridas para el óptimo funcionamiento de un sistema se señalan las siguientes características, o comúnmente llamados “desafíos” que deben ser cubiertas (Liu, 2004): 
a) Heterogeneidad: La interconexión, se da sobre una gran variedad de elementos hardware y software, por lo cual necesitan de ciertos estándares que permitan esta comunicación.
b) Seguridad: A su vez dividido en 3 niveles 
           O Confidencialidad.- Protección contra individuos no autorizados. 
           O Integridad.- Protección contra la alteración o corrupción. 
           O Disponibilidad.- Protección contra la interferencia con los procedimientos de acceso a los                                                          recursos.
c) Escalabilidad: Escalabilidad.- El sistema es escalable si conserva su efectividad al ocurrir un incremento  considerable en el número de recursos (dispositivos, usuarios o información).
d) Transparencia: Es la ocultación al usuario  de aplicaciones de la separación de los componentes en un sistema distribuido, los usuarios deben percibir que la colección de máquinas conectadas son un sistema de tiempo compartido de un solo procesador.
e) Extensibilidad: Determina si el sistema puede extenderse y reimplementarse en diversos aspectos (añadir y quitar componentes).

Conclusión

Los sistemas distribuidos son una tecnología que permite que los procesos de información se vuelvan funcionales y efectivos, sin embargo hay que cuidar que todas las características y requerimientos que un sistema de este tipo necesita sean cubiertas para así lograr un eficiente funcionamiento.
La evolución constante en la tecnología seguirá desarrollándose e impulsando nuevas formas y retos en el desarrollo de los sistemas, los cuales deben seguir un proceso de modernización al mismo ritmo que las tecnologías crecen; Esto requiere de un estudio a profundidad de los factores que intervienen en cada aspecto de los sistemas distribuidos antes de apostar por alguna tecnología en especial. (Tanenbaum, 2007)

Bibliografía/ Fuentes de consulta

Coulouris, G. (2004). Distributed Systems: Concepts and Design. Addison Wesley.

Coulouris, G. (2005). Sistemas Distribuidos (TRADUCCION AL ESPAÑOL) Addison Wesley.

Liu, M.-L. L. (2004). Computación distribuída: fundamentos y aplicaciones. Pearson.

Sosa, V. J. (2010). Biblioteca virtual - CINVESTAV. Retrieved Agosto 10, 2012,"Panorama de sistemas distribuidos"

Tanenbaum, A. S. (2007). Sistemas distribuidos: Principios y paradigmas. Pearson.

Weitzenfield, A. (2004). Ingeniería de Software orientada a objetos con UML, Java e internet. Thomson.