Методы и средства инженерии программного обеспечения


Язык описания интерфейсов объектов


 

Язык IDL позволяет описывать типы данных, интерфейсы объектов и модули, которые вызываются для выполнения, а  также предоставляет средства для описания параметров объектов, передаваемых в сообщении другим объектам. В нем описываются интерфейсные программы клиента и сервера (клиент-stub и  сервер-skeleton), а сами программы описываются в ЯП С++ или JAVA.

 

Описание интерфейсов начинается с ключевого слова interface, за  которым следует идентификатор (имя интерфейсной программы), образующие вместе заголовок,  и тело, содержащее описание типов  параметров  для обращения к объекту. Пример описания заголовка  описания интерфейса:

      interface A { ... }

      interface B { ... }

      interface C: B,A { ... }.

Тело интерфейса содержит описание:  типов данных  (type_dcl), констант (const_dcl), исключительных ситуаций (except_dcl), атрибутов параметров (attr_dcl), операций (op_dcl).

                 

Описание типов  данных начинается ключевым словом typedef, за которым следует базовый или конструируемый тип и его идентификатор.  В качестве константы может быть некоторое значение типа данного или выражение,  составленное из констант. Типы констант могут быть:  integer, boolean, string, float, char и др.

Описание операций op_dcl включает: атрибуты операции, тип результата, наименование операции интерфейса, список параметров (от нуля и более) и др.

Атрибуты параметров могут начинаться следующими служебными словами:

in  - при отсылке параметра от клиента к серверу;

out - при отправке параметр-результатов от сервера к* клиенту;

inout - при передаче параметров в оба направления (от клиента к серверу и от сервера к клиенту).

    

Описание интерфейса может наследоваться другим объектом, тогда такое описание интерфейса становится базовым. Пример  базового интерфейса приведен ниже:

     const long l=2

     interface A  {

          void f (in float s [l]);

       }

     interface  B {

          const long l=3

      }

     interface C: B,A {  }.




- Начало -  - Назад -  - Вперед -