Разработка web-приложения для работы менеджера в автоматизированной системе учета расчетов с абонентами с использованием средств CGI-программирования и Java-апплетов

Анализ возможных подходов к созданию web-приложения с использованием программирования Java и CGI. Разработка структуры базы данных и реализация полученной модели в рамках СУБД. Обеспечение диалога CGI-программы с пользователем, используя браузер.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.08.2011
Размер файла 310,9 K

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

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

Размещено на http://www.allbest.ru/

Курсовая работа

на тему: «Разработка web-приложения для работы менеджера в автоматизированной системе учета расчетов с абонентами с использованием средств CGI-программирования и Java-апплетов»

Содержание

  • Введение
  • 1 Постановка задачи
  • 2 Концептуальная схема БД
  • 3 Проектирование пользовательского приложения
  • 4 Реализация web-приложения
  • 4.1 Реализация Java-апплетов
  • 4.2 Реализация CGI-приложения
  • 5 Логика диалога пользователя с web-приложением
  • Заключение
  • Список использованной литературы

Введение

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

Кроме того, программирование под Интернет очень популярно в настоящее время. Благодаря использованию cgi-программ и java-программ появилась возможность использовать «тонкого клиента», что обеспечивает легкость и быстроту загрузки, минимальные требования к техническому обеспечению и безопасность.

Целью данной работы является разработка web-приложения для автоматизации расчетов с абонентами.

Основными задачами, которые будут решаться в процессе выполнения проекта, являются:

1) анализ возможных подходов к созданию web-приложения с использованием Java и CGI программирования;

2) разработка структуры базы данных и реализация разработанной модели в рамках СУБД;

3) обеспечение диалога CGI-программы с пользователем, используя браузер.

1 Постановка задачи

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

В данной курсовой работе необходимо разработать web-приложение для работы менеджера в автоматической системе учета расчетов с абонентами с использованием средств CGI-программирования и Java-апплетов.

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

Для реализации будут использованы следующие программные средства:

Для разработки Java-апплета - Eclipse EE IDE for Web Developers.

Для CGI-скриптов - Delphi 7.

WebServer - Apache.

СУБД - Firebird Guardian.

2 Концептуальная схема БД

Предметная область, рассматриваемая в данном курсовом проекте, описывается 5 сущностями:

1) абонент;

2) тариф;

3) услуга;

4) подключен;

5) оплата.

Логический уровень базы данных представлен на рисунке 1.

Рисунок 1 - Концептуальная схема БД на логическом уровне

Рассмотрим описание сущностей:

1) «Абонент». Данная сущность характеризует множество абонентов реального мира. Она имеет следующие атрибуты:

- «Номер»;

- «Фамилия»;

- «Имя»;

- «Отчество»;

- «Адрес»;

- «Логин»;

- «Пароль».

Ключевым атрибутом является поле «Номер», который однозначно определяет абонента в БД.

2) «Тариф». Данная сущность характеризуется двумя атрибутами:

- «Номер»;

- «Название».

Первичный ключ - «Номер».

3) «Подключен». Данная сущность служит для организации связи «многие ко многим» между сущностями «Абонент» и «Тариф» и содержит следующие атрибуты:

- «Номер договора»;

- «Номер абонента»;

- «Номер тарифа».

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

4) «Услуга». Сущность «Услуга» служит для детализации входящих в тариф услуг. Она характеризуется полями:

- «Номер услуги»;

- «Номер тарифа»;

- «Наименование».

Первичными ключами являются в данном случае первые два атрибута.

5) «Оплата» - служит для контроля состояния оплаты по договорам и содержит атрибуты:

- «Номер абонента»;

- «Номер договора»;

- «Номер тарифа»;

- «Номер оплаты»;

- «Дата»;

- «Сумма».

Ключевыми атрибутами сущности являются «Номер абонента», «Номер договора», «Номер тарифа», «Номер оплаты».

Физический уровень базы данных представлен на рисунке 2.

Рисунок 2 - Концептуальная схема БД на физическом уровне

3 Проектирование пользовательского приложения

В настоящий момент времени бурное развитие Internet-технологий сопровождается не менее бурным развитием языков web-программирования. Это непосредственно языки, предназначенные для работы с Internet -технологиями. Языки web-программирования делятся на две группы: клиентские и серверные. Так используемый в данной курсовой работе для написания приложения язык JavaScript относится к группе клиентских языков.

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

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

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

- включение в web-документ (html-страницу) форм (апплетов), осуществляющих отправку сообщений серверу;

- использование внешней по отношению к серверу web-программы, взаимодействие которой с сервером происходит через специальный протокол CGI.

Схема реализации доступа к БД на стороне WEB - сервера при использовании CGI выглядит следующим образом:

1) клиент встречает страницу HTML с незаполненной формой. HTML-страницы пользователей включают в свое тело апплеты, обрабатывающие на стороне клиента действия пользователей, и, отправляющие строку запроса серверу методом POST.

2) получив строку запроса от Java-приложения, сервер запускает соответствующую внешнюю программу, передавая ей параметры строки запроса, и получая результаты на основе протокола CGI;

3) CGI-программа преобразует запрос, выраженный с помощью заполненной формы, в запрос на языке, понятной серверу БД(SQL);

4) после получения результатов от сервера БД CGI-программа передает Java-приложению строку ответа, и пользователь видит результат своего действия.

На этом процедура доступа к БД заканчивается, и сервер разрывает соединение с клиентом.

Интерфейс CGI предполагает, что при передаче данных из формы используются только методы GET и POST. В данной курсовой работе используется метод POST, удобный, т.к. не имеет ограничений на размер передаваемых данных. Он передает данные форм через стандартный поток ввода (STDIN).

Общая схема этапов работы CGI представлена на рисунке 1.

Рисунок 3 - Схема этапов работы CGI

4 Реализация web-приложения

4.1 Реализация Java-апплетов

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

1) абонентов;

2) менеджеров.

Реализация взаимодействия пользователя и CGI-программы будет осуществляться с помощью апплетов. Необходимо разработать Java-апплеты для каждого типа пользователей.

Ограничение прав доступа к БД и системе в целом производится на уровне приложений (Java-апплетов). Это осуществляется ведением имен и паролей пользователей.

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

Приложение абонентов состоит:

1. Форма авторизации в системе.

2. Окно личной страницы, предусматривает действия: просмотр информации о себе, хранящейся в БД; добавление оплаты.

Приложение менеджеров состоит:

1. Форма авторизации в системе.

2. Форма отображения существующих тарифов и услуг. Возможны следующие действия: удаление, добавление, просмотр информации о тарифах и услугах.

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

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

Апплет «Abonent.java» содержит элементы диалога с абонентом. Апплет «Admin.java» содержит элементы диалога с менеджером. Апплет «HTTPPost.java» реализует взаимодействие двух других апплетов с web-сервером. Он содержит класс URLconnection, производящий загрузку объекта, на который ссылается URL.

Классу HTTPPost передается переменная mes из апплетов «Admin.java» и «Abonent.java», содержащая значения переменных апплетов, которая выступает строкой запроса, обрабатываемой CGI-программой. Взаимодействие апплетов и CGI-программы представлено на рисунке 4.

Размещено на http://www.allbest.ru/

Рисунок 4 - Взаимодействие апплетов и CGI-программы

Варианты запросов, отсылаемых Java-апплетом «Abonent.java» CGI-скрипту приведены в таблице 1.

Таблица 1 - Варианты запросов, отсылаемых Java-апплетом “Abonent.java»

Строка запроса Java-апплета

Ответ CGI-приложения

Интерпретация

1

2

3

"what=reg&login="+s+

"&password="+p

true&номер абонента#фамилия#имя#отчество#адрес

Авторизация

"what=dog&chel_id="+ id_cheloveka

true&номер договора#номер тарифа@....@ номер договора#номер тарифа

Формирование списка договоров

"what=tar&tar_id="+ id_tar

true&номер тарифа#название@....@ номер тарифа#название

Формирование списка тарифов

"what=usl&tar_id="+ id_tar

true&номер услуги#название@....@ номер услуги#название

Формирование списка услуг

"what=opl&tar_id="+ id_tar+"&dog_id="+ id_dog+"&chel_id="+ id_chel

true&дата#сумма@....@дата#сумма

Формирование списка платежей

"what=addopl&tar_id="+ id_tar+"&dog_id="+ id_dog+"&chel_id="+ id_chel+"&dat_id="+ DatT.getText()+"&sum="+ SumT.getText()

true

Формирование данных по добавлению платежа

Варианты запросов, отсылаемых Java-апплетом “Admin.java» CGI-скрипту, приведены в таблице 2.

Таблица 2 - Варианты запросов, отсылаемых Java-апплетом “Admin.java»

Строка запроса Java-апплета

Ответ CGI-приложения

Интерпретация

1

2

3

"what=showabonent"

true&номер#фамилия#имя#отчество#адрес@.....

@номер#фамилия#имя#отчество#адрес

Формирование списка абонентов

"what=showdogovor"

true&номер договора@....@номер договора

Формирование списка договоров

"what=showtarif"

true&номер тарифа#название@....@ номер тарифа#название

Формирование списка тарифов

"what=usl&tar_id="+ id_tar

true&номер услуги#название@....@ номер услуги#название

Формирование списка услуг

"what=dog&chel_id="+ id_abon

true&номер договора#номер тарифа@....@ номер договора#номер тарифа

Формирование списка договоров абонента

"what=tar&tar_id="+ id_tar

true&номер тарифа#название@....@ номер тарифа#название

Показать информацию о тарифе

"what=showabonent_dogovor&dog_id="+ id_dog

true&номер#фамилия#имя#отчество#адрес

Вывести абонента договора

what=showtarif_dogovor&dog_id="+ id_dog

true&номер договора#....#номер договора

Вывести тариф договора

"what=addnewdog&ab_id="+ addab+"&t_id="+addtarid

true

Добавление договора

"what=addnewtar&tar_name="+ addtarname

true

Добавление тарифа

"what=addnewabonent&a_fam="+fam+"&a_name="+name+"&a_otch="+otch+"&a_adres="+adres+"&a_log="+log+"&a_pas="+pas

true

Добавление абонента

"what=addnewusl&usl_name="+ adduslname+"&tid="+ tar_name

true

Добавление услуги

"what=deltar&id_tar="+ tar_name

true

Удаление тарифа

«what=deldog&id_dog="+ dog_id

true

Удаление договора

"what=delabonent&id_ab="+ id_ab

true

Удаление абонента

"what=deluslug&id_usl="+ usl_name

true

Удаление услуги

"what=opl&tar_id="+ id_tar+"&dog_id="+ id_dog+"&chel_id="+ id_chel

true&дата#сумма@....@дата#сумма

Сформировать список платежей договора

При неудаче выполнения какого-либо запроса в качестве ответа Java-апплету возвращается false.

4.2 Реализация CGI-приложения

В курсовом проекте реализовано CGI-приложение «P1.exe», запускаемое сервером при поступлении запроса от Java-апплетов и обрабатывающее строку запроса.

Вызов данного приложения содержится в строке апплета:

HTTPPost a = new HTTPPost("http://localhost/cgi-glob/p1.exe",mes),

где mes-строка запроса.

CGI-приложение, получая запрос (содержится в Request), анализирует его, предварительно выделяя переменные и их значения:

d:= Request.ContentFields.Values['what'];

if d<>''

then begin

end

и формирует ответ:

Response.Content:=s;

Для обработки запросов, поступающих от апплетов, CGI-приложение формирует SQL-запросы для извлечения данных из БД. Некоторые из запросов, отсылаемые приложением «Р1.exe» базе данных приведены в таблице 3.

Таблица 3 - Варианты SQL-запросов

Текст запроса

Описание

select *

from abonent

where (log=:l) and (pas=:p)

Поиск абонента по имени и паролю

select * from dogovor

where a_id=:chel

Выбор договоров абонента

select * from platezh where (d_id=:dog)and( a_id= :chel)and(t_id=:tar)

Выбор платежей по договору

delete from dogovor where d_id=:dog

Удаление договора

insert into uslugi (u_id,t_id,U_name) values(-1,:tid,:tname)

Вставка для срабатывания триггера

5 Логика диалога пользователя с web-приложением

Опишем логику диалога java-апплетов и пользователей, используя модель управления пользовательским интерфейсом на основе транзитивной сети.

Транзитивная сеть логики диалога приложения менеджеров представлена на рисунке 5.

Размещено на http://www.allbest.ru/

Рисунок 5 - Транзитивная сеть логики пользовательского интерфейса приложения «Менеджер»

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

Таблица 4 - Состояния сети логики пользовательского интерфейса приложения «Менеджер»

Состояние

Описание

S

Стартовое состояние

F

Финальное состояние

S1

Окно авторизации менеджера

S2

Вкладка «Тариф»

S3

Окно добавления нового тарифа

S4

Окно добавления новой услуги

S5

Вкладка «Абонент»

S6

Вкладка «Договор»

S7

Окно добавления нового абонента

S8

Окно добавления нового договора

Таблица 5 - Входные сигналы, инициирующие переходы, в транзитивной сети логики пользовательского интерфейса приложения «Менеджер»

Входной сигнал

Описание

1

2

1

Нажатие кнопки «ОК»

2

Ввод пароля

3

Ввод логина

4

Выбор из списка услуги

5

Выбор из списка тарифа

6

Выбор из списка договора

7

Выбор из списка абонента

8

Ввод информации о новой услуге

9

Ввод информации об абоненте

10

Ввод информации о тарифе

11

Выбор вкладки «Договор»

12

Выбор вкладки «Абонент»

13

Выбор вкладки «Тариф»

14

Нажатие кнопки «Удалить абонента»

15

Нажатие кнопки «Удалить услугу»

16

Нажатие кнопки «Удалить тариф»

17

Нажатие кнопки «Удалить договор»

18

Нажатие кнопки «Добавить услугу»

19

Нажатие кнопки «Добавить тариф»

20

Нажатие кнопки «Добавить абонента»

21

Нажатие кнопки «Добавить договор»

22

Нажатие кнопки «Сохранить»

23

Нажатие кнопки «Отмена»

24

Нажатие кнопки «Выход»

25

Закрытие окна браузера

Состоянию S1 соответствует окно авторизации менеджера. Экранный вид данного окна представлен на рисунке 6.

Рисунок 6 - Экранная форма окна «Авторизация менеджера»

Состоянию S2 соответствует окно работы менеджера с тарифами. Экранный вид данного окна представлен на рисунке 7.

Рисунок 7 - Экранная форма окна «Вкладка «Тариф»

Состоянию S5 соответствует окно работы менеджера с абонентами. Экранный вид данного окна представлен на рисунке 8.

Рисунок 8 - Экранная форма окна «Вкладка «Абонент»

Состоянию S6 соответствует окно работы менеджера с договорами. Экранный вид данного окна представлен на рисунке 9.

Рисунок 9 - Экранная форма окна «Вкладка «Договоры»

Состоянию S3 соответствует окно добавления нового тарифа. Экранный вид данного окна представлен на рисунке 10.

Рисунок 10 - Экранная форма окна «Добавление тарифа»

Состоянию S4 соответствует окно добавления новой услуги. Экранный вид данного окна представлен на рисунке 11.

Рисунок 11 - Экранная форма окна «Добавление услуги»

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

Состоянию S7 соответствует окно добавления нового абонента. Экранный вид данного окна представлен на рисунке 12.

Рисунок 12 - Экранная форма окна «Добавление абонента»

Состоянию S8 соответствует окно добавления нового договора. Экранный вид данного окна представлен на рисунке 13.

Рисунок 13 - Экранная форма окна «Добавление договора»

Транзитивная сеть логики пользовательского интерфейса приложения абонентов представлена на рисунке 14.

Размещено на http://www.allbest.ru/

Рисунок 14 - Транзитивная сеть логики пользовательского интерфейса приложения «Абонент»

Таблица 6 - Состояния сети логики пользовательского интерфейса приложения «Абонент»

Состояние

Описание

S

Стартовое состояние

F

Финальное состояние

S1

Окно авторизации абонентов

S2

Страница пользователя

S3

Добавление платежа

Таблица 7 - Входные сигналы, инициирующие переходы, в транзитивной сети логики пользовательского интерфейса приложения «Абонент»

Входной сигнал

Описание

1

2

1

Ввод пароля

2

Ввод логина

3

Ввод даты

4

Ввод суммы платежа

5

Нажатие кнопки «ОК»

6

Выбор из списка тарифа

7

Выбор из списка договора

8

Нажатие кнопки «ОК»

9

Нажатие кнопки «Выход»

10

Нажатие кнопки «Добавить оплату»

11

Закрытие окна браузера

Состоянию S1 соответствует окно авторизации абонента. Экранный вид данного окна аналогичен окну абонента.

Состоянию S2 соответствует окно личной страницы абонента. Экранный вид данного окна представлен на рисунке 15.

Рисунок 15 - Экранная форма окна «Личная страница абонента»

Состоянию S3 соответствует окно добавления платежа. Экранный вид данного окна представлен на рисунке 16.

Рисунок 16 - Экранная форма окна «Добавление платежа»

Заключение

В ходе выполнения курсового проекта было разработано web-приложение для работы менеджера в автоматической системе учета расчетов с абонентами с использованием средств CGI-программирования и Java-апплетов.

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

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

Таким образом, задачи, поставленные перед написанием курсового проекта, были решены.

Список использованной литературы

1.  CGI-программирование [Электронный ресурс] / webcode.ru. -Режим доступа: http://www.webcode.ru/cgi/. - Систем. требования: ПК 486 или выше; 8 Мб ОЗУ; Windows 3.1 или Windows 95; SVGA 32768 и более цв.; 640х480; 4х CD-ROM дисковод; 16-бит. зв. карта; мышь. - Загл. с экрана.

2. Лекция 8. CGI-программирование [Электронный ресурс]. -Режим доступа: http://vikos.lrn.ru/suzi/course/lect8.html. - Систем. требования: ПК 486 или выше; 8 Мб ОЗУ; Windows 3.1 или Windows 95; SVGA 32768 и более цв.; 640х480; 4х CD-ROM дисковод; 16-бит. зв. карта; мышь. - Загл. с экрана.

3. Java Programming Language [Электронный ресурс]/ Sun Educational Services. -- 1 электрон. опт. диск (CD-ROM) : зв., цв.; 12 см.- Систем. требования: ПК 486 или выше; 8 Мб ОЗУ; Windows 3.1 или Windows 95; SVGA 32768 и более цв.; 640х480; 4х CD-ROM дисковод; 16-бит. зв. карта; мышь. - Загл. с экрана.

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


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

  • Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.

    курсовая работа [1,0 M], добавлен 16.12.2012

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

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

    курсовая работа [333,5 K], добавлен 21.01.2013

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

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