随着3G网络技术、市场和政策的不断成熟,移动终端设备的使用量在急速增加,广泛应用各个领域。Windows Mobile是微软为智能移动终端设备开发的操作系统,Windows Mobile将用户熟悉的桌面Windows体验扩展到了移动设备上。Windows Mobile为移动终端设备之间的数据交换和信息共享提供了简单、安全的解决方案。在Windows Mobile平台上的数据通信技术有Socket、Web Service、MSMQ(微软消息队列技术)。Socket传送数据会自定义传送数据格式并且服务端要使用到多线程接收客户端信息,编程复杂且不好控制;Web Service编程简单易控制,但是只可能调用服务端的函数不能实现服务端和客户端相互通信;MSMQ是微软提供的一种可以远程访问的异步通讯方式,支持转发,支持延时发送,并且具有较高安全性,是当前Windows Mobile平台上最可靠的数据通信方法。
MSMQ技术
Message Queue(微软消息队列)是在多个不同应用程序(终端或服务)之间实现相互通信的一种异步传输模式,相互通信的应用程序可以分布于同一台机器上,也可以分布于相连的网络空间中的任一终端。消息是通信的双方所需要传递的信息,它可以是各种对象,如文本、声音和图像等。消息最终的实现方式是由消息传递的双方共同制定的协议来规定,这样做的好处,既对数据进行了简单的加密,也可以减轻系统通信的负担。其实现原理是消息的发送者把自己想要发送的信息放入一个容器中(Message),然后将其保存到一个系统公用空间的消息队列中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。
由于采用的是异步通信方式,无论是发送程序还是接收程序都不用等待对方返回成功发送消息的标志,就可以执行余下的代码,因而提高了系统的处理能力。当信息传送过程中,信息发送机制具有故障恢复能力;MSMQ的消息传递机制使得消息通信的双方具有通过不同的物理平台进行通信的能力。在支持.net技术的操作系统上利用其提供的MSMQ功能,可以轻松创建或者删除消息队列,发送或者接收消息,并具有对消息队列进行管理。消息队列是发送和接收消息的公用存储空间,它可以存在于内存中或者是物理文件中。
系统结构与软件配置
系统结构
针对客车业生产现场数据采集系统实例,由于客车生产属于混合流水生产行业,工序和工艺路线复杂、人工参与生产多、客车比其他产品体积庞大,所以需要现场人员使用PDA扫描生产现场数据和上报生产进度状况。车间和厂区范围大,车间环境复杂,整个网络采用无线通信的方式。PDA中装有Windows Mobile系统,在PDA中可以安装各种应用程序,例如条码扫描、车间物料供需程序和生产现场调度程序。在PDA上也可以扩展外部设备,例如条码扫描枪和微型打印机等。利用PDA的移动性和比较强的数据处理能力可对现场数据进行实时的采集和整理。将采集的现场数据上传到数据采集服务器、生产追踪服务器和生产调度服务器。
如图1所示的系统硬件平台主要由厂级数据中心的服务器、无线路由器和PDA数据采集器构成,车间中根据生产工艺工序配置的多个PDA数据采集器,PDA上的扫描枪可以实时的采集现场数据,PDA的上的处理程序将采集的数据进行处理,然后通过多层无线路由器AP上传到厂级数据中心服务器,每个PDA都有自己独立的IP地址,服务器通过收发消息对上传的数据进行管理和向PDA发出指令。整个系统包括服务器程序和客户端程序,通过MSMQ技术实现PDA与数据服务器的数据通信。
系统软件配置
服务端配置:服务端是Windows Server2003操作系统,服务器程序检查客户端在线状态,将在线客户端信息(包括:客户端名称、客户段IP地址)共享给每个客户端。
客户端:需要设置服务器端IP地址,本地客户端名称。设置正确服务端IP地址、本地客户端名称后。通过服务端获取在线客户端信息,指定客户端后可以接收新消息和发送消息。
MSMQ技术在Windows Mobile中的应用
在PDA上Windows Mobile操作系统中通过MSMQ技术实现数据通信,要使用MSMQ开发消息处理程序,必须在服务器主机和客户端上安装消息队列。消息处理程序主要是消息的发送和接收,如果要实现收发消息,必须引用一个队列,引用的消息队列分为公用队列和专用队列,这两个队列都存放用户设计的消息。引用消息队列后,就可以发送、接收和阅读消息了。消息接收服务位于System.Messaging中,需要在工程中引用System.Messaging.dll文件。具体实现过程和代码如下:
引用队列
通过路径、格式名和标签三种方法引用队列。例如:通过路径引用消息队列,路径的形式为 machinenamequeuename。在实际应用中,指向队列的路径必须是唯一的。表1列出用于每种类型的队列的路径信息。