Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009
.pdf15.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-сервера может устанавливаться на компьютеры общего назначения, предназначенные для решения различ-
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 с одной из этих операционных систем.