Графический репозиторий

Чтобы рабочие станции стали действительно взаимозаменяемыми, было абсолютно необходимо обеспечить автоматическую пересылку изображений – как с рабочей станции, где они были загружены фотографом, на сервер, так и с сервера на другую рабочую станцию. 

Как студийный клиент, так и студийный сервер используют центральный компонент, называемый графическим репозиторием. Он обеспечивает все аспекты хранения, загрузки и записи графических изображений вместе с их метаданными. На стороне клиента был построен локальный кэширующий посредник с отложенной записью. При получении запроса клиентский репозиторий либо возвращает изображение напрямую из локального кэша, либо загружает файл в локальный кэш, а затем возвращает его. В обоих случаях все происходит прозрачно для вызывающей стороны.

При добавлении изображений на рабочей станции клиентский репозиторий передает их на сервер. Мы используем пул программных потоков для выполнения передачи в фоновом режиме, чтобы пользователю не приходилось дожидаться ее завершения.

И клиентский, и серверный репозиторий интенсивно используют многопоточность. Мы создали систему блокировок, называемых «резервированием», – это упрощенная разновидность коллаборативной (совместной) блокировки. Чтобы поместить изображение в репозиторий, клиент должен сначала запросить и получить «резерв записи». Так мы можем быть уверены в том, что ни один поток не будет читать данные из графического файла при выдаче резервирования. Для чтения данных, естественно, придется получить «резерв чтения».

Хотя мы не стали реализовывать ни распределенные транзакции, ни двухфазное закрепление, на практике между предоставлением резерва записи клиентским репозиторием и соответствующего резерва записи серверной стороной существует минимальное окно. При получении второго резерва можно быть уверенным в том, что файлы не будут повреждены.

На практике даже конфликты блокировок крайне маловероятны. Для их возникновения необходимо, чтобы два фотографа на двух разных рабочих станциях обратились к сеансу одного посетителя. Тем не менее в каждой студии установлено несколько рабочих станций, а на каждой станции работает несколько потоков, так что осторожность не повредит.

No related posts.

Подпишитесь на рассылку по почте:

Введите свой адрес почты, чтобы получать уведомления о новых статьях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>