Архитектура Doogle Docs/Evernote и аналогов
От: Keith  
Дата: 23.11.17 13:25
Оценка:
Добрый день,

как правильно делаются приложения, где несколько клиентов могут одновременно редактировать данные?

Например, Evernote — есть список заметок, каждая заметка — текстовая.
Клиентов может быть несколько.
Каждый клиент может скачать последние данные, потом отключиться от сети,
исправить одну и ту же заметку и получить конфликт при следующем апдейте.
Evernote скорее всего хранит версию заметки и если она изменилась,
то делает общую заметку с каждым вариантом от каждого клиента
и пользователь сам разруливает конфликт.

В Google Docs нет данных на клиенте — все онлайн,
но зато несколько пользователй могут редактировать одну и ту же заметку
одновременно и без конфликтов — видимо, конфликт решается в пользу
одного (последнего?) изменения. Так?

Где можно побольше почитать про такие архитектуры, можно на английском.
Re: Google Keep
От: Qbit86 Кипр
Дата: 23.11.17 13:32
Оценка:
Здравствуйте, Keith, Вы писали:

K>В Google Docs нет данных на клиенте — все онлайн,


Поэтому в качестве примера лучше рассмотреть Google Keep. Он позволяет редактировать заметки оффлайн на мобильном устройстве и онлайн в веб-интерфейсе, а потом синхронизирует.
Глаза у меня добрые, но рубашка — смирительная!
Re: Архитектура Doogle Docs/Evernote и аналогов
От: Sharov Россия  
Дата: 23.11.17 13:35
Оценка:
Здравствуйте, Keith, Вы писали:


K>Где можно побольше почитать про такие архитектуры, можно на английском.


https://stackoverflow.com/questions/5772879/how-do-you-write-a-real-time-webbased-collaboration-tool-such-as-google-docs

Quora

https://en.wikipedia.org/wiki/Operational_transformation
Кодом людям нужно помогать!
Re[2]: Архитектура Doogle Docs/Evernote и аналогов
От: wildwind Россия  
Дата: 23.11.17 17:08
Оценка: 7 (2)
Здравствуйте, Sharov, Вы писали:

S>https://en.wikipedia.org/wiki/Operational_transformation


Добавлю: https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type
Re: Архитектура Doogle Docs/Evernote и аналогов
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 30.11.17 07:58
Оценка: 99 (2)
Здравствуйте, Keith, Вы писали:

K>как правильно делаются приложения, где несколько клиентов могут одновременно редактировать данные?

Думаю, многое зависит от характера приложения и типа данных.
Для структурированных данных (типа разных бизнес-объектов) одни подходы, для приложений работы с контентом — другие.

K>Где можно побольше почитать про такие архитектуры, можно на английском.

Я так понимаю, вас интересуют больше вторые (контент-ориентированные системы), тогда можно, я думаю, посмотреть на то, как сделано в Microsoft Office.
Когда-то давно я пробовал посмотреть на то как это реализованно (была мысль сделать серверную поддержку данного механизма для системы, в разработке котрой я тогда принимал участие — но не сложилось), и самые общие моменты записал тут: Совместное редактирование в MS Office 2010 — немного технических подробностей

Там в конце статьи есть ссылки на опубликованные протоколы и форматы. Возможно, это даст некий импульс в изучении вопроса.
Re: Архитектура Doogle Docs/Evernote и аналогов
От: StatujaLeha на правах ИМХО
Дата: 30.11.17 08:23
Оценка:
Здравствуйте, Keith, Вы писали:

MS OneNote
https://msdn.microsoft.com/en-us/library/dd951288(v=office.12).aspx — бинарный формат, как читать *.one файл. В принципе, можешь посмотреть 1-2 главу, там обзорное описание.

1.3 Structure Overview (Synopsis)
This file format is a revision-based file format created to be an effective way to store changes with
revisions instead of needing to rewrite the entire file whenever a change is written to the file.
Additionally, the revision store is transactional to ensure data integrity as clients read and write data
to the revision store. The revision store is used for .one and .onetoc2 files.


https://msdn.microsoft.com/en-us/library/dd924743(v=office.12).aspx — описывает, как преобразовать в документ то, что прочитано согласно предыдущему документу.
Re[2]: Архитектура Doogle Docs/Evernote и аналогов
От: bnk СССР http://unmanagedvisio.com/
Дата: 09.12.17 21:39
Оценка: 14 (1)
Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Keith, Вы писали:


K>>как правильно делаются приложения, где несколько клиентов могут одновременно редактировать данные?

МР>Думаю, многое зависит от характера приложения и типа данных.
МР>Для структурированных данных (типа разных бизнес-объектов) одни подходы, для приложений работы с контентом — другие.

K>>Где можно побольше почитать про такие архитектуры, можно на английском.

МР>Я так понимаю, вас интересуют больше вторые (контент-ориентированные системы), тогда можно, я думаю, посмотреть на то, как сделано в Microsoft Office.
МР>Когда-то давно я пробовал посмотреть на то как это реализованно (была мысль сделать серверную поддержку данного механизма для системы, в разработке котрой я тогда принимал участие — но не сложилось), и самые общие моменты записал тут: Совместное редактирование в MS Office 2010 — немного технических подробностей

МР>Там в конце статьи есть ссылки на опубликованные протоколы и форматы. Возможно, это даст некий импульс в изучении вопроса.


Мои пять центов. Микрософт отказался не так давно от супер-сложного FSSHTTP, и Ofice 2016 работает (может работать) без него.
См. например http://artokai.net/2016/OfficeOnlineIntegrationsRevisited/

Наиболее современная (AFAIK) версия доков на эту тему
http://wopi.readthedocs.io/en/latest/scenarios/coauth.html

Все равно, тема синхронизации документов в реальном времени достаточно сложная,
Касательно офиса, открытых (на github) реализаций, нормально поддерживающих co-authoring, я не видел
Re[3]: Архитектура Doogle Docs/Evernote и аналогов
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 10.12.17 04:52
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Мои пять центов. Микрософт отказался не так давно от супер-сложного FSSHTTP, и Ofice 2016 работает (может работать) без него.

bnk>См. например http://artokai.net/2016/OfficeOnlineIntegrationsRevisited/

bnk>Наиболее современная (AFAIK) версия доков на эту тему

bnk>http://wopi.readthedocs.io/en/latest/scenarios/coauth.html

Спасибо. С момента моей последней попытки заглянуть в эту тему, видимо, многое поменялось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.