Re[7]: Архитектура серверной части системы
От: boot  
Дата: 30.07.12 17:03
Оценка:
Здравствуйте, Xenon_IPC, Вы писали:

X_I>Здравствуйте, boot, Вы писали:


B>>Речь идет о всем объекте или его части? Типа один клиент редактирует одну страницу книги, а второй читает другую? У клиентов есть свойство которое позволяет забрать право на редактирование или они равноправны?


X_I>Блокировка накладывается на весь объект (фактически запись в БД). В большинстве своем клиенты равноправны, но систему "старшинства" планируется ввести. Идеальный алгоритм примерно таков: клиент имеющий более высокий приоритет говорит, что он заберет блокировку объекта на себя, на клиенте с текущей блокировкой отображается немодальное диалоговое окно с атрибутом TopMost, что мол такой-то клиент по истечению например 1 минуты принудительно заберет блокировку на себя. Клиент должен до истечения этого времени освободить объект либо объект будет освобожден принудительно и все изменения в нем будут потеряны. Естественно точного выдерживания таймингов добиться не получится, но это и не суть важно.


Такие "мелочи" многое определяют в архитектуре. Поди еще серверная часть распределенная, сервер сессий на одной машине, а СУБД не одна, да еще и на другой машине? Поди еще и тяжелые процедуры на сервере или в СУБД имеют место быть? Я не стал бы забивать на эти "мелочи" в самом начале, в конечном итоге все определяет скорость, а скорость это цифра, значит необходимы расчеты, иначе, методом тыка, дольше будет разработка. Ваша схема недоступна для критики, мало сведений. Тут хорошо бы еще знать как много запросов к СУБД, и сколько из них повторяется. Возможно будет полезна кеширующая прослойка в памяти. Чесслово не знаю как Вам лучше сделать, но детали интересны. Конкурентов много опережает?
Жизнеспособность прямо пропорциональна простоте!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.