2013. 4. 11. 15:19

작성자: Yonghwa Jee ( jeeterm@empal.com ). Copyright by Telcom Co., Ltd. ( http://www.talknow.co.kr )
작성일: 2010.9.3

IM ( Instant Messaging) 표준화 동향XMPP
============================================


1. 개요
--------

* H.323 : AT&T 등의 TelCo( Telecommunication Company: 통신회사) 들이 모여서 Internet 상에서 PC나 인터넷폰끼리
음성통화(일명: Voice over Internet Protocol 줄여서 VoIP )하기 위해 표준화한 통신프로토콜 .

* SIP : H.323 은 쓸데없이 복잡하므로 IBM,MS 등의 컴퓨터관련 회사들이 주축이 되서 만든 VoIP 프로토콜


위 두 표준안 이후

SIP 표준안을 IM을 포함시키는 표준안으로 확장시켰는데 이름하여 SIMPLE, the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions 이다.

즉, IM 관련 대표적인 두 프로토콜 중 하나인 SIMPLE 은 VoIP 표준인 SIP에서 확대 발전되어 탄생하였고 그 주동자는 IBM,MS 진영이다.

IM의 나머지 대표적인 프로토콜은 XMPP 로서 이 표준안의 시초는
Jeremie Miller 라는 좀 똘똘한 친구가 1998년 jabber테크놀로지라는 회사에서 개발을 시작하여 1999년 1월4일
jabberd ( http://en.wikipedia.org/wiki/Jabberd14 ) 라는 첫 메신저 서버 버전을
Release 하면서 시작되었다. 이 jabber 를 HP, Apple, Google, Cisco 진영에서 적극 지원해서 XMPP 라는 IM 표준안( http://xmpp.org ) 을 만들어 냈다.

참고로 jabber테크놀로지라는 회사는 ( 구: www.jabber.com ) Cisco 회사에서 M&A로 합병하였습니다.

2. XMPP의 특징(Extensible Messaging and Presence Protocol )
-----------------------------------------------------------
XMPP 는 jabber 라는 IM의 프로토콜로부터 시작하여 확장되었지만 네트웍 관련한 훌륭한 표준 Multi 플랫폼 프레임워크로써
IM뿐만 아니라 온라임게임은 물론 거의 모든 네트웍 관련 프로그램에 사용할 수 있다( http://www.ibm.com/developerworks/kr/library/x-xmppintro/).

XMPP 의 가장 큰 특징은 Extensible Markup Language (XML) 언어로 서버와 Client간에 통신한다는 것이다.

XML 언어가 무엇인가?

html 로 대표되는 www 홈페이지언어는 편리하지만 www를 제외한 다른 여러 다양한 응용에는 부족하고 한계가 있었다.

그래서 좀 의식있는 사람들이 모여서 머리를 굴려 만든 언어가 XML 인데

XML을 한마디로 표현한다면 Tag(태그)언어라 할수 있다. 즉, 모든 정보를 < > 이 태그로 표시하는 언어이다.
html 도 태그 <> 로 표시하는 언어의 일종이므로 XML언어의 일종이라고 할 수 있다.
즉, xml 언어는 html을 포함하는 확장성이 아주 좋은 언어인 것이다.

3. 시스템(플랫폼)별 추천할만한 XMPP 의 프레임워크는 ( 오픈 source 위주로..) ??
-----------------------------------------------------------------------------

3.1 서버쪽 http://xmpp.org/xmpp-software/servers/
---------

3.1.1 Linux 와 C 기반

위에서 언급했듯이 원조인 jabberd14 가 있다.

3.1.2 Java 기반

jive 소프트웨어 회사( http://www.jivesoftware.com/ )에서 open source 로 공개한
openfire ( http://www.igniterealtime.org/projects/openfire/index.jsp )가 있다.

3.2 Clinet 쪽 http://xmpp.org/xmpp-software/clients/
------------

3.2.1 PC 기반

PC용으로는 OS에 제약을 덜받는 Multiplatform 용 XMPP Client로는

jive 소프트웨어 회사( http://www.jivesoftware.com/ )에서 open source 로 공개한

spark ( http://www.igniterealtime.org/projects/spark/index.jsp ) 가 있다.

3.2.2 Android 기반
jive 소프트웨어 회사( http://www.jivesoftware.com/ )에서 open source 로 공개한 spark 에 사용된
XMPP framework 을 따로 Library 화 한것이 smack API ( http://www.igniterealtime.org/projects/smack/index.jsp ) 이다.
이 smack 을 이용하여 안드로이드 XMPP 메신저를 만든것이 yaxim ( http://github.com/pfleidi/yaxim) 이다.


3.2.3 Apple Iphone/IPad 기반

공개된 괜챦은 Apple 용 xmpp Framework은 http://code.google.com/p/xmppframework/ 이 있다.
이것은 네트웍부분은 CFNetwork Framework ( http://developer.apple.com/mac/library/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html )
를 사용하고 XML 엔진은 kissxml ( http://code.google.com/p/kissxml/) 을 사용한 것 같다.

xmppframework 를 이용하여 XMPP 메신저를 만들어 상용으로 AppleStore 에 등록한 회사가 있다.

crosstalk라는 제품이다(아이폰용 상용 jabber client : http://www.portablek.com/home/mobile-apps/crosstalk : xmppframework 를 이용한 상용제품).

------------------ 끝 -----------------------------------------

Posted by hoonihoon