Главная страница

Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование


Скачать 1 Mb.
НазваниеУчебное пособие издано при поддержке образовательной программы Формирование
АнкорАрхитектура распределенных систем программного обеспечения
Дата13.01.2023
Размер1 Mb.
Формат файлаdocx
Имя файлаmdwrbook.docx
ТипУчебное пособие
#885216
страница10 из 36
1   ...   6   7   8   9   10   11   12   13   ...   36

Объектно-ориентированный подход к распределенной обработке информации

  1. Распределенные объекты





Рис.2.13.Обобщеннаяорганизацияудаленныхобъектовсиспользованием заместителя объектов.

Для распределенных систем разделение на объекты, характеризующиеся своим состоянием (данными), и интерфейсы, с помощью которых обеспечивается доступ к этим состояниям, особенно важно, поскольку позволяет помещать интерфейс на одну машину, имея сами объекты на другой. Обеспечивается такое распределенное представление информации тем, что при выполнении клиентской программой привязки к распределенному объекту (Рис.2.13), в ее адресное пространство загружается реализация интерфейса объекта, называемая заместителем (proxy).

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

передавая их клиенту. Сами объекты находятся на сервере. Входящий запрос на обращение к методу сначала попадает в серверный переходник, называемый скелетоном (skeleton), который преобразует его в правильное обращение к методу через интерфейс объекта. Серверный переходник также отвечает за маршалинг параметров в ответных сообщениях и их пересылку заместителю клиента.
        1. Объекты, создаваемые при компиляции и при выполнении


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

Объекты, создаваемые таким образом, явно зависят от языка, на котором пишется исходная программа. Однако создаваться объекты могут и во время исполнения программы. Такой подход применяется во многих распределенных системах, поскольку распределенные приложения, созданные в соответствии с ним, не зависят от конкретного языка программирования. В частности, приложение может работать с объектами, описанными на разных языках программирования.

При работе с объектами времени исполнения способ реализации объекта остается открытым. Задача в том, чтобы превратить реализацию в объект, методы которого будут доступны с удаленной машины. Часто для этого используются адаптеры объектов, которые служат оболочками реализации с задачей придать реализации видимость объекта. Обычно, чтобы упростить процесс создания оболочки, объекты определяют исключительно в понятиях интерфейсов, которые они реализуют.
        1. Сохранные объекты


Одно из важнейших свойств объекта – это его сохранность. Сохранный объект – это объект, продолжающий существовать, не находясь в адресном пространстве своего текущего сервера, то есть независящий от сервера. Практически это означает, что сервер, работающий с объектом, сохраняет его во вспомогательном запоминающем устройстве. Сервер может прекратить свою работу, но,

возобновив ее, может прочитать состояние сохранного объекта и вновь приступить к обработке запросов на обращение к нему. Объекты, не обладающие этим свойством, существуют, только пока сервер ими управляет.
        1. 1   ...   6   7   8   9   10   11   12   13   ...   36


написать администратору сайта