Disciplina: Sistemas Distribuídos
CoWS:
Uma Abordagem de Escrita Colaborativa
Multi-Síncrona usando
Espaços de Tuplas para Ambientes Móveis
Berthonio Lucena ([email protected])
Flávio Rocha ([email protected])
Vaninha Vieira ([email protected])
Recife – PE – Brasil
Fevereiro - 2005
Introdução
Introdução
 Avanços tecnológicos proporcionam ferramentas que modificam o
modo como as pessoas trabalham em equipe ou colaborativamente.
 Intensas pesquisas em CSCW (Computer Supported Cooperative Work)
 O processo mais estudado de autoria colaborativa é o de produção
de textos.
 Escrever em equipe ou colaborativamente nunca é fácil !
 Aréa de pesquisa chamada Escrita Colaborativa Mediada por
Computador (Computer Supported Collaborative Writing)
 Muitas teorias e ferramentas de escrita colaborativa foram criadas para
auxiliar a escrita colaborativa.
Introdução
Problema:
O desenvolvimento de ferramentas colaborativas voltadas para
ambientes distribuídos e/ou móveis é bastante complexo!
 Sistemas Distribuídos apresentam forte acoplamento
 Sistemas móveis apresentam mudanças constantes na
disponibilidade de recursos (dados e elementos computacionais).
Uma Possível Solução:
Pode-se usar ferramentas (middlewares) baseadas em Espaços de
Tuplas !
 Processos distintos usam o espaço como meio de comunicação,
coordenação e sincronização.
Introdução
 Espaço de tuplas compartilhado possibilita desenvolvimento de
serviços necessários à escrita colaborativa
 Coordenação das tarefas, percepção ,
Suporte à comunicação, Memória do Grupo
 Programador concentra-se na aplicação em vez dos detalhes
de comunicação do ambiente (Diminui a complexidade)
 Baixo acoplamento (Desacoplamento Espacial e Temporal)
e modelo de programação simples (escrita e leitura).
 Linda foi o primeiro espaço de tuplas implementado e foi baseado no
modelo de espaço de tuplas original.
Problema:
Linda não foi projetado para suportar ambientes móveis e
sim ambientes distribuídos !
Introdução
Solução:
 Adaptar Linda para ambientes móveis!
 Surgiu o Lime (Linda in a Mobile Environment)
 Lime é um middleware projetado para possibilitar o desenvolvimento
rápido de aplicações para ambientes móveis.
 Em ambiente móveis, mudanças na conectividade são normais.
 O engajamento ou desengajamento pode ser realizado de duas
formas: sinalização ou distância segura.
 O Lime possibitou o desenvolvimento do CoWS (Collaborative Writing
through Shared Spaces), ferramenta de edição de texto colaborativa.
Introdução
 Modelo de Coordenação do Lime
 Engloba mobilidade física (hosts) e mobilidade lógica (agentes).
 Coordenação através de um espaço de tuplas transiente
• A mobilidade impede a existência de um espaço de tuplas
persistente e global
Host Móvel
Agentes Móveis
Migra
Espaço de Tuplas do Host
Espaço de Tuplas do Agente
Espaço de Tuplas Federado
CoWS
CoWS
 CoWS é um editor de texto colaborativo multi-síncrono voltado para ambientes
móveis.
 Possibilita trabalho simultâneo/online (síncrono) ou desconectado/offline
(assíncrono).
 Características Gerais:
 O CoWS foi implementado em Java.
 O documento compartilhado em CoWS é um texto composto por
parágrafos (granularidade escolhida).
 Cada parágrafo é representado e armazenado como uma tupla em um
espaço de tuplas compartilhado temporariamente.
CoWS
 Arquitetura totalmente descentralizada.
 O texto global está armazenado em diversos hosts e agentes.
 Cada agente detém seu espaço de tuplas local, onde suas tuplas
são armazenadas.
 Todos os parágrafos (tuplas) do espaço de tuplas federado são
exibidos.
 Perspectiva fracamente consistente com o estado global do
texto.
 Percepção (Reação).
 Lime estende o espaço de tuplas de Linda com a noção de reação.
 Em ambientes móveis reagir a mudanças é fundamental.
 Reação é a execução de um método quando uma tupla
correspondente a um template é encontrada no espaço.
CoWS
 Controle de Concorrência:
 Quando um parágrafo é criado ele é inserido no espaço de tuplas local
do agente que o criou.
• Agente passa a ser o dono do parágrafo e detém o controle do
mesmo.
• Quando é feita uma conexão ao espaço de tuplas federado os
espaços de tuplas dos demais agentes passam a enxergar esse
parágrafo, sem no entanto, poder modificá-lo.
• Caso um outro usuário deseje modificar ou remover o parágrafo
bloqueado, ele deverá primeiro selecionar o parágrafo.
CoWS
 Consistência.
 A obtenção de um texto final e global produzido de forma assíncrona
por diferentes atores não é fácil (garantia de consistência)?
 Propagação de alterações realizadas no texto quando a
conexão é restabelecida.
 Manutenção da mesma estrutura do texto nos diversos
espaços de trabalho de todos os autores após a reconexão.
Solução:
Elaboração de um algoritmo de ordenação das tuplas baseado em
uma estrutura de dados que denominamos lista não encadeada !
 Cada elemento da lista tem a posição do elemento anterior e
do próximo.
 O elementos anterior e próximo não necessariamente são os
vizinhos imediatos do elemento na lista.
Demonstração
Conclusões
Conclusões
 Desenvolvimento de Ferramentas de edição de texto colaborativa não é
trivial.
 Middleware baseado no modelo de Espaço de Tuplas pode ser utilizado
para reduzir a complexidade de desenvolvimento dessas ferramentas.
 O modelo de coordenação do Linda é interessante mas não suporta
ambientes móveis.
 Lime adaptou o Linda para ambientes móveis.
 Desenvolvimento do CoWS como forma de provar que o modelo de
coordenação do Lime é ideal para o desenvolvimento de Ferramentas de
Edição de Texto Colaborativas que suportem ambientes móveis.
CoWS
(http://www.cin.ufpe.br/~vvs/cows)
Equipe de Desenvolvimento:
Berthonio Lucena ([email protected])
Flávio Rocha ([email protected])
Vaninha Vieira ([email protected])
Download

CoWS