Автоматизированная система учета материальных средств в аэропорту

Автор работы: Пользователь скрыл имя, 29 Апреля 2014 в 19:52, курсовая работа

Описание работы

Ввод данных по учету материальных средств в аэропорту осуществляется на 10 компьютерах. Отчеты передаются на сервер. Интенсивность поступления заявок с компьютера равна трем заявкам в секунду. Компьютеры объединены в сеть, построенной по технологии Ethernet.
Выполнить анализ структуры сети компьютеров, выдать рекомендации по повышению ее пропускной способности. Разработать клиент-серверное приложение, передавать данные методом датаграмм с использованием возможностей протокола UDP.

Содержание работы

Введение………………………………………………………………………… 4
1. Анализ технологий, применяемых для построения современных ЛВС……………………………………………………………………................ 6
2. Разработка модели и моделирование функционирования локальной вычислительной сети ………………………………………………………….. 11
2.1 Построение модели в программной среде имитационного моделирования AnyLogic ……………………………………………………………………….. 14
2.2 Технико-экономическое обоснование разработки ……………………… 16
3. Разработка клиент-серверного приложения………………………………. 17
3.1 Разработка алгоритмов……………………………………………………. 17
3.1.1 Разработка и описание алгоритма клиентской части – схема связи классов…………………………………………………………………………..17
3.1.2 Разработка и описание алгоритма серверной части ………………….. 20
4. Разработка программ………………………………………………………. 22
4.1 Разработка серверной части программы………………………………... 22
4.2 Разработка клиентской части программы………………………………. 26
4.3 Тесты. Результаты тестирования………………………………………... 28
Заключение……………………………………………………………………. 31
Список литературы…………………………………………………………… 32

Файлы: 1 файл

seti_evm.doc

— 1.80 Мб (Скачать файл)

Шаг6. Производится выполнение  действия «Считать запрос от клиента из сокета»

Шаг7. Производится выполнение  действия «Определить число токенов в сообщении

st.countTokens()»

Шаг8(левая ветвь этапа 2). Производится выполнение  действия «проверить сокет и ждать вызова от клиента»

Шаг9. Происходит проверка логического условия «st.countTokens()>=2»

Шаг10. Происходит проверка логического условия «st.nextToken().equals("POST")»

Шаг11. Происходит проверка логического условия «st.nextToken().endsWith("/")»

Шаг12. Происходит проверка логического условия «req.equals("")»

Шаг13. Производится выполнение  действия «Передать index.html»

Шаг14. Производится выполнение действия «Передать запрашиваемый файл»

Шаг15. Осуществляется вывод результатов «Значение файла»

Конец алгоритма

4. Разработка программ

 

4.1. Разработка серверной  части программы

Посылка дейтаграмм по протоколу UDP

package server_program; // объявление пакета, к которому привязываются разрабатываемые классы

import java.net.*; //подключения методов класса java.net и его дочерних классов

import java.io.*; // потоки и файлы произвольного доступа. Аналог библиотеки стандартного ввода-вывода

import java.util.*; // классы-контейнеры (Dictionary, HashTable, Stack) и некоторые другие утилиты. Кодирование и декодирование. Классы Date и Time.

public class Main { // Программная структура, содержит в себе основные элементы такие как методы и поля

public static void main(String[] args) // главный метод, начальные значения, передаются аргументы, описывает функцию

{

 try // содержит один или более операторов, выдает исключения

{

 ServerSocket ss = new ServerSocket(Integer.parseInt(args[0])); // объект класса предназначен для установки канала связи с клиентским приложением

 while (true) //логическое выражение, оператор цикла

 new HttpConnect(ss.accept()); // установка канала связи с клиентским приложением

}

сatch(ArrayIndexOutOfBoundsException ae) // Перехват исключений в Java оформляется блоком "try-catch», сначало делается попытка выполнить фрагмент кода, и если генерируется исключение, то оно обрабатывается фрагментом catch

{

 System.err.println("Usage: Server port"); // метод вывода системных сообщений

 System.exit(0); // "нормальное" завершение процесса

}

catch(IOException e) // содержит операторы, которые специфицируют действия при вызове исключения в блоке try

{

 System.out.println(e); // стандартный поток вывода

}

}

}

class HttpConnect extends Thread // представляет собой отдельный поток управления в пределах процесса

{

 private Socket sock; // чтобы сгладить различия в реализациях разных серверов, между сервером и портом

 HttpConnect(Socket s) // устанавливает соединение между локальной машиной и указанным портом узла Internet, имя которого было передано конструктору

{

 sock = s; // присвоение значения s переменной sock

 setPriority(NORM_PRIORITY - 1); // приоритет устанавливается на два уровня выше Thread

 run(); // метод в котором задается последовательность действий, выполняемых в рамках потока

}

 public void run() // может объявлять переменные, вызывать другие методы и использовать другие классы.

{

 try // содержит один или более операторов, оператор вызывающий исключения

{

 PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()), true); // для форматного вывода данных различных типов с целью их визуального представления в виде текстовой строки

 BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream() ) ); // классы которые организуют входные потоки, буферизированный ввод данных

 String req = br.readLine(); // класс создающий объект готовый разбить строки на слова

 System.out.println("Request: " + req); // стандартный поток вывода

 StringTokenizer st = new StringTokenizer(req); // класс предназначен для выделения отдельных элементов из строк типа String

 if ((st.countTokens() >= 2) && st.nextToken().equals("POST"))// оператор условия, операция возвращает в виде строки следующее слово

{

 if ((req = st.nextToken()).ends With("/")|| req.equals(""))// оператор условия, операция возвращает в виде строки следующее слово

 req += "index.html"; // Этот оператор используется для выполнения определённых операторов, если логическое условие true

 try // содержит один или более операторов

{

File f = new File(req); // создание нового объекта с аргументом req

BufferedReader bfr = new BufferedReader(new FileReader(f)); // классы которые организуют входные потоки, буферизированный ввод данных

char[] data = new char[(int)f.length()]; // 16-ти разрядная переменная в виде символов, символы кодируются с помощью юникода

bfr.read(data); // буферизированный ввод данных

pw.println("HTTP/1.1 200 OK\n"); // выполнен принудительный переход на следующую строку

pw.write(data); // программа выполняет серию операций по выводу в поток данных различного типа

pw.flush();// программа выполняет серию операций по выводу в поток данных различного типа

}

catch(FileNotFoundException fe) // содержит операторы, которые специфицируют действия при вызове исключения в блоке try

{

pw.println("HTTP/1.1 404 Not FoundXn");

}

 catch(IOException ioe) // содержит операторы, которые специфицируют действия при вызове исключения в блоке try

{

System.out.println(ioe); // стандартный поток вывода

}

}

else pw.println("HTTP/l.l 400 Bad RequestW"); // необязательный блок else для выполнения других операторов, если условие false

sock.close(); // Основной метод этого класса accept () ожидает поступления запроса. Когда запрос получен, метод устанавливает соединение с клиентом и возвращает объект класса socket, через который сервер будет обмениваться информацией с клиентом.

}

catch(IOException e) // содержит операторы, которые специфицируют действия при вызове исключения в блоке try

{

System.out.println(e); // стандартный поток  вывода

}

} }

4.2 Разработка клиентской части программы

Прием дейтаграмм по протоколу UDP

package javaapplication33; // объявление пакета, к которому привязываются разрабатываемые классы

import java.net.*; //подключения методов класса java.net и его дочерних классов

import java.io.*; // потоки и файлы произвольного доступа. Аналог библиотеки стандартного ввода-вывода

import java.util.*; // классы-контейнеры (Dictionary, HashTable, Stack) и некоторые другие утилиты. Кодирование и декодирование. Классы Date и Time.

import java.lang.Integer.*; // каждый модуль компиляции содержит неявное импортирование этого пакета

public class Main { // Программная структура, содержит в себе основные элементы такие как методы и поля

 public static void main(String[] args) // главный метод, начальные значения, передаются аргументы, описывает функцию

{

String[] hostportfile={"127.0.0.1", "8080", "c:/Minori "}; // класс создающий объект готовый разбить строки на слова

if (hostportfile.length != 3) // оператор условия, операция возвращает в виде строки следующее слово

{

System.err.println("Usage: Client host port file"); // метод вывода системных сообщений

System.exit(0); // "нормальное" завершение процесса

}

String host = hostportfile[0]; // класс создающий объект готовый разбить строки на слова

int port = Integer.parseInt(hostportfile[1]); // четырехбайтные целые числа

String file = hostportfile[2]; // класс создающий объект готовый разбить строки на слова

Try // содержит один или более операторов, оператор вызывающий исключения

{

Socket sock = new Socket(host, port); // Основной метод этого класса ожидает поступления запроса.

PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()), true); // для форматного вывода данных различных типов с целью их визуального представления в виде текстовой строки

pw.println("POST " + file + " HTTP/1.l\n"); // выполнен принудительный переход на следующую строку

BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));// классы которые организуют входные потоки, буферизированный ввод данных

String line = null; // класс создающий объект готовый разбить строки на слова

line = br.readLine(); // присвоение значения переменной

StringTokenizer st = new StringTokenizer(line); // класс предназначен для выделения отдельных элементов из строк типа String

String code = null; // класс создающий объект готовый разбить строки на слова

if ((st.countTokens() >= 2) && st.nextToken().equals("POST")) // оператор условия, операция возвращает в виде строки следующее слово

{

if ((code = st.nextToken()) != "200") // оператор условия, операция возвращает в виде строки следующее слово

{

System.err.println("File not found, code = " + code); // метод вывода системных сообщений

System.exit (0); // "нормальное" завершение процесса

}

}

while ((line = br.readLine()) != null) //логическое выражение, оператор цикла

System.out.println(line); // стандартный поток вывода

sock.close();// Основной метод этого класса accept () ожидает поступления запроса. Когда запрос получен, метод устанавливает соединение с клиентом и возвращает объект класса socket, через который сервер будет обмениваться информацией с клиентом.

}catch(Exception e) // содержит операторы, которые специфицируют действия при вызове исключения в блоке try

{

System.err.println(e); // метод вывода системных сообщений

}}}

 

 

 

 

 

 

 

 

4.3 Тесты. Результаты тестирования.

Клиентская часть программы

 

 

 

 

 

 

 

 

Серверная часть программы.

 

 

 

 

 

 

 

 

 Заключение.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

    1.Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 2-е издание / В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2008. – 864 с.

2.Олифер В.Г. Сетевые операционные  системы /В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2008.- 539 с. 

3. Единая система программной документации. Официальное издание. - М.: Издательство стандартов, 1982. – 127 с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 



Информация о работе Автоматизированная система учета материальных средств в аэропорту