嵌入式环境下WebService技术的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
POST/test HTTP/1.1 Content-Type:application/soap+xml; Content-Length:250
如图2所示,程序利用lwIP 提 供 的 API创 建 一 个 监听连接,绑定到 HTTP 的 80 号 熟 知 端 口 上,当 接 收 到 POST 请求时检查 必 要 的 HTTP 头,之 后 开 始 接 收 HTTP 正文(SOAP 请 求 ),并 将 接 收 到 的 请 求 存 放 在 预先开辟的缓冲区中,再交由 XML 解 析 器 处 理。 为 了 节省资源,将 SOAP 消息 解 析 和 HTTP 接 收 放 在 同 一 线程,一次只处理一个 SOAP 请 求,因 此 整 个 解 析 过 程 只 需 要 一 个 缓 冲 区 。 同 时 开 启 连 接 超 时 机 制 ,如 果 客 户 端连接后长时间无动 作,接 收 程 序 将 切 断 连 接,避 免 后 续请求无法得到响应。
图2 HTTP 接收流程
2.2.2 XML 解析 SOAP 消 息 是 由 XML 语 言 组 成 的,因 此 对 XML
的解析是处理 SOAP 消息 的 一 个 重 点。 当 今 有 2 种 流 行的 XML 解 析 API,它 们 是 DOM(Document Object Model)和 SAX(Simple API for XML),尽 管 这 两 种 方 法都能用来解析 XML 数据,但相互间却有 很 多 本 质 的 不同:DOM 一次性 把 整 个 XML 文 档 读 入 内 存 并 建 立
图 1 总 体 实 现 框 架
SOAP 在 HTTP 上的远程调用的具体实现过程 大 致如下:客户端通过 SOAP 工具生成基于 XML 文档的 SOAP 消息,在 该 SOAP 消 息 里 包 含 有 客 户 请 求 的 服 务 名 称 及 调 用 服 务 程 序 所 需 的 参 数,并 使 用 HTTP POST 方法 通 过 网 络 向 应 用 程 序 所 在 的 服 务 端 发 送 SOAP 请求;另 一 方 面,当 服 务 端 接 到 HTTP 信 息 之 后,又从 中 提 取 出 SOAP 消 息,启 动 XML 文 档 解 析 器 进行解析,获取客户需 要 调 用 的 方 法 名 及 其 参 数,以 此 来 调 用 相 应 的 服 务 程 序 ,之 后 以 类 似 的 方 法 将 运 行 结 果 打包成 SOAP 消 息 返 回 给 客 户,完 成 应 用 程 序 的 远 程 调用。
Keywords:Web Service;XML;SOAP;embedded system
0 引 言
近 年 来 随 着 网 络 化 概 念 的 不 断 推 广 ,嵌 入 式 系 统 也 摆 脱 了 以 往 “信 息 孤 岛 ”的 封 闭 局 面 ,相 互 之 间 逐 渐 形 成 了分布式的协作关系。然而嵌入式系统在网络的应用 层 上 常 常 采 用 自 定 义 的 传 输 协 议 ,加 之 各 系 统 之 间 巨 大 的 平 台 差 异 性 ,给 系 统 间 的 互 访 以 及 企 业 级 信 息 的 集 成 带来了困难 。 [1] Web Service技术具有良好的跨平台和 松 耦 合 特 性 ,能 够 实 现 不 同 平 台 的 分 布 式 系 统 之 间 的 无 缝集成,降 低 了 企 业 进 行 设 备 升 级 和 服 务 重 组 时 的 投 入 。 [2] 本 文 以 32 位 微 处 理 器 ARM Cortex-M3 为 核 心,借助于嵌入 式 TCP/IP 协 议 栈 和 实 时 操 作 系 统,在 嵌入式环境下实现了 Web Service技术。
收 稿 日 期 :2011-06-07
施,简 单 对 象 访 问 协 议 (Simple Object Access Proto- col,SOAP)很 好 地 应 对 了 这 种 需 求[3]。SOAP 协 议 以 XML 形式提 供 了 一 个 简 单、轻 量 的 机 制,用 于 在 分 布 环境中交换结 构 化 信 息。SOAP 本 身 并 没 有 定 义 任 何 应用程序语义,如编程 模 型 或 特 定 语 义 的 实 现;实 际 上 它通过提供一个模块化的封包模型和在模块中进行数 据 编 码 的 方 法 ,定 义 了 一 个 简 单 的 表 示 应 用 程 序 语 义 的 机 制 。 [4]
目前 已 经 有 许 多 成 熟 的 SOAP 工 具,例 如 针 对 C++ 的 gSOAP、针对Java的 kSOAP 等,但 是 这 些 实 现 方案均是为 PC 机 或 者 带 有 高 级 操 作 系 统 的 嵌 入 式 系 统设计的,对 资 源 的 消 耗 较 多。 对 于 低 端 的 嵌 入 式 环 境 ,需 要 更 轻 量 型 的 处 理 方 法 。
WANG Hai-li,ZHOU Xing-peng
(School of Automation,Southeast University,Nanjing 210096,China)
Abstract:To cope with the interoperability and integration between embedded system and other heterogeneous systems,a new approach of applying Web Service technology in low-end embedded equipments is proposed.Based on ARM Cortex-M3 microcontroller,miniature realtime operating system and embedded TCP/IP protocol stack,the implementation process of Web Service is elaborated,including HTTP message reception,XML/SOAP protocol parse and service function bind.Special care is taken to minimize resource consumption in this resource constrained environment.Load test performed by dedicated test tool proved the good feasibility and stability of the proposed approach.
信 过 程 一 般 分 为 4 个 步 骤 :建 立 连 接 、发 送 请 求 消 息 、接 收 响 应 信 息、关 闭 连 接。HTTP 定 义 了 众 多 请 求 方 法 (Method),如 GET,POST,HEAD,DELETE 等[10],由 于 SOAP 主 要 使 用 POST 方 法 来 发 送 请 求,因 此 HT- TP 的 实 现 集 中 在 POST 方 法 上。SOAP 协 议 中 规 定 POST 请求至少包含两个 HTTP 头,Content-Type(定 义 MIME 类型)和 Content-Length(定义消息的长度)。 例如:
1 Web Service与SOAP 协议
Web Service是网络化 应 用 的 一 种,可 以 将 其 看 成 一 种 函 数 调 用 ,只 不 过 这 个 用 在 客 户 端 进 行,客 户 端 只 要 接 入 装有服务的机器所在的网络即可调用函数。为了实现 这 种 远 程 调 用 ,需 要 对 传 输 的 数 据 格 式 采 取 一 些 约 定 措
关 键 词 :Web Service;XML;SOAP;嵌 入 式 系 统 中 图 分 类 号 :TN919-34;TP311 文 献 标 识 码 :A 文 章 编 号 :1004-373X(2011)22-0061-04
Implementation of Web Service Technology in Embedded Environment
鉴于动态生成xml文档需要耗费较多的资源程序中为每个服务函数预存了一个模板模板中已经定义好了回复消息的整体结构仅需在服务函数被实际调用后往模板中填入结果即可另外可以在发送回复消息的过程中复用之前的接收缓冲区这样一来同时节省了处理时间和资源消耗
2011 年 11 月 15 日 第 34 卷 第 22 期
2 Web Service在 嵌 入 式 环 境 下 的 实 现
2.1 底 层 软 硬 件 结 构 本文中所 使 用 的 硬 件 基 于 ST 公 司 推 出 的 ARM
62
现代电子技术
2011 年 第 34 卷
Cortex-M3 32位微处 理 器 STM32F107VC[6]。Cortex- M3是针对价 格 敏 感 但 又 有 高 系 统 效 能 需 求 的 嵌 入 式 应用而设计的 ARM 内核,作为 ARM7 的 后 继 者,大 刀 阔 斧 地 改 革 了 设 计 架 构 ,显 著 简 化 了 编 程 和 调 试 的 复 杂 度,处理能力也更加强大[7]。STM32F107VC 工 作 频 率 最高为72 MHz,带有256KB 的片上 FLASH 和64KB 的 SRAM,以 及 以 太 网 MAC 控 制 器,因 此 外 接 一 片 PHY 芯片 RTL8201,完成与以太网的物理通信。
现代电子技术
Modern Electronics Technique
Nov.2011 Vol.34 No.22
嵌入式环境下 Web Service技术的实现
王 海 立 ,周 杏 鹏
(东南大学 自动化学院,江苏 南京 210096)
摘 要:为了解决嵌入式系统与其他异构系统之间互联和集成的难题,提出了 Web Service技 术 在 低 端 嵌 入 式 设 备 上 的 实现方法。以 ARM Cortex-M3微处理器为核心,基于小型实时操作系统和嵌入式 TCP/IP 协议栈,详细阐述了 Web Service 的实现过程,包括 HTTP 接收,XML 与 SOAP 协议的解析,以及同具体服务实现的绑定,并针对嵌入式环境下资源受限的特 点 ,给 出 了 相 应 的 优 化 方 法 。 使 用 专 用 测 试 软 件 进 行 的 压 力 测 试 表 明 ,该 实 现 运 行 稳 定 ,具 有 良 好 的 可 行 性 。
为 了 达 到 实 时 任 务 管 理 ,本 文 选 用 嵌 入 式 实 时 操 作 系统 FreeRTOS和轻量级 TCP/IP 协议栈lwIP 组成底 层软件开发 平 台。FreeRTOS 作 为 一 个 免 费 开 源 的 小 型实时内核,主要 用 于 建 立 和 管 理 各 个 模 块 的 任 务 ; [8] lwIP 则为数据的 TCP/IP 封装 提 供 了 一 个 良 好 的 软 件 基 础 。 [9] 2.2 SOAP 消息的处理
SOAP 消息是由 Envelope,Header和 Body三部分 组成 的 XML 文 档,其 中 Envelope是 SOAP 消 息 的 根 元素,必须在 SOAP 消 息 中 出 现;可 选 的 Header元 素 包含有 关 SOAP 消 息 的 应 用 程 序 专 用 信 息;必 需 的 Body元素包含打算传送到消息最终端点的实际 SOAP 消息 。 [5] 最后,为了进 行 基 于 SOAP 的 远 程 调 用,需 要 一种 低 级 传 输 协 议。SOAP 规 范 允 许 使 用 HTTP, SMTP 甚至原 始 的 TCP/IP 套 接 字,其 中 HTTP 协 议 最为常用。
由前文可 知,SOAP 可 以 简 单 的 理 解 为 HTTP+ XML+远程调用 规 则,因 此 SOAP 消 息 的 处 理 也 分 为 3步:HTTP 协 议 的 实 现、XML 解 析、具 体 服 务 实 现。 其总体结构如图1所示。
2.2.1 HTTP 协议的简单实现 HTTP 是基于请求/响应 模 式 的 协 议,客 户 端 的 通
相关文档
最新文档