miércoles, 4 de mayo de 2011

Sistemas Distribuidos (CLASE)


Sistema Distribuido es un concepto poco claro de definir. Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación. Los sistemas autónomos pueden tener características no homogéneas. 



Características de los Sistemas Distribuidos.
1.-Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo.
2.-Control de recursos locales y remotos.
3.- Sistemas Abiertos (Facilidades de cambio y crecimiento).
4.-Plataforma no standard ( Unix, NT, Intel, RISC, Etc.).
5.-Medios de comunicación ( Redes, Protocolos, Dispositivos, Etc.).
6.- Capacidad de Procesamiento en paralelo.
7.-Dispersión y parcialidad.

Modelo de Construcción.
*Arquitectura Cliente/Servidor:
Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se emplean para producir un producto. La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo.


Cliente
Conjunto de Software y Hardware que invoca los servicios de uno o varios servidores.
Servidor
Conjunto de Hardware y Software que responde a los requerimientos de un cliente.

*Red de Comunicación
Es todo aquel conjunto de elementos basados en hardware y software que permite establecer un enlace entre los clientes y los servidores, se clasifican por su tamaño LAN, MAN y WAN. 

En java existen algunas herramientas y conceptos para poder programar los sistemas distribuidos, tenemos lo que es el RMI.

"El sistema de Invocación Remota de Métodos (RMI) de Java permite a un objeto que se está ejecutando en una Máquina Virtual Java (VM) llamar a métodos de otro objeto que está en otra VM diferente."
Los stubs y skeletons se encargan de establecer una conexión entre los clientes y un objeto remoto. Los stubs corren en la parte cliente y los skel en el servidor.

Objetos Serializables: 
"Un objeto serializable es un objeto que se puede convertir en una secuencia de bytes. Para que un objeto sea serializable, debe implementar la interfaz java.io.Serializable. Esta interfaz no define ningún método. Simplemente se usa para marcar aquellas clases cuyas instancias pueden ser convertidas a secuencias de bytes (y posteriormente reconstruídas). Objetos tan comunes como String, Vector o ArrayList implementan Serializable, de modo que pueden ser serializados y reconstruídos más tarde.
Para poder serializar un objeto no hay más que declarar el objeto como serializable:
public class MiClase implements java.io.Serializable
El sistema de ejecución de Java se encarga de hacer la serialización de forma automática."

Sockets.
"Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface)"


Fuentes:
http://www.dcc.uchile.cl/~lmateu/CC60H/CompServ/index.html
http://www.programacion.com/articulo/invocacion_remota_de_metodos_rmi_107
http://www.javahispano.org/contenidos/es/serializacrion_en_java/

1 comentario:

  1. Faltó solamente la explicación de áreas de oportunidad para tu proyecto. Te pongo 4.

    Y obvio, la entrada del taller ya quedó NP.

    ResponderEliminar