10 Архитектура информационных систем на основе БД
10.1 Понятие ИС. Аспекты классификации ИС
В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру.
Информационные системы на основе БД
- по способу организации хранения и доступа к данным делятся на локальные (автономные) и распределенные;
- по масштабу делятся на персональные и групповые.
10.2 Характеристика ИС с точки зрения способов организации хранения и доступа к данным
Локальные информационные системы реализуются на автономном компьютере, как правило, ПК. Такая система может содержать несколько простых приложений, связанных общим информационным фондом (БД), и рассчитана на работу одного пользователя или группы пользователей, разделяющих по времени одно рабочее место. [И база данных, и приложения, работающее с БД находятся на одном компьютере]. Подобные приложения создаются с помощью так называемых "настольных СУБД" (Clarion, Clipper, FoxPro, Paradox, dBase, MS Access) или с помощью файловой системы и диалоговой оболочки для ввода, редактирования и обработки данных.
Особенностью настольных информационных систем является дешевизна и простота эксплуатации и так называемая персонализация рабочей среды, когда пользователь может выбрать себе инструменты для работы, наиболее соответствующие его потребностям.
При выборе настольных СУБД обратите внимание на следующие аспекты:
- наличие базового инструментария для построения таблиц, работы с данными и структурами в диалоговом режиме, сортировки и импорта записей;
- наличие форм как инструментального средствами для формирования структур элементов данных и экранов просмотра;
- наличие средств конструирования простых и сложных запросов и отчетов;
- наличие средств быстрой разработки программ и внешних интерфейсов;
- наличие средств связности характеризует связь с данными, хранящимися в файлах различных форматов;
- наличие средства для работы в Internet характеризует инструментарий для публикации статических и динамических документов в Internet, а также для ввода и извлечения данных из сети.
Распределенные информационные системы принято строить различными способами, как системы:
- с архитектурой клиент-сервер;
- с распределенными вычислениями;
- на основе Internet/Intranet-технологий.
10.3 Характеристика ИС с точки зрения способов масштабов системы
Персональные информационные системы рассчитаны на работу одного пользователя или группы пользователей, разделяющих по времени одно рабочее место. Чаще всего реализуется как локальная ИС.
Групповые информационные системы ориентированы на коллективное использование информации, чаще всего строятся как локальная вычислительная сеть ПК (распределенный вариант построения) или реже как многотерминальная централизованная вычислительная система. [И база данных, и приложения, работающее с БД находятся на одном компьютере – центральном, главном. Однотипные или специализированные рабочие места обеспечивают запуск на центральном компьютере и вызов одного или нескольких конкретных приложений] При разработке таких приложений используются многопользовательские "настольные СУБД", серверы БД для рабочих групп (Btrieve, NetWare SQL, Gupta SQLBase, Sybase Anywhere SQL, MS SQL Server, Informix-SE, Workgroup Oracle и др.). Приложения, разработанные для таких систем, часто имеют монолитную архитектуру, когда интерфейс пользователя, бизнес логика и функциональность доступа к данным располагаются в одном большом приложении].
Групповые информационные системы принято делить на системы масштаба рабочих групп, кампусов, корпоративные.
Информационные системы рабочих групп. Подобные ИС реализуются как групповые централизованные или на основе двухуровневой архитектуры «клиент-сервер», обслуживает небольшое количество клиентов. Главной целью таких ИС является разделение ресурсов, таких как данные, приложения, лазерные принтеры и, возможно, низкоскоростные модемы. Все пользователи рабочей группы или отдела пользуются СУБД одного типа, чаще всего настольными СУБД типа dBase, Paradox или FoxPro, использующими файловый сервер для хранения разделяемых данных. В функции администратора входит добавление новых пользователей, устранение простых отказов, инсталляцию новых узлов и установку новых версий программного обеспечения. Совместное использование информации организуется с помощью блокировок записей и файлов. Основными признаками ИС рабочей группы или отдела являются, таким образом, однородность и небольшой масштаб.
Информационные системы масштаба кампуса. Следующим шагом в эволюции информационных систем и сетей является объединение локальных сетей и их информационных систем нескольких отделов в единую сеть здания или группы зданий. Такие сети называют сетями кампусов. Эти сети являются все еще локальными сетями, хотя и могут покрывать территорию в несколько квадратных километров. Сервисы такой сети включают взаимодействие между информационными системами разных отделов, доступ к базам данных предприятия, доступ к факс-серверам, высокоскоростным модемам и высокоскоростным принтерам.
В сети кампуса в каждом отделе осуществляется администрирование своими системами и серверами, но сотрудники отдела получают доступ к некоторым файлам и ресурсам сетей других отделов. Именно на уровне сети кампуса начинаются проблемы интеграции. В общем случае, отделы уже выбрали для себя компьютеры и приложения, которые подходят им наилучшим образом. Типы компьютеров, сетевых операционных систем, сетевого аппаратного обеспечения, типы информационных приложений могут отличаться в каждом отделе.
Информационные системы масштаба кампуса и соответствующие приложения могут строиться различными способами:
- многотерминальные централизованные вычислительные системы;
- системы на основе локальной сети ПК (файл-серверные приложения);
- системы с архитектурой клиент-сервер.
Большинство современных информационных систем масштаба кампуса представляют собой классический пример двухзвенной модели клиент-сервер: клиентская часть генерирует запросы на поиск данных в некоторой стандартной форме, чаще всего на языке SQL, и реализует логику обработки данных, а СУБД отрабатывает получаемых от клиентов запросы, осуществляя поиск данных в своих таблицах.
При разработке таких приложений используются многопользовательские «настольные СУБД», серверы БД (Btrieve, NetWare SQL, Gupta SQLBase, Sybase Anywhere SQL, MS SQL Server, Informix-SE, Workgroup Oracle и др.).
Корпоративные информационные системы являются развитием систем для рабочих групп и сетей кампусов и ориентированы на масштаб крупного предприятия, Они могут иметь иерархическую структуру из нескольких уровней. Главное их назначение - обеспечение доступа из подразделения к центральной или распределенной базе данных предприятия (организации) помимо доступа к информационному фонду рабочей группы. Они строятся на корпоративных SQL-серверах БД (Oracle, Informix-OnLine, MS SQL Server, Informix-DSA, Sybase, CA-Ingress и др.).
Термин "корпоративная" отражает с одной стороны величину сети, так как корпорация - это крупное, большое предприятие. С другой стороны, этот термин несет в себе смысл объединения, то есть корпоративная сеть - это сеть, получившаяся в результате объединения нескольких, как правило, разнородных сетей. При этом число пользователей и компьютеров может измеряться тысячами, число серверов - превышать несколько сотен, число записей в базе данных - несколько миллионов, а расстояния между сетями могут оказаться такими, что использование глобальных связей становится необходимостью. Непременным атрибутом такой сложной и крупномасштабной сети является гетерогенность - нельзя удовлетворить потребности тысяч пользователей с помощью однотипных элементов и однородных структур. В корпоративной сети обязательно будут использоваться различные типы компьютеров - от мейнфреймов до персоналок, 3-5 типов операционных систем, с десяток различных коммуникационных протоколов, несколько СУБД и множество других приложений.
Важное значение в корпоративных системах приобретает время реакции приложений из-за необходимости работы в реальном масштабе времени, (поддержка режима On Line Transaction Processing, OLTP в СУБД). В то же время в большой корпоративной сети обеспечить хорошее время реакции особенно сложно - этому мешает высокая интенсивность потока запросов, необходимость производить поиск данных в базах колоссальных размеров, невысокая скорость глобальных линий связи между отделениями корпорации, замедление скорости взаимодействия в шлюзах, согласующих неоднородные компоненты различных подсетей.
Корпоративные системы состоят из продуктов, часть из которых можно назвать корпоративными. Понятие "корпоративности" продукта включает в себя несколько аспектов, среди которых важнейшими являются:
- масштабируемость, то есть способность одинаково хорошо работать в большом диапазоне различных количественных характеристик сети;
- совместимость с другими продуктами, то есть способность работать в сложной гетерогенной среде интерсети в режиме plug-and-play.
В корпоративной системе могут использоваться не только продукты класса корпоративных, но и продукты уровня отделов и рабочих групп. Корпоративные продукты используются на магистрали сети, там, где они организуют разделение ресурсов между большим количеством пользователей, в пределе - между всеми пользователями корпорации. Продукты же рабочих групп предоставляют свои ресурсы в основном только членам своей рабочей группы. Соответственно возможностям различаются и цены корпоративных продуктов и продуктов рабочих групп.
Корпоративная система нуждается в централизованном хранении справочной информации о самой себе (начиная с данных о пользователях, серверах, рабочих станциях и кончая данными о кабельной системе). Естественно организовать эту информацию в виде базы данных специального системного назначения. В идеале сетевая справочная информация должна быть реализована в виде единой базы данных, а не представлять собой набор баз данных, специализирующихся на хранении информации того или иного вида, как это часто бывает в реальных операционных системах. Например, в Windows NT имеется по крайней мере пять различных типов справочных баз данных.
Особую важность приобретают для корпоративной сети вопросы безопасности данных. В крупномасштабной сети объективно существует больше возможностей для несанкционированного доступа - из-за децентрализации данных и большой распределенности "законных" точек доступа, из-за большого числа пользователей, благонадежность которых трудно установить, а также из-за большого числа возможных точек несанкционированного подключения к сети. Для защиты данных в корпоративных сетях применяется весь спектр имеющихся средств защиты - избирательные или мандатные права доступа, сложные процедуры аутентификации пользователей, программная и аппаратная шифрация, локализация трафика и т.п. Те же причины обуславливают и повышенные требования к высокой готовности и отказоустойчивости системы. Основные средства достижения этих свойств - избыточность аппаратуры и данных на всех уровнях.
Поскольку корпоративные системы - это частный случай больших систем, то к их организации применимы те общие методы и принципы, которые были сформулированы в теории больших систем: деление системы на подсистемы, многоуровневое иерархическое построение, сочетающее принципы централизации и децентрализации при сохранении единства системы, принцип необходимого разнообразия, говорящий о том, что сложная по функциям система не может иметь простую структуру и однотипные элементы.
Корпоративные информационные системы и соответствующие приложения могут строиться различными способами:
- многотерминальные централизованные вычислительные системы;
- системы на основе локальной сети ПК (файл-серверные приложения);
- системы с архитектурой клиент-сервер;
- системы с распределенными вычислениями;
- системы на основе Internet/Intranet-технологий.
Большинство современных корпоративных СУБД представляют собой классический пример двухзвенной модели клиент-сервер: клиентская часть генерирует запросы на поиск данных в некоторой стандартной форме, чаще всего на языке SQL, и реализует логику обработки данных, а СУБД отрабатывает получаемых от клиентов запросы, осуществляя поиск данных в своих таблицах. Однако в корпоративных сетях обязательно имеются и более сложные приложения, требующие для реализации логической обработки данных большой вычислительной мощности. Для них более подходящей является многозвенная схема, позволяющая разделить приложение на большее число частей. Например, приложение будет выполняться более эффективно, если освободить файл-сервер от выполнения запросов к базе данных и перенести СУБД на отдельный, более мощный компьютер. Из этих же соображений часто оказывается целесообразным перенести обработку логики приложения с персональных компьютеров также на отдельный компьютер большой вычислительной мощности - сервер приложений.
При построении распределенных приложений важным является способ взаимодействия частей - синхронный или асинхронный. Синхронный способ, при котором часть приложения, выдавшая запрос, блокируется на время его выполнения, а серверная часть, получив запрос, должна немедленно заняться его выполнением, мало подходит для корпоративных приложений. Так как из-за больших расстояний (нередко с включением глобальных связей) время выполнения запроса может оказаться слишком большим, то клиентская часть приложения может быть приостановлена на долгое время, с другой стороны, большая интенсивность и случайный характер потока запросов может дезорганизовать работу сервера. Поэтому корпоративные приложения эффективнее строить с применением асинхронной связи между отдельными частями. В этом случае необходимо иметь дополнительную службу (относящуюся к так называемому классу middleware), которая принимала бы запросы от клиентской части приложения, вела бы очередь таких запросов (желательно на диске для повышения отказоустойчивости) и планировала бы загрузку сервера. Использование средств класса middleware в корпоративных сетях связано с необходимостью упорядочить хаотический поток запросов/от огромного числа клиентов к большому количеству серверов, создать некоторые регулирующие эти потоки механизмы.
Перспективными, но пока еще не нашедшими практического воплощения, являются средства брокеров запроса объектов (object request broker, ORB), которые работают подобно средствам асинхронной обработки запросов, но только с привлечением концепции объектно-ориентированной технологии.