Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода по домашнему заданию ОС.doc
Скачиваний:
16
Добавлен:
10.11.2018
Размер:
179.71 Кб
Скачать

1. Теоретическая часть

В данном домашнем задании за основу были взяты два сетевых протокола UDP и TCP/IP. Сетевой протокол TCP/IP используется, как позволяющий устанавливать устойчивые соединения между компьютерами в локальной сети и контролировать передачу данных между ними. Протокол UDP применяется в качестве воспомогательного в рамках клиентской части комплекса для удобства поиска серверных частей, что достигается при использовании широковещательной (Broadcast) рассылки информационных пакетов. Благодаря этим особенностям были выбраны два вышеназванных протокола.

В качестве среды разработки выбрана Borland Delphi 6.0, которая позволяет существенно сократить время на пректирование интерфейса программного комплекса за широкого набора стандартных визуальных компонентов, а также упрощает отладку приложениий в среде Windows.

Кроме данной среды были также использованы следующие программные продукты:

Install Shield Express – среда создания исталляционных версий программ.

HTML Kit – среда для разработки пакетов документации к программным продуктам в формате языка гипертекстовой разметки текста.

Сетевой протокол TCP/IP реализован в Delphi при помощи невизуальных компонентов TclientSocket и TserverSocket. Эти компоненты расположены в палитре компонентов на странице с названием Internet. На этой странице собраны компоненты Delphi, которые или обеспечивают коммуникацию по протоколу TCP/IP - протоколу обмена данными, или используются для обработки данных, передаваемых через конкретный порт.

При детальном рассмотрениии механизм передачи данных между компьютерами в вычислительной сети по протоколу TCP/IP состоит в следующем.

Каждый компьютер, поддерживающий протокол TCP/IP, имеет свой 32-битный IP-адрес, например 192.168.0.3. В компонентах Delphi этот адрес определяется либо в свойстве Host, либо в свойстве Address. Иногда вместо IP-адреса используется имя компьютера, например www.torry.ru. При использовании имени первоначально происходит обращение к серверу имен, который возвращает IP-адрес для данного имени.

Перед тем, как передавать данные по протоколу TCP/IP, необходимо установить связь между двумя компьютерами. Компьютер, который инициализирует эту связь принято называть «клиентом», а компьютер, который должен откликнуться на инициализацию связи для обмена данными, - «сервером». В связи с этим сетевые компоненты Delphi, которые обеспечивают коммуникацию по протоколу TCP/IP, разбиваются на две группы - клиентские (TclientSocket - используется для реализации клиентских приложений) и серверные (TserverSocket - для реализации приложений на сервере).

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

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

При этом порт в протоколе TCP/IP играет двойную роль. Прежде всего одновременно может работать несколько приложений, обеспечивающих обмен данными через разные порты, и при этом они не будут захватывать данные друг у друга. Формально это соответствует многоканальной коммуникации - как будто компьютер имеет несколько сетевых карт и каждое из приложений работает со своей картой. Во-вторых, номер порта несет в себе информацию о типе передаваемых данных. Например, если данные поступили на 80-й порт, то их следует обрабатывать как гипертекст, если на 21-й порт - то как данные протокола обмена файлами. Впрочем, легко можно создать пару приложений (клиентское и серверное), которые через 80 порт будут осуществлять обмен данными в собственном формате. В компонентах Delphi порт обычно задается в свойстве Port, причем это свойство имеется как у клиентских компонентов, так и у серверных. Следует специально отметить, что после установки связи инициировать отправку данных может как клиент, так и сервер. Но, по умолчанию принято считать, что инициатором обычно должен выступать клиент.

Компоненты ServerSocket и ClientSocket предназначены для реализации коммуникационных функций между двумя компьютерами (клиентом и сервером) через протокол TCP/IP. Для использования этих компонентов необходимо после установки компонента на форму…

Для поддержки протокола UDP в домашнем задании используется соответствующий компонент NMUDP со страницы FastNet. Этот компонент который совмещает в себе сервер и клиент одновременно. Он осуществляет пересылку данных с использованием протокола UDP …

Также в работе применяется компонент дополнительного инсталлируемый в палитру DelphiAnimated Tray Icon VCL v3.3 Professional Edition. Он применяется…

В клиетской части программы (которая выполняется на ЭВМ администратора ЛВС игрового зала) компоненты типа TclientSocket создаются динамически по мере необходимости, что можно отнести к несомненным достоинствам программы (экономия ресурсов системы, занимаемой памяти и т.д.). В серверной части комплекса (на рабочих местах посетителей игрового зала) применяется компонент типа TserverSocket, который является единственным и служит для приёма сообщений от клиентской части комплекса.

В разделе описания концептуальной модели (примерный объём - 3 и более страниц) должны быть раскрыты и подробно описаны (желательно с приведением блок-схем):

  • основной алгоритм, связанный с совместным использованием процессами (компонентами программного комплекса) ресурсов распределенной системы;

  • правила взаимодействия процессов с приведением набора и форматов примитивов для обмена данными;

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