Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Технологии разработки Internet-приложений. Учебное пособие
.pdf
В этом случае говорят об архитектуре смешанного Web-приложения. При такой архитектуре Web-приложения и клиентские
приложения базы данных могут параллельно получать доступ к
источнику данных.
2.4. Web-приложения на основе CORBA
Архитектура современных Internet-приложений – это
трехзвенная модель с использованием архитектуры «клиентсервер» -и интерфейса CGI. Однако использование CGIиитерфейса для объектно-ориентированных клиентов Java не
эффективно, из-за того, что этот интерфейс достаточно медленный
и не обладает требуемой гибкостью. Отметим, что попытки
некоторых фирм-разработчиков программного обеспечения
серверов оживить CGI, внедряя в него серверные API, являются
тупиковыми.
Одним из перспективных направлений развития интранетсетей является использование технологии CORBA (Common Object
Request Broker Arhitectur – общая архитектура брокеров объектных
запросов) в сочетании с технологией Java-апплетов. CORBA
представляет собой шину (интерфейс) распределенных объектов с
открытыми стандартами, используемую в клиент/серверных
системах. Эта технология явилась результатом работы
консорциума OMG (Object Management Group – группы
управления объектами). Единственной конкурентоспособной
технологией, обладающей аналогичными возможностями, является технология DCOM (Distribute Common Object Model – распределенная модель объектов общего применения), разработанная
фирмой Microsoft.
Технология Java предполагает большую гибкость при
разработке распределенных приложений, но в полной мере не
поддерживает архитектуру «клиент-сервер». Интерфейс CORBA
позволяет обеспечить связь переносимых приложений Java и
объектов CORBA. Технология объектов CORBA предназначена
для использования в Web-приложениях вместо CGI-интерфейса.
В результате объединения Java-апплетов и CORBAинтерфейса появилось новое понятие – объектная модель Web,
означающая использование объектных моделей различных
интерфейсов (CORBA, ADO и др.) при построении Web-прило-
31

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

приложениях в качестве связующего звена между клиентскими
приложениями и сервером.
Объекты CORBA взаимодействуют с серверами БД
последнего уровня, используя, например, SQL в случае
реляционных БД. Кроме того, объекты CORBA на сервере могут
взаимодействовать и друг с другом. В основе механизма
взаимодействия между объектами CORBA лежит протокол IIOP
(Internet Inter-ORB Protocol – Internet-протокол взаимодействия
ORB). Протокол ПОР основывается на протоколе TCP/IP с
добавленными компонентами обмена сообщениями и функционирует как общий опорный протокол при организации взаимодействия серверов ORB и объектов CORBA. В дополнение к ПОР
в технологии CORBA используются ESIOP-протоколы (Enviroument-Specific Inter-ORB Protocols – зависящие от среды протоколы взаимодействия ORB), которые применяются в специализированных сетевых средах.
Java-клиент может непосредственно взаимодействовать с
объектом CORBA, используя Java ORB. При этом серверы CORBA
замещают уровень HTTP-сервера и выступают в качестве программного обеспечения промежуточного уровня, обеспечивая взаимодействие между объектами (object-to-object). Интерфейс CORBA
HOP функционирует в сети Internet так же, как и протокол HTTP.
Протокол HTTP в этом случае используется для загрузки
Web-документов, апплетов и графики, CORBA используется для
организации с помощью Java-апплетов клиент/серверных
приложений.
Серверный компонент CORBA предоставляет
«настраиваемый» интерфейс, который можно конфигурировать с
помощью визуальных средств. CORBA - объект обладает
определенными функциональными возможностями, реализует
инкапсуляцию свойств и методов и генерируемых объектами
событий. Можно создавать целые ансамбли объектов, «стыкуя»
выходные события с входными методами. Разработка таких
визуальных объектов поддерживается средствами быстрой
разработки приложений – RAD (Rapid Application Development). В
частности, CORBA-объекты поддерживаются в системах RAD
C++Builder, JBuilder и Delphi.
33

На последнем четвертом уровне размещается сервер баз
данных или другой источник данных, то есть практически любой
источник информации, к которому CORBA может получить
доступ. Сюда входят процедурные мониторы транзакций (ТР
Monitors), MOM (Message-Oriented Middleware – промежуточное
программное обеспечение, ориентированное на обмен сообщениями), ODBMS (ODBMS- объектные СУБД).
Рассмотрим механизм функционирования Web-приложения
при использовании технологии Java-апплетов и объектов CORBA.
Для начала работы с Web-приложением в Web-обозреватель
загружается главная HTML-страница, которая содержит встроенные апплеты Java. При этом Java-апплеты и используемые в
апплете Java-классы подгружаются с Web-сервера при открытии
HTML-страницы. Причем Web-обозреватель формирует запрос
Web-серверу на поиск Java-апплета ил требуемого Java-класса.
Web-сервер находит апплет и загружает его в обозреватель в
форме байт-кода. Web-обозреватель при загрузке апплета сначала
запускает систему безопасности реального времени Java. Для
вызова апплетом серверных объектов CORBA используется IDLсгенерированный клиентский стаб (Interface Definition Language –
пассивный язык написания интерфейсов), который позволяет
вызывать объекты сервера ORB или может использоваться
интерфейс динамических вызовов CORBA DII (Dynamic Invocation
Interface) для генерации запроса к серверу при выполнении
апплета.
Объединение технологий CORBA, Java и Internet обладает
следующими преимуществами:
1. Масштабируемость и устойчивость Web-приложения,
заключающиеся в том, что серверы Web и ORB могут
взаимодействовать с использованием CORBA ORB. При этом
объекты ORB могут выполняться на нескольких серверах для
обеспечения баланса нагрузки (load-balancing) серверов для
входящих клиентских запросов. ORB может отправить запрос
первому доступному объекту, а также увеличить число доступных
объектов по необходимости. CORBA позволяет объектам сервера
действовать последовательно, используя транзакции и связанные
сервисы CORBA. В отличие от технологии CORBA, интерфейс
CGI при большом количестве запросов не имеет возможности
34

распределить нагрузку между несколькими процессами или
процессорами.
2. Гибкость архитектуры CORBA позволяет клиентам
непосредственно вызвать методы на сервере. Клиенты передают
параметры напрямую, используя нрекомпилированные стабы, или
генерируют их во время выполнения апплета, используя сервисы
динамических вызовов CORBA DLL. Можно вызывать на сервере
любой метод, определенный с помощью IDL, а не только один
метод, описанный посредством HTML, можно передавать любые
типизированные параметры вместо обычных строк.
3. CORBA расширяет возможности Java по взаимодействию с
распределенными объектами. Так как Java-апплеты не могут
взаимодействовать сквозь все адресное пространство, используя
вызовы удаленных методов, то для Java-апплетов не существует
простого способа вызвать метод на удаленном объекте. CORBA
позволяет Java-апплетам взаимодействовать с другими объектами,
написанными на различных языках, преодолевая адресное
пространство и сети. CORBA обеспечивает богатый набор сервисов
распределенных объектов (метаданные, транзакции, безопасность,
именование, коллекции и т.д.), которые расширяют Java.
4. CORBA расширяет объектную модель Java для
распределенной среды и позволяет Java-апплетам вызывать
широкий спектр определенных на IDL операций на сервере. В
противоположность этому, клиенты HTTP ограничены небольшим
набором операций. Приложения серверной части -это обычные
объекты CORBA. Следовательно, они доступны в любой момент
времени. Нет необходимости проходить через издержки обращения к CGI-сценариям для каждого вызова.
CORBA предоставляет средства для создания трехзвенной
архитектуры «клиент-сервер». Кроме того, технология CORBA
разгружает код Java-апплетов, определенные компоненты могут
быть распределены в среде «клиент-сервер». Клиентская часть
апплета может оставаться маленькой, что сокращает время
загрузки апплета.
Кроме технологии CORBA, для расширения возможностей
применения Web могут использоваться следующие конкурирующие технологии: сокеты, DCOM с ActiveX и RMI (Remote
Method Invocation – механизм вызова удаленных методов) другие
35

технологии. Тем не менее, технология CORBA остается лидером
среди всех интерфейсов распределенных объектов благодаря
хорошим архитектурным и функциональным возможностям,
устойчивости в работе и легкости в настройке.
В частности, технология CORBA по сравнению с технологией
DCOM обеспечивает следующие преимущества:
1) полная и корректная реализация поддержки различных ОС;
2) CORBA реализована целиком на Java, в связи с этим она
хорошо интегрируется с Java;
3) легкость конфигурирования и настройки серверов и
клиентов CORBA;
4) корректная реализация вызовов распределенных методов;
5) полнота функциональной реализации динамического насле-
дования и поддержки метаданных;
6) более высокая производительность приложений;
7) корректная реализация механизма транзакций, долговре-
менных или сохраняемых объектных ссылок;
8) поддержка CORBA-интерфейсом URL-имен;
9) открытый стандарт CORBA-интерфейса.
Таким образом, CORBА обеспечивает инфраструктуру
распределенных объектов, что позволяет приложениям
распространяться через сети, языки, границы компонентов и
операционные системы. Java обеспечивает инфраструктуру переносимых объектов, которые работают на всех основных
операционных системах. CORBА дает независимость от сетей,
a Java – независимость от реализации.
2.5. Web-приложения на основе интерфейсов OLE DB, ADO
и ODBC
Современные интерфейсы OLE DB, ADO и ODBC, внедряемые фирмой Microsoft, позволяют осуществлять доступ к источникам различных данных единообразным способом. В основе доступа к данным лежит интерфейс OLE DB, позволяющий связывать и
встраивать объекты из любых источников. Напомним, что интерфейс OLE DB является универсальной технологией доступа к данным через стандартный интерфейс СОМ и основан на механизме
поставщиков услуг.
36

Архитектура Web-приложений, использующих интерфейсы
OLE DB, ADO и ODBC, приведена на рис. 2.6.
Рисунок 2.6. Архитектура Web-приложений с интерфейсами OLE DB,
ADO и ODBC
Интерфейс ADO представляет собой еще более высокий уровень
абстракции, чем интерфейс OLE DB. Он реализован в виде иерархической модели объектов для доступа к различным OLE DBпровайдерам данных. В модель ADO входит набор объектов, которые
обеспечивают соединение с провайдером данных, создание SQLзапроса к данным, создание набора записей на основе запроса.
Особенность функционирования Web-приложений, использующих интерфейс ADO, заключаются в том, что браузер может извлекать информацию из любого источника данных, находящегося
в глобальной сети Internet, заранее не имея представления о логической структуре, типе и физическом формате источника данных,
то есть у пользователя системы появляется возможность публиковать требуемую информацию в Internet, не показывая внутреннюю
структуру данных.
Таким образом, интерфейс ADO позволяет стандартизовать
существующие интерфейсы для доступа к данным в сетях Internet
37

и Intranet. Он объединяет все существующие интерфейсы и предо-
ставляет единообразный способ доступа к любому источнику данных через любой интерфейс.
Выводы
1. Приведена классификация архитектур Web-приложений.
2. Дана характеристика основных видов архитектур Web-
приложений: двухуровневые Web-приложения; трехуровневые
Web-приложения; многоуровневые Web-приложения; Web-
приложения на основе технологии CORBA; Web-приложения на
основе интерфейсов OLE DB, ADO, ODBC.
Вопросы для самопроверки
1. Приведите классификацию Web-приложений.
2. Дайте характеристику двухуровневому Web-приложению.
3. Поясните принцип работы трехуровневого Web-
приложения.
4. Охарактеризуйте многоуровневые Web-приложения.
5. Перечислите достоинства многоуровневой архитектуры
Web-приложений.
6. Дайте характеристику Web-приложения на основе технологии CORBA.
7. Какими преимуществами обладает объединение технологий
CORBA, Java и Internet? Их характеристика.
8. Перечислите достоинства технологии CORBA по сравнению с технологией DOM.
9. Охарактеризуйте Web-приложения на основе интерфейсов
OLE DB, ADO, ODBC.
Литература и Internet-ресурсы
Основная:– [1].
Дополнительная: [5, 6].
Internet-ресурсы: [1].
38

3. ОБЗОР WEB-СЕРВЕРОВ
План
3.1. Общее представление о Web-сервере.
3.2. Сервер Apache.
3.3. Сервер Microsoft Internet Information Server. Характери-
стика.
3.4. Использование Web-серверов.
3.4.1. Personal Web Server
3.4.2. Microsoft Internet Information Server
3.1. Общее представление о Web-сервере
Web-сервер – это программное средство, установленное на
Web-узле глобальной или корпоративной сети и позволяющее
пользователям сети получать доступ к гипертекстовым документам, расположенным на этом Web-узле. Иногда под Web-сервером
понимают программное обеспечение Web-сервера вместе с его
аппаратной частью, т. е. компьютером, на котором Web-сервер
установлен.
В общем случае программное обеспечение Web-сервера может
устанавливаться на компьютеры общего назначения, предназначенные для решения различных задач, не обязательно связанных с технологиями Internet. Поэтому более корректно использовать понятие
Web-сервера для обозначения только программного обеспечения,
а компьютер с операционной системой и сетевой структурой называть средой работы Web-сервера, или платформой.
При разработке и функционировании приложений Web-
серверы используются для следующих целей:
1) создания корпоративных сетей Intranet на основе принципов Internet, многоуровневой архитектуры и клиент-серверных
технологий;
2) подключения корпоративных сетей Intranet к Internet для
доступа к пре доставляемым в нем услугам;
3) публикации информации из корпоративных сетей Intranet, в
том числе и содержимого баз данных из информационных систем,
функционирующих в среде Intranet;
4) распространения собственной информации, находящейся на
домашнем компьютере, создания собственного сайта.
39

На выбор сервера оказывает платформа, на которой работает
Web-сервер. Сравнительный анализ Web-серверов показал, что в
качестве Web-узлов могут рассматриваться компьютеры любых
типов, имеющие достаточные ресурсы и производительность, тогда как количество активно используемых операционных систем,
поддерживающих их эффективное функционирование намного
меньше. Статистика показывает, что для высокопроизводительных
объемных узлов наиболее часто используется операционная система UNIX (около 80 % Web-серверов работают под ее управлением), а для средне- и низкопроизводительных узлов чаще всего
используется Windows (менее 20 % Web-серверов).
3.2. Сервер Apache
Под управлением Apache в настоящее время работают более
10 миллионов серверов Internet. Они довольно хорошо отлажены и
протестированы разработчиками и пользователями. Группа разработчиков Apache придерживается строгих стандартов в отношении
выпуска новых версий. Когда обнаруживаются ошибки в работе
сервера, то компания Apache Development Group выпускает корректирующие файлы или новые версии продукта. Эта компания
является международной организацией добровольцев, разработавших данный программный продукт для некоммерческого распространения среди широкого круга пользователей. Созданный под
покровительством компании Apache Digital Corporation, проект
Web-сервера Apache развивался как ветвь NCSA httpd проекта – одного из самых первых и наиболее эффективных из существующих
серверов сети Internet.
Apache является аббревиатурой A PAtCHy server и переводит-
ся как «лоскутный» сервер.
По сравнению с другими серверами Apache показал себя бо-
лее устойчивым, более быстрым, имеющим более широкий набор
функций и возможностей. Кроме того, Web-сервер Apache характеризуется открытой архитектурой, заключающейся в том, что
этот сервер распространяется в исходных кодах и позволяет легко
наращивать дополнительные возможности.
Его безусловное доминирование на рынке объясняется тем,
что сервер был разработан для самой популярной платформы
UNIX. Хотя сервер Apache распространяется бесплатно, но орга-
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
