СТАТЬЯ |
16.05.03
|
Содержание
При разработке информационных систем масштаба предприятия очень важным вопросом является правильный выбор архитектуры и платформы, являющихся фундаментом всей системы. Ошибки, допущенные на этом этапе, могут свести на нет все преимущества прикладной части информационной системы. Причем большая часть недостатков, вызванных этими ошибками, выясняется, как правило, только на этапе эксплуатации.
Проанализируем основные варианты архитектур и платформ, использующихся для построения информационных систем.
Функции стандартного приложения можно разделить на три группы, имеющие различную природу. Первая группа - это функции ввода и отображения данных. Вторая группа объединяет чисто прикладные функции, характерные для данной предметной области. Наконец, к третьей группе относятся фундаментальные функции хранения и управления данными.
В соответствии с этим в любом приложении можно выделить следующие логические компоненты:
Различия в реализации приложений в рамках технологий "хост/терминал" и "клиент/сервер" определяются тем, какие механизмы используются для реализации функций всех трех групп, и тем, как логические компоненты распределяются между компьютерами в сети.
В архитектуре "хост/терминал" (рис. 1) функции всех трех групп совмещены в одном коде, который выполняется на компьютере-сервере (хосте). Компьютер-клиент в данной архитектуре отсутствует в принципе, а ввод и отображение данных производятся через терминал или компьютер в режиме эмуляции терминала. Приложения обычно разрабатываются на языке четвертого поколения (4GL).
Рис. 1. Архитектура "хост/терминал".
Преимуществами данной архитектуры являются:
К недостаткам можно отнести:
В архитектуре "клиент/сервер" функции приложения распределены между двумя (или более) компьютерами. В соответствии с тем, каким образом это сделано, выделяются три модели архитектуры "клиент/сервер":
В RDA-модели (рис. 2) коды компонента представления и прикладного компонента совмещены и выполнятся на компьютере-клиенте. Последний поддерживает как функции ввода и отображения данных, так и прикладные функции ("толстый" клиент).
Рис. 2. RDA-модель.
Доступ к информационным ресурсам обеспечивается, как правило, операторами специального
языка (например, SQL) или вызовами функций специальной библиотеки (если имеется
соответствующий API). Запросы к информационным ресурсам направляются по сети
удаленному компьютеру-серверу базы данных. Последний обрабатывает и выполняет
запросы и возвращает клиенту блоки данных. Говоря об архитектуре "клиент/сервер",
в большинстве случаев имеют в виду именно эту модель.
Основным преимуществом RDA-модели является широкий выбор средств быстрой разработки приложений (RAD) различных фирм. Существует множество инструментальных средств, обеспечивающих быстрое создание приложений, работающих с SQL-ориентированными СУБД. Большинство из них поддерживают графический интерфейс пользователя в MS Windows, стандарт интерфейса ODBC, содержат средства автоматической генерации кода. Подавляющее большинство этих средств разработки на языках четвертого поколения (включая и средства автоматизации программирования) как раз и создают коды, в которых смешаны прикладные функции и функции представления.
В то же время RDA-модель имеет ряд ограничений.
В DBS-модели (рис. 3) процесс, выполняемый на компьютере-клиенте, ограничивается функциями представления ("тонкий" клиент), а прикладные функции реализованы в хранимых процедурах (stored procedure), которые также называют компилируемыми резидентными процедурами, или процедурами базы данных. Они хранятся непосредственно в базе данных и выполняются на компьютере-сервере базы данных, где функционирует и компонент, управляющий доступом к данным, то есть ядро СУБД.
Рис. 3. DBS-модель.
DBS-модель реализована в некоторых реляционных СУБД (Ingres, Sybase, Oracle). Ее основу составляет механизм хранимых процедур - средство программирования ядра СУБД. Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, где функционирует ядро СУБД. Язык, на котором разрабатываются хранимые процедуры, представляет собой процедурное расширение языка запросов SQL.
Преимущества DBS-модели очевидны:
Однако есть и недостатки:
На практике часто используются смешанные модели, когда поддержка целостности базы данных и некоторые простейшие прикладные функции поддерживаются хранимыми процедурами (DBS-модель), а более сложные функции реализуются непосредственно в прикладной программе, которая выполняется на компьютере-клиенте (RDA-модель).
В AS-модели (рис. 4) процесс, выполняющийся на компьютере-клиенте, отвечает, как обычно, за ввод и отображение данных (то есть реализует функции первой группы). Прикладные функции выполняются группой процессов (серверов приложений), функционирующих на удаленном компьютере (или нескольких компьютерах). Доступ к информационным ресурсам, необходимым для решения прикладных задач, обеспечивается таким же способом, что и в RDA-модели. Серверы приложений выполняются, как правило, на том же компьютере, где функционирует менеджер ресурсов, однако могут выполняться и на других компьютерах.
Рис. 4. AS-модель
Основным элементом принятой в AS-модели трехзвенной схемы является сервер приложения. В его рамках реализовано несколько прикладных функций, каждая из которых оформлена как служба (service) и предоставляет некоторые услуги всем программам, которые желают и могут ими воспользоваться. Серверов приложений может быть несколько, и каждый их них предоставляет определенный набор услуг. Любая программа, которая пользуется ими, рассматривается как клиент приложения (Application Client - AC). Детали реализации прикладных функций в сервере приложений полностью скрыты от клиента приложения. AC обращается с запросом к конкретной службе, но не к AS, то есть серверы приложений обезличены и служат лишь своего рода "рамкой" для оформления служб, что позволяет эффективно управлять балансом загрузки. Запросы, поступающие от АС, выстраиваются в очередь к AS-процессу, который извлекает и передает их для обработки службе в соответствии с приоритетами.
АС трактуется более широко, чем компонент представления. Он может поддерживать интерфейс с конечным пользователем (тогда он является компонентом представления), может обеспечивать поступление данных от некоторых устройств (например, датчиков), может, наконец, сам по себе быть AS. Последнее позволяет реализовать прикладную систему, содержащую AS нескольких уровней. Архитектура такой системы может выглядеть как ядро, окруженное концентрическими кольцами. Ядро состоит из серверов приложений, в которых реализованы базовые прикладные функции. Кольца символизируют наборы AS, являющихся клиентами по отношению к серверам нижнего уровня. Число уровней серверов в AS-модели, вообще говоря, не ограничено.
AS-модель в наибольшей степени отражает сильные стороны технологии "клиент/сервер":
Фундаментальное различие между моделями архитектуры "клиент/сервер" заключается в следующем. RDA- и DBS-модели опираются на двухзвенную схему разделения функций. В RDA-модели прикладные функции приданы программе-клиенту, в DBS-модели ответственность за их выполнение берет на себя ядро СУБД. В первом случае прикладной компонент сливается с компонентом представления, во втором - интегрируется в компонент доступа к информационным ресурсам. Напротив, в AS-модели реализована классическая трехзвенная схема разделения функций, где прикладной компонент выделен как важнейший элемент приложения, для его определения используются универсальные механизмы многозадачной операционной системы, и стандартизованы интерфейсы с двумя другими компонентами. Собственно, из этой особенности AS-модели и вытекают ее преимущества.
Результаты анализа различных архитектур сведены в таблицу 1.1.3
Таблица 1.1.3.
Критерий |
Хост/терминал |
Клиент/сервер (RDA-модель) |
Клиент/сервер (DBS-модель) |
Клиент/ сервер (AS-модель) |
Сложность разработки приложений |
Низкая |
Низкая |
Высокая |
Высокая |
Сложность администрирования |
Низкая |
Высокая |
Высокая |
Высокая |
Сложность обновления программного обеспечения |
Низкая |
Высокая |
Низкая |
Низкая |
Степень защиты данных |
Высокая |
Низкая |
Высокая |
Высокая |
Требования к характеристикам сервера |
Высокие |
Низкие |
Высокие |
Высокие |
Требования к характеристикам рабочих станций |
-- |
Очень высокие |
Низкие |
Низкие |
Требования к характеристикам сети |
Низкие |
Очень высокие |
Низкие |
Низкие |
Трафик, создаваемый в сети |
Низкий |
Очень высокий |
Низкий |
Низкий |
Распределение загрузки |
Нет |
Есть |
Есть |
Есть |
Возможность использования графического интерфейса |
Нет |
Есть |
Есть |
Есть |
Возможность использования символьного интерфейса |
Есть |
Есть |
Есть |
Есть |
Таким образом, архитектура "хост/терминал" является оптимальным решением при построении небольших информационных систем, в которых не требуется графический интерфейс с пользователем. В случае необходимости использования графического интерфейса можно ориентироваться на RDA-модель архитектуры "клиент/сервер". AS-модель архитектуры "клиент/сервер" является лучшим вариантом для создания больших информационных систем, а также в случае использования низкоскоростных каналов связи.
В пределах одной информационной системы ее составные части, в принципе, могут быть построены с использованием различных архитектур. Например, часть рабочих мест пользователей, на которых происходит ввод данных в систему, может функционировать в режиме "хост/терминал", а рабочие места, на которых происходит анализ информации с использованием графики - в режиме RDA-модели.
Дополнительная информация
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|