Speaker: Hui-Hsiung Chung Date:2011-09-21 XMPP Speaker: Hui-Hsiung Chung Date:2011-09-21
OUTLINE Introduction Architecture Application Network Management Protocols Comparison Conclusion Reference
INTRODUCTION Extensible Messaging and Presence Protocol XMPP Jabber RFC 3920(Obsoleted by 6120) An open-standard communications protocol Distributed Based on XML(Extensible Markup Language) Regarded as a competitor to Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions(SIMPLE)
INTRODUCTION CONT. Advantages: Disadvantage: Decentralization Security Anyone can run their own XMPP Server Security Isolate from public network Robust security(SASL and TLS) Disadvantage: Plain text data Need to parse
PACKET FORMAT
ARCHITECTURE gmail.com Internet grizzly.cloudip6.com Hui-Hsiung@grizzly.cloudip6.com grizzly.cloudip6.com gmail.com memphisnone@gmail.com
APPLICATION Network Management Mobile Device Instant Message(IM) IM Internet IM XMPP UA Wireless sensor network XMPP server
NETWORK MANAGEMENT PROTOCOLS Session Initiation Protocol SIP RFC 3261 Simple Network Management Protocol SNMP RFC 1157(V.1)
COMPARISON XMPP SIP SNMP Packet Format ASCII(XML) Binary Transport TCP UDP Working in NAT Yes No Addressing URI IP Address URI: Uniform Resource Identifier
COMPARISON CONT. XMPP SIP Register to one server No Yes Presence TCP UDP Redirect HTTP
CONCLUSION XMPP is extensible and flexible XMPP costs more traffic than SNMP Much reliable than default SIP Security issue No multi-media supports
REFERENCE Wiki-XMPP Wiki-SNMP IM Technology Overview SIP: The Clear Choice for Smart Grid Communications Mong-Fong Horng; Mao-Hsiung Hung; Yi-Ting Chen; Jeng-Shyang Pan; Wen Huang. “A New Approach based on XMPP and OSGi Technology to Home Automation on Web”. Computer Information Systems and Industrial Management Applications (CISIM), 2010 International Conference
Q&A
APPENDIX XMPP server install Configuration Start Add user Activate EPEL-Repository $yum install ejabbered Configuration /etc/ejabberd/ejabberd.cfg Add hosts {hosts, ["example.com"]}. Add admin {acl, admin, {user, “username”, “example.com”}}. Start /etc/init.d/ejabberd start Add user ejabberdctl register username example.com password