stringtranslate.com

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

Изображение описывает связь между распределенными объектами, находящимися на разных машинах.

В распределенных вычислениях распределенные объекты [ требуется ссылка ] — это объекты (в смысле объектно-ориентированного программирования ), которые распределены по разным адресным пространствам , либо в разных процессах на одном компьютере, либо даже на нескольких компьютерах, соединенных через сеть , но которые работают вместе, разделяя данные и вызывая методы. Это часто подразумевает прозрачность местоположения , когда удаленные объекты выглядят так же, как локальные объекты. Основной метод взаимодействия распределенных объектовудаленный вызов метода , как правило, путем передачи сообщений: один объект отправляет сообщение другому объекту на удаленной машине или в процессе для выполнения некоторой задачи. Результаты отправляются обратно вызывающему объекту.

Распределенные объекты были популярны в конце 1990-х и начале 2000-х годов, но с тех пор вышли из моды. [1]

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

См. также набор интернет-протоколов .

Локальные и распределенные объекты

Локальные и распределенные объекты различаются во многих отношениях. [3] [4] Вот некоторые из них:

  1. Жизненный цикл: создание, миграция и удаление распределенных объектов отличается от локальных объектов.
  2. Ссылка: Удаленные ссылки на распределенные объекты сложнее простых указателей на адреса памяти.
  3. Задержка запроса: запрос распределенного объекта на несколько порядков медленнее, чем вызов локального метода.
  4. Активация объекта: распределенные объекты не всегда могут быть доступны для обслуживания запроса объекта в любой момент времени.
  5. Параллелизм: распределенные объекты могут выполняться параллельно.
  6. Связь: Для запросов распределенных объектов доступны различные примитивы связи.
  7. Отказ: Распределенные объекты имеют гораздо больше точек отказа, чем типичные локальные объекты.
  8. Безопасность: Распространение делает их уязвимыми для атак.

Примеры

Возможности RPC кроссплатформенного протокола сериализации Cap'n Proto составляют протокол распределенных объектов. Вызовы методов распределенных объектов могут быть выполнены (связаны в один сетевой запрос, если необходимо) через ссылки/ возможности интерфейса . [5]

Распределенные объекты реализованы на языке Objective-C с использованием API Cocoa с классом NSConnection и вспомогательными объектами.

Распределенные объекты используются в Java RMI .

CORBA позволяет создавать распределенные смешанные объектные системы.

DCOM — это фреймворк для распределенных объектов на платформе Microsoft.

DDObjects — это фреймворк для распределенных объектов, использующий Borland Delphi.

Jt — это фреймворк для распределенных компонентов, использующий парадигму обмена сообщениями.

JavaSpaces — это спецификация Sun для распределенной, общей памяти (на основе пространства).

Pyro — это фреймворк для распределенных объектов, использующий язык программирования Python .

Distributed Ruby (DRb) — это фреймворк для распределенных объектов, использующий язык программирования Ruby .

Смотрите также

Ссылки

  1. ^ Микросервисы и первый закон распределенных объектов, Мартин Фаулер, 13 августа 2014 г.
  2. ^ Островски, К., Бирман, К., Долев, Д. и Анн, Дж. (2008). «Программирование с живыми распределенными объектами», Труды 22-й Европейской конференции по объектно-ориентированному программированию , Пафос, Кипр, 7–11 июля 2008 г., редактор Дж. Витек, Lecture Notes in Computer Science , т. 5142, Springer-Verlag, Берлин, Гейдельберг, 463–489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  3. ^ В. Эммерих (2000) Проектирование распределенных объектов, John Wiley & Sons Ltd.
  4. ^ Сэмюэл С. Кендалл, Джим Уолдо , Энн Воллрат и Джефф Уайант. 1994. Заметка о распределенных вычислениях. Технический отчет. Sun Microsystems, Inc., Маунтин-Вью, Калифорния, США.
  5. ^ «Cap'n Proto: Протокол RPC».