Организация доступа к базам данных в Интернет
Работа из раздела: «
Программирование и комп-ры»
Министерство культуры Российской Федерации
Восточно-Сибирская государственная академия культуры и искусств
Факультет менеджмента информационных технологий
Кафедра автоматизированных информационных систем
УДК 002.53:681.3.016
ОРГАНИЗАЦИЯ ДОСТУПА К БАЗАМ ДАННЫХ
ВСГАКиИ В ИНТЕРНЕТ
Дипломная работа
Исполнитель: Фомин Евгений Игоревич
студент заочного отделения группы 453
Научный руководитель: Баторов А.Р.,к.т.н., доцент.
__________________________________________
И.о.зав.кафедрой: Батуева Э.Б., к.п.н., доцент.
__________________________________________
Дата допуска к защите: _____ 06.2001
Улан-Удэ
2001
Оглавление
Введение. 3
1. Internet – технология работы с базами данных 5
1.1 Реализация доступа к базе данных. 6
1.1.1. Однократное или периодическое преобразование содержимого БД в
статические документы 7
1.1.2. Динамическое создание гипертекстовых документов на основе
содержимого БД 7
1.1.3. Создание информационного хранилища на основе высокопроизводительной
СУБД с языком запросов SQL. Периодическая загрузка данных в хранилище из
основных СУБД 8
1.2. Обзор технологий 9
1.2.1. WWW - сервер NCSA HTTPD 9
1.2.2 WWW - сервер Apache c поддержкой Java Servlet 9
1.2.3. SQL - сервер фирмы Oracle 11
1.2.4. Язык программирования Perl 11
1.2.5. Язык программирования Java 12
1.2.6 Java servlets. 12
1.2.7. Пакет Web - Oracle - Web 15
1.2.8. Пакет Cold Fusion фирмы Allaire Corp 15
1.3. Оценка трудоемкости обеспечения WWW доступа 15
2. Практическая часть 17
2.1 ОБЩАЯ ЧАСТЬ 18
2.1.1. Назначение WWW - сервера. Общая схема работы. Определение 18
2.1.2 Непосредственные функции сервера. Базовые определения 20
2.1.3 Протокол MIME 21
2.1.4 Протокол HTTP 22
2.1.5 Интерфейс CGI 23
2.2. Web-сервера Apache 23
2.2.1 Установка WEB-сервера Apache 25
2.2.2 Настройка WEB-сервера Apache 26
2.4. Использование языка Perl 33
2.5 Использование языка Java 34
2.5.1 Основные особенности 34
2.5.2. Взаимодействие с СУБД 38
2.6. Реализация доступа к базе данных 39
2.6.1. Общее описание 39
2.6.2. Описание алгоритма 39
Заключение 49
Литература 50
Приложение 1 Спецификация формата RUSMARC 51
Приложение 2 Спецификация языка Java 90
Приложение 3 Листинг программы – SearchEngein.java 103
Приложение 4 Результаты тестирования программы 111
Введение.
Многие организации используют электронные базы данных (БД) для
поддержки своих рабочих процессов. Часто это системы на одного - двух
пользователей, выполненные с использованием dbf - ориентированных средств
разработки: Clipper, Dbase, FoxPro, Paradox, Access. Обычно используется
ряд таких баз, независимых друг от друга. Если информация, хранимая в таких
БД, представляет интерес не только для непосредственных пользователей, то
для ее дальнейшего распространения используются бумажные отчеты и справки,
созданные базой данных.
С появлением локальных сетей, подключением таких сетей к Интернет,
созданием внутрикорпоративных, сетей, появляется возможность с любого
рабочего места организации получить доступ к информационному ресурсу сети.
Однако, при попытке использовать существующие БД возникают проблемы
связанные с требованием к однородности рабочих мест (для запуска 'родных'
интерфейсов), сильнейшим трафиком в сети (доступ идет напрямую к файлам
БД), загрузкой файлового сервера и невозможностью удаленной работы
(например, командированных сотрудников). Решением проблемы могло бы стать
использование унифицированного интерфейса WWW для доступа к ресурсам
организации.
Технология World Wide Web, в переводе 'Всемирная паутина', получила
столь широкое распространение из-за простоты своих пользовательских
интерфейсов. Принцип 'жми на то, что интересно', лежащий в основе
гипертекста, интуитивно понятен. В технологиях WWW все ключевые понятия
просматриваемого документа: слова, картинки - имеют возможность
'раскрыться' новым документом, развивающим это понятие. Такой способ
представления информации называется 'гипертекстом', а документы,
представленные в таком виде - 'гипертекстовыми документами'. Для описания
этих документов используется специальный язык - язык описания
гипертекстовых документов или HTML (англ. вариант HyperText Markup
Language).
Из этих предпосылок возникает задача преобразования накопленных
данных в гипертекстовые документы WWW, задача поддержки актуальности
преобразованной структуры. Другими словами, задача предоставления WWW -
доступа к существующим базам данных.
Цель данной дипломной работы, создать интерфейс к файлам БД
Библиотеки 5.0 которые имеют формат RUSMARC (см. прил. 1), так же можно
обратиться за информацией по этому формату на сайт РОССИЙСКОЙ БИБЛИОТЕЧНОЙ
АССОЦИАЦИИ (12,11) .
Для реализации поставленной задачи был выбран язык программирования
JavaTM
Дипломная работа состоит из 2-х глав и 4 приложений.
В первой главе Internet – технология работы с базами данных,
рассматриваются имеющиеся на данный момент времени технологии по
организации доступа к базам данных пользователей Интренет.
Во второй главе Практическая часть поэтапно описывается технология
организации доступа к базе данных в формате RUSMARC в частности:
. настройка WEB-сервера Apache;
. настройка Java Server для WEB-сервера Apache;
. выбор инструментария для реализации программы:
. описание алгоритма.
Первое приложение содержит полное описание спецификации формата
RUSMARC с детальным описанием всех полей и подполей и возможных их
значении.
Во втором приложении приведены ключевые моменты спецификации языка
программирования Java.
Третье приложение содержит листинг программы с включенными в него
комментариями.
В четвертом приложении приведены результаты проведенного теста на
реальных массивах данных.
1. Internet – технология работы с базами данных
1.1 Реализация доступа к базе данных.
Использование технологий WWW для обеспечения доступа к каким-либо
информационным ресурсам подразумевает существование следующих компонент.
1. IP - сети с поддержкой базового набора услуг по передаче данных
с единой политикой нумерации и маршрутизации, работающим сервисом имен DNS.
2. Выделенного информационного сервера - WWW-сервера,
обеспечивающего предоставление гипертекстовых документов через IP - сеть в
ответ на запросы WWW – клиентов (см. рис. 1).
[pic]
Передаваемые гипертекстовые документы оформляются в стандарте HTML -
языке описания гипертекстовых документов. Эти документы могут либо
храниться в статическом виде (совокупность файлов на диске), либо
динамически компоноваться в зависимости от параметров запроса специальным
программным обеспечением. Для динамической компоновки HTML-документов, WWW-
сервер использует специальным образом оформленные программы- CGI- или Java-
программы.
В состав специфики конкретной БД входят как технологические основы,
такие как тип СУБД, вид интерфейсов, связи между таблицами, ограничения
целостности, так и организационные решения, связанные с поддержкой
актуальности баз данных и обеспечением доступа к ней (3).
При обеспечении WWW-доступа к существующим БД, возможен ряд путей -
комплексов технологических и организационных решений. Практика
использования WWW-технологии для доступа к существующим БД предоставляет
широкий спектр технологических решений, по-разному связанных между собой -
перекрывающих, взаимодействующих и т.д. Выбор конкретных решений при
обеспечении доступа зависит от специфики конкретной СУБД и от ряда других
факторов, как то: наличие специалистов, способных с минимальными издержками
освоить определенную ветвь технологических решений, существование других
БД, WWW-доступ к которым должен осуществляться с минимальными
дополнительными затратами и т.д.
WWW - доступ к существующим базам данных может осуществляться по
одному из трех основных сценариев. Ниже дается их краткое описание и
основные характеристики.
1.1.1. Однократное или периодическое преобразование содержимого БД в
статические документы
В этом варианте содержимое БД просматривает специальная программа,
создающая множество файлов - связных HTML-документов (см.рис.2). Полученные
файлы могут быть перенесены на один или несколько WWW-серверов. Доступ к
ним будет осуществляться как к статическим гипертекстовым документам
сервера.
[pic]
Этот вариант характеризуется минимальными начальными расходами. Он
эффективен на небольших массивах данных простой структуры и редким
обновлением, а также при пониженных требованиях к актуальности данных,
предоставляемых через WWW. Кроме этого, очевидно полное отсутствие
механизма поиска, хотя возможно развитое индексирование.
В качестве преобразователя может выступать программный комплекс,
автоматически или полуавтоматически генерирующий статические документы.
Программа-преобразователь может являться самостоятельно разработанной
программой либо быть интегрированным средством класса генераторов отчетов.
1.1.2. Динамическое создание гипертекстовых документов на основе
содержимого БД
В этом варианте доступ к БД осуществляется специальной CGI-
программой, запускаемой WWW-сервером в ответ на запрос WWW - клиента. Эта
программа, обрабатывая запрос, просматривает содержимое БД и создает
выходной HTML-документ, возвращаемый клиенту. (см. рис. 3)
[pic]
Это решение эффективно для больших баз данных со сложной структурой и
при необходимости поддержки операций поиска. Показаниями также являются
частое обновление и невозможность синхронизации преобразования БД в
статические документы с обновлением содержимого. В этом варианте, возможно,
осуществлять изменение БД из WWW-интерфейсов.
К недостаткам этого метода можно отнести большое время обработки
запросов, необходимость постоянного доступа к основной базе данных,
дополнительную загрузку средств поддержки БД, связанную с обработкой
запросов от WWW - сервера.
Для реализации такой технологии необходимо использовать
взаимодействие WWW-сервера с запускаемыми программами CGI - Common Gateway
Interface. Выбор программных средств достаточно широк - языки
программирования, интегрированные средства типа генераторов отчетов. Для
СУБД с внутренними языками программирования существуют варианты
использования этого языка для генерации документов.
1.1.3. Создание информационного хранилища на основе
высокопроизводительной СУБД с языком запросов SQL. Периодическая загрузка
данных в хранилище из основных СУБД
В этом варианте предлагается использование технологии, получившей
название 'информационного хранилища' (ИХ). Для обработки разнообразных
запросов, в том числе и от WWW-сервера, используется промежуточная БД
высокой производительности. Информационное наполнение промежуточной БД
осуществляется специализированным программным обеспечением на основе
содержимого основных баз данных.
Этап 1 - перегрузка данных;
[pic]
Этап 2 - обработка запросов.
[pic]
Данный вариант свободен ото всех недостатков предыдущей схемы. Более
того, после установления синхронизации данных информационного хранилища с
основными БД возможен перенос пользовательских интерфейсов на
информационное хранилище, что существенно повысит надежность и
производительность, позволит организовать распределенные рабочие места.
Несмотря на кажущуюся громоздкость такой схемы, для задач обеспечения
WWW-доступа к содержимому нескольких баз данных накладные расходы
существенно уменьшаются.
Основой повышения производительности обработки WWW-запросов и резкого
увеличения скорости разработки WWW-интерфейсов является использование
внутренних языков СУБД информационного хранилища для создания
гипертекстовых документов.
Для загрузки содержимого основной БД в информационное хранилище могут
использоваться все перечисленные решения (языки программирования,
интегрированные средства), а также специализированные средства перегрузки,
поставляемые с SQL-сервером и продукты поддержки информационных хранилищ.
1.2. Обзор технологий
1.2.1. WWW - сервер NCSA HTTPD
Как было сказано ранее, одним из ключевых элементов технологии WWW
является WWW-сервер. Стандартом де-факто для Unix-систем стало программное
обеспечение (ПО) WWW-сервера Национального Центра по Суперкомпьютерным
Приложениям (NCSA) Иллинойского Университета. Все вновь создаваемые
продукты поддерживают полную совместимость с ПО NCSA по режимам работы и
форматом данных. Сервер NCSA является постоянно совершенствуемым продуктом,
отражающим последние веяния WWW-технологии. Созданная относительно недавно
'Apache Group' разрабатывает свое программное обеспечение WWW - сервера на
базе продукта NCSA HTTPD. Описание WWW-сервера Apache в следующем пункте.
1.2.2 WWW - сервер Apache c поддержкой Java Servlet
Самый распространенный Web-сервер в мире - это Apache . По данным
компании Netcraft (15) общее число Web-узлов, работающих под его
управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и
постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%,
Netscape -7%. Будучи бесплатной открытой программой, предназначенной для
бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по
функциональным возможностям и надежности не уступает коммерческим серверам,
а широкие возможности конфигурирования позволяют настроить его для работы
практически с любой конкретной системой. Существуют локализации сервера для
различных языков, в том числе и для русского.
Исторически сложилось так, что русские тексты в Internet могут быть
представлены в разных кодировках, из которых наиболее распространены koi8-r
(или просто koi8) и Windows-1251: с первой работает большинство серверов и
рабочих станций под управлением Unix, вторая является стандартной для всех
версий Windows. Поскольку кодировка Windows-1251, естественно, применяется
на подавляющем большинстве клиентских машин, доля тех, кто путешествует по
русской части WWW, используя koi8, не превышает сейчас 5%. Однако в этой
кодировке хранятся документы на многих Unix-серверах, в ней чаще всего
передаются почтовые сообщения и практически всегда - письма в
телеконференции, с ней же работают многие русскоязычные каналы IRC (кстати,
аббревиатура КОИ расшифровывается как 'код обмена информацией'). Чтобы
решить проблемы, возникающие при несовпадении кодировок текста на сервере и
клиентской машине, и был создан русский модуль Apache -RUS для Web-
сервера Apache .
Для тех, кто имеет дело с различными компьютерными платформами и
стремится к универсализму, выбор Apache HTTP-сервера является, пожалуй,
самым подходящим. Разве плохо, когда написанные модули могут работать и на
ПК и на многопроцессорных высокопроизводительных системах, причем
инсталляция и компоновка рабочих программ, как правило, не требуется, дело
сводится к простому копированию. Можно, не выходя из офиса, перемещать
рабочие программы в специальные каталоги Web-сервера, находящегося за
тридевять земель, и они мгновенно могут быть востребованы десятками
пользователей, которым нет необходимости загружать их на свои компьютеры.
До недавнего времени все Web-серверы могли вызывать на выполнение только
три типа процессов: CGI, ISAPI или NSAPI, причем два последних чаще всего
были реализованы на Wintel-платформе. Так, с появлением Delphi-3 многие
стали предлагать свои разработки в виде Web-модулей, но аппетиты
пользователей умерялись разработчиками, которые могли предложить только
вариант Web, работающий под Windows-95/NT, и для связи с СУБД на больших
машинах приходилось применять некое подобие Gateway-ODBC. Такой вариант не
всегда оказывался эффективным, тем более что протокол HTTP при каждом новом
запросе требовал перезагрузки модуля Применение сервлетов в связке с СУБД
решает эту проблему. Для Apache существует специальный программный
компонент JServ, который также как и сам сервер в исходных кодах
распространяется совершенно бесплатно. При запуске Apache автоматически
стартует Java-обработчик, которому и будут передаваться на исполнение все
запросы, связанные с запуском Java-программ. Наоборот, весь вывод из Java
переадресуется непосредственно в Web, который аккуратным образом передает
его, запросившему браузеру. Скорость выполнения Java-приложений зависит от
производительности компьютера, на котором сконфигурирован Web-сервер
Apache. Если это, к примеру, UltraSparc-3000 c Java-виртуальной машиной
HotSpot, то скорость может быть очень большой, в десятки, а то и в сотни
раз быстрее, чем на обычной NT-машине. Apache, в отличие от браузеров не
имеет собственной виртуальной машины Java, а настраивается на ту, которая
сгенерирована для данной платформы. Такой подход чрезвычайно гибок, ибо
позволяет постоянно обновлять Java-среду, наращивать библиотеку классов и
ничего не изменять в настройках Apache. Впрочем, и в самих конфигурационных
файлах Apache для программистов имеется масса полезных вещей, они свободно
корректируются, открыты для добавлений и предоставляют гораздо больше
простора для маневра по сравнению с жестко запрограммированными системами
для администрирования Web-узлов, такими как Fastrack, или Java Web Server.
Для того чтобы использовать Apache во взаимодействии с Java, необходимо
инсталлировать продукт Jserv, содержащий необходимые библиотеки Java-
классов, затем изменить конфигурационный файл Apache Configuration, добавив
в него строку:
Module jserv_module mod_jserv.o -для Unix-система.
Более подробно описание подключения Jserv`а рассмотрено в
практической части.
1.2.3. SQL - сервер фирмы Oracle
При реализации сценария 3 встает вопрос о выборе качественной
платформы для создания информационного хранилища. Реляционная система
управления базами данных фирмы Oracle является лидером на рынке СУБД. По
производительности, надежности хранения данных, развитию семейства
интерфейсов, объему серверных платформ продукты Oracle возглавляют
многочисленные рейтинги. Гибкость использования, развитые средства
управления доступом и распределенная архитектура делают сервер Oracle
чрезвычайно привлекательным для технологии информационных хранилищ, а
возможность работы на свободно - распространяемых Unix-платформах расширяет
его возможности в некоммерческой среде.
Существенным ограничением использование Oracle в сфере науки и
образования является достаточно высокая цена и низкое бюджетное
финансирование. Однако с 1996 года фирма Oracle объявила о специальной
программе для российских университетов, что позволяет за относительно
небольшие деньги приобрести любой набор продуктов Oracle.
1.2.4. Язык программирования Perl
Язык Perl был создан для повышения эффективности обработки текстовых
документов. Он ориентирован на обработку строк. В настоящее время язык
получил большое распространение как инструмент создания исполняемых модулей
WWW-сервера. Существующие пакеты расширения обеспечивают доступ к SQL-
серверам непосредственно из Perl-программы. Это позволяет использовать его
для решения всех задач, возникающих при обеспечении WWW-доступа к базам
данных. Perl эффективен также при обработке произвольных структур данных:
существующих отчетов, списков, карточек в электронном виде().
1.2.5. Язык программирования Java
Java – это простой, объектно-ориентированный, распределенный,
интерпретирующий, живучий, безопасный, архитектурно-нейтральный,
переносимый, высокопроизводительный, многопоточный и производимый язык.
Компилятор Java читает исходные файлы и превращает их в байт-код
(byte-code). Байт-код представляет собой промежуточную стадию между
исходным кодом и машинным кодом, как можно более близкую к машинному коду.
Но близкую не настолько, чтобы стать платформо-зависимой. Если точнее, то
байт-код является машинным кодом, но не для какой-нибудь физически
существующей машины, а для Java Virtual Machine – мифической машины, чье
поведение в точности определено Sun Microsystems. Спецификации Java Virtual
Machine (JVM) описывают поведение, ожидаемое от любой физической машины,
которая выполняет любой заданный байт-код. Подчинение спецификациям JVM –
вот что обеспечивает переносимость программ Java.
1.2.6 Java servlets.
Сервлеты - это высокопроизводительные платформо-независимые server-
side-пpиложения, написанные на Java и составляющие реальную конкуренцию
таким технологиям, как CGI, PHP3, Perl, и уж конечно ASP.
К преимуществам сервлетов можно отнести:
Исключительно высокая скорость работы.
Быстpодействие сервлетов объясняется тем, что они, во-пеpвых,
пpедставляют собою уже скомпилиpованный и оптимизиpованный код (а в случае
с JIT-ом - ещё и пpеобpазованный в машинный) и, во-втоpых, выполняются в
единожды загpуженной и инициализиpованной Java-машине.
Таким образом, экономятся ресурсы на запуск обработчика/паpсеpа
скpипта, необходимые, например, для Perl или PHP3 (в некоторых ОС, в
частности, в OS/2 - это очень серьезная экономия), и ресурсы (как память,
так и время), затрачиваемые на непосредственно предкомпиляцию
(интерпретацию) кода (что необходимо для тех же Perl, PHP, REXX).
Реально обе этих проблемы сразу не решаются, практически, нигде.
Hаибольший эффект даёт, пожалуй, внедрение транслятора скpиптового языка
непосредственно в веб-сеpвеp, например, пресловутые .asp-скpипты в серверах
от Microsoft, или модули mod_perl или mod_php для apache. (Последний
вариант - PHP3, внедренный в апач - является, наверное, самым
производительным из всего вышеперечисленного).
Переносимость. В данном случае принцип 'write once run everywhere'
действует безотказно. Сервлеты, написанные в соответствии со спецификацией
от Sun и не использующие какие-то особенности конкретного веб-сервера,
работают безо всякой переделки или перекомпиляции под любыми, порой весьма
далёкими друг от друга платформами, будь то Solaris, FreeBSD или OS/2. В
связи с этим разработчик может совершенно свободно выбирать, в какой
системе ему удобнее работать - он ни коим образом не привязан ни к серверу,
ни к будущей целевой платформе.
Удобство кодирования и инструментарий разработчика. Не знаю, как
другим, а мне Java как язык программирования нравится неизмеримо больше,
чем тот же Perl или чрезвычайно быстрый, но, несколько убогий PHP3. Более
того, даже некоторые мелочи в C++ начинают раздражать после долгой практики
кодирования на Java. (Должен заметить, что я ничего не имею против
перечисленных выше языков, отношусь к ним с должным уважением и использую
их в своей работе.)
Кроме того, на рынке присутствует немалое количество мощнейших
инструментов для разработчиков приложений на Java. Например, тот же
VisualAge for Java 2.0 содержит средства визуального создания сервлетов -
по сути, этакий WYSIWYG-pедактоp веб-страниц, создающий вместо HTML-
документов сеpвлеты, генеpиpующие эти документы на лету.
Работа с базами данных. Работа с реляционными СУБД из Java
унифицирована (для этого существует специальный пакет java.sql), удобна и
отвязана от специфичных для конкретной СУБД тонкостей. Всё, что Вам нужно -
это найти для своей СУБД JDBC-дpайвеpы (а они сейчас существуют практически
для всех совpеменных баз данных, зачастую даже по нескольку
pазновидностей), и далее можно пользоваться совеpшенно стандаpтными
механизмами.
А при переходе на другую СУБД, например, c MySQL на Oracle,
достаточно будет просто добавить в CLASSPATH новый драйвер и поменять URL
для подключения к другой базе. Ни одного изменения в коде
Перспективность, современность технологий.
Конечно, есть у этой технологии и недостатки. Как технические:
например, высокие требования к системным ресурсам - в основном, к памяти
(под OS/2, например, запущенная Java-машина занимает 15-20 мегабайт
оперативной памяти) или необходимсть в качественной устойчивой реализации
Java для выбранной платформы, так и иного плана: такие как отсутствие
должной квалификации как у разработчиков, так и, зачастую, у тех, кто
принимает решения, их устоявшиеся предубеждения и многое другое...
Технология 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, достаточно просто положить новую
версию на место старой, и она будет автоматически загружена в память при
следующем запросе (естественно, при этом будет сначала произведено
корректное завершение работы старой версии, путём вызова специального
метода, а затем загрузка и инициализация новой).
1.2.7. Пакет Web - Oracle - Web
Пакет WOW является свободно-распространяемым программным средством,
предназначенным для создания интерактивных WWW-интерфейсов с СУБД Oracle.
Пакет WOW был первым и наиболее простым средством, выпущенным фирмой
Oracle. В настоящее время существует набор продуктов, развивающих
функциональность WOW'а - Oracle Web Server версий 1, 2, Oracle Web
Arcitecture.
Все перечисленные продукты позволяют использовать процедурное
расширение языка SQL - PL/SQL, разработанное фирмой Oracle для
динамического создания гипертекстовых документов. Высокая скорость
разработки достигается за счет резкого упрощения доступа к БД - программы
на PL/SQL исполняются самим сервером Oracle. Предлагаемый пакет WOW был
переработан в Новосибирском областном центре НИТ с целью поддержки
нескольких русскоязычных кодировок.
Основной областью использования WOW является обработка запросов от
WWW-сервера к SQL-серверу Oracle в среде Unix. В предложенных сценариях
пакет WOW позволит организовать эффективный WWW доступ к информационному
хранилищу, построенному на базе сервера баз данных Oracle (сценарий 3).
1.2.8. Пакет Cold Fusion фирмы Allaire Corp
Пакет предназначен для использования под ОС Windows и позволяет
обращаться к различным базам данных, поддерживающим интерфейс ODBC через
WWW-интерфейсы. Пакет имеет коммерческий статус, его 'evaluation copy'
является свободно-распространяемой. Для доступа к базам данных используются
конструкции языка DBML - расширения языка HTML, дополненного средствами
доступа к БД через ODBC. Документы на языке DBML обрабатываются на
серверной части, в результате чего создается HTML-документ. Полноценная
версия пакета, вместе с WWW - сервером стоит $486.
Пакет может эффективно использоваться в качестве обработчика запросов
WWW к исходным базам данных или информационному хранилищу (сценарии 2,3)
1.3. Оценка трудоемкости обеспечения WWW доступа
Трудоемкость обеспечения WWW-доступа к базам данных, очевидно,
складывается из трудоемкости работ при реализации одного из вышеприведенных
сценариев. Реализация первого сценария связана с последовательным
преобразованием всех данных, находящихся в исходной БД. Разработка средств
вывода содержимого таблицы в формате HTML с необходимым форматированием и
текстовым сопровождением будет занимать порядка 1-3-х дней для одного
разработчика. Разработка средств построения индексной структуры к выводимым
данным является более творческой работой и может занять 1-3 недели для
одного разработчика.
Трудоемкость построения интерфейсов для сценариев 2, 3, в общем
случае, эквивалентна трудоемкости построения этих интерфейсов при создании
исходной информационной системы (т.е. той, для которой обеспечивается WWW-
доступ) с использованием традиционных средств разработки (не-CASE). В
третьем сценарии дополнительные трудозатраты пойдут на перегрузку данных в
иформационное хранилище. При перегрузке данных без изменения структуры и
имен можно исходить из оценки трудозатрат: 1-2 таблицы в 1-2 дня для одного
разработчика, в зависимости от сложности и объема таблиц, при условии
отладки технологии перегрузки.
При использовании различных средств разработки интерфейсов к БД,
представленных в отчете, трудозатраты могут существенно различаться.
2. Практическая часть
Широкие возможности WWW - технологии по представлению пользователям
Internet информации, включая текст, картинки, графики, видео и звуковые
дорожки, обусловили процесс бурного роста сети WWW - серверов и Internet в
целом. Целью данной дипломной работы является освещение технологии
организации доступа к БД в формате RUS-MARC, посредствам выбранного
инстрементария в данном случае это язык Java .
2.1 ОБЩАЯ ЧАСТЬ
2.1.1. Назначение WWW - сервера. Общая схема работы. Определение
WWW сервер - это такая часть глобальной или внутрикорпоративной сети,
которая дает возможность пользователям сети получать доступ к
гипертекстовым документам, расположенным на данном сервере. Для
взаимодействия с WWW сервером пользователь сети должен использовать
специализированное программное обеспечение - браузер (от англ. browser),
другое название - программа просмотра.
Схема работы
Рассмотрим более подробно, чем в предыдущих главах, схему работы WWW-
сервера. В общем виде она выглядит так:
1. Пользователь сети запускает пакет программного обеспечения,
называемый браузером, в функции которого входит
o Установление связи с сервером
o Получение требуемого документа
o Отображение полученного документа
o Реагирование на действия пользователя - доступ к новому
документу
o После запуска браузер по команде пользователя или
автоматически устанавливает связь с заданным WWW - сервером
и передает ему запрос на получение заданного документа
2. WWW сервер ищет запрашиваемый документ и возвращает результаты
браузеру
3. Браузер, получив документ, отображает его пользователю и ожидает
его реакции.
o Возможные варианты:
o Ввод адреса нового документа
o Печать, поиск, другие операции над текущим документом
o Активизация (нажатие) специальных зон полученного
документа, называемых связями (link) и ассоциироваными с
адресом нового документа.
o В первом и третьем случае происходит обращение за новым
документом.
Адрес
Адрес документа указывается в виде специальной строки, называемой
URL. Для протокола HTTP, используемого при взаимодействии WWW клиента и WWW
сервера, URL состоит из следующих компонент:
1) Наименование протокола, по которому работает сервер (http).
2) Имя машины - сервера в Internet или ее IP - номер.
3) Порт TCP, обращение к которому обрабатывает сервер.
4) Место (путь) документа на машине - сервере.
Например:
http://www.cnit.nsu.ru:80/welcome.html
Здесь http означает протокол работы с WWW - сервером
o ':' - разделитель
o 'www.cnit.nsu.ru' - имя машины - сервера в Internet
o '80' - номер tcp - порта
o /welcome.html - путь до документа на машине - сервере
Из общей схемы работы видно, что функции WWW сервера заключаются в
следующем:
1) Установление соединения с клиентским ПО по протоколу tcp.
2) Принятие запроса на документ по протоколу http.
3) Поиск документа в локальных ресурсах.
4) Возврат результатов поиска по протоколу http.
В общем случае, WWW - сервером будем называть программно - аппаратный
комплекс, предназначенный для выполнения вышеперечисленных действий.
Среда работы сервера
В настоящее время все известные WWW - серверы представляют собой
компьютер общего назначения с многозадачной операционной системой. Один или
несколько процессов такой системы отвечают за поддержку специфических для
WWW - сервера функций. Другие процессы ОС отвечают за обеспечение других
функций, не обязательно связанных с поддержкой технологии WWW.
Такая структура приводит к тому, что под WWW сервером начинают
подразумевать только часть программного обеспечения, единственными
функциями которой являются функции WWW сервера, а остальную часть -
компьютер, операционную систему, другие процессы, сетевую структуру
называют средой работы WWW сервера или платформой (см. таблица 1).
Наиболее распространенных платформ для WWW – сервера. Таблица 1
|Компьютер |Операционная Система |
|IBM PC |o Unix (UnixWare, Open Server, |
| |Solaris, BSD, Linux и т.д.) |
| |o Microsoft Windows NT/2000 |
| |o IBM OS/2 |
| |o Novell NetWare |
|Sun SparcStation и SparcServer |o SunOS |
| |o Solaris |
|Silicon Graphics серверы и |o IRIS |
|рабочие станции | |
2.1.2 Непосредственные функции сервера. Базовые определения
В простейшем случае гипертекстовый документ представляет собой
совокупность файлов. Представление этих файлов как единого документа
производится браузером. По каждому файлу документа браузер делает запрос к
WWW - серверу. Таким образом, сервер не имеет представления о структуре и
составе документов, он отвечает только за выдачу локальных файлов по
запросам. На различных платформах, в различных операционных системах пути
файлов выглядят по разному.
Например:
D:\WWW\INDEX.HTM - в Windows,
/u/data/www/html/index.html - в Unix - системах,
USR:WWW/HTML - в NetWare и т.д.
Путь файла, указываемый в URL, имеет стандартный вид:
/<имя_каталога>/ ... /<имя_каталога>/<имя_файла>
Таким образом, в функции WWW - сервера входит преобразование адреса
из внешнего единого формата в платформенно ориентированный внутренний
формат. Появляется ряд понятий, специфичных для такого преобразования,
необходимых для него.
Исходный каталог документов
Это каталог реальной файловой системы сервера, от которого идет
вычисление пути, указанного в URL. Например, если исходным каталогом
документов является D:\WWW\, то на запрос к этому серверу документа по URL
http://<имя_сервера>/index.htm
будет возвращен файл
D:\WWW\index.htm
Синонимы
В случае, когда необходимо осуществить обращение к конкретному
каталогу или файлу, находящемуся вне иерархии Исходного каталога
документов, используется механизм синонимов. Синоним позволяет явно
определить соответствие между путем, указанным в URL, и путем локальной
файловой системы.
Например:
Синонимом для /Harvest объявляется /projects/www/harvest или
синонимом для /test/myfile.html объявляется C:\MYDIR\FILE.HTM
В первом случае все обращения к файлам каталога /Harvest будут
обрабатываться в каталоге /projects/www/harvest. Второй пример показывает
работу синонима с конкретным файлом файловой системы.
Индексный файл
Для каждого сервера определено имя так называемого индексного файла.
Обычно этот файл содержит ссылки на другие файлы данного каталога.
Содержимое индексного файла выдается сервером в случае, если в URL указан
каталог без конкретного файла.
Пользовательский раздел
Для многопользовательских операционных систем (таких как Unix) ПО WWW
- сервера позволяет каждому пользователю предоставлять доступ к своему
собственному набору гипертекстовых документов вне основной иерархии
(Исходного каталога документов, Синонимов и т.д.). Этот набор документов
должен находиться в собственном (т.н. 'домашнем') каталоге пользователя.
Для доступа к таким документам в URL перед путем ставится знак тильда и имя
пользователя: ~<имя_пользователя>.
Например:
На сервере Indy.cnit.nsu.ru создан пользователь с именем fancy и
'домашним' каталогом /home/fancy. Собственные гипертекстовые документы он
хранит в каталоге /home/fancy/public_html. При обращении по URL
http://Indy.cnit.nsu.ru/~fancy/start.html, WWW - сервер будет искать
документ start.html в каталоге /home/fancy/public_html.
2.1.3 Протокол MIME
Протокол MIME - многоцелевое расширение электронной почты, был создан
как способ передачи нетекстовой информации: изображений, звука, видео в
письмах электронной почты. Механизм оказался удачным, и его перенесли и в
on-line сервисы, в том числе WWW. Здесь MIME используется для передачи
документов от сервера к клиенту.
В общем виде MIME основывается на передаче вместе с основными данными
дополнительной информации, описывающей что это и в каком виде передается.
Эта дополнительная информация называется заголовок MIME. Базовой частью
заголовка является строка, описывающая тип передаваемого сообщения. Формат
строки:
Content-Type: <тип_MIME>
Перечень типов MIME (т.е. видов передаваемых данных) постоянно
пополняется и может быть дополнен даже пользователем для описания своего
собственного вида данных. Формат типа MIME:
<Тип> / <Подтип> [ ; <параметры> ]
Где <Тип> - определяет общий тип данных:
Audio - для звуковых данных
Application - данные, являющиеся входными для какого-либо приложения
(программы)
Image - для графических образов
Message - для сообщения, которое само по себе является MIME -
документом
Multipart - для сообщения, состоящего из нескольких MIME - документов
Text - для текстовых данных в различном виде
Video - для видеоданных.
<Подтип> - указывает на специфический формат данных типа <Тип>
Например:
text/html - текстовые данные в формате HTML
image/giff - графические данные в формате gifF
<Параметры> - список параметров, необходимых для интерпретации
данных.
Для ведения специфичной обработки файлов различных типов и форматов
на клиентской и серверной частях поддерживаются списки соответствий типов
MIME и расширений файлов. Формат записи такого списка:
<Тип>/<Подтип> <расширение1> ... <расширениеN>
Эти списки сопоставляют всем файлам, имеющим определенные расширения,
определенные типы MIME.
Например:
image/giff gif giff
text/html html htm
В первой строке всем файлам с расширением gif и giff приписывается
тип содержимого image/giff. Если для типа содержимого image/giff определены
специальные правила обработки (например, отображение на экране в
определенной области), то так будут обрабатываться все файлы с расширениями
gif и giff.
2.1.4 Протокол HTTP
Протокол HTTP определяет язык запросов от WWW - клиента к WWW -
серверу. Сам запрос состоит из следующих компонент:
<Заголовок>
<Метод> <Источник / Данные>
где
Заголовок - определяет версию протокола HTTP и другие служебные
параметры;
Метод - одно из ключевых слов:
GET - для передачи запросов на выдачу документов
PUT, POST - для передачи данных от клиента к серверу (например, из
форм)
Пример запроса:
HTTP/1.1
GET /index.html
Описывает запрос на получение файла index.html из корневого каталога
документов сервера.
2.1.5 Интерфейс CGI
Помимо доступа к статическим документам сервера существует
возможность получения документов как результата выполнения прикладной
программы. Такая возможность реализуется на сервере WWW благодаря
использованию интерфейса CGI (Common Gateway Interface). Спецификация CGI
описывает формат и правила обмена данными между ПО WWW сервера и
запускаемой программой.
Для инициирования CGI необходимо, чтобы в запрашиваемом URL был
указан путь до запускаемой программы. ПО WWW сервера исполняет эту
программу, передает ей входные параметры и возвращает результаты ее работы,
как результат обработки запроса, клиенту. CGI - программой может являться
любая программа локальной операционной системы сервера - в двоичном виде
или в виде программы для интерпретатора (Basic, SH, Perl и т.д.).
С целью облегчения администрирования CGI - программ, а также для
удовлетворения требованиям безопасности CGI - программы группируются в
одном или нескольких явно указанных серверу каталогах. По умолчанию это
каталог cgi-bin в иерархии серверных каталогов, однако, его имя и положение
могут отличаться.
Например:
клиент, обращающийся к CGI - программе test-query, будет использовать
URL http://<имя_сервера>/cgi-bin/test-query
Интерфейс CGI позволяет расширить границы применения WWW -
технологии. CGI - программа может обрабатывать сигналы с датчиков
установок, взаимодействовать с мощным сервером баз данных, переводить и
т.п. Полное описание интерфейса и требований к приложениям, использующих
его, приведены в главе 4 настоящего отчета.
2.2. Web-сервера Apache
Apache - самый распространенный Web-сервер в мире. По данным компании
Netcraft (15) общее число Web-узлов, работающих под его управлением, к
концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет.
Для сравнения: на долю серверов Microsoft приходится 25%, Netscape - 7%.
Будучи бесплатной открытой программой, предназначенной для бесплатных же
Unix-систем (FreeBCD, Linux и др.), Apache по функциональным возможностям
и надежности не уступает коммерческим серверам, а широкие возможности
конфигурирования позволяют настроить его для работы практически с любой
конкретной системой. Существуют локализации сервера для различных языков, в
том числе и для русского.
Сервер Apache имеет небольшой, но представительный набор примеров
приложений, однако в его составе отсутствует хорошая документация. Продукт
Apache обладает многими встроенными функциями, но поскольку объем его
документации невелик, понять, как им пользоваться довольно трудно.
Вследствие этого работа с сервером требует больших дополнительных затрат:
получаемый бесплатно, он становится дорогим, когда вы хотите раздвинуть
границы его применения.
Характеристика
Компания - The Apache Group
Продукт - Apache Web Server 1.3.14
Операционная система - OS/2, Unix, Windows, BeOS
Тип процессора - Alpha, Intel 80486, Pentium, Pentium Pro, PowerPC
Требования к памяти - ОЗУ 32 МБ
Функции регистрации:
формат CERN - нет
формат NCSA - есть
автоматическое архивирование - нет
регистрация производительности - есть
использование браузеров - есть
отчеты об использовании - нет
Защита - SHTTP, SSL
API и средства написания сценариев - Basic, CGI, JavaScript API, Java
(если при компиляции были внесены изменения и добавлены модули продукта
JServ )
Специальные функции:
SMP - есть
конференцсвязь - есть
передача полномочий другому Web-серверу - есть
сервер новостей - нет.
Многие Web-мастера и сетевые администраторы настроили серверы Apache
под свои нужды благодаря их преимуществу - сравнительно простой
архитектуре.
2.2.1 Установка WEB-сервера Apache
Начнем с того, что серверов существует множество - плохие и хорошие,
медленные и быстрые... Я же выбрал сервер, подходящий под последние две
категории, - Apache. Самое главное то, что это чуть ли не единственный
сервер, который позволяет работать в Windows 95/98/NT с технологиями PHP,
CGI и Perl-скриптами одновременно так же просто и непринужденно, как будто
он стоит на Unix.
Итак, установить на компьютер Apache для Windows 95/98/NT довольно
просто при наличии дистрибутива сервера. В противном случае следует
запастись терпением и скачать дистрибутив сервера - файл
apache_1_3_14_win32_r2.exe (3 176 975 байт) (13). Теперь самое интересное -
настройка Apache.
Важно: просьба в точности выполнять перечисленные ниже шаги, не
пропуская и не откладывая ни одного из действий. В этом случае все
заработает - это проверено.
Этап первый - установка
Нужно определиться с директорией, в которую будете устанавливать
Apache. Все дальнейшие рассуждения основаны на том, что выбран для этой
цели такой каталог: f:\usr\local\apache . Если диска F: нет, или если
неохота его захламлять, советую сделать одно из трех:
1) Создайте диск F: с помощью какой-нибудь программы для
виртуальных разделов (например, с помощью встроенной в Windows 95/98
программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии
памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не
набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с
такими файлами.
2) Сделайте виртуальный диск F:. Для этого нужно создайть где-
нибудь на любом диске директорию, которая в будущем будет являться корневой
для диска F:. Предположим, выбран C:\INTERNET. Далее, в начале файла
c:\autoexec.bat в нем прописывается такая строка:
subst f: C:\INTERNET
и после чего нужно перезагрузить компьютер. Должен появиться
виртуальный пустой диск F:.
ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в
результате которой иногда subst-пути 'сами по себе' преобразуются в
абсолютные. То есть, например, иногда в рассмотренном выше примере команды
f: cd \ cd \ dir
(а точнее, команда dir в своем заголовке) ошибочно выведут, что
текущая директория C:\ (а не F:\, как это должно быть). Указанная ошибка
чаще всего проявляется в неработоспособности Perl-транслятора. Так что
лично я не рекомендую использовать subst. Вместо этого воспользоваться
пунктом 1.
3) Наконец, можно всего этого не делать и поставить Apache на любой
другой диск, только тогда придется немного тяжелее при выполнении всех
остальных действий. Нужно будет все указываемые пути заменять на
собственные, а это крайне неприятно. Еще раз настоятельно рекомендую
воспользоваться диском F:.
Рекомендую все же разместить Apache в указанном в начале каталоге.
Запускаем только что скачанный файл. В появившемся диалоге нажимаем
кнопку Yes, а затем - кнопку Next.
Теперь нужно вручную задать директорию для установки:
f:\usr\local\apache и нажимаем кнопку OK.
Выбираем тип установки - Сustom и убираем флажок Source Code (если,
конечно, не хотите посмотреть исходные тексты Apache). Этим можно
сэкономить себе 3 Мбайта.
Нажимаем Next и ждем, пока будут копироваться файлы Apache.
На запрос о перезагрузке компьютера нужно ответить утвердительно
'Перезагрузить'.
После всех манипуляций можно вздохнуть с облегчением - Apache
установлен! Ну после этого самое неприятное - его настройка.
2.2.2 Настройка WEB-сервера Apache
Настройка файла конфигурации Apache mime.types
Для этого нужно открыть директорию f:\usr\local\apache\conf. Открыть
для редактирования находящийся там файл mime.types.
Найти в нем такую строчку:
text/html html htm
Изменить ее на
text/html html htm shtml shtm sht
Следует заметить, что если по каким-то причинам не нужно портить файл
mime.types, то можно вместо этого прописать в файле httpd.conf (см. ниже)
строки вида
AddType text/html html htm shtml shtm sht
Этап третий - настройка файла httpd.conf
Внимание! Это - самый ответственный момент установки. Просьба
соблюдать инструкции БУКВАЛЬНО.
Откройте директорию f:\usr\local\apache\conf. Откройте находящийся
там файл httpd.conf. Это - единственный файл, который осталось настроить.
Предстоит найти и изменить в нем некоторые строки, а именно те, о которых
упоминается далее. Во избежание недоразумений не нужно трогать все
остальное. Следует заметить, что в нем каждый параметр сопровождается
несколькими строками комментариев, разобраться в которых с первого раза
довольно тяжело. Поэтому на них можно не обращать внимание.
В поле ServerAdmin нужно указать E-mail адрес, который будет
показываться в сообщениях об ошибке сервера. Например:
ServerAdmin my@email.com
В поле ServerName нужно указать имя сервера, например:
ServerName www.real.ulan-ude.ru
И обязательно нужно раскомментировать поле ServerName, то есть убрать
символ '#' перед этим параметром (по умолчанию он закомментирован)!
В поле DocumentRoot указывается директория, в которой будут храниться
html-файлы, например:
DocumentRoot f:/www
Разумеется, можно указать и любую другую директорию. В любом случае,
ее нужно создать, лучше сделайте это прямо сейчас!
Далее нужно найти блок, начинающийся строкой и
заканчивающийся (вообще, такие блоки обозначают установки для
заданной директории и всех ее поддиректорий). Его нужно изменить на:
Options Indexes Includes
AllowOverride All
Дириктивы, примененные в секции, имеют следующее значение:
Optinos [options...]
Возможное значение параметров:
ExecCGI - разрешить выполнение CGI-сценариев в данном катологе и его
подкаталогах;
FollowSymLinks - разрешить переход по символическим ссылкам
(созданным командой lh);
Include - разрешить SSI (Server Side Includes);
Indexes - разрешить выдачу листинга каталога, если в нем нет файла
index.html (или файла индекса, заданного дериктивой DirectoryIndex);
MultiVews - разрешить поддержку многих языков; по умолчанию она
отключена, и включать ее, как правило, не нужно; поддержка перекодирования
'на лету' для русского языка устанавливается с помощью других директив;
All - установить сразу все перечисленные режимы кроме MultiViews.
AllowOverride [options...]
Параметры могут быть указаны следующие:
AuthConfig - разрешить установку авторизации по имени пользователя и
паролю;
FileInfo - разрешить директивы, отвечающие за типы документов;
Indexes - резрешить директивы, связанные с листингом каталогов;
Limit - разрешить команды allow и deny, которые ограничивают доступ к
файлам в зависимости от адреса клиентского компьютера;
Options - разрешить описанные выше директивы Options.
Таким образом, в этом блоке будут храниться установки для всех
директорий по умолчанию (т.к. это - корневая директория).
После чего нужно найти аналогичный блок, начинающийся и заканчивающийся . Там будет
много комментариев, на них можно не обращать внимание. Этот блок следует
заменить на:
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
Это - установки для директории с html-документами. Можно, конечно,
установить другую директорию, главное, чтобы она совпадала с той, которая
прописана в параметре DocumentRoot
Идем дальше. Установим UserDir, например так:
UserDir f:/www/users
Это будет директория, в которой будут храниться домашние страницы
пользователей, а также корневые каталоги виртуальных хостов (см. ниже).
DirectoryIndex устанавливается так:
DirectoryIndex index.htm index.html
Это - так называемые файлы индекса, которые автоматически выдаются
сервером при обращении к какой-либо директории, если не указано имя html-
документа. В принципе, можно добавить сюда и другие имена, например,
index.phtml, если вы будете работать с PHP и т.д.
Найдите и пропишите такой параметр:
ScriptAlias /cgi-bin/ 'f:/www/cgi-bin/'
Да, именно так, с двумя слэшами. Это будет та директория, в которой
должны храниться CGI-скрипты. Если хотите, можете задать другое имя,
например:
ScriptAlias /mycgi/ 'f:/mycgidir/'
Подобный параметр говорит Apache о том, что, если будет указан путь
вида http://www.real.ulan-ude.ru/cgi-bin, то на самом деле следует
обратиться к директории f:/www/cgi-bin.
Теперь следует найти и настроить блок параметров, начинающийся с
и заканчивающийся . Это -
установки для CGI-директории (если был установлен для нее другой путь на
предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
AllowOverride All
Options ExecCGI
Настройте следующий параметр:
AddHandler cgi-script .bat .exe
Это говорит Apache о том, что файлы с расширением .exe и .bat нужно
рассматривать как CGI-скрипты.
И последнее - установите:
AddHandler server-parsed .shtml .shtm .sht
Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI,
напишите так:
AddHandler server-parsed .shtml .shtm .sht .html .htm
Настройка Apache завершена, и он должен уже работать! Для запуска
сервера нужно нажать Пуск->Программы->Apache Web Server->Start Apache, при
этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не
произойдет. Не закрывайте его и не трогайте до конца работы с Apache.
Несколько слов о том, как можно упростить запуск и завершение
сервера. В Windows можно назначить любому ярлыку функциональную комбинацию
клавиш, нажав которые, запустится этот ярлык. Так что щелкните правой
кнопкой на панели задач, в контекстном меню выберите Свойства, затем
Настройка меню и кнопку Дополнительно. В открывшемся Проводнике назначьте
ярлыку Start Apache комбинацию Ctrl+Alt+A, а ярлыку Shutdown Apache -
Ctrl+Alt+S
Вот шаги, которые можно проделать для проверки работоспособности
сервера:
Проверка html: в директории f:/www с html-документами Apache создайте
файл index.html. Теперь запустите браузер и наберите:
http://www.real.ulan-ude.ru/index.html
или просто
http://www.real.ulan-ude.ru/
Загрузится Ваш файл.
Проверка CGI: в директории f:/www/cgi-bin для CGI-скриптов создайте
файл test.bat с таким содержанием:
@echo off
echo Content-type: text/html
echo.
echo.
dir
Теперь в браузере наберите:
http://www.real.ulan-ude.ru/cgi-bin/test.bat
В окне отобразится результат команды DOS dir.
Проверка SSI: аналогична проверке html. Используйте, например,
директиву
Виртуальные хосты Apache
Итак, Apache установлен. Получена, таким образом, директория f:/www
для хранения документов и f:/www/cgi-bin для CGI. Но вот беда: в Интернете
нужно осуществить поддержку нескольких серверов, а Apache создал для вас
только один. Конечно, можно структуру этих нескольких серверов хранить на
одном сервере, однако проще и удобнее было бы создать несколько виртуальных
хостов с помощью Apache, например, один с именем serv1 и адресом
195.161.69.170, а другой - с именем serv2 и адресом 195.161.69.171.
(Конечно, вместо 'serv1' и 'serv2' нужно будет указать желаемые имена
виртуальных хостов.)
Как это принято в Unix, каждый сервер будет представлен своим
каталогом в директории f:/home с именем, совпадающим с именем сервера.
Например, сервер serv1 будет храниться в директории f:/home/serv1, которую
необходимо создать прямо сейчас. В этой директории будут находиться:
файл access.log с журналом доступа к виртуальному серверу.
файл errors.log с журналом ошибок сервера.
директория www, где будут храниться html-документы.
директория cgi для хранения CGI-программ.
Последние две директории (www и cgi) тоже необходимо создать прямо
сейчас.
Далее, для установки виртуального хоста необходимо сделать некоторые
изменения в файле конфигурации Apache httpd.conf (см. выше), а также в
некоторых файлах Windows. Вот необходимые действия:
Откройте директорию f:\usr\local\apache\conf. Откройте находящийся
там файл httpd.conf. Перейдите в его конец, Вам предстоит добавить туда
несколько строк.
Пропишите следующие строки в конце файла после всех комментариев:
#----serv1
ServerAdmin webmaster@serv1.ru
ServerName serv1
DocumentRoot 'f:/home/serv1/www'
ScriptAlias /cgi/ 'f:/home/serv1/www/cgi/'
ErrorLog f:/home/serv1/log/error.log
CustomLog f:/home/serv1/log/access.log common
При желании можно добавить и другие параметры (например,
DirectoryIndex и т.д.) Вообще, не переопределенные параметры наследуются
виртуальным хостом от главного.
Теперь надо немного подправить системный файл hosts, который
находится в C:\WINDOWS\hosts (такого файла может не быть по умолчанию - в
этом случае его надо создать). hosts - обычный текстовый файл, и в нем
обычно заранее прописана только одна строка:
195.161.69.169 www.real.ulan-ude.ru
именно эта строка и задает соответствие имени localhost адресу
127.0.0.1. (Ради справедливости следует сказать, что имя localhost работает
и без указанной выше строки. Ну и выдумщики же эти парни из фирмы
Microsoft!) Для нашего виртуального хоста надо добавить соответствующую
строчку, чтобы файл выглядел так:
195.161.69.170 www.real.ulan-ude.ru
195.161.69.171 www.real2.ulan-ude.ru
Этим Вы создадите виртуальных хост со следующими свойствами:
Имя - serv1
Доступен по адресу http://serv1 (или http://195.161.69.171).
Расположен, соответственно, в директории f:/home/serv1.
Директория для хранения документов - f:/home/serv1/www, доступная по
адресу http://serv1.
Директория для CGI - f:/home/serv1/www/cgi, доступная по адресу
http://serv1/cgi/
Файлы журналов хранятся в f:/home/serv1/log
Ну вот, мы создали один виртуальный хост! Если будет необходимо
сделать второй, нужно просто проделать аналогичные действия, заменив
параметры, связанные с расположением хоста на диске. Главное, не забудьте в
этом случае указать другой IP-адрес (лучше всего указывать их
последовательно, начиная с 195.161.69.170, затем 195.161.69.171 и т.д. - в
этом случае все работает корректно). Желательно также для этих целей не
указывать IP-адрес http://195.161.69.169, так как это - адрес главного
сервера.
Кстати, необходимо заметить, что главный хост (невиртуальный, тот,
который мы создали в разделах 1 и 2) по-прежнему доступен по адресу
http://195.161.69.169 или http://www.real.ulan-ude.ru. Более того, его
директория cgi-bin 'видна' всем созданным виртуальным хостам, так что Вы
можете ее использовать.
Установка Perl
Это совсем просто, за исключением, может быть, выбора директории для
Perl. А именно, Вы ДОЛЖНЫ разместить Perl. Замечу, что это очень важно, так
как Perl требует, чтобы в каждом скрипте первой строкой стоял путь к Perl-
интерпретатору; например, эта строка может выглядеть так:
#!/usr/local/bin/perl
Эту же строку можно было бы написать и так:
#!/usr/local/bin/perl.exe
или даже так:
#!f:\usr\local\bin\perl.exe
Это заставляет искать Perl-интерпретатор в директории
f:/usr/local/bin/ (если диск f: не указан, это означает, что он совпадает с
диском, на котором расположен Apache). Ясно, что если установить Perl не в
такую же директорию, Вам придется каждый раз менять эту самую первую строку
во всех скриптах при закачке их на сервер. Итак, далее буду считать, что
эта директория такова, как на большинстве Apache-серверов:
f:/usr/local/bin
ВНИМАНИЕ: очень распространенной ошибкой является установка Perl не в
ту директорию или не на тот диск. Еще раз обращаю внимание на то, где
должен быть расположен транслятор.
Если все же по какой-то необъяснимой причине не придерживаетесь моего
совета, то проверьте первую строку в скрипте. Она должна указывать не на
директорию с Perl, а на исполнимый файл perl.exe. Напоминаю, что
#!/usr/local/bin/perl заставляет искать Perl-интерпретатор perl.exe в
директории f:/usr/local/bin/, а не в f:/usr/local/bin/perl
Если все же установлен путь неправильно, Apache выдаст непонятное
сообщение об ошибке, а в errors.log появится сообщение: couldn't spawn
child process.
Вот шаги, приводящие к цели:
Первым делом создайте директорию
f:/usr/local/bin
Затем скачайте дистрибутив Perl - файл с именем perl_setup.exe
(436.137 байт), желательно в только что созданную директорию. Это
саморазворачивающийся архив, Вам нужно будет просто его запустить, чтобы
разархивировать в текущую директорию.
Теперь настроим сервер. Найдите в файле конфигурации Apache
conf/httpd.conf строчку
AddHandler cgi-script .bat .exe
Замените ее на
AddHandler cgi-script .bat .exe .pl .cgi
Как это ни странно, но эту директиву AddHandler иногда указывать не
обязательно. Однако лучше перестраховаться...
Вот, собственно, и все. Можете пользоваться Perl-транслятором. Для
проверки его работоспособности используйте такой скрипт (помещенный,
разумеется, в директорию cgi-bin или аналогичную):
#!/usr/local/bin/perl
print 'Content-type: text/html
';
print 'It works!
';
system('dir');
Настройка и установка Apache Jserv v 1.1
Устанвка
Установка Jserv также проста как и установкм самого веб-сервера
Apache. Для это нужно естественно имет файл установки ApacheJServ-1.1.2-
2.exe (14).
Запустив файл установки нужно указать дирикторию куда будет
установлены все нужные файлы для работы Jserv`а. После чего программа
установки попрости указать путь до виртуальной машины Java, она должна быть
уже установлена.
Виртуальная машина Java можно скачать с веб сайта фирмы Microsoft -
SDKJava40.exe. Поле того как программе установки будет указан правельный
путь до JVM, он попросит указать путь до Java Servlet Devolopment Kit 2
(JSDK), после чего будет запрошен путь до конфигурационного файла
httpd.conf веб-сервера. Вот собственно и вся установка.
Настройка
А теперь нужно рассказать про настройку Jserv`а что бы он мог
работать вместе с веб-сервером. Для того что бы Jserv запускался вместе с
веб-сервером нужно все что находится в файле jserv.conf перенести в файл
настройка веб-сервера Apache httpd.conf, желательно в конец.
Разберем синтаксис. Первый параметр это LoadModule.
Его синтаксис очень прост LoadModule [имя модуля в нашем случае это -
jserv_module] [путь до модуля './ApacheModuleJServ.dll']. В конечном итоге
эта строчка должна выглядить так: LoadModule jserv_module
'./ApacheModuleJServ.dll'
Следующая интересующий нас параметр это - ApJServManual он говорит
веб-серверу о том как запускать Jserv on=вручную off=автозапуск.
Далее идет параметр ApJServProperties './conf/jserv.properties' это
путь до файла настроек Jservs.
2.4. Использование языка Perl
2.4.1. Основные особенности Perl
Perl - интерпретируемый язык, приспособленный для обработки
произвольных текстовых файлов, извлечения из них необходимой информации и
выдачи сообщений. Perl также удобен для написания различных системных
программ. Этот язык прост в использовании, эффективен, но про него трудно
сказать, что он элегантен и компактен. Perl сочитает в себе лучшие черты C,
shell, sed и awk, поэтому для тех, кто знаком с ними, изучение Perl-а не
представит особого труда. Cинтаксис выражений Perl-а близок к синтаксису C.
В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем
обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается
как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl
приспособлен для обработки текстовых файлов, он может обрабатывать так же
двоичные данные и создавать .dbm файлы, подобные ассоциативным массивам.
Perl позволяет использовать регулярные выражения, создавать объекты,
вставлять в программу на С или C++ куски кода на Perl-е, а также позволяет
осуществлять доступ к базам данных, в том числе Oracle.
Этот язык часто используется для написания CGI-модулей, которые, в
свою очередь, могут обращаться к базам данных. Таким образом может
осуществляться доступ к базам данных через WWW.(5,6)
2.5 Использование языка Java
2.5.1 Основные особенности
Развитие Internet и World Wide Web заставляет совершенно по-новому
рассматривать процессы разработки и распределения программного обеспечения.
Для того, чтобы выжить в мире электронного бизнеса и распространения
данных, язык Java должен быть
. безопасным,
. высокопроизводительным,
. надежным.
Работа на различных платформах гетерогенных сетей отбрасывает
традиционную схему распределения ПО, версий ПО, модификации ПО, объединения
ПО и т.д. Для решения проблем гетерогенных сред язык должен быть
. нейтральным к архитектуре,
. переносимым,
. динамически подстраиваемым.
Разработчики Java с самого начала хорошо понимали, что язык,
предназначенный для решения проблем гетерогенных сред, также должен быть
. простым - его должны с легкостью использовать все разработчики
. ясным - разработчики должны без больших усилий выучить Java
. объектно-ориентированным - он использует все преимущества современных
методологий разработки ПО и подходит для написания распределенных
клиент-серверных приложений
. многопоточным - для обеспечения высокой производительности приложений,
выполняющих одновременно много действий (например, в мультимедийных
системах)
. интерпретируемым - для переносимости и большей динамичности
Необходимо более подробно рассмотреть перечисленные характеристики
Java.
Простота
Простота языка входит в ключевые характеристики Java: разработчик не
должен длительное время изучать язык, прежде чем он сможет на нем
программировать. Фундаментальные концепции языка Java быстро схватываются и
программисты с самого начала могут вести продуктивную работу.
Разработчиками Java было принято во внимание, что многие программисты
хорошо знакомы с языком С++, поэтому Java, насколько это возможно,
приближен к С++.
В Java не включены некоторые редко используемые, плохо понимаемые и
усложняющие работу возможности С++, которые приносят больше проблем, чем
преимуществ. Пришлось отказаться от
. перегрузки операторов (но перегрузка методов в Java осталась),
. множественного наследования,
. автоматического расширяющего приведения типов.
Добавилась автоматическая сборка мусора, упрощающая процесс
программирования, но несколько усложняющая систему в целом. В С и С++
управление памятью вызывало всегда массу проблем, теперь же об этом не
придется много заботиться.
Объектно-ориентированность
Язык Java с самого начала проектировался как объектно-
ориентированный. Задачам распределенных систем клиент-сервер отвечает
объектно-ориентированная парадигма: использование концепций инкапсуляции,
наследования и полиморфизма. Java предоставляет ясную и действенную
объектно-ориентированную платформу разработки.
Программисты на Java могут использовать стандартные библиотеки
объектов, обеспечивающие работу с устройствами ввода/вывода, сетевые
функции, методы создания графических пользовательских интерфейсов.
Функциональность объектов этих библиотек может быть расширена.
Надежность
Платформа Java разработана для создания высоконадежного прикладного
программного обеспечения. Большое внимание уделено проверке программ на
этапе компиляции, за которой следует второй уровень - динамическая проверка
(на этапе выполнения).
Модель управления памятью предельно проста: объекты создаются с
помощью оператора new. В Java, в отличие от С++, механизм указателей
исключает возможность прямой записи в память и порчи данных: при работе с
указателями операции строго типизированы, отсутствуют арифметические
операции над указателями. Работа с массивами находится под контролем
управляющей системы. Существует автоматическая сборка мусора.
Данная модель управления памятью исключает целый класс ошибок, так
часто возникающих у программистов на С и С++. Программы на Java можно
писать, будучи уверенным в том, что машина не 'повиснет' из-за ошибок при
работе с динамически выделенной памятью.
Безопасность
Java разработана для оперирования в распределенных средах, это
означает, что на первом плане должны стоять вопросы безопасности. Средства
безопасности, встроенные в язык, и система исполнения Java позволяют
создавать приложения, на которые невозможно 'напасть' извне. В сетевых
средах приложения, написанные на Java, защищены от вторжения
неавторизованного кода, пытающегося внедрить вирус или разрушить файловую
систему.
Независимость от архитектуры
Java разработан для поддержки приложений, внедряемых в гетерогенные
сетевые среды. В подобных средах приложения должны исполняться на различных
аппаратных архитектурах, под управлением различных операционных систем и во
взаимодействии с интерфейсами различных языков программирования. Для
обеспечения платформо-независимости программ компилятор Java генерирует
байт-код - архитектурно-нейтральный промежуточный формат программы,
создаваемый для эффективной передачи кода на различные аппаратные и
программные платформы. При выполнении программы байт-код интерпретируется
исполняющей машиной Java. Один и тот же Java-байткод будет исполняться на
любой платформе.
Переносимость
Архитектурная независимость - лишь составная часть переносимости. В
отличие от С или С++ в Java не существует понятия 'зависимости от
реализации', когда речь идет о размерности базовых типов. Форматы типов
данных и операции над ними четко определены. Тем самым, программы остаются
неизменными на любой платформе - не существует несовместимости типов данных
на аппаратных и программных архитектурах.
Архитектурная независимость и переносимость программного обеспечения
Java обеспечивается виртуальной машиной Java (Java Virtual Mashine - JVM) -
абстрактной машиной, для которой компилятор Java генерирует код.
Специальные реализации JVM для конкретных аппаратных и программных платформ
предоставляют уже конкретную виртуальную машину. JVM базируется на
стандарте интерфейса переносимых операционных систем (POSIX).
Высокая производительность
Производительность всегда заслуживает особого внимания. Java
достигает высокой производительности благодаря специально оптимизированному
байт-коду, легко переводимому в машинный код. Автоматическая сборка мусора
выполняется как фоновый поток с низким приоритетом, обеспечивая высокую
вероятность доступности требуемой памяти, что ведет к увеличению
производительности. Приложения, требующие больших вычислительных ресурсов,
могут быть спроектированы так, чтобы те части, которые требуют интенсивных
вычислений, были написаны на языке ассемблера и взаимодействовали с Java
платформой. В основном, пользователи ощущают, что приложения
взаимодействуют быстро, несмотря на то, что они являются интерпретируемыми.
Интерпретируемость
Java-интерпретатор может выполнять Java байт-код на любой машине, на
которой установлен интерпретатор и система выполнения. На интерпретирующей
платформе фаза сборки программы является простой и пошаговой, поэтому
процесс разработки существенно ускоряется и упрощается, отсутствуют
традиционные трудные этапы компиляции, сборки, тестирования.
Многопоточность
Большинству современных сетевых приложений обычно необходимо
осуществлять несколько действий одновременно. В Java реализован механизм
поддержки легковесных процессов-потоков (нитей). Многопоточность Java
предоставляет средства создания приложений с множеством одновременно
активных потоков.
Для эффективной работы с потоками в Java реализован механизм
семафоров и средств синхронизации потоков: библиотека языка предоставляет
класс Thread, а система выполнения предоставляет средства диспетчеризации и
средства, реализующие семафоры. Важно, что работа параллельных потоков с
высокоуровневыми системными библиотеками Java не вызовет конфликтов:
функции, предоставляемые библиотеками, доступны любым выполняющимся
потокам.
Динамичность
По ряду соображений Java более динамичный язык, чем С++. Он был
разработан специально для подстройки под изменяющееся окружение. В то время
как компилятор Java на этапе компиляции и статических проверок не допускает
никаких отклонений, процесс сборки и выполнения сугубо динамический. Классы
связываются только тогда, когда в этом есть необходимость. Новые
программные модули могут подключаться из любых источников, в том числе,
поставляться по сети. В случае с браузером HotJava и другими подобными
приложениями интерактивный выполняемый код может быть загружен откуда
угодно, что позволяет производить прозрачные модификации приложений. В
результате возможно создание интерактивных служб, безболезненно
модифицируемых, обслуживающих большое количество клиентов и обеспечивающих
развитие электронного бизнеса через Internet.
Вывод
Если описанные выше характеристики рассматривать по отдельности, то
их можно найти во многих программных платформах. Радикальное новшество
заключается в способе, предлагаемом Java и системой выполнения, который
сочетает в себе все характеристики для предоставления гибкой и мощной
системы программирования.
Разработка приложений на Java приводит к получению программного
обеспечения, которое:
. переносимо на разные архитектуры, операционные системы и графические
пользовательские интерфейсы
. безопасно
. высокопроизводительно
Благодаря Java работа по разработке программного обеспечения
значительно упрощается, все старания направлены на достижение конечной
цели: вовремя получить передовой продукт, опирающийся на солидную основу
Java. За более полной информацией об языке можно обратится на сайт
разработчиков (9,10) .
2.5.2. Взаимодействие с СУБД
Платформа Java с ее принципом 'Write Once, Run AnywhereТМ' ('Пишем
один раз - используем везде') представляет собой безопасное гибкое
многоплатформное решение для разработки мощных Java-приложений, работающих
в Интернет и внутрикорпоративных интрасетях. Открытые расширяемые
интерфейсы прикладного программирования (Java Platform API) позволяют
разработчикам создавать приложения и апплеты Java. Набор интерфейсов для
предприятия Java Enterprise API позволяет поддерживать единообразное,
стандартное, беспрепятственное сопряжение и взаимодействие с
информационными массивами предприятия.
Сопряжение Java с базами данных (Java Database Connectivity - JDBCТМ)
представляет собой платформно-независимый промышленный стандарт
совместимости Java с самыми разными базами данных. JDBC поддерживает
интерфейс API на уровне вызовов для доступа к базам данных, работающим с
языком SQL. JDBC позволяет разработчикам Java использовать принцип 'Пишем
один раз - используем везде' в приложениях, требующих доступа к
корпоративным данным (7).
2.6. Реализация доступа к базе данных
2.6.1. Общее описание
Поисковая программа (SearchEngein.class) написана на языке Java с
использованием технологии Java servlets (17) на базе веб сервера Apache
(16). Чтобы программа работала в системе, под управлением операционной
системой Windows NT должны присутствовать следующие компанеты приведенные в
списке:
1. Веб сервер Apache, по архитектуру Win32;
2. Apache Java server, так же под архитектуру Win32;
3. Виртуальная Java машина (JVM) также под архитектуру Win32;
4. Java Servlet Development Kit (JSDK) 2.0
Настройка и установка этих команентов была описана выше. Тонкости
настройки для правильной работы программы буду описаны ниже.
Ограничении по применению программы практически не существует кроме
аппаратного обеспечения, минимальная конфигурация системы должна быть
такой:
Процессор с тактовой чистатой 266 или выше.
Память не меньше 64 мегабайт, чем больше, тем лучше.
Жесткий диск любой.
Остальное оборудование по усмотрению администратора сервера.
Выше было сказано, что ограничений нет, уточняю почему, так как
программа откомпилирована в аппаратно-независимый код (байт-код) оно с
легкостью может быть перенесена на другую платформу MacOS или Unix-система.
Нужно будет всего лишь переписать файлы классы на диск, естественно
настроив систему соответствующим образом.
2.6.2. Описание алгоритма
Алгоритм основан на методе перебора каждой записи всего массива и
сравнении введенной строки запроса с полями записи прочитанной из массива.
После того как запись и запрос совпали запить выдается в нужном формате для
отображения в браузере. Пока весь массив не будет прочитан последовательно,
сессия с пользователем не будет закончена.
А теперь более детально остановимся на алгоритме, ниже приведен
формат одной отдельно взятой записи из базы данных в формате RUSMARC (см.
Приложение 1).
00878nam 22002537
4500001000000033005000330017245000500244260002940015300003090009650003180063
6500038
1004565300426002465300450001965300469001602000485001009100495000809200503001
7090005200008852005280022852005500011040005610014041005750008008005830041
BOOK00000876 BOOK00000001 -19981027165203.0 -00aАктуальные вопросы
преподавания хореографического искусстваnВып. 7bМатериалы межвуз. науч.-
метод. конф. 'Современные технологии обучения в гуманитарном вузе'cСанкт-
Петербургский гуманитарный ун-т профсоюзов; Редкол. А.С.Запесоцкий и др. -0
aСПб.c1994 - a22с.- aВысшая школаxМетодика преподаванияxМатериалы
конференции- aХореографическое искусствоxПреподавание- aТехнологии
обучения- aФормы обучения- aКонференция- c2.100- aЩ32- a14.35.09a18-
cЩ32- bч/зt2hЩ32iА437- bаб.t3- aВСГАКИ-10- arus-950614s1990 rur
00000 rus d-
А теперь этаже запись только уже с пояснениями:
00878nam 22002537 4500 – Маркер 24 символа
– словарь 12 символов 1) Метка поля – 3 символа полный список всех меток
приведен в Приложении 1.
2) Начальная позиция относительна начала записи -5 символов
3) Размер поля – 4 символа
1 - 001 00000 0033
2 - 005 00033 0017
3 - 245 00050 0244
4 - 260 00294 0015
5 - 300 00309 0009
6 - 650 00318 0063
7 - 650 00381 0045
8 - 653 00426 0024
9 - 653 00450 0019
10- 653 00469 0016
11- 020 00485 0010
12- 091 00495 0008
13- 092 00503 0017
14- 090 00520 0008
15- 852 00528 0022
16- 852 00550 0011
17- 040 00561 0014
18- 041 00575 0008
19- 008 00583 0041
Поля с данными
1 - - BOOK00000876 BOOK00000001
2 - -19981027165203.0
3 - -00aАктуальные вопросы преподавания хореографического искусстваnВып.
7bМатериалы межвуз. науч.-метод. конф. 'Современные технологии обучения в
гуманитарном вузе'cСанкт-Петербургский гуманитарный ун-т профсоюзов;
Редкол. А.С.Запесоцкий и др.
4 - -0 aСПб.c1994
5 - - a22с.
6 - - aВысшая школаxМетодика преподаванияxМатериалы конференции
7 - - aХореографическое искусствоxПреподавание
8 - - aТехнологии обучения
9 - - aФормы обучения
10- - aКонференция
11- - c2.100
12- - aЩ32
13- - a14.35.09a18
14- - cЩ32
15- - bч/зt2hЩ32iА437
16- - bаб.t3
17- - aВСГАКИ-10
18- - arus
19- -950614s1990 rur 00000 rus d
-
Программа начинает работать после того когда от клиента приходит
запрос на страницу по определенному URL (например: http://www.real.ulan-
.ude.ru/serv/SearchEngein), для выполнения запроса пользователя веб-сервер
запускает JServ, который в свою очередь обрабатывает запрос и определяет
какой именно сервлет требуется запустить и в какой зоне он находится.
Информацию о зонах размещения всех сервлетов Jserv считывает из файла
настройки. Чтобы сервлет начал выполняться JServ предварительно запускает
виртуальную Java машину и только после этого начинает работать сервлет это
значит что запрос пользователя будет обработан и пользователь получит
запрошенную страничку. Что же происходит на стороне сервера в этот момент
когда пользователь ждет пока загрузится страница. А происходит вот что,
управление по отображению всей информации в окне браучера переходит
сервлету, программе написанной на Java. Рассмотрим это более детально.
Сервлет инициализируется и начинает передачу данных в формате HTML
пользователю. Первое что увидит пользователь это будет поисковая форма
(см. рис. 6) .
[pic]
Рис. 6
Поисковая форма
Программный код поисковой формы выглядит так:
out.println('');
Рассмотрим код более пристально.
В тэге