La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MatchMaker A Framework to Support Collaborative Java Applications Jens Hardings P.

Presentaciones similares


Presentación del tema: "MatchMaker A Framework to Support Collaborative Java Applications Jens Hardings P."— Transcripción de la presentación:

1 MatchMaker A Framework to Support Collaborative Java Applications Jens Hardings P.

2 Introducción razones para un “Groupware Toolkit”: número de computadores conectados a redes en educación es creciente. ayudar a desarollaradores a extender sus aplicaciones stand-alone hacia aplicaciones colaborativas basado en RMI patrón Model-View-Controler permite agregar colaboración fácilmente a aplicaciones stand-alone desarrollado en paralelo a herramientas de colaboración (CoolModes, FreeStyler, Noteit) MatchMaker combina dos paradigmas para desarrollo de software colaborativo: arquitectura replicada servidor central

3 Se comparte el modelo que maneja cada aplicación Cada participante tiene una copia completa del modelo

4 MatchMaker: Framework servidor centralizado mantiene los modelos compartidos en árboles de sincronización cada cliente registra listeners para sub-árboles creación de objetos cambios a objetos eliminación de objetos ejecución de acciones sobre objetos cada cliente puede modificar el árbol de acuerdo con las acciones del usuario el cliente elige si quiere recibir o no el evento que envía se permite sincronizar solo una parte del árbol

5 SyncListener MatchMaker Server MmClient 1 MmClient 2 MmClient 3 java.io.Serializable public interface SyncListener extends java.util.EventListener { public void objectChanged(SyncEvent event) public void objectDeleted(SyncEvent event) public void objectChanged(SyncEvent event) public void actionExecuted(SyncActionEvent event) }

6 Client SyncLabel[] getSessions() throws NotBoundException, RemoteException; SyncLabel joinSession(SyncLabel session) throws RemoteException, UnknownHostException; SyncLabel createSession(SyncLabel session) throws RemoteException, UnknownHostException; void leaveSession() throws RemoteException; void destroySession(SyncLabel session) throws RemoteException; SyncTree readSyncTree(SyncLabel label); void addSyncListener(SyncLabel label,SyncListener listener); void removeSyncListener(SyncLabel label,SyncListener listener); void changeObject(SyncLabel label, Serializable object, boolean sendToAll); void deleteObject(SyncLabel label, boolean sendToAll); void execAction(SyncLabel label, String action, Serializable argument,boolean sendToAll);

7 Árbol de Sincronización Root Workspace 1Workspace 2 DrawAreaGraph DrawArea

8 Árbol de Sincronización Root Workspace 1Workspace 2 DrawAreaGraph DrawArea

9 Árbol de Sincronización Root Workspace 1Workspace 2 DrawAreaGraph DrawArea

10 Logging logging client es un cliente adicional con un listener en la raíz del árbol de sincronización acciones pueden ser agrupadas (atomicity) logfiles son escritos en XML: si el objeto permite ser serializado en XML, se agrega en XML. De lo contrario, se escribe como byte array usos de logging client: replay análisis posterior del trabajo colaborativo

11 Replay ● logfiles son parseados ● cliente MatchMaker adicional que re-inyecta las acciones al servidor ● interfaz de usuario para administrar la repetición de sesiones ● dos modos de repetición: ● por tiempo (incluyendo repetición rápida) ● paso a paso, usando el mecanismo de agrupación del cliente de logging

12 Undo / Redo manejador de Undo/Redo es un cliente adicional conectado a la raíz del árbol de sincronización permite undo/redo en toda la sesión diferentes modos de operación de undo/redo: última acción últimas n acciones todas las acciones dentro de los n últimos segundos el sistema mantiene una historia de acciones dehechas que permite rehacerlas

13 Persistencia persistencia permite: asegurar la permanencia de los datos durante la ejecución permitir reinicio del servidor sin perder datos Persistencia: thread adicional que almacena el árbol de sincronización cada n segundos se guardan los datos de manera independiente del logging se puede simular persistencia a partir de los logfiles si el servidor no fue iniciado en modo persistente

14 Arquitectura ROOT Workspace 1Workspace 2Graph DrawArea Graph DrawArea Logfiles Logging Client Undo/Redo Logging Client Persistence Thread

15 Trabajo Futuro modelo transaccional y extensión del modelo de persistencia comunicación entre servidores mediante SOAP comparar diferentes enfoques para seguridad de datos implementación de criptografía asimétrica para asegurar la comunicación de los datos


Descargar ppt "MatchMaker A Framework to Support Collaborative Java Applications Jens Hardings P."

Presentaciones similares


Anuncios Google