已阅读5页,还剩60页未读, 继续免费阅读
(模式识别与智能系统专业论文)基于web技术的opc+xml数据访问服务器的研究与开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关键词:o p c 技术,g s o a p 开发包,x m l & s o a p 技术 a b s t r a c t w i t ht h ei m p r o v e m e n to fa u t o m a t i o ni nf a c t o r i e s ,i nt h ef i e l do ft h ei n d u s t r y a u t o m a t i cm o n i t o rs y s t e m ,t h ed i f f e r e n ts y s t e m sa l ew i s h e dt ob ei n t e g r a t e di no r d e r t oi m p r o v ep r o d u c t i v i t y t h ee m e r g e n c eo ft h eo p ct e c h n o l o g yo f f e r sag o o ds o l u t i o n f o rt h ed i f f e r e n ts y s t e m st oc o m m u n i c a t e 、i me a c ho t h e r a st h et r a d i t i o n a lo p c $ g l v e rf i leb a s e du p o nt h ec o m d c o mt e c h n o l o g yt or e a l i z e ,i t st e c h n i c a ld e f e c th a s a p p e a r e dp r o m i n e n t l yw h i l ee x c h a n g et h ed a t aw i t he a c ho t h e rb e t w e e nt h ei n t e m e t t h u si t s i m p o r t a n tt o l e a do u tt h et e c h n i c a la d v a n t a g ea n dt h en e c e s s i t yo fo p c x m d - d as e r v e rb a s e do nt h ew e bs e r v i c et e c h n o l o g y a c c o r d i n gt o t h eo p c x m l - d a s p e c i f i c a t i o n , t h i sp a p e r h a ss h o w nt h ed e s i g ns c h e m ew h i c hi st od e v e l o pa g a t e w a yb yu s i n gt h eg s o a pk i t ,w h i c hh a ss u c c e s s f u l l ym a k et h et r a n s i t i o nf r o mt h e o p cd a si n t e r f a c eb a s e do nt h ec o m t e c h n o l o g yt ot h ew e bs e r v i c e sf u n c t i o n a l i t y b a s e do nt h ex m l & s o a pt e c h n o l o g y t h ee x p e r i m e n te x e c u t e do nt w oc o m p u t e r s d e p l o y e di nd i f f e r e n tn e t w o r k sj u s t i f i e st h eh i l g he f f i c i e n c ya n df e a s i b i l i t yo f t h eo p c x m l - d as e r v e ri nt h ec o m m u n i c a t i o n k e yw o r d s :o p ct e c h n o l o g y , g s o a pk i t ,x m l & s o a pt e c h n o l o g y 。1 1 。l 一2 。3 1 2基于w e b 服务的o p c 技术的优势3 1 3 论文的主要工作及主要技术难点4 1 3 1论文的主要工作4 1 3 2主要技术难点5 1 4 小结5 第二章 o p cx m l 技术的基础w 曲服务技术6 2 1 w 曲服务技术的简介一6 2 1 1w 曲服务概念6 2 1 2w 曲服务数据7 2 1 3w 曲服务描述8 2 1 4w e b 服务活动与通信1o 2 2 g s o a p _ j w 曲服务开发工具包简介1 1 2 2 1 g s o a p 简介11 2 2 2 g s o a p 下载和安装1 2 2 2 3 g s o a pj 立用1 2 2 3 小结l3 第三章 o p cx m l 数据访问规范的研究1 5 3 1 o p c 规范基础一15 3 2o p cx m l 数据访问规范基础1 6 3 2 1o p cx m l 数据访问规范总体分析1 6 3 2 2o p cx m l 数据访问规范的基础信息1 8 3 3 o p cx m l 数据访问服务器的对象与w e b 服务接口函数分析1 9 3 3 1o p cx m l 数据访问服务器对象和服务函数1 9 3 3 2o p cx m l 数据访问服务器的项对象介绍2 l 3 4 j 、结2 4 第四章o p cx m l 数据访问服务器的开发与测试2 5 4 1设计基础2 5 4 2o p cx m l 数据访问服务器的设计2 7 4 2 1 准备工作。2 7 。2 8 2 9 3 3 3 9 4 5 4 5 5l 5 3 。5 3 5 3 在学习期间发表论文和参加科研情况5 7 i i 华北电力大学硕士学位论文 第一章引言 在工业生产的控制领域当中,由于工业自动化系统在不断地被广泛应用,其系 统的集成度也变得越来越高。随着计算机,微电子,通信和网络技术的发展,新的 过程控制信息体系形成,已经形成了由低层到上层依次为现场智能控制层,工业过 程管理层和经营决策层的体系结构。同时,目前工业现场中可以采用的仪器仪表种 类十分丰富,工业控制过程越来越复杂,控制系统也逐渐与商业系统结合到一起。 随着监视和控制生产过程的d c s 和s c a d a 系统的使用,以往由手工采集的数据变成 自动采集。将现场的数据进一步分析与处理,为与之相关的各种经营销售提供数据 也成为可能。因此提供了以前无法得到的大量信息,各个层次的集成使得每个层次 的信息传递变得非常必要。 1 1 课题研究的背景及意义 1 1 1软件技术瓶颈对控制系统的影响 如图1 1 所示,在传统的控制系统中,智能设备之间及智能设备与控制系统软 件之间的信息共享是通过驱动程序来实现的,不同厂家的设备又使用不同的驱动程 序,迫使工业控制软件中包含了越来越多的底层通信模块。另外,由于不具备开放 性,相对特定应用的驱动程序一般不支持硬件特点的变化,这样使得工业控制软硬 件的更新、扩展、升级极其不便,增加了系统维护的难度。还有,当大量现场信息 由智能仪表直接进入监控计算机或通过现场总线传至监控计算机后,一方面存在着 计算机内部应用程序对现场信息的共享与交互问题,在同一时刻,两个客户应用一 般不能对同一个设备进行数据读写,因为它们拥有不同的、相互独立的驱动程序, 同时对同一个设备进行操作,可能会引起存取冲突,甚至直接导致出现系统崩溃的 现象【1 1 。 图1 1传统应用软件与设备之间关联方式 l 华北电力人学硕十学位论文 同时,传统的控制系统在开发中还存在的另一个主要问题是软件的重复开发、 软件重用性不强、资源不能共享,因而造成了大量人力物力资源的浪费。虽然随着 计算机软件的不断发展,这种情况有所改观。高级语言中库函数的采用,实现了一 定程度上资源的共享【2 】。但这些重用只是对源代码级的重用而不是对可执行文件级 的重用,对每一类库都要重新编译,所以并没有真正实现资源共享,并且对某个模 块中某个类库的修改将引起所有引用该类库的模块的修改,因此非常难以实现某个 模块的升级。同时,为一种语言开发的类库以及函数库都不能够为其他语言所用, 也大大限制了软件的重用性。并且由于各家工业控制软件缺乏统一的工业标准,企 业内部现场控制层、生产管理层和经营管理层的应用软件之间的数据也难以共享与 交互,这就形成了“信息孤岛 现象。 1 1 2o p c 技术产生的必要性 针对传统控制系统所体现出来的诸多问题,o p c 基金会制定了一套标准的o p c 规范【”,旨在通过规范过程控制和生产自动化软件与用o p c 服务器实现的硬件驱动 程序之间的接口,提供了过程管理应用与现场自动化控制系统以及设备进行数据通 信的一种标准机制如图1 2 所示。 图1 2o p c 服务器与客户端之间关联方式 通过图1 1 和图1 2 的比较说明了0 p c 技术应用前后的软件结构框图的变化, 从中可以看到0 p c 技术的优势。 o p c 规范所使用的是用于过程控制的对象连接与嵌入式技术即o l e ,其所提出 的实现方案都基于微软提供的组件模型和分布式组件模型( c o m d c o m ) 技术,这 项技术为工业控制软件定义了一套标准的对象、接口和属性。通过这些对象接口, 在基于w i n d o w s 操作系统的企业级局域网中保证了不同厂商的应用软件之间能够无 缝地集成在一起,实现了应用程序之间数据交换方式的标准化,极大的提高了自动 化系统、现场设备系统、商业办公系统之间的互操作性,使软件层不再依赖具体的 硬件设备层,大大简化了控制系统的开发【4 】。实现数据的灵活配置和多种控制系统 的真正集成。 2 华北电力人学硕士学位论文 因此,o p c 技术可以称之为“软件总线 ,应用程序只要知道访问o p c 数据源的 方式,遵循o p c 数据接口协议,从而就使其实现可以变得容易、通用以及减小。o p c 技术最主要的目标就是实现灵活、高效、方便地获取设备数据,易于掌握和实施, 能够达到即插即用的效果。 1 1 3o p c 技术的国内外发展概况 制定o p c 规范的组织一一o p c 基金会是一个独立的、非盈利的国际组织,由微 软倡导成立,到2 0 0 3 年8 月,其成员数已经有5 0 0 多家。包括了世界上大多数知名的 设备制造厂家和工业控制软件供应商,如r o c k w e l l 、h o n e y w e l l 、i n t o l l u t i o n 、 w o n d e r w a r e 、f a c t o r y s o f t 等等。有3 0 0 0 多种o p c 产品通过了o p c 论证。o p c 基金会 建立了欧洲、日本、中国等三个分支机构。o p c 中国基金会的宗旨是在中国推广o p c , 以消除与其它发达国家的信息差距,针对中国市场建立相应的市场体系、提供培训、 信息以及汇展,以本地化的形式加强与o p c 基金会的联系。 o p c 规范一直在不断地发展、升级和增加新的功能。基金会己经陆续公布的规 范包括:o p cd a ( 数据访问) 、o p ch d a ( 历史数据访问) 、o p ca e ( 报警与事件) 、 o p cb a t c h ( 批处理) 、o p cs e c u r i t y ( 安全性) 、o p cx m l d a ( x m l 数据访问) 、 o p cd x ( 复杂数据交换) 和o p cu a ( 统一架构) 与此同时,技术也向中间件和组 件化方向发展。 o p cx m l 技术作为一项工业标准近两年在国内外得到了广泛的关注,不少高 校、研究机构和制造厂商都展开了对o p cx m l 技术的研究和应用。一些公司如 a d v o s o l 公司开发了x m l d ar a p i ds e r v e rt o o l k i t s 系列快速开发工具包。国内虽然还 没有较为成熟的开发工具包,但是一些国内工控软件公司也开始利用o p cx m l 技术 来为生产加工企业信息化进行高层信息集成。基于o p cx m l 技术的工业控制智能化 系统集成应用在国内外都处于起步阶段,基于o p c 、工业以太网和w 曲服务技术的 工业控制智能化系统集成是一个必然趋势【5 】。 1 2 基于w e b 服务的o p c 技术的优势 但是我们知道,目前各种生产或是商业数据信息的交互已经由企业级的局域网 逐渐扩展到全球范围内的互联网上,这就要求我们的应用程序能够具有良好的稳定 的跨平台以及在互联网上的通信能力。但是以d c o m 技术为基础的分布式o p c 服务 器,还是遵从w i n d o w sd n a 体系的分布式应用,将应用程序功能分布到整个网络上。 由于其构造于r p c 体系结构的最顶层,也因此继承了r p c 的一些缺陷j 。 第一个缺陷就是:r p c 和d c o m 都更适用于i n t r a n e t 而不是i n t e r n e t 。r p c 和 3 华北电力人学硕士学位论文 d c o m 所要求的端口在防火墙内部,由于开发者不可能够拥有全球所有i n t e r n e t ) 艮务 器的权限,因此不可能将所要用到得端口打开。这将使得在对于通过i n t e r n e t 进行信 息传输的时候,一些正常的数据信息被防火墙给强行过滤掉,从而造成有效数据的 丢失。 第二个缺陷是使用c o m d c o m 需要注册或者发布,这会对于处在不同广域网上 的客户端应用程序产生很大的影响,它不一定能够顺利的在互联网中查找到在某个 局域网中所要访问的已注册服务器。 第三个缺陷是c o m d c o m 是平台相关的,其只能基于w i n d o w s 平台。这让许 多应用程序只能选择w i n d o w s 作为其生存平台。 针对于上述这些由c o m d c o m 技术所产生的缺陷,o p t 基金会于2 0 0 3 年7 月发 布了一个o p cx m l 数据访问1 0 l 规范作为解决方案弥补了上述在互联网中所暴露 出来的缺陷。这项规范通过采用基于x m l 的w e b 服务概念,用s o a p ( 简单对象访 问协议) 作为对应用程序共享消息进行包装的标准协议,使用w s d l ( w e b 服务描述 语言) 对w e b 服务进行描述。其定义了一组通过互联网访问工厂现场数据的工业标 准接口,并提供即插即用的可连接性和多个厂商产品的互操作性等功能,降低了企 业信息与互联网应用集成的难度,同时也使o p c 由基于单一的w i n d o w s 操作系统 向跨平台的应用迈出了一步【7 】- 【引。 1 3 论文的主要工作及主要技术难点 1 3 1论文的主要工作 为了能够根据o p cx m l 数据访问规范实现出一个o p cx m l 数据访问服务器, 本文从o p c 数据访问服务器的架构设计思路出发,结合其它相关资料进行详细的分 析。决定在o p c 数据访问服务器的基础上通过使用g s o a p 开发包提供的相关功能和 应用函数设计一个基于w e b 技术的服务器网关作为外包,外包下层的o p c 数据访问 服务器,达到实现o p cx m l 数据访问服务器的目的。并将所实现的网关进行进一步 的性能优化改进,提高o p cx m l 数据访问服务器的可行性和高效性。因此需要完成 以下工作: ( 1 ) 充分的学习c o m 技术的基本原理,了解c o m 技术的接口实现以及对象创建和 访问机制。同时深入的了解x m l 和s o a p 协议相关的知识点,学习w e b 技术开 发的手段,为开发工作做技术支持的准备。并且仔细分析已有的o p c 数据访 问服务器的架构设计原理以及实现方式,为o p cx m l 数据访问服务器的架构 设计以及相应的开发提供一定的思路。 ( 2 ) 利用第三方开源开发软件g s o a p ,实现一个能够基于w e b 技术在互联网上通信 4 华北电力人学硕士学位论文 服务器网关模块,将下层的o p c 数据访问服务器外包在这个模块下,将o p c 数据访问服务器升级为所要实现的o p cx m l 数据访问服务器。 ( 3 ) 对于已实现了基本功能的o p cx m l 数据访问服务器的基础上,再对其一定方 面的性能进行相应的改进优化。 1 3 2主要技术难点 首先,本课题的难点是对于o p cx m l 数据访问规范提出的新订阅方式的设计。 传统的o p c 服务器是基于c o m 技术,因此其订阅可以通过异步调用的方式来实现。 但是对于基于w e b 技术的o p c 服务器,:其与客户端之闻的订阅是处于一种松散耦合 状态,因此不能使用异步调用的实现方案。如何设计这种新的订阅成为了该服务器 实现当中的关键环节。 再者,是在服务器中设计一个通信模块使其能够按照s o a p 协议和x m l 将对外 所要发送或是接受的数据信息进行序列化或是反序列化,并监听网络上的请求。 1 4 小结 本章简要介绍了课题的研究背景和意义,并简述了国内外的研究动态,及对相 关文献做了简单的综述,在分析已有的o p c 数据访问服务器的基础上,提出了课题 设计方案,并探讨了课题的主要工作和可能遇到的难点。 s 华北电力人学硕十学位论文 第二章o p cx m l 技术的基础_ w e b 服务技术 2 1w e b 服务技术的简介 2 1 1w r e b 服务概念 w e b 服务是一项通过公共网络或者是私人网络进行访问的服务,它所提供的功 能可以由其他w e b 服务或许和应用程序使用w e b 服务是基于x m l 的,x m l 可以描 述服务以及与服务进行的通信w e b 服务通常把i t f t p 作为其应用程序的通信协议, 但是在将来的发展趋势中是会通过许多像s m t p 这样的协议来利用w e b 服务。采用这 些基本的标准后,就可以使用任何一种语言来编写w 曲服务,在任何平台以及任何 地理位置都可以和其他的w 曲服务进行通信访问。同时w 曲服务是基于开放标准的, 因此其通过一个人h t t p 端口,即端口8 0 ,在安全的环境下,这就基本上允许大量的 数据通过所有的防火墙,在企业之问进行通信,且不产生大的安全漏洞。 2 1 1 1w 曲服务工作机制 在w 曲服务中其底层的所有东西都使用用于i n t e r n e t 通信的主协议,即超文本传 输协议。在大多数情况下,该协议用于w e b 服务通信的传输协议。w e b 服务通信的 基本原理如图2 1 所示。 图2 1服务器与客户端通信过程 、 在i n t e r n e t 连接的前提下,w e b 客户端向服务器发出请求,然后服务器接收到请 求后进行响应,并将相关的数据信息传送到客户端,客户端接收到服务器传递过来 的数据信息后进行解析并将其显示出来。其工作步骤如下: 6 华北电力大学硕士学位论文 1 连接:w e b 客户端与w e b 服务器连接。打开一个s o c k e t 的虚拟文件,这个文件将 说明客户端与服务器之间的链接是否成功。 2 请求:w e b 客户端通过s o c k e t 和h t t p 协议向w e b 服务器提交相应的请求。 3 响应:w e b 服务器接收到客户端提交过来的请求后进行相应事物的处理,在处理 结束后将结果返回给w e b 客户端。 4 关闭连接:在w e b 服务器响应完成后,w e b 客户端和w e b 服务器之间的链接必须 断开,保证其它的w e b 服务连接不受到阻碍。 w e b 服务通信可以是单向的,即客户发出请求,但不等待响应。也可以使用w e b 服务启动对话框进行通信,该对话框可以实现单向或是双向通信 2 1 1 2w e b 服务标准 用于数据交换的与平台无关的数据格式,一般使用可扩展标记语言,即x m l 。 描述数据结构的方式:x m l 数据结构是利用x m l 架构确定的。 封装数据的标准方法:一般使用s o a p 协议将x m l 数据直接打包到s o a p 文档中, 再封装到h t t p 消息中。 w e b 服务描述其自身的方式、w 曲服务所能完成的操作以及客户需要的数据结 构,w 曲服务通过w 曲服务描述语言来描述。 框架,该框架用于通过w e b 服务的功能或描述,利用程序确定w e b 服务的位置。 一般利用通用的描述、发现和集成,o j u d d i ,来发现w 曲服务【9 】。 2 1 2w r e b 服务数据 2 1 2 1 x m l 概念 x m l 是e x t e n s i b l em a r k u pl a n g u a g e ) 即可扩展标记语言,它与h t m l 一样,都 是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ,标准通用标记语言) 【1 0 】。其是一种纯 文本格式的文件,用来以结构化的方式存储数据。这种语言具有可移植性和可读性 的优点,使得能够处理纯文本的任何设备均可以使用存储在x m l 文件中的数据。 x m l 是一种标记语言,这种标记只是表示在文本中放入标记符号以注释文本。w 3 c 公布的x m l 规范定义了具体的标记方式,说明了如何将标记符号放入文本体内。使 用x m l 文件的应用程序可以发出各种请求,此时需要在整个x m l 文件中对所标记符 号进行搜索,并提取所标记的文本。因为x m l 是可以扩展的,因此使用者可以创建 自己所需要的标记,并根据需要将数据指定为相应的含义。 2 1 2 2 l 文档 x m l 文件主要由两个部分组成,一个是文档序言,另一个是文档主体。其中文 档序言规定了与文件中的数据有关的关键属性与元数据。在文档序言中,通常首先 7 华北电力人学硕十学位论文 是说明本文件时x m l 文件的声明,然后是与文档对应的x m l 版本以及使用的符号编 码。通常使用下面的文本。 文档主体主要用于包含数据,是进行实际操作的地方。文档主体中放有由标记信息 标记的数据文档主体主要由两个重要的结构构成:元素和属性。元素是x m l 中用 于标记文本的基本构件。元素由起始标记和结束标记构成,元素的内容位于这两个 标记之间。同时元素有各自的元素名,用于确定起始标记和结束标记。属性一般用 于说明与元素中包含的数据相关的信息或说明元素本身的特征。属性放在起始标记 内,每个属性由属性名和属性值组成,其中属性值必须位于两个引号之间。 2 1 2 3x m l 架梅 x m l 架构是向x m l 文档添加结构和上下文关系的方法。其规范包含了结构和数 据类型两个部分。结构部分是用来描述如何通过架构来提供x m l 文档必须遵循的结 构。数据类型部分是用来描述数据内容如何通过类型来定义数据的。在x m l 架构中 主要利用类型来定义元素和属性。一般有两种类型用来实现此目的i io j : 简单类型:用于定义没有属性或是子元素的元素,或者用于定义属性。 复杂类型:用于定义有属性和子元素的元素。 当定义元素或属性时,要将它们与确定它们要包含的内容类型相关联。对属性 而言,类型通常是在架构规范的第二部分中定义的基本类型之一( 例女1 1 s t r i n g ,i n t , c h a r 等这样的基本类型) ,或者是更为复杂的用户定义类型( 例如社会安全性系数或 者具有定义良好结构的类型) 。对于元素而言,使用的类型可以与属性使用的类型 相同,但也可以使用诸如定义可包含什么样的子元素、元素是否可以包含文本这样 的类型。可以在任何地方定义更为复杂的类型,并且通过名称来引用他们。 2 1 2 4 命名空间 命名空间是将名称集与u r i 建立关联。目的是为了在充满了元素和属性名称的 x m l 文档中,将某一个x m l 文档中的名称与其它的x m l 文档中的名称相区分。因 此通过建立了上述的关联,就可以百分之一百的保证不会引起名称冲突。目前来说 有两种机制能够实现此目的。一种是关联整个元素树;另一种是用命名空间u r i 来 关联名称的前缀。如果是关联整个文档,则文档中的所有名称均来自于指定的命名 空间。如果只关联前缀,则可以从不同的命名空间中混合、匹配名称。在x m l 命名 空间规范中定义了x m l n s 属性,以此将命名空间与文档和前缀相关联。 3 华北电力大学硕十学位论文 2 1 3w 曲服务描述 2 1 3 1w s d l 概念 w e b 服务描述的主要是由w s d l 即服务描述语言( w e bs e r v i c ed e s c r i p t i o n l a n g u a g e ) 来实现的,这种描述语言是一种为w e b 服务描述公共接口的x m l 语法, 通过它可以来指定服务的公共方法和参数,以及在服务中所要使用的数据类型和使 用顺序。这种w s d l 文件可以约定服务提供者和服务客户端之间进行消息交换的格 式。因此w s d l 文件可以公开发布,由希望利用w e b 服务的客户读取,该客户就知 道与服务进行通信时需要使用的传递信息以及返回响应的格式。 w s d l 就是向客户完整的描述w e b 服务。在理论上定义每一个操作和过程,绑 定相应的传输协议,并定义消息的格式。其关键是采用了x m l 模式标准来描述消息。 它提供了一种语言独立的方式,为w 曲服务提供了有关参数及返回值的强类型信息。 w s d l 文档主要完成以下工作【l l 】: 定义各种操作需要且由w 曲服务支持的类型。 用这些类型构建必须由这些操作使用的消息。 将这些消息与具体的操作相关联,该关联只适合用于访问w 曲服务的方法。 将这些操作与端点绑定,以确定使用这些操作所需要的数据格式以及必须定位 的端点地址。 2 1 3 2w s d l 文档结构 w s d l 文档是一个遵循w s d lx m l 模式的x m l 文档( 文档实例) ,一个w s d l 文档的根元素是 元素,w s d l 文档包含7 个重要的元素: 、 、 、 、 、 和 元素。 元素是来自命名空间h t t p :s c h e m a s x m l s o a p o r g w s d l ,它构成了 w s d l 文档的基本结构。 元素定义了在数据传输中使用的类型,定义了自定义的特殊数据类型, 在声明消息部分( 有效负载) 的时候,m e s s a g e s 定义使用t 元素中定义的数 据类型与元素。 元素可以让当前的文档使用其他w s d l 文档中指定命名空间中的定 义。w s d l 的i m p o r t 元素必须声明两个属性,即n a m e s p a e e 属性和l o c a t i o n 属性, n a m e s p a c e 属性必须和正导入的w s d l 文档中声明的所定义的命名空间名相匹配, l o c a t i o n 属性必须指向一个实际的w s d l 文档。 元素定义了w e b 服务的抽象接口相当于类接口的名称,它可以由一 个或者多个 元素,每个 元素定义了一个r p c 样式或者文档样 式的w 曲服务方法。 9 华北电力人学硕:卜学位论文 元素作用相当于接口中包含的函数,要用一个或者多个m e s s a g e s 消 息来定义它的输入、输出以及错误其中在元素中i n p u t 表示传递到w e b 服务的有效 负载;o u t p u t 表示返回给客户的有效负载;可以不包括,也可以包括一个或者多个f a u l t 错误消息。p a r a m e t e t ) r d e r 定义了i n p u t 和o u t p u t 消息采用的正确的顺序。使用 p a r a m e t e r o r d e r 的时候,必须包含所有输入参数部分;并且只包含不是返回类型的输 出部分,如果o u t p u t 只有一个p a r t ,会假设返回值,所以不包括在p a r a m e t e r o r d e r 中。 如果p a r a m e t e r o r d e r 歹0 出o u t p u t 中的p a r t 部分,那么这个将被作为o u t 参数,如果i n p u t 元素和o u t p u t :元素使用相同的名称声明了一个部分的时候,此部分为i n o u t 参数。 元素作用相当于函数调用中的参数和返回值,描述了w 曲服务的有效 负载。w e b 服务中的输入和输出参数可以是多个,对于r p c 样式的w 曲服务必须使 用t y p e 来定义类型。r p c 样式用类型来数据定义过程调用,调用中的每一个元素表 示某一个类型的参数。 元素将一个抽象的 元素映射到一组具体的协议( s o a p 或者 h t t p ) 、消息传递样式( r p c 或者d o c u m e n t ) 以及编码样式( 1 i t e r a l 或者s o a p e n c o d i n g ) 。 元素包含一个或者多个p o r t 元素,每一个p o r t 元素对应一个不同的w e b 服务,p o r t 将一个u r l 赋予一个特定的b i n d i n g 并通过l o c a t i o n 实现。 2 1 3 3w s d l 消息交换模式( m e p ) w 曲服务中使用了四种消息交换模式,即请求响应、单向、通知以及恳求响应 模式。大多数基于w s d l 的w e b 服务使用请求响应和单向两种模式。 w s d l 通过o p e r a t i o n 元素的i n p u t o u t p u t 来定义使用那种模式,如果有输入参数、 输出参数以及可选的f a u l t 参数,那就使用请求响应模式;如果只使用i n p u t ,那就使 用单向模式。 在通知模式中:w 曲服务将消息发送给客户,但不等待回复;一般客户通过注 册来接收通知;在恳求响应模式中类似通知模式,唯一的区别要期待客户对w e b 服 务的响应。 2 1 4w | e b 服务活动与通信 在w 曲服务规范中一般是通过使用s o a p 协议作为数据交换时使用的传输机制, 这种传输协议是通过h t t p 访问w e b 服务的最常用的技术,是用于交换数据的轻量级 x m l 格式【1 2 1 。 2 1 4 1s o a p 协议概念 s o a p 是一个应用程序级的协议,它利用x m l 和h t t p 或是h t t p s ( 也可以利用 1 0 华北电力大学硕士学位论文 其他像s m t p 之类的通信协议) 协议支持分布式应用程序通过远程调用来传递信息 s o a p 协议的最顶层是以x m l 格式描述的,一般在s o a p 请求中有两种场合利用 x m l 进行信息的传递f h 】。 s o a p 调用中所使用的方法和参数在s o a p 消息正文中是以x m l 格式描述的,响 应也在这里描述。 模版s o a p 元素几乎在每一个s o a p 调用中都会出现,他包装了上面讨论的方法 和参数。 s o a p 套封命名空间和每一个s o a p 消息一起定义,利用e n v e l o p e 根元素定义 s o a p 消息,并封装消息正文,消息正文是在b o d y 元素中定义的。b o d y 元素和 e n v e l o p e 元素出在同一个命名空间中。s o a p 包括三个部分: s o a p 封装:它定义了一个框架,该框架描述了消息中的内容是什么,谁应当 处理以及它是可选的还是必须的。 s o a p 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数 据类型的实例。 s o a pr p c 表示:它定义了用于表示远程过程调用和虑答的协定。 2 1 4 2s o a p 协议工作机制 s o a p 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行 类似于请求应答的模式。所有的s o a p 消息都使用x m l 编码。一条s o a p 消 息就是一个包含有一个必需的s o a p 的封装包,一个可选的s o a p 标头和一个必 需的s o a p 体块的x m l 文档。 把s o a p 绑定到h t t p 提供了同时利用s o a p 的样式和分散的灵活性的特 点以及h t t p 的丰富的特征库的优点。在h t t p 上传送s o a p 并不是说s o a p 会覆盖现有的h t t p 语义,而是h t t p 上的s o a p 语义会自然的映射到h t t p 语义。在使用h t t p 作为协议绑定的场合中,r p c 请求映射到h t t p 请求上, 而r p c 应答映射到h t t p 应答。然而,在r p c 上使用s o a p 并不仅限于h t t p 协议绑定。s o a p 也可以绑定n t c p 和u d p 协议上。 2 2 g s o a p _ w r e b 服务开发工具包简介 2 2 1 g s o a p 简介 g s o a p 是一个编译工具,它提供了一个s o a p x m l 关于c c + + 语言的实现, 从而让c c + + 语言开发w e b 服务或客户端程序的工作变得轻松了很多。g s o a p 利用编 译器技术提供了一组透明化的s o a pa p i ,并将与开发无关的s o a p 实现细节相关的 华北电力人。硕十学位论文 内容对用户隐藏起来。g s o a p 的编译器能够自动的将用户定义的本地化的c 或c + + 数据类型转变为符合x m l 语法的数据结构,反之亦然这样,只用一组简单的a p i 就将用户从s o a p 细节实现工作中解脱了出来,可以专注与应用程序逻辑的实现工 作了【1 4 】g s o a p 编译器可以集成c c + + 和f o r t r a n 代码( 通过一个f o r t r a n 到c 的接 口) ,嵌入式系统,其他s o a p 程序提供的实时软件的资源和信息;可以跨越多个操 作系统,语言环境以及在防火墙后的不同组织。 2 2 2 g s o a p 下载和安装 从h t t p :s o u r c e f o r g e n e t p r o j e c t s g s o a p 2 下载g s o a p 玉缩包的最新版本。然后解压 到一个本机中指定目录盘即可。比如解压到“e :g s o a p _ 2 7 1 0 ”,为以后使用方便, 在机器的环境变量里可以设置一下p a t h = 。e :g s o a p _ 2 7 1 0 g s o a p b i n w i n 3 2 。设 置这个变量后,就可以在本机的任何地方使用w s d l 2 h 和s o a p c p p 2 来产生我们所需要 的类文件。 2 2 3 g s o a p 应用 2 2 3 1w s d l 2 h 解析器工具使用 g s o a p 软件中的w s d l 2 h 解析器工具的主要功能是将输入的w s d l 或是x m l 架构 的文件进行解析并自动的生成一个g s o a p 的头文件,这个头文件主要是用c 或是c + + 语法描述相关的w 曲服务操作以及和w 曲服务相应的c c + + 的数据类型。 在w i n d o w s 操作平台下对于w s d l 2 h 解析器的使用一般都是通过在c m d 中输入相 应的命令行,具体如下: w s d l 2 h oo p c x m l d a s e r v e r hh t t p :o p c f o u n d a t i o n o r g w e b s e r v i c e s x m l d a 1 o 其中“0 参数后面跟文件名用来指定所生成的g s o a p 头文件的输出目标文件, 其后面的u r l 表示的是所要解析的w s d l 文档在网络上的具体地址。该解析器会根 据开发者所提供的这项u r l 地址自动的连上网络并访问相应的w s d l 文档将其进行 解析。但是在本次开发中由于o p cx m l 数据访问规范所提供的w s d l 文档没有能够 对于a n y t y p e 数据类型进行很好的描述,因此在本次开发中需要对于这个描述文档进 行相应的改动,在规范所提供的w s d l 文档中一些缺少具体数据类型定义的属性或 是元素要将其自定义为a n y t y p e 数据类型,并且自己对其生成一个相应的w s d l 文 档。同时对于操作w s a i 2 b 解析器的命令行应改为: w s d l 2 h - oo p c x m l d a s e r v e r ho p c x m l d a w s d l 在w s d l 2 h 解析器中还通过使用t y p e m a p d a t 文件将自定义的x m l 模式同c c + + 数 据类型进行绑定,在一般缺省情况下,解析器都使用的是内部已定义好的t y p e m a p d a t 文件。在本次设计中为了能方便对于时间类型数据的操作,因此将x m l 模式中的 1 2 华北电力人学硕士学位论文 x s d _ _ t i m e 同c + + 中的t m 数据类型进行了绑定。t y p e m a p d a t 文件中具体的内容是: x s d d a t e t i m c = # i m p o r t 什c u s t o m s t r u c t 缸n h 什lx s dd a t e t i m e ;w s d l 2 h 解析器的命令 行为: + w s d l 2 h - tt y p e m a p d a t - oo l 托x m l d a s e r v e r ho l c x m l d a w s d l 因为在本次设计中将机器的环境变量设置为p a t h = “e :g s o a p _ 2 7 1 0 g s o a p b i n w i n 3 2 。所以所有的文件前面不用添加具体的地址,解 析器会自动的将文件生成到这个地址下或是在这个地址下找到所需要的文件。 w s d l 2 h 解析器在命令行中的可选参数有2 8 个,但其中有4 个参数具有很重要的作 用具体介绍如下: , ( 1 ) nl t a m e i 使用自定义好的基本命名空间前缀名来替代原来内部缺省指定 的“一命名空闻前缀名。 ( 2 ) - p :用具有c + + 类继承特性的基本x s d - a n y t y p e 层次结构数据类型创建多 型性数据类型。只要在w s d l 文档中包含了多型性数据类型的定义,这 种数据类型将会自动被生成。 ( 3 ) s :不生成处理s t l 的相关代码( 即没有s t d :s t r i n g 和s t d :v e c t o r ) 。 ( 4 ) tf i l e :是用自定义的类型定义表来替代内部缺省情况下定义的类型定义 表( t y p e m a p d a t ) 。 2 2 3 2 s o a p c p p 2 代理存根编译器使用 g s o a p 软件中的s o a p c p p 2 代理存根编译器工具的主要功能是用来通过对于 w s d l 2 h 解析器所生成的g s o a p 头文件进行编译,从而生成相应的为处理相关数据类型 的x m l 序列化代码头文件和源文件( s o a p h h 和s o a p c c p p ) ,处理客户端存根的 x m l 序列化代码的源文件( s o a p c l i e n t c p p ) ,处理服务器端代理的x m l 序列化代码 的源文件( s o a p s e r v e r c p p ) 以及一个n s m a p 类型的文件。这个n s m a p 类型的文件包含 一个在客户服务端源码中使用的命名空间映射表,其主要作用是为每一个命名空间 前缀定义一个具体描述,方便在远程调用中对于各种数据类型或是方法的具体定 位。 在w i n d o w s 操作平台下对于s o a p c p p 2 代理存根编译器和上面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年鼻窦炎护理宣讲病例分享
- 2026 年药物过敏性休克急救流程护理实操课
- 品质培训相关试题及解答
- 2026年70岁驾驶证年审三力能力测试题附答案
- 2026年城市公共安全设施建设与运营方案
- 2026年度全国保密教育线上培训试题(含答案)
- 南通遴选常见试题及完整答案
- 2026年企业员工招聘渠道反馈策略方案
- 2026年育婴员考试备考冲刺模拟试卷含答案解析
- 2026年初中历史真题试卷真题解析
- 耕地保护三级责任书
- 院前急救诊疗常规和技术操作规范(2025 年版)
- 小儿孤独症谱系障碍诊疗指南(2025年版)
- 2026年北京市劳动合同范本三篇
- 2026年GCP复习提分资料附完整答案详解(名校卷)
- 2026年水利机械运行维护工试卷【考点梳理】附答案详解
- 石油化工工程建设费用定额(2025版)
- 2026届山东省济宁市实验中学高三上学期开学考试数学试卷
- 推拿基本手法
- 认识有机化合物课件2025-2026学年高一下学期化学人教版必修第二册
- 2026年河北唐山市高三一模高考英语试卷试题(含答案详解)
评论
0/150
提交评论