Платформа 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. Реализация доступа к базе данных
Поисковая программа (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-система. Нужно будет всего лишь переписать файлы классы на диск, естественно настроив систему соответствующим образом.
Алгоритм основан на методе перебора каждой записи всего массива и сравнении введенной строки запроса с полями записи прочитанной из массива. После того как запись и запрос совпали запить выдается в нужном формате для отображения в браузере. Пока весь массив не будет прочитан последовательно, сессия с пользователем не будет закончена.
А теперь более детально остановимся на алгоритме, ниже приведен формат одной отдельно взятой записи из базы данных в формате RUSMARC (см. Приложение 1).
00878nam 22002537 45000010000000330050003300172450005002442600029400153000030900096500031800636500038
10045653004260024653004500019653004690016020004850010091004950008092005030017090005200008852005280022852005500011040005610014041005750008008005830041 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) .
Рис. 6
Поисковая форма
Программный код поисковой формы выглядит так:
out.println("<form method=\"get\" action=\"/serv/SearchEngein\">"+
"<table width=\"461\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"+
"<tr bgcolor=\"#3399FF\"> "+
"<td width=\"266\" class=\"text\"> Запрос</td>"+
"<td width=\"135\" class=\"text\"> Каталог</td> "+
"<td width=\"207\"> </td>"+
"</tr>"+
"<tr>"+
"<td width=\"266\" valign=\"top\"> "+
"<input type=\"text\" name=\"Query\" maxlength=\"100\" size=\"38\" value=\"\">"+
"</td>"+
"<td width=\"135\" valign=\"top\"> "+
"<select name=\"select\" size=\"1\">"+
"<option value=\"MARCFILE.Book\" selected>"+ConvertISO(getINIVar("KATALOG.Book"))+"</option>"+
"<option value=\"MARCFILE.Stat\">"+ConvertISO(getINIVar("KATALOG.Stat"))+"</option>"+
"<option value=\"MARCFILE.Periud\">"+ConvertISO(getINIVar("KATALOG.Periud"))+"</option>"+
"<option value=\"MARCFILE.Podpis\">"+ConvertISO(getINIVar("KATALOG.Podpis"))+"</option>"+
"<option value=\"MARCFILE.Ucheb\">"+ConvertISO(getINIVar("KATALOG.Ucheb"))+"</option>"+
"</select>"+
"</td>"+
"<td width=\"207\" valign=\"top\"> "+
"<input type=\"submit\" name=\"Start\" value=\"Поиск\">"+
"</td>"+
"</tr>"+
"</table>"+
"</form>");
Рассмотрим код более пристально.
В тэге <form> присутствуют параметры metod и action.
1) метод (metod) говорит браузеру о том что данные(запрос) будет отправлены серверу;
2) действие (action) – в этом параметре находится путь к программе на старое сервера которая примет отправленный запрос для обработки.
Следующий интересующий нас неотъемлемый компонент это тэг <input>, который тоже имеет несколько параметров type, name, value. Этот тэг является строкой ввода, рассмотрим его параметры.
1) тип (type) равный “text” говорит о том что это строка ввода;
2) имя (name) название запроса т.е. имя которое присваивается тексту введенному в строку ввода, в моей программе это Query;
3) значение (value) значение строки по умолчанию при начальной загрузке.
Еще один значимый тэг формы <select> - это список для выбора базы в которой будет производится поиск. Данный тэг имеет свое имя которое указано в параметре name. Сам же список последовательно указан в тэге <option> относящимся к тэгу <select>. Каждая из строк начинающихся тэгом <option> является элементом списка для выбора. У тэга <option> есть параметр value в котором указан псевдоним выбранного пункта из списка – это нужно для определения какой пункт из списка выбран.