- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
论基于构件的软件开发
【摘要】
我参加了一个某集装箱码头应用系统集成项目,该项目主要利用了GPS全球定位系统、GIS地理信息系统以及无线通讯网络等技术,对码头集装箱堆场管理、所有机械的位置及作业进行全程跟踪。在这个项目当中,我主要负责三维可视化监控子系统软件的研发工作,该子系统(以下简称“系统”)原先采用的是两层结构的C/S架构模式,由于系统要求实时性比较高,且客户对软件性能有着明确的要求,为了满足软件高性能需求,后来我将整个系统结构改为基于三层的C/S架构,经过改良后的系统整体性能较之前有了非常大的提升,到达预期的效果。整个系统软件采用的是基于构件的方式开发,在客户端与中心服务端之间增加了一层代理服务端,采用中间件技术实现客户端与代理服务之间的数据通信及交互操作,构件有来自“已有构件库里的构件”,也有新开发的构件,采用这种方式,主要考虑软件模块的可重用性,提高团队的开发效率以及后期的功能扩展和维护工作。
【正文】
2010年7月,我参加了某集装箱码头公司的一个系统集成项目,项目基本需求是要将港口业务与GPS结合起来做一些应用方面的集成,该项目主要利用了GPS全球定位系统、GIS地理信息系统以及无线通讯网络等技术,对码头集装箱堆场管理、所有机械的位置及作业进行全程监控跟踪和作业安全预警,整个系统大致由数据处理中心、移动站终端及调度监控终端组成,其中调度监控终端软件系统又分为二维监控子系统与三维可视化子系统两部分。该项目在2011年8月份完成验收工作,该套系统在现场一直运行良好,让用户方提高了生产作业效率,得到用户的一致好评,用户方也配合公司将此系统大力推广与宣传。在这个项目中,我主要负责三维可视化监控子系统软件的设计及部分研发工作,该子系统(以下简称“系统”)原先采用的是两层结构的C/S架构模式,由于系统要求实时性比较高,且客户对软件性能有着明确的要求,为了满足软件高性能需求,后来我将整个系统结构改为基于三层的C/S架构,经过改良后的系统整体性能较之前有了非常大的提升,到达预期的效果,这个系统开发团队为7人。整个系统软件架构是基于多层分布式结构,一般,多层分布式结构主要包括表现层、表示逻辑层、应用逻辑层、数据处理层以及数据层,目前流行的架构有基于C/A/S和B/A/S的三层或多层客户/服务器模式,即将数据层和数据处理层放到服务器上,应用逻辑层放在同一台或不同的服务器上,而将表现层和表现逻辑层放在客户端,这种模式主要考虑系统安全性,稳定性,易于维护及方便扩展等,而我们采用的就是基于三层结构的C/A/S模式,也就是在数据处理中心服务与监控终端之间增加了一层,称为代理服务层,之所以这么设计,主要是为了提高客户端的响应速度,进而提高客户端整体性能。我们采用的是基于构件的方式开发,采用这种方式,主要考虑软件模块的可重用性,提高团队的开发效率以及后期的功能扩展和维护工作,并且可以应对各种类似项目需求的变化,在需求功能发生变化时,只需组织一些现有部件或简单的通过修改部分模块接口,就可以实现功能的定制。客户端与代理服务端之间采用的是中间件技术,实现两者的交互操作,组件是基于面向接口的对象封装库DLL,代理服务端和显示端可以部署到同一台机器上,也可以在不同机器上,代理服务端主要实现将数据处理中心发来的数据作转换和处理,而后发送给显示端显示,显示端不做深层次的业务逻辑处理工作,只负责显示,我将整个显示端架构划分为界面层、业务逻辑层、数据通讯链路层以及核心引擎层,其中用到的主要组件有新开发设计的,也有来自构件库中的构件,我将具体的设计过程及关键技术作如下描述:在软件表现层设计的时候,除了需要把三维场景显示得逼真,漂亮之外,主界面的人机交互操作也是非常重要的,为了让界面美观,我们采用了公司购买的正版商业界面构件库Xtreme,它是基于MFC开发的,利用它,在程序中,只用作简单的接口调用,便可以使界面窗口美观化,而且其功能强大,兼容性较好,每次构件库升级后,应用程序不用进行任何更改,只需替换相应的构件即可,维护性较好。此外,主程序中有使用闪屏窗口、无模式对话窗口,GDI绘图等技术,并利用了构建库里的UI组件,它配合XTreme组件可以实现大部分UI操作。在业务逻辑层中,为了使业务逻辑的处理不影响前端表现层的展示,在设计时,我们将这个模块单独设计为一个业务对象组件库,该模块主要提供对港口基本业务对象类的封装操作,例如对码头作业机械对象、堆场、集装箱等的属性及操作进行了封装,它是完全面向业务对象的,也面向系统基本功能,例如系统需要显示每个作业机械的实时位置信息,作业指令信息,还有堆场的集装箱分布信息以及一些安全预警信息等等,那么在这个模块相应就提供了一个机械位置处理工厂类、集装箱管理类、各种类型的安全预警处理类等等。而对于三维场景的渲染操作以
文档评论(0)