Файл: Технология построения распределенных информационных систем (Теоретические аспекты распределительных информационных систем).pdf
Добавлен: 15.05.2023
Просмотров: 655
Скачиваний: 3
Для пользователя это выглядит как обычный вызов процедуры. Современные модели распределенных систем основаны на взаимодействии распределенных объектов. Примерами являются: DCOM и CORBA. В распределенных объектах каждый объект реализует свой интерфейс, который скрывает все внутренние детали выполнения функций системы от пользователя. Интерфейс основан на методах, реализуемых системой. Все, что видит процесс – это интерфейсы.
В системе WWW используется модель распределенных документов. В данной модели информация организуется в виде документов, размещенных, как правило, на удаленном сервере или на распределенных компьютерах-клиентах, при этом пользователь не видит, где размещен документ. Веб-страницы могут содержать гиперссылки на другие документы и страницы, видео, графику, звуковые файлы. При обращении к документу из адресной строки браузера формируется запрос серверу, на сервере выполняется код генерации страницы, веб-страница формируется «налету» и в окне браузера мы видим виртуальную страницу.
Для низкоуровневой пересылки сообщений по сети используются сервисы промежуточного уровня, которые предназначены для поддержки прозрачности доступа путем предоставления высокоуровневых средств связи. Интерфейс транспортного уровня (IP) заменяется средствами прозрачного доступа к распределенным БД, файловым системам и веб-документам [8, c. 93].
Общей службой для всех систем промежуточного уровня является именование (naming). Любой документ идентифицируется с помощью URL-адреса, содержащего имя хостинга, на котором находится документ с данным URL.
Служба обеспечения сохранности данных реализуется механизмом распределенных транзакций.
Служба обеспечения защиты программ и данных наряду с требованием масштабируемости является одной из наиболее трудно реализуемых в распределенной системе.
Далее рассмотрим такую модель как «клиент-сервер». В данной базовой модели распределенной системы все процессы обработки данных делятся на две взаимно перекрывающиеся группы. Серверами называются любые процессы, реализующие, например, обработку удаленной файловой системы или распределенной базы данных. Сервер предоставляет свои ресурсы и хранимые данные удаленным рабочим станциям и одновременно может использовать их ресурсы и данные. Клиентами называются процессы, посылающие запрос серверу на обработку данных с последующим ожиданием ответа от сервера. Клиент получает услуги сервера.
В рамках модели «клиент – сервер» взаимодействие может быть синхронным и асинхронным. При синхронном взаимодействии клиент ожидает завершения обработки своего запроса сервером, а при асинхронном взаимодействии клиент посылает серверу запрос и, не дожидаясь ответа сервера, продолжает свою работу. Модель «клиент – сервер» является основой описания различных взаимодействий удаленных и распределенных систем (рис. 6).
Рисунок 6. Модель взаимодействия «клиент – сервер»
Между клиентом и сервером может не быть четкого разделения функций системы. Например, сервер распределенной базы данных, отвечающий за хранение таблиц этой базы данных, может быть одновременно клиентом и передавать запросы на файловые серверы.
Рассмотрим логические уровни взаимодействия пользователя с базой данных (рис. 7).
На уровне клиента реализуется интерфейс. На уровне функциональности реализуется бизнес-логика приложения. На уровне данных содержатся программы, их обрабатывающие. Этот уровень отличается требованием целостности данных [8, c. 101]. Когда приложение не работает, данные сохраняются в файле или базе данных для последующего их использования. Данный уровень, как правило, реализуется на сервере.
Рисунок 7. Логические уровни приложения
Кроме сохранности на уровне данных обеспечивается поддержка целостности данных для различных приложений. Поддержание целостности данных означает, что на этом же уровне хранятся схемы базы данных, триггеры базы данных и хранимые процедуры.
Как правило, уровень данных реализуется в виде реляционной базы данных, что позволяет данным не зависеть от приложений [8, c. 165].
Реляционные базы данных в модели «клиент – сервер» позволяют отделить уровень обработки от уровня данных, при этом данные и их обработка рассматриваются независимо друг от друга.
Далее в рамках исследования целесообразным является рассмотрение моделей взаимодействия компонентов распределительной системы.
1.3. Характеристика моделей взаимодействия компонентов распределительной системы
В распределенной системе один компьютер является сервером, все остальные машины являются удаленными рабочими станциями. Основой сетевого взаимодействия распределенных систем является модель взаимодействия открытых систем OSI/ISO. Данная модель разделяет процесс взаимодействия клиента и сервера на семь уровней: физический, канальный, сетевой, транспортный, сеансовый, прикладной, представительский.
Алгоритм взаимодействий в открытых системах описывается стандартными протоколами. Основным стеком протоколов является протокол TCP/IP. Протоколом транспортного уровня является протокол TCP, а протоколом сетевого уровня является протокол IP [9, c. 73].
Операционная система является связующим звеном с протоколом транспортного уровня и предоставляет интерфейс для верхних уровней основанный на сокетах. Сокеты обеспечивают элементарные операции низкого уровня для непосредственного обмена потоком бит между двумя процессами. В стеке протоколов TCP/IP сеансового или стандартного представительского уровня нет. К ним относят иногда защищенные протоколы SSL/TLS.
Протоколы можно разделить на 2 основных типа: с установлением соединения и без установления соединения. При установлении соединения для передачи данных отправитель и получатель устанавливают соединение, а после завершения передачи разрывают его. Примером соединения двух абонентов является телефон [9, c. 76].
Без установки соединения отправитель сразу посылает сообщение адресату. Протокол TCP/IP на основе сокетов является стандартным, межплатформенным, но низкоуровневым сервисом для обмена данными между компонентами. Функции сеансового и представительского уровня берет на себя промежуточная среда, которая называется промежуточным программным обеспечением (рис. 8).
Промежуточная среда помогает разработчикам создавать открытые, масштабируемые и устойчивые распределенные системы. При этом проме-жуточная среда должна обеспечивать службы для взаимодействия компонент распределенной системы (рис. 9).
Рисунок 8. Модель взаимодействия вычислительных систем
Рисунок 9. Службы, обеспечивающие взаимодействие компонент распределительной системы
При выделении промежуточного уровня изменяется базовая модель OSI. Промежуточный уровень включает в себя сеансовый уровень и уровень представления и содержит протоколы независящие от приложений.
Взаимодействие в модели OSI подразделяется на 7 уровней. На каждом уровне работает протокол, отвечающий за один аспект взаимодействия и предоставляющий интерфейс для работы с вышестоящим уровнем. Набор операций на каждом уровне определяет этот интерфейс.
Обеспечение обмена данными между компонентами распределенной системы осуществляется сервисом промежуточной среды.
В настоящий момент существуют две концепции организации программных компонент распределенной среды [10, c. 48]:
1) обмен сообщениями между компонентами;
2) вызов процедур или методов объекта удаленной компоненты по аналогии с локальным вызовом процедуры.
Любое взаимодействие между удаленными компонентами распределенной системы основано на протоколе TCP/IP. Низкоуровневый обмен сообщениями на основе сетевых протоколов является первичным. С точки зрения промежуточной среды данный сервис не определяет формат передаваемого сообщения. Прикладные протоколы обмена данными более высокого уровня строятся на базе протоколов TCP или HTTP [11, c. 145]. На их базе строятся прикладные протоколы обмена сообщений для реализации более сложного обмена сообщениями или удаленного вызова процедур.
Удаленный вызов является моделью, происходящей от языков программирования высокого уровня, а не от реализации интерфейса транспортного уровня сетевых протоколов. Поэтому протоколы удаленного вызова должны обязательно базироваться на какой-либо системе передачи сообщений, включая как непосредственное использование сокетов TCP/IP, так и основанные на нем другие промежуточные среды для обмена сообщениями. Реализация высокоуровневых служб обмена сообщениями, в свою очередь, может использовать удаленный вызов процедур, основанный на более низкоуровневой передаче сообщений, использующей, например, непосредственно сетевые сокеты. Таким образом, одна промежуточная среда может использовать для своего функционирования сервисы другой промежуточной среды аналогично тому, как один протокол транспортного или сетевого уровня может работать поверх другого протокола.
Явный обмен сообщениями между процессами является основой многих РС.
Существует два метода передачи сообщений от одной удаленной системы к другой – непосредственный обмен сообщениями и использование очередей сообщений. В первом случае передача происходит напрямую, и она возможна только в том случае, если принимающая сторона готова принять сообщение в этот же момент времени.
Во втором случае используется посредник – менеджер очередей сообщений. Компонент посылает сообщение в одну из очередей менеджера, после чего он может продолжить свою работу. В дальнейшем получающая сторона извлечет сообщение из очереди менеджера и приступит к его обработке.
Использование очередей сообщений ориентировано на асинхронный обмен данными. Основные достоинства и недостатки таких систем представлены на рис. 10.
Идея удаленного вызова процедур (remote procedure call, RPC) появилась в середине 1980-х гг. и заключалась в том, что при помощи промежуточного программного обеспечения функцию на удаленном компьютере можно вызывать, как и функцию на локальном компьютере. Чтобы удаленный вызов происходил прозрачно с точки зрения вызывающего приложения, промежуточная среда должна предоставить процедуру-заглушку (stub), которая будет вызываться клиентским приложением [12, c.346]. После вызова процедуры-заглушки промежуточная среда преобразует переданные ей аргументы в вид, пригодный для передачи по транспортному протоколу, и передает их на удаленный компьютер с вызываемой функцией. На удаленном компьютере параметры извлекаются промежуточной средой из сообщения транспортного уровня и передаются вызываемой функции (рис. 11). Аналогичным образом на клиентскую машину передается результат выполнения вызванной функции.
Рисунок 10. Достоинства и недостатки систем очередей сообщений
Рисунок 11. Удаленный вызов процедур
Процедура – это фрагмент программы, оформленный стандартным образом и доступный для использования другими программами с помощью стандартных операций вызова процедур.
Модель, с помощью которой реализуется такое взаимодействие, называется Удаленный вызов процедур (Remote Procedure Call, RPC).
Таким образом, идея вызова удаленных процедур RPC состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть [12, c. 387]. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удаленными компонентами с небольшим временем ответов и относительно малым количеством передаваемых данных. Такие приложения называются RPC-ориентированными.
Сама идея проста, но не проста в реализации, так как процесс и процедура находятся на разных машинах в разных адресных пространствах. Имеются проблемы и при передаче параметров.
Существует три возможных варианта удаленного вызова процедур (рис. 12).
Рисунок 12. Варианты удаленного вызова процедур
Далее перейдем ко второй главе курсовой работе, которая посвящена технологии Веб-сервиса – технологии проектирования распределительной информационной системы.
ГЛАВА 2. ОСОБЕННОСИ СОВРЕМЕННЫХ ТЕХНОЛОГИЙ ПОСТРОЕНИЯ РАСПРЕДЕЛИТЕЛЬНЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
2.1. Характеристика технологии Веб-сервиса
Веб-сервисы – это архитектура, обеспечивающая новый уровень распределенности доступа к данным. С помощью веб-сервисов разрабатывают и приобретают компоненты для их встраивания в ИС.
Имеется возможность покупать время их работы, формировать программную среду, осуществляющую вызовы модулей из компонентов, которые могут принадлежать и поддерживаться различными независимыми провайдерами. Таким образом, функционал любой программы в сети может стать доступным через веб-сервис. Примером веб-сервиса является система Passport на Hotmail. Она позволяет аутентифицировать пользователей на собственном сайте.