Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

.pdf
Скачиваний:
5019
Добавлен:
14.05.2016
Размер:
14.64 Mб
Скачать

15.V l / е Ь - п р и л о ж е н и яи Web-серверы

583

Чомпькнер-сериер ЬД

TCRIP

 

 

д

 

 

Источник

 

 

Сврээр БД

 

 

 

 

данных

 

 

 

 

 

 

TCP/IP

 

 

 

Комгьюгйр-Сйрвйр

 

Л. Сервер прапсмэний

припо>м&ний

 

 

Компьютер попьэозатепя

 

 

 

Г н А —

 

 

 

Интернета

 

 

 

 

 

SQL-janpat

 

 

 

Модули эасшиэения

 

 

 

 

 

Модули расojирек'йя"

Компьютер

обозревателя

 

 

врверс

Wet сврЕврч

 

 

 

HTML-cipii-njs

т

 

U3I. lArpjo

 

URL

 

^

 

 

 

 

 

^еЬобозреватепь

HTWI-

Webcepeep

 

HTML

 

ctp«H*4l

 

 

 

 

TCP/ Р

Рис. 15.7. Архитектура многоуровневого Web-приложения

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

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

Основные достоинства многоуровневой архитектуры Web-приложений заключаются в следующем:

разгрузка Web-cepeepa от выполнения части операций, перенесенных на сервер приложений и уменьшение размера модулей расширения сервера на основе разгрузки их от лишнего кода;

обеспечение более гибкого межплатформенного управления между Webсервером и сервером БД;

упрощение администрирования и настройки параметров сети — при внесении изменений в программное обеспечение или конфигурацию сервера БД не нужно вносить изменения в программное обеспечение Web-сервера.

584

Часть 4. Публикация баз данных в Интернете

При функционировании Web-приложений с использованием многоуровневой архитектуры сохраняется возможность параллельной работы Web-обо- зревателей и клиентских приложений БД (рис. 15.8).

Компьютер пользователя интоанетэ

Клиентское приложение

БД

Компьютер пользователя интренега

Модули расширения

обозревателя

Ме-СьоСоэреште-т.

TCP/IP

К0МПмЮ^р-01?р90р БД

 

 

 

Сервер ГД

ИСТОЧНИК

 

 

данных

TCP/ IP

 

Компыегор-сорэер

 

приложений

 

ЗГ Серэер приложений

 

 

 

МОДУЛИ р5С1НИрвНИЯ

Компьютер

 

сервера

Webсервера

URI

JRL-запрос HTML-станица

 

i

HTML

HTML-мрачила

Wob-copoep

TCP/IP

Рис. 15.8. Архитектура смешанного Web-приложения

В этом случае говорят об архитектуре смешанного Web-приложения. При такой архитектуре Web-приложения и клиентские приложения БД могут параллельно получать доступ к источнику БД.

Web-приложения на основе CORBA

Архитектура современных Интернет-приложений — это трехзвенная модель с использованием клиент/серверной архитектуры и интерфейса CGI. Однако использование CGI-интерфейса для объектно-ориентированных клиентов Java не эффективно, из-за того, что этот интерфейс достаточно медленный и не обладает требуемой гибкостью. Отметим, что попытки некоторых фирм-разработчиков программного обеспечения серверов оживить CGI, внедряя в него серверные API, являются тупиковыми.

Одним из перспективных направлений развития интранет-сетей является использование технологии CORBA (Common Object Request Broker Arhitectur — общая архитектура брокеров объектных запросов) в сочетании с технологией Java-апплетов. CORBA представляет собой шину (интерфейс) распределенных объектов с открытыми стандартами, используемую в клиент/серверных системах. Эта технология явилась результатом работы консорциума OMG

15.Vl/еЬ-приложенияи Web-серверы

585

(Object Management Group — группы управления объектами). Единственной конкурентоспособной технологией, обладающей аналогичными возможностями, является технология DCOM (Distribute Common Object Model — распределенная модель объектов общего применения), разработанная фирмой Microsoft.

Технология Java предполагает большую гибкость при разработке распределенных приложений, но в полной мере не поддерживает технологию клиент/сервер. Интерфейс CORBA позволяет обеспечить связь переносимых приложений Java и объектов CORBA. Технология объектов CORBA предназначена для использования в Web-приложениях вместо CGI-интерфейса.

В результате объединения Java-апплетов и CORBA-интерфейса появилось новое понятие — объектная модель Web, означающая использование объектных моделей различных интерфейсов (модели CORBA, ADO и др.) при построении Web-приложений. Архитектура такого многоуровневого клиент/ серверного Web-приложения, построенного на основе технологии CORBA и Java приведена на рис. 15.9.

Рис. 15.9. Архитектура многоуровневого Web-приложения на основе технологии CORBA

На первом уровне находится клиентское приложение — обозреватель. В обозревателе выполняется клиентский Java-anmieT, из которого может осуществляться обращение к объектам CORBA.

586 Часть 4. Публикация баз данных в Интернете

На втором уровне находится Web-cepeep, обрабатывающий HTTP-запро- сы и CORBA-вызовы клиентских приложений.

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

Объекты CORBA взаимодействуют с серверами БД последнего уровня, используя, например, SQL в случае реляционных БД. Кроме того, объекты CORBA на сервере могут взаимодействовать и друг с другом. В основе механизма взаимодействия между объектами CORBA лежит протокол ПОР (Internet Inter-ORB Protocol — Интернет-протокол взаимодействия ORB). Протокол ПОР основывается на протоколе TCP/IP с добавленными компонентами обмена сообщениями и функционирует как общий опорный протокол при организации взаимодействия серверов ORB и объектов CORBA. В дополнение к ПОР в технологии CORBA используются ESIOP-протоколы (Enviroument-Specific Inter-ORB Protocols — зависящие от среды протоколы взаимодействия ORB), которые применяются в специализированных сетевых средах.

Java-клиент может непосредственно взаимодействовать с объектом CORBA, используя Java ORB. При этом серверы CORBA замещают уровень HTTP-сервера и выступают в качестве программного обеспечения промежуточного уровня, обеспечивая взаимодействие между объектами (object-to- object). Интерфейс CORBA ПОР функционирует в сети Интернет так же, как и протокол HTTP.

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

Серверный компонент CORBA предоставляет «настраиваемый» интерфейс, который можно конфигурировать с помощью визуальных средств. CORBAобъект обладает определенными функциональными возможностями, реализует инкапсуляцию свойств и методов и генерируемых объектами событий. Можно создавать целые ансамбли объектов, «стыкуя» выходные события с входными методами. Разработка таких визуальных объектов поддерживается средствами быстрой разработки приложений — RAD (Rapid Application Development). В частности, CORBA-объекты поддерживаются в системах RAD C++Builder, JBuilder и Delphi.

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

15.Vl/еЬ-приложенияи Web-серверы

587

которому CORBA может получить доступ. Сюда входят процедурные мониторы транзакций (TP Monitors), MOM (Message-Oriented Middleware — промежуточное программное обеспечение, ориентированное на обмен сообщениями), ODBMS (ODBMSобъектные СУБД), электронная почта и т. д.

В настоящий момент интерфейсы CORBA/HTTP поддерживается почти всеми серверными платформами, включая Unix, NT, OS/2, NetWare, MacOS, OS/400.

Рассмотрим механизм функционирования Web-приложения при использовании технологии Java-апплетов и объектов CORBA.

Для начала работы с Web-приложением в Wcb-обозреватель загружается главная HTML-страница, которая содержит встроенные апплеты Java. При этом Java-апплеты и используемые в апплете Java-классы подгружаются с Web-cepeepa при открытии HTML-страницы. Причем Web-обозреватель формирует запрос Web-cepeepy на поиск Java-апплета ил требуемого Javaкласса. Web-cepeep находит апплет и загружает его в обозреватель в форме байт-кода. Web-обозреватель при загрузке апплета сначала запускает систему безопасности реального времени Java. Для вызова апплетом серверных объектов CORBA используется IDL-сгенерированный клиентский стаб (Interface Definition Language — пассивный язык написания интерфейсов), который позволяет вызывать объекты сервера ORB или может использоваться интерфейс динамических вызовов CORBA DII (Dynamic Invocation Interface) для генерации запроса к серверу при выполнении апплета.

Объединение технологий CORBA, Java и Интернета обеспечивает приводимые ниже достоинства.

Масштабируемость и устойчивость Web-приложения, заключающиеся

втом, что серверы Web и ORB могут взаимодействовать с использованием CORBA ORB. При этом объекты ORB могут выполняться на нескольких серверах для обеспечения баланса нагрузки (load-balancing) серверов для входящих клиентских запросов. ORB может отправить запрос первому доступному объекту, а также увеличить число доступных объектов по необходимости. CORBA позволяет объектам сервера действовать последовательно, используя транзакции и связанные сервисы CORBA. В отличие от технологии CORBA, интерфейс CGI при большом количестве запросов не имеет возможности распределить нагрузку между несколькими процессами или процессорами.

Гибкость архитектуры CORBA позволяет клиентам непосредственно вызвать методы на сервере. Клиенты передают параметры напрямую, используя прекомпилированные стабы, или генерируют их во время выполнения апплета, используя сервисы динамических вызовов CORBA DII. Можно вызывать на сервере любой метод, определенный с помощью IDL, а не только один метод, описанный посредством HTML, можно передавать любые типизированные параметры вместо обычных строк.

588

Часть 4. Публикация баз данных в Интернете

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

CORBA расширяет объектную модель Java для распределенной среды и позволяетJava-апплетам вызывать широкий спектр определенных на IDL операций на сервере. В противоположность этому, клиенты HTTP ограничены небольшим набором операций. Приложения серверной части — это обычные объекты CORBA. Следовательно, они доступны в любой момент времени. Нет необходимости проходить через издержки обращения к CGI-сценариям для каждого вызова.

CORBA предоставляет средства для создания трехзвенной архитектуры клиент/сервер. Кроме того, технология CORBA разгружает код Java-an- плетов, определенные компоненты могут быть распределены в среде клиент/сервер. Клиентская часть апплета может оставаться маленькой, что сокращает время загрузки апплета.

Кроме технологии CORBA, для расширения возможностей применения Web могут использоваться следующие конкурирующие технологии: сокегы, DCOM с ActiveX и RMI (Remote Method Invocation — механизм вызова удаленных методов) другие технологии. Тем не менее, технология CORBA остается лидером среди всех интерфейсов распределенных объектов благодаря хорошим архитектурным и функциональным возможностям, устойчивости в работе и легкости в настройке.

В частности, технология CORBA по сравнению с ближайшим ее конкурентом — технологией DCOM обеспечивает следующие преимущества:

полная и корректная реализация поддержки различных ОС;

CORBA реализована целиком на Java, в связи с этим она хорошо интегрируется с Java;

легкость конфигурирования и настройки серверов и клиентов CORBA;

корректная реализация вызовов распределенных методов;

полнота функциональной реализации динамического наследования и поддержки метаданных;

более высокая (более чем на 20%) производительность приложений;

корректная реализация механизма транзакций;

корректная реализация долговременных, или сохраняемых объектных ссылок;

поддержка CORBA-интерфейсом URL-имен;

открытый стандарт CORBA-интерфейса.

15.Vl/еЬ-приложенияи Web-серверы

589

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

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

Характеристика интерфейсов OLE DB, ADO и ODBC

Современные интерфейсы доступа к источникам данным OLE DB, ADO и ODBC, внедряемые фирмой Microsoft, позволяют осуществлять доступ к источникам различных данных однообразным способом. В основе новой технологии доступа к данным лежит интерфейс OLE DB, позволяющий связывать и встраивать объекты из любых источников данных. Напомним, что интерфейс OLE DB является универсальной технологией для доступа к любому источникам данных через стандартный интерфейс СОМ. Интерфейс OLE DB основан на механизме сервис-провайдеров (поставщики данных), находящихся на высоком уровне абстракции над физическим форматом данных.

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

Архитектура Web-приложений, использующих интерфейсы OLE DB, ADO и ODBC, приведена на рис. 15.10.

Интерфейс ADO находится на более высоком уровне абстракции, чем интерфейс OLE DB. Он реализован в виде иерархической модели объектов для доступа к различным OLE DВ-провайдерам данных. В модель ADO входит набор объектов, которые обеспечивают соединение с провайдером данных, создание SQL-запроса к данным, создание набора записей на основе запроса и др.

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

590

Часть 4. Публикация баз данных в Интернете

TCP/ IP

Рис. 15.10. Архитектура Web-приложений, использующих интерфейсы OLE DB, ADO и ODBC

Таким образом, интерфейс ADO позволяет стандартизовать все существующие интерфейсы для доступа к любым данным в интранет/Интерпет сетях. Он объединяет все существующие интерфейсы и предоставляет однообразный способ для доступа к любому источнику данных через любой интерфейс.

15.3. Обзор Web-серверов

В настоящий момент развитие технологий Интернета идет очень быстрыми темпами. Появляется очень много производителей программного обеспечения для Интернета, в том числе производителей Web-серверов. Дадим характеристику наиболее распространенным Web-серверам, используемым в корпоративных сетях и в «домашних» компьютерах, которые могут использоваться для публикации информации из БД. Определим понятие Web-ссрвс- ра. Web-ссрвср — это программное средство, установленное на Web-узле глобальной или корпоративной сети и позволяющее пользователям сети получать доступ к гипертекстовым документам, расположенным на этом Web-узле. Иногда под Web-сервером понимают программное обеспечение Web-ccpBepa

иаппаратное обеспечение — компьютер, на котором Web-сервер установлен.

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

15.Vl/еЬ-приложенияи Web-серверы

591

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

Отметим, что Web-серверы используются для следующих целей: •создание корпоративных сетей интранет на основе принципов Интернет-

сетей, многоуровневой архи тектуры и клиент/серверных технологий; •подключение корпоративных сетей интранет к Интернету для получе-

ния доступа к предоставляемым в нем услугам;

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

распространение собственной информации, находящейся па домашнем компьютере, создание собственного сайта с помощью домашнего компьютера.

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

ВИнтернете существует ряд источников информации о серверах, содержащих ежемесячные обзоры, всего, что касается Web-серверов. Например, один из наиболее популярных источников информации о статистики использования Web-серверов находится в Интернете на узле Nelcrafl по адресу "http://www.netcraft.com/siirvey", который содержит самую свежую информацию о серверах и платформах, используемых в Интернете, и список узлов, содержащих информацию об основных Wcb-еерверах.

Еще один из лучших источников сводной информации находится па узле iWORLD компании Meckermedia (http://www.iworld.com), на котором можно найти журналы WebCompare, ServerWatch и Web Servers Feature Chart.

В таб. 15.4 по данным, опубликованным на узлепеита!^, представлены сведения по трем наиболее популярным серверам. Как следует из приведенной таблицы, наибольшее распространение имеют Web-серверы Apache и Microsoft. Причем имеет место тенденция небольшого снижения со временем процента этих Web-серверов ог общего числа сайтов в Интернете.

Таблица 15.4.

Популярные Web-серверы

Н а з в а н и е W e b - c e p e e p a

A p a c h e

M i c r o s o f t

N e t s c a p e - E n t e r p r i s e

Ч и с л о с а й т о в

П р о ц е н т о т ч и с л а

И з м е н е н и е п р о ц е н т а

 

в И н т е р н е т е

с а й т о в в

от ч и с л а с а й т о в з а

 

о с е н ь ю 2 0 0 0

И н т е р н е т е

к в а р т а л

 

1 2 7 0 5 1 9 4

6 0 , 0 2

- 1 , 6 4

ii

4 1 4 0 9 7 7

1 9 , 5 6

- 0 , 0 7

|

 

 

 

j

1 4 7 2 6 8 9

6 , 9 6

- 0 , 0 5

 

592

Часть 4. Публикация баз данных в Интернете

На выбор сервера большое влияние оказывает «платформа», на которой

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

Активно используемых типов операционных систем намного меньше, чем типов компьютеров. Анализ статистики показывает, что для высокопроизводительных объемных узлов наиболее часто используется операционная система Unix (около 80% Web-серверов работают под ее управлением), для средне- и низкопроизводительных узлов чаще всего используется Windows NT (менее 20% Web-серверов работает под ее управлением).

Операционные системы Web - серверов

В сети Интернет в основном используется несколько операционных систем. Наиболее популярными среди Web-серверов являются Unix-подобные операционные системы. Дадим краткую характеристику основным операционным системам, используемым в качестве платформ Web-серверов.

Операционная система Unix (Unix-подобные операционные системы) получила наибольшее распространение в среде Интернет по следующим причинам:

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

Unix раньше других начала применяться в Интернете;

Unix включает большое количество услуг, ориентирована на работу с наибольшим количеством процессоров, адресов IP;

Unix является более устойчивой при функционировании в загруженных сетях.

Однако эта система является самой сложной для изучения и конфигурирования из всех операционных систем.

Операционные системы Windows 2000 Server и Windows NT Server

широко распространены, используются в качестве платформы Web-cepee- ров и являются единственными реальными конкурентами для системы Unix. Отметим, что Windows 2000 Server представляет собой доработанный вариант Windows NT Server и включающий достоинства Windows 98. Основное преимущество Windows 2000/NT Server заключается в легкости насторойки и освоении работы в среде этих операционных систем. Для начинающих пользователей лучше начать работу в Web с одной из этих операционных систем.