Автор работы: Пользователь скрыл имя, 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
Оглавление
Когда-то компьютеры были очень громоздкими, и их было очень мало, а на один большой компьютер приходилось много пользователей с еще большим числом очень маленьких задач, вопрос о перенесении программ и данных с одного компьютера на другой не играл какой-либо заметной роли.
Однако по мере совершенствования компьютеров, увеличения их числа, развития и усложнения средств программного обеспечения, в том числе и прикладного, увеличения объемов баз данных возникла насущная необходимость в соединении компьютеров между собой. Такое связывание компьютеров, позволяющее объединить их ресурсы - процессоры, память (внутреннюю и внешнюю, включая жесткие диски, разнообразные внешние устройства - принтеры, факс-аппараты, модемы и др.), каналы связи, и представляет собой вычислительную сеть, в которой каждый компьютер может передать другому компьютеру, подключенному к сети, любой набор данных.
Таким образом, вычислительная сеть, объединяющая ресурсы нескольких компьютеров, позволяет каждому из них использовать всю совокупность этих ресурсов.
Вычислительные сети строятся на основе архитектуры "клиент-сервер", которая предполагает выделение в сети так называемых "серверов" и "клиентов". К клиентам относятся рабочие станции (компьютеры) сети, которые не имеют непосредственных контактов друг с другом и могут общаться между собой только через сервер: следовательно, одна станция не может использовать файл, находящийся на другой станции: для этого файл должен находиться на файл-сервере. Серверы управляют подключенными к ним общими разделяемыми ресурсами сети. В качестве сервера может быть использован либо обычный персональный компьютер, или же это может быть специализированное устройство.
На протяжении последних десяти лет специалисты по вычислительной технике работают над усовершенствованием приложений клиент-сервер. В результате были построены приложения, поддерживающие совместную работу множества пользователей с единственным источником данных в сети.
Архитектура
клиент-сервер стала
В ходе выполнения курсового проекта необходимо изучить архитектуру клиент-сервер, организацию взаимодействия между клиентом и сервером и разработать программное обеспечение, представляющее собой удаленный генератор псевдослучайных последовательностей.
Согласно онлайновому словарю компьютерных терминов, клиент-сервер - это вид распределенной системы, в которой есть сервер, выполняющий запросы клиента, причем сервер и клиент общаются между собой с использованием того или иного протокола.
Под клиентом понимается программа, использующая ресурсы, а под сервером (по английски - слуга) программа, обслуживающая запросы клиентов на получение ресурсов определенного вида. Столь широкое определение включает в себя практически любую программную технологию, в которой участвуют больше одной программы, функции между которыми распределены асимметрично. Соответственно, говорят о технологии КС применителько к операционным системам, локальным и глобальным сетям и т. д.
Такое широкое определение рождает некоторую путаницу. Так, файл-серверная система тоже использует технологию клиент-сервер, однако с точки зрения архитектуры прикладных программ важным является то, какого рода ресурсы сервер предоставляет клиентам.
Понятие архитектуры клиент-сервер в системах управления предприятием связано с делением любой прикладной программы на три основных компонента или слоя. Этими тремя компонентами являются:
компонент представления (визуализации) данных;
компонент прикладной логики;
компонент управления базой данных.
Действительно, любая программа, компьютеризирующая выполнение той или иной прикладной задачи, должна обмениваться информацией с пользователем, осуществлять собственно обработку этой информации в рамках автоматизации того или иного бизнес-процесса, и, наконец, хранить данные используемые в программе, на том или ином постоянном носителе.Для локальных приложений, полностью работающих на ПЭВМ (например, Word или Excel), все эти компоненты собраны вместе и не могут быть распределены между различными компьютеры. Такая программа является монолитной и использует для выполнения ресурсы только того компьютера, на котором выполняется.
В файл-серверных приложениях часть компоненты хранения переносится на файловый сервер, однако, все манипуляции со структурами данных выполняются на клиентской машине, и код пользовательской программы тоже работает только на ней.Критерием, позволяющим отнести прикладную программы к архитектуре клиент-сервер является то, что хотя бы один из трех ее компонентов полностью выполняется на другом компьютере, и взаимодействие между компонентами на разных компьютерах осуществляется через ту или иную сетевую среду посредством передачи запросов на получение того или иного ресурса.
Различие между сервером и клиентом существенно только тогда, когда клиент пытается подключиться к серверу. Как только они соединятся, происходит процесс двухстороннего общения и не важно, что один является сервером, а другой - клиентом.
Итак, работа сервера - слушать соединение, и это выполняется с помощью специального создаваемого серверного объекта (сокета), который равен: сокет = IP + номер_порта. Работа клиента - попытаться создать соединение с сервером, что выполняется с помощью специального клиентского объекта (сокета). Как только соединение установлено, соединение превращается в потоковый объект ввода/вывода, и с этого момента можно рассматривать соединение как файл, который Вы можете читать, и в который Вы можете записывать данные. Единственная особенность, файл может обладать определенным интеллектом и обрабатывать передаваемые Вами команды.
Сокет(гнездо, разъем) (сокет=IP+ПОРТ) - это программная абстракция, используемая для представления “терминалов” соединений между двумя машинами. Для такого соединения, существует сокет на каждой машине, и можно представить себе виртуальный “кабель” соединяющий две машины, каждый конец которого вставлен в сокет.
Как известно в операционной системе Windows связь между разными процессами производится при помощи сокетов (Sockets). Соединяя вместе два сокета, можно передавать данные между разными процессами (локальными и удаленными). Реализация сокетов обеспечивает инкапсуляцию протоколов сетевого и транспортного уровней. Интерфейс , используемый при этом взаимодействии, называется Sockets API. Он представлен библиотекой WinSock и java.net.*.
Разработать клиент серверное-приложение на основе TCP\IP соединения.
Организовать работу удаленного генератора псевдослучайных последовательностей. Функции в программе: одно целое число в диапазоне, массив чисел в диапазоне.
После подключения
к серверу клиента у
После подключения клиента к серверу,пользователь указывает диапазон значений и их количество и посылает серверу запросы псевдослучайных последовательностей. Сервер принимает значения, обрабатывает и отправляет обратно готовый результат.
Работа была выполнена на языке программирования JAVA в среде разработки Eclipse.
В работе используются библиотека java.net.*; разработанная компанией Sun, которая упрощает разработку по технологии клиент – сервер.
Приложениереализовано по технологии клиент-сервер с использованием сокетов Windows, соответственно разрабатываются приложения: клиента и сервера. Приложение «Сервер» запускается в одном экземпляре и выполняет прослушивание заданного порта на предмет подключения клиента. После запроса на подключение сервер устанавливает соединение с клиентом и обрабатывает его запросы. Приложение «Клиент» может быть запущено в нескольких экземплярах.Клиенты подключаются к серверу и посылаютему запросы псевдослучайных последовательностей.Принятые от сервера последовательности отображаются в главном окне. Схема работы программного обеспечения представлена на рисунке 1.
запрос числа
Рис.1
Функциональный модуль «Клиент».
Модуль предоставляет текстовый интерфейс для взаимодействия с пользователем. Позволяет выбрать порт сервера, к которому необходимо подключаться для запроса псевдослучайных последовательностей. Также в главном окне модуля есть возможность выбрать тип запроса: одно число или массив чисел, границы для случайных чисел и их количество.
Функциональный модуль «Сервер».
Модуль отвечает за установление соединения с каждым новым клиентом. После соединения с клиентом модуль принимает запрос от клиента, после чего он выполняет запрошенную функцию (генерацию одного или массива псевдослучайных чисел) и возвращает клиенту полученные числа.
Для взаимодействия с пользователем в приложении используется оконный интерфейс. В текстовом, консольном режиме.
Главное меню приложения клиента на рисунке 2.
Рис.2
Нужное меню выбирает от 1 до 4. Номер функции отправляется серверу, он обрабатывает ее и высылает результат клиенту.
В данном программном
обеспечении прикладной функцией является
генерация псевдослучайной
Сетевое взаимодействие происходит посредством передачи и приема данных через сокеты, связывающие клиента и сервера. После установления соединения с сервером клиент по запросу пользователя передает запрос последовательности чисел. Формат запроса приведен ниже:
Ввод последовательности ->запись в переменные на сервере.
Выбор нужного действия -> передача нужной функции на сервер ->ответ от сервера.
Алгоритм программы клиента рисунок 4.
Рисунок 4
Алгоритм программы сервера рисунок 5.
Рисунок 5
Работа с сокетами представлена классами ServerSocket. Класс, используемый сервером, чтобы “слушать” входящие соединения и Socket- используемый клиентом для инициирования соединения. Как только клиент создает соединение по сокету, ServerSocket возвращает ему с помощью метода accept()соответствующий объект Socket на сервере, по которому будет происходить связь со стороны сервера. Начиная с этого момента, появляется соединение Socket к Socket, и можно считать эти соединения одинаковыми, т.к. они действительно одинаковые.
Для удобства пользователю предоставляется русскоязычное меню. Нужно выбрать нужный вариант из списка и следовать дальнейшему меню.
Вводить параметры для запроса последовательности псевдослучайных чисел и