Я ищу библиотеку, которая поможет мне синхронизировать состояние между моим сервером и моим графическим интерфейсом в режиме реального времени. У меня есть сортировка сообщений и промежуточное ПО (push-обновления и т. Д.), Но мне нужен протокол, который гарантирует, что данные будут синхронизироваться в течение некоторого разумно ограниченного периода времени - сообщение об ошибке/исключении/исключении может привести к тому, что данные будут выйдите из син в течение нескольких секунд, но он должен повторить синхронизацию или, по крайней мере, знать, что она не синхронизирована в течение нескольких секунд.Сохранение состояния в синхронизации между сервером и графическим интерфейсом в реальном времени
Это кажется, что это должно быть что-то, что было решить раньше, но я не могу найти ничего подходящего - любая помощь высоко ценится
Подробнее - У меня есть Rich Client (Silverlight, но вероятно, чтобы перейти к Javascript/C# или Java) GUI, который обслуживается промежуточным программным обеспечением типа JMS. Ищу повторно инженер некоторых взаимодействий данных на что-то вроде как следует
Каждый пользователь имеет свой собственный взгляд на несколько достаточно небольших наборов данных для таких элементов, как:
- Возмещений (что элементы графического интерфейса пользователя для дисплей)
- GUI данные (например, для заполнения выпадающего меню и т.д.)
- сетки бизнес-данных (например, сетки заказов)
- предпочтения (например, как в GUI выложена)
Все эти наборы данных могут быть изменены на сервере в любое время, и данные должны как можно скорее обновляться на клиенте. Данные изменяются с помощью сервера - клиент запрашивает изменение (например, отменяет запрос), и сервер проверяет его против прав и бизнес-правил и обновляет свой внутренний набор данных, который затем отправляет изменение обратно в графический интерфейс. Чтобы обеспечить пользовательскую обратную связь, промежуточное состояние может быть установлено на gui (отменить подано или аналогично), которое превышает количество ответов сервера.
В настоящее время рабочий процесс:
- Пользователь подтверждает подлинность
- GUI загружает исходные наборы данных с сервера (которая либо загружает их из базы данных или какой-либо другой бизнес-объекты, он кэшированные)
- GUI делает
- GUI загружает снимок бизнес-данных
- GUI подписывается на обновления для бизнес-данных
- Как обновления приходят в GUI обновляет модель и вид на экране
Ищу обобщенную библиотеку, которая позволит улучшить на этой
- Должен быть перекрестным языка, используя формат эффективной полезной нагрузки (например,Java back end, C# front end, формат данных protobuf)
- Должен быть транспортным агностиком (мы используем промежуточное программное обеспечение стиля JMS, которое мы не хотим заменять прямо сейчас)
- Клиент должен быть отправлен с обновлением при возникновении изменения на стороне сервера набора данных
- клиент и сервер должен быть в состоянии проверить изменения, чтобы гарантировать, что они современны
- данные, посылаемые должны быть минимальными (минимальная дельта)
- клиент и сервер должен справиться с бытием более чем одна ревизия не синхронизирована
- Клиент должен иметь возможность кэшировать диск на betwee n, а затем просто получите deltas при входе в систему.
Я думаю, что идеальным решением было бы использовать что-то вроде
- Любой объект (или объект дерева) может быть зарегистрировано с кодом библиотеки (это должно работать с данными/объектов, загруженных через Hibernate)
- Когда объект изменяет библиотеку notifys слушателя/обратного вызова с дельтой изменения
- слушатель посылает, что дельта-клиенту с помощью моего JMS
- клиент получает обновления и может дать, что обратно в кли которая обновит клиентскую версию объекта
- Клиент должен получить достаточную информацию из обновления, чтобы иметь возможность решить, какие действия пользовательского интерфейса необходимо предпринять (уведомить пользователя, обновить сетку и т. д.)
- Клиент и сервер периодически проверяют, что они находятся на одной и той же версии объекта (например, сервер отправляет номер версии клиенту) и может при необходимости исправлять либо дельта отправки сервера, либо полное обновление, если это необходимо.
Спасибо за любые предложения