Добавлен: 03.07.2023
Просмотров: 93
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1 Архитектурное построение и свойства систем распределённой обработки информации
1.1 Свойства систем распределённой обработки информации как среды реализации обработки информации
1.2 Требования к архитектурному построению систем распределённой обработки информации
Глава 2. Механизмы реализации технологии распределенной обработки информации
2.1 Механизм удаленного вызова процедур
2.2 Объектно-ориентированный подход к организации распределенной обработки информации
При вызове клиентом удаленной процедуры вначале выполняется локальный вызов процедуры, являющейся частью клиентского переходника. Локальный вызов вместе с параметрами передается клиентскому переходнику. При этом с помощью специального языка описания интерфейсов (Interface Definition Language – IDL) производится определение интерфейса процедуры, то есть описание параметров процедуры, передаваемых ей до выполнения RPC и возвращаемых после завершения RPC.
Затем это описание транслируется и производится упаковка данных в формат сообщения – маршалинг (marshaling). Клиентский переходник вызывает локальную операционную систему, которая пересылает сообщение удаленной операционной системе сервера. Удаленная операционная система передает сообщение серверному переходнику, реализующему серверную часть вызова и состоящему из программ получения запроса от клиента, форматирования данных (демаршалинг), вызова реальной процедуры (реализованной на сервере) и возврата результатов клиенту.[10]
Клиент блокируется и ждет ответа, а на сервере запускается серверный переходник, преобразующий сообщение в параметры локальной процедуры. Сервер видит вызов как прямое обращение к его локальной процедуре с нужными параметрами, выполняет вызов и передает результаты серверному переходнику.
Серверный переходник форматирует результаты работы процедуры в сообщение для клиента и вызывает локальную операционную систему сервера. Операционная система сервера пересылает сообщение операционной системе клиента. Клиент выводится из состояния ожидания, его операционная система принимает сообщение и направляет его клиентскому переходнику, который извлекает результаты из сообщения, передает их клиенту и возвращает клиенту управление.
клиент сервер
Уровень
процесса
Вызывающий
процесс
Уровень
реализации
RPC
Клиентский
переходник
вызов
возврат
ОС клиента
Уровень
процесса
Вызываемая
процедура
Уровень
реализации
RPC
Серверный
переходник
ОС сервера
возврат
вызов
сеть
возврат
вызов
Рисунок 4 - Принципиальная схема организации удаленного вызова процедур
Операционная система сервера пересылает сообщение операционной системе клиента. Клиент выводится из состояния ожидания, его операционная система принимает сообщение и направляет его клиентскому переходнику, который извлекает результаты из сообщения, передает их клиенту и возвращает клиенту управление. Принципиальная схема организации удаленного вызова процедур представлена на рисунок 4.
По существу, RPC реализует в распределенной среде принципы традиционного структурного программирования. Клиент обращается к процессу-переходнику так, как будто он и есть реальный серверный процесс, и этот вызов ничем не отличается от вызова локальной функции. Другими словами, клиентский переходник превращает локальный вызов процедуры клиента в локальный вызов процедуры сервера. При этом ни клиент, ни сервер могут ничего «не знать» о выполняемых промежуточных действиях.
Клиентские и серверные переходники изолируют прикладные модули клиента и сервера от уровня сетевых коммуникаций, а язык IDL обеспечивает независимость механизма RPC от языков программирования.
Благодаря этому при вызове удаленной процедуры клиент может использовать свои языковые конструкции, преобразуемые затем IDL-компилятором в собственные описания, а на сервере IDL-описания преобразуются в конструкции языка программирования, на котором реализована серверная процедура.
Как и в случае нераспределенной программы, вызов процедуры на удаленном компьютере влечет за собой передачу управления этой процедуре, то есть блокирует выполнение клиентской программы на время обработки вызова. Существуют асинхронные реализации механизма RPC. Асинхронный RPC не блокирует выполнение клиентского процесса на время выполнения запроса. Этот вариант удаленного вызова обеспечивает более масштабируемые решения, поскольку значительно сокращает объем поддерживаемой информации о соединении и сеансе связи между клиентом и сервером.
В общем случае механизм RPC создает статические отношения между компонентами распределенного приложения: привязка клиентского процесса к конкретным серверным переходникам происходит на этапе компиляции и не может быть изменена во время выполнения, что является существенным недостатком механизма RPC. Этот недостаток преодолевается в других механизмах и технологиях, рассмотренных далее.
Большинство систем MW категории RPC базируется на стандарте DCERPC (DCE – Distributed Computing Environment – «среда распределенных вычислений») организации Open Group. Эти системы свободно распространяются в виде исходных кодов и существуют в реализациях ряда поставщиков ПО, которые настраивают этот код на определенную операционную систему. Помимо базового механизма взаимодействия распределенных приложений, в DCE реализованы некоторые важные для распределенной среды службы, такие как служба каталогов, средства защиты и распределенная файловая система.
2.2 Объектно-ориентированный подход к организации распределенной обработки информации
Объектно-ориентированный подход способствует значительному усовершенствованию механизмов организации распределенной обработки информации. Важнейшим свойством объектов (object) является то, что они позволяют скрыть свое внутреннее строение посредством наличия строго определенного интерфейса. Поэтому при замене или изменении объектов интерфейс может оставаться неизмененным. Вследствие этого возможно относительно легкое распространение и применение принципов RPC к удаленным объектам.
Объекты инкапсулируют данные, называемые состоянием (state), и операции над этими данными, называемые методами (method). Для доступа или манипулирования состоянием объекта нужно использовать методы, обращение к которым осуществляется через интерфейсы. Объект может реализовывать множество интерфейсов, а для данного описания интерфейса может существовать несколько объектов, предоставляющих его реализацию.
Для распределенных систем разделение на интерфейсы и объекты позволяет помещать интерфейсы на одну вычислительную машину, а сами объекты - на другую. Принципиальная схема организации механизма удаленных объектов представлена на рисунок 5. При выполнении клиентом "привязки" к распределенному объекту в адресное пространство клиента загружается реализация интерфейса объекта, называемая заместителем (proxy).
Заместитель клиента аналогичен клиентскому переходнику в механизме RPC. Он выполняет маршалинг параметров в сообщения при обращении к методам, демаршалинг данных из ответных сообщений с результатами обращения к методам, передачу результатов клиенту. Сами же объекты находятся на сервере и предоставляют необходимые клиентской системе интерфейсы.
Входящий запрос на обращение к методу сначала попадают в так называемый серверный каркас, или скелетон (skeleton), аналогичный серверному переходнику в RPC. Cерверный каркас преобразует входящий запрос в обращение к методу через интерфейс объекта, находящегося на сервере. Каркас также отвечает за маршалинг параметров в ответных сообщениях и их пересылку заместителю клиента. Если объект физически распределен по нескольким вычислительным машинам, то это скрывается от клиентов за интерфейсами объектов.
клиент сервер
Клиентский
процесс
Клиентский
заместитель
вызов
возврат
ОС
клиента
Объект
Серверный
каркас
возврат
вызов
сеть
возврат
вызов
ОС
сервера
Интерфейс
Интерфейс
Рисунок 5 - Принципиальная схема механизма организации удаленных объектов
Форма существования объектов в распределенных системах чаще всего соответствует объектам выбранного объектно-ориентированного языка программирования. Такие объекты представляют собой так называемые объекты времени компиляции.
Использование этих объектов в распределенных системах обычно значительно упрощает создание распределенных приложений. Недостатком использования таких объектов является их зависимость от конкретного языка программирования. Альтернатива состоит в создании распределенных объектов непосредственно во время выполнения.
При этом подходе распределенные приложения не зависят от конкретного языка программирования и они могут быть созданы из объектов, написанных на различных языках. При работе с такими объектами времени исполнения для превращения конкретной программной реализации в объект, методы которого будут доступны с удаленной вычислительной системы, используется адаптер объектов, служащий оболочкой этой реализации с целью придания ей реализации видимости объекта.
Объекты подразделяются на сохранные (persistent) и транзитные, или нерезидентные (transient). Сохранный объект не зависит от своего текущего сервера и продолжает существовать, даже не находясь постоянно в адресном пространстве серверного процесса. Сервер, управляющий таким объектом, может сохранить состояние объекта во вспомогательном запоминающем устройстве и прекратить свою работу, а затем после запуска снова прочитать состояние сохранного объекта из запоминающего устройства в свое адресное пространство и приступить к обработке обращений к объекту. Нерезидентный объект существует, пока им управляет сервер. Если сервер завершает работу, то такой объект прекращает существовать.
Системыобработки информации, поддерживающие распределенные объекты, обычно предоставляют ссылки на объекты, уникальные в пределах системыобработки информации. Такие ссылки могут свободно передаваться между процессами, запущенными на различных вычислительных машинах, например, как параметры обращения к методу. Перед обращением к методу объекта по его ссылке сначала выполняется привязка (явная или неявная), в результате создается заместитель объекта, реализующий интерфейс с методами, к которым обращается процесс.
Для выполнения привязки система находит сервер, управляющий объектом, и помещает заместитель объекта в адресное пространство клиента. В результате обеспечения таким образом непрозрачности реализации ссылок на объекты (сокрытия истинной реализации ссылок) достигается повышенная прозрачность распределения по сравнению с традиционным механизмом RPC.
Клиент, осуществив связь с объектом, может через заместителя объекта обратиться к методам объекта. Таким образом при объектно-ориентированном подходе к распределенной обработке информации реализуется механизм так называемого удаленного обращения к методам (RemoteMethodInvocation - RMI). Обращение к методу может быть статическим (интерфейсы известны при разработке) или динамическим (параметры собираются перед обращением к методу). На основе механизма RMI разработано множество стандартов и программных реализаций объектно-ориентированных платформ промежуточного ПО, поддерживающих эффективную распределенную обработку информации.
2.3 Распределенная обработка информации на основе транзакционного взаимодействия и с применением технологий обмена сообщениями
Для реализации транзакционного взаимодействия применяются мониторы обработки транзакций TPM (Transaction Processing Monitor), или транзакционные мониторы, разработанные для обеспечения надежного мультиплексного доступа к большому количеству ресурсов для большого количества параллельных пользователей. Механизм TPM - наиболее старая технология реализации распределенных систем, которая появилась в 1970-х годах в среде больших универсальных вычислительных машин для выполнения банковских, страховых и других высококритичных вычислений.
Транзакционные мониторы представляют одну из самых сложных и многофункциональных технологий в мире промежуточного ПО.
Они предназначены для автоматизированной поддержки приложений, оформленных в виде последовательности транзакций. Каждая транзакция представляет собой законченный блок обращений к ресурсу (чаще всего - к базе данных) и некоторых действий над ним. Корректное выполнение транзакции должно гарантировать выполнение четырех условий - так называемых свойств ACID (Atomicity, Consistency, Isolation, Durability):