Как уже говорилось, приложения JavaScript имею части, работающие на стороне
клиента и на сервере. Кроме того, многие приложения JavaScript используют LiveWire Database Service
для соединения приложения с реляционной базой данных. Исходя из этого, Вы можете
представить приложения JavaScript как имеющие трёхслойную клиент-серверную
архитектуру, как показано на Рисунке 2.1.
Рисунок 2.1 Архитектура среды
клиент-серверного приложения на языке JavaScript
Три слоя - это:
WWW-клиенты (такие как Netscape Navigator-клиенты): Этот слой
предоставляет приложению межплатформенный интерфейс конечного пользователя.
Этот слой может также содержать некоторую логику приложения, такую как правила
проверки данных, реализованные в клиентском JavaScript. Клиенты могут
находиться внутри или за пределами прокси-сервера корпоративной сети.
Netscape WWW-сервер/БД клиент: Этот слой состоит из Netscape-сервера с
включённым
JavaScript. Он содержит логику приложения, обслуживает безопасность и контролирует
доступ к приложению нескольких пользователей, используя серверный JavaScript.
Этот слой позволяет клиентам как в пределах действия, так и за пределами прокси-сервера
иметь доступ к приложению. WWW -сервер также работает как клиент с любым
установленным сервером БД.
Серверы баз данных: Этот слой состоит из SQL-серверов БД, работающих
обычно на высокопроизводительных рабочих станциях. Он содержит все данные БД,
метаданные и правила ссылочной целостности/referential integrity, необходимые
для работы приложения. Этот слой обычно находится в зоне действия
прокси-сервера корпоративной сети и может предоставлять слой безопасности
дополнительно к слою безопасности WWW -сервера. Netscape Enterprise Server
поддерживает использование серверов БД: ODBC, DB2, Informix, Oracle и Sybase. Netscape
FastTrack Server поддерживает только ODBC. Дополнительно о LiveWire Database Service
см.
Часть 3, "Служба LiveWire Database Service."
Клиентская среда JavaScript работает как часть WWW -клиентов, а серверная среда JavaScript
работает как часть Netscape web-сервера с доступом к одному или более серверов
БД.
Рисунок 2.2 показывает более детально, как серверная
среда JavaScript и приложения, созданные для неё, встраиваются в Netscape web-сервер.
Верхняя часть Рисунка 2.2
демонстрирует то, как серверный JavaScript
встраивается в Netscape web-сервер. Внутри web-сервера среда работы серверного JavaScript
состоит из трёх основных компонентов, перечисленных ниже. JavaScript Application Manager
работает поверх серверного JavaScript, как это делается в образце приложения,
предоставленном Netscape
(таком как приложение videoapp), и в любом приложении, созданном
Вами.
Рисунок 2.2 Серверный JavaScript в среде Netscape-сервера
Имеются три главных компонента среды работы JavaScript:
Библиотека времени выполнения JavaScript:
этот компонент предоставляет базовую функциональность
JavaScript. Примером может служить Session Management Service, которая
предоставляет предопределённые объекты для помощи в обслуживании Вашего
приложения и совместного использования информации клиентом и сервером и несколькими приложениями. Служба Session Management Service описана в
Главе 6, "Служба Session Management Service".
Библиотека LiveWire доступа к БД: Этот компонент расширяет базовую
функциональность серверного JavaScript классами и объектами, которые
предоставляют аналогичный доступ к внешним серверам БД. Это описано в
Части 3, "Служба LiveWire
Database Service."
Виртуальная машина Java (ВМ): В отличие от других компонентов, ВМ Java
используется не только в JavaScript; любое Java-приложение, запущенное на
сервере, использует эту ВМ. ВМ
Java была доработана для того, чтобы дать приложениям JavaScript возможность
получать доступ к Java-классам через использование LiveConnect
-функциональности JavaScript. LiveConnect описана в
Главе 14, "LiveConnect. Обзор."
В целом приложение на JavaScript может содержать операторы, интерпретируемые
клиентом (интерпретатором
JavaScript, предоставляемым Netscape Navigator'ом или
некоторыми другими web-браузерами) и сервером (машиной выполнения JavaScript,
уже рассмотренной).
Когда вы запускаете приложение JavaScript, происходят различные действия:
некоторые на сервере, и некоторые - на клиенте.
Хотя конечному пользователю не обязательно знать все детали, Вам как
разработчику приложения необходимо понимать, что происходит "под капотом."
При создании приложения Вы пишете HTML-страницы, которые могут содержать
операторы серверного и клиентского
JavaScript. В исходном коде HTML клиентский JavaScript находится в тэгах
SCRIPT, а серверный JavaScript - в тэгах SERVER.
Вы можете также писать файлы, содержащие только операторы JavaScript без тэгов HTML.
Такой JavaScript-файл может содержать либо клиентский, либо серверный JavaScript;
один файл не может содержать и клиентские, и серверные объекты или функции.
JavaScript VM (Виртуальная Машина), используемая в Netscape Enterprise Server 4.0,
реализует значительные улучшения для обработки локальных переменных (то есть
переменных, которые объявлены внутри функции), по сравнению с NES 3.6.
Соответственно, рекомендуется минимизировать использование глобальных переменных (переменных
между тэгами <server> и </server>) и
переписать приложения для использования функций там, где это возможно. Это
значительно повысит производительность приложения.
Если файлы HTML и JavaScript содержат серверный JavaScript, Вы затем
компилируете их в единый исполняемый файл приложения
JavaScript. Этот файл называется web-файлом и имеет расширение
.web. Компилятор приложений JavaScript развёртывает HTML-код в
платформонезависимые байт-коды, разбирая и компилируя операторы серверного JavaScript.
Наконец, Вы публикуете Ваше приложение на Вашем web-сервере и используете JavaScript Application Manager
для инсталяции и запуска приложения, чтобы пользователи могли получить к нему
доступ.
На этапе прогона, когда клиент запрашивает страницу приложения серверного JavaScript,
машина выполнения локализует представление этого файла в web-файле приложения.
Она запускает весь найденный серверный код и создаёт HTML-страницу для отправки
клиенту. Эта страница может содержать как обычные тэги HTML, так и операторы
клиентского JavaScript. Весь серверный код запускается на сервере до отправки
страницы клиенту и до выполнения любого HTML или клиентского JavaScript.
Соответственно, Ваш серверный код не может использовать клиентские объекты, так
же как и клиентский код не может использовать серверные объекты.
Чтобы разрабатывать приложения JavaScript, использующие преимущества и
клиентского, и серверного JavaScript,
Вам нужна подходящая среда для разработки и публикации. В целом рекомендуется
разрабатывать приложения на системе, отделённой от сервера публикации, поскольку
разработка потребляет много ресурсов (порты соединений, пропускная способность,
время процессора и память).
При разработке также может быть нарушена работа уже опубликованных приложений
конечного пользователя.
Среда разработки JavaScript состоит из:
Утилит для авторизации и компиляции
приложений JavaScript.
Эти утилиты обычно находятся на машине разработчика.
Машины разработчика с web-сервером для запуска приложений JavaScript,
находящихся в стадии разработки.
Машины
публикации с web-сервером для публикации разработанных приложений.
Конечные пользователи осуществляют доступ к приложениям, находящимся на этом
сервере.
Необходимые утилиты:
Браузер с возможностью выполнения JavaScript, такой как Netscape Navigator,
входящий в состав Netscape Communicator.
Компилятор приложений JavaScript, такой как компилятор web-серверов Netscape.
Редактор, такой как Emacs или Notepad.
Публикация и машины публикации требуют наличия
следующего программного обеспечения:
Web-сервера;
Машины выполнения JavaScript, такой как машина web-серверов Netscape.
Возможности конфигурирования Вашего сервера для работы приложений JavaScript,
как это сделано в JavaScript Application Manager, поставляемом вместе с
web-серверами Netscape.
Кроме того, если ваше приложение использует JavaScript-службу LiveWire Database Service,
Вам понадобится:
Программа - сервер реляционных БД на Вашей
машине-сервере БД.
См. документацию вашего сервера БД. В некоторых случаях Вам понадобится
установить web-сервер и сервер БД на одной машине. О специфических требованиях
серверного JavaScript см. Главу 10, "Конфигурирование
Базы Данных."
Клиент БД и сетевое
программное обеспечение на машине Вашего web-сервера.
Если Вы используете одну машину и как сервер БД, и как web-сервер, типичное
клиентское обеспечение БД как правило уже установлено при установке сервера БД.
В противном случае Вам нужно удостовериться, что клиент БД установлен на той
же машине, что и web-сервер, чтобы можно было иметь доступ к БД как клиент. О
требованиях к клиентскому программному обеспечению см. дополнительно
документацию поставщика БД.
Информация Конфигурации
В этом разделе рассматривается информация конфигурации
для использования серверного JavaScript. Дополнительно о настройке БД для работы
с сервисом LiveWire Database Service см.
Главу 10, "Конфигурирование Базы Данных."
Подключение Серверного JavaScript
Чтобы запускать приложения JavaScript на Вашем сервере, Вы
обязаны подключить машину выполнения JavaScript
в вашем Server Manager, щёлкнув Programs, а затем выбрав серверный JavaScript.
После появления промпта "Activate the JavaScript application environment/Активизировать
среду приложений JavaScript ?" выберите Yes и щёлкните OK. У Вас спросят также
об ограничении доступа к Application Manager. Дополнительно см. "Защита Application Manager'а."
ПРИМЕЧАНИЕ:
Если Вы не подключите машину выполнения JavaScript, приложения JavaScript не
смогут запускаться на этом сервере.
Чтобы использовать и сервлеты, и LiveWire, Вам необходимо
подключить серверный JavaScript
до подключения Java. Оба могут быть подключены через использование меню программ Administration Server'а.
Если Вы модифицируете путь к классам/classpath в obj.conf, Ваши
изменения будут утеряны, если Вы подключите/отключите серверный JavaScript или Java
из программного меню Administration Server'а.
Альтернативой редактирования директивы classpath в obj.conf
является установка переменной окружения
CLASSPATH в Unix или установка переменной CLASSPATH в
установках System в Windows NT. Если Вам нужно редактировать obj.conf
непосредственно, сохраните первоначальный файл на всякий случай. В Enterprise Server
4.0 Вы должны добавить CLASSPATH info в файлы конфигурации JVM (jvm12.conf
для Solaris и NT) через интерфейс Enterprise
Administration Server.
Как только Вы активируете среду приложений JavaScript, Вы обязаны остановить и
рестартовать Ваш web-сервер, чтобы ассоциированные переменные окружения начали
действовать. Если этого не сделать, приложения JavaScript, использующие службу LiveWire Database Service,
работать не будут.
Защита Application Manager'а
Application Manager предоставляет контроль над
приложениями JavaScript.
В связи с его особыми возможностями Вы должны защитить его от неавторизованного
доступа. Если Вы не ограничиваете доступ к Application Manager'у,
любой может добавлять, удалять, изменять, стартовать и останавливать приложения
на Вашем сервере. Это, естественно, может привести к нежелательным последствиям.
Вы (разработчик приложений на JavaScript) должны иметь права доступа для
использования Application Manager'а на сервере
разработчика, так как Вы используете его для работы с приложением при разработке.
Администратор Вашего web-сервера, однако, может не предоставить Вам таких прав
на сервере разработчика.
Если Вы подключите машину выполнения JavaScript в Server Manager'е,
промпт спросит Вас, ограничивать ли доступ к Application Manager'у.
Выберите Yes и щёлкните OK.
(Yes - по умолчанию.) После этого любой, кто попытается получить доступ к Application Manager'у,
обязан будет ввести имя пользователя и пароль
Server Manager'а, чтобы получить возможность
использовать Application Manager и приложение-образец dbadmin.
Дополнительно см. руководство администратора для Вашего web-сервера.
Если Ваш сервер не использует Secure Sockets Layer (SSL),
имя пользователя и пароль для Application Manager'а
передаются по сети в некодированном виде. Перехватив эти данные, можно получить
доступ к Application Manager'у. Если Вы используете
тот же самый пароль для Вашего сервера администратора, хакер получит также
контроль и над этим сервером. Следовательно, можно рекомендовать не использовать Application Manager
вне прокси-сервера, если Вы не используете SSL.
О том, как подключить SSL к серверу, см. справочник администратора Вашего web-сервера.
Установки для LiveConnect
Чтобы использовать Java-классы в LiveConnect, Вам нужно установить CLASSPATH
сервера. Полное описание этой процедуры дано в
и в .
Локализация Компилятора
Инсталяция Netscape-сервера не изменяет Вашу переменную окружения PATH
для включения директории, в которой установлен компилятор приложений JavaScript.
Если Вам необходим быстрый доступ к компилятору, Вы обязаны модифицировать эту
переменную.
В системах Unix у Вас есть выбор способов изменения переменной окружения PATH.
Можно добавить $NSHOME/bin/https/lib, где $NSHOME это
директория, в которой установлен Ваш сервер. Поговорите с Вашим системным
администратором о том, как это сделать.
Чтобы изменить системный путь NT, запустите Control Panel,
найдите диалоговое окно System и установите переменную PATH в
разделе Environment settings, включив в неё
%NSHOME%\bin\https\bin, где NSHOME это директория, в
которой установлен Ваш сервер.
Если вы переместили компилятор JavaScript-приложений в
другое место, Вы обязаны добавить эту новую директорию в переменную PATH.