一种基于WCF的物联网通信方法技术

技术编号:13173474 阅读:67 留言:0更新日期:2016-05-10 16:30
本发明专利技术提供一种基于WCF的物联网通信方法,由MFC数据采集模块、面向服务应用模块(WCF)和网站服务器模块组成的基于WCF的物联网通信系统,采用面向服务的通信机制,实现MFC数据采集模块采集的终端设备数据向Web客户端实时传递的过程。MFC数据采集模块基于完成端口模型(简称:IOCP),与终端设备建立远程通信来获取数据,并将数据推送给网站服务器模块实时显示,也可以用单机版与终端设备建立本地通信获取数据,然后将数据推送给网站服务器模块实时显示。基于Signalr+WCF+JavaScript通信技术及开发思路将MFC采集的实时数据及时显示到网页端,弥补网页端数据即时显示交互性差的问题。

【技术实现步骤摘要】

本专利技术属于通信
,尤其适用于面向服务应用技术通信领域。
技术介绍
通过某种通信机制将既有程序从设备获取的数据应用于互联网是一种趋势,实现物联网应用通信的方法很多,但基于Windows平台开发的通信采集程序直接转互联网通信的方法并不多,其中大多数的方法是将MFC(Microsoft Foundat1n Classes是微软公司提供的一个类库)采集程序得到的数据先保存在数据库,再由互联网应用网站通过用户向数据库请求数据。本专利技术中终端设备的数据采集模块基于MFC开发,通过面向服务的通信机制,不通过数据库直接将采集到的数据推送到网页客户端前台,达到实时通信的效果。
技术实现思路
本专利技术提出一套基于WCF(Windows Communicat1n Foundat1n)的物联网通信方法,该方法实现MFC数据采集模块与网站服务器模块(C#或其他语言开发的网站)通信。本方案MFC数据采集模块基于完成端口模型(简称:10CP),与终端设备建立远程通信来获取数据,并将数据推送给网站服务器模块实时显示,也可以用单机版与终端设备建立本地通信获取数据,然后将数据推送给网站服务器模块实时显示。本专利技术由MFC数据采集模块、面向服务应用模块(WCF)和网站服务器模块三大部分组成,MFC数据采集模块和网站服务器模块之间通过面向服务应用模块(WCF)创建的函数建立通信。1、MFC数据采集模块MFC数据采集模块包括三个子模块:互联网通信模块、本地通信模块和进程间通信模块。MFC数据采集模块的三个子模块不能同时运行,如启用其中一个子模块,则另外两个子模块不工作。互联网通信模块应用于与终端设备远程通信,本地通信模块应用于与终端设备串口或CAN通信,进程间通信模块应用于MFC数据采集模块与其他基于Windows平台应用程序通信。远程(互联网)通信要求MFC数据采集程序安装在一台WINDOWS平台的计算机(简称:PC)内,PC需要具有公网IP地址和通信端口供远程终端连接并接收发送远程终端的数据,本地通信以及进程间通信只需MFC数据采集程序安装在联网(Internet/Intratnet)的PC上。PC与面向服务应用模块以及网站服务器模块协同工作将数据提供给更多用户使用。为解决TCP/IP通信的虚连接问题以及保证远程通信的有效性和规范性,互联网通信模块采用的应用层协议是JT/T 794标准协议,其通信模型采用1CP模型,1CP基于Socket编程,适用于控制并发执行的高负载服务器。本地通信模块主要分串口通信和CAN(Controller Area NetWork)通信,串口通信基于windows32位系统,使用两种编程方式,一是使用ActiveX控件,二是调用Windows的API函数。Can通信的应用层协议是CAN Calibrat1n Protocol(简称:CCP)协议,基于CAN转Usb协议转换器提供的驱动程序对CAN通信进行开发,该驱动程序是一种动态链接库。进程间通信模块主要是将MFC数据采集模块作为一个中转模块,处理其他基于Windows平台的应用程序的数据,并将采集的数据通过面向服务应用模块和网络服务器模块实时反馈给多个用户。MFC数据采集模块作为中转模块,用户只需要关注进程间通信方式和接口,以及面向服务WCF模块的业务模型的设计。2、面向服务应用模块(WCF) 面向服务应用模块(WCH主要含通信模块和业务逻辑数据接口。通信模块包含两个WCF程序,这里定义为WCFl和WCF2 JCFl处理解析MFC数据采集模块传递的数据,WCF2用于实现双工通信(双工通信:指在同一时刻信息可以进行双向传输)推送数据到网站服务器模块。业务逻辑数据接口是面向服务应用模块(WCF)中功能函数,其中WCFl包含4个功能函数:普通数据处理函数(G e t D a t a )用于接收普通数据,结构体链表数据处理函数(GetDataUsingDataContract)用于接收结构体数据。打开数据库函数(openSql)和关闭数据库函数(CloseSql) JCF2包含3个功能函数一个接口函数:普通数据处理函数(GetData)用于接收普通的数据,注册监听函数(ResgiterListenter)和反注册监听函数(UnResgisterLister)用于Web客户端向WCF2注册,注册后的Web客户端可以接收WCF2发布的数据。回调接口函数(ITesCallback)用于创建虚函数(Refresh),Web客户端通过实例化Refresh函数实现客户端刷新效果。WCFl与MFC数据采集模块建立的结构体链表接口一致,其通过gSoap编译工具中WSDL(预处理程序)生成C/C++风格的头文件,再根据头文件自动生成调用远程SOAP服务客户端代码(称为存根:Stub)和提供SOAP服务的框架代码(称为框架:Skeleton),结构体链表存放的数据通过调用WCFl函数传递,这个函数就是MFC数据采集程序与WCFl的接口。通信中采用的绑定协议为basicHttpbinding,basicHttpbinding采用Http/Https协议,主要用于与旧的Web服务协作。其采用的通信模型为InstanceContextMode.Single模式。InstanceContextMode.Single实例行为类似于单件设计模式,所有客户端共享一个服务实例,这个服务实例是一个全局变量,使各模块调用WCFl函数变量成为最新数据。但basicHttpbinding绑定协议不支持双工通信,为了支持双工通信,本专利技术又设计了WCF2程序,用于处理需要推送到网站服务器的数据,WCF2作为服务分别与WCFl和网站服务器模块建立通信,WCFl是WCF2的宿主,通过调用WCF2的函数传递实时数据。WCFl和WCF2可以分布式架构,来缓解计算机压力。WCF2主要处理回调机制,接收数据后将数据推送给向它订阅的网站服务器模块。WCF2的回调操作即由WCF2调用网站服务模块的方法。回调操作只有具有双向通信能力的绑定协议才可以使用回调,本方法中使用netTcpbinding绑定协议,通过设定ServiceContract特性中的Cal IBackContract属性并创建回调契约I TestCal Iback实例化回调对象再通过它创建一个上下文对象InstanceContext,然后用代理把这个回调引用传回WCF2。3、网站服务器模块 网站服务器模块包含Web服务器端和Web客户端,采用MVC(Model-View-Control)架构,其中Mode I和Contro I主要用于Web服务器端,View主要用于Web客户端。网站服务器模块有两种通信模式:将WCF2信息推送到Web客户端显示和将Web客户端数据回传到MFC数据采集模块。网站服务器模块让Web客户端和Web服务器端可以实时互相通知消息及调用方法,还负责将数据推送到Web客户端页面中,同时浏览器也有很好的兼容性。网站服务器模块中安装ASP.NET Signalr类库包并注册了一个HUB(HUB是Signalr类库通信的一种模式),它能与所有Web客户端共享发送到Web服务器上的信息,同时Web月艮务端可以调用客户端脚本。本文档来自技高网...

【技术保护点】
一种基于WCF的物联网通信方法,其特征是:由MFC数据采集模块、面向服务应用模块(WCF)和网站服务器模块组成的基于WCF的物联网通信系统,采用面向服务的通信机制,实现MFC数据采集模块采集的终端设备数据向Web客户端实时传递的过程,具体步骤如下:MFC数据采集模块基于标准协议将采集到的终端设备数据发送给面向服务应用模块中的通信模块WCF1程序,MFC数据采集模块与WCF1通信;B、面向服务应用模块中的通信模块WCF2程序采用netTcpbinding协议,分别与WCF1和网站服务器模块建立通信,WCF2处理回调机制,接收数据后会推送给向它订阅的网站服务器模块;C.网站服务器模块包含Web服务器端和Web客户端,负责将WCF2数据推送到Web客户端显示;D.Web客户端的业务请求经由WCF1转化为特定消息格式存放在消息队列后,由MFC采集数据模块采用线程架构取走,通过Socket、串口或CAN回写到终端设备。

【技术特征摘要】

【专利技术属性】
技术研发人员:钟艳史昇杨银
申请(专利权)人:镇江恒驰科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1