В этой главе дан обзор типичного приложения на языке "Серверный JavaScript" и показано, как настроить систему для разработки серверных приложений.
В главе имеются следующие разделы:
Как уже говорилось, приложения JavaScript имею части, работающие на стороне клиента и на сервере. Кроме того, многие приложения JavaScript используют LiveWire Database Service для соединения приложения с реляционной базой данных. Исходя из этого, Вы можете представить приложения JavaScript как имеющие трёхслойную клиент-серверную архитектуру, как показано на Рисунке 2.1.
Клиентская среда JavaScript работает как часть WWW -клиентов, а серверная среда JavaScript работает как часть Netscape web-сервера с доступом к одному или более серверов БД. Рисунок 2.2 показывает более детально, как серверная среда JavaScript и приложения, созданные для неё, встраиваются в Netscape web-сервер.
Верхняя часть Рисунка 2.2
демонстрирует то, как серверный JavaScript
встраивается в Netscape web-сервер. Внутри web-сервера среда работы серверного JavaScript
состоит из трёх основных компонентов, перечисленных ниже. JavaScript Application Manager
работает поверх серверного JavaScript, как это делается в образце приложения,
предоставленном Netscape
(таком как приложение videoapp
), и в любом приложении, созданном
Вами.
Имеются три главных компонента среды работы JavaScript:
В целом приложение на 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. Соответственно, Ваш серверный код не может использовать клиентские объекты, так же как и клиентский код не может использовать серверные объекты.
Дополнительно см. Главу 5, "Основы Серверного JavaScript."
Чтобы разрабатывать приложения JavaScript, использующие преимущества и клиентского, и серверного JavaScript, Вам нужна подходящая среда для разработки и публикации. В целом рекомендуется разрабатывать приложения на системе, отделённой от сервера публикации, поскольку разработка потребляет много ресурсов (порты соединений, пропускная способность, время процессора и память). При разработке также может быть нарушена работа уже опубликованных приложений конечного пользователя.
Среда разработки JavaScript состоит из:
Публикация и машины публикации требуют наличия следующего программного обеспечения:
Кроме того, если ваше приложение использует JavaScript-службу LiveWire Database Service, Вам понадобится:
В этом разделе рассматривается информация конфигурации для использования серверного JavaScript. Дополнительно о настройке БД для работы с сервисом LiveWire Database Service см. Главу 10, "Конфигурирование Базы Данных."
Чтобы запускать приложения 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 предоставляет контроль над приложениями 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-сервера.
Чтобы использовать Java-классы в LiveConnect, Вам нужно установить CLASSPATH сервера. Полное описание этой процедуры дано в Programmer's Guide to Servlets и в Netscape Enterprise Server Administrator's Guide.
Инсталяция Netscape-сервера не изменяет Вашу переменную окружения PATH
для включения директории, в которой установлен компилятор приложений JavaScript.
Если Вам необходим быстрый доступ к компилятору, Вы обязаны модифицировать эту
переменную.
В системах Unix у Вас есть выбор способов изменения переменной окружения PATH
.
Можно добавить $NSHOME/bin/https/lib
, где $NSHOME
это
директория, в которой установлен Ваш сервер. Поговорите с Вашим системным
администратором о том, как это сделать.
Чтобы изменить системный путь NT, запустите Control Panel,
найдите диалоговое окно System и установите переменную PATH
в
разделе Environment settings, включив в неё
%NSHOME%\bin\https\bin
, где NSHOME
это директория, в
которой установлен Ваш сервер.
Если вы переместили компилятор JavaScript-приложений в
другое место, Вы обязаны добавить эту новую директорию в переменную PATH
.
Дата последнего обновления: 29 сентября 1999 г.
© Copyright ╘ 1999 Sun Microsystems, Inc. Некоторая часть Copyright ╘ 1999 Netscape Communications Corp. Все Права Зарезервированы.