Professional Documents
Culture Documents
COMUNICACION EN SISTEMAS
DISTRIBUIDOS ORIENTADA A FLUJOS
Paola Arevalo, Paola Pintado,Fabian Suconota and Roberth Ulloa
Invited Paper
AbstractThis is the abstract text.
Index Termssimplicity, beauty, elegance
I. I NTRODUCTION
ODOS los datos fluyen a travs del ordenador desde una
entrada hacia una salida. Este flujo de datos se denomina
tambin stream. Hay un flujo de entrada (input stream) que
manda los datos desde el exterior (normalmente el teclado)
del ordenador, y un flujo de salida (output stream) que dirige
los datos hacia los dispositivos de salida (la pantalla o un
archivo). El proceso para leer o escribir datos consta de tres
pasos
Abrir el flujo de datos
Mientras exista ms informacin (leer o escribir ) los
datos
Cerrar el flujo de datos
El soporte para medios se refiere al soporte para intercambiar informacin dependiente del tiempo. Un medio se
refiere al recurso mediante el cual se transmite la informacin.
Estos recursos incluyen a los medios de almacenamiento y
transmisin, medios de presentacin como un monitor, etc.
Un tipo importante de medio es la forma en que se representa la informacin, por ejemplo, las imagenes pueden ser
presentadas por diferentes formatos, como PNG, JPEG, GIF,
etc. (Tanenbaum, Andrew)
A. Medios continuos
Las relaciones temporales entre diferentes elementos de
datos son fundamentales para interpretar correctamente lo que
significan los datos.
B. Medios discretos
Se caracterizan por el hecho de que las relaciones temporales entre elementos de datos no son fundamentales para
interpretar correctamente los datos
C. Flujo de datos
Para captar el intercambio de informacin dependiente del
tiempo, los sistemas distribuidos generalmente proporcionan
soporte para flujos de datos. Un flujo de datos no es otra cosa
ms que una secuencia de unidades de datos. Estos flujos
pueden aplicarse tanto a medios discretos como a medios
continuos.
A. Tipos de sincronizacion:
La sincronizacion ocurre al nivel de las unidades de datos
que conforman el flujo, es decir, solo entre unidades de datos.
1) Sincronizacion entre un flujo discreto de datos y un
flujo continuo de datos.: Es el tipo de sincronizacion mas
sencilla, en la cual el servidor transfiere datos al cliente en
forma de datos discretos, y al mismo tiempo el cliente debe
reproducir un flujo de datos continuos, buscando siempre la
sincronizacion entre los dos flujos de datos.
2) Sincronizacion entre flujos continuos de datos.: Por
ejemplo cuando se necesita que en un video se sincronizen
el flujo de video con el de audio. Teniendo en cuenta que se
requiere evitar al maximo la perdida de tramas o interferencias
o retardos.
B. Mecanismos de sincronizacion
Para lograr la sincronizacion se tiene en consideracion dos
aspectos importantes:
1) Los mecanismos basicos para sincronizar dos flujos:
Dentro de este aspecto se pueden considerar varios niveles de
abstraccion diferentes
Cuando se opera las unidades de datos de flujos simples:
En esencia, hay un proceso que simplemente ejecuta operaciones de lectura y escritura en varios flujos simples,
garantizando que tales operaciones se apegan a restricciones
de sincronizacin especficas.
import java.util.logging.Level;
import java.util.logging.Logger;
public class Enchufador {
ServerSocket servidor;
Socket socket; int puerto = 21;
boolean listen=true;
DataOutputStream salida;
BufferedReader entrada;
public void iniciar(){
try {
// Se muestra el servidor y el puerto por donde se recibira
la informacion
servidor = new ServerSocket(puerto);
socket = new Socket();
socket = servidor.accept();
// esto es igual a lo que el servidor acepta la conexion
entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String mensaje = entrada.readLine();
System.out.println(mensaje);
System.out.println("Hay
un
mensaje
desde"+
socket.getInetAddress());
salida = new DataOutputStream(socket.getOutputStream());
salida.writeUTF("cualquier mensaje");
salida.close();
}
catch
(IOException
ex)
{
Logger.getLogger(Enchufador.class.getName()).log(Level.SEVERE,
null, ex); }
}}
Main.java
package socketserver;
/** * * @author pao *
/ // PRIMERO NECESITAMOS ESTAS CLASES PARA
USAR LOS SOCKETS EN JAVA
public class Main {
/** * @param args the command line arguments */
public static void main(String[] args) {
Enchufador soquete = new Enchufador(); soquete.iniciar();
}}
Para enviar a ejecutar el servidor se utiliza Netbeans.
Cliente
En la implentacin del cliente tenemos:
ClienteSock.java
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.*;
public class ClienteSock {
Socket cliente; int puerto = 6570;
String ip = "172.16.5.1";
BufferedReader entrada, teclado;
PrintStream salida;
public void pedirSolicitud(){
try {
cliente = new Socket(ip,puerto);
entrada = new BufferedReader (new InputStreamReader(cliente.getInputStream()));
teclado = new BufferedReader(new InputStreamReplace this box by an Your Name All about you and the what your
image with a width of interests are.
Reader(System.in));
1 in and a height of
String mitec = teclado.readLine();
1.25 in!
salida = new PrintStream(cliente.getOutputStream());
salida.println(mitec); // las siguientes lineas son para que lo
que se escriba se muestre en el cliente String mensajeAlServidor = mitec; //System.out.println(" Hay un mensaje desde la
direccion "+ cliente.getInetAddress());
System.out.println(mensajeAlServidor);
entrada.close();
salida.close();
teclado.close();
cliente.close();
}
catch (IOException e) {
Logger.getLogger(ClienteSock.class.getName()).log(Level.SEVERE,null,e);
}}}
Main.java
public class Main {
/** * @param args */
public static void main(String[] args) {
// TODO Auto-generated method stub
ClienteSock c = new ClienteSock(); c.pedirSolicitud();
}
}
El cliente se lo envia a ejecutar desde Eclipse.
VI. C ONCLUSIONES
En una comunicacion en un Sistema Distribuido orientado
a Flujos, en el cual se da una comunicacin continua de datos,
donde cortes de comunicacin generan retardos no deseados.
Los sistemas distribuidos orientados a flujos, nos permite
realizar comunicaciones ininterrumpidas.
Coauthor Same again for the co-author, but without photo
VII. B IBLIOGRAFIA :
Rojo, Oscar. (2003). Introduccin a los sistemas
distribuidos. http://www.augcyl.org/
Tanenbaum, Andrew. Sistemas Operativos Distribuidos. Mexico: Prentice Hall.
En
linea:
Comunicacion
en
los
sistemas
Distribuidos.
http://exa.unne.edu.ar/depar/areas/informatica/
SistemasOperativos/BlascoComunicacion_en_los_Sist_Distrib.pdd
http://www.slideshare.net/OlayaMLic/diseoorientado-a-flujo-de-datos
http://docencia.etsit.urjc.es/moodle/file.php/100/Material_curso_2010_2011/Teoria/Tema4_Comunicacion.pdf
[1]ftp://www.cc.uah.es/pub/Alumnos/I.T.I.Gestion/Sist.Operati
vos/TECWeb/T1/web/taxonomy/term/94.html