О программных продуктах для среды клиент-сервер
PC Magazine/RE logo
(С) СК Пресс 7/96
PC Magazine, March 26, 1996, p. NE1

Разгадка архитектуры клиент-сервер

Дэвид С. Линтикам


Что означает работа в среде клиент-сервер с точки зрения программных продуктов? Есть ли у нее недостатки? (Есть.) В этой статье мы приоткрываем завесу тайны над этим рынком.

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

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

Преимущества архитектуры клиент-сервер

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

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

Быстродействие - основной фактор целесообразности разработки систем для архитектуры клиент-сервер . Применение средств быстрой разработки программ (Rapid Application Development - RAD), таких, как Delphi компании Borland, PowerBuilder фирмы PowerSoft и Visual Basic корпорации Microsoft, позволяет разработчикам "штамповать" прикладные системы для архитектуры клиент-сервер в рекордно короткие сроки. Технологи серверов баз данных также становится проще в использовании и сочетается в одних системах со средствами RAD. Таким образом, ожидается, что с помощью этой скоростной и практически защищенной от "дурака" платформы разработки сократится время, необходимое дл подготовки и передачи прикладной программы пользователю.

Привлекательность ГИП (графического интерфейса пользователя) - еще один фактор, склоняющий легионы пользователей к применению архитектуры клиент-сервер . К преимуществам прикладных программ клиент-сервер относятся также простота использования и удобство дл пользователей, работающих с такими ГИП, как Windows 3.1, Windows 95, Windows NT и OS/2 Warp. Пользователи чувствуют себя более комфортно и работают продуктивнее с такими прикладными программами, такими как текстовые процессоры, средства просмотра Internet (браузеры) и электронные таблицы, и подобными им .

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

Азы архитектуры клиент-сервер

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

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

Обычно клиентом служит настольный ПК, выполняющий программное обеспечение конечного пользователя. программное обеспечение (ПО) конечного пользователя (front-end software) - это любая прикладная программа или пакет, способные направлять запросы по сети серверу и обрабатывать получаемую в ответ информацию. Сервер, в свою очередь, получает запросы и предпринимает действи от имени клиента.

ПК, работающий под управлением Windows 95 и выполняющий программу клиент-сервер Delphi, например, может представить на рассмотрение запрос серверу баз данных (скажем, программе Oracle7, редакция 7.2, запущенной на сервере Windows NT). Обычно клиент посылает запросы базе данных в виде предложений на языке структурированных запросов (SQL), использу понятный серверу базы данных диалект.

Промежуточное обеспечение (middleware) предоставляет общий интерфейс для ПО конечного пользователя и сервера, проникающий сквозь сквозь слои ГИП, ОС, вычислительной сети и собственных драйверов базы данных с помощью общих вызовов. Для завершения операции сервер базы данных выполняет запрос и передает клиенту затребованные данные для обработки их программой клиента.

Компоненты

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

Например, в пакете Microsoft Excel for Windows 95 используется встроенный ODBC-интерфейс для связи с подавляющим большинством серверов баз данных и "перекачки" данных в ожидающую электронную таблицу дл локальной обработки пользователем.

Генераторы отчетов также обладают средствами установления связи с серверами баз данных, что позволяет пользователям создавать специальные отчеты и диаграммы, а также запускать стандартные отчеты дл программ, такие как сводки по накладным и продажам. Дл лиц, ответственных за принятие решений, клиент-сервер означает простой доступ к корпоративной информации с помощью арсенала новых средств систем, содействующих принятию решений (decision support system - DSS), многие из которых концентрируются вокруг нового типа DSS-технологий, называемого оперативным анализом (online analytical processing - OLAP).

На рынке теперь доминируют средства разработки ПО конечного пользователя, такие как Delphi, PowerBuilder и Visual Basic, помогающие созданию соответствующих программ для архитектуры клиент-сервер . Все эти средства обладают способностями RAD, что позволяет разработчикам составлять прикладные программы из заготовленных компонентов.

Использование объектно-ориентированной модели разработки и возможность подключения управляющих элементов от независимых поставщиков (например, OCX и VBX) позволяет разработчикам создавать большую часть проекта из существующих программных модулей и компонентов. Эти средства также обеспечивают встроенные возможности подключения к большинству серверов баз данных и возможность распространения в массовом порядке исполнимых модулей программ ради развлечения и получения прибыли.

Промежуточное обеспечение, терминологически, - это та часть системы клиент-сервер , которая связывает ПО конечного пользователя с сервером. Это тире в сочетании "клиент-сервер".Его преимущество состоит в способности оградить ПО конечного пользователя и сервер от сложностей взаимодействий с операционной системой, сетью и вызовов самого сервера.

Существует много разновидностей промежуточного обеспечения. Это не просто один из видов программных продуктов. К нему относятся следующие виды промежуточного обеспечения: созданное специально дл СУБД; использующее исключительно сообщения; использующее брокеров объектных запросов; выполняющее обработку транзакций.

Переходим к звеньям

Архитектура клиент-сервер, совсем недавно считавшаяся сложной средой, постепенно превратилась в исключительно сложную среду. Почему? Благодар ускоренному, переходу к и спользованию в конструкции систем клиент-сервер нескольких звеньев.

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

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

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

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

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

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

Серверы баз данных

Сердце большинства систем клиент-сервер - серверы баз данных, обеспечивающие надежный доступ к разделяемым данным для программ-клиентов, которые обращаются к функциям СУБД. Обычно клиенты по вычислительной сети посылают запросы серверу в форме предложений на языке SQL. Сервер интерпретирует их и пересылает соответствующие данные обратно клиенту.

Серверы реляционных и нереляционных баз данных могут быть различного вида и масштабов. Большинство программ-серверов баз данных - такие как Oracle7 и Sybase System 11 - выполняются на выделенных машинах. При этом серверы баз данных работают на разнообразных процессорах и в различных операционных средах. Следовательно, у создателей систем клиент-сервер имеется выбор для удовлетворения потребностей прикладных программ. Oracle, например, работает на большинстве RISC- и CISC-ориентированных Unix-системах, включая HP/UX фирмы Hewlett-Packard и Solaris компании Sun. Кроме того, Oracle выполняется на серверах, использующих процессоры Intel под управлением SCO Unix и Netware компании Novell.

Некоторые изготовители серверов баз данных, такие как компании Borland (Interbase) и Sybase (SQL Server), предоставляют версии своих серверов для запуска на системах-клиентах (например, в процессах Microsoft Windows 3.1 или Windows 95). Это позволяет разработчику систем клиент-сервер создавать клиентскую часть программ, избежав необходимости немедленной покупки отдельного сервера баз данных.

Серверы реляционных баз данных (известные также как SQL-серверы или SQL-процессоры) составляют большинство применяемых в настоящее время серверов. Однако, в нескольких секторах рынка их догоняют объектно-ориентированные и многомерные серверы баз данных.

Серверы объектно-ориентированных баз данных, такие как GemStone компании GemStone Systems, хранят информацию в форме объектов, что больше подходит дл средств разработки программ-клиентов, которые работают с чисто объектной моделью.

Более того, в объектно-ориентированных СУБД лучше, чем в реляционных, организовано хранение сложных структур данных. Серверы многомерных баз данных, такие как Essbase Analysis Server фирмы Arbor Software Corp., обеспечивают более понятное конечным пользователям представление данных и обладают новыми средствами оперативного анализа (OLAP).

Функции сервера

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

Две другие важные особенности, на которые стоит обратить внимание, - способность сервера обеспечивать целостность ссылочных данных и обоюдный контроль завершения транзакции. Ссылочная целостность данных (referential integrity) - это механизм, обеспечивающий каждому внешнему ключу соответствующий первичный ключ. Обоюдный контроль завершения транзакций (two-phase commit) - гарантия того, что ваши данные не будут повреждены даже при аппаратном сбое.

С помощью хранимых процедур, триггеров и правил разработчики могут составить программу непосредственно самого сервера баз данных и, таким образом, появляетс еще одно место для размещения логики программы. Хранимые процедуры (stored procedures) - это группа предложений на языке SQL и процедурная логика, которые разработчики могут компилировать и хранить на сервере баз данных в качестве объектов. Программы-клиенты способны выполнять хранимые процедуры, также как и другой вид хранимых процедур или триггеров, путем посылки сообщений серверу баз данных.

Триггеры (triggers) - это хранимые процедуры, которые активизируются автоматически, как только серверу баз данных встречается связанное с данными событие. Правило (rule) - это специальный тип триггера, который проверяет данные до внесения их в базу данных.

Большая часть имеющихся на данный момент хранимых процедур, триггеров и правил обладает весьма узкой специализацией и отличающимися возможностями. SQL Server способен запускать только один триггер дл операции вставки, в то время как CA-OpenIngres обеспечивает работу нескольких триггеров. Более того, расширения процедур SQL у разных изготовителей разные.

Средства разработки прикладных программ

Назначение всякого инструмента для разработки систем клиент-сервер - ускорить и упростить процесс их создания. С помощью средств быстрой разработки приложений (Rapid application development - RAD) можно создавать программы со встроенными средствами связи с любым числом серверов баз данных.

На этом быстрорастущем рынке конкурируют сотни инструментальных комплектов для архитектуры клиент-сервер . Ряд лучших средств для разработки клиентов Microsoft Windows представлены пакетами Delphi Client/Server Suite компании Borland, Enterprise Developer фирмы Symantec, PowerBuilder компании PowerSoft, SQLWindows 5 фирмы Gupta и Visual Basic корпорации Microsoft.

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

Судя по информации, предоставляемой служебными функциями промежуточного обеспечения, эти инструментальные средства поставляются с собственными и ODBC-совместимыми компонентами связи с большинством основных серверов БД . Разработчику остаетс только загрузить соответствующие драйверы и сообщить имя сервера базы данных и информацию, позволяющую войти в систему, остальное выполняет средство разработки.

Возможности конструирования

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

Репозитории - это места хранения многими средствами разработки, например, Uniface фирмы Compuware, важной для прикладной программы информации об элементах базы данных. Кроме основной информации, в репозитории могут находиться правила предметной области (business rules), связанные с каким-либо элементом данных.

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

Основой для построения средств RAD служит концепци репозитория, согласно которой элементы данных приобретают свои свойства с помощью механизма наследования. При формировании сред разработки все эти средства исходят из своего собственного представлени объектно-ориентированной модели. В большинстве из них предусмотрены механизмы наследования, полиморфизма и инкапсуляции, но каждый делает это по-своему. Например, в пакете PowerBuilder используется простое наследование (single inheritance), при котором изменения в родительском объекте автоматически распространяются на его потомка. В Gupta SQL Windows применяетс множественное наследование (multiple inheritance), при котором методы и данные двух объектов передаются одному объекту.

В этих инструментальных пакетах имеются также конструкторы интерфейсов, с помощью которых разработчики создают окна данных, формы ввода данных, меню и другие компоненты ГИП прикладных программ. В конструкторах интерфейсов представлена палитра стандартных элементов ГИП, которые разработчики могут с помощью мыши переносить в создаваемые окна. В большинстве средств число управляющих элементов можно увеличить, используя полученные от независимых поставщиков элементы Visual Basic Custom Controls или OLE Custom Controls.

И, хотя основная часть разработки программ выполняется с помощью репозитория и конструктора интерфейса, обязательно наступит момент, когда не обойтись без программирования. Для этой цели во всех комплектах имеется какой-либо гибкий язык программирования высокого уровня (4GL). Пакет PowerBuilder содержит похожий на Бейсик 4GL язык PowerScript. В некоторых комплектах применяются языки более низкого уровня 3GL.

Наконец, этим средствам необходим какой-то способ распределения прикладных программ по конечным пользователям. И снова, в каждом комплекте используетс свой собственный подход. Например, в PowerBuilder 4.0 программы запускаются с помощью интерпретатора p-кода и для формирования исполнимой среды требуется, чтобы в системе клиента наряду с несколькими DLL были и исполнимые модули. То же самое относится и к Visual Basic. Комплект Delphi Client/Server Suite генерирует свои собственные исполнимые модули, работающие без интерпретатора.

Генераторы отчетов

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

В системах клиент-сервер генераторы отчетов, такие как Crystal Report Standard компании Crystal, а Seagate Software Company и R&R Report Writer фирмы Concentric Data Systems, размещаются на Windows-станциях клиентов. Чтобв получить данные для отчетов они устанавливают с серверами баз данных связь с помощью собственного промежуточного обеспечения СУБД или используя ODBC. Учитывая критерии, задаваемые пользователем, генератор отчетов составляет запросы к базам данных и пересылает их серверу или серверам. Получаемые в ответ данные он обрабатывает и форматирует соответствующим образом.

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

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

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

Например, пакет Esperant фирмы Software AG позволяет разработчикам создавать специальные простые дл понимания пользователей представления баз данных. Это означает, что при поиске информации пользователи избавлены от необходимости разбираться и работать с чрезмерно сложными структурами баз данных.

Все генераторы отчетов руководят пользователями в процессе проектирования и формирования отчета. Во многих из них предусмотрены шаблоны или заготовки типовых отчетов. Большинство генераторов отчетов работают в среде ГИП Microsoft Windows и содержат конструкторы отчетов с возможностями WYSIWYG.

Генераторы отчетов предоставляют разработчикам средства для выбора элементов данных из меню и вставки их непосредственно в отчет. Обычно предусматриваетс выбор шрифтов, специальных эффектов и подключение растровых изображений. Разработчики отчетов могут создавать логические вычисляемые поля и подводить полные и промежуточные итоги. Во многих средствах этого класса имеются мощные языки 4GL, позволяющие разработчикам контролировать состояние отчета дл пользователя.

Заложенные в генераторы отчетов средства формирования запросов упрощает составление SQL-предложений. Разработчики имеют возможность выбирать, упорядочивать, соединять данные и применять в запросах логические операции. Обычно генераторы отчетов создают SQL-предложения автоматически, поэтому навыки применения SQL не требуются.

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

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

Генераторы отчетов также работают в тесном контакте со средами разработки прикладных программ, а большинство инструментальных комплектов для создани программ архитектуры клиент-сервер снабжены собственными генераторами отчетов или средствами независимых изготовителей. Например, в пакете PowerBuilder компании PowerSoft имеется собственный модуль этого типа, интегрированный со средствами разработки.

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

Средства оперативного анализа

Новинка в арсенале систем клиент-сервер - средства оперативного анализа (online analytical processing - OLAP)- значительно сокращают время, затрачиваемое на получение информации. Поскольку разработка с помощью OLAP не составляет особых сложностей, это занятие быстро становится любимым времяпрепровождением остро нуждающихся в информации администраторов.

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

Мощные возможности служат людям

OLAP не имеет четкого определения. В основном, в большинстве изделий OLAP предусмотрен способ быстрого (point-and-click) доступа к многомерным данным через ПК, подключенный к традиционным серверам баз данных или с фирменными многомерными СУБД. В некоторых средствах OLAP, таких как пакет BrioQuery for Windows компании BrioTechnology и PowerPlay фирмы Cognos, представлена только клиентска часть OLAP.В других изделиях данного класса, например, Essbase Analysis Server компании Arbor Software, предложен только многомерный сервер. Несколько OLAP-изделий, такие как LightShip фирмы Pilot Software, содержат средства для работы как сервера, так и клиента многомерной базы данных.

Генераторы отчетов, близкие "родственники" средств OLAP, также позволяют конечным пользователям извлекать информацию из баз данных. Но для того чтобы с их помощью составлять запросы к базам данных, формировать отношения и преобразовывать итоги запросов в выразительные отчеты и диаграммы, требуютс определенные знания об организации СУБД. Хотя, используя генераторы отчетов , можно получить ту же информацию, что и OLAP-средства, генераторы отчетов лучше работают в руках опытных разработчиков.

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

Например, для выбора различных категорий данных о продажах к предстоящему заседанию правлени администратор может щелкнуть клавишей мыши на измерении "продажи", а затем на таких измерениях, как "продажи по изделиям", "продажи по отраслям", "продажи по продавцам" и т.д. Избрав одну из этих категорий, можно продолжить поиск, подбирая дополнительные измерения до тех пор, пока не будет найдена требуема информация. Администратору не нужно ни понимание структуры базы данных, ни знание технологии реляционной базы данных, ни даже точное знание того, что он ищет: руководящую и направляющую роль исполняет OLAP.

Гибкость

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

Большинство OLAP-средств манипулируют данными так, словно они размещаются в гигантском кубе, кажда сторона которого представляет одно измерение базы данных. Внутри куба пересекаются все его измерения. Это позволяет пользователю исследовать каждое возможное сочетание данных, "рассекая" куб с помощью средств OLAP.

Существует два основных способа хранения продуктами OLAP данных для многомерного анализа. Первый - истинно многомерный сервер баз данных, такой как Essbase Analysis Server, - данные действительно хранятся в виде многомерного массива, называемого реальным кубом. Другой, более удобный способ состоит в том, что обслуживание данных происходит в реляционных БД, но представлены они таким образом, что и средства OLAP и конечный пользователь воспринимают их как многомерные. Такой способ известен как виртуальный куб, в котором иллюзия существует на уровне метаданных.

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

Обеспечение промежуточного уровня

Промежуточное обеспечение - это клей в комплекте "сделай сам". Оно представляет собой набор программ дл среды клиент-сервер , с помощью которого программы-клиенты легко подключаются к ресурсам сервера. Существуют разнообразные варианты этого ПО, но все они выполняют одну задачу: освобождение прикладных программ от сложного взаимодействия с OC, сетевыми протоколами и серверами ресурсов.

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

Промежуточное обеспечение начинается с API-клиента, который может осуществлять дистанционный вызов сервисных функций. Оно управляет передачей запроса и получением ответа, хотя и не обеспечивает реально таких функций, как интерфейс и обработка данных на сервере.

К категории промежуточного обеспечения относятс промежуточное обеспечение СУБД, мониторы обработки транзакций (TP), вызовы удаленных процедур (RPC), программы, ориентированные на обработку сообщений (Message-oriented middleware - MOM), и брокеры (посредники) объектных запросов (ORB).

Два основных типа промежуточного обеспечения - это собственное промежуточное обеспечение СУБД и основное промежуточное обеспечение баз данных. Собственное промежуточное обеспечение СУБД - это собственный механизм доступа для конкретного сервера баз данных. Основное промежуточное обеспечение баз данных, например, интерфейс Open Database Connectivity (ODBC) корпорации Microsoft, позволяет программам "общаться" на разных диалектах SQL, сетевых протоколов и собственных API, используя общие интерфейсы.

Хотя в индустрии разработки баз данных идет процесс стандартизации доступа к данным, по-прежнему существуют самые разнообразные частные механизмы доступа. Поэтому имеет смысл "замаскировать" собственные способы доступа слоями промежуточного обеспечения.

ODBC - это интерфейс на уровне вызовов (call level interface - CLI), разработанный в корпорации Microsoft для среды Windows, который использует 54 стандартных вызова API. ODBC способен перевести эти обращения на естественные диалекты многих СУБД с помощью специальных ODBC-драйверов.

EDA/SQL компании Information Builders представляет собой образец SQL-шлюза, который транслирует SQL-вызовы в формат обычного промышленного стандарта и протокол (FAP), реализуя тем самым стандартный протокол между клиентом и сервером. EDA/SQL может получить доступ к более, чем к 50 серверам реляционных и нереляционных баз данных, составляющих большинство в этой отрасли. Для доступа к слою EDA/SQL имеется даже ODBC-драйвер, который может обращаться к серверу баз данных, обладающему средствами работы с EDA/SQL.

TP-мониторы (см. соответствующую врезку) позволяют клиентам не только устанавливать связь с серверами, но и управлять транзакциями от клиента к серверу и в обратном направлении. Программы Tuxedo компании Novell и Top End фирмы NCR Corp., например, отличаются от традиционного промежуточного обеспечения. Они содержат служебные функции для слежения за транзакциями, распределения нагрузки, восстановления системы после сбоев и для обеспечения автоматического перезапуска серверов и очередей. TP-мониторы выделяют дл выполнения программ другое место и вводят многие системы клиент-сервер в мир трехзвенных систем.

MOM в отличие от RPC позволяет разработчикам поддерживать связь с серверами в асинхронном режиме и не приостанавливает работу клиентских приложений. Благодаря использованию сообщений и очередей MOM не требуется выделенного сетевого соединения и хорошо работает на медленных соединениях с РВС (региональным вычислительным сетям - WAN). Пример изделия MOM - сери программ MQ корпорации IBM.

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

В настоящее время идет процесс определени стандартов ORB для архитектуры Common Object Request Broker Architecture (CORBA) группы Object Management Group. Сейчас лишь несколько фирм, занимающихс разработкой промежуточного обеспечения типа ORB, например Teknekron, предлагают ORB для использования в качестве промежуточного обеспечения. Но этот сегмент рынка продолжает расти.


Путь к более масштабируемой архитектуре

РАБОТА СУБД НА БОЛЬШИХ ЭВМ

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

ПЕРВЫЕ СУБД ДЛЯ ЛВС

В самых ранних версиях СУБД для ЛВС работа с данными была организована таким образом: клиент запрашивал файлы у сервера и выполнял все процедуры по обработке.

При такой архитектуре коммуникационные линии чересчур загружены, а работа компьютеров-клиентов тормозится. При том, что этот подход прост и экономичен при реализации для небольших систем, подобная архитектура плохо поддается масштабированию и не позволяет использовать разные типы компьютеров-клиентов и операционных систем. ___ Файлы, передаваемые на машину-клиент | | для обработки | |-----> |___| | | Сетевой концентратор ___|_______________ |___________________| | | ____ | Файлы, передаваемые на сервер, |____|----> после проведения индексации и сортировки СИСТЕМЫ КЛИЕНТ-СЕРВЕР

В системе клиент-сервер клиент посылает запрос серверу. Обработка файлов происходит на сервере. Следовательно, нагрузка на систему коммуникаций сети незначительна. Слой программного обеспечения, осуществляющий трансляцию, называется промежуточным обеспечением (middleware) и допускает использование различных операционных систем и типов компьютеров. Архитектура показанного здесь сервера может быть различной: ПК, Unix-системы, большие ЭВМ и другие системы. Системы с архитектурой "клиент-сервер" успешно справляются с задачами и в небольших и в громадных вычислительных комплексах и обеспечивают возможность использования старых прикладных программ, созданных для больших ЭВМ. ___ |___| | Запрос к СУБД ______________ ------------------>| Сетевой | ------------------>| концентратор | _|_ Результаты |______________| | | | | | | Процессор СУБД проводит | | индексацию и поиск | | файлов в ответ на запрос |___| каждого клиента. \ ___ ___ |___| |___| Слой промежуточного обеспечени \ ___ / переводит SQL-запросы разных |___| клиентов на диалект процессора СУБД.


Терминология архитектуры клиент-сервер

Дэвид С. Линтикам

3GL (язык третьего поколения) - язык программирования, такой как Си, КОБОЛ, ФОРТРАН или Паскаль, предоставляющий разработчикам существенную гибкость ценой усложнения использования. Большинство языков 3GL способны выполнять такие тонкие задачи, как прямое манипулирование памятью и физический доступ к диску, что не по силам большинству языков 4GL. Однако языки 3GL сложны и требуют больших затрат времени на разработку прикладных программ.

4GL (язык четвертого поколения) - язык высокого уровня, при создании которого обычно используетс 3GL. Языки 4GL, проще в использовании, чем 3GL, как правило, им оказывают предпочтение при составлении программ обслуживания баз данных и применяют их обычно с популярными средствами разработки.

CORBA (Common Object Request Broker Architecture, стандартная архитектура брокера объектных запросов) - объектный стандарт, разработанный группой Object Management Group (OMG), который определяет интерфейсы между сетевыми объектами, позволяющие им работать совместно. Брокеры объектных запросов (object request brokers, ORB), созданные в соответствии с CORBA, представляют собой новую форму промежуточного обеспечения для разработки систем "клиент-сервер".

N-звенная модель (N-tier model) - система "клиент-сервер", которая использует средства разделения программ или распределенные объекты дл разделения вычислительной нагрузки среди такого количества серверов приложений, которое необходимо при имеющемся уровне нагрузки. При многозвенной модели системы количество возможных клиентских мест значительно больше, чем при использовании двухзвенной модели.

OLE-автоматизация (OLE automation) - процесс, позволяющий прикладной программе Windows (именуемой сервером автоматизации OLE) предоставлять свои функции в распоряжение других программ Windows (клиентов автоматизации OLE или контроллеров) с помощью общего интерфейса. Существует два типа серверов автоматизации OLE: внутренний (in-process) и внешний (out-of-process). Внутренний работает в том же самом адресном пространстве, что и приложение-клиент, обычно в форме DLL. Внешний запускается в отдельном адресном пространстве, а иногда на другом компьютере в сети.

Вызов удаленной процедуры (remote procedure call - RPC) - команда, которая позволяет разработчику запускать процедуры на удаленных серверах с помощью обращений к локальной процедуре. RPC приостанавливают выполнение прикладной программы до тех пор, пока функция не передаст требуемые данные.

Двухзвенная модель (two-tier model) - система "клиент-сервер", в которую входят компьютеры клиента и сервера. Клиент запрашивает данные у сервера, а сервер предоставляет данные. Большинство систем "клиент-сервер" построены с использованием этой модели, но двухзвенные модели способны обеспечить работу лишь ограниченного числа клиентов.

Интегрированный интерфейс разработки прикладных программ для баз данных (Integrated Database Application Programming Interface - IDAPI) - так же, как и ODBC, IDAPI служит промежуточным обеспечением для доступа к м разнородным базам данных. Плод совместных усилий компаний Borland, IBM и Novell, именно IDAPI был выбран в качестве промежуточного обеспечения для средств разработки в Delphi. Но IDAPI менее популярен, чем ODBC.

Клиент-сервер (client/server) - модель вычислений, в которой нагрузка по обработке прикладных программ распределяется между компьютером-клиентом и компьютером-сервером, совместно использующим информацию с помощью сети. Обычно клиент - это программное обеспечение конечного пользователя, выполняющееся на ПК и способное установить связь с сервером (обычно, сервером баз данных). Производительность при использовании модели "клиент-сервер" выше обычного, так как клиент и сервер делят между собой нагрузку по обработке данных.

Открытое подключение баз данных (Open Database Connectivity - ODBC) - компонент архитектуры Windows Open Services Architecture (WOSA), обеспечивающий доступ к разнообразным базам данных путем добавлени слоя своего собственного API поверх слоя собственно СУБД, тем самым упрощая доступ. Разработчику имеет дело только с одним API для доступа к многочисленным серверам баз данных, потому что ODBC способен переводить стандартные обращения к его функциям на множество диалектов, естественных для различных СУБД.

Промежуточное обеспечение (middleware) - программное обеспечение, которое расположено между клиентом и сервером для содействия процессам обмена информацией. Промежуточное обеспечение предоставляет разработчикам простые в использовании API дл доступа к удаленному серверу. Оно избавляет разработчиков от необходимости вникать в сложности устройства ГИП, операционной системы, вычислительной сети и сервера баз данных. Примеры обеспечени такого рода: DCE, IDAPI, MOM, ODBC и RPC.

Промежуточное обеспечение, ориентированное на обработку сообщений (message-oriented middleware - MOM) - промежуточное обеспечение, которое для обмена информацией использует сообщени и очереди. В отличие от RPC, MOM позволяет прикладным программам продолжить обработку прежде, чем завершится обращение к удаленным службам. Более того, MOM лучше приспособлено для относительно медленных вычислительных сетей, таких как РВС (региональные вычислительные сети - WAN) и Internet. В настоящее время ассоциация Message-Oriented Middleware Association(MOMA) совместно с несколькими изготовителями проводит разработку стандартов дл индустрии MOM.

Разделение программ (application partitioning) - процесс разбиения прикладных программ "клиент-сервер" на части, которые будут выполнятьс на клиенте, сервере и, в некоторых случаях, на сервере приложения.

Связывание и встраивание объектов (Object Linking and Embedding - OLE) - определенный корпорацией Microsoft стандартный метод обмена информацией между прикладными программами Windows. Если главные программы (известные как контейнеры) содержат ссылки на OLE-объекты, то происходит связывание их с этими объектами. Встраиваемый объект, в свою очередь, содержит актуальную копию объекта.

Сервер баз данных (database server) - система, которая получает запросы от программ-клиентов по вычислительной сети и передает в ответ запрашиваемые данные (набор ответов). Каждый сервер баз данных состоит из компьютера, операционной системы и программного обеспечения сервера СУБД.

Система управления реляционными базами данных (РСУБД, relational database management system - RDBMS) - лежащая в основе базы данных прикладна программа, которая хранит информацию в двумерных таблицах, связанных общими свойствами. Для создания, манипулирования и извлечения данных из реляционных баз данных используется язык SQL.

Среда распределенных вычислений (Distributed Computing Environment - DCE) - группа функций независимого от платформ промежуточного обеспечени компании Open Software Foundation, обеспечивающее совместную работу распределенных программ. В состав DCE входит следующие функции: обслуживани распределенных файлов, присвоения имен, контроля за временем, обслуживания потоков, дистанционного вызова процедур и обеспечения безопасности.

Средства разделения программ (application-partitioning tools) - функции программ, предназначенных для создания систем, с помощью которых разработчики осуществляют динамическое распределение частей программы "клиент-сервер" между несколькими серверами приложений. Если возможности системы "клиент-сервер" исчерпаны, разработчики могут подключить дополнительные серверы дл выполнения на них прикладных программ.

Трехзвенная модель (three-tier model) - система "клиент-сервер", в которой промежуточное звено (компьютер) помещаетсямежду компьютером-клиентом и компьютером-сервером двухзвенной модели. Промежуточное звено, обычно работающее как монитор обработки транзакций (TP) или брокер объектных запросов, предоставляет другое место для выполнени программы. C помощью трехзвенной модели разработчики могут обеспечивать работу намного большего числа клиентов, чем при использовании двухзвенной модели.

Управляющий элемент Visual Basic (Visual Basic Control - VBX) - фрагмент исполнимого кода, который соответствует стандарту интерфейса Microsoft Visual Basic. Эти заготовленные компоненты прикладных программ обеспечивают дополнительные функциональные возможности. Хотя впервые VBX были использованы в Visual Basic, они применяются и в других средствах разработки. OCX или настраиваемые элементы управления OLE (OLE Custom Controls) предназначены для замены элементов VBX в ближайшем будущем.

Язык структурированных запросов (Structured Query Language, SQL) - язык для доступа к данным реляционной базы, созданный компанией IBM. Большинство процессоров серверов СУБД используют SQL в качестве стандартного способа доступа к данным из приложений-клиентов.


Рассматривая компонентную модель объекта

Дэвид С. Линтикам

Идея проста. Вместо того, чтобы строить прикладные программы с нуля разработчики составляют их из заранее подготовленных компонентов. Но широко принятого стандарта для построения компонентов программ не существует.

Так что же делать разработчикам? Возможно, кого-то устроит основанная на использовании OLE компонентная модель объектов (Component Object Model, COM) корпорации Microsoft, в действительности представляющая собой брокер объектных запросов (Object Request Broker, ORB) для OLE. COM определяет интерфейсы между объектами компонентов OLE в рамках прикладных программ. COM является непосредственным конкурентом разработанной группой Object Management Group (OMG) стандартной архитектуре брокеров объектных запросов (Common Object Request Broker Architecture, CORBA) и ее реализации компонента - OpenDoc.

COM все еще считается неустоявшейся технологией. Но несмотря на это, число средств разработки, использующих спецификацию COM, с каждым месяцем увеличивается. Неудивительно, что производятся они, в основном, корпорацией Microsoft, в том числе Visual Basic и Visual Cи++. COM -- это четкое направление для многих прикладных программ и сред разработки, которым необходимы преимущества метода разработки на компонентной основе. По мере усложнения и специализации программного обеспечения, разработка с использованием готовых компонентов может оказаться единственным способом управлять этим запутанным хозяйством без риска разрушить их.

Однако в отличие от CORBA, в объектной модели COM не предусмотрено множественное наследование, которое позволило бы осуществлять более тонкую настройку компонентов. Тем не менее COM способна обеспечивать работу с несколькими интерфейсами и повторное использование компонентов под управлением механизма агрегации. Агрегация означает, что компонент может инкапсулировать служебные функции других компонентов, тем самым меняя характеристики данного компонента.

Хотя COM представляет собой ORB для одного компьютера, в корпорации Microsoft ведется работа по подготовке методов размещения OLE-объектов в вычислительной сети с помощью механизма распределенного OLE. Это позволит OLE-компонентам запрашивать и получать другие доступные через сеть OLE-компоненты так, словно они существуют локально. Например, новая версия Visual Basic 4.0 обеспечивает возможности работы с ранней версией распределенного OLE. Возможности взаимодействия прцессов (interprocess communication - IPC) в COM организуются через RPC.

Для использования COM при создании программ на основе компонентов разработчики должны сначала получить среду разработки или программы, соответствующие стандарту COM/OLE. После этого остается только приобрести у независимых изготовителей компоненты, необходимые для прикладной программы, и самостоятельно подготовить те компоненты, которых нет в готовом виде (если нужно), а затем состыковать их.

По мере возрастания спроса на COM-компоненты уже разработаны и доступны различные их виды, начиная с коммуникационных программ до средств просмотра (браузеров) Web.


Клиент-сервер и (что ж еще?) Internet

Дэвид С. Линтикам

World Wide Web - это превосходная модель широкомасштабной частнособственнической индустрии "клиент-сервер". Все клиенты Web выплняют стандартные программы конечного пользователя (такие, как Netscape), и все позволяют работать с языком HTML. Все клиенты и серверы Web используют слой стандартного промежуточного обеспечения HTTP и их взаимодействие друг с другом не зависит от используемого аппаратного обеспечения и ОС. Эта инфраструктура существует довольно давно и конечные пользователи умеют пользоваться ею. Ниже даетс краткий обзор того, как мы сегодня применяем архитектуру "клиент-сервер" в Web и как это будет происходить завтра.

Клиент-сервер и сейчас составляет большую часть Web. Клиенты Web могут устанавливать связь с сервером, который, в свою очередь, связывается с сервером баз данных, чтобы предоставить все виды информации клиентам. Обычно эти функции осуществляются с помощью протокола Common Gateway Interface (CGI). CGI расширяет возможности HTML, более пригодного для обработки текстов и изображений, чем для работы с информацией вообще.

Большинство серверов Web, такие как httpd фирмы NCSA и httpd центра CERN, обладают возможностью работы с CGI. С помощью CGI разработчики могут создавать многочисленные сценарии на разных языках программирования (в том числе на Си++ и Perl). Сценарии, деятельность которых не зависит от сервера Web, предоставляют информацию клиентам Web простым для восприятия способом.

С помощью поисковых процессоров (search engines) CGI-сценарии также предоставляют шлюзы для работы с базами данных клиент-сервер. Информация, полученна этими процессорами из посланных клиентам HTML-форм, передаются ими CGI-сценарию, который, в свою очередь, посылают ее серверу баз данных в форме SQL-предложений. Когда сервер баз данных отвечает на этот запрос, CGI-сценарий преобразовывает результаты в HTML-документ, который посылает обратно клиенту.

Появление языка Java и конкурирующей стратегии OLE для Web корпорации Microsoft вместе с уже имевшимися многочисленными инструментальными средствами для Internet привели к тому, чторазработка программ клиент-сервер в Web становится нашим любимым занятием. Java придает истинную функциональность браузерам (средствам просмотра) Web, позволяя разработчикам утилит создавать такие динамические программы, как финансовый калькулятор и мультфильмы. Утилиты на языке Java содержат свое собственное промежуточное обеспечение, предоставляющее им связь с серверами таких ресурсов, как оперативная финансова информация или результаты спортивных соревнований. Отличие Java от подходов HTML и CGI заключается в том, что ее однажды загруженные утилиты способны напрямую связываться с серверами баз данных в Internet. Им не нужен в качестве промежуточного звена сервер Web.

Предлагаемый JavaScript в действительности представляет собой упрощенный вариант Java. С его помощью люди, не имеющие навыков программирования, могут быстро создавать модули на языке Java. В пакете LiveWire Pro компании Netscape в JavaScript добавлены возможности подключения к высокопроизводительным серверам реляционных баз данных, в том числе к Oracle и Sybase. Программа прсмотра Web-браузер фирмы Netscape -Navigator 2.0 - позволяет работать с Java, а в программе Netscape Navigator Gold появились возможности использовани JavaScript.

Чтобы не отстать от компании Sun, корпораци Microsoft объявила в декабре прошлого года, что тоже предоставит простой в использовании стандарт разработки систем клиент-сервер для Web. Microsoft рассчитывает, что обновленная версия ее удачного программного компонента OLE с улучшенными средствами обеспечения безопасности предоставит те же функции, что и программы на языке Java. Новые элементы управления OLE (OCX) позволяют пользователям создавать свои собственные компоненты OLE с помощью существующих средств разработки, в том числе Visual Basic и Visual C++. Исключительная мощь Microsoft, возможно, продвинула бы OLE для Internet за пределы возможностей Java. Но готовящийся к выпуску Web-браузер Microsoft - Explorer 3.0 - будет одним из немногочисленных средств просмотра, разработанных в соответствии с Internet-стратегией этой корпорации. Internet Information Server (IIS) корпорации Microsoft, который планируется выпустить к тому времени, когда вы будете читать эти строки, обеспечивает интеграцию с другими прикладными программами пакета Microsoft BackOffice.


Три звена распределенных вычислений

Дэвид С. Линтикам

Традиционная схема клиент-сервер проста: клиент посылает запросы, а сервер на них отвечает. Поскольку клиент и сервер часто представлены разными компьютерами, они способны расщеплять - или разделять - вычислительную нагрузку, что позволяет выполнять работу быстрее. Клиент осуществляет интерфейс и взаимодействие с пользователем. Сервер (обычно сервер баз данных) обрабатывает запросы клиента. Большинство разработок систем клиент-сервер относятся к этой традиционной двухзвенной модели.

Но хотя двухзвенная модель клиент-сервер прекрасно подходит для небольших программ на уровне рабочей группы при числе пользователей менее 100 (конечно в зависимости от того, что делают прикладные программы), в большинстве двухзвенных систем невозможно существенно увеличить это число. Операционная система сервера оказывается настолько загруженной управлением многочисленными подключениями к серверу, что просто "умирает от истощения".

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

Мониторы обработки транзакций (или просто мониторы транзакций, Transaction-processing - TP) составляют движущую силу промежуточного звена и служат основой большинства трехзвенных систем клиент-сервер. TP-мониторы, такие как CICS/6000 корпорации IBM, Top End фирмы NCR и Tuxedo компании Novell, предоставляют программам различные сервисные функции, включая возможности маршрутизации транзакций между разнообразными системами, уравновешивание нагрузки, управление потоками и перезапуск систем и транзакций после сбоев.

TP-мониторы - это не просто промежуточное обеспечение для обработки предметной информации, их можно разместить в любом месте, они способны подключаться к серверам баз данных. Как подразумевает их название, TP-мониторы разделяют сложные прикладные программы на более мелкие модули, или транзакции, и гарантируют завершение транзакций. Наиболее важная особенность TP-монитора - его способность пропускать запросы к базам данных. Трехзвенная система клиент-сервер с использованием TP-монитора способна управлять запросами к базе данных более, чем от 1000 пользователей, с помощью всего лишь небольшого числа соединений с базой данных.

Но берегитесь: разработка систем клиент-сервер, использующих TP-мониторы, - сложная задача. Большинству популярных сегодня средств клиент-сервер на основе 4GL неизвестно, как организовать взаимодействие с TP-мониторами, но даже если и известно, то все равно разработчикам необходимо научиться созданию прикладных программ без прямого доступа к схеме базы данных.

TP-мониторы не единственное третье звено. Средства разделения программ и распределенные объекты обеспечивают возможности масштабирования, присущие многозвенной модели. Средства разделени программ, такие как Dynasty фирмы Dynasty Technologies и Forte компании Forte Software, позволяют разработчикам динамически делить логически единые программы между несколькими звеньями (или серверами). Поскольку вычислительная нагрузка распределяется между различными процессорами, разделение программ обеспечивает максимально возможную масштабируемость системы клиент-сервер.

При использовании средств разделения программ разработчику необходимо только спроектировать программу на отдельном ПК клиента, а затем переместить ее части (объекты программы) на любой сервер, доступный сети. Это делается простым переносом с помощью мыши объекта программы на пиктограмму сервера. В фоновом режиме средства разделения программ для выполнения обработки генерируют и компилируют на целевых серверах код не естественном языке 3GL. При использовании разделени программ число звеньев ограничено лишь числом имеющихся компьютеров.

Хотя сегодня в многозвенных системах разработки клиент-сервер применяются TP-мониторы и средства разделения программ, весьма вероятно, что в будущем для распределенных систем клиент-сервер предпочтительным механизмом могут стать распределенные объекты. Основная идея заключается в том, чтобы стандарты двоичных объектов позволяли различным объектам различных производителей, запущенным на различных платформах, работать вместе для создания многозвенных программ клиент-сервер.

Трехзвенная система Программы мониторов обработки транзакций (TP) - это по существу изощренное промежуточное обеспечение, которое удерживает и управляет запросами и ответами в этом потоке между клиентами и серверами баз данных. В такой трехзвенной модели TP-монитор способен <-- уравновешивать нагрузку на серверы ____________ | обрабатывать части транзакций. | Сервер на | | | основе | | __ Сервер ---| большой ЭВМ| Задачи по | |__|----- обработки | |____________| обработки | | транзакций | Поисковый/ / баз данных | __ | ___ | ответ / / | |__|--- | Поисковый | | | / /Поисковый | _|_|________ запрос | | __|____/__/_ запрос ->__ |Сетевой |----------| |---|Сетевой | |__|-|концентратор|Поисковый |___| |концентратор| |____________|ответ | |____________|Поисковый | | | | \ \ запрос __ | | _____|______ |Поисковый \ |__|--- _|_ | Программное| | ответ \ \ | | | обеспечение| | _______\__\ | | | обработки | | | Сервер на | Задачи по |___| | транзакций | ---| основе | обработки Сервер |____________| | ПК | баз данных |___________|

Выбирайте ОС соразмерно задачам

Дэвид С. Линтикам

Масштабируемость операционных систем (ОС) особенна важна при вычислениях в среде клиент-сервер. ОС должна легко справляться с возрастающей нагрузкой от процессора и пользователей по мере происходящего со временем неизбежного роста прикладных программ. При увеличении нагрузки обычно именно сервер"увязает в болоте". Интересно, что верхний предел возможностей сервера баз данных в действительности зависит от того, какие действи предпринимают клиенты. Например, даже небольша группа клиентов, занятых составлением отчетов или использующих средства OLAP, способна быстро "поставить на колени" даже самый мощный сервер баз данных.

Серверы баз данных - это "прожорливые" программы, сильно нагружающие ОС и процессоры. Операционные системы серверов должны обеспечивать такие новаторские функции как защита памяти, семафоры, высокопроизводительные файловые системы и управление виртуальной памятью, а также разделение на потоки, многозадачность и взаимодействие процессов (interprocess communication - IPC). Вся эти функции нужны, поскольку при каждом подключении клиента к серверу или процессу запускается поток, обеспечивающий связь. Для каждогому соединению требуются память и ресурсы процессора только дл обслуживания связи, не считая того, что необходимо для выполнения запроса к базе данных.

Именно такое двухзвенное ("один-к-одному", "клиент-на-связи") отношение ограничивает возможности сервера к масштабированию. По мере подключения новых клиентов ресурсы ОС сервера могут быстро истощаться. Обычно большинство серверов баз данных способны обслуживать не более 100 подключений одновременно. Верхний предел возможностей сервера зависит от архитектуры процессора, числа установленных процессоров и используемой ОС.

В мире клиент-сервер преобладают два типа архитектуры процессоров серверов: RISC и Intel. RISC представляет собой традиционный вариант выбора дл Unix-серверов - например, серии RS/6000 компании IBM, работающей под управлением AIX, и серии 9000 фирмы Hewlett-Packard, работающей под управлением HP/UX. Но ситуация меняется. Windows NT работает не только на компьютерах на базе процессоров Intel, но также на RISC-системах. Вообще говоря, RISC-серверы по производительности немного превосходят серверы на базе Intel-процессоров, но они стоят от 15 до 50 тысяч долларов.

Серверы на базе процессоров Intel также быстро наращивают мощность. С появлением процессора Pentium, использующего суперскалярную RISC-подобную технологию, платформа Intel наступает на пятки RISC-системам. При этом многие современные ОС, в том числе несколько вариантов Unix, работают на Intel-машинах. С учетом этого Unix со временем может уступить место Windows NT, в которой широкие возможности Unix сочетаются с простотой использования Windows.

Предел масштабируемости сервера баз данных - это многопроцессорный сервер и ОС, которая работает на нем. Многопроцессные версии Unix и Windows NT позволяют работать на многопроцессорной аппаратуре, равномерно распределяя нагрузку между процессорами.