(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf_第1页
(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf_第2页
(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf_第3页
(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf_第4页
(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(控制科学与工程专业论文)基于web+service的bs架构在仿真培训中的应用.pdf.pdf 免费下载

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

文档简介

摘要 基于w e bs e r v i c e 的b s 架构在仿真培训系统中的应用 摘要 在仿真培训领域,基于w e b 的仿真培训系统越来越成为主流和 发展方向。本文通过研究如何基于w e bs e r v i c e ( 网络服务) 构建仿 真培训系统,主要研究了b s ( 浏览器服务器) 架构仿真培训系统的构 建方法;解决了同类系统模型服务器依赖性高,难以向其他语言开发 平台移植的难点。 课题使用主流的c 撑语言开发,使用微软的n e tf r a m e w o r k 开发 平台实现。使用微软的w e bs e r v i c e 应用解决方案构建模型服务器。 同时,在v s 2 0 0 5 开发软件中,基于n e t 平台编写w e b 版的学员站和 教师站。 本文实现了完全的b s ( 浏览器朋艮务器) 架构的仿真培训系统, 使得仿真培训系统摆脱了平台限制,符合了目前主流的发展趋势;另 一方面利用w e bs e r v i c e 技术的语言无关性的优势,使得课题构建的 系统拥有了模型服务器依赖性低,便于二次开发,可以向多种开发平 台移植的优点。 通过本课题的研究实践,验证了基于w e bs e r v i c e 开发仿真培训 系统的可行性。使用这种开发方式,将可以大大减少开发成本,减低 移植难度,为以后同类系统的开发提供了一种新的思路。 北京化工大学硕士学位论文 关键词:w e bs e r v i c e ,仿真培训,浏览器n 务器模式 a b s t r a c t s i m u l a t i o nt r a i n i n gs y s t e mb a s eo nw e b s e r v i c e a b s t r a c t w i t hi nt h ef i e l do fs i m u l a t i o nt r a i n i n g ,w e b - b a s e ds i m u l a t i o n t r a i n i n gs y s t e mi si n c r e a s i n g l yb e c o m i n gm a i n s t r e a ma n dd i r e c t i o no f d e v e l o p m e n t i nt h i sp a p e r , h o w b a s e dw e bs e r v i c e ( n e t w o r ks e r v i c e ) b u i l d i n gs i m u l a t i o nt r a i n i n gs y s t e m ,am a j o rs t u d yb s ( b r o w s e r s e r v e r ) a r c h i t e c t u r es i m u l a t i o nt r a i n i n gs y s t e m , t h ep r o b l e mo fh i g hd e p e n d e n c y s i m il a rm o d e ls e r v e r , i ti sd i f f i c u l tt oo t h e rl a n g u a g e sd e v el o p m e n t p l a t f o r mt r a n s p l a n t a t i o nd i f f i c u l t s u b j e c tu s i n g t h em a i n s t r e a mc 拌l a n g u a g ed e v e l o p m e n t ,u s i n g m i c r o s o f t sn e tf r a m e w o r kd e v e l o p m e n tp l a t f o r m u s i n gm i c r o s o f t s w e bs e r v i c ea p p l i c a t i o ns o l u t i o n sb u i l tm o d e ls e r v e r m e a n w h i l e ,i n v s 2 0 0 5t od e v e l o ps o f t w a r e ,b a s e do n n e tp l a t f o r mf o rw e bv e r s i o n p r e p a r e db ys t u d e n t sa n dt e a c h e r ss t a n dp o i n t t h i sa c h i e v e d c o m p l e t e b s ( b r o w s e r s e r v e r ) a r c h i t e c t u r e s i m u l a t i o nt r a i n i n gs y s t e m , t h es i m u l a t i o nt r a i n i n gs y s t e mo u to ft h e p l a t f o r ml i m i t a t i o n s ,c o n s i s t e n tw i t ht h ec u r r e n tm a i n s t r e a mt r e n d s ;t h e o t h e rh a n d ,u s i n gw e bs e r v i c et e c h n o l o g y , t h ea d v a n t a g e so fl a n g u a g e l l i 北京化工大学硕士学位论文 i n d e p e n d e n c es ot h a ts u b j e c t sc o n s t r u c t e dt h em o d e ls e r v e rs y s t e mh a sa l o w d e p e n d e n c e ,f a c i l i t a t e t h e s e c o n d a r yd e v e l o p m e n t ,c a n b e t r a n s p l a n t e dt ot h ea d v a n t a g eo fav a r i e t yo fd e v e l o p m e n tp l a t f o r m s t h r o u g hr e s e a r c ho ft h i st o p i ci np r a c t i c ea n dd e v e l o p m e n to fw e b s e r v i c e b a s e ds i m u l a t i o n t r a i n i n gs y s t e m i s f e a s i b l e u s i n g t h i s d e v e l o p m e n ta p p r o a c hw i l lg r e a t l yr e d u c ed e v e l o p m e n tc o s t s ,r e d u c e t r a n s p l a n td i f f i c u l t y f o rt h ef u t u r e d e v e l o p m e n to fs i m i l a rs y s t e m s p r o v i d e san e ww a yo ft h i n k i n g k e yw o r d s :w e b s e r v i c e ,s i m u l a t i o nt r a i n i n g ,b r o w s e r s e r v e r p a t t e r n 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 作者签名: 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文的 规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京 化工大学。学校有权保留并向国家有关部门或机构送交论文的复印件 和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学 位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用本 授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权 书。 作者签名: 导师签名: 日期:兰生! ! ! 兰兰 日期:一川二! 第一章绪论 1 1 研究背景与意义 第一章绪论 随着互联网通信技术的发展,i n t e m e t 网络融入到了社会的各行各业,在每 一个领域中都发挥着重要的作用i l 】。各种崭新的w e b 开发技术和网络应用不断的 成熟和完善。当前互联网通信技术的发展主要体现在以下方面: 网络带宽彳i 断提升1 2 j 【3 j :仅仅在本世纪初,5 6 k b 的m o d e r n 是主要的联通互 联网的唯一途径。现在,数兆的网络带宽成倍的提升了带宽速度。1 0 m 级别的 宽带网络越来越多的出现在u 常的应用中。在企业级别的网络组建应用中,光纤 通信也已经不乏身影。与此同时,架设高带宽网络的成本也在不断的降低。 服务器性能提升1 3 】:以i n t e l 公司的c p u 制造技术为主导,如d e l l ,惠普等 众多服务器制造商纷纷制造高性能的网络服务器。根据摩尔定律:集成电路上可 容纳的晶体管数目,约每隔1 8 个月便会增加一倍,性能也将提升一倍,当价格 不变时1 4 j f 5 j ;或者说,每一美元所能买到的电脑性能,将每隔1 8 个月翻两倍以上。 服务器性能的提升,使得服务器对于复杂运算的负载能力大为提高。 网络覆盖范围扩大:毫不夸张的说,互联网已经覆盖了我们的生活、学习、 娱乐等各种领域。不知不觉中,我们已经离不开互联网1 6 】。从电子商务到网络办 公;从网络银行到在线游戏,我们对于互联网有着从未有过的依赖。当前,各种 大型的互联网扩建工程纷纷实施。2 0 1 0 年,台湾到大陆的海底电缆铺设项目开 始,改变过去必须通过香港、日、韩等第三方中转的局面【7 1 1 引。2 0 0 6 年,中美韩 的六大运营商在北京签署协议,共同出资5 亿美元修建首条海底高速直达光纤电 缆。中国对于外国出口带宽加大的同时,互联网可以连到的地方几乎包括了世界 的每一个角落。 化工生产领域由于其特殊性,各种仿真培训系统先后得到研发和实施,取 得了很好的效果,对化工领域的发展做出了贡献【9 】f l o l 。由于化工生产有着整个流 程缓慢,要求精度高,无法承受任何不当的误操作,出于安全性的考虑,化工生 产行业新进员工无法在真实设备上进行培训和练习,使得他们对于操作经验的获 得和应对突发事故处理的能力不容易获取,无法使操作人员对整个生产工艺有一 个整体的了解和具体的操作依据,很多时候,甚至只能凭借经验或者感觉来操作 仪表【l l j l l 列。由此各种仿真培训系统被大量使用,学员可以在计算机模拟仿真的 学习平台如身临其境般的操作各种虚拟设备,了解生产工艺过程。同时,通过设 定,仿真培训系统可以模拟各种突发事件,如异常停车,冷启动、突然断电、物 北京化工大学硕士学位论文 料短缺等f 1 3 j 【h j 。学员可以借此做出应对措施,获得应对突发事件的能力。这种 仿真培训方法比在真实的设备上进行练习有着学习速度快,学习内容全面等诸多 优点。 目前生产中使用的仿真培训系统多使用传统的c s 开发模式构建,在特定 的网络中安装使用。这种仿真培训系统在使用的时候有着诸多弊端【l3 】: 平台的依赖性强:基于c s 模式开发的仿真培训系统多为某特定平台开发 使用,这使得这类仿真培训系统的使用必须安装在他所预先设定的平台上。想要 使用的时候,所有操作在特定编写的程序中完成l l4 1 。典型的c s 模式仿真培训 系统基于民用p c 开发,运行于w i n d o w s 操作系统下。这就造成了使用的局限性。 假如想要在l i n u x 平台中使用同一套仿真培训系统,唯一的方法就是重新开发一 套基于l i n u x 的同类系统l l 引。 受地域限制严重:基于c s 模式开发的仿真培训系统多架设于生产部门的 内部网络中,外部网络无法访问。学员想要使用仿真培训系统进行学习,必须在 特定的数台专用的机器上进行【l6 1 。这种使用方式一方面给系统做了严格的地点 限制,学员想要在其他地点使用系统进行培训学习变得不可能;另一方面由于往 往可用于使用仿真培训系统的机器数量有限,无形中在培训规模上做了限制,不 利于大规模的学员培训活动7 1 。 数据共享困难:基于前两点,仿真课程内容及学习情况数据内容被严格限 定在了某特定局域网的服务器中,数据无法与其他系统交互。而互联网上拥有大 量信息,企业人员无法从中获得所需的各种业务知识。同样的,在同类仿真培训 系统中,相互交流信息和共享数据也无法实现。 不支持网络计算:企业需要自己负责软件和硬件的升级和维护,效率低下, 过程复杂。系统的升级往往需要耗费非常大的人力和物力来实现。 本文所研究的重点正是解决以上难点和问题。本文研究、分析、设计了基 于w e bs e r v i c e 的b s 模式仿真培训系统。系统将具有以下优点: 跨地域使用:本文所设计的系统架设在i n t e m e t 网上面,摆脱了特定局域网 的使用限制。学员可以在任何被i n t e m e t 网所覆盖的地方使用系统进行培训学习, 真正做到足不出户。另一方面,仿真培训系统的学员不受硬件数量的限制,任何 一台连上i n t e r n e t 网络的设备都可以作为学习终端。使得可以同时系统的人数不 受限制,唯一所要考虑的只是服务器的负载能力。 跨平台使用:由于本文所设计的仿真培训系统属于w s ( 浏览器服务器) 模 式,不在需要专门编写实现的特定基于某平台的学习终端,所以在很大程度上做 到了跨平台使用的特点。无论是w i n d o w s 平台还是l i n u x 平台,甚至是移动设 备,例如手机、p d a 、平板电脑等,只要配备i n t e m e t 浏览器的平台,都可以通 2 第一章绪论 过连接i n t e r n e t 网络,使用本文所实现的仿真培训系统,做到了跨平台使用。 升级和维护方面:由于本文所设计的仿真培训系统基于w e bs e r v i c e 开发, 系统将最终运行于机房中通过i n t e r n e t 网络与外界相连。升级维护人员无需到设 备现场进行工作。仅需在开发部门通过i n t e r n e t 网络就可以完成绝大多数的升级 和维护的工作。 二次开发简单快捷:由于w e bs e r v i c e 技术语言无关性的特点,使得本文所 设计的仿真培训系统的模型服务器的依赖性非常低。任何的开发语言都可以基于 本模型服务器进行二次开发,实现自己的培训终端或者开发其他的应用。这存很 大程度减少了开发人员的工作量,避免了重复劳动。在二次开发的过程中提高了 开发效率,降低了开发难度【l 引。 1 2 本课题的历史与现状 目前,仿真培训的应用正在以迅猛的速度递增。大量的统计表明,仿真培i j i i 可以便操作人员在数周之内取得现场2 5 年的经验【l 引。美国称这种仿真培训系 统是提高操作人员技术素质,确保其在世界上取得生产技术领先地位的“秘密武 器”和“尖端武器”,并且有许多企业已经将仿真培训列为考核操作人员取得上 岗资格的必要手段。 我国自1 9 8 5 年开始在化工和石油化工企业引进仿真培训系统。传统的仿真 培训系统主要有两大功能模块组成:工艺模块,系统模块。其中,工艺模块主要 是由大型化工基础物性数据库、基本物性的预测和估算体系、通用稳态化工流程 模拟系统等功能子模块组成1 2 0 1 1 2 1 】;系统模块主要是由联动各个功能模块的子系 统构成,主要功能是调用工艺模块中的功能模块为培训系统服务,完成d c s 的 操作指令并按照反应的结果以合适的形式返回给用户。 传统的仿真培训系统的这种工作方式能够很好的达到系统要实现的目的,但 是这种实现方式随着时代的发展和技术的进步,逐渐暴露出一些自身的缺点:系 统使用c s ( 客户机服务器) 结构,把主机上的应用程序分成了两部分,分别放于 客户端和服务器端。这种方式使得客户机变得臃肿,随着仿真培训项目的加大, 程序变得越来越复杂,相应对于客户机的要求也相应提高。对于企业来说,需要 不断的更新系统配置,造成投资黑洞;对于系统设计者和开发者来说,每一个改 动,都要在所有的客户机和服务器作相同的更改,升级和维护难度极大。同时, 基于这种架构的系统需要有专门的培训机房,员工的培训收到时间和地域的限 制,而且由于投入有限,同时受训的人员数量都受到机器数量的限制,无法高效 的发挥系统的作用。 北京化工大学硕士学位论文 为突破这种限制,各种相关技术都被应用进来,其中由于互联网的兴起,对 仿真培训系统的影响最大,为仿真培训系统的发展带来了新的发展机会。各大自 控产品开发及生产公司纷纷在自己的产品中加入对于w e b 的应用。各种基于w e b 的仿真培训软件的课题及论文被大量发表。开发人员也更多的关注于仿真培训软 件的b s 模式的开发。基于b s 模式的仿真培训系统的开发正成为行业主流的发 展趋势2 2 1 【2 3 1 。 然而,纵观这些有关b s 模式仿真培训的已有系统设计,它们往往有着这样 的弊端:这些系统多依赖某特定开发语言开发。模型服务器的依赖性很强,无法 做到语言无关性,如果想对已有系统进行升级和二次开发,不得小继续选用之前 所采用的开发语言和开发平台。这对于开发者的开发技能有着非常严格的限制。 如果一个j a v a 语言开发的仿真培训系统想要升级,一个熟悉c 撑的开发人员不得 不推翻之前所做的所有工作,重新编写整个系统【2 钔。这对于已有的投资是一种 无形的浪费。同样的,重新开发整个系统无论在速度上还是在花费上,都是很大 的投资。这种广泛存在的弊端也正是本课题的着眼点和研究方向。 1 3 本文主要研究内容 本文研究、分析、设计了基于w e bs e r v i c e 的b s 模式仿真培训系统。该系 统的模型服务器基于目前广泛使用的w e bs e r v i c e 技术构建,同时使用传统的面 向对象的思想方法将数学模型转化为代码模型。主要立足于实现模型服务器的语 言无关性,低耦合性。以方便开发人员的升级和二次开发。系统的学员站和教师 站基于n e t 开发平台,在v s 2 0 0 5 开发软件中编写。通过调用a j a x 等异步通信 技术,同模型服务器通信,同时参考设计模式的有关编程规范,构建为一个b s ( 浏览器服务器) 模式的仿真培训平台的受训客户端【2 5 】。学员站和教师站的实 现充分考虑了对生产流程的仿真和操作台界面的模拟,使得客户获得了很好的操 作感受。在学员站和教师站的实现过程中,由于w e b 页面的无连续性,如何在 静态的w e b 页面中实现动态显示的流程图和趋势图成为本文研究的重点。 4 第章应用技术介绍 2 1w e bs e r vic e 2 1 1 基本知识 第二章应用技术介绍 简单的来说,w e bs e r v i c e ( 网络服务) 可以被看作是一种能够和与其他类型 的软件通过网络进行通信的一种软件。无论w e b 服务以何种形式的应用来实现, 它都可以通知其他的应用自身所提供的功能,包括登陆验证、安全传输、数据共 享等。w e b 服务本质上是现有的分层模型之间的基础层,一般的w e b 服务有如 下几大特点: 1 w e b 服务能向其他的应用开放和描述自己,允许这些应用了解自己提供 的服务内容。 2 一旦w e b 服务被注册,那么它可以被其他应用通过网络直接获取。 3 w e b 服务可以被其他应用通过通用标准协议来使用。 在w e b 服务出现以前,受限于当时的主流技术限制,为了促进计算机系统之 间的通信,软件供应商们往往编写和提供独有的软件基础架构,这意味着本来可 以用来编写新的e r p 系统功能,或者信用卡处理系统的源码必须被用来编写合 适的网络协议1 26 1 。 为了改善这种网络应用窘境,微软决定研发一种新的技术来替换以后的一些 技术,包括c o m 嘲络服务( c i s ) ,这种技术可以用来建立客户端和远程组件之 间通过8 0 端口的d c o m 连接,由于各种各样的原因,c i s 并没有被广泛接受。 这个时候究竟何种特性必须被新技术所支持已经变得非常清晰,微软决定重 新提供一种崭新的解决方案【z 7 j ,为了使的新方案获取成功,它将具备以下功能。 互用性这些远程服务必须能够被任何平台上的客户端所使用。 网络友好性这种新的解决方案必须能够使得客户可以越过英特网来使用这 些远程服务。 强类型接口远程服务接受和返回的数据不能有二异性,更进一步,远程服 务定义使用的数据类型必须有很好的灵活性来兼容大多数编程语言所使用的数 据类型。 有兼容现有互联网标准的能力远程服务的的实现必须尽可能多的兼容现有 互联网通用标准协议,避免对已有解决方案的重新发明。一个成熟的、被广泛接 受的互联网通信标准协议可以兼容现有的工具集和产品。 支持任何语言解决方案不应该受限使用某种具体的语言。比如j a v ar m i 就 北京化工大学硕士学位论文 是只能够被j a v a 语言来使用的一种解决方案,它的使用就受到了很大的限制。 这样一来,如果想从v b 或者p e r l 编写的客户端调用远程i a v a 对象的功能将变 得非常困难。无论客户端是用什么语言编写的【2 8 】,它都应该能轻松够调用一个 新的或者是一个已经曾在的w e b 服务。 支持所有分布式组件基础架构解决方案彳 应该只局限于某种特别的组件基 础架构。事实上,客户不应该特地为了建立某种远程服务或者使用某种现有远程 服务而去购买、安装或维护某个分布式组件基础架构。底层协议应该能够使得现 有基础架构之间能够进行正常的通信。 符合以上所有特点,w e bs e r v i c e 技术毫无疑问的成为新的解决方案。一个 w e b 服务提供一组接口,可以根据客户端的动作来调用特定的功能。客户端可以 通过互联网通用协议来调用w e b 服务。 2 1 2 关键的技术和规范 图2 1 描述的是两个应用通过w e bs e r v i c e 进行通信必须的核心模块。下面 通过对比d c o m 来讲解每个模块的作用。 d i s c o v e r y ( 发现) 一旦远程服务提供了某种功能【2 9 】【3 0 】,而远程客户端应用 想要获取服务所在位置,这就需要通过一种称为发现的过程。发现可以通过集中 服务管理或者其他方法来实现。而在d c o m 中,服务控制管理( s c m ) 提供发 现服务。 d e s c r i p t i o n ( 描述) 一旦某个特定w e b 服务的末端被定位,客户端需要足 够的信息来和这个端点通信。一个w e b 服务的描述数据包含大量信息,其中包 括如何使用这个接口服务,以及该w e b 服务的说明文档及使用样例。相对的, d c o m 组件通过一个类型数据库( t y p e l i b ) 来暴露他的接口描述数据。这些类型 数据库以私有二进制格式来保存,并且客户只能通过专有编程接口函数来访问 ( a p i ) 。 m e s s a g ef o r m a t 为了交互数据的需要,客户端和服务器端必须约定一个通用 的方法来解码和格式通信数据。一个通用标准的编码数据标准才能使得客户端传 送的数据能够被服务器端正常的理解。同样的,在d c o m 中,d c o m 对象r p c ( o r p c ) 协议严格规定了客户端和服务器端传送的数据格式。 如果没有一个通用标准来规定信息的格式,开发一种可以使得开发人员不用 关心底层通信协议就能够开发的工具集是近乎不可能的。在底层协议层和开发人 员之间添加一个抽象层使得开发者可以把精力放在手头的商业问题上,而不是为 了实现解决方案所必需实现的基础架构上。 e n c o d i n g ( 编码) 客户端和服务器端传输的数据需要先经过编码。d c o m 6 第章应用技术介绍 使用一个二进制编码格式来序列化客户端和服务器端交换的参数所包含的数据。 t r a n s p o r t ( 传输) 数据经过格式化和序列化后,数据就可以通过一些传输协 议从客户端向服务器端传输了。d c o m 通过几个私有协议同网络协议绑定来传 输数据,这些协议有t c p 、s p x 、n e t b e u i 和n e t b i o s 。 图2 - lw e bs e r v i c e 通信核心模块 f i g 2 - 1c o r eb u i l d i n gb l o c k sf o rr e m o t ec o m m u n i c a t i o n 2 1 3 常见应用框架 由于w e bs e r v i c e 只是提出了一种解决方案,他并不涉及具体的实现语言, 也并没有限定实现的框架特征,他只是提出了一种规范,凡是满足规范条件的实 现都可以称之为w e bs e r v i c e ,各个厂商纷纷推出自己的w e bs e r v i c e 解决方案。 目前最常被人们研究和使用的主要有以下几种。 a x i s :a x i s 是a p a c h e 的一个开源项目,他提供了大量的a p i ,开发人员通 过调用这些a p i 可以构建自己的w e bs e r v i c e 。他的全称是a p a c h ee x t e n s i b l e i n t e r a c t i o ns y s t e m 阿帕奇可扩展交互系统。一般的,a x i s 的开发环境是 e c l i p s e + m y e c l i p s e 。编写语言首选是j a v a 。 a x i s 本质上就是一个s o a p 引擎,提供创建服务器端、客户端和网关s o a p 操作的基本框架。a x i s 目前版本是为j a v a 编写的,不过为c + + 的版本正在开发 中。但a x i s 并不完全是一个s o a p 引擎,它还包括: 是一个独立的s o a p 服务器。 是一个嵌入s e r v l e t 引擎( 例如t o m c a t ) 的服务器。 7 北京化j = 大学硕士学位论文 支持w s d l 。 提供转化w s d l 为j a v a 类的工具。 提供例子程序。 提供t c p i p 数据包监视工具。 a x i s 是简单对象传输协议( s o a p ) 的一种严格遵循w 3 c 标准的一种实现 方式。w 3 c 稿件是这样描述s o a p 协议的: s o a p 是一种轻量级的用来在分布式的环境中交换结构信息的协议。这种协 议基于x m l 格式并且有三部分组成:一个定义了信息内容和处理方式的封装方 法;一组表述如何对应用程序定义的数据类型实例进行编码的规范;和一个代表 远程过程调用和应答的协定。 x f i r e :x f i r e 是c o d e h a u s 组织提供的一个开源框架,它构建了p o j o ( p l a i no l dj a v ao b j e c t ,简单j a v a 对象) 和s o a ( s e r v i c e o r i e n t e da r c h i t e d t u r e , 面向服务的体系架构) 之间的桥梁,主要特性就是支持将p o j o 通过非常简单 的方式发布成w e b 服务,这种处理方式不仅充分发挥了p o j o 的作用,简化 了j a v a 应用转化为w e b 服务的步骤和过程,也直接降低了s o a 的实现难度, 为企业转向s o a 架构提供了一种简单可行的方式。 x f i r e 目前最新的版本是1 2 2 ,目前支持的特性主要包括: 支持将w r e b 服务绑定到p o j o 、x m l b e a n s 、j a x b l 1 、j a x b 2 0 和 c a s t o r ; 支持基于h t t p 、j m s 、x m p p 等多种协议访问w e b 服务; 支持多种w e b 服务业界重要标准如s o a p 、w s d l 、w e b 服务寻址 ( w s a d d r e s s i n g ) 、w e b 服务安全( w s s e c u r i t y ) 等; 支持j s r l 8 1 ,可以通过j d k 5 配置w e b 服务; 高性能的s o a p 实现; 服务器端、客户端代码辅助生成; 对s p r i n g 、p i c o 、p l e x u s 等项目的支持等。 n e t 框架:顾名思义,n e t 框架就是微软公司提供的w e bs e r v i c e 框架,n e t 结构下的w r e bs e r v i c e 应用基于n e tf r a m e w o r k 和m i c r o s o f ti i s 架构之下,安装架 设相对简单。 w e bs e r v i c e 实现类一般从命名空间s y s t e m w e b s e r v i c e s w e b s e r v i c e 这个基类 派生而来,他通过设置必要的参数 w e b s e r v i c e 使客户端暴露相应的方法。当运 行时,客户端首先获取w e bs e r v i c e 服务器的w s d l ( 网络服务描述语言) ,同 时客户端将建立一个代理类( p r o x yc l a s s ) ,通过这个代理类来实现到w e bs e r v i c e 服务器的请求和相应。如同前面所描述的,数据将被格式为x m l 格式,这个 第章应用技术介绍 x m l 格式的数据将被再次封装为s o a p 格式,然后传送到服务器端。服务器端 产生一个进程对象对数据拆包、解码、处理。同样的,需要返回的数据经过x m l 格式化,s o a p 封装,再次返回给客户端的代理类,代理类自动完成相应的拆包 及解码工作。整个流程如此反复。 该架构完美实现了w r e bs e r v i c e 规范,做到了半台独立性、跨语言性、以及 具有能够穿透企业防火墙的能力。此外,一如微软以往的技术,n e t 框架下w e b s e r v i c e 具有开发简单,部署快,性能高等多种有点。这也是本课题选中n e t 框 架构建w - e bs e r v i c e 的原因。 2 1 4 在本课题中的应用 在本课题中,模型服务器的搭建是整个仿真培训系统的关键。通过对系统 需求的反复推敲,得出结论:当仿真模型能够自我描述整个流程工艺,拥有状态 保存记录能力,对相应变化过程能够仿真的前提下,仅需对外部暴露几个接口以 供外部操作整个仿真模型,获取仪表信息,了解状态变化过程。控制状态变换。 这样就可以完成整个系统的设计与实现。 这种应用场景与w e bs e r v i c e 的功能非常相似,我们可以把仿真模型封装成 w e bs e r v i c e 服务,把需要的函数封装成接口函数,或者说网络服务。这样,这 个仿真模型就足以正常的工作了。所需要的仅仅是编写一个能够调用这些接口方 法并且能够根据获取数据内容组态显示模型内容的客户端了。 本课题中仿真培训模型的数学模型反映的是忠县天然气净化厂整个净化车 间的生产过程。通过面向对象的思想,本文把该数学模型转变为代码模型。以 c 撑类的形式表达,实现数学模型向代码模型的转变。由于c 撑类有着继承性、封 装性的特点,本文把每一个数学模型中的设备模块转变为不同c 挣类,相互之间 以全局数据传递物料变化、成分变化、能量转移等信息,以类的公有函数提供设 备模块状态演算。再辅以几个全局函数来实现众多模型模块的组织框架。最终, 这些c 群类和全局函数被w e bs e r v i c e 封装并隐藏内部细节,仅暴露数个对外通信 函数。通过调用这些通信函数,外界就可以在不了解模型服务器内部运行机制的 前提下,获取模型服务器运行信息、设置模型服务器运行状态、修改模型服务器 仿真模型的各项属性。 2 2 设计模式 2 2 1 基本知识 9 北京化上大学硕士学位论文 设计模式( d e s i g np a t t e r n ) 是一套被反复使用、多数人知晓的、经过分类编 目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被 他人理解、保证代码可靠性。 g o f ( g r o u po f f o u r ,四人帮) 编写出版的设计模式( 1 9 9 5 年出版) 第一 次将设计模式提升到理论高度,并将之规范化,这本介绍了一共2 3 种基本的设 计模式,但是,随着面向对象思想的彳i 断发展,大量新的设计模式彳 p u b l i cs t a t i cs i n g l e t o ni n s t a n c e ( ) u s e l a z yi n i t i a l i z a t i o n 3 2 第叫章系统模型服务器的实现 i f ( i n s t a n c e = = n u l l ) i n s t a n c e = n e ws i n g l e t o n ( ) ; ) r e t u r ni n s t a n c e ; ) ) ) 通过分析以上代码,我们可以看到:当第一次请求单件类的变量i n s t a n c e 的时候,将会新建一个新的内部变量。而当非第一次调用该变量的时候,则返回 同一个内部变量,由于内部变量i n s t a n c e 的s t a t i c 的前缀修饰特性,此变量并不 会随类的析构而消失。 4 3 2 通信接口函数的构造 仿真模型对外交互包含多种含义,其中包括设备描述信息、或者模型运行状 态控制信息、或者历史信息记录情况。下面我,f f y j j 出为了正常工作,接口函数将 要使用到的一系列通信接口函数: h r e s u l ts i m u d b r e a d ( u s h o r t u s h t a g n u m ,s i m u t a g n a m e p t a g n a m e ,s i m u d b r e a d _ r e p l y 木p d a t a ) ; 仿真仪表数值及属性读取接口函数。通过调用该函数,b s 架构学员站和教 师站可以获取参数内描述的仪表仪器的所有有关信息。这在流程图的绘制和趋势 图的绘制中都是必须的主要功能函数。 h r e s u l ts i m u d b w r i t e ( u s h o r t u s h t a g n u m ,s i m u d b w r i t e r e q 枣p d a t a i n t 木r e t ) ; 与上一个函数相对,本接口函数负责对于仪表数值的修改。通过调用该函数, 学员站对于仪表的数值设置可以被发送到仿真模型中。 h r e s u l ts i m u r e m o t e c t r l ( u s h o r tu s h o p r t a g ,u s h o r t u s h r e q n u m , r e m o t e c t r l l n f o 木p c t r l d a t a ,r e m o t e c t r l r e p l y 宰p r e p l y d a t a ) ; 主要处理p i d 仪表的控制信号向模型服务器的传递工作。 h r e s u l ts i m u d b h i s t o r y ( u s h o r tu s h e n d p o i n t ,u s h o r tu s h s t e p , s i m u t a g n a m e 木p t a g n a m e ,s i m u d b r e a d j t e p l y 木p d a t a , i n t 拳r e t ) ; 数据库历史数据获取,主要用于系统调试和维护。 h r e s u l ts i m u m o d e l c o n t r o l ( u s h o r tu s h t a g n u m , s i m u d b w r i t e i 己e q 3 3 北京化工大学硕士学位论文 枣p d a t a i n t 木r e t ) ; 仿真模型服务器的运行状态设置。具体操作有时间流逝速度设置、起始点选 择、异常状况装载、短点读取和保存等功能。 通过以上接口函数的构造,我们实现了如图4 - 6 所示对于仿真模型的封装。 爿 匕j 籼i 城f 忽,刮,q 锭 图4 - 6 仿真模型封装效果图 f i g 4 - 6p a c k a g ee f f e c td i a g r a ms i m u l a t i o nm o d e l 4 3 3 通信数据序列化的实现 由于w e bs e r v i c e 本身的一些特性,课题需要传送的数据多以结构体和无函 数的类的形式编写和构建。当一个接口函数想要传送某个数据的时候,我们首先 把包含这个数据内容的结构体使用x m l 来格式化,然后使用s o a p ( 简单对象 访问协议) 来通过i n t e m e t 来传输。 在学员站和教师站,接收到的数据经解码会还原为x m l 格式的结构体对象。 我们再次使用x m l 来解码,还原为结构体对象,这样反序列化就实现了。这就 是通信数据的传输的过程。 当具体在n e t 框架下使用自定义结构体或者类作为w e bs e r v i c e 接口函数的 参数和返回值的时候,课题使用了以下属性: 【s e r i a l i z a b l e :【s e r i a l i z a b l e 】属性用来告诉编译系统,我们接下来声明的类 将被序列化,通过提供 s e r i a l i z a b l e 标记,该类将自动被n e t 框架增加序列化功 能。只有这样,这些自定义的类或者结构体才能够被序列化,然后通过网络传输, 同样的,反序列化也被同时加入该自定义的类或者接口中,这样,在客户端接收 到该被序列化后的类实例或者结构体实例后,我们可以通过反序列化把它重新复 原为原本的样子。 x m l l n c l u d e ( t y p e o f ( t y p e ) ) :在这里的t y p e 在具体的设计时将被之前所定义 3 4 第叫章系统模型服务器的实现 的结构体或者类的名称所替代,通过在我们想要没计为w e bs e r v i c e 接口方法的 函数前面加入此类声明,我们可以把之前的定义通知该函数,这样,这些自定义 的参数就可以存该函数中参与运算。该接口函数也可以自由的把它们作为参数或 者返回值。 【w e b s e r v i c e - 在编写具体的实现w r e b 服务的类的时候,我们必定要编写实 现大量的函数变量,我们必须显式的标记预计作为接口函数的函数。如果我们仅 仅把函数标记为p u b l i c 的话,那么该函数只能是作为服务器端的公共函数来使 用,而彳 经过x m l 编码后的数据样子如下: 北京化工大学硕士学位论文 p o s t q s t s e r v i c e s e r v i c e a s m xh t t p 1 1 h o s t :l o c a l h o s t c o n t e n t t y p e :t e x t x m l ;c h a r s e t = u t f - 8 c o m e m - l e n g t h :l e n g t h s o a p a c t i o n :”h t t p :t 16 3 l i _ h 0 0 0 0 s i m u d b r e a d ” ? x m lv e r s i o n = ”1 0 ”e n c o d i n g 一u t f - 8 ” s i m u d b r e a d x m l n s = ”h t t p :t 16 3 1 l h 0 0 0 0 ”今 以上是我们使用s o a p l 1 协议来请求某函数返回值时的请求信息头信息,里 面透露了大量的协议细节,其中的黑体字在最终的结果中将被具体的数值所代 替,整个数据被以x m l 方式格式化。这种格式的通信数据有两点优点。其一是 x m l 被绝大多数编程语言所支持,x m l 格式化后的数据可以被所有编程语言接 受并反序列化。其二是x m l 格式数据是i n t e m e t 网络默认支持的数据格式之一, 无需额外安装任何协议,通信数据可以自由的在i m e m e t 上面传输。 如果目标函数工作正常,并- 月能够正常的返回我们所需的请求参数内,则返 回一个标志为2 0 0 的信息开头的返回x m i 串,表明通信正常,数据被正常接受, 并且传输正确。具体数据内部限于篇幅,不在赘述。 4 3 4g s d l 网络服务描述文件和d i s c o 发现文件的创建 w s d l 语言( w e bs e r v i c e 描述语言) 是一个基于x m l 的语言,用来描述 w r e bs e r v i c e 及其函数、参数和返回值。w s d l 写成的文档主要用于提供给机器 阅读,同时由于是基于x m l 的,也是人可阅读的。 w s d l 文件包含以下元素: t y p e :使用某种语法( 如x m l 模式) 的数据类型定义( s t r i n

温馨提示

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

评论

0/150

提交评论