Средства разработки сетевых приложений

Методы и технологии разработки клиент-серверных приложений

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра технологий электронного обучения (ТЭО) МЕТОДЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ КЛИЕНТ-СЕРВЕРНЫХ ПРИЛОЖЕНИЙ Учебное пособие ТОМСК

Кручинин Владимир Викторович, Морозова Юлия Викторовна Методы и технологии разработки клиент-серверных приложений : Учебное пособие. – Томск: Томский государственный университет систем управления и радиоэлектроники, 2018. – 106 с. Изложены основы разработки сетевых приложений, базирующихся на клиент/серверной модели. Даны основные понятия и логические основы компьютерных сетей. Рассмотрены: организация распределенных многопроцессорных и многопоточных приложений; средства синхронизации потоков и процессов. Приводятся методы и средства межпроцессорного обмена данными (сокеты, удаленный вызов процедур, логические каналы) Показаны примеры построения функциональных расширений WWWсервера на основе интерфейсов CGI и ISAPI. © Томский государственный университет систем управления и радиоэлектроники, 2018 © Кручинин В.В., Морозова Ю.В., 2018 2

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ. 5
1 КОМПЬЮТЕРНЫЕ СЕТИ. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ. 6
1.1 Структура сети . 6
1.2 Протоколы . 8
1.3 Адреса и имена. 9
1.4 Основные протоколы транспортного уровня UDP и TCP. 10
1.5 Основные службы TCP/IP. 10
1.6 Порт . 11
2 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРНЫХ СЕТЕЙ . 12
2.1 Модель «клиент/сервер» . 12
2.2 Операционные системы . 14
2.3 Серверное программное обеспечение . 14
2.4 Клиентское программное обеспечение . 16
3 ПРОГРАММНЫЕ ИНТЕРФЕЙСЫ . 17
3.1 Сокеты. 17
3.1.1 Основные понятия. 17
3.1.2 Основные функции API сокетов. 20
3.1.3 Простейшая реализация модели клиент/сервер на основе
сокетов. 20
3.1.4 Описание API-winsock2 . 21
3.2 Каналы (Pipes) . 27
3.2.1 Создание каналов . 27
3.2.2 Создание соединения с помощью именованных каналов. 28
3.2.3 Передача данных по именованному каналу . 29
3.2.4 Простейший пример реализации модели «клиент/сервер» . 30
3.3 Удаленный вызов процедур (RPC – remote call procedure) . 31
3.3.1 RPC для открытых систем . 31
3.3.2 RPC для Windows . 32
3.3.3 Пример создания сетевого приложения на основе RPC
Windows. 40
4 МНОГОПОТОЧНЫЕ ПРИЛОЖЕНИЯ. 49
4.1 Процессы. 49
4.2 Потоки (Thread). 52
4.3 Синхронизация потоков . 54
4.4 Атомарный доступ . 55
4.5 Критические секции . 56
4.6 Синхронизация потоков в системном режиме . 57
4.6.1 События (Events) . 59
4.6.2 Ожидаемые таймеры . 61
4.6.3 Семафоры . 62
4.6.4 Мьютексы. 63
4.7 Пулы потоков . 64
4.7.1 Очередь асинхронных вызов функций. 64
4.7.2 Использование порта завершения ввода/вывода . 65
4.7.3 Пример организации пула потоков . 66
5 ПРОСТЕЙШЕЕ СЕТЕВОЕ ПРИЛОЖЕНИЕ, ОСНОВАННОЕ НА
СОКЕТАХ . 68
5.1 Сервер . 68
5.2 Клиентское приложение. 70
6 РАЗРАБОТКА СЕТЕВЫХ ПРИЛОЖЕНИЙ НА ОСНОВЕ WWW-
СЕРВЕРА . 73
6.1 Обзор технологий . 73
6.2 Программирование CGI-скриптов . 75
6.2.1 Описание интерфейса . 75
6.2.2 Взаимодействие WWW-сервера и CGI-программы . 77
6.2.3 Переменные среды о сервере . 78
6.3 Программный интерфейс ISAPI . 82
6.4 Фильтры IIS . 86
7 ПРОГРАММИРОВАНИЕ КЛИЕНТ-СЕРВЕРНЫХ ПРИЛОЖЕНИЙ НА
ЯЗЫКЕ PYTHON . 90
8 ПРОГРАММИРОВАНИЕ КЛИЕНТ-СЕРВЕРНЫХ ПРИЛОЖЕНИЙ НА
ЯЗЫКЕ JAVA . 97
ЗАКЛЮЧЕНИЕ . 104
ЛИТЕРАТУРА . 105
Читайте также:  Программирование является частью информатики

ВВЕДЕНИЕ Развитие современных технических устройств не мыслим без внедрения технологий компьютерных сетей. Компьютерные сети являются необходимым элементом интеграции различного рода устройств и комплексов, в том числе и устройств промышленной электроники. Поэтому программирование компьютерных сетей является важным элементом подготовки современных инженеров и магистров, специализирующихся на проектировании сложных систем промышленной электроники. Данный курс «Методы и технологии разработки клиент-серверных приложений» предназначен для изучения основ и принципов создания сетевого программного обеспечения, базирующегося на клиент/серверной модели. Данный курс базируется на курсах «Информатика», «Программирование», «Технологии программирования», «Базы данных», «Компьютерные сети», «Основы вычислительной техники», «Операционные системы», «Введение в интернет» Курс имеет следующую структуру: 1. Основные понятия и логические основы компьютерных сетей. 2. Организация распределенных многопроцессных и многопоточных приложений. 3. Средства синхронизации потоков и процессов. 4. Средства межпроцессоного обмена данными (сокеты, удаленный вызов процедур, логические каналы). 5. Структура и простой пример организации клиент/сервер-ного приложения. 6. Построение функциональных расширений WWW-сервера на основе интерфейсов CGI и ISAPI. 7. Программирование клиент-серверных приложений на языке Python. 8. Программирование клиент-серверных приложений на языке Java. Для изучения данного курса необходимо знание и наличие практиче- ских навыков программирования на языке программирования С++ и Java для операционной системы MS Windows.

1 КОМПЬЮТЕРНЫЕ СЕТИ. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ 1.1 Структура сети Компьютерная сеть это совокупность компьютеров и других устройств, соединенных с помощью средств телекоммуникации с целью эффективной обработки данных и разделения ресурсов [14]. На рисунке 1.1 показаны основные элементы компьютерной сети. Рис. 1.1 – Структура компьютерной сети Компьютерная сеть состоит из рабочих станций, серверов, сетевого оборудования, различных устройств (принтер, плоттер, и пр.). Рабочая станция – это, как правило, персональный компьютер на котором работает клиент (пользователь компьютерной сети). Сервер – специально выделенный в сети компьютер, обеспечивающий обслуживание запросов некоторого множества клиентов. Подсеть – компьютерная сеть, входящая в другую компьютерную сеть. По назначению выделяют: файл сервер предназначен для хранения и архивации файлов; сервер печати предназначен для управления одним или несколькими принтерами; почтовый сервер предназначен для хранения и обработки электронной почты;

факс сервер предназначен для управления одним или несколькими факсами; телефонный сервер обычно обеспечивает связь между телефонной сетью и сетью Интернет; прокси сервер предназначен для обеспечения эффективной работы клиента в сети (например, в Интернет через прокси-сервер все пользователи некоторой локальной сети могут иметь доступ в Интернет используя один IP-адрес); сервер удаленного доступа обеспечивает доступ к компьютерной сети через модемные или другие линии связи; сервер приложений сервер, обеспечивающий выполнение специфических программ, необходимых для конкретной группы пользователей; игровой сервер обеспечивает выполнение сетевых игр; веб сервер обеспечивает доступ и манипулирование HTMLдокументами в сети Интернет. сервер баз данных обеспечивает доступ и манипулирование к базам данных. Сетевые устройства: хабы (hub) предназначены для организации рабочей группы; мосты (bridge) предназначены для соединения двух сегментов сети и локализации трафика в пределах каждого из них; переключатели (switch) предназначены для соединения нескольких сегментов локальной вычислительной сети; маршрутизатор (роутер) предназначен для объединения нескольких сетей различной конфигурации. Классификация компьютерных сетей Компьютерный сети можно классифицировать по ряду признаков. По размеру, охваченной территории выделяют: Локальные сети (LAN, Local Area Network). Территориальные сети (MAN, Metropolitan Area Network). Глобальные вычислительные сети (WAN, Wide Area Network). По типу сетевой топологии встречаются: Шина. Звезда. Кольцо. Решётка. Смешанной топологии.

Читайте также:  Программирование брелков мангуст 700

По архитектуре сети распределяют на: одноранговые (peer-to-peer), все компьютеры в сети одинаковые; клиент/сервер, когда часть компьютеров являются серверами, а другая – клиентами. Модель взаимодействия «клиент/сервер» предполагает, что сервер находится в пассивном состоянии ожидания запроса клиентов. Клиент находится в активном состоянии, инициирует обращение к серверу на обслуживание. Затем клиент ждет ответа на посланный запрос, в то время как последний обрабатывается сервером. 1.2 Протоколы Протоколом в компьютерных сетях называют набор правил для специфического типа связи. Для обеспечения обмена данными между узлами сети необходимо выполнить следующие действия: 1) произвести пакетирование данных; 2) определить пути пересылки данных; 3) осуществить физическую пересылку; 4) регулировать скорости пересылки данных; 5) обеспечить полную сборку полученных данных, без потерянных частей; 6) осуществить проверку полученных данных на наличие дублированных фрагментов; 7) информировать отправителя о том, сколько было успешно передано данных; 8) обеспечить пересылку данных в нужное приложение; 9) произвести обработку ошибок. В результате выполнения этих операций программное обеспечение существенно усложняется. Разбивая соответствующие действия по уровням, и записывая их в виде правил, получаем 7 уровневую модель взаимосвязи открытых компьютерных сетей (OSI) (табл. 1.1). Интернет – всемирная система добровольно объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества систем (протоколов) передачи данных. Таблица 1.1

Уровень Определение Протоколы
Физический Обеспечивает передачу ISDN
информации в виде фи- RS-232
зических сигналов
Канальный Обеспечивает форми- Ethernet
рование и передачу Token ring
кадров Fibre Channel
HDLC
Сетевой Обеспечивает управле- ICMP
ние передачей пакетов IP
через промежуточные IPX
узлы сети
Транспортный Обеспечивает управле- SPX
ние передачей данными TCP
между оконечными UDP
пунктами компьютер- RTCP
ной сети
Сеансовый Обеспечивают под- DNS
держание сеанса связи, FTP
Презентационный позволяя приложениям Gopher
Прикладной взаимодействовать HTTP
между собой длитель- IMAP
ное время. IRC
LDAP
NTP
NNTP
POP3
SSH
SMTP
Telnet
SNMP
РРР
Читайте также:  Современные языки программирования лекция

1.3 Адреса и имена Каждый сетевой узел должен иметь имя и адрес. Стратегия присваивания адресов и имен позволяет делегировать соответствующие полномочия. Схема имен и адресов Интернета позволяет: делегировать присвоение имен и адресов; именам отражать логическую структуру организации; присваивать адреса, отражающие топологию физической сети. Иерархическая структура имен, например, ie.tusur.ru , состоит в следующем ie – кафедра, tusur – организация, ru – Российский домен. В протоколе IP используются IP-адреса, которые идентифицируют рабочие станции, сервера и маршрутизаторы. IP-адрес должен быть уникальным. Соответствие между именем и IP-адресом узла сети осуществля-
ется с помощью специальных баз данных, хранящих пару имя-адрес. IPадрес представлен четырьмя октетами. Например, 191.200.182.101. IP протокол – это протокол сетевого уровня, обеспечивающий маршрутизацию данных в Интернете. Взаимодействия в сети могут быть: 1) без установки соединения, например, как при отправке почтового письма, написал адрес и отправил письмо; 2) с установкой соединения, как в телефоне, позвонил, получил ответ, сделал запрос, получил ответ и т.д. закрыл соединение. Кроме того, передача данных по сети может быть гарантированной или негарантированной. 1.4 Основные протоколы транспортного уровня UDP и TCP В таблице 1.2 показаны основные протоколы транcпортного уровня UDP и TCP. Таблица 1.2 – Основные протоколы транcпортного уровня UDP и TCP

UDP TCP
User Datagram Protocol Transmission control protocol
Не устанавливает соединения Устанавливает соединение
Не гарантирует получение Гарантирует получение
Посылает сообщение Устанавливает потокоориентиро-
ванную передачу данных
Простота организации Сложность организации
Имеет преимущества для широко- Хорошо интегрируется в модель
вещательных и многоадресных рас- “клиент-сервер”
сылок
1.5 Основные службы TCP/IP

Выделяются следующие основные службы TCP/IP: 1. Пересылка файлов осуществляется на основе протокола FTP (File Transfer Protocol). FTP обеспечивает доступ к удаленной файловой системе и позволяет переименовывать, удалять и копировать файлы и каталоги. 2. Удаленный доступ к компьютеру Telnet. 3. Электронная почта. Один из самых распространенных протоко- лов простой протокол пересылки почты SMTP (Simple Mail Transfer Protocol). 4. Всемирная паутина WWW ( World Wide Web) . 5. NFS (Network File System) – сетевая файловая система. Обеспечивает доступ клиента к файлу, в таком режиме, если бы файл располагался на компьютере клиента. 6. Новости. Приложения, работающие с новостями для обслуживания локальных досок объявлений BBS (Bulletin Board System).

Источник

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