基于Jabber技术的移动即时通信PC客户端的研究与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
即时消息继Email和Web之后已经成为互联网的重要应用之一,它以交流实时性、在线性服务与文本交互性等特征,成为了人们在日常生活与办公环境中,进行交流沟通与协同工作的必备工具。随着手机和移动设备应用的不断进步,即时消息与移动和无线的融合更是成为当前的研究热点。移动即时通信业务基于已经产生收入的文本消息,例如短消息服务。移动即时通信还是一个新的领域,技术尚不成熟,提供的功能也比较简单。互联互通、在线性服务以及安全问题等是当前移动即时通信急需解决的几个关键问题。
     针对上述分析与需求,本文深入研究了一种全新的、开放的Jabber即时通信技术,概述了移动即时通信系统的设计与实现,通过开源的、面向对象的脚本语言—Python设计和实现了移动即时通信系统的PC客户端。
     首先,本文分析了Jabber技术的原理,对当前比较流行的两种协议SIMPLE与XMPP在功能、扩展能力和成熟度等特征方面作了对比分析,并详细分析了XMPP协议与Jabber技术的原理与应用,包括Jabber技术优势、Jabber系统实现、Jabber消息格式以及Jabber运行原理等几个方面。
     然后,简单介绍了移动即时通信系统的总体设计,重点研究了移动即时通信PC客户端,采用简单客户端的思想,设计和实现了客户端的主要功能模块,在客户端中独立出用户代理机来进行所有与服务器相关的通信以及协议的逻辑处理,针对该机制详细设计了客户端主要功能的数据流程。
     接着,分析了客户端的实现环境,通过比较当前几种常用技术VC++、Delphi等的优缺点,针对本系统是简单客户端并需要快速开发等特点,选定了Python脚本语言和Eclipse开发环境实现PC客户端,分析了基于Python的客户端实现流程,通过代码示例具体分析了程序实现的几个细节问题,并研究与实现了客户端的界面换肤功能。
     最后,分析了系统实现过程中的几个关键问题:实时语音流、穿越防火墙以及数据的安全传输等问题,给出了详细的解决方案。
Afterwards Email and Web, instant message already becomes one of the important internet applications, and for characteristics like real time communication, service online and text communication, becomes an absolutely necessarily tool for communication and cooperative work in people’s daily life and office environment. Along with the progress of cell-phone and mobile, convergence between Instant Message and mobile becomes a research hotspot. Mobile instant message service is based on the text message which has brought income, such as short message service. Mobile instant message is still a new field, the technology is not mature and the function which supplies is easy. Interconnectivity between mobile instant messages, service online and security problem are several key issues urgently in need of solution of Mobile Instant Message.
     According to the above analysis and requirement, this article deeply researched a new and open source Jabber instant message technology, summarized design and implementation of the mobile instant message system and designed and implemented PC client of the system through open source and object oriented script language, Python.
     Firstly, this article analyzed the theory of Jabber technology, contrasted and analyzed characters, like functions, extended ability and maturity, between two popular protocols, SIMPLE and XMPP, and detailedly analyzed the theory and application of XMPP and Jabber technology, including the advantages of Jabber technology, implementation of Jabber system, format of Jabber messages and Jabber running principle.
     Then this article simplely introduced design of the mobile instant message and emphatically researched the PC client. Applying simple client thought, it designed and implemented main function modules of client, divided a user agent from the client to do all communications and logic processes between client and server and according to the mechanism detailedly designed the data flow of main function in client.
     Then, this article analyzed development environment of the client. Through comparing advantages and disadvantages of several popular common technologies, like VC++ and Delphi, according to characters of the system is simple client and needs to quickly develop, it selected Python script and the Eclipse development environment to implement the PC client, analyzed the implementation flow of client based on Python, through code examples analyzed several detail problems in program implementation and it researched and implemented skin exchange function.
     At last, this article analyzed several key issues in system implementation process: real time audio stream, traversing the fire wall and secure transfer of data and presented detail solution.
引文
1 即时通信行业发展趋势报告. http://tech.sina.com.cn/i/2007-01-31/19001363564.shtml
    2 张杰. 国外移动即时通信迅迅猛发展. 中国电信业. 2007.7: 16-17
    3 2007年移动即时通讯(Mobile IM)产业发展研究报告. 2007
    4 ICQ Inc. What is ICQ? About the Web’s Largest Community http://www.icq.com/info/icqstory.html , 2005
    5 D. Mark, R. Jonathan, S. Sougano. A Model for Presence and Instant Messaging. IETF. 2000: RFC-2778
    6 Sarit Mukherjee, Sanjoy Paul, Krishan K.Sabnani. Always On : A New Paradigm For Wireless Networks. Personal, Indoor and Mobile Radio Communications. 2004.1: 226~233
    7 Sophy Zhang. China Mobile Application 2004-2008 Forecast and Analyses. IDC China, 2004:2-11
    8 刘杰. 3G即时通信实现技术, 电信科学, 2007.12:5-11
    9 周阳霖, 张孝林等. 移动增值业务现状与趋势分析. 移动通信. 2007.10: 38-41
    10 M. Handley, H. Schulzrinne, E. Schooler and J. Rosenberg, SIP: session initiation protocol. Internet Engineering Task Force (IETF). June 2002: RFC 3261
    11 张文茂, 章淼等. 互联网即时消息(Instant Messaging, IM)的研究现状与展望. 小型微型计算机. 2007.7: 1162-1168
    12 Victor Liu. China Handheld Device 2004-2008 Forecast and Analysis. IDC China, 2005:2-10
    13 M.Day, J.Rosenberg, H.Sugano. RFC2778: A Model for Presence and Instant Messaging. ITEF, 2000
    14 M.Day, S.Aggarwal, G.Mohr, J.Vincent. RFC2779: Instant Messaging/Presence Protocol Requirements. ITEF, 2000
    15 张云川. 标准化的即时通信协议—SIMPLE和XMPP的对比研究. 武汉大学学报(自然科学版)2005.12-23 (4) : 375-377
    16 杨斌. XMPP协议分析与应用探讨. 微机与应用, 2005.8:32-34
    17 Kenji Saito. Maintaining Trust in Peer-to-Peer Barter RelationshIps. Applications and the Internet Workshops. 2004: 582-588
    18 Jerry Gao, Ph.D, Mansi Modak, Satyavathi Dornadula and Simon Shim. Mobile Jabber IM: A Wireless-Based Text Chatting System. e-Commerce Technology. 2004: 337~341
    19 M.Rose. RFC3117: On the Design of Application Protocol.IETF, 2001
    20 Jabber Inc. The Presence Value of Presence: Leveraging your Instant Messaging Investment. August, 2003
    21 Stephen Lee, Terence Smelser, “Programming Jabber”2002
    22 Peter Saint-Andre Jabber Technology Overview. Jabber, Inc. June 2002
    23 D.J. Adams. Programming Jabber. O’Reilly, First Edition January 2002
    24 Catherine Dodson“Jabber Technical White- Paper”http://xml.coverpages.org/jabber_tech_whitepaper.pdf
    25 P.Saint-Andre, Jabber software Foundation. RFC3920: Extensible Messaging and Presence Protocol (XMPP): Core. ITEF, 2004
    26 P.Saint-Andre, Jabber software Foundation. RFC3921: Extensible Messaging and Presence
    27 Protocol (XMPP): Instant Messaging and Presence. ITEF, 2004
    28 Jeremie Miller. Jabber系统架构概况. 1999
    29 W3C Organization. XML, Specification Version 1.O.httpa/www.w3.org/XML
    30 OMA-RD-Presence_SIMPLE-V2_0-20070403-C. Open mobile alliance, OMA presence SIMPLE 2.0 requirements, Candidate Version 2.0, 2007
    31 H.M.Deitel, P.J.Dertel, 康博译. XML编程技术大全. 清华大学出版社, 2002:35-56
    32 Gerhard Poul. Jabber Instant Messaging for E-business. IBM, 2002
    33 W3C. Extensible Markup Language (XML) 1.0. W3C Recommendation, 2000
    34 Jason Kitchen. 用基于XML的即时消息开发Jabber. 刘建华译. 2002
    35 Saint-Andre. Streaming XML with Jabber/XMPP. Internet Computing. IEEE. 2005.9(5):82~89
    36 Dreamtech软件研发组著. 李军等译. 即时消息传递系统编程源代码解析. 电子工业出版社, 2002:384-420
    37 3GPP TS 23.141 V7.3.0. Presence service; architecture and functional description (Release 7), 2006
    38 Raymond B. Jennings III, Erich M. Nahum. A study of Internet instant messaging and chat protocols. IEEE Network, July/August 2006: 16-21
    39 Jabber Software Foundation, http://www.jabber.org
    40 中国移动通信集团公司CMPP2.0. 中国移动通信互联网短信网关接口协议
    41 孙广磊著. 征服Python. 人民邮电出版社. 2007
    42 Andre Lessa, 张小晖, 张小昕译. 深入学习: Python 程序开发. 电子工业出版社, 2001:18-112
    43 Mark Pilgrim著. Python爱好者译. Dive Into Python中文版
    44 Python 中文翻译论坛. http://wiki.woodpecker.org.cn/moin/PyCookbook
    45 wxPython 开源社区. http://wxpython.org/
    46 袁少华. 互联网实时语音通信技术的研究. 应用安全. 2004: 48-49
    47 钱俊. VoIP系统中静音检测的设计与实现. 华中科技大学硕士学位论文. 13-25
    48 OpenSSL Project. http://www.openssl.org/
    49 Derek Greene, Donal O’Mahony. Instant messaging&presence management in mobile ad2hoc networks[C]. In: Proc. of the 2nd IEEE Annual Conference on Pervasive Computing and Communications Workshops (PERCOMW’04). 2004, 52-59
    50 Faure C. Presence service in 3G networks[C]. In the 3rd IEEE Int’l Conf. on 3G Mobile Communication Technologies. 2002, 511-515