ГлавнаяarrowПроектирование информационных системarrow17. Разработка файл-серверных систем

17. Разработка файл-серверных систем

ПРОЕКТИРОВАНИЕ ФАЙЛ-СЕРВЕРНЫХ СИСТЕМ
Особенности архитектуры: все данные находятся на одном компьютере, вся обработка - на других. Для обработки вся информация, которая может пригодиться, передается с сервера на рабочие места.
Достоинства:
§ Простота и дешевизна средств разработки.
§ Простота самой разработки.
§ Совместимость с унаследованными однопользовательскими приложениями, т.е. однопользовательские системы легко раскладываются в многопользовательские.
Недостатки:
§ Избыточная передача по линиям связи.
§ Повышенные требования к рабочим местам.
§ Отсутствие централизованных функций.
Область применения:
1) Поддержка работы небольших групп.
2) Желательна минимальная конфликтность пользователей. Низкая конфликтность в случаях:
· Данные только читаются;
· Работа с данными разделена по областям (есть БД и пользователям разделено, что первый работает с данными1, второй - с данными2 ...);
· Обращения к данным разделены по функциональности.
Основная проблема: поддержка многопользовательского доступа, должны быть специальные средства, поддержка транзакций, блокировка данных, контроль конфликтов.
Для организации многопользовательского доступа нужно определить пользовательские операции и соотнести с транзакциями системы.
Транзакция - набор операций, которые выполняются как единое целое.
Машинная транзакция может составлять часть пользовательской.
Условия: отделение данных не должно нарушать логической или временной связности.
Для выбранной транзакции определяется требуемый уровень изолированности.
После определения уровней реализуется желаемый уровень.
Реализация выполняется в случае стандартной поддержки уровней изолированности.
Для поддержки используются средства (в Visual FoxPro):
1. Команды работы с транзакциями:
BEGIN TRANSACTION
ROLLBACK
END TRANSACTION
2. Операции блокирования/разблокирования данных:
RLOCK() - блокировка записи;
FLOCK() - блокировка таблицы;
UNLOCK() - снятие блокировки.
Позволяют управлять блокировкой и освобождением данных, кроме того, имеется автоматическая блокировка на время исполнения операции.
RLOCK() и FLOCK() выдают true или false в зависимости от успешности блокировки, повторяются заданное число раз или заданный промежуток времени.
Протокол двухфазной блокировки
 

Сайт управляется системой uCoz