IOR (IOR)

Перейти к навигации Перейти к поиску

IOR (англ. Interoperable object reference ссылка на интероперабельный объект) — в распределенном программном обеспечении ссылка на объект технологий CORBA или RMI-IIOP, содержащая в себе полный набор информации, необходимой, чтобы обеспечить доступ к объекту и использовать его[1][2].

Представляет собой строковую структуру, в которой содержится различного рода информация. Чаще всего это IP-адрес и порты интерфейса, на котором прослушивается сервер, название и идентификатор класса и, возможно, методов объекта, которые в данный момент будут обработаны. Передача IOR происходит после установления связи между двумя частями распределенного приложения для инициализации передачи исполняемого кода и данных объекта.

В реализациях, которые используют распределённые объекты, каждый инстанс объекта может снабжаетьс собственным IOR[3].

Представляет собой поток октетов, кодированный в соответствии с общим представлением данных, в котором содержится зависимая от транспорта информация об адресуемом объекте[4]. Структура IOR имеет следующий вид:

struct IOR {
    string                   type_id;
    sequence <TaggedProfile> profiles;
};

Здесь type_id — идентификатор, используемый для публикации ссылки, а profiles — последовательность прикреплённых к ссылке профилей:

typedef unsigned long  ProfileId;

const ProfileId TAG_INTERNET_IOP = 0;
const ProfileId TAG_MULTIPLE_COMPONENTS = 1;
const ProfileId TAG_SCCP_IOP = 2;

struct TaggedProfile {
    ProfileId          tag;
    sequence <octet>   profile_data;
};

Здесь profile_data содержит инкапсулированный профиль. Не существует единого формата профиля IOR. Профили включают, по крайней мере, три элемента:

  1. Номер версии спецификации поддерживаемого сервером транспортного протокола.
  2. Адрес конечной точки для используемого транспортного протокола.
  3. Объектный ключ (object_key), используемый агентом в конкретном адресе конечной точки для идентификации объекта.

Примечания

[править | править код]
  1. C.R. Ozansoy, A. Zayegh, A. Kalam. Interoperable CORBA middleware design for substation communication systems // 2004 Eighth IEE International Conference on Developments in Power System Protection. — 2004-04. — Т. 2. — С. 705–708 Vol.2. — doi:10.1049/cp:20040220. Архивировано 24 октября 2021 года.
  2. A Flexible and Extensible Object Middleware CORBA and Beyond Franz J. Hauck, Rüdiger Kapitza, Hans P. Reiser, Andreas I. Schmied Distributed Systems Lab, University of Ulm, Germany Department of Computer Science, University of Erlangen-Nürnberg, Germany 2005
  3. INTEROPERABILITY PERFORMANCE OF CORBA ARCHITECTURE Franco Fiore Massimo Mercati RTO MEETING PROCEEDINGS MP-MSG-022 C3I and Modelling and Simulation (M&S) Interoperability (Interopérabilité entre le C3I et la modélisation et la simulation (M&S)) Papers presented at the NATO RTO Modelling and Simulation Conference held in Antalya, Turkey, 9-10 October 2003. p 191
  4. Michi Henning. Binding, migration, and scalability in CORBA (англ.) // Communications of the ACM. — 1998-10. — Vol. 41, iss. 10. — P. 62–71. — ISSN 0001-0782. — doi:10.1145/286238.286249.