Распределенные объектные системы служат фундаментом трехуровневой архитектуры, в которой логические схемы представления, или первый уровень, находятся на станции клиента, бизнес-логика на среднем уровне, а база данных — на третьем. Распределенная объектная технология расширяет средний уровень, позволяя обращаться не только к одному прикладному объекту, но и к нескольким. В результате рождается новая архитектура, называемая N-уровневой (N-tier), или многоуровневой (multi-tier).
В ней возможно сосуществование множества прикладных объектов (т.е. серверов баз данных, объектов Java RMI, EJB, CORBA, DCOM и др.), причем клиентские и серверные объекты взаимодействуют посредством специального протокола удаленного вызова методов (RMI, remote method invocation). Протокол RMI используется для удаленного вызова коммуникационных методов. Например, у каждой из моделей CORBA, Java RMI и Microsoft DCOM он свой. У любого прикладного объекта есть определенный интерфейс объектной оболочки, где заявляются услуги, предоставляемые объектом и особенно важно, что связь осуществляется только через этот интерфейс.
В основе всех распределенных объектных протоколов лежит одна и та же базовая архитектура. Распределенные объектные архитектуры основаны на сетевом коммуникационном слое (уровне), состоящем из трех частей: объектного сервера (object server), скелета (skeleton) и изолятора (stub). Первый и авторотой располагаются, как правило, на среднем уровне, но u Oracle8i находятся на третьем (т.е. на сервере баз данных). Изолятор размещается на машине клиента и обеспечивает межпроцессную связь клиентских и серверных объектов. Для клиента он выступает в роли посредника и несет ответственность за коммуникационные запросы первого, передаваемые объектному серверу через скелет. Изолятор и скелет отвечают за то, чтобы объектный сервер (который может находиться на среднем или третьем уровне) выглядел так, будто он работает в определенном месте.
Пересылают данные из одного адресного пространства в другое изолятор и скелет с помощью двух процессов — упорядочения (marshaling) и обратного упорядочения (unmarshaling). "Во время упорядочения параметры вызова метода (в пространстве клиента) или возвращаемые значения (в пространстве сервера) упаковываются в стандартный формат для передачи". Подробнее вопрос можно изучить в этой книге по JAVA: