controle de concorrência e consistência otimista – operational transformation
DESCRIPTION
Controle de Concorrência e Consistência Otimista – Operational Transformation. Lucas Augusto Scotta Merlo [email protected]. Agenda. Introdução Resolução de conflitos de forma otimista OT Modelos de consistência Estrutura de um sistema de OT Funções em OT - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/1.jpg)
Controle de Concorrência e Consistência Otimista –
Operational Transformation
Lucas Augusto Scotta [email protected]
![Page 2: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/2.jpg)
2
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 3: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/3.jpg)
3
Introdução Autoria distribuída
Porque? Pessoas com um interesse em comum compartilhando
um documento. Agilidade e comodidade. Ganho da produção.
Problemas Necessidade de manter o documento atualizado e
consistente. Permitindo colaboração (no lock). Minimizando tempo de resposta e visualizações não
atualizadas.
![Page 4: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/4.jpg)
4
Introdução(cont.) Controle de Concorrência e Consistência:
Pessimista. supõe que sempre ocorre conflito entre alterações;
bloqueio (locking) Otimista.
Supõe que não haverão muitos conflitos, mas se houver, uma forma de se recuperar será executada.
Operational Transformation.
![Page 5: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/5.jpg)
5
Introdução (cont.) Comumente, a edição textual colaborativa
usa uma estrutura linear, com as seguintes operações: insert(p; c) - inserts character c at position p; delete(p) - deletes the character at position p;
Algumas definições para o melhor entendimento das abordagens para manter consistência:Relação de
ordem causal.
O1 -> O2
Operações concorrentes.
O1 || O2
![Page 6: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/6.jpg)
6
Introdução (cont.) Há dois modos básicos para o merge das
informações. Baseado em estado (todo o documento deverá
ser trocado). Ex. CVS e SVN.
Onde o usuário é o auditor de conflitos. Baseado em operações (msg com operações são
trocadas). Melhor para resolver conflitos. Histórico das operações.
![Page 7: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/7.jpg)
7
Introdução (cont.) Problemas genéricos de inconsistência:
divergência, violação de causalidade e, violação de intenção.
![Page 8: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/8.jpg)
8
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 9: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/9.jpg)
9
Protocolos sociais para mediação Segue a ideia que as pessoas conversam
entre si (chat, vídeo) para resolver os problemas.
Todos podem editar qualquer parte do objeto compartilhado.
Os 3 problemas citados acima, não são tratados por essa forma. Conflitos são descobertos, mas não tratados.
![Page 10: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/10.jpg)
10
Optimistic locking Ao se solicitar o bloqueio inicia-se a edição.
Se negada, volta ao estado inicial. O que pode confundir o usuário.
Se permitido, continua a edição. Alto custo para implementação e possível
confusão devido a negação de aquisição dos locks.
![Page 11: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/11.jpg)
11
Serialisation Executa a ordem das operações de forma
serial. Isto é, uma operação só pode ser executada
somente após todas operações precedentes a ela tiverem sido executadas.
Exemplo: Supondo que haja três operações que possuem ordem
causal, O1, O2 e O3. Se a ordem de operação é: O2->O1->O3, esta técnica
garante que nos sites participantes essa ordem não será alterada.
![Page 12: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/12.jpg)
12
Multi-versioning Abordagem que tenta executar todos os
efeitos das operações de um objeto em comum em formas de versões.
Preservando a intenção do usuário e violação de causalidade. SVN, CVS,... .
![Page 13: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/13.jpg)
13
Multi-versioning (cont.) A desvantagem dessa técnica é que não há
correlação entre as diferentes versões do mesmo objeto e do objeto base. Não ficando claro no fim da edição qual é a
versão correta. Gerando conflitos no final da edição se mais de
um usuário tentar resolvê-los.
![Page 14: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/14.jpg)
14
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 15: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/15.jpg)
15
Operational transformation (OT) Ellis et al, em 1989 propõem a utilização de
uma técnica diferente em seu sistema, GROVE (GRoup Outline Viewing Edit): OT. Sub-área de pesquisa há mais de 2 décadas no
contexto de edição em grupo. Mecanismo que mantém consistente as
cópias de objetos de uma forma otimista. Usuário alteram sua cópia localmente e recebem
/enviam alterações que devem ser transformadas e executadas nas cópias remotas.
![Page 16: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/16.jpg)
16
Operational transformation (cont.) Abordagem mais apropriada para
arquitetura de sistema de edição colaborativa na qual a consistência das cópias compartilhada é algo que deve apresentar um bom tempo de resposta. A operação é executada imediatamente
localmente e depois são geradas as alterações que serão enviadas para as cópias remotas, onde serão transformadas e aplicadas.
Transformações são executadas de forma que a intenção do usuário seja preservada e ao final que as cópias convirjam.
![Page 17: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/17.jpg)
17
Operational Transformation (cont.) Sua forma não bloqueante, faz que o tempo
de resposta seja quase o mesmo da latência de transmissão entre redes.
Seu uso é particularmente uma ótima escolha para autoria colaborativa na Web e no contexto da Internet.
![Page 18: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/18.jpg)
18
Operational transformation (cont.)
![Page 19: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/19.jpg)
19
Operational transformation (cont.)
![Page 20: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/20.jpg)
20
Operational transformation (cont.) Abordagem baseada em operações. Para capturar as relações causais entre as
operações, foi criado um vetor baseado no esquema timestamping, chamado de vetor de estados (SV).
![Page 21: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/21.jpg)
21
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 22: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/22.jpg)
22
Modelos de consistência CC: Propriedade de Precedência (Causalidade):
assegura a execução das operações dependentes durante o processo de colaboração A relação causal entre as duas operações é
definida como relação de Lamport "happened-before".
Convergência: assegura que ao final da edição compartilhada os documentos são idênticos em todos os sites. O state-vector é usado para preservar a propriedade de precedência.
![Page 23: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/23.jpg)
23
Modelos de consistência CCI: Proposto como um framework mais geral,
onde as seguintes propriedades devem ser seguidas: Preservação de Causalidade: mesmo do CC Convergência: mesmo do CC. Preservação de Intenção: assegura que o efeito
da execução da operação em qualquer site seja o mesmo.
![Page 24: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/24.jpg)
24
Modelos de consistência CSM: Após estudos, foi formalizado um modelo
mais conciso que o modelo CCI: Causalidade: mesmo que CC. Single-operation effects: o efeito de executar
qualquer operação em qualquer estado de execução, atinge o mesmo efeito no seu estado de geração.
Multi-operation effects: a relação dos efeitos de quaisquer duas operações são mantidas depois que ambas são executados em quaisquer estados .
![Page 25: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/25.jpg)
25
Modelos de consistência CA CSM, requer que a ordem total dos objetos
envolvidos sejam especificadas. Essa ordem deve ser mantida nas funções de
transformação e nos procedimentos, o que aumenta a complexidade de tempo e espaço do algoritmo.
CA é baseado na Teoria de Admissibilidade.
![Page 26: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/26.jpg)
26
Modelos de consistência CA (cont.) Duas condições devem ser satisfeitas:
Causalidade: a mesma do CC. Admissibilidade: A invocação de cada operação é
admissível no seu estado de execução, ou seja, cada invocação não deve violar qualquer relação com os efeitos (ordenação de objeto) que tenham sido estabelecido por invocações anteriores.
![Page 27: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/27.jpg)
27
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 28: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/28.jpg)
28
Estrutura de um sistema de OT
![Page 29: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/29.jpg)
29
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 30: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/30.jpg)
30
Funções em OT Inclusion Transformation: IT(Oa, Ob) ou
T(op1,op2), a qual transforma uma operação Oa contrastando-a há uma outra operação Ob, de tal forma que o impacto do Ob é efetivamente incluído em Oa.
Exclusion Transformation ET(Oa, Ob) ou T− 1(op1,op2), a qual transforma uma operação
Oa contrastando-a há uma outra operação Ob, de tal forma que o impacto do Ob é efetivamente excluído de Oa.
![Page 31: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/31.jpg)
31
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 32: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/32.jpg)
32
Propriedades de Transformação Propriedade de Convergência
CP1/TP1: para cada par de operações concorrentes op1 e op2, definidas no mesmo estado(contexto), a função de transformação T, satisfaz as propriedades TP1 sse:
onde denota a sequencia de operações contendo opi seguido por opj, e onde denota a equivalência das duas sequencias de operações.
![Page 33: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/33.jpg)
33
Propriedades de Transformação (cont.) Pré-requisito:
CP1/TP1 é necessária apenas se o sistema OT permitir que qualquer duas operações sejam executadas em ordens diferentes.
![Page 34: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/34.jpg)
34
Propriedades de Transformação (cont.) CP2/TP2: Para cada três operações
concorrentes, op1, op2 e op3, definidas no mesmo estado do documento, a função de transformação T satisfaz as propriedades de CP2/TP2 sse:
![Page 35: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/35.jpg)
35
Propriedades de Transformação (cont.) CP2/TP2 estabelece a igualdade entre duas
operações transformadas no que diz respeito a duas sequencias equivalentes de operações: a transformação de op3 contrastando a sequencia de operação op2 seguido por T (op1, op2) devem obter a mesma operação como a transformação de op3 contrastando a sequencia formada por op1 e T(op2, op1).
![Page 36: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/36.jpg)
36
Propriedades de Transformação (cont.) Pré-requisitos:
CP2/TP2 é requerido se o sistema de OT permite que duas operações op1 e op2 sejam transformadas (IT) em dois estados diferentes do documento ou contexto.
![Page 37: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/37.jpg)
37
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 38: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/38.jpg)
38
dOPT (distribtuted Operational Transformation) Cada site mantém um history buffer (HB)
com todas operações que já foram executadas no site. Quando uma operação remota é recebida e não
é causally ready (interfere em outra), ela é enfileirada no HB. No caso de ser, ela é sequencialmente transformada em operações concorrentes no HB.
Entretanto este algoritmo, não funciona bem quando transformações têm de ser executadas entre duas operações que não são do mesmo contexto.
![Page 39: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/39.jpg)
39
dOPT (cont.) Preservação de causalidade é obtida pelo
uso de vetores de estado. Convergência não é conquistada. Como na maioria das abordagem de OT,
preservação de intenção não é explicitamente definida, mas é incluída nas funções de transformação.
![Page 40: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/40.jpg)
40
GOT (Generic Operation Transformation)
Estende a abordagem dOPT. A ordenação causal determina uma ordem
somente entre as operações precedentes, a ordem da execução de operações concorrentes são arbitrárias.
A ordenação entre as operações é usada para assegurar a convergência de operações concorrentes.
![Page 41: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/41.jpg)
41
GOT (cont.) A ordem total entre as operações é definida
como a soma dos elementos do vetor de estados (SV).
Por exemplo, a O1 precede em ordem total a operação O2 se a soma dos elementos do vetor de estados associado com O1 é menor que a soma do vetor de estados associados a O2, ou as somas serem iguais, mas o identificadores do site onde O1 foi gerado é menor que o identificador onde a operação O2 foi gerada.
![Page 42: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/42.jpg)
42
GOT (cont.) Baseado no ordenamento total entre as
operações, esquemas de undo/-do/redo foram definidos.
Os dois tipos de transformação usados, IT e ET são reversíveis.
![Page 43: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/43.jpg)
43
GOT (cont.) Preservação de causalidade é obtida pelo
uso de vetores de estado. Convergência é alcançada a partir da
ordenação causal. Como na maioria das abordagem de OT,
preservação de intenção não é explicitamente definida, mas é incluída nas funções de transformação.
![Page 44: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/44.jpg)
44
GOT(O) Versão otimizada do GOT. Aplica o mesmo algoritmo usado em SOCT2.
Quando uma operação remota é recebida, e esta precisa ser integrada ao HB, este é reordenado de tal maneira que as operações que precedem a operação remota fiquem situadas no HB antes das operações que são concorrentes dessas operações remotas.
Depois disso, as operações remotas devem ser transformadas de encontro as operações concorrentes a ela.
![Page 45: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/45.jpg)
45
GOT(O) (cont.) Preservação de causalidade é obtida pelo
uso de vetores de estado. Convergência: Condition C1 e Condition C2 Preservação de intenção Inclusion
Transformation e Exclusion Transformation
![Page 46: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/46.jpg)
46
SOCT2 Faz parte da classe de algoritmos que
seguem a linha do dOPT. Seja s o estado do objeto e O uma
operação, definimos como s.O o novo estado após a execução de O em s.
A intenção que é realizada pelo operação O em s, é denotada como: intention(O, s).
![Page 47: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/47.jpg)
47
SOCT2 (cont.) A função de transformação que modifica O2
contrastando-a com outra operação é indicada como: O1 : O2
O1, a qual é definida sobre o estado resultante da execução de O1 e concretizando a intenção como em O2.
![Page 48: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/48.jpg)
48
SOCT2 (cont.) Condição C1
Garante que o estado resultante após a transformação de duas operações concorrentes não dependem da ordem na qual as operações são executadas.
Tomando O1 e O2 duas operações concorrentes definidas em um mesmo estado, a transposição “forward” (IT) verifica C1, sse:
![Page 49: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/49.jpg)
49
SOCT2 (cont.) Condição C2
Visa tornar a transformação de uma operação com uma sequencia de operações independente da ordem das operações em sequencia.
Dado O1, O2 e O3, a transposição “forward” verifica C2, sse:
![Page 50: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/50.jpg)
50
SOCT2 (cont.) Site1, O1 ->O2 Site2, O3 é gerado concorrentemente. No site2, quando O1 chega, é contrastada com O3, porque O1 e O3 tem o mesmo estado de geração, sendo o resultado Mas, quando O2 chega no Site2, ela não pode ser contrastada usando transpose_fd com O3,como feito com O2 e O3 pois não possui o mesmo estado de geração. O estado geração de O2 inclui a execução deoperação O1, O3, enquanto a operação não sabe sobre a execução da operação O1.
![Page 51: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/51.jpg)
51
SOCT2 (cont.) A fim de lidar com esses casos, uma outra
função chamada transposição transpose_bk foi definida.
![Page 52: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/52.jpg)
52
SOCT2 (cont.) Em cada local S envolvidos na colaboração,
é mantido uma cópia local do documento e um HB que consiste de uma sequencia de n operações realizadas na cópia local do documento.
As operações no HS(n) são ordenados de acordo com sua ordem de execução. Quando uma operação local é gerada, é simplesmente anexada ao HB.
![Page 53: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/53.jpg)
53
SOCT2 (cont.) Quando uma operação remota chega a um
site, é verificado se é conflitante ou não. Se a operação não é conflitante, é adicionada a uma fila e executada quando torna-se conflitante, isto é, todas as operações que precedem forem executadas.
![Page 54: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/54.jpg)
54
SOCT2 (cont.) Integração das operações conflitantes ao
HB: A primeira etapa do processo de integração
consiste na reordenação do HB de tal forma que todas as operações que são causalmente precedente à operação remota, venham antes das operações que são concorrentes para a operação remota no HB.
O segundo passo no mecanismo de integração, consiste em transmitir a transformação da operação remota de acordo com a sequencia de operações concorrentes.
![Page 55: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/55.jpg)
55
SOCT2 (cont.) Preservação de causalidade é obtida pelo
uso de vetores de estado. Convergência: Condition C1 e Condition C2 Preservação de intenção: Forward
Transformation e Backward Transformation
![Page 56: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/56.jpg)
56
treeOPT Representa os documentos em forma de
árvore, aplicando mecanismos de transformação operacional recursivamente sobre os diferentes níveis do documento.
Mantém o histórico distribuído pela árvore, quando há uma operação a ser transformada, apenas aquele caminho é varrido e não o histórico como um todo, reduzindo-se a complexidade.
![Page 57: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/57.jpg)
57
treeOPT (cont.) Cada site armazena uma cópia local da
estrutura hierárquica do documento compartilhado.
Cada nó (excluindo os nós folhas) mantém um histórico de operações de inserções e deleções associadas com os nós filhos.
![Page 58: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/58.jpg)
58
treeOPT (cont.) Finalmente a nova operação é enviada para
todos os outros sites, e marcada no vetor de estados.
Após receber uma operação remota, o site receptor irá testá-la para ver se é causally ready.
Se a operação não é causally ready, ela será colocada na fila, caso contrário, ela será transformada e então executada.
![Page 59: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/59.jpg)
59
treeOPT (cont.) A operação remota deve ser transformada
contrastando as operações anteriores, as quais estão mantidas no HB. GOT ou SOCT2
Cada nó de uma sub-árvore, ao ser inserida, contém este histórico (HB) vazio. Ao se gerar a operação de composição, a mesma é executada no site imediatamente. A operação é então gravada no HB associando
seus nós pai de inserção ou deleção.
![Page 60: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/60.jpg)
60
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 61: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/61.jpg)
61
Exemplo treeOPT
![Page 62: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/62.jpg)
62
Exemplo treeOPT (cont.)
![Page 63: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/63.jpg)
63
Exemplo treeOPT (cont.)
![Page 64: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/64.jpg)
64
![Page 65: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/65.jpg)
65
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT Exemplo com treeOPT
Conclusão
![Page 66: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/66.jpg)
66
Conclusão OT é uma técnica muito eficaz no controle
de controle de concorrência e consistência otimista principalmente para internet/web.
Os principais algoritmos estudados conseguem resolver os problemas de inconsistência.
Dependendo do problema somente o uso de OT (ou qq outra abordagem otimista) não é eficaz, sendo necessário o uso de uma abordagem pessimista.
![Page 67: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/67.jpg)
67
Questões... OT tem sido usado para edição em tempo
real para autoria colaborativa. Quem necessita realmente de editores em tempo real?
Funções de Transformação são difíceis de se desenvolver e prova.
O que é realmente são as intenções?
![Page 68: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/68.jpg)
68
Agenda Introdução Resolução de conflitos de forma otimista
OT Modelos de consistência Estrutura de um sistema de OT Funções em OT Propriedades de Transformação Algoritmos para OT
Exemplo com treeOPT Conclusão
![Page 69: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/69.jpg)
69
Referências http://en.wikipedia.org/wiki/Operational_transformation Customizable Collaborative Editor Relying on treeOPT Algorithm - Claudia-
Lavinia Ignat and Moira C. Norrie C. A. Ellis, e C. Sun, “Operational Transformation in Real-Time Group Editors:
Issues, Algorithms, and Achievements”, Proceedings of the 1998 ACM conference on Computer supported cooperative work, p.59-68, November 14-18, 1998, Seattle, Washington, United States.
C. L. Ignat, “Maintaining Consistency in Collaboration over Hierarchical Documents”, Tese apresentada ao "Swiss Federal Institute Of Technology Zurich", Switzerland, Julho de 2006
Uwe M. Borghoff, Johann H. Schlichter “Computer-Suppor ted Cooperative Work: Introduction to Distributed Applications” Springer Verlag ,2000. ISBN: 9783540669845.
Li, D., Li R. “Preserving Operation Effects Relation in Group Editors”, Proceedings of the 2004 ACM conference on Computer supported cooperative work table of contents.
![Page 70: Controle de Concorrência e Consistência Otimista – Operational Transformation](https://reader035.vdocuments.mx/reader035/viewer/2022062222/568161f7550346895dd222b0/html5/thumbnails/70.jpg)
70
Obrigado!