Интернет-технологии и системы
При многопользовательском режиме работы сервера загрузка ISAPI-mo-дуля расширения (библиотеки DLL) происходит один раз при первом обращении. При обработке сервером последующих запросов к модулю расширения сервер использует уже загруженный экземпляр динамической библиотеки. Такой механизм взаимодействия сервера и модуля расширения обеспечивает экономию ресурсов сервера и увеличение скорости… Читать ещё >
Интернет-технологии и системы (реферат, курсовая, диплом, контрольная)
— 9 ;
Содержание Введение
§ 1. Теоретические сведения
1.Интернет технологии
1.1 Основы Интернет технологий
1.2 Элементы управления ActiveX
1.3 Апплеты и сервлеты Java
1.4 Интерфейсы CGI и WinCGI
1.5 Интерфейсы ISAPI/NSAPI
16 SP, РНР и IDC/HTX-страницы
1.7Формирование Web-страниц
2. Web-приложения, публикующие БД
2.1 Принципы функционированияWeb
2.2 Архитектура Web-приложений
2.3 Web-приложения на основе CORBA
2.4 Технологии публикации баз данных
2.5 Публикация баз данных средствами MS FrontPage XP
2.6 Организация работы с БД с помощью ASP
§ 2. Публикация содержимого баз данных на Web-страницах
1.1 Статистическая и динамическая публикация
1.2 Публикация статических Web-страниц
1.3 Публикация динамических Web-страниц
1.4 Динамическая публикация отчетов из БД
1.5 Статистическая публикация БД Заключение Список использованной литературы
Введение
Банк данных является разновидностью ИС, в которой реализованы функции централизованного хранения и накопления обрабатываемой информации, организованной в одну или несколько баз данных.
Банк данных (БнД) в общем случае состоит из следующих компонентов: базы (нескольких баз) данных, системы управления базами данных, словаря данных, администратора, вычислительной системы и обслуживающего персонала.
База данных (БД) представляет собой совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
Дальнейшее развитие технологий Интернета и СУБД предоставляет дополнительные возможности по использованию информационных ресурсов сети Интернет. Одним из способов электронного представления данных во всемирной сети является публикация баз данных в Интернете, позволяющая размещать информацию из баз данных на Web-страницах сети.
Публикация баз данных в Интернете может потребоваться для решения перечисленных ниже задач, возникающих перед разработчиками программного обеспечения всемирной сети.
Размещение информации из БД во всемирной сети стало возможным в связи с развитием технологий Интернета.
Объект исследования — процесс организации учебной деятельности студентов высших учебных заведений при изучении баз данных и их публикации в интернете.
Предмет исследования — изучение баз данных и их публикация в интернете.
Цель данной курсовой работы — совершенствование знаний для публикации баз данных в интернет.
Цель исследования потребовала решения ряда конкретных задач:
Организация взаимосвязи СУБД, работающих на различных платформах. Существует множество информационных систем работающих на различных платформах. Задачи организации их взаимодействия могут возникать при обеспечении различных видов информационного обмена между этими системами.
Построение информационных систем в сети Интернет на основе многоуровневой архитектуры БД. Архитектура таких систем включает дополнительный уровень (Web-сервер с модулями расширения серверной части), реализующий возможность информационного обмена и публикации БД в глобальной сети.
Построение локальных интранет-сетей на основе технологии публикации БД в Интернете. При этом локальные сети строятся на принципах Интернета с наличием при необходимости выхода в глобальную сеть.
Использование в Интернете информации из существующих локальных сетевых баз данных. Эти задачи возникают при необходимости опубликования в глобальной сети информации из локальных сетей Интранет.
Применение БД для упорядочивания, каталогизирования информации. Огромный объем информации, представленной в Интернете, не обладает требуемой степенью структурированности, что делает весьма сложным и долгим процесс поиска необходимой информации.
Применение языка SQL для поиска необходимой информации в БД.
Использование средств СУБД для обеспечения безопасности данных, разграничения доступа и управления транзакциями при создании Интернет-магазинов, защищенных информационных систем и т. д.
Стандартизация пользовательского интерфейса на основе применения обозревателей Web с типовым внешним видом и типовой реакцией на действия пользователя.
Использование обозревателя Web в качестве дешевой клиентской программы для доступа к БД.
§ 1. Теоретические сведения
1.Интернет технологии
1.1 Основы Интернет технологий В Интернете вся информация размещается на Web-страницах, написанных на языке HTML (в этом случае имеем HTML-страницы) или его расширениях, таких как DHTML (Dynamic HTML — динамический HTML) и XML (extensible Markup Language — расширяемый язык разметки). В содержимое Web-страницы может входить текстовая информация, ссылки на другие Web-страницы, графические изображения, аудио-, видеоинформация и другие данные. Эти страницы хранятся на Web-сервере.
Для доступа к Web-страницам используются специальные клиентские программы — обозреватели Web (программы просмотра, или броузеры — от англ. browser), находящиеся на компьютерах пользователей Интернета. Обозреватель формирует запрос на получение требуемой страницы или другого ресурса с помощью специального адреса URL (Universal Resource Locator — универсальный указатель ресурса). Этот адрес определяет тип протокола для передачи этого ресурса, имя домена, используемое для доступа к требуемому Web-узлу, номер порта (порт — логический канал связи, номера определяются стандартами Интернета), локальный путь к файлу и дополнительные аргументы.
В функции Web-обозревателя входит отображение Web-страниц, которые формирует Web-сервер. При этом Web-обозреватель устанавливает соединение с требуемым Web-узлом, используя протокол передачи данных HTTP.
Для расширения возможностей клиентской части (обозревателя) и серверной части создаются программы расширения обозревателя и сервера.
При организации такого взаимодействия могут использоваться следующие средства:
сценарии, подготавленные на различных языках сценариев (JavaScript, JScript и VBScript) и вставленные в обычный Web-документ;
апплеты и сервлеты Java;
элементы управления ActiveX;
консольные ехе-программы, реализованные с использованием интерфейса CGI;
ехе-программы, реализованные с использованием интерфейса WinCGI;
динамические библиотеки, реализованные с использованием интерфейса ISAPI;
динамические страницы IDC/HTX;
активные серверные страницы ASP;
персональные домашние страницы РНР.
Дадим краткую характеристику каждого из названных средств.
Сценарии JavaScript, JScript и VBScript
Сценарии, написанные на языках JavaScript, JScript или VBScript, используют для динамического управления интерфейсными объектами (компонентами) Web-документа. Эти языки являются языками интерпретируемого типа (код выполняется в процессе интерпретации). Интерпретация и выполнение сценариев осуществляется обозревателем или сервером. Сценарии являются расширением языка HTML и могут включаться в тело Web-документа.
Заданная часть сценария может исполняться во время загрузки Web-документа, а часть сценария, реализованная, как правило, в виде функции, может выполняться в ответ на действия пользователя. Использование того или иного языка сценариев определяется типом применяемого обозревателя.
JavaScript представляет собой объектно-ориентированный язык с С-по-добным синтаксисом. Сценарии на языке JavaScript используются в обозревателе Netscape Navigator, а сценарии на языке J Script используются в обозревателе Internet Explorer. Лексика и синтаксис этих языков практически идентичны, отличия заключаются в используемых объектных моделях обозревателей (совокупностях элементов, их атрибутов и событий Web-документа). В обозревателе Internet Explorer дополнительно поддерживается язык сценариев VBScript, по возможностям функционально эквивалентный языку JScript, но более простой в освоении. Этот язык наиболее часто используется программистами, имеющими опыт работы с Microsoft Visual Basic.
Сценарии могут применяться как расширение обозревателя (клиентское расширение) или как расширение сервера. В случае клиентского расширения сценарии находятся в Web-документе и применяются для создания динамических эффектов при просмотре Web-страницы. На стороне сервера сценарии используются при динамическом создании Web-документов в ответ на запрос пользователя. Для уменьшения нагрузки на Web-сервер часть функций, связанных с предварительной обработкой запросов и введенных данных, целесообразно выполнять на стороне клиента (в Web-обозревателе). В этом случае выделяют активность на стороне клиента. Клиентская активность может быть осуществлена и другими средствами (апплеты Java, элементы управления ActiveX).
1.2Элементы управления ActiveX
Элементы управления ActiveX представляют вид модулей расширения, который может использоваться на стороне клиента или на стороне сервера. Они реализуются с помощью динамических библиотек DLL и могут быть встроены в Web-документ как дополнительные интерфейсные элементы. Механизм работы элементов управления ActiveX позволяет из программного кода этих объектов получать неограниченный доступ к локальным ресурсам компьютера пользователя. Из элемента управления ActiveX имеется возможность передавать на сервер любую информацию с компьютера пользователя. Поэтому использование этих элементов на стороне клиента не всегда оправдано в сети Интернет с точки зрения обеспечения безопасности данных.
В коде объектов ActiveX имеется потенциальная возможность наличия вируса. Если загрузить такой объект, то компьютеру клиента в принципе может быть причинен вред. Для частичного устранения этого недостатка компания Microsoft добавляет в свои коды цифровую подпись (signing), которая обозначает, что данный объект создан надежной компанией. При этом обозреватель Internet Explorer, используя такой объект, выдает предупреждающее сообщение с предоставлением возможности пользователю отменить выполнение кода этого объекта. Этот механизм предназначен для идентификации модулей ActiveX и не устраняет возможность заражения вирусом компьютеров пользователей, использующих объекты ActiveX.
Кроме того, при загрузке текущей Web-страницы, если на ней используются новые элементы управления ActiveX, для их активизации требуется сначала их скачать и установить. А это нарушает принцип универсальности обозревателя. По этим причинам более предпочтительно использовать элементы управления ActiveX на стороне сервера для наращивания его возможностей.
1.3 Апплеты и сервлеты Java
Апплеты Java применяются для создания динамически формируемого интерфейса пользователя. Язык Java является объектно-ориентированным языком с синтаксисом, похожим на синтаксис языка С++. Однако возможности языка Java по доступу к локальным ресурсам пользователей сильно урезаны, что делает его безопасным для использования в сети. Апплеты предназначены для выполнения на любых платформах. Их код интерпретируется виртуальной Java-машиной, входящей в состав обозревателя. Использование такого механизма гарантирует целостность локальных данных пользователей. Для использования апплета на Web-странице применяется специальный тег, позволяющий вставлять объект-апплет в любое место Web-документа. Сервлеты, в отличие от апплетов, выполняются на стороне сервера и служат для обработки запросов от обозревателя.
1.4 Интерфейсы CGI и WinCGI
Для создания модулей расширения Web-сервера могут использоваться интерфейсы CGI (Common Gateway Interface — общий шлюзовой интерфейс) или интерфейсы программирования API (Application Program Interface — интерфейс прикладного программирования).
Интерфейс CGI является стандартным протоколом взаимодействия между Web-сервером и модулями расширения, которые могут применяться для выполнения дополнительных функций, не поддерживаемых сервером. Например, такие модули используются для обработки получаемой от пользователя информации, для динамического формирования Web-документа, публикации БД на Web-странице и т. д.
Интерфейсу CGI соответствуют обычные консольные приложения операционной системы DOS. Обмен информацией между сервером и модулем расширения осуществляется с помощью стандартного потокового ввода/вывода, передача управляющих параметров организуется через переменные окружения операционной системы или через параметры URL-адреса модуля расширения. В качестве стандартных устройств ввода и вывода в среде DOS по умолчанию используются клавиатура и терминал (монитор) соответственно. В этом случае вывод на стандартное устройство перенаправляют в буфер, из которого данные с помощью протокола HTTP отправляются Web-обозревателю.
Для запуска модуля расширения достаточно задать его URL-адрес в строке адреса обозревателя и начать загрузку документа. При получении запроса обозревателя к CGI-приложению сервер запускает это приложение и передает ему данные из командной строки запроса. CGI-приложение формирует ответ и помещает его в выходной поток (на стандартном устройстве вывода), затем сервер посылает этот ответ с использованием протокола HTTP обратно обозревателю. В случае параллельной обработки нескольких запросов сервер запускает отдельный процесс для обработки каждого запроса. Причем для каждого процесса создается копия модуля расширения в памяти компьютера, на котором находится Web-сервер. Поэтому недостатками этого протокола является невысокая скорость обработки запросов и повышенная загрузка Web-сервера.
Существует адаптированный вариант общего интерфейса для среды Windows 3.1 — WinCGI. Этот интерфейс отличается от интерфейса CGI тем, что управляющие параметры передаются через INI-файл, а входной и выходной потоки данных перенаправлены в специальные файлы. В остальном механизм взаимодействия с сервером аналогичен механизму, используемому интерфейсом CGI.
Используется также интерфейс FastCGI, который близок к интерфейсу CGI, но в то же время обладает преимуществами интерфейсов ISAPI/NSAPI (рассмотрены ниже). Приложения, написанные в соответствии с ним, запускаются как отдельные изолированные процессы, но являются постоянно активными и не завершаются после обращения к данным, как CGI-сценарии.
1.5 Интерфейсы ISAPI/NSAPI
Более перспективными являются интерфейсы ISAPI/NSAPI (Internet Server API/Netscape Server API), разработанные фирмами Microsoft и Netscape соответственно. Они также предназначены для разработки дополнительных модулей расширения Web-сервера. В случае их использования модули расширения реализуются в виде библиотек DLL. Запуск модуля расширения выполняется сервером в ответ на запрос обозревателя на загрузку URL-адреса этого модуля. Взаимодействие между сервером и модулем расширения осуществляется с помощью специальных объектов (Request, Response). Сервер передает параметры запроса модулю расширения и получает сформирован-ный Web-документ,' который передается с помощью протокола HTTP обозревателю.
При многопользовательском режиме работы сервера загрузка ISAPI-mo-дуля расширения (библиотеки DLL) происходит один раз при первом обращении. При обработке сервером последующих запросов к модулю расширения сервер использует уже загруженный экземпляр динамической библиотеки. Такой механизм взаимодействия сервера и модуля расширения обеспечивает экономию ресурсов сервера и увеличение скорости обработки запросов. Однако при возникновении ошибок в коде модуля расширения сам Web-сервер аварийно завершит работу (в отличие от интерфейса CGI, при использовании которого в случае возникновения ошибки в модуле расширения сервер может продолжать нормально функционировать). Поэтому для отладки модулей расширения, реализуемых с помощью интерфейса ISAPI, создают аналог модуля на основе интерфейса CGI. При успешной его отладке создают и отлаживают вариант модуля расширения на основе ISAPI.
1.6 ASP, РНР и IDC/HTX-страницы
ASP, РНР u IDC/HTX-страницы — это специальный тип страниц, используемых для динамического формирования на сервере Web-страниц, содержащих информацию из БД.
IDC-страница содержит алиас (псевдоним) БД, или системную запись, используемую операционной системой для связи с базой данных) БД, SQL-запрос к базе данных, идентификатор пользователя и пароль для доступа к БД. НТХ-страница содержит HTML-шаблон, определяющий какую информацию и в каком формате будет иметь результирующий файл. Этот файл поддерживает все теги языка HTML и дополнительные теги для размещения информации из БД.
Активная серверная страница ASP (Active Server Page) содержит одновременно HTML-шаблон и SQL-запрос к БД. В ASP-странице используются средства языка J Script и объектная модель ASP, с помощью которых организуется доступ к БД и формируется внешний вид создаваемой Web-страницы. В ASP-страницах, также как в IDC-страницах, поддерживаются все теги языка HTM L и используются дополнительные теги для размещения кода на языке JScript.
PHP-страницы разрабатываются с помощью одноименного языка обработки сценариев PHP (Personal Home Page tools — средства персональных домашних страниц). Синтаксис языка РНР напоминает смесь синтаксиса языков программирования С, JAVA и Perl.
ASP, РНР и IDC/HTX-страницы обрабатываются Web-сервером, в результате сервер генерирует Web-страницу содержащую информацию из БД, которая отсылается обозревателю. Рассмотрим процесс формирования Web-страниц, содержащих информацию из БД.
1.7 Формирование Web-страниц В Интернете информация находится на Web-узлах, на которых для организации взаимодействия с пользователями сети устанавливается специальное программное обеспечение, в том числе Web-сервер. В функции Web-сервера входит обработка запросов Web-обозревателей пользователей сети. В результате обработки запроса сервер формирует Web-документ, который отсылается Web-обозревателю в формате протокола HTTP.
Самостоятельно Web-сервер может отсылать готовые Web-страницы и формировать динамически Web-страницы различными способами. Для формирования динамической Web-страницы, содержащей информацию из БД, дополнительно используются модули расширения серверной части.
В связи с этим различают пассивное и активное состояния Web-сервера. Так, Web-сервер находится в пассивном состоянии, если формируемый им документ содержит статическую текстовую, графическую, мультимедийную информацию и гиперссылки. В таком документе отсутствуют средства ввода и обработки запросов к серверу.
В случае, когда на Web-странице находятся интерфейсные элементы, которые могут в ответ на реакцию пользователя обращаться с запросами к серверу, то сервер переходит в активное состояние. Для публикации БД основной интерес представляет активный Web-сервер, который реализуется с помощью программных расширений. Для создания программных расширений Web-сервера, формирующих на Web-странице содержимое БД, используются следующие средства:
консольные ехе-программы, использующие интерфейс CGI;
ехе-программы, использующие интерфейс WinCGI;
динамические библиотеки, использующие интерфейс ISAPI;
динамические страницы IDC/HTX;
активные серверные страницы ASP.
Кроме того, для организации связи программных расширений Web-сервера с БД используются современные интерфейсы доступа к данным OLE DB, ADO и ODBC. Эти интерфейсы являются промежуточным уровнем между источником данных и приложением, в качестве которого выступают программные расширения Web-сервера.
2. Web-приложений, публикующие БД
2.1 Принципы функционирования Web-приложений Программные средства сетей Интернет/интранет включают новую категорию программ — Web-приложения. К Web-приложениям относят набор Web-страниц, сценариев и других программных средств, расположенных на одном или нескольких компьютерах (клиентских и серверных) и объединенных для выполнения прикладной задачи. Web-приложения, публикующие БД в Интернет, представляют отдельный класс Web-приложений.
Современные информационные системы в сетях Интернет/интранет, построенные на основе Web-приложений, использующих БД, по своей архитектуре и организации работы опираются на принципы, заложенные в многоуровневых клиент-серверных приложениях и принципах функционирования Интернета. Основы архитектуры многоуровневых клиент-серверных приложений рассмотрены в предыдущей главе. Web-приложения имеют ряд особенностей функционирования, заключающиеся в принципах работы Интернета. Кратко напомним основные из этих принципов.
Web-приложения выполняются на стороне Web-сервера, который находится на Web-узлах сети Интернет. Web-сервер обрабатывает запросы обозревателя на получение Web-страниц и отсылает требуемые данные обозревателю в формате Web-документов.
Обмен данными в сети Интернет осуществляется на аппаратном уровне на основе протокола TCP/IP и протокола более высокого логического уровня HTTP.
Напомним, что под Web-документом (Web-страницей) понимают документы, используемые в сети Интернет в форматах HTML, XML, шаблоны в форматах ASP, НТХ и т. д.
Для доступа к Web-страницам используются специальные клиентские программы — обозреватели Web, находящиеся на компьютерах пользователей Интернета. Обозреватель формирует запрос на получение требуемой страницы или другого ресурса с помощью адреса URL. Функции обозревателя заключаются в отображении Web-страниц, сгенерированных сервером или модулями расширения, и отправке запросов пользователя Web-приложению. Обозреватель является связующим звеном между пользователем и Web-приложением. При этом Web-обозреватель устанавливает соединение с требуемым Web-узлом, используя различные протоколы передачи данных, нами рассматривается использование протокола HTTP.
2.2 Архитектура Web-приложений, публикующих БД При публикации БД на Web-страницы в архитектуру Web-приложений вводятся дополнительные уровни, включающие сервер БД, сервер приложений и источник БД.
При такой архитектуре Web-сервер передает запрос на генерацию Web-страниц программе-расширению Web-сервера, которая формирует требуемый документ по информации из БД и затем Web-сервер отсылает готовые Web-страницы обратно обозревателю. Для формирования динамических страниц используются различные средства и технологии: ASP и IDC/HTX-страни-цы, программы-расширения сервера на основе интерфейсов CGI и ISAPI.
При использовании ASP, PHP и IDC/HTX-страниц запрос на получение динамически формируемой Web-страницы передается специальным динамическим библиотекам, входящим в состав Web-сервера. Например, если в качестве Web-сервера используется Personal Web Server и публикация осуществляется средствами IDC/HTX, то применяется динамическая библиотека «httpodbc.dll». Такие библиотеки анализируют файл ASP или ЮС и НТХ-файлы, которые используются в качестве шаблонов.
Напомним, что при публикации БД на Web-страницах используются статическая и динамическая публикация Web-страниц, содержащих информацию из базы данных. При статистической публикации подготовка Web-страницы осуществляется с помощью обычных приложений БД, которые, формируют Web-документ на жестком диске. Причем, Web-документы создаются и хранятся на Web-сервере до поступления запроса пользователя на их получение. Такой способ не позволяет публиковать БД в реальном масштабе времени, и, естественно, этот способ публикации используется в случае когда информация в базе данных обновляется относительно редко. Тем не менее при статистической публикации уменьшается нагрузка на сервер при обработке запросов, так как серверу в этом случае нет необходимости обращаться с запросом к серверу БД, а достаточно передать готовую Web-страницу обозревателю.
При динамической публикации Web-страницы создаются после поступления запроса пользователя на Web-сервер. Поступивший запрос на генерацию Web-страниц Web-сервер передает программе-расширению сервера, которая формирует требуемый документ, и затем Web-сервер отсылает готовые Web-страницы обратно обозревателю.
Программы-расширения Web-сервера, публикующие базы данных, используют принципы, на которых строятся приложения БД. При статистической и при динамической публикации должна использоваться архитектура приложений БД, дополненная характерными компонентами архитектуры Web-приложений. Рассмотрим архитектуру Web-приложений, использующих БД.
Двухуровневые Web-приложения При двухуровневой архитектуре Web-приложений источник БД хранится на том же компьютере, где находится Web-сервер. Для доступа к источнику БД используются модули расширения. В простейшем случае в архитектуру Web-приложений добавляется источник БД (рис. 15.5).
Схема функционирования Web-приложения при такой архитектуре заключается в следующем. Обозреватель для начала работы с Web-приложением отсылает URL-адрес главной страницы Web-приложения Web-серверу. Последний, обработав URL запроса, высылает главную страницу Web-приложения обозревателю в формате HTML. Эта страница несет общую информацию о Web-приложении и позволяет выбрать требуемую для пользователя функцию из ряда других, предоставляемых этим Web-приложением. Далее возможны несколько вариантов работы Web-приложения.
Если пользователю нужна определенная информация из БД, то обозреватель по ссылке, находящейся в загруженной HTML-странице, формирует URL запроса к модулю расширения сервера, при этом могут использоваться различные технологии в зависимости от используемого Web-сервера на Web-узле и других особенностей работы Web-приложения.
Например, если на Web-узле установлен Web-сервер Microsoft Internet Information Server, то может использоваться технология ASP-страниц, IDC/ НТХ-страниц, CGI или ISAPI-технология, а в случае установки сервера Apache может применяться CGI-технология.
При необходимости формирования параметризованного URL на уровне обозревателя могут использоваться сценарии на JavaScript для проверки правильности ввода параметров запроса.
После того как пользователь выбрал требуемую ссылку, обозреватель отсылает URL Web-серверу. Для обработки такого запроса сервер вызывает требуемый модуль расширения и передает ему параметры URL. Модуль расширения сервера формирует SQL-запрос к БД.
Из модуля расширения сервера доступ к БД может осуществляться различными способами и на основе различных интерфейсов. Например, в случае использования технологии ASP-страниц применяется несколько уровней интерфейсов: объектная модель ADO, объектный интерфейс OLE DB, интерфейс ODBC. Также возможен вариант непосредственного доступа к БД. Например, в случае модуля ISAPI, разработанного в среде Delphi, для доступа к БД может использоваться один посредник — драйвер BDE (Borland DataBase Engine), входящий в состав программных средств модуля расширения сервера.
Недостатки рассмотренной двухуровневой архитектуры состоят в следующем:
* повышенная нагрузка на Web-сервер, заключающаяся в том, что вся работа по обработке URL-запросов, извлечению информации из БД и формированию HTML-страниц выполняется Web-сервером и модулями расширения Web-сервера; * низкий уровень безопасности, связанный с невозможностью, например, обеспечить требуемый уровень защиты информации в БД от сбоев во время обращения к базе данных из модуля расширения сервера или конфиденциальности информации БД от администратора Web-узла. Для преодоления указанных Недостатков применяются Web-приложения с большим числом уровней. Перейдем к их рассмотрению.
Трехуровневые Web-приложения При внесении в Web-приложение промежуточного уровня, основанного на технологии клиент-сервер, его архитектура расширяется до трехуровневой. При такой архитектуре клиентский уровень занимает обозреватель, на уровне сервера находится сервер БД, на промежуточном уровне находятся Web-сервер и модули расширения сервера. Модуль расширения сервера выступает преобразователем протоколов между клиент-серверным
Введение
уровня Web-сервера в клиент-серверные приложения БД расширяет возможность их применения как для межнлатформенного приложения. Принципы взаимосвязи обозревателя и Web-сервера остаются те же, что и в предыдущей архитектуре. Отличия этой архитектуры заключаются в организации взаимодействия модуля расширения сервера и источника данных.
Для получения данных модуль расширения Web-сервера формирует и отсылает SQL-запрос удаленному серверу БД (SQL-серверу). На компьютере, где установлен удаленный сервер БД, содержится и база данных. SQL-сервер обеспечивает выполнение запроса и выдачу модулю расширения Web-сервера результатов запроса.
Таким образом, в трехуровневой архитектуре вся обработка SQL-запроса выполняется на удаленном сервере. Достоинства такой архитектуры по сравнению с предыдущей состоят в следующем:
уменьшение сетевого трафика — в сети циркулирует минимальный объем информации;
увеличение уровня безопасности информации, поскольку обработка запросов к базе данных выполняется сервером БД, который управляет доступом к базе данных, запрещая одновременное изменение одной записи различными пользователями и реализуя механизм транзакций;
повышение устойчивости Web-приложения к сбоям;
взаимозаменяемость компонентов архитектуры трехуровневого Web-приложения;
снижение сложности модулей расширения Web-сервера, в которых отсутствует программный код, связанный с контролем БД и разграничением доступа к ней.
Недостатком рассмотренной архитектуры является увеличение времени обработки запросов, связанное с дополнительным обращением по сети к серверу БД. Для устранения этого недостатка между сервером БД и Web-сервером должны использоваться высокоскоростные надежные линии связи.
Многоуровневые Web-приложения Дальнейшее развитие архитектуры Web-приложений и технологии «клиент-сервер» привело к появлению многоуровневой архитектуры, в которой между модулем расширения Web-сервера и базой данных, кроме сервера БД, дополнительно вводится сервер приложений. Сервер приложений является промежуточным уровнем, который обеспечивает организацию взаимодействия клиентов («тонких» клиентов) и сервера БД (рис. 15.7).
Напомним, что сервер приложений может использоваться для выполнения различных функций, которые в предыдущей архитектуре выполнялись сервером БД или модулем расширения Web-сервера.
В качестве «тонкого» клиента в этой архитектуре выступает программа-модуль расширения Web-сервера. Сервер приложений может обеспечивать взаимодействие с Web-серверами и серверами БД, функционирующими на различных аппаратно-программных платформах (компьютерах различных типов и под управлением различных операционных систем). Такая архитектура является основой для интранет-сетей, создаваемых на основе существующих
Введение
дополнительного уровня Web-сервера позволяет публиковать информацию из БД локальных сетей в сети Интернет, получать информацию от других интранет-сетей или Web-узлов. Кроме того, при частичной или полной реорганизации внутренней архитектуры локальных сетей появляется возможность использовать преимущества сетей интранет, касающиеся упрощения дополнительного подключения новых пользователей и администрирования локальной сети.
Отметим, что в некоторых архитектурах информационных систем Web-сервер может структурно объединяться с сервером приложений. В этом случае программные средства, входящие в состав модуля расширения, выполняют роль сервера приложений.
Основные достоинства многоуровневой архитектуры Web-приложений заключаются в следующем:
разгрузка Web-сервера от выполнения части операций, перенесенных на сервер приложений и уменьшение размера модулей расширения сервера на основе разгрузки их от лишнего кода;
обеспечение более гибкого межплатформенного управления между Web-сервером и сервером БД;
упрощение администрирования и настройки параметров сети — при внесении изменений в программное обеспечение или конфигурацию сервера БД не нужно вносить изменения в программное обеспечение Web-сервера.
2.3 Web-приложения на основе CORBA
Архитектура современных Интернет-приложений — это трехзвенная модель с использованием клиент/серверной архитектуры и интерфейса 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-приложений.
На первом уровне находится клиентское приложение — обозреватель. В обозревателе выполняется клиентский Java-апплет, из которого может осуществляться обращение к объектам CORBA.
На втором уровне находится Web-сервер, обрабатывающий HTTP-запросы и CORBA-вызовы клиентских приложений.
На третьем уровне находится сервер-приложений. В его роли могут выступать серверы ORB (Object Request Broker — посредник запросов объектов) или распределенные объекты CORBA, функционирующие как серверы приложений промежуточного звена и выполняющие прикладные функции и набор компонентных сервисов (услуг). Серверы ORB являются унифицированными фрагментами программы, используемыми в распределенных приложениях в качестве связующего звена между клиентскими приложениями и сервером.
Объекты CORBA взаимодействуют с серверами БД последнего уровня, используя, например, SQL в случае реляционных БД. Кроме того, объекты CORBA на сервере могут взаимодействовать и друг с другом. В основе механизма взаимодействия между объектами CORBA лежит протокол ПОР (Internet Inter-ORB Protocol — Интернет-протокол взаимодействия ORB). Протокол НОР основывается на протоколе TCP/IP с добавленными компонентами обмена сообщениями и функционирует как общий опорный протокол при организации взаимодействия серверов ORB и объектов CORBA. В дополнение к ПОР в технологии CORBA используются ESIOP-протоколы (Environment-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.
На последнем четвертом уровне размещается сервер баз данных или другой источник данных, то есть практически любой источник информации, к которому CORBA может получить доступ. Сюда входят процедурные мониторы транзакций (TP Monitors), MOM (Message-Oriented Middleware — промежуточное программное обеспечение, ориентированное на обмен сообщениями), ODBMS (ODBMSобъектные СУБД), электронная почта и т. д.
В настоящий момент интерфейсы CORBA/HTTP поддерживается почти всеми серверными платформами, включая Unix, NT, OS/2, NetWare, MacOS, OS/400.
Рассмотрим механизм функционирования 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 и Интернета обеспечивает приводимые ниже достоинства.
Масштабируемость и устойчивость Web-приложения, заключающиеся в том, что серверы Web и ORB могут взаимодействовать с использованием CORBA ORB. При этом объекты ORB могут выполняться на нескольких серверах для обеспечения баланса нагрузки (load-balancing) серверов для входящих клиентских запросов. ORB может отправить запрос первому доступному объекту, а также увеличить число доступных объектов по необходимости. CORBA позволяет объектам сервера действовать последовательно, используя транзакции и связанные сервисы CORBA. В отличие от технологии CORBA, интерфейс CGI при большом количестве запросов не имеет возможности распределить нагрузку между несколькими процессами или процессорами.
Гибкость архитектуры CORBA позволяет клиентам непосредственно вызвать методы на сервере. Клиенты передают параметры напрямую, используя прекомпилированные стабы, или генерируют их во время выполнения апплета, используя сервисы динамических вызовов CORBA DII. Можно вызывать на сервере любой метод, определенный с помощью IDL, а не только один метод, описанный посредством HTML, можно передавать любые типизированные параметры вместо обычных строк.
CORBA расширяет возможности Java по взаимодействию с распределенными объектами. Так как Java-апплеты не могут взаимодействовать сквозь все адресное пространство, используя вызовы удаленных методов, то для Java-апплетов не существует простого способа вызвать метод на удаленном объекте. CORBA позволяет Java-апплетам взаимодействовать с другими объектами, написанными на различных языках, преодолевая адресное пространство и сети. CORBA обеспечивает богатый набор сервисов распределенных объектов (метаданные, транзакции, безопасность, именование, коллекции и т. д.), которые расширяют Java.
CORBA расширяет объектную модель Java для распределенной среды и позволяет Java-апплетам вызывать широкий спектр определенных на IDL операций на сервере. В противоположность этому, клиенты HTTP ограничены небольшим набором операций. Приложения серверной части — это обычные объекты CORBA. Следовательно, они доступны в любой момент времени. Нет необходимости проходить через издержки обращения к CGI-сценариям для каждого вызова.
CORBA предоставляет средства для создания трехзвенной архитектуры клиент/сервер. Кроме того, технология CORBA разгружает код Java-апплетов, определенные компоненты могут быть распределены в среде клиент/сервер. Клиентская часть апплета может оставаться маленькой, что сокращает время загрузки апплета.
Кроме технологии CORBA, для расширения возможностей применения Web могут использоваться следующие конкурирующие технологии: сокеты, DCOM с ActiveX и RMI (Remote Method Invocation — механизм вызова удаленных методов) другие технологии. Тем не менее, технология CORBA остается лидером среди всех интерфейсов распределенных объектов благодаря хорошим архитектурным и функциональным возможностям, устойчивости в работе и легкости в настройке.
В частности, технология CORBA по сравнению с ближайшим ее конкурентом — технологией DCOM обеспечивает следующие преимущества:
*полная и корректная реализация поддержки различных ОС;
CORBA реализована целиком на Java, в связи с этим она хорошо интегрируется с Java;
легкость конфигурирования и настройки серверов и клиентов CORBA;
корректная реализация вызовов распределенных методов;
полнота функциональной реализации динамического наследования и поддержки метаданных;
более высокая (более чем на 20%) производительность приложений;
корректная реализация механизма транзакций;
корректная реализация долговременных, или сохраняемых объектных ссылок;
поддержка CORBA-интерфейсом URL-имен;
открытый стандарт CORBA-интерфейса.
Таким образом, CORBA обеспечивает инфраструктуру распределенных объектов, что позволяет приложениям распространяться через сети, языки, границы компонентов и операционные системы. Java обеспечивает инфраструктуру переносимых объектов, которые работают на всех основных операционных системах. CORB, А дает независимость от сетей, a Java — независимость от реализации.
Для организации связи программных расширений Web-сервера с БД используются современные интерфейсы доступа к данным OLE DB, ADO и ODBC. Эти интерфейсы являются промежуточным уровнем между источником данных и приложением, в качестве которого выступают программные расширения Web-сервера. Рассмотрим особенности архитектуры Web-приложений, использующих интерфейсы доступа к данным OLE DB, ADO и ODBC.
2.4 .Технологии публикации баз данных. Работа WEB-серверов с изменяющейся информацией Бурный рост World Wide WEB как в среде Интернет, так и в интрасетях привел к появлению новаторских технологий, направленных на расширение возможностей WEB-серверов. Используя специализированные сценарии и программы, разработчики WEB могут дать пользователям, использующим браузеры для доступа к корпоративным данным, возможность выводить на экран финансовую информацию в реальном масштабе времени, размещать заказы и выполнять иные функции, которые обычно выходят за пределы допустимого для WEB-серверов. Другими словами, эти продукты позволяют WEB-серверам наряду со статическими текстом и графикой передавать и динамические данные.
Существуют три метода, благодаря которым WEB-серверы получают возможность пересылать динамические данные: расширение серверной стороны (Server Side Includes, SSI), общий шлюзовый интерфейс (Common Gateway Interface, CGI) и интерфейс прикладного программирования (API). Язык Java также входит в число средств, обеспечивающих динамический доступ к базам данных. Однако модули Java выполняются независимо от WEB-сервера. Все методы сильно различаются друг от друга, и каждому из них присущи свои достоинства и недостатки.
SSI — простой способ предоставить WEB-серверу возможность вставлять небольшие объемы динамических данных непосредственно в HTML-документ. Для использования SSI не требуется опыта программирования. Метод SSI позволяет динамически включать один файл в состав другого, а также исполнять программы (например, такие, как CGI-сценарии) и передавать информацию такого типа, как имя узла браузера или WEB-сервера.
SSI, однако, не столь удачно, как CGI и интерфейсы API, выполняет пересылку информации, извлеченной из базы данных, в браузер и обратно. Это объясняется тем, что метод SSI не обеспечивает столь глубоких возможностей программирования и расширенного доступа на уровне API к внешним ресурсам, например, серверам баз данных, которые предоставляются другими технологиями. Кроме того, метод SSI создает серьезную дополнительную нагрузку на системные центральный процессор и память, так как WEB-серверу необходимо целиком прочитывать HTML-документы, отыскивая SSI-маркеры, и предпринимать соответствующие действия.
CGI — спецификация, позволяющая WEB-серверам выполнять внешние прикладные программы, которые генерируют HTML-документы и пересылают их назад в браузер. Программы CGI могут работать в диалоговом режиме с пользователем браузера, принимать данные и даже обмениваться информацией с внешним сервером ресурсов, таким, как сервер базы данных, через API базы данных. CGI-сценарии можно готовить почти на любом языке, понимаемом WEB-сервером, в том числе на популярном языке Perl, С, C++, Бейсик, REXX, Паскаль и Windows CGI.
2.5 Публикация баз данных средствами MS FrontPage XP
В условиях высокой стоимости готовых систем управления на основе баз данных для предприятий индустрии гостеприимства Российской Федерации, особенно малых, можно предложить использование стандартных решений широко используемых офисных пакетов, таких, как Microsoft Office или программных продуктов Lotus. Использование данных средств позволяет решать довольно сложные вопросы, в частности интерактивное информирование клиентов об услугах, их наличии, возможность бронирования в режиме реального времени, внесение информации о клиенте (в процессе того же бронирования) и обработку полученной информации для отправки в системы принятия решений.
Рассмотрим основные шаги в реализации баз данных туристских предприятий в Интернет стандартными средствами.
Следует оговорить некоторые ограничения: все средства обработки и реализации активных страничек на стороне сервера должны быть продуктами Microsoft.
Ядром интернет-приложений выступает WEB-сервер. Для туристских предприятий рекомендуется Microsoft Internet Information Server 4.0. По сравнению с остальными серверами, данный пакет позволяет легко установить и настроить сервер; к сожалению, он имеет недостаток в виде некоторого количества «дыр», что облегчает хакерам взлом. Можно только надеяться на успешное их устранение в следующих версиях.
Средством проектирования WEB-страниц можно указать Microsoft FrontPage, особенно версии XP, в которой устранены некоторые большие недостатки предыдущих версий и добавлены новые мощные инструменты визуального проектирования. С помощью MS FrontPage можно создавать не только описательную часть сайта предприятия, но и разрабатывать с помощью специального мастера и сами базы данных, публиковать их на сайте.
Если отладка сайта будет происходить в off-line, то необходимо установить и сервер, способный работать в режиме off-line. Таким сервером рекомендуется сделать личный сервер WEB от Microsoft под названием Personal WEB Server. Это русскоязычный пакет, позволяющий организовать WEB-сервер на локальном компьютере с установкой возможности выполнения активных серверных страниц.
Использование самого стандартного пакета MS Office позволяет ускорить все процедуры по построению и публикации сайта на сервере.
Таким образом, резюмируя вышесказанное, можно отметить: для создания мощного сайта туристскому предприятию необходимы MS Office+FrontPage и MS Internet Information Server.
Следует указать, что при использовании этой связки можно избежать изучение следующих средств: программы CGI, приложения ISAPI, разработки активных серверных страниц ASP, клиентских сценариев JavaScript, клиентских сценариев VisualBasic Script, апплетов Java, элементов управления ActiveX, SQL сервер и SQL запросы, интерфейсов DB Library, ODBC, Remote Data Object, OLE DB и т. д.
Покажем пример создания базы данных о клиентах с возможностью заполнения ее через Интернет. В пакете MS FrontPage создаем новый WEB-сайт с использованием заготовок WEB Site Templates.
2.6 Организация работы с БД с помощью ASP
стандартизация пользователь интерфейс
Активные серверные страницы ASP
Новая технология фирмы Microsoft — активные серверные страницы ActiveServerPages (ASP) — позволяет использовать языки сценариев VBScript и JavaScript для создания динамичного, интерактивного содержимого WorldWideWeb. Применение технологии ASP дает возможность выполнять сценарии на сервере и отображать результат с помощью любого Web-броузера независимо от того, поддерживает он языки сценариев или нет.
До недавнего времени создание динамичного, интерактивного содержимого в Internet/Intranet требовало использования CGI или ISAPI/NSAPI-интерфейсов. В этом случае клиенты посылали HTTP-запросы, которые адресовались не статическим HTML-страницам, а серверным программам, написанным с помощью специальных средств, которые бы обрабатывали параметры и отсылали клиенту результат в виде потока HTML-тегов. Недостатком такого подхода является то, что создание программ такого рода — дело довольно затруднительное, никак не связанное с непосредственным написанием HTML-страниц.
Что предлагает технология ASP? С ее помощью можно создавать сценарии, выполняемые в контексте сервера. Такие программы интегрируются непосредственно в HTML-страницы и не требуют каких-либо дополнительных средств разработки. Самое важное, что создание HTML-страниц и создание серверных программ — это единый процесс.
Следует отметить, что указанная технология базируется на двух проверенных временем решениях: ActiveXScripting — для поддержки языков сценариев на уровне внутрипроцессорных CJM-серверов и OLEAutomation — для выполнения серверных компонентов ActiveX. Существует, однако, некоторое ограничение на тип этих компонентов. Так как они выполняются в контексте сервера, то не должны иметь пользовательский интерфейс.
Активные серверные страницы хранятся на сервере в файлах с расширением ASP. Каждый файл представляет собой ASCII-файл, в котором объединяются текст, отображаемый в клиентском броузере, теги языка HTML, служащие для форматирования текста, и программа на языке сценария.
Обзор объектов и компонентов ASP
Механизм активных серверных страниц включает в себя пять встроенных объектов и ряд серверных компонентов, обеспечивающих серверные страницы всей функциональностью, c возможностью использования в сценариях, выполняемых на сервере. Рассмотрим сначала встроенные объекты. Эти объекты перечислены в таблице.
Объект Application используется для обмена информацией между пользователями данного приложения. Этот объект имеет два метода: Lock и Unlock — и может реагировать на два события — OnStart и OnEnd. Метод Lock блокирует изменения свойства объекта Application, метод Unlock отменяет данный запрет. Объект Application может хранить переменные. Использование объектов OnStart и OnEndтребует размещения соответствующего программного кода в глобальном файле GLOBAL.ASA.