当前位置首页 > 计算机 > 计算机相关文档
搜柄,搜必应! 快速导航 | 使用教程

Web服务技术标准与规范

文档格式:DOC| 10 页|大小 55.51KB|2022-10-05 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 10
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 第十讲 Web服务技术标准与规范所谓Web服务(Web Services)是指由企业发布的完成其特别商务需求的在线应用服务,其它公司或应用软件能够通过Internet来访问并使用这项在线服务Web服务技术促进了Internet上企业之间的协作,使用Web服务可以使合作伙伴的信息系统之间更容易地进行通信但随之而来的问题是:如何集成来自不同企业的服务?为了使Web服务易于使用,众多组织已经致力于Web服务技术,进行标准协议的制定,提供Web服务的创建工具和解决方案本讲将以Web服务栈为中心介绍Web服务技术涉及的一些关键标准和规范,如SOAP、WSDL、UDDI等Web服务标准本身是不断发展变化的,文中着重介绍目前被普遍接受的底层标准,并对还需要进行标准化的领域进行简单的讨论1.Web服务Web服务是可以在组织内部或者公司之间的异构计算资源中被共享、组合、使用和复用的商业资产Web服务是一个可编程的部件,它提供一种易于通过Internet获取的商业服务Web服务可以是独立的,也可以连接在一起向外部世界提供更强大的系统功能Web服务将逐渐成为构建电子商务应用的基础体系结构基于Web服务的体系结构是从一个分布式面向对象部件的系统向一个服务网络的逻辑演进,该服务网络提供一个能够跨企业集成的松散耦合的底层基础结构。

    Web服务是基于Internet的模块化应用,它们执行特定的商业任务并遵循特定的技术格式如果应用中的某过程可以在Internet上以一种标准格式被调用,称之为Web服务的服务器;类似的,如果通过Internet调用本应用以外的某过程,则是Web服务的客户因此,实质上Web服务是Internet上应用之间的客户服务器,目的是实现B2B伙伴之间的个性化信息交换,并以一种易用的格式提供和发布应用模块为了实现这种开放工作,必须要有标准的格式和方法几乎所有的主流技术公司都已相继涉足Web服务的标准化工作,参与了各种标准化组织当前,最主要的标准化组织是W3C(World Wide Web Consortium)其它组织也做了大量的工作,如UDDI.org,OASIS,UN/CEFACT,BPMI.org,以及ebXML.org等Web服务栈(Web Services Stack)Web服务不同于已有的构件对象模型以及相关的对象模型协议,如CORBA和IIOP(Internet Inter-ORB Protocol)、COM和DCOM以及Java和RMI(Remote Method Invocation)。

    Web服务可以用任何语言编写,并且可以使用HTTP访问从技术上看,一个Web服务是一个由内容、应用代码、过程逻辑、或者这些部分的任意组合所构成的XML对象,并且可以通过任何TCP/IP网络访问,只要网络中使用SOAP标准集成,使用WSDL标准进行自描述,使用UDDI标准在一个公共的或者私有的目录中注册和发现如图1所示,Web服务由多个层构成,这些层堆叠在一起形成了发现和调用一个独立的Web服务所提供功能的标准机制的基础即,Web服务栈以层次结构来表示,高层在低层的基础之上构建UDDIWeb服务 & WSDLHTTP/HTTPS, SMTP, FTPSOAP/XML服务发现层服务描述层基于XML的消息层网络层图1 Web服务栈图中HTTP提供了分布式应用之间的通信机制,XML定义了数据交换和描述的格式,SOAP是调用Web服务的协议, WSDL描述Web服务的格式,而UDDI则是注册、查找和使用Web服务的中枢组织下面分别介绍这些协议及相关的规范2. HTTPWeb服务栈中的最底层是网络层,也可以称为协议层分布式的应用需要有网络协议来定义两个并发过程之间的通信机制概念上,Web服务的设计是与协议无关的,在图1的分层体系结构模型中,从底向上任何标准的Internet协议都可以用于在网络上调用Web服务。

    但目前主要是HTTP(Hypertext Transport Protocol)和HTTPS(Hypertext Transport Protocol Secure )协议HTTP/1.1是一个基于文本的、“请求-响应”(request-response)型的协议,它规定一个客户打开到服务器的一个连接,然后以专门的格式发送一个请求,服务器进行响应,同时如果必要则保持连接的打开状态HTTP使用的普遍性及其固有的穿防火墙的能力使它成为主导的Web服务网络协议但同时由于HTTP是基于文本的协议而缺乏表示远程过程调用(RPC)消息参数值的机制其它的请求/响应类型的传输协议,如文件传输协议(File Transfer Protocol,FTP)和简单邮件协议(Simple Mail Transport Protocol,SMTP)也可以使用,但是并没有在Web服务的各种标准中定义,目前也只有极少数实现支持这些协议另外,最近IBM发布了一个可靠通信协议的提案,称作HTTPRHTTPR在HTTP的基础上加强了可靠性,在保持HTTP优点的同时能够保证消息可以不受阻碍地发送到目的地可靠的通信对Web服务来说是一个非常关键的方面,虽然目前对由协议层实现是否最适合仍然有争议,但在不远的将来它肯定会以某种形式出现。

    3.XML(Extensible Markup Language,可扩展标记语言)基于XML的消息层包括数据表示、数据格式和消息传输协议XML为信息交换定义了描述和格式数据表示HTTP是一种基于文本的协议,因而缺乏表示RPC消息中的参数值的机制,这也是XML作为Web服务的一个重要成分出现的原因XML是一种元语言,可以通过标准的编码和格式化信息的方法进行跨平台的数据交换XML允许数据被串行化为易于被任何平台解码的消息格式,提供了在网络应用之间交换结构化数据的机制XML采用纯文本表示,设计的初衷是为了存储、传送和交换数据的XML是一种标记语言,标记在XML中不是预先确定的,而必须由使用者自己定义XML允许使用者自由发表有用的信息,不仅可以是有关数据结构的,也可以是关于数据意义的另外,XML文档的结构、内容和外观可以作为三个不同的部分进行维护,提供了更高的独立性对于数据表示层来说,可扩展性是一个关键因素为了支持可扩展性,Web服务需要一种机制以避免名字冲突,并允许一个程序只处理自己所关心的元素XML名空间(namespaces)提供了一种简单、通用的方式以区分相同名字的元素或属性为了支持可扩展性,XML中的每个元素和属性都有一个相关的名空间URI。

    数据格式Web服务需要一种方法定义Web服务消息中使用的数据类型XML Schema 规范标准化了一个描述XML数据类型的符号集,还定义了一个内置简单数据类型的集合和在各XML文档中建立元素类型的机制XML Schema规定了XML文档的逻辑结构,定义了元素、元素属性以及元素和元素属性之间的关系XML仍然处于不断的发展中需要说明的是,XML本身只是一种标记语言,只是进行描述,并不提供商务逻辑,Web服务提供对这些逻辑的访问这也是为什么Web服务的更高层的、基于XML概念同样非常重要的原因 4.SOAP(Simple Object Access Protocol,简单对象访问协议)SOAP是目前被广泛接受的消息传输协议SOAP是一个为信息交换设计的轻量协议,用于在网络应用程序之间交换结构化数据,是一种基于XML的机制SOAP主要是在分布的、分散的环境中提供了一个跨Internet调用服务的框架结构,并提供了独立于编程语言和分布对象底层基础结构的跨平台集成机制SOAP代表了xml-rpc 的发展,已经被W3C作为一种Internet标准采纳SOAP是一个远程过程调用(RPC)协议,使用标准的Internet协议进行传输:同步调用时的HTTP或异步调用时的SMTP。

    由于可以在HTTP上运行,这使得SOAP在穿防火墙进行操作的方面优于DCOM、RMI和IIOP,而在嵌入设备上实现SOAP也比开发一个ORB更简单SOAP的主要设计目标是简单性和可扩充性为了到达这两个目标,SOAP中省略了在其它消息系统和分布式对象系统中常见的一些特性,如无用存储单元收集、消息批处理等SOAP没有定义一种编程模型或实现,而是定义了一个模块化的包装模型,并在模块内定义了编码数据的编码机制这使得SOAP可以在从消息传递系统到远程过程调用的任何系统中应用SOAP的组成SOAP由四个部分组成:Ÿ (1)一个SOAP封皮(Envelope),定义了描述消息所包含信息的框架结构,即消息中包含什么信息、由谁来处理以及是必需的或可选的Ÿ (2)一组SOAP编码规则(Encoding rules),定义了一个串行化机制,用于交换应用定义的数据类型的实例SOAP编码的类型使用简单的标量类型和复合类型,如结构和数组这些类型以XML文档元素的形式表现,XML Schema规范中定义的数据类型以及这些数据类型的派生类型都可以直接用作SOAP元素Ÿ (3)SOAP RPC表示,定义如何表示远程过程调用和响应。

    SOAP的设计目标之一是用XML的可扩展性和灵活性封装RPC功能,在SOAP1.2中详细定义了RPC和响应的统一表示,将对一个方法的调用和响应作为结构来建模,结构中包含了返回值,或者还可能包括传入的参数Ÿ (4)SOAP绑定(binding),定义如何使用底层传输协议进行SOAP消息的交换虽然SOAP本身可以和多种协议结合使用,但SOAP1.2中只描述了在HTTP中的使用SOAP和HTTP绑定可以同时使用SOAP的形式方法与分散的灵活性以及HTTP丰富的特性集在HTTP中使用SOAP并不意味着SOAP覆盖了HTTP现有的语义,而是SOAP继承了HTTP的语义SOAP消息SOAP消息是用XML编码的文档,由三个部分组成:Ÿ (1)SOAP封皮(SOAP Envelope),是描述SOAP消息的XML文档的顶点元素Ÿ (2)SOAP消息头(SOAP Header),提供了一种灵活的机制对SOAP消息以分散的、模块化的方式进行扩充,而通信的各方(SOAP发送者,SOAP接收者以及SOAP中介)不必预先知道SOAP消息头是可选的Ÿ (3)SOAP消息体(SOAP Body),定义了一个简单的机制来交换要发送给最终SOAP接收者的消息中的必要信息,是这些信息的容器。

    典型的使用是编组RPC调用和SOAP错误报告SOAP消息交换模型SOAP消息是单方向的,从一个SOAP发送者(sender)到一个SOAP接收者(receiver)但单独的消息通常可以被组合在一起形成其它消息机制例如,SOAP通过在HTTP请求中提供一个SOAP请求消息和在HTTP响应中提供一个SOAP响应消息实现HTTP的请求/响应消息模型SOAP消息交换模型要求接收到一个SOAP消息的应用程序执行下列操作:(1)识别SOAP消息中意图供给本应用的部分,本应用可以作为SOAP中介将消息的其它部分传递给另外的应用2)检验SOAP消息中指定的所有必须处理的部分,并进行相应的处理3)如果SOAP应用不是消息的最终目的地,它应该在删除所有自己消耗的部分后将消息转发给消息要供给的下一个应用SOAP只是一种包装和绑定调用一个Web服务所需信息的方式, Web服务也可以使用其它的编码技术调用另外,SOAP本身没有严格地归入Web服务,SOAP 可以作为一种对任何类型的远程对象或过程的访问机制使用,也可以只是一个简单的消息传递机制除了SOAP以外,W3C创建的XMLP工作组还建立了XML协议(Extensible Markup Language Protocol,XMLP)。

    XMLP是类似于SOAP的XML消息协议,包括封皮、对象串行化方式、HTTP传输绑定以及进行远程过程调用的方式几个部分甚至有人认为XMLP将逐步取代SOAP5.WSDL(Web Services Description Language,Web服务描述语言)Web服务的目标之一是允许应用程序以标准的方式在两个或多个同等的服务之间进行选择,因为有时应用可以由作为支持网络的服务而实现的构件构造而成,甚至可以从这些服务中进行动态选择服务描述层定义了为程序提供足够信息所需的描述机制,使程序能够根据一定的准则选择服务,如服务的质量、安全性、可靠性等到Web服务的接口由基于XML的WSDL定义,它提供了应用访问指定的Web服务所必需的全部信息,描述服务提供了什么功能、服务位于何处以及服务如何调用WSDL以XML格式描述网络服务,将服务描述为在包含面向过程或面向文档信息的消息上进行操作的一组端点操作和消息是抽象描述的,然后绑定到具体的网络协议和消息格式以定义一个端点相关的具体端点被组合成为抽象端点(服务)WSDL 是可扩展的,允许描述任何端点和消息,而不考虑通信使用的消息格式或网络协议WSDL使用下面的元素定义网络服务:Ÿ 类型(Types),使用某种类型系统的数据类型定义的容器。

    WSDL并没有引入新的类型定义语言,而将XSD作为自己的标准类型系统,并允许通过可扩展性使用其它的类型定义语言Ÿ 消息(Message),对要传送的数据的一个抽象定义Ÿ 操作(Operation),对服务支持的动作的抽象描述 Ÿ 端口类型(Port Type),一个或多个端点支持的操作的一个抽象集合 Ÿ 绑定(Binding),对特定端口类型的一个具体协议和数据格式规格Ÿ 端口(Port),一个单独的端点,由一个绑定和一个网络地址组合在一起定义 Ÿ 服务(Service),一组相关的端点的集合一个Web服务由一组端口定义,而端口由绑定到一个具体协议和数据格式规范的一组抽象操作和消息定义操作和消息的抽象是为了使它们可以复用和绑定到不同的协议和数据格式,如SOAP、 HTTP GET/POST或MIME在WSDL中,端点和消息的抽象定义是和它们的具体网络配置和数据格式绑定相分离的;另外,WSDL定义了一个公共的绑定机制,用于将特定的协议或数据格式或结构连接到抽象的消息、操作或端点,这些都允许对抽象定义的复用WSDL目前已经被广泛支持,但还不是W3C推荐的标准语言6.UDDI(Universal Description,Discovery,and Integration,统一描述、发现和集成)面对极度丰富的服务,最常出现的问题是“在哪里以及如何找到需要的信息?”。

    统一UDDI规范在底层协议的基础上又定义了一层,在这一层,不同的企业能够以相同的方式描述自己提供的服务和查询对方提供的服务UDDI是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使别的企业能够发现的访问协议的实现标准信息结构UDDI为表示XML中商业服务描述定义了一个数据结构标准,提供了更高层次的商业信息以补充WSDL中的说明UDDI定义了四种基本的结构:Ÿ 商业实体(Business entity),描述商业信息,如名称、类型等Ÿ 商业服务(Business service),已发布的Web服务的集合Ÿ 绑定模板(Binding template),访问信息,如URLŸ 技术规范(tModel),对服务类型的技术规格说明,如接口定义、消息格式、消息协议、安全协议等服务发布和发现在进行一个Web服务调用之前,必须先找到具有所需服务的企业,发现调用接口和语义,然后编写或配置自己的软件以便与服务合作UDDI的核心部件是UDDI商业注册,它用一个XML文档来描述企业及其提供的Web服务UDDI 商业注册是一个基于SOAP的Web服务,提供企业用于将它们的服务发布到注册中心的接口。

    注册中心是分布式的,彼此之间不断进行复制操作Web服务基本上是机器到机器的通信,为了有效工作,这种体系结构必须具有进行基于Web的应用和业务过程集成的有效工具UDDI商业注册中心包含三类信息,企业可以通过这些信息发现一个Web服务Ÿ 白页,包括企业的名称、地址、联系方式和企业标识,并允许其它公司按照名称查找目录Ÿ 黄页,包括基于标准分类法的行业类别Ÿ 绿页,包括了关于该企业所提供的Web服务的技术信息,其形式可能是一些指向文件或URL的指针,而这些文件或URL是为服务发现机制服务的绿页还允许注册的公司之间使用XML进行连接,提供了业务过程自动化的关键机制编程接口UDDI规范提供了编程接口,允许商业注册一个Web服务,以及查找指定Web服务的注册一旦想要的Web服务被确定,将提供一个指向WSDL文档所在位置的指针编程接口分为查询API和发布API两个逻辑部分查询API又分为两个部分:一部分用来构造搜索和浏览UDDI注册信息的程序,另一部分在Web服务出现错误时使用发布API可以用来创建各种类型的工具,以直接与UDDI注册中心进行交互,便于企业技术人员管理发布信息使用UDDIUDDI规范包含了对基于Web的UDDI商业注册中心可以实施的整套共享操作。

    一般来说,程序或程序员通过UDDI商业注册中心来获得Web服务的位置及其技术信息其中对于程序员来说,是对自己的系统实现准备,以使自己的系统能和那些Web服务实现访问兼容,或是描述自己的Web服务从而能让别人使用从商业层次上来说,UDDI商业注册中心可以被用于核查某个合作伙伴是否拥有特定的Web服务的调用接口,或是找出在某行业中能提供某种类型服务的公司,并确定某合作伙伴的Web服务的技术描述及交互时所需的技术细节UDDI 是完全可选的,也就是说,具有Web服务的公司,如果只是想对有限的人员或设备提供特定功能,它们不需要对外发布它们的服务其它标准除了UDDI以外,服务发现层还有其它一些标准如由Microsoft开发的DISCO(Discovery of Web Services)规范DISCO定义了一个基于XML的发现文档格式和一个检索该发现文档的协议DISCO允许开发人员通过一个HTTP GET操作发现服务使用发现文档格式,可以将一个发现文档发送到一台远程服务器,如果存在支持SOAP的Web服务,则收回一个服务所提供的WSDL描述7.服务集成和工作流工作流的概念在设计电子商务应用时愈加重要。

    当一个企业需要集成来自多方的Web服务并为终端用户组织这些服务时,必须掌握其系统的过程和顺序对于这些具有异步特征的应用,适合使用工作流引擎要使Web服务的实现不仅仅停留在简单的请求/响应模式上,商业过程协作和工作流是必不可少的,其中包括跨企业边界的Web服务的合成与自动化要成功进行企业间的自动化和协作的必需条件是要有一个标准化的商业协议来描述这些商业过程服务工作流领域目前尚未形成固定的标准,有一定影响的是WSFL、Xlang以及BPMIWSFL Web服务流程语言(Web Services Flow Language ,WSFL)是一个描述商业过程的规范WSFL提出了两种Web服务组合的类型:一是商业过程,一是合作伙伴交互商业过程作为一组为达到一个特定的商业目标而顺序执行的Web服务建模合作伙伴交互描述Web服务之间如何彼此交互Web服务被连接在一起以表明一个Web服务与另一个Web服务接口的操作交互作用 XLangXlang是Microsoft的BizTalk服务器使用的XML商业过程语言Xlang用于描述商业过程,这些过程在运行时由BizTalk 控制引擎(Orchestration engine)执行。

    Xlang还允许将Web服务结合到商业过程中以及Web服务的组合另外,Xlang支持补偿过程Xlang不支持代价较高的两阶段提交协议,而是提供了一个可供选择的开放式模型的表示方法,其中可以为活动明确指定抵消该活动影响的补偿活动由于Microsoft先前与IBM在WSDL和UDDI上的合作,有人认为将来二者可能会向W3C提出将Xlang和WSFL结合起来的提议BPMIBPMI(Business Process Management Initiative)推进公共商业过程的标准化这些过程可能跨多个应用、部门或商业合作伙伴,可能在防火墙之后或者可以通过Internet访问BPMI.org制定了一些开放规范,如BPML和BPQL,这使得可以对电子商务过程用即将出现的BPMS(Business Process Management System)进行基于标准的管理Ÿ BPML(Business Process Modeling Language),是商业过程建模的元语言BPML将商业过程定义为为了达到一个共同目标在参与者和根据定义的规则集合执行的活动之间的交互作用Ÿ BPQL(Business Process Query Language)是到一个过程服务器的管理接口,允许商业分析员查询由过程服务器管理的过程实例的状态,并控制过程实例的执行。

    该接口是基于SOAP的为了过程的注册、广告和发现,由过程库管理的过程模型通过BPQL接口可以作为UDDI服务对外提供BPML和BPQL都是开放规范8.其它相关标准和领域其它许多组织在Web服务规范的制定方面也做了大量的工作这里只简单介绍几种比较知名的规范ebXMLEbXML的结构类似Web服务栈,是在Internet上用标准技术引导电子商务的协议和规范的一个栈EbXML曾被考虑作为Web服务的另一个选择,其时间也早于Web服务模型然而这两个模型之间有一些重叠,而ebXML更注重EDI方式的信息交换一种可能的设想是Web服务模型和ebXML之间的逐步合并UN/CEFACT和OASIS最近已经采纳SOAP作为ebXML消息传递底层结构的基础W3C也积极考虑ebXML规范,并将并入规范中那些满足作为标准化Web服务体系结构的需求的方面JAX PackJAX Pack是Sun封装了Java领域的各种标准的结果JAX是一组XML的Java API,其设计支持Web服务标准API,包括SOAP、XMLP、WSDL和UDDI等JAX Pack中包括的API如下:Ÿ JAXP(Java API for XML Parsing),包含SAX(Simple API for XML),DOM(Document Object Model)和XSLT。

    Ÿ JAXB(Java API for XML Binding),一种将XML数据类型定义编译到能够将XML读入Java对象并将再其写回的Java类中的机制 Ÿ JAXM(Java API for XML-based Messaging),一个发送消息的基于SOAP的协议Ÿ JAXR (Java API for XML Registries),一个包罗众多的规范,其中为UDDI和ebXML注册及其它可能的注册提供了统一接口Ÿ JAX-RPC (Java API for XML-based Remote Process Communication),一个请求远程服务器上操作的基于SOAP的协议除了上面描述的各种规范以外,还需要提及一些其它的重要领域,这些领域涉及Web服务栈的所有层,其中包括安全性、管理、服务质量和事务等在Web服务具有转换企业商业关系的能力之前,企业需要这些额外的特性以及随之而来的附加机制、安全、身份确认、合同管理、质量控制等其中最重要的是安全性和事务安全性XML密钥管理系统(XML Key Management System,XKMS)是将PKI和数字化证书与XML应用集成的结果,由W3C XML签名工作组开发。

    该领域的其它规范包括安全服务标记语言(Security Services Markup Language,S2ML)和AuthXML,正由OASIS XML安全服务委员会支持其统一标准化BTP事务在Web服务中有独特的需求在保证相关联的工作流可靠协调的同时,事务协议必须能够处理长时间运行的企业之间的商业事务商务事务协议(Business Transaction Protocol,BTP)是一个基于XML的规范,用于描述和管理这些Internet上的复杂的、多步事务BTP为XML消息接口提供了一个开放规范,以支持来自不同Internet贸易伙伴的Web服务的协调另外,BTP定义了一个模型来定义和管理这些交互以保证可靠消息传输和商业过程的完成而无论其执行多长时间BTP最初由BEA开发并提交给OASIS商业事务技术委员会该委员会的任务是定义需求、技术评估,最后产生一个商业事务协议的推荐规范,以补充现存的Web服务标准9.小结上面对Web服务相关标准、规范和组织的介绍可以通过图2进行一个小结事务理服务集成/工作流服务发布服务发现服务描述基于XML的消息传递消息传递协议数据格式规格说明数据表示网络管理安全服务质量理HTTP W3CHTTPR IBMXML W3CSOAP W3CXMLP W3CWSDL W3CUDDI UDDI.orgDISCO MicrosoftWSFL IBMXlang MicrosoftBPML BPMI.orgebXML ebXML.orgUDDI UDDI.orgebXML ebXML.org较稳定,不易改变较不稳定,易改变图2 Web服务栈相关的各种标准和规范小结至此,我们可以了解到Web服务领域的复杂性及其不断变化的特性。

    上文描述的Web服务栈是一个开放规范集,其中有的是现有的Internet标准,有的还只是被广为接受的规范,正在逐步成为真正的标准需要注意的是由于这些标准是不断发展变化的,因而在开发中使用时要考虑到变更是不可避免的,应该始终依据通用的设计原则和体系结构Web服务栈定义了如何建造基于Web的解决方案,是实现互操作性的基础Web服务是否成功,首要因素在于能真正支持互操作性的开放标准为此需要建立一致的标准和消除差异各方面的参与者何时能够对这些标准达成一致意见对Web服务的成功程度起着决定性作用参考文献1. Greg Heidel,Web Services Standards,White Paper,Momentum Software Inc.2. SOAP Specification V1.1, W3C Note 08,2000.53. SOAP Version 1.2,W3C Draft,2001.74. WSDL Specification V1.1, W3C Note 15,2001.35. UDDI Specification,uddi.org,2000.96. UDDI Technical White Paper,uddi.org,2000.97. Business Process Management Language Specification,BPMI.org Draft0.4,2001.38. XLANG Specification,Microsoft Corporation,2001。

    点击阅读更多内容
    卖家[上传人]:yuelun
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档