24
Construcción de Construcción de Sistemas Sistemas Colaborativos Colaborativos (Arquitectura y (Arquitectura y construcción) construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Embed Size (px)

Citation preview

Page 1: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de Construcción de Sistemas ColaborativosSistemas Colaborativos

(Arquitectura y construcción)(Arquitectura y construcción)

Universidad de ChileDepartamento de Ciencias de la Computación

Page 2: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Page 3: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Arquitectura:

• Colaboración a través de un workspace común• Comunicación entre usuarios• Percepción de datos y de usuarios (awareness)

• Protocolos de acceso a la información• Roles de los usuarios

Page 4: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Al momento de construir aplicaciones colaborativas, hay que abordar una serie de problemas: [Eide97]

SistemaColaborativo

Controlde

accesos

Administraciónde la

información

Controlde

Piso

Administraciónde

vistasAdministración

desesiones

Comunicaciónentre

usuarios

Page 5: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Administración de sesiones

• Los grupos interactúan en una sesión de trabajo

• Ejemplo: un grupo de usuarios editando un documento en un editor compartido

• Administrar sesiones implica:

- Iniciar una sesión

- Terminar una sesión

- Permitir el ingreso y salida de usuarios

- Listar de las distintas sesiones

Page 6: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Control de Accesos

• Ingreso al sistema

• Restricción de operaciones sobre ciertos usuarios.

• Uso de roles (rol: conjunto de responsabilidades dentro de la colaboración).

• Con los roles se controlan los derechos de acceso a los distintos objetos.

• Se debe considerar la granularidad de los objetos restringidos. Ejemplo: palabra, párrafo, sección, documento.

Page 7: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Comunicación entre usuarios

• El intercambio de mensajes entre usuarios es fundamental para el trabajo en grupo.

• La comunicación es quien da a los usuarios la sensación de estar trabajando en grupo.

• Según la aplicación, se debe proveer comunicación sincrónica, asincrónica o ambas.

Page 8: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Administración de la información

• A medida que trabajan, los miembros del grupo van produciendo objetos de información.

• Esta información se conoce como memoria grupal, la cual debe ser administrada (crear, modificar, borrar).

• Los SABD tienen un enfoque totalmente opuesto: hacen creer al usuario que él es el único usuario usando la BD.

• En los sistemas colaborativos, cuando dos usuarios acceden a un mismo objeto, debe hacerse notar, para fomentar la colaboración.

Arquitectura del groupwareArquitectura del groupware

Page 9: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Políticas de control de piso

• Se debe definir qué acción tomar cuando un objeto compartido es requerido por dos o más usuarios al mismo tiempo.

• Una misma aplicación puede utilizar políticas de control de piso diferentes.

S 1S 2S 3

S 4

Ejemplo: Uso de micrófono

– Política FIFO entre participantes

– Política con prioridades (moderador)

Page 10: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Arquitectura del groupwareArquitectura del groupware

Administración de vistas

• Los usuarios con distintos roles tienen vistas distintas de los datos de la memoria grupal.

• Ejemplo: Un alumno consulta sus notas sin derecho a modifi-carlas. En cambio, si un profesor hace la misma consulta, probablemente sí tiene derecho a modificarlas.

• El desarrollador debe preocuparse por administrar estas vistas.

Page 11: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Page 12: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Construcción deaplicacionescolaborativas

Sistemas Distribuidos

Comunicaciones

Interfaces Humano-Computador(interfaz humano-humano mediada por computador)

Inteligencia Artificial

Teoría Social

P r o b l e m a

Page 13: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Construcción deaplicacionescolaborativas

P r o b l e m a

Administración de sesiones

Control de accesos

Comunicación entre usuarios

Administración de la información

Políticas de control de piso

Administración de vistas

Page 14: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Evolución en la construcción de groupware

Primera generación: Sistemas Monolíticos

• La creación e integración de módulos era hecha íntegramente por el programador.

• Se usaba un único lenguaje de programación (por lo general C).

Segunda generación: Herramientas que extienden lenguajes

• Agregan componentes de colaboración a un lenguaje ya existente. Por ejemplo GroupKit para Tcl/Tk. Bibliotecas para C

• Facilita la programación.

• El programador está “atado” al lenguaje.

Page 15: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Tercera generación: Plataformas orientadas a objetos

• Plataformas o frameworks compuestos por clases de objetos que encapsulan algunas funcionalidades propias de aplicaciones colaborativas.

• Permite la reutilización de código.

Cuarta generación: Plataformas orientadas a componentes• Aprovechan los avances en las áreas de objetos distribuidos

(CORBA, DCOM, RMI) y la programación por componentes (Visual C++, Visual Basic, JavaBeans).

• Componentes independientes del lenguaje.

• Entorno de programación visual.

Page 16: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Sistemas “monolíticos”, desarrollados enun único lenguaje (generalmente C)

Apoyo de herramientas que “extienden”algún lenguaje y proveen meyor funcionalidad

Plataformas orientadas a objetos

Objetos distribuidos y componentes

Primera generación

Segunda Generación

Tercera Generación

Cuarta Generación

Page 17: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Lenguajes

Tcl/TkC

C++PascalJava

···

Groupkit

NCSA Habanero JCE (Java Collaborative Environment) JETS (Java-Enabled Telecollaboration System) JSDT (Java Shared Data Toolkit)

···

Lenguajes para construir aplicaciones colaborativas

Page 18: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Frameworks

NSTP(Notification ServiceTransfer Protocol)

GroCo(Group Communications)

MetaWeb

things, places

screen, EMS, message, event

locations, sessions, users

Objetos

Frameworks para construir aplicaciones colaborativas

Page 19: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Aplicaciones colaborativas en la Web

+

CGI’sappletsservletsportletsobletsJAMMJ2EE.NET · · ·

HTML Aplicación WebColaborativa

Page 20: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Construcción de groupwareConstrucción de groupware

Capas de Aplicaciones Colaborativas

capa de vistas

capa de modelo

Interfaz

Contextocompartido Datos de la aplicación (objetos)

Presentación de datos y controlde la interacción del usuario

Groupware: “Sistemas basados en computadoras que apoyan a un grupo de personas quetrabajan en una tarea o meta común y que provee una interfaz a un contexto compartido”

(Ellis, Gibbs and Rein, 1991)

Comunicación

Page 21: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Comunicación y sincronizaciónComunicación y sincronización

Page 22: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Comunicación y sincronizaciónComunicación y sincronización

Las necesidades de comunicación entre programas ...

• Síncrono o asíncrono.

• Orientado a la comunicación o al producto.

... definirán cuál es la arquitectura más apropiada ...

• replicada

• semi replicada

• centralizada

Page 23: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Comunicación y sincronizaciónComunicación y sincronización

... Y con esto la implementación de las comunicaciones

• par a par

• con servidor central

Page 24: Construcción de Sistemas Colaborativos (Arquitectura y construcción) Universidad de Chile Departamento de Ciencias de la Computación

Comunicación y sincronizaciónComunicación y sincronización

... Y con esto la implementación de las comunicaciones

• par a par

• con servidor central

... definirán cuál es la arquitectura más apropiada ...

• replicada

• semi replicada

• centralizada