CN111143085B - 一种实现多应用并发调用硬件的方法 - Google Patents

一种实现多应用并发调用硬件的方法 Download PDF

Info

Publication number
CN111143085B
CN111143085B CN201911188122.7A CN201911188122A CN111143085B CN 111143085 B CN111143085 B CN 111143085B CN 201911188122 A CN201911188122 A CN 201911188122A CN 111143085 B CN111143085 B CN 111143085B
Authority
CN
China
Prior art keywords
data
thread
service process
hardware
execution
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
Application number
CN201911188122.7A
Other languages
English (en)
Other versions
CN111143085A (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.)
Jinan Langchao Jindi Information Technology Co ltd
Inspur Financial Information Technology Co Ltd
Original Assignee
Jinan Langchao Jindi Information Technology Co ltd
Inspur Financial Information Technology Co Ltd
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 Jinan Langchao Jindi Information Technology Co ltd, Inspur Financial Information Technology Co Ltd filed Critical Jinan Langchao Jindi Information Technology Co ltd
Priority to CN201911188122.7A priority Critical patent/CN111143085B/zh
Publication of CN111143085A publication Critical patent/CN111143085A/zh
Application granted granted Critical
Publication of CN111143085B publication Critical patent/CN111143085B/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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种实现多应用并发调用硬件的方法,采用三层结构:动态库外壳、服务进程、底层功能库,实现硬件模块的功能封装。服务进程维护全局唯一数据集,使用多线程响应上传指令调用底层功能库。动态库外壳隔离服务进程与应用,实现多应用的并发调用的同时避免应用间数据差异的出现。本软件方法适用于对实时性数据要求非常高的多应用并发调用同一硬件模块的场景。本发明实现了对硬件模块的多应用并发调用,且避免了应用间硬件数据不同步问题。提升了自助设备的性能,减少数据不同步引起的客户使用异常,提高了设备可靠性。

Description

一种实现多应用并发调用硬件的方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种实现多应用并发调用硬件的方法,应用产品包含使用微软桌面操作系统上位机调用硬件模块的自助设备。
背景技术
自助终端设备由上位机和若干提供特定功能的硬件模块组成。操作系统平台上若要实现应用对硬件模块的调用就需要为每个模块封装中间件软件。
目前市场上客户对硬件的要求日亦严苛。对硬件的访问多采用多应用并发的方式,且要求硬件功能对多应用的并行访问要响应及时,数据实时、可靠。例如,对现金模块的操作往往会有三个应用进程分别实现入钞、出钞和状态监控的功能。中间件软件需处理三个应用进程同时发出的指令,以及模块发生状态变化后及时通知三个应用进程。这不但存在应用并发的问题,还有大量数据在三个应用进程中保持同步的问题。如钞票存取数量、钞票余量、出入钞口状态等数据不允许在同一时间段内出现差异导致无法对账。
发明内容
本发明主要解决的技术问题是提供一种实现多应用并发调用硬件的方法,通过服务进程封装设备逻辑功能,维护全局唯一数据集,通过数据通道套接动态库外壳对接上层应用的方法解决目前存在的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种实现多应用并发调用硬件的方法,采用动态库外壳、服务进程和底层功能库三层结构完成对硬件模块的功能封装,实现多应用的并发调用的同时避免应用间数据差异的出现;具体实现步骤包括:
步骤1:多应用启动,加载动态库外壳;
步骤2:动态库外壳判断服务进程是否存在,若不存在则启动服务进程,存在则跳过,保证系统内服务进程唯一;
步骤3:服务进程启动通讯线程、执行线程、状态线程,根据配置信息及设备状态信息建立数据集;状态线程循环运行实时更新硬件状态信息;
步骤4:应用A产生设备动作指令CmdA,应用B产生状态查询指令CmdB;分别经数据处理器处理进入数据管道;
步骤5:服务进程中的通讯线程从数据管道获取CmdA,经数据处理器处理后插入指令数据队列,同样CmdB经处理后插入指令数据队列;
步骤6:服务进程中的执行线程从指令数据队列读取CmdA,结合数据集中的缓存数据调用底层功能库接口ActionA,等待硬件完成动作;
步骤7:服务进程中的状态线程轮询指令数据队列读取到状态指令CmdB,由于硬件正在执行动作指令阻塞所以从数据集中直接读取状态信息并传递给数据处理器处理,再由通讯线程传入数据管道;
步骤8:硬件动作完成,ActionA执行完毕;执行线程获取到执行结果,传递给数据处理器处理,再由通讯线程传入数据管道;
步骤9:动态库外壳从数据管道获取到CmdB执行结果经数据处理器处理后传递给应用B;流程结束;
步骤10:动态库外壳从数据管道获取到CmdA执行结果经数据处理器处理后传递给应用A;流程结束。
进一步,所述动态库外壳对应用提供功能接口,被应用加载到自身进程中;其实现且仅实现数据处理器对指令进行序列化和反序列化,通过数据管道对接服务进程,实现多应用并发调用。
进一步,所述服务进程由状态线程、通讯线程、执行线程、数据集和指令数据队列组成;通讯线程负责通过数据管道与动态库外壳进行数据通讯:将指令数据反序列化插入指令数据队列等待执行;将执行结果序列化通过数据管道返回动态库外壳;执行线程从指令数据队列获取指令及数据,根据指令判断是否直接从数据集读取缓存数据传递给通讯线程,或是调用底层功能库接口实现硬件动作并将数据返回给通讯线程或存入数据集;状态线程负责实时更新设备状态并将状态放入数据集中等待读取。
进一步,所述底层功能库按照硬件通讯协议封装功能接口单元供服务进程调用。
本发明的有益效果是:本发明实现了对硬件模块的多应用并发调用,且避免了应用间硬件数据不同步问题。提升了自助设备的性能,减少数据不同步引起的客户使用异常,提高了设备可靠性。
具体实施方式
下面对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明实施例包括:
一种实现多应用并发调用硬件的方法,采用三层结构,动态库外壳、服务进程和底层功能库完成对硬件模块的功能封装,实现多应用的并发调用的同时避免应用间数据差异的出现;
动态库外壳对应用提供功能接口,被应用加载到自身进程中;其实现且仅实现数据处理器对指令进行序列化和反序列化,通过数据管道对接服务进程,实现多应用并发调用;因其不留存不处理数据,因此,即使被多个应用加载到进程中,在操作系统内出现多个动态库副本也不会发生数据集多副本的情况,保证了数据的唯一性;
服务进程由状态线程、通讯线程、执行线程、数据集和指令数据队列组成;通讯线程负责通过数据管道与动态库外壳进行数据通讯:将指令数据反序列化插入指令数据队列等待执行;将执行结果序列化通过数据管道返回动态库外壳;执行线程从指令数据队列获取指令及数据,根据指令判断是否直接从数据集读取缓存数据传递给通讯线程,或是调用底层功能库接口实现硬件动作并将数据返回给通讯线程或存入数据集;状态线程负责实时更新设备状态并将状态放入数据集中等待读取;
底层功能库按照硬件通讯协议封装功能接口单元供服务进程调用;
本发明具体实现步骤包括:
步骤1:多应用启动,加载动态库外壳;
步骤2:动态库外壳判断服务进程是否存在,若不存在则启动服务进程,存在则跳过,保证系统内服务进程唯一;
步骤3:服务进程启动通讯线程、执行线程、状态线程,根据配置信息及设备状态信息建立数据集;状态线程循环运行实时更新硬件状态信息;
步骤4:应用A产生设备动作指令CmdA,应用B产生状态查询指令CmdB;分别经数据处理器处理进入数据管道;
步骤5:服务进程中的通讯线程从数据管道获取CmdA,经数据处理器处理后插入指令数据队列,同样CmdB经处理后插入指令数据队列;
步骤6:服务进程中的执行线程从指令数据队列读取CmdA,结合数据集中的缓存数据调用底层功能库接口ActionA,等待硬件完成动作;
步骤7:服务进程中的状态线程轮询指令数据队列读取到状态指令CmdB,由于硬件正在执行动作指令阻塞所以从数据集中直接读取状态信息并传递给数据处理器处理,再由通讯线程传入数据管道;
步骤8:硬件动作完成,ActionA执行完毕;执行线程获取到执行结果,传递给数据处理器处理,再由通讯线程传入数据管道;
步骤9:动态库外壳从数据管道获取到CmdB执行结果经数据处理器处理后传递给应用B;流程结束;
步骤10:动态库外壳从数据管道获取到CmdA执行结果经数据处理器处理后传递给应用A;流程结束。
本发明实现了对硬件模块的多应用并发调用,且避免了应用间硬件数据不同步问题;提升了自助设备的性能,减少数据不同步引起的客户使用异常,提高了设备可靠性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (3)

1.一种实现多应用并发调用硬件的方法,其特征在于,包括:采用动态库外壳、服务进程和底层功能库三层结构完成对硬件模块的功能封装,实现多应用的并发调用的同时避免应用间数据差异的出现;具体实现步骤包括:
步骤1:多应用启动,加载动态库外壳;
步骤2:动态库外壳判断服务进程是否存在,若不存在则启动服务进程,存在则跳过,保证系统内服务进程唯一;
步骤3:服务进程启动通讯线程、执行线程、状态线程,根据配置信息及设备状态信息建立数据集;状态线程循环运行实时更新硬件状态信息;
步骤4:应用A产生设备动作指令CmdA,应用B产生状态查询指令CmdB;分别经数据处理器处理进入数据管道;
步骤5:服务进程中的通讯线程从数据管道获取CmdA,经数据处理器处理后插入指令数据队列,同样CmdB经处理后插入指令数据队列;
步骤6:服务进程中的执行线程从指令数据队列读取CmdA,结合数据集中的缓存数据调用底层功能库接口ActionA,等待硬件完成动作;
步骤7:服务进程中的状态线程轮询指令数据队列读取到状态指令CmdB,由于硬件正在执行动作指令阻塞所以从数据集中直接读取状态信息并传递给数据处理器处理,再由通讯线程传入数据管道;
步骤8:硬件动作完成,ActionA执行完毕;执行线程获取到执行结果,传递给数据处理器处理,再由通讯线程传入数据管道;
步骤9:动态库外壳从数据管道获取到CmdB执行结果经数据处理器处理后传递给应用B;流程结束;
步骤10:动态库外壳从数据管道获取到CmdA执行结果经数据处理器处理后传递给应用A;流程结束;
所述动态库外壳对应用提供功能接口,被应用加载到自身进程中;其实现且仅实现数据处理器对指令进行序列化和反序列化,通过数据管道对接服务进程,实现多应用并发调用。
2.根据权利要求1所述的一种实现多应用并发调用硬件的方法,其特征在于:所述服务进程由状态线程、通讯线程、执行线程、数据集和指令数据队列组成;通讯线程负责通过数据管道与动态库外壳进行数据通讯:将指令数据反序列化插入指令数据队列等待执行;将执行结果序列化通过数据管道返回动态库外壳;执行线程从指令数据队列获取指令及数据,根据指令判断是否直接从数据集读取缓存数据传递给通讯线程,或是调用底层功能库接口实现硬件动作并将数据返回给通讯线程或存入数据集;状态线程负责实时更新设备状态并将状态放入数据集中等待读取。
3.根据权利要求1所述的一种实现多应用并发调用硬件的方法,其特征在于:所述底层功能库按照硬件通讯协议封装功能接口单元供服务进程调用。
CN201911188122.7A 2019-11-28 2019-11-28 一种实现多应用并发调用硬件的方法 Active CN111143085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911188122.7A CN111143085B (zh) 2019-11-28 2019-11-28 一种实现多应用并发调用硬件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911188122.7A CN111143085B (zh) 2019-11-28 2019-11-28 一种实现多应用并发调用硬件的方法

Publications (2)

Publication Number Publication Date
CN111143085A CN111143085A (zh) 2020-05-12
CN111143085B true CN111143085B (zh) 2022-08-09

Family

ID=70517386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911188122.7A Active CN111143085B (zh) 2019-11-28 2019-11-28 一种实现多应用并发调用硬件的方法

Country Status (1)

Country Link
CN (1) CN111143085B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307781B (zh) * 2020-10-30 2023-10-03 浪潮金融信息技术有限公司 一种用于自助终端的证卡扫描识读模块的软件系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567111A (zh) * 2011-12-23 2012-07-11 深圳市融创天下科技股份有限公司 一种异步过程调用的方法、系统和终端设备
CN103135966A (zh) * 2011-11-24 2013-06-05 深圳市证通电子股份有限公司 基于xfs标准的sp实现方法及sp架构
CN106027487A (zh) * 2016-04-28 2016-10-12 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN109389779A (zh) * 2018-08-28 2019-02-26 苏州浪潮智能软件有限公司 一种Linux系统下的金融设备统一调用方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135966A (zh) * 2011-11-24 2013-06-05 深圳市证通电子股份有限公司 基于xfs标准的sp实现方法及sp架构
CN102567111A (zh) * 2011-12-23 2012-07-11 深圳市融创天下科技股份有限公司 一种异步过程调用的方法、系统和终端设备
CN106027487A (zh) * 2016-04-28 2016-10-12 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN109389779A (zh) * 2018-08-28 2019-02-26 苏州浪潮智能软件有限公司 一种Linux系统下的金融设备统一调用方法

Also Published As

Publication number Publication date
CN111143085A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN102567111B (zh) 一种异步过程调用的方法、系统和终端设备
US7689694B2 (en) Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device
CN103176854B (zh) 一种进程间通信方法、装置及系统
US10693816B2 (en) Communication methods and systems, electronic devices, and computer clusters
US6381617B1 (en) Multiple database client transparency system and method therefor
CN103729373A (zh) 一种数据库代理方法和装置
US7962926B2 (en) Method, system, and program storage device for generating a retry message when a thread in a real-time application is unavailable to process a request to utilize the real-time application
US8499298B2 (en) Multiprocessing transaction recovery manager
CN111913822B (zh) 一种基于amp架构的核间通信方式
CN114564435A (zh) 异构多核芯片的核间通信方法、装置及介质
CN104065636A (zh) 数据处理方法和系统
CN111143085B (zh) 一种实现多应用并发调用硬件的方法
EP1768024A1 (en) Processing management device, computer system, distributed processing method, and computer program
CN103024058A (zh) Web服务调用方法及系统
US20170041402A1 (en) Method for transparently connecting augmented network socket operations
US7996524B2 (en) Controlling external communication of embedded device using proxy server
US7080387B2 (en) System and method for mediating communication between software applications
US9047144B2 (en) System and method for providing Quality-of-Services in a multi-event processing environment
EP0940749B1 (en) Data processing method
CN112068960A (zh) 一种cpu资源分配方法、装置、存储介质及设备
CN114844907B (zh) 一种基于mq异步收发的银行交易高速低连接数实现方法
EP0940750B1 (en) Data processing method
EP3467655A1 (en) System and method for mpi implementation in an embedded operating system
CN111708631A (zh) 基于多路服务器的数据处理方法、智能终端及存储介质
US11182228B2 (en) System and method for remote procedure call for key-value target over non-volatile memory express over fabrics

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220623

Address after: 215000 building 3, Fumin phase III plant, No. 818, Songjia Road, Guoxiang street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province

Applicant after: INSPUR FINANCIAL INFORMATION TECHNOLOGY Co.,Ltd.

Applicant after: Jinan Langchao Jindi Information Technology Co.,Ltd.

Address before: 215100 818 Wusong Road, Wusong River Industrial Park, Wuzhong development area, Suzhou, Jiangsu

Applicant before: INSPUR FINANCIAL INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant