Міністерство культури Російської Федерації p>
Східно-Сибірська державна академія культури і мистецтв p>
Факультет менеджменту інформаційних технологій p>
Кафедра автоматизованих інформаційних систем p>
УДК 002.53:681.3.016 p>
ОРГАНІЗАЦІЯ Доступ до баз даних p>
ВСГАКіІ В ІНТЕРНЕТ p>
Дипломна робота p>
Виконавець: Фомін Євген Ігорович студент заочного відділення групи 453 p>
Науковий керівник: Батором А.Р., к.т.н., доцент. p>
__________________________________________ p>
І.о.зав . кафедрою: Батуева Е.Б., к.п.н., доцент. p>
__________________________________________ p>
Дата допуску до захисту: _____ 06.2001 p>
Улан-Уде p>
2001 p>
Зміст
Введення. 3 p>
1. Internet - технологія роботи з базами даних 5 p>
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 p>
2. Практична частина 17 p>
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 p>
Висновок 49 p>
Література 50 p>
Додаток 1 Специфікація формату RUSMARC 51 p>
Додаток 2 Специфікація мови Java 90 p>
Додаток 3 Лістинг програми - SearchEngein.java 103 p>
Додаток 4 Результати тестування програми 111 p>
Введення. P>
Багато організацій використовують електронні бази даних (БД) дляпідтримки своїх робочих процесів. Часто це системи на одного - двохкористувачів, виконані з використанням dbf - орієнтованих засобіврозробки: Clipper, Dbase, FoxPro, Paradox, Access. Зазвичай використовуєтьсяряд таких баз, незалежних один від одного. Якщо інформація, збережена в таких
БД, становить інтерес не тільки для безпосередніх користувачів, тодля її подальшого поширення використовуються паперові звіти і довідки,створені базою даних. p>
З появою локальних мереж, підключенням таких мереж до Інтернет,створенням внутрішньокорпоративних, мереж, з'являється можливість із будь-якогоробочого місця організації одержати доступ до інформаційного ресурсу мережі.
Однак, при спробі використовувати існуючі БД виникають проблемипов'язані з вимогою до однорідності робочих місць (для запуску "рідних"інтерфейсів), сильнішим трафиком у мережі (доступ йде напряму до файлів
БД), завантаженням файлового сервера і неможливістю віддаленої роботи
(наприклад, відряджених співробітників). Рішенням проблеми могло б стативикористання уніфікованого інтерфейсу WWW для доступу до ресурсіворганізації. p>
Технологія World Wide Web, в перекладі "Всесвітня павутина", отрималанастільки широке поширення через простоту своїх призначених для користувачаінтерфейсів. Принцип "тисни на те, що цікаво", що лежить в основігіпертексту, інтуїтивно зрозумілий. У технологіях WWW усі ключові поняттяпроглядається документа: слова, зображення - мають можливість
"розкритися" новим документом, що розвиває це поняття. Такий спосібподання інформації називається "гіпертекстом", а документи,представлені в такому вигляді - "гіпертекстовими документами". Для описуцих документів використовується спеціальна мова - мова описугіпертекстових документів або HTML (англ. варіант HyperText Markup
Language). P>
З цих передумов виникає задача перетворення накопиченихданих у гіпертекстові документи WWW, задача підтримки актуальностіперетвореної структури. Іншими словами, завдання надання WWW --доступу до існуючих баз даних. p>
Мета даної дипломної роботи, створити інтерфейс до файлів БД
Бібліотеки 5.0 які мають формат RUSMARC (см. прил. 1), так само можназвернутися за інформацією з цього формату на сайт РОСІЙСЬКОЇ БІБЛІОТЕЧНОГО
АСОЦІАЦІЇ (12,11). P>
Для реалізації поставленої задачі був обраний мова програмування
JavaTM p>
Дипломна робота складається з 2-х глав і 4 додатків. P>
У першому розділі Internet - технологія роботи з базами даних,розглядаються наявні на даний момент часу технології поорганізації доступу до баз даних користувачів Інтернет. p>
У другому розділі Практична частина поетапно описується технологіяорганізації доступу до бази даних у форматі RUSMARC зокрема: p>
. настройка WEB-сервера Apache; p>
. настройка Java Server для WEB-сервера Apache; p>
. вибір інструментарію для реалізації програми: p>
. опис алгоритму. p>
Перший додаток містить повний опис специфікації формату
RUSMARC з детальним описом всіх полів і підполів і можливих їхзначенні. p>
У другому додатку наведено ключові моменти специфікації мовипрограмування Java. p>
Третє додаток містить лістинг програми з включеними в ньогокоментарями. p>
У четвертому додатку наведені результати проведеного тесту нареальних масивах даних. p>
1. Internet - технологія роботи з базами даних p>
1.1 Реалізація доступу до бази даних. P>
Використання технологій WWW для забезпечення доступу до будь-якихінформаційних ресурсів має на увазі існування наступних компонент. p>
1. IP - мережі з підтримкою базового набору послуг з передачі данихз єдиною політикою нумерації і маршрутизації, що працює сервісом імен DNS. p>
2. Виділеного інформаційного серверу - WWW-сервера,забезпечує надання гіпертекстових документів через IP - мережу ввідповідь на запити WWW - клієнтів (див. рис. 1). p>
p>
Передані гіпертекстові документи оформляються в стандарті HTML --мові опису гіпертекстових документів. Ці документи можуть абозберігатися в статичному виді (сукупність файлів на диску), абодинамічно компонуватися в залежності від параметрів запиту спеціальнимпрограмним забезпеченням. Для динамічного компонування HTML-документів, WWW -сервер використовує спеціальним чином оформлені програми-CGI-або Java -програми. p>
До складу специфіки конкретної БД входять як технологічні основи,такі як тип СУБД, вид інтерфейсів, зв'язку між таблицями, обмеженняцілісності, так і організаційні рішення, пов'язані з підтримкоюактуальності баз даних і забезпеченням доступу до неї (3). p>
При забезпеченні WWW-доступу до існуючим БД, можливий ряд шляхів --комплексів технологічних та організаційних рішень. Практикавикористання WWW-технології для доступу до існуючим БД надаєширокий спектр технологічних рішень, по-різному пов'язаних між собою --перекривають, взаємодіючих і т.д. Вибір конкретних рішень призабезпеченні доступу залежить від специфіки конкретної СУБД і від ряду іншихфакторів, як то: наявність фахівців, здатних з мінімальними витратамиосвоїти певну гілку технологічних рішень, існування інших
БД, WWW-доступ до яких повинен здійснюватися з мінімальнимидодатковими витратами і т.д. p>
WWW - доступ до існуючих баз даних може здійснюватися заодному з трьох основних сценаріїв. Нижче дається їх короткий опис іосновні характеристики. p>
1.1.1. Одноразове або періодичне перетворення вмісту БД у статичні документи p>
У цьому варіанті вміст БД переглядає спеціальна програма,що створює безліч файлів - зв'язкових HTML-документів (см.ріс.2). Отриманіфайли можуть бути перенесені на один або кілька WWW-серверів. Доступ доним буде здійснюватися як до статичних гіпертекстових документівсервера. p>
p>
Цей варіант характеризується мінімальними початковими витратами. Вінефективний на невеличких масивах даних простої структури і рідкіснимоновленням, а також при знижених вимогах до актуальності даних,наданих через WWW. Крім цього, очевидно повна відсутністьмеханізму пошуку, хоча можливо розвинуте індексування. p>
У якості перетворювача може виступати програмний комплекс,автоматично або напівавтоматично генерує статичні документи.
Програма-перетворювач може бути самостійно розробленоюпрограмою або бути інтегрованим засобом класу генераторів звітів. p>
1.1.2. Динамічне створення гіпертекстових документів на основі вмісту БД p>
У цьому варіанті доступ до БД здійснюється спеціальною CGI -програмою, що запускається WWW-сервером у відповідь на запит WWW - клієнта. Цяпрограма, обробляючи запит, переглядає вміст БД і створюєвихідний HTML-документ, що повертається клієнту. (див. рис. 3) p>
p>
Це рішення ефективно для великих баз даних зі складною структурою іпри необхідності підтримки операцій пошуку. Показаннями також єчасте відновлення і неможливість синхронізації перетворення БД устатичні документи з оновленням вмісту. У цьому варіанті, можливо,здійснювати зміну БД з WWW-інтерфейсів. p>
До недоліків цього методу можна віднести великий час обробкизапитів, необхідність постійного доступу до основної бази даних,додаткове завантаження засобів підтримки БД, пов'язану з обробкоюзапитів від WWW - сервера. p>
Для реалізації такої технології необхідно використовувативзаємодія WWW-сервера з запускаються програмами CGI - Common Gateway
Interface. Вибір програмних засобів достатньо широкий - мовипрограмування, інтегровані засоби типу генераторів звітів. Для
СУБД із внутрішніми мовами програмування існують варіантивикористання цієї мови для генерації документів. p>
1.1.3. Створення інформаційного сховища на основі високопродуктивної СУБД із мовою запитів SQL. Періодична завантаження даних у сховище з основних СУБД p>
У цьому варіанті пропонується використання технології, що одержаланазву "інформаційного сховища" (ІХ). Для обробки різноманітнихзапитів, у тому числі і від WWW-сервера, використовується проміжна БДвисокої продуктивності. Інформаційне наповнення проміжної БДздійснюється спеціалізованим програмним забезпеченням на основівмісту основних баз даних. p>
Етап 1 - перевантаження даних; p>
p>
Етап 2 - обробка запитів. p>
p> < p> Даний варіант вільний від усіх недоліків попередньої схеми. Більшетого, після встановлення синхронізації даних інформаційного сховища зосновними БД можливий перенос користувацьких інтерфейсів наінформаційне сховище, що істотно підвищить надійність іпродуктивність, дозволить організувати розподілені робочі місця. p>
Незважаючи на уявну громіздкість такої схеми, для задач забезпечення
WWW-доступу до вмісту декількох баз даних накладні витратиістотно зменшуються. p>
Основою підвищення продуктивності обробки WWW-запитів і різкогозбільшення швидкості розробки WWW-інтерфейсів є використаннявнутрішніх мов СУБД інформаційного сховища для створеннягіпертекстових документів. p>
Для завантаження вмісту основний БД в інформаційне сховище можутьвикористовуватися всі перераховані рішення (мови програмування,інтегровані засоби), а також спеціалізовані засоби перевантаження,поставляються з SQL-сервером і продукти підтримки інформаційних сховищ. p>
1.2. Огляд технологій p>
1.2.1. WWW - сервер NCSA HTTPD p>
Як було сказано раніше, одним з ключових елементів технології WWWє WWW-сервер. Стандартом де-факто для Unix-систем стало програмнезабезпечення (ПЗ) WWW-серверу Національного Центру з Суперкомп'ютерний
Додатків (NCSA) Іллінойського Університету. Всі новостворюваніпродукти підтримують повну сумісність із ПЗ NCSA по режимах роботи іформатом даних. Сервер NCSA є постійно удосконалюється продуктом,відображає останні віяння WWW-технології. Створена відносно недавно
"Apache Group" розробляє своє програмне забезпечення WWW - серверу набазі продукту NCSA HTTPD. Опис WWW-сервера Apache у наступному пункті. P>
1.2.2 WWW - сервер Apache c підтримкою Java Servlet p>
Найпоширеніший Web-сервер у світі - це Apache. За данимикомпанії Netcraft (15) загальна кількість Web-сайтів, що працюють під йогоуправлінням, до кінця 1998 р. досягло 2 млн. (55% загального числа вузлів) іпостійно зростає. Для порівняння: на частку серверів Microsoft припадає 25%,
Netscape -7%. Будучи безкоштовної відкритої програмою, призначеною длябезкоштовних ж Unix-систем (FreeBSD, Linux та інші), Apache пофункціональних можливостях і надійності не поступається комерційним серверів,а широкі можливості конфігурування дозволяють налаштувати його для роботипрактично з будь-якою конкретною системою. Існують локалізації сервера длярізних мов, у тому числі і для російського. p>
Історично склалося так, що російські тексти в Internet можуть бутипредставлені в різних кодуваннях, з яких найбільш поширені koi8-r
(або просто koi8) і Windows-1251: з першого працює більшість серверів іробочих станцій під управлінням Unix, другий є стандартною для всіхверсій Windows. Оскільки кодування Windows-1251, природно, застосовуєтьсяна переважній більшості клієнтських машин, частка тих, хто подорожуєросійської частини WWW, використовуючи koi8, зараз не перевищує 5%. Однак у ційкодуванні зберігаються документи на багатьох Unix-серверах, в ній найчастішепередаються поштові повідомлення і практично завжди - листи втелеконференції, з нею ж працюють багато російськомовних канали IRC (до речі,КОИ абревіатура розшифровується як "код обміну інформацією"). Щобвирішити проблеми, що виникають при розбіжності кодувань тексту на сервері іклієнтської машині, і був створений російський модуль Apache-RUS для Web -сервера Apache. p>
Для тих, хто має справу з різними комп'ютерними платформами іпрагне до універсалізму, вибір 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, додавшив нього рядок: p>
Module jserv_module mod_jserv.o-для Unix-система. p>
Більш докладно опис підключення Jserv `а розглянуто впрактичної частини. p>
1.2.3. SQL - сервер фірми Oracle p>
При реалізації сценарію 3 постає питання про вибір якісноїплатформи для створення інформаційного сховища. Реляційна системауправління базами даних фірми Oracle є лідером на ринку СУБД. Запродуктивності, надійності збереження даних, розвитку сімействаінтерфейсів, обсягу серверних платформ продукти Oracle очолюютьчисленні рейтинги. Гнучкість використання, розвиті засобиуправління доступом і розподілена архітектура роблять сервер Oracleнадзвичайно привабливим для технології інформаційних сховищ, аможливість роботи на вільно - розповсюджуваних Unix-платформах розширюєйого можливості в некомерційній середовищі. p>
Істотним обмеженням використання Oracle у сфері науки іосвіти є досить висока ціна і низьке бюджетнефінансування. Однак з 1996 року фірма Oracle оголосила про спеціальнупрограму для російських університетів, що дозволяє за відносноневеликі гроші придбати будь-який набір продуктів Oracle. p>
1.2.4. Мова програмування Perl p>
Мова Perl був створений для підвищення ефективності обробки текстовихдокументів. Він орієнтований на опрацювання рядків. В даний час моваотримав велике поширення як інструмент створення виконуваних модулів
WWW-сервера. Існуючі пакети розширення забезпечують доступ до SQL -серверів безпосередньо з Perl-програми. Це дозволяє використовувати йогодля вирішення всіх задач, що виникають при забезпеченні WWW-доступу до базданих. Perl ефективний також при опрацюванні довільних структур даних:існуючих звітів, списків, карток в електронному вигляді (). p>
1.2.5. Мова програмування Java p>
Java - це простий, об'єктно-орієнтований, розподілений,інтерпретуються, живучий, безпечний, архітектурно-нейтральний,переносимий, високопродуктивний, багато-і вироблений мову. p>
Компілятор Java читає файли з текстами програм і перетворює їх в байт-код
(byte-code). Байт-код являє собою проміжну стадію міжвихідним кодом і машинним кодом, як можна більш близьку до машинного коду.
Але близьку не настільки, щоб стати платформно-залежною. Якщо точніше, тобайт-код є машинним кодом, але не для якої-небудь фізичноіснуючої машини, а для Java Virtual Machine - міфічної машини, чиєповедінка в точності визначено Sun Microsystems. Специфікації Java Virtual
Machine (JVM) описують поведінку, очікуване від будь-якої фізичної машини,яка виконує будь-який заданий байт-код. Підпорядкування специфікаціям JVM --ось що забезпечує переносимість програм Java. p>
1.2.6 Java servlets. p>
Сервлети - це високопродуктивні платформно-незалежні server -side-пpіложенія, написані на Java і становлять реальну конкуренціютаких технологій, як CGI, PHP3, Perl, і вже, звичайно ASP. p>
До переваг сервлетів можна віднести: p>
Виключно висока швидкість роботи. p>
Бистpодействіе сервлетів пояснюється тим, що вони, по-пеpвих,пpедставляют собою вже скомпіліpованний і оптімізіpованний код (а в разіз JIT-му - ще й пpеобpазованний в машинний) і, по-втоpих, виконуються водин раз загpуженной і ініціалізіpованной Java-машині. p>
Таким чином, заощаджуються ресурси на запуск обробника/паpсеpаскpіпта, необхідні, наприклад, що стосується Perl або PHP3 (в деяких ОС, вЗокрема, в OS/2 - це дуже серйозна економія), і ресурси (як пам'ять,так і час), що витрачаються на безпосередньо предкомпіляцію
(інтерпретацію) коду (що необхідно для тих же Perl, PHP, REXX). p>
Реально обидві ці проблеми відразу не вирішуються, практично, ніде.
Hаібольшій ефект дає, мабуть, впровадження транслятора скpіптового мовибезпосередньо в веб-сеpвеp, наприклад, горезвісні. asp-скpіпти в серверахвід Microsoft, або модулі mod_perl або mod_php для apache. (Останнійваріант - PHP3, впроваджений в апач - є, напевно, найбільшпродуктивним з усього перерахованого вище). p>
Переносимість. У даному випадку принцип "write once run everywhere"діє безвідмовно. Сервлети, написані у відповідності зі специфікацієювід Sun і не використовували якісь особливості конкретного веб-сервера,працюють без будь-якої переробки або перекомпіляції під будь-якими, часом дужедалекими один від одного платформами, будь то Solaris, FreeBSD або OS/2. Узв'язку з цим розробник може абсолютно вільно вибирати, в якійсистемі йому зручніше працювати - він жодним чином не прив'язаний ні до сервера,ні до майбутньої цільової платформі. p>
Зручність кодування та інструментарій розробника. Не знаю, якіншим, а мені Java як мова програмування подобається незмірно більше,ніж той самий Perl або надзвичайно швидкий, але, наскільки убогий PHP3. Більшетого, навіть деякі дрібниці в C + + починають дратувати після довгої практикикодування на Java. (Мушу зауважити, що я нічого не маю протиперерахованих вище мов, ставлюся до них з належною повагою і використовуюїх у своїй роботі.) p>
Крім того, на ринку присутня чимала кількість найпотужнішихінструментів для розробників додатків на Java. Наприклад, той же
VisualAge for Java 2.0 містить засоби візуального створення сервлетів --по суті, такий собі WYSIWYG-pедактоp веб-сторінок, що створює замість HTML -документів сеpвлети, генеpіpующіе ці документи на льоту. p>
Робота з базами даних. Робота з реляційними СУБД з Javaуніфікована (для цього існує спеціальний пакет java.sql), зручна івідв'язано від специфічних для конкретної СУБД тонкощів. Все, що Вам потрібно --це знайти для своєї СУБД JDBC-драйвер (а вони зараз існують практичнодля всіх совpеменних баз даних, часто навіть по кількаpазновідностей), і далі можна користуватися скоєнні стандартноїмеханізмами. p>
А при переході на іншу СУБД, наприклад, c MySQL на Oracle,досить буде просто додати CLASSPATH новий драйвер і поміняти URLдля підключення до іншої бази. Жодного зміни в коді p>
Перспективність, сучасність технологій. P>
Звичайно, є у цієї технології і недоліки. Як технічні:наприклад, високі вимоги до системних ресурсів - в основному, до пам'яті
(під OS/2, наприклад, запущена Java-машина займає 15-20 мегабайтоперативної пам'яті) або необходімсть в якісній стійкої реалізації
Java для вибраної платформи, так і іншого плану: такі як відсутністьналежної кваліфікації як у розробників, так і, найчастіше, у тих, хтоприймає рішення, їх усталені упередження і багато іншого ... p>
Технологія АДВОКАТУРИ сеpвлет-сеpвеpа. p>
Отже, як же працюють сервлети. Розглянемо це на прикладі модуля
JServ до веб-сервера apache. P>
У момент старту сервера разом з ним стартує і ява-машина з такзваним servlet-wrapper'ом або середовищем, в якому згодом імає виконуватися сервлети. Строго кажучи, JServ - це і є та самаСереда. Він цілком написаний на Java і займається безпосередньо завантаженням івиконанням сервлетів, слідуючи специфікації Sun, а також обміном даними звласне веб-сервером. В останньому для цього повинен бути присутнімспеціальний модуль mod_jserv (його необхідно додати при компіляції тазбірці apache, або підключити у вигляді зовнішнього модуля). p>
Якщо отримано запит на документ, який припадає на спеціальнообумовлений URL або каталог (зазвичай це щось на зразок/servlets /),apache за допомогою модуля mod_jserv передає цей запит JServ'у, якийвизначає, який сервлет повинен цей запит обробити, завантажує цейсервлет (якщо він ще не був завантажений) і потім повертає веб-сервера тойтекст або потік даних, який був сформований в результаті роботисервлети. p>
Спочатку сервер "порожній" - при його старті сервлети зазвичай незавантажуються (хоча є можливість примусово ініціалізувати потрібнісервлети при старті сервера). У відповідь на запит потрібний сервлет шукається всписку вже завантажених і, при необхідності, старт і ініціалізується.
Після цього він залишається постійно завантаженим в Java-машині (іпредкомпілірованним, якщо Java-машина містить JIT) і при подальшихзапитах просто викликається відповідний його метод для їх обробки.
Переваги такої ідеології очевидні. Функціонально це аналогічно викликомпростий підпрограми усередині звичайного сервера і проиходит дуже швидко іефективно. Крім того, помітний виграш дають такі речі, як одного разупроведена ініціалізація, можливість зберігання глобальних даних абопідтримка множинних клієнтських сесій, що ведеться самим сеpвеpом (а несеpвлетамі, pазpаботчікі який в значній мірі позбавленіізобpетанія велосипедів). Наприклад, можна встановити одне єдинез'єднання з базою даних, і користуватися ним при обробці запитів --чимала економія, з огляду на те, що з тих самих скриптів на perl або phpдоводиться щоразу створювати нове з'єднання, відновлювати параметрисесії і т.п. p>
Звичайно ж, існує можливість примусового вивантаження окремихсервлетів з пам'яті в разі потреби, а також можливістьавтоматичного розпізнавання зміни сервлетів та їх перезавантаження. Іншимисловами, при оновленні того чи іншого сервлети немає необхідностіперезавантажувати весь веб-сервер або JServ, достатньо просто покласти новуверсію на місце старої, і вона буде автоматично завантажена в пам'ять принаступному запиті (природно, при цьому буде спочатку виробленокоректне завершення роботи старої версії, шляхом виклику спеціальногометоду, а потім завантаження і ініціалізація нової). p>
1.2.7. Пакет Web - Oracle - Web p>
Пакет WOW є вільно-поширюваним програмним засобом,призначеним для створення інтерактивних WWW-інтерфейсів із СУБД Oracle.
Пакет WOW був першим і найбільш простим засобом, випущеним фірмою
Oracle. В даний час існує набір продуктів, що розвиваютьфункціональність WOW'а - Oracle Web Server версій 1, 2, Oracle Web
Arcitecture. P>
Всі перераховані продукти дозволяють використовувати процедурнерозширення мови SQL - PL/SQL, розроблене фірмою Oracle длядинамічного створення гіпертекстових документів. Висока швидкістьрозробки досягається за рахунок різкого спрощення доступу до БД - програмина PL/SQL виконуються самим сервером Oracle. Запропонований пакет WOW бувперероблений у Новосибірському обласному центрі НИТ із метою підтримкидекількох російськомовних кодувань. p>
Основною областю використання WOW є обробка запитів від
WWW-серверу до SQL-серверу Oracle у середовищі Unix. У запропонованих сценаріяхпакет WOW дозволить організувати ефективний WWW доступ до інформаційногосховища, побудованому на базі сервера баз даних Oracle (сценарій 3). p>
1.2.8. Пакет Cold Fusion фірми Allaire Corp p>
Пакет призначений для використання під ОС Windows і дозволяєзвертатися до різних баз даних, що підтримує інтерфейс ODBC через
WWW-інтерфейси. Пакет має комерційний статус, його "evaluation copy"є вільно-розповсюджується. Для доступу до баз даних використовуютьсяконструкції мови DBML - розширення мови HTML, доповненого засобамидоступу до БД через ODBC. Документи на мові DBML обробляються насерверної частини, в результаті чого створюється HTML-документ. Повноціннаверсія пакету, разом із WWW - сервером коштує $ 486. p>
Пакет може ефективно використовуватися як обробника запитів
WWW до вихідних баз даних або інформаційному сховищу (сценарії 2,3) p>
1.3. Оцінка трудомісткості забезпечення WWW доступу p>
Трудомісткість забезпечення WWW-доступу до баз даних, очевидно,складається з трудомісткості робіт при реалізації одного з вищенаведенихсценаріїв. Реалізація першого сценарію пов'язана з послідовнимперетворенням всіх даних, що знаходяться у вихідної БД. Розробка засобіввиведення вмісту таблиці у форматі HTML із необхідним форматуванням ітекстовим супроводом буде займати близько 1-3-х днів для одногорозробника. Розробка засобів побудови індексної структури до з'являютьсяданим є більш творчою роботою і може зайняти 1-3 тижні дляодного розробника. p>
Трудомісткість побудови інтерфейсів для сценаріїв 2, 3, в загальномувипадку, еквівалентна трудомісткості побудови цих інтерфейсів при створеннівихідної інформаційної системи (тобто тієї, для якої забезпечується WWW -доступ) з використанням традиційних засобів розробки (не-CASE). Утретьому сценарії додаткові трудовитрати підуть на перевантаження даних уіформаціонное сховище. У разі перевантаження даних без зміни структури іімен можна виходити з оцінки трудовитрат: 1-2 таблиці в 1-2 дні для одногорозробника, залежно від складності та обсягу таблиць, за умовиналагодження технології перевантаження. p>
При використанні різних засобів розробки інтерфейсів до БД,представлених у звіті, трудовитрати можуть істотно відрізнятися. p>
2. Практична частина p>
Широкі можливості WWW - технології з поданням користувачам
Internet інформації, включаючи текст, малюнки, графіки, відео й звуковідоріжки, зумовили процес бурхливого росту мережі WWW - серверів і Internet вцілому. Метою даної дипломної роботи є висвітлення технологіїорганізації доступу до БД у форматі RUS-MARC, посредствам обраногоінстрементарія в даному випадку це мова Java. p>
2.1 Загальна ЧАСТИНА p>
2.1.1. Призначення WWW - сервера. Загальна схема роботи. Визначення p>
WWW сервер - це така частина глобальної або внутрішньокорпоративної мережі,яка дає можливість користувачам мережі отримувати доступ догіпертекстових документів, розташованим на цьому сервері. Длявзаємодії з WWW сервером користувач мережі повинен використовуватиспеціалізоване програмне забезпечення - браузер (від англ. browser),інша назва - програма перегляду. p>
Схема роботи p>
Розглянемо більш детально, ніж у попередніх розділах, схему роботи WWW -сервера. У загальному вигляді вона виглядає так: p>
1. Користувач мережі запускає пакет програмного забезпечення,званий браузером, в функції якого входить o Встановлення зв'язку з сервером o Отримання необхідного документа o Відображення отриманого документа o Реагування на дії користувача - доступ до нового документу o Після запуску браузер по команді користувача або автоматично встановлює зв'язок з заданим WWW - сервером і передає йому запит на отримання заданого документа p>
2. WWW сервер шукає запитуваний документ і повертає результатибраузеру p>
3. Браузер, отримавши документ, відображає його користувачеві і чекаєйого реакції. o Можливі варіанти: o Введення адреси нового документа o Друк, пошук, інші операції над поточним документом o Активізація (натискання) спеціальних зон отриманого документа, що називаються зв'язками (link) і асоційованим з адресою нового документа. o У першому і третьому випадку відбувається звернення за новим документом. p>
Адреса p>
Адреса документа зазначається у вигляді спеціального рядка, званої
URL. Для протоколу HTTP, використовуваного при взаємодії WWW клієнта та WWWсервера, URL складається з наступних компонентів: p>
1) Найменування протоколу, за яким працює сервер (http). p>
2) Ім'я машини - сервера в Internet або її IP - номер.
3) Порт TCP, звернення до якого обробляє сервер. p>
4) Місце (шлях) документа на машині - сервер. p>
Наприклад: http://www . cnit.nsu.ru: 80/welcome.html p>
Тут http означає протокол роботи з WWW - сервером o ':' - роздільник o "www.cnit.nsu.ru" - ім'я машини - сервера в Internet o "80" - номер tcp - порту o/welcome.html - шлях до документа на машині - сервер p>
Із загальної схеми роботи видно, що функції WWW сервера полягають унаступному: p>
1) З'єднання з клієнтським ПО по протоколу tcp. p>
2) Прийняття запиту на документ по протоколу http. p>
3) Пошук документа в локальних ресурсах. p>
4) Повернення результатів пошуку по протоколу http. p>
У загальному випадку, WWW - сервером будемо називати програмно - апаратнийкомплекс, призначений для виконання перерахованих вище дій. p>
середу роботи сервера p>
В даний час всі відомі WWW - сервери представляють собоюкомп'ютер загального призначення з багатозадачного операційною системою. Один абокілька процесів такої системи відповідають за підтримку специфічних для
WWW - сервера функцій. Інші процеси ОС відповідають за забезпечення іншихфункцій, не обов'язково пов'язаних з підтримкою технології WWW. p>
Така структура приводить до того, що під WWW сервером починаютьмати на увазі тільки частина програмного забезпечення, єдинимифункціями якої є функції WWW сервера, а іншу частину --комп'ютер, операційну систему, інші процеси, мережеву структуруназивають середовищем роботи WWW сервера або платформою (див. таблицю 1). p>
Найбільш распростран?? нних платформ для 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 |
| робочі станції | | p>
2.1.2 Безпосередні функції сервера. Базові визначення p>
У простому випадку гіпертекстовий документ являє собоюсукупність файлів. Представлення цих файлів, як єдиного документапроводиться браузером. По кожному файлу документа браузер робить запит до
WWW - сервера. Таким чином, сервер не має уявлення про структуру таскладі документів, він відповідає тільки за видачу локальних файлів зазапитам. На різних платформах, у різних операційних системах шляхуфайлів виглядають по-різному. p>
Наприклад: p>
D: WWWINDEX.HTM - в Windows, p>
/u/data/www/html/index.html -- в Unix - системах, p>
USR: WWW/HTML - в NetWare і т.д. p>
Шлях файлу, що указується в URL, має стандартний вигляд: p>
// ...// p>
Таким чином, у функції WWW - сервера входить перетворення адресиіз зовнішнього єдиного формату в платформо орієнтований внутрішнійформат. З'являється ряд понять, специфічних для такого перетворення,необхідних для нього. p>
Вихідний каталог документів p>
Це каталог реальної файлової системи сервера, від якого йдеобчислення шляху, зазначеного в URL. Наприклад, якщо вихідним каталогомдокументів є D: WWW, то на запит до цього сервера документа за URL http:///index.htm буде повернуто файл p>
D: WWWindex.htm p>
Синоніми p>
У випадку, коли необхідно здійснити звернення до конкретногокаталогу або файлу, що знаходиться поза ієрархії вихідного каталогудокументів, використовується механізм синонімів. Синонім дозволяє явновизначити відповідність між шляхом, зазначеним в URL, і шляхом локальноїфайлової системи. p>
Наприклад: p>
Синонімом для/Harvest оголошується/projects/www/harvest або синонімом для/test/myfile.html оголошується C: MYDIRFILE.HTM p> < p> У першому випадку всі звернення до файлів каталогу/Harvest будутьоброблятися в каталозі/projects/www/harvest. Другий приклад показуєроботу синоніма з конкретним файлом файлової системи. p>
Індексний файл p>
Для кожного сервера визначено ім'я так званого індексного файлу.
Зазвичай цей файл містить посилання на інші файли даного каталогу.
Вміст індексного файлу видається сервером у випадку, якщо в URL вказанийкаталог без конкретного файлу. p>
Користувацький розділ p>
Для розрахованих на багато користувачів операційних систем (таких як Unix) ПО WWW
- Сервера дозволяє кожному користувачеві надавати доступ до своговласним набору гіпертекстових документів поза основною ієрархії
(Вихідного каталогу документів, синонімів і т.д.). Цей набір документівповинен знаходитися у власному (т.зв. "домашньому") каталозі користувача.
Для доступу до таких документів в URL перед шляхом ставиться знак тильда та ім'якористувача: ~. p>
Наприклад: p>
На сервері Indy.cnit.nsu.ru створений користувач з ім'ям fancy і
"домашнім" каталогом/home/fancy. Власні гіпертекстові документи вінзберігає в каталозі/home/fancy/public_html. При зверненні з URLhttp://Indy.cnit.nsu.ru/ ~ fancy/start.html, WWW - серв