Серверные приложения
С помощью сценариев для сервера можно получить доступ к файлам, базам данных и другим ресурсам, хранимым на сервере, а также к централизованным ресурсам сервера, таким как электронная почта или факс-служба. Функционирование в непротиворечивой и управляемой среде - еще одно преимущество выполнения сценариев на сервере. Ваш код выполняется только на одной версии единственного сервера, а не на множестве версий множества браузеров и типов компьютеров и другой цифровой техники.
Однако и для использования сценариев на стороне сервера имеется три основных препятствия.
1) Запуск скриптов на сервере зачастую требует получения специальных прав от Web-мастера или системного администратора.
2) Для взаимодействия со сценариями, выполняющимися на сервере, пользователь должен щелкнуть мышкой на ссылке или на кнопке на странице, а затем ожидать, когда сервер выполнит сценарий и перешлет ответ. Взаимодействие с использованием динамического HTML происходит быстрее.
3) Для тестирования сценариев для сервера требуется иметь собственный WWW-сервер, предпочтительно того же типа, что и промышленный вариант.
Программирование на стороне сервера в настоящее время является необходимым условием для решения широкого спектра задач. Оно позволяет:
получать и обрабатывать на сервере данные, введенные пользователем при помощи формы;
динамически создавать web-документы, не зависящие ни от платформы, ни от браузера клиента;
обеспечивать динамический доступ к данным, находящимся на сервере, в частности, к серверным базам данных (при таком способе доступа HTML-документ автоматически изменится, как только изменятся хранящиеся на сервере данные);
использовать серверные компоненты, предназначенные для решения типовых задач (таких, например, как циклическая смена рекламных баннеров и др.);
осуществлять аутентификацию пользователя;
получать информацию о браузере клиента;
создавать и читать ключики на стороне клиента.
Технология «клиент-сервер» CGI- Common Gateway Interface является стандартом интерфейса (связи) внешней прикладной программы с информационным сервером типа HTTP, Web сервер.
Большое количество World Wide Web приложений основано на использовании внешних программ, управляемых Web сервером. Использование данных программ позволяет строить Web приложения с динамически обновляемой информацией, хранящейся в базах данных или генерирующейся в зависимости от бизнес-правил решаемых задач. Для связи между Web сервером и вызываемыми программами широко используется Common Gateway Interface (CGI), имеющий реализации, как для Windows-ориентированных программ, так и для приложений, функционирующих в среде Unix.
Обычно гипертекстовые документы, извлекаемые из WWW серверов, содержат статические данные. С помощью CGI можно создавать CGI-программы, называемые шлюзами, которые во взаимодействии с такими прикладными системами, как система управления базой данных, электронная таблица, деловая графика и др., смогут выдать на экран пользователя динамическую информацию.
Таким образом, программа-шлюз запускается WWW сервером в реальном масштабе времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а она в свою очередь, используя средства прикладной системы, возвращает результат обработки запроса на экран пользователя. Программа-шлюз может быть закодирована на языках C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script. Как выполнимый модуль, она обычно записывается в поддиректорий с именем cgi-bin WWW сервера.
Интернет вообще и WWW в частности работает по технологии «клиент-сервер», то есть все программное обеспечение разделяется на клиентскую и на серверную части. Также между ними разделены и функциональные обязанности. Важным для понимания моментом является то, что клиент не знает и не обязан знать принципы работы и реализацию внутренних алгоритмов сервера, а сервер не вмешивается в дела клиента. Для взаимодействия этих частей разработан специальный протокол (в частном случае — протокол HTTP), и все взаимодействие между клиентом и сервером осуществляется исключительно в рамках данного протокола. Вашему браузеру все равно, какое программное обеспечение стоит на сервере, какая там операционная система, где физически лежат запрашиваемые документы на сервере (и лежат ли вообще, ведь они могут и генерироваться на лету специальными программами). Сервер тоже не вмешивается в дела вашего браузера, серверу абсолютно все равно, что сделает клиент с переданной информацией, как он ее будет отображать, сохранит на диске или проигнорирует - серверу до этого дела нет. Взаимодействие клиента и сервера происходит по принципу «запрос-ответ». Клиент посылает запрос, сервер обрабатывает его и посылает ответ:
Рассмотрим более детально все этапы соединения по протоколу HTTP:
1. Формирование запроса клиентом. (Браузер формирует запрос из URL, набранного пользователем, из щелчка на ссылке либо из данных формы).
2. Установка соединения с сервером (если установить соединение не удается, то на этом HTTP-транзакция закончится и клиент выдаст пользователю сообщение об ошибке).
3. Посылка запроса и ожидание ответа от сервера (все, что требуется от клиента, это чтобы запрос был в корректном формате).
4. Сервер принимает запрос (об этом и следующем этапе клиенту ничего не известно).
5. Сервер обрабатывает запрос.
6. Генерация ответа.
7. Прием ответа клиентом.
8. Разрыв соединения.
9. Обработка данных клиентом (вывод или сохранение данных).s
Обычно под запросом к серверу понимается URL (это унифицированная форма «заказа» данных на сервере). К собственно URL могут еще «прилагаться» некоторые данные, чаще всего это данные форм. При установке соединения с сервером сначала происходит трансляция символьного доменного имени, такого, как www.siemens.com, в IP-адрес, а затем осуществляется непосредственно создание TCP/IP-соединения с данным IP. Когда данные HTTP-запроса посланы серверу, клиент просто ожидает, пока не придет ответ. Пока нет обращений от клиентов, сам HTTP-сервер просто «спит» в ожидании запросов. Когда клиент устанавливает соединение, сервер «просыпается» и, приняв данные запроса, приступает к их обработке. Что именно сервер делает с запросом - известно только самому серверу. Единственный результат всех хитрых манипуляций - это выдача ответа, которого и ожидает клиент.
После того как сервер выдал ответ, он разрывает соединение и вновь «погружается в сон». Естественно отметить, что в случае возникновения ошибки HTTP-транзакция может закончиться на любом из этих этапов.
Если документ не найден или если для доступа к нему у вас нет прав, то выдается код ошибки. А если все нормально, то информация, содержащаяся в документе, включая сопутствующие данные о его типе, выдается в виде ответа.
Технология SSI(Server Side Includes, включения на стороне сервера) - это директивы, вставляемые в HTML-код и служащие для передачи указаний серверу. SSI позволяют "вставлять" фрагменты одних документов в другие. Конечно, это можно сделать непосредственно в текстовом редакторе, но если, например, в несколько документов вставляется один и тот-же фрагмент, к тому же часто изменяемый, использовать SSI-вставки много удобнее.
Сервер интерпретирует SSI-директивы и выполняет соответствующие действия. Использование SSI-вставок позволяет динамически формировать странички в зависимости от различных параметров (например, типа браузера).
Преимущества SSI проявляются тем сильнее, чем больше по объему сайт, имеющий повторяющиеся элементы кода на разных страничках. Для того, чтобы сервер знал, что страничка не обычная, а содержит SSI-директивы, используется специальное расширение: sHTML или shtm. Для того, чтобы указать серверу, какой блок нужно вставить и в каком месте странички, используется специальная форма записи в виде комментария:
<!--#команда параметр="значение" -->
При просмотре сформированного исходника HTML-файла пользователь не увидит никаких признаков SSI, т.к. браузер получает уже готовый HTML-код.
Первое преимущество SSI с точки зрения дизайнера заключается в том, что при таком подходе web-мастеру, занимающимуся поддержкой сайта, можно не бояться случайно испортить дизайн. Элементы сложной верстки скрыты за счет использования SSI, и поддержка содержимого страничек становится гораздо более легким и приятным делом.
Второе - это возможность мгновенной замены дизайна сайта, не требующая переделывания страничек. Для смены дизайна достаточно переписать SSI-вставки, формирующие внешний вид сайта.
SSI является дополнением к CGI, предоставляющее web-программисту множество удобств.
Спецификации ISAPI(Internet Server Application Programming Interface) определяет правила взаимодействия между Web-сервером и дополнительными программами.
Несомненным преимуществом CGI является универсальность. CGI-сценарии могут быть написаны на разных языках и выполняться на компьютерах с различной архитектурой. Если при написании сценария вы учли все правила, то можете быть уверены, что созданная вами программа будет корректно взаимодействовать с любым Web-сервером. Простота CGI также способствует широкому распространению этого стандарта.
Однако, наряду с преимуществами, CGI-сценарии обладают некоторыми недостатками; главным из которых считается неэффективное использование ресурсов. Каждый из запросов клиента, предполагающий вызов сценария, порождает отдельный процесс на компьютере-сервере. Как известно, для выполнения независимого процесса требуется гораздо больше ресурсов, чем для работы потока в составе процесса.
Стремление повысить производительность и снизить затраты ресурсов привело к созданию корпоративных стандартов. Наиболее известными из них являются NSAPI и ISAPI.
Основное отличие ISAPI-программы от CGI-сценария состоит в том, что ISAPI-программа представляет собой не исполняемый файл, а динамическую библиотеку (DLL). Благодаря этому появилась возможность запускать программу не как отдельный процесс, а как поток, принадлежащий Web-серверу. Для выполнения потока требуется значительно меньше ресурсов, чем для работы независимого процесса. Поток использует адресное пространство породившего его процесса и работает намного быстрее, чем отдельный процесс.
По окончании выполнения процесс выгружается из памяти, а при поступлении следующего запроса снова загружается с диска. Это также не способствует эффективной работе CGI. При интенсивном поступлении запросов необходимость постоянного обмена с диском создает дополнительную нагрузку на сервер. В отличие от CGI-сценария, ISAPI-программа, окончив свою работу, как правило, остается резидентной в памяти и используется для обработки последующих запросов.
Однако иногда преимущества ISAPI-программ оборачиваются недостатками. Если за универсальность CGI-сценариев пришлось платить недостаточной производительностью, то в качестве платы за высокую производительность создатели ISAPI-программ жертвуют универсальностью. Арсенал языков, имеющихся в распоряжении разработчиков ISAPI-программ, значительно беднее, чем у их коллег, создающих CGI-сценарии - только C++.
Поскольку программа данного типа выполняется как поток, порожденный сервером, она использует адресное пространство сервера. Следовательно, ошибка ISAPI-программы может не только вызвать ее аварийное завершение, но и вывести из строя сервер.
Программы, использующие спецификацию ISAPI, делятся на две категории.
1) Расширения. Функционально они мало чем отличаются от CGI-сценариев. Подобно CGI-сценариям, расширения реализуют дополнительные возможности Web-сервера, но строятся совершенно по-другому.
2) Фильтры. Это особый класс программ. Если расширения дополняют возможности Web-сервера, то фильтры изменяют его поведение.
ISAPI-расширение представляет собой динамическую библиотеку (DLL), которая связывается с Web-сервером в процессе его работы. В данной библиотеке должны экспортироваться, т.е. быть доступными для вызова, две функции: GetExtensionVersion() и HttpExtensionProcf).
Особенности выполнения ISAPI-расширений, а также основные отличия программ данного типа от CGI-сценариев проще всего выяснить, рассматривая процедуру вызова расширения, а также назначение указанных выше функций и параметров, передаваемых при их вызове.
В отличие от расширения, которое вызывается лишь тогда, когда в запросе клиента явно указан URL программы, ISAPI-фильтр получает управление при каждом обращении клиента к серверу. Программа-фильтр загружается в память при запуске Web-сервера и остается резидентной в течение всего времени работы сервера.
Perl-интерпретируемый язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информациии и выдачи сообщений. Он также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен, но про него трудно сказать, что он элегантен и компактен.
В настоящее время язык получил большое распространение как инструмент создания исполняемых модулей WWW-сервера. Существующие пакеты расширения обеспечивают доступ к SQL-серверам непосредственно из Perl-программы. Это позволяет использовать его для решения всех задач, возникающих при обеспечении WWW-доступа к базам данных. Perl эффективен также при обработке произвольных структур данных: существующих отчетов, списков, карточек в электронном виде.
Perl - самый широко используемый язык для CGI-программирования, и для этого есть много веских причин:
Perl легко выучить: его синтаксис напоминает другие языки (например С). При ошибке выдается подробное сообщение, помогающее быстро локализовать проблему.
Perl способствует быстрой разработке, так как это интерпретируемый язык; исходный код не надо компилировать перед запуском; доступен на многих платформах с минимальными изменениями; содержит очень мощные функции для обработки строк со встроенной в язык поддержкой поиска и замены по регулярным выражениям; обрабатывает двоичные данные так же легко, как и текст; не требует четкого разделения на типы: числа, строки и логические выражения являются обычными скалярами; взаимодействует с внешними приложениями очень просто и обеспечивает собственные функции для работы с файловыми системами; есть много свободно доступных модулей от CPAN, начиная с модулей для создания динамической графики до интерфейсов с Интернет-серверами и системами управления базами данных.
Perl действительно очень быстрый: считывая исходный файл, он тут же компилирует его в низкоуровневый код, который потом исполняет. Обычно компиляция и исполнение в Perl не воспринимаются как отдельные шаги, поскольку выполняются вместе: Perl запускается, читает исходный файл, компилирует его, запускает и затем завершает работу. Этот процесс повторяется каждый раз, когда запускается сценарий Perl, в том числе CGI-сценарии. Поскольку Perl так эффективен, этот процесс происходит достаточно быстро, чтобы обрабатывать все запросы не на самых загруженных серверах. Однако следует обратить внимание, что в системах Windows это гораздо менее эффективно из-за необходимости создания новых процессов.
РНРизобретен Расмусом Лердорфом в конце 1994 года. Первая версия выпущена в 1995 году под именем «Инструментарий Персональных Домашних Страниц», затем она была переработана и названа PHP/FI Version 2 (FI — модуль обработки данных для форм). Также была добавлена поддержка баз данных mSQL.
Разработка интерпретатора РНР приняла форму организованного командного процесса, ядро интерпретатора разрабатывает компания Zend.com. При этом РНР распространяется свободно: его последнюю версию можно загрузить с сайта PHP.net. Модули РНР поставляются в комплекте с сервером Apache, в комплектах систем Linux.
Изначально аббревиатура РНР означала Preprocessor of Home Pages - препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает.
РНР наделен практически полным набором функциональности, о которой (до появления РНР) мог только мечтать web-программист. Его цель - позволить максимально быстро создавать динамически генерируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.
Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages.
Основные достоинства РНР:
бесплатен; постоянно совершенствуется; работает на UNIX и Windows платформах;
допускает работу с большинством СУБД;
имеет широкий набор функций (более 3 тыс.);
допускает объектно-ориентированное программирование;
способен использовать протоколы HTTP, FTP, SNMP, NNTP, РОРЗ, net sockets и другие;
позволяет выполнять все операции, что и перечисленные его конкуренты, и даже работать с файлами графики. Можно также запускать РНР-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с поддержкой графического интерфейса GTK).
ASPи ASP.NETв составе Microsoft.NET представляют простую среду периода выполнения для Web - Active Server Pages (ASP) как часть сервера Internet Information Server (IIS), включенного в Windows NT 4 Option Pack. IIS обслуживает Web-страницы, запрашиваемые пользователем. ASP позволяет программистам реализовывать алгоритмы динамического создания страниц на IIS, состоящих из статического HTML и кода сценариев. Когда пользователь запрашивает ASP-страницу, IIS должен ее найти и активизировать ASP-процессор. ASP-процессор должен прочитать страницу и один к одному скопировать содержащиеся на ней HTML-элементы в выходную страницу. В нашем примере атрибут style устанавливает голубой цвет текста. При этом также интерпретируются элементы сценариев, расположенные между ограничителями <% %>. Этот код, должен выполнять алгоритм, выдающий в качестве результата HTML-строки, которые ASP-процессор должен скопировать в выходную страницу в те места, где были элементы сценария. Результирующая страница, собранная из статических HTML-элементов и HTML, динамически сгенерированного сценарием, должна быть передана клиенту. Для простых задач ASP применять относительно легко, что является признаком качества этой технологии.
<HTML style="color:#OOOOFF;">
Время есть: <% =time X> on <X =date X>
</HTML>
Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов.
Активные серверные страницы (Active Server Pages, ASP), созданные Microsoft для собственного веб-сервера, сейчас доступны для многих серверов. Сервер ASP интегрирован в веб-сервер и не требует отдельного процесса. Он позволяет программистам совмещать код и HTML-страницы вместо того, чтобы писать отдельные программы. Для ASP существуют модули, позволяющие делать то же самое, используя CGI. ASP поддерживают различные языки программирования, самый популярный из которых Visual Basic, хотя JavaScript также поддерживается. Кроме того, существует версия Perl от ActiveState, которую можно использовать в Windows с ASP.
Microsoft .NET готовая инфраструктура для решения общих проблем Интернет-приложений. Это прикомпоновываемая среда периода выполнения, работающая в ОС Windows 2000.
Сервис, обеспечиваемый .NET:
NET Framework - среда периода выполнения, облегчающая написание полноценного надежного кода в сжатые сроки, управление, развертывание и модификацию этого кода. Написанные вами программы и компоненты выполняются в этой среде. Она дает программистам в период выполнения такие классные возможности, как автоматическое управление памятью (сборка мусора) и упрощенный доступ ко всем службам ОС. Она добавляет массу вспомогательных функций вроде простого доступа к Интернету и базам данных. Кроме того, она обеспечивает новый механизм повторного применения кода - более простой в использовании и в то же время более мощный и гибкий, чем СОМ. Развертывать .NET Framework проще, так как она не требует настройки реестра. Она также поддерживает на системном уровне стандартизированный механизм управления версиями. Все это доступно программистам на любом .NET-совместимом языке.
ASP.NET (следующая версия Active Server Pages) - это новая среда, работающая на Internet Information Server (US), заметно упрощающая написание кода для создания HTML-страниц. ASP.NET предлагает новый, не зависимый от языка способ создания кода и привязки его к запросам Web-страниц - .NET Web Forms - управляемую событиями программную модель взаимодействия с элементами управления. Она делает программирование Web-страниц аналогичным программированию форм Visual Basic. ASP.NET содержит развитые средства управления сеансами и функции защиты. Она надежнее, и производительность ее значительно выше в сравнении с ASP. Microsoft .NET предлагает новый набор служб, позволяющих серверу предоставлять свои функции любому клиенту на любой машине с любой ОС.
По мере расширения Web и увеличения потребностей пользователей Web-разработчикам потребовались совершенствование двух ключевых свойств исполняющей среды: простоты программирования и качества выполнения. ASP.NET и явилось таким усовершенствованием. ASP.NET похожа на оригинальную ASP и большая часть кода может быть переведена на нее практически без изменений. Но внутренняя реализация ASP.NET полностью переделана с тем, чтобы задействовать возможности .NET Framework.
ASP.NET отделяет HTML от алгоритмов, создавая фоновый код (code-behind). Вместо того чтобы перемешивать HTML с кодом, код пишется в отдельном файле, на который есть ссылка на ASP-странице. В результате такого разделения Microsoft смогла усовершенствовать среду разработки и отладки Visual Studio.NET, которая используется при разработке Web-приложений.
JAVA-servlets(сервлеты) - это высокопроизводительные платформо-независимые server-side-пpиложения, написанные на Java и составляющие реальную конкуренцию таким технологиям, как CGI, PHP3, Perl, ASP.
Java-сервлеты были созданы в Sun. Сервлеты похожи на CGI-сценарии тем, что это код, создающий документы. Тем не менее, сервлеты, поскольку они используют Java, должны быть скомпилированы перед запуском как классы, которые динамически загружаются веб-сервером при запуске сервлетов. Интерфейс отличается от CGI. JavaServer Pages или JSP - это другая технология, позволяющая разработчикам встраивать Java в веб-страницы, наподобие ASP.
К преимуществам сервлетов можно отнести.
Исключительно высокая скорость работы. Быстpодействие сервлетов объясняется тем, что они, во-пеpвых, пpедставляют собою уже скомпилиpованный и оптимизиpованный код (а в случае с JIT-ом - ещё и пpеобpазованный в машинный) и, во-втоpых, выполняются в единожды загpуженной и инициализиpованной Java-машине. Таким образом, экономятся ресурсы на запуск обработчика/паpсеpа скpипта, необходимые, например, для Perl или PHP3 (в некоторых ОС, в частности, в OS/2 - это очень серьезная экономия), и ресурсы (как память, так и время), затрачиваемые на непосредственно предкомпиляцию (интерпретацию) кода (что необходимо для тех же Perl, PHP, REXX).
Переносимость. В данном случае принцип "write once run everywhere" действует безотказно. Сервлеты, написанные в соответствии со спецификацией от Sun и не использующие какие-то особенности конкретного веб-сервера, работают безо всякой переделки или перекомпиляции под любыми, порой весьма далёкими друг от друга платформами, будь то Solaris, FreeBSD или OS/2. В связи с этим разработчик может совершенно свободно выбирать, в какой системе ему удобнее работать - он ни коим образом не привязан ни к серверу, ни к будущей целевой платформе.
Работа с реляционными СУБД из Java унифицирована (для этого существует специальный пакет java.sql), удобна и отвязана от специфичных для конкретной СУБД тонкостей. Всё, что Вам нужно - это найти для своей СУБД ODBC-дpайвеpы (а они сейчас существуют практически для всех совpеменных баз данных, зачастую даже по нескольку pазновидностей), и далее можно пользоваться совеpшенно стандаpтными механизмами. А при переходе на другую СУБД, например, c MySQL на Oracle, достаточно будет просто добавить в CLASSPATH новый драйвер и поменять URL для подключения к другой базе. Ни одного изменения в коде
Перспективность, современность технологий.
Технология pаботы сеpвлет-сеpвеpа.
Рассмотрим это на примере модуля JServ к веб-серверу apache.
В момент старта сервера вместе с ним стартует и ява-машина с так называемым servlet-wrapper'ом или средой, в которой в дальнейшем и предстоит исполняться сервлетам. Строго говоря, JServ - это и есть та самая среда. Он целиком написан на Java и занимается непосредственно загрузкой и исполнением сервлетов, следуя спецификации Sun, а также обменом данными с собственно веб-сервером. В последнем для этого должен присутствовать специальный модуль mod_jserv (его необходимо добавить при компиляции и сборке apache, или подключить в виде внешнего модуля).
При получении запроса на документ, приходящийся на специально оговоренный URL или каталог (обычно это что-нибудь вроде /servlets/), apache с помощью модуля mod_jserv передает этот запрос JServ'у, который определяет, какой сервлет должен этот запрос обработать, загружает этот сервлет (если он ещё не был загружен) и затем возвращает веб-серверу тот текст или поток данных, который был сформирован в результате работы сервлета.
Изначально сервер "пуст" - при его старте сервлеты обычно не загружаются (хотя есть возможность принудительно инициализировать нужные сервлеты при старте сервера). При появлении запроса нужный сервлет ищется в списке уже загруженных и, при необходимости, стартуется и инициализируется.
После этого он остается постоянно загруженным в Java-машине (и предкомпилированным, если Java-машина содержит JIT) и при последующих запросах просто вызывается соответствующий его метод для их обработки. Преимущества такой идеологии очевидны. Функционально это аналогично вызову простой подпрограммы внутри обычного сервера и проиходит очень быстро и эффективно. Кроме того, заметный выигрыш дают такие вещи, как единожды проведенная инициализация, возможность хранения глобальных данных или поддержка множественных клиентских сессий, ведущаяся самим сеpвеpом (а не сеpвлетами, pазpаботчики котоpых в значительной степени избавлены от изобpетания велосипедов). Например, можно установить одно единственное соединение с базой данных, и пользоваться им при обработке запросов - немалая экономия, учитывая то, что из тех же скриптов на perl или php приходится каждый раз создавать новое соединение, восстанавливать параметры сессии и т.п.
Конечно же, существует возможность принудительной выгрузки отдельных сервлетов из памяти в случае необходимости, а также возможность автоматического распознавания изменения сервлетов и их перезагрузки. Иными словами, при обновлении того или иного сервлета нет необходимости перезагружать весь веб-сервер или JServ, достаточно просто положить новую версию на место старой, и она будет автоматически загружена в память при следующем запросе (естественно, при этом будет сначала произведено корректное завершение работы старой версии, путём вызова специального метода, а затем загрузка и инициализация новой).
Пакет Cold Fusionот Macromedia предназначен для использования под ОС Windows и позволяет обращаться к различным базам данных, поддерживающим интерфейс ODBC через WWW-интерфейсы. Пакет имеет коммерческий статус, его "evaluation copy" является свободно-распространяемой. Для доступа к базам данных используются конструкции языка DBML - расширения языка HTML, дополненного средствами доступа к БД через ODBC. Документы на языке DBML обрабатываются на серверной части, в результате чего создается HTML-документ.
Пакет может эффективно использоваться в качестве обработчика запросов WWW к исходным базам данных или информационному хранилищу.
ColdFusion от Macromedia в большей степени чем РНР различает страницы с кодом и HTML-страницы. В HTML-страницах могут быть дополнительные теги, вызывающие функции ColdFusion. В ColdFusion доступны несколько стандартных функций, и разработчики могут создавать собственные функции как расширения. ColdFusion был первоначально написан для Windows, но теперь доступны версии и для Unix. Интерпретатор ColdFusion встроен в веб-сервер.
ActiveX- технология Microsoft, предназначенна для написания сетевых приложений. Она предоставляет программистам наборы стандартных библиотек, значительно облегчающих процесс кодирования. Если раньше при написании программ использовались механизмы OLE (OLE Automation, OLE Documents, OLE Controls,...), основанные на компонентной объектной модели (COM - Component Object Model), то теперь библиотеки OLE переписаны так, чтобы обеспечивать функциональность, достаточную для написания сетевых приложений. Таким образом, теперь при написании программ используется DCOM (Distributed Component Object Model) - распределенная компонентная объектная модель, а реализуют ее библиотеки ActiveX, которые по объему оказались гораздо меньше, чем библиотеки OLE, а по скорости - быстрее. Сохранилась и совместимость - любой программный компонент OLE будет работать с библиотеками ActiveX.
Все технологии OLE и ActiveX, построены на основании, обеспеченном СОМ. СОМ - определяет стандартный механизм, с помощью которого одна часть программного обеспечения предоставляет свои сервисы другой и который работает во всех описанных выше случаях. Общая архитектура сервисов в библиотеках, приложениях, системном и сетевом программном обеспечении позволяет СОМ изменить подход к созданию программ.
В начале 1996 года Microsoft ввела в оборот новый термин — ActiveX. Поскольку самым динамично развивающимся направлением в компьютерной индустрии является Internet, именно здесь наиболее естественно могут найти свое место программы, написанные с использованием технологии ActiveX. Не случайно в последнее время понятия ActiveX и Internet часто встречаются рядом. В то же время технология ActiveX имеет значительно более универсальную область использования.
Стандарт ActiveX позволяет программным компонентам взаимодействовать друг с другом по сети независимо от языка программирования, на котором они написаны. С помощью ActiveX можно "оживить" страницы Web эффектами мультимедиа, интерактивными объектами или сложными приложениями.
ActiveX включает в себя клиентскую и серверную части, а также библиотеки для разработчика: программные элементы ActiveX - компоненты, работающие на компьютере-клиенте, но загружаемые в первый раз с сервреа Web. С их помощью можно демонстрировать разнородную информацию, включающую видео и звук без запуска дополнительных программ. Более того, эти программные компоненты могут использоваться в приложениях, написанных на любых популярных языках программирования, включая Java (Visual J++), Visual Basic, Visual C++.
Active Scripting поддерживает любой популярный макроязык, включая Visual Basic Script и JScript (реализация компанией Microsoft языка сценариев JavaScript). Макроязыки могут использоваться для объединения на одной странице нескольких программных элементов ActiveX или Java, обеспечивая их взаимодействие между собой.
Документы ActiveX позволяют открыть и обрабатывать в окне Microsoft Internet Explorer документ любого формата (например, файл Microsoft Excel или Word).
Виртуальная машина Java позволяет любой программе просмотра Internet, поддерживающей технологию ActiveX (например, Internet Explorer 3.0) выполнять программные компоненты Java и обеспечивать их взаимодействие с программными компонентами ActiveX.
ActiveX Server Framework обеспечивает серверные функции ActiveX, включая поддержку безопасных соединений, доступ к базам данных и другие.
Средства разработки позволят использовать знакомые системы программирования Microsoft и других фирм для создания компонентов ActivX. К их числу относятся Visual Basic, Visual C++, Macromedia Shockwave, Adobe Photoshop, Borland Delphi, средства программирования Sybase и другие.
Основные преимущества использования технологии ActiveX:
Быстрое написание программного кода. Программирование сетевых взаимодействий становится очень похожим на программирование для отдельного компьютера.
Открытость и мобильность. Спецификации технологии недавно были переданы в Open Group как основа открытого стандарта. Кроме того, Microsoft совместно с компаниями Metrowerks и Bristol заканчивает реализацию технологий ActiveX для платформ Macintosh и UNIX.
Возможность написания приложений с использованием знакомых средств разработки. Программные элементы ActiveX могут быть созданы с помощью Visual Basic, Visual C++, Borland Delphi, Borland C++, любых средств разработки на Java.
Большое количество уже существующих программных элементов ActiveX, которые бесплатно могут применяться на серверах Web и в приложениях независимых разработчиков. Кроме того почти любой программный компонент OLE совместим с технологиями ActiveX и может применяться без модификаций в сетевых приложениях.
Технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java) с одной стороны и стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).
Клиентская технология ActiveX (Active Desktop) реализуется на машине-клиенте с помощью библиотек, поставляемых вместе с Internet Explorer 3.0. В дальнейшем эти библиотеки будут дополняться и переписываться, в частности, наиболее значимые обновления этих библиотек на клиенте следует ожидать после выхода NetShow, продукта, предназначенного для оптимальной передачи по сети данных мультимедиа.
Программные компоненты ActiveX могут быть установлены автоматически на компьютер пользователя по сети с удаленного сервера, причем будет загружен код, подходящий для конкретной платформы клиента, будь то Macintosh, Windows или Unix.
Разработчик Web-страниц может либо сам запрограммировать элементы ActiveX, используя популярные языки программирования Visual C++, Visual Basic или Java, либо использовать существующие.
Используя языки сценариев ActiveX, программисты могут обеспечить взаимодействие различных элементов ActiveX, Java, других программ на клиентском компьютере и различных частей самого Internet Explorer. Например, программный элемент синхронизации может обновлять страницу Web через определенные промежутки времени. Можно также периодически запускать программный элемент, привлекающий внимание пользователя. Имеются реализации Visual Basic Scripting Edition, являющегося подмножеством Visual Basic, и JScript. Кроме того, разработчик может написать интерпретатор собственного языка сценариев и добавить его в систему.
С ActiveX Documents знаком каждый, кто работал с составными документами. С помощью Internet Explorer можно работать, например, с таблицами Microsoft Excel и файлами других офисных приложений. Это делает программу просмотра универсальным средством, способным не только отображать файлы в формате HTML и осуществлять переходы по ссылкам, но и поддерживающим работы с документами любых приложений и даже запуск программ.
Серверная технология ActiveX (Active Server) реализована с помощью Microsoft Internet Information Server 3.0. С помощью ActiveX можно писать программы на языках сценариев (сейчас это VBScript), выполняющиеся на сервере. Если раньше разработчикам приходилось использовать такие средства, как Microsoft Visual C++ для написания динамически загружаемых библиотек, использующих специальные вызовы Internet Server API, то теперь возможно написание приложений на языке сценариев. Это существенно упрощает разработку, сокращает время написания программы и минимизирует затраты. Программы, основанные на технологиях Active Server на порядок производительнее программ, основанных на Common Gateway Interface (CGI). Это достигается оптимизацией процессов ActiveX на сервере, учитывающей архитектуру Windows NT.
С помощью языков сценариев на сервере можно осуществлять доступ к системам управления базами данных, поддерживающим стандарт ODBC, и использовать механизм транзакций.
Поскольку подход к использованию технологий ActiveX на сервере стандартизован, программисты могут не только разрабатывать приложения, способные выполняться на серверах, но и реализовывать свои схемы взаимосвязи серверных приложений и сервисов, создавать собственные интерпретаторы серверных языков сценариев. Для этого требуется предварительное приобретение лицензии у Open Group.
Дата добавления: 2015-04-15; просмотров: 1707;