domingo, 13 de noviembre de 2016

Threads o Hilos en Java

La principal función de los hilos es poder ejecutar diferentes procesos al mismo tiempo. Existen dos métodos para programar un hilo, ya sea heredando la clase Thread o implementando la interfaz Runnable:

Por ejemplo, en el método de herencia la clase del proceso seria:

public class Proceso extends Thread{
    public Proceso(){

        super();
    }
    public void run(){
    }
}


y la clase principal desde donde se llamaran y ejecutaran todos los procesos seria:

public class Principal{
    public static void main(String[]args){
        Proceso proceso1 = new Proceso();
        Proceso proceso2 = new Proceso();

        proceso1.start();
        proceso2.start();
    }
}

En la clase Proceso tenemos el método constructor desde el que se inicializan todos los atributos de la clase y en la clase Principal dentro del método main hacemos una instancia a la clase Proceso desde donde llamaremos al método start.

La segunda opción es muy parecida, el ejemplo seria:

public class Proceso implements Runnable{
    public Proceso(){
     
    }

    public void run(){
 
    }
}

y para ejecutar este proceso:

public class Principal{
    public static void main(String[]args){
        Proceso proceso1 = new Thread(new Proceso());
        Proceso proceso2 = new Thread(new Proceso());

        proceso1.start();
        proceso2.start();
    }
}

Como podemos ver no hay mucha diferencia en cuanto al código de ambos ejemplos, aunque al momento de realizar un sistema con diferentes procesos en paralelo podemos notar que el segundo ejemplo es mas eficiente ya que no se realiza la herencia.

No solo se pueden realizar estos procesos, sino que existen muchos métodos útiles para la clase Thread como sleep que  provoca que el intérprete ponga al hilo en curso a dormir durante el número de mili segundos, los métodos suspend y resume que pausan y reanudan los procesos. Es decir que existen muchas maneras de aplicar hilos en un programa

Finalmente podemos concluir que los hilos son una herramienta muy útil en algunos casos, sin embargo es necesario conocer los requerimientos para poder utilizarlos de una manera correcta y eficiente.

Fuentes

http://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-thread-runnable/

http://codigoprogramacion.com/cursos/java/133-uso-de-hilos-o-threads-en-java.html#.WB6RpPrhBQJ

http://dhw.umh.es/alex-bia/teaching/PC/material/hilos_tutorial-java/cap10-2.htm

http://www.chuidiang.com/java/hilos/hilos_java.php

domingo, 18 de septiembre de 2016

Modelo Osi

Introducción

El modelo de referencia OSI -Open System Interconnection- es la forma en que la ISO -International Standards Organization- ve las etapas en que se desarrolla un proceso de comunicaciones en redes de datos. El modelo tiene una historia y a veces puede resultar complejo de comprender.

Para comprender el contexto de los modelos de comunicación por capas, hay que partir de la base de que cuando aparece una nueva tecnología de red, los dispositivos que la soportan con frecuencia usan varios protocolos simultáneamente.

Los modelos en capas ofrecen algunas ventajas en el diseño y análisis de procesos de comunicación, la más evidente es que modulariza los procesos, es decir los divide en trozos más digeribles, menos complejos e independientes entre sí. Lo otro es que el diseño de protocolos partiendo de funciones específicas y pasando esas funciones a interfaces de programación, hace que los protocolos se puedan acoplar incluso cuando no pertenecen a la misma tecnología, por ejemplo el uso de TCP/IP sobre ethernet, WiFi, ATM, etc.

Desarrollo

El Modelo OSI divide en 7 capas el proceso de transmisión de la información entre equipo informáticos, donde cada capa se encarga de ejecutar una determinada parte del proceso global.

El modelo OSI abarca una serie de eventos importantes:

  • El modo en que los datos se traducen a un formato apropiado para la arquitectura de red que se esta utilizando
  • El modo en que las computadoras u otro tipo de dispositivo de la red se comunican. Cuando se envíen datos tiene que existir algún tipo de mecanismo que proporcione un canal de comunicación entre el remitente y el destinatario.
  • El modo en que los datos se transmiten entre los distintos dispositivos y la forma en que se resuelve la secuenciación y comprobación de errores
  • El modo en que el direccionamiento lógico de los paquetes pasa a convertirse en el direccionamiento físico que proporciona la red
El modelo OSI ofrece los mecanismos y reglas que permiten resolver todas las cuestiones que acabamos de referir. Comprender las distintas capas de modelo OSI no solo permite internarse en los conjuntos de protocolos de red que actualmente se utilizan, sino que tambien proporciona un marco de trabajo conceptual del que puede servirse cualquiera para comprender el funcionamineto de dispositivos de red complejos, como monmutadores, puentes y routers.

El modelo de interconexión de sistemas abiertos (OSI) tiene siete capas. Este artículo las describe y explica sus funciones, empezando por la más baja en la jerarquía (la física) y siguiendo hacia la más alta (la aplicación). Las capas se apilan de esta forma:
  • Aplicación
El nivel de aplicación actúa como ventana para los usuarios y los procesos de aplicaciones para tener acceso a servicios de red. Proporciona la interfaz y servicios q soportan las aplicaciones de usuario. También se encarga de ofrecer acceso general a la red
Esta capa suministra las herramientas q el usuario, de hecho ve. También ofrece los servicios de red relacionados con estas aplicaciones, como la gestión de mensajes, la transferencia de archivos y las consultas a base de datos.
Entre los servicios de intercambio de información q gestiona la capa de aplicación se encuentran los protocolos SMTP, Telnet, ftp, http

  • Presentación
La capa de presentación da formato a los datos que deberán presentarse en la capa de aplicación. Se puede decir que es el traductor de la red. Esta capa puede traducir datos de un formato utilizado por la capa de la aplicación a un formato común en la estación emisora y, a continuación, traducir el formato común a un formato conocido por la capa de la aplicación en la estación receptora. La capa de presentación puede considerarse el traductor del modelo OSI. Esta capa toma los paquetes de la capa de aplicación y los convierte a un formato genérico que pueden leer todas las computadoras. Par ejemplo, los datos escritos en caracteres ASCII se traducirán a un formato más básico y genérico. 
También se encarga de cifrar los datos así como de comprimirlos para reducir su tamaño. El paquete que crea la capa de presentación contiene los datos prácticamente con el formato con el que viajaran por las restantes capas de la pila OSI (aunque las capas siguientes Irán añadiendo elementos al paquete.

  • Sesión
La capa de sesión permite el establecimiento de sesiones entre procesos que se ejecutan en diferentes estaciones. Esta capa también gestiona la sesión que se establece entre ambos nodos.La capa de sesión pasa a encargarse de ubicar puntas de control en la secuencia de datos además proporciona cierta tolerancia a fallos dentro de la sesión de comunicación.

Los protocolos que operan en la capa de sesión pueden proporcionar dos tipos distintos de enfoques para que los datos vayan del emisor al receptor: la comunicación orientada a la conexión y Ia comunicación sin conexión. Los protocolos orientados a la conexión que operan en la capa de sesi6n proporcionan un entorno donde las computadoras conectadas se ponen de acuerdo sobre los parámetros relativos a la creación de los puntos de control en los datos, mantienen un dialogo durante la transferencia de los mismos, y después terminan de forma simultanea la sesión de transferencia.

  • Transporte
La capa de transporte garantiza que los mensajes se entregan sin errores, en secuencia y sin pérdidas o duplicaciones. Libera a los protocolos de capas superiores de cualquier cuestión relacionada con la transferencia de datos entre ellos y sus pares. 

El tamaño y la complejidad de un protocolo de transporte depende del tipo de servicio que pueda obtener de la capa de transporte. Para tener una capa de transporte confiable con una capacidad de circuito virtual, se requiere una mínima capa de transporte. Si la capa de red no es confiable o solo admite datagramas, el protocolo de transporte debería incluir detección y recuperación de errores extensivos. La capa de transporte se ocupa también de evaluar el tamaño de los paquetes con el fin de que estos Tengan el tamaño requerido por las capas inferiores del conjunto de protocolos. El tamaño de los paquetes 10 dicta la arquitectura de red que se utilice.

  • Red
La capa de red controla el funcionamiento de la subred, decidiendo qué ruta de acceso física deberían tomar los datos en función de las condiciones de la red, la prioridad de servicio y otros factores. La capa de red encamina los paquetes además de ocuparse de entregarlos. La determinación de la ruta que deben seguir los datos se produce en esta capa, lo mismo que el intercambio efectivo de los mismos dentro de dicha ruta, La Capa 3 es donde las direcciones lógicas (como las direcciones IP de una computadora de red) pasan a convertirse en direcciones físicas (las direcciones de hardware de la NIC, la Tarjeta de Interfaz para Red, para esa computadora especifica).
Los routers operan precisamente en Ia capa de red y utilizan los protocolos de encaminamiento de la Capa 3 para determinar la ruta que deben seguir los paquetes de datos.

  • Vínculo de datos
Cuando los paquetes de datos llegan a la capa de enlace de datos, estas pasan a ubicarse en tramas (unidades de datos), que vienen definidas por la arquitectura de red que se esta utilizando (como Ethernet, Token Ring, etc.). La capa de enlace de datos se encarga de desplazar los datos por el enlace físico de comunicación hasta el nodo receptor, e identifica cada computadora incluida en la red de acuerdo con su dirección de hardware

  • Física
La capa física, la más baja del modelo OSI, se encarga de la transmisión y recepción de una secuencia no estructurada de bits sin procesar a través de un medio físico. Describe las interfaces eléctrica/óptica, mecánica y funcional al medio físico, y lleva las señales hacia el resto de capas superiores. En la capa física las tramas procedentes de la capa de enlace de datos se convierten en una secuencia única de bits que puede transmitirse por el entorno físico de la red. La capa física también determina los aspectos físicos sobre la forma en que el cableado esta enganchado a la NIC de la computadora.



Conclusión

El modelo OSI ayuda a entender el funcionamiento del sistema ya que nos da terminos tecnicos para referirnos a los procsos requeridos para establecer una comunicacion en una red o sistema. Si no existiera no tendriamos un estandar que funcionara en practicamente cualquier sistema o red que s implemente lo cual podria llegar a causar problemas de compatibilidad y mantenimiento.

Referencias

  • Claros, I.. (sf). Modelo OSI. sf, de Universidad Privada Cumbre Sitio web: http://belarmino.galeon.com/
  • "Definicion de las site capas...". (2013). Definicion de las sietes capas del modelo OSI y explicacion de las funciones. 11/29/2013, de Microsoft Sitio web: https://support.microsoft.com/es-mx/kb/103884
  • Cabrera, C.. (2009). ¿Qué es el modelo OSI?: Definición. 22/07/2016, de Informatica++ Sitio web: http://cesarcabrera.info/blog/%C2%BFque-es-el-modelo-osi-definicion/

sábado, 17 de septiembre de 2016

Tipos de Redes

Introducción

Una red de computadoras (de ordenadores o informática) es un conjunto de equipos conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, para compartir información o archivos, recursos como discos, impresoras, programas, etc. , y servicios como el acceso a una base de datos, Internet, correo electrónico, chat, juegos, etc. A cada una de las computadoras conectadas a la red se le denomina un nodo.

No es necesario ser un experto en informática para entender como funciona una red de computadoras, a pesar de que existan términos técnicos y conocimientos un tanto complejos la idea no deja de ser tan básica como un conjunto de equipos conectados entre si que mediante impulsos eléctricos envían y reciben datos.

Las redes fueron de gran ayuda en la rama de las comunicaciones desde finales del siglo XIX, aunque si se analiza bien el mismo sistema de telefonía es parte de una red de comunicación. Desde entonces el mismo principio se a utilizado para conectar computadoras entre si, donde sin importar la distancia se puede accesar a información en otro continente gracias a satélites, enlaces transoceanicos, telefonía móvil etc. Es por ello que hoy en día las redes forman parte del día a día de los seres humanos.

Desarrollo

Hay muchas maneras de clasificar las redes, por alcance, por tipo de conexion, por relacion funcional, por topologia, por direccionalidad, por grado de autenticacion, por difusion o por servicio y funcion. Aun asi la funcion principal de una red es compartir informacion y recursos a distacia, procurar que dicha informacion sea segura, este siempre disponible y, por supuesto, de forma cada vez mas rapida y economica.

Clasificacion de Redes

Redes por alcance

En esta clasificacion de redes se clasifican segun el area de cobertura que tenga una red con tres siglas. 
  • PAN (Personal Area Network): Es usada para la comunicacion entre dispositivos de una persona, pudiendo ser telefonos o computadoras personales que se pueden conectar con cables a los usb y firewire de la computadora, incluso existe una variacion sin cableado llamada WPAN (Wireless Personal Area Network) donde la coneccion se da gracias a tecnologias bluetooth o IrDA. Su alcance suelen ser algunos metros.
  • LAN (Local Area Network): Corresponde a una red de area local que cubre una zona pequeña con varios usuarios como un edificio u oficina. Una red LAN suele dividirse en segmentos logicos mas pequeños llamados grupos de trabajo.
  • CAN (Campus Area Network): Para un campus o base militar, es decir un area geografica limitada. Incluso podria considerarse un area metropolitana siempre y cuando en esa area sea un ambiente universitario, es por ello que es mas grande que una LAN.
  • MAN (Metropolitan Area Network): Cuando hablamos de una red en un area geografica mas extensa hablamos de una MAN. Esta comprende una coneccion donde los limites de distancia no se extienden mas alla de los limites de una ciudad.
  • WAN (Wide Area Network): Formada por un conjunto de redes LAN, por ello mismo suele dividirse en suredes donde se conectan varios host. Geograficamente los equipos o dispositivos estan dispersos, incluso en continentes distintos.
Como podemos ver basicamente las redes LAN y WAN dan paso a las demas redes. Ya que con estas se pueden obtener las demas.

Redes por tipo de conexion

Cuando se clasifican las redes por el tipo de conexion, la red varia dependiendo si la transmicion es realizada por medios guiados com oun cable coaxial, par trenzado o fibra optica, o medios no guiados como las ondas de radio, infrarrojos, microondas u otras transmisiones por aire.

  • Medios Guiados: En pocas pablabras la informacion viaja a traves de cables, por lo que la informacion viaja de un punto a otro sin perder el camino fisicamente hablando. Para ello se utiliza ya sea un cable coaxial, un cable de par trenzado o fibra optica.
  • Medios No Guiados: En este tipo de redes por conexion, la informacion viaja a traves de ondas electromagneticas sin usar in conductor fisico. Este tipo de comunicacion se denomina Comunicacion Inalambrica, y normalmente se utilizan 3, la radio fecuencia, microondas y luz.

Redes por relacion funcional

Cuanddo un cliente o usuario solicita la informacion a un servidor que le da respuesta es una relacion cliente/servidor, de modo opuesto, cuando la conexion se da en una serie de nodos que operan com oiguales, es decir, sin slientes ni servidores se denomina conexiones peer to peer (P2P).
  • Cliente/Servidor: Es aquella red donde la comunicacion se da en base a peticion y respuesta. Donde los clientes estan conectados a un servidor donde se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposicionde los clientes cada vez que son solicitados.
  • Peer to Peer (P2P): Es una red descentralizada que no tiene clientes ni servidores fijos, sino que tiene una serie de nodos que se comprotan simultaneamente com clientes y servidores de los demas nodos de la red. Cada nodo puede iniciar, detener o complementar una transaccion compatible.

Redes por topologia

La topologia de red establece su clasificacion en base a la estructura de union de los distintos nodos o terminales conectados. En esta clasificacion encontramos las redes en bus, anillo, estrella, en malla, en arbol y redes mixtas.
  • Bus: Las estaciones estan conectadas por un unico segmento de cable. A diiferencia del anillo, el bus es pasivo, no se produce regeneracion de las señales en cada nodo. Los nodos de una red de bus transmiten la informacion y esperan que esta no vaya a chocar con otra informacion por otro de los nodos. Si esto ocurre, cada nodo espera una cantidad de tiempo al azar y despues intenta retransmitir la informacion.

  • Jerarquica: Los nodos estan colocados en forma de arbol. Es parecida a una serie de redes en estrella intercomentadas con la diferencia que no tiene un nodo central sino un nodo de enlace troncal generalmente ocupado por un hub o switch. Es una bariante de la red en bus. Normalmente las computadoras con jerarquia suelen ocacionar "cuellos de botella", y si una computadora con jerarquia tiene un fallo se corta la comunicacion que depende de ella.
  • Anillo: Las estaciones estan unidas unos con otras formando un circulo por medio de un cable comun. Las señales circulan en u solo sentido alrededor del circulo, regenerandose en cada nodo. Cada nodo examina la informacion que es enviada a traves del anillo, si no esta dirigida a el la pasa al siguiente nodo. Si se rompe una conexion cae la red completa y suele tener retardos (es lenta).

  • Estrella: La red se une en un unico punto, un concentrador de cableado o HUB que a traves de el los bloques de informacion son dirigidos hacia las estaciones. Su ventaja es que el concentrador monitorea el trafico y evita las colisiones y una conezion interrumpida no afecta al resto de la red. La desventaja es que los mensajes son enviados a todas las estaciones aunque vaya dirigido a una.

  • Malla: Existen diferentes caminos para enviar la informacion de una computadora a otra ya que una computadora tiene diferentes conexiones con diferentes computadoras. Es un tanto fiable, inmune a fallos y cuellos de botella, ya que si un componente falla o esta ocupada vuelve a encaminar el trafico, ademas si la red esta completamente conectada, no puede existir absolutamente ninguna interrupcion en la comunicaciones.

  • Hibridas o Mixtas: El bus, la estrella y el anillo se combinan algunas veces para formar una red hibrida o mista. Por ejemplo un anillo en estrella se utiliza con el fin de facilitar la administracion de la red; fisicamente la red es una estrella centralizada en un concentrados mientras que a nivel logico la red es un anillo. Una Estrella jerarquica es la estructura de cableado mas utilizada en las redes locales actuales, por medio de concentradores dispuestos en cascada para formar una red jerarquica.

Redes por direccionalidad de datos

En la direccionalidad de datos, cuando un equipo actua com oemisor en forma unidireccional se llama Simplex, si la informacion es bidimencional pero solo un equipo transmite a la vez, es una red Half-duplex o Semi-Duplex, y si ambos equipos envian y reciben informacion simultaneamente hablamos de una red Full Duplex.
  • Simplex: O unidireccional, una transmision unica de una sola direccion se envia de un transmisor a un receptor. Un ejemplo seria la señal que se envia de una estacion de TV a la TV de una casa.
  • Half-Duplex: Los datos circulan en una sola direccion por vez. El canal de comunicaciones permite alternar la transmision en dos direcciones, pero no en ambas direcciones simultaneamente. Un ejemplo serian las radios bidireccionales, como las radios moviles de comunicacion.
  • Full-Duplex: Los datos circulan en ambas direcciones a la vez. A pesar de que los datos circulan en ambas direcciones, el ancho de banda se mide en una sola direccion. Un cable de red con 100Mbps en modo full-duplex tiene un ancho de banda de 100Mbps.

Redes segun grado de autentificacion

Se dividen en dos, las redes privadas y las redes de acceso publico. De este modo una red privada requiere el ingreso de claves u otro medio de validacion de usuarios mientras una red de acceso publico permite que dichos usuarios accedan a ella libremente.
  • Red Privada: Es una red de computadoras que usa un espacio de direcciones IP especificadas. Si una coneccion no se encuentra dentro de este espacio no puede acceder a la red. Este tipo de redes son bastante comunes en esquemas de red local ya que muchas oficinas no tienen la necesidad de usar direcciones IP publicas en sus dispositivos.
  • Red de Acceso Publico: Es parte de una red de comunicacion que conecta a los usuarios finales con algun proveedor de servicios y es complementaria al nucleo de red. Es una red que puede usar cualquier persona sin necesidad de una clave o usuario especifico.

Redes segun su grado de difusion

Puede ser Intranet o Internet. Una intranet es un conjunto de equipos que comparten informacion entre usuarios validos previamente, mientras que internet es una red de alcance mundial gracias a que la interconexion de equipos funcionan como una red logica unica con lenguajes y protocolos de dominio abierto y heterogeneo.
  • Intranet: Es una red de ordenadores privados que utiliza tecnologia internet para compartir de forma segura ualquier informacion o programa del sistema operativo para evitar que cualquier usuario de internet pueda ingresar. Tiene como funcion principal proveer logica de negocios para aplicaciones de captura, informes y consultas conel fun de facilitar la produccion de dichos grupos de trabajo
  • Internet: Son redes interconectadas o la union de todas las redes y computadoras distribuidas por todo el mundo, por lo que se podria definir omo una red global en la que se conjuntan todas las redes que utilizan protocolos TCP/IP y que son compatibles entre si.

Redes segun servicio o funcion

Pueden clasificarse de diferentes maneras, como redes comerciales, educativas o redes para el proceso de datos.


Conclusion

Las redes son de gran ayuda para solucionar diversos problemas. La clasificacion de redes nos ayuda a entender las funcionalidades, aplicaciones ventajas y desventajas que tienen distintos modelos. Es por ello que es importatnte conocer las distintas ventajas o desventajas de cada modelo para que su implantacion sea la correcta y que solucione de mejor manera la problematica a la cual se le busca dar una solucion.

Referencias

  • Barceló, J., Íñigo, J., Martí, R., Peig, E., & Perramon, X.. (2004). Redes de computadores. 2004, de Universiat Oberta de Catalunya Sitio web: http://www.uoc.edu/masters/oficiales/img/922.pdf
  • Mansilla, C.. (2014). Redes de Computadoras. Abril 2014, de Facultad de Ciencias Agrarias Sitio web: http://www.fca.unl.edu.ar/informaticabasica/Redes.pdf
  • "Tipos de redes informaticas". (2011). Tipos de redes informaticas. 04/10/2011, de Gobierno TI Sitio web: https://gobiernoti.wordpress.com/2011/10/04/tipos-de-redes-informaticas/
  • Tanenbaum, A.. (2003). Redes de computadoras. Atlacomulco 500-5to. piso Industrial Atoto 53519 Naucalpan de Juárez, Edo. de México: Pearson Educación.
  • Sandoval, E.. (2011). Topologias de red. Julio 2011, de Universidad Autonoma del Estado de Hidalgo Sitio web: https://www.uaeh.edu.mx/docencia/P_Presentaciones/huejutla/sistemas/redes/topologias.pdf


viernes, 16 de septiembre de 2016

Sistemas distribuidos

Introducción

Los sistemas distribuidos nacieron en una época de grandes cambios en la computación, la cual ha sufrido grandes cambios en toda su historia. Sin embargo fue comienzo del uso de los microprocesadores que añadían potencia a las computadoras a la vez que bajaba su costo, el desarrollo de redes de área local para transmitir datos entre computadoras a una gran velocidad y el desarrollo de las telecomunicaciones a un nivel global entre otros factores lo que ayudo a popularizar el termino.

Millones de personas y organizaciones dependen de sistemas distribuidos para realizar operaciones bancarias, enviar mensajes de texto o correos electrónicos, comprar y vender cualquier tipo de articulo o realizar llamadas. Un sistemas distribuido puede llegar a ser tan complejo como se requiera. 

Es por ello que resulta fascinante pensar en el paso evolutivo que significan los sistemas distribuidos en la historia de la informática, ya que desde los inicios de la computación donde solo las grandes organizaciones podían permitirse el uso de una gran computadora para el manejo de datos hemos llegado a un punto donde un usuario común puede tener una computadora en su escritorio con capacidades mucho mayores además de estar cada vez mas introducidos en el quehacer cotidiano de una persona.

Así pues podemos pensar en un sistema distribuido según George Coulouris, como una colección de computadores independientes que aparecen ante los usuarios del sistema como una única computadora.

Desarrollo

Definición

La definición de George Coulouris nos puede dar una idea del significado de un sistema distribuido, sin embargo el Dr. Víctor Jesús Sosa Sosa, profesor e investigador del Cinvestav campo Tamaulipas define sistema distribuido como:

"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".
Otra forma de entender un sistema distribuido es mediante la definición de "Computación Distribuida", que se refiere a los servicios que provee un Sistema de Computación Distribuido.

Características

Una de las primeras personas en definir un sistema distribuido fue Philip H. Enslow, Jr del Instituto de Tecnología de Georgia, en su articulo "¿Que es un sistema de procesamiento de datos distribuido?" publicado en 1978, donde le atribuye las siguientes propiedades:
  • Esta compuesto por varios recursos informáticos de propósito general, tanto físicos como lógicos, que pueden asignarse dinamicamente a tareas concretas. 
  • Estos recursos están distribuidos físicamente, y funcionan gracias a una red de comunicaciones. 
  • Hay un sistema operativo de alto nivel, que unifica e integra el control de los componentes.
  • El hecho de la distribución es transparente, permitiendo que los servicios puedan ser solicitados especificando simplemente su nombre (no su localización).
  • El funcionamiento de los recursos físicos y lógicos esta caracterizado por una autonomía coordinada.
A pesar de que estas características se le fueron atribuidas en 1978, siguen dando una idea básica de lo que es un sistema distribuido, otras características como la de Michael Schroeder pueden ser mas directas y fáciles de entender. Estas son solo tres y son:
  • Existencia de varias computadoras. En general, cada una con su propio procesador, memoria local, subsistema de entrada/salida y quizás incluso memoria persistente.
  • Interconexión. Existen vías que permiten la comunican entre las computadoras, a través de las cuales pueden transmitir información.
  • Estado compartido. Las computadoras cooperan para mantener algún tipo de estado compartido. El funcionamiento correcto del sistema se describe como el mantenimiento de una serie de invariantes globales que requiere la coordinación de varias computadoras

Evolución

Host

Fue uno de los primeros modelos de computadoras interconectadas o centralizados. Todo el procesamiento lo realizaba una sola computadora o mainframe lo suficientemente potente para el gran procesamiento de datos y los usuarios utilizaban computadoras personales sencillas. 

Sin embargo tenia problemas, ya que conforme la carga de procesamiento iba aumentando se tenia que actualizar el hardware del mainframe, lo cual resultaba mas costoso que añadir mas computadoras personales clientes o servidores que aumentaran las capacidades.

Grupo de Servidores

Este modelo nació para dar competencia al modelo de procesamiento central o host. En este un grupo de computadoras actúan como servidores de archivos o impresión. Los problemas que llego a dar que que se podían saturar los medios de comunicación entre los servidores poco inteligentes y los minicomputadores, es decir, que cuando se solicitaban archivos grandes por varios clientes a la vez disminuía la velocidad de transmisión de la información.

Cliente Servidor

Este modelo es el mas popular en la actualidad ya que permite descentralizar el procesamiento y los recursos. esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente.

Suele encontrarse principalmente en 2 arquitecturas: 
  1. Arquitectura Cliente-Servidor de Dos Capas: En la primera capa encontramos la presentación y la lógica de la aplicación mientras en la segunda a la base de datos. Suele utilizarse cuando se requiera poco procesamiento de datos, solo se tiene una base de datos en un solo servidor, la base de datos es relativamente estática o se requiere un mantenimiento mínimo.
  2. Arquitectura Cliente-Servidor de Tres Capas: Consta de la capa de presentación, otra de la lógica de la aplicación y la tercera consta de la base de datos. Suele utilizarse cuando se requiera mucho procesamiento de datos en la aplicación, la funcionalidad de las aplicaciones esta en constante cambio, los procesos no están muy relacionados con los datos, se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar, se requiera separar el código del cliente para que se facilite el mantenimiento o esta muy adecuada para utilizarla con la tecnología orientada a objetos.

Protocolo

Podría definirse como el conjunto de reglas y formatos que se utilizan para la comunicación de procesos que realizan una determinada tarea. Esto permite que los componentes de un sistema distribuido puedan desarrollarse independientemente por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes. Para ello es necesario la especificación de la secuencia de mensajes que se han de intercambiar así como del formato de los datos en los mensajes.

Algunos ejemplos de protocolos podrían ser IP, TCP, HTTP, SMTP y POP3.

Ventajas

  • La localización de la organización, los clientes, los proveedores etc., ya no es un problema porque gracias a las redes de información que los unen y les permiten interactuar.
  • El desempeño por procesador con relación a su precio es mejor cuando están distribuidos, ya que resulta mas fácil armar una red de computadoras que se repartan los procesos que invertir en un mainframe con piezas muy costosas.
  • El poder total del sistema puede incrementarse al añadir pequeños sistemas, lo cual es mas fácil y barato que hacerlo en un sistema centralizado.
  • Es mucho mas fácil hacerlo en un sistema distribuido ya que de otra manera se tendría que duplicar el archivo en cada nodo.
  • Son mas confiables, ya que al estar distribuida la carga de trabajo en muchas maquinas la falla de una de ellas no afecta a las demás.
  • Se pueden compartir recursos, ya sean programas o periféricos costosos como impresoras láser, dispositivos de almacenamiento masivo etc. Eso además satisface las necesidades de varios usuarios a la vez
  • Hay una mejora notable en la comunicación entre las personas

Desventajas

  • La falta de estándares y herramientas suele crear problemas de compatibilidad, portabilidad e interconectividad. Esto se da ya que el desarrollo y uso de estándares se suele dar por personas y en tiempos diferente.
  • Decidir en que lugar ira cada parte del sistema no es tan sencillo como seria hacerlo de una manera centralizada. Problemas como verificar permisos, aplicar mecanismos de protección y compartir datos y recursos suelen sobrecargar el sistema.
  • La distribución de datos y de programas puede crear problemas de seguridad e integridad que por lo general requieren de un proceso paralelo que ayude a solucionar dichos problemas, por lo que la carga del sistema aumenta y el rendimiento en general puede verse afectado.
  • El software, el diseño, la implantación y el uso de software distribuido problemas e inconvenientes que suelen generarse al momento de implementarlo.

Conclusiones

Los sistemas distribuidos significan un gran paso en la historia de la informática, ya que ofrecen mas ventajas que desventajas en comparación con otros modelos. Sin embargo esto mismo puede llegar a ser un problema ya que conforme mas grande y complejo se quiera hacer un sistema se encontrar mas problemas ya que su diseño, el como se va a programar, que tecnologías se utilizaran, el darle mantenimiento y muchas cosas mas hacen que sea mas difícil de implementar que otros modelos.

Referencias

  • Sosa V.. (2013). Sistemas Distribuidos: Panorama. 2016, de Cinvestav Sitio web: http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf
  • Lafuente A.. (2011). Introducción a los sistemas distribuidos . 02-Sep-2011, de Departamento de Arquitectura y Tecnología de Computadores, UPV/EHU Sitio web: http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
  • González, S., Cheang, G., & Kashiwamoto, E.. (2004). Introducción a los Sistemas Distribuidos. 2004, de UNAM Sitio web: http://www.capacinet.gob.mx/Cursos/Tecnologia%20amiga/desarrolladordesoftware/IntroduccionSistemasDistribuidos_SE.pdf
  • Turpo, E.. (2010). Sistemas Distribuidos. 2010-05-30, de Universidad Arturo Prat Sitio web: http://www.unap.edu.pe/cidiomas/licing/pdf/sd.pdf