Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом Мельников 3а.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Проектирование схемы функционирования системы

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

Чаще всего клиент-серверные приложения состоят как минимум из трёх основных компонентов:

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

  2. Серверная часть — это программа или скрипт на веб-сервере, обрабатывающая запросы пользователя (запросы от клиентского приложения). Серверную часть, так же как и клиентскую, можно писать практически на любом языке. Наиболее популярными языками являются PHP, Ruby, Python и Java.

При необходимости, приложение-клиент отправляет запрос к серверу через протокол HTTP. Сервер обрабатывает этот запрос, вызывая некоторый скрипт или метод, который формирует ответ и отсылает его клиенту. Ответ может быть представлен в разном виде: в виде текста, HTML-страницы, XML-файла или JSON-объекта.

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

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

  • клиент посылает http-запросы веб-серверу через сеть интернет;

  • веб-сервер вызывает php-скрипт для обработки запроса;

  • php-скрипт, при необходимости, обращается к базе данных;

  • в итоге php-cкрипт возвращает ответ в виде JSON-объекта, из которого клиент извлекает необходимую информацию.

На рисунке 3 приведена графическая схема взаимодействия компонентов клиент-серверного приложения.

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

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

    1. Перечень функциональности.

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

Как <роль>, я <действие>, чтобы <ценность или влияние>.

В разрабатываемой системе всего одна роль — пользователь.

  1. Как пользователь, я авторизовываюсь, чтобы получить список доступных ЦРЗ и иметь возможность взаимодействовать с ними.

  2. Как пользователь, я хочу принять пакет в требуемый ЦРЗ.

    1. Как пользователь, я ищу пакет в системе, чтобы его принять.

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

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

    2. Как пользователь, я принимаю пакет, для дальнейшей его выдачи.

  3. Как пользователь, я хочу выдать пакет клиенту, чтобы получить деньги за его хранение.

    1. Как пользователь, я ищу пакет в системе, чтобы его выдать.

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

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

    2. Как пользователь, я выдаю пакет клиенту, чтобы получить деньги за его хранение.

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

    1. Как пользователь, я выбираю из списка те ЦРЗ, в которые необходимо переместить пакеты.

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

  5. Как пользователь, я смотрю список пакетов в выбранном ЦРЗ, чтобы узнать какие пакеты находятся на складе.

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