Сетевая технология публикации и обработки данных в муниципальном учреждении Д/С №176

Анализ существующих технологий создания web-приложений. Разработка сетевой технологии публикации и обработки информации о детях в детском саде №176 "Белочка" с помощью JSP-страниц и сервлетов с использованием JDBC-драйвера для доступа к базе данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.12.2011
Размер файла 3,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Рисунок 26 - страница главного навигационного меню системы

Рассмотрим теперь конкретно интерфейс работы пользователя в каждой из приведенных подсистем.

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

Рисунок 27 - страница ввода новых данных в систему

Далее отразим интерфейс пользователя для редактирования данных.

Рисунок 28 - страниц редактирования данных в системе

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

Рисунок 29 - страница получения отчета о ребенке

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

Выборочная отчетность включает три основных области описания информации ребенка в БД:

- Общая информация о ребенке;

- Информация о воспитателе ребенка;

- Медицинская информация о ребенке.

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

Рисунок 30 - страница результирующего отчета по запросу пользователя

2.4 Разработка основных алгоритмов обработки информации

В данной главе мною будут рассмотрены основные алгоритмы обработки информации.

2.4.1 Разработка алгоритмов работы между клиентом и БД с помощью сервлетов

Основу работы пользователя с системой будут составлять сервлеты. Поэтому важно качественно и эффективно реализовать их инициализацию init(), тело сервлета doGet(), doPost(), а также их уничтожение destroy() после завершения их использования.

Рисунок 31 - принцип работы сервлетного приложения

Пользователь реализует доступ к БД посредством JSP-страниц, на которых он заполняет определенные данные, которые передаются параметрами объекта REQUEST. После нажатия кнопки на JSP странице происходит вызов определенного сервлета, в котором извлекаются переданные параметры и используются при работе с БД. После получения ответа от SQL-сервера происходит формирование ответа в виде объекта RESPONSE, в который полученный результат также записывается параметрами этого объекта.

Вызов сервлета происходит по следующему циклу:

1) Происходит создание сервлета методом init(). Данный метод был переопределен для выполнения определенных нужд, а именно, в нем происходит создание пула соединения с БД, по которому и происходит пересылка sql-скриптов, описанных в пункте 2.4.1. Создание соединение происходит следующим образом:

а) java.sql.DriverManager - создает класс для подключения драйвера JDBC для соединения с MySQL;

б) java.sql.Connection - описывает URL, по которому будет загружена определенная БД, а также указывает авторизационные данные к ней;

в) java.sql.Statement - создает пул, по которому будет происходить передача sql-скрипта на SQL-сервер;

г) java.sql.ResultSet - описывает непосредственно сам sql-скрипт, который будет передан на SQL-сервер.

Полученное соединение используется пользователем в дальнейшем. Разрыв соединения происходит после завершения сервлета в методе destroy().

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

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "SQLpassword1");

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("SQL запрос");

2) После инициализации сервлета происходит описание функционал, который несет сервлет. Для этого используется следующие объекты:

а) определяются кодировки описанных объектов REQUEST и RESPONSE;

б) java.io.PrintWriter - создание объекта, который будет формировать JSP страницу с ответом на запрос пользователя;

в) request.getParameter() - данный метод позволяет извлечь переданные пользователем параметры для их использования при работе с БД;

г) out.println() - данный метод позволяет непосредственно реализовать запись ответа клиенту в виде тегов, данных и т. п.

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

request.setCharacterEncoding("Cp1251");

PrintWriter out = response.getWriter();

out.println("<html><head>");

out.println("<title>Start page</title></head><body background=IMAGES/Backcolor.jpg>");

out.println("<h1 align=\"center\"><font color=\"green\">Welcome to InFly technology!</font></h1>");

out.println("<form method=\"get\" action=\"" + request.getContextPath() + "/StartPage.jsp\">");

out.println("<table border=\"0\"><tr><td align=\"top\">");

out.println("<input type=\"submit\" value=\"Enter to system\"></td></tr>");

out.println("</table></form>");

out.println("<form method=\"get\" action=\"" + request.getContextPath() + "/AdministrativeTools.jsp\">");

out.println("<table border=\"0\"><tr><td align=\"top\">");

out.println("<input type=\"submit\" value=\"Administrative tools\"></td></tr>");

out.println("</table></form>");

out.println("</body></html>");

3) Наконец, после формирования сервером ответа клиенту необходимо закрыть открытое на текущий момент соединения с БД во избежание возникновения ошибок разного рода, связанные с передачей некорректных данных, а также освобождение памяти, которую занимает это соединение. Для этого используется метод connection.close().

После того, как была выполнена отправка на SQL сервер запроса, будет получен объект RESPONSE, хранящий полученный результат. Для того, чтобы извлечь из него данные используется метод next() в сочетании в методом getString(“имя_столбца”). Первый возвращает булевское значение, по которому можно судить, если еще строки записей в RESPONSE. Второй метод позволяет извлечь конкретно значение столбца, имя которого передается в метод.

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

if (rs.next())

{

String rezult = rs.getString("Фам_ребенка");

out.println("<html><head>");

out.println("<title>Rezult page</title></head><body background=IMAGES/Backcolor.jpg>");

out.println("<h1><font color=\"red\">Фамилия ребенка: rezult </font></h1>");

out.println("</body></html>");

}

rs.close();

2.4.2 Разработка алгоритмов доступа к БД и ее редактирования с помощью SQL-запросов

Основой работы разрабатываемой системы является передача данных, заполняемых пользователем в интерфейсе, посредством параметров в в объекте query. Это значит, что их можно извлечь методом getParameter(“имя_переменной”) и вставить в SQL запрос.

2.4.2.1 Реализация функции ввода данных главного меню системы

Первая функция главного меню системы вызывается кнопкой «Режим ввода данных в БД». После ее нажатия пользователю предоставляется соответствующая JSP страница, отображенная на рисунке 29. Здесь пользователь заполняет форму, данные которой поместятся в таблицу БД после нажатия кнопки «Внести запись в БД» на данной JSP. Именно на событие нажатия этой кнопки будет вызван соответствующий сервлет, в котором будет реализован доступ к БД, а так же в помощью оператора INSERT будут добавлены данные в требуемые столбцы таблиц.

Опишем sql-скрипт, выполняемый в данном сервлете:

INSERT INTO т_Ребенок AS реб, т_Родитель AS род, т_Мед_инф AS мед, т_Прививка AS прив

VALUES (реб.Инд_номер_ребенка = getParameter("id_Num_child"),

реб.Фамилия = getParameter("Surname_child"),

реб.Имя = getParameter("Name_child"),

реб.Отчество = getParameter("Midname_child"),

реб.Дата_рожд = getParameter("Date_born_child"),

реб.Дом_адрес = getParameter("Home_address_child"),

реб.Наим_группы = getParameter("Group_child"),

реб.Инд_номер_воспит = getParameter("Num_teacher_child"),

род.Фамилия = getParameter("Surname_parent"),

род.Имя = getParameter("Name_parent"),

род.Отчество = getParameter("Midname_parent"),

род.Дата_рожд = getParameter("Date_born_parent"),

род.Работа = getParameter("Workplace_parent"),

род.Паспорт = getParameter("Pasport_parent"),

род.Раб_телефон = getParameter("Work_phone_parent"),

мед.Номер_карты = getParameter("Num_card"),

мед.Кровь = getParameter("Blood"),

мед.Рост = getParameter("Height"),

мед.Вес = getParameter("Weight"),

прив.Наим_прививки = getParameter("Name_vakcination"),

прив.Дата_вакцинации = getParameter("Date_vakcin"))

Структура и иерархия имен таблиц была описана на рисунке 25.

2.4.2.2 Реализация функции редактирования данных главного меню системы

Вторая функция главного меню системы вызывается кнопкой «Режим редактирования данных в БД». После ее нажатия пользователю предоставляется соответствующая JSP страница, отображенная на рисунке 30. Здесь пользователь выбирает критерий, по которому он ищет запись в БД для ее дальнейшего редактирования. Для принятия изменений пользователь жмет кнопку «Внести изменения в БД» на данной JSP. Именно на событие нажатия этой кнопки будет вызван соответствующий сервлет, в котором будет реализован доступ к БД, а так же в помощью оператора SELECT будет определена запись в БД, UPDATE предоставит возможность изменения записи.

Опишем sql-скрипт, выполняемый в данном сервлете:

SELECT * FROM Ребенок

WHERE инд_Номер_ребенка = getParameter("id_Num_child")

Используя данный запрос пользователю предоставляется информация о ребенке, которую он может изменить на web-странице, после чего при нажатии кнопки «Внести изменения в БД» будет выполнен следующий SQL запрос.

UPDATE т_Ребенок AS реб, т_Мед_инф AS мед, т_Прививка AS прив

SET (реб.Фамилия = getParameter("Surname_child"),

реб.Имя = getParameter("Name_child"),

реб.Отчество = getParameter("Midname_child"),

реб.Дата_рожд = getParameter("Date_born_child"),

реб.Дом_адрес = getParameter("Home_address_child"),

реб.Наим_группы = getParameter("Group_child"),

реб.Инд_номер_воспит = getParameter("Num_teacher_child"),

мед.Номер_карты = getParameter("Num_card"),

мед.Кровь = getParameter("Blood"),

мед.Рост = getParameter("Height"),

мед.Вес = getParameter("Weight"),

прив.Наим_прививки = getParameter("Name_vakcination"),

прив.Дата_вакцинации = getParameter("Date_vakcin"))

WHERE ид_Номер_ребенка = getParameter("id_Num_child")

После выполнения этого запроса в БД произойдет изменение записи, удовлетворяющей условие поиска (например, при выборе поиска ребенка по индивидуальному номеру).

2.4.2.3 Реализация функции отчетности главного меню системы

Третья функция главного меню системы вызывается кнопкой «Получить отчет о ребенке». После ее нажатия пользователю предоставляется соответствующая JSP страница, отображенная на рисунке 31. Здесь пользователь выбирает критерии, по которым будет сформирован дальнейший отчет. Для принятия изменений пользователь жмет кнопку «Получить отчет» на данной JSP. Именно на событие нажатия этой кнопки будет вызван соответствующий сервлет, в котором будет реализован доступ к БД, а так же в помощью оператора SELECT будет определена запись в БД.

Опишем sql-скрипт, выполняемый в данном сервлете:

SELECT реб.Инд_номер_ребенка, реб.Фамилия, реб.Отчество, реб.Дата_рожд, реб.Дом_адрес, реб.Наим_группы, реб.Инд_номер_воспит, род.Фамилия, род.Имя, род.Отчество, род.Дата_рожд, род.Работа, род.Паспорт, род.Раб_телефон, мед.Номер_карты, мед.Кровь, мед.Рост, мед.Вес, прив.Наим_прививки, прив.Дата_вакцинации

FROM т_Ребенок AS реб, т_Родитель AS род, т_Мед_инф AS мед, т_Прививка AS прив

WHERE инл_Номер_ребенка = getParameter("id_Num_child")

Результат поиска будет отображен на новой JSP странице, как показано на рисунке 32.

2.4.3 Разработка алгоритма обработки мед/информации для проведения вероятностного анализа заболевания детей

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

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

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

Рисунок 32 - схема получения статистической диаграммы заболеваний ребенка

Рисунок 33 - схема расчета вероятности повторения заболевания ребенка

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

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

2.5 Описание разработанной сетевой технологии

Структура разработанной технологии представлена на следующем рисунке.

Рисунок 34 - диаграмма развертывания разработанной сетевой технологии

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

Для начала работы с системой пользователь открывает браузер на РС (Mozzila, Google Chrome, IE), в котором прописывают URL: http:/InFly:8000/InFly.jsp. После этого он получает доступ к функциям системы. В ходе работы пользователь выбирает ту функцию, которая ему необходима. При этом ему предоставляется соответствующая web-страница, в которой он манипулирует теми или иными данными (например, добавление нового ребенка в БД). После окончания заполнения формы с данными о ребенка формируется http-request, который передается в сервлет ServletToConnect.java на стороне JBoss сервера. В данном сервлете происходит получение переданных данных, которые подставляются в соответствующий sql запрос.

После формирования sql запроса сервлет использует mysql-connector-JDBC-5.1.13-bin.jar драйвер для получения соединения по работе с файлом БД myDB.frm, в котором хранятся все таблицы с данными о детях. После получения соединения сервлет передает серверу MySQL сформированный sql запрос, на который получает ответ в виде объекта ResultSet.

После получения ответа от SQL сервера, сервлет начинает извлекать из полученного объекта запрашиваемые данные, на основе которых будет сформирован http-request, который передает обратно Apache HTTP серверу.

WEB сервер на основе принятого http-request формирует ответную web-страницу с запрашиваемыми пользователем данными, которую передает обратно браузеру клиента.

3. Оценка эффективности разработанного проекта

Результатом процесса реализации, описанного в предыдущей главе, стало создание работоспособного приложения, с помощью которого осуществляется публикация и обработка данных о детях в дет/саде №176 «Белочка».

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

1. Скорость работы системы;

2. Защита от ошибочных действий пользователя;

3. Скорость обучения работы с системой;

4. Удовлетворенность пользователя от работы с системой.

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

Миним_общее_время = Тавт + Тотобр + Тотв + Твоспр

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

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

Миним_общее_время = 10 + 1 + 1 + 20 =32 сек

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

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

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

Заключение

В рамках курсового проекта была поставлена задача: разработать web-приложение, функциональной возможностью которого будет публикация и обработка данных дет/сада №176 «Белочка». В качестве исходных данных была использована информационная система в бумажном виде о детях. В результате проведенного анализа поставленной задачи и обзора современных технологий создания web-приложений, было решено использовать технологию создания приложений с помощью JSP-страниц и сервлетов с использованием JDBC-драйвера для доступа к базе данных, размещенной на сервере MySQL.

Для реализации веб-приложения необходимо было выполнить:

- Перенести сведения из бумажного вида в БД сервера MySQL;

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

- Разработка сервлетов, с помощью которых будет осуществляться доступ к БД;

- Разработка JSP-страниц, выполняющих роль интерфейса по работе пользователя с системой.

В качестве инструмента по разработке веб-приложения была выбрана среда IDE NetBeans 7.0, язык программирования Java.

Результатом процесса реализации стало создание работоспособного web-приложения, с помощью которого можно публиковать и обрабатывать данные о детях дет/сада №176 «Белочка».

Для оценки эффективности функционирования разработанного web-приложения, было проведено его тестирование заведующей дет/сада, результаты которого описаны в главе 3.

Литература

1. Вязовик Н.А. Программирование на Java: Учебный курс. - М.: Издательство «Открытые системы», «Craftway Computers», 2003. - 592с;

2. Хабибуллин И.Ш. Самоучитель Java: Учебник для вузов. - Спб: Издательство «БХВ-Петербург», 2001. - 464с.: ил;

3. Основные виды архитектур программных приложений. - электронный источник: http://www.intuit.ru/department/database/databases/, 2009;

4. Буди Курняван. Создание web-приложений на языке Java с помощью сервлетов, JSP и EJB: Руководство для разработчиков масштабируемых приложений J2EE. - М.: Издательство «Лори», 2008. - 880с;

5. Дейтел Х.М. Технологии программирования на Java 2, корпоративные системы, сервлеты, JSP, Web-сервисы: Учебный курс. - М.: Издательство «Бином-пресс», 2003. - 672с.: ил.

6. Изучение технологии JSP. - электронный источник: http://java.sun.com/products/jsp/docs.html, 2009.

Приложение 1

Таблица 5 - перечень данных, используемых в разрабатываемой технологии

Категория

Наименование атрибута

Тип поля

Информация о ребенке

Индивидуальный номер ребенка

Простое

Фамилия ребенка

Простое

Имя ребенка

Простое

Отчество ребенка

Простое

Дата рождения ребенка

Простое

Пол ребенка

Простое

Домашний адрес ребенка

Простое

Домашний телефон ребенка

Простое

Фамилия родителя

Простое

Имя родителя

Простое

Отчество родителя

Простое

Степень родства

Простое

Место работы родителя

Простое

Рабочий телефон родителя

Простое

Наименование группы ребенка

Простое

Индивидуальный номер воспитателя группы

Простое

Дата приема в сад ребенка

Простое

Дата завершения обучения в саде ребенка

Простое

Дата окончания обучения ребенка

Простое

Посещаемый кружок/секция

Простое

Социальный статус семьи

Простое

Дополнительная информация о ребенке

Составное

Кадровая информация

Индивидуальный номер сотрудника (ИНН)

Простое

Фамилия сотрудника

Простое

Имя сотрудника

Простое

Отчество сотрудника

Простое

Дата рождения сотрудника

Простое

Пол сотрудника

Простое

Домашний адрес сотрудника

Простое

Должность

Простое

Образование сотрудника

Простое

Специальность

Простое

Семейное положение

Простое

Паспортные данные

Составное

Дата приема на работу сотрудника

Простое

Стаж работы до устройства на работу

Простое

Дата проходимой аттестации

Простое

Наименование аттестации

Составное

Квалификационная категория

Простое

Дополнительная информация о сотруднике

Составное

Медицинская информация

Сведения о прививках

Составное

История болезней

Составное

Резус-фактор и группа крови

Простое

Дата последнего мед/осмотра

Простое

Группа здоровья

Простое

Физкультурная группа

Простое

Аллергические реакции

Составное

Обследования специалистов

Составное

Рост

Простое

Вес

Простое

Дополнительная мед/информация о ребенке

Составное

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.