CC52n Exámen Pregunta 1

Anuncio
CC52n
Exámen
Pregunta 1
Se pueden clasificar los sistemas de CSCW según 3 ejes: lugar, tiempo y orientación. Esto nos define 8
cuadrantes en donde pueden caer los sistemas. Dé 5 ejemplos de sistemas colaborativos y diga en qué
cuadrante caen.
Pregunta 2
Considere las siguientes situaciones para las cuales le solicitan desarrollar aplicaciones y diga en cuáles de
ella usaría intercambio de información con conexión y en cuales sin conexión. Justifique su respuesta.
-
-
Un programa que recibe como datos los valores de un conjunto de acciones transadas en la bolsa y los
manda cada 10 segundos a una serie de clientes conectados con él. Los clientes pueden estar bastante
lejos (no en la misma red)
Un programa que transmite una sesión de video a clientes en una misma red.
Un cleinte que sirve de servidor de comunicaciones para un chat entre varias personas que pueden estar
localizadas en lugares remotos.
Un programa que transmite e–mails de una máquina a otra.
Pregunta 3
Usted sabe que una CPU de un sistema de multiprocesos, como es UNIX, debe realizar lo que se conoce
como time sharing. Esto es, le asigna un tiempo de ejecución a cada proceso de modo que parezca al usuario
que todo corren al mismo tiempo. El programa que realiza el time sharing se llama scheduler y es en realidad
un servidor al cual los procesos, que son los clientes, le piden un servicio (tiempo de CPU para completar el
trabajo). Imagine ahora que los procesos que piden tiempo de CPU están en otroas computadoras esparcidas
por la red. ¿Qué beneficios y desventajas trae el hecho que el servidor guarde el estado de avance de todos los
procesos clientes?
Pregunta 4
¿Que diferencias y similitudes encuentra entre CORMA y RMI?
Pregunta 5
El profesor tiene cuenta corriente en un banco que ofrece hacer una serie de operaciones bancarias via WWW.
Por ejemplo, el prof. consulta su estado de cuenta. El estado se entrega tal como si fuera una cartola, o sea la
información es única para cada cliente. El profesor tiene serias sospechas que detrás hay algo que se vio en
una charla. ¿Qué puede ser?
Pregunta 6
Describa las ventajas y desventajas de usar un sistema como NetMeeting para implementar CSCW.
Pregunta 7
Podría hacer un paralelo entre usar RMI y JDBC? Piense en la situación de un Banco!
Problema de Programación 1
El siguiente par de programas cliente-servidor con datagramas hace que los clientes se atiendan en forma
iterativa. Modifique sólo el servidor de modo que pueda atender a los lientes en forma concurrente. No
necesita escribir todo el codigo de nuevo, solo la parte que falta!
Ç
EL SERVIDOR
import java.io.*;
import java.net.*;
import java.util.*;
public class QuoteServer {
protected DatagramSocket socket = null;
protected BufferedReader in = null;
protected boolean moreQuotes = true;
public QuoteServer (String name) throws IOException {
super(name);
socket = new DatagramSocket(4445);
in = new BufferedReader(new FileReader("UnArchivo.txt"));
}
public void main(String args[] ) throws Exception {
while (moreQuotes) {
byte[] buf = new byte[256];
DatagramPacket packet =
new DatagramPacket(buf, buf.length);
socket.receive(packet);
String dString = null;
if (in == null)
dString = new Date().toString();
else
dString = in.readLine();
buf = dString.getBytes();
InetAddress address = packet.getAddress();
int port = packet.getPort();
packet = new
DatagramPacket(buf, buf.length, address, port);
socket.send(packet);
moreQuotes = false;
}
socket.close();
}
public static void main(String[] args) throws IOException {
new QuoteServerThread().start();
}
}
EL CLIENTE
import java.io.*;
import java.net.*;
import java.util.*;
public class QuoteClient {
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.out.println("Usage: java QuoteClient <hostname>");
return;
}
DatagramSocket socket = new DatagramSocket();
byte[] buf = new byte[256];
InetAddress address = InetAddress.getByName(args[0]);
DatagramPacket packet =
new DatagramPacket(buf, buf.length, address, 4445);
socket.send(packet);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String received = new String(packet.getData(), 0);
System.out.println("Revibi : " + received);
socket.close();
}
}
Pregunta de programación 2
Reescriba sólo las partes que sean necesarias para converit los programas arriba vistos de modo que se
comuniquen via sockets.
Pregunta de programación 3
Describa qué debe hacer para que esto se pueda implementar usando RMI. Escriba sólo el archivo de interfaz.
Descargar