ГОСТ Р ИСО/МЭК 10746-3-2001
- принимает потоки, которые имеют причинность потребителя в сигнатуре интерфейса.
7.2.2.3 Правила взаимодействия для операций
Объект-клиент, используя интерфейс операций, выгзы1вает операции, названный в сигнатуре интерфейса. Объект-сервер, предоставляющий интерфейс операций, ожидает какую-либо из операций, названных в сигнатуре интерфейса. В случае запроса сервер отвечает на вызов инициированием одного из завершений, указанного для операции в сигнатуре интерфейса сервера. Клиент ожидает какое-либо из завершений, указанных для операции в сигнатуре интерфейса клиента. Продолжительность операции произвольна, если только другое не требуется контрактами среды, применяемыми к этим объектам и интерфейсу.
Примечание — Если клиент вызывает цепочку запросов, то взаимное соответствие запросов и завершений гарантирует, что сервер будет отвечать на операции в том же самом порядке, в каком их инициировал клиент. Если клиент вызывает цепочку сообщений (или цепочку, содержащую сообщения и запросы), то нет способа гарантировать порядок, в котором сервер будет отвечать на сообщения, если только это не подразумевается контрактами среды, применяемыми к взаимодействию. Нет гарантий порядка ни для запросов, ни для сообщений, которые находятся в разных дочерних деятельностях ранее разделенного действия.
7.2.2.4 Правила для параметров
В число параметров для сигналов, вызовов и завершений могут входить идентификаторы для вычислительных интерфейсов и типов сигнатур вычислительных интерфейсов.
Примечание 1 — Возможности использования параметров сигнатуры вычислительного интерфейса делают типы вычислительных сигнатур более упорядоченными. Явное представление типов сигнатур требуется, например, при торге, когда параметры операций импорта и экспорта включают в себя типы сигнатур:
trader.import (Т: Туре, ... ) : (servise: Т) - > failed (reason: String) trader.export (T: Type, service: T) : (...) -> failed (reason: String)
Таким образом появляется необходимость динамической проверки подтипа сигнатуры
(см. 7.2.5.1).
Формальный параметр, который является идентификатором для вычислительного интерфейса, уточняется типом сигнатуры вычислительного интерфейса. Соответствующий фактический параметр должен указывать интерфейс с этим типом сигнатуры (или с одним из ее подтипов). Фактический параметр может использоваться, если он указывает вычислительный интерфейс с тем же самым типом сигнатуры, что и формальный параметр (или с ее подтипом). После взаимодействия инициатор и ответчик могут ссылаться на идентифицированный интерфейс, хотя, возможно, и с разными его идентификаторами.
Примечание 2 — Это правило препятствует пользователю интерфейса, указанного фактическим параметром, осуществлять дополнительные взаимодействия через интерфейс с типом сигнатуры формального параметра, даже если интерфейс, указанный фактическим параметром, является подтипом интерфейса, связанного с формальным параметром.
7.2.2.5 Потоки, операции и сигналы
Потоки и операции могут быть определены в терминах сигналов. Это позволяет использовать интерфейсы сигналов как основу для объяснения многостороннего связывания, сквозных характеристик качества услуг и составного связывания между разными типами интерфейсов (например, связывание интерфейсов потоков и операций).
Определение потоков в терминах сигналов зависит от деталей взаимодействий, абстрагированных в спецификации рассматриваемого интерфейса потоков, и, следовательно, находится вне сферы действия настоящей базовой модели.
Операции могут моделироваться как сигналы путем введения соответствующих интерфейсов сигналов для интерфейсов операций клиента и сервера:
- в интерфейсе сигналов, удовлетворяющем интерфейсу операций клиента, имеются сигналы (подача вызова), соответствующие всем вызовам с теми же самыми параметрами, а в случае интерфейса, содержащего запросы, сигналы (доставка завершения), — всем возможным завершениям с теми же самыми параметрами;
- в интерфейсе сигналов, удовлетворяющем интерфейсу операций сервера, имеются сигналы (доставка вытзова), соответствующие всем вгызовам с теми же самыми параметрами, а в случае интерфейса, содержащего запросы, сигналы (подача завершения), — всем возможным завершениям с теми же самыми параметрами.
Полученный таким образом набор сигналов эквивалентен набору вызовов и завершений в описываемом интерфейсе операций.
12