ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

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

 

Шведчиков Алексей Алексеевич,

магистрант Института математики и компьютерных наук Уральского федерального университета.

Научный руководитель – доцент

Стихина Т.К.

 

Данный проект развивает опыт работы, практическая часть которой была реализована посредством ASP.NET (язык C#) и СУБД MS SQL Server. Иной подход в реализации системы представлен web-приложением и базой данных под управлением MySql. Web-приложение написано на языке Java. Выбор данного языка в качестве инструмента разработки обусловлен тем, что для написания приложения требовался объектно-ориентированный язык, для которого созданы и поддерживаются библиотеки (каркасы), предназначенные для разработки web-приложений.

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

Функционально систему можно разделить на несколько независимых частей:

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

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

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

Традиционно взаимодействие с базой данных производится посредством JDBC (Java Database Connectivity – соединение с базой данных на языке Java), реализация которого входит в стандартный набор инструментов Java. Преимуществами JDBC считаются:

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

·                    Все параметры соединения к БД указываются в URL.

Однако при работе с JDBC требуется самостоятельно открывать, поддерживать и закрывать соединение с базой, осуществлять обработку результата выполнения запроса. Намного удобнее организовывать работу с объектами из БД как с объектами Java. Решением задачи объектно-реляционного отображения является объектно-ориентированная библиотека Hibernate для языка Java.

С использованием Hibernate появилась возможность оперировать данными как объектами через методы-аксессоры (get и set), а также посредством именованных запросов на языке HQL (Hibernate Query Language). Конфигурация соединения с БД прописывается в отдельном xml-файле.

Структура проекта представлена на рисунке 1.

 

Рис. 1. Структура потоков информации проекта.

 

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

В новом варианте каждая таблица БД имела представление в виде java-класса (в терминах Hibernate – сущность), а чтение и запись ее полей производились через get- и set-методы. Для управления данными использовались специальные объекты – объекты доступа к данным (или DAO – Data Access Objects). В проекте каждая сущность имела отдельный DAO класс. Все специализированные DAO реализовывали интерфейс, предоставляющий 5 операций:

·                    добавление новой записи;

·                    удаление записи;

·                    изменение записи;

·                    получение записи по идентификатору;

·                    получение списка всех записей указанного типа.

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

Схема для сравнения обоих способов доступа к данным изображена на рисунке 2.

 

Рис. 2. Схемы доступа к данным.

 

При разработке пользовательского интерфейса важно верно организовать ввод пользовательских данных, их проверку (валидацию) и реакцию приложения:

1)                 действие пользователя возбуждает некоторое событие;

2)                 программа обрабатывает событие и посылает запрос в базу данных;

3)                 результат запроса выводится через интерфейс.

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

Любая страница или компонент web-приложения Tapestry состоит из нескольких частей:

·                    Java-класс реализует логику работы страницы (компонента) на стороне сервера;

·                    JavaScript библиотеки и сценарии реагируют на действия пользователя;

·                    Файл шаблона компонента (TML – Tapestry Markup Language) задает визуальную составляющую.

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

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

 

Литература

 

1.                  http://msdn.microsoft.com.

2.                  http://tapestry.apache.org/.

3.                  http://www.w3schools.com/aspnet/.

 

Поступила в редакцию 11.10.2013 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.