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

Обоснование выбора технологии и программных средств для разработки утилиты. Требования к функциональным характеристикам и моделирование предметной области. Спецификация вариантов использования и расчет показателей экономической эффективности проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 13.12.2013
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

программный утилита моделирование

Введение

1. Анализ предметной области

1.1 Цель разработки

1.2 Область применения

1.3 Обоснование выбора технологии и программных средств для разработки утилиты

1.4 Определения, термины и сокращения

2. Детальные требования

2.1 Требования к функциональным характеристикам

2.2 Нефункциональные требования

2.3 Пользовательские интерфейсы

2.4 Аппаратные интерфейсы

2.5 Программные интерфейсы

2.6 Требования к реализации

3. Специальная часть

3.1 Моделирование предметной области

3.2 Спецификация вариантов использования

3.3 Моделирование динамических аспектов системы

3.4 Статический вид системы

4. Тестирование

5. Обоснование экономической эффективности проекта

5.1 Выбор и обоснование методики расчета экономической эффективности

5.2 Расчет показателей экономической эффективности проекта

5.3 Расчет экономии затрат от внедрения разработанной программы

5.4 Вывод

Заключение

Список использованной литературы

Приложение

Введение

В настоящее время ни одна организация или предприятие не обходится без использования сетевых технологий.

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

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

- исключается необходимость вызова IT-персонала при возникновении неполадок;

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

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

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

В ходе администрирования сети возникает необходимость удаленного управления всеми компьютерами этой сети.

Удаленное управление включает в себя:

- подключение к удаленному компьютеру;

- управление приложениями и процессами удаленного компьютера;

- управление устройствами удаленного компьютера;

- получение полной системной информации об удаленном компьютере;

- учет сетевого трафика;

- использование учетных записей и иерархии active directory;

- обеспечение безопасности и целостности передаваемой по сети информации путем шифрования;

- визуальное управление удаленным компьютером.

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

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

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

В третьей главе речь идет об этапах моделирования области применения и проектировании всей системы в целом.

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

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

1 . Анализ предметной области

1.1 Цель разработки

Цель данной работы заключается в исследовании технологий и архитектуры «клиент-сервер» и создании на их базе утилиты для удаленного администрирования.

Работа имеет следующие ключевые цели:

а) исследование проблемы администрирования локальных сетей;

б) исследование возможностей технологии «клиент-сервер»;

в) проектирование приложения, обеспечивающего функционал для удаленного администрирования;

г) написание программы для удаленного администрирования;

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

Для этих целей уже существует множество решений. Но, большинство этих решений, являются платными и, при удаленном управлении, могут быть использованы в качестве вирусов-троянов. Примеры таких программ: Radmin, Remote Manipulator System, Team Viewer и др. Все эти программы разные, но принцип работы везде один:

- узнать DNS имя или IP-адрес удаленного компьютера;

- используя remote procedure call или сокетное соединение установить связь;

- получить возможность управления устройствами и приложениями удаленного компьютера.

Переход организации к использованию разрабатываемого в ходе дипломного проектирования приложения Remote Administration Tools позволяет сэкономить на покупке лицензионного программного обеспечения.

Преимущества использования Remote Administration Tools:

- приложение полностью бесплатно;

- постоянное совершенствование решения;

- возможность изменения эргономики и дизайна по требованию пользователя.

Приложение состоит из двух частей - клиентской (управляющей) и серверной (управляемой).

Полное наименование приложения - Remote Administration Tools.

Краткое наименование приложения - RAT.

1.2 Область применения

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

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

Область применения данной технологии включает:

а) установление постоянного соединения между клиентской и серверной машинами;

б) использование ресурсов сервера для проведения вычислительных операций;

в) обеспечение надежности при обмене сообщениями между клиентом и сервером;

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

д) возможность управления устройствами серверного компьютера через удаленный клиентский компьютер;

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

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

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

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

Одним словом, программа для удаленного администрирования просто необходима каждому, в чьем распоряжении находится более одного компьютера.

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

Для того чтобы клиент работал, на удаленном ПК обязательно должна быть запущена серверная часть, поэтому при установке на удаленном ПК программу лучше сразу поместить в "Автозагрузку".

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

Remote administrator (Radmin):

- поддерживаемые ос: windows 9x/nt/2k/xp/2k3/vista;

- условия распространения: shareware;

- официальный сайт: www.radmin.com.

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

Безопасность:

- интеграция с системой безопасности windows. radmin полностью поддерживает ntlmv2, active directory, Kerberos;

- безопасная передача трафика. все передаваемые данные шифруются по стандарту aes;

- собственная система безопасности. radmin позволяет создавать собственные учетные записи, наделяя их определенными правами;

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

- ведение логов. В лог попадает имя подключившегося пользователя и его ip-адрес;

- защита от угадывания пароля. radmin позволяет пресечь подбор пароля, устанавливая блокировки после нескольких попыток неправильного ввода.

Ключевые возможности:

- передача файлов на удаленный ПК;

- получение вида удаленного рабочего стола;

- поддержка нескольких одновременных соединений;

- telnet-сервер.

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

DameWare NT Utilities:

- поддерживаемые ос: windows nt/2k/xp/2k3/vista;

- условия распространения: shareware;

- официальный сайт: www.dameware.ru.

DameWare NT Utilitiest - находка для любого системного администратора. Используя этот «чемоданчик» инструментов, можно забыть о большинстве решений, которые предоставляет стандартная консоль MMC.

Безопасность:

- шифрование трафика на основе crypto api;

- возможность аутентификации по смарт-карте;

- поддержка системы безопасности серверных версий windows, интеграция с activedirectory;

- собственная система безопасности;

- ограничение подключения по IP-адресам.

Ключевые возможности:

- мощный браузер объектов ActiveDirectory. С помощью данной функции можно легко и быстро управлять такими объектами AD как Organizational Units, Контейнеры, Пользователи, Группы, Контакты, Компьютеры, Общие ресурсы и т.д. Причем управлять объектами AD с помощью DNTU гораздо удобнее, чем с помощью стандартных средств;

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

- telnet-сервер;

- встроенные tcp-утилиты: ping, traceroute, mx test и другие;

- удаленный вид рабочего стола.

DameWare NT Utilities возможностей для администрирования предоставляет гораздо больше, чем Radmin, но относительно безопасности ему проигрывает. DNTU лучше использовать внутри локальной сети, а для администрирования удаленных офисов стоит использовать VPN.

Tight VNC:

- поддерживаемые ос - windows 2000/xp/2003/vista, linux;

- условия распространения gpl;

- официальный сайт - www.tightvnc.com.

Tight VNC - одна из немногих программ для удаленного администрирования, которая распространяется бесплатно и имеет версии как под Unix-like системы, так и Windows. Хоть ее функционал не так богат, это хорошая находка для администраторов, которым приходится одновременно администрировать Windows/Unix серверы.

Безопасность: собственная система безопасности.

Возможности:

- удаленный вид рабочего стола;

- пересылка файлов.

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

Программа не предъявляет жестких требований к аппаратному и программному обеспечению, поддерживает современные операционные системы Windows Vista и 2008 Server.

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

Основные возможности:

- высочайшая производительность, как в локальной, так и в медленных сетях;

- полная совместимость с Windows Vista;

- широкий спектр режимов работы программы -- передача файлов, удаленный диспетчер задач, wake on LAN и многое другое;

- удаленная установка. доступно несколько видов удаленной установки, в т.ч. в домене, с использванием групповой политики безопасности и msi;

- безопасность. все данные шифруются с использованием современных технологий и протоколов обмена ключами (rsa с 2048 битным ключом обмена и aes с 256 битным сеансовым ключом);

- возможность настроить программу на работу в условиях сложной топологии сети, благодаря таким функциям, как «соединение через» и «обратное соединение»;

- поддержка нескольких соединений;

- бесплатная техническая поддержка [1].

В таблице 1 отображены сравнительные характеристики рассмотренных программ для удаленного администрирования.

Таблица 1

Сравнительные характеристики программ удаленного администрирования

Параметр

Radmin

DameWare NT Utilities

Tight VNC

Шифрование данных

+(AES)

+(CryptoAPI)

+

Поддержка Vista (32 bit)

+

+

+

Поддержка Vista (64 bit)

-

+

-

Интеграция с системой безопасности Windows

+

+

-

Своя система безопасности

+

+

-

Передача файлов

+

+

+

Фильтрация IP

+

+

+

Параметр

Radmin

DameWare NT Utilities

Tight VNC

Синхронизация буфера обмена

+

+

+

Обратное соединение

-

+

+

Защита от атак BruteForce

+

-

-

Отправка сообщений

+

-

-

Оптимизация передаваемого трафика

+

+

+

Аутентификация по смарт-карте

-

+

-

Поддержка протокола Kerberos

+

-

-

Поддержка Unix

-

-

+

Ведение логов

+

+

+

Просмотр вида удаленного рабочего стола

+

+

+

Telnet позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов [2].

Telnet предлагает три услуги:

а) определяет сетевой виртуальный терминал (nvt - network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе;

б) включает механизм, который позволяет клиенту и серверу согласовать опции обмена;

в) обеспечивает симметрию соединения, допуская любой программе (например ftp) выступать в качестве клиента [3].

Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей.

Telnet взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.

При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.

После того как TELNET связь установлена, начинаются переговоры об используемых опциях (Таблица). Каждая из договаривающихся сторон может послать другой один из четырех запросов will, do, wont и dont.

Далее TELNET переходит в режим ввода. В этом режиме любой введенный текст пересылается удаленной ЭВМ. Ввод может производиться посимвольно или построчно. При посимвольном режиме каждый введенный символ пересылается немедленно, при построчном режиме отклик на каждое нажатие клавиши производится локально, а пересылка выполняется лишь при нажатии клавиши <Enter>. Некоторые опции требуют дополнительных данных, такая информация ожет быть получена с помощью субопций (RFC-1091). При этом клиент посылает трехбайтовую последовательность IAC WILL 24, где 24 - код-идентификатор терминала. Получатель может откликнуться последовательностью IAC DO 24, если все в порядке. Сервер в свою очередь посылает последовательность IAC SB 24 1 IAC SE, запрашивая тип терминала клиента. Здесь код 24 означает, что это субопция для опции типа терминала,а следующая 1 является командой "пришлите код вашего терминала". Клиент в свою очередь может откликнуться, послав последовательность - IAC SB 24 0 I B M P C IAC SE. Здесь байт 0 имеет значение "мой терминал имеет тип". Список кодов терминалов содержится в RFC-1700 [4].

В таблице 2 представлены коды операций службы Telnet.

Таблица 2

Коды опций в Telnet

Код опции в Telnet

Описание

Номер RFC

0

Двоичный обмен

856

1

Эхо

857

2

Повторное соединение

NIC 15391

3

Подавление буферизации ввода

858

4

Диалог о размере сообщения

NIC 15393

5

Статус

859

6

Временная метка

860

Код опции в Telnet

Описание

Номер RFC

7

Удаленный доступ и отклик

726

8

Длина выходной строки

Nic 20196

9

Размер выходной страницы

Nic 20197

10

Режим вывода символов <возврат каретки>

652

11

Вывод горизонтальной табуляции

653

12

Установка положения табуляции при выводе

654

13

Режим вывода команды смены страницы

655

14

Вывод вертикальной табуляции

656

15

Определяет положение вертикальной табуляции

657

16

Режим вывода символа <перевод строки>

658

17

Расширенный набор кодов ASCII

698

18

Возврат (logout)

727

19

Байт-макро

735

20

Терминал ввода данных

732

21

Supdup

736

22

Supdup вывод

747

23

Место отправления

779

24

Тип терминала

930

25

Конец записи

885

26

Tacacs- идентификация пользователя

927

27

Пометка вывода

933

28

Код положения терминала

946

29

Режим 3270

1041

30

X.3 PAD

1053

31

Размер окна

1073

Многие telnet-клиенты позволяют также указывать явно номер порта, через который должна быть установлена связь. По умолчанию это порт 23. Обычный пользователь не интересуется, через какой порт он работает. Но иногда желательно реализовывать telnet через разные порты системы, обеспечивающие различные услуги, это бывает полезно и с отладочными целями. Используя команду telnet XXXXXX.domain <номер порта> можно осуществить связь через порт с заданным номером с узлом XXXXXX.domain. Многие библиотеки используют метод портов для обеспечения доступа к своим ресурсам внешних Inernet-пользователей.

Помимо telnet существуют и другие стандартные процедуры, выполняющие схожие задачи.

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

Tcpdump будет, если не запущен с ключем -c, продолжать собирать пакеты до тех пор, пока не будет прерван сигналом SIGINT (генерируемым, для примера, вводом Вашего символа прерывания, обычно CTRL+C) или сигналом SIGTERM (обычно генерируемого командой kill). Если запуск был с ключем -c, то сбор пакетов будет продолжаться до тех пор, пока не произойдет прерывание сигналом SIGINT или SIGTERM или пока не будет обработано определенное количество пакетов [5].

Когда tcpdump закончит сбор пакетов, то будет сообщено об количестве:

- пакетов "полученных фильтром" (received by filter) (значение зависит от той ОС, на какой Вы запускаете tcpdump, и, возможно, от способа, котрым ОС была сконфигурирована - если фильтр был определен в командной строке, на некоторых ОС будут сосчитаны пакеты независимо от фильтрующего выражения, а в других ОС будут сосчитаны только те пакеты, которые попадают под фильтрующее и выражение, и были обработаны tcpdump);

- пакетов "отброшенных ядром" (dropped by kernel) (это число пакетов, которые были отброшены, в зависимости от механизма сбора пакетов (недостаточного объема буферов) на той ОС, где запускается tcpdump, ОС предоставит эту информацию приложению или нет, и тогда будет выведено число 0).

Дальше идет описание ключей. Вот некоторые из них:

- -c count выйти после получения определенного количества пакетов;

- -C file_size перед записью "сырого" пакета в файл, происходит проверка на превышение размером файла лимита, указанного в file_size. Если размер файла больше, то файл закрывается и открывается новый. Новый файл будет иметь имя определенное в ключе -w, со стоящим в конце числом 2, которое будет увеличиваться в следующих именах файлов. file_size определяет размер в миллионах байт (1,000,000), а не мегабайтах (1,048,576);

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

- -i interface собирать пакеты только на определенном интерфейсе. Если не указан - берется минимальный по номеру интерфейс (исключая loopback). Для Linux-ядер 2.2 и более новых, возможно указать 'any', тогда будет происходить сбор на всех интерфейсах, но они не будут переведены в режим promiscuous;

- -n не преобразовывать адрес хоста в имя. Может быть использовано, если необходимо избегать DNS-запросов;

- -nn не преобразовывать протокол и номер порта в их имена;

- -N не выводить доменную часть имени хоста. Например, при данном ключе будет выводится "nic" вместо "nic.ddn.mil";

- -p не переводить интерфейс в режим promiscuous. Следует заметить, что интерфейс может быть в режиме promiscuous по другим причинам;

- -r file читать пакеты из file (который, был создан с ключем -w). Если file указан как "-", то используется стандартный ввод;

- -t не выводить временной штамп (timestamp) в каждой строке дампа (dump);

- -tt выводит не форматированный временной штамп в каждой строке дампа;

- -ttt выводить разницу (в микросекундах) между текущей и предыдущей строками дампа;

- -tttt выводить временной штамп вместе с датой в формате по-умолчанию в каждой строке дампа;

- -v подробный вывод. Для еще более подробного вывода используются: -vv и -vvv;

- -w file писать "сырые" пакеты в file перед тем как произвести их разбор и вывести. Они могут быть позднее выведены с ключем -r. Если file указан как "-", то используется стандартный вывод;

- -x печатать каждый пакет (без заголовков уровня соединения) в шестнадцатиричном виде;

- -X помимо шестнадцатиричного вида выводить их ASCII-значения.

Изначально программа tcpdump была разработана для UNIX-подобных систем, позже - портирована на другие системы.

Для Windows в настоящее время известны:

- "tcpdump для Windows", коммерческая реализация, в виде одного файла tcpdump.exe;

- "WinDump", реализация с открытым кодом, требующая установки библиотеки WinPcap (свободное ПО).

Пример tcpdump выявление аномалий TCP путем вычисления отношения числа исходящих пакетов с SYN флагом к числу входящих с SYN+ACK:

SYN_ONLY_FROM_ISP=`tcpdump -n -l -r $1 'src net 192.168.0.0/24' and \ 'dst net not 192.168.0.0/24' and 'tcp[13] == 2' | wc | awk '{print $1}'`[6].

1.3 Обоснование выбора технологии и программных средств для разработки утилиты

1.3.1 Архитектура клиент-сервер

Технология клиент-сервер подразумевает выполнение запросов пользователей специализированным компьютером, называемым сервером. Пользователи, которые отправляют запросы на этот сервер, называются клиентами. Запрос на выполнение операции с данными (например, обычная выборка), выдаваемый клиентом, порождает на сервере поиск и извлечение данных. Извлеченные данные транспортируются по сети от сервера к клиенту. Системы, использующие технологию клиент-сервер, разделяются на две части: клиентская часть обеспечивает графический интерфейс и находится на компьютере пользователя; серверная часть обеспечивает управление данными, разделение информации, администрирование и безопасность и находится на специально выделенных для этого компьютерах [7].

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

а) GUI;

б) бизнес-логика;

в) СУБД.

В основе своей двухуровневая система имеет GUI и бизнес-логику с прямым доступом к базе данных. GUI находится на системе клиента, а база данных - либо у клиента, либо на сервере. Обычно GUI пишется на C++, Visual Basic, Access Basic и т.д. Типичными базами данных являются MIcrosoft Access, Personal Oracle и т.д.

Двухуровневая система изображена на рисунке 1.

Рисунок 1. Двухуровневая система

Большинство клиент-серверных приложений следуют сегодня трехуровневой стратегии, при которой GUI, бизнес-логика и базы данных логически разбиты на три слоя. Здесь GUI пишется на Visual Basic, C++ или Power Builder, средствами разработки среднего слоя также служит C++ или Visual Basic. В качестве базы данных используются Oracle, Microsoft SQLServer и т.д. Трехуровневая концепция дала начало эпохе серверов баз данных, серверов приложений и клиентских GUI-машин. Такие операционные системы как UNIX, Windows NT и Solaris правят в мире серверов баз данных и приложений. Клиентские операционные системы (Windows) популярны среди разработчиков GUI. Двухуровневая архитектура может быть дополнена третьим программным уровнем во избежание встраивания логики приложения как в клиентскую часть, так и в базу данных. В трехуровневой архитектуре большая часть логики приложения зафиксирована на среднем уровне. В подобной архитектуре при изменении направления деловой активности или бизнес-процессов меняется только программное обеспечение программного слоя.

Трехуровневая система изображена на рисунке 2.

Рисунок 2. Трехуровневая система.

Сейчас, во времена Internet и Java изменились взгляды на отношения клиента и компьютерной сети. Апплеты Java с их объектами и методами привели к возникновению идеи многоуровневой клиент-серверной системы. Теоретически апплет Java может содержать бизнес-логику, GUI или СУБД. Каждый апплет можно рассматривать как отдельный слой. Концепция объектно-ориентированных многоуровневых систем возникла до появления Internet и Java. Архитектуры CORBA фирмы OMG и OLE (теперь ActiveX) фирмы Microsoft являются первыми модульными объектно-ориентированными системами, работающими на разных платформах. Internet и Java упростили реализацию этой концепции. Конструкция и реализация систем прошли путь от двух и трехуровневой архитектуры до современных межсетевых многоуровневых архитектур, основанных на апплетах Java [8].

Многоуровневая система изображена на рисунке 3.

Рисунок 3. Многоуровневая система

1.3.2 Протокол передачи команд и сообщений об ошибках (ICMP)

Internet control message protocol используется программным обеспечением ЭВМ при взаимодействии друг с другом в рамках идеологии TCP/IP. Осуществление повторной передачи пакета, если предшествующая попытка была неудачной, лежит на TCP или прикладной программе. При пересылке пакетов промежуточные узлы не информируются о возникших проблемах, поэтому ошибка в маршрутной таблице будет восприниматься как неисправность в узле адресата и достоверно диагностироваться не будет. ICMP-протокол сообщает об ошибках в IP-дейтограммах, но не дает информации об ошибках в самих ICMP-сообщениях. icmp использует IP, а IP-протокол должен использовать ICMP. В случае ICMP-фрагментации сообщение об ошибке будет выдано только один раз на дейтограмму, даже если ошибки были в нескольких фрагментах. Подводя итоги, можно сказать, что ICMP-протокол осуществляет:

- передачу отклика на пакет или эхо на отклик;

- контроль времени жизни дейтограмм в системе;

- реализует переадресацию пакета;

- выдает сообщения о недостижимости адресата или о некорректности параметров;

- формирует и пересылает временные метки;

- выдает запросы и отклики для адресных масок и другой информации.

ICMP-сообщения об ошибках никогда не выдаются в ответ на:

- icmp-сообщение об ошибке;

- при мультикастинг или широковещательной адресации;

- для фрагмента дейтограммы (кроме первого);

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

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

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

Некоторые из датаграмм могут исчезнуть в сети, не вызвав при этом ни каких оповещений. Протоколы более высокого уровня, использующие протокол IP, должны применять свои собственные процедуры для обеспечения надежности передачи данных, если таковая требуется [9].

В таблице 3 указан список типов сообщений.

Таблица 3

Список типов сообщений

Сообщение

Описание

0

Ответ на запрос эхо

3

Адресат недостижим

4

Приостановка отправителя

5

Переадресация

8

Эхо-запрос

11

Превышение контрольного времени

12

Проблемы с параметрами

13

Штамп времени

14

Ответ на запрос штампа времени

15

Запрос информации

16

Ответ на запрос информации

1.3.3 Среда разработки Borland Delphi 7

Delphi - это комбинация нескольких важнейших технологий:

- высокопроизводительный компилятор в машинный код;

- объектно-ориентированная модель компонент;

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

- масштабируемые средства для построения баз данных.

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).

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

Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Для начала - неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему “с нуля”, просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250. Скептики, возможно, не поверят мне, когда я скажу, что на Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Тем не менее, это так. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток. Постойте, - скажете вы, ведь это уже было. Да, это было в Visual Basic.

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD - rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени.

Delphi такие ограничения не присущи. Хорошее доказательство тому - это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт - журнал Visual Basic Magazine присудил свою премию Delphi for Windows.

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

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

Team Development Support - средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi.

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

Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затараты на разработку.

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

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

Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры.

Эта библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Delphi полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями.

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

Delphi (Дельфи) - cреда программирования, использующая язык Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. По сути, является наследником языка Pascal с объектно-ориентированными расширениями.

Изначально язык был предназначен исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взиамосязаны. Аналогичная ситуация имела место и ранее -- см. Турбо Паскаль.

Реализация языка Delphi проектом Free Pascal позволяет использовать его для создания приложений для таких платформ, как Mac OS X, Windows CE и Linux.

1.4 Определения, термины и сокращения

Ниже представлена таблица 3 определений, терминов и сокращений

Таблица 3

Определения, термины и сокращения

Сокращение или термин

Определение

ЛВС

Локальная вычислительная сеть

LAN

Local Area Network

Файрвол

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

GUI

Графический пользовательский интерфейс

Active Directory

Служба каталогов корпорации Microsoft для операционных систем семейства Windows NT.

RAT

Remote Administration Tools

(Инструменты для удаленного администрирования)

Сокет

Название программного интерфейса для обеспечения обмена данными между процессами.

DNS

Domain Name System

IP-адрес

Сетевой адрес узла в компьютерной сети, построенной по протоколу IP

ПК

Персональный компьютер

Бизнес-логика

Часть программы, имеющая дело с расчетами

СУБД

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

IDE

Integrated Developer Environment

IP

Internet Protocol

ICMP

Internet Control Message Protocol

IDEF0

Методология проектирования и анализа бизнес-процессов

2. Детальные требования

2.1 Требования к функциональным характеристикам

Функциональные требования к разрабатываемой утилите:

- подключение к пользовательской машине;

- получение полной информации об операционной системе и технических характеристиках пользовательской машины;

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

- вызов экрана, отображающего рабочую область монитора пользовательской машины;

- отключение клавиатуры и «мыши» на пользовательской машине;

- отправка сообщений, имитирующих стандартные окна сообщений windows;

- сохранение списка подключенных машин предыдущей сессии в отдельном файле RD.ini;

- применение некоторых функций сразу к нескольким компьютерам;

- во избежание критических ситуаций визуальное управление проводится только над одним компьютером;

- скрытие запущенного серверного приложения в системном трее;

- создание инсталлятора для серверного приложения;

- создания инсталлятора для клиентского приложения;

- входными данными должны быть IP-адрес и имя узла;

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

2.2 Нефункциональные требования

Утилита RAT обеспечивает возможность добавления неограниченного количества элементов в список управляемых компьютеров.

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

- для операций навигации по экранным формам системы - не более 2 сек;

- для перехвата визуального управления - не более 15 сек;

- для операций подключения к удаленному компьютеру - не более 6 сек.

В случае контроля сети файрволом или антивирусом указанные временные характеристики могут несколько растянуться.

Система должна сохранять работоспособность и обеспечивать восстановление своих функций при возникновении следующих внештатных ситуаций:

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

- при ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС;

- при ошибках, связанных с программным обеспечением (ОС и драйверы устройств), восстановление работоспособности возлагается на ОС.

Для защиты аппаратуры от бросков напряжения и коммутационных помех должны применяться сетевые фильтры.

В ходе проектирования были наложены следующие ограничения:

- ограничения по инструментам и языкам. Строгое использование интегрированной среды разработки (IDE) Delphi 7 и библиотеки VCL;

- приложение предназначено для работы в ОС Microsoft Windows 95/98/2000/ME/XP;

- ограничения по проектированию - не ограничено.

2.3 Пользовательские интерфейсы

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

В отличие от интерфейса командной строки, в ГИ пользователь имеет произвольный доступ (с помощью устройств ввода - клавиатуры, мыши, джойстика и т. п.) ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в ГИ реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями [10].

Одним из требований к хорошему графическому интерфейсу программной системы является концепция «делай то, что я имею в виду» или DWIM (Do What I Mean). DWIM требует, чтобы система работала предсказуемо, чтобы пользователь заранее интуитивно понимал, какое действие выполнит программа после получения его команды.

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

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

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

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

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

На рисунке 4 изображено главное окно клиентского приложения.

Рисунок 4. Главное окно клиентского приложения

Для добавления или удаления элементов в список подключенных компьютеров достаточно вызвать контекстное меню нажатием правой кнопки мыши на любом месте экранной формы, подписанного Desktop (рисунок 5).

Рисунок 5. Добавление и удаление компьютеров

При добавлении компьютера вызывается окно «Добавление объекта» (рисунок 6).

Рисунок 6. Добавление объекта

Окно визуального удаленного управления изображено на рисунке 7.

Рисунок 7. Окно визуального управления

На рисунке 8 представлено окно «Диспетчер задач».

Рисунок 8. Диспетчер задач

На рисунке 9 представлено окно отправки сообщений на удаленный компьютер.

Рисунок 9. Отправка сообщений

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

Рисунок 10. Завершение работы

На рисунке 11 изображено окно «Системная информация»

Рисунок 11. Системная информация

На рисунке 12 представлено изображение окна «Дистанционная командная строка».

Рисунок 12. Дистанционная командная строка

Сообщения выводятся в отдельном окне. Например, диалоговое окно «удаление объекта» (рисунок 13).

Рисунок 13. Удаление объекта

2.4 Аппаратные интерфейсы

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

Минимальные требования к аппаратуре администраторского компьютера:

- HDD 30 MB;

- CPU Intel Pentium III 1.8 GHz;

- 256 MB RAM;

- интегрированная или VGA видеокарта;

- сетевая карта;

- клавиатура;

- мышь.

Минимальные требования к аппаратуре пользовательского компьютера:

- HDD 30 MB;

- CPU Intel Pentium III 1.8 GHz;

- 256 MB RAM;

- сетевая карта;

- клавиатура;

- мышь.

Рекомендуемые требования к аппаратуре администраторского компьютера:


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.