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

Технологии разработки Internet-приложений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
В этом случае говорят об архитектуре смешанного 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-протоколы (Enviro­ument-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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]