Editores Colaborativos (Keepers)

Documentos relacionados
Editores Colaborativos (Keepers)

Classificação de Aplicações de Groupware

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Aula 03. Evandro Deliberal

Projeto de Sistemas Distribuídos. Considerações

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Replicação. Cleide Luzia Bonfim Possamai 03/05/2018

6 Conclusão Contribuições da Dissertação

Análise e projeto de sistemas

Modelagem Temporal com UML

ANÁLISE DE SISTEMAS. Diagrama de atividades. por. Antônio Maurício Pitangueira

Projeto de Sistemas Distribuídos. Considerações

Sistemas Distribuídos

Programação Distribuída. Metas de um Sistema Distribuído

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Aula 04. Evandro Deliberal

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Sistemas Multi-agentes

Dificuldades do modelo wiki para a implementação de um ambiente colaborativo de aprendizagem. Marcelo A. Rauh Schmitt

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Distribuídos

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Modelagem Temporal com UML

Comunicação entre Processos

Sistemas Distribuídos

Sistemas Distribuídos Aula 16

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

2 Fundamentos Replicação de Dados

Sistemas Distribuídos Aula 15

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência.

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

Sistemas de Gerência de Bancos de Dados. 5 - Controle de Concorrência Tópicos Adicionais

3 Circuitos de objetos e simulação

Arquitetura de Computadores. Processamento Paralelo

Engenharia de Software. Prof. Raquel Silveira

Sistemas Distribuídos. Capítulo 7 - Aula 16

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Características de Sistemas Distribuídos

08/08/2016. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

Atividades e Recursos. Escola Médica Virtual

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos Aula 3

MultiPrInt: um modelo de procedência para integração de dados com suporte para um ambiente multiusuário

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Características de Sistemas Distribuídos

7.1 Trabalhos Relacionados

Conceitos de Linguagens de Programação

Modelo de Programação Paralela

Sistemas Distribuídos

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES

Análise de Interações Sociais como Regras se-então na Web Social

SISTEMAS OPERACIONAIS

Sistemas Multiprogramáveis/Multitarefa

AULA 13 PROCEDIMENTOS. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Curso de Sistemas Distribuídos

Visão do Usuário da DSM

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

Reitoria do Instituto Federal de Goiás Av. Assis Chateaubriand, nº 1.658, Setor Oeste, Goiânia-GO, CEP: Fone: (62)

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Aula 05. Figuras Interrupção

Sistemas da Informação. Banco de Dados I. Edson Thizon

Desenvolvimento de Aplicações Distribuídas

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Processos ca 3 pítulo

Ferramentas da Moodle: Atividades e Recursos

Computação Distribuída

Sistemas Distribuídos

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

3 Trabalhos Relacionados

Programação Concorrente

Construtores de Sicronização em OpenMP

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Aplicações de Escritório Electrónico

Sistemas Distribuídos

Revisão e Introdução 23/05/12. Controle Distribuído da Concorrência. Revisão de Conceitos. Revisão de Conceitos. Transação Operação

Arranjo de Processadores

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio

Segundo trabalho prático de implementação Sistema de reserva de assentos

Engenharia de Software. Projeto de Arquitetura

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

O Modelo Síncrono BSP para Computação Paralela

Parte I Multiprocessamento

Manual de utilização ANBIMA Drive Serviço de armazenamento e sincronização de arquivos

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Proposta. Sistemas de Gerência de Cursos. Sistemas Hipermídia Adaptativos

Um Ambiente para Diagnóstico Cooperativo de Imagens Médicas

Communicators. Agenda. Definição. Chats

Aluísio Augusto Silva Gonçalves 17 de maio de 2018

Fase de Concepção. Levantamento e Organização de Requisitos

Sistemas Distribuídos

Tipos de Sistemas Operacionais

Alternativas para a Interoperabilidade entre Sistemas de Informação Universitários

Transcrição:

Agenda Editores Colaborativos (Keepers) Cleidson de Souza cdesouza@ufpa.br Faculdade de Computação Universidade Federal do Pará Definição Exemplos Exemplos de Artefatos e Sistemas Formas de Interação Editores Síncronos GROVE e dopt Editores Assíncronos Anotações Definição Keepers relacionam-se a aplicações onde a interação do grupo diz respeito a acessos a um objeto compartilhado. Frequentemente, o objetivo central é a construção de um único artefato. Exemplos: Sistemas para revisão de documentos: uma única pessoa escreve um documento e repassa para outros revisarem o mesmo. Editores concorrentes: onde mais de um usuário pode acessar o mesmo documento ao mesmo tempo. Definição Um keeper deve proporcionar: Controle de acesso aos documentos: quem pode acessar o documento? Controle de alterações de cada usuário; Controle de versões do artefato; Controle de concorrência (acesso simultâneo ao documento): o que acontece com 2 alterações contraditórias? Propagação da concorrência; etc.

Exemplos Word for Windows, editor de texto, com revisões e comentários; Co-Word GROVE: editor de textos síncrono sem nenhum mecanismo de lock. QuestMap, Xnetwork e ICARO: editores de diagramas colaborativos; SEPIA: editor de hiper-textos; PREP; Google Docs; Formas de Interação Síncronos: permitem que um grupo de pessoas edite o artefato ao mesmo tempo; Assíncronos: neste caso, somente um usuário pode editar o artefato a cada momento; Semi-síncrono: as duas estratégias podem ser utilizadas. Assim, o keeper deve fornecer apoio às duas formas de interação, além de permitir uma transição entre elas. Interação Síncrona Normalmente, o documento é dividido em segmentos lógicos e o editor gerencia a sincronização e a consistência do documento; Deve-se utilizar um protocolo para manter a consistência do documento. Isto é necessário, uma vez que a edição simultânea do documento por vários usuários pode ser conflitante; Existem, basicamente, três abordagens para resolver este problema: Forma de Interação Síncrona Um mecanismo de locking explícito, onde o usuário precisa travar o objeto antes de editá-lo; Um mecanismo de locking implicíto, onde o sistema trava automaticamente o objeto que o usuário está editando; e Sem mecanismos de locking. Neste caso, o controle da consistência do documento é feito através de um algoritmo para ordenação dos eventos de edição.

GROVE GROVE [Ellis91] é um editor de textos síncrono projetado para ser utilizado por um grupo de usuários para a edição de outline (tabela de conteúdo). Não utiliza mecanismo de locking: cada usuário pode ver e editar livremente qualquer parte do documento. Dois usuários podem editar a mesma palavra de um documento ao mesmo tempo. GROVE Ele utiliza uma arquitetura que possui uma instância do editor e uma cópia replicada do documento na estação de cada usuário. O controle de concorrência é obtido através da adoção de uma técnica de transformação de operações, que permite a resolução automática de conflitos. O algoritmo que implementa esta técnica é chamado dopt. Quando um usuário realiza alguma operação, ela é executada imediatamente na sua cópia local; Após a execução local, ela é distribuída para outras cópias, de acordo com um vetor de estados que controla e indica as operações mais recentemente processadas em cada réplica do documento; Cada instância do GROVE mantém um vetor de estados para sua réplica; Antes de realizar a operação que chegou de outra instância, uma comparação é feita entre os dois vetores de estado: se eles forem iguais, a operação se realiza, caso contrário, ocorre uma transformação automática dos dados para ficarem consistentes, antes da operação ser processada.

XYZ Del(2) XZ XYZ Ins(A,1) AXYZ T E M Algumas Observações: Quando cruzamentos são detectados, as operações devem ser transformadas; Um mecanismo de prioridade é necessário em certos casos: AXZ Del(2) --> Del(3) AXZ P O Ex: Ins(A,1) e Ins(B,1)? Este algoritmo é diferentes dos utilizados em Banco de Dados, pois certas operações podem ser descartadas, o que não ocorre em BD. Ex: del(2) e del(2). Apesar da total liberdade deste modelo, os autores relatam um aumento de eficiência do processo de escrita cooperativa e relatam que os conflitos são surpreendentemente infreqüentes; Segundo seus autores, isto ocorre porque após um determinado período de aprendizado do editor, os próprios usuários se encarregam de estabelecer protocolos sociais para a cooperação. O dopt foi o primeiro algoritmo de transformação de operações; Anos mais tarde, um erro neste algoritmo foi detectado por outros autores; Existem diversos pesquisadores interessados nesta área, Diversos workshops sobre o assunto. Em 2007: http://iwces2007.loria.fr/wiki/pmwiki.php CoWord e CoPowerPoint;

CoWord e CoPowerPoint Interação Assíncrona Neste caso, a cooperação ocorre através de mecanismos que permitam a coleta de informações sobre as atividades executadas por outros usuários. Este tipo de informação ajuda a coordenação das atividades dos usuários, evitando o trabalho redundante ou conflitante. Assim, um usuário terá, a sua disposição, informações sobre as operações que foram efetuadas pelos outros usuários desde a última vez em que ele acessou o documento. http://cooffice.ntu.edu.sg/coword/ Interação Assíncrona O controle de alterações pode ser facilmente implementado através de timestamps, ou seja, o registro do momento de criação e/ou alteração dos objetos. Um outro mecanismo que pode ser utilizado são anotações. Anotações As anotações são uma forma de comunicar idéias, sugerir modificações, levantar questões, etc, sobre um documento; Elas servem como um mecanismo de comunicação entre os usuários; Um usuário faz a leitura do documento e insere suas anotações junto a trechos do mesmo que serão lidas posteriormente por outros usuários.

Tipos de Anotações: Comentários Comentários, que podem ser textuais ou vocais e estão associados a trechos do documento; Comentários são texto sobre o texto original. Geralmente, eles descrevem opiniões ou idéias de seus autores sobre os elementos anotados. Este parágrafo não está claro ; Por favor, verifique esta frase ; Tipos de Anotações: Substituições São segmentos de texto que podem substituir o texto original; São extremamente importantes em editores colaborativos, pois os usuários ficam insatisfeitos se não podem propor alterações no documento [NKCM90]; Neurwith [NKCM90] também afirma que, em muitos casos, a reescrita é muito mais eficiente que a tentativa de diagnosticar as deficiências do texto original; Anotações

Anotações Ao se inserir uma anotação, deve-se registrar o autor da mesma. No entanto, é interessante também permitir anotações anônimas, o que permite que problemas como, inibição, pressões sociais ou hierárquicas, entre outros, sejam resolvidos; Anotações Anotações estão associadas a determinados trechos de documentos, como por exemplo, linhas, parágrafos, seções, etc, dependendo da implementação do editor. Por exemplo, o PREP [NKCM90] associa anotações à paragráfos, enquanto que o SHADOW associa anotações a trechos de texto. Outros Sistemas: PREP, ForComments, SHADOW, e Xnetwork; Wikis