GIOP (GIOP)
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 кодируется следующим образом:
- четыре символа ASCII: GIOP;
- два байта кодируют версию протокола. Первый байт: номер версии (только 1); второй байт: младший номер версии;
- один байт определяет флаги сообщения. Бит с младшим весом определяет байтовый порядок (0 — big endian, 1 — little endian);
- один байт определяет тип сообщения (Reply, Request, Fragment и другие);
- двойное слово определяет размер сообщения (исключая 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.
Примечания
[править | править код]- ↑ список зарегистрированных торговых марок OMG . Дата обращения: 8 марта 2007. Архивировано 10 марта 2007 года.