发明内容
本发明要解决的技术问题在于,针对现有技术的上述执行效率不高、开发调试效率不高、代码无法重用和移植的缺陷,提供一种执行和开发效率较高、代码可以重用和移植的电能信息采集方法及系统。
本发明解决其技术问题所采用的技术方案是:构造一种电能信息的采集方法,包括如下步骤:
A)生成定时采集任务;
B)定时任务执行上述生成的定时采集任务;
C)通过使用EJB(Enterprise Java Bean)规范和与其连接的部件交互信息的中间件存储上述定时采集任务取回的数据。
在本发明所述的电能信息采集方法中,所述步骤C)中进一步包括:
C1)中间件将其采集的数据缓存到本地文件;
C2)所述中间件将其采集的数据存储到数据库中。
在本发明所述的电能信息采集方法中,所述步骤C)还包括如下步骤:
C3)在所述任意一个采集任务失败时自动间隔设定时间再次补充采集该数据。
在本发明所述的电能信息采集方法中,所述电能信息采集方法还包括通过所述中间件查看并分析所述收集到的数据以及通过所述中间件管理所述终端信息、配置用电终端的参数。
在本发明所述的电能信息采集方法中,其特征在于,所述定时任务包括同时对多个用电终端进行电能信息采集任务。
在本发明所述的电能信息采集方法中,所述用电信息包括终端负荷、电流、电压或/和用电量。
本发明还涉及一种电能采集系统,包括用于产生定时任务的定时任务产生装置,用于采集与所述电能信息采集装置连接的用电终端的参数的信息采集装置,用于存储所述采集数据的数据库,还包括与所述信息采集装置、数据库连接的中间件服务器,所述中间器件服务器执行所述定时任务,采集电能信息并将采集的数据存储在数据库。
在本发明所述的电能采集系统中,所述信息采集装置包括用于所述电能信息采集装置于所述用电终端之间通信的前置机。
在本发明所述的电能采集系统中,还包括用于对用电终端的电能数据进行查看及分析的WEB数据浏览装置。
在本发明所述的电能采集系统中,还包括用于配置用电终端参数及信息的控制中心装置。
实施本发明的电能信息采集方法和系统,具有以下有益效果:由于采用中间件作为信息取得及存储的必要通道,且该中间件使用EJB规范和与其连接的部件交互信息,并在采集终端数据失败时自动再次采集。因此,该电能信息采集方法及系统的执行和开发效率较高、代码可以重用和移植且其采集的数据完整性较好、数据补采流量较小。
具体实施方式
下面将结合附图对本发明实施例作进一步说明。
如图1所示,在本发明电能信息采集方法及系统实施例中,该电能信息采集方法包括如下步骤:
步骤S11产生定时任务:在本步骤中,生成定时任务,这些定时任务通常是用于周期性地采集连接在系统上的用电终端的用电信息。
步骤S12多个任务输出:在本步骤中,输出多个任务给中间件,这些任务可以是用于采集各用电终端的用电信息的采集任务,也可以是查阅或分析已存储在数据库中的各用电终端的信息,还可以是对上述各用电终端的参数的配置(即控制上述各用电终端),这些任务既可以是本地产生的,也可以是远程输入的请求,在本实施,这些任务可以同时输出,也可以不同时输出,一般而言,采集信息的任务是同时输出的,而其他的任务就不一定与采集任务一起输出。
步骤S13中间件执行任务:在本步骤中,中间件接收到上述任务,并开始执行。在本实施例中,中间件使用EJB规范与各部件交互信息。
步骤S14中间件存储数据:在本步骤中,中间件将采集到的数据传送到存储器中存放,使得系统可以查看及分析这些数据。在本实施例中,所述中间件还具有数据缓存功能,在数据库因为任意问题不可用时,中间件将取得的数据缓存在本地文件夹中;在检测到数据库恢复可用时,再将其存储在数据库中的数据传送到数据库中。这样的好处是采集到的数据不会因为数据库的问题被丢弃,不需要再次补充采集,从而在一定程度上减少了流量,节省了费用。在实际情况中,还可能因为一些情况出现某个终端的数据采集失败的情况,在采集某个终端的信息失败的情况下,中间件不会停留在该终端的采集,而是先将该终端放在一边,等待一段事先设置好的时间,然后再次采集该终端数据。在上述步骤中,其动作是自动的、不需要人工干预的,以保证数据采集完整性。
图2示出了本实施例中在J2EE平台上构建的电能信息采集系统的结构图,该J2EE平台包括应用服务器JBOSS或WEBLOGIC,该电能信息采集系统包括前置机、定时任务、控制中心客户端、WEB数据浏览客户端、中间件。
中间件设置在JBOSS或WEBLOGIC等应用服务器当中,利用hibernate技术连接数据库,并利用EJB技术发布数据库信息,控制中心客户端通过EJB连接远程中间件应用服务器管理电网对象信息;定时任务通过EJB连接远程中间件应用服务器对用电管理终端进行数据自动采集;前置机通过EJB连接远程中间件应用服务器与终端通信;WEB浏览客户端通过EJB连接远程中间件应用服务器获取统计分析后的数据,并使用JSP、STRUTS将数据显示到网页中。
图3示出了中间件结构图,中间件在电能信息采集系统做为一核心模块设置在应用服务器中,提供了系统事务处理、安全性、线程调度、数据库连接等模块之间的通信、数据统计分析、数据存储、数据缓存等功能。
在本实施例中,中间件利用Hibernate技术对数据库进行连接,并通过连接池技术对数据库连接进行管理,以达到系统与数据库之间快速访问的目的。同时Hibernate技术将数据库表和java中的对象进行绑订,开发人员只需要操作对象就可以操作数据库,因此,其代码可读性强、灵活性高。
中间件还利用内存数据库技术,将各模块常用数据缓存到内存当中,采用这种技术可以提高系统运行速度,减少等待时间,同时由于通过中间件统一管理,在开发其他模块时只需要简单的对java对象进行查询,中间件自动分析该查询数据是否存在于缓存当中,如果存在就直接将数据返回,不存在就对数据库进行查询再返回数据。这种方法极大提高代码重用,减少开发人员工作量,提高开发效率,减少开发难度,提高系统运行速度。此外,中间件利用EJB技术将功能进行分布式发布,各模块只需调用EJB提供的功能就可以实现对数据查询、保存、修改、删除等操作。由于EJB调用简单,只需要简单的调用就能完成对数据库连接、事务处理、线程调度、数据存储、数据查询、数据分析等功能。
在本实施例中,中间件还使用java多线程技术、文件存储技术、数据批处理技术对大数据量进行存储。首先,使用多线程技术对不同数据类型使用不同线程进行数据处理,再使用数据批处理技术将同类型数据快速存储到数据库当中;其次,如果在数据存储过程当中判断数据库故障,无法进行数据存储时,使用文件存储技术将数据存储在文件当中,直到判断数据库恢复时重新将数据从文件中取出并存储到数据库中。这种做法不但能在大数据量并发的情况下将数据快速存储到数据库中,同时在数据库故障时能使数据不会丢失,保证数据完整性,减少系统与用电管理终端重复通信产生的流量,从而节约由于流量产生的费用。此外,中间件使用socket技术,提供各模块之间的通信功能,各模块只需调用中间件提供的发送和接收方法,就能发送数据到其它模块和接收其它模块发送过来的数据,比如当控制中心客户端电用管理终端档案信息发生变动时,通过调用发送方法就能将该用电管理终端新的档案信息通知到前置机和定时任务,前置机和定时任务接收到消息后刷新该用电管理终端信息,保证信息同步。
图4示出了控制中心客户端结构示意图,在本实施例中,控制中心客户端利用RCP技术提供可视化操作界面。并通过中间件提供的数据服务接口访问远程EJB服务对电网对象进行添加、修改、删除等操作。
图5示出了定时任务结构示意图,定时任务java使用多线程技术同时对不同的终端进行数据采集,线程创建个数根据终端数量和服务器CUP处理器个数进行分配,最大化利用服务器资源和最快速进行数据采集。定时任务通过中间件提供的数据服务接口访问远程EJB服务获取终端、电表档案信息和采集任务信息,根据采集任务信息采集数据。同时定时任务使用JAVA文件操作技术对采集数据可进行本地存储,防止应用服务器或数据库出现故障时数据丢失,保证数据完整性,同时减少因为数据丢失造成数据补采产生多于的流量。
图6示出了前置机结构示意图,前置机使用SOCKET技术与用电管理终端通信,同时控制中心客户端也使用SOCKET与前置机进行通信,当控制中心客户端对终端参数下发、数据采集时,使用SOCKET将消息发送到前置机,前置机再将消息转发到用电管理终端。前置机会自动将系统通信协议解析成国家标准通信协议和自动将国家标准通信协议组织成系统通信协议。此方法优点在于当出现不同类型终端、不同通信协议时,其它模块只需要组织统一的系统协议,前置机自动将系统协议转换成对应的通信协议,减少其它模块开发人员工作量,提高开发效率。
图7示出了WEB浏览客户端结构示意图,WEB浏览客户端使用JSP、STRUTS、JSF等技术将数据呈现在网页中。在本实施例中,WEB浏览客户端利用中间件提供的基本数据查询功能,将数据查询出来后绘制成图片和表格。WEB浏览客户端利用中间件提供的数据分析功能,将数据查询出来后绘制报表。
综上所述,本实施例基于J2EE平台构建电能信息采集系统,J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。其中EJB组件使编写应用程序更为简单。尽管EJB体系结构复杂,但应用程序开发人员一般都不必再编写访问系统服务的代码,EJB容器会实现系统级的服务,例如,事务、安全性等。另外,J2EE还支持异构环境。基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。
使用J2EE构建电能信息采集系统主要有以下优点:
由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面和EJB由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发,提高开发效率。
除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码,可移植性强。
由于在EJB模型中,各个软件组件都是严格分离的,因此,可以从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。
基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加,因而易于维护。
此外,企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。
总之,在本实施例中,系统事务处理、安全性、线程调度、数据库连接、各模块之间的通信、数据统计分析、数据存储、数据缓存都由中间件实现并部署到应用服务器中,通过EJB将功能发布,前置机、定时任务、控制中心客户端、WEB数据浏览客户端只需要简单调用EJB就可以实现各种功能,各个模块只需重点负责一项任务,比如(控制中心客户端管理电网对象,前置机与终端通信,定时任务采集数据,WEB发布数据),此种方式极大缩短系统开发时间,提高开发效率,移植灵活,容易扩展,部署方便。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。