Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
база данных.docx
Скачиваний:
167
Добавлен:
24.03.2015
Размер:
5.83 Mб
Скачать

15.1. Принципы функционирования Web-приложений

Программные средства сетей Интернет/интранет включают новую кате­горию программ — Web-приложения. КWeb-приложениям относят наборWeb-страниц, сценариев и других программных средств, расположенных на одном или нескольких компьютерах (клиентских и серверных) и объединен­ных для выполнения прикладной задачи.Web-приложения, публикующие БД в Интернет, представляют отдельный классWfeb-приложений.

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

Wfeb-приложения выполняются на сторонеWfeb-сервера, который находит­ся наWeb-узлах сети Интернет.Wfeb-сервер обрабатывает запросы обозрева­теля на получениеWeb-страниц и отсылает требуемые данные обозревателю в форматеWeb-документов.

Обмен данными в сети Интернет осуществляется на аппаратном уровне на основе протокола TCP/IP и протокола более высокого логического уров­ня HTTP. Упрощенная схема функционированияWeb-приложения приведе­на на рис. 15.1.

ПР

Рис. 15.1. Упрощенная схема функционирования Web-приложения

Напомним, чтопид Web-д оку ментом(Web-страницей) понимают докумен­ты, используемые в сети Интернет в форматахHTML, XML. шаблоны в фор­матахASP, НТХ и т. д.

Для досгупа к Web-страницам используются специальные клиентские про­граммы — обозревателиWeb, находящиеся на компьютерах пользователей Интернета. Обозреватель формирует запрос ьа получение требуемой стра­ницы или другого ресурса с помощью адресаURL. Функции обозревателя заключаются в отображенииWeb-c границ, сгенерированных сервером или мод} лями расширения, и отправке запросов пользователяWeb-приложению. Обозреватель является связующим звеном между пользователем иWeb-при­ложением. При этомWfeb-обозреватель устанавливает соединение с требуе­мымWeb-узлом, используя различные протоколы передачи данных, нами рассматривается использование протоколаHTTP.

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

Развитие технологий в сети Интернет привело к появлению новых архи­тектурных и технологических решений для локальных корпоративных инт- ранет-сетей. Сети интранет построены на том же аппаратно-программном обеспечении, принципах и протоколах, что и сеть Интернет. В общем случае под сетью интранетпонимают выделенную часть сети Интернет, в которой выполняетсяWeb-приложение (информацгк иная система).

Применение Интернет-технологий в корпоративных интранет-сетях по­зволяет повышать эффективность функционирования сетей и используемых в них информационных систем.

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

Надежность WEB-приложений обусловлена устойчивостью работы про­граммно аппаратных средств сети Интернет, устойчивость к сбоям которых испытана в течение многих лет. Например, наиболее популярныеWEB-cep- вера осуществляют обработку более 50 миллионов обращений в день, не имея при этом катастрофических сбоев.

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

Открытость архитектуры интранет-приложений основывается на гибкой многоуровневой архитектуре и стандартизированных протоколах и форма­тах документов, доступных для модификации.

Простота изучения и использования интранет приложений обусловлена стандартизацей пользовательского интерфейса на основе применения одно­типного клиентского приложения - обозревателя со стандартным пользова­тельским графическим интерфейсом. Достаточно освоить принципы работ ы одной программы обозревателя, чтобы можно было работать с любыми инт- ранет-приложениями.

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

При использовании Whb-приложений в сети интранет может использовать­ся архитектура, показанная на рис. 15.2. Сеть интранет в общем случае имеет различную внутреннюю структуру, построенную на принципах Интернет. Причем сеть интранеч может и не иметь выход в Интернет.

Сеть интранет строится на основе архитектуры распределенных приложе­ний БД и архитектуры Web приложений. Напомним, что взаимодействие между распределенными компонентами такой сети осуществляется на аппа­ратном уровне на базе протокола TCP/IP, а на логическом уровне — на прин­ципах, заложенных в протоколеHTTP.

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

Рис. 15.2. Схема функционирования Web-приложения с использованием

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

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

В функции Web-cepeepa в сети интранет входит обработка запросовWeb- обозревателей на получение информации из разделяемых БД, преобразова­ние этих запросов (может выполняться модулями расширенияWeb-cepBepa) вSQL-запросы или другие форматы, понятные для сервера БД или сервера приложений.

Интранет-приложение предоставляет следующие дополнительные воз­можности:

• Реализация концепций удаленного доступа и управления. Концепция удаленного доступаподцазумевает возможность удаленного подключе­ния к интранет-сети, то есть подключение к сети интранет из любого ком­пьютера сети Интернет. Под удаленным управлениемпонимается подклю­чение к локальной сети и выполнение функциональных операций по управлению ресурсами локальной сети с удаленного компьютера. Для реализации дистанционного управления необходимо наличие специаль­ного сервера удаленного доступа и специального программного обеспе­чения на удаленном компьютере;

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

Простота создания и наращивания сети интранет позволяет быстро созда­вать локальные, защищенные сетевые системы с технологией клиент-сервер, доступные для быстрого освоения. Сеть интранет может быть построена на основе использован гяWeb-cepeepa в локальной сети или на основе услуг, предоставляемых внешнимWeb-сервером, находящимся в сети Интернет. Такие услуги, как правило, предоставляет провайдер, обеспечивающий воз­можность использования функций своегоWeb-cepeepa. Многие компании используют совмещенную структуруWeb-серверов. При этом сама локаль­ная сеть строится с использованием собственногоWfeb-сервера, а выход в гло­бальную сеть осуществляется черезWcb-еервер провайдера, публикующий маркетинговую информацию компании.

Современные сети интранет имеют различное назначение и особенности конкретной реализации. При этом выделяют следующие принципы построе­ния сетей интранет:

  • иерархическая архитектура интранет-приложений. При такой архи­тектуре информация размещается иерархически сверху вниз. Для этого создают узловые серверы, на которых размещается наиболее важная информация, используемая совместно несколькими отдела­ми или подсетями. При этом серверы могут составлять иерархичес кую структуру. На верхнем уровне находится сервер с информаци­ей, необходимой для клиентов всей сети, а на нижних уровнях иерархии находятся специализированные серверы, содержащие ин­формацию, используемую для групп клиентов сети. Таким образом обеспечивается максимально быстрый доступ к любой внутрисете- вой информации и снижаются затраты на обновление корпоратив­ной информации;

  • использование «двусторонней обратной связи» с клиентами сети для об­работки их запросов. При этом процесс восстановления при сбоях или перерывах в работе происходит с использованием механизма транзак­ций. Интранет-приложения, построенные на основе этого принципа, на­зывают транзакционными Web-приложениями. Их целесообразно ис­пользовать, к примеру, при создании Интернет-магазинов с помощью промышленных СУБД. При этом можно эффективно отслеживать осу­ществление всех операций цикла продажи товара (заказа товара, оплаты и доставки товара);

  • использование группового способа общения. В этом случае объединяются группы новостей с возможностью прямого обмена информацией между различными членами группы клиентов и разграничение доступа к ин­формации для пользователей вне группы.

Применение архитектуры Web приложений в сетях интранет по сравне­нию с традиционными архитектурами локальных сетей имеет следующие преимущества:

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

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

•удешевление установки и лицензирования клиентских компьютеров пользователей сети интранет.

Для расширения возможностей клиентской части (обозревателя) и сер­верной части разрабатывают модули расширения обозревателя и сервера, используемые для динамического управления интерфейсными объектами (компонентами) Web-документа.

Последовательно рассмотрим взаимодействие Web-приложения с допол­нительными компонентами: модулем расширения клиентской части и моду­лем расширения серверной части (рис. 15.1).

Web-приложения с модулями расширения сервера

Архитектура Web-приложений с модулями расширения сервера (рис. 15.3) может включать стандартные модули расширения —dll-библиотеки, реали­зующие, например, технологииASP, ЮС/НТХ, объектыActiveX. Кроме того, могут подключаться дополнительные модули, разработанные с использова­нием интерфейсовCGI, ISAPI и др.

В этом случае в функции Web-сервера входят обработка запросовWeb- обозревателей пользователей сети, вызов (загрузка) соответствующею модуля расширения сервера и передача ему параметров запроса. В резуль­тате обработки запроса модулями расширения сервера формируетсяWeb-документ с использованием различныхHTML-шаблонов. ГотовыйHTML-документ отсылаетсяWeb-обозревателю в формате протоколаHTTP.

Web-cepeep формирует динамическиWeb-страницы различными способа­ми и отсылает готовыеWeb-страницы в формате протоколаHTTP.

IMIV

лои

Дчнамич«.жз«

бибгжлека овита .Act»®X

HTTP

TCPdP

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

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

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

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

Для создания модулей расширения Wfeb-сервера могут использоваться интерфейсыCGI, WinCGI или интерфейсы программированияAPI.

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

Напомним, что интерфейсу CGI соответствуют обычные консольные при­ложения операционной системыDOS. Обмен информацией между сервером

и модулем расширения осуществляется с помощью стандартного потокового ввода/вывода, передача управляющих параметров может организовываться через переменные окружения операционной системы или через параметры URL-адреса модуля расширения.

WinCGI протокол отличается от протоколаCGI только тем, что управляю­щие параметры передаются черезINI-файл, а входной и выходной потоки данных перенаправлены в специальные файлы.

Для написания CGI-программ подходит практически любой язык програм­мирования, обеспечивающий доступ к переменным среды и ввод-вывод че­рез стандартные потокиSTDIN иSTDOUT. Для написанияCGI-программ подходят среды разработкиC++Builder, Delphi, Visual С++ иJava. Кроме того, для этих целей можно использовать интерпретаторы языковPerl, PHP, пред­назначенные для различных интерфейсовWeb-серверов.

Для запуска CGI-модуля обозреватель должен сформировать запрос к сер­веру с указанием адресаURL этого модуля.

Для запуска модуля расширения можно использовать следующие способы:

  • задание адреса URL модуляCGI в строке адреса обозревателя;

  • посылка обозревателем серверу запроса на выполнение CGI-модуля при выборе полгьзователем ссылки, атрибут«href» которой содержит адрес этого модуля;

  • нажатие кнопки типа «Submit», входящей в форму, у которой атрибут«Action» содержит адресURL CGI-модуля.

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

При большом размере исполняемого CGI-файла сильно увеличивается время отклика сервера на запрос обозревателя, поскольку потребуется вре­мя для загрузки модуляCGI с диска в память. Причем, еслиCGI-програм- ма является интерпретируемой (например, написана на языке РНР илиPerl), она будет выполняться еще медленнее, так как в этом случае, кроме загрузки модуляCGI, загружается интерпретатор РНР илиPerl и произ­водится интерпретация команд. При наличии сотен или тысяч обращений к серверу произойдет запуск сотен или тысячCGI-программ соответствен­но, каждая из которых будет обрабатывать соответствующий запрос обо­зревателя.

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

WinCGl протокол отличается от протоколаCGI тем. что управляющие па­раметры передаются черезINI-файл, а входной и выходной поток данных перенаправлены в специальные файлы. Этот протокол является реализаци­ей протоколаCGI для операционной системыWindows 3.1. Сервер передает данныеCGI-программам черезINI-файлWindows в формате «параметр-зна­чение». ПрограммаWinCGl читает этот файл и получает все данные, переда­ваемые ей из формы и автоматически генерируемые обозревателем.

INI-файлWindows состоит из нескольких специальных секций, в которых находятся различные параметры в виде текстовых строк. В системных секциях, которые автоматически генерируются обозревателем, находится информация о типе доступа, составных элементахURL-запроса, с помощью которогоWinCGI- модуль был загружен. Там же находится информация для настройки работыWinCGI-модуля, информация о сервере, путь к файлу, в который помещаются данные, отсылаемые сервером клиенту после выполненияWinCGI-модуля, «дополнительные» параметры, которые включены вURL-запрос. В остальном функционирование этого интерфейса аналогично интерфейсуCGI.

Более перспективными интерфейсами для разработки дополнитель­ных модулей расширения Web-cepeepa являются интерфейсыISAPI/ NSAPI. При использования этих интерфейсов модули расширения реа­лизуются в виде библиотекDLL. Рассмотрим принципы функциониро­вания модулейISAri.

Запуск модуля расширения выполняется сервером в ответ на первый за­прос обозревателя (в случае CGI-интерфейса загрузка осуществляется каж­дый раз) на загрузкуURL-адреса этого модуля. Загрузка модулеи15АР1 осу­ществляется теми же способами, что и загрузка модулейCGI. Обмен информацией между сервером и модулем расширения осуществляется с по­мощью специальных объектовRequest иResponse. Сервер передает парамет­ры запроса модулю расширения с помощью объектаRequest и получает сфор­мированныйWeb-документ с помощью объектаResponse.

В многопользовательском режиме работы сервера при обработке сервером последующих запросов к модулю расширения сервер использует уже загру­женный экземпляр динамической библиотеки. Такой механизм взаимодей­ствия сервера и модуля расширения обеспечивает экономию ресурсов серве­ра и увеличение скорости обработки запросов.

Однако использование интерфейса API требует от разработчика модуля расширения соблюдения особых мер по обеспечению устойчивости этого модуля к сбоям. При возникновении катастрофического сбоя потребуется перезапускWfeb-сервера.

Интерфейс ISAPI может применяться также для созданияISAPI-филь тров, которые, в отличие от модулейISAPI, могут использоваться для контроля всего потока данных между сервером и обозревателем на уровне протоколаHTTP. ISAPI-фильтры можно применять для динамической перекодировки, шифрования, сбора статистической информации о рабо­те сервера.

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

Web-приложения с модулями расширения клиентской части

В случае модулей расширения клиентской части (активность на сторо­не клиента) используют апплеты, подключаемые программы, ActiveX объекты и сценарии. Эти технологии могут использоваться для создания динамических эффектов при просмотреWeb-страницы. АрхитектураWeb- приложения с использованием модулей расширения клиентской части по­казана на рис. 15.4.

ТСРЛР

Рис. 15.4. Схема Web-приложения с использованием модулей расширения обозревателя

Элементы управления ActiveX представляют собой вид модулей расши­рения, которые могут использоваться на стороне клиента или на стороне сервера. Они реализуются с помощью динамических библиотекDLL и мо­гут быть встроены вWeb-документ как дополнительные интерфейсные эле­менты. Механизм работы элементов управленияActiveX позволяет из программного кода этих объектов получать неограниченный доступ к ло­кальным ресурсам компьютера пользователя. Из элемента управленияActiveX имеется возможность предавать на сервер любую информацию с компьютера пользователя. С точки зрения обеспечения безопасности ло­кальных данных пользователей использование элементов управленияActiveX не всегда оправдано.

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

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

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

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

Используя библиотеку классов Java, можно создавать мультимедийные страницы и организовывать распределенные процедуры вычислений с исполь­зовавшем различных серверов и с использованием различных протоколов.

Используемый для выполнения апплетов интепретатор байт кода, входя­щий в состав виртуальной машины Java, имеет встроенную систему безопас­ности, блокирующую операции записи информации на диск и операции ад ресной арифметики.

Апплет может быть специализирован для работы с внешними базами дан­ных. С этой целью в Java включены наборы классов для поддержки графиче­ского пользовательского интерфейса и классы для доступа к БД С помощыо

19 Зак. 474

\ этих классов апплет может получить от пользователя информацию ввода па­раметров запроса к базе данных.

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

Для взаимодействия Java-апплета с внешним сервером баз данных разра ботан специализированный протоколJDBC 0ava DataBase Connectivity — совместимостьJava с базами данных), который построен на принципах ин­терфейсаODBC и применяется для стандартизации кодаJava-апплета при организации доступа к различным СУБД. ПротоколJDBC является посред­ником междуJava-кодом и драйверомODBC.

Сравним достоинства и недостатки использования технологии Java и наи­более распространенного в настоящее время интерфейсаCGI. Использова­ние технологииJava-anmreTOB реализует более гибкий механизм. Апплет вы­полняется локально на машине пользователя, поэтому он может обеспечивать динамическое взаимодействие с пользователем гораздо быстрее. Кроме того, апплет может использоваться для выполнения функций, не доступныхCGI- модулю. Однако с точки зрения обеспечения безопасности данных компью­теров клиентов сети использованиеCGI-модуля более целесообразно, так какCGI-модуль выполняется на стороне сервера и получить доступ к ресурсам компьютера пользователя сети не может.

На этом мы закончим рассмотрение общих принципов построения Web- приложений и перейдем к рассмотрению архитектурыWeb-приложений, пуб­ликующих БД.