GB-T 32214.2-2015信息技术 ASN.1的一般应用第2部分:快速WEB服务_第1页
GB-T 32214.2-2015信息技术 ASN.1的一般应用第2部分:快速WEB服务_第2页
GB-T 32214.2-2015信息技术 ASN.1的一般应用第2部分:快速WEB服务_第3页
GB-T 32214.2-2015信息技术 ASN.1的一般应用第2部分:快速WEB服务_第4页
GB-T 32214.2-2015信息技术 ASN.1的一般应用第2部分:快速WEB服务_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术ASN.1的一般应用第2部分:快速Web服务ASN.1—Part2:FastWebServices(ISO/IEC24824-2:2006,Informationtechnology—GenericapplicationsofASN.1:FastWebServices,IDT)2015-12-10发布中华人民共和国国家质量监督检验检疫总局发布I前言 12规范性引用文件 13术语和定义 24缩略语 5 5 57Envelope类型的组件到信息项的映射 88W3CSOAP消息信息集到Envelope类型的抽象值的映射 9嵌入式ASN.1编码的值的扩展SOAP处理 12支持ASN.1SOAP接口绑定的面向SOAP的服务描述 13带有ASN.1SOAP接口绑定的面向SOAP的服务描述的用法 附录A(规范性附录)用于ASN.1SOAP的ASN.1模块 附录B(规范性附录)用于快速Web服务的MIME媒体类型 附录C(资料性附录)快速Web服务辅导资料 附录D(资料性附录)使用快速Web服务和XMLWeb服务的公共服务提供 附录E(资料性附录)WSDL1.1中面向SOAP的服务描述 附录F(资料性附录)对象标识符值的赋值 参考文献 Ⅲ——第1部分:快速信息集;——第2部分:快速Web服务;——第3部分:快速信息集安全。本部分为GB/T32214的第2部分。本部分使用翻译法等同采用国际标准ISO/IEC24824-2:2006《信息技术ASN.1的一般应用:请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。本部分由全国信息技术标准化技术委员会(SAC/TC28)提出并归口。本部分起草单位:中国电子技术标准化研究院、重庆邮电大学。本部分主要起草人:董挺、王平、罗志勇、谢昊飞、税梦玲。GB/T32214的本部分规定了ASN.1的使用、压缩编码规则和快速信息集,用以提供快速Web服务。快速Web服务的资料性附录,见附录C。第6章规定采用ASN.1二进制编码产生和处理SOAP消息(称为“ASN.1SOAP消息”)的体系结消息中嵌入式ASN.1编码的值的扩展SOAP处理模型。第10章规定以HTTP作为运输协议来传送ASN.1SOAP消息的绑定。这种绑定采用B.1中规定的第11章规定用于传送作为快速信息集文档(快速信息集SOAP消息)编码的W3CSOAP消息的绑定。这种绑定采用了B.2中规定的多用途互联网邮件扩展(MIME)媒体类型。第12章规定了支持ASN.1SOAP绑定接口和快速Web服务的面向SOAP的服务描述。第13章规定了面向SOAP的服务描述如何影响与W3CSOAP消息相互映射的ASN.1SOAP信息的附录A是规范性附录,包含了用于ASN.1SOAP的完整ASN.1模块。附录B是规范性附录,包含了“application/fastsoap”和“application/soap+fastinfoset”附录C是资料性附录,提供了快速Web服务的辅导资料。1信息技术ASN.1的一般应用第2部分:快速Web服务 2003第1部分的第5章);——对那些使用W3CSOAPHTTP绑定传送串接成快速信息集文档(快速SOAP消息)的W3C2规范性引用文件文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。8824-1:2002,IDT)GB/T16262.2—2006信息技术抽象语法记法一(ASN.1)第2部分:信息客体GB/T16262.3—2006信息技术抽象语法记法一(ASN.1)第3部分:约束规范(ISO/IECGB/T16262.4—2006信息技术抽象语法记法一(ASN.1)第4部分:ASN.1规范的参数化GB/T16263.1—2006信息技术ASN.1编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范(ISO/IEC8825-1:2002,IDT)2和国际对象标识符树的顶级弧(ISO/IEC9834-1:2008,NEQ)ISO/IEC8825-3:2002信息技术ASN.1编码规则第3部分:编码控制符号(ECN)规范technology—GenericApplicationsofASN.1—Part1:Fastinfoset)W3CXML:2004可扩展置标语Language(XML)1.0(ThirdEdition)]W3CXMLInformationSet:2004XML信息集(第二版)[WInformationSet(SecondEdition)]W3CXMLSchema:2001第2部分:数据类型(W3CXMLSchema:2001,XMLSchemaPart2:Datatypes)注1:版权归万维网联盟所有,可从获得。InternetMailExtensions(MIME)PartOne:FormatofInternetMessageBodies]relativeobjectidentifiertype3a)复杂类型定义b)元素声明b)字符信息项f)性质(信息项的)property(ofaninformationitem)3.1.4本文件还采用W3CSOAP:2003第1部分的1.5.1中定义的下列术语:c)SOAP消息交换模式(MEP)SOAPmessageexchad)SOAP节点SOAPnodeb)快速信息集文档fastinforse3.2增加定义服务描述的一种具体接口(见12.4);该服务描述规定了快速Web服务的语义,这种快速WebHeaderBlock类型的值(见附录A)。4为传送ASN.1SOAP消息所作的SOAP对HTTP的绑定。类型的值(见第8章)。嵌入式快速信息集文档embeddedfastinfosetdocument一种元素信息项,当其包括在ASN.1SOAP消息中时,作为快速信息集文档进行编码。快速使能的Web服务客户fast-enabledwebserviceclient一种SOAP节点,可以使用ASN.1SOAP和XMLSOAP消息发送请求并接收响应。作为快速信息集文档而串接化的W3CSOAP消息。通过交换ASN.1SOAP消息所提供的服务。在W3CSOAP第1部分的1.5.2种定义的“SOAP标标头”。名为“/2003/05/soap-Envelope”的命名空间(见W3CSOAP:20部分:消息框架中1.1)。5通过交换XMLSOAP消息所提供的服务。串接为XML文档的W3CSOAP消息或任何先前或此后版本SOAP定义的消息。(AttributeInformationMIME多用途互联网邮件扩展(MultipurposeInternetMailExtensions)ASN.1的压缩编码规则(PackedEncodingRulesofASN.1)统一资源标识符Web服务描述语言XSD简单对象接入协议(SimpleObjectAccessPro5记法“/2003/05/soap-Envelope”)。6.1ASN.1SOAP消息是ASN.1模块ASN1SOAP中定义的En类型的抽象值在语义上与W3CSOAP第1部分第5章中所规定的XML信息集(称为“W3CSOAP消息6服务描述无需变更(见附录E)。第1部分第2章、第3章、第a)将Envelope类型(ASN.1SOAP消息)的组件的抽象值,按照第7章和表1中的规定,映射b)将SOAP模型应用于该信息集(见W3CSOAP第1部分第2章、第3章、第4章),通常会产生新的W3CSOAP消息信息集,新信息集符合W3CSOAP第5部分并受限于6.6所规定c)新W3CSOAP消息信息集的信息项,按照第8章和表1中的规定,反向映射为Envelope类型的组件的抽象值,这通常为该Envelope类型(新的ASN.1SOAP消息)产生新的抽象值。6.5将SOAP模型应用于W3CSOAP消息信息集(见6.4b)],按第9章中的规定,应包括对嵌入式6.6下列限制适用于从6.4b)所指的转换得到的W3CSOAP消息信息集:b)最多一个EII应出现在BodyEII和DetailEII的[children]性质的成员中。6.7Envelope类型的组件(在直到出现Content类型值的任一深度),按表1中的规定,应映射到一个信息项(或反向映射)。表1的第1列列出了Envelope类型的组件。第2列给出对W3CSOAP第1部分中规定语义上等效的信息项的相关条的引用。第3列列出本部分中规定从组件映射到语义上等效的信息项的章和各相关条。第4列列出本部分中规定将信息项映射到组件的章和各相关条。《W3CSOAP第1部分》中的引用映射自ASN.1映射到ASN.1Envelope::=SEQUENCE{第7章第8章HeaderHeader,body-or-FaultCHOICE{5.3和和.3和8.1.4}}7表1(续)《W3CSOAP第1部分》中的引用映射自ASN.1映射到ASN.1HeaderBlock::=SEQUENCE{mustUnderstandBOOLEANXSD.AnyURIultimateReceiver,)Body::=SEQUENCE{}Fault::=SEQUENCE{XSD.AnyURI}SubCodesSEQUENCEOF和和和}versionMismatch,mustUnderstand,}8表1(续)用于ASN.1SOAP的ASN.1模块《W3CSOAP第1部分》中的引用映射自ASN.1映射到ASN.1]Content::=...不适用7.1概述7.1.2在带有[namespacename]性质的NII中,等于EnvelopeEII的[in-scopenamespaces]性注1:前缀“env”常规上用于W3CSOAP:2003第1部分的1.1,但能使用任何前缀。注2:SOAP中定义所有EII和AII,都具有与W3CSOAP:2003第1部分的1.1中规定的W3CSOAP命名空间的7.1.3Header组件的值应按7.2中的规定予以映射。7.1.5如果body-or-Fault组件的值出现Fault替代项时,应按7.4中的规定生成Body元素信息项并应将其映射到Fault元素信息项。注:包含故障信息的W3CSOAP消息,只能有一个FaultEII项作为BodyEII的子项(并且不能有其他元素信息子7.2.1HeaderEII项应从Header类型的值中生成。如果该Header类型中出现一个或多个HeaderBlock,应按7.2.2中的规定将HeaderBlock的每次出现按顺序映射到该HeaderEII的一个子项。如果不出现HeaderBlock,不应生成HeaderEII。7.2.2Content组件的值应按7.5中的规定映射到W3CSOAP标头。在7.5中生成的EII的[attributes]成员中,附加AII应按到中的规定生成。如果mustUnderstand组件的值出现且不为FALSE时,该mustUnderstandAII应从该值9如果Role组件的值不是ultimateReceiver时,RoleAII应从该值生成,且该RoleAII7.3Body类型的映射7.3.1BodyEII应从Body类型的值生成。7.3.2Content组件(如果出现)的值应按7.5中的规定予以映射。FaultEll应从Fault类型的值生成。Code组件的值应按7.4.2中的规定予以映射。中的规定依次映射到ReasonEll的Text元素信息子项。NodeEll应从node组件(若出现)的值生成,且该Node元素信息项应将该node组件的字符串值中的字符作为其childCll。RoleEll应从Role组件(若出现)的值生成,且该Role元素信息项应将该Role组件的字符串值中的字符作为其childCll。DetailEll应按7.5中的规定从detail组件(若出现)的值生成。7.4.2Code类型的映射value组件的值应按7.4.3中的规定予以映射,以提供该CodeEll的第一个(如果SubCodes组件为空时则是唯一的)子辈EII。SubCodes组件的第一个XSD.QName(如果有)应生成:b)Value元素信息项(即SubCode元素信息项的子项,并按到中的规定从次出现的值生成),作为a)中生成的SubCode元素信息项的第一个元素SubCodes组件的下述的每一XSD.QName(若出现)均应生成:Value元素信息项(SubCodeEll的子辈)应从带有下列两项的XSD.QName(且其uri组件出现)的出现生成:[in-scopenamespaces]性b)字符信息项的序列,其中的各项应是下列三项的拼接:2)一个冒号(“:”);ValueEII(SubCodeEII的子辈)应从带有子辈CII序列的XSD.QName(不出现uri组件)的出现的值生成,子辈CII序列是name组件的值。Value元素信息项(Code元素信息项的子项)应从带有字符信息项的序列的Value类型的值生成,a)按7.1.2规定的[prefix]性质;b)一个冒号(“:”);c)一个按表2规定的本地名。Value的枚举值versionMismatchVersionMismatchmustUnderstandMustUnderstanddataEncodingUnknownDataEncodingUnknownText元素信息项应从Text类型的值生成。属性信息项应从带有下列4项性质的lang(语言)组件生成:d)一个等于lang组件的值的[normalizedvalue]性质。Text元素信息项的child字符信息项的序列应为Text组件的字符串值。内容元素信息项应从7.5.2、7.5.3或7.5.4中的Content类型的值生成,分别用于由快速信息集文档、ASN.1编码的值和“不可理解的”ASN.1SOAP标头(见7.5.4)到XML信息集的映如果Content类型的fast-infoset-document替代出现,应适用7.5.2。如果Content类型的enCoded-value替代出现,而enCoded-value.id如果Content类型的enCoded-value替代出现,而enCoded-value.id等于fast-infoset-document组件的八位位组将是ISO/IEC24824-1中规定的快速信息集24824-1:2005的规定);映射,应从该根Ell的[attributes]性质中除去:件(见7.2.2)。从根EII的[attribu1部分的5.1.1)应以带有“urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-services:soap-Envelope:encodenCoded-value.id组件出现roid替代时)的值生成:b)“urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-serv“XMLRelativeOIDValue”的roid组件的值的[1996的6.8中规定),该串为enCoded-value.encoding组件的值。NotUnderstoodIdentifier将标识ASN.1类型NotUnderstood,其值采用基本对齐压缩编NotUnderstoodEII(见W3CSOAP:2003第1部分的),应作为带下列两项的内),带有[normalizedvalue]性质,即由a)中的一个[prefix]属性、一个冒号(“:”)和NotU组件的8.1.2HeaderEll(如果出现)应按8.2中的规定将其映射到Header组件。8.1.3如果BodyEII不包含作为唯一子辈EII的FaultEII项,应生成带有body替代出现的body-or-Fault组件的值,并应按8.3中的规定将该Body元素信息项映射到body替代。8.1.4如果BodyEII包含作为唯一子辈EII的FaultEII,应生成带有Fault替代出现的body-or-Fault组件的值,并应按8.4中的规定将该FaultEII应映射到Fault替代。标头)依次映射到sequence-of中的Content。8.2.2HeaderBlock类型的值应从W3CSOAP标头生成,并应按8.5中的规定将该W3CSOAP标头映射到内容组件的值。HeaderBlock类型的附加组件应按至中的规定生成。mustUnderstand组件的值应从mustUnderstandAII(如果出现)生成,当该must-Role组件的值应从Role8.3.2BodyEII的子辈EII(如果出现)应按8.5中的规定将其映射到content组件的值。Fault类型的值应从FaultEII生成。CodeEII应按8.4.2中的规定将其映射到Code组件的值。Reason组件的值应从ReasonEII生成。每个子TextEII均应按8.4.4中的规定将其node组件的值应从nodeEII(如果出现)生成,并应将该NodeEII的子辈CII的序Role组件的值应从roleEII(如果出现)生成,并应将该RoleEII的子辈CII的序detail组件的值应从detailEII(如果出现)生成,并应按8.5中的规定映射该子辈Code类型的值应从CodeEII生成。ValueEll(CodeEII的子辈)应按8.4.3中的规定将其映射到value组件的值。第一个SubCodeEII(如果出现)应生成XSD.QName类型的值,作为SubCodes组件的第一项。该值应按和中的规定从第一个子辈ValueEII生成。的值作为SubCodes组件的下一项。该值应按或中的规定从第二个子辈SubCodeEII的第一个子辈ValueEII生成。XSD.QName类型的值应从ValueEII(SubCodeEII的子辈)生成,具有子辈CII的序列,其中子辈ClI是前缀(如P)、冒号(“:”)和本地名的拼接所组成,并带有:a)在带有[prefix]性质P的ValueEII(SubCodeEII的子辈)的[in-scopenamespaces]性质6XSD.QName类型的值应从具有不包含冒号(“:”)的子辈ClI的序列的ValueEll(子辈SubCodeEll)生成,且带有作为子辈ClI的序列的字符串值的name组件的值。Value类型的值应按表2中的规定,从带有本地名的ValueEI(CodeEII的子辈)生成,并应是由下列各项的拼连组成的子辈CII的序列的子串:a)按7.1.2中的规定的[prefix]属性;b)冒号(“:”);Text类型的值应从TextEll生成。的[namespacename]性质的All生成,并应是该All的[normalizedvalue]性质。Text组件的值应从TextEll生成,并应是TextEll的子辈Cll的序列。Content类型的值应按8.5.2、8.5.3或8.5.4中的规定从内容EII生成,用于从XML信息集分别映射到快速信息集文档、ASN.1编码的值或不理解的ASN.1SOAP标头。如果下列两种情况之一发生时,应适用8.5.2:a)encodingStyleAII(见W3CSOAP:2003第1部分的5.1.1)是不属于该内容EII的1部分的);如果encodingStyleAll(见W3CSOAP:2003第1部分的5.1.1)是该内容Ell[attributes]性质的之一,并且encodingStyleAll具有ope:encoding-style:aper”的[normalizedvalue]性质,应适用8.5.3。如果内容ElI是NotUnderstoodEll(见W3CSOAP:2003第1部分的)时,应适用8.5.4。注:encodingStyleAII不能是NotUndestoodEII的[attributes]性质的成员(见W3CSOAP:2003第1部分的应生成带有fast-infoset-document替代出现的Content类型的值。a)将应用于该内容EII来生成XML信息集的根EII;b)将该XML信息集编码为快速信息集文档(见ISO/IEC24824-1:2005的规定)。下列All,如果出现于该内容Ell的[attributes]性质的成员之中时,应从该ElI的b)mustUnderstandAII;注:从该内容元素信息项的[attributes]性质中除去这些属性应生成带有enCoded-value替代出现的Content类型的值。如果roidAll(见)不属于该内容Ell的[attributes]性质的成员时:b)其值应从该内容EII的[localname]性质和[namespacename]性质进行设如果roidAll(见)属于该内容Ell的[attributes]性质的成员时:“XMLRelativeOIDValue”的roidAII的[normalizedvalue]性质进行设置。enCoded-value.encoding组件的值,应从该由作为八位位组串的Base64编码的内容EII的子辈ClI的序列生成,且应为八位位组串。schema-identifier组件应不予映射,并应予以省略。应生成带有qName替代出现的enCoded-value.id;且其值应从NotUnderstood类型的值,应从NotUnderstoodEll生成,且带有作为前缀(例如P)、冒号(“:”)和本地名的拼接的qnameAll的[normalizedvalue]性质,并带有:namespaces]性质的成员,并带有[prefix]性质P;NotUnderstood类型的值,应采用基本对齐压缩编码规则将其编码为八位位组串,该9.1.1下面各条所规定的扩展处理是按W3CSOAP:2003第1部分中的规定,对W3CSOAP消息的处理扩展,允许由内容EII的SOAP节点进行附加转换,其中的内容EII是已经从ASN.1SOAP消息映射出来的。注:内容EII一般按下列步骤予以处理:9.1.3内容(子辈)EII在[attributes]性质的成员中,按中的规定,有带9.1.4将扩展处理应用到内容EII应是下列概念步骤的结果:a)嵌入式ASN.1编码的值的ASN.1类型按9.2所规定进行标识;b)按9.3规定给定ASN.1类型,从所标识的嵌入式ASN.1编码的值生成ASN.1值;(见6.4b),作为嵌入式ASN.1编码的值。9.2.1对于标识,Identifier类型的值应从9.2.2和9.2.3中的内容ElI生成,且该值应标识嵌入式ASN.1编码值的ASN.1类型。如果ASN.1类型不能从Identifier的值标识,按9.5中的规定,处理的SOAP节点应处理的SOAP节点获得和管理Identifier值和所标识ASN.1类型的集合的手段,未在本部分中规定。注:SOAP节点可以从服务描述(见13.8)获得所标识ASN.1类型的(部分)集合。All(见)属于[attributes]性质的成员时:9.2.3当roidAll(见)不属于该内容Ell的[attributes]性质的成员时:Base64编码(在IETFRFC20451996的6.8中规定),其中八位位组串按9.2的规定,由ASN.1值的基9.4将(带标识符的)ASN.1值插入W3CSOAP消息带有其值为Identifier类型的标识符的ASN.1值和可能的附加值,均应按下面各条中的规定,将作为所生成的内容EII的嵌入式ASN.1编码的值,插入到W3CSOAP消息中。如果作为生成内容EII的嵌入式ASN.1编码值是HeaderEII的子辈(W3CSOAP标头),应适用于9.4.2。如果作为生成内容EII的嵌入式ASN.1编码值是BodyEII的子辈,应适用于9.4.3。如果作为生成内容EII的嵌入式ASN.1编码值是DetailEII的子辈,应适用于9.4.4。内容EII按9.4.5中的规定应从ASN.1值和Identifier值生成。该内容EII应是该标头。附加值(如果有)应按以下3条中的规定,导致将AII插入到该内容EII的[attributes]性质的成员中。与RoleAII的语义对应的附加URI(如果出现)应生成该RoleAII,且其[normalizedvalue]性质应是该URI的字符串值。与mustUnderstandAII的语义对应的附加布尔值(如果出现),当该布尔值为TRUE时应生成该mustUnderstandAII,且其[normalizedvalue]性质应为“1”。与relayAII的语义对应的附加布尔值(如果出现),当该布尔值为TRUE时应生成该relayAII,且其[normalizedvalue]性质应为“1”。内容EII应按9.4.5中的规定从ASN.1值和Identifier值生成。该内容EII应为BodyEII的内容EII应按9.4.5中的规定从ASN.1值和Identifier值生成。该内容EII应为DetailEII内容EII应按以下4条中的规定,从ASN.1值(作为嵌入式ASN.1编码值予以插入)如果Identifier类型的值有qName替代出现,该内容EII的[namespacename]和services:soap-Envelope”。在该内容EII的[attributes]性质的成员中,AII应在生成时带有:b)“urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-services:soap-d)[normalizedvalue]的性质,此应是只使用“XMLNumberForm”(GB/T16262.1—2006第32章)编码为“XMLRelativeOIDValue”的roid组件的值。内容EII的子辈CII(嵌入式ASN.1编码的值)序列,应从八位位组串的Base64编码生成(按IETFRFC20451996的6.8中的规定),其中的八位位组串由ASN.1值的基本对齐压部分的5.1.1),应利用[normalizedvalue]性质:“urn:ohn:joint-iso-itu-t:asn1:generic-9.5.2ValueEll(CodeEll的子辈),应在生成时带有作为如下字符串的拼接的子辈Cll的序a)按7.1.2规定的[prefix]性质;b)冒号(“:”);9.5.3在EnvelopeElI(或处在直到并包含9.5.4中生成的ValueEll的任意层深度的子辈EIl)的[in-scopenamespaces]性质的成员中,带有“urn:ohn:joint-iso-itu-t:asn1:generic-[prefix]性质,生成时应带有其由该SOAP节点选出的值。9.5.4SubCodeEll(CodeEll的子辈)应利用单个子辈值EIl生成。该单个子辈ValueEII,应具有作为下列字符串的拼连的子辈CII的序列:a)按9.5.3规定的[prefix]性质;b)冒号(“:”);<env:Body><env:Code><env:SubCode></env:SubCode></env:Code></env:Body></env:Envelope>10.1.1为了实现本部分的目的,应按下面对W3CSOAP:2003第2部分的7.1.4的3条进行修改。10.1.2ASN.1SOAPHTTP绑定的实现,应具备利用“application/fastsoap”媒体类型收发ASN.1SOAP消息的能力,这种媒体类型的正确使用及参数在B.1中规定。10.1.3实现也可以使用其他媒体类型发送请求和响应,只要这些媒体类型标识W3CSOAP消息。注:这样的W3CSOAP消息主要是XMLSOAP消息或快速信息集SOAP消息。a)应规定至少接收“application/fastsoap”媒体类型的能力;首部字段Accept,除指明接收XMLSOAP消息(见D.2中描述的悲观策略),以便规定接收ASN.1SOAP消息的10.2.1对W3CSOAP:2003第2部分的7.5.2应利用如下两条进行扩展。10.2.2接收带有1个或多个附加媒体类型对“application/fastsoap”媒体类型具有平等优先权的HTTP标头字段Accept的响应中的SOAP节点,应将“application/fastsoap”媒体类型解释为具有最高优先权(见IETFRFC2616的14.1),并应以该媒体类型作出响应。10.2.3如果响应中的节点不能从HTTP请求中断定发送者能处理由“application/fastsoap”媒体类型标识的内容,该响应的SOAP节点应添加带有空字段值的HTTP标头字段Fast-Enabled,第2部分的第7章),支持在HTTP上传送快速信息集SOAP消息(称为“快速信息集SOAPHTTP绑定”)。11.1快速信息集SOAPHTTP绑定的实现,应具有采用“application/soap+fastinfoset”媒体类型收发快速信息集SOAP消息的能力,这种媒体类型的正确用法和参数在B.2中规定。11.2绑定在发送请求时可提供HTTP标头字段Accept(见IETFRFC26121999的14.1)。该首a)应规定至少可接收“application/soap+fastinfoset”媒体类型;00xml”的HTTP首部字段Accept,以规定接收快速信12.1.1本章规定的面向SOAP的服务描述,支持ASN.1SOAP接口绑定(见12.4.7)。12.1.2面向SOAP的服务描述是规定接口和Web服务语义的文档集,其中Web服务将通过SOAP消息交换来提供。12.1.3面向SOAP的服务描述应满足本章规定的要求,但不同的是,对于编写文档的形式或所用语言(自然的或形式的)都没有限制。a)模式集(见12.2);b)抽象接口集,其中每一接口都包含抽象操作集(见12.3);c)接口绑定集(ASN.1SOAP接口绑定集),其中每一接口绑定都包含操作绑定集(见12.4)。12.2.1对给定的Web服务的面向SOAP的服务描述,可包括一个或多个内容数据类型的定义,这些数据在提供该Web服务的SOAP消息中承载。这包括在消息体、标头和故障中承载的内容数据。12.2.2内容数据(如果有)应由一个或多个XSD模式进行定义。每一个模式均应通过提供其命名一个或多个“xsd:schema”EII组成。通常,模式通过包括其XML表示而嵌入在服务描述中。12.2.3在服务描述中导入或嵌入的全部XSD模式的集合称为“原模式集”。12.2.4原模式集内的内容数据的每一类型均可通过顶级elementdeclaration模式组件、顶级complextypedefinition或simpletypedefinition模式组件来规定。12.3.1抽象接口通过提供抽象操作集的信息来规定,并以隐式包含下列模式信息(派生于服务描述中的其他信息):a)RPC模式(见12.3.2);b)ASN.1模式集(见12.3.3)。12.3.2RPC模式是一种特别构造的XSD模式,支持RPC样式的具体接口,并应按12.5中的规定生成。附加了RPC模式的原模式集称为“抽象接口的完全模式集”。12.3.3ASN.1模式集是抽象接口的完全模式集的ASN.1映射。完全模式集内的每一XSD模式,均应按ISO/IEC8825-5:2004中的规定独立地映射到ASN.1。a)操作名(一种限定的名称);b)(可选地)一个输入消息定义;c)(可选地)一个输出消息定义;12.3.5如果输入输出消息定义同时出现,两者出现的顺序(例如请求和响应)未在本部分中规定,a)属于原模式集(见12.2.4)中模式之一的零个或一个顶级elementdeclaration;b)由零个或多个不同的非限定的名称的清单,每一名称都与属于原模式集(见12.2.4)中模注:在一些服务描述语言(例如WSDL1.12)中,输入或输出消息定义的形式将通过操作绑定作为对由抽象操作提供的信息的约束(本部分中未作规定)来规定。12.3.7每一故障消息定义均应规定顶级elementdeclaration。顶级elementdeclaration属于原模式集(见12.2.4)中的一种。12.3.8对每个操作,输入消息定义(如果出现)具有12.3.6中的形式a),而输出消息定义(如果出现)具有形式a),该接口称为“基于文档的接口”。12.3.9对每个操作,输入消息定义出现并具有12.3.6中的形式b),而输出消息定义(如果出现)具有形式b),该接口称为“基于RPC的接口”。12.3.10否则,该接口既不是基于文档的也不是基于RPC的,且包含这些抽象接口的服务描述不是本部分中所规定的面向SOAP的服务描述。a)(可选地)赋予该具体操作的对象标识符;b)操作绑定集;c)运输的URI;d)该具体接口的样式(文档样式或RPC样式);e)该具体接口是否支持快速Web服务。12.4.3赋予该具体操作(如果有)的对象标识符,应按GB/T17969.1—2015进行分配并应唯一地标识该具体操作。注:基于同一抽象操作的两个具体操作会有不同的对象标识符。12.4.4操作绑定将抽象操作与附加信息关联起来,结果形成了W3CSOAP消息交换具体操作的完整规范。12.4.5运输是用于从SOAP节点到另一SOAP节点传送SOAP消息的协议,并应作为URI来规定。第7章)和ASN.1SOAPHTTP绑定(见第10章)。12.4.6抽象接口是基于文档的,具体接口的样式应为文档样式。当抽象接口是基于RPC的时,具体接口的样式应为RPC样式。a)(可选地)SOAP动作URI;12.4.9如果ASN.1SOAPHTTP绑定(见第10章)规定为运输,SOAP动作URI是为HTTP请求而放置在(若出现)“application/fastsoap”MIME类型(见B.1)的actionparameter中的12.4.10在标头定义中的每一顶级elementdeclaration,均应属于原模式集中的模式(见12.2.4)之一。配,并应唯一性地标识该elementdeclaration。这样的每一对对象标识符相同,而其右侧添加了一个或多个附加对象标识符组件。12.4.13带有被赋予的对象标识符的任何elementdeclaration,均应为对12.4.8d)的附加指elementdeclaration的限定的名称用于标识SOAP消息中嵌入式ASN.1编码的值的类型(见9.2.3)。12.5.1RPC模式是支持RPC样式具体接口(见12.4.6)的专门构造的XSD模式。RPC模式以隐12.5.2对给定的抽象接口(即绑定到RPC样式的具体接口)的RPC模式,应予以构造如下。或空(于适当时),应附加到该RPC模式。12.5.4typedefinition性质中的comple——targetnamespace:ababsent或者设为false或空(于适当时),并应将其附加到该RPC模式。12.5.5contenttype性质中的particle模式组件应具有下列性质:——term:按12.5.6规定的modelgroup模式组件,并应将其附加到该RPC模式。——compositor:sequence;——particles:按12.5.7规定(见12.3.6b)]的零个到多个particle模式组件的清单,并应12.5.7particles性质中的粒子列表中的每个particle应具下列性质:——term:按12.5.8规定的elementdeclaration模式组件,并应将其附加到该RPC模式。12.5.8term性质中的elementdeclaration模式组件应具有下列性质:——targetnamespace:a——typedefinition:与抽象操作(见12.3.6b)]的输入消息定义的非限定的名称关联的complex12.5.9对于在带有输出消息定义的基于RPC的抽象接口中规定的每个抽象操作,带有下列性——typedefinition:按12.5.10规定的complextypedefinition模式组件;——scope:global,并带其余性质absent或者设置为false或空(于适当时)的declaration12.5.10在typedefinition性质中的complextypedefinition模式组件——targetnamespace:absent; absent或者设置为false或空(于适当时),并应将其附加到该RPC模式。12.5.11contenttype性质中的particle模式组件应具有下列性质: ——particles:按12.5.13规定(见12.3.6b)]的零个到多个particle模式组件的清单,并应12.5.13particles性质的例子清单中的每个particle均应具有下列性质:——term:按12.5.14规定的elementdeclaration模式12.5.14term性质中的elementdeclaration模式组件应具有下列性质:——targetnamespace:ab 12.5.1512.5.8和12.5.14的typedefinition性质complextypedefinition或simpletypedefinition模式组件,应为原模式集中XSD模式之一的模式组件的副本。这一模式组件,连同出现在其性质(除非以前附加过)中的或出现在任意深度的性质中的质的任何模式组件副本,应附加到该RPC模式(除非以前附加过)。13.1对给定的快速Web服务,包含ASN.1SOAP接口绑定的面向SOAP的服务描述,影响所有ASN.1SOAP消息的形式与内容,这些消息和内容在提供快速Web服务时可映射到W3CSOAP消息13.2每一W3CSOAP消息均应为服务描述中规定的具体接口(见12.4)的具体操作的输入或输出消息。属于输入消息的应从客户SOAP节点流向服务SOAP节点,属于输出消息的则按相反的样式的具体接口的具体操作的输出消息时,只许可用于具有输入消息定义的具体操作。13.3在作为给定的具体操作的输入或输出消息的W3CSOAP消息中,任何标头(HeaderEll的子辈)或故障(DetailEll的子辈),均应为嵌入式元素信息项,并分别符合于该操作的标头与故障的顶级elementdeclarations之一(分别见12.3.7和12.4.10)。13.4W3CSOAP消息的消息体(BodyEll的子辈)是给定的具体操作的输入或输出消息,应是嵌入式Ell,符合于下列elementdeclaration之一:a)当该具体操作是RPC样式的具体接口(见12.4.6)的成员时,分别为对该操作的输入或输出消息以隐式生成(在RPC模式中,见12.5)的顶级elementdeclaration(分别见12.5.3b)当该具体操作是文档样式的具体接口(见12.4.6)的成员时,分别为对该操作的输入或输出消息定义中规定的顶级elementdeclaration(见12.3.6a)]。消息的)表示下列两者之一:注1:这样的项将映射到作为嵌入式快速信息集文档的ASb)作为从该EIⅡ生成的嵌入式ASN.1编码的值。注2:服务描述指明该嵌入式EII是表示为子树还是嵌入式ASN.1编码的值(见12.4.8d)]。13.6嵌入式ASN.1编码值的生成应要求下列信息:b)该ASN.1类型的标识;c)所标识的ASN.1类型的ASN.1值。13.7ASN.1类型应为抽象接口(见12.3.3)的ASN.1模式集中的成员,映射自顶级elementdeclaration,且该嵌入式元素信息项符合该顶级elementdeclaration。13.8ASN.1类型的标识应为Identifier类型的值。13.8.1如果将对象标识符赋予该顶级elementdeclaration(见12.4.12),Identifier值的roid替代适用,且该roid值应从相对对象标识符进行设置(见12.4.12),其中标识符是对于已赋予的对象标识符的附加对象标识符组件。declaration的限定的名称进行设置。13.9给定的ASN.1类型、Identifier值和ASN.1值,嵌入的ASN.1编码的值,并按9.4中规定生ASN1SOAP{joint-iso-itu-t(2)asn1(1)generic-applications(10)fast-web-services(1)modules(0)DEFINITIONSAUTOMATICTAGS::=BEGINIMPORTSAnyURI,Int,Language,QNamexsd-module(2)}Document,finf-doc-no-declfast-infoset(0)modules(0)fast-infoset(0)};body-or-FaultCHOICE{bodyBody,relayBOOLEANOPTIONAL,"/2003/05/soap-Envelope/Role/UltimateReceiver"Body::=SEQUENCE{contentContentOPTIONAL}Fault::=SEQUENCE{ReasonSEQUENCESIZE(1..MAX)OFnodeXSD.AnyURIOPTIONAL,RoleXSD.AnyURIOPTIONAL,detailContentOPTIONAL}Value::=ENUMERATED{versionMismatch,mustUnderstand,dataEncodingUnknown,Text::=SEQUENCE{textUTF8String}enCoded-valueSEQUENCE{schema-identifierOCTETSTRING(SIZE(16))OPTIONAL,idIdentifier,(CONTAININGDocumentENCODEDBYfinf-doc-no-decl)}roidRELATIVE-OID,qNameXSD.QName}NotUnderstoodIdentifierIdentifier::=qName:{uri"http://ww/w3/org/2003/05/soap-EnvelEND(规范性附录)a)“application/fastsoap”媒体类型描述了采用基本对齐压缩编码规则编码的ASN.1SOAP消息,特别是ASN.1Envelope类型的值(见B.1);b)“application/soap+fastinfoset”媒体类型描述了串行化为快速信息集文档的快速信息集W3CSOAP消息(见B.2)。B.1“application/fastsoap”媒体类型这种媒体类型用于标识作为本部分的ASN1SOAP模块中规定的ASN.1Envelope类型的值的内容,范。)因为ASN.1SOAP消息信息集能承载在语义上独立于任何MIME包裹件(或使用MIME包裹件的语境)只要使用“application/fastsoap”媒ASN.1SOAP消息中承载的数据的应用程序定义的语义。这种媒体类型按本部分规定,用于标识串行化为快速信息集文档的W3CSOAP消息信息集。在他规范。)因为W3CSOAP消息信息集能承载在语义上独立于任何MIME包装(或使用MIME包装的语境)的应对于快速信息集文档的标识的详情,参见“application/fastinfoset”媒体类型的魔数部分。对于串行化为快速信息集文档的W3CSOAP消息信息集的标识,要求对快速信息集文档进行句法COMMON根据ITU-TRec.A23与国际标准组织(ISO)和国际电工委员会(IEC)在信息技术领域的合作的(资料性附录)快速Web服务辅导资料本附录提供有关快速Web服务的辅导资料,描述了采用快速Web服务的某些优点。本附录突出并举例说明对SOAP消息的概念处理与优化处理之间的差异。所举例子基于简单消息交换,其中客户发送请求消息并接收响应消息。本附录讨论了服务描述的用法,并提供了服务描述示例(在WSDL1.12)中),描述了该消息收发示例中所提供的服务。快速Web服务规范基于采用SOAP消息及其内容的ASN.1定义,并基于采用消息的二进制编码。这反映出快速Web服务的主要优点(计算机快速处理和消息低带宽),对XMLSOAP的许多进一步优化方法将在下面讨论。C.1.1ASN.1工具模式仅用作一种指南,因为XML绑定工具不大可能帮助开发优化的XMLSOAP处理器。ASN.1方法允许选用工具或手工来开发SOAP处理器,既不会造成严重的性能问题,又具有缩短上市时间的潜力。ASN.1SOAP除采用ASN.1和压缩编码规则所提供的压缩及高效处理(见GB/T16263.2—2006)外,b)将W3CSOAP消息的递归故障子码(见W3CSOAP:2003第1部分的5.4.6)平化为ASN.1SOAP消息的故障子码的序列。这使解码器能在解码前就知道有多少故障子码。c)ASN.1相对对象标识符能替代限定的名称来使用。服务描述消息能以相对标识符注释,而这样的标识符在编码时一般要比限定的名称压紧得多,其结果是减小了消息大小。d)与属性相关的所有ASN.1SOAP标头组件的缺省值均予规定。e)将枚举的值用于W3CSOAP规定的故障代码而非限定的名称。C.1.3压缩消息和高效处理数据所要求的处理能力更少(因而提供的事务处理速率更高),所要求的网络带宽更窄。这在很多a)受约束的设备,例如移动电话、智能卡甚至射频识别(Radio-FrequencyIdentification,RFID)设备,三者的处理能力、存储器和电池寿命都有限。b)带宽受限制系统,例如无线网络。消息的SOAP中介,可以轻松地辨识用于处理(包括解码)的ASN.1SOAP标头而跳过(并复制)其他注:ASN.1SOAP中介还能有效地管理Fault,因为Fault将始终出现在消息的末尾(在SOAP标头之后),且当标头出现时,保证会在一个字节边界处开始。因而中介不必将Fault解码,除非该中介进行没有在SOAP处理模型中规定的过程。收者(见W3CSOAP:2003第1部分的1.5.3)。入到W3CSOAP消息)的概念步骤,在第6章到第9章中规定。然而,SOAP节点可有意跳过此概念步骤c)修改该送入的ASN.1SOAP消息,使其成为送出的ASN.1SOAP消息(或创建新的送出ASN.1SOAP消息),并将新的嵌入式ASN.1抽象值插入该送出的ASN.1SOAP消息中;d)使用基本对齐压缩编码规则,将该送出的ASN.1SOAP消息编码为HTTP响应的内容的八位位组的序列。C.2.2示例以下各条中的示例是从应用程序发送ASN.1SOAP消息请求和接收响应的角度给出的。快速Web消息。该服务实质上是,其中的应用程序可以请求关于对该应用程序(或该应用程序的用户)很重要的信息的最新警报。该进行请求的应用程序将发送空的ASN.1SOAP消息(不带应用定义的内容),并作为对该警报的响应接收带有两段应用定义的内容(在C.3.2中使用WSDL1.1规定)的ASN.1SOAPa)SOAP标头的警报属性,即该警报的优先级及其期满时间;应用程序通过执行(采用某种合适的编程语言,例如Java)不带输入参数仅返回警报的方法调<env:Envelopexmlns:env='/2003/05/soap-Envelope'><env:Body></env:Body>组成的ASN.1SOAP消息请求,其中Envelope类型在附录A中定义(另见6.1)。然后,采用基本对齐压缩编码规则将ASN.1SOAP消息编码为作为HTTP请求内容的八位位组的序消息(这种情况为SOAP1.1消息[1])都予以支持。HTTP/1.1200OK...sequenceofoctets采用基本对齐压缩编码规则将ASN.1SOAP消息解码,以产生ASN.1值:content:enCoded-value{id:qName{uri"/alertcontrol",name"alertcontrol"],content:enCoded-value{id:qnName{uri"http://example.oSOAP标头和alert元素(信息项)作为Body元素信息项的子项:xmlns:env="/2003/05/soap-Envelope^>env:encodingStyle=urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-services:soap-Envelop<env:Body><m:alertxmlns:m="/alert"env:encodingStyle=urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-services:soap-Envelope:</env:Body>uri"/alertcontrol",其中嵌入式ASN.1值是采用基本对齐压缩编码规则,解码自使用ASN.1类型、与该Identifier关alertIdentifierIdentifier::=qName:{uri"/alert",其中嵌入式ASN.1值是采用基本对齐压缩编码规则,解码自使用与该Identifier关联的ASN.1类C.3服务描述C.3.1概述文档是面向SOAP的服务描述(见第12章和附录E),并且WSDL1.1绑定符合WS-IBasicProfile1.0³)(见附录E)所规定的澄清和订正。C.3.2示例C.3.2.1在C.3.3中所示的服务描述(以WSDL1.1表达),规定了对C.2.2中示例的ASN.1SOAP接口E.2和12.2)得到。(规定Body元素信息项的子内容,16263.5—2016应用到两种模式(见transport属性的值等于“/soap/http/”(见E.4.2和12.4.2)。Web服务的支持。存在,因为AlertOperation操作绑定有soapAction属性(见E.4.10和12.4.9)。URI“urn:alert”将置于“application/fastsoap”多用途互联网邮件扩展类型(见B.1)的action参数中,用于HTTP请求(包含空ASN.1SOAP消息的)的HTTP首部字段Content-Type。绑定中的wsdl:output的soapbind:body隐式地引用wsdl:parts(见E.4.9.1和12.3.6a)]。ertcontrol:alertcontrol(见E.4.11和12.4.8c)]的AlertOperation操作绑定的输出。xmlns="/wsdl/"xmlns:soap="/soap/Envelope/"xmlns:soapbind='/wsdl/soap/"xmlns:http="/wsdl/http/"xmlns:xsd=*/2001/XMLSchema"xmlns:fast-service=urn:ohn:joint-iso-itu-t:asn1:generic-applications:fast-web-servxmlns:tns="/alert/service"targetNamespace="/alert/service"targetNamespace="/alertcontrol"xmlns=*/2001/XMLSchema"xmlns:soap="/wsdl/soap/"elementFormDeFault='qualified"><importnamespace="/wsdl/soap/"/)<elementname="expires"type="xsd:dateTime*/>targetNamespace="/alert"xmlns=*/2001/XMLSchema"elementFormDeFault="qualified"><elementname="alert"></complexType></schema>name='msg"type="xsd:string*/)</message><partname="body"element="alert:alert*/></message><inputmessage='tns:AlertReque<outputmessage='tns:AlertRespons<bindingname=*AlertBinding"type="tns:AlertPortType><operationname="AlertOperation"soapAction="urn:alert"><soapbind:bodyuse='literal<soapbind:bodyuse="literal"parts="body"/)part="Header*/><servicename="AlertServi<portname="AlertPort"binding="tns:AlertBinding>location="/AlertPort"/)本附录描述了三种策略,一种是乐观的(见D.1),两种是悲观的(见D.1乐观策略a)该SOAP节点以400系列类的HTTD.1.4当出现D.1.2b)中所描述的情况时,乐观策略在第一次请求时就不具有处理ASN.1SOAP消息请求并以ASN.1SOAP消息响应应答的能力。在D.2.1和D.2.2中描述了两注:这一策略利用服务器驱动的内容协商(见IETFRFC2616的12.1),这是一种HTTP/1.1的特征。ASN.1SOAP注:支持快速(服务)的使能能力由HTTP首部域字段Fast-Enabled来声明陈述。D.2.2.3当出现D.2.2.2a)中所描述的情况时,该策略已经失败,因为该SOAP不是快

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论