计量计费系统的设计与实现毕业论文.doc
计量计费系统的设计与实现摘要本文介绍了计量计费系统的设计与实现,并从水电气热等几个方面详细介绍了本系统的主要功能和设计思想。作为能源管理系统的子系统,计量计费系统属于系统应用软件层,构筑在统一支撑平台层之上。本系统采用JAVA语言开发,采用OSGI框架、MVC模式,运用javascript、servlet、xml、log4j等技术,实现了一个基于web的B/S模式的系统。系统建设的主要功能是对能源消耗情况(包括电、水、气、热等)进行采集、计量、汇总,实现多样化查询,根据不同计费方式和标准对能耗进行计费,并生成相应的账目报表,还可对各项数据进行对比分析生成表单和图形以供进行科学的规划。通过该系统的实施,实现对整个企业能源消耗数据的及时、快速和准确的监测,利用互联网技术、门户网站等手段为企业领导以及相关管理部门提供了多方位、可视化的便捷服务,实现信息快速传递、共享、管理和应用。关键词:计量计费系统,能源管理,OSGI,JAVAMetering and billing system method researchAbstractThis article describes the metering and billing systems design and implementation, and from several aspects such as water, electricity and heat are introduced in detail the main function of the system and design ideas. Subsystem as an energy management system, metering and billing system is a system application software layer, to build support in a unified platform layer. The system uses JAVA language development, the use of OSGI, MVC framework, the use of javascript, servlet, ole technology, implements a web-based B / S mode system. The primary function of the system building energy consumption (including electricity, water, gas, heat, etc.) for the collection, measurement, aggregation, diversification query, depending on the billing and accounting standards on energy consumption, and generates the corresponding The statement of accounts, but also comparative analysis of the data generated forms and graphics for scientific planning. Through the implementation of the system to realize the energy consumption across the enterprise data in a timely manner, rapid and accurate monitoring, the use of Internet technology, portals and other means for business leaders and the relevant management departments to provide a multi-directional, visual and convenient services, achieve Rapid transmission of information, sharing, management and applications.Key words: Metering and billing systems, Energy management, OSGI,JAVA指导教师: 赵世国iii本文介绍了计量计费系统的设计与实现,并从水电气热等几个方面详细介绍了本系统的主要功能和设计思想。IV目 录1 引言11.1 计量计费系统概述11.2 计量计费系统在国内外的发展现状11.3 开发方案与预期结果22 核心技术及工具32.1 系统开发工具和环境32.1.1 青岛精益优华公司自主研发的IDE开发工具32.1.2 Oracle数据库32.1.3 OSGI服务器32.2 系统开发涉及的关键技术介绍42.2.1 JavaScript技术简介42.2.2 XML技术简介42.2.3 log4j技术简介42.2.4 OSGI技术简介42.2.5 MVC模式简介53 系统分析63.1 系统功能需求总体描述63.1.1 项目背景63.1.2 总体目标63.1.3 项目内容63.2 功能需求详细描述73.2.1 基础数据模块103.2.2 计量管理模块103.2.3 计费管理模块123.2.4 综合查询模块133.3 系统非功能性需求143.3.1平均响应速度143.3.2可靠性153.3.3安全性153.3.4可扩展性153.3.5易用性153.3.6集成性154 系统设计164.1 系统设计思想164.1.1 B/S结构开发思想164.1.2 面向对象的软件开发设计思想164.1.3 代码分层思想164.1.4 MVC模式设计思想164.1.5 OSGI框架设计思想174.2 主要数据表184.3 系统框架264.4 详细功能模块284.4.1 登录模块284.4.2 基础数据模块314.4.3 核心业务模块345 系统测试475.1 具体模块测试475.2 测试结果486 结束语49参 考 文 献50致 谢511 引言1.1 计量计费系统概述作为能源管理系统的子系统,计量计费系统旨在对各项能源的消耗情况进行精确、系统的统计和分析,进而根据数据制定下一步的节能计划。顾名思义,计量计费系统的核心任务就是计量与计费,在此基础上附加数据分析查询等满足用户需求的功能。通过计量数据采集(水,电,气等多种计量原始数据的采集),计量数据处理(数据存储,数值转换,数据分配等处理),计量数据记录和归档(按时间、类别等要素),计量数据分析(分析数据的合理性,找出问题数据),人工抄表,手工录入(弥补现场计量设备的不足),合理调整,分步审核,最终实现对能耗的较为全面的统计和归纳。1.2 计量计费系统在国内外的发展现状世界范围内的能源紧张,使得人们对能源问题日益关注。经济的发展离不开能源的支撑,我国经济已进入新的快速增长阶段,而粗放式的增长方式使得我国能源、淡水、矿产等资源不足的矛盾进一步凸显。随着国家及各级地方政府节能降耗目标责任制的层层落实,能源统计工作也越来越受到重视。通过数据分析,使能源使用合理,控制浪费,达到节能减排,节能降耗,可以帮助企业对每条生产线、每个工作班组以及主要耗能设备进行实时考核,并可以帮助企业进一步优化工艺,以降低单位能耗成本,提高企业综合竞争力。计量计费系统强调过程方法和管理的系统理论的有机结合,这样才使得PDCA循环更具有管理的生命力。标准通过规范各种能源管理活动、制度和措施,注重寻求和利用适宜的节能技术和方法,以及最佳能源管理实践和经验,达到节能减排的目的。欧美发达国家在计量计费上起步比较早,他们大力推进以高能效、低排放为核心的“低碳革命”,着力发展“低碳技术”,通过对能耗情况的实时监控来制定相应的能耗计划,对产业、能源、技术、贸易等政策进行重大调整,以抢占先机和产业制高点。西欧发展最快的是德国,计量计费系统得到了大面积推广应用。欧共体第三个科技发展总体规划(20世纪90年代)将测量、检测技术列为15个专项之一。1我国在计量计费方面起步晚,起初大多是依靠国外的设备和技术,尽管近年来通过政策的改变和政府的鼓励和支持,有了很大发展,但是与国处先进技术相比,还存在很大差距的。据了解,个别工业企业对原煤、电、油、气等能源产品的折标系数不规范,或计量、检测工作不规范;特别是对原煤入厂计量,化验不及时,出现一些评估值;企业能源亏损不准确,人为因素也起了一定的作用,计量工作人员在能源介质的计量工作中,由于计量不准确从而造成了很大的浪费。如各种返矿,自产废钢,工厂管理人员由于计量手段问题,不能分开计量,有的认为是内部循环而根本不计量。标准不严格,如在钢铁工业中,很随意地就把高等级的钢种改制成低等级的钢种,从而造成核算的数据扭曲失真,为成本决策分析提供错误的数据。早在2002年,中国标准化研究院就开始了有关能源计量管理体系标准的研究工作,逐步探索建立我国的能源计量管理体系系列国家标准。但由于诸多原因,研究初期并没有正式提出国家标准立项。在借助国家发改委和科技部两个课题研究、试点和相关经验积累的基础上,申请了国家标准立项并获得批准。国家标准正式立项后,标准提出单位和起草单位组成了工作组,制定了工作计划,通过深入研究并多次召开工作组讨论会,形成了“能源管理体系-要求(征求意见稿)”,2同时,标准制定单位通过各种渠道,收集到了大量相关的能源管理体系标准和资料,并据此对标准草案内容进行了逐步完善。能源计量计费与节能监测、能源审计、能源统计、能源利用状况分析是企业能源管理和节能工作的基础,而能源计量是基础中的基础。如果企业没有合理配备能源计量器具,能源管理部门就难以获得准确可靠的能源计量数据,对企业的节能监测、能源审计、能源统计、能源利用状况也就难以进行科学的分析和统计。从而无法为企业的能源管理和节能工作提供可靠、准确的指导方向,可能造成企业能源严重浪费,增加生产成本。由于企业能源的浪费,随之也会带来对环境的污染和破坏。自改革开放以来,国家的经济出现了快速发展,随着经济的快速发展,国家对企业的节能降耗工作提出了更高更新的要求,企业能源计量工作就显得更为重要,必须与国家对企业节能、环保的要求相适应。3,4 大中型企业虽然普遍重视能源计量计费工作,建立了比较完善的计量检测保证体系,但信息化程度普遍不高,能源计量数据没有充分发挥作用。只有韶关钢铁、珠江钢铁、唐钢等钢铁企业建立了功能比较先进的能源计量、统计、实时监控的计算机网络,在其他行业能源计量信息化建设水平还比较低,远远不能适应目前建立资源节约型社会、实现科学计量、节能降耗的需要。总体而言,我国在计量计费工作上存在技术和制度的不足,亟待完善。1.3 开发方案与预期结果本系统是基于JAVA的系统应用层软件。具体设计时使用青岛精益优华公司自主研发的IDE开发工具进行设计和开发,并通过青岛精益优华公司业务应用平台进行界面的展示和用户操作。采用OSGI框架、MVC模式,使用了xml,log4j,servlet,javascript等技术。后台数据库采用Oracle数据库。通过模拟数据的输入,本系统能实现能源消耗量从采集、统计、归档、分析到最终生成报表曲线等一系列功能,给用户最直观的能耗展示。2 核心技术及工具2.1 系统开发工具和环境 系统采用Oracle作为后台数据库,OSGI作为服务器,使用青岛精益优华公司自主研发的IDE开发工具结合青岛精益优华公司业务应用平台以及IE9浏览器开发。2.1.1 青岛精益优华公司自主研发的IDE开发工具本工具是对Eclipse的一个扩展。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。利用它,我们可以链接多种数据库进行开发。如oracle、sql、mysql等。其包括完备的编码、调试、测试和发布功能,完整支持HTML,javaScript、jsp等脚本语言,且支持多种框架如structs、hibernate等。且它可以运用自己开发的插件进行开发,提升开发效率。而我们自己研发的工具正是基于eclipse的基础上进行添加插件而完成的,且运用现今流行的osgi服务,这实现了可在服务启动的情况下,进行项目的部署,停止某个项目的服务等操作,这样大大提高了维护的效率。且我们运用了jdk1.6,这样让此工具又有了新的功能,如支持泛型、注记等功能,便于程序员开发。2.1.2 Oracle数据库Oracle数据库是一种大型数据库,其由oracle公司开发,且在前不久收购了sun公司,顾可知其发展不可估量。ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持数量庞大的用户群。提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。提供了与第三代高级语言的接口软件PRO*系列,能在C,C+等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。甴此可知,oracle数据库的功能无限庞大。Oracle与其他数据库相比具有一定的优势。具我所知,现今流行的数据库有微软的sqlserver、sun公司的mysql、IBM的DB2及微软的access等。与其相比,oracle提供了丰富的函数,可让用户操作起来极其便捷,且还支持大量媒体数据。最重要的一点是它可容许大量的数据进行存取。由此可知,选择oracle数据库是一个正确的选择。2.1.3 OSGI服务器OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,OSGI技术提供一种面向服务的架构,它能使这些组件动态地发现对方。OSGI联 盟已经开发了为例如象HTTP服务器、配置、日志、安全、用户管理、XML等很多公共功能标准组件接口。这些组件的兼容性插件实现可以从进行了不同优化和使用代价的不同计算机服务提供商得到。然而,服务接口能够基于专有权基础上开发。由以上特点,让OSGI技术拥有独一无二的新的配件市场机会。选择OSGI,可让程序员更好的进行后期的维护等工作,顾选择它,也是个不错的选择。2.2 系统开发涉及的关键技术介绍2.2.1 JavaScript技术简介JavaScript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言。最早是为了解决因为网速问题而导致验证请求耗时太长的问题。JavaScript可以操作Html,修改Html元素的属性、样式,还可添加或删除元素,类似的语言有微软的Jscript。JavaScript不需要编译,浏览器可以直接解释执行。JS是基于对象的,但是本身并不支持继承与多态也没有类的严格定义,其语法宽松是一种弱类型语言。目前主要用于数据的前端验证,添加与用户的动态交互行为,以及在AJAX技术中应用。2.2.2 XML技术简介XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间要比二进制数据占用的空间大,但XML极其简单,易于掌握和使用。2.2.3 log4j技术简介Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等。7此外,通过Log4j其他语言接口,您可以在C、C+、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。2.2.4 OSGI技术简介OSGi 技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。 Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。 这些组件能够组装进一个应用和部署中。OSGi 是目前动态模块系统的事实上的工业标准,虽然一开始只是作为嵌入式设备和家庭网关的框架来使用,但是实际上它适用于任何需要模块化、面向服务、面向组件的应用程序。Equinox项目是Eclipse开源组织提供的OSGi框架的实现。Eclipse自3.0版本开始,其内核移植到OSGi框架上。通过OSGi框架强大的组件控制,交互和管理能力,再加上Eclipse插件的自有特点,Eclipse开源框架得到了跳跃式的发展8。Equinox项目包括OSGi R4版本规范核心框架的实现,一系列OSGi标准服务Bundle及运行基于OSGi的系统的一些基础构件。目前,Equinox项目包括OSGi核心框架的实现,OSGi标准服务Bundle实现,OSGi的服务器端(J2EE实现)应用,Equinox部署更新框架及一些研究方向(未成熟发布的构想如JMX管理,安全管理,面向方面的设计与应用等)。而 Equinox 则是的 Eclipse 所使用的 OSGi 框架,是 Eclipse 强大的插件体系的基础,Eclipse 的稳定可靠性也为该框架带来了声誉。2.2.5 MVC模式简介MVC模式是Model-View-Controller的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为 XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处 理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务模型的设计可以说是MVC最主要的核心。9它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器 改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能。3 系统分析3.1 系统功能需求总体描述3.1.1 项目背景计量计费系统作为能源管理系统的子系统,采用系统化的设计理念,依托计算机网络技术、通信技术、计量控制技术等信息化技术,实现计量数据的采集、传输、记录和归档、分析、计费、管理等功能。3.1.2 总体目标计量计费软件应提供用于分布式实时数据库管理、历史数据管理、人机交互、网络消息传递、系统管理、报警服务等。计量计费系统应提供全面的用能计量、计费以及计量设备管理功能,其模块化功能可以被方便地裁剪,应能适应不同级别用户的多样化和个性化需求,具有很好的扩展性和兼容性。计量计费系统应完成电、水、气、热等计量数据采集、处理、历史数据存储,通过计量计费软件完成数据及画面的查看、报表、计量计费等功能。3.1.3 项目内容作为能源管理系统的子系统,计量计费系统属于系统应用软件层,构筑在统一支撑平台层之上,统一支撑平台应为计量计费的业务和数据处理功能提供强大的基础支持,使得计量计费系统的功能开发、业务变更和系统升级变得快捷、可靠而平稳,从而可以更加灵活的满足不同用户的多样化、个性化需求。系统建设的主要功能是对能源消耗情况(包括电、水、气、热等)进行采集、计量、汇总,实现多样化查询,对异常数据进行报警,根据不同计费方式和标准对能耗进行计费,并生成相应的账目报表,还可对各项数据进行对比分析生成表单和图形以供进行科学的规划。通过该系统的实施,实现对整个企业能源消耗数据的及时、快速和准确的监测,利用互联网技术、门户网站等手段为企业领导以及相关管理部门提供了多方位、可视化的便捷服务,实现信息快速传递、共享、管理和应用。系统指标能耗如图:图四 1图3.1 企业能耗指标图3.2 功能需求详细描述 IXPUB技术博客4WG!K,POau2j)VIXPUB技术博客1t8lR(dI4FrAM计量计费系统的核心任务就是计量与计费,在此基础上附加数据分析查询等满足用户需求的功能,大致分四个模块:图3.2 计量计费系统模块图IXPUB技术博客1t8lR(dI4F图四 1rAM3.2.1 基础数据模块说明:基础数据模块的主要功能为对各项基础数据进行初始化设置、变更和维护。本系统涉及的基础数据包括计量表,计量方式,计量表类型,计量表单位,计量表低点,计量月,计量年,厂前厂后,分时电价,水、气、热等单价。3.2.2 计量管理模块说明:以月为周期,将采集到的数据进行汇总:对于某些没有自动采集功能的计量表,采用手动录入的办法,将统计数据填入手动抄表表单,保存后传入数据库;对于自动采集的数据,系统自动生成单据内容,人工核对后保存。抄表数据应包括以下内容:计量表名称、用能单位、功能单位上月表底数(电表还应细分为峰平谷总表底数)、本月表底数(电表还应细分为峰平谷总表底数)、本月用量、时间等。修改与插值类似,直接进入相应月份覆盖原数据即可。抄表基本流程:图3.2 电抄表流程图图3.3 电耗量查询流程图3.2.3 计费管理模块说明:为各项能耗费用设置计算公式和费用比率。可按月对费率进行更改和调整。(电费采用分时计费设置不同时段的不同计价费率。)基本流程:图3.4 计费管理模块流程图3.2.4 综合查询模块说明:根据能耗类别进行查询,并生成相应报表、图形。选择相应能耗类别后,会弹出一个单位月份的能源消耗表。用户可以通过关键字段过滤筛选所需信息。具体能耗分类有:电1项,水6项(生产水、生活水、补水、循环水、软化水、基建水),气6项(煤气、空气、氮气、氧气、二氧化碳、乙炔),热3项(居民采暖、厂区采暖、蒸汽),其他4项(甲醇、丙烷、火鸟王、液氮)。基本流程: 图3.5 综合查询模块流程图3.3 系统非功能性需求计量计费系统服务端采用WEB应用服务器,数据库软件采用Oracle10g,系统架构成5层模式。并提供性能稳定的硬件设备,应用在数据库服务器和Web应用服务器上,并通过建设合理的软件系统架构和发挥第三方软件的出色性能,保障以下非功能性需求的实现。3.3.1平均响应速度在网络传输速度足够的前提下,一般性数据保存、修改、删除等操作的响应反馈速度最大不超过2秒,一般控制在1秒内。WEB应用程序最大不超过8秒,一般控制在2秒内。在网络传输速度足够的前提下,一般10万条数据的简单查询及统计不应超过10秒,百万条数据的查询及统计不应超过20秒。复杂综合性跨模块查询及统计不超过1分钟。3.3.2可靠性平台应支持一天24小时,一周七天,一年365天不间断运行。平台在连续一年的运行中因软件故障导致停机的次数不得超过12次,单次修复时间不超过5小时。平台在瘫痪后能够在短时间内迅速恢复。平台在用户出现错误操作时能进行提示,并自动停止该操作。3.3.3安全性安全机制支持集中和分散用户和安全管理。每个用户可以承担多个角色,而且每个角色都可以有多个控制菜单、页面、操作、字段和数据的访问的多个权限列表。1)注册和超时安全:用户注册采用ID +口令的方式。合法登录后,支持可配置的自动超时登录无效设置。2)应用访问安全(菜单安全):每个角色对应一组菜单项、页面和操作。3) 数据安全控制:可以控制用户对正在加载的数据的访问。4) 行级安全:安全视图是特殊类型的SQL视图,可以通过配置对应用数据库表格中的独立的数据行访问进行控制。5) 数据加密:对于涉密、涉及用户隐私的信息,进行加密存储。6) 处理安全:可以利用进程调度程序将处理定义分配给各种处理组。可以利用安全管理器授权用户访问或对其施加限制。如果过程定义没有被分配给用户的批准处理组,那么该用户将不被允许运行该过程。支持所有操作的日志查询功能。3.3.4可扩展性系统适应用户的变更及扩展而不需要对程序做相应的修改。系统应能适应后续应用的添加,而不至于程序大量的修改或推翻重来。随着用户数的增长及功能应用的增长,软件系统通过硬件性能的调整而保持相对的稳定性,维持正常的运行。3.3.5易用性系统软件设计应充分考虑各个用户类和特征,提供适合各级操作人员的简便操作界面,采用通用的柜员操作平台,操作系统友好性强, 能够做到操作员通过简单的培训甚至自学就能掌握。3.3.6集成性系统具有XML 以及基于文件的 API,包含消息传送总线架构。企业能源管理系统支持一系列国际标准,支持Web服务;支持J2EE, SOAP, UDDI, XML,JSR168,WSRP等技术。也可以和.net等架构的应用进行集成进行数据交换。4 系统设计4.1 系统设计思想本系统是基于B/S的,采用面向对象的软件开发思想,采用符合MVC设计模式的struts2框架技术,代码分层设计。4.1.1 B/S结构开发思想B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。 4.1.2 面向对象的软件开发设计思想面向对象(Object Oriented,OO)是90年代之后软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象软件开发的特点主要有:1、对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。 2、抽象性。抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。 3、继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。4.1.3 代码分层思想Web应用系统规模和复杂程度的不断增大,给系统的开发带来了许多新的问题,如:程序代码的耦合度增大,代码的可维护性、应用框架及组件的可重用性降低等。针对这些问题,在基于MVC的多层Web体系结构基础上,对业务层中的模型做进一步研究,设计了一种优化的分层模型,详细描述了分层模型的设计思想与实现技术,并通过实例说明了该分层模型的具体应用。可以发现,该优化分层模型方案增加了模型部分的重用性,降低了层与层之间的耦合度,使得系统具有更好的可维护性、可扩充性和可移植性。代码分层思想也提高了数据库和整个系统的安全性。4.1.4 MVC模式设计思想MVC架构是“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器”。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC架构是一种架构,其实需要其他模式协作完成。Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。11,124.1.5 OSGI框架设计思想 OSGi service platform是一个基于Java的platform,OSGi service platform是一个开放并且提供统一接口标准的体系框架,基于这个体系框架,服务提供商,程序开发人员,软件提供商,服务网管运营商,设备提供商能够协调地联合起来开发,部署以及管理向用户提供的各种服务。OSGi framework结构如下图所示:图4.1 OSGi framework结构图Modules, Life Cycle, Service Registry, Services和Security是从不同的5个角度来划分framework所具备的功能,13而体系结构的最上层是符合OSGi framework接口标准的应用程序,也就是OSGi世界中有名的“bundle”。在OSGi R4规范中大致这样描述到:Framework定义了模块(modularization)的单元,叫作bundle。Bundle实际就是一个jar格式的文件,其中包含了java的class文件和其他资源文件(比如图标,配置文件等等)。Bundle可以在自己的manifest文件(MANIFEST.MF)中说明自己能够提供哪些java包,其他bundle如果在自己的manifest文件中指定了它需要这个包,那他们之间就可能产生java包的依赖关系,这样多个bundle之间就可以共享java包。14值得注意的是,bundle是能够在framework中部署的唯一格式。Framework的modules这一方面功能将主要负责bundle的安装部署,更新和卸载,以及bundle在设备的物理存储(如果有的话)。在这个层次,每个bundle都是独立的,它的安装,升级和卸载完全不依赖任何其他bundle,这点framework提供了强大的隔离性。Life Cycle专门负责对bundle的解析(比如关联两个有相互依赖关系的bundle),启动(相当于运行应用程序)和停止(相当于停止应用程序)。这个层次中,bundle间的逻辑关系被创建起来,这些关系能否成功的创建,将会直接影响bundle的成功解析和启动。15Service Registry可以认为是一个数据库,bundle启动后,可以向这个数据库注册它动态提供的服务。只要bundle不被停止,且bundle不主动撤销注册的服务,这个服务将一直保存在这个数据库中供其它bundle来查询和使用。而Services就是由bundle运行时提供的具体服务对象,这些服务对象的存在,使得framework具有极其动态的特征,并为framework运行时提供灵活强大的功能。4.2 主要数据表以下为计量计费系统所涉及到的部分实体关系表。对于表中大部分字段的定义和含义都做了简要说明。注:表前缀释义-前缀前二位E0开头的为EMS中的基础数据主体E1开头的为EMS中的业务主体R1开头的为EMS中的报表主体-前缀后三位001 计量表002 设备003 工艺(也叫流水线或产品线)004 生产组织表4.1 组织表表名组织MD_ORG字段标题类型及长度默认值备注RECID行标识RAW(16)主键RECVER行版本NUMBER(19)0UNITID单位标识RAW(16)STDCODE代码NVARCHAR2(60)STDNAME名称NVARCHAR2(60)SHORTNA