GIOP (General Inter-ORB Protocol) — абстрактный протокол в распределённых объектных системах, обеспечивающий интероперабельность брокеров. Стандарты, связанные с данным протоколом, выпускает Object Management Group (OMG).

IIOP (Internet Inter-Orb Protocol) используется GIOP для TCP/IP. IIOP является конкретной реализацией абстрактных определений GIOP.

Краткое описание протокола

править

Спецификация GIOP состоит из следующих элементов:

  • Определение общего представления данных (CDR). CDR — это синтаксис передачи, выполняющий отображение типов данных OMG IDL в независимое низкоуровневое представление, для передачи между брокерами и межброкерными мостами (агентами).
  • Форматы сообщений GIOP. Сообщения GIOP пересылаются между агентами для передачи объектных запросов, определения местоположения объекта-исполнителя и управления коммуникационными каналами. Сообщения:
    • Request посылают для вызова отдалённого метода.
    • Reply посылается в ответ на сообщение Request. Сообщение обычно содержит данные, возвращаемые отдалённым методом. В других случаях ответ может содержать инструкцию переназначения или описание исключения, которое было брошено в сторону сервера.
    • CancelRequest используется для отмены ранее отправленного запроса (отмена ожидания ответа).
    • LocateRequest используется для проверки, знает ли сервер и поддерживает требуемый отдалённый объект, и (если нет), к какому адресу надо посылать запросы о требуемом объекте.
    • LocateReply посылается сервером как ответ на LocateRequest. Если требуется, LocateReply может содержать новый адрес отдалённого объекта, который был перемещён.
    • CloseConnection посылается сервером в качестве уведомления об отключение сервера.
    • MessageError посылается в ответ на искажённое или неверное сообщение. Это сообщение не используется для извещения об ошибках, не связанных с передачей сообщений; о такого рода ошибках сообщают в Reply.
    • Fragment — сообщение, продолжающее предыдущее. Длинные сообщения могут быть разделены на фрагменты.
  • Транспортные предположения GIOP. Спецификация GIOP описывает общие предположения, сделанные относительно любого транспортного слоя сети, который может использоваться для передачи сообщения GIOP. Спецификация также описывает способы управления соединениями и ограничения на размещение сообщения GIOP.

Форматы сообщений GIOP

править

Заголовок сообщения GIOP кодируется следующим образом:

  1. четыре символа ASCII: GIOP;
  2. два байта кодируют версию протокола. Первый байт: номер версии (только 1); второй байт: младший номер версии;
  3. один байт определяет флаги сообщения. Бит с младшим весом определяет байтовый порядок (0 — big endian, 1 — little endian);
  4. один байт определяет тип сообщения (Reply, Request, Fragment и другие);
  5. двойное слово определяет размер сообщения (исключая 12 байт заголовка).

Межброкерный протокол для Интернет

править

Основным транспортом для GIOP является TCP/IP. Определения API для библиотек поддержки TCP/IP могут меняться. Таким образом спецификация на межброкерный протокол ограничена абстрактным представлением TCP/IP и управлением связями. Способ отображения сообщений GIOP, обеспечивающий их пересылку при помощи TCP/IP-соединений, называется Internet Inter-ORB Protocol (IIOP).

Агенты, способные принимать запросы объектов или обеспечивающие установление положения объектов (то есть, серверы), публикуют свои адреса TCP/IP в IORs (интероперабельные объектные ссылки). Адрес TCP/IP состоит из IP-адреса хоста, как правило представленного именем, и номера порта TCP. Серверы должны слушать запросы на установление соединения.

Правовой статус сокращения GIOP

править

CORBA, IIOP и OMG являются зарегистрированными торговыми марками Object Management Group и должны использоваться в соответствии с законом. GIOP не является зарегистрированной торговой маркой OMG.[1] Следовательно, в некоторых случаях можно просто упомянуть, что приложение использует или реализует архитектуру, основанную на GIOP.

Примечания

править
  1. список зарегистрированных торговых марок OMG. Дата обращения: 8 марта 2007. Архивировано 10 марта 2007 года.

Ссылки

править