У нас есть большой сервер приложений для электронного бизнеса, который находится вне нашего контроля, и мы не можем каким-либо образом изменять его. Компания, стоящая за этим сервером приложений, также не будет изменять его в соответствии с требованиями наших клиентов. Это связано с тем, что они рассматривают нас как конкурента и не желают, чтобы клиент использовал наше приложение в качестве внешнего интерфейса для своего приложения.
Наше настольное приложение использует веб-службы для связи с этим сервером приложений, и каждый вход в систему с рабочего стола занимает пользовательский слот на сервере. Сервер приложений не предлагает никакой функциональности, которая позволяет нам выяснить, занят ли пользовательский слот или нет. Лучшим решением для нас было бы разработать приложение, которое находится в середине сервера приложений и нашего настольного клиента, это приложение будет управлять распределением и освобождением пользовательских слотов, и проблема будет решена. Это решение было отклонено, так как заказчик не хочет устанавливать наше приложение на сервер приложений электронного бизнеса, поскольку это лишит пользователя поддержки упомянутого сервера электронного бизнеса, альтернативой может быть дополнительный сервер, но он этого не делает. не хочу иметь дело.
Что дает нам решение о том, что наше настольное приложение имеет доступ на запись в общую папку. Каждое настольное приложение имеет UID, и мы используем этот UID вместе с идентификатором пользовательского слота и создаем файл UID.UserSlotId.locked. Это будет означать, что каждый раз при установлении соединения настольному приложению необходимо будет проверять это общее местоположение и удостовериться, что они не будут использовать выбранный UserSlotId.
Теперь я понял, что заблокированный файл - ужасное решение, но клиент запросил это, и сколько бы мы ни сообщали ему, что это никогда не будет водонепроницаемым решением, они все еще хотят идти вперед. Они предполагают, что 98% -ное решение является хорошим решением. Итак, что может предложить сообщество StackOverflow в качестве совета по работе с такой системой блокировки файлов?