首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
单片机系统中Web Service的调用方法研究
来源:本站整理  作者:佚名  2009-02-25 16:02:08



1 前言

Web Service作为一种有着强大功能的可互操作性和扩展性的新技术,被越来越多用于异构数据的集成,自然想到将其应用于工业数据采集系统的异构数据的集成.本文介绍了一种在单片机系统中调用Web Service实现主动提交数据的方法,方便了数据采集系统的集成.在传统的数据采集系统中,可以利用单片机系统用串口方式采集仪表数据,通过串行总线将数据提交给上位计算机,通过预先设计的通信协议与上位采集服务器通信,集成采集的数据.当需要增加下位机采集模块时需要扩展对应的上位机采集口,采集系统的升级和维护都非常麻烦.在单片机系统中通过调用采集服务器端的Web Service和上位机交互数据,可以简化下位机和上位机的通信,把主要工作放在下位单片机系统如何和仪表通信采集数据上, 基于该方法可以方便的构建基于工业以太网的分布式数据采集方案.该方案还可以方便的集成已经存在的数据采集系统,方便单片机系统的升级,比如可以把利用单片机实现的采集系统很容易的改为PLC采集系统或直接PC采集数据模式,而只需升级后的系统调用同样的Web Service交互数据即可.由于Web Service调用使用HTTP协议交互数据,该方案还可以方便的扩展为支持Internet的远程数据采集.

2 单片机系统中调用Web Service的实现

2.1 Web Service技术[7,9,10]

Web Service是能够通过Web协议来访问的可编程应用程序组件, 使原来孤立的站点之间的信息能够相互通信、共享.Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP、WSDL、UDDI等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux等)中使用.Web Service本质其实不是一种新技术,前面提到其使用了Internet标准,这些标准便是Web Service的核心技术.

(1)    HTTP是一种基于TCP实现的应用层协议,它是因特网可靠的交换数据的重要基础.HTTP为Web Service请求与响应提供了传输层,HTTP使得任何设备和平台都可以访问Web Service.

(2)    XML(Extensible Markup Language,可扩展标记语言),是一套规范,允许编程人员自行定义如HTML般的标注,以方便数据存取和处理、交换、转换等,主要特点是使用有意义的标记,这个特性使计算机可以理解数据含义.XML可以在任何系统、应用程序、任何平台上运行,数据传输以Internet为基础,传输费用便宜.

(3)    SOAP协议(Simple Object Access Protocol,简单对象访问协议),是一个用于分散和分布式环境下网络信息交换的基于XML的通信协议.它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问.由于数据采用文本格式,调试方便,容易穿越防火墙.

(4)    WSDL(Web服务描述语言),是基于XML的用来描述Web服务功能的一种语法.

(5)    UDDI(Universal Description, Discovery, and Integration, 统一描述、发现和集成),基于XML创建的一个平台独立, 开放的框架,通过Internet来描述服务,发现服务,并且整合服务.

2.2 Web Service 调用本质

现在很多语言工具都支持Web服务开发,如VS.Net、J2EE、JBuilder等,而且很多语言工具是跨平台(Windows、Linux等)的.这些开发工具都有专门的开发包或者类库,可以方便的实现Web Service的定义和调用,本文主要研究单片机系统中实现Web Service的调用方法.

调用Web Service本质上就是程序客户端和Web Service服务器端的信息交互,且有专门的信息格式.在ASP.net中提供了三种交互端口(协议):SOAP、HTTP-GET和HTTP-POST[7].在这三种协议中,SOAP是XML Web Service最常用到的.与HTTP相比,SOAP显的更为复杂,但却拥有更强的接受能力.SOAP是一种以XML为基础的协议,它提供一种将数据打包和编码的方法,以用于网络的数据传输.任意一个用户都可以使用SOAP协议与任何一个Web Service进行通信,甚至于说这个XML Web Service不是建立在ASP.NET 平台上的,比如说Java的,都可以利用SOAP来进行数据传输.因此SOAP是语言独立的. HTTP将SOAP 消息封装,然后以它的形式进行网络传输. HTTP-GET和HTTP-POST这两种方法传送参数和数据的能力比较简单,非常适合不能使用SOAP的客户来调用Web Service的情况. HTTP-GET和HTTP-POST方式与SOAP相比有如下特性:

优点:(1)HTTP方式不需要复杂的XML消息处理,适合不支持XML的平台使用;(2)HTTP方式在交互时候不需要添加额外的标签,减少了交互的数据量和开销,有利于提高整体性能.

缺点:(1)不能调用具有复杂数据类型参数的Web Service;(2)如果调用返回复杂数据类型时处理不方便;(3)不能把类和结构序列化为XML消息;(4)不能使用引用方式传递参数.

结合单片机系统调用Web Service的实际需要以及考虑到单片机的处理能力低,不支持XML,不适合复杂的数据处理,开发效率低等问题,认为使用HTTP方式比较合适,本文中将以HTTP-POST为例介绍其调用Web Service的实现方法.

2.3 实现单片机系统中调用Web Service的核心技术

(1)基于嵌入式网络模块实现HTTP

在嵌入式系统(WinCE、Linux等)中,可以基于其自带的TCP/IP协议栈实现HTTP或者直接使用嵌入式Web服务器[1~5]来使用HTTP协议,在计算机系统中则可以在高级语言中直接调用Web客户端使用HTTP协议或者利用SOCKET网络编程实现基于HTTP的数据交互,实现都比较简单,但在单片机系统中,其自身并没有TCP/IP协议栈,因此基于嵌入式网络模块在单片机系统中实现HTTP.

要实现HTTP协议 ,必须以TCP/IP协议栈为基础,利用嵌入式网络模块即可方便的实现TCP/IP协议栈的功能.如图1所示,下位机和仪表设备通过485总线连接,下位机利用单片机开发,采用主从方式和设备仪表通信采集数据.采集到的数据再通过总线发送给嵌入式网络模块,模块收到串行数据,利用内嵌的TCP/IP协议栈实现串行数据到以太网数据的转换,嵌入式网络模块通过网线连接至工业以太网.该方法中,下位机是实现HTTP应用层协议的关键,只要下位机发出的数据包符合HTTP协议,经嵌入式网络模块转化,变成可由Web服务器处理的合法HTTP-POST请求包,则可利用Web Service实现数据的处理和保存,也就实现了单片机系统调用Web Service.

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:137,628.90000 毫秒