Разработка системы дистанционного обучения кафедры ВТИТ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

НОВОМОСКОВСКИЙ ИНСТИТУТ (ФИЛИАЛ)

Государственного образовательного учреждения высшего профессионального образования «Российский химико-технологический университет имени Д.И. Менделеева»



Кафедра «Вычислительная техника и информационные технологии»

	

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К ДИПЛОМНОМУ ПРОЕКТУ

НА ТЕМУ:

«Разработка системы дистанционного обучения кафедры ВТИТ»



 Заведующий кафедрой				Воробьев В.И.

подпись, дата

 Руководитель					Прохоров В.С.

подпись, дата

Руководитель					Силина И.В.

подпись, дата

Н/контролер				Прохоров В.С.

подпись, дата

 Студент					 Котов С.В.

подпись, дата

 Группа						АС-03-3 

Консультанты:

По экономической части _______ Лобковская О.З.

 подпись

По безопасности жизнедеятельности ______Фандеев Н.П.

 подпись



Новомосковск 2008 г.


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

НОВОМОСКОВСКИЙ ИНСТИТУТ (ФИЛИАЛ)

Государственного образовательного учреждения высшего профессионального образования «Российский химико-технологический университет имени Д.И. Менделеева»



Факультет «Кибернетика»

Кафедра «Вычислительная техника и информационные технологии»

Специальность «Автоматизированные системы обработки информации и управления»

УТВЕРЖДАЮ

Зав. кафедрой

______________ /________/

«	»			20__г.



ЗАДАНИЕ

ПО ДИПЛОМНОМУ ПРОЕКТУ СТУДЕНТА



	Котова Сергея Викторовича

	1. Тема проекта (работы) «Разработка системы дистанционного обучения кафедры ВТИТ»

	утверждена приказом по институту от «18» февраля	 2008 г. №	273/18

2. Срок сдачи студентом законченного проекта (работы)			

3. Исходные данные к проекту (работе)	Структура предприятия; учебный план специальности «АСОИУ»; штатное расписание.

4. Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов) сущность дистанционного обучения; анализ предметной области; построение даталогической модели; установка и настройка контейнера приложений Apache-Tomcat 5.5.20 и сервера баз данных Oracle Database 10g; разработка форм и запросов приложения.

5. Перечень графического материала (с точным указанием обязательных чертежей) Инфологическая модель; даталогическая модель; трехзвенная архитектура построения приложения; экранные формы администрирования системы; экранные формы процесса обучения. 

6. Консультанты по проекту (работе, с указанием относящихся к ним разделов проекта)

Раздел

Консультант

Подпись, дата





Задание выдал

Задание принял

Экономическая часть

Лобковская О.З.





Безопасность жизнедеятельности

Фандеев Н.П.







7. Дата выдачи задания 					



Руководители проекта	 ________________________ Прохоров В.С.

подпись

________________________ Силина И.В.

подпись

Задание принял к исполнению					Котов С.В.

подпись




КАЛЕНДАРНЫЙ ПЛАН

	

№

п/п

Наименование этапов дипломного проекта (работы) 

Срок выполнения этапов проекта (работы)

1

Получение задания

18.02

2

Изучение предметной области

19.02-29.02

3

Изучение и выбор программного обеспечения

1.03-6.03

4

Поиск программных компонентов, их установка и настройка

7.03-17.03

5

Проектирование структуры БД

18.03-5.04

6

Разработка приложения

6.04-24.04

7

Отладка и тестирование системы

25.04-27.04

8

Расчет части БЖД

28.04-2.05

9

Расчет экономической части

3.05-4.05

10

Оформление пояснительной записки

5.05-14.05

11

Оформление графической части

15.05-20.05



Студент дипломник 	___________________________Котов С.В.

подпись

Руководители проекта	 ___________________________Прохоров В.С.

подпись

 ___________________________ Силина И.В.

подпись






Реферат



Пояснительная записка состоит из 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.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 — составной части механизма создания сценариев JSP [4].



1.4 Операционная система SUSE Linux Enterprise 10



SUSE Linux Enterprise 10 — это первая платформа для открытого предприятия. Только SUSE Linux Enterprise 10 обеспечивает встроенную защиту приложений, виртуализацию и интегрированные средства системного управления во всем спектре аппаратных архитектур. SUSE Linux Enterprise 10 сертифицирована ведущими производителями оборудования и программного обеспечения и сопровождается службой технической поддержки Novell и глобальной системой ее партнеров. Используя SUSE Linux Enterprise 10 и услуги Novell, организация сможет контролировать IT-расходы и в то же время решать проблемы усиливающейся конкуренции и растущих угроз для безопасности [5].

SUSE Linux Enterprise 10 содержит Novell AppArmor, революционную службу безопасности на уровне приложений, которая обеспечит непробиваемую защиту для операционной системы и любых исполняемых в ней процессов. Благодаря AppArmor возможно быстро внедрить мощные средства защиты серверных и настольных приложений, уменьшив нагрузку на IT-отдел и снизив общую стоимость владения. AppArmor помогает быстро разработать и соблюдать правила безопасности, защищающие вашу инфраструктуру от злоумышленников, которые выискивают и используют ошибки в программах. При помощи правил AppArmor можно, например, определить, какие системные ресурсы будут доступны приложению, или установить особые правила работы приложения. AppArmor предоставляет инструменты, позволяющие защитить критически важную инфраструктуру без гигантских затрат времени, ресурсов или обучения. 

SUSE Linux Enterprise 10 — это первая корпоративная платформа, которая содержит полностью интегрированную и поддерживаемую версию Xen 3.0, нового открытого стандарта для служб виртуализации. Xen 3.0 позволяет объединить множество задач на одном сервере или распределить одну задачу по нескольким серверам. Xen 3.0 обеспечивает гибкость конфигурирования приложений и систем, для того чтобы добиться максимальной эффективности. В то время как большинство серверов работает при загрузке менее 20%, Xen и SUSE Linux Enterprise 10 позволят повысить коэффициент полезного действия до 70%. 

SUSE Linux Enterprise предлагает новую парадигму управления программным обеспечением и подпиской, Novell Customer Center. Первая версия Novell Customer Center представляет собой централизованный онлайновый портал, который используется для получения обновлений и исправлений ПО, а также для доступа к технической поддержке Novell.

Особенно важно то, что Novell Customer Center полностью интегрирован с комплексом средств управления Novell ZENworks. По мере роста потребностей появляется возможность беспрепятственно перейти от управления отдельными системами к автоматическому управлению всей средой [5]. 

SUSE Linux Enterprise 10 сопровождается технической поддержкой Novell мирового класса. Novell — единственный поставщик, прошедший сертификацию Support Center Practice (SCP) по международно-признанному стандарту, который разработан Ассоциацией специалистов по обслуживанию и поддержке и консорциумом IT-компаний. Кроме того, в ежегодном отчете VARBusiness Annual Report Card корпорация Novell занимает первое место по уровню поддержки серверных операционных систем, главным образом благодаря тому, что служба технической поддержки Novell выполняет свои Соглашения об уровне обслуживания (SLA) более чем на 99%. 

SUSE Linux Enterprise поддерживается всеми ведущими поставщиками оборудования. Novell тесно сотрудничает с производителями микропроцессоров, такими как Intel и AMD, и поддерживает 32 и 64разрядные архитектуры, а также новейшие одно и двуядерные процессоры. SUSE Linux Enterprise полностью сертифицирована для новейших серверов, рабочих станций, настольных ПК и ноутбуков от Dell, Fujitsu, HP, Lenovo, Silicon Graphics, Sun, Unisys и других поставщиков. Столь тесное сотрудничество с ведущими производителями позволяет SUSE Linux Enterprise использовать все преимущества платформ, на которых она установлена, и обеспечивать вам максимально возможную производительность на всем пространстве сети, от рабочих станций до вычислительного центра.

Novell создает платформу SUSE Linux Enterprise при помощи AutoBuild, уникальной методологии разработки и тестирования от Novell. AutoBuild гарантирует, что все программное обеспечение Linux от Novell отвечает самым высоким техническим стандартам надежности и целостности. Используя AutoBuild, Novell может создавать и выпускать важные обновления к программному обеспечению за считанные часы, а не дни или недели. Кроме того, AutoBuild позволяет Novell разрабатывать SUSE Linux Enterprise для множества платформ одновременно. В результате появляется возможность сконфигурировать более эффективную IT-инфраструктуру, в которой одна и та же операционная система Linux эксплуатируется и администрируется на всех мейнфреймах, grid-системах, кластерах, рабочих станциях и настольных ПК. 

SUSE Linux Enterprise содержит полный комплект средств разработки (SDK), который помогает быстро адаптировать ПО к потребностям конкретного предприятия, а также разрабатывать широкий спектр приложений. Кроме того, SUSE Linux Enterprise 10 содержит новейшие стабильные версии ключевых инструментов разработки, служб и сред, включая инфраструктуру Web 2.0 с Apache Web Server 2.2.0, PHP 5.1, MySQL 5.0, PostgreSQL 8.1, Ruby, Geronimo и Apache Tomcat. Более того, SUSE Linux Enterprise — единственное решение, которое включает в себя платформу разработки open source Mono на базе среды .NET [5]. 

SUSE Linux Enterprise Server — это безопасная, надежная и гибкая серверная операционная система для корпоративных вычислений. Рассчитанная на интенсивно работающую организацию, она обеспечивает: 

производительность и масштабируемость;

- пониженные расходы на эксплуатацию приложений для вычислительного центра и серверов рабочих групп;

- повышенный коэффициент использования вычислительной техники;

- полную безопасность корпоративных данных;

поддержку широкого спектра аппаратных платформ и пакетов программного обеспечения. 

SUSE Linux Enterprise Server полностью поддерживается Novell в течение жизненного цикла и обеспечивает открытые инструменты программирования и разработки, упрощающие интеграцию и специализацию Linux. Эта платформа предлагает также мощную функциональность open source и средства виртуализации, помогающие предприятиям снизить эксплуатационные расходы, повысить коэффициент использования вычислительной техники и защитить корпоративные данные.



1.5 Принципы построения клиент/серверных систем



Для разработки клиент/серверных систем имеется два подхода:

- построение систем на основе двухзвенной архитектуры;

- построение систем на основе трехзвенной архитектуры.

Двухзвенная архитектура состоит из клиентской и серверной части. Как правило, серверная часть представляет собой сервер БД, на котором расположены общие данные. А клиентская часть представляет приложение, которое связывается с сервером БД, осуществляет к нему запросы и получает ответы. Такие системы используются в локальных сетях, т.к. нет затруднений с установкой клиентской части. Также системы с такой архитектурой более безопасны, т.к. могут использовать собственные протоколы передачи данных, не известные злоумышленникам. Поэтому многие крупные компании, которые располагаются не в едином месте и для соединения подразделений используют глобальную сеть Интернет, выбирают именно такую архитектуру построения клиент/серверных систем.

При разработке информационных систем, рассчитанных на широкую аудиторию, возникают проблемы с использованием двухзвенной архитектуры. Во-первых, пользователю необходимо иметь в наличии клиентскую часть, а, во-вторых, у неопытного пользователя, могут возникнуть проблемы с конфигурированием такой системы. Поэтому в последнее время, более часто разрабатывают приложения на базе трехзвенной архитектуры.

Трезвенная архитектура также состоит из двух частей: клиента и сервера. Но серверная часть в этой архитектуре представляет собой сервер приложений и сервер БД. А в качестве клиента выступает web-браузер. Такая система очень проста для пользователя. Ему необходимо знать только адрес сервера приложения и наличие web-браузера на рабочем компьютере. Все данные представляются в виде html-разметки, с использование графики (jpeg, gif, flash) и JavaScript. Передача запросов от клиента к серверу приложений происходит по средствам CGI-интерфейса. Сервер приложений общается с сервером БД, используя другой интерфейс, зависящий от того, на основе каких средств строится конкретная информационная система. Недостатками такой архитектуры является использование общеизвестных протоколов и интерфейсов передачи данных. Злоумышленник может осуществить взлом системы, если она будет не достаточно хорошо проверять поступившие запросы от клиента.

При разработке клиент/серверных приложений необходимо учитывать:

- на каких пользователей будет рассчитана данная информационная система;

- какие требования предъявляются к безопасности.

Если информационная система должна быть общедоступной и рассчитана на широкую аудиторию, то необходимо использовать трехзвенную архитектуру.

Если информационная система используется внутри предприятия, доступ имеют к ней ограниченные пользователи и требуется создать максимально безопасную и защищенную систему, то следует отдать предпочтение двухзвенной архитектуре.



1.5.1 Принципы построения СДО

Данная попытка создания системы дистанционного обучения не является первой. Ранее СДО разрабатывались как с использованием двухзвенной архитектуры, так и трехзвенной. 

СДО на основе двухзвенной архитектуры реализовывалась с использованием Borland Delphi для разработки клиентской части, а в качестве сервера выступал сервер БД Borland InterBase Server. Такую систему удобно применять, если занятия проводятся в аудиториях самого вуза, и нет нужды запускать ее из других мест.

СДО на основе трехзвенной архитектуры реализовывалась на языке PHP и сервере БД MySQL. Но та система была разработана еще на старом PHP, в котором отсутствовала поддержка основных принципов объектно-ориентированного программирования (ООП), следовательно, и система не являлась объектно-ориентированной, что в настоящее время затрудняет ее перестройку и доработку. К тому же, язык PHP разрабатывался любителями и заточен на разработку web-приложений, в нем отсутствует реализация стандартных паттернов программирования, что существенно снижает его возможности при разработке больших информационных систем.



1.5.2 Построение СДО на языке Java и СУБД Oracle Database

Т.к. СДО рассчитана на студентов, которые могут быть расположены в различных местах и не всегда имеют возможность установки и настройки клиентской части, то решено СДО построить на основе трехзвенной архитектуры.

Язык Java изначально разрабатывался как объектно-ориентированный язык, следовательно, он поддерживает основные принципы ООП. Системы, построенные на принципах ООП легко расширяемые и изменяемые. Технология Java имеет все необходимые инструменты как для построения web-приложений (сервлеты, JSP), так и для построения оконных приложений.

Технология Java является кроссплатформенной, что позволяет применять программные продукты, написанные под эту технологию независимо от операционной системы.

СУБД Oracle была выбрана не случайно. Эта система поддерживает все теоретические аспекты построения баз данных. Она не накладывает никаких ограничений на разработку БД.

В СУБД Oracle имеется мощный оптимизатор SQL-запросов, что существенно ускоряет обработку данных.

Самое главное, что СУБД Oracle очень надежна и «обрушение» грамотно настроенного сервера практически невозможно.

На рисунке 1.2.2.1 представлена схема, реализующая трехзвенную архитектуру, построенная на основе сервера приложений Apache-Tomcat 5.5.20 и сервера Oracle Database 10g.



Рисунок 1.2.2.1 - Реализация трехзвенной архитектуры

при построении СДО



Взаимодействие этих трех частей происходит следующим образом: пользователь, загружает некую страницу в web-браузер и совершает определенное действие. Web-браузер формирует запрос и отправляет его серверу приложений Apache-Tomcat. Последний в свою очередь обрабатывает запрос, выполняя соответствующий сервлет. Во время выполнения сервлета появляется необходимость взаимодействия с БД. Тогда сервлет, используя jdbc-интерфейс соединяется с сервером БД Oracle и передает ему некоторый запрос. Сервер БД выполнив этот запрос возвращает серверу приложений некоторые данные. Сервер приложений на основе полученных данных формирует html страницу, которую возвращает web-браузеру. Описанная схема представлена в Приложении А.


2 ПРОЕКТНАЯ ЧАСТЬ



2.1 Анализ предметной области



2.1.1 Модуль «Администрирование СДО»

Для разработки системы дистанционного обучения необходимо за основу предметной области взять ВУЗ. При разработке модуля администрирования следует рассматривать организацию пользователей в системе.

Всех пользователей системы можно разделить на три большие группы: 

- студенты – проходят обучение в данной системе;

- преподаватели – создают учебные курсы, проверяют присланные работы, выставляют отметки в зачетные книжки;

- обслуживающий персонал – заполнение основных справочников, введение новых пользователей в систему и удаление тех пользователей, которые прекратили участие в учебном процессе.

Обслуживающий персонал можно разделить на более мелкие группы, в зависимости от роли:

- администратор – самый главные пользователь системы, ему доступны все функции реализованные в СДО. Администратор должен создать других пользователей обслуживающего персонала (секретарей факультетов), чтобы система начала свое нормальное функционирование, а так же заполнить справочники факультетов и специальностей.

- секретарь факультета – создает группы студентов, самих студентов и секретарей кафедр для факультета, на который назначили его секретарем. Так же добавляет кафедры, подчиненные данному факультету, в справочник кафедр и создает специальности, которые подготавливает данный факультет.

- секретарь кафедры – отвечает за добавление в систему преподавателей, работающих на данной кафедре и ведение учебных планов.

Сотрудники и студенты обладают как общими свойствами, так и характерными только для конкретной сущности. 

Общими для всех пользователей будут такие свойства, как логин, пароль, фамилия, имя, отчество, дата рождения, адрес электронной почты и примечание.

Характерными свойствами только для студента являются номер зачетной книжки и название группы, в которой он обучается.

Характерными свойствами только для сотрудника являются табельный номер, должность, ученая степень и подразделение в котором он работает.

Определившись с пользователями, необходимо рассмотреть структуру подразделений, к которым эти пользователи будут относиться.

На рисунке 2.1.1.1 представлена инфорлогическая модель модуля «Администрирование СДО».



Рисунок 2.1.1.1 – Инфологическая схема модуля «Администрирование СДО»



Любое высшее учебное заведение подготавливает студентов по определенным специальностям. Каждая специальность может подготавливаться несколькими факультетами, например, специальность 220200 «АСОИУ» подготавливается как факультетом Кибернетика, так и Заочным факультетом. У каждой специальности есть выпускающая кафедра. 

Студенты объединяются в группы. Группы, обучаются по определенным специальностям и закреплены за конкретными факультетами.

В большинстве случаев кафедры закреплены за определенными факультетами.

Сотрудники могут относиться как к кафедре, так и к факультету. Если сотрудник принадлежит кафедре, то в его свойствах указывается название кафедры, к которой он принадлежит. Если же сотрудник принадлежит факультету (например, декан или секретарь факультета), то связь его с факультетом осуществляется, путем указания названия факультета, при этом название кафедры для такого сотрудника не указывается. 



2.1.2 Модуль «Учебные планы»

В учебных заведениях, обучение студентов происходит по учебному плану. Поэтому и в СДО обучение проводится по учебному плану. Один учебный план может использоваться для нескольких групп студентов. Рисунок 2.1.2.1 отображает инфологическую модель модуля «Учебные планы».




Рисунок 2.1.2.1 – Инфологическая модель модуля «Учебные планы»

Учебный план состоит из учебных курсов, разделенных по семестрам. Учебный курс состоит из названия дисциплины, формы контроля, учебного цикла, количества часов. Так же к учебному курсу прикрепляется электронный учебник, по которому проходят обучение студенты.

За каждым учебным курсом может быть закреплен один или несколько преподавателей, которые будут при необходимости осуществлять проверку тестов и выставлять итоговые отметки студентам, а также проводить консультации студентов.



2.1.3 Модуль «Конструктор учебных курсов»

Учебный курс является наиболее важным компонентом СДО. Т.к. именно от того, как организован учебный курс, будет зависеть качество обучения. Поэтому преподавателям необходимо предоставить удобный конструктор учебного курса.

В данной ситуации под учебным курсом понимается электронный учебник, разрабатываемый авторами и хранящийся на сервере.

На один учебный курс может быть назначено несколько авторов. Учебный курс обладает названием и может быть опубликован или скрыт от пользователей. Работать с конструктором учебного курса могут только назначенные авторы.

Учебный курс состоит из разделов, представляющих теоретический материал и разделов, представляющих тестовые задания, для проверки усвоенных знаний.

Теоретический материал может быть представлен в текстовом виде, при помощи рисунков, анимации, flash и видео роликов. Так же могут быть прикреплены дополнительные файлы различных форматов.

К любому разделу учебного курса можно добавить тесты, для контроля усвоения учебного материала.

В системе дистанционного обучения имеется три вида тестов:

- обязательный;

- дополнительный;

- тренировочный.

Первый вид теста предполагает обязательность выполнения и при выставлении итоговой отметки студенту, преподаватель учитывает количество выполненных обязательных тестов.

Дополнительный тест составляется из более сложных вопросов, его выполнение не обязательно. Предполагается, что преподаватель будет учитывать результаты данных тестов и выставит более высокую итоговую отметку.

Обязательный и дополнительный тест не могут быть пересданы обучаемым, пока преподаватель не аннулирует результат тестирования.

Тренировочный тест предполагает самоконтроль обучаемого. Данный вид теста может пересдаваться многократно, пока обучаемый не получит желаемую им отметку, но результаты данного теста имеют минимальное влияние при выставлении итоговой отметки или вообще его не имеют.

Вопросы добавляются при помощи конструктора, в котором указываются тип вопроса, сложность и сам вопрос.

На рисунке 2.1.3.1 показана инфологическая модель модуля «Конструктор учебных курсов».





Рисунок 2.1.3.1 – Инфологическая модель модуля «Конструктор учебных курсов»



2.1.4 Модуль «Обучение»

Студент, идентифицировавшись в системе, получает доступ к учебному плану и имеет возможность изучать учебные курсы. В процессе обучения студенты выполняют тестовые задания. Результаты тестовых заданий заносятся в журнал.

Журнал необходим для получения информации об обучении студентов и их успеваемости. Преподаватели при помощи журнала, могут осуществить проверку тестов, аннулировать результаты тестирования и выставить итоговую оценку студенту.

Журнал представляет собой список групп студентов, которые доступны для данного пользователя. Выбрав группу, пользователь получает доступ к списку предметов, далее к списку группы и, выбрав студента, становится доступной информация о пройденных тестах студентом по данному предмету.

При удалении студента из базы данных, сведения о студенте из журналов удаляются.

На рисунке 2.1.4.1 представлена инфологическая модель модуля «Обучение»



Рисунок 2.1.4.1 – Инфологическая модель модуля «Обучение»



Полная схема инфологической модели СДО приведена в Приложении Б.



2.2 Даталогическое проектирование



2.2.1 Создание схемы данных для СДО на сервере Oracle

В одной базе данных Oracle можно хранить множество разных наборов информации - множество схем. Схема - это набор объектов базы данных (таблиц, представлений, моментальных копий или снимков, индексов, последовательностей, синонимов, процедур, функций, пакетов и триггеров). Понятие схемы - это небольшая поправка к СУБД Oracle, введенная с седьмой версии. Ранее все объекты принадлежали создавшему их пользователю. По умолчанию схема аналогична подключенному в настоящее время пользователю.

Администратор базы данных (АБД) Oracle создает новую пустую схему, задавая ее имя и пароль. Для СДО на сервере в базе данных orcl создана схема sdo с паролем sdo.

Для создания новой схемы необходимо выполнить следующую команду:

CREATE USER SDO IDENTIFIED BY SDO DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS

Затем для созданного пользователя необходимо назначить права. Права задаются при помощи команды GRANT. Следующая команда задает право на создание таблиц:

GRANT CREATE TABLE TO SDO

Все команды выполняются в программе sqlplus, которая реализована как в консольном варианте, так и в виде web-интерфейса, показанного на рисунке 2.2.1.1. Каждая команда должна заканчиваться либо обратным слешем («/») , либо точкой с запятой («;»).





Рисунок 2.2.1.1 - Использование SQL*Plus через web-интерфейс



Полный код создания пользователя и назначение ему прав приведен в Приложении В. 

При выполнении кода создающего схему данных необходимо осуществить вход в эту схему, следующей командой: 

CONNECT SDO/SDO;


2.2.2 Используемые типы данных

Все типы данных, перечисленные в стандарте ANSI SQL92, полностью поддерживаются в Oracle. Но так же и имеются типы, которые характерны только для СУБД Oracle.

На данной стадии реализации приложения необходимо использовать три типа данных: строка, целое число и дата.

Для хранения строк переменной длины используется тип VARCHAR. При использовании данного типа резервируется реально необходимое пространство. Длина строки указывается в скобочках, за названием типа. Если длина строки не указана явно, то она полагается равной 1. Максимальное значение – 4000 символов.

Существует тип VARCHAR2, который используется только для Oracle. Основная причина введения этого типа состоит в том, что фирма-производитель декларирует неизменность этого типа в более поздних реализациях Oracle, в то время как тип VARCHAR будет соответствовать требованиям стандарта SQL.

Пример, описания строкового поля переменной длины, ограниченной 1000 символами:

varstr1 VARCHAR2(1000)

Типом VARCHAR2 будут описываться логин, ФИО, пароль, названия факультетов, специальностей, кафедр и т.п.

Тип INTEGER используется для представления целых чисел в диапазоне от -231 до 231. 

Пример, описания целочисленного поля:

varint1 INTEGER

Данный тип будет использоваться для описания номера зачетной книжки, табельного номера, кода специальности, уникального кода кафедры, факультета, ученой степени, должности и роли.

Тип DATE используется для хранения даты и времени. Допускаются даты с 1 января 4712 г. до н.э. до 31 декабря 4712 г. н.э. Для формирования значения типа DATE в SQL и PL/SQL обычно используется встроенная функция ТО_DАТЕ('символьная строка даты', 'формат даты'). При определении даты без уточнения времени по умолчанию принимается время полуночи. Функция SYSDATE возвращает текущее значение даты и времени. Значение функции определяется средствами операционной системы компьютера, на котором работает сервер Oracle.

Пример, описания поля с типом дата:

birthday DATE

Наличие специального типа для хранения даты и времени позволяет поддерживать специальную арифметику дат и времен. Добавление к переменной типа DATE целого числа интерпретируется Oracle как определение более поздней даты, а вычитание выполняется как определение более ранней [6]. 

Типом DATE будет описываться поле «дата рождения».



2.2.3 Создание таблиц и связей между ними

Для создания таблиц существует оператор CREATE TABLE. Рассмотрим создание таблицы на примере:

CREATE TABLE Faculty (

 facultyID INTEGER NOT NULL,

 facultyName VARCHAR2(200) NOT NULL,

 facultyShortName VARCHAR2(20) NULL

);

После ключевых слов CREATE TABLE указывается название создаваемой таблицы, а затем в скобочках перечисляются через запятую поля таблицы. Для каждого поля указывается тип данных и показывается возможность поля быть пустым или нет.

Для задания первичного ключа таблицы необходимо внести в нее изменения:

ALTER TABLE Faculty ADD ( PRIMARY KEY (facultyID));

Выше представленная команда говорит о том, что необходимо изменить таблицу Faculty, добавив в нее первичный ключ, в качестве которого выступает поле facultyID.

Для создания связей между таблицами используются внешние ключи. Рассмотрим пример задания внешнего ключа для таблицы «Кафедры»:

ALTER TABLE Chair ADD (FOREIGN KEY (facultyID)

 REFERENCES Faculty ON DELETE SET NULL);

Приведенная команда указывает, что необходимо изменить таблицу Chair, установив в качестве первичного ключа поле facultyID, которое связано с таблицей Faculty. В случае удаления факультета полю facultyID установить значение NULL.

Исходный код генерации таблиц, первичных ключей и внешних ключей приведен в Приложении Г.



2.2.4 Создание последовательностей

В Oracle отсутствует поддержка автоинкрементных полей. Но существует возможность создания последовательностей, значения которых будут уникальны. Для каждой таблицы, нуждающейся в получении уникального кода, где его не требуется указать явно (например, номер зачетной книжки или код специальности указывается явно при заполнении) создаются такие последовательности.

Пример создания последовательности:

CREATE SEQUENCE 	faculty_seq 

- создать последовательность 	 	faculty_seq

 INCREMENT BY 1 

- значения увеличивать на 1

 START WITH 1 

- начальное значение 1

 NOMAXVALUE

- отсутствует максимальное 	 	значение

 MINVALUE 1

- минимальное значение равно 1

 ORDER

- упорядочивать значения

;



Код генерации всех последовательностей приведен в Приложении Г.


2.2.5 Создание триггеров

Последовательность генерирует значение только тогда, когда ее об этом попросят. Поэтому при вставке новых значений в таблицу необходимо извлечь из последовательности уникальный номер и подставить в таблицу в качестве кода записи. Это возможно реализовать, создав для таблиц триггеры.

Пример триггера:

create or replace trigger faculty_insert_trig

 BEFORE INSERT on Faculty

 for each row

begin

SELECT faculty_seq.nextval INTO :new.facultyID from dual;

end;

Данный код говорит о необходимости создать или заменить триггер faculty_insert_trig, который перед вставкой каждой новой записи в таблицу Faculty будет извлекать значение из последовательности faculty_seq методом nextval и добавлять в новую запись в поле facultyID.

Код генерации всех триггеров приведен в Приложении Г. Полная даталогическая схема СДО показана в Приложении Д.



2.3 Установка и настройка БАЗОВОГО программного комплекса



В системе Linux имеется пользователь «sk», который устанавливает Oracle Database 10g и Apache-Tomcat 5.5.20, а также являться владельцем этих приложений. Чтобы создать нового пользователя, необходимо запустить приложение YaST. Выбирается раздел управление пользователями и создается новый пользователь (рисунок 2.3.1).



Рисунок 2.3.1 – Создание нового пользователя



Далее на закладке «Описание», указывается домашняя директория пользователя, основная группа, к которой он относится, и дополнительные группы. После применения параметров, можно пользоваться новой учетной записью.

Создание новых пользователей необходимо для безопасности системы, т.к. если осуществлять все установки и настройки программного обеспечения от пользователя root, то нет уверенности в том, что система не будет разрушена, в результате неправильных действий пользователя или некачественных программ.



2.3.1 Контейнер Apache-Tomcat 5.5.20 

Установка и настройка контейнера Apache-Tomcat не представляет затруднений. Предварительно устанавливается JDK в директорию /usr/local/jdk1.6.0. Установка производится обычным копированием файлов. Далее описываются переменные окружения в файле /etc/profile:

### Java+Tomcat ###

export JAVA_HOME="/usr/local/jdk1.6.0"

export CATALINA_HOME="/usr/local/apache-tomcat-5.5.20"

export PATH=$PATH:$JAVA_HOME/bin

После производится копирование файлов Apache-Tomcat в директорию /usr/local/apache-tomcat-5.5.20/. Задаются права владения директорией JDK и Apache-Tomcat для пользователя sk:

chown –R sk /usr/local/jdk1.6.0/

chmod 774 / usr/local/jdk1.6.0/

chown –R sk /usr/local/apache-tomcat-5.5.20/

chmod 774 /usr/local/apache-tomcat-5.5.20/

Создается скрипт запуска Apache-Tomcat в /etc/rc.d/tomcat, содержимое которого приведено в Приложении Е.

Для запуска Apache-Tomcat в командной строке набирается: /etc/rc.d/tomcat start.

После старта открывается браузер и набирается «http://localhost:8080», тем самым загружая web-интерфейс для управления Apache-Tomcat (рисунок 2.3.1.1).



Рисунок 2.3.1.1 - Web-интерфейс для управления Apache-Tomcat

Все приложения написанные для Apache-Tomcat будут располагаться в каталоге /usr/local/apache-tomcat-5.5.20/webapps/.

Для СДО создается отдельный каталог /usr/local/apache-tomcat-5.5.20/webapps/sdo/.


2.3.2 Сервер БД Oracle Database 10g



Инсталлятор Oracle располагается в директории /shared/Oracle10g/. Установка проводится в директорию /u01/app/. Перед запуском инсталлятора необходимо владельцем этой директории сделать пользователя sk:

chmod –R 777 /shared/Oracle10g/

chown –R sk /u01

chmod –R 775 /u01

Т.к. ОС SuSe Linux Server Edition 10 не поддерживается Oracle, а поддерживается только 9-ая версия, при запуске инсталлятора нужно указать, чтобы игнорировалась версия ОС.

./runInstaller –ignoreSysPrereqs

Сразу же появляется сообщение о том, что недостаточно прав для работы с директорией /opt/oracle/, поэтому меняется владелец данной директории, тем самым получив к ней полный доступ.

chown –R sk.wheel /opt/oracle

В процессе инсталляции необходимо добавить русский язык в список выбранных (рисунок 2.3.2.1).

Затем, указывается директория, в которую будет проинсталлирован Oracle (рисунок 2.3.2.2).

В качестве кодировки БД выбирается Юникод – UTF8. Глобальное имя БД остается по умолчанию – orcl.




Рисунок 2.3.2.1 - Выбор языков для БД





Рисунок 2.3.2.2 - Выбор директории для установки сервера



Далее указывается директория для хранения файлов БД (рисунок 2.3.2.3).




Рисунок 2.3.2.3 - Выбор директории для файлов БД



Затем вводится пароль для всех системных пользователей (рисунок 2.3.2.4).



Рисунок 2.3.2.4 - Задание паролей для системных пользователей



После этого начинается копирование файлов системы. Перед окончанием установки потребуется запустить два скрипта от пользователя root, которые задают параметры для Oracle.

После установки система готова к использованию, но если перегрузить компьютер, то Oracle надо будет запускать заново. Поэтому необходимо сконфигурировать ОС на запуск Oracle.

Открывается /etc/oratab и изменяется последняя строка с N на Y, чтобы инстанция (в данном случае - orcl) запускалась вместе с сервером [7].

Необходимо описать переменные среды в /etc/profile:

### Oracle 10g ###

export ORACLE_HOME="/u01/app/oracle"

export ORACLE_SID=orcl

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

export PATH=$PATH:$ORACLE_HOME/bin

Файл /etc/rc.d/oracle стартует, перезагружает и останавливает сервер. Содержимое данного файла описано в Приложении Ж. Чтобы запустить Oracle в консоли вводится /etc/rc.d./oracle start.

Система должна запуститься. Обратившись по адресу http://localhost:1158/em в браузере загрузится Oracle Enterprise Manager. А если обратиться по адресу http://localhost:5560/isqlplus, то загрузится web-интерфейс для работы с PL/SQL.



2.4 Разработка приложения СДО



Разработка СДО ведется с использованием объектно-ориентированного подхода. Следовательно, приложение представляет собой набор объектов взаимодействующих между собой. Поэтому при разработке приложения необходимо как можно правильнее разделить выполняемые задачи между объектами. 

СДО строится по схеме Модель-Вид-Контроллер (MVC, Model-View-Controller). Модель представляет систему, вид отвечает за отображение модели, а контроллер обрабатывает данные, поступающие от пользователя.

В качестве вида выступает страница JSP, отображающие данные для пользователя и позволяющие вводить новые данные. После введения новых данных управление передается контроллеру, который проверяет правильность введенных данных. Роль контроллера выполняет сервлет. После проверки введенных данных, инициализируется модель. В данной системе каждой таблице базы данных, соответствует два класса модели: все свойства первого класса, соответствуют полям таблицы, а второй класс – отвечает за непосредственное взаимодействие с таблицей. Таким образом, проверенные контроллером данные, присваиваются объекту, который соответствует таблице БД. Этот объект сохраняется в таблице объектом, который отвечает за взаимодействие с этой таблицей. После того как модель обновилась, необходимо пользователю отобразить изменения, для этого делается выборка из БД и вид отображает внесенные изменения [8].

Одной из проблем, с которой пришлось столкнуться при разработке приложения - была проблема кодировки представления данных кириллицей из БД. Попытка устранения данной проблемы производилась на сервере БД Oracle, путем многочисленных перестановок с различными кодировками и попытками задать в переменных среды кодировку. Но все это было безуспешно. Однажды, была осуществлена попытка ввода данных через SQL*Plus по средствам web-интерфейса, а не через консоль, как это делалось ранее. После выборки, было обнаружено, что введенные данные нормально выводятся, используя все буквы кириллицы. Т.е. ошибка возникает во время ввода данных и явно, что сервер БД здесь не причем.

В конечном счете, выяснилось, что когда данные забираются из формы, они преобразуются в неизвестную кодировку. Поэтому при получении скриптом данных из формы их следует явно преобразовывать к нужной кодировке. Т.к. в разрабатываемой системе используется кодировка UTF-8, то преобразование кодировки производится следующим методом [9]:

request.setCharacterEncoding(“UTF-8”) 



2.4.1 Разработка форм

Вся информация, хранящаяся в БД, должна быть отображена на экране, т.е. для этого необходимо создавать специальные формы ввода, изменения и удаления данных. Т.к. общение со стороны клиента происходит через web-браузер, то наиболее удобным средством для создания и обработке на стороне клиента форм является JavaScript.

В качестве примера ниже приведен код формы ввода факультета:

<form name="form1" method="post" action="FacultyAdd">

<table width="200" border="0">

<tr>

<td>Название факультета:</td>

<td><input type="text" name="facultyName"></td>

</tr>

<tr>

<td>Сокращенное название факультета:</td>

<td><input type="text" name="facultyShortName"></td>

</tr>

<tr>

<td> <div align="center"> <input type="submit" name="Submit" value="Добавить"> </div> </td>

<td><input type="reset" name="Submit3" value="Очитстить"></td>

</tr>

</table>

</form>

В данном примере элементы формы выводятся в ячейки таблицы для ровного представления на странице. Рассмотрим, элементы формы:

<form name="form1" method="post" action="FacultyAdd"> - тэг, описывающий форму, параметр method определяет каким методом будут передаваться данные сервлету: post или get; параметр action определяет, какому сервлету передавать параметры из формы на обработку. 

<input type="text" name="facultyName> - однострочный редактор, позволяется осуществить ввод текстовых данных.

<input type="submit" name="Submit" value="Добавить"> - кнопка, отправляющая данные из элементов ввода сервлету, указанному в параметре action формы. 

<input type="reset" name="Submit3" value="Очистить"> - кнопка, сбрасывающая все параметры формы.

На рисунках 2.4.1.1 и 2.4.1.2 приведены формы ввода и изменения/удаления данных.



Рисунок 2.4.1.1 - Форма добавления/удаления факультета





Рисунок 2.4.1.2 - Форма изменения/удаления факультетов

Исходный код формы, приведен в Приложении И.


2.4.2 Разработка классов

В разд. 2.4 была описана схема взаимодействия классов в приложении. Ниже рассматривается, непосредственная разработка классов.

Для работы с таблицей факультетов (Faculty), создается специальный класс Faculty. Описание класса осуществляется следующей конструкцией:

public class Faculty

Данный класс содержит свойства, соответствующие всем полям таблицы Faculty, т.е. facultyID, facultyName, facultyShortName. Описание этих свойств, производится следующим образом:

private int facultyID;

private String facultyName;

private String facultyShortName;

По правилам объектно-ориентированного программирования, не следует разрешать прямой доступ к полям класса, т.е. описывать их ключевым словом public. Осуществлять этот доступ следует при помощи специальных методов, которые будут устанавливать, и извлекать значения свойств класса.

Для извлечения значения свойства facultyID, используется следующий метод:

public int getFacultyID() {

 return facultyID;

}

Для изменения и задания свойства facultyID, используется метод setFacultyID:

public void setFacultyID(int facultyID) {

 this.facultyID = facultyID;

}

Во время создания объекта выполняется особый метод, называемый конструктором. Конструкторы бывают пустыми, т.е. в их задачу входит выделение адресного пространства для создающегося объекта, а бывают конструкторы с параметрами, которые помимо выделения адресного пространства, задают значения свойств объекта. Конструктор с параметрами выглядит следующим образом:

public Faculty(int facultyID, String facultyName, String facultyShortName) {

 this.facultyID=facultyID;

 this.facultyName=facultyName;

 this.facultyShortName=facultyShortName;

}

Создав класс, который будет содержать значения записи из таблицы, необходимо создать класс, который при помощи запросов будет извлекать данные из таблицы и записывать их в нее.

Исходный код класса Faculty приведен в Приложении И.



2.4.3 Разработка запросов

Для работы с таблицей БД в приложении разрабатывается отдельный класс. В этом классе описываются в качестве полей все запросы, выполняемые к данной таблице БД. Сервлет, вызвав методы этого класса, осуществляет ввод, изменение и редактирование данных в БД.

Существует две разновидности запросов: возвращающие набор данных и изменяющие набор данных. Запросы, которые возвращают набор данных, их еще называют запросы на выборку, осуществляются оператором SQL SELECT. Запросы, которые вносят изменения в базу данных, осуществляются операторами INSERT, UPDATE, DELETE [10].

У класса, работающего с таблицей БД, описаны свойства типа PreparedStatement. В конструкторе класса определяются значения этих свойств, которые непосредственно являются запросами к таблице Faculty.

Значения свойствам задаются следующим образом:

sqlGetAllFaculty=connection.prepareStatement("SELECT * FROM Faculty ORDER BY facultyName");

sqlInsert=connection.prepareStatement("INSERT INTO Faculty (facultyName, facultyShortName) VALUES (?, ?)");

sqlUpdate=connection.prepareStatement("UPDATE Faculty SET facultyName=?, facultyShortName=? WHERE facultyID=?");

sqlDelete=connection.prepareStatement("DELETE FROM Faculty WHERE facultyID=?");

sqlGetRecord=connection.prepareStatement("SELECT * FROM Faculty WHERE facultyID=?");

sqlFindByName=connection.prepareStatement("SELECT * FROM Faculty WHERE facultyName=?");

? – означает, что на место этого знака будет подставлен параметр. Подстановка параметров осуществляется методами setxxx(<номер параметра>, <значение>). Номер параметра начинается с 1 и увеличивается при чтении запроса слева направо.

Ниже приведен метод, добавляющий новый факультет в БД:

public void Insert(Faculty rec) throws SQLException{

 sqlInsert.setString(1, rec.getFacultyName());

 sqlInsert.setString(2, rec.getFacultyShortName());

 sqlInsert.executeUpdate();

}

Следует заметить, что в случае, когда запрос вносит изменения в БД, а к таким относятся INSERT, UPDATE, DELETE, то необходимо использовать метод executeUpdate(). А в случае, когда осуществляется выборка из БД оператором SELECT, то используется метод executeQuery().

Метод, осуществляющий выборку по названию факультета, выглядит следующим образом:

public boolean isRecord(String recName) throws SQLException {

 sqlFindByName.setString(1, recName);

 ResultSet rs=sqlFindByName.executeQuery();

 if(!rs.next()) return false;

 return true;

}

Исходные коды программы для работы с таблицей факультетов приведены в Приложении И.



2.5 Руководство пользователя



2.5.1 Установка системы

Для работы с СДО необходимо ее проинсталлировать. Процесс инсталляции не вызывает затруднений. Вначале следует указать параметры соединения с базой данных (рисунок 2.5.1.1).



Рисунок 2.5.1.1 – Задание параметров соединения

После того, как были установлены параметры соединения, и база данных была успешно развернута, следует создать администратора системы (рисунок 2.5.1.2).



Рисунок 2.5.1.2 – Создание администратора системы



Создав администратора системы, инсталляцию можно считать законченной. Для безопасности следует удалить директорию installation, чтобы злоумышленники не могли переустановить систему, уничтожив данные, хранящиеся в БД.



2.5.2 Администрирование системы

Начинать работу с СДО следует с заполнения основных справочников. Для этого войдя на главную страницу, необходимо пройти идентификацию. Процесс идентификации показан на рисунке 2.5.2.1. Заполнение справочников осуществляют, как администраторы, так и секретари факультетов и кафедр. Поэтому администратору следует создать новые группы пользователей, которые будут заполнять систему. Создание группы пользователей показано на рисунке 2.5.2.2.



Рисунок 2.5.2.1 – Идентификация пользователя



Экранные формы, отображающие процесс администрирования СДО представлены в Приложении К.



Рисунок 2.5.2.2 – Создание новой группы



После создания групп администрирующих систему, необходимо приступить к ее администрированию. Рассмотрим процесс заполнения справочников на справочнике специальностей. Для этого выбирается в меню «Управление системой» «Справочник специальностей». В форму добавления вводятся «Код специальности», «Название специальности» и «Сокращенное название специальности». Поля, помеченные звездочкой, обязательны к заполнению. Если данные введены верно и еще не содержатся в таблице, то система подтвердит ввод сообщением (рисунок 2.5.2.3). В случае неправильного ввода, система выдает сообщение об ошибке.



Рисунок 2.5.2.3 – Добавление данных в справочник

Если при вводе совершена ошибка, то ее можно исправить. Для этого необходимо в справочнике найти запись с ошибкой и щелкнуть по кнопке, находящейся справа от этой записи. Откроется форма редактирования записи, показанная на рисунке 2.5.2.4. После внесения изменений, необходимо нажать кнопку «Применить». Если внесенные изменения не противоречат данным, имеющимся в таблице, то система подтвердит изменения (рисунок 2.5.2.5), иначе выдаст сообщение об ошибке.



Рисунок 2.5.2.4 – Редактирование записи справочника





Рисунок 2.5.2.5 – Подтверждение о внесенных изменениях

Если запись в справочнике становится не актуальной, то имеется возможность удалить. Для этого необходимо отметить галочкой удаляемые записи и нажать кнопку удалить. В случае, когда у удаляемой записи существуют подчиненные записи, удаление становится невозможным и система сообщает об ошибке, показанной на рисунке 2.5.2.6. Если подчиненных записей нет, то удаление проходит успешно (рисунок 2.5.2.7).


Рисунок 2.5.2.6 – Ошибка при удалении записи





Рисунок 2.5.2.7 – Сообщение, подтверждающее удаление

После заполнения первичных справочников, следует заполнять составные справочники, т.е. создаваемые на основе данных, хранящихся в первичных справочниках. Одним из составных справочников является справочник «Кафедры». Для кафедры вводятся название и сокращенное название, а факультет, которому подчинена эта кафедра, выбирается из разворачивающегося списка, сформированного на основании справочника «Факультеты». Форма добавления кафедр показана на рисунке 2.5.2.8.



Рисунок 2.5.2.8 – Добавление кафедры



2.5.3 Разработка учебных курсов

Прежде чем приступить к формированию самого учебника, необходимо добавить название учебного курса и назначить преподавателя. Для этого следует войти в раздел «Учебные курсы», показанный на рисунке 2.5.3.1.

Для администрирующих пользователей будет доступен полный список учебников, а для авторов учебных курсов, только курсы, где они являются авторами.



Рисунок 2.5.3.1 - Работа с учебными курсами



Для разработки учебного курса автору необходимо войти в конструктор учебного курса. Изначально появится пустая страница с возможностью добавления раздела и создания тестов учебника. Чтобы добавить новый раздел нужно заполнить поле «Название раздела» и нажать кнопку «Добавить».

Чтобы добавить текстовое и мультимедиа содержимое в раздел учебника, нужно перейти в раздел, который необходимо разработать. Перейдя по ссылке, появится редактор, показанный на рисунке 2.5.3.2, с помощью которого раздел наполняется содержимым. Заполнив содержимым окно редактора, следует нажать кнопку «Сохранить», раздел будет сформирован. При необходимости редактирования или удаления содержимого нажмите соответственно кнопки «Редактировать текст раздела» или «Удалить текст раздела».

Для каждого раздела учебного курса на сервере создается отдельная директория под файлы. При удалении раздела, директория с файлами удаляется автоматически. При удалении учебного курса автоматически удаляется директория всего учебного курса.




Рисунок 2.5.3.2 - Редактирование содержимого раздела

Чтобы создать новый тест в учебнике следует в конструкторе нажать кнопку «Тесты учебника». Если же тест необходимо добавить в какой-либо раздел, то следует перейти по ссылке в нужный раздел и нажать кнопку «Тесты раздела». На рисунке 2.5.3.3 показан список тестов учебника.



Рисунок 2.5.3.3 - Работа с тестами



Чтобы добавить новый тест необходимо заполнить поля формы. В названии теста указывается его название. Далее осуществляется переход к формированию вопросов и ответов, что показано на рисунках 2.5.3.4 и 2.5.3.5 соответственно.




Рисунок 2.5.3.4 - Работа с вопросами теста



Рисунок 2.5.3.5 – Добавление ответа на вопрос



2.5.4 Процесс обучения

Процесс обучения организовывается на основании подготовленного учебного плана, как и при традиционной форме обучения. Чтобы приступить к обучению, пользователю необходимо идентифицироваться в системе и войти в раздел «Обучение», который расположен в главном меню. Процесс функционирования СДО показан в Приложении Л.

Если студент обучается по нескольким специальностям одновременно, то ему предоставляется для выбора список всех его специальностей.

На рисунке 2.5.4.1 показан вид учебного плана, который доступен идентифицировавшемуся студенту.



Рисунок 2.5.4.1 – Учебный план

Студенту необходимо выбрать желаемый курс для изучения в данный момент и перейти по ссылке. Перед ним появляется содержание учебного курса, осуществляя переходы по которому, он попадает в разделы электронного учебника. Изучив нужные материалы, студенту предлагается прохождение тестирование. Процесс тестирования показан на рисунке 2.5.4.2.



Рисунок 2.5.4.2 - Тестирование



Результаты тестирования сохраняются в журналах. Преподаватель имеет возможность просматривать журналы и результаты прохождения тестирования, что показано на рисунке 2.5.4.3.


Заключение



В очень быстром ритме жизни, время становится все более и более ценным ресурсом. Человек должен много работать, чтобы быть успешным и занимать определенное положение в обществе. Но работать эффективно невозможно без получения новых знаний. Развитие Интернета и компьютеризация общества дают большие возможности человеку, делая его более мобильным. А системы дистанционного обучения, позволяют получать новые знания в любое удобное время.

Разработка СДО является непростой задачей, т.к. нужно не ошибиться в выборе программного комплекса. Технология Java позволила разработать защищенное, легко изменяемое и независимое от платформы web-приложение, которое предъявляет минимальные требования к клиентским компьютерам. В свою очередь, СУБД Oracle Database 10g обеспечивает надежность хранения данных.

Используемая трехзвенная архитектура построения приложения «клиент/сервер приложений/сервер БД», делает систему более гибкой и дает возможность заменять звенья.

Разработанная политика прав, позволяет легко разрешать или запрещать доступ к разделам системы. Введение же нового модуля не потребует изменения программного кода приложения, а всего лишь добавит права, которые будут включены администратором в нужных группах.

Конструктор учебных курсов позволяет использовать текстовые, графические и мультимедиа материалы для изложения учебного материала. Контроль знаний осуществляется при помощи тестирования. Разработанные пять видов тестов, позволят наиболее гибко осуществить проверку усвоения знаний. Используемая методика задания сложности вопросам, дает наиболее качественную оценку знаний. 

С помощью журналов успеваемости преподаватели всегда могут получить достоверную информацию об обучении студента, выяснить для себя, где студенты допускают наибольшее количество ошибок, что в конечном итоге позволит усовершенствовать учебный курс.

В дальнейшем возможна разработка форума для СДО, который позволит проводить обсуждение непонятых тем учебных курсов, обмениваться опытом в изучении материала между студентами, проводить коллективные дискуссии, позволяющие заменить общение на занятиях в аудиториях.

Разработанная СДО на данном этапе является законченным приложением и может быть использована для организации дистанционного обучения кафедры ВТИТ, что позволит подготавливать большее количество высокопрофессиональных кадров.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ



1 Том Кайт. Oracle для профессионалов. Пер. с англ. - СПб.: ООО «ДиаСофтЮП», 2003. — 672 с.

2 Миллсап К., Хольт Д. Oracle. Оптимизация производительности. – Пер. с англ. – СПб.: Символ-Плюс, 2006. - 464с., ил.

3 Хабибуллин И.Ш. Самоучитель Java 2. – СПб.: БХВ-Петербург, 2005. – 720с.: ил.

4 Х.М.Дейтл, А.Д.Дейтл, С.И. Сантри. Технологии программирования на Java 2. Пер. с англ. –М.: ООО «Бином-Пресс», 2003 г. -560с.: ил. В трех книгах.

5 http://www.pcmag.ru/library/detail.php?ID=9281

6 Смирнов С.Н., Задворьев И.С. Работаем с Oracle. Учебное пособие/2-е издание, испр. и доп. –М.: Гелиос АРВ, 2002 – 496 с.

7 К. Клягин. Свидание с оракулом// Хакер Спец.–2005-№03(52)-С.32-35.

8 А. Синтес. Освой самостоятельно объектно-ориентированное программирование за 21 день. : Пер. с англ. –М.: Издательский дом «Вильямс», 2002. – 672 с. : ил.

9 www.citforum.ru/internet/javascript/java_rbint.shtml.htm

10 Глушаков С.В., Ломотько Д.В. Базы данных. –Харьков: Фолио; М.: ООО «Издательство АСТ», 2002. – 504 с. – (Учебный курс).




Приложения

Приложение А

Трехзвенная архитектура построения приложения




Приложение Б

Инфологическая модель








2