Протокол HTTP - Курсовая работа

бесплатно 0
4.5 21
Разработка серверной программы, которая позволяет удаленно наблюдать за компьютером, работающим под управлением Linux. Условия, необходимые для решения данной задачи: используемые протоколы передачи данных, программные средства, динамические библиотеки.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Распределенные приложения, доступ к которым осуществляется посредством линий связи, оказались очень удобными - появилась возможность разделять места хранения данных и эффективно организовывать доступ к ним персонала из любой точки земного шара. Разумеется, активное использование распределенных веб-приложений накладывает крайне высокие требования на платформу, на которой происходит их выполнение - должна обеспечиваться надежная и бесперебойная работа серверов, высокая скорость доступа и возможность динамического обновления программного обеспечения на серверных компьютерах. Все эти системы спроектированы в соответствии со стандартом POSIX и имеют идентичный программный интерфейс, что позволило с легкостью переносить приложения, написанные в одной системе, на другую. С появлением большого числа серверов под управлением операционных систем семейства UNIX встал вопрос об администрировании этих серверов и, в частности, производить административные действия удаленно, посредством сетей передачи данных. Необходимость подобных действий вызвана тем, что физически сервер не всегда может быть доступен: администратор может обслуживать сразу несколько серверов, физически отстоящих друг от друга на значительное расстояние, что не позволяет получить непосредственный доступ к каждой машине; также администратор не может находиться на рабочем месте постоянно, тогда как неполадки могут возникнуть в любой момент.В случае разработки серверной программы наблюдения за состоянием Linux-системы был выделен ряд требований, которые в процессе разработке в той или иной степени были удовлетворены: · Должна быть возможность подключения к программе посредством программного обеспечения, установленного на большинстве компьютеров и самых разнообразных операционных системах, например, Интернет-браузера; это приводит к тому, что программой должны в определенной степени поддерживаться распространенные протоколы передачи данных; · Программа должна поддерживать возможность одновременного подключения нескольких клиентов; при этом не должно быть взаимного влияния между частями программы, отвечающими за обработку запросов от различных клиентов: ошибка при работе с одним из клиентов не должна приводить к краху всей программы и не должна влиять на работу с другими клиентами;Протоколом передачи данных называется ряд правил и утверждений, предназначенных для создания унифицированного интерфейса между взаимодействующим программным обеспечением. Это позволяет разрабатывать приложения, взаимодействие между которыми определяется не операционной системой, под управлением которой они работают, а протоколами, учтенными при разработке. Все современные протоколы передачи данных классифицированы организацией ISO на уровни, в результате чего появилось понятие модели OSI (open systems interconnection - соединение открытых систем). Связи (datalink) - представлен драйверами сетевого оборудования и программным обеспечением нижнего уровня. Сетевой (network) - представлен протоколами IPV4 и IPV6.При разработке программы основным протоколом передачи информации был выбран протокол транспортного уровня - TCP (Transmission Control Protocol - протокол контроля передачи). Этот протокол является надстройкой над протоколом IP и предоставляет некоторую дополнительную функциональность: · Протокол обеспечивает надежную передачу данных, осуществляя, если необходимо повторную отправку или прием пакетов, делая это прозрачно для приложения, в отличие от протокола IP; · Протокол TCP имеет принятый в большинстве операционных систем программный интерфейс, называемый сокетами (sockets), что сильно упрощает его применение при разработке приложений.Чтобы получить некоторую интересующую информацию, клиент посылает серверу запрос (request), содержащий описание запрашиваемой информации. Эта программа осуществляет обработку запросов от клиентов, передавая запрошенные данные в виде ответов (response), содержащих помимо искомых данных метаинформацию, их описывающую. Сервер, анализируя запрос, выполняет необходимые действия: формирует ответ, включая в него тело запрошенного документа. Можно разделить эти промежуточные точки на три группы: · Прокси-серверы (proxy-server) - программа-посредник, выполняющая функции как клиента, так и сервера с целью создания запросов от имени других клиентов. Запросы обслуживаются прокси-сервером, или пересылаются им с внесением в них изменений (в этом случае прокси-сервер называется непрозрачным) или без изменений (в этом случае прокси-сервер называется прозрачным).Всю системную информацию об операционной системе Linux можно разделить на две группы - по признаку расположения этой информации в системе: 1. Статическая информация - к этой группе можно отнести все текстовые конфигурационные файлы, оказывающие влияние на процесс загрузки системы, функционирование ее компонент. Подобная информация может быть получена чтением контекста памяти ядра операционной системы; доступ к этой информации осуществляется через файловую систему /proc (см. п.Впоследствии был предложен мех

План
Содержание

Содержание 1

Введение 4

1. Исследовательский раздел 8

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

1.2 Передача данных 9

1.2.1 Протоколы передачи данных 9

1.2.2 Протокол TCP 11

1.2.3 Протокол HTTP 12

1.3 Системная информация ОС Linux 18

1.3.1 Расположение системной информации 18

1.3.2 Файловая система /proc 19

2. Технологический раздел 24

2.1 Выбор языка программирования 24

2.2 Программные средства 24

2.2.1 Потоки 24

2.2.2 Семафоры и мьютексы 25

2.2.3 Сокеты 26

2.2.4 Сигналы 27

2.3 Структура модулей программы 27

2.3.1 Система инициализации 29

2.3.2 Сервер и система управления динамическими библиотеками 31

2.3.3 Система журналирования 31

2.3.3 Система безопасности 32

2.4 Динамические библиотеки 33

2.4.1 PROCESSES - информация о процессах 33

2.4.2 MEMINFO - информация о системной памяти 34

2.4.3 DISKFREE - информация о свободном месте на дисках 34

2.4.4 NETWORK - информация о сетевых устройствах 35

2.4.5 VERSION - версия операционной системы 35

2.4.6 INDEX - страница помощи 36

2.5 Использование программы 36

2.5.1 Настройка сервера 36

2.5.2 Доступ к серверу 37

2.5.3 Завершение работы сервера 38

Заключение 40

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

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

В последние несколько лет все большую популярность приобретают серверы, работающий под управлением операционных систем семейства UNIX: FREEBSD, OPENBSD, Solaris, Linux. Все эти системы спроектированы в соответствии со стандартом POSIX и имеют идентичный программный интерфейс, что позволило с легкостью переносить приложения, написанные в одной системе, на другую. Кроме того, все эти системы показали себя крайне надежными и отказоустойчивыми, по большей части изза постоянного совершенствования, которое, зачастую, выполняется бесплатно энтузиастами со всего мира.

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

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

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

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

Следующим шагом стало создание так называемой защищенной оболочки (secure shell или, сокращенно, ssh). Этот программный комплекс по своей структуре был похож на telnet - также выделялись клиентская и серверная часть и пользователь получал в свое распоряжение виртуальный терминал при подключении. Однако в данном случае при авторизации пользователя использовались уже не стандартные ученые записи UNIX, а собственная база данных пользователей, информация о которых передавалась в зашифрованном виде. Шифровались также и команды, передаваемые на сервер, и ответная информация. Все это сделало удаленное администрирование достаточно безопасным и привело к росту популярности ssh.

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

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

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

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

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

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

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?