Перенос Базы Данных на WEB-серверРефераты >> Программирование и компьютеры >> Перенос Базы Данных на WEB-сервер
3.3 ASP (Active Server Page) – Активные серверные страницы.
Особое положение среди средств разработки занимают активные серверные страницы (Active Server Pages или ASP). Они предназначены для организации доступа к WEB-серверу, клиентов, располагающих только броузером. ASP представляют собой набор интерпретируемых сервером MS IIS (Microsoft Internet Information Server) сценариев, содержащих разметку HTML и программный код на языках VBScript и Javascript, который по желанию разработчика, может исполняться либо на сервере, либо на клиенте. Это позволяет в одном ASP-файле сочетать серверную и клиентскую логику. Та часть кода, которая исполняется на сервере, может использовать "родные" интерфейсы для общения с сервером и реализации как базовых, так и расширенных функций MAPI. При этом общение клиентской и серверной частей ASP-приложения происходит исключительно средствами протокола HTTP. За поддержание сессии между клиентской и серверной частями отвечает Internet Information Server.
Active Server Pages являются обычным ISAPI-фильтром, работающим в контексте процесса MS Internet Information Server, начиная с версии 3.0. (Технология ASP доступна и для других серверов. Фирмой Chili!Soft выпускается пакет Chili!ASP, после установки которого сервера других производителей начинают "понимать" ASP – страницы.) Отличие ASP от препроцессора заключается в возможности работы с COM-объектами (в контексте ASP их называют Installable components).
Проект под названием Denali почти идеально вписывается в технологию "клиент-сервер", теперь уже не настолько популярную. Хотя, что может лучше подходить для Сети, чем технология создания приложений "логически централизованных - физически децентрализованных". Говоря простым языком, логически централизованные - это распределенные вычислительные системы, доступные и управляемые из любой точки, а физическая децентрализация - это возможность расширения, масштабирования, повышения надежности.
В первую очередь, ASP имеет достаточно развитый командный язык. И даже не один, а как минимум два: VBScript и JScript. "Как минимум", потому что объектная модель OLE для «скриптовых» машин позволяет легко встраивать в среду другие языки. Поэтому разработчикам на Perl или REXX можно не переучиваться, а использовать свой накопленный опыт. И все же языком "по умолчанию" для ASP является VBScript, фактически подмножество Visual Basic, и в этом, конечно же, нет ничего удивительного - продукт Microsoft Corporation. JScript, с другой стороны, - подмножество Java и так же похож на С++. И у той, и другой скрипт-машины есть как свои преимущества, так и недостатки. Если вкратце, то JScript все-таки кажется помощнее и почти дотягивает по возможностям до нескриптовых языков. Это далеко не ассемблер, практически невозможно поковыряться в потрохах у системы, но, по всей видимости, разработчики ASP посчитали это дополнительной защитой от вторжения извне.
Само кодирование не требует никаких дополнительных затрат в виде специальных сред разработки. Поскольку ASP-файлы имеют текстовый формат, они легко могут быть модифицированы для придания клиентской и серверной частям необходимой функциональности. Microsoft рекомендует использовать MS InterDev, но почти во всех современных версиях HTML-редакторов (например, Allaire HomeSite) есть поддержка тегов ASP. Код "вставляется" прямо в HTML-текст в окружении специального тега <% ASP-код %>, после этого файлу нужно дать с расширением .asp, чтобы он был передан на вход ASP-фильтра для переработки в обычный HTML и выдачи IIS-серверу, который уже и отдаст результат браузеру. Причем любому, не имеет значения, MS IE это, Netscape Navigator или браузер "третьего мира". Главное, чтобы он понимал HTML, а это ведь вообще-то первостепенная задача браузера. Чем не универсальная платформа, к которой долго и упорно стремятся все? Конечно, все же есть отличия в браузерах, то есть в их интерпретации стандартного HTML. Всем это знакомо: одни и те же странички, написанные на самом что ни на есть стандартнейшем HTML, смотрятся иногда совершенно по-разному в IE и NN. А вообще ASP имеет возможность справиться и с этой "проблемой". Просто определяется тип браузера, с которым пришли, и навигация идет по страницам, написанным для этого типа.
Происхождение одной из труднейших проблем при создании Интернет-приложений в самой природе Сети. Это отсутствие гарантированной постоянной связи, и, отсюда, невозможность создания непрерывного канала для отслеживания действий конкретного клиента. Единственный выход из этой ситуации - если клиент при каждом обращении будет "представляться". Именно это и сделано при помощи "cookie". Немало копий было поломано по поводу безопасности, но на данный момент, вроде бы, решили, что они достаточно безвредны, если не считать нескольких десятков байт, съедаемых на диске. Зато пользы от них, как можно увидеть, гораздо больше. После старта сервер выдает каждому пришедшему клиенту уникальный идентификатор (SessionID) в виде "cookie" и в течение сессии может понимать "кто - где". ID уникальны только в период непрерывной работы сервера. Если остановить и снова перезапустить сервер, то можно получить значения такие же, как до перезапуска. Поэтому применять SessionID в приложениях в виде уникального идентификатора не рекомендуется - лучше формировать свои.
Для настройки сессии можно использовать два объекта: Application и Session, каждый из которых имеет по два обрабатываемых события OnStart и OnEnd. Первый клиент, пришедший на сервер, вызывает создание объектов Application и Session и отработку для них своих процедур OnStart. Каждый последующий вызывает создание объекта Session для себя и отработку OnStart для своего объекта. После ухода клиента для соответствующего объекта Session отрабатывается процедура OnEnd, и объект уничтожается. С уходом последнего, кроме того, вызывается процедура OnEnd для объекта Application, и уничтожается объект Application. Уход клиента происходит либо по тайм-ауту, период которого задается в минутах свойством Timeout объекта Session (по умолчанию 30 минут), либо силовым методом Abandon того же самого объекта. Фактически, объект Session нужен для персонализации, то есть хранения переменных среды конкретного клиента, а Application - для хранения глобальной информации всего приложения. Процедуры для обработки событий OnStart и OnEnd описываются в файле Global.asa, который должен лежать в корне виртуального каталога.
Механизм приема-передачи данных в ASP реализован с помощью двух встроенных объектов: Request и Response. Используя свойства и методы этих объектов, можно добиться настоящей интерактивности, единственным неудобством остается необходимость закачки новой страницы каждый раз при исполнении какого-нибудь действия. Но тут не стоит забывать, что ASP - это именно серверная часть в клиент-серверной модели, а для клиентской части существуют другие решения.