ГОСТ ISO/IEC 24824-2—2013
П римечание — ASN.1 SOAP посредники также могут эффективно управлять fault, так как fault всегда
будет появляться в конце сообщения (после блоков заголовков SOAP) и будет гарантированно начинаться на гра
нице байта, если блоки заголовков присутствуют. Таким образом, у посредника нет необходимости декодировать
fault, пока он выполняет процессы, не заданные моделью обработки SOAP
С.2 Концептуальная и оптимизированная обработка ASN.1 SOAP сообщений
С.2.1 Общие положения
С.2.1.1 Концептуальное отображение ASN.1 SOAP сообщений в W3C SOAP сообщения и наоборот гаранти
рует, что модель обработки W3C SOAP может быть применена кASN.1 SOAP сообщениям. В шести последующих
подпунктахописаны концептуальные шаги, необходимыедля обработки сообщений первоначальным SOAP отпра
вителем, SOAP посредником и конечным SOAP получателем, и оптимизированные шаги, необходимые для SOAP
посредника.
С.2.1.2 Первоначальный SOAP отправитель (см. W3C SOAP Часть 1. 1.5.3), имплементируя ASN.1 SOAP
HTTP привязку, формирует ASN.1 SOAP сообщения в следующем порядке:
a) создает новое W3C SOAP сообщение и вставляет новые встроенные в ASN.1 абстрактные значения в
W3C SOAP сообщение.
b
) отображает W3C SOAP сообщение вASN.1 SOAP сообщение.
c) кодирует ASN.1 SOAP сообщение, используя Basic Aligned PER. в последовательность октетов, которая
составляет содержимое HTTP запроса.
С.2.1.3 Если первоначальный SOAP отправитель использует SOAP Request-Response Message Exchange
Pattern (см. W3C SOAP Часть 2. 6.2). то SOAP отправитель (см. W3C SOAP Часть 1. 1.5.3) будет ждать ответа и
меняться ролями, чтобы стать конечным SOAP получателем (см. W3C SOAP Часть 1, 1.5.3).
С.2.1.4 SOAP посредник (см. W3C SOAP Часть 1, 1.5.3), имплементируя ASN.1 SOAP HTTP привязку, обра
батывает ASN.1 SOAP сообщения в следующем порядке:
a) декодирует последовательность октетов, полученных из содержимого HTTP запроса или ответа, исполь
зуя Basic Aligned PER. для получения входногоASN.1 SOAP сообщения;
b
) отображает входноеASN.1 SOAP сообщение для получения входного W3C SOAP сообщения;
c) определяет и обрабатывает встроенные в ASN.1 абстрактные значения во входном W3C SOAP
сообщении:
d) изменяет входное W3C SOAP сообщение, чтобы оно стало выходным W3C SOAP сообщением, и вставля
ет новые встроенные вASN.1 абстрактные значения в выходное W3C SOAP сообщение:
e) отображает выходное W3C SOAP сообщение в выходное ASN.1 SOAP сообщение:
f) кодирует выходноеASN.1 SOAP сообщение, используя Basic Aligned PER. в последовательность октетов,
которая составляет содержимое HTTP ответа или запроса.
С.2.1.5 Конечный SOAP получатель, имплементируяASN.1 SOAP HTTP привязку, обрабатываетASN.1 SOAP
сообщения в следующем порядке:
a) декодирует последовательность октетов, полученную из содержимого HTTP запроса, используя Basic
Aligned PER, чтобы получить ASN. 1 SOAP сообщение:
b
) отображает ASN.1 SOAP сообщение для получения W3C SOAP сообщения;
c) определяет и обрабатывает встроенные вASN.1 абстрактные значения в W3C SOAP сообщении.
С.2.1.6 Если конечным SOAPполучателем используетсяSOAP Request-Response Message Exchange Pattern,
то SOAP узел будет меняться ролями, чтобы стать начальным SOAP отправителем, и будет отправлять ASN.1
SOAP сообщение в ответ.
С.2.1.7 Концептуальные шаги для отображения в W3C SOAP сообщения и из W3C SOAP сообщений и для
обработки встроенных вASN.1 значений (идентификация и обработка в W3C SOAP сообщении и вставка в W3C
SOAP сообщение) указаны в разделах 6 — 9. SOAP узел, однако, может решить сделать оптимизацию процесса,
пропуская концептуальные шаги до тех пор, пока результаты остаются такими же. как если бы концептуальные
шаги были выполнены (см. 6.4). Например, шаги Ь)— е) в С.2.1.4 являются концептуальными шагами, и SOAP по
средник может решить сделать оптимизацию путем обработки ASN.1 SOAP сообщений в следующем порядке:
a) декодировать последовательность октетов, полученную из содержимого HTTP запроса, используя Basic
Aligned PER, для получения входногоASN.1 SOAP сообщения;
b
) идентифицировать и обрабатывать встроенные в ASN.1 абстрактные значения во входном ASN.1 SOAP
сообщении:
c) изменить входное ASN.1 SOAP сообщение, чтобы оно стало выходным ASN.1 SOAP сообщением (или
создать новое выходное ASN.1 SOAP сообщение), и вставить новые встроенные в ASN.1 абстрактные значения в
выходноеASN.1 SOAP сообщение;
d) закодировать выходноеASN.1 SOAP сообщение, используя Basic Aligned PER, в последовательностьокте
тов. которая составляет содержимое HTTP ответа.
С.2.2 Пример
Пример приведен в следующих подпунктах с точки зрения приложения, отправляющего ASN.1 SOAP со
общение запроса и получающего ответ. Быстрый веб-сервис описан в С.3.2 с использованием WSDL 1.1 и основан на
образце W3C SOAP сообщения вW3CSOAP Часть 1.1.4. Сервис является одним из тех. где приложение может
29