Федеральное агентство связи
Государственное образовательное учреждение высшего профессионального образования
«Сибирский государственный университет телекоммуникаций и информатики»
Кафедра вс
Курсовая работа по дисциплине
«Отказоустойчивые вычислительные системы»
на тему: «Отказоустойчивая система на примере клиент серверной технологии: запрос погоды»
Выполнили:
Студенты гр. ИУ-010
Ильин Е.О.
Каргин А.В.
Проверил:
Майданов Юрий Сергеевич
Новосибирск 2012
Содержание
Введение.....................................................................................................................3
Постановка задачи………………………………………………………………….4
Алгоритм работы программы……………………………………………………...5
Функции и процедуры……………………………………………………………...6
Интерфейс…………………………………………………………………………...7
Код программы………………………………………………………………………8
Заключение………………………………………………………………………….12
Введение
Отказоустойчивой вычислительной системой называют среду, которая предоставляет постоянное, непрерывное обслуживание - доступ к данным и приложениям - даже в случае возникновения сбоев в аппаратных, программных или сетевых компонентах.
Старый лозунг службы Federal Express звучит так: «В любом случае почта должна быть доставлена за ночь». Примерно таковы и требования к современным компьютерным системам, за исключением того, что доставка информации должна гарантироваться не за одну ночь, а постоянно, вне зависимости от проблем, которые могут возникнуть в конкретных аппаратных или программных компонентах информационной системы, сбоев в сети электропитания или неприятностей другого рода.
|
|
|
Такая концепция называется отказоустойчивостью. Системы обеспечения отказоустойчивости встраиваются в программное обеспечение, входят в состав аппаратных средств либо являются комбинированными. |
|
|
В рамках курса отказоустойчивые вычислительные системы, была поставлена задача разработать простой пример работы отказоустойчивой системы на основе клиент-серверных технологии.
Постановка задачи
Создать программный продукт на основании клиент-серверной технологии, реализующий отказоустойчивую работу системы. В случае потери связи с одним из серверов клиент подключается на другой сервер.
Сервер 1
Сервер 2
Клиент
В случае потере связи с обоими серверами клиент продолжит искать работоспособный сервер из списка доступных серверов, пока не подключится к одному из них, либо пока работа приложения не будет остановлена. Для примера будет реализован сервер погоды, и клиент запрашивающий погоду с сервера.
Алгоритм работы
Запускается сервер и альтернативный сервер, прослушивающие 999 порт по всем диапазонам айпи адресов. В случае получения пакета по этому порту анализируется содержащаяся в пакете информация, если первый символ “p” то это пакет проверки связи от клиента, после символа «p» содержится айпи адрес отправителя на который отправляется пакет аналогичного типа с информацией о том что сервер доступен. Если второй символ «z», то это запрос погоды, в таком случае сервер формирует ответный пакет содержащий информацию о температуре воздуха и облачности.
Аналогично работает второй сервер.
Клиент после запуска начинает с определенной частотой отправлять пакеты проверки связи на первый адрес из списка серверов. В случае возвращения ответного пакета, клиент понимает о том что связь с сервером в порядке. В случае если в установленный интервал ответный пакет не вернулся, осуществляется две повторных попытки подключения на этот же сервер, далее в случае успеха «рабочим» сервером остается все тот же, иначе осуществляется проверка связи со вторым сервером в списке, потом с третьим и т.д. Когда список серверов заканчивается клиент повторяет попытку подключения к первому.
При запросе погоды клиент отправляет запрос на текущий сервер. Полученный пакет он разбирает, и формирует для представления пользователю.
Структура пакетов:
«Пинг» клиента:
Р<адрес клиента>
«Пинг» сервера:
Р
Запрос погоды:
Z<адрес клиента>
Ответ с погодой
Z;температура;облачность; - ; разграничение для анализа строки