CN103677825B - 基于Java多线程通用数据处理框架及其构建方法 - Google Patents
基于Java多线程通用数据处理框架及其构建方法 Download PDFInfo
- Publication number
- CN103677825B CN103677825B CN201310660907.6A CN201310660907A CN103677825B CN 103677825 B CN103677825 B CN 103677825B CN 201310660907 A CN201310660907 A CN 201310660907A CN 103677825 B CN103677825 B CN 103677825B
- Authority
- CN
- China
- Prior art keywords
- thread
- module
- management
- data processing
- cycle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000008569 process Effects 0.000 title claims abstract description 31
- 238000010276 construction Methods 0.000 title claims description 8
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000007405 data analysis Methods 0.000 claims abstract description 8
- 230000005059 dormancy Effects 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 13
- 239000012141 concentrate Substances 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Abstract
本发明公开了一种基于Java多线程通用数据处理框架,其特征在于,包括:线程管理模块、业务逻辑接口模块、公共服务模块;所述公共服务模块用于实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务;所述业务逻辑接口模块用于提供基于公共服务模块且具有线程功能的数据处理基类,开发人员通过继承所述数据处理基类实现业务逻辑;所述线程管理模块用于通过图形界面实现对数据解析和处理线程的统一管理以及线程周期的参数配置管理。本发明可用于电力、气象、环境等多个领域的数据解析、处理和报表导出,本发明的数据处理框架结构层次分明,高效稳定,具有良好的可扩展性,本发明提高开发效率和管理的效率。
Description
技术领域
本发明涉及一种数据处理框架,具体涉及一种基于Java多线程通用数据处理框架,本发明还涉及一种基于Java多线程通用数据处理框架的构建方法,本发明属于计算机数据处理领域。
背景技术
随着信息技术和物联网技术的不断发展,当今社会已经进入了大数据的时代。以电力行业为例,大量的数据被用以电网生产运营辅助分析,这些数据既有SCADA、电量采集、营销等核心生产数据,也包括在线监测、带电检测、电能质量、电压监测等监测类数据,还涵盖气象、环境等跨领域数据。这些数据频度不同、格式各异。从数据的来源来看,有数据文件(如txt/xml/excel)、数据库和Webservice等多种方式,而数据的目标存储或发布方式包含报表(如excel/doc/pdf)、数据库和Webservice等。数据处理频度则包含实时、准实时、周期性(如每小时/天/周)等多种要求。
以往一般是针对每种数据类型开发专用的解析或处理程序。这种方法适用于结构复杂、格式特殊或对性能有很高要求的应用。然而对于普通类型的数据业务,例如txt、xml、excel文件解析或常规的数据库处理转换导出,专用程序开发可能存在以下两方面的问题:
1.导致大量的重复劳动。各个专用程序除了业务逻辑外,其它部分存在很大的相似性。如数据库操作、文件操作、报表生成、定时任务管理等,这将导致大量不必要的重复开发劳动。
2. 不便于后期的管理与维护。每个专用程序一般会配备独立的图形管理界面或后台任务窗。如果将各个专业程序部署在不同的服务器上可能会造成资源浪费及管理开销,如果部署在同一台服务器上会因为多个窗口而导致管理上的不便。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种基于Java多线程通用数据处理框架以及基于Java多线程通用数据处理框架的构建方法。
为了实现上述目标,本发明采用如下的技术方案:
基于Java多线程通用数据处理框架,其特征在于,包括:线程管理模块、业务逻辑接口模块、公共服务模块;所述公共服务模块用于实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务;所述业务逻辑接口模块用于提供基于公共服务模块且具有线程功能的数据处理基类,开发人员通过继承所述数据处理基类实现业务逻辑;所述线程管理模块用于通过图形界面实现对数据解析和处理线程的统一管理以及线程周期的参数配置管理。
基于Java多线程通用数据处理框架的构建方法,其特征在于,包括如下步骤:
步骤一:利用IDE工具分别针对线程管理模块、业务逻辑接口模块、公共服务模块建立独立的文件夹;
步骤二:在线程管理模块中构造图形界面,通过按钮实现对线程的统一管理以及线程周期的参数配置管理;
步骤三:在业务逻辑接口模块中提供基于公共服务模块且具有线程功能的数据处理基类,在数据处理基类中实现基于Java的Runnable接口,所述Runnable接口包括一循环体,所述循环体执行handleData方法,并计算handleData方法的执行时间;在所述handleData方法执行后,所述循环体将执行时间与线程周期进行对比,如果执行时间小于线程周期则休眠到周期结束,否则直接开始新的数据处理周期;开发人员在handleData方法中实现业务逻辑;
步骤四:在公共服务模块中通过整合第三方jar包实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务。
本发明的有益之处在于:本发明基于Java多线程通用数据处理框架可用于电力、气象、环境等多个领域的数据解析、处理和报表导出,本发明的数据处理框架结构层次分明,高效稳定,具有良好的可扩展性。开发人员通过使用本框架进行二次开发,可以将精力集中在核心业务逻辑上,避免了底层的重复代码开发,大大提高了开发效率。此外,本发明的数据处理框架通过统一的图形界面对各个数据处理线程进行管理,有效提高了管理的效率。
附图说明
图1是本发明基于Java多线程通用数据处理框架的结构示意图。
图2是本发明基于Java多线程通用数据处理框架的构建方法流程图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1所示,本发明基于Java多线程通用数据处理框架,其特征在于,包括:线程管理模块、业务逻辑接口模块、公共服务模块。
公共服务模块用于实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务。公共服务模块用于支撑线程管理模块、业务逻辑接口模块,还可以通过供开发人员调用,从而简化了开发流程,避免了重复劳动。
下面详细介绍公共服务模块的各个子功能:
公共服务模块的数据库操作包含数据库连接的建立、释放及相关资源管理,数据的增删查改等功能。其中,新增和删除操作做了优化处理,通过批量提交提高了整体性能。本发明的公共服务模块的数据库操作支持DB2、Oracle、Sqlserver等主流数据库。
公共服务模块的文件操作包含文件路径获取、文件子目录获取、文件复制删除等功能。
公共服务模块的报表生成整合了poi、itext等jar包并提供相关接口,开发人员通过调用可生成excel、word和pdf等常见格式的报表文件。
公共服务模块的配置操作可以实现对配置文件的读取和修正,涵盖文件路径、线程执行周期、数据库连接与模式等配置参数。
公共服务模块的日志管理集成了log4j日志包,为开发人员提供了方便易用的日志功能调用。
公共服务模块的基础数据服务包括日期操作、数据字典等基础功能。日期操作有日期字符串转换、N小时前后时刻获取、时间间隔计算等常见日期操作,数据字典由开发人员自行定义补充。
业务逻辑接口模块用于提供基于公共服务模块且具有线程功能的数据处理基类,开发人员通过继承数据处理基类实现业务逻辑。这里的基类是能够根据线程管理模块对线程周期的参数配置管理,执行周期运行或休眠的功能。
线程管理模块用于通过图形界面实现对数据解析和处理线程的统一管理以及线程周期的参数配置管理。这样,使用者通过图形界面,就可以实现单个或多个线程的启动、停止功能,并可以通过修改各个线程的周期参数来改变线程的执行频度。
如图1给出了线程管理模块、业务逻辑接口模块、公共服务模块之间的关系,本发明的基于Java多线程通用数据处理框架通过公共服务模块整合了数据库操作、文件操作、定时任务管理、线程启停管理、报表生成、日志管理等多种基础功能,并预留了通过业务逻辑接口模块预留了业务逻辑接口。基于本发明的数据处理框架,开发人员仅需关心和开发业务逻辑接口模块中的业务逻辑,通过二次开发和参数配置即可快速地新建或扩展数据处理程序。本发明的数据处理框架通过Java多线程实现,可以支持多达数十个线程,并通过图形界面进行统一管理,具有较高的可扩展性和易维护性。
下面将结合附图2对本发明基于Java多线程通用数据处理框架的构建方法做进一步的说明。
步骤一:利用IDE工具分别针对线程管理模块、业务逻辑接口模块、公共服务模块建立独立的文件夹。由于本发明的基于Java多线程通用数据处理框架自上而下由线程管理模块、业务逻辑接口模块、公共服务模块三个模块组成。可使用Eclipse等IDE工具进行框架构建,分别针对各个模块建立独立的文件夹,上层模块对下层模块存在依赖关系。
步骤二:在线程管理模块中构造图形界面,通过按钮实现对线程的统一管理以及线程周期的参数配置管理。实际中,线程管理模块可使用SWT等方法构造图形界面,通过按钮可实现对所有线程的启停控制。
步骤三:在业务逻辑接口模块中提供基于公共服务模块且具有线程功能的数据处理基类,在数据处理基类中实现基于Java的Runnable接口,Runnable接口包括一循环体,循环体执行handleData方法,并计算handleData方法的执行时间;在handleData方法执行后,循环体将执行时间与线程周期进行对比,如果执行时间小于线程周期则休眠到周期结束,否则直接开始新的数据处理周期;开发人员在handleData方法中实现业务逻辑。由此,实际使用时,开发人们可以将精力集中在在handleData方法中实现业务逻辑,而其与模块由于具有更多的通用性,因此可以减少重复劳动,提供开发效率。通过业务逻辑接口模块,开发人员可以开发各种类型的数据解析或处理功能,并作为作为独立的线程分别运行。
步骤四:在公共服务模块中通过整合第三方jar包实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务。公共服务模块包括数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务等子功能,本模块整合了大量第三方jar包,如数据库操作需引入db2、oracle等驱动包,报表生成需引入poi、itext包,日志功能则需引入log4j包。在第三方jar包基础上,开发各类实用功能并通过接口方式供开发人员调用。利用该框架,可以实现数据的解析、处理和导出等功能。
在开发、测试或运行阶段,根据需要进行相关参数的配置和调整。本发明基于Java多线程通用数据处理框架有log4j.properties和config.properties两个配置文件。前者是日志功能配置文件,指定了日志的分级、路径和格式。后者包含了数据库连接参数、各线程扫描周期、各线程指定的扫描、备份及导出文件夹等参数信息。可以直接修改配置文件或在运行时通过图形界面编辑配置参数。
开发人员通过继承具有线程功能的数据处理基类进行二次开发实现业务逻辑。线程在基类中的handleData方法中定义数据处理逻辑。在开发过程中,可以使用公共服务模块所提供的接口来简化开发流程,也可以根据需要对公共服务模块进行扩充完善。各个线程开发完成后,应修改线程管理模块的调度程序及相关配置文件来运行与测试。
本发明提出了一种基于Java多线程通用数据处理框架,可用于电力、气象、环境等多个领域的数据解析、处理和报表导出。本发明基于Java多线程通用数据处理框架结构层次分明,高效稳定,具有良好的可扩展性。开发人员通过使用本发明基于Java多线程通用数据处理框架进行二次开发,可以将精力集中在核心业务逻辑上,避免了底层的重复代码开发,大大提高了开发效率。此外,本发明基于Java多线程通用数据处理框架通过统一的图形界面对各个数据处理线程进行管理,有效提高了管理的效率。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (2)
1.基于Java多线程通用数据处理框架,其特征在于,包括:线程管理模块、业务逻辑接口模块、公共服务模块;
所述公共服务模块通过整合第三方jar包实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务;
所述业务逻辑接口模块用于提供基于公共服务模块且具有线程功能的数据处理基类,开发人员通过继承所述数据处理基类实现业务逻辑;在数据处理基类中实现基于Java的Runnable接口,所述Runnable接口包括一循环体,所述循环体执行handleData方法,并计算handleData方法的执行时间;在所述handleData方法执行后,所述循环体将执行时间与线程周期进行对比,如果执行时间小于线程周期则休眠到周期结束,否则直接开始新的数据处理周期;
所述线程管理模块用于通过图形界面实现对数据解析和处理线程的统一管理以及线程周期的参数配置管理。
2.基于Java多线程通用数据处理框架的构建方法,其特征在于,包括如下步骤:
步骤一:利用IDE工具分别针对线程管理模块、业务逻辑接口模块、公共服务模块建立独立的文件夹;
步骤二:在线程管理模块中构造图形界面,通过按钮实现对线程的统一管理以及线程周期的参数配置管理;
步骤三:在业务逻辑接口模块中提供基于公共服务模块且具有线程功能的数据处理基类,在数据处理基类中实现基于Java的Runnable接口,所述Runnable接口包括一循环体,所述循环体执行handleData方法,并计算handleData方法的执行时间;在所述handleData方法执行后,所述循环体将执行时间与线程周期进行对比,如果执行时间小于线程周期则休眠到周期结束,否则直接开始新的数据处理周期;开发人员在handleData方法中实现业务逻辑;
步骤四:在公共服务模块中通过整合第三方jar包实现数据库操作、文件操作、报表生成、配置操作、日志管理、基础数据服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310660907.6A CN103677825B (zh) | 2013-12-10 | 2013-12-10 | 基于Java多线程通用数据处理框架及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310660907.6A CN103677825B (zh) | 2013-12-10 | 2013-12-10 | 基于Java多线程通用数据处理框架及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677825A CN103677825A (zh) | 2014-03-26 |
CN103677825B true CN103677825B (zh) | 2015-09-02 |
Family
ID=50315492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310660907.6A Active CN103677825B (zh) | 2013-12-10 | 2013-12-10 | 基于Java多线程通用数据处理框架及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677825B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572087A (zh) * | 2014-12-25 | 2015-04-29 | 深圳联友科技有限公司 | 一种业务逻辑实现的适配模式方法及系统 |
CN105159757A (zh) * | 2015-08-07 | 2015-12-16 | 北京思特奇信息技术股份有限公司 | 一种统一后台进程管理的方法和系统 |
CN108769249B (zh) * | 2018-06-20 | 2021-05-25 | 武汉斗鱼网络科技有限公司 | iOS高性能高扩展网络装置及实现方法、服务器及介质 |
CN111443901B (zh) * | 2018-12-27 | 2024-02-09 | 三六零科技集团有限公司 | 一种基于Java反射的业务扩展方法及装置 |
CN114238343B (zh) * | 2021-12-23 | 2022-10-28 | 南京华飞数据技术有限公司 | 基于大数据的多维度可变性自动化造数据模型的实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567493A (zh) * | 2011-12-22 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 数据报表系统及具有动态数据源的报表生成方法 |
CN102122302B (zh) * | 2011-03-11 | 2013-03-13 | 北京神舟航天软件技术有限公司 | 文档集中处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214329B2 (en) * | 2008-08-26 | 2012-07-03 | Zeewise, Inc. | Remote data collection systems and methods |
-
2013
- 2013-12-10 CN CN201310660907.6A patent/CN103677825B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122302B (zh) * | 2011-03-11 | 2013-03-13 | 北京神舟航天软件技术有限公司 | 文档集中处理系统及方法 |
CN102567493A (zh) * | 2011-12-22 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 数据报表系统及具有动态数据源的报表生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103677825A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677825B (zh) | 基于Java多线程通用数据处理框架及其构建方法 | |
CN107357856B (zh) | 基于电网全景业务模型数据集成及数据服务的实现方法 | |
Berral et al. | Building green cloud services at low cost | |
CN103729732A (zh) | 一种分布式能源信息建模及信息交互方法 | |
CN102983926B (zh) | 一种刀片系统时钟同步的设计方法 | |
CN103440531A (zh) | 计及风电场风机运行状态的风电场短期风电功率预测系统 | |
CN105719126A (zh) | 一种基于生命周期模型的互联网大数据任务调度的系统及方法 | |
CN102467412A (zh) | 一种处理操作请求的方法、装置及业务系统 | |
CN205384728U (zh) | 智能集中器数据采集装置 | |
CN110442595B (zh) | 一种通用sql报表数据集构建的方法与装置 | |
CN108229799A (zh) | 一种多源异构电网运行实时数据接入系统及方法 | |
CN103049431A (zh) | 基于模型对象化语义的icd检验方法 | |
CN103914501A (zh) | 基于海量实时数据库的电力行业实时报表方法 | |
CN105743870A (zh) | 一种智能变电站一体化业务平台服务接口的设计方法 | |
CN115934856A (zh) | 一种构造综合能源数据资产的方法和系统 | |
CN106200563B (zh) | 一种数控设备状态采集和设备控制系统及方法 | |
CN104794217A (zh) | 基于并行计算模式的瓦片地图数据及服务更新方法与系统 | |
CN211180055U (zh) | 一种停复电分析与抢修管理系统 | |
CN103631854A (zh) | 基于模型对象化语义的icd与scd一致性校验方法 | |
CN110533320B (zh) | 一种基于Hadoop平台的电力设备停电计划编制方法 | |
CN112134354A (zh) | 一种基于hplc通信的营配数据融合方法 | |
Yan et al. | Design of intelligent water metering system for agricultural water based on nb-iot | |
CN115187425A (zh) | 基于组态软件和关系型数据库触发器的用电数据处理方法 | |
CN112329408A (zh) | 一种电网调控办公系统智能报表报送系统 | |
CN102647466A (zh) | 一种分布式能源集成管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |