Лекция: Язык IDL
Для автоматизации создания заглушек в RPC используют описание интерфейсов процедур специальным языком описи интерфейсов (Interface Definition Language, IDL).
Каждую процедуру, которую нужно вызывать отдаленно, необходимо описать на IDL, задав имя процедуры, количество и типы параметров, а также тип возвращения.
Файл с IDL-кодом, который содержит объявление таких процедур, обрабатывают IDL-компилятором, который генерирует заглушки для клиента и сервера.
Архитектура отдаленного вызова процедур показана на рис. 11.2.
Рис. 11.2 Отдаленный вызов процедур
Есть разные реализации IDL, которые воплощают общие принципы этого языка.
1. Процедуры на IDL объединяют в интерфейсы. В этом языке под интерфейсом понимают набор заглавий процедур и типов, связанных общим назначением. Интерфейс имеет имя и номер версии. Каждый интерфейс в результате обработки IDL-компилятором превращается в пару заглушек — клиентскую и серверную.
2. IDL является декларативным языком, она предназначена исключительно для описания интерфейсов (фактически это сводится к описанию заглавий процедур и типов данных). Выполняемых операторов в ней нет.
3. Для обеспечения связи между неоднородными системами в IDL должно быть зафиксирован набор базовых типов (например, может быть принято, что int всегда будет длиной 4 байта и тому подобное).
4. Параметры процедур в IDL имеют режимы. Режим параметра определяет направление пересылки соответствующих данных. Для входных параметров данные передают от клиента серверу, для выходных — от сервера клиенту, для параметров смешанного режима — в обе стороны.