CN109299171A - 一种flex客户端支持海量数据长时计算的方法 - Google Patents

一种flex客户端支持海量数据长时计算的方法 Download PDF

Info

Publication number
CN109299171A
CN109299171A CN201810917268.XA CN201810917268A CN109299171A CN 109299171 A CN109299171 A CN 109299171A CN 201810917268 A CN201810917268 A CN 201810917268A CN 109299171 A CN109299171 A CN 109299171A
Authority
CN
China
Prior art keywords
data
timer
value
client
thread
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.)
Granted
Application number
CN201810917268.XA
Other languages
English (en)
Other versions
CN109299171B (zh
Inventor
彭建华
周惠
胡光永
尧海昌
刘芳芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing 180 Safety Technology Co ltd
Original Assignee
Nanjing Institute of Industry Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Institute of Industry Technology filed Critical Nanjing Institute of Industry Technology
Priority to CN201810917268.XA priority Critical patent/CN109299171B/zh
Publication of CN109299171A publication Critical patent/CN109299171A/zh
Application granted granted Critical
Publication of CN109299171B publication Critical patent/CN109299171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种flex客户端支持海量数据长时计算的方法,通过创建控制单元、寄存单元把一个完整的数据计算过程划分为多个持续的、较小的计算过程,有效解决了Flex解析大数据而导致客户端超时的问题,使基于Flex开发的富客户端Web应用程序能够支持大数据量的复杂应用计算。

Description

一种flex客户端支持海量数据长时计算的方法
技术领域
本发明涉及一种海量数据长时计算的方法,尤其是一种flex客户端支持海量数据长时计算的方法。
背景技术
Flex是一个免费、高效的开源框架,用于构建对表现力要求极高、跨浏览器和操作系统的富客户端Web应用程序。使用Flex框架构建Flex应用程序时,Flex框架可以通过智能编码、交互式遍历调试以及可视化设计用户界面布局来简化应用程序的界面开发、设计难度,加快基于Flex项目的开发进度,且利用AdobeAIR,Flex应用程序还可以访问本地数据和系统的资源。与jsp、asp等技术相比,Flex的优势:Flex与Flash:可以让普通程序员开发制作Flash;丰富的界面渲染、交互能力,有极强的界面表现能力;RIA富客户端应用,解决了异步调用,界面无刷新,浏览器兼容性等多项难题;是流媒体技术支持最好的应用;跨平台能力强,能够在Linux、Window、Android等各种操作系统上运行;能够实现各种底层应用需求,比如操作、查看摄像头,查看摄像头实时视频等。
基于Flex开发的富客户端Web应用具有如此多优点,因此基于Flex技术的应用开发在国内被广泛研究,甄海涛等发表了《基于Flex的城市给排水管理平台设计与实现》(自动化技术与应用,2014)、潘立武等发表了《基于Flex和REST的WebGIS防汛信息管理系统》(水力发电,2017)、刘红敏等发表了《基于Flex的企业创新方法服务系统的设计与实现》(计算机工程与设计,2014)、张永华等发表了《基于Flex与AnyMap技术的气象灾害应急响应系统》(气象科技,2015)、邓超等发表了《基于Flex的市级国土资源综合监管平台设计与实现》(测绘工程,2016)、韩冬等发表了《Flex与GIS结合的水资源信息管理系统实现》(测绘科学,2014)、黄冬梅等发表了《基于Flex和WebGIS的风暴潮辅助决策系统》(计算机应用与软件,2014)、何贞铭等发表的《基于Flex的WebGIS客户端及其应用》(地理空间信息,2014)等。
ActionScript 3.0是Flex技术的重要组成部分,是一种强大的面向对象编程语言。设计ActionScript 3.0的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序已经成为Web体验的重要部分。Flex的基础是ActionScript 3.0,ActionScript 3.0运行环境是单线程事件驱动,Flex的一个事件从开始执行到结束,即使在这个事件中派遣了多个子事件执行一个逻辑处理单元,事件中的代码也是按照事件派遣顺序串行执行,当一个逻辑处理单元执行复杂任务,计算数据量大时,整个逻辑处理单元的执行也将会花费较长时间。在Flex中,一个事件处理业务的时间有时长限制,当一个事件处理的时间长度超过这个限制时,程序就出现超时提示,抛出超时异常,结束程序的运行,因此,基于Flex开发的富客户端Web应用程序,目前是不支持大数据量的复杂应用计算。
发明内容
本发明要解决的技术问题是现有的基于Flex开发的富客户端Web应用程序是不支持大数据量的复杂应用计算的。
为了解决上述技术问题,本发明提供了一种flex客户端支持海量数据长时计算的方法,包括如下步骤:
步骤1,由客户端向服务器发送查询请求,服务端对接收的查询请求进行解析,构建用于查询数据的查询语句,并将查询语句提交至数据库;
步骤2,数据库根据查询语句返回满足条件的查询结果数据至服务端;
步骤3,服务端构建用于返回客户端的不同数据区,并对数据库返回的查询结果数据进行组织获得不同数据区的分区数据,再将组织好的不同数据区的分区数据返回至客户端;
步骤4,客户端接收到返回的分区数据后创建一个控制单元,同时把服务端的不同数据区的分区数据存储在客户端的不同内存块中;
步骤5,客户端通过控制单元启动一个定时器线程,并把服务端返回的分区数据通过各个内存块传入定时器线程;
步骤6,客户端通过控制单元开辟一块寄存单元,分析计算数据依赖的对象,把各个对象与各个内存块关联,寄存单元中以计算数据依赖的对象为各个行头,以分区数据在内存块中的数据位置为各个行值;
步骤7,在定时器线程中声明一个定时器数据计算时长变量,并赋初始值为0,在定时器中更新与判断这个定时器数据计算时长变量,同时声明一个初始值为0的数据读取计数器,定时器线程每次从内存块中读取数据时,数据读取计数器的值加1;
步骤8,利用内存块中读取的数据计算VALUE值,当数据读取计数器大于等于定时器线程的阈值参数时,数据读取计数器重置为初始值0,同时更新定时器数据计算时长变量的值,定时器数据计算时长变量的值为定时器中开始计算数据的时间到当前更新的时间长度,当数据读取计数器的值小于定时器线程中设定的阈值参数时,数据读取计数器的值加1;
步骤9,循环执行步骤8,直到定时器数据计算时长变量大于定时器最大执行时间参数时停止,更新寄存单元的当前行值为当前计算的VALUE值,再通知控制单元结束当前定时器线程,控制单元接收到当前定时器线程结束通知后,重新启动一个新的定时器线程,并把各个内存块、寄存单元传给新的定时器线程,新的定时器线程读取寄存单元中存储的内存块中当前使用的数据位置,根据当前行位置从内存块中读取数据,若内存块中已无数据,则得到最终的VALUE值,否则返回步骤8。
进一步地,步骤5中,客户端通过控制单元启动一个定时器线程时,需要对启动的定时器进行配置,设置定时器线程的最大执行时间参数,通过最大执行时间参数来控制定时器线程的最大执行时间。
进一步地,步骤7中,声明一个数据读取计数器时,需要对数据读取计数器进行配置,设置数据读取计数器的阈值参数,通过阈值参数与定时器线程中数据计数器的比较来控制定时器线程中数据计算时长变量的判断与更新。
本发明的有益效果在于:通过在数据从服务端返回到客户端时,把返回的数据存储在不同的内存块中,并创建一个控制单元,通过这个控制单元创建持续计算数据的定时器线程,并把数据、寄存单元传给定时器线程;通过构建的寄存单元,把计算数据依赖的对象与保存数据的内存块中当前用于计算的数据所在的位置保存在寄存单元中;定时器线程结束后,新创建的定时器线程读取寄存单元中存储的内存块中当前使用的数据位置,根据当前的数据位置,在已结束的定时器线程计算的基础上继续计算数据;通过控制单元、寄存单元把一个完整的数据计算过程划分为多个持续的、较小的计算过程,从而使基于Flex的富Web应用程序的客户端具有了支持海量数据、长时计算的能力。
附图说明
图1为本发明的方法流程图;
图2为本发明的寄存单元构成示意图;
图3为本发明的计算对象与寄存单元示意图。
具体实施方式
通过如下实例的实现过程,阐述本发明的实施步骤。
实施例:现有多张复杂、大数据量的表T1,T2,T3,每张表包含多个字段,客户端按表1显示。
表1报表展示界面
表1中,VALUE根据公式(1)计算得到:
如图1所示,本发明的flex客户端支持海量数据长时计算的方法,具体实现步骤为:
初始化步骤,设置可配置的控制定时器线程中数据计数器的阈值参数P_C_DURATION,通过阈值参数P_C_DURATION来控制定时器线程中数据计算时长变量的判断与更新;设置可配置的定时器线程的最大执行时间参数P_T_EXECUTE_TIME_LENGTH,通过最大执行时间参数P_T_EXECUTE_TIME_LENGTH控制定时器线程的最大执行时间;
步骤1,客户端组织请求条件,把客户端请求发送到服务端;服务端解析请求,构建查询数据的查询语句;服务端把查询语句提交到数据库服务;
步骤2,数据库服务返回满足条件的数据到服务端;
步骤3,服务端对数据库服务返回的数据按照表T1、T2和T3进行组织,构建返回客户端的不同数据区D1、D2和D3,其中表T1对应的数据放在D1中、表T2对应的数据放在D2中,表T3对应的数据放在D3中;服务端把组织好的数据返回到客户端;
步骤4,客户端接收到返回数据后,创建一个控制单元,同时把对应服务端的D1、D2、D3数据区的数据存储在客户端的M1、M2和M3内存块中;
步骤5,通过控制单元,启动一个定时器线程,并把M1、M2和M3内存块传入定时器线程;
步骤6,控制单元开辟一块寄存单元M,如图2所示,分析公式(1),得到计算数据依赖的对象T1.F1、T2.F1、T2.F2、T3.F3,把T1.F1、T2.F1、T2.F2、T3.F3分别与M1、M2、M3关联,构建二维数组的寄存单元M,关联关系如图3所示,以T1.F1、T2.F1、T2.F2、T3.F3为行头,数据计算过程中,更新寄存单元M中T1.F1、T2.F1、T2.F2、T3.F3分别对应的行值,该行值为当前从M1、M2、M3中读取的数据在内存块中的位置;
步骤7,在定时器线程中声明一个定时器数据计算时长变量ComputeDuration,并赋初始值为0,在定时器中更新与判断这个数据计算时长变量ComputeDuration,同时声明一个初始值为0的数据读取计数器ReadCount,定时器线程每次从M1、M2、M3读数据计算VALUE值时,ReadCount增加1;
步骤8,根据公式(1),从M1、M2、M3中读取数据,计算VALUE,当ReadCount大于等于参数P_C_DURATION时,ReadCount重置为初始值0,同时更新计算时长变量ComputeDuration的值,ComputeDuration的值为定时器线程中开始计算数据的时间到当前更新ComputeDuration值的时间长度,以S为单位,当ReadCount小于参数P_C_DURATION时,ReadCount加1;
步骤9,循环步骤8,当变量ComputeDuration大于P_T_EXECUTE_TIME_LENGTH时,更新图3中寄存单元M的当前行的值为公式(1)的当前VALUE值,同时通知控制单元,结束当前定时器线程,控制单元接收到当前定时器线程结束通知后,重新启动一个新的定时器线程,并把M1、M2、M3以及寄存单元M传给新的定时器线程,新的定时器线程读取寄存单元M中的当前行,再根据当前行从M1、M2、M3内存块中读取数据,再利用公式(1)继续计算VALUE;
步骤10,重复步骤8和9,直到M1、M2、M3中的数据读取结束,得到最终的VALUE数据。
本发明通过控制单元和寄存单元把一个完整的数据计算过程划分为多个持续的、较小的计算过程,从而使基于Flex的富Web应用程序的客户端具备了支持海量数据、长时计算的能力。

Claims (3)

1.一种flex客户端支持海量数据长时计算的方法,其特征在于,包括如下步骤:
步骤1,由客户端向服务器发送查询请求,服务端对接收的查询请求进行解析,构建用于查询数据的查询语句,并将查询语句提交至数据库;
步骤2,数据库根据查询语句返回满足条件的查询结果数据至服务端;
步骤3,服务端构建用于返回客户端的不同数据区,并对数据库返回的查询结果数据进行组织获得不同数据区的分区数据,再将组织好的不同数据区的分区数据返回至客户端;
步骤4,客户端接收到返回的分区数据后创建一个控制单元,同时把服务端的不同数据区的分区数据存储在客户端的不同内存块中;
步骤5,客户端通过控制单元启动一个定时器线程,并把服务端返回的分区数据通过各个内存块传入定时器线程;
步骤6,客户端通过控制单元开辟一块寄存单元,分析计算数据依赖的对象,把各个对象与各个内存块关联,寄存单元中以计算数据依赖的对象为各个行头,以分区数据在内存块中的数据位置为各个行值;
步骤7,在定时器线程中声明一个定时器数据计算时长变量,并赋初始值为0,在定时器中更新与判断这个定时器数据计算时长变量,同时声明一个初始值为0的数据读取计数器,定时器线程每次从内存块中读取数据时,数据读取计数器的值加1;
步骤8,利用内存块中读取的数据计算VALUE值,当数据读取计数器大于等于定时器线程的阈值参数时,数据读取计数器重置为初始值0,同时更新定时器数据计算时长变量的值,定时器数据计算时长变量的值为定时器中开始计算数据的时间到当前更新的时间长度,当数据读取计数器的值小于定时器线程中设定的阈值参数时,数据读取计数器的值加1;
步骤9,循环执行步骤8,直到定时器数据计算时长变量大于定时器最大执行时间参数时停止,更新寄存单元的当前行值为当前计算的VALUE值,再通知控制单元结束当前定时器线程,控制单元接收到当前定时器线程结束通知后,重新启动一个新的定时器线程,并把各个内存块、寄存单元传给新的定时器线程,新的定时器线程读取寄存单元中存储的内存块中当前使用的数据位置,根据当前行位置从内存块中读取数据,若内存块中已无数据,则得到最终的VALUE值,否则返回步骤8。
2.根据权利要求1所述的flex客户端支持海量数据长时计算的方法,其特征在于,步骤5中,客户端通过控制单元启动一个定时器线程时,需要对启动的定时器进行配置,设置定时器线程的最大执行时间参数,通过最大执行时间参数来控制定时器线程的最大执行时间。
3.根据权利要求1所述的flex客户端支持海量数据长时计算的方法,其特征在于,步骤7中,声明一个数据读取计数器时,需要对数据读取计数器进行配置,设置数据读取计数器的阈值参数,通过阈值参数与定时器线程中数据计数器的比较来控制定时器线程中数据计算时长变量的判断与更新。
CN201810917268.XA 2018-08-13 2018-08-13 一种flex客户端支持海量数据长时计算的方法 Active CN109299171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810917268.XA CN109299171B (zh) 2018-08-13 2018-08-13 一种flex客户端支持海量数据长时计算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810917268.XA CN109299171B (zh) 2018-08-13 2018-08-13 一种flex客户端支持海量数据长时计算的方法

Publications (2)

Publication Number Publication Date
CN109299171A true CN109299171A (zh) 2019-02-01
CN109299171B CN109299171B (zh) 2021-04-20

Family

ID=65170443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810917268.XA Active CN109299171B (zh) 2018-08-13 2018-08-13 一种flex客户端支持海量数据长时计算的方法

Country Status (1)

Country Link
CN (1) CN109299171B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521911A (zh) * 2009-03-27 2009-09-02 中兴通讯股份有限公司 基于Iu Flex技术的负荷重分配系统和方法
CN101599029A (zh) * 2009-07-09 2009-12-09 浪潮电子信息产业股份有限公司 一种flex中利用事件机制在模块间传递数据的方法
CN104035422A (zh) * 2014-06-23 2014-09-10 中国北方车辆研究所 一种基于智能移动终端的数据计算方法
US20160054424A1 (en) * 2012-06-08 2016-02-25 Medtronic Minimed, Inc. Application of electrochemical impedance spectroscopy in sensor systems, devices, and related methods
CN106484435A (zh) * 2016-10-26 2017-03-08 合肥润客软件科技有限公司 一种基于Flex的集成化软件研发管理系统
CN106528272A (zh) * 2016-10-18 2017-03-22 北京用友薪福社云科技有限公司 一种数据处理装置、方法及终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521911A (zh) * 2009-03-27 2009-09-02 中兴通讯股份有限公司 基于Iu Flex技术的负荷重分配系统和方法
CN101599029A (zh) * 2009-07-09 2009-12-09 浪潮电子信息产业股份有限公司 一种flex中利用事件机制在模块间传递数据的方法
US20160054424A1 (en) * 2012-06-08 2016-02-25 Medtronic Minimed, Inc. Application of electrochemical impedance spectroscopy in sensor systems, devices, and related methods
CN104035422A (zh) * 2014-06-23 2014-09-10 中国北方车辆研究所 一种基于智能移动终端的数据计算方法
CN106528272A (zh) * 2016-10-18 2017-03-22 北京用友薪福社云科技有限公司 一种数据处理装置、方法及终端
CN106484435A (zh) * 2016-10-26 2017-03-08 合肥润客软件科技有限公司 一种基于Flex的集成化软件研发管理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡光永: "Silverlight4.0中应用MEF实现组件动态加载的研究", 《南京工业职业技术学院学报》 *

Also Published As

Publication number Publication date
CN109299171B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
Collier et al. Repast HPC: A Platform for Large‐Scale Agent‐Based Modeling
CN103338135B (zh) 一种集群存储容量的实时监控方法
CN103701635A (zh) 一种在线配置Hadoop参数的方法和装置
CN103870338A (zh) 一种基于cpu核管理的分布式并行计算平台及方法
CN111708641B (zh) 一种内存管理方法、装置、设备及计算机可读存储介质
Budiu et al. DryadOpt: Branch-and-bound on distributed data-parallel execution engines
CN111625218B (zh) 一种自定义库开发的大数据处理方法及系统
Higashino et al. Cepsim: A simulator for cloud-based complex event processing
CN116820908A (zh) 基于Locust的性能测试方法、装置、设备及介质
CN104299170B (zh) 间歇性能源海量数据处理方法
CN109299171A (zh) 一种flex客户端支持海量数据长时计算的方法
CN116720448A (zh) 一种风力发电随机模拟方法、装置、设备及介质
CN101582153A (zh) 电网资源管理方法及系统
Popov et al. Parallel agent-based simulation on a cluster of workstations
Mansouri An effective weighted data replication strategy for data grid
Inostrosa‐Psijas et al. Semi‐asynchronous approximate parallel DEVS simulation of web search engines
US20220147396A1 (en) Hardware acceleration for function processing
CN114880079A (zh) 基于强化学习的Kubernetes集群规模调整方法、系统及设备
Martin et al. Low cost energy forecasting for smart grids using Stream Mine 3G and Amazon EC2
CN112434817B (zh) 构建通信算法数据库的方法、装置和计算机存储介质
CN103973483A (zh) 基于网论的网络服务组合的分析方法
CN114924908A (zh) 数据的备份方法和装置、存储介质及电子装置
CN111475998B (zh) 延迟获取远程资源的电子设计自动化(eda)过程的混合执行
Kruse et al. Evaluation of WRF scaling to several thousand cores on the Yellowstone supercomputer
CN113806077A (zh) 基于人工智能的数据中心服务器调控方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 532-2, Zhongshan East Road, Qinhuai District, Nanjing City, Jiangsu Province, 210016

Applicant after: Nanjing Vocational University of Industry Technology

Address before: 210046 No. 532-2, Zhongshan East Road, Qinhuai District, Nanjing City, Jiangsu Province

Applicant before: NANJING INSTITUTE OF INDUSTRY TECHNOLOGY

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210805

Address after: 210019 room 708, 7 / F, building 01, 8 Bailongjiang East Street, Jianye District, Nanjing City, Jiangsu Province

Patentee after: Nanjing 180 Safety Technology Co.,Ltd.

Address before: No. 532-2, Zhongshan East Road, Qinhuai District, Nanjing City, Jiangsu Province, 210016

Patentee before: Nanjing Vocational University of Industry Technology