powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Разделение данных сервиса между группами клиентов
1 сообщений из 1, страница 1 из 1
Разделение данных сервиса между группами клиентов
    #39165369
Тройка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Не имея достаточного опыта с WCF, сделал такую архитектуру, что вокруг сервиса есть обвязка из статических классов со статическими данными. Вот прям кусок кода такого класса:
Код: c#
1.
2.
3.
4.
5.
static class StatisticCall
{
	piblic static Dictionary<int, TaskStat> G_Task = new Dictionary<int, TaskStat>(30)
	...
}


Сервис у меня с CallbackContract. Идея была в том, что, так как все static то данные как бы общие, все сессии их видят и могут вносить изменения и остальные их увидят. Конкурентность пока что не интересует т.к. клиенты только добавляют записи, которые не конфликтуют друг с другом. А сервис сам периодически удаляет устаревшие данные. В итоге все это весьма неплохо и надежно работает, как ни странно для меня т.к. это мой первый реальный опыт с WCF, да и то, что в статике нужно знать меру это понятно.

Но теперь появилась необходимость, что бы сервис поддерживал несколько независимых групп пользователей и у каждой группы все эти данные должны быть свои. Вот тут статика вышла мне боком т.к. данные уже просто так не разделить. И теперь я не знаю, как с минимальными усилиями можно из этого выкрутиться.
Т.е. нужно что-то типа PerSession только сессия это группа клиентов. InstanceContextMode у меня и стоит PerSession. Можно сделать, что бы при регистрации CallbackContract клиент передавал некий признак принадлежности к группе, пусть даже GUID. Тогда можно было бы в эти общие статические классы добавить этот признак группы и сделать некий класс-обертку, который бы фильтровал данные из статических по этому признаку. При этом создавать этот класс только один раз при регистрации CallbackContract, сохранять в нем этот признак и за счет режима PerSession он при последующих вызовах уже будет иметь этот признак.
Как считаете, стоит ли так делать или это принципиально неправильно и лучше это все переделать по-другому пока не слишком поздно?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Разделение данных сервиса между группами клиентов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]