Распределенные системы и приложения

Распределенная система - это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой.

В распределенной системе можно выделить два аспекта:

· первый - все компьютеры автономны;

· второй - для пользователей это единая система.

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

Рис. 1.

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

· уровень пользовательского интерфейса;

· уровень обработки;

· уровень данных.

Формы организации архитектуры клиент-сервер отличаются тем, какие задачи решаются клиентом и сервером:

Рис. 2.

Взаимодействие клиента и сервера в Интернете осуществляется с помощью запросов, посылаемых клиентом серверу, и ответов сервера на запрос клиента:

Рис. 3.

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

Рис. 4.

Первоначально в Интернете существовала только возможность пересылки файлов (протокол FTP), почтовых сообщений (e-mail) и подключение компьютера как удаленного терминала сервера (TELNET). Технология World Wide Web (WWW) и производство доступных для пользователей средств коммуникации (модемы) изменили Интернет и сделали его основным средством получения и опубликования информации.

Основу WWW составляет гипертекстовый документ, создаваемый с помощью языка разметки гипертекстовых документов (HTML), и протокол передачи гипертекстовых документов (HTTP).

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

Рис. 5.

В настоящее время используется язык HTML версии 4.01, поддерживаемый организацией WWW-консорциум (www.w3.org).

Для передачи гипертекстовых документов применяется протокол HTTP версии 1.1 (RFC 2616).

Его основу составляют HTTP-сообщения, подразделяемые на:

· запрос (request) клиента к серверу;

· ответ (response) сервера клиенту.

HTTP-запрос

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

 

В строке запроса указывается адрес (URI) документа, запрашиваемого клиентом с сервера, а метод может указывать, каким образом передается информация, введенная пользователем в формах HTML, от клиента к серверу. Методом GET информация передается непосредственно в строке запроса, добавляясь после знака вопроса ? к адресу запрашиваемого документа (тело HTTP-запроса в этом случае пусто). Методом POST передаваемая информация помещается в тело запроса. Кроме указанных двух методов HTTP-запрос поддерживает и ряд других методов, позволяющих выполнить определенные действия на сервере.

Методы:

OPTIONS запрос информации о доступных опциях коммуникаций
GET получение информации, определенной в URI запроса
HEAD аналогичен GET, но информация не пересылается
POST запрос и пересылка информации, определенной в теле запроса
PUT сохранение на сервере под указанным в запросе URI пересылаемой в его теле информации
DELETE удаление на сервере документа с указанным в запросе URI
TRACE определяет, что будет получено из концевой цепочки запросов
CONNECT используется с прокси-сервером

 

Пример 1. Пример HTTP-запроса методом GET:
GET /search?keywords=servlets+jsp HTTP/1.1Accept: image/gif, image/jpg, */*Encoding: gzip, deflateAccept-Language: en-usConnection: Keep-AliveCookie: userID=id456578Host: 212.250.238.67Referer: http://www.somebookstore.com/findbooks.htmlUser_Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP)

HTTP-ответ

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

 

Пересылаемый в ответ на запрос клиента сервером документ всегда содержится в теле HTTP-ответа.

Пример 2. Пример HTTP-ответа сервера:
HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Connection: Keep-AliveDate: Thu, 8 Jul 1999 10:27:16 GMTContent-Type: text/htmlAccept-Ranges: bytesContent-Length: 2964Last-Modified: Thu, 8 Jul 1999 10:27:16 GMTCookie: userID=id456578 <HTML>. . .</HTML>

Предложенная первоначально технология WWW с ее гипертекстовыми документами позволяла получать статические страницы HTML. Но с введением в HTML 2.0 форм, позволяющих получать от пользователя и передавать на сервер информацию, возникла необходимость в создании приложений, которые могут обрабатывать эту вводимую в поля формы пользователем информацию. Для сервера был разработан специальный интерфейс Common Gateway Interface (CGI) (стандарт), доступный приложениям, выполняемым на машине сервера (используются языки C, Perl).

Рис. 6.

Каждое обращение клиента к CGI-сценарию выполняется в собственном процессе, создаваемом операционной системой. Получение передаваемой и отсылаемой информации реализовано через стандартные потоки ввода/вывода - stdin и stdout. Следует отметить, что выполнение серверных CGI-сценариев обычно достаточно медленное, даже если они и реализованы в виде выполнимых exe-файлов, так как в этой технологии всегда приходится организовывать межпроцессное взаимодействие.

Компания Microsoft для своего сервера IIS реализовала кроме CGI-интерфейса дополнительный интерфейс ISAPI - Internet Server Application Programming Interface (компания Netscape для своего сервера реализовала интерфейс NSAPI). Этот интерфейс позволяет создавать серверные приложения, выполняющиеся в том же процессе, в котором выполняется и программа самого сервера, а также он позволяет создавать сценарии, обладающие дополнительными возможностями взаимодействия сервера и сценария.

Одним из недостатков CGI-технологии является то, что страница HTML формируется полностью с нуля при каждом запросе к CGI-сценарию. Компания Microsoft, разработав технологию IDC (Internet Database Connector), уже в ней реализовала идею шаблона - документа HTML, в определенные места которого вставлялись данные по запросу пользователя из базы данных. Эта технология была реализована через ISAPI.

Дальнейшее развитие серверных технологий привело к появлению технологии ASP - Active Server Pages, в которой совмещены наилучшие стороны всех рассмотренных технологий. Страница ASP - это заготовка документа HTML, в который кроме кода HTML встроен выполняемый во время обработки до отсылки клиенту код, написанный на одном из двух, поддерживаемых в ASP языков сценариев, - JavaScript (JScript) или VBScript. Кроме этого в ASP были реализованы специальные компоненты, выполняющие наиболее часто встречающие задачи: определение характеристик программы просмотра Интернета и операционной системы клиента, взаимодействие с БД и т.п. Таким образом, приложение на основе технологии ASP представляет собой трехуровневую архитектуру:

Рис. 7.

Исследования работы приложений Интернета показали, что в 70% случаев для выполнения определенных действий пользователя нет необходимости обращаться к серверу - эти действия можно реализовать на клиенте, если бы он позволял каким-то образом их запрограммировать. Так появился встроенный в программу просмотра Интернета язык JavaScript, который расширил возможности языка разметки HTML, предоставляя разработчику возможность встраивать в документ HTML код программы, выполняющейся на клиенте.

 








Дата добавления: 2016-02-11; просмотров: 722;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.