法律状态公告日
法律状态信息
法律状态
2017-11-03
著录事项变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20130116
著录事项变更
2017-11-03
专利权的转移 IPC(主分类):G06F9/44 登记生效日:20171016 变更前: 变更后: 申请日:20130116
专利申请权、专利权的转移
2016-01-20
授权
授权
2013-06-12
实质审查的生效 IPC(主分类):G06F9/44 申请日:20130116
实质审查的生效
2013-05-08
公开
公开
技术领域
本发明属于计算机软件转换处理技术领域,具体涉及一种将面向物联网 的单机版程序转换为网络版程序的方法。
背景技术
物联网是新一代信息技术的重要组成部分,随着Internet的扩展深入至 社会的各个角落,未来使用的各种电气设备也会逐步联入Internet,演化为 物联网的一个个节点,这些电气设备在运行的过程中必然会与Internet中的 电脑软件进行交互,而交互的关键就是硬件与软件之间数据的传输、处理、 存储。
目前,对于给物联网中的电气设备进行单机配套的软件而言,很多还是 单机版的应用程序,对于单机版程序而言,用户必须在装有该程序的计算机 前进行操作,操作地点有局限性,而且用户需要首先安装特定对象的电气设 备的配套软件,这样显得臃肿繁琐,这样就十分不利于用户随时随地进行查 看和管理程序所处理和存储的数据,也就无法及时了解这些物联网设备节点 的动态,这不仅给用户带来很大的不便,也没有发挥出物联网方便、快捷、 智能化的优势。
发明内容
本发明的目的是提供一种将面向物联网的单机版程序转换为网络版程 序的方法,解决了现有技术中的电气设备使用单机版的应用程序,无法与 Internet计算机联网查询数据的问题。
本发明所采用的技术方案是,一种将面向物联网的单机版程序转换为网 络版程序的方法,按照以下具体步骤实施:
步骤1、在DLL中实施COM Hook
1.1)当特定对象的电气设备的单机版软件开启后,与之配套的客户端程 序会将一个实施COM Hook的DLL映射到该软件的进程空间中,并创建一 个工作线程;
1.2)在当前的线程初始化COM库;
1.3)用相应类型的函数指针记录要替换的COM接口虚表中的原函数地 址;
1.4)用截取数据的函数替换单机版程序数据库操作所调用的COM中的 函数,在内存可写入的状态下,以调用过程中的COM原有的函数地址的起 始内存地址为基地址,写入新的函数地址,完成函数替换;
1.5)因为COM中原本应该被执行的函数被截取数据的函数所替换,当 单机版程序执行数据库操作时,调用这些COM中的函数实质上是调用截取 数据的函数;
1.6)在单机版程序数据库操作接口被Hook后,当单机版程序执行数据 库的插入的操作时,替换函数会将各种数据库操作数据传至客户端进程;
1.7)在程序退出时解除挂钩,在解除挂钩时,用在步骤1.2)中已经保 存的接口虚表中原来的函数地址替换截取数据的函数,以达到COM函数复 原的目的;
步骤2、客户端将数据传输至服务端
2.1)DLL创建一个线程向客户端进程发送数据,DLL的线程作为发送 端,而客户端进程相当于接收端,在单机版软件开启时,客户端进程和DLL 创建的线程建立连接;
2.2)客户端进程在收到数据后,对数据进行拆分、处理,最后组成一个 包含数据库、数据表、数据项的数据包,并且根据数据的不同种类在数据包 中加入相应的数据类型和数据操作类型,通过TCP/IP通信传给服务端进程;
步骤3、服务端将数据存储至服务端数据库;
步骤4、通过浏览器访问数据
通过读取服务端数据库,网页服务器程序会以实时响应用户请求的方式 将用户请求的数据通过浏览器呈现给用户,用户就能够在浏览器上随时查看 特定对象的电气设备上传至数据库的信息。
本发明的有益效果是:基于COM Hook的原理,将进行COM Hook的 DLL映射至单机版程序或者客户端程序的进程空间中,与数据库进行挂钩, 截取数据库数据,并将其传至客户端程序进程,客户端程序进程通过TCP/IP 通信将数据传至服务端程序进程,服务端程序进程将这些数据存储进入服务 端数据库。这样一来,通过与服务端数据库互联的网页服务器程序,将单机 版程序转换为网络版程序,用户就能够随时随地在浏览器上查看和管理单机 版程序与电气设备交互的数据,充分发挥物联网方便、快捷、智能化的优势。
附图说明
图1为本发明方法的技术原理结构总图;
图2为本发明方法的COM Hook具体的实施例示意图。
具体实施方式
以下文本中的客户是指Server-Client这种网络模型中的客户端程序 (Client)。用户是指软件的使用者(User)。客户一词都是用“客户端”来 使用的,没有单独出现“客户”一词。而“用户”一词是单独出现的。
服务器一方面是指装有服务端程序数据库的计算机,二方面是指网页服 务器程序。一个是硬件,一个是软件。
对于数据库而言:一方面是指单机版程序自身的数据库;二方面是指发 明方法中配套的服务端程序的数据库。
参照图1、图2,本发明的将面向物联网的单机版程序转换为网络版程 序的方法,按照以下步骤具体实施:
步骤1、在DLL中实施COM Hook
1.1)当特定对象的电气设备的单机版软件开启后,与之配套的客户端程 序会将一个实施COM Hook的DLL映射到该软件的进程空间中,并创建一 个工作线程;
1.2)在当前的线程初始化COM库;
1.3)用相应类型的函数指针记录要替换的COM接口虚表中的原函数地 址,以便在解除挂钩时能将原来的函数转换回来;
1.4)用截取数据的函数替换单机版程序数据库操作所调用的COM中的 函数,如图2所示,在内存可写入的状态下,以调用过程中的COM原有的 函数地址的起始内存地址为基地址,写入新的函数地址,这样就完成了函数 替换;
1.5)因为COM中原本应该被执行的函数被截取数据的函数所替换,当 单机版程序执行数据库操作时,调用这些COM中的函数实质上是调用截取 数据的函数;
1.6)在单机版程序数据库操作接口被Hook后,当单机版程序执行数据 库的插入等操作时,替换函数会将各种数据库操作数据传至客户端进程,如 图1所示;
1.7)最后在程序退出时解除挂钩,在解除挂钩时,用在步骤1.2)中已 经保存的接口虚表中原来的函数地址替换截取数据的函数,以达到COM函 数复原的目的;
步骤2、客户端将数据传输至服务端
2.1)DLL创建一个线程向客户端进程发送数据,如图1所示,DLL的 线程作为发送端,而客户端进程相当于接收端,在单机版软件开启时,客户 端进程和DLL创建的线程建立连接;
2.2)客户端进程在收到数据后,对数据进行拆分、处理,最后组成一个 包含数据库、数据表、数据项的数据包,并且根据数据的不同种类在数据包 中加入相应的数据类型和数据操作类型,如图1所示,通过TCP/IP通信传 给服务端进程;
步骤3、服务端将数据存储至服务端数据库
3.1)在客户端进程与服务端进程之间使用合理的通信模型,服务端进程 设置了若干个工作线程,这些工作线程轮流处理客户端进程发送来的数据 包;
3.2)在对数据包拆包、处理后,根据数据包中的数据种类和数据操作类 型,不同的数据会被重新组包,并且加入相应的操作命令,服务端进程把该 数据包作为消息的附加属性向服务端的窗体发送消息;
3.3)在服务端的消息响应函数中,响应函数根据传来的数据包的操作命 令种类分别进行处理,服务端进程会根据得到的数据库、数据表、数据项数 据组成一个SQL语句字符串,调用数据库API执行这个SQL语句,将数据 插入至服务端数据库;
步骤4、通过浏览器访问数据
如图1所示,通过读取服务端数据库,网页服务器程序会以实时响应用 户请求的方式将用户请求的数据通过浏览器呈现给用户,用户就能够在浏览 器上随时查看特定对象的电气设备上传至数据库的信息。
本发明方法的工作原理是,在单机版程序所在的计算机上装载一个客户 端程序作为数据中转站;在服务器上装载一个负责存储数据的服务端程序; 在单机版程序所在的主机中,将进行COM Hook的DLL映射至单机版程序 或者客户端程序的进程空间中,与单机版程序数据库进行挂钩,截取单机版 程序数据库数据,并将数据传至客户端程序进程,客户端程序进程通过 TCP/IP通信将数据传至服务端程序进程,服务端程序进程将这些数据存储进 入服务端数据库;在含有该数据库的服务器上部署与数据库相连的网页服务 器程序,用户即可利用浏览器查看物联网节点的数据。
实施例
特定对象的电气设备是一台身份证读卡器。
用户在读卡器上放置《中华人民共和国居民身份证》进行识读,该读卡 器将身份证中的信息传至读卡器配套软件的数据库中。通过本发明方法转换 处理后即可截获该身份证信息,并层层传递至服务端数据库中,用户就可以 通过浏览器即时查看该信息,该信息可按照如下表1的表格形式显示:
表1通过浏览器即时查看到的该信息
机译: 将面向过程的程序转换为面向对象的程序的分析方法
机译: 数据处理设备,数据处理方法,程序转换处理设备和程序转换处理方法,程序转换处理设备,数据处理设备,程序转换处理方法和数据处理方法,数据处理设备,数据处理方法以及程序分析处理方法,数据处理设备,历史存储设备,数据处理方法和程序,以及编译处理设备,数据处理设备,编译处理方法和程序
机译: 数据处理设备,数据处理方法,程序转换处理设备和程序转换处理方法,程序转换处理设备,数据处理设备,程序转换处理方法和数据处理方法,数据处理设备,数据处理方法以及程序分析处理方法,数据处理设备,历史存储设备,数据处理方法和程序,以及编译处理设备,数据处理设备,编译处理方法和程序