您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

彩票网站开发公司,Web回归桌面的研究与应用——基于Web技术的预付费电能管理系统的构建_互联网_IT/计算机_专业资料

461人阅读|19次下载

彩票网站开发公司,Web回归桌面的研究与应用——基于Web技术的预付费电能管理系统的构建_互联网_IT/计算机_专业资料。彩票网站开发公司,Web回归桌面的研究与应用——基于Web技术的预付费电能管理系统的构建


彩票网站开发公司江南大学 硕士学位论文 彩票网站开发公司,Web回归桌面的研究与应用——基于Web技术的预付费电能管理 系统的构建 姓名:蒋海云 申请学位级别:硕士 专业:计算机应用技术 指导教师:王士同 20090801 摘要 摘要 随着Web技术的迅速发展,Web应用的功能和交互体验已与传统桌面应用可相媲 美;另一方面,AdobeAIR等平台的兴起和流行,使得越来越多的桌面应用程序可以使 用Web开发技术来实现。具有桌面程序特性的Web应用,以及基于Web技术开发的桌 面应用,Web技术和桌面技术的融合,催生了“Web回归桌面"的技术趋势。在这种技 术背景之下,设计与实现了一个“基于Web技术的预付费电能管理系统”,以实际项目 来实践和把握“Web回归桌面’’的趋势。彩票网站开发公司 论文首先分析了现有预付费电能管理系统存在的问题,介绍了新系统的设计思想、 主要功能、自助模式及实现的关键技术。系统借鉴系统平台的设计思路,运用分层设计 技巧,使得系统平台具有复用性,并降低了平台功能与应用功能的耦合性;运用工业远 程监控技术,提高系统的实时性和可靠性;使用Web Services技术支持对第三方系统的 接入,结合AJAX、SVG和XHTML等技术实现了桌面应用的使用体验。彩票网站开发公司 论文阐述了一种使用W.eb技术开发桌面应用程序的新开发模式,其运行期环境的 特点和要求。基于这种开发模式设计和实现了系统的“自助服务客户端"程序,并把程 序打包布置,最后在桌面上运行使用,从而验证了这种开发模式的可行性和应用程序的 桌面整合特性。 系统已在多个高校和市场商铺实际应用,并取得了良好效果。 论文以实现具有桌面特征的Web应用和使用Web技术开发桌面应用两个角度,阐 述了对Web技术与桌面技术的融合,Web回归桌面的理解。彩票网站开发公司Web回归桌面,和目前互 联网的发展方向是一致的,是软件技术发展的趋势,它将融合Web和桌面两个软件领 域的优点,从而导致新型软件应用的出现,并且改变软件的构造模式。 关键词:预付费电能管理系统;Wreb监控;平台;桌面应用;JavaScript;ExtJS Abstract Abstract Along witll the rapid development of the application and user Web as technology,the functionality of web the traditional desktop application.At experience have been as good the same time,with the appearance and popularization of platforms like Adobe AIR and Curl Nitro,more and more desktop applications now can be realized、析m the Web development technology.Web application with desktop application characteristics,as well as the desktop application realized with Web development technology,the returns to combination of Web technology of a and desktop technology brings the birth this of”Web desktop”technology trend.Under technical background,this paper describes the on design and implementation ”prepayment metering management system based Web technologies”,by which we can understand and explain”Web system and introduces self-help mode a returns to desktop”trend. This paper analyzes the problems in the current prepayment metering management new system,including the design ideas,the main functionalities,the and the key development technologies.With the ideas of platform-based design,the system uses the hierarchical design,which improves the reusability of the platform layer,and reduces the coupling between the layers.With the印plication of industrial remote monitoring technology,the system improves the real-time and the reliability of the operation. The use of Web Services makes the integration of the tmrd party application possible.And the use of AJAX,SVG and XHTML technologies realized the desktop application user experience. Also,this paper explores a new mode of developing desktop applications with the Web technologies,and and finally describes its advances and requirements.Based on this mode,a self-help client application is designed nlns on and realized which then is packaged,distributed and deployed desktop environment.This indeed verifies the feasibility of this mode and the application’S capability of integrating it with desktop. This system has been used and run well in several universities and markets. illustrates the From the points of building Web application witll desktop characteristics and realization of desktop application with Web development technology,this paper trend of Web returns to desktop.It iS integrate the advantages of a consistent with the Intemet’S development direction.and will of web application and desktop application,and thus causes the of appearance new type software application,which will change the software development mode. Keywords:prepayment application;JavaScript;ExtJS metering management system;Web monitoring;platform;desktop II 独创性声明 本人声明所呈交的学位论文是拳人在导师指导下进行的研究工作及取 得的研究成果?尽我所知,除了文中特别加以标往和致谢的地方外梦论文 中不包含其他人已经发表或撰写过的研究成果,也不包含本人为获得江南 大学或其它教育机构的学位或证书而使用过的材料簟与我一同工作的同志 对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意. 签 名-筝巨L日 期:坐啦啦 关于论更使用授权的说明 本学位论文作者完全了解江南大学有关保留,使用学位论文的规定: 江南大学有权保留并向国家有关部门或机构送交论文的复印件争磁盘,允 许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存,汇编学位论文, 并且本人电子文档的内容和纸质论文的内容相一致- 保密的学位论文在解密后也遵守此规定。 签 名: 第一章绪论 第一章绪论 1.1论文的选题背景及意义 以Web技术为代表的互联网技术的出现和发展,改变了人们的生产、生活和交流 方式。 一方面, Web应用的易访问性、开发的简单性使其在过去的十几年中蓬勃发展。 特别是近几年来,随着AJAX[1】技术的出现和兴起,W曲应用突破了“点击.等待一刷新" 的传统交互模式,Web应用不再是简单的网页组合。彩票网站开发公司如火如荼的AJAX技术催生了琳琅 满目的Web应用,从google的grnail,到adobe的在线photoshop, 再如W-eb桌面系统 如Filespots、Webtop[2】等,传统的桌面应用悉数搬到了Web的舞台上。彩票网站开发公司无闪刷新、菜 单栏、工具栏、右键菜单、按钮、对话窗、进度条…,Web应用的功能和交互体验回归 传统桌面应用模式,不仅给RIA[3】这个名词赋于了新的含义,而且也为Wreb应用与桌面 应用之间的鸿沟铺设了桥梁。 另一方面,桌面应用的开发,要求开发人员学习C、C++、Java之类的底层开发语 言和具体操作系统底层API,极大地提高了开发门槛和应用的开发成本。而Web应用开 发技术简单,开发人员众多,符合W3C公共标准。如何使用现有的Web开发技术来构 建桌面应用系统,业界一直在孜孜不倦地尝试着。例如,一种为生成离线网络应用软件 而开发的开源技术Google Gears[4],能使W.eb应用摆脱对网络连接的依赖而脱机运行; 以Mozilla Prism[5】为代表的SSB(Site Specific Browser)技术,不仅能使Wreb应用脱离浏 览器运行,而且能让Web应用程序的图标,也和传统桌面应用一样,出现在桌面和系 统托盘上;当前出现的Adobe AIR[61、CURL Nitro[7】等平台,已经能够使用W曲技术开 发出相当复杂的应用,并布署到桌面上运行。使用Web技术开发桌面应用,能使得最 广泛的开发群体-Web开发的技术人员,依赖其原本熟悉的开发模式,稍加训练就可开 发出功能丰富,体验良好的桌面应用程序。 当前是一个桌面技术与Web技术大融合的时代【8】【外。无论是智能客户端技术,或者 是回归C/S的呼声,桌面化的Web应用和Web化的桌面应用,抑或是所谓的远程介入 平台,国内外已经开始尝试将Web和桌面融合,让Web技术回归桌面。Web技术与桌 面技术的适度组合,两者的融合与大统将导致一些新型软件应用的出现,并改变软件的 构造模式。 本文结合一个实际项目需求,设计和实现了一个预付费电能管理系统,该系统包括 一个桌面化的Web应用系统和一个基于Web技术开发的桌面客户端应用程序,从而研 究和实践Web技术和桌面技术的融合及Web回归桌面的技术趋势。 江南大学硕士学位论文 1.2系统的开发背景及意义 当前我国正进入一个新的能源紧缺时期,节约用电已成为全民关注的一个重要话 题。但是目前一些单位和企业普遍存在浪费电能的现象,因此以软硬件手段来加强管理、 强化节约意识很有必要。但当前使用的预付费电能管理系统存在如下问题: 1)通讯方式不可靠,非实时 目前大量采用的电力线载波传输手段,容易受到杂波干扰,使载波的信噪比大幅降 低,无法实时可靠的传输,有些系统集抄一次电表的时间甚至需要一天或一月,根本不 能满足系统对实时可靠传输的要求。因此有必要采用一些相关的软硬件技术,比如采用 Intemet基础网络和工业远程监控中普遍使用的OPC技术来实现实时可靠通讯。 2.)数据不透明,系统整合能力弱 多数控电模块式的预付费系统,存在用电计量与消费不透明的问题。这些系统大多 运行在专有网络中,采用私有的通讯和操作协议,无法向用户提供自助服务功能,难以 向第三方开发人员开放接口,不便于系统与其它应用的整合。新型的Web预付费电能管 理系统使用标准的Web技术,结合AJAX、XHTML、Comet等技术,能为用户提供界 面友好的自助服务、自主管理功能;提供标准的Web Services接口,方便其它应用系统 (如一卡通系统等)对本系统的整合。 3)预付费管理复杂 由于不具有自助服务功能,当前的预付费系统需要设置多个预付费管理站,增加了 管理成本,也不方便用户使用。新型系统在软硬件上采用多种技术手段保证系统的安全 性,如采用包含ESAM加密模块的电表、多层次的数据通讯加密、基于角色的访问控制、 双因子认证机制的用户登录管理等,在此基础上,为用户提供安全可靠的自主管理、自 助服务功能,从而减少系统运营和管理的工作量和成本。 随着网络技术的迅速发展,网络已经无处不在,人们的生活方式也随之改变。因此, 使用当前的技术条件,结合Web及桌面应用开发技术,开发一套操作可靠、响应实时、 消费透明、服务自助的新型预付费电能管理系统已成为可能。该系统能有效地提高电力 部门对用电进行科学管理的能力,减少大量的繁重劳动,根本上解决电费的拖欠问题。 1.3论文的组织及创新内容 本文在Web回归桌面的技术发展趋势下,详细描述了一个“基于Web技术的预付 费电能管理系统"(以下简单系统)的设计与实现。该系统包括一个桌面化的Web应用 系统和一个使用Web技术开发的桌面客户端应用程序。文章共分为七章。 其中第一章绪论部分阐述了论文的选题背景及系统开发的背景和意义。 第二章在系统需求分析的基本上,叙述了系统的体系结构,其平台的设计思想和分 层设计技巧,将系统分为核心平台层、应用层、网络层、现场设备层和用户层五个层次, 使得系统平台具有复用性,并降低了平台功能与应用功能的耦合性。 第三章详细说明了核心平台层的设计与实现;其中3.1小节描述了核心平台层的主 要功能模块;3.2小节对设备通讯驱动框架进行了说明,设备通讯驱动框架抽象了核心 2 第一章绪论 平台层与现场设备层的通讯操作,新类型设备只需要实现框架定义的接口就能接入系统 中使用;3.3小节详细介绍了使用OPC技术、Comet技术和SVG等技术来实现实时Web 监控的效果,3.4小节介绍核心数据库的设计,3.5小节介绍了系统使用基于角色的访问 机制和双因子论证机制来保证系统的安全性。 第四章介绍了预付费电表协议和数据网关协议,并描述了协议加密通讯的有关内容 以保证通讯的安全性。 第五章对系统应用层的设计与实现进行了详细的描述,包括应用层数据库的设计和 各种系统功能的实现说明。应用层结合AJAX和XHTML等技术,实现无闪刷新、菜单 栏、工具栏、右键菜单、按钮、对话窗、进度条等桌面应用程序特征元素,实现桌面应 用的交互体验。 第六章描述了使用Web开发技术来开发桌面应用的新开发模式,并基于这种开发 模式实现了系统的自助服务客户端程序。 最后,在第七章中对课题研究工作及系统进行了总结。 江南大学硕士学位论文 第二章基于Web技术的预付费电能管理系统总体结构 2.1基于平台的设计思想 基于Web技术的预付费电能管理系统是一个集现场设备通讯管理、Web发布、Web 报表服务、Web Services服务、安全机制、预付费用电业务等功能的独立系统,它不依 赖于Apache、IIS等其它W|eb服务器运行。系统采用工业远程监控相关技术实现对现场 设备的数据采集和控制;将Web发布、Web报表服务、安全机制、设备组态管理等基 础功能统一封闭成一个核心平台模块,将预付费用电业务相关的所有功能在应用层实 现。其基本设计是采用平台的设计思路,运用分层设计技巧,将系统的基础服务功能和 应用的业务逻辑功能分开设计与实现,以实现系统平台的复用性,降低平台功能与应用 功能的耦合性。 2.2系统需求分析 根据当前预付费电能管理系统所存在的实际问题,本系统的构建以实用性、实时性、 开放性、通用性、可扩展性、可复用性为指导原则。基于对预付费电能管理系统的调研 情况以及同用户的沟通,系统的具体需求如下: (1) 监测功能:实现对现场预付费电表数据的实时和定时采集,支持对电表状态, 包括余电、电量低等运行状态,开关合闸、跳闸等开关状态的监测,支持对恶 性负载的自动识别等。 (2) 发布功能:实现对系统的标准HTTP发布,方便用户通过标准浏览器方便访 问系统;支持以Web Services等方式开放系统功能,向第三方系统提供预付费 服务(如查询当前电量、售电、退电等功能),以实现对第三方系统(如一卡通 系统等)的接入支持。 (3) 安全机制:实现基于角色的访问控制,对不同用户角色(如管理员、售电员、 审计员)赋于不同的权限。支持以标准SSL通讯、网络通讯数据加密等方式实 现数据的安全性。 (4) 现场设备通讯:实现系统与现场设备的通讯机制,制定一套统一的通讯协议, 支持对现场多种设备(包括电表、水表、PLC等)的统一采集与控制,以实现 通用性的设计原则。 (5) 设备数据统一访问:支持将设备变量(如预付费电表的总用电量、当前剩余 电量等)统一组织在一个树结构中,以便定义对各设备变量数据的统一访问接 口。在工业远程监控系统中,通常使用OPC技术来实现对各种设备的组态和管 理。 (6) 预付费管理:支持预付费电能管理系统的基本功能,包括对电表等设备的管 理;对帐户、角色、权限分配的管理;提供售退电,用电实时检测与监控的功 4 第二章基于Web技术的预付费电能管理系统总体结构 能,对财务和审计的管理,支持对用电、售电的统计分析功能;支持短信、邮 件等形式的用电报警(如低剩余电量报警、断电报警等)功能。 (7) 自主管理、自助服务:对用户开放用电、售退电明细、统计图表的查询入口, 实现透明的消费;在各种安全机制的保障下提供Web Services方式售退电接口, 实现多种形式的自助服务。 2.3分层的系统总体结构 通过对系统需求的分析,结合平台的设计思想,和分层设计技巧,将系统的基础服 务功能和应用的业务逻辑功能分开设计与实现,将实时数据采集、统一设备控制、Web 发布、安全机制等基础服务功能封装成核心平台层,将预付费电能管理系统作为平台的 一个具有应用,在应用层实现。系统的设计共分为五层,分别为核心平台层、用户层、 应用层、网络层和现场设备层。系统的总体结构如图2.1所示: 这五个层分别实现如下功能: 1)用户层 5 江南大学硕士学位论文 提供标准的HTTP、Web Services方式的功能访问,用户可以通过标准的浏览器、 自助售电机、自助服务客户端程序等各种终端访问系统。 2)应用层 构建在核心平台层的数据和基础服务之上,实现预付费电能管理的业务逻辑。基于 这种设计,实现平台的可扩展性,以在核心平台层基础之上构建其它应用。预付费电能 管理系统的应用层需要实现以下七大功能群组,说明如下: (1)设备管理:对电表安装位置、表号、倍率、电表数据网关的管理与维护。 (2)账户管理:对账户个人基本信息,用电价格的管理和维护,开户、过户、销户 等的账户管理与维护。 (3)预付费管理:售退电的操作与审计,用电的实时检测与监控。 (4)财务管理与审计:账务报表生成及打印,实现账目清淅和可追溯性。 (5)统计分析:用电和售退电的统计图表和分析图表的生成及打印。 (6)用电报警:为用户提供短信、邮件等形式的低剩余电量报警、断电报警等服务。 (7)自主管理,自助服务:对用户开放用电、售退电明细、统计图表的查询入口, 实现透明的消费;提供充值卡形式的自助售电和基于POS机的刷卡自助服务。 3)核心平台层 实现工业实时Web服务、标准OPC服务、Web报表提供服务、安全机制等核心功 能,为构建实时监控式的Web应用系统提供基础服务。应用实时数据采集与工业远程 监控技术,实现对现场设备的监控组态管理。工业实时Web服务,在传统Web服务器 基础功能上,丰富了基于Comet技术的设备实时监控功能,以实现系统的Web矢量化 现场监控需求。安全机制对应用层的事件操作进行安全审计,鉴别应用层用户角色与权 限及控制终端用户对应用层的安全访问。概括来说,核心平台层实现以下功能: (1)OPC标签:符合OPC标准,实现与各种流行监控软件的无缝连接;为各类现场 设备提供统一的数据访问标准接口。 (2)实时Web服务:工业实时w曲服务,采用2048位SSL加密通讯,通过基于 HTTP协议的实时数据推送技术(Comet),呈现Wreb矢量现场的实时监控效果。 (3)现场设备组态:将不同地域的现场设备整合在一个资源平台,并构建成一个变 量树,进而实现现场设备的组态管理。 (4)双因子认证:通过短信服务传递一次性口令及使用含RSA算法的电子钥匙,实 现有效可靠的系统保护,杜绝身份盗用、诈骗攻击、和数据泄露。 (5)Web报表服务:通过集中报表服务、报表设计器、打印插件,实现精确显示、 打印和导出PDF、Excel等多种格式报表,满足对报表的多种样式和多种文档 格式的需求。 4)网络通讯层 数据网关协议DGP,规范了核心平台层与现场设备层之间的通讯。DGP协议传输 于TCP/IP网络之上,它定义了数据网关与现场设备之间的一系列操作命令,如数据网 6 第二章基于Web技术的预付费电能管理系统总体结构 关参数设置命令,时钟校时命令、现场设备的数据采集与控制命令等。使用核心平台层 提供的DGP协议接口,能有效地实现应用层与现场设备层的交互。 5)现场设备层 完成数据网关与现场设备的连接,在基于Web技术的预付费电能管理系统中,对 应预付费数据网关和预付费电表的连接。数据网关与电表采用RS485线连接。核心平台 层中的OPC服务器根据不同的数据网关类型,调用相应的设备驱动程序,与现场设备 层建立联系。应用层设置现场设备模板以定义现场设备中需要集抄或控制的设备变量, 以便针对不同的应用配置不同的现场设备变量。 7 江南大学硕士学位论文 第三章核心平台层的设计与实现 3.1主要功能模块 核心平台层实现通用的基础服务(如Web发布、身份认证、短信服务等)和框架设 计(如设备通讯驱动框架),是系统的重要组成部分。根据核心平台层的功能需求,将 其划分成8个功能模块,分别是HTTP HTTP Server Server,OPC Server,SMS Server,Web Report, Center和Secure Center。 Power Program Script Environment,Device Framework,Database 主要提供标准的Web发布功能,其设计基于事件驱动的IO模式,并使用Comet技 术,以实现实时Web服务器的功能需求。 oPC Server 主要实现一个符合OPC标准的OPC服务器,以便与各种流行监控组态软件进行无 缝连接,从而轻松接入多种硬件设备;该模块为不同厂商的各类硬件产品,提供统一的 数据访问标准接口。 SMS Server 实现与短信网关的交互操作,并通过SMS.XML标准接口,实现基于XML方式的 网页短信服务。SMS.XML实现短信发送操作的接口如下: 其请求格式为: /WriteSmsMessage.xml?PhoneNum=1 30xxxxxxxx&UserMessage=base64(escape(Message)) 其中PhoneNum。是接收方的手机号,Message是要发送的短信信息,短信信息在发送前 先将特殊字符作转义处理,再通过base64编码后发送。 返回数据是一个标准的XML文档: <?xml version=”1.0”encoding=”gb23 1 2”?> <SmsMessage> <WriteResult> <Message></Message> <Flag></Flag> <|WriteResult> <|SmsMessage> 返回结果中,Message结点内容是短信网关返回的结果消息,Flag结点的内容是短 信发送结果值,当值为1时表示发送短信成功,值为0时表示发送短信失败。 Web Report w.eb Report模块主要实现三个功能。(1)实现基于服务器脚本的集成式报表服务接 口;(2)实现用户针对各类数据的自定义报表接口;(3)将各类报表以多种格式输出, 包括Wrord、Excel、PDF等。 Power Program Script Environment Power Program Script Environment模块实现三个功能。(1)提供一个W.eb后台脚本 环境,通过整合多种脚本解释引擎(包括VB Script、JavaScript、PHP等),实现后台脚 本的编程、解释和执行;(2)通过对三个标准脚本对象Server、Request和Response的 第三章核心平台层的设计与实现 扩展,实现平台特有的功能。其中Server对象有四组扩展功能:分别为OPC-XML相关 的操作组,设备变量的写入操作组,短信操作组,数据库操作组;(3)提供一个后台脚 本自动执行机制,以定时、周期、事件触发等方式自动执行脚本任务。 下面详细说明标准脚本对象Server的扩展功能及其接口。 OPC—XML相关的操作以一个OPC路径为参数,返回该路径所代表的OPC组、OPC 项或OPC变量的值和相关信息,返回是一个标准XML文档。例如接口: BSTR Server.GetOPCValueXML(LPCTSTR lpszOPCPath)实现 从内存OPC树中获取OPC变量的实时数据。另外两个接口是 BSTR BSTR Server.GetOPCGroupXML(LPCTSTR Server.GetOPCNodeXML(LPCTSTR lpszOPCPath)和 lpszOPCPath), 分别获取OPC组和OPC项的相关信息。 设备变量的写入操作包含三个接口,分别为 a、BOOL Server.WriteOPCValueData(LPCTSTR lpszOPCPath,double b、 BSTR ValueData), uFYSBID, Server.SendUserCmdTODTU(LPCTSTR lpszHexCmd,DWORD lpszNO), LPCTSTR c、BSTR Server.SendUserCmdToNode(LPCTSTR lpszHexCmd,DWORD uNodelD,LPCTSTR lpszNO)。 接口a通过指定OPC变量的值及其OPC路径以完成对该变量对应的现场设备变量 的设置。接口b和C用于向现场设备发送命令。 短信操作接口封装了SMS Server的短信服务,方便在后台脚本中直接发送短信, 包含如下一个接口: BOOL Server.SendSmsMessage(LPCTSTR lpszPhoneNum,LPCTSTR lpszUserMessage)。 数据库操作组完成脚本与数据库的交互功能,实现从数据库中获取数据或更新数据 库。包含两个接口: a、BSTR b、BSTR Server.WriteXMLToDB(LPCTSTR lpszSQL) Server.ReadXMLFromDB(LPCTSTR lpszSQL) 这两个接口的参数都是一段标准的SQL语句。 Device Framework 主要功能是制定一套与各种硬件设备通讯的接口规范。当平台要接入不同的硬件设 备时,只需要根据该硬件设备的特性,实现这些接口,就能实现平台与硬件的正常通讯。 详细说明请参考章节3.2“统一的设备通讯驱动接口”。 Database Center Database Center模块实现一个通用的数据库存储管理功能,以支持多种类型的数据 库服务器,如Oracle、Mysql、MS SQLServer、DB2等。主要包含以下三个功能:(1) 提供对检测数据的实时存储备份支持,以在网络和数据库发生异常时保障数据的完整 性;(2)实现对自定义外部存储的支持,将实时检测数据无缝切入到其它应用管理系统; (3)采用数据库连接池技术,为高并发数据库访问操作提供标准XML接口。 Secure Center 9 江南大学硕士学位论文 实现一套权限管理机制和用户认证机制,详细说明请参考章节3.5“RBAC和双因 子认证机制实现安全控制90 3.2统一的设备通讯驱动接口 核心平台层对于不同的硬件设备,调用相应的设备通讯驱动来通讯。设备通讯驱动 是一些动态链接库DLL文件,这些DLL文件导出相同的通讯接口,而这些相同的通讯 接口组成了设备通讯驱动框架。 设备通讯驱动实现四块功能,(1)分为多步的读操作;(2)写操作;(3)对设备自 报的应答操作;(4)即抄操作。设备通讯驱动操作的流程图如图3.1所示: 图3.1设备通讯驱动流程图 10 第三章核心平台层的设计与实现 在流程图中,通讯的每一操作步骤都在通讯接口中实现,设备通讯驱动框架定义了 这些操作的接口。如“获取读操作步骤N"操作的接口定义如下: extern”C”_declspec(dllexport)int GetDTUReadStepNum(u_int32_t幸StepNum) 该接口的返回值是StepNum,表示读操作的步骤数。“获取第i步读操作命令"的接口定 义如下: extem”C”_declspec(dllexport)int GetDTUReadStepCmd(u_int64_t STNO,uint32_t StepNum,char木szReadCmd,int宰nCmdLen) 这里第i步操作命令在szReadCmd中返回。 设备通讯驱动框架中的所有接口在下面的表3.1中列中。 表3.1设备通讯驱动接口定义 接口功能 获取读操作步数 获取第i步操作命令 解析读操作返回数据 接口定义 int int GetDTUReadStepNum(u_int32_t奉StepNum) GetDTUReadStepCmd(u_int64_t STNO,u_int32j char宰szReadCmd.int幸nCmdLen) i, int ParseDTUReadStepData(u_int64_t STNO,u_int32_t StepNum,char *szParam,int nParamLen,char幸szReadData, int nReadLen,char,?szCodeData,int宰nCodeLen) 获取写操作命令 获取即抄命令 获取自报应用命令 解析写操作应答数据 int GetDTUWriteCmd(u_int64_t STNO,char宰szParam, int nParamLen,double,Value,char,*szWriteCmd,int}nCmdLen) STNO,u_int3 t int GetDTURequCmd(u_int64_t GetDTURespCmd(u_int64_t uTestTime, char?szWriteCmd.int幸nCmdLen) int STNO,u—int32一t uTestTime, char事szReadData,int nReadLen,char,*szRespCmd,int奎nCmdLen) int ParseDTUReadCmd(u_int64_t STNO,char牛szParam, int nParamLen,char幸szReadCmd,int nReadLen) 3.3 oPC、Comet技术实现实时Web监控 OPC技术简介 随着计算机科学技术和远程工业监控技术的发展【lo】,远程工业监控系统的规模越来 3.3.1 越大,应用越来越多。但是不同厂家提供的现场设备的通讯机制并不相同,远程工业监 控系统需要对不同的现场设备开发越来越多的设备通讯驱动程序,而且这些设备通讯驱 动程序还没有通用性。因此需要一个统一的标准和规范来实现不同软硬件的互操作性。 OPC(Objoct Linking and Embedding for Process Contr01)技术是一套技术规范和工业标 准【11】,它是由许多世界领先的自动化软、硬件公司与微软公司共同合作制定的。OPC技 术基于微软的OLE、COM和DCOM技术,由一系列用于过程控制和制造业自动化应用 领域的标准接口、属性以及方法组成。OPC为多种多种的现场设备提供了一个统一的接 口、而与过程中的控制软件或现场设备无关。 OPC规范采用OLE/COM/DCOM机制作为应用程序级的通信标准,使用 Client/Server模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服 务器的形式提供给用户,解决了软、硬件厂商的矛盾,提高了系统的开放性和可互操作 江南大学硕十学位论文 性。OPC在工业控制设备与应用软件之间建立了统一的数据存取规范, 实现了在独立 的计算机、网络上的不同应用程序以及不同平台上的应用程序之间的相互通信,具有了 开放、易实现、即插即用、语言无关性、代码重用性、易于集成性等的特点,可以实现 系统软件与硬件设备之间完全无缝集成和真正开放的通讯【l 21。 目前,OPC规范已经包括了OPC数据访问、数据交换、历史数据访问、报警与事 件、批量过程、安全规范和XML—DA规范【l 21。服务器和客户端之间的实时数据存取机 制主要在OPC数据访问规范中解决。应用OPC技术规范的数据存取机制,可以实现 传统工业监控系统的数据共享,提升监控系统的开放性和设备兼容性。各种应用软件在 实现了OPC的接口规范后,便可以通过OPC接口方便的进行连接与通讯,从而增强软 件间的数据交换的效率和便捷性。 在OPC数据访问规范中【l 01,规定OPC服务器的实现必须包含3种对象:分别是 (1)服务器(Server)对象;(2)组(Group)对象;(3)项(Item)对象。这三种 对象间的关系如图3—2所示。其中Server对象包含了OPC服务器自身的相关信息,它 可以对Group对象进行添加和删除,是OPC组对象的容器。OPC组对象包含了这个组 的相关信息,并提供对OPC项对象的逻辑组织和管理的功能机制。OPC组对象为OPC 客户程序提供了一种组织数据的方法。一个客户程序可以将一个设备的若干变量组织到 一个组对象中,并可以设置需要组织的项等。OPC项对象与数据项关联,代表了OPC 服务器到数据源的一个物理连接,是读写数据的最小逻辑单位。每个数据项须具备值 (Value)、品质(Quality)和时间戳(Timestamp)三个属性。OPC规范在工业控制设 备和控制软件之间建立了统一的数据存取规范。 图3-2 OPC Server/Group/Item关系图 3.3.2 Comet技术简介 传统模式的Web应用以客户端发出请求、服务器端响应的方式工作。这种方式不能 满足很多现实应用,比如监控系统、即时通信系统、即时报价系统的需求,因为这些应 12 第三章核心平台层的设计与实现 用都要求服务器能实时地将更新的信息传送到客户端,而无须客户端明确发出请求。 Comettl3J技术就是在这种需求背景下产生的。 概括地说,Comet是一种基于H1vrP持久连接的“服务器推"技术。在一个Comet 应用中,客户端不需要采用轮询方式从服务器获取信息,服务器通过保持一个HTTP持 久连接,并通过这个连接向客户端推送数据。因此,Comet应用通过使用持久HTTP连 接来减少客户端向服务器端发送请求。Comet应用的网络交互模型如图3.3所示【141。 图3—3 Comet网络交互模型图 如图3.3中所示,Comet应用不仅能响应用户的请求,它还能在任何时候将数据发 送到客户端。这些数据在一条预先开启的HTTP持久连接上传输。Comet的这种传输模 式要求数据传输收发双方都基于事件驱动机制。从网络交互模型图中可以看出,Comet 也和AJAX一样,采用了异步处理模式,实现了Comet传输机制的应用能够在忽略不计 的时间内交互变化了的数据。因此,Comet的这些特性,使得它适合应用于各式各样的 监控系统和多用户交互应用中。 3.3.3采用0PC-XMI,、Comet和SVG技术实现实时Web监控 在服务器端采用OPC.XML[”1技术实现数据采集与同步,利用基于Comet技术的 HTTP服务器将实时数据直接向客户端浏览器推送,在客户端使用SVG技术呈现监控界 面。 (1) 实时数据采集 江南大学硕士学位论文 OPC.XMLI”I技术是OPC技术结合Web数据通用语言XML,实现OPC数据向 Internet上的应用程序开放的一种规范。 系统的实时数据采集包括三个过程;1)现场设备层的物理设备取得现场实时数据 后,与OPC服务器同步数据;2)核心平台层的实时Web服务器向OPC-XML组件请求 实时数据;3)OPC-X/vlL组件从OPC服务器获取实时数据并返回给实时Web服务器。 OPC-XML组件与OPC服务器之间以COMIDCOM方式通信。OPC.XML组件有两个功 能:l憷过COM/DCOM调用OPC服务器组件获取实时数据;2)解析实时Web服务器 传送过来的数据请求XML文档,并将从OPC服务器获取的数据信息打包成XML格式 返回给实时Web服务器。对于0PC服务器组件来说,OPC-XML组件是客户端,而对 于访问OPC-XML组件的Web服务器来说,它又是服务器。OPC-XML组件的 lOPCFunction接口实现其访问OPC服务器的客户端功能,如创建OPC服务器对象、OPt 组对象及对各接口及其成员函数的访问,实现对数据的同步、异步访问等。 OPC-XML技术能有效地将获得的实时现场数据嵌入到高层应用程序中,实l蛆从现 场底层的监控和控制系统到较高级别的企业应用程序的整个信息系统的纵向信息集成。 (2) 实时数据更新 核心平台层的实时Web服务器采用基于事件驱动的IO模式。使用Comdl41技术, Web客户端与Web服务器建立一个持久的HTTP连接;服务器端一旦有数据更新事件 产生,则把更新数据通过这个持久连接立即推送到客户端显示。comet技术使用持久连 接来降低信息传输的延迟,有效地满足了Web监控的实时刷新需求,并且避免了轮询方 式所带来的性能问题。 (3) 监控界面呈现 SVG(Sc列able Vector Graphics,可伸缩矢量图形】[161是W3C制定的基于XML标准的 矢量图形语言描述规范.是一个标准开放的矢量图像和动画格式。使用SVG可以在Web 页面上呈现出各种各样的高质量的矢量图形,并支持动画等众多的功能。系统中针对实 时监控预付费电表的需求,创建了SVG电表表头画面。如图3-4所示。 画 图3-4SVG监控表头 SVG表头中的各显示数据绑定从服务器端推送过来的实时变量,包括电表累计用电 量值totalt预付费剩余电量值remaining,电表当前状态字status等。状态字是一个8位 的整数,通过测试状态字中各位的值,能获得电表当前的各种状态,如状态字的第1位 表示电表开闸跳闸状态等。SVG表头里上侧LED显示区将循环依次显示总用电量值和 第三章核心平台层的设计与实现 剩余电量值,下侧LED显示电表的用电状态和在线离线状态,并当出现非正常状态时, 将以红色灯突出显示。通过使用SVG技术,使监控界面能达到身临其境的效果。 3.4核心数据库设计 ER(entity.relationship)数据模型是基于现实生活中的基本对象集及对象集间的联系 等概念的一种抽象模型。在ER数据模型中,这些基本对象称为实体。ER数据模型主要 用于辅助设计数据库【17】。我们可以使用ER数据模型来描述一个系统中的实体及实体间 的联系,并使用ER图来表示,ER图可以显示数据库中的实体和实体间的关联,以及这 些实体和关联的属性。 核心数据库描述了和核心平台层相关的一些通用表结构,图3.5是其ER图。图中 只描述了与用户设备、权限、通讯等相关的关键实体,而省略了一些相对独立的实体(如 系统日志、流量统计、短信服务、自动运行任务等)的描述。与应用紧密相关的数据库 设计请参考第五章节的相关内容。 3.5核心数据库ER图 江南大学硕士学位论文 设备:用户设备,记录现场设备结点相关的信息。 分组:设备分组,用于组织用户设备结点,多个用户设备可以组织在一个设备分组 中统一管理。 组织部门:存储用户设备所归属的部门的信息,是用户设备的另一种组织方式,多 个用户设备可以组织在一个组织部门中统一管理。 角色:用户权限定义,规定用户可以访问的用户设备范围。 用户:系统操作人员,每个用户分配一个角色,具有该角色限定的访问和操作权限。 变量:设备变量,定义用户设备中可以访问和控制的变量。 变量模板:组织多个用户设备变量以统一管理。 通讯单元:数据传输单元,是系统与现场用户设备通讯的中介。 传输接口:定义系统与通讯单元的通讯方式,包括端口号,所用设备通讯驱动,通 讯协议类型等。 历史数据:记录用户设备中各变量的历史数值。 以上就是核心数据库中要存储的主要实体。其间的关系主要包括:设备分组与用户 设备的一对多关系,一个设备分组可以包含多个用户设备;角色与用户设备的多对多关 系:一个角色可以赋于对多个用户设备的访问权限,一个用户设备也可以被多个角色所 访问;用户设备与变量模板的多对一关系:多个用户设备可以共用一个变量模板;变量 模板和设备变量的一对多关系等。理清了数据库中的实体与联系,可以得出数据库表结 构,下表展示了数据库中的三个主要表:用户设备表OPC Node,用户变量表OPC 和设备分组表OPC Group。 Value 表3.2用户设备表:OPC 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Node 字段名 ProjectID NodeID GroupID nFYSBID nDriverId szNO szName szOPCNode uSTNO szSTNO uRealRecordID 类型 bigint bigint bigint bigint bigint varchar varchar varchar bigint varchar bigint 8 8 8 8 8 长度 精度 小数位数 默认值 允许空 主键 说明 工程内部ID 节点内部ID 所属分组ID 通讯接口ID 终端设备ID 32 32 32 4 32 8 8 4 8 8 8 256 32 16 0 0 0 0 通讯识别码 名称 OPC名 设备站号 设备编号 0 0 l 0 备用 备用 是否检测开关 检测周期 设备模板ID 设备安装时间 0 _ uAlarmRecordID bigint bOnTe stFl ag uTestTime TypeID uTime szUserAddress szUserPhone int bigint bigint bigint varchar varchar 设备安装地址 客户联系电话 第三章核心平台层的设计与实现 续表3.2用户设备表:OPC Node ● ● 119 120 szServicePhone varchar szInfo varchar 32 256 维修服务电话 备注 表3.3设备分组表:OPC_Group 序号 l 2 3 4 5 6 7 8 9 10 11 12 13 字段名 ProjectID ParentID GrouplD SZNO szName szOPCGroup szOrganize szUnit szCountry szProvince szPhOneNum szAddress SZInfo 类型 bigint bigint bigint varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 8 8 8 长度 精度 小数位数 默认值 允许空 主键 说明 工程内部ID 上级分组ID 当前分组ID - 32 32 32 32 32 32 32 32 256 256 分组编号 分组名称 分组OPC名 _ - ● 0 √ t 0 所属组织 所属单位 所属国家 所属省份 联系电话 地址 备注 表3.4设备检测变量表:OPC i序号 l 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 VALUE 字段名 ProjectID ValueID TypeID nTestID szName szOPCValue uDataType nDataDiv nDataOffset szMemAddr uMemType uRWFlag bRecordFlag nDataIni tValue nDataDefautValue szUnit nDispDiv GSID XYID alarmsl alarms2 alarms3 类型 bigint bigint bigint bigint varchar varchar bigint float float varchar bigint int int float float varchar bigint bigint bigint float float float 长度 8 8 8 8 32 32 8 8 8 32 8 4 4 8 8 32 8 8 8 8 8 8 精度 小数位数 默认 可空 主键 说明” 工程内部ID 设备变量ID 所属模板ID 0 t 0 虚拟变量ID 变量名称 OPC名 数据类型 精度系数 偏移量 J - - 0 寄存器地址 寄存器数据类型 读写属性 是否允许记录 初始值 参考值 _ 检测量单位 小数点位 公式计算ID 非线性表ID t 0 √ 超高限报警值 高限报警值 低限报警值 17 江南大学硕士学位论文 续表3.4设备检测变量表:OPC 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 alarms4 severityl severi ty2 severity3 severi ty4 enabledl enabled2 enabled3 enabled4 szPlayAlarml szPlayAlarm2 szPlayAlarm3 szPlayAlarm4 uAlarmTimeOut 1 uAlarmTimeout2 uAlarmTimeout3 uAlarmTimeout4 float bigint bigint bigint bigint int int int int varchar varchar varchar varchar int int int int 8 8 8 8 8 4 4 4 4 256 256 256 256 4 4 4 4 VALUE - _ √ t t t 0 - ‘ ● _ - √ _ t 0 _ 超低限报警值 超高限报警级别 高限报警级别 低限报警级别 超低限报警级别 超高限报警开关 高限报警开关 低限报警开关 超低限报警开关 超高限报警声音路径 高限报警声音路径 低限报警声音路径 超低限报警声音路径 超高限重报警时间 高限重报警时间 低限重报警时间 超低限重报警时间 3.5 RBAC和双因子认证机制实现安全控制 基于角色的访问控¥1](RBAC,Role.Based Access Contr01)11跳1】概念最初是在1992 3.5.1基于角色的访问控制(RBAC) 年由美国国家标准局所提出的,目的是为了隔离用户与权限,以便更符合系统的用户、 组织、数据和应用的特征。基于角色的访问控制模型是目前国际上流行的先进的安全访 问控制方法,其实质是在用户和权限之间建立一种机制,系统的权限以角色为单元进行 分配,用户被赋于一个角色也就获得了其相应的访问权限。采用基于角色访问控制,系 统管理人员根据需要定义各种用户角色,并设置角色合适的访问权限,再根据用户的职 任和资历为其分配不同的角色。这样,整个访问控制过程通过将访问权限与角色相关联, 角色再与用户关联,实现了用户与访问权限的逻辑分离【20l。 在本系统中,定义了三个典型的用户角色,如下:1)售电员:负责对其管辖区域 内的电表售退电,查询其本人的售电报表;2)审计员:负责查询其管辖区域内的售电 员的售电报表和综合报表,操作日志;3)管理员:表位管理、账户管理、售退电、查 询等所有权限。系统在实现时将角色作为安全策略的核心。用户认证与交互过程如下: 1)用户将其认证信息提交给访问控制系统,访问控制系统获取用户的角色,并将 认证结果返回给用户,系统使用用户名/密码结合USB Key进行认证。 2)认证后访问控制系统接受访问请求,将用户角色和访问请求发送出去,以验证 用户是否拥有执行当前请求的权限,用户的角色是否可以授权。 3)如果拒绝用户的访问请求,访问控制系统将向用户层返回出错信息和原因,否 则将请求定位到资源层,并将处理结果返回给用户。 18 第三章核心平台层的设计与实现 图3-5 RBAC用户交互框图 3.5.2双因子认证机制 身份认证就是证实用户的真实身份与其所声称的身份是否相符,以防止非法用户通 过身份欺诈访问系统资源的过程1221。 身份认证采用的方式虽然各异,但都是基于以下的三种因子来认证的: 1)用户所知道的(What You K/low):比如口令。这是一种目前应用最广泛的认证 方式,一般采用“用户名+口令”的形式。认证的过程是客户端将用户名和口令 信息传送到认证中心,认证中心将这些信息与数据库中的相应项进行匹配,如 果相符则认证通过。 2)用户所持有的(What You Have)-比如令牌、USB Key等物理介质。系统给合 法用户分配一个令牌或USB Key等物理介质,一般介质中都会产生或存储用户 的个人化信息如动态密码、数字证书等。当进行认证时,客户端将物理介质中 的认证信息发送给系统。 3)用户所具有的(肌o YouAre):也就是生物特征认证方式。认证方通过提取被 认证方的某些生物特征来认证身份。典型的特征如虹膜、指纹、DNA等。这种 认证方式准确性较高,但成本昂贵,仅适用保密程度很高的场合,不容易普及。 双因子认证机制就是采用结合了用户所知道的和用户所拥有的两种因子的一种更 加安全和易用的身份认证方式,本系统采用的是USB KEY+PIN(Personal Number)口令的用户认证方式。 USB Key是一种通过USB接121与计算机连接的智能存储设备,是为了PKI应用【23】【24】 Identity 的安全性而设计的。每一个USB Key一般具有8K.128K的安全数据存储空间,存储空 间可以存储用户数字证书和用户私钥等安全数据。用户无法直接读取安全数据存储空间 中的内容,对该存储空间的读写操作必须通过程序才能进行,并且存储空间中的数据是 不可导出的,从而杜绝了用户数字证书或身份信息被复制的可能性。 USB Key内置的CPU芯片,能够实现PKI体系中使用的各种数据加密解密、数据 摘要、数字签名等算法,这些算法只在USB Key内运行,能够保证用户密钥不会出现 在计算机内存中,从而杜绝了黑客对用户密钥进行截取的可能性。USB Key的使用能够 保证电子印章系统的安全性。 基于以上的介绍,系统在低成本和安全性的前提下,对用户的登录认证采用用户名 /密码结合USB Key的双因子认证机制。 19 江南大学硕士学位论文 第四章 4.1预付费电表协议设计 现场设备层的设计与实现 预付费电表协议采用主.从结构的半双工通讯方式【2 5。。数据网关为主站,预付费电 表为从站。每个预付费电表均有各自的地址编码。通讯链路的建立与解除均由主站发出 的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据长度、数据域、帧信息 纵向校验码及帧结束符等七个域组成。每部分由若干字节组成。 帧是协议传送信息的基本单元。帧格式如表4.1所示: 表4.1预付费电表协议用信息帧格式 名称 帧起始符 地址域 帧起始符 控制码 数据长度域 数据域 校验码 结束符 代码 68H A0’A6 68H C L DATA CS 16H 帧中各域的定义如下: 1.)帧起始码68H:表示一帧信息的开始,其值为68H=01101000B。 2.)地址域A0 ̄A5:地址域由六个字节组成,其中A肛A2为局编号,每字节2位 BCD码;A3为1字节ASCII码,表示生产厂商的代码;A4为2位BCD码, 取电表条形码中表示年份的2位;A5保留。表号长度为12位,其中厂商代码 为数字或字母。低地址在先,高地址在后。当某一字节以AAH寻址时忽略该 字节地址,以便于实现缩位寻址。当地址为999999999999H时,为广播地址。 3)控制码C:控制码的格式如图4.1所示 l DO Dl D2 D3 D4 D5 D6 l D7 功能定义 传送 方向 从站异常标志 图4—1预付费电表协议控制码格式 如图中所示,D7=0时表示该帧由主站发出,D7=l时表示由从站发出;D6=0表示 从站对命令的正确应答,D6=l表示从站对异常信息的应答。DO~D5为控制码值区,其 不同数据编码表示不同的命令,如协议中将通用写操作命令编码为000100B,即04H, 通用写操作正常返回值为10000100B,即84H,其异常返回值为11000100B,即C4H。 第四章现场设备层的设计与实现 4)数据长度L:L为数据域的字节数。L=0表示无数据域。 5)数据域DATA:传送时发送方按字节进行加33H处理,接收方按字节进行减33H 处理。 6)校验码CS:一个字节,从帧起始符开始到校验码之前的所有各字节的模256的 和,即各字节二进制算术和,不计超过256的溢出值。 7)结束符16H:标识一帧信息的结束,其值为16H=00010110B。 协议还规定,信息帧在传输时,所有数据项均先传送低位字节,后传送高位字节。 并且在发送帧信息之前,先发送1个或多个字节FEH,以唤醒接收方。在数据存储上, 协议共定义了4类电表数据,分别是(1)电表识别参数:包括表地址,系统字,电表 出厂编号等;(2)电表配置参数:如电表的报警电量阈值,报警负荷阈值,允许囤积电 量,通讯密码等,这些参数可通过写命令写入和修改;(3)购电信息:包括售电网点代 码、购电时间、购电量、购电次数、总购电量、最近购电记录等;(4)实时数据:包括 总用电量、剩余电量、实际透支电量、状态字等,这些数据只支持读取操作。协议共设 计了5种命令,以支持对预付费电表的操作。由于协议帧格式固定,因此不同命令功能 由控制码和数据域两字段定义,对于通用读写命令,则由数据域的最前面两字节的标识 码确定命令的功能。例如,购电操作命令,其控制码值是通用写命令控制码值04H,数 据域包括两字节的购电数据项标识代码E48FH及14个字节的购电信息,这14个字节 的购电信息分别是2字节的售电网点代码,6字节的购电时间,4字节的购电量和2字 节的购电次数。协议定义的所有命令在表4.2中列出。 表4.2。预付费电表协议命令集 序号 1 2 3 4 5 控制码 0AH 12H 0FH 04H OlH 数据域 新表地址 无 命令功能 写表地址 广播冻结 修改密码 通用写命令 备注 广播地址,仅总清状态下有效 广播地址,无应答 新旧密码及权限 数据域标识及参数 数据域标识及参数 通用读命令 以上简单地介绍了数据网关与预付费电表的明文通讯协议,在实际数据传输时,则 是通过电表内嵌的ESAM模块,采用3DES算法进行加密通讯。详细信息请参考4.3节 “协议加密通讯"。 4.2数据网关协议设计 数据网关协议规定了数据网关与核心平台层进行数据交换的方式。通讯双方以交换 协议数据包的方式进行通讯,每个协议数据包都包含数据包头,数据体和数据包尾三个 部份。协议共定义两种类型的数据包,分别是(1)应答包:由数据网关发往核心平台 层;(2)命令/数据包:由核心平台层发往数据网关。数据网关协议是一个基于ASCII 码表示的通讯协议,其每个协议数据包由起始标志符、命令编码、报文长度、时间、数 据域、检验和、结束标志符和结束分隔标志符共八个域组成。每部分由若干字节组成。 协议数据包格式如表4.3所示: 21 江南大学硕士学位论文 表4.3数据网关协议数据包格式 名称 起始标志符 命令编码 报文长度 时间 数据域 检验和 结束标志符 包分隔标志符 代码 SO CMD LEN TIME DATA CHKSUM E0 END 格式中各域的定义如下: 1)起始标志符SO:表示一个数据包信息的开始,其值为@字符。 2)命令编码CMD:一个字节的ASCII英文字符,不同的协议命令有不同的命令编 码值。 3)报文长度LEN:从起始标志符SO到数据域DATA的所有数据的字节个数,采 用四字节ASCII码10进制方法表示。 4)时间TIME:一个10字节的字符串,表示年月日时分的一个时间值,每个时间 项由两个字节表示,如2009年1月2日3时4分,在该域表示为地符串 “0901020304”o 5)数据域DATA:数据包的数据段。 6)校验和CHKSUM:一个字节,从起始标志符SO开始到校验和CHKSUM之前 的所有各字节的模256的和,即各字节二进制算术和,不计超过256的溢出值。 7)结束标志符EO:表示一个数据包信息的结束,其值为母字符。 8)包分隔标志符END:其值为0DH,即回车符。 协议定义了6个命令,各命令的功能及命令编码在表4.4中列出。 表4.4数据网关协议命令集 序号 l 2 3 4 命令名称 定时上报数据 设置网关参数 召测当前数据 读取软件版本号 设置数据网关标识 设置数据网关时钟 CMD(ASCII)值 A B C D E F | | 5 6 协议规定每条协议命令都采用发送一应答的方式工作。例如对于设置数据网关标识 命令,通讯首先由核心平台层发起,报文如下: @+命令编码(E)+报文长度(4字节)+系统时间(10字节)+出厂标识(11字节)+ 校验(2字符)+木\r 数据刚关执行设置操作后,向核心平台层发送应答报文,格式如下: @+命令编码(E)+报文长度(4字节)+系统时间(10字节)+校验(2字符)+木\r。 第四章现场设备层的设计与实现 以上简单地介绍了数据网关与核心平台层的明文通讯协议。数据网关与核心平台层 的加密通讯机制请参数4.3节协议加密通讯。 4.3协议加密通讯 4.3.1电表通讯加密 现场设备层的数据网关与预付费电表在RS485网络上采用预付费电表协议通讯。 RS485网络虽然具有专网物理隔离的安全作用,却不能解决恶意的物理接入,因此有必 要进行加密传输。 预付费电表内嵌的ESAMt261模块,采用3DESl27]算法对通讯包进行加密/解密。数据 网关为其控制的每一块电表分配不同的密钥。密钥的分发步骤如下: 1)数据网关Sn针对地址为Addr的电表Amml生成一个128位的密钥Key,并用 初始密钥加密后通知电表Amml; 2)电表Amml用初始密钥解密后获取密钥Key并保存,并用密钥Key来加密回复 命令并通知数据网关Sn; 3)数据网关Sn用密钥Key解密后获得正确的回复包,之后数据网关Sn与电表 Amml之间的通讯采用密钥Key进行加密解密。 与传统使用简单逻辑方式进行加密的系统相比,采用ESAM安全控制模块进行加密 通讯具有更高的安全特性。 4.3.2数据网关协议安全通讯 数据网关协议是核心平台层与数据网关进行通讯的协议。数据网关协议数据包直接 在TCP/IP网络上传输,需要有相关加密机制保证数据传输的安全性。 AESt281是一种对称分组加密算法。可使用128、192或256位密钥。AES加密算法 广泛应用于信息安全领域。数据网关协议采用128位密钥的AES加密算法。密钥的分 发与更新步骤如下: 1)数据网关每次与核心平台层建立连接时,将一个32位随机动态令牌Rnd和数据 网关标识码Sn通知平台层,之后的通讯都需要动态令牌参与加密。随机动态令 牌用于防止网络中的重复攻击; 2)平台层针对网关Sn生成一个密钥Key,并用初始密钥加密后通知网关Sn; 3)网关Sn用初始密钥解密后获取密钥Key,之后的通讯使用密钥Key进行加密解 密。 对于原始明文包P=Pack(Sn,Rnd,Data);加密过程如下: a、将明文包按128位为单位分成n个块,获得Pi;其中i=l,2….,n; b、使用初始向量IV对P1加密,得加密块C1=En(P1 c、对剩下的n.1块加密,得Ci=En(Pi XOR IV,Key); XOR Ci-1,Key);其中i=2,3,…,11 XOR De(Ci,Key)其中 解密时采用相反的过程:P1=IV XOR De(C1,Key);Pi=Ci—l i=2,3,…,n。 这种加密方式还隐藏了明文的模式,能避免针对明文进行的主动攻击。 江南大学硕士学位论文 第五章应用层的设计与实现 5.1 JavaScript简介 JavaScript[291[30】是一种轻型的、基于对象和事件驱动的解释型程序设计语言。目前 所有主流的Web浏览器都支持JavaScript。在句法构成上,JavaScript的核心语言与C、 C++和Java相似,都具有诸如if语句、while循环和&&运算符等这样的结构。但是, JavaScfipt与这些语言的相似之处也仅限于句法上的类同。JavaScript是一种弱类型语言, 也就是说,它的变量不必具有一个明确的类型。而且,与其说JavaScript的对象和C中 的结构或C++和Java中的对象相似,不如说它更像Perl语言中的关联数组。另外, JavaScript的继承机制是基于原型的,和C++、Java中的继承机制大相径庭。 核心JavaScript语言提供数字、字符串、布尔值等基本数据类型,并内置对数组, 日期和正则表达式对象的支持。 JavaScfipt大多在Web浏览器端使用。在通用核心功能之上,结合与浏览器相关的 扩展对象, JavaScript可以实现与用户交互、控制Web浏览器行为、动态修改Web浏 览器窗口中的网页内容等功能。浏览器端的JavaScript代码被嵌入在HTML网页中运行, 因此被称为客户端JavaScript,以强调脚本代码是运行在客户端机器上,而不是在Wreb 服务器上。 在功能上,利用JavaScfipt提供的字符串处理函数和正则表达式支持,可以检查电 子邮件、网络地址、信用卡号码、手机号码等的有效性。使用JavaScript提供的变量、 数据类型、条件语句、循环语句、函数、对象等一组基本的语言构件块,能完成数学计 算、操作日期和时间、分析字符串、操作数组和对象等功能。概括来说,JavaScript的 主要功能如下pl】: (1)控制文档的外观和内容;(2)控制浏览器的行为;(3)与用户交互;(4)使用Cookie 读写客户端的状态;(5)操作嵌入图像。当然JavaScript也不是万能的,它受限于与浏 览器和HTML相关的任务,并在受限制的上下文环境中使用,因此,JavaScfipt不具备 独立语言(比如C、JAVA等语言)所拥有的一些必须特性。JavaScript不具备以下特性: (1)除了能够格式化和显示HTML文档之外,JavaScript不具备有任何的图像处理能力 (2)出于安全方面的原因,客户端的JavaScript不允许读写文件;(3)除了能够让浏 览器下载任何URL指定的内容外,JavaScfipt不支持任何网络访问功能。(4)JavaScript 不具备任何多线程编程能力。 JavaScript的使用能使Web程序设计增色不少,JavaScfipt的客户端版本通过把可执 行的内容添加到网页中,这样一来,网页就不再是静态的HTML了,而是包含与用户进 行交互的程序、控制浏览器的程序以及动态创建HTML内容的程序了。 第五章应用层的设计与实现 5.2 ExtJS简介 ExtJSl321是一个用JavaScript开发的,主要用于创建前台用户界面,并与后台技术无 关的前台开源AJAX框架库。因此,可以把ExtJS用在.NET、Java、PHP等各种开发语 言开发的w.eb应用中。ExtJS通过参考Java Swing等机制来组织用户界面组件,无论从 UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的 JavaScript客户端技术的精品【33】。 ExtJS最开始是作为对另一个著名的JavaScript类库YUI【34】(Yahoo User Interface) 库的一个扩展,并提供YUI所不具备的功能和特性:易用的API和实用丰富的用户界 面组件。ExtJS提供的易用、丰富的用户界面组件,这些组件的功能和特性和桌面应用 中的非常相似,使得Web开发人员可以只关注Web应用的功能实现,而不必太关心技 术细节。 伴随着Wreb应用的繁荣,当前出现了大量的JavaScfipt开发类库,Lt511jQuery[351、 Prototypel3们、MooTools[371、Dojo[381等,而ExtJS不仅仅是另一个JavaScript类库—ExtJS 可以通过适配器的方式和其它类库一起工作。 ExtJS一般应用于要求高用户交互操作的Web应用中,比如一些需要处理操作和工 作流的Web应用。使用ExtJS能极大地简化Web应用开发‘39】: 1)ExtJS提供了一个易用的、跨浏览器的、兼容的用户界面组件,如window、grid、 form等。这些组件在实现时已经对不同浏览器的差异性做了很好的考虑,类库 用户使用时无需再考虑浏览器兼容性的问题。 2)ExtJS通过事件管理器EventManager与用户和浏览器交互,响应用户按键、鼠 标点击事件,监视浏览器的各种事件如窗口大小变化、字体大小改变等。ExtJS 提供的一套事件处理机制具有易用简单的接口、丰富的功能和良好的浏览器兼 容性。 3)与后台服务器的交互无需通过页面刷新来实现。因此,使用ExtJS可以使用AJAX 技术来向服务器发送请求及POST数据,并实时地处理返回数据。 在使用ExtJS类库时,我们首先要在页面中引用类库文件。因此,我们需要在Web 应用的HTML页面的HEAD头部分包含一些类库的文件。下面是一个使用ExtJS实现 Hello World输出功能的Web应用代码: <head> <title>Getting Started Example</title> <link rel=”stylesheet”type=”text/css” <html> href=-”lib/ExtJS/resources/css/ext.a11.CSS”今 <script type=”text/JavaScript” src=”lib/ExtJS/adapter/ext/ext?base.js”X/script> <script type2”text/JavaScript’’src=”lib/ExtJS/ext-all—debugds”></script> <script type=’’text/JavaScript”> Ext.onReady(function0{ 江南大学硕士学位论文 Ext Msg alert(’Hil,’Hello Worl∞; }), </script> </head> <body> (I—Nothinginthe body一> </body> </html> 使用ExOS库必须在页面中包含三个文件: ext-all C¥S:一个控制ExOS用户界面组件的级联样式文件。 ext-basejs:该文件提供ExtJS库的核心功能。 ext-all—debugj—ext—alljs:所有的用户界面组件都在该文件中实现。调试版本一般用 于开发阶段,而在发布产品时使用非调试版本。 一旦将所需的库文件包含进来后,我们就可以使用ExOS来开发应用了。如上面代 码中,我们调用ExtJS中的alert组件来输出‘HelloWorld’字样,并将这个输出功能封 装在一个匿名函数中,最后通过一个Ext.onReady函数来间接调用触发匿名函数的执行。 这里Ext.onReady函数的功能是在所有页面内容都加载完成后,去执行函数参数所代表 的可调用对象,也就是我们定义的输出‘HelloWorld’的匿名函数。执行后的结果如图 5-I所示: 图5-1 Exus HdloWorld程序 5.3应用层数据库设计 3.4节的核心数据库描述了和核心平台层相关的一些通用表结构,这节的应用层数 据库主要描述与应用层功能即预付费电能管理相关的数据库结构。图5-2就是应用层数 据库的ER图。ER图中的实体包括电表设备(即核心数据库ER图中的用户设备)、帐 户、帐户类型、操作日志、充值卡批次和充值卡等。 第五章应用层的设计与实现 俞畔 毯窖 军 值卡批 秽≮茎 管理>———叫电表设备 报警电量: -.---.—..._一一 _-_。。。。——‘’。、 .........J1..一 充值卡 值 拶嗵堡岁@ 悠 而 ,一一—’、 可囤积电量 图5-2应用层数据库ER图 帐户(Ammeter Account):存储对预付费电表设备的一组绑定信息。一个用户在系 统中必须有一个帐户,一个帐户管理一块电表设备。系统中每个帐户有一个唯一的帐户 号,帐户在开户操作后绑定一块电表,并在销户操作后解决与电表的绑定关系。 帐户类型(Ammeter AeeountType):每一个帐户都有一个帐户类型,帐户类型定义 帐户的预付费相关属性信息,如用电单价、报警电量、可囤积电量、报警负荷等。 操作日志(Ammeter Logs):记录与帐户相关的操行日志,如售退电日志、开销户 日志、客户端登录查询日志等。 充值卡(Ammeter Card):如同手机充值卡,可以使用充值卡上的充值密码对帐户 充值(即售电)。 充值卡批次(Ammeter CardBatch):对一批充值卡的统一管理,充值卡按批次生成, 同一批中的充值卡具有相同的面值和充值有效期。 以上就是应用数据库中要存储的主要实体,其中帐户是主要实体,也是所有实体围 绕的核心。其间的关系包括:一个帐户只有一个帐户类型;并管理一块预付费电表设备: 不同的充值卡可以对同一个帐户充值等。下面列出了应用数据库中的帐户表: 表5.1用户帐户表:Ammeter 序号 1 2 3 Account 字段名 AccountID AccountName AccountType 类型 bigint varchar varchar 长度 精度 小数位数 8 32 8 默认 允许空 主键 0 说明 帐户号 帐户名 0 帐户类型号 江南大学硕士学位论文 续表5.1用户帐户表:Ammeter 4 5 6 7 8 9 10 11 12 13 14 15 16 17 State IsUse CreateDate CloseDate Address Telephone Movephone Email Ident ityCard Password AmmeterNodeID AmmeterState ManCount Note varchar bit datetime varchar varchar varchar varchar varchar varchar varchar bigint varchar Int Account √ √ _ t 32 1 帐户状态,如销户 帐户是否注销不用 开户时间 销户时间 用户地址 电话号 手机号 电子邮件 身份证号 密码 电表设备号 电表状态,如冻结 帐户使用人数 备注 64 16 16 64 32 32 8 32 8 128 √ √ - 0 0 - - t 0 ● varchar 数据库表结构设计完成后,就可以开始视图、触发器、存储过程的设计。在系统开 发中,由于需求比较复杂,涉及的系统、接口也比较多,往往很难找到一个最佳的设计 来解决所有难题,这就要求我们灵活的运用数据库端的设计与开发,以减轻前端程序设 计的难度和工作量。本系统通过设计了一些视图(如电表视图View Ammeter、帐户与 电表视图View User、充值卡视图View draCpUegh_匹不序程端前与据数决解来)等 配的问题,通过将一些通用操作封装成存储过程(如开户操作存储过程 Proc Proc 、分页控制存储过程 Proc.PageControl tnuoccAnepO.计统电售月户帐取获、 AccountMonthReport等)来改善系统运行效率和降低后台脚本程序设计的复杂度。 5.4 Web应用实现桌面应用体验 根据第二章的需求分析和总体结构设计,应用层需要实现的功能包括设备管理、帐 户管理、售退电等预付费管理、账务管理、用电及售电统计分析、日志查询等。Web应 用的实现都包括三个组成部分:客户端的HTML及JS文件、后台的脚本文件和数据库 端的数据表及存储过程等。 本系统的实现将界面分成两组:设备管理相关的通用性功能组织在“系统管理”界 面中,而将预付费管理、统计分析等经常操作的功能组织在“首选项"界面中,方便用 户的使用。在系统界面开发上,系统采用基于AJAX和XHTML的组件库ExtJS开发, 使本系统具有了弹出窗口、下拉菜单、右键菜单、拖拽、数据表格、日历框、目录树等 桌面应用界面基本元素,极大地提高了用户的使用体验。 5.4.1基本实现机制 系统的“首选项”页面和“系统管理”页面都采用相同的页面布局,如图5.2是页 面的布局截图。页面共分为三个显示区域,上边是Logo显示区域,左边是功能导航区 第五章应用层的设计与实现 域,右边大块区域则是主显示区域,当用户点击左边的不同功能选项后,右边的主显示 区域将显示不同的内容。 在实现时,使用了ExtJS的BorderLayout组件来布局页面,将页面分为North、West 和Center三个块,分别对面上、左、右三个显示区域。对于左侧的导航区域。根据基于 数据驱动的编程原则,首先定义一个配置数据,再根据这些配置数据生成界面,这样在 功能选项组进行调整时,只需修改配置数据即可,不再需要修改程序结构。导航区域配 置数据如下,是一个JavaSefipt数组: Project UserNav=[ {text:’预付费管理1,nat'fie:’chargeManage’,iconCls:'nav-charge’,subIsATree:true, hasLeaf:true} 严省略部分代码+, ,{text:’用电分析’,nanle:。analyzeManage’,iconC/s:”nav-analyze” ,subs:[ ftext:’综合信息栏’,name:’homepage’,icon:’resources/images/new3 gie} ,{text:’用电对比图’,name:1comparcAnalyze..icon:'resources/images/compare.png’ ,disabled:!Project isAdmin) ,{text:。用电柱状图。,nflme:'pillarAnalyze。,icon:'resources/image咖illar.png+ ,disabled:[ProjecLisAdmin) ,{text:。用电趋势图1,name:'tendAnalyze’,icon:’resources/images/s29if ,disabled:!Project.isAdmin) ,{text:’月用电比例圈’,n跚e.'pieMonthAnalyze‘,icon:’resources/images/pie.prig+ ,disabled:!Project.isAdminl ,{text:年用电比例图’,r/arlle:'pieYearAnalyze。,icon:’resources/images/piepng。 ,disabled:!Project.isAdmin) ] 江南大学硕士学位论文 ) 严省略部分代码?/ 1 数组的每一项是一个关联数组,对应导航区域的卟功能组,每一个关联数组包含的项 有text、name、icon、disabled和subs等。其中text项的内容显示在功能组区域上,如 图5-2中的“用电分析”功能组区域所示:icon足功能组上显示的图标路径;disabled 项如果设置为true,那么该项就会酶藏;subs包含功能组的各子功能的配置数据,它也 是一个数组,其中各子功能的配置数据的结构和功能组的相同,具有text,name等项; name项是功能组及功能项的名称。当系统根据配置数据生成导航区域后,将通过Dame 值来匹配不同的功能两数。这里充分利用JavaScript语言的动态特征,当用户点击不同 的功能项时,比如,点击“综合信息栏”按钮后,由于其narfle值为“bomepage”,系统 将尝试调用Project do_homepage函数,而Project do homepage函数的功能是生成个 do 内容页面并覆盖显示在右边的主显示区域。所有的Project 系统的维护,便于系统的功能扩展。 5.4.2设备管理 xxx函数都将按相同的模 式实现功能,并通过配置数组的nalne值来组织功能,按这种方式来实现系统,能简化 设备管理界面通过对设备组及用户设备结点的添加、修改、删除等操作,来组织管 理一棵用户设备结点树,设备组的相关信息保存在表OPC puorG_信点结各设户用,中 息则保存在袁OPC Node中。图5-3是设备管理界面中添加用户设备的窗口截图。 第五章应用层的设计与实现 5.4.3预付费管理 在设备管理界面中生成的用户设备结点树,将在功能导航区域的“预付费管理”功 能组中显示。预付费管理分为两种界面,一种是多表管理界面。一种是单表管理界面。 当用户点击一个用户设备组结点时,将显示多表管理界面,如图5.4所示,此时该设备 组下的所有电表及其帐户信息在右边主显示区域中显示。主显示区域中的每个方格表示 一个电表(帐户),方格填充的颜色表示电表及帐户的状态,如黄色表示电表电量低. 绿色表示电表及帐户状态都正常等。该界面能从全局角度显示各电表的情况。当鼠标移 动到一个电表方格上时,将在一个提示帧中显示该电表及帐户的详细信息,如剩余电量、 帐户名等。单击选中一个电表后,可以在电表右键菜单或主区域的工具栏中选择对电表 的各种操作,如售退电、冻结、销户等,如图5.5所示。 当用户单击用户设备结点树中的一个电表结点时,将显示单表管理界面,如图5-6 所示。单表管理界面中包括一个该电表及帐户的基本信息表,一个SVG监控表头,一 个72小时用电柱状图和剩余电量曲线图,及一些操作按钮如售电、退电等。SVG表头 中的各显示数据绑定从服务器端推送过来的实时变量,以达到实时监控的效果,详细请 参考3.3.3小节。 江南大学硕士学位论立 图5-5预付费多表管理界面右键菜单 图5-6预付费单表管理界面 5.4.4售电操作 售电操作是本系统要实现的核心功能之一。售电操作的流程如图5-7所示 第五章应用层的设计与实现 图5-7售电操作流程图 流程中的“输入帐户号a和售电金额in”操作在客户端界面完成,比如预付费管理 界面中的售电窗口和桌面自助服务客户端使用的充值卡充值界面等。如图5.8所示的为 预付费管理界面中的售电窗口。客户端将售电请求发送给服务器,之后的售电操作由服 务器端的脚本程序完成。脚本程序根据帐户号从数据库中获取电表的地址、对应的通讯 单元和传输接口等信息,根据售电金额计算出售电量;通过脚本Server对象的扩展功能 与电表设备通讯;并在数据库中记录售电操作日志;最后向客户端返回一个JSON[4el格 式的结果数据。 江南大学硕十学位论文 5.4.5账务管理 账务管理主要功能足对售退电明细及出入财务数据的查询、统计与汇总,并生成相 应的报表以方便在线打印和导出成文件保存。账务管理功能的目标是实现账目清渐和可 追溯性。系统的账务管理功能对应导航区域中的“账目盘点”功能组.功能组共分为日、 月、年账目盘点及日、月、年账目汇总六个子功能项,如图5-9所示为“月帐目汇总” 功能界面。账目盘点功能是列出某售电员在某日、某月或某年巾的售退电明细账单及汇 总信息,方便对单个售电员的售退电及账务数据的查询:账目汇总是统计出所有售电员 在某日、某月或某年中的售退电及账务数据,并列出每一个售电员的忙总明细,方便综 合统计。实现时,报表阻iftame帧的形式嵌入在右边主显示区域内显示。 图5-9月账目汇总界面 5.4.6统计分析 统计分析功能包括对售电收入金额的统计分析和对用电量的统计分析。统计分析功 能以表格列表、柱状图、饼状图、曲线趋势图等多种表现形式,来对售电和用电进行统 计、对比和分析。例如,“售电统计”功能组中的“按月售电报表”功能项。以各设备 组结点为单位,统计出某月的每天的售电收入金额及汇总信息,如图5.10所示,每一个 设备组的数据以一个日历格式组织显示。日历格中包括两个数据,上边的是日期值.下 边的是售电金额。用电量的统计分析和售电量的统计分析有着类似的功能安排,这里以 “用电分析”功能组中的“月用电比例图”功能项为例来说明分析功能。如图5—11所示, 月用电比例图分析了每种帐户类型的用户某月的用电量及所占比例关系,分别以柱状图 和饼状图的形式表现出来。各种统计分析图表也支持导出成各种类型的文件,如R'IT、 Excel、PDF等,方便保存。 第五章应用层的设计与实现 图5一lO月售电统计报表 s.4.7克值卡管理 充值卡的管理分为充值卡批次管理及卡管理两个部分,充值卡是按批次为单位创建 的。在生成一批充值卡时,操作员需要指定该批充值卡的面值、有效期、张数等信息、 并向服务器提交批量生成充值卡请求:服务器脚本生成一批充值卡,将充值卡信息保存 在数据库中,并返回一个充值卡列表的CVS文件,方便用户打印及制作充值卡。充值 卡的卡号以6位批次号及6位顺序号组成,充值密码是一个12位非重复字符和数字的 江南大学硕士学位论文 组合,考虑到安全性,明文的充值密码只在返回的唯一一份CVS文件中保存,数据库 中的充值密码经过了非可逆加密算法MD5加密处理。 在充值卡管理界面里,可以对各充值卡进行开通、作废、打印收据等操作,如图5-12 所示。充值卡只有在开通后才能充值,在未开通和作废状态下不能进行充值。 蠡墁付香q甓菅理隶玩 ㈣㈣1 :㈣目…1 ㈣;ⅧⅢ…j…一mⅧ1 '∞0褂^…16.fi,■州 B-0?/-?i 一j。===篡鼍孑91嘲 ………_* 冀蚕薰i“ ■' 1 ^目 :嚣器器:::;m 岳 ;: 图5.12充值卡管理 5.4.8日志管理 系统对各种操作进行相应的日志记录,日志管理功能主要实现对各种日志的查询。 系统将日志分为四类,分别是售电日志、帐户日志、访问日志和充值卡日志。其中售电 日志包含售退电等操作日志,在售电日志功能界面中,可以结合操作时间、电表、操作 员等条件进行日志查询,如图5.13所示;账户日志包括对用户账户的各种操作日志,如 开户、销户、冻结、解冻和修改帐户信息等;访问日志主要包括客户端查询用电情况及 用户帐户个人信息修改等日志;充值卡日志包括对充值卡的各种操作日志,如生成、开 通、作废充值卡、充值卡充值等。 第五章应用层的设计与实现 江南大学硕士学位论文 第六章 6.1概述 自助服务客户端的设计与实现 随着Web开发技术的发展,当前的Web应用的功能和交互体验己与传统桌面应用 可相媲美。但是Web应用运行在浏览器的沙箱模型中,不能充分利用本地系统资源,不 能在离线状态下运行…,这些都大大束缚了Web应用的可用性,使得它们仍然不及桌面 应用。 本章介绍的预付费电能管理系统的自助服务客户端,是一个使用现有Web开发技术 (HTML,JavaScfipt,AJAX,css)开发的桌面应用程序。使用Wreb技术开发的桌面应 用,其开发模式简单,门槛低,具有最广泛的开发人员。同时,这种应用程序具有Java 应用的平台无关性和设备独立性的特点,用户的交互操作与体验完全与传统的桌面应用 相同,相比于Web应用,能充分利用本地资源,它将融合Web和桌面两个软件领域的 优点,将是一种新型软件应用。 6.2运行环境 使用Web技术开发的桌面应用,与Java或.NET应用一样,由于不被系统原生支持, 需要相应的运行期环境支持才能运行。运行期环境是一个跨平台的抽象平台,它是应用 不可或缺的基础。当应用启动时,运行期环境处理初始化的工作;在应用运行时,它负 责应用与底层操作系统间的沟通与交互,为应用提供服务支持;当应用结束时,它处理 终结化的工作。 应用所需的运行期环境…1需要具备如下三条要求: 1)浏览器渲染引擎 运行期环境为应用程序提供运行时所需的系统资源和运行控制,以使应用能顺利平 缓的运行。基于Web技术开发的桌面应用,结合了Web开发模式的简易高效性和桌面 模式的功能丰富性,这种应用的核心技术是HTML和JavaScript,其运行期环境需要具 有呈现Web页面和执行JavaScript脚本的能力,即浏览器渲染引擎的功能。浏览器渲染 引擎【42】负责对网页语法的解析(如HTML、JavaScript)并渲染网页。渲染引擎解析网 页后,提取出网页内容信息(如HTML,XML,图片文件等)和格式化信息(如CSS, XSL等),并呈现格式化后的网页内容信息。 基于Web技术开发的桌面应用的运行,需要其运行期环境具有全功能的渲染引擎功 能,即呈现或解析执行如下内容的能力:(1)HTML;(2)JavaScfipt;(3)CSS:(4) XHTML;(5)文档对象模型(DOM)。 2)与本地系统的交互 桌面应用相比Web应用最大的优势是能够访问系统资源,能充分发挥本地机器的计 算能力。如果运行期环境只是简单地把Web应用挪到桌面上运行,那么这种应用不可能 具有很大的优势。 38 第六章 自助服务客户端的设计与实现 运行期环境需要提供丰富的编程接口,摆脱以往浏览器之所不能,使应用能充分利 用其运行于桌面的优势,达到与本地系统的紧密交互。要求运行期环境为应用开发人员 提供至少如下接口:(1)操作文件系统的接口;(2)操作本地窗口(如开启本地窗口等) 的接口;(3)操作本地应用程序菜单的接口;(4)完全控制应用窗体显示与设置的接 口;(5)应用程序配置信息本地存取的接口;(6)平台无关的应用程序状态提示机制; (7)数据库存取的接口。 3)与桌面的整合 通常,Web应用的交互界面与传统桌面应用不太一致。Web应用的交互特性与用户 操作习惯的差异,导致大部分Web应用交互很不友好。基于Web技术开发的桌面应用, 要求其运行期环境提供额外的功能,使这种应用程序能具有和传统桌面应用一致的交互 体验效果,包括:(1)具有安装与卸载功能;(2)可设置快捷方式;(3)支持拖放功能 (应用之间的交互);(4)支持剪贴板功能;(5)应用程序状态提示功能;(6)设置应 用程序图标功能;(7)具有在后台运行的能力;(8)可由Alt.Tab切换;(9)能被列举 在任务管理器中等。 运行期环境的桌面整合特性,能让用户利用他们熟悉的操作习惯使用应用程序。它 们与传统桌面应用程序一样,安装后,拥有本地菜单、能在系统托盘中显示、拥有弹出 式本地窗口、可与其他本地应用程序交互、用户双击即可打开等等。 综上所述,基于Web技术开发的桌面应用,其运行期环境必须具有:(1)浏览器渲 染引擎的功能;(2)与本地系统交互的功能;(3)与桌面整合的功能。这是基于Wreb 技术开发的桌面应用的运行期环境特点。 能基本上满足上述功能要求的运行期环境,目前业界只有两个,分别是Curl Nitro【7】 和Adobe AIR【6】。它们都能实现用当前的成熟Wreb技术开发RIA,并布置到桌面系统中 跨平台运行。Curl Nitro专注于企业级应用,有着可靠的安全模型和高效的平台性能, 是一个商业产品。AIR是Adobe公司发布的一个跨平台的运行期环境,其目的是利用现 有的Web开发技术(Flash,Flex,HTML,JavaScript,AJAX)来构建富RIA并部署为 桌面应用程序。Adobe AIR得到了业界的广泛关注,已涌现出许多优秀的应用。我们将 选择Adobe AIR作为自助服务客户端程序,一个基于Web技术开发的桌面应用的开发 运行平台。 6.3 Web Services 当前,在绝大多数单位和企业普遍使用刷卡消费系统和一卡通系统的条件下,如何 将刷卡消费功能整合进预付费电能管理系统中,或者说如何将预付费功能输出给这些第 三方系统,对预付费系统的推广和用户使用便捷性具有重要意思。因此,在原有系统功 能基础上,设计了一个基于Web Servicesl43】方式的预付费电能管理机制,为用户提供高 强度安全可靠的应用接入开发接口,方便用户根据自己需要更加灵活的实现预付费管理 相关的查询、售电、退电等服务。 39 江南大学硕十学位论文 利用预付费电能管理接口,第三方系统可以与预付费系统进行以SSL安全通讯为基 础的身份验证,认证通过后建立安全连接并进行业务操作。下面是预付费电能管理接口 的应用框架图: 图6一l预付费电能管理接口的应用框架图 在使用时,安全性由以下两种措施保证: 1)采用2048位加密处理的SSL安全通讯,保证了用户数据的安全和私密; 2)详细记录预付费电能管理接口业务操作的审计日志,以便分析业务是否存在异 常,以追溯业务操作。 预付费电能管理系统的Web Services接口提供了根据帐户号操作预付费系统中所属 电表的功能,是实现第三方预付费管理的业务整合的基础,包括如下四个接口: 1.)查询当前使用电量:double getTotal(int accountlD) 2)查询当前剩余可用电量:double getSurplus(int accountlD) 3)买入电量:int doCharge(int accountlD,double money),接口返回操作结果状态值, 如成功、失败、拒绝操作等。 4)退还电量:int doUncharge(int accountlD,double money)。 自助服务客户端应用调用预付费电能管理系统的Web Services接口来实现对电表实 时电量的查询,及自助售、退电操作功能。 6.4使用web技术开发桌面客户端应用 6.4.1需求分析 预付费电能管理系统的自助服务客户端是一个在Adobe AIR平台上运行的桌面应 用,它使用Web技术(JavaScfipt,HTML,CSS,AJAX等)开发,是一个适应“Web回 归桌面”的技术趋势,“基于Web技术开发桌面应用"的新型软件构造模式构建的一个 应用程序。自助服务客户端为用户实现自主管理用户信息、自助查询和售电等功能。具 体来说,自助服务客户端实现以下六大功能: 1)实时提醒:当用户的剩余电量低于报警阈值时,系统托盘上的客户端程序图标 上方会弹出一个电表实时数据的信息帧,提醒用户及时充值。 2)基本信息查询:提供用户对帐户信息,电表信息的查询功能。帐户信息包括帐 户号、帐户名、用电单价、预警电量值、账户状态等信息;电表信息包括电表 第六章 自助服务客户端的设计与实现 地址、当前总用电量、剩余电量、电表运行状态、电表开关状态和电表72小时 用量柱状图等信息。 3)消费记录查询:提供用户按月为单位查询某月的用电量总和及该月每天的用电 量的功能。 4)充值记录查询:提供用户查询某一时段内的充值记录的功能,充值记录包括通 过售电员售电的充值记录和通过充值卡、售电机等售电的充值记录。 5)帐户管理:为用户提供修改个人帐户基本信息的功能,如修改帐户名、手机号 码、帐户密码等,但是帐户号是不能被修改的。 6)自助充值:提供用户使用充值卡自助售电的功能。 6.4.2系统结构 根据需求分析,客户端系统共分为八个模块,分别是标签页容器模块 TabContainerPanel、基本信息查询模块BasiclnfoPanel、消费记录查询模块 ConsumeQueryPanel、充值记录查询模块ChargeUpQueryPanel、帐户管理模块 AccountManagerPanel、自助充值管理模块SelfHelpPanel、实时提醒管理模块 NotificationManager和数据存储管理模块DataStore。 TabContainerPanel呈现一个主框架页面,其它模块生成的页面以一个标签页的形式 显示在主框架页面中,TabContainerPanel负责控制每次只显示一个模块页面; BasiclnfoPanel负责显示帐户和电表的基本信息;ConsumeQueryPanel和 ChargeUpQueryPanel分别对消费记录和充值记录进行查询管理和显示; AceountManagerPanel负责管理对帐户信息和帐户密码等的修改;SelfHelpPanel呈现一 个充值卡充值界面;NotificationManager实现当用户电表剩余电量过低时,实时提供用 户充值;DataStore操作的数据分为数据库数据和Cookies数据,Cookies数据主要保存 自助服务客户端程序的状态信息,如程序上次关闭时的窗口位置和大小等,系统的其它 数据(如帐户和查询登录密码)都存储于Sqlitel441数据库中。 各模块彼此独立,通过信号.槽(signal—slot)通讯机制实现关联,达到模块间的解 藕。如图6—2中连线所示,TabContainerPanel的activated(panel)信号注册到BasiclnfoPanel 的refreshlnf00槽函数中,之后,发生的activated(panel)信号将触发关联的槽函数 refreshInfoO。系统框架如图6.2所示。 41 江南大学硕士学位论文 o (D (D L,' (D 了 3 o (D o Q Q (D (D ] 才 了 7口 (D n1 o Q 图6.2自助服务客户端系统的基本结构 6.4.3系统实现 系统的文件结构与Web站点的文件结构相似,共包含3部分:(1)index.html:位 于根目录下,是系统执行的入口点,相当于C程序的main()函数。index.html文件定义 了系统的基本组织结构,并导入所有需要的CSS文件和JavaScript文件。(2)resource: 资源文件如CSS和图片分别存放于resource/css/和resource/img/目录下。系统使用 resource/css/下的样式表文件定义外观显示。(3)jS:这个目录包含大量的JavaScript文 件。这些文件是系统的主要实现部件。在js/lib子目录下还包括系统所需的第三方库文 件。js/app.js是系统的主程序文件。 和传统Web开发一样,index.html是一个传统的html文件。index.html先导入系统 所需的第三方库文件: <link rel=”stylesheet”type=”text/css”href=”js/lib/ext2/resources/css/ext-a11.CSS”/> <link rel=”stylesheet”type=”text/css”href=-”js/lib/ext-air/resources/ext-air.css”侈 <script type=”text/JavaScript”src=’'js/lib/ext2/adapter/ext/ext-base.js”></script> <script type=”text/JavaScript’’src=’'js/lib/ext2/ext—a11.is”></script> <script type=''text/JavaScript”src=”js/lib/ext-air/ext—air.js¨></script> <script type=''text/JavaScript”src2’'js/lib/adobe/AIRAliases.js”></script> 上面代码首先将ExtJS库导入到系统中,系统在实现时使用ExtJS库中封装的DOM 操作,事件处理机制,和一整套的UI组件和一些JavaScript语言扩展等功能,极大地提 高了JavaScript代码的组织能力和开发效率。 index.html接着导入系统本身的CSS文件和库文件,如下面代码所示: <!一导入主CSS文件.-> <link rel=”stylesheet¨type=”text/css”href=”resources/css/main.CSS”/> <!~导入系统库文件.》 <script type=”text/JavaScript”src=”js/lib/Tcmplates.js”></script> 42 第六章 <script <script <script <script <script <script <script 自助服务客户端的设计与实现 ty旷”text/JavaScript”src2”js/lib/Store.js¨></script> type2”text/JavaScript”src2’’js/lib/BasiclnfoPanel.js”></script> type2”text/JavaScript”src2”js/lib/ConsumeQueryPanel.js”></script> type2”text/JavaScript”src2”js/lib/ChargeUpQueryPanel.js¨></script> type2”text/JavaScript”src2”js/lib/AccountManagerPanel.js”></script> type2”text/JavaScript”src。”js/lib/SelfHelpPanel.js”></script> type_¨text/JavaScript”src2”js/lib/NotificationManager.js”></script> type2”text/JavaScript”src=1'js/app.js”></script> 最后导入系统的主JavaScript文件app.js。 <script app.js实现系统中各界面组件的布局,模块之间的协调和程序的流程控制等功能, 是系统的核心组成部分。app.js首先执行Ext.onReady函数,其代码如下: Ext.onReady(funetion0{ vat viewport=new layout:’border' Ext.Viewport({ ,items:【 new Ext.Toolbar({ region:’north’ ,height:60 ,html:’<div class=”UserHeadLogo”胁’, )) ,new hy.widget.TabContainerPanel({ region:’center ,items:【 new hy.widget.BasiclnfoPanel0 ,new ,new ,new ,new hy.widget.ConsumeQueryPanel0 hy.widget.ChargeUpQueryPanel0 hy.widget.AccountManagerPanel0 hy.widget.SelfHelpPanel0 】 )) 】 )); )); Ext.onReady(fn)是app.js的入口函数,它在系统资源全部加载后首先被调用。在执 行时,它将传入的参数fIl作为函数调用,这里m用一个匿名函数实现。在m中,先生 成一个Viewport对象,Viewport对象的界面将呈现在index.html中的body标签中,作 为系统的主界面显示。Viewport界面使用border布局,border布局将一个窗口分成东南 西北中五个区域。最后,在border布局中创建各组件并放置在相应区域。 6.4打包与运行 软件开发完成后,需要打包成一个安装文件,便于分发布署。打包机制需要关注两 方面的问题,一是打包文件的压缩处理,以便于软件的分发;二是自保护功能,防止软 件包在分发过程中被篡改,目前主要采用基于MD5的摘要信息的完整性和基于数字证 书的签证两种措施来保证。AIR文件是一个基于ZIP压缩技术的安装包,采用数字证书 43 扛南太学硕士学位论文 保证安装包的可信性。打包后,即可通过多种媒介(如互联网,CD--ROM等)分发,并 布置于AIR平台之上运行。 基于Web技术开发的自助服务客户端桌面应用,完全具有传统桌面的行为与特征 如软件需要安装与卸载、具有桌面图标、可显示在系统托盘巾、能被列举在任务管理 器中等。下面是软件使用时的一些截图: ◆ 图6-3安装客户端程序 图6-4客户端程序在桌面上的快捷方式图标 图6-5客户端程序在系统托盘区域的图标 第六章自助服务客户端的设计与实现 图6-6帐户基本信息查询 图6.7自助充值界面 图6-8低电量自动提醒 江南太学硕士学位论文 图6-9托盘图标右键菜单 文件哩)选项唑 应用程序进程 映像名称 查看∞帮助也) 性能 联网 懋黟翠伊熙鬻黑,叼_熙 。^“l…ztrtor ck…… ^“Inl=trttor 00 用户名 CPlf 内存使用 T“4 X chr…?x● 00 13 084 E 图&lO客户端进程在任务管理器中 邺删 d?…_……2 dl一……,圳2口t?a川r¨ut01?ii8’N#十z o 口ii!■0) 竺然=:芦圈面萱———l B?a1,-¨ut“1?P?ck‘p wnm…dn“一1 喜=.5==_溜 ±±n&&4itmL 。蕊净黼9黜~o溉 羔=:=i圳三三三三玉三三三呈l 烈《∞*tⅢm蝌&f?-击“懈” 口sI"1.T?,b d 1I ‘s…t1,c1…L..................h1...................—J 圃 倒s…Ⅲ1…¨ s…—r 图6-11卸载客户端程序 第七章总结 第七章总结 随着Web技术的迅速发展,Web应用的功能和交互体验已与传统桌面应用可相媲 美;另~方面,AdobeAIR等平台的兴起和流行,越来越多的桌面应用程序已经可以使 用Web开发技术来实现。Web应用的桌面化及使用Web技术开发桌面应用,Web技术 和桌面技术的整合,催生了“Web回归桌面’’的技术趋势。本文在这种技术背景之下, 设计与实现了一个“基于Web技术的预付费电能管理系统’’,以实际项目来实践和把握 “Web回归桌面”的趋势。 基于Web技术的预付费电能管理系统已在多个高校和市场商铺部署使用,实现了很 好的效果,受到了广大用户的欢迎。 1)系统的实时监控和数据集抄功能,方便了用电管理部门对每块电表的剩余电量、 总用电量、当前电表状态(如电表开关状态,余电报警状态等)的实时远程监 测和定点定时数据集抄,避免了以往人工抄表的繁重工作量和抄写误差。而且 这些集抄的基本数据,为用电统计和深层次分析提供了可靠的数据来源,为用 电管理部门提供了良好的决策支持和管理支持。如按电表每小时用电量为基础 绘制出的72小时用电柱状图,可以呈现每块电表的用电状况,在实际使用中, 通过该图已为客户查除了多次漏电和用电异常的情况。 2)系统的自助服务功能,极大的方便了用户的使用,同时也减少了系统的运营和 管理成本。如在某高校的使用中,系统完全采用充值卡和自助售电机的自助售 电模式,完全取消了售电管理站和售电员售电的模式。师生通过购买充值卡后 随时随地上网充电或通过校园一卡通在自助售电机上自动售电,消除了以往售 电模式的地域和时间的限制,同时也降低了系统运营的成本。 3.)系统使用AJAX、XHTML、Comet等技术,实现了类桌面应用程序的用户界面, 提供了友好的操作体验和功能上的人性化设计,如对用户低剩余电量时的自动 短信和邮件报警功能。系统在某市场商铺的使用中,低剩余电量报警功能使商 铺用户避免了由于异常断电带来的损失,受到用户的欢迎。 4)系统的平台结构设计和W.eb Services开发接口,使得系统具有了良好的可扩展 性。在系统的平台层基础服务之上,已经开发出多个应用程序,同时,在第三 方应用整合方面,系统也已与多家一卡通系统进行了成功整合,并在多个高校 中实际布置使用。 通过实现具有桌面特征的Web应用和使用Web技术开发桌面应用两个角度,论文 阐述了对Web技术与桌面技术的融合,Web回归桌面的理解。Web回归桌面,和目前 互联网的发展方向是一致的,是软件技术发展的趋势,它将融合Web和桌面两个软件 领域的优点,从而导致新型软件应用的出现,并且改变软件的构造模式。 47 致谢 致 谢 衷心的感谢我的导师王士同教授对我在学业上的悉心指导和生活学习上给予的无 私关怀,他的严谨的治学作风和刻苦钻研的科研精神是我学习的榜样,将使我终身受益 无穷。 感谢实验室的满利红、俞云霞、佟成、王超、张佳强、朱巍鹏、卜令超、夏开建、 张忠祥等同学给予的无私帮助、支持和建议。 此外,还要感谢我的家人,是你们这么多年来对我一贯的关怀、鼓励、支持和信任 使我坚持完成了学业。 感谢所有在毕业设计中帮助过我的人们。 感谢学校对我的教育和培养。 参考文献 参考文献 1.Jesse James Garret.Ajax:A New Approach to Web Applications[EB/OL]. http://adaptivepath.com/ideas/essays/archives/0003 85.php,2005—02-1 8 2.Ebrahim Ezzy.Webified Desktop Apps VS Browser-based Apps[EB/OL]. http://www.readwriteweb.com/archives/webified_desktop_appsvsbrowserapps.php, 2006.07 3.Jeremy Allaire.Macromedia Flash MX—A next—generation rich client[M]. USA:Macromedia Corp,2002.2-1 0 4.Google.Google Gears homepage[EB/OL].http://gears.google.com/ Prism[EB/OL].http://labs.mozilla.com/2007/1 O/prism/, 5.Mozilla 2007.10 Labs.Introducing 6.Adobe.Adobe AIR homepage[EB/OL].http://www.adobe.comJproducts/aiff 7.Sarah Perez.The Other IUA Desktop Platform:Curl Nitro[-EB/OL]. http://www.readwriteweb.com/archives/curl—is another_playerin.php,2008-06-25 8.Conor Seabrook.Bringing the Desktop Application to the Web[J].DDJ,2007,(1):46—49 9.Michael Arrington.Bridging Desktop And Web Applications[EB/OL]. http://www.techcrunch.com/2008/03/22/bridging—desktop—and?web-applications—a-look-at-mo zilla-prism/,2008—03-22 10.李宏.OPC技术应用简析【J】.设计技术,2006,(3):46-50 11.OPC国际基金会中国办事处.OPC技术综述川.世界仪表与自动化,2001,5(4):34-38 12.姜萍,段新会,王锐.基于OPC技术的DCS监控系统设计【J】.信息化纵 横,2009,(7):59-62 13.周婷.Comet:基于HTTP长连接的”服务器推”技术[EB/OL]. http://www.ibm.com/developerworks/cn/web/wa-lo-comet/,2007—08-3 1 14.Alex Russell.met:Low Latency Data for the Browser[EB/OL]. http://alex.dojotoolkit.org/2006/03/comet-low—latency-data-for-the-browsed,2006—03 15.全新建等.基于OPC-XML技术的互联网实时监控系统研究[J】.自动化仪 表,2004,25(1 1):1-4 16.连光明,彭宏,戴成强.SVG技术在P4口监控信息系统中的应用【J】.计算机工程与设计, 2006,27(1 9):3592—3594 17.王亚平,刘强.数据库系统工程师教程[M】.北京:清华大学出版社,2004 1 8.R Sandhu et a1.Role-Based Access Control models[J].Computer,29(2):38—47 49 参考文献 1 9.D F Ferraiolo,J F Barkley,K R Kuhn.A Role-Based Access Control model and refrence implementation within a corporate Intranet[J].ACM Transactions on Information and System Security,2009,2(1):34—64 20.A Rhodes,W Caelli.A Review Paper:Role Based Access Control【EB/OL】. http://www.isrc.qut.edu.au/resource/techreport/qut-isrc-tr-1 999-004.pde 1 999 21.郝斌.基于角色管理的系统访问控¥IJ[EB/OL]. http://www-900.ibm.com/developerWorks/crgsecurity/syscontrol/index.shtml,200 1—07 22.邢永明,乔佩利.基于双因子认证技术的统一身份认证的研究【J】.现代制造技术与装 备,2006,(3):62-65 23.Wikipedia.Public key infrastructure[EB/OL]. http://en.wikipedia.org/wiki/Public_key_infrastructure 24.高正宪,涂亚庆,李中学.PKI和RBAC授权数字证书的设计与实现[J].计算机工程, 2008,34(2):1 17—119 25.江苏省电力公司.江苏省电子式单相多费率电能表通信规约[S】.江苏,2003 26.王耀.ESAM安全模块及其在卡表上的应用[J】.城市燃气,2003,(3) 27.Wikipedia.Triple DES[EB/OL].http://en.wikipedia.org/wiki/Triple_DES 28.韩雯.AES加密算法分析及其安全性研究叨.石油工业计算机应用,2008,16(2):46-48 29.David Flanagan.JavaScript:The Definitive Guide,4th 2001.1.9 Edition[M].USA:O’Reilly, 30.周爱民.JAVASCRIPT语言精髓与编程实践【M】.北京:电子工业出版社,2008.1—15 31.Cnblogs.JavaScript功能简介[EB/OL]. http://www.cnblogs.com/zydcl/archive/2009/05/28/1491241.html,2009-05—28 32.Ext LLC.ExtJS 33.EasyJE homepage[EB/OL].http://extjs.com ExtJS2.0实用简明教程[EB/OL]. http://www.easyjf.com/blog/html/20080217/1 146887.html,2008?02—17 34.Yahoo.The Yahoo!User Interface Library(YUI)[EB/OL]. http://developer.yahoo.com/yui/ 35.jQuery Team.jQuery:The Write Less,Do More,JavaScript Library[EB/OL]. http://jquery.tom/ 36.Prototype Core Team.Prototype JavaScript framework[EB/OL]. http://www.prototypej s.org/ 37.Valerio 38.The Proietti.MooTools?a compact javascript framework[EB/OL].http://mootools.net/ Dojo Foundation.The Dojo Toolkit[EB/OL].http://www.dojotoolkit.org/ 39.Shea Frederich,Colin Ramsay,Steve’Cutter’Blades.Learning ExtJS[M]. 5n 参考文献 Birmingham:Packt Publishing,2008.1-1 7 40.json.org.Introducing JSON[EB/OL].http://www.json.org/ 4 1.Mike Chambers,Daniel Dura,Kevin Hoyt.Adobe AIR for JavaScript Developers Pocket Guide[M].USA:O’Reilly,2008.7—1 6 42.Wikipedia.Rendering engine[EB/OL].http://en.wikipedia.org/wiki/Layout_engine/ 43.陈曦,罗正生等.基于WebServices的多部门协作学生信息服务平台【J】.福建电脑, 2009,(4):21?21 44.Hwaci.SQLite Home Page[EB/OL].http://www.sqlite.o叫 51 附录: 作者在攻读硕士学位期间发表的论文 附录: 作者在攻读硕士学位期间发表的论文 1.蒋海云.W曲技术开发桌面应用的研究与设计【J].微计算机信息.已录用 2.蒋海云.Web预付费电能管理系统的设计与实现[J].计算机应用与软件.已录用 52

文档贡献者

huangteng1220

贡献于2012-08-26

喜欢此文档的还喜欢