logo
Книга по БД(Вальке А

3.2. Варианты построения систем

Как построить простейшую конфигурацию Informix

Теперь, имея предварительную информацию о клиентах и серверах Informix, можно рассмотреть вопрос о том, как получить минимальную работающую конфигурацию. Очевидно, таковой будет одна программа-клиент и одна программа-сервер на одно мкомпьютере:

+----------+ |+--------+| - Это простейшая конфигурация, когда и клиент, || клиент || и сервер находятся на одном компьютере. |+--------+| || сервер || |+--------+| +----------+

Рис. 3.3. Однопользовательская конфигурация

Может показаться, что такая минимальная конфигурация достаточно бессмысленна: какой смысл ставить мощный (и дорогой) сервер, предназначенный для работы с многими пользователями в режим, когда с ним будет работать только одна программа-клиент? На самом деле, существует, как минимум, три причины, по которым данная конфигурация имеет право на жизнь:

Первое. Учитывая, что продукты фирмы Informix существуют в разных вариантах (например базовый сервер Informix DS и вариант для разработки Informix DS/Development Edition), - которые функционально идентичны, но существенно отличаются ценой, выгоднее проводить разрабатку продуктов на минимальнлой версии, а затем для работы переводить продукт на более мощную версию.

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

Третье. Учитывая, что в качестве ОС часто выступает та или иная версия Unix, которая, как известно, многозадачна и позволяет подключаться пользователям через простые терминалы просредством телефонной линии или COM-порта, мы в реальности получаем вариант многопользовательской системы:

+----------+ |+--------+| || клиент |--------+--------------+--------------+ |+--------+| +--+--+ +--+--+ +--+--+ || сервер || | | | | | | |+--------+| +---------+ +---------+ +---------+ +----------+ +---------+ +---------+ +---------+ Terminal 1 Terminal 2 Terminal 3 User 1 User 2 User 3

Рис. 3.4. Многопользовательская терминальная конфигурация

Конфигурация продуктов Informix с несколькими типами интерфейсов

Развивая минимальную конфигурацию, можно на одном компьютере установить не одну, а несколько программ-клиентов. Например, имеется две категории пользователей: одна категория занимается вводом и анализом текстовой информации, другая - должна работать в графической среде (X Window, например). В этом случае первая категория пользователей оснащается алфавитно-цифровыми терминалами, а вторая - графическими X-терминалами. Для первой категории ставится продукт Informix 4GL, а для второй - Informix ViewPoint Pro.

+-------------------+--------------+-----------... | +----+----+ +----+----+ | | X | | X | | |terminal1| |terminal2| | +---------+ +---------+ | +---------+ +---------+ +----+----------+ User 1 User 2 |+-------+-----+| ||ViewPoi| 4GL |+-------+--------------+--------------+-... |+-------+-----+| +--+--+ +--+--+ +--+--+ || сервер || | | | | | | |+-------------+| +-+-----+-+ +-+-----+-+ +-+-----+-+ +---------------+ +---------+ +---------+ +---------+ Terminal 1 Terminal 2 Terminal 3 User 3 User 4 User 5

Рис. 3.5. Многопользовательская терминальная конфигурация с алфавитно-цифровыми и графическими клиентами

Сетевая конфигурация продуктов

Примеры конфигураций, приведенные выше, основывались на использовании продуктов СУБД Informix, установленных на одном компьютере. Часто возникает желание или необходимость иметь доступ к серверу баз данных Informix не через терминалы, а непосредственно с рабочих мест. Причин для этого может быть несколько. Во-первых, разумно использовать вычислительные мощности рабочих станций. Во-вторых, пользователям желательно работать в своей привычной среде (например, MS Windows или MacOS). В третьих, выполнение части действий на клиентской машине может существенно уменьшить объем передаваемых по сети данных, а, значит, и увеличить пропускную способность сети. В четвертых, .... Впрочем, перечисление всех достоинств такого подхода было много раз сделано в работах, посвященных сетям и распределенным вычислительным системам и подробно рассматривалось в параграфе про архитектуру .клиент‑сервер.

Для осуществления возможности общения между программой‑сервером и программой‑клиентом, физически расположенных на разных компьютерах, используются продукты связности. Поясним, для чего они нужны. Когда программа-клиент и программа-сервер находятся на одной машине, они "видят" друг друга и могут общаться. Как они это делают - не важно (в Unix'е, например, могут использоваться именованные конвейеры, в MS DOS - прерывания), главное - наличие фиксированного для каждой платформы способа общения. Но если мы физически разделяем сервер и клиента, ставим их на разные компьютеры, то как они смогут друг друга найти? Ответ очевиден - по сетевому протоколу. Так вот - программа связности для сервера баз данных выступает в роли клиента, но входящие и исходящие запросы не обрабатывает сама, а передает по сетевому протоколу другой программе связности. Та, в свою очередь, предстает для программы-клиента как сервер, но не реализует сама запросы, а передает их по сети. То есть и клиент, и сервер, "думают", что находятся на одном компьютере, ведут между собой разговор, а программы связности обеспечивают роль курьера по передаче запросов и возвращению результатов от одного компьютера к другому.

Программы связности Informix'а обеспечивают использование сетевых протоколов TCP/IP и IPX/SPX. Для ранних продуктов Informix использовались отдельные, специальные продукты связности (например, Informix Star). В современных продуктах, в том числе и в серверах, выполненных на основе динамической масштабируемой архитектуры DSA, подсистема сетевого взаимодействия с удаленными программами интегрирована в сам сервер. Для персонального компьютера, работающего под управлением MS Windows/Windows NT предназначен продукт Informix Net. С использованием подсистемы сетевого взаимодействия можно построить следующую конфигурацию, которая особенно подходит к системам на базе Windows NT, так как данная ОС не поддерживает развитый алфавитно-цифровой доступ:

+----+-------------+ |+----------------+| Сеть (например, TCP/IP) || сетевая подсист|+---------+--------------+--------..... |+----------------+| +-----+-----+ +-----+-----+ || сервер IDS || |+----+----+| |+----+----+| |+----------------+| || I-Net || || I-Net || +------------------+ |+---------+| |+---------+| || клиент || || клиент || |+---------+| |+---------+| +-----------+ +-----------+ Windows-станция Windows-станция

Рис. 3.6. Распределенная сетевая конфигурация (“сетевая подсист.” означает подсистему сетевого взаимодействия)

Заметим, что использование вместе с сервером продукта связности не означает невозможность использования программ-клиентов, установленных на том же компьютере, что и сервер базы данных. То есть все приведенные выше варианты построения СУБД Informix, остаются в силе. Просто добавляются еще программы‑клиенты, подключенные через сеть.

терминалы... | +----+-------------+ |+-------+--------+| Сеть (например, TCP/IP) ||клиент |сет.п/с |+---------+--------------+--------..... |+-------+--------+| +-----+-----+ +-----+-----+ || сервер IDS || |+----+----+| |+----+----+| |+----------------+| || сет.п/с || || I-Net || +------------------+ |+---------+| |+---------+| || клиент || || клиент || |+---------+| |+---------+| +-----------+ +-----------+ Unix-станция Windows-станция

Рис. 3.7. Совмещенная терминально-сетевая конфигурация (“сет.п/c” означает подсистему сетевого взаимодействия)

Конфигурация с распределенной базой данных

Подсистема сетевого взаимодействия в серверах Informix DS имеет еще одну особенность - она позволяет создавать распределенные базы данных. Другими словами, единая база данных распределена по нескольким серверам. Информация о том, где находится та или иная таблица указывается при создании этой таблицы. Обращаясь к серверу Dynamic Server за данными из некоторой таблицы сервер определяет, что данная таблица находится на другом компьютере. Сервер обращается к подсистеме сетевого взаимодействия, та договаривается с нужным сервером и обеспечивает передачу нужных данных.

+-----------+ +-----------+ +-----------+ |+---------+| |+---------+| |+---------+| || клиент || || клиент || || клиент || |+---------+| |+---------+| |+---------+| || I-Net || || I-Net || || I-Net || |+----+----+| |+----+----+| |+----+----+| +-----+-----+ +-----+-----+ +-----+-----+ .... +-----------+---------------+---+-----------+----.... +-----+-----+ +-----+---- + |+----+----+| |+----+----+| || сет.п/с ||<----------------->|| сет.п/с || |+---------+| |+---------+| || IDS || || IDS || |+---------+| |+---------+| +-----------+ +-----------+

Рис. 3.8. Распределенная база данных (“сет.п/c” означает подсистему сетевого взаимодействия)

Трехзвенная архитектура с сервером приложений

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

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

+---------+ +--------+ +--------+ | Клиент 1| |Клиент 2| |Клиент 3| компьютеры-клиенты +--+------+ +---+----+ +---+-+--+ (IBM PC) | | | | ¦ +---+----------------------+ | | ¦ ¦ +-+-------------------+ | | | ¦ ¦ ¦ Сервер Приложений 1 +--+---+ | ¦ ¦ +-----T---------------+ | | ¦ ¦ +-----+---------------+ | ¦ компьютер-сервер L----------+-+ Сервер базы данных +--+-----+ (UNIX-станция) ¦ | +---------------------+ | +--------------------------+

Рис. 3.9. Вариант конфигурации с сервером приложений и сервером базы данных на одном компьютере.

То есть, существует единственная программа-сервер приложений, которая размещена на том же компьютере, что и программа-сервер базы данных. Клиенты, то есть программы на персональных компьютерах, могут общаться как напрямую с сервером базы данных (Клиент 1), так и с сервером приложений, и сервером базы данных (Клиент 3). Некоторые клиенты (Клиент 2) общаются только с сервером приложений. В последнем случае, для того, что бы получить данные от сервера базы данных, клиент должен дать соответсвующее указание серверу приложений.

В более сложном варианте использования сервера приложений на одном компьютере-сервере находится не один, а несколько серверов приложений. Разные программы-клиенты общаются с разными серверами приложений, возможно, с несколькими одновременно (как Клиент 1):

+---------+ +--------+ +--------+ ¦ Клиент 1¦ ¦Клиент 2¦ .......... ¦Клиент N¦ компьютеры-клиенты +--++-----+ +---+----+ +---+++--+ (IBM PC) ¦¦ +---+-----------------------+++----+ ¦¦ ¦ +-+-------------------+ ¦¦¦ ¦ ¦¦ ¦ ¦ Сервер Приложений 1 +----¦¦ ¦ ¦¦ ¦ +---------------------+ ¦¦ ¦ ¦¦ ¦ +---------------------+ ¦¦ ¦ ¦+---------+-+ Сервер Приложений 2 +-----¦ ¦ ¦ ¦ +---------------------+ ¦ | ¦ ¦ ................. ¦ ¦ ¦ ¦ +---------------------+ ¦ ¦ +----------+-+ Сервер Приложений K +-+ ¦ ¦ ¦ +---------------------+ ¦ ¦ ¦ ¦ +-----------------------+---++ ¦ ¦ ¦ Сервер базы данных ¦ ¦ ¦ +----------------------------+ ¦ +----------------------------------+ компьютер-сервер (UNIX-станция)

Рис. 3.10. Вариант конфигурации с несколькими серверами приложений на одном компьютере.

Если сервер приложений сам по себе требует больших ресурсов (памяти, машинного времени), то имеет смысл поместить его на отдельный компьютер. Причем, сервер приложений может выступать как клиент для другого сервера приложений (Сервер Приложений 1 является клиентом для Сервера Приложений 2):

+---------+ +--------+ +--------+ ¦ Клиент 1¦ ¦Клиент 2¦ ........... ¦Клиент N¦ компьютеры-клиенты +-----+---+ +---+----+ +---+-+--+ (IBM PC) ¦ +----------+ ¦ +-------+ +---+-----------+ ¦ +----------+-----+ ¦ ¦ --+---------¬ ¦ ¦ ¦ +--------+-+ ¦ ¦ ¦ ¦сервер 1 +-+------+ +-+-+сервер 2¦ ¦ ¦ ¦ ¦приложений +-+---+ +-------+-+приложении+--+¦ ¦ ¦ +-----------+ ¦ ¦ ¦ +----------+ ¦| ¦ +---------------+ ¦ ¦ +-----------+ ¦¦ ¦ компьютер-сервер ¦ ¦ ¦сервер +-+¦ ¦ (UNIX-станция) +----------+-+базы данных+--+---+ | +-----------+ ¦ +----------------+ компьютер-сервер (UNIX-станция)

Рис. 3.11. Вариант конфигурации с несколькими серверами приложений на разных компьютерах.

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