본문 바로가기

Development/Background Knowledge

XMPP 이해하기



1. XMPP 란?

  - The Extensible Messaging and Presence Protocol의 약자로 말 그대로 확장가능한 메시징과 상태를 위한 규격이다. XML을 기반으로하는 메시징 지향 미들웨어용 통신 프로토콜로 보면된다. 간단하게 대입하면 구글톡에서의 유저의 상태(온라인/자리비움/오프라인)와 유저간의 양방향 채팅을 할때 통신에 사용되는 것으로 이해 하면 된다. 원래는 Jabber라는 이름으로 개발되어 오다가 XMPP로 국제 인터넷 표준화 기구에서 규정하였다.

 

2. XMPP Protocol

 - 넷상의 두 지점간의 통신 규격을 정의한 것으로 user@server.com/mobile 과 같은 이메일 형식으로 각각의 지점이 표현되고 양 지점간의 메시징, 상태값들이 실시간으로 전달이 가능하게 하는 규격이다. 이론상으로는 위와 같은 지점의 표현은 서버별로 무한대로 생성이 가능한 규격으로 설명이 가능하다.


3. IM?만을 위한 Protocol

 - 인스턴스 메시징을 특화된 서비스 처럼 보이지만 Presence값도 구독이라는 과정을 통하여 나를 구독하는 모든 지점을 향하여 브로드캐스팅에 사용되면 큰 활용면을 가지고 있는 셈이다.


4. XMPP 아키텍텍쳐

 - 주로 3가지로 설명된다. Server, Client, Gateway


(출처) http://www.xmpp.co.kr/?q=node/72


 a. Server 

  . DNS에 의한 호스트이름 또는 IP로 나타내진다.

  . XMPP Service를 제공하는 Server Software List (http://xmpp.org/xmpp-software/servers/)

 b. Client

  . 서버와 호스트이름과 ID를 이용한 계정을 가진다.

  . 사용가능한 무료 Client (http://xmpp.org/xmpp-software/clients/)

 c. Gateway

  . Client 와 같이 특정 서버에 연결되고 Gateway를 통하여 다른 네트워크 또는 다른 프로토콜의 IM Protocal과 연결할수 있게 한다.


5. 더 읽어 볼 거리

 - jQuery-XMPP-plugin https://github.com/maxpowel/jQuery-XMPP-plugin

 - node-xmpp https://github.com/node-xmpp/node-xmpp


[참고링크]

http://xmpp.org/about-xmpp/

http://ko.wikipedia.org/wiki/XMPP

http://www.xmpp.co.kr/?q=node/72