【Android论文栏目提醒】:本文主要为网学会员提供“基于XMPP协议的Android即时通信系统设计 - 期刊论文”,希望对需要基于XMPP协议的Android即时通信系统设计 - 期刊论文网友有所帮助,学习一下!
第 19 卷 第8期 电子设计工程 2011 年 4 月 Vol.19 No.8 Electronic Design Engineering Apr. 2011 基于 XMPP 协议的
Android 即时通信系统设计 黄伟敏 (陕西铁路工程职业技术学院 陕西 渭南 714000 ) 摘要 : 即 时通 信 通 过互 联 网 给人 们 提 供了 便 捷 的通 信 手 段 ,针 对 手 机 覆 盖 区 域 和 效 果 的 不 断 提 升 ,提 出 一 种 在 流 行 的
Android 手 机 操 作系 统 上 ,实现 客 户 端与 客 户 端之 间 的 即时 通 信 的设 计 方 案 。
设 计 基 于开 源 的 XMPP 即时 通 信 协 议,采用 C/S 体系结构,通过 GPRS 无 线 网络 用 TCP 协 议连 接 到 服务 器 ,以 架设 开 源 的 Openfire 服 务 器 作为 即 时 通讯 平台,极大地方便了互联网通信不畅的用户。
关键词:
Android ; XMPP ; Openfire ; 即时通信 中图分类号: TP399 文献标识码: A 文章编号 :1674-6236 (2011 )08-0057-03 Design of
Android Instant Messaging system based on XMPP agreement HUANG Wei-min (Shaanxi Railway Institute , Weinan 714000 , China ) Abstract: Instant Messaging over the Internet to provide a convenient means of communication , aiming at constant rise of mobile coverage area and the effects , on the pop
Android mobile operating system , a design scheme was presented to achieve instant communication between the client and the client program. A XMPP Instant Messaging protocol based on open source was designed, it used C/S architectureand TCP protocol to connect to the server via GPRS wireless network , to set up Openfire server as open source instant messaging platform , which greatly facilitated the user whose Internet communication is not smooth. Key words:
Android ; XMPP ;Openfire ; Instant Messaging 2007 年 11 月 ,Google 推 出 了 底 层 使 用 开 放 性 LinuxKernel 为架 构 ,包 含中 间 件 、用 户 界 面 、应 用 软 件 组 成 的 一 套智能开源手机平台—
Android1。
Android SDK 提供
Android 平台上使用 Java 语言进行
Android 应用 开 发 必须 的 工 具和 API接口。
本文的研究目的就是基于 XMPP (Extensible Messaging 图 1 系统体系结构图and Presence Protocol ) 协 议 2, 提 供 在
Android 平 台 上 实 现 一 Fig. 1 System Architecture Diagram种 能 够 使 用 户 在 手 机 上 方 便 、迅 捷 的 收 发 即 时 消 息 、传 输 图片的即时通信服务系统设计方案。
程 ,进 行 即 时 通 信 时 ,由 客 户 端 负 责 向 服 务 器 发 起 创 建 连 接 请求。
系统通过 GPRS 无线网络与 Internet 网络建立连接,通1 系统体系结构 过 服 务 器 实 现 与
Android 客 户 端 或 PC 机 客 户 端 之 间 的 即 时 系 统 主 要 由 以 下 部 分 组 成 :一 是 服 务 器 ,负 责 管 理 发 出 通信 4。
的 连 接 或 者 与 其 他 实 体 的 会 话 ,接 收 或 转 发 XML (Extensible 服务器端则采用 Openfire 作为服务器。
允许多个客户端Markup Language )流 元素 给 授 权的 客 户 端 、服 务 器 等;二 是 客 同时登录并且并发的连接到一个服务器上。
服务器对每个客户 终 端 ,它 与 服 务 器 相 连 ,通 过 XMPP 获 得 由 服 务 器 或 任 何 户 端 的 连 接 进 行 认 证 ,对 认 证 通 过 的 客 户 端 创 建 会 话 ,客 户其它相关的服务所提供的全部功能。
三是协议网关, 完成 端与服务器端之间的通信就在该会话的上下文中进行。
XMPP 协 议 传 输 的 信 息 与 外 部 消 息 系 统 可 识 别 信 息 间 的 翻 1.1 服务器端设计译。
再 就 是 XMPP 网 络 ,实 现各 个 服 务器 、客 户 端间 的 连 接 。
Openfire 采 用 Java 语 言 进 行 开 发 ,是 基 于 XMPP 协 议 开系统 采 用客 户 端 (Client )/ 服务 端 (Server )架 构体 系 结 构,如 图 源的实时协作(RTC )服务器,具有跨平台的特点,服务器可以1 所示 3。
架设于多种操作 系统 平 台 之上 5。
Openfire 采 用 XMPP 协议 , 客户端基于
Android 平台进行开 发 , 负责 初 始 化通 信 过 可 以 使 用 各 种 支 持 XMPP 协 议 的 IM (Instant Messaging )客 户 端软件登陆服务。
收稿日期:2011-01-25 稿件编号:201101082作者简介:黄伟敏(1969 —),男,上海人,硕士,副教授。
研究方向:计算机应用研究、计算机教学。
-57- 《电子设计工程》2011 年第 8 期 Openfire 服务 器 的 内核 主 要 由连 接 管 理组 件 、 服 务器 连 Protocol for Instant Messaging and Presence Leveraging接 管理 组 件 、会话 管 理 组件 、注 册 登录 管 理 组件 、管 理 更 新 组 Extensions )、XMPP2 和 与 XMPP 、SIMPLE 类 似 ,但 已 经 不 再 使件 、文件 传 输 管理 组 件 、外部 管 理 组件 、数 据 存储 组 件 和 传 输 用的 PRIM (Presence and Instant Messaging Protocol )4 个。
器组件等组件组成。
IMPP 协议是由 IETF 的 IMPP 工作组制定。
包括了 IM 服 Openfire 实 现 了 插 件 机 制 ,方 便 扩 展 ,通 过 安 装 插 件 ,就 务模型定义,通用功能接口的定义,统一数据信息的定义。
用能与其他的通讯软件实现通讯。
在 网 络 连接 中 ,选 用 Apache 来构建一个具有空间接收、发布能力的即时信息系统。
的 MINA (Multipurpose Infrastructure for Network Applications ) SIMPLE 协议是由 IETF 的 SIMPLE 工作 组 织制 定 , 通 过框 架 来实 现 网 络连 接 ,MINA 框 架选 用 非 阻 塞 式 、高 性 能 的 I/ 对 于 SIP 协 议 的 扩 展 , 使 其 支 持 IMPS (Instant Messaging andO 底层,采取异步 I/O 事 件 和 事件 驱 动 机制 ,使 服 务器 具 有 很 Presence Service )服务 ,体 系 结构 与 SIP 基 本相 同 ,利 用了 SIP高 的 效 率和 性 能 ,从 而 能 够 及 时 处 理 大 量 的 客 户 端 连 接 和 I/ 的请求重定向功能,来发送 Presence 信息。
SIP 一般考虑用在O 随机突发性。
建立语音通话中,一旦连接以后 ,依 靠 如实 时 协 议(RTP )来 进 在 Openfire 服 务 器 中 ,针 对 每 个 用 户 的 请 求 , 创 建 一 个 行实际上的语音发送。
线 程 来 进 行 响 应 ,同 时 采 用 线 程 池 来 创 建 和 管 理 线 程 ,提 高 XMPP 是 由 Jabber 软 件 基 金 会 开 发 ,最 早 在 Jabber 上 实了服务器的执行效率。
线程池的大小可以根据服务器在运行 现 的 协议 , 它 继 承了 在 XML 环 境 中 灵 活 的 发 展 性 , 使 基 于的过程中接收到的用户请求的数量进行自动调整。
XMPP 的 应用 具 有 超强 的 可 扩 展 性 。
经 过 扩 展 以 后 的 XMPP1.2 客户端结构实现 更 易 于解 析 和 阅读 ,可 以 通过 发 送 扩展 的 信 息 来 处 理 用 户 的 系统客户 端基 于
Android 手 机平 台 。
采 用 XMPP 作 为 即 需 求,以 及 在 XMPP 的顶 端 建 立如 内 容 发 布 系 统 和 基 于 地 址时通 讯 协 议,XMPP 是 基 于 XML , 实 现 任 意 两 个 网 络 终 端 准 的服务等应用程序。
而且,XMPP 包含了针对服务器端的软件实时的交换结构化信 息的 通 信 协议 。
采 用
Android 平台 提 供 协 议 ,使 之 能 与 另 一 个 进 行 通 话 ,这 使 开 发 者 更 易 建 立 客 户的 XML 解析包对 XML 进行解析。
由于应用活动都运行于主 应用程序或给一个配好的系统添加功能。
线程 ,故 用 多线 程 技 术来 解 决 系统 通 讯 问题 。
针 对 通 信 安 全 2.2 XMPP 技术优点问题 , 系 统 的用 户 信 息 和 聊 天 信 息 在 客 户 端 存 储 在
Android 开放 性 XMPP 协 议是 免 费 、开放 、公 有 、容 易 被 理 解 的 协平台自身所带的 SQLite 数据 库 中 ,多媒 体 文 件和 图 片 文件 存 议 。
它有 很 多 开源 的 客 户端 、服 务 器、组 件 与 代 码 库 的 实 现 ,储在
Android 平台虚拟文件存储设备 SD Card 中。
是 IETF 正 式 确 认 的 基 于 XML 流 的 即 时 通 信 协 议 。
从 19981.3 客户端设计 起 XMPP 被开 发 到 实现 ,已 经 相当 稳 定 。
有 数 以 千 计 的 开 发 系统的客户端分为 5 大模块进行设计开发,如图 2 所示。
者 在 XMPP 技 术 上 工 作 , 有 数 以 万 计 的 XMPP 服 务 器 在 Internet 上 运 行 ,超过 百 万 的 XMPP 终 端 用 户 。
XMPP 的 框 架 与 e-mail 类似,所 以每 一 个 人都 可 以 运行 它 独 立的 XMPP 服 务器来进行他们自己的组织与管理的 IM 体验。
任何 一 个 XMPP 服 务 器 都 与 公 共 的 XMPP 网 络 独 立 的 , 通过 SASL (Simple Authentication and Security Layer ) 与 TLS (Transport Layer Security ) 来 建 立 安 全 连 接 , 已 经 内 建 在 XMPP 的核心协议里。
XMPP 在 XML 结构化数据中扮演通用 图2 客户端结构图 “传输 层 ”的角 色 ,能 使数 据 高 效路 由 到 最合 适 的 请 求 源 。
除 Fig. 2 Diagram of client architecture diagram 了实现 IM 的互操作性,XMPP 另一个重大用途是通过各类 应 通讯 模 块 负责 与 服 务器 建 立 通 讯 6。
通 过 创 建 3 个 线 程 用 实 现 现场 实 时 信息 处 理 ,所有 实 体 对 于 XMPP 服 务 器 都 是来进行处理。
分别负责消息的发送、接收和心跳信息的发送; 透明的, 实体中的任何用户的状态对于其他用户都是可见解析 模 块 主要 用 来 解析 XML 数 据 流 , 根 据 解 析 元 素 不 同 类 的。
XMPP 的程序可以超越 IM 的范畴,可以用来进行网络 管型 封 装成 不 同 的数 据 对 象 ;数 据 模 块定 义 整 个客 户 端 中 大 部 理、内容同步、协同工具、文件共享、游戏与远程系统监控等。
分 的 数 据 类 型 和 对 象 ;应 用 模 块 包 括 即 时 通 信 、图 片 浏 览 和 2.3 XML 的数据格式音 乐 播 放 ,是 客 户 端 和 用 户 交 流 的 接 口 ;加 密 模 块 对 发 送 和 XML 是 XMPP 系统架构的 核 心 ,它能 表 述 几乎 任 何 一种接收的消息进行加解密,以确保通讯数据的安全。
结 构 化数 据 。
特 别 是 XMPP 利 用 XML 数 据 流 进 行 客 户 端 — 服务器端、服务器端— 服务器端 的 通 信。
XML 数 据 流 一般 是2 系统即时通信协议 由客户端发起至服务端,XML 数 据 流 的有 效 时 间直 接 与 用户2.1 主流即时通信协议 的在线会话有效时间相 关联 。
XMPP 严 格 遵守 XML 的 同 时, 目 前 , 流 行 的 即 时 通 信 通 用 协 议 包 括 IMPP (Instant 不需要知道任何关于信息转发中介的信息。
对于信息转发中Messaging and Presence Protocol )、SIMPLE (Session Initiation 介没 有 任 何固 有 规 定,也 无 需 任何 关 于 信息 转 发 中 介 的 系 统 -58- 黄伟敏 基于 XMPP 协议的
Android 即时通信系统设计架构 的 知 识 。
这 也 使 得 提 供 与 第 三 方 服 务 (如 :IRC 、ICQ 等 ) 联网完美地结合 起来 , 解 决 在当 前 流 行的
Android 操 作 系统进行信息传输的传输器的实现成为可能。
上 实 现即 时 通 信的 问 题 ,极大 地 方 便了 互 联 网 通 信 不 畅 的 用2.4 XMPP 地址结构 户 。
由于 时 间 和技 术 的 因素 ,系 统 面对 即 时 通 信 的 多 样 性 和 一个 实 体 在 XMPP 网 络 结 构中 被 认 为 是 一 个 接 点 ,它 有 复杂性,服务器集群、协 议网 关 、安 全性 、VOIP 、ERP 集 成 等业一 个 唯 一 的 标 识 JID ,即 实 体 地 址 ,用 来 标 识 一 个 用 户 ,但 是 务功能的实现还需进一步的完善。
也可以表示其他内容。
一个有效的 JID 应该包括一些必要元 参考文献:素 , 如 域 名 (domain identifier )、 节 点 (node identifier ) 和 源 1 于少 山 ,卡米 力 ,毛 依丁 . 基 于 XML 的即 时 通 信系 统 的 研 究(resource identifier )。
JID 的格式采 用的 形 式 是 nodedomain/ 与实现 J. 重庆邮电大学学报,2007 (6 ):59-61.resource , 其 中 node 表 示 用 户 在 服 务 器 上 注 册 的 用 户 名 , YU Shao-shan ,Kamil ,Moidy.Research and application of IMdomain 用来表示接点不同的设备或位置。
based on XML J.Journal of Chongqing University of Posts2.5 XMPP 协议消息格式 and Telecommunications ,2007 (6 ):59-61. XMPP 协 议 包 括 3 个 顶 层 XML 元 素 :Message 、Presence 2 陈武 . 基 于 XMPP 的 企 业 级即 时 通 信系 统 的 研究 与 实 现 D.和 IQ7。
Message 用来表示传输的消息,当用户发 送 一条 消 息 武汉:武汉理工大学,2009.时,就会在流的上下文中插入一个 Message 元素,中间 有 用 户 3 赵远 萍 . 即时 通 信 系统 拓 扑 建模 及 消 息传 播 模 型 研 究 D.发送的相关信息;Presence 用来表示用户的状 态,当 用 户 改变 北京:. 北京邮电大学,2010.自己的状态时, 就会在数据流的上下文 中 插 入一 个 Presence 4 马志强 . 基于
Android 平台即时通 信 系统 的 设 计与 实 现 D.元 素,用 来 表 示用 户 现 在的 状 态 ;IQ 用 来 表 示 一 种 请 求 / 响 应 北京:北京交通大学,2009.机制,从一个实体发送请求,另外一个实体接受请求并响应。
5 姚昱 旻 ,刘卫 国 .
Android 的 架 构 与 应 用 开 发 研 究 J. 计 算 机2.6 网络连接协议 系统应用,2008 (11 ):110-112. XMPP 服务 器 之 间 、客 户 与 服 务 器 之 间 采 用 的 是 TCP 连 YAO Yu-min ,LIU Wei-guo.Study of
Android ’s architecture接 8。
TCP 提供一种面向连接、可靠的字节流服务。
保持一个 and its application J.Development Computer Systems amp实时 双 向 的传 输 通 道。
TCP 将 用 户 数 据 打 包 构 成 报 文 段 ,它 Applications ,2008 (11 ):110-112.发 送 数 据 后 启 动 一 个 定 时 器 ,等 待 对 端 数 据 确 认 ,另 一 端 对 6 李嘉 . 基 于智 能 终 端的 移 动 互联 一 网 服务 研 究 D. 长沙 :中收 到 的 数 据 进 行 确 认 ,对 失 序 的 数 据 重 新 排 序 ,并 丢 弃 重 复 南大学,2009.数 据 ;TCP 提供 端 到 端的 流 量 控 制 , 计 算 和 验 证 一 个 强 制 性 7 Saint-Andre P. RFC3921 Extensible Messaging and Presence的端 到 端 检验 。
但 是 GPRS 网络 对 TCP 链 路 存 在 一 个 限 制 , Protocol (XMPP):Instant Messaging and Presence,IETF proposed当 TCP 链路在长时间无有数据 流 量 时,会 自 动 降低 此 链 路的 standardS. 2004.优 先 级直 至 强 制断 开 此 链路 。
所 以 在应 用 中 ,采 用 发 送 心 跳 8 田森,李大和 . 用
Android 开 发手 机 应 用 J. 程 序 员 ,2008 (1 ):的方式来维持此链路。
57-61. TIAN Sen ,LI Da-he. Develops the handset application with3 结束语 AndroidJ.Progeammer ,2008 (1 ):57- 61. 通过 本 系统 设 计 方案 ,可 以 把手 机 的 短 信 和 手 机 移 动 互(上接第 56 页) 机信息,2004 ,20 (6 ):76-78. acquisition card in QNX J. Computer Technology ,2005 ,32 ZOU Hai , BIAN Xin-qian ,WANG Er-xi. Multi-thread (2 ):35-38. programming under QNX J. Microcomputer Information , 5 周静 . VxWorks 下 基 于 PCI 总 线 的 驱 动 程 序 开 发 J. 电 子 元 2004 ,20 (6 ):76-78. 器件应用,2009 , 11 (7 ):70-73.3 季 宇 . VxWorks 操 作 系 统 下 CompactPCI 总 线 驱 动 程 序 设 计 ZHOU Jing. Driver development of PCI Bus under VxWorks J. 电子设计工程,2009 (6 ):99-101. J. Electronic ComponentampDevice Applications ,2009,11 (7): JI .