Введение

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