Я впервые работаю над большим проектом для клиента.Поэтому я не был уверен, как решить эту проблему.Однако я выдвинул две разные идеи, но мне нужно мнение профессионалов о том, какая из них лучше:)
Ситуация:
Существует приложение, которое работает на разных клиентах.IPAD.Данные приложения хранятся с использованием гигантского файла XML.Этот XML-файл является общим для всех клиентов сервером.Таким образом, сервер имеет централизованную копию, а каждый клиент имеет свою собственную копию.Как только клиент внес изменения в свою XML-копию, он обновляет серверную копию, а другой клиент обновляет свою копию обновленной серверной копией.
Теперь только один клиент может вносить изменения за один раз. Чтобы исправить это, у меня есть логика, с помощью которой доклиент начинает редактировать XML, ему нужно получить право владения от сервера, и сервер позволяет редактировать одновременно только одному клиенту.
Визуальное представление:
Теперь на стороне клиента я должен придумать логику, с помощью которой я буду обновлять свою копию клиента и загружать ее на сервер.Есть два варианта:
Опция 1:
В варианте 1 я могу напрямую манипулировать файлом XML с помощью анализатора GDataXML и загружать эту копию на сервер.Для сохранения я могу сохранить копию клиента на своем iPad в каталоге документов.
Опция 2:
В варианте 2 я могучтение файла XML создает представление CoreData для локального хранилища.Когда я обновляю данные внутри основных данных, я тоже изменяю XML-файл и затем загружаю этот файл на сервер.Двойная работа, но я думаю, что настойчивость лучше.
Теперь, какой из них более надежный и целесообразный?Лично я планировал сделать вариант 2, потому что он кажется более надежным, поскольку я сохраняю данные приложения в основных данных.Но вариант 1 кажется более легкой работой, но я не знаю, насколько хорошая стойкость сохранится.
Извините за длинный вопрос,
Спасибо за любой предоставленный ввод.