Сервер БД Oracle Database 10g
ЗАДАНИЕ ПО ДИПЛОМНОМУ ПРОЕКТУ СТУДЕНТА
Котова Сергея Викторовича 1. Тема проекта (работы) «Разработка системы дистанционного обучения кафедры ВТИТ» утверждена приказом по институту от «18» февраля 2008 г. № 273/18 2. Срок сдачи студентом законченного проекта (работы) 3. Исходные данные к проекту (работе) Структура предприятия; учебный план специальности «АСОИУ»; штатное расписание. 4. Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов) сущность дистанционного обучения; анализ предметной области; построение даталогической модели; установка и настройка контейнера приложений Apache-Tomcat 5.5.20 и сервера баз данных Oracle Database 10g; разработка форм и запросов приложения. 5. Перечень графического материала (с точным указанием обязательных чертежей) Инфологическая модель; даталогическая модель; трехзвенная архитектура построения приложения; экранные формы администрирования системы; экранные формы процесса обучения. 6. Консультанты по проекту (работе, с указанием относящихся к ним разделов проекта)
7. Дата выдачи задания Руководители проекта ________________________ Прохоров В.С. подпись ________________________ Силина И.В. подпись Задание принял к исполнению Котов С.В. подпись
КАЛЕНДАРНЫЙ ПЛАН
Студент дипломник ___________________________Котов С.В. подпись Руководители проекта ___________________________Прохоров В.С. подпись ___________________________ Силина И.В. подпись
Реферат
Пояснительная записка состоит из 91 стр., 32 рисунка, 10 источников, 10 приложений.
ДИСТАНЦИОННОЕ ОБУЧЕНИЕ, ТЕХНОЛОГИЯ JAVA, СУБД ORACLE DATABASE, ОС SUSE LINUX ENTERPRISE, КОНТЕЙНЕР APACHE-TOMCAT, ТРЕХЗВЕННАЯ АРХИТЕКТУРА, JDBC-ДРАЙВЕР, JSP, СЕРВЛЕТ, ТРИГГЕР, ПОСЛЕДОВАТЕЛЬНОСТЬ, ПЕРВИЧНЫЙ КЛЮЧ, ВНЕШНИЙ КЛЮЧ, ЗАПРОС.
В работе рассмотрены базовые принципы дистанционного обучения, двухзвенная и трехзвенная архитектура построения приложений, средства предоставляемые технологией Java для построения web-приложений, система управления базами данных Oracle Database. Объектом разработки является система дистанционного обучения кафедры ВТИТ, которая позволит сделать учебный процесс более гибким и обеспечит прохождение учебных курсов за пределами вуза. Цель работы – разработка системы дистанционного обучения кафедры ВТИТ, позволяющей хранить и управлять данными обо всех пользователях системы, разграничивать права между ними, создавать учебные курсы, организовывать учебный процесс на основании учебных планов, проводить тестирование и конечную аттестацию обучаемого. Разработанная система позволяет объединять студентов в группы, по соответствующим специальностям; предоставлять учебный план для каждой группы; работать с пользователями и структурными подразделениями, создавать электронные учебные курсы и тесты, организовать обучение и вести журналы успеваемости студентов.
Содержание
Введение 1 Теоретическая часть 1.1 Базовые принципы дистанционного обучения 1.2 Система управления базами данных Oracle 1.3 Технология Java 1.3.1 Связь с базами данных через JDBC 1.3.2 Сервлеты 1.3.3 Страницы JSP 1.4 Операционная система SUSE Linux Enterprise 10 1.5 Принципы построения клиент/серверных систем 1.5.1 Принципы построения СДО 1.5.2 Построение СДО на языке Java и СУБД Oracle Database 2 Проектная часть 2.1 Анализ предметной области 2.1.1 Модуль «Администрирование СДО» 2.1.2 Модуль «Учебные планы» 2.1.3 Модуль «Конструктор учебных курсов» 2.1.4 Модуль «Обучение» 2.2 Даталогическое проектирование 2.2.1 Создание схемы данных для СДО на сервере Oracle 2.2.2 Используемые типы данных 2.2.3 Создание таблиц и связей между ними 2.2.4 Создание последовательностей 2.2.5 Создание триггеров 2.3 Установка и настройка БАЗОВОГО программного комплекса 2.3.1 Контейнер Apache-Tomcat 5.5.20 2.3.2 Сервер БД Oracle Database 10g 2.4 Разработка приложения СДО 2.4.1 Разработка форм 2.4.2 Разработка классов 2.4.3 Разработка запросов 2.5 Руководство пользователя 2.5.1 Установка системы 2.5.2 Администрирование системы 2.5.3 Разработка учебных курсов 2.5.4 Процесс обучения 3 Технико-экономическое обоснование 3.1 Определение трудоемкости разработки приложения 3.2 Расчет затрат на разработку приложения 3.3 Определение возможной цены разработанной АИС 3.4 Экономическое обоснование выбора комплекса технических и программных средств 3.5 Описание экономического и социального эффекта от разработки АИС 4 Безопасность жизнедеятельности 4.1. Теоретическая часть 4.1.1. Пожароопасные и токсичные свойства веществ и материалов, применяемых при выполнении работы 4.1.2. Потенциальные опасности и вредности, которые могут возникнуть в процессе труда 4.1.3. Категорирование помещения 4.1.4 Санитарно-гигиеническая характеристика помещения 4.1.5 Условия безопасности при проведении экспериментальной части работы. Электробезопасность 4.1.6 Пожарная безопасность и средства пожаротушения 4.1.7. Мероприятия по защите окружающей среды 4.1.8. Гражданская оборона
4.2 Расчетная часть 4.2.1 Расчет искусственного освещения (теоретическое) 4.2.2. Расчет искусственного освещения (реальное). Заключение Список использованных источников Приложения Введение
С появлением персональных компьютеров и развитием сетевых технологий стало возможным дистанционное обучение. Оно позволяет независимо от времени суток и местоположения изучать новые дисциплины. Система дистанционного обучения (СДО) должна быть наибольшим образом приближена к реальным системам обучения. Процесс обучения состоит из двух частей: изучение теоретического материала и прохождения контроля знаний. Для представления теоретического материала используются возможности HTML (Hyper Text Markup Language) и современные мультимедиа-технологии. Для осуществления контроля знаний используется система тестирования. Во время обучения студент изучает теоретический материал. После прохождения определенного раздела, ему необходимо пройти контроль знаний. В случае успешного выполнения тестового задания, пользователь переходит к изучению следующего раздела. В случае неудачи дальнейшее обучение становится невозможным, до тех пор, пока не будет выполнен контрольный пункт на положительную отметку. СДО содержит несколько групп пользователей с различными правами. Существует необходимость создания групп, администрирующих систему на различных уровнях, и группы, непосредственно проходящие обучение. К задачам администрирования относятся: - создание/изменение/удаление структурных подразделений (факультетов, кафедр, специальностей); - управление пользователями; - разработка учебных курсов и тестов; - проверка тестов и выставление итоговых оценок. К задачам обучения относятся: - изучение теоретического материала; - прохождение контрольных пунктов; - поддержание обратной связи с преподавателями. В качестве дипломного проекта была разработана система дистанционного обучения кафедры ВТИТ. Во-первых, данный проект позволяет, как следует закрепить на практике полученные знания за время обучения в вузе. А, во-вторых, данная тема очень актуальна в современном мире и разработанный проект найдет практическое применение.
СДО реализована с помощью двух мощных, предоставляющих огромные возможности и хорошую безопасность средств – сервера БД Oracle Database 10g и технологии программирования Java. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 1.1 Базовые принципы дистанционного обучения
Задача дистанционного обучения — учить, не имея прямого постоянного контакта с обучаемым. Можно было бы взять старую схему заочного обучения и перевести ее на новые технические рельсы. Но сейчас к обучению предъявляются новые высокие требования, диктуемые взрывным ритмом жизни и революционными техническими возможностями. Можно сформулировать базовые принципы, на основе которых создаются системы дистанционного образования, являющиеся сегодня критерием удачных или неудачных решений. Во-первых, доступность обучения. При хроническом недостатке времени хорошей альтернативой очному и заочному образованию является дистанционное обучение. Причем процесс обучения должен начинаться когда угодно — когда есть время; длиться сколько угодно — сколько есть времени и сил; он может быть внезапно прекращен или прерван, например срочный телефонный звонок, и может быть продолжен с любого места. А сверху еще накладываются субъективные особенности обучаемых: начальные знания, специфика освоения материала и т. д. и т. п. Радикальный прорыв в этой области позволил осуществить известные результаты научно-технического прогресса: персональный компьютер и Интернет, а в ближайшей перспективе — мобильный Интернет и беспроводные локальные сети. Во-вторых, радикально новые формы представления и организации информации, обеспечивающие максимальную степень ее восприятия. Среди них можно выделить: - максимальное использование различных способов представления информации: текста, графики, видео, звукового сопровождения, анимации, т.е. то, что получило название "мультимедиа"; - нелинейную форму организации материала, при которой его единицы представлены не в линейной последовательности, а как система явно указанных возможных переходов, связей между ними, дающая возможность адекватного представления всей взаимосвязи ее различных аспектов. Такой подход позволяет в максимальной степени приблизить процесс передачи знаний к естественному общению и обеспечить адаптивность траектории обучения; - присутствие большого количества справочной информации, причем именно в дополнительной, сопровождающей форме, когда пользователь видит основной предмет изучения в окружении каких-либо других узлов, т. е. любой вопрос (тема, проблема, аспект, идея, документ) всегда оказывается связанным с другими вопросами. Пользователь может не учитывать эту информацию, но она ему предоставляется, причем именно как смежная, находящаяся в определенных связях с вопросом, непосредственно интересующим пользователя. В целом такая система заставляет учитывать, что интересующая его тема может иметь еще какие-то аспекты.
В настоящее время в мировой практике наиболее перспективным способом организации разнородной информации признана гипермедийная технология. Главными ее достоинствами являются, с одной стороны, ориентация на создание информационной среды, объективно отражающей практически любую предметную область, с другой — возможность адекватного представления всей взаимосвязи различных аспектов. Характерным примером ее использования является популярная World Wide Web — всемирная сеть, которую можно (в контексте задач обучения) рассматривать как интеллектуальную надстройку над информационным банком глобальной сети Интернет. В-третьих, достоверность сертификации знаний. Оценка знаний предельно усложняется. Обычно сдача зачетов и экзаменов осуществлялась при непосредственном контакте с преподавателем, то в системах дистанционного обучения при сертификации знаний очного контакта, как правило, нет. Соответственно и методики сертификации знаний существенно отличаются от используемых при очном обучении. Наиболее распространенными здесь являются методики, основанные на тестировании, которые используются в практике очного образования скорее как дополнительные. Здесь они — основные. И сразу же встает другая проблема — при отсутствии очного контакта нет гарантий того, что экзамены не сдал кто-то другой. Именно поэтому на некоторых сертификатах, выдаваемых профессиональными организациями, есть подпись главного психометриста. Таким образом, если к "дистанционным" сертификатам не будет доверия, как к сертификатам по очным формам обучения, то вся затея с дистанционным образованием теряет смысл, подрываются все экономические основы дистанционного обучения. Многие не верят, что создание полноценной системы дистанционного обучения возможно. Системы, которая логически была бы вплетена в экономику труда и капитала и обеспечивала бы цепочку: есть спрос на специалистов — находятся желающие занять вакансии — они дистанционно обучаются — они дистанционно сертифицируют свои знания — их принимают на работу в организации, которым требуются специалисты. По сути, дистанционное обучение с использованием информационных технологий можно охарактеризовать как форму заочного обучения, в которой недостаток очного общения преподавателя и студента компенсируется возможностью сделать это посредством телекоммуникаций. В развернутом описании дистанционное образование — комплекс образовательных услуг, предоставляемых с помощью специализированной информационной образовательной среды, базирующейся на средствах обмена учебной информацией на расстоянии (спутниковое телевидение, радио, компьютерные сети и т. п.). Это и есть информационно-образовательная среда, представляющая собой совокупность средств приема и передачи данных, информационных ресурсов, протоколов взаимодействия, аппаратно-программного и организационно-методического обеспечения, получаемая пользователем в виде дистанционного курса. Создание системы дистанционного обучения в учебном заведении предполагает целый комплекс работ, представляющих, по сути, кардинальную реорганизацию административной, методической и учебной деятельности. Такая работа требует: - предварительной разработки концептуальных основ создания центра дистанционного обучения, с учетом специфики деятельности конкретного учебного заведения, включая подготовку программы создания системы ДО, с учетом существующей концепции дистанционного образования в России, действующей нормативной базы и примеров эффективного функционирования систем дистанционного обучения, как на базе классических учебных заведений, так и в форме самостоятельных "сетевых" центров; - разработки кадровой структуры центра ДО, требований по техническому обеспечению, бизнес-плана создания такого центра и определения условий экономической целесообразности функционирования с учетом отраслевой специфики; - структуризации учебных курсов по модульному принципу, позволяющей гибко компоновать пакеты учебно-методических материалов по специальностям и специализациям учебного заведения в соответствии с различными уровнями базового обучения, повышения квалификации, профессиональной подготовки и дополнительного образования; - разработки комплексного плана подготовки учебно-методических материалов по специальностям и специализациям учебного заведения для использования в системе ДО; - обучения авторов учебных курсов использованию инструментальных систем создания учебных курсов для системы ДО; - подготовки и апробации учебно-методических материалов, включая электронные учебники и системы тестирования, для обучения, как преподавателей, так и студентов. Эффективное функционирование системы дистанционного обучения предполагает наличие в учебном заведении мощной телекоммуникационной базы, имеющей выход по "быстрым" каналам во всероссийскую и международную информационную среду. Если учебные курсы, функционирующие на основе технологии Web-CD, допускают невысокие технические характеристики компьютера конечного пользователя и средств связи, используя которые он подключается к учебному центру, то компьютерная и телекоммуникационная база самого учебного центра должна быть, без всяких сомнений, на высоте технических и эксплуатационных решений. Тем более что, как показывают расчеты, затраты на эти составляющие системы дистанционного обучения, равно как и на программное обеспечение, поддерживающее его функционирование, существенно ниже других необходимых расходов. Таким образом, создание системы дистанционного обучения, подготовка и организация работы центра дистанционного обучения в учебном заведении — комплексная проблема, в которой тесно переплетаются вопросы учебно-методического обеспечения, организации учебного процесса, эксплуатации компьютерной и телекоммуникационной систем, подготовки и повышения квалификации преподавательского состава и др.
1.2 Система управления базами данных Oracle
Пакет Oracle, наделен самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой. В нашей стране на протяжении уже многих лет целым рядом специалистов культивируется негативное отношение к СУБД Oracle, как к дорогой и сложной СУБД. Оба эти тезиса являются спорными. Во-первых, уровень сложности понятие относительное. При использовании СУБД Oracle на платформе NT, она потребует практически тех же усилий, что и при использовании MS SQL. В случае же работы на UNIX-платформе, можно с уверенностью отметить, что для профессиональных администраторов UNIX среда Oracle является простой, понятной и доступной. Что касается дороговизны, то и тут наметились положительные сдвиги. Кроме того, что компания Oracle предлагает ряд различных масштабируемых решений в зависимости от числа обслуживаемых клиентов, она также следуя общемировым тенденциям разработала версию своей популярнейшей СУБД под LINUX и выложила ее на своем WEB сервере (www.oracle.com) для свободного использования. А в настоящее время существует лицензия разработчика, которая позволяет писать под Oracle без каких-либо ограничений, но при этом запрещает его применение в условиях реальной работы. Среди основных свойств СУБД Oracle следует отметить такие, как: 1) Высочайшая надежность - возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами; 2) Наличие универсальных средств защиты информации; 3) Эффективные методы максимального повышения скорости обработки запросов; 4) Индексация по битовому отображению; 5) Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании); 6) Распараллеливание операций в запросе; 7) Наличие широкого спектра средств разработки, мониторинга и администрирования; 8) Ориентация на Интернет технологии. Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на Интернет технологии - основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность составлять на языке Java не только внутренние программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать компоненты Enterprise JavaBeans и даже запустить их на сервере). Компоненты Enterprise JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java [1]. Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами: - Очень развитые средства для обработки аудио клипов; - Неподвижных изображений; - Видеофрагментов; - Географических данных (с целым набором функций связанных с определением местонахождения входящих в состав модуля Locator). В Oracle реализуются лучшие на сегодняшний день средства для объектно-ориентированного конструирования баз данных, в том числе табличные структуры, допускающие наследование свойств и методов других табличных объектов БД, что позволят избежать ошибок при построении БД и облегчает их обслуживание. Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании Borland). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е. в Oracle отсутствуют блокировки на чтение). Эта функция позволяет СУБД Oracle выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности [2].
1.3 Технология Java
Сначала Java (официальная презентация состоялась 23 мая 1995 г.) предназначалась для программирования бытовых электронных устройств, таких как телефоны. Потом Java стала применяться для программирования браузеров — появились апплеты. Затем оказалось, что на Java можно создавать полноценные приложения. Их графические элементы стали оформлять в виде компонентов — появились JavaBeans, с которыми Java вошла в мир распределенных систем и промежуточного программного обеспечения, тесно связавшись с технологией CORBA. Остался один шаг до программирования серверов — этот шаг был сделан — появились сервлеты и EJB (Enterprise JavaBeans). Серверы должны взаимодействовать с базами данных — появились драйверы JDBC (Java DataBase Connection). Взаимодействие оказалось удачным, и многие системы управления базами данных и даже операционные системы включили, Java в свое ядро, например Oracle, Linux, MacOS X, AIX. Если найти не охваченную область и назвать ее, то через полгода Java уже вовсю будет применяется и там. Из-за этой размытости самого понятия его описывают таким же размытым словом — технология. Такое быстрое и широкое распространение технологии Java не в последнюю очередь связано с тем, что она использует новый, специально созданный язык программирования, который так и называется — язык Java. Этот язык создан на базе языков Smalltalk, Pascal, C++ и др., вобрав их лучшие, по мнению создателей, черты и отбросив худшие. На этот счет есть разные мнения, но бесспорно, что язык получился удобным для изучения, написанные на нем программы, легко читаются и отлаживаются: первую программу можно написать уже через час после начала изучения языка. Язык Java становится языком обучения объектно-ориентированному программированию, так же, как язык Pascal был языком обучения структурному программированию. Недаром на Java уже написано огромное количество программ, библиотек классов, а собственный апплет написал практически каждый программист [3]. Для полноты картины следует сказать, что создавать приложения для технологии Java можно не только на языке Java, уже появились и другие языки, есть даже компиляторы с языков Pascal и C++, но лучше все-таки использовать язык Java; на нем все аспекты технологии излагаются проще и удобнее. Возможно, яир язык Java будет использоваться для описания различных приемов объектно-ориентированного программирования так же, как для реализации алгоритмов применялся вначале язык Algol, а затем язык Pascal.
1.3.1 Связь с базами данных через JDBC Большинство информации хранится не в файлах, а в базах данных. Связь приложения с базой данных необходима для получения из нее информации или помещения информации в базу данных. Дело здесь осложняется тем, что СУБД (системы управления базами данных) сильно отличаются друг от друга и совершенно по-разному управляют базами данных. Каждая СУБД предоставляет свой набор функций для доступа к базам данных, и приходится для каждой СУБД писать свое приложение. Такое положение не устраивало многих разработчиков. И решение было найдено. Для связи приложения с базой данных был реализован интерфейс ODBC (Open Database Connectivity), разработанный фирмой Microsoft. Интерфейсы одинаковы для любой СУБД, они просто описывают набор действий с таблицами базы данных. В приложение, обращающееся к базе данных, записываются вызовы функций ODBC. Для каждой системы управления базами данных разрабатывается так называемый драйвер ODBC, реализующий эти функции для конкретной СУБД. Драйвер просматривает приложение, находит обращения к базе данных, передает их СУБД, получает от нее результаты и подставляет их в приложение. Фирма SUN подхватила эту идею и разработала набор интерфейсов и классов, названный JDBC, предназначенный для работы с базами данных. Эти интерфейсы и классы составили пакет java.sql, входящий в J2SDK Standard Edition, и его расширение javax.sql, входящее в J2SDK Enterprise Edition. Кроме классов с методами доступа к базам данных для каждой СУБД необходим драйвер JDBC — промежуточная программа, реализующая методы JDBC. Существуют четыре типа драйверов JDBC. 1. Драйвер, реализующий методы JDBC вызовами функций ODBC. Это так называемый мост (bridge) JDBC-ODBC. Непосредственную связь с базой при этом осуществляет драйвер ODBC. 2. Драйвер, реализующий методы JDBC вызовами функций API самой СУБД. 3. Драйвер, реализующий методы JDBC вызовами функций сетевого протокола, независимого от СУБД. Этот протокол должен быть, затем, реализован средствами СУБД. 4. Драйвер, реализующий методы JDBC вызовами функций сетевого протокола СУБД. Перед обращением к базе данных следует установить нужный драйвер. Методы связи описаны в интерфейсе connection. Экземпляр класса, реализующего этот интерфейс, можно получить одним из статических методов getConnection () класса DriverManager, например: String url = "jdbc:odbc:mydb"; String login = "habib"; String password = "lnF4vb"; Connection con = DriverManager.getConnection(url, login, password); Адрес базы данных url начинается со строки "jdbc:", потом записывается подпротокол (subprotocol), в данном примере используется мост JDBC-ODBC, поэтому записывается "odbc:". Далее указывается адрес (subname) по правилам подпротокола, здесь просто имя локальной базы "mydb". Второй и третий аргументы — это имя и пароль для соединения с базой данных. Если в вашей вычислительной системе установлен пакет javax.sql, то вместо класса DriverManager лучше использовать интерфейс DataSource. Связавшись с базой данных, можно посылать запросы. Запрос хранится в объекте, реализующем интерфейс Statement. Этот объект создается методом createStatement (), описанным в интерфейсе Сonnection, например: Statement st = con.createStatement(); Затем запрос (query) заносится в этот объект методом execute () и потом выполняется методом getResultSet(). В простых случаях это можно сделать одним методом executeQuery (), например: ResultSet rs = st.executeQuery("SELECT name, code FROM tbl1"); Здесь из таблицы tbl1 извлекается содержимое двух столбцов name и code и заносится в объект rs класса, реализующего интерфейс ResultSet. SQL-операторы INSERT, UPDATE, DELETE, CREATE TABLE и другие в простых случаях ВЫПОЛНЯЮТСЯ методом executeUpdate (). Остается методом next () перебрать элементы объекта rs — строки полученных столбцов — и извлечь данные многочисленными методами getxxx () интерфейса ResultSet, например: while (rs.next()){ emp[i] = rs.getString("name"); num[i] = rs.getlnt("code"); i++; } Методы интерфейса ResultsetMetaData позволяют узнать количество полученных столбцов, их имена и типы, название таблицы, имя ее владельца и прочие сведения о представленных в объекте rs сведениях [3]. Таким образом, JDBC позволяет проделать весь цикл работы с базой данных.
1.3.2 Сервлеты Первоначально перед HTTP-серверами стояла простая задача: найти и отправить клиенту файл, указанный в полученном от клиента запросе. Запрос составлялся тоже очень просто по правилам протокола HTTP в специально придуманной URL. Затем возникла необходимость выполнять на сервере процедуры. В запрос вставили вызов процедур, а на сервере реализовали технологию CGI (Сои Gateway Interface). Процедуру CGI можно написать на любом языке, лишь бы он воспринимал стандартный ввод и стандартный вывод. Неожиданную популярность получил язык Perl. Оказалось, что на нем удобно писать CGI-программы. Возникли специальные языки: PHP, ASP, серверный вариант JavaScript. Технология Java не могла пройти мимо такой насущной потребности и отозвалась на нее созданием сервлетов и языком JSP (JavaServer Pages). Сервлеты (servlets) выполняются под управлением Web-сервера подобно тому, как апплеты выполняются под управлением браузера, откуда и произошло их название. Для слежения за работой сервлетов и управления ими создается специальный программный модуль, называемый контейнером сервлетов (servlet container), "контейнер" в русском языке означает пассивную емкость стандартных размеров, но контейнер сервлетов активен, он загружает сервлеты, инициализирует их, передает запросы клиентов, принимает ответы. Сервлеты не могут работать без контейнера, как апплеты не могут работать без браузера. Жаргонное выражение "сервлетный движок", происходящее от английского "servlet engine", лучше выражает суть дела, чем выражение "контейнер сервлетов". Web-сервер, снабженный контейнером сервлетов и другими контейнерами, стал называться сервером приложений (application server, AS). Чтобы сервлет мог работать, он должен быть зарегистрирован в контейнере, по терминологии спецификации "Java Servlet Specification" установлен (deploy) в него. Установка (deployment) сервлета в контейнер включает получение уникального имени и определение начальных параметров сервлета, запись их в конфигурационные файлы создание каталогов для хранения всех файлов сервлета и другие операции. Процесс установки сильно зависит от контейнера. Одному контейнеру достаточно скопировать сервлет в определенный каталог, например, autodeploy/ или webapps/, и перезапустить контейнер, для другого надо воспользоваться утилитой установки, В стандартном контейнере J2EE SDK такая утилита называется deploytool. Один контейнер может управлять работой нескольких установленных в него сервлетов. При этом один контейнер способен в одно и то же время работать в нескольких виртуальных машинах Java, образуя распределенное Web-приложение. Сами же виртуальные машины Java могут работать на одном компьютере или на разных компьютерах [3]. Контейнеры сервлетов создаются как часть Web-сервера или как встраиваемый в него модуль. Большую популярность получили встраиваемые контейнеры Tomcat, разработанный сообществом Apache Software Foundition в рамках проекта Jakarta, Resin фирмы Caucho, JRun фирмы Macromedia. Точное распределение обязанностей между Web-сервером и контейнером сервлетов выпадает на долю их производителей.
1.3.3 Страницы JSP JavaServer Pages представляет собой расширение технологии сервлетов для упрощения доставки динамического Web-содержимого. Страницы JavaServer Pages дают возможность программистам Web-приложения создавать динамическое содержимое за счет многократного использования ранее определенных компонентов и за счет взаимодействия с компонентами путем написания сценариев, выполняющихся на стороне сервера. Программисты JavaServer Pages могут многократно использовать компоненты JavaBeans и создавать собственные библиотеки нестандартных тегов, которые инкапсулируют сложные динамические функциональные средства. Библиотеки нестандартных тегов также дают возможность дизайнерам Web-страниц, не знакомым с языком Java, усовершенствовать Web-страницы, добавляя средства динамического отображения содержимое и новые возможности по обработке. В JSP имеются четыре ключевых компонента: директивы, действия, скриптлеты и библиотеки тегов. Директивы представляют собой сообщения для контейнера JSP, которые дают возможность программисту задавать параметры страницы, включать содержимое из других ресурсов и задавать собственные библиотеки нестандартных тегов для использования их в JSP странице. Действия инкапсулируют функциональные возможности в предопределенных тегах, которые программисты могут встраивать в JSP -страницу. Действия часто выполняются на основе информации, посылаемой на сервер в составе запроса от определенного клиента. Действия также могут создавать объекты Java для использования их в скриптлетах JSP. Скриптлеты (scriptlets), или элементы сценария, дают возможность программистам вставлять код Java, который взаимодействует с компонентами JSP-страницы (и, возможно, с другими компонентами Web-приложения) для обработки запроса. Библиотеки тегов являются составной частью механизма расширения тегов, который дает возможность программистам создавать собственные теги. Такие теги позволяют программистам манипулировать содержимым JSP. Во многом страницы JavaServer Pages выглядят как стандартные XHTML- или XML-документы. В действительности JSP-странпцы обычно содержат разметку XHTML или XML. Такая разметка носит название данных с неизменной, структурой (fixed template data) или текста с неизменной структурой. Наличие данных с неизменной структурой часто помогают программисту принять решение, какую технологию следует использовать: сервлеты или JSP. Программисты предпочитают использовать JSP, если большая часть посылаемого клиенту содержимого представляет собой данные с неизменной структурой, а лишь небольшая часть содержимого генерируется динамически с помощью кода Java. Программисты используют сервлеты, если только небольшая часть содержимого, посылаемого клиенту, представляет собой данные с неизменной структурой. На самом деле некоторые сервлеты не генерируют какого-либо содержимого. Вместо этого они выполняют определенную задачу в интересах клиента, а затем вызывают другие сервлеты или JSP-страницы, чтобы выдать ответ. Заметим, что в большинстве случаев сервлеты и JSP являются взаимозаменяемыми. Подобно сервлетам, JSP-страницы обычно выполняются на Web-сервере. Когда сервер, способный поддерживать технологию JSP, принимает первый запрос на JSP-страницу, контейнер JSP транслирует эту JSP-страницу в сервлет Java, который обслуживает текущий запрос и все последующие запросы к этой JSP-странице. Если при компиляции нового сервлета возникают ошибки, эти ошибки приводят к ошибкам на этапе трансляции. Контейнер JSP на этане трансляции помещает операторы Java, которые реализуют ответ JSP-страницы, в метод _jspService. Если сервлет компилируется без ошибок, контейнер JSP вызывает метод _jspService для обработки запроса. JSP-страница может обработать запрос непосредственно или же вызвать другие компоненты Web-приложения, чтобы содействовать обработке запроса. Любые ошибки, которые имеют место в процессе обработки запроса, называются ошибки на этапе запроса. В целом механизм запрос/ответ и жизненный цикл для JSP-страниц и для сервлетов одинаков. JSP-страницы могут определять методы jspJnit к jepDestroy (схожие с методами init и destroy для сервлетов), которые вызываются, когда JSP-страница, соответственно, инициализируется и завершает свое действие. Программисты JSP-страниц могут определять эти методы с помощью объявлений JSP — составной части механизма создан
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|