Язык определения интерфейсов (IDL) используется для описания контрактов между клиентскими и серверными процессами в распределенных системах. Это позволяет приложениям, написанным на разных языках или работающим в разных адресных пространствах, взаимодействовать друг с другом.

Концепция удаленного вызова процедур (RPC), предложенная Брюсом Джеем Нельсоном в 1981 году, обеспечивает синхронную передачу управления между программами. Клиент вызывает методы сервера, не вникая в детали реализации, что делает процесс похожим на локальный вызов.

Компиляторы IDL генерируют заглушки для обеих сторон, которые скрывают транспортные детали и инкапсулируют удаленный характер вызова. Это позволяет бизнес-логике оставаться независимой от механизмов передачи данных.

Для передачи данных между процессами применяется маршалинг — упаковка параметров в формат, пригодный для канала связи, и демаршалинг — обратный процесс извлечения данных на стороне получателя. Это обеспечивает независимость от конкретного языка программирования.