一种硬件、服务器、客户端数据交互方法与流程

文档序号:11156916阅读:1444来源:国知局
一种硬件、服务器、客户端数据交互方法与制造工艺

本发明属于通信技术领域,涉及数据交互技术,尤其是一种硬件、服务器、客户端数据交互方法。



背景技术:

WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows通讯开发平台。

DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序被分割成一些相对独立的实现特定功能的动态链接库,即DLL文件,放置于系统中与应用程序组成一个完整的可执行文件。

.NET(Microsoft XML Web services)平台。是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。他允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft.NET平台提供创建XML Web services并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。

融合通信是指,把计算机技术与传统通信技术融合一体的新通信模式,融合计算机网络与传统通信网络在一个网络平台上,实现电话、传真、数据传输、音视频会议、呼叫中心、即时通信等众多应用服务。

现今融合通讯日益成为通讯领域的发展趋势,当前的融合通讯主要是将音频与视频相结合,形成音视频的融合。但单一的音视频的融合已经逐渐无法满足应用的需求,越来越多的设备及功能融合入到整个系统中来,例如GPS,无线定位仪,告警传感器,温湿度传感器等等。

融合通讯的发展越来越向云计算的方向发展,通过云实现,数据的集中采集,数据的集中存储,数据的集中转发。

上述这些硬件设备的数据接入,数据的传输成为系统的一个难题,采集来的数据向多个客户端转发和呈现也成为需要攻克问题。

传统的数据传输方式首先通过从硬件实现数据采集,存储到服务器的数据库,同时通过TCP/IP与多个客户端通讯实现数据传输及呈现。但这种方式的问题在于是各种硬件的开发平台不统一,提供的接口也不统一,当硬件设备逐渐增多是,客户端要通过多个形式的接口实现数据传输和呈现。客户端程序的设计及代码的开发会越来越复杂。影响其效率及稳定性。

另一种可以通过从硬件实现数据采集,存储到服务器的数据库,客户端通过访问数据库实现数据传输及呈现。这种方式虽然解决了客户端代码的设计和开发难度,但这种模式的效率则比较低下,对实时性要求比较高的设备信息采集,则无法满足。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供一种硬件、服务器、客户端数据交互方法。该方法即能够满足对系统对实时性要求,又能满足降低客户端程序复杂程度和难度的问题。

本发明的目的是通过以下技术方案来实现的:

这种硬件、服务器、客户端数据交互方法为:使用C语言开发针对硬件平台的动态链接库,通过DLL中的非托管函数转换成C#函数,通过C#调用服务器的WCF接口,数据上传到服务器端,再通过服务器端将消息发送到客户端,实现从硬件平台到客户端的数据传输。具体为:

包括硬件模块、DLL模块、接口模块、服务器程序、客户端程序和数据库;

(1)硬件模块通过DLL模块实现硬件数据采集,DLL模块向外提供硬件设备数据访问函数供其他模块访问数据,接口模块将DLL模块中的函数转换为C#函数,实现数据C程序与C#程序的数据相互传递;接口模块实现数据与服务器程序的相互传递;服务器程序根据接收的数据内容,将数据存储到数据库,同时根据数据内容和目标把数据发送到客户端程序,并在客户端程序上展示出数据内容;所述DLL模块和接口模块构成硬件平台访问程序;

(2)接口模块向DLL模块注册回调函数,告知DLL模块如何向接口模块传递从硬件模块获取的数据;由接口模块使用无托管方式调用DLL模块的函数向硬件模块下发配置数据及参数,流程203由DLL模块中的定时器循环访问硬件模块,周期性的获取硬件模块的数据;在DLL模块获取到硬件模块的数据后通过已注册的回调函数向接口模块发送数据;

(3)客户端程序通过调用服务器程序的注册回调函数,服务器程序的客户端列表存储客户端的注册信息及回调函数;接口模块在获取到硬件数据后,通过WCF接口调用服务器程序的函数上报数据,服务器程序在接收到数据后,经过数据入库操作,存储数据到数据库,再从客户端列表中获取要通知的客户端程序,调用相应的回调函数,向客户端发送数据;完成从硬件访问平台程序到服务器程序再到客户端程序的数据存储传输过程。

进一步,上述接口模块将数据转换成XML格式,通过SOA协议实现数据与服务器程序的相互传递。

进一步,上述服务器程序根据数据内容和目标使用SOA的推送技术,把数据发送到客户端程序。

进一步,上述接口模块通过非托管方式将DLL模块中的函数转换为C#函数。

进一步,上述储客户端的注册信息是客户端识别码。

本发明具有以下有益效果:

本发明利用WCF回调函数的技术,使得服务器程序能够准确获知,硬件访问程序与客户端程序的具体数量及其目标地址,能够准确的将数据上传下发到相关的目的地。提高系统数据的转发效率。

对于多采集点,多客户端的数据访问,硬件访问程序将采集到的数据统一发送到服务器程序,在服务器中集中处理与分析,再有目标的发送到相应的目标,能够有效的减少数据传输的数量,降低网络对带宽及流量的要求。

WCF技术是一个跨平台,跨操作系统,跨服务器的技术。对于部署在网络中的设备兼容性要求交低,对开发程序的开发工具及部署的服务器要求较低,通过XML传输方式,就能够实现WCF数据传输。无需改变程序员原有的开发习惯,有效降低了程序开发的难度。

相对于为避免数据传输过程中的平台,操作系统,服务器等因素的影响,从而使用数据库转发数据的形式。本发明通过WCF统一了数据的传输格式,避免了数据的入库读取的过程,提高了数据传输的及时性及工作效率。

附图说明

图1为本发明的系统数据流程图;

图2为本发明硬件平台访问程序数据流程图;

图3为本发明的硬件平台访问程序、服务器程序、客户端程序数据流程图。

具体实施方式

本发明的硬件、服务器、客户端数据交互方法为:使用C语言开发针对硬件平台的动态链接库,通过DLL中的非托管函数转换成C#函数,通过C#调用服务器的WCF接口,数据上传到服务器端,再通过服务器端将消息发送到客户端,实现从硬件平台到客户端的数据传输。

下面结合附图对本发明做进一步详细描述:

图1为系统数据流程图,硬件模块101通过DLL模块102实现硬件数据采集,DLL模块102向外提供硬件设备数据访问函数供其他模块访问数据,接口模块103通过非托管方式将DLL模块102中的函数转换为C#函数,从而实现数据C程序与C#程序的数据相互传递。接口模块103将数据转换成XML格式,通过SOA协议实现数据与WCF服务程序104的相互传递。WCF服务程序根据接收的数据内容,将相关数据存储到数据库106,同时根据数据内容和目标使用SOA的推送技术,把数据发送到客户端程序105,并在客户端程序105上展示出相关数据内容。图1中由DLL模块102和接口模块103构成硬件平台访问程序。

本发明的硬件模块101不限定为特定设备,主要是指从硬件设备采集数据的程序或模块,例如定位设备采集定位信息,角位移采集角度数据。

图2为硬件平台访问程序数据流程图,流程201由接口模块103向DLL模块102注册回调函数,告知DLL模块102如何向接口模块103传递从硬件模块101获取的数据。流程202由接口模块103使用无托管方式调用DLL模块102的函数向硬件模块101下发配置数据及参数,流程203由DLL模块102中的定时器循环访问硬件模块101,周期性的获取硬件模块101的数据。流程204在DLL模块102获取到硬件模块101的数据后,通过已注册的回调函数向接口模块103发送数据.

图3为硬件平台访问程序、服务器程序、客户端程序数据流程图,客户端301,302通过迪调用服务器程序104的注册回调函数303和304,服务器程序104的客户端列表306存储客户端的注册信息(客户端识别码)及回调函数(callback)。硬件平台访问程序在获取到硬件数据后,通过WCF接口调用服务器程序104的函数308上报数据,服务器程序104在接收到数据后,经过数据入库操作309,存储数据到数据库106,再从客户端列表306中获取要通知的客户端程序301,302,调用相应的回调函数311,312,向客户端发送数据。完成从硬件访问平台程序到服务器程序再到客户端程序的数据存储传输过程。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1