46391 (588398), страница 6
Текст из файла (страница 6)
Рис. 19
Р
ис. 20
Р
ис. 21
8.8. Алгоритм процедуры взаимодействия с удаленным клиентом (Interaction)
Алгоритм представлен на рисунках 22 - 26.
Условное обозначение:
Mas1=Массив входящих сообщений клиента;
Mas2=Массив исходящих сообщений клиенту;
Mas=Временный массив объявлений.
Алгоритм процедуры взаимодействия с удаленным клиентом (Interaction)
Рис. 22
П
ослать сообщение с Типом сообщения =07
Р
ис. 23
Обработать сообщение с Типом сообщения =05
Рис. 24
Р
ис. 25
Р
ис. 26
8.9. Алгоритм процедуры получения приоритета (Get_priority)
Алгоритм представлен на рисунке 27.
Условные обозначения:
Mas1=Массив исходящих сообщений серверу;
Mas2=Массив входящих сообщений от сервера.
А
лгоритм процедуры получения приоритета (Get_priority)
Рис. 27
8.10. Алгоритм процедуры приема сообщения (Get_message)
Алгоритм представлен на рисунках 28 - 31.
А
лгоритм процедуры приема сообщения (Get_message)
Рис. 28
Р
ис. 29
Р
ис. 30
Р
ис. 31
8.11. Алгоритм процедуры отправки объявления (Send_message)
А
лгоритм процедуры отправки объявления (Send_message)
Алгоритм представлен на рисунке 32.
8.12. Другие процедуры ИСУ
Алгоритмы процедур Datas_up2, Datas_up3, Datas_Down2 и Datas_Down3 по своим выполняемым действиям аналогичны процедурам Datas_up и Datas_Down, по этой причине были выпущены из рассмотрения. Описание выполняемых функций и способов их реализации без построения модульной схемы представлены в выше лежащих главах дипломного проекта.
Проверка на завершение представлена на рисунке 33.
Рис. 33
9. Описание информационных массивов
9.1. Информационные массивы "Сервера"
Некоторые информационные массивы, существующие в системе, были описаны выше. Помимо них в системе представлены следующие структуры данных.
9.1.1. Массив объявлений
Структура массива "Массив объявлений" представлена в таблице 7.
Таблица 7 - Массив объявлений
Название поля | Условное обозначение | Размерность |
Идентификатор устройств | Status_bar | Integer |
Время начала вывода сообщения | Time_B | Data |
Текст сообщения | Text | Blob |
Приоритет сообщения | Priority | Integer |
Адрес источника | Login | String |
"Идентификатор устройств" - представляет собой двух байтовую структуру, которая кодирует все устройства в системе. Если пользователь выбрал то или иное устройство, то некоторый бит Идентификатора устройств, принимает значение бинарной единицы.
9.1.2. Динамический массив
Данный массив содержит информацию о функционировании нижнего уровня в любой момент времени. В случае любого сбоя или по запросу, можно обновить или получить необходимую информации о функционировании устройства нижнего уровня в любой момент времени. Структура динамического массива представлена в таблице 8.
Таблица 8 - Структура динамического массива
Название поля | Размерность |
Номер устройства | Integer |
Занят | Boolean |
Номер объявления | Integer |
Данный массив представляет собой массив записей по количеству имеющихся устройств. Номер устройства идентифицирует устройство нижнего уровня. Переменная "Занят" говорит о функционировании устройства в данный момент времени. Если переменная "Занят" имеет значение истинно в "Номер объявления" находится номер объявления, которое устройство выводит в данный момент времени.
9.1.3. Оперативная справка
Содержит массив, состоящий из 60 элементов динамического массива. Данный массив служит для оперативной выдачи информации о функционировании системы за последний час. Оперативная справка имеет циклическую структуру. При начале каждого цикла вся информация, содержащаяся в массиве, сохраняется на диске, в долгосрочной справке.
9.1.4. Долгосрочная справка
Массив, содержащий сведения, о функционировании нижнего уровня системы начиная с начала жизненного цикла ИСУ. Служит для анализа функционирования системы в любой момент времени или за некоторый промежуток.
9.1.5. Массив сообщений в системе
Любое сообщение, входящее в систему или исходящее из нее преобразуется в тип String и помещается в массив сообщений в системе. Который имеет циклическую структуру и содержит 100 элементов. При заполнении всех 100 элементов, массив копируется на диск и добавляется к массиву сообщений. После чего заполнение массива сообщений в системе начинается заново.
9.1.6. Массив сообщений
Содержит все сообщения в системе начиная с момента запуска системы и служит для анализа функционирования системы в любой момент времени на протяжении всего жизненного цикла ИСУ.
9.1.7. Временный массив объявлений
Все объявления принятые системой помещаются во временный массив объявлений и имеет такую же структуру, как и массив объявлений представленную в таблице 7. Данный массив состоит из 5 записей и служит для исключения возможности потери объявления принятых системой. Т.е. если система на данный момент времени выполняет, какую либо функцию, и не имеет возможности обработать объявления пришедшее в ИСУ, то данное объявление помещается во временный массив объявлений для последующей обработки. Массив имеет циклическую структуру и по мере обработки принятого объявления, объявление удаляется или точнее переносится в массив "Массив объявлений".
9.1.8. Массив не опубликованных объявлений
Данный массив содержит информацию об объявлениях, которые следует выводить в данный момент времени. Имеет структуру представленную в таблице 9.
Таблица 9 - Массив не опубликованных объявлений
Название поля | Размерность |
Номер устройства | Integer |
Номер объявления | Integer |
Идентификатор присутствия | Boolean |
Количество записей в данном массиве равно количеству устройств в системе. Процедура Processing отвечает за заполнения массива не опубликованных объявлений. Как только приходит время опубликования какого либо объявления, она помещает номер объявления в "Номер объявления" и переменная "Идентификатор присутствия" принимает значение истинно.
9.1.9. Устройства
Данный массив описывает все устройства существующие в системе. Структура его представлена в таблице 10.
Таблица 10 - Устройства
Название поля | Размерность |
Номер устройства | Integer |
Физический адрес устройства в сети | Long Integer |
Не работает | Boolean |
Описание | String |
"Номер устройства" однозначно идентифицирует устройство в системе. "Не работает" показывает способно устройство выполнять свои функции на данный момент времени. Описание содержит краткую характеристику устройства. В данную переменную можно поместить ответы на вопросы : Что за устройство, где расположено и др.
На диске содержится копия массива "Устройства". Это позволяет в случае, каких либо неполадок оперативно восстановить массив "Устройства".
9.1.10. База данных пользователей
База данных пользователей служит для хранения информации обо всех клиентах, которые пользуются услугами ИСУ. Изменение, удаление, добавление записей к "Базе данных пользователя" имеет право только администратор системы. База данных может быть как текстовый файл с необходимой информацией так и специализированной базой данных доступ к которой возможен только по средствам предоставляемым Системой Управления Базой Данных или SQL запросами.
Структура Базы данных пользователей представлена в таблице 11.
Таблица 11 - База данных пользователей
Название поля | Условное обозначение | Размерность |
№ | Number | Integer |
Фамилия | Last_name | String |
Имя | Firs_name | String |
Отчество | Patronymic | String |
Имя в сети | Login | String |
Приоритет | Priority | Integer |
Пароль | Password | String |
Запретить подачу объявлений | Forbid | Boolean |
9.2. Информационные массивы Клиента
Массивы, входящие сообщения от сервера и исходящие сообщения серверу описаны в главе "Описание функционирования верхнего уровня ИСУ (Клиент) ".
Как и "Сервер", "Клиент" имеет массив "Устройств". Данный массив копируется с "Сервера" с помощью запроса с "Типом сообщения" 08.