Приложения-Образцы Videoapp и Oldvideo | ||||||||||||||||||||
Netscape-серверы поставляются с двумя приложениями-образцами для работы с базами данных, videoapp и oldvideo, которые иллюстрируют работу LiveWire Database Service. Эти приложения весьма похожи; они отслеживают прокат видео в воображаемом видео-салоне. Приложение videoapp демонстрирует использование объектов DbPool и Connection. Приложение oldvideo демонстрирует использование предопределённого объекта database. Есть несколько небольших ограничений на использование этих приложений:
|
||||||||||||||||||||
Конфигурирование Среды | ||||||||||||||||||||
Прежде чем Вы сможете запустить эти приложения, необходимо сделать незначительные изменения в исходных файлах и создать базу данных для видео. В данном разделе указывается, какие файлы Вы обязаны изменить и какие процедуры выполнить, чтобы внести эти изменения и создать БД для каждого из поддерживаемых серверов БД. См. конкретную информацию в разделе, посвящённом Вашему серверу БД. Ваш сервер БД обязан быть настроен и запущен перед началом создания видео-БД, и Вы обязаны сконфигурировать сервер и клиента БД. Кроме того, скрипты создания БД используют утилиты БД, поставляемые с Вашими БД. Вы уже должны знать, как пользоваться этими утилитами. Соединение с БД и Рекомпиляция Приложение videoapp находится в директории $NSHOME\js\samples\videoapp, где $NSHOME это директория установки Netscape-сервера. Приложение oldvideo находится в директории $NSHOME\js\samples\oldvideo. Для каждого приложения Вы обязаны изменить строку с информацией о соединении в исходном HTML-файле start.htm, чтобы настроиться на среду окружения Вашей БД. Для приложения videoapp измените эту строку: project.sharedConnections.pool = new DbPool ("<Server Type>", "<Server Identifier>","<User>", "<Password>", "<Database>", 2, false) Для приложения oldvideo измените эту строку: database.connect ("INFORMIX", "yourserver", "informix", "informix", "lw_video") Сохраните изменения и рекомпилируйте приложение. Для рекомпиляции приложения из командной строки запустите его build-файл, расположенный в директории приложения. Убедитесь, что переменная окружения PATH содержит путь к компилятору (обычно это $NSHOME\bin\https). Рестартуйте приложения в JavaScript Application Manager'е. Имеются два набора скриптов создания БД для videoapp и oldvideo, находящиеся в соответствующих этим приложениям директориях. Наборы скриптов идентичны. Если Вы запустите один набор, оба приложения смогут использовать БД. При первом запуске скриптов Вы можете получать ошибки, касающиеся стирания БД или таблиц, которые ещё не существуют. Это нормально; можно спокойно игнорировать эти сообщения. Прежде чем использовать нижеуказанные инструкции, Вы обязаны сконфигурировать Ваш Informix-клиент. Кроме того, убедитесь, что переменная окружения PATH содержит путь к $INFORMIXDIR\bin и что Ваш клиент сконфигурирован для использования утилит Informix. SQL-файлы для создания видео-БД (lw_video) в Informix находятся в двух директориях: $NSHOME\js\samples\videoapp\ifx Не забудьте, что пути, если они относятся и к NT, и к Unix, даются в формате NT. В Unix Вы используете $NSHOME/js/samples/videoapp/ifx.
Прежде чем использовать нижеуказанные инструкции, Вы обязаны сконфигурировать Ваш Oracle-клиент. Помимо этого, Ваш клиент обязан быть сконфигурирован для запуска утилит Oracle. Чтобы запускать SQL Plus, Вам может понадобиться установить переменную окружения ORACLE_SID. SQL-файлы для создания видео-БД в Oracle, находятся в двух директориях: $NSHOME\js\samples\videoapp\ora
Прежде чем использовать нижеуказанные инструкции, Вы обязаны сконфигурировать Ваш Sybase-клиент. Кроме того, в Unix убедитесь, что переменная окружения PATH содержит $SYBASE\bin и DSQUERY указывает на ваш сервер. SQL-файлы для создания видео-БД в Sybase, находятся в двух директориях: $NSHOME\js\samples\videoapp\syb
Если у Вас на машине установлены и Sybase, и MS SQL Server или DB2, потенциально может возникнуть конфликт имён. Эти производители поставляют утилиты с одинаковыми названиями (bcp и isql). При запуске этих скриптов убедитесь, что переменная окружения настроена для запуска корректной утилиты. Microsoft SQL Server (только для NT) Прежде чем использовать нижеуказанные инструкции, Вы обязаны сконфигурировать Ваш Sybase-клиент. Кроме того, в Unix установите DSQUERY так, чтобы она указывала на Ваш сервер. SQL-файлы для создания видео-БД в MS SQL Server, находятся в двух директориях: $NSHOME\js\samples\videoapp\mss
Если у Вас на машине установлены и Sybase, и MS SQL Server или DB2, потенциально может возникнуть конфликт имён. Эти производители поставляют утилиты с одинаковыми названиями (bcp и isql). При запуске этих скриптов убедитесь, что переменная окружения настроена для запуска корректной утилиты. SQL-файлы для создания видео-БД в DB2, находятся в двух директориях: $NSHOME\js\samples\videoapp\db2
Если у Вас на машине установлены и DB2, и Sybase или MS SQL Server, потенциально может возникнуть конфликт имён. Эти производители поставляют утилиты с одинаковыми названиями (bcp и isql). При запуске этих скриптов убедитесь, что переменная окружения настроена для запуска корректной утилиты. |
||||||||||||||||||||
Запуск Videoapp | ||||||||||||||||||||
После соединения с БД менеджер Application Manager выводит домашнюю страницу videoapp Если соединение с БД невозможно установить, Вы увидите сообщение об ошибке. Убедитесь, что введены корректные параметры соединения с БД, приложение рекомпилировано и рестартовало. Первое, что нужно сделать при установлении соединения, это создать нового потребителя/customer. Пока Вы этого не сделаете, нет ни одного потребителя, который может использовать другие функции приложения. Вы можете использовать videoapp как customer или как administrator. Как customer Вы можете:
Как administrator Вы можете:
Запустите приложения и сделайте несколько выборов для выполнения различных действий |
||||||||||||||||||||
Взгляд на Исходные Файлы | ||||||||||||||||||||
Исходные HTML-файлы videoapp, перечисленные в следующей таблице, обильно комментируются.
Этот раздел ориентирует Вас на реализацию некоторой функциональности в videoapp. Он описывает, как приложение работает с БД и детали процедуры аренды видео. Другие задачи похожи. Когда пользователь инициирует сессию с приложением videoapp, входя на начальную страницу (home.htm), videoapp проверяет, имеется ли уже соединение с БД. Если это так, videoapp предполагает, что не только приложение, но и пользователь уже соединены с БД, и продолжает работу. Если соединение не установлено, videoapp перенаправляет на страницу start.htm. На ней приложение создаёт единый пул соединений с БД, используемый всеми потребителями, получает соединение для пользователя и стартует транзакцию с БД для этого соединения. Затем перенаправляет обратно на home.htm для продолжения. Пользователь никогда не видит перенаправления. Транзакция базы данных стартует на странице start.htm и остаётся открытой, пока пользователь явно не сохранит или не отменит изменения, щёлкнув кнопку Save Changes или Abort Changes. При этом запускается save.htm или abort.htm. Эти страницы подтверждают или откатывают изменения открытой транзакции, а затем немедленно начинают новую транзакцию. Поэтому соединение потребителя всегда остаётся открытым. Получив соединение с БД, videoapp выводит пользователю главную страницу. С неё пользователь может сделать выбор - такой как аренда клипа или добавление нового потребителя. Каждая из этих опций выводит разные страницы, которые содержат операторы серверного JavaScript. Многие страницы имеют операторы, использующие соединение для взаимодействия с БД, выводя информацию или внося изменения в БД. Первое, что Вы обязаны сделать при первом соединении, это добавить нового потребителя. Пока Вы этого не сделаете, отсутствуют потребители для выполнения других действий программы. Страница pick.htm содержит набор фрэймов, где пользователь может взять клип напрокат. Набор фрэймов состоит из страниц category.htm, videos.htm и pickmenu.htm. Страница category.htm запрашивает в БД список известных категорий клипов. Затем выводит эти категории в виде списка ссылок в таблице левого фрэйма. Если пользователь щёлкает на одной из ссылок, videoapp выводит video.htm в правом фрэйме. Есть несколько интересных моментов, касающихся серверного кода, выполняющего эти задачи. На странице Вы можете найти такие строки: var userId = unscramble(client.userId) Эти операторы имеются на большинстве страниц videoapp. Они запрашивают соединение из того места, где оно хранится в объекте project. Следующая строка получает новый курсор, применимый для данной задачи: cursor = connection.cursor("select * from categories"); <SERVER> Этот цикл создаёт в курсоре ссылку для каждой категории. Обратите особое внимание на оператор: <A HREF=`"videos.htm?category=" + Эта строка создаёт ссылку на videos.htm. Она содержит в URL имя категории. Предположим, это категория Comedy. Оператор создаёт такую ссылку: <A HREF="videos.htm?category=Comedy" TARGET="myright"> Когда пользователь щёлкает на ссылке, сервер переходит на страницу videos.htm и устанавливает значение свойства category объекта request в Comedy. Страница videos.htm может обрабатываться из pick.htm или из category.htm. В первом случае свойство category не устанавливается, поэтому страница выводит сообщение, предлагающее пользователю выбрать категорию. Если category правильно установлено, videos.htm входит в БД для вывода информации обо всех клипах данной категории. Эта страница использует ту же технику, что и category.htm, для конструирования информации и создания ссылок на странице rent.htm. Страница rent.htm фактически записывает взятые пользователем напрокат клипы. Она получает информацию из запроса и обновляет таблицу в БД для отражения новой аренды. Эта страница выполняет обновление, но не подтверждает изменения, пока пользователь не выберет Save Changes или Abort Changes. Страница pickmenu.htm просто выводит кнопки для возврата на домашнюю страницу или на страницу для добавления нового потребителя. Как способ применения функциональности LiveWire рассмотрим пример модернизации videoapp. Вот что можно сделать:
|