Разработка алгоритма работы приложения

4.3 Разработка и описание алгоритма работы приложения

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

Подробнее последовательно рассмотрим алгоритмы работы каждого приложения.

4.3.1 Алгоритм работы сервера 1

Общий алгоритм работы первого сервера представлен на рисунке 1.

Рисунок 1 — Алгоритм работы первого сервера

4.3.2 Алгоритм работы сервера 2

Общий алгоритм работы второго сервера представлен на рисунке 2.

Рисунок 2 – Алгоритм работы второго сервера

4.3.3 Алгоритм работы клиента

Общий алгоритм работы клиентского приложения можно видеть на рисунке 3. На рисунке 4 представлен алгоритм метода Dialog(), получающего данные от серверного приложения через сокет.

Рисунок 3 – Алгоритм работы клиента

Рисунок 4 – Алгоритм работы функции получения данных от сервера Dialog

4.4 Описание структуры программы

Разработанное ПО представляет собой три приложения: два сервера (консольные приложения) и один клиент (приложение Windows Forms).

Серверные приложения представляют собой класс Program со статическим методом Main, в котором описан основной алгоритм работы сервера. Так же класс Program содержит статический метод dataRecieve, в котором описан алгоритм получения запроса от клиента и оправка данных клиенту. Помимо этого, первое серверное приложение содержит класс Upt, предназначенный для получения необходимых данных и, в последующем, передачи этой структуры клиентскому приложению предварительно преобразовав ее в формат текстовой передачи данных JSON. Второе серверное приложение содержит аналогичные классы OneProcInfo и AllProcInfo.

Клиентское приложение является приложением Windows Forms с единственной формой, поэтому код представляет собой класс Form1. Создание формы происходит при помощи конструктора Form1. Основным методом этого класса является метод Dialog, в котором происходит создание сокета, подключение к серверу, отправка запроса на получение данных и выведение данных на форму Form1. Помимо этого класс Form1 содержит функцию FillTree, которая заполняет визуальный элемент в виде дерева информацией о процессах и их потоках, полученной от второго сервера.

Читайте также:  Язык программирования vba для excel

4.5 Руководство пользователя

Для работы с приложением необходимо запустить его исполняемый файл. После запуска клиентского приложения откроется форма приложения. Верхнюю часть занимает визуальный элемент в виде дерева. Под ним находится кнопка “Get server 2 info”. При нажатии кнопки происходит запрос информации у второго сервера и выведение ее в элемент.

Ниже на форме имеются два поля: Second server local time и second server uptime. Под ними расположена кнопка “Get server 1 info”. При нажатии кнопки происходит запрос информации у первого сервера и выведение ее в соответствующие поля.

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

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

При работе сервера выводят логи в консоль. При успешном запуске сервера выводится сообщение “Starting server…”. Во время подключения клиента выводится сообщение “Client has connected”. Во время отправки данных выводится сообщение “Preparing to send data…”. После отправки данных клиент отключается и выводится сообщение “Client disconnected”.

И серверные и клиентские приложения можно закрыть стандартными способами: нажатием на кнопку выхода в заголовке окна.

Источник

1.3.Разработка и описание алгоритма работы приложения

Программа предназначена для вывод на экран информации от двух серверов.

Входной информацией являются данные, которые оператор с помощью визуальных компонентов вводит в соответствующую строку

Выходной информацией является вывод параметров на экран консоли

  • код последней ошибки;
  • текущее положение каретки
  • полное имя модуля текущего процесса;
  • идентификаторы серверных и клиентских процессов

Рис.1. UML-диаграмма деятельности приложения

1.4.Описание cтруктуры программы.

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

Читайте также:  Robin rpa язык программирования

Для реализации именованных каналов используются классы NamedPipeServerStream и NamedPipeClientStream.

Для создания потоков был исползован класс Thread

Для вывода информации в консоль использовался метод Console.WriteLine.

Для чтения и записи в канал были использованы классы StreamReader StreamWriter

1.5.Руководство пользователя.

Оператор запускает приложение client.exe. В открывшейся консоли для соединения с 1-ым сервером надо ввести цифру «1» и нажать «Enter», на экран будет выведена информация о коде последней ошибки, текущем положении каретки. Для продолжения нажать кнопку «Enter». Далее для соединения со 2-ым сервером надо ввести цифру «2» и нажать «Enter», на экран будет выведена информация о полном имени модуля текущего процесса, идентификаторы серверных и клиентских процессов. Для выхода ввести букву «E» из латинской раскладки и нажать «Enter».

1.6.Результаты применения программы

Заключение.

  • Формализованы и уточнены данные, в результате которых был разработан алгоритм решения задачи.
  • Разработан логика программы, учитывающая взаимодействие с обычным пользователем.
  • Создан проект с программным кодом на языке C# с использованием метода, именованный каналы.
  • Протестирована работа программы.

Список литературы

  • Э.Таненбаум, Х.Бос. Современные операционные системы. 4-изд. – СПб.: Питер, 2015
  • В.Г.Олифер, Н.А.Олифер. Сетевые операционные системы. – СПб.: Питер, 2009
  • Марк Руссинович, Дэвид Соломон, Алекс Ионеску, Павел Йосифович. Внутреннее устройство Windows.7-е издание . — СПб.: Питер, 2018
  • http://msdn.microsoft.com
  • http://ru.wikipedia.org/wiki/Клиент-сервер
  • http://www.intuit.ru/department/internet/mwebtech/5/

Приложение №1

private static string strNamePipe = «testpipe»;

public static void Main(string[] args)

* Работает бесконечный цикл. Для выхода необходимо ввести символ «E». Для соединения с серверными процессами необходимо ввести номер сервера 1 или 2

Console.WriteLine(«Enter number of server (1, 2) to connect server or character E for exit: \n»);

else if (q.CompareTo(«1») == 0 || q.CompareTo(«2») == 0)

// Создаем клиентское подключение к именнованому каналу. Наименвоание канала равно strNamePipe + введенный номер в переменной q

new NamedPipeClientStream(«.», strNamePipe + q,

Console.WriteLine(«Connecting to server. \n»);

// Создаем экземпляр класса для чтение из канала

StreamReader sr = new StreamReader(pipeClient);

// StreamWriter sw = new StreamWriter(pipeClient);

Console.WriteLine(«Client connected to server\n»);

Console.WriteLine(«There are currently pipe server instances open.»,

// Читаем все строки символов пока не будет достигнут конец потока

while ((temp = sr.ReadLine()) != null)

// Выводим полученную информацию

Console.WriteLine(«Received from server: «, temp);

Читайте также:  Диплом введение пример программирование

// Перед окончанием процесса чтение из потока ждем нажатия любой клавиши

Console.Write(«Press Enter to continue. «);

Источник

1.4 Разработка алгоритма работы программного средства

Интерфейс программы является «связью с внешним миром». Он ожидает в цикле прихода какой-либо команды, периодически проверяя её наличие. Такое поведение является стандартным для приложений, написанных с использованием 1С Предприятие. Когда приходит команда, происходит её разбор, а именно определяется тип и, соответственно, действие, которое нужно выполнить или определить какому модулю передать управление.

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

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

Блок-схема алгоритма программы представлена на рисунке 1.3.

Рисунок 1.3 – Блок-схема алгоритма программы

1.5 Требования для работы с приложением

Минимальные требования, которым должен соответствовать компьютер для того, чтобы на нем работала данная программа, следующие:

  • процессор: Pentium III и выше;
  • объем оперативной памяти: 128 Мб и выше;
  • 16 Мб пространства на жестком или гибком диске для самой исполняемой программы и свободное пространство для файлов баз данных;
  • операционная система Windows © XP- Windows © 7;
  • совместимая клавиатура;
  • видеокарта 64 Mb;
  • совместимый монитор с минимальным разрешением 1024×768.
  • процессор AMD Athlon 2000+;
  • 512 Мб оперативной памяти;
  • 16 Мб пространства на жестком диске для самой исполняемой программы и свободное пространство для файлов баз данных;
  • операционная система Windows © XP- Windows © 7;
  • совместимая клавиатура;
  • совместимая «мышь»;
  • видеокарта 128 Mb;
  • совместимый монитор с минимальным разрешением 1024×768.

1.6 Выбор инструментов разработки

  • операционная система Microsoft Windows 10;
  • программная платформа 1С:Предприятие 7.7;
  • Rational Rose.
  • use case diagram (диаграммы прецедентов);
  • deployment diagram (диаграммы топологии);
  • statechart diagram (диаграммы состояний);
  • activity diagram (диаграммы активности);
  • interaction diagram (диаграммы взаимодействия);
  • sequence diagram (диаграммы последовательностей действий);
  • collaboration diagram (диаграммы сотрудничества);
  • class diagram (диаграммы классов);
  • component diagram (диаграммы компонент).

Источник

Оцените статью