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

Автор работы: Пользователь скрыл имя, 17 Октября 2013 в 13:29, курсовая работа

Описание

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

Содержание

ВВЕДЕНИЕ 2
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 4
ОСНОВНАЯ ЧАСТЬ 6
1 Постановка задачи 6
2 Моделирование и реализация ПО 7
2.1 Архитектура ПО 7
2.2 Описание основных функциональных модулей 8
2.2.1 Интерфейс пользователя 9
2.2.2. Прикладной компонент 10
2.2.3. Организация сетевого взаимодействия 11
2.3. Реализация ПО 12
3 Руководство пользователя 14
ЗАКЛЮЧЕНИЕ 15
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 16
ПРИЛОЖЕНИЕ 17

Работа состоит из  3 файла

Seti_kursovaya.doc

— 165.50 Кб (Скачать документ)

 

Оглавление

 

 

ВВЕДЕНИЕ

 

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

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

Таким образом, вычислительная сеть, объединяющая ресурсы нескольких компьютеров, позволяет каждому из них использовать всю совокупность этих ресурсов.

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

Согласно онлайновому  словарю компьютерных терминов, клиент-сервер - это вид распределенной системы, в которой есть сервер, выполняющий запросы клиента, причем сервер и клиент общаются между собой с использованием того или иного протокола.

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

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

Понятие архитектуры  клиент-сервер в системах управления предприятием связано с делением любой прикладной программы на три основных компонента или слоя. Этими тремя компонентами являются:

компонент представления (визуализации) данных;

компонент прикладной логики;

компонент управления базой данных.

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

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

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

Итак, работа сервера - слушать соединение, и это выполняется  с помощью специального создаваемого серверного объекта (сокета), который равен: сокет = IP + номер_порта. Работа клиента - попытаться создать соединение с сервером, что выполняется с помощью специального клиентского объекта (сокета). Как только соединение установлено, соединение превращается в потоковый объект ввода/вывода, и с этого момента можно рассматривать соединение как файл, который Вы можете читать, и в который Вы можете записывать данные. Единственная особенность, файл может обладать определенным интеллектом и обрабатывать передаваемые Вами команды.

Сокет(гнездо, разъем) (сокет=IP+ПОРТ) - это программная абстракция, используемая для представления “терминалов” соединений между двумя машинами. Для такого соединения, существует сокет на каждой машине, и можно представить себе виртуальный “кабель” соединяющий две машины, каждый конец которого вставлен в сокет. 

Как известно в  операционной системе Windows связь между  разными процессами производится при  помощи сокетов (Sockets). Соединяя вместе два сокета, можно передавать данные между разными процессами (локальными и удаленными). Реализация сокетов обеспечивает инкапсуляцию протоколов сетевого и транспортного уровней. Интерфейс , используемый при этом взаимодействии, называется Sockets API. Он представлен библиотекой WinSock и java.net.*.

 

 

 

 

 

 

 

 

ОСНОВНАЯ ЧАСТЬ

1Постановка задачи

 

Разработать клиент серверное-приложение на основе TCP\IP соединения.

Организовать  работу удаленного генератора псевдослучайных последовательностей. Функции в программе: одно целое число в диапазоне, массив чисел в диапазоне.

 

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

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

Работа была выполнена на языке программирования JAVA в среде разработки Eclipse.

В работе используются библиотека java.net.*; разработанная компанией Sun, которая упрощает разработку по технологии клиент – сервер.

 

 

 

 

 

 

 

 

 

2Моделирование и реализация ПО

2.1 АрхитектураПО

 

Приложениереализовано по технологии клиент-сервер с использованием сокетов Windows, соответственно разрабатываются приложения: клиента и сервера. Приложение «Сервер» запускается в одном экземпляре и выполняет прослушивание заданного порта на предмет подключения клиента. После запроса на подключение сервер устанавливает соединение с клиентом и обрабатывает его запросы. Приложение «Клиент» может быть запущено в нескольких экземплярах.Клиенты подключаются к серверу и посылаютему запросы псевдослучайных последовательностей.Принятые от сервера последовательности отображаются в главном окне. Схема работы программного обеспечения представлена на рисунке 1.


 


 

запрос   числа   

 


 

Рис.1

 

 

 

 

 

 

 

 

 

 

 

2.2 Описание основных функциональных модулей

 

Функциональный  модуль «Клиент».

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

Функциональный  модуль «Сервер».

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.1 Интерфейс пользователя

 

Для взаимодействия с пользователем в приложении используется оконный интерфейс. В текстовом, консольном режиме.

Главное меню приложения клиента на рисунке 2.

Рис.2

 

Нужное меню выбирает от 1 до 4. Номер функции  отправляется серверу, он обрабатывает ее и высылает результат клиенту.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.2. Прикладной компонент

 

В данном программном  обеспечении прикладной функцией является генерация псевдослучайной последовательности чисел. Эта задача реализована в  рамках сервера. Сервер в ответ на запрос клиента формирует последовательность чисел заданной длины, используя функцию java.util.Random() для генерации каждого из чисел. Сгенерированное функцией псевдослучайное число приводится затем к заданному диапазону.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.3. Организация сетевого взаимодействия

 

Сетевое взаимодействие происходит посредством передачи и приема данных через сокеты, связывающие клиента и сервера. После установления соединения с сервером клиент по запросу пользователя передает запрос последовательности чисел. Формат запроса приведен ниже:

Ввод последовательности ->запись в переменные на сервере.

Выбор нужного  действия -> передача нужной функции на сервер ->ответ от сервера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3. Реализация ПО

 

Алгоритм программы  клиента рисунок 4.









 


 


          



 




 

 

 

Рисунок 4

 

 

 

 

 

 

 

 

 

Алгоритм программы  сервера рисунок 5.








 

          










 

 

Рисунок 5

 

Работа с сокетами представлена классами ServerSocket. Класс, используемый сервером, чтобы “слушать” входящие соединения и Socket- используемый клиентом для инициирования соединения. Как только клиент создает соединение по сокету, ServerSocket возвращает ему с помощью метода accept()соответствующий объект Socket на сервере, по которому будет происходить связь со стороны сервера. Начиная с этого момента, появляется соединение Socket к Socket, и можно считать эти соединения одинаковыми, т.к. они действительно одинаковые.

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

 

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

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

титульник.docx

— 10.93 Кб (Открыть документ, Скачать документ)

лист-задание 12.doc

— 38.50 Кб (Открыть документ, Скачать документ)

Информация о работе Разработка программы клиент-сервер