XMPP란?
RFC3920, RFC3921 등 IETF(Internet Engineering Task Force)에서 제정한 국제 표준 프로토콜로 인스턴트메신저(Instant Messenger)를 위한 프로토콜로 잘 알려져 있다. 국내에서는 몇년 전 구글(google.com)이 XMPP를 채택, googletalk 이라는 인스턴트메신저 서비스를 시작하면서 널리 알려지는 계기가 되었다. XMPP 규격은 2004년 봄에 표준으로 제정되었지만, 사실은 Jabber라는 이름으로 1998년부터 연구가 시작되었고 이 연구의 결과가 표준화라는 결과를 맞이하게 된 것이다.
어떤 규격인가?
이 표준은 인터넷상의 두 지점간의 통신 규격에 관한 것이다. 두 지점은 이메일주소와 같은 방식으로 표현되며 이들 지점간 확장가능한 메시지(message) 그리고 프레즌스(presence)를 거의 실시간(near-realtime)으로 전달해주는 규격이다. 이 규격에 의하면 인터넷상의 지점은 DNS(Domain Name Service) 서비스에 의해 명명될 수 있는 위치들간의 통신으로 예를 들어 yourhost.com 이라는 주소도 하나의 지점이며 yourid@yourhost.com 또한 하나의 주소이다. 결국 DNS에 의해 표현될 수 있는 주소 공간은 새로이 등록되는 도메인 이름에 의해서 계속해서 증가하므로 이론상 무한대의 사용자가 서로 통신이 가능하게 되는 규격인 셈이다.
표준IM을 위한 XMPP?
알려진 대로 XMPP 프로토콜은 표준 인스턴트메신저 서비스를 위한 훌륭한 프레임워크를 제공해준다. 이미 전세계 수 많은 사람들이 XMPP 사용자가 되어 있으며 지금도 계속해서 증가하고 있다. 이것은 XMPP 소프트웨어를 만드는 회사와 단체가 증가하는 것을 보면 알 수 있다. 그러나 인스탄트 메신저 서비스만 가능한 것은 아니다. XMPP라는 규격이 Message와 동시에 Presence라는 것을 정의하고 있기 때문에 그 사용처는 매우 대단하다.
강력한 Presence 기반 응용이 가능
프레즌스(Presence)는 XMPP의 가장 중요한 요소중의 하나이다. DNS에 의해 확장되는 거대한 XMPP 공간에서 각 지점의 상태들을 프레즌스라고 하고 각 지점의 상태가 변경될 경우 이 상태 변경은 즉각 이에 관심있어 하는 지점으로 브로드캐스팅된다. 다른 지점의 상태변경에 관심있는 지점이 되기 위해서는 프레즌스를 구독(subscribe)하는 과정이 필요하다.
XMPP IM
현재 AOL, MSN, Yahoo 메신저등 다양한 메신저들이 개인간 커뮤니티 도구로 널리 사용되고 있으며, 이를 기반한 다양한 차세대 킬러 어플리케이션 개발에 많은 노력을 하고 있다. 이러한 가운데 대형 포탈 또는 통신업체 등의 기업 메이저시장에서도 업체간 메신저 경쟁도 날로 치열해지고 있다. 불과 몇 년 전만 해도 메신저는 젊은 세대간의 간단한 쪽지 수준의 메시지를 전달하는 도구에 불과했었다.
그러나 지금은 메신저가 개인적인 커뮤니티뿐만 아니라 기업내의 협업을 위한 매우 유용한 도구로 활발히 이용되고 있다. 최근 메신저는 이미 수백만 명의 사용자를 가질만큼 규모가 급성장하고 있다. MSN 뿐만 아니라 AOL, Yahoo, ICQ(AOL과 통합되었음) 등 다양한 메신저들이 이미 인터넷 시장에서 ‘작은 포탈’로 주목받고 있다. 이들 메신저는 단순한 메시지 전송 기능과 파일 전송 기능을 넘어서서 교육, 증권, 은행, 음악, 복권 등 다양한 서비스를 함께 제공하고 있어 사용자들에게 인터넷만큼 편리하게 이용된다.
그러나 서로 다른 메신저를 사용하는 사용자간의 대화나 파일 전송은 불가능하다는 단점이 있다. 그 뿐만 아니라 친구 등록에는 한계가 있어서 두 개 이상의 메신저 계정을 가지고 있는 사용자는 동시에 여러 계정을 이용할 수 없다. 초기부터 많은 사업자들이 주요 서비스의 부가적인 사업정도로 인식하여 출발한 결과로 이 기종 메신저간에 커뮤니티를 전혀 고려하지 않았다. 그 결과, 서로 다른 메신저를 사용하는 사용자간에는 불편을 감수하여 여러 종류의 메신저를 설치해서 사용하거나 또는 가장 선호하는 메신저를 제외한 다른 메신저를 포기하는 경우가 대부분이다.
이러한 고객의 불편함을 해소하기 위해 마이크로소프트(MS), 야후, 아메리카온라인(AOL)등이 비즈니스용 통합 메신저 제품을 공동으로 개발하기로 합의하였다. 이를 바라보는 여러 전문가들은 비즈니스의 영역을 확보하기 위한 이 같은 행보를 꼬집어 비판하면서, 이 세 기업이 새로운 메신저 제품을 위해 얼마나 효율적으로 개발협업을 이끌어낼 지 의문을 제기하였다.
다른 한편으로는 여러 업체들이 각기 다른 메시징 소프트웨어를 제작해서 보급함에 따라 메시징 소프트웨어 간의 상호 호환성 문제에 대하여 인터넷기술표준단체 IETF(Internet Engineering Task Force)에서는 메시징 서비스 간의 호환성 문제 해결을 위한 표준 제정을 위해 XMPP(eXtensible Messaging and Presence Protocol) 워킹그룹을 결성하고 표준화를 추진하고 있다. 여기서, XMPP는 XML 스트리밍 기반 확장형 실시간 메시징 기술이다. XMPP는 공개형 프로토콜인 JABBER(http://www.jabber.org) 인스턴트 메신저에 근간을 두고 있으며 HP, SUN 등의 솔루션회사와 AT&T, Orange, France telecom, BellSouth 등의 통신회사가 채택하였다.
또한, IETF가 사람들 또는 기계간의 상태와 컨텍스트 정보를 활용하여 실시간 대화형 기술을 제시하고 있는 XMPP-core 및 XMPP-IM을 제안표준으로 채택함에 따라 XMPP 보안, XMPP-연동 등도 표준으로 채택되리라 예상되며, 향후 XMPP가 세계적 표준으로 자리 잡는데 다가섰다고 평가되고 있다.
IETF의 인스턴트 메신저 표준은 이전에 이메일이나 웹이 SMTP, HTTP로 인터넷 표준화되어 널리 사용되었듯이 향후 실시간 대화형 서비스 확산에 큰 영향을 미칠 것으로 평가되고 있다. IETF에 의해 XMPP영역의 표준으로 채택된 Jabber는 인터넷에 있는 두 지점간의 메시지, 온라인 상태정보, 및 기타 구조적(structured)정보를 실시간으로 교환하기 위한 스트리밍 XML 프로토콜 및 기술을 의미한다.
Jabber 서비스를 이용하기 위해서는 공개된 Jabber 클라이언트를 다운받고 오픈된 공개 서버에 회원가입을 하거나 직접 자신의 서버에 Jabber 대몬을 설치하고 사용할 수 있는데, 일단 가입이 이루어지면 JID라는 식별자를 부여받게 된다. JID는 이메일과 같은 체계로 되어 있다. 예를 들어 씽크테크(thinktek.co.kr)가 재버서버를 설치하고 jklee라는 사용자를 가입시켰다면 이 사용자의 JID는 jklee@thinktek.co.kr이 된다. 이는 공교롭게도 이메일 주소와 동일하다. 즉, JID는 전세계적으로 유일한 ID가 된다.
Jabber의 최대 특징은 JID만 알면 다른 어떤 Jabber 서버의 사용자와도 대화가 가능하다는 점이다. 즉, david@jabber.org 라는 JID를 가진 사용자에게 이메일을 쓰듯 메시지를 날리면 실시간 대화가 가능하다. 이 점이 다른 메신저 사업자들과 비교했을 때 가장 특징적이며 획기적인 것이다.
향후 재버서버가 메일서버만큼 널리 사용되고 많은 사용자들이 JID를 보유하게 될 때에는 Jabber를 바탕으로 하는 수 많은 응용프로그램 수요가 발생하게 될 것으로 예상된다. 사람들이 일단 JID를 이용하여 상대방과 대화를 하기 시작한다면 그 이후는 대화상태 찾기, 게임, 온라인 거래, 계약 등등 수 많은 일들을 Jabber기반의 네트워크에서 처리할 수 있게 된다.
Jabber 프로토콜은 확장성을 고려하여 초기부터 XML이라는 구조적 기술언어를 이용하여 프로토콜이 설계되어 있다. XML의 특성상 풍부한 확장성을 제공하기에 Jabber응용프로그램을 개발하는 개발자는 자신이 새로 설계한 구조적인 정보를 Jabber 네트워크를 통하여 쉽게 전송할 수 있다. 결과적으로 XML에 의해 어떠한 구조적인 정보를 정의하느냐가 Jabber 어플리케이션 개발의 핵심이 되는 것이다.