{"id":496937,"date":"2026-10-01T13:36:46","date_gmt":"2026-10-01T13:36:46","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=496937"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=496937","title":{"rendered":"AS4 \u0432 .NET \u0431\u0435\u0437 Java-\u0448\u043b\u044e\u0437\u0430: ebMS 3.0, WS-Security \u0438 \u043d\u0435\u043e\u0442\u0440\u0435\u043a\u0430\u0435\u043c\u044b\u0435 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438 \u0448\u0430\u0433\u043e\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb0\/0b2\/40d\/eb00b240d2471dedbe22c2e657589100.png\" alt=\"redb.Route.AS4\" title=\"redb.Route.AS4\" width=\"1200\" height=\"630\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/eb0\/0b2\/40d\/eb00b240d2471dedbe22c2e657589100.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb0\/0b2\/40d\/eb00b240d2471dedbe22c2e657589100.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>redb.Route.AS4<\/figcaption><\/div>\n<\/figure>\n<p>AS4: \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0441 \u0433\u043e\u0441- \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0415\u0421. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 <strong>redb.Route<\/strong>, \u0431\u0435\u0437 Java MSH.  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u0431\u044b\u0442\u043e\u0432\u0443\u044e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e, AS4 \u044d\u0442\u043e \u0437\u0430\u043a\u0430\u0437\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\u043c \u043e \u0432\u0440\u0443\u0447\u0435\u043d\u0438\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0443\u043c\u0430\u0433\u0438 \u043f\u043e \u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442. \u0412\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0435\u0433\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443, \u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0441 \u043f\u043e\u0447\u0442\u043e\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u043c\u0430\u0436\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043b\u0438\u0448\u044c, \u0447\u0442\u043e \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u0434\u043e\u0448\u0451\u043b, \u0430 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f AS4 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443: \u043e\u043d\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u043e\u0448\u0451\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0435\u0441\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0441 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u043c B2B, \u0432\u044b, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u043f\u043e AS4. \u042d\u0442\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044c OASIS ebMS 3.0, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u0438\u0442 EU eDelivery: \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0432 e-CODEX \u0438 e-Justice, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0447\u0435\u0442\u0430 \u0432 \u0441\u0435\u0442\u0438 Peppol, \u0437\u0430\u044f\u0432\u043a\u0438 \u0433\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 ENTSOG, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0432 eFTI. AS4 \u044d\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a AS2: \u0432\u043c\u0435\u0441\u0442\u043e S\/MIME-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430 \u043f\u043e \u0441\u0435\u0442\u0438 \u0438\u0434\u0451\u0442 SOAP 1.2 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c\u00a0<code>eb:Messaging<\/code>, WS-Security \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0422\u0430\u043c, \u0433\u0434\u0435 \u0443 AS2 \u0431\u044b\u043b MDN \u0441 MIC, \u0443 AS4\u00a0<code>eb:Receipt<\/code>\u00a0\u0441 non-repudiation: \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438.<\/p>\n<p>\u0412 .NET \u044d\u0442\u043e\u0442 \u043c\u0438\u0440 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0437\u0430\u043a\u0440\u044b\u0442 \u043f\u043b\u043e\u0445\u043e. \u0417\u0440\u0435\u043b\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 AS4 \u0436\u0438\u0432\u0443\u0442 \u0432 Java: Holodeck B2B, Apache Domibus (\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b EU eDelivery), phase4. \u0417\u043d\u0430\u0447\u0438\u0442, \u0440\u044f\u0434\u043e\u043c \u0441 \u0432\u0430\u0448\u0438\u043c .NET-\u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 JVM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u043b\u044e\u0437 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u0441\u0432\u043e\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u044f. \u0411\u0430\u0437\u043e\u0432\u044b\u0439 .NET-\u0441\u0442\u0435\u043a AS4 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442: \u043d\u0438 SOAP-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430 \u0441 ebMS-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438, \u043d\u0438 WS-Security \u043d\u0430\u0434 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 MIME, \u043d\u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u0438\u0442\u044c.<\/p>\n<p><a href=\"http:\/\/redb.Route.As\" rel=\"noopener nofollow\"><code>redb.Route.As<\/code><\/a><code>4<\/code>\u00a0\u0441\u0442\u0430\u0432\u0438\u0442 AS4 \u0432\u043d\u0443\u0442\u0440\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430. \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0<code>To<\/code>, \u043f\u0440\u0438\u0451\u043c \u0447\u0435\u0440\u0435\u0437\u00a0<code>From<\/code>. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u0441\u0436\u0430\u043b\u0441\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0441\u044f, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0443\u0448\u0451\u043b \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443, \u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0418\u043b\u0438: \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u043f\u0440\u0438\u0448\u0451\u043b, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0430\u0441\u044c, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043b\u0451\u0433 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443 \u0443\u0448\u043b\u0430 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u041e\u0434\u0438\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043e\u0434\u0438\u043d \u0434\u0435\u043f\u043b\u043e\u0439, \u043e\u0434\u043d\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u0442\u0440\u0435\u0439\u0441\u043e\u0432. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0433\u0434\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/p>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 AS4, \u0430 \u043d\u0435 \u00ab\u043f\u0440\u043e\u0441\u0442\u043e HTTPS\u00bb<\/h3>\n<p>\u0420\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u0435\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u0438 \u0442\u0430\u043a \u043f\u043e\u0434 TLS, \u0437\u0430\u0447\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e \u0435\u0449\u0451 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u0442\u043e\u0442 \u0436\u0435, \u0447\u0442\u043e \u0432 \u043c\u0438\u0440\u0435 AS2, \u0438 \u043e\u043d \u043d\u0435 \u043f\u0440\u043e \u043f\u0430\u0440\u0430\u043d\u043e\u0439\u044e. TLS \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u043a\u0430\u043d\u0430\u043b: \u043e\u043d \u0436\u0438\u0432\u0451\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043a\u0435\u0442\u0430 \u0434\u043e \u0441\u043e\u043a\u0435\u0442\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442\u044b \u043b\u0435\u0433\u043b\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0412 \u043b\u043e\u0433\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438, \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0442. AS4 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0441\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442: \u043e\u043d \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u0432\u0441\u0451\u043c \u043f\u0443\u0442\u0438 \u0438 \u0432 \u043f\u043e\u043a\u043e\u0435, \u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<p>\u041d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0435 \u044d\u0442\u043e. \u0423 TLS \u043d\u0435\u0442 \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0438. AS4 \u0435\u0451 \u0434\u0430\u0451\u0442: \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0435\u0439, \u0438 \u0435\u0451 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b (non-repudiation references) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438 \u0432\u044b. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0442\u0440\u0435\u043a\u0430\u0435\u043c\u043e\u0441\u0442\u044c: \u043a\u043e\u0433\u0434\u0430 \u0437\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0441\u0442\u043e\u044f\u0442 \u0434\u0435\u043d\u044c\u0433\u0438, \u0441\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0444\u0430\u043a\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 AS4 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0442\u0430\u043c, \u0433\u0434\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435\u0441\u0451\u0442 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0430 \u043d\u0435 \u043f\u0438\u0441\u044c\u043c\u043e.<\/p>\n<h3>AS4 \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u0443<\/h3>\n<p>\u041f\u043e \u0441\u0435\u0442\u0438 \u044d\u0442\u043e HTTP POST \u0441\u00a0<code>multipart\/related<\/code>\u00a0\u0438 SOAP 1.2. \u041a\u043e\u043d\u0432\u0435\u0440\u0442 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439.<\/p>\n<p><strong>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a.<\/strong>\u00a0<code>eb:Messaging<\/code>\u00a0\u043d\u0435\u0441\u0451\u0442 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435:\u00a0<code>eb:UserMessage<\/code>\u00a0\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438 (<code>eb:PartyId<\/code>), \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c (<code>eb:Service<\/code>,\u00a0<code>eb:Action<\/code>), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0433\u043b\u043e\u0432 (<code>originalSender<\/code>,\u00a0<code>finalRecipient<\/code>). \u0420\u044f\u0434\u043e\u043c \u0431\u043b\u043e\u043a\u00a0<code>wsse:Security<\/code>:\u00a0<code>wsu:Timestamp<\/code>, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f (<code>wsse:BinarySecurityToken<\/code>), \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0435\u0441\u0441\u0438\u0438 (<code>xenc:EncryptedKey<\/code>), \u043f\u043e\u0434\u043f\u0438\u0441\u044c (<code>ds:Signature<\/code>) \u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443\u00a0<code>xenc:EncryptedData<\/code>\u00a0\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p><strong>\u0412\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/strong>\u00a0\u0411\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0432 \u0442\u0435\u043b\u0435 SOAP, \u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 MIME-\u0447\u0430\u0441\u0442\u044f\u043c\u0438 (SOAP with Attachments, SwA). \u0427\u0430\u0441\u0442\u044c \u0441\u0436\u0438\u043c\u0430\u0435\u0442\u0441\u044f gzip, \u0437\u0430\u0442\u0435\u043c \u0448\u0438\u0444\u0440\u0443\u0435\u0442\u0441\u044f, \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0451 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0422\u0435\u043b\u043e SOAP \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0443\u0441\u0442\u043e\u0435. \u042d\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e SOAP-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 MTOM: \u0432 AS4 payload \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0434\u0435\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0438\u00a0<strong>\u0432 \u0442\u043e\u043c \u0436\u0435 HTTP-\u043e\u0442\u0432\u0435\u0442\u0435<\/strong>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e. \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430: \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c eDelivery AS4, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0436\u0434\u0451\u0442 \u0435\u0451 \u0441\u0440\u0430\u0437\u0443, \u0430 \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.<\/p>\n<h3>\u0427\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442: endpoint \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0430<\/h3>\n<p>redb.Route \u044d\u0442\u043e\u00a0<a href=\"https:\/\/redb.ru\/articles\" rel=\"noopener nofollow\">Apache Camel \u043f\u043e\u0434 .NET<\/a>: \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0<code>From \u2192 \u2026 \u2192 To<\/code>, \u0430 endpoint \u044d\u0442\u043e URI-\u0441\u0442\u0440\u043e\u043a\u0430. \u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 AS4 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0435 \u0441\u0445\u0435\u043c\u044b,\u00a0<code>as4<\/code>\u00a0(HTTP) \u0438\u00a0<code>as4s<\/code>\u00a0(HTTPS), \u0438 \u043e\u043d\u0438 \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435:<\/p>\n<pre><code>as4s:\/\/ap.partner.example\/as4?connectionFactory=node&amp;partner=acme   # \u043a\u0443\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043cas4:\/as4\/in?host=0.0.0.0&amp;port=4090&amp;connectionFactory=node           # \u0433\u0434\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u043e \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u043d\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0435: \u043a\u0443\u0434\u0430 \u0438\u0434\u0451\u043c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u0441\u043b\u0443\u0448\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440. \u0415\u0441\u0442\u044c \u0438 \u0444\u043b\u044e\u0435\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u043b\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u0442 \u0436\u0435 URI, \u0442\u0430\u043a \u0447\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437\u00a0<code>appsettings.json<\/code>\u00a0\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u043c \u0431\u0435\u0437 \u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<pre><code>services.AddRedbRoute(route =&gt;{    route.Services.AddRedbRouteAs4();    route.AddRouteBuilder&lt;MyRoutes&gt;();});<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>AddRedbRouteAs4()<\/code>\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0445\u0435\u043c\u044b. \u041f\u0440\u0438\u0451\u043c AS4 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0431\u0449\u0435\u043c Kestrel-\u0445\u043e\u0441\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u044f\u0442 \u0432\u0441\u0435 HTTP-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430: HTTP, SOAP, AS2 \u0438 AS4 \u0432 \u043e\u0434\u043d\u043e\u043c \u0432\u043e\u0440\u043a\u0435\u0440\u0435 \u043d\u0435 \u0434\u0435\u0440\u0443\u0442\u0441\u044f \u0437\u0430 \u043f\u043e\u0440\u0442, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043f\u0430\u0440\u043e\u043b\u0438 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0432 URI \u043d\u0435 \u0436\u0438\u0432\u0443\u0442: URI \u044d\u0442\u043e \u043a\u043b\u044e\u0447 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u043e\u043d \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043b\u043e\u0433\u0438, \u0442\u0440\u0435\u0439\u0441\u044b \u0438 \u043f\u0430\u043d\u0435\u043b\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u0438. \u0412\u0441\u0451 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0432\u044b\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<p>\u0422\u0443 \u0436\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0434\u043e\u043c, \u043d\u043e \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 Route-XML: \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b \u0432 \u0444\u0430\u0439\u043b\u0430\u0445\u00a0<code>.route.xml<\/code>, \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b \u0432\u00a0<code>&lt;bean&gt;<\/code>. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 VS Code \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c\u00a0<code>redb-route-xml<\/code>: \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435, \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432, \u0433\u0440\u0430\u0444 \u0448\u0430\u0433\u043e\u0432. \u0412 Marketplace \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0435\u0442, \u0435\u0433\u043e \u043e\u0442\u0434\u0430\u044e\u0442 \u0444\u0430\u0439\u043b\u043e\u043c \u0432 \u0440\u0435\u043b\u0438\u0437\u0430\u0445: \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435\u00a0<code>redb-route-xml-&lt;version&gt;.vsix<\/code>\u00a0\u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u00abExtensions \u2192 \u2026 \u2192 Install from VSIX\u00bb \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u00a0<code>code --install-extension redb-route-xml-&lt;version&gt;.vsix<\/code>\u00a0(\u0431\u0430\u0437\u043e\u0432\u044b\u0439 Red Hat XML VS Code \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0435\u0442 \u0441\u0430\u043c). \u0414\u0430\u043b\u044c\u0448\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043d\u0430 C# \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442 \u0432 XML, \u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438:\u00a0<code>demos\/XmlDemo<\/code>\u00a0\u0438\u00a0<code>demos\/SerialNumbersDemo\/SerialNumbers.Xml<\/code>.<\/p>\n<h3>\u0423\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b: \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u043e\u0441\u0441\u044b\u043f\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/h3>\n<p>\u0412 AS4 \u0432\u0441\u0451 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 (P-Mode): \u043a\u0442\u043e, \u0447\u0442\u043e, \u043a\u043e\u043c\u0443, \u043a\u0430\u043a\u0438\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438, \u043d\u0443\u0436\u043d\u0430 \u043b\u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0423 \u043d\u0430\u0441 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u041d\u0430\u0448 \u0443\u0437\u0435\u043b (<code>As4ConnectionFactory<\/code>) \u0437\u043d\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c, \u043d\u0430\u0448\u0438 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432; \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 (<code>As4Partner<\/code>) \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435.<\/p>\n<pre><code>context.AddToRegistry(\"node\", new As4ConnectionFactory{    OurPartyId = \"urn:oasis:names:tc:ebcore:partyid-type:unregistered:us\",    ExternalHostName = \"ap.us.example\",        \/\/ \u0445\u043e\u0441\u0442 \u0432 \u043d\u0430\u0448\u0438\u0445 eb:MessageId, \u043d\u0435 \u0438\u043c\u044f \u043c\u0430\u0448\u0438\u043d\u044b    SigningCertificate = ourPfx,               \/\/ \u043d\u0430\u0448 \u043a\u043b\u044e\u0447: \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438    DecryptionCertificates = { ourPfx },       \/\/ \u043d\u0430\u0448\u0438 \u043a\u043b\u044e\u0447\u0438: \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435    Partners =    {        new As4Partner        {            Name = \"acme\",            PartyId = \"urn:oasis:names:tc:ebcore:partyid-type:unregistered:acme\",            Service = \"urn:example:services:invoice\",            Action  = \"Submit\",            PartnerSigningCertificates = { acmeCer },   \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430            PartnerEncryptionCertificate = acmeCer,     \/\/ \u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0435\u043c\u0443 payload        },    },});<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0437\u0435\u043b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 (<code>connectionFactory=node<\/code>) \u0438, \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435, \u043d\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 (<code>partner=acme<\/code>). \u041f\u0440\u0438\u0451\u043c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u043d\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442: \u043e\u0434\u0438\u043d URL \u043f\u0440\u0438\u0451\u043c\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u0443\u0437\u043b\u0430, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435\u00bb: \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c. \u0420\u043e\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0430 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430.<\/p>\n<p>\u0422\u043e\u0442 \u0436\u0435 \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 (<code>context.xml<\/code>):<\/p>\n<pre><code class=\"xml\">&lt;context xmlns=\"urn:redb:route:1.0\"&gt;  &lt;bean name=\"acme\" type=\"redb.Route.As4.As4Partner, redb.Route.As4\"&gt;    &lt;property key=\"Name\" value=\"acme\"\/&gt;    &lt;property key=\"PartyId\" value=\"urn:oasis:names:tc:ebcore:partyid-type:unregistered:acme\"\/&gt;    &lt;property key=\"Service\" value=\"urn:example:services:invoice\"\/&gt;    &lt;property key=\"Action\" value=\"Submit\"\/&gt;    &lt;property key=\"PartnerSigningCertificates\"&gt;      &lt;list&gt;        &lt;bean type=\"System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography\"              factoryMethod=\"LoadCertificateFromFile\"&gt;          &lt;constructorArg value=\"{{as4.certificates}}\/acme.cer\"\/&gt;        &lt;\/bean&gt;      &lt;\/list&gt;    &lt;\/property&gt;    &lt;property key=\"PartnerEncryptionCertificate\"&gt;      &lt;bean type=\"System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography\"            factoryMethod=\"LoadCertificateFromFile\"&gt;        &lt;constructorArg value=\"{{as4.certificates}}\/acme.cer\"\/&gt;      &lt;\/bean&gt;    &lt;\/property&gt;  &lt;\/bean&gt;  &lt;bean name=\"node-key\"        type=\"System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography\"        factoryMethod=\"LoadPkcs12FromFile\"&gt;    &lt;constructorArg value=\"{{as4.certificates}}\/us.pfx\"\/&gt;    &lt;constructorArg value=\"{{as4.password}}\"\/&gt;  &lt;\/bean&gt;  &lt;bean name=\"node\" type=\"redb.Route.As4.As4ConnectionFactory, redb.Route.As4\"&gt;    &lt;property key=\"OurPartyId\" value=\"urn:oasis:names:tc:ebcore:partyid-type:unregistered:us\"\/&gt;    &lt;property key=\"ExternalHostName\" value=\"ap.us.example\"\/&gt;    &lt;property key=\"SigningCertificate\" ref=\"node-key\"\/&gt;    &lt;property key=\"DecryptionCertificates\"&gt;&lt;list&gt;&lt;ref bean=\"node-key\"\/&gt;&lt;\/list&gt;&lt;\/property&gt;    &lt;property key=\"Partners\"&gt;&lt;list&gt;&lt;ref bean=\"acme\"\/&gt;&lt;\/list&gt;&lt;\/property&gt;  &lt;\/bean&gt;  &lt;bean name=\"as4-in\" type=\"redb.Route.Processors.InMemoryIdempotentRepository, redb.Route\"\/&gt;&lt;\/context&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<h3>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430: \u0441\u0436\u0430\u043b\u0438, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0438, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438, \u0434\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438<\/h3>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u044d\u0442\u043e \u0448\u0430\u0433\u00a0<code>To<\/code>. \u0422\u0435\u043b\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c:\u00a0<code>byte[]<\/code>\u00a0\u043a\u0430\u043a \u0435\u0441\u0442\u044c,\u00a0<code>string<\/code>\u00a0\u0432 UTF-8,\u00a0<code>Stream<\/code>\u00a0\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u043c.<\/p>\n<pre><code>using redb.Route.As4.Fluent;From(\"direct:\/\/outbound\")    .SetHeader(As4Headers.OriginalSender, \"urn:example:c1\")   \/\/ \u0447\u0435\u0442\u044b\u0440\u0435 \u0443\u0433\u043b\u0430: \u043a\u0442\u043e \u043f\u0440\u0438\u0441\u043b\u0430\u043b    .SetHeader(As4Headers.FinalRecipient, \"urn:example:c4\")   \/\/ \u0438 \u043a\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c    .To(As4.Send(\"https:\/\/ap.acme.example\/as4\")             .ConnectionFactory(\"node\")             .Partner(\"acme\"));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0442\u043e\u0442 \u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442:<\/p>\n<pre><code class=\"xml\">&lt;!-- routes\/outbox.route.xml --&gt;&lt;routes xmlns=\"urn:redb:route:1.0\"&gt;  &lt;route id=\"as4-outbox\"&gt;    &lt;from uri=\"direct:\/\/outbound\"\/&gt;    &lt;setHeader name=\"redbAs4.property.originalSender\" value=\"urn:example:c1\"\/&gt;    &lt;setHeader name=\"redbAs4.property.finalRecipient\" value=\"urn:example:c4\"\/&gt;    &lt;to uri=\"as4s:\/\/ap.acme.example\/as4?connectionFactory=node&amp;amp;partner=acme\"\/&gt;  &lt;\/route&gt;&lt;\/routes&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0417\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0439\u00a0<code>To<\/code>\u00a0\u0438\u0434\u0443\u0442 gzip, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u043e\u043c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0432\u0430\u0448\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c, POST \u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u043e\u0442\u0432\u0435\u0442\u0430. \u041f\u0440\u043e\u0434\u044e\u0441\u0435\u0440 \u0436\u0434\u0451\u0442 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0435\u0451: \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0430 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u0438 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0442\u0435 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b, \u0447\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438 \u043c\u044b. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u043d\u0430\u00a0<code>exchange.Out<\/code>, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u0430\u00a0<code>exchange.Out<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.receiptValid<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>bool<\/code>: \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f non-repudiation<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.receiptMessageId<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>eb:MessageId<\/code>\u00a0\u0441\u0430\u043c\u043e\u0439 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.messageId<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>eb:MessageId<\/code>\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043e\u0442\u0432\u0435\u0442\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0418\u0441\u0445\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0442\u043d\u0451\u0440 \u043e\u0442\u0432\u0435\u0442\u0438\u043b ebMS-\u043e\u0448\u0438\u0431\u043a\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>As4ErrorSignalException<\/code>\u00a0(<code>ErrorCode<\/code>,\u00a0<code>Description<\/code>,\u00a0<code>ErrorDetail<\/code>)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043d\u0435\u0442 \u0438\u043b\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435\u0442 \u0437\u0430\u00a0<code>timeout<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>As4ReceiptException<\/code>\u00a0(<code>EBMS:0301<\/code>)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u0441 \u0447\u0443\u0436\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430\u043c\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>As4ReceiptException<\/code>\u00a0(<code>EBMS:0302<\/code>)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041f\u0440\u0438\u0451\u043c: \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043e\u0442\u0434\u0430\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443, \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0435\u0439<\/h3>\n<p>\u041f\u0440\u0438\u0451\u043c \u044d\u0442\u043e \u0448\u0430\u0433\u00a0<code>From<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430.<\/p>\n<pre><code>From(As4.Receive(\"\/as4\/in\").Host(\"0.0.0.0\").Port(4090)        .ConnectionFactory(\"node\").IdempotentRepository(\"as4-in\"))    .ValidateXsd(invoiceSchema)          \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0431\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e XSD    .To(\"direct:\/\/process-invoice\");<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442:<\/p>\n<pre><code class=\"xml\">&lt;!-- routes\/inbox.route.xml --&gt;&lt;routes xmlns=\"urn:redb:route:1.0\"&gt;  &lt;route id=\"as4-inbox\"&gt;    &lt;from uri=\"as4:\/as4\/in?host=0.0.0.0&amp;amp;port=4090&amp;amp;connectionFactory=node&amp;amp;idempotentRepository=as4-in\"\/&gt;    &lt;validateXsd file=\"invoice.xsd\"\/&gt;    &lt;to uri=\"direct:\/\/process-invoice\"\/&gt;  &lt;\/route&gt;&lt;\/routes&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u043c. \u0412 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442\u00a0<strong>\u0447\u0438\u0441\u0442\u044b\u0439 \u0431\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442<\/strong>\u00a0\u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u00a0<code>Message.ContentType<\/code>\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>application\/xml<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>application\/edi-x12<\/code>), \u0430 \u043d\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u043e\u0431\u0451\u0440\u0442\u043a\u0430. \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u043c\u0435\u043d\u0430 \u043b\u0435\u0436\u0430\u0442 \u043f\u043e\u0434\u00a0<code>redbAs4.*<\/code>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.partner<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0438\u043c\u044f \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.signatureValid<\/code>\u00a0\/\u00a0<code>signerThumbprint<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430; \u0435\u0433\u043e \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.fromPartyId<\/code>\u00a0\/\u00a0<code>toPartyId<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.service<\/code>\u00a0\/\u00a0<code>action<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0431\u0438\u0437\u043d\u0435\u0441-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u00a0<code>eb:CollaborationInfo<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>redbAs4.messageId<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>eb:MessageId<\/code>\u00a0\u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c: \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u0443\u0445\u043e\u0434\u0438\u0442 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443\u00a0<strong>\u043f\u043e\u0441\u043b\u0435<\/strong>\u00a0\u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442. \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u00a0<code>To<\/code>\u00a0\u0443\u043f\u0430\u043b \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0430\u0441\u044c, \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442: \u0438\u043d\u0430\u0447\u0435 \u0432\u044b \u0431\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u043f\u0440\u0438\u0451\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438. \u041e\u0442\u043a\u0430\u0437 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 ebMS-\u043e\u0448\u0438\u0431\u043a\u0443 (<code>EBMS:0004<\/code>), \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443.<\/p>\n<h3>\u041d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0434\u0432\u0438\u0436\u043a\u0430: \u0434\u0443\u0431\u043b\u0438 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440 \u0442\u0435\u043c \u0436\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c<\/h3>\n<p>\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 (Reception Awareness) \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 (Retry). \u0412 redb.Route \u044d\u0442\u043e \u043d\u0435 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e: \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0432\u0441\u0442\u0430\u0451\u0442 \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u0432\u0438\u0436\u043a\u0430 \u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432, \u0441\u0432\u043e\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0438\u043b\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u043e\u0434\u0438\u0442.<\/p>\n<p>\u041d\u0430 \u043f\u0440\u0438\u0451\u043c\u0435\u00a0<code>idempotentRepository<\/code>\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d.\u00a0<code>eb:MessageId<\/code>\u00a0\u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0434\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c id \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e), \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435. \u041f\u0440\u0438\u0448\u0451\u043b \u0434\u0443\u0431\u043b\u044c: \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443 \u0441\u043d\u043e\u0432\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f, \u043d\u043e \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043d\u0435 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f. \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0431\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u043c, \u0438 \u043e\u0442 \u0432\u044b\u0431\u043e\u0440\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u0441\u0442\u0430\u0440\u0442:\u00a0<code>InMemoryIdempotentRepository<\/code>\u00a0\u0437\u0430\u0431\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0451 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0439 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u043d\u043e\u0434\u0443 \u0437\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c; \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d\u0430 \u0435\u0441\u0442\u044c redb- \u0438\u043b\u0438 SQL-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. \u041e\u043a\u043d\u043e \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u00a0<code>Ttl<\/code>\u00a0\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u0438 \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f.<\/p>\n<p>\u041d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u00a0<code>OnException<\/code>. \u041f\u0440\u043e\u0434\u044e\u0441\u0435\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u00a0<code>redbAs4.messageId<\/code>\u00a0\u043d\u0430 \u043e\u0431\u043c\u0435\u043d \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438 \u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043e\u0431\u043c\u0435\u043d\u0435: \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0448\u043b\u0451\u0442\u00a0<strong>\u0442\u0435 \u0436\u0435 \u0431\u0430\u0439\u0442\u044b<\/strong>, \u0442\u043e\u0442 \u0436\u0435 id \u0438 \u0442\u0443 \u0436\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u044c. \u0422\u0430\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b: \u043f\u043e AS4 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u044d\u0442\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041f\u0430\u0440\u0442\u043d\u0451\u0440 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442 \u0434\u0443\u0431\u043b\u044c \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 (\u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0435\u0442 Domibus), \u0430 \u0435\u0451 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0442\u0443 \u0441\u0430\u043c\u0443\u044e \u043f\u043e\u0434\u043f\u0438\u0441\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b\u0438.<\/p>\n<pre><code>OnException&lt;As4ReceiptException&gt;()    .MaximumRedeliveries(5)    .RedeliveryDelay(TimeSpan.FromSeconds(30))    .UseExponentialBackOff()    .Handled()    .To(\"direct:\/\/as4-undelivered\");          \/\/ dead letter \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0442\u043e\u0442 \u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a (\u0441\u0435\u043a\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c):<\/p>\n<pre><code class=\"xml\">&lt;onException exceptions=\"redb.Route.As4.As4ReceiptException, redb.Route.As4\"             handled=\"true\" maximumRedeliveries=\"5\" redeliveryDelay=\"00:00:30\"             exponentialBackOff=\"true\"&gt;  &lt;to uri=\"direct:\/\/as4-undelivered\"\/&gt;&lt;\/onException&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440 \u0434\u0432\u0438\u0436\u043a\u0430 \u0436\u0438\u0432\u0451\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438: \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u0442\u0435\u0440\u044f\u0435\u0442 \u043e\u0431\u043c\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0438. \u0414\u043b\u044f \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u043d\u0430 \u0447\u0430\u0441\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c outbox (\u043e\u0431\u044a\u0435\u043a\u0442 redb \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u043c\u00a0<code>redbAs4.messageId<\/code>) \u0438 \u0434\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u00a0<code>timer:<\/code>-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u043c \u0442\u043e, \u043d\u0430 \u0447\u0442\u043e \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438 \u0435\u0449\u0451 \u043d\u0435\u0442.<\/p>\n<h3>\u041f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0441\u0442\u044c: \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430<\/h3>\n<p>\u0412 B2B \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0442\u043d\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442, \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u0445 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u043b\u044c\u0437\u044f. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0435\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 \u043a\u044d\u0448 \u044f\u0434\u0440\u0430: \u043a\u0440\u0443\u043f\u043d\u044b\u0439 payload \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437\u00a0<code>byte[]<\/code>. \u0421\u0436\u0430\u0442\u0438\u0435 \u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0435 (\u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 AES-GCM \u043d\u0430 BouncyCastle), \u043f\u0440\u0438\u0451\u043c\u043d\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u0442\u043e\u043a (<code>streamBody<\/code>), \u0430 \u043d\u0435 \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (<code>maxRequestBodySize<\/code>, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 100 \u041c\u0411), \u0440\u0430\u0437\u043c\u0435\u0440 SOAP-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430 (<code>maxEnvelopeCharacters<\/code>, 1 \u041c\u0411; payload \u0435\u0434\u0435\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0432 \u044d\u0442\u043e\u0442 \u043b\u0438\u043c\u0438\u0442 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442) \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 (<code>maxResponseBodySize<\/code>, 4 \u041c\u0411; \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u044d\u0442\u043e \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b). \u0424\u043e\u0440\u0432\u0430\u0440\u0434-\u0441\u0442\u0440\u0438\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437: \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443, \u0435\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435 \u0447\u0435\u0440\u0435\u0437\u00a0<code>.StreamCaching()<\/code>.<\/p>\n<h3>\u041a\u0440\u0438\u043f\u0442\u043e-\u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0430\u043c\u0438\u043c<\/h3>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c AS4, \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u043c\u0435\u0439\u043d\u0441\u0442\u0440\u0438\u043c\u0435 .NET \u043d\u0435\u0442. \u0428\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c, \u0438 \u044d\u0442\u043e \u043d\u0435 \u043b\u0435\u043d\u044c \u0441\u0442\u0435\u043a\u0430, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0434\u044b\u0440\u044b \u0432 API.<\/p>\n<p><code>SignedXml<\/code>\u00a0\u0438\u0437 .NET \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438\u00a0<code>cid:<\/code>\u00a0\u043d\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f MIME. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e: \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0441\u0430\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u00a0<code>ds:Reference<\/code>\u00a0\u0438\u00a0<code>SignedInfo<\/code>, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 Attachment-Content-Signature-Transform \u0438 Exclusive C14N (\u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439\u00a0<code>XmlDsigExcC14NTransform<\/code>), \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 RSA PKCS#1 v1.5.<\/p>\n<p><code>EncryptedXml<\/code>\u00a0\u0438\u0437 .NET \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 AES-GCM, \u0430 \u0435\u0433\u043e\u00a0<code>DecryptKey<\/code>\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e OAEP-SHA1, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 OAEP \u0441 MGF1-SHA256. \u0417\u043d\u0430\u0447\u0438\u0442, \u043a\u043b\u044e\u0447 \u0441\u0435\u0441\u0441\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0438\u043c, \u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<a href=\"http:\/\/System.Security\" rel=\"noopener nofollow\"><code>System.Security<\/code><\/a><code>.Cryptography.AesGcm<\/code>\u00a0\u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c XML Encryption 1.1 (IV 12 \u0431\u0430\u0439\u0442, \u0442\u0435\u0433 16, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u00abIV, \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442, \u0442\u0435\u0433\u00bb).<\/p>\n<p>\u041d\u0435\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 XML \u0438\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437\u00a0<code>SafeXml<\/code>\u00a0\u044f\u0434\u0440\u0430: DTD \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d (\u0441\u0430\u043c\u0430 SOAP 1.2 \u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442), \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443. \u041e\u0442 \u043f\u043e\u0434\u043c\u0435\u043d\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (signature wrapping) \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f\u00a0<code>wsu:Id<\/code>\u00a0\u043e\u0442\u0432\u0435\u0440\u0433\u0430\u044e\u0442\u0441\u044f, \u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043e\u0431\u044f\u0437\u0430\u043d\u0430 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u00a0<code>eb:Messaging<\/code>,\u00a0<code>soap:Body<\/code>, \u043a\u0430\u0436\u0434\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439\u00a0<code>wsu:Timestamp<\/code>. \u041e\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u00a0<code>wsu:Timestamp<\/code>\u00a0\u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c WSS4J \u043f\u043b\u044e\u0441 \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u00a0<code>messageId<\/code>. \u0422\u0435\u043a\u0441\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430\u0440\u0443\u0436\u0443 \u043d\u0435 \u0443\u0445\u043e\u0434\u0438\u0442: \u0434\u0435\u0442\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043b\u043e\u0433, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043e\u0440\u0430\u043a\u0443\u043b\u0430. \u041f\u0430\u0440\u043e\u043b\u0438 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b\u00a0<code>[Sensitive]<\/code>\u00a0\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u043b\u043e\u0433\u043e\u0432 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.<\/p>\n<h3>\u041f\u0440\u043e\u0444\u0438\u043b\u044c 1.16: \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u043c<\/h3>\n<p>\u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c eDelivery AS4 1.16 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e. \u042d\u0442\u043e \u043d\u0435 \u0441\u0430\u043c\u043e\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442 \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430\u043c\u0438: \u0442\u0430\u043c, \u0433\u0434\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u00ab\u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f\u00bb \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445, \u0438\u043d\u0442\u0435\u0440\u043e\u043f \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0427\u0442\u043e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0418\u043d\u0430\u0447\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u043f\u0438\u0441\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">RSA-SHA256<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044f; \u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u00a0<code>EBMS:0101<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">SHA-256<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u043c \u0436\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 payload<\/p>\n<\/td>\n<td>\n<p align=\"left\">AES-128-GCM<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435; \u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u00a0<code>EBMS:0102<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">RSA-OAEP, MGF1-SHA256<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435; \u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u00a0<code>EBMS:0102<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Exclusive C14N<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>EBMS:0101<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043a\u043b\u044e\u0447<\/p>\n<\/td>\n<td>\n<p align=\"left\">BST \/ IssuerSerial \/ KeyIdentifier (\u043d\u0430 \u043f\u0440\u0438\u0451\u043c\u0435)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e BST<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0435\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0438\u043a\u043e\u0433\u0434\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>EBMS:0103<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Payload \u0432 \u0442\u0435\u043b\u0435 SOAP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0438\u043a\u043e\u0433\u0434\u0430 (\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>EBMS:0002<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0430\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043a\u043e\u0443\u043f: Pull \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438. \u041f\u0440\u043e\u0444\u0438\u043b\u044c common 1.16 \u0438\u0445 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442: \u0442\u0430\u043c \u044f\u0432\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0447\u0442\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430.<\/p>\n<h3>\u0418\u043d\u0442\u0435\u0440\u043e\u043f \u0434\u043e\u043a\u0430\u0437\u0430\u043d, \u0430 \u043d\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d<\/h3>\n<p>AS4-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c \u0441 \u0441\u043e\u0431\u043e\u0439, \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439, \u0431\u0435\u0437 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<p>\u041f\u0440\u043e\u0442\u0438\u0432 Holodeck B2B 8.1.1 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u043e \u0432\u0441\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f: \u043f\u043e\u0434\u043f\u0438\u0441\u044c, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0441\u0436\u0430\u0442\u0438\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u043b\u044e\u0447. \u041f\u0440\u043e\u0442\u0438\u0432 Apache Domibus 5.1 (\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b EU eDelivery, \u0441\u0442\u0435\u043d\u0434 Harmony AP 2.6.2) \u0442\u043e\u0436\u0435 \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b: \u043c\u044b \u0448\u043b\u0451\u043c, Domibus \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 (<code>RECEIVED<\/code>); Domibus \u0448\u043b\u0451\u0442, \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0430 Domibus \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e (<code>ACKNOWLEDGED<\/code>).<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u043e\u043f \u0432\u0441\u043a\u0440\u044b\u043b \u0438 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0438\u0434\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0436\u0438\u0432\u044b\u043c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u043c. \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u00a0<code>eDeliveryAS4Policy<\/code>\u00a0Domibus (Strict, \u0431\u0435\u0437 IncludeTimestamp) \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u00a0<code>wsu:Timestamp<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0432\u043e\u044e \u043c\u0435\u0442\u043a\u0443 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u0442, \u0430 \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u0435\u0451 \u043f\u0440\u043e\u0441\u0438\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442. \u0410 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440 Domibus \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u0443\u044e \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438: \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u043e\u0432\u043e \u0441 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e, \u0435\u0451 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b \u043d\u0435 \u0441\u043e\u0448\u043b\u0438\u0441\u044c \u0431\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u0442\u043e\u0440 \u0448\u043b\u0451\u0442 \u0442\u0435 \u0436\u0435 \u0431\u0430\u0439\u0442\u044b. \u042d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043e\u043f\u043e\u043c.<\/p>\n<h3>\u0427\u0435\u043c \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 Java-MSH \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0448\u043b\u044e\u0437\u0430<\/h3>\n<p>AS4 \u0432 .NET-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438: \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Java-MSH \u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u043b\u044e\u0437. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0443\u043c\u0435\u044e\u0442 \u043e\u043d\u0438 \u0438\u043b\u0438 \u043d\u0435\u0442: \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0434\u0438\u043d. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0433\u0434\u0435 \u0436\u0438\u0432\u0451\u0442 AS4 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0448\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u043b\u044e\u0437<\/p>\n<\/th>\n<th>\n<p align=\"left\">Java MSH (Domibus\/Holodeck)<\/p>\n<\/th>\n<th>\n<p align=\"left\"><a href=\"http:\/\/redb.Route.As\" rel=\"noopener nofollow\">redb.Route.As<\/a>4<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0446\u0435\u0441\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u0440\u043e\u0431\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 JVM \u0440\u044f\u0434\u043e\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0430\u0448 .NET-\u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432 inbox-\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432 inbox-\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0430\u043a \u0437\u0430\u0431\u0440\u0430\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u0436\u043e\u0431\u0430-\u043f\u043e\u0434\u0431\u043e\u0440\u0449\u0438\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u0436\u043e\u0431\u0430-\u043f\u043e\u0434\u0431\u043e\u0440\u0449\u0438\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0440\u0430\u0437\u0443 \u0432 pipeline<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0435\u043f\u043b\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0432\u043e\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0432\u043e\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0432\u043e\u044f \u043f\u0430\u043d\u0435\u043b\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043b\u043e\u0433\u0438 JVM<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u0449\u0438\u0435 \u0442\u0440\u0435\u0439\u0441\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u043d\u0435 \u0448\u043b\u044e\u0437\u0430, \u0440\u0443\u043a\u0430\u043c\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0440\u0443\u043a\u0430\u043c\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0435 \u0436\u0435 EIP \u0432 \u0442\u043e\u043c \u0436\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043b\u0430\u0442\u043d\u0430\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f, \u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 MSH \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d, \u043a\u043e\u0433\u0434\u0430 AS4-\u043a\u043e\u043d\u0442\u0443\u0440 \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043d\u0435\u0441\u0435\u043d \u0432 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0437\u043e\u043d\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 DMZ \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u041a\u043e\u0433\u0434\u0430 \u0436\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u0430\u0448 .NET-\u0431\u044d\u043a\u0435\u043d\u0434 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u044d\u0442\u043e \u043b\u0438\u0448\u043d\u0438\u0439 \u043f\u0440\u044b\u0436\u043e\u043a, \u043b\u0438\u0448\u043d\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438 \u043b\u0438\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0441\u0445\u0435\u043c\u0435 \u0430\u0443\u0434\u0438\u0442\u0430.<\/p>\n<h3>\u0413\u0434\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/h3>\n<p>AS4 \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043c, \u0433\u0434\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435\u0441\u0451\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0430 \u043a\u0430\u043d\u0430\u043b \u0434\u0438\u043a\u0442\u0443\u0435\u0442\u0435 \u043d\u0435 \u0432\u044b. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439.<\/p>\n<p><strong>Peppol \u0438 e-invoicing.<\/strong>\u00a0\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0441\u0447\u0451\u0442 \u0432 \u0441\u0435\u0442\u0438 Peppol \u0445\u043e\u0434\u0438\u0442 \u043f\u043e AS4 \u043c\u0435\u0436\u0434\u0443 access points. \u0421\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 access point \u0438\u043b\u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0441\u0447\u0435\u0442\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e: AS4 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0448\u0430\u0433\u043e\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0430 \u043d\u0435 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u0440\u043e\u0431\u043a\u043e\u0439. \u0421\u0447\u0451\u0442 \u043f\u0440\u0438\u0448\u0451\u043b, \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u0441\u044f, \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u043e UBL\/CII, \u043b\u0451\u0433 \u0432 ERP.<\/p>\n<p><strong>\u0413\u043e\u0441\u0441\u0435\u043a\u0442\u043e\u0440 \u0415\u0421 \u0438 \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b (e-CODEX, e-Justice).<\/strong>\u00a0\u0421\u0443\u0434\u0435\u0431\u043d\u044b\u0435 \u0438 \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0438\u0434\u0443\u0442 \u043f\u043e eDelivery AS4 \u0441 \u0436\u0451\u0441\u0442\u043a\u0438\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438 \u043d\u0435\u043e\u0442\u0440\u0435\u043a\u0430\u0435\u043c\u043e\u0441\u0442\u0438. \u0417\u0434\u0435\u0441\u044c \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0435\u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043a\u0430\u043d\u0430\u043b\u0430.<\/p>\n<p><strong>\u042d\u043d\u0435\u0440\u0433\u0435\u0442\u0438\u043a\u0430 (ENTSOG).<\/strong>\u00a0\u0417\u0430\u044f\u0432\u043a\u0438, \u043f\u043b\u0430\u043d-\u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u0435\u0436\u0434\u0443 \u0433\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438. \u041e\u0431\u043c\u0435\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0441\u0442\u0440\u043e\u0433\u0438\u0439, \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b \u044d\u0442\u043e \u0443\u0437\u043b\u044b \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p><strong>\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0438 \u0442\u0430\u043c\u043e\u0436\u043d\u044f (eFTI).<\/strong>\u00a0\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0438 \u0442\u0430\u043c\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b. \u0422\u043e\u0442 \u0436\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044c: \u043f\u043e\u0434\u043f\u0438\u0441\u044c, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f.<\/p>\n<p><strong>\u041a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d \u0441 \u0433\u043e\u0441\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u043c \u0432 \u0415\u0421.<\/strong>\u00a0\u0422\u0435\u043d\u0434\u0435\u0440\u043d\u0430\u044f, \u043e\u0442\u0447\u0451\u0442\u043d\u0430\u044f \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0430\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0435 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0438 \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e eDelivery AS4.<\/p>\n<p>\u041e\u0431\u0449\u0435\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u0434\u043d\u043e: \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u043e\u0439\u0442\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0438 \u0441 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0420\u043e\u0432\u043d\u043e \u044d\u0442\u043e\u0442 \u0441\u0442\u044b\u043a \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442.<\/p>\n<h3>\u0427\u0435\u0441\u0442\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b<\/h3>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0431\u044b\u0432\u0430\u0435\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e, \u0438 \u043b\u0443\u0447\u0448\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e, \u0447\u0435\u0433\u043e \u043f\u043e\u043a\u0430 \u043d\u0435\u0442.<\/p>\n<ul>\n<li>\n<p>Pull (\u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0441\u0430\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435) \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b. \u0412 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 common 1.16 \u043e\u043d\u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f, \u043d\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 Pull, \u044d\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u044e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p>eDelivery AS4 2.0 (\u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u0440\u0438\u0432\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u043e RSA-OAEP) \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d. \u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u043b\u0438\u043d\u0435\u0439\u043a\u0443 1.x, common profile 1.16.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 (Peppol SMP\/SML) \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u0431\u0435\u0440\u0451\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438\u0437 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f, \u0430 \u043e\u0442\u043a\u0443\u0434\u0430 \u0438\u0445 \u0432\u0437\u044f\u0442\u044c, \u0440\u0435\u0448\u0430\u0435\u0442 \u0432\u0430\u0448\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>TLS \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c MSH \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u0432\u0436\u0438\u0432\u0443\u044e \u043d\u0435 \u0433\u043e\u043d\u044f\u043b\u0438: \u043e\u0431\u0430 \u0438\u043d\u0442\u0435\u0440\u043e\u043f-\u0441\u0442\u0435\u043d\u0434\u0430 \u0445\u043e\u0434\u0438\u043b\u0438 \u043f\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 HTTP, \u0430 TLS \u0438 mutual TLS \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f\u043c\u0438 \u043d\u0430 loopback. \u0421 \u0436\u0438\u0432\u044b\u043c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u043c \u044d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440 \u0434\u0432\u0438\u0436\u043a\u0430 \u0436\u0438\u0432\u0451\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u043d\u0430 \u0447\u0430\u0441\u044b \u043d\u0443\u0436\u0435\u043d outbox (\u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u0430 \u043f\u0440\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430).<\/p>\n<\/li>\n<\/ul>\n<h3>FAQ<\/h3>\n<p><strong>\u041d\u0443\u0436\u0435\u043d \u043b\u0438 \u0440\u044f\u0434\u043e\u043c Java-MSH?<\/strong>\u00a0\u041d\u0435\u0442. \u042d\u0442\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 .NET-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440:\u00a0<code>HttpClient<\/code>, \u043e\u0431\u0449\u0438\u0439 Kestrel \u0438\u00a0<a href=\"http:\/\/System.Security\" rel=\"noopener nofollow\"><code>System.Security<\/code><\/a><code>.Cryptography<\/code>. \u041e\u043d \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c, \u0438 \u0443\u0437\u0435\u043b \u043f\u0440\u0438\u0451\u043c\u0430.<\/p>\n<p><strong>AS4 \u0438\u043b\u0438 AS2?<\/strong>\u00a0\u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0430\u0440\u0442\u043d\u0451\u0440. AS2 \u044d\u0442\u043e S\/MIME \u0438 MDN, AS4 \u044d\u0442\u043e SOAP, WS-Security \u0438 ebMS-\u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0439 \u0433\u043e\u0441\u0441\u0435\u043a\u0442\u043e\u0440 \u0438 Peppol \u0434\u0438\u043a\u0442\u0443\u044e\u0442 AS4, \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u043e\u0437\u043d\u0438\u0446\u0430 \u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430 \u0447\u0430\u0441\u0442\u043e AS2. \u041f\u0440\u043e AS2 \u043c\u044b\u00a0<a href=\"https:\/\/redb.ru\/articles\/as2-edi\" rel=\"noopener nofollow\">\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e<\/a>; \u043e\u0431\u0430 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430 \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0440\u044f\u0434\u043e\u043c.<\/p>\n<p><strong>\u0413\u0434\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b?<\/strong>\u00a0\u0412\u00a0<code>As4ConnectionFactory<\/code>\u00a0\u0438\u00a0<code>As4Partner<\/code>, \u043a\u0430\u043a\u00a0<code>X509Certificate2<\/code>. \u041f\u0430\u0440\u043e\u043b\u0438 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b\u00a0<code>[Sensitive]<\/code>, \u0432 URI \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u043d\u0435\u0442.<\/p>\n<p><strong>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0432\u043e\u0440\u043a\u0435\u0440\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c HTTP, SOAP, AS2 \u0438 AS4?<\/strong>\u00a0\u0414\u0430. \u041f\u0440\u0438\u0451\u043c \u0443 \u0432\u0441\u0435\u0445 \u043d\u0430 \u043e\u0431\u0449\u0435\u043c Kestrel-\u0445\u043e\u0441\u0442\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c.<\/p>\n<p><strong>\u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u043e\u0448\u0438\u0431\u043a\u043e\u0439?<\/strong>\u00a0\u041f\u0440\u043e\u0434\u044e\u0441\u0435\u0440 \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u00a0<code>As4ErrorSignalException<\/code>\u00a0\u0441 \u043a\u043e\u0434\u043e\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c;\u00a0<code>OnException<\/code>\u00a0\u0440\u0435\u0448\u0430\u0435\u0442, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0438\u043b\u0438 \u0443\u0432\u043e\u0434\u0438\u0442\u044c \u0432 dead letter.<\/p>\n<p><strong>\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0438\u043b\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f?<\/strong>\u00a0\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f, \u0432 \u0442\u043e\u043c \u0436\u0435 HTTP-\u043e\u0442\u0432\u0435\u0442\u0435. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f 1.16, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>transacted<\/code>\u00a0\u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d: \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h3>\n<pre><code class=\"bash\">dotnet add package redb.Route.As4<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442\u00a0<a href=\"http:\/\/redb.Route.As\" rel=\"noopener nofollow\">redb.Route.As<\/a><a href=\"https:\/\/www.nuget.org\/packages\/redb.Route.As4\/\" rel=\"noopener nofollow\">4 \u043d\u0430 NuGet<\/a>, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u043f\u043e DSL \u0432\u00a0<a href=\"https:\/\/github.com\/redbase-app\/redb-route\/tree\/main\/redb.Route.As4\" rel=\"noopener nofollow\">README \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430<\/a>. AS4 \u044d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0432 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0435 redb.Route, \u0440\u044f\u0434\u043e\u043c \u0441 Kafka, RabbitMQ, AS2, IBM MQ \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438: \u0442\u043e\u0442 \u0436\u0435\u00a0<code>From \u2192 \u2026 \u2192 To<\/code>, \u0442\u0435 \u0436\u0435 EIP, \u0442\u0430 \u0436\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f SOAP-\u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u0441 ebMS-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0436\u0434\u0451\u0442 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u043c\u0435\u043d\u0430.<\/p>\n<p><strong><em>\u0415\u0441\u043b\u0438 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u2b50 \u043d\u0430\u00a0<\/em><\/strong><a href=\"https:\/\/github.com\/redbase-app\" rel=\"noopener nofollow\"><strong><em>GitHub<\/em><\/strong><\/a><strong><em>\u00a0\u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u044d\u0442\u043e \u043d\u0430\u0439\u0442\u0438.<\/em><\/strong><\/p>\n<hr\/>\n<p>\u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0438 \u0441\u0442\u0430\u0442\u044c\u0438:\u00a0<a href=\"https:\/\/redb.ru\/articles\" rel=\"noopener nofollow\">redb.ru\/articles<\/a>, \u0435\u0449\u0451 \u043d\u0430\u00a0<a href=\"https:\/\/habr.com\/ru\/users\/grelikt\/articles\/\" rel=\"noopener nofollow\">\u0425\u0430\u0431\u0440\u0435<\/a>.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1089204\/\">https:\/\/habr.com\/ru\/articles\/1089204\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>redb.Route.AS4AS4: \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0441 \u0433\u043e\u0441- \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0415\u0421. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 redb.Route, \u0431\u0435\u0437 Java MSH.  \u0415\u0441\u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u0431\u044b\u0442\u043e\u0432\u0443\u044e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e, AS4 \u044d\u0442\u043e \u0437\u0430\u043a\u0430\u0437\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\u043c \u043e \u0432\u0440\u0443\u0447\u0435\u043d\u0438\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0443\u043c\u0430\u0433\u0438 \u043f\u043e \u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442. \u0412\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0435\u0433\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443, \u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0441 \u043f\u043e\u0447\u0442\u043e\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u043c\u0430\u0436\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043b\u0438\u0448\u044c, \u0447\u0442\u043e \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u0434\u043e\u0448\u0451\u043b, \u0430 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f AS4 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443: \u043e\u043d\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u043e\u0448\u0451\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442.\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0435\u0441\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0441 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u043c B2B, \u0432\u044b, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u043f\u043e AS4. \u042d\u0442\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044c OASIS ebMS 3.0, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u0438\u0442 EU eDelivery: \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0432 e-CODEX \u0438 e-Justice, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0447\u0435\u0442\u0430 \u0432 \u0441\u0435\u0442\u0438 Peppol, \u0437\u0430\u044f\u0432\u043a\u0438 \u0433\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 ENTSOG, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0432 eFTI. AS4 \u044d\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a AS2: \u0432\u043c\u0435\u0441\u0442\u043e S\/MIME-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430 \u043f\u043e \u0441\u0435\u0442\u0438 \u0438\u0434\u0451\u0442 SOAP 1.2 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c\u00a0eb:Messaging, WS-Security \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0422\u0430\u043c, \u0433\u0434\u0435 \u0443 AS2 \u0431\u044b\u043b MDN \u0441 MIC, \u0443 AS4\u00a0eb:Receipt\u00a0\u0441 non-repudiation: \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438.\u0412 .NET \u044d\u0442\u043e\u0442 \u043c\u0438\u0440 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0437\u0430\u043a\u0440\u044b\u0442 \u043f\u043b\u043e\u0445\u043e. \u0417\u0440\u0435\u043b\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 AS4 \u0436\u0438\u0432\u0443\u0442 \u0432 Java: Holodeck B2B, Apache Domibus (\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b EU eDelivery), phase4. \u0417\u043d\u0430\u0447\u0438\u0442, \u0440\u044f\u0434\u043e\u043c \u0441 \u0432\u0430\u0448\u0438\u043c .NET-\u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 JVM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u043b\u044e\u0437 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u0441\u0432\u043e\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u044f. \u0411\u0430\u0437\u043e\u0432\u044b\u0439 .NET-\u0441\u0442\u0435\u043a AS4 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442: \u043d\u0438 SOAP-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430 \u0441 ebMS-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438, \u043d\u0438 WS-Security \u043d\u0430\u0434 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 MIME, \u043d\u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u0438\u0442\u044c.redb.Route.As4\u00a0\u0441\u0442\u0430\u0432\u0438\u0442 AS4 \u0432\u043d\u0443\u0442\u0440\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430. \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0To, \u043f\u0440\u0438\u0451\u043c \u0447\u0435\u0440\u0435\u0437\u00a0From. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u0441\u0436\u0430\u043b\u0441\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0441\u044f, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0443\u0448\u0451\u043b \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443, \u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0418\u043b\u0438: \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u043f\u0440\u0438\u0448\u0451\u043b, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0430\u0441\u044c, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043b\u0451\u0433 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0443 \u0443\u0448\u043b\u0430 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u041e\u0434\u0438\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043e\u0434\u0438\u043d \u0434\u0435\u043f\u043b\u043e\u0439, \u043e\u0434\u043d\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u0442\u0440\u0435\u0439\u0441\u043e\u0432. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0433\u0434\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\u041f\u043e\u0447\u0435\u043c\u0443 AS4, \u0430 \u043d\u0435 \u00ab\u043f\u0440\u043e\u0441\u0442\u043e HTTPS\u00bb\u0420\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u0435\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u0438 \u0442\u0430\u043a \u043f\u043e\u0434 TLS, \u0437\u0430\u0447\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e \u0435\u0449\u0451 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u0442\u043e\u0442 \u0436\u0435, \u0447\u0442\u043e \u0432 \u043c\u0438\u0440\u0435 AS2, \u0438 \u043e\u043d \u043d\u0435 \u043f\u0440\u043e \u043f\u0430\u0440\u0430\u043d\u043e\u0439\u044e. TLS \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u043a\u0430\u043d\u0430\u043b: \u043e\u043d \u0436\u0438\u0432\u0451\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043a\u0435\u0442\u0430 \u0434\u043e \u0441\u043e\u043a\u0435\u0442\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442\u044b \u043b\u0435\u0433\u043b\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0412 \u043b\u043e\u0433\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430, \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438, \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0442. AS4 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0441\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442: \u043e\u043d \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u0432\u0441\u0451\u043c \u043f\u0443\u0442\u0438 \u0438 \u0432 \u043f\u043e\u043a\u043e\u0435, \u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.\u041d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0435 \u044d\u0442\u043e. \u0423 TLS \u043d\u0435\u0442 \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0438. AS4 \u0435\u0451 \u0434\u0430\u0451\u0442: \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0435\u0439, \u0438 \u0435\u0451 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b (non-repudiation references) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438 \u0432\u044b. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0442\u0440\u0435\u043a\u0430\u0435\u043c\u043e\u0441\u0442\u044c: \u043a\u043e\u0433\u0434\u0430 \u0437\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0441\u0442\u043e\u044f\u0442 \u0434\u0435\u043d\u044c\u0433\u0438, \u0441\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u043e\u0432\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0444\u0430\u043a\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 AS4 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0442\u0430\u043c, \u0433\u0434\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435\u0441\u0451\u0442 \u044e\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0430 \u043d\u0435 \u043f\u0438\u0441\u044c\u043c\u043e.AS4 \u0437\u0430 \u043c\u0438\u043d\u0443\u0442\u0443\u041f\u043e \u0441\u0435\u0442\u0438 \u044d\u0442\u043e HTTP POST \u0441\u00a0multipart\/related\u00a0\u0438 SOAP 1.2. \u041a\u043e\u043d\u0432\u0435\u0440\u0442 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439.\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a.\u00a0eb:Messaging\u00a0\u043d\u0435\u0441\u0451\u0442 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435:\u00a0eb:UserMessage\u00a0\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438 (eb:PartyId), \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c (eb:Service,\u00a0eb:Action), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0433\u043b\u043e\u0432 (originalSender,\u00a0finalRecipient). \u0420\u044f\u0434\u043e\u043c \u0431\u043b\u043e\u043a\u00a0wsse:Security:\u00a0wsu:Timestamp, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f (wsse:BinarySecurityToken), \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0435\u0441\u0441\u0438\u0438 (xenc:EncryptedKey), \u043f\u043e\u0434\u043f\u0438\u0441\u044c (ds:Signature) \u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443\u00a0xenc:EncryptedData\u00a0\u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435.\u0412\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\u00a0\u0411\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0432 \u0442\u0435\u043b\u0435 SOAP, \u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 MIME-\u0447\u0430\u0441\u0442\u044f\u043c\u0438 (SOAP with Attachments, SwA). \u0427\u0430\u0441\u0442\u044c \u0441\u0436\u0438\u043c\u0430\u0435\u0442\u0441\u044f gzip, \u0437\u0430\u0442\u0435\u043c \u0448\u0438\u0444\u0440\u0443\u0435\u0442\u0441\u044f, \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0451 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0422\u0435\u043b\u043e SOAP \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0443\u0441\u0442\u043e\u0435. \u042d\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e SOAP-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 MTOM: \u0432 AS4 payload \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0434\u0435\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0438\u00a0\u0432 \u0442\u043e\u043c \u0436\u0435 HTTP-\u043e\u0442\u0432\u0435\u0442\u0435\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044e. \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430: \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c eDelivery AS4, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0436\u0434\u0451\u0442 \u0435\u0451 \u0441\u0440\u0430\u0437\u0443, \u0430 \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.\u0427\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442: endpoint \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0430redb.Route \u044d\u0442\u043e\u00a0Apache Camel \u043f\u043e\u0434 .NET: \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0From \u2192 \u2026 \u2192 To, \u0430 endpoint \u044d\u0442\u043e URI-\u0441\u0442\u0440\u043e\u043a\u0430. \u041a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 AS4 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0435 \u0441\u0445\u0435\u043c\u044b,\u00a0as4\u00a0(HTTP) \u0438\u00a0as4s\u00a0(HTTPS), \u0438 \u043e\u043d\u0438 \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435:as4s:\/\/ap.partner.example\/as4?connectionFactory=node&amp;partner=acme   # \u043a\u0443\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043cas4:\/as4\/in?host=0.0.0.0&amp;port=4090&amp;connectionFactory=node           # \u0433\u0434\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u041f\u043e \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u043d\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0435: \u043a\u0443\u0434\u0430 \u0438\u0434\u0451\u043c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u0441\u043b\u0443\u0448\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440. \u0415\u0441\u0442\u044c \u0438 \u0444\u043b\u044e\u0435\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u043b\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u0442 \u0436\u0435 URI, \u0442\u0430\u043a \u0447\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437\u00a0appsettings.json\u00a0\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u043c \u0431\u0435\u0437 \u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u043e\u0434\u0430.services.AddRedbRoute(route =&gt;{    route.Services.AddRedbRouteAs4();    route.AddRouteBuilder&lt;MyRoutes&gt;();});AddRedbRouteAs4()\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0445\u0435\u043c\u044b. \u041f\u0440\u0438\u0451\u043c AS4 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0431\u0449\u0435\u043c Kestrel-\u0445\u043e\u0441\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u044f\u0442 \u0432\u0441\u0435 HTTP-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430: HTTP, SOAP, AS2 \u0438 AS4 \u0432 \u043e\u0434\u043d\u043e\u043c \u0432\u043e\u0440\u043a\u0435\u0440\u0435 \u043d\u0435 \u0434\u0435\u0440\u0443\u0442\u0441\u044f \u0437\u0430 \u043f\u043e\u0440\u0442, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043f\u0430\u0440\u043e\u043b\u0438 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0432 URI \u043d\u0435 \u0436\u0438\u0432\u0443\u0442: URI \u044d\u0442\u043e \u043a\u043b\u044e\u0447 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u043e\u043d \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043b\u043e\u0433\u0438, \u0442\u0440\u0435\u0439\u0441\u044b \u0438 \u043f\u0430\u043d\u0435\u043b\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u0438. \u0412\u0441\u0451 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0432\u044b\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.\u0422\u0443 \u0436\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0434\u043e\u043c, \u043d\u043e \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 Route-XML: \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b \u0432 \u0444\u0430\u0439\u043b\u0430\u0445\u00a0.route.xml, \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b \u0432\u00a0&lt;bean&gt;. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 VS Code \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c\u00a0redb-route-xml: \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0445\u0435\u043c\u0435, \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432, \u0433\u0440\u0430\u0444 \u0448\u0430\u0433\u043e\u0432. \u0412 Marketplace \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0435\u0442, \u0435\u0433\u043e \u043e\u0442\u0434\u0430\u044e\u0442 \u0444\u0430\u0439\u043b\u043e\u043c \u0432 \u0440\u0435\u043b\u0438\u0437\u0430\u0445: \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435\u00a0redb-route-xml-&lt;version&gt;.vsix\u00a0\u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u00abExtensions \u2192 \u2026 \u2192 Install from VSIX\u00bb \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439\u00a0code &#8212;install-extension redb-route-xml-&lt;version&gt;.vsix\u00a0(\u0431\u0430\u0437\u043e\u0432\u044b\u0439 Red Hat XML VS Code \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0435\u0442 \u0441\u0430\u043c). \u0414\u0430\u043b\u044c\u0448\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043d\u0430 C# \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442 \u0432 XML, \u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438:\u00a0demos\/XmlDemo\u00a0\u0438\u00a0demos\/SerialNumbersDemo\/SerialNumbers.Xml.\u0423\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u044b: \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u043e\u0441\u0441\u044b\u043f\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u0412 AS4 \u0432\u0441\u0451 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 (P-Mode): \u043a\u0442\u043e, \u0447\u0442\u043e, \u043a\u043e\u043c\u0443, \u043a\u0430\u043a\u0438\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438, \u043d\u0443\u0436\u043d\u0430 \u043b\u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u044f. \u0423 \u043d\u0430\u0441 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u041d\u0430\u0448 \u0443\u0437\u0435\u043b (As4ConnectionFactory) \u0437\u043d\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c, \u043d\u0430\u0448\u0438 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432; \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 (As4Partner) \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435.context.AddToRegistry(&#171;node&#187;, new As4ConnectionFactory{    OurPartyId = &#171;urn:oasis:names:tc:ebcore:partyid-type:unregistered:us&#187;,    ExternalHostName = &#171;ap.us.example&#187;,        \/\/ \u0445\u043e\u0441\u0442 \u0432 \u043d\u0430\u0448\u0438\u0445 eb:MessageId, \u043d\u0435 \u0438\u043c\u044f \u043c\u0430\u0448\u0438\u043d\u044b    SigningCertificate = ourPfx,               \/\/ \u043d\u0430\u0448 \u043a\u043b\u044e\u0447: \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0438 \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438    DecryptionCertificates = { ourPfx },       \/\/ \u043d\u0430\u0448\u0438 \u043a\u043b\u044e\u0447\u0438: \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435    Partners =    {        new As4Partner        {            Name = &#171;acme&#187;,            PartyId = &#171;urn:oasis:names:tc:ebcore:partyid-type:unregistered:acme&#187;,            Service = &#171;urn:example:services:invoice&#187;,            Action  = &#171;Submit&#187;,            PartnerSigningCertificates = { acmeCer },   \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430            PartnerEncryptionCertificate = acmeCer,     \/\/ \u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0435\u043c\u0443 payload        },    },});\u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0437\u0435\u043b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 (connectionFactory=node) \u0438, \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435, \u043d\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 (partner=acme). \u041f\u0440\u0438\u0451\u043c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430 \u043d\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442: \u043e\u0434\u0438\u043d URL \u043f\u0440\u0438\u0451\u043c\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u0443\u0437\u043b\u0430, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435\u00bb: \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c. \u0420\u043e\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432, \u0430 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430.\u0422\u043e\u0442 \u0436\u0435 \u0443\u0437\u0435\u043b \u0438 \u043f\u0430\u0440\u0442\u043d\u0451\u0440 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 (context.xml):&lt;context xmlns=&#187;urn:redb:route:1.0&#8243;&gt;  &lt;bean name=&#187;acme&#187; type=&#187;redb.Route.As4.As4Partner, redb.Route.As4&#8243;&gt;    &lt;property key=&#187;Name&#187; value=&#187;acme&#187;\/&gt;    &lt;property key=&#187;PartyId&#187; value=&#187;urn:oasis:names:tc:ebcore:partyid-type:unregistered:acme&#187;\/&gt;    &lt;property key=&#187;Service&#187; value=&#187;urn:example:services:invoice&#187;\/&gt;    &lt;property key=&#187;Action&#187; value=&#187;Submit&#187;\/&gt;    &lt;property key=&#187;PartnerSigningCertificates&#187;&gt;      &lt;list&gt;        &lt;bean type=&#187;System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography&#187;              factoryMethod=&#187;LoadCertificateFromFile&#187;&gt;          &lt;constructorArg value=&#187;{{as4.certificates}}\/acme.cer&#187;\/&gt;        &lt;\/bean&gt;      &lt;\/list&gt;    &lt;\/property&gt;    &lt;property key=&#187;PartnerEncryptionCertificate&#187;&gt;      &lt;bean type=&#187;System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography&#187;            factoryMethod=&#187;LoadCertificateFromFile&#187;&gt;        &lt;constructorArg value=&#187;{{as4.certificates}}\/acme.cer&#187;\/&gt;      &lt;\/bean&gt;    &lt;\/property&gt;  &lt;\/bean&gt;  &lt;bean name=&#187;node-key&#187;        type=&#187;System.Security.Cryptography.X509Certificates.X509CertificateLoader, System.Security.Cryptography&#187;        factoryMethod=&#187;LoadPkcs12FromFile&#187;&gt;    &lt;constructorArg value=&#187;{{as4.certificates}}\/us.pfx&#187;\/&gt;    &lt;constructorArg value=&#187;{{as4.password}}&#187;\/&gt;  &lt;\/bean&gt;  &lt;bean name=&#187;node&#187; type=&#187;redb.Route.As4.As4ConnectionFactory, redb.Route.As4&#8243;&gt;    &lt;property key=&#187;OurPartyId&#187; value=&#187;urn:oasis:names:tc:ebcore:partyid-type:unregistered:us&#187;\/&gt;    &lt;property key=&#187;ExternalHostName&#187; value=&#187;ap.us.example&#187;\/&gt;    &lt;property key=&#187;SigningCertificate&#187; ref=&#187;node-key&#187;\/&gt;    &lt;property key=&#187;DecryptionCertificates&#187;&gt;&lt;list&gt;&lt;ref bean=&#187;node-key&#187;\/&gt;&lt;\/list&gt;&lt;\/property&gt;    &lt;property key=&#187;Partners&#187;&gt;&lt;list&gt;&lt;ref bean=&#187;acme&#187;\/&gt;&lt;\/list&gt;&lt;\/property&gt;  &lt;\/bean&gt;  &lt;bean name=&#187;as4-in&#187; type=&#187;redb.Route.Processors.InMemoryIdempotentRepository, redb.Route&#187;\/&gt;&lt;\/context&gt;\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430: \u0441\u0436\u0430\u043b\u0438, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0438, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0438, \u0434\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c \u043a\u0432\u0438\u0442\u0430\u043d\u0446\u0438\u0438\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u044d\u0442\u043e \u0448\u0430\u0433\u00a0To. \u0422\u0435\u043b\u043e&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-496937","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/496937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=496937"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/496937\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=496937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=496937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=496937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}