Автор работы: Пользователь скрыл имя, 19 Мая 2013 в 16:24, курсовая работа
В современном мире все большую и большую популярность приобретают кинотеатры. Если раньше наличие более чем одного кинотеатра в районе было редкостью, то сейчас только в Москве насчитывается более 120ти залов и с каждым годом их становится все больше. В связи с ростом количества кинотеатров, а также большим темпом жизни современных людей, возникает необходимость создания средства, облегчающего выполнение следующих задач:
- выбор билетов (выбор кинотеатра, фильма, времени сеанса и желаемых мест в зрительном зале);
- доставка билетов по указанному адресу.
Введение 3
1 Аналитическая часть. 4
1.1 Модель предметной области. 4
1.2 Требования к создаваемой системе 5
2 Конструкторская часть 7
2.1 Алгоритм работы участников разрабатываемой системы 7
2.1.1 Алгоритмы работы продавца 7
2.1.2 Алгоритмы работы сети кинотеатров 8
2.1.3 Алгоритмы работы службы доставки. 9
2.2 Структура участника распределённой системы обработки информации. 10
2.3 Структура баз данных 12
2.3.1 Структура базы данных продавца. 12
2.3.2 Структура базы данных сети кинотеатров. 13
2.3.3 Структура базы службы доставки. 15
3 Технологическая часть 16
3.1 Структура программного обеспечения. 16
3.1.1 Структура программного обеспечения продавца 16
3.1.2 Структура программного обеспечения сети кинотеатров. 17
3.1.3 Структура программного обеспечения службы доставки. 19
3.2 Протоколы распределённой системы обработки информации 19
3.3 Протокол взаимодействия между продавцами и сетями кинотеатров 20
3.3.1 Протокол взаимодействия между сетями кинотеатров и службами доставки 28
Заключение 30
Список литературы 32
Класс «Exchanger» принимает входящие заявки, получает из них необходимые для работы данные и передает классу «Filter» для дальнейшей обработки. Исходящие заявки данный класс переводит в формат XML для передачи их по протоколу SMTP адресатам. Класс «Filter» проверяет, является ли отправитель сообщений зарегистрированным у данной сети кинотеатров продавцом и в этом случае передаёт их классу «Protocol». Класс «Protocol» реализует действия в рамках протокола обмена сообщениями между сетью кинотеатров и продавцами. Класс «BusinessLogic» выполняет обработку сообщений с учётом управляющих воздействий пользователя. Класс «UIHandler» выполняет управление пользовательским интерфейсом программного обеспечения и принимает управляющие воздействия от пользователя, передавая их классу «BusinessLogic». Класс «DeliveryTruckServiceClient» реализует механизм SOAP-RPC для взаимодействия со службами доставки по протоколу SOAP. Класс «TCServiceEngine» реализует механизм SOAP-RPC для взаимодействия продавцов с сетью кинотеатров по протоколу SOAP. Класс BaseRequest представляет базовый абстрактный класс для всех сообщений, обрабатываемых данным программным обеспечением.
На рисунке 11 показана диаграмма классов программного обеспечения службы доставки.
Рисунок 11. Диаграмма классов программного обеспечения службы доставки
Класс «DTServiceEngine» реализует механизм SOAP-RPC для взаимодействия сетей кинотеатров со службой доставки по протоколу SOAP. Класс «BusinessLogic» выполняет обработку сообщений с учётом управляющих воздействий пользователя. Класс «UIHandler» выполняет управление пользовательским интерфейсом программного обеспечения и принимает управляющие воздействия от пользователя, передавая их классу «BusinessLogic».
Для передачи информации в системе используется два протокола – SMTP и SOAP. Взаимодействие между продавцами и сетями кинотеатров реализовано на основе обоих протоколов. Взаимодействие между сетями кинотеатров и службами доставки реализовано на основе протокола SOAP.
Взаимодействие между продавцами и сетями кинотеатров реализовано на основе протоков SMTP и SOAP. В протокол взаимодействия включены следующие сообщения:
- запрос списка театров;
- ответ на запрос списка театров;
-
запрос списка фильмов,
-
ответ на запрос списка
- запрос поиска сеансов;
- ответа на запрос о поиске сеансов;
- запрос информации о билетах на сеанс;
- ответ на запрос информации о билетах на сеанс;
- запрос регистрации;
- запрос о заказе билетов;
- запрос информации о заказе.
Рассмотрим формат вышеперечисленных сообщений.
Запрос списка театров. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «THEATRESQUERY». Содержимое сообщения игнорируется.
Ответ на запрос списка театров. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «THEATRESRESPONSE».Формат содержимого сообщения имеет следующий вид:
<theatres>
{<theatre>
<name>Значение</name>
<adress> Значение </adress>
</theatre>}
</theatres>
Поля ответа:
- «name» - имя кинотеатра
- «adress» - адрес кинотеатра
Запрос списка фильмов, демонстрируемых в данный момент в сети кинотеатров. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «FILMSQUERY». Содержимое сообщения игнорируется.
Ответ на запрос списка фильмов, демонстрируемых в данный момент в сети кинотеатров. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «FILMSRESPONSE».Формат содержимого сообщения имеет следующий вид:
<films>
{<film>Значение</ film >}
</ films >
Значением поля film является имя кинокартины.
Запрос поиска сеансов. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «FIND». Формат сообщения должен иметь вид:
<find>
<theatres>
{<theatre>Значение</theatre>}
</theatres>
<film>Значение</film>
<begin>Дата и время</begin>
<end> Дата и время </end>
</find>
Поля запроса:
-«theatre» - имя кинотеатра в котором должны проводиться искомые сеансы
-«film» - название кинокартины, демонстрируемой на искомых сеансах
-«begin» - дата и время начала временного промежутка, в котором должны начинаться искомые сеансы
-«end» - дата и время конца временного промежутка, в котором должны начинаться искомые сеансы
Ответ на запрос о поиске сеансов. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «RESULTFIND».Формат содержимого сообщения имеет следующий вид:
<find-result>
{<theatre>
<name>Значение</name>
{<film>
<name> Значение </name>
{<show>
<date-time>Дата и время</date-time>
</show>}
</film>}
</theatre>}
</find-result>
Поля ответа:
- «theatre» - имя кинотеатра, в котором проходят сеансы
- «name» узла «film» - имя фильма, демонстрируемого в данном театре
- «date-time» - дата и время, когда будет проходить сеанс.
Запрос информации о билетах на сеанс. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «TICKETS». Формат сообщения должен иметь вид:
<tickets>
<theatre>Значение</theatre>
<film> Значение </film>
<date-time>Дата и время</date-time>
</tickets>
Поля запроса:
-«theatre» - имя театра, в котором будет проходить выбранный сеанс
-«film» - название фильма, который будет демонстрироваться на данном сеансе
-«date-time» - дата и время выбранного сеанса
Ответ на запрос информации о билетах на сеанс. Представляет собой сообщение протокола SMTP, тема которого должна быть строкой «TICKETRESULT».Формат содержимого сообщения имеет следующий вид:
<tickets-result>
<theatre>Значение</theatre>
<film> Значение </film>
<date-time>Дата и время</date-time>
<hall-name> Значение </hall-name>
<row-count> Значение </row-count>
<seat-count> Значение </seat-count>
<vip-price> Значение </vip-price>
<not-vip-price> Значение </not-vip-price>
<tickets>
{<ticket>
<row-number> Значение </row-number>
<seat-number> Значение </seat-number>
<vip-status> Значение </vip-status>
</ticket>}
</tickets>
</ tickets-result >
Поля ответа:
-«theatre» - название театра в котором будет проходить данный сеанс
-«film» - название фильма, который будет демонстрироваться на данном сеансе
-«date-time» - дата и время данного сеанса
-«hall-name» - номер (или имя) зала, в котором будет проходить данный сеанс.
-«row-count» - количество рядов в зале, в котором будет проходить данный сеанс
-«seat-count» - мест в каждом ряду в зале, в котором будет проходить данный сеанс
-«vip-price» - цена билета VIP на данный сеанс.
-«not-vip-price» - цена билета эконом-класса на данный сеанс.
-«row-number» - номер ряда, в котором находится место, указанное в билете
-«seat-number» - номер места в ряду
-«vip-status» - ценовая категория места, указанного в билете.
Запрос регистрации. Вызов удалённой процедуры SellerRegister, входным параметром которой является строка SMTP-адреса продавца. Возвращает удалённая процедура SellerRegister объект класса RegistryResult, имеющий следующие поля:
«chainName» – имя сети кинотеатров.
«chainLegalAdress» – физический адрес сети кинотеатров.
«emailAdress» – SMTP-адрес сети кинотеатров.
Запрос о заказе билетов. Вызов удалённой процедуры Book, имеющей следующие входные параметры:
«Email» - SMTP-адрес продавца
«IdOrder» - идентификатор заявки в системе продавца
«CustomerName» - имя человека, делающего заказ
«CustomerAddress» - адрес, по которому необходимо доставить билет
«TheatreName» - название кинотеатра
« FilmName» - название фильма
«HallName» - номер (или имя) зала, в котором будет демонстрироваться фильм
«ShowDateTime» - дата и время сеанса
«Rows» - массив номеров рядов, в которых расположены выбранные места в зрительном зале
«Seats» - массив номеров выбранных мест внутри рядов.
Возвращает объект класса BookingResult в котором присутствуют следующие поля:
«SuccessStatus»- код результата операции заказа. Может иметь значения
0 – заказ успешно произведён
1
– заказ не произведён, так
как один или несколько
2
– не удалось произвести заказ,
«Rows» - массив номеров рядов, в которых расположены места, заказанные другими продавцами. В случае успешного заказа данный массив пуст
«Seats» - массив номеров мест в рядах, заказанные другими продавцами. В случае успешного заказа данный массив пуст.
«IdReq» - Номер заказа в системе продавца.
Запрос информации о заказе. Вызов удалённой процедуры Info, принимающей следующие параметры:
«SMTPAddress» - SMTP-адрес продавца
«OrderId» - номер заказа в системе продавца
Возвращает объект класса TheatreChainOrderInfo, имеющего следующие поля:
«CustomerName» - имя человека, сделавшего заказ
«CustomerAdress» - адрес, по которому необходимо доставить билет
«Tickets» - массив строк с информацией о каждом билете в заказе.
«Status» - код состояния заказа. Может иметь следующие значения:
0 – не удалось подключиться к серверу службы доставки
1 – ожидает выполнения
2 – выполнен
3 – не найден
Взаимодействие между сетями кинотеатров и службами доставки реализовано на основе протоков SOAP. В протокол взаимодействия включены следующие сообщения:
- запрос регистрации;
- запрос о заказе билетов;
- запрос информации о заказе.
Рассмотрим формат вышеперечисленных сообщений.
Запрос регистрации. Вызов удалённой процедуры Register, принимающей в качестве параметра строку с GUID сети кинотеатров.
Запрос о заказе билетов. Вызов удалённой процедуры Book, принимающей следующие параметры:
«GUID» - GUID сети кинотеатров;
«OrderNumber» - идентификатор заказа в системе сети кинотеатров;
«CustomerName» - имя заказчика;
«CustomerAddress» - адрес доставки;
«TicketsBody» - строки, выводимые на каждый билет.
Возвращает код результата операции:
0 – заказ успешно произведён;
5 – заказ не произведён, так как сеть кинотеатров не регистрировалась перед запросом
Запрос информации о заказе. Вызов удалённой процедуры Info,принимающей следующие параметры:
«GUID» - GUID сети кинотеатров;
«OrderNumber» - номер заказа в системе сети кинотеатров.
Возвращает объект класса OrderInfo, имеющие следующие поля:
«CustomerName» - имя заказчика;
«CustomerAdress» - адрес доставки;
«Tickets» - массив строк, выводимых на каждый билет;
«Status» - состояние заказа. Может принимать следующие значения:
2 – заказ ожидает выполнения;
4 – заказ выполнен;
5 – ошибка доступа, сеть кинотеатров не регистрировалась перед запросом;
6 – заказа с данным идентификатором не существует.
В
рамках данной курсовой работы было реализовано
программное обеспечение
-продавца;
-сети кинотеатров;
-службы доставки.
В процессе разработки программного обеспечения участника, выполняющего роль продавца, было реализовано:
- регистрация продавца у сетей кинотеатров;
-
получение данных о
- получение данных о фильмах, демонстрируемых в кинотеатрах сетей с которыми сотрудничает продавец;
-
получение списка сеансов от
всех сетей кинотеатров, с
- получение информации о билетах на любой сеанс из полученного списка;
- заказ билетов;
- возможность получить информацию о состоянии исполнения заказа.
В процессе разработки программного обеспечения участника, выполняющего роль сети кинотеатров, должно быть реализовано:
- регистрация сети кинотеатров у служб доставки;
- предоставление информации о театрах, находящихся в ведении данной сети продавцам;
- предоставление информации о фильмах, демонстрируемых в кинотеатрах данной сети;
- предоставление информации о сеансах в соответствии с запросом продавцов;
-
предоставление возможности
- предоставление информации о состоянии исполнения принятого заказа.
В процессе разработки программного обеспечения участника, выполняющего роль службы доставки, было реализовано:
- приём заказов на имя и адрес заказчика
- средства, необходимые для исполнения заказов
Информация о работе РСОИ продаж билетов с доставкой, состоящая из фирм, владеющих сетями кинотеатров