Теория и практика построения баз данных (1088289), страница 112
Текст из файла (страница 112)
14.3 це создает фарм, отчетов илп меню, а выполняет исключительно функции ядра — прием ЯО).-запросов и обработку строк в таблицах, как описывалось в предыдущих двух главах. На рис. 14.3 показаны стандарты и интерфейсы прикладных программ, которые используются при передаче данных между сервером базы ланпых и и еЪ-сервером, ООВС, 01.Е РВ и АПО будут рассматриваться нами в главе 15, а)ОВС— в главе 16. В данный момент следует смотреть на этн стандарты просто как на способ передачи ЯО) -кода и отношений между тчеЬ-серверозг и сервером базы данных.
ЖеЬ-сервер (тчеЬ зегчег) выполняет три основные функции. Ва-первых, это НТТР-сервер: оп обрабатывает протокол НТТР, принимая запросы и генерируя отклики в формате НТТР. Во-вторых, на ччеЬ-сервере располагаются сценарный интерпретатор (зсг!рг!пя с/тягле), что позволяет разработчикам писать кад на УВЯспрг и )ачаЯспр( и запускать ега на тчеЬ-сервере. Наконец, в приложениях баз данных третьей фупкциеп тчеЪ-сервера является создание, чтение, обновление и удаление экземпляров представлений, как описывалась в главе 10. Не следует забывать о разнице между отношением и представлением — представления строятся из отношений. Браузер в приложениях баз данных выполняет трп функции, аналогичные функциям тчеЬ-сервера.
Во-первых, браузер является НТТР-клиентом: он генерирует запросы на страницы и на различные действия. Во-вторых, он содержит сценарный интерпретатор, позволяюпшй запускать сценарии на клиентской машине. Наконец, браузер материализует представления, преобразуя НТМ1.
или другой язык разметки в содержикгое окна на экране. Эта архитектура дает возможность запускать сценарии как на клиентском компьютере, так и на |чеЪ-сервере. Одна из важных задач при разработке приложения, использующего интернет-технологии, — определить, какую работу на какой машине выполнять. Поскольку браузеров много, а сервер только один, желательно поручать как можно больше работы клиенту. Однако если клиенту то и дело приходится обращаться к тчеЬ-серверу за данными для своих вычислений, преимущества клиентской обработки могут быть сведены па нет величиной задержки на передачу запроса и ожидание откллка.
Кроме того, клиентский код должен быть передан браузеру в НТТР-сообщенин. Болыпие фрагменты кода потребуют длительного времени для загрузки, Хорошее практическое правило продемонстрировано на рпс. 14.3: сценарии на клиентской стороне следует использовать для материализации представлений. Для создания, чтения, обновления и удаления представлений следует использовать серверные сценарии. Непосредственные вычисления (Стоимость = Количества х Цена) обычно выполняются в браузере. Многоуровневая архитектура 523 Обработка на сервере с помощью сервпетов Зача ,,)ЗР (и чача) ° Рег( ипи другого сценарного языка ° специально разработанной программы на чача ипи С++ работка на чавспрг Взспрг йт-када ча ементов уп ере с помощью атка на кпиенте с памо1дью прг ав и байт-кода Зача аления Ас1ыеХ ботаннсй а ипи С++ Специально разработанная программа Арасье ипи Негвсаре Зегчег СС1-сценарии Рег(, РНР АЗР о Сервер базы данных ГЗАР( ипи НЗАР(К Специально разработанная программа Арасье Тагпса1 (обработчик сервпетов и ЗЗР) ' НТМ1 ' ОНТМ1 ' ХМ1.
Сервпеты Зача ууеЬ-сервер НТМ(. ОНТМ(. Хм(. Оп(к (Ыпцк) ууеЬ-сервер * ЗОВС ° Вызовы собственных интерфейсов СУБД ° ООВС 522 Глава 14. Сети, многоуровневые архитектуры и ХМ( )(ЧеЬ-сервер под управлением ЪЧ1пбоив 2000 На рис. 14.4 изображены стандарты и языки, обычно используемые, когда лнеЪ- сервер работает под управлением операционной системы %')плотна 2000. В этом случае роль НТТР-сервера почти всегда будет играть ПЯ, поскольку эта система является частью Ю!пг(огнз. ПВ предоставляет интерфейс под названием 1ЯАР! (1псегпег Яегнег Аррйсаггоп Ргопгаш !пгег1асе, интерфейс прикладных программ Интернет-сервера), с помощью которого друпге программы могут перехватывать и обрабатывать НТТР-сообщення.
Одной из таких программ является АВР (Аст(не Яегнег Ргосеззог, обработчик активных серверных странцп). Он обрабатывает все нчеЬ-страницы с расширением .азр, Когда ПЯ получает такую страницу, она посылает ее АКР через интерфейс 1ЯАР1. АЯР обрабатывает страницу и генерирует отклик, который передается ПВ через 1ЯАР! и далее посылается клиенту. ° ООВС ' АОО ° ОЬБ/ОВ «Вызовы собственных интерфейсов СУБД Рис. 14.4. Стандарты и языки, наиболее часто используемые на сервеРах пад управпением ПО М)сказов АЯР содержит сценарные интерпретаторы, поэтому АЯР-страгнгпы могут содержать операторы !аналог!рц 'лгВЯсг!рц Рег! и других сценарных языков.
АВР выполнит этн операторы при обработке страницы. Кроме того, в страницу могут быть встроены элементы управления АсбнеХ (АсггнеХ сопсго!з), и они также будут вызываться при обработке страницы. АЯР— не единственная программа, которая может использовать интерфейс !ВАР!. Разработчики программ на языках Сее и !ача могут создавать собственные программы для обработки НТТР-сообщений, вместо того чтобы работать с АЯР.
При использовании а еЬ-сервера М(сгозо(( в качестве стандарта доступа к даггным будет, скорее всего, использоваться 01)ВС, А1)О пли ОЬЕ 1)В, поскольку эти стандарты поддерживаготся н пропаганлируются М!сгозо(т. ЪЧеЬ-сервер под управлением Оп1х и Е!пих На тнеЬ-сер)гарах, работающих под управлением 1)п!х или 1зпвх (рис. 14.5), в ка- честве НТТР-сервера используется не ПВ, а Арас1ге,)л)егзсаре "чг'еЬ Вегнег и по- добные нм продукты.
Арасйе — наиболее популярный и мире тче!>-сервер, отчасти благодаря тому, что он является бесплапгым. Информацию об АрасЬе вы лгожете найти на сайте чгиггч.арасйе.ото. Рис. 14.б. Стандарты и языки, наиболее часто используемые на серверак под управлением (гп(к В прошлом приложения, занимающиеся обработкой НТТР-запросов на АрасЬе и подобных ему серверах, широко испольэовали шперфейс под названием СС! (Сопппоп Оатеччау 1птет1асе, общий шлюзовый интерфейс), Он обладал тем недостатком, что для каждого пользователя в память загружалась одна копия программы-обработчика.
Если 100 пользователей обращались к одному и тому же сценарию, то в память загружались 100 копий сценария. Такая ситуация недопустима при той рабочей нагрузке, которая существует на коммерческих сайтах. Как вы узнаете из главы 16, это не единственная проблема, связанная с СО1. Многоуровневая архитектура 525 Сервер базы данных Обработчик распределеннаи базы данных предприятия 524 Глава 14. Сети, многоуровневые архитектуры и ХМ!. На сегодняшний день для обработки приложений баз данных чаще всего используются сервлеты )ана (!ана яегн!етя) или )ЯР ()ана Дегнег Радея), или н то н другое вместе.
Эти технологии требуют наличия программного обеспечения, реализующего спецификации сервлетов (ана или!ана Яегнег Радея. Базовый сервер АрасЬе этого не делает, но при содействии организации АрасЬе был разработан продукт под названием АрасЬе Тошсаг, в котором зти спецификации реализованы. Топшац подобно АрасЬе, является бесплатным (игигнг.)а!гаггадогпса1.огй).
То1псаг можно запустить как автономньш ннеЬ-сервер для тестирования приложения, а для высокопроизводительных ннеЬ-приложенпй можно настроить его на работу вместе с АрасЬе. Еше один бесплатный продукт, который можно использовать отдельно для тестирования сервлетов и (ЯР-страниц, — это !анаДегнег ЮеЬ 1)ене1орп1епг К!г. Есть и другие продукты с похожими характеристиками.
Поищите в ЮеЬ информацию по (ана дегн!ег 2.2 и !анадегнег Радея 1.1. Мы будем подробно обсуждать использование этих продуктов в главе 16. Следует заметить, что между технологиями АКР и )ЯР есть существенная разинца. В АКР вы можете использовать любой поддерживаемый сценарный язык, например УВЯспрг илн (ал аДспрц однако напрямую вставлять код на Сне или )ана в АВР-страпицу нельзя. В отличие от этого, в )ДР весь код пишется на !ана; даже если вы пишете всего лишь маленькие фрагменты кода, эти фрагменты состоят из операторов )зла.
АрасЬе и другие 1)п1х-серверы также поддерживают 1ДАР1. и существуют версии АДР, которые могут работать с этими продуктами. Конечно, если в АДР- страницах используются элементы управления АсггнеХ и другие компоненты М1сгояо(г, онн не будут работать правильно (или вообше не будут работать). Серверы Ыегясаре предоставляют свой собственный интерфейс — КДАР1, выполняющий аналогичные 13АР! функции. При обращении к базам данных нз программ на !ана чаше всего используется технология 11)ВС. Существуют также мосты от )РВС к ОВВС, облегчающие для программ на 1ана использование драйверов ОВВС.