Архитектурой CORBA определены различные службы (сервисы), расширяющие круг основных возможностей брокеров ORB. Некоторые из этих служб функционируют в качестве серверов поверх ORB, другие же следует встраивать в ORB, по крайней мере частично.
В области связующих технологий наиболее важными (можно сказать, основополагающими) для работы в среде ORB являются 3 сервиса:
- Сервис именования (Naming Service)
ставит в соответствие объекту символическое имя и позволяет клиенту получить ссылку на этот объект, организовав поиск по его имени. Этот сервис является аналогом телефонного справочника для объектов.
Имя объекта составное(compound) и является цепочкой контекстных(context) имен (аналога папок или директорий в файловой системе) и простого(simple) имени (аналога названия файла) с необязательным указанием типа объекта (аналога типа файла). - Сервис жизненного цикла (Life Cycle Service)
управляет созданием, перемещением (копированием) и уничтожением объекта.
- Сервис событий (Event Service)
обеспечивает общение клиентов и запрошенных объектов (асинхронные взаимодействия между анонимными объектами). Клиент отправляет событие (сообщение) в канал событий, и оно передается на все серверы, зарегистрированные в данном канале. Этот механизм используется для организации многоадресной связи ("один со многими").
В весьма ограниченных рамках данной статьи невозможно описать все 16 сервисов CORBA. Упомянем только лишь еще пару очень важных служб:
- Сервис защиты (Security Service)
поддерживает аутентификацию и проверку полномочий, предоставляя приложениям возможность ограничивать круг клиентов, которым разрешены те или иные операции; кроме того, поддерживает шифрование данных.
- Сервис транзакций (Transaction Service)
обеспечивает атомарную фиксацию или отмену всех изменений, производимых приложениями, которые работают с несколькими серверами и обновляют несколько баз данных. Данная служба (нередко обозначаемая английским сокращением OTS) определяет простые интерфейсы, необходимые в узлах-клиентах для создания и прекращения транзакций. Остальные ее интерфейсы являются внутренними и используются для абстрагирования протокола двухфазной фиксации и других целей.
Сервисы CORBA намного облегчают жизнь разработчикам приложений, потому как решают множество типичных задач, с которыми сталкиваются разработчики при создании среды взаимодействия между компонентами приложений. Вся документация по службам CORBA доступна на Web-странице http://www.omg.org/corba/cfindex.htm.