2.2 Архитектура «файл-сервер»
В архитектуре «файл-сервер» (File Server, FS-модель) все основ-ные функции РИС располагаются на клиенте. На сервере располагаются файлы с данными и поддерживается доступ к файлам (рис. 2.1).
В этой модели клиент обращается к серверу на уровне файло-вых команд, система управления файлами (СУФ) считывает запра-шиваемые данные из БД и поблочно передает эти данные клиентско-му приложению. Фактически, FS-модель предполагает автономную работу программного обеспечения РИС на разных машинах в сети. Компоненты РИС взаимодействуют только за счет наличия общего хранилища данных. Безусловно, таким хранилищем должна быть хорошо спроектированная БД под управлением СУБД, поддерживающей FS-модель, например, СУБД Informix SE. Такого рода СУБД нельзя считать «истинным сервером».
Под истинным сервером мы будем понимать программную систему, функционирующую независимо от существования клиентских процессов на выделенной аппаратуре и обеспечивающую как минимум три условия:
наличие транзакционного управления;
наличие методов журнализациии и буферизации;
полную поддержку ограничений целостности.
При использовании FS-модели копия СУБД создается для каждого инициированного пользователем сеанса работы с СУБД, которая выполняется на том же процессоре, что и пользовательский процесс.
В целом в архитектуре РИС «файл-сервер» мы имеем «толстого» клиента и очень «тонкий» сервер в том смысле, что почти вся работа выполняется на стороне клиента, а от сервера требуется только достаточная емкость дисковой памяти (рис. 2.2).
К недостаткам архитектуры «файл-сервер» можно отнести:
высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов, необходимых приложениям клиентов;
ограниченное множество команд манипулирования данными, фактически это только файловые команды;
отсутствие развитых средств защиты данных (только на уровне файловой системы).
К несомненным достоинствам следует отнести высокую эффективность работы с небольшими объемами данных в однопользовательском режиме, например для ведения кадрового учета небольшой организации.
РИС на базе выделенных файл-серверов по-прежнему распространены на рынке информационных технологий из-за весьма разного уровня развитости компьютеров и наиболее дешевого способа связывания их в локальные сети.
2.3 Архитектура «клиент-сервер»
2.3.1 Типовая модель приложения «клиент-сервер»
Наиболее простая форма архитектуры «клиент-сервер» – это разделение вычислительной нагрузки между двумя отдельными процессами: клиентом и сервером. Причем между двумя этими процессами распределяются пять групп функций стандартного интерактивного приложения:
1) функции диалога (Presentation Logic, PL);
2) прикладные функции (Business Logic, BL);
3) функции обработки данных внутри приложения (Database Logic, DL);
4) функции управления информационными ресурсами (Database Manager System, СУБД);
5) служебные функции, играющие роль связок между предыдущими группами функций [12].
Рассмотрим типовую структуру приложения «клиент-сервер», работающего с базой данных (рис. 2.3).
Обычно клиентом служит настольный ПК, выполняющий программное обеспечение конечного пользователя (front-end-software).
Для организации презентационной логики преимущественно используется модель графического интерфейса пользователя GUI (User Interface Graphical).
Бизнес-логика, или логика собственно приложений (Business processing Logic), – это часть кода приложения, предназначенная для решения задач ведения бизнеса. Обычно этот код программируется на языках C, C++, Visual Basic, Object Pascal и т.п. Логика обработки данных (Data manipulation logic) – это часть кода приложения для выборки и манипулирования данными. Подъязыком является язык SQL, который встраивается в языки 3GL и 4GL.
Сервер (собственно СУБД) – обеспечивает хранение и управление базами данных. Далее будут рассмотрены модели и функции серверов.
В отличие от FS-модели клиенты могут быть достаточно «тонкими», а сервер должен быть «толстым» настолько, чтобы удовлетворять потребности всех клиентов – до нескольких десятков тысяч в клиент-серверных приложениях
Известно несколько моделей распределения функций клиент-серверного приложения, которые и будут рассмотрены далее.