맨위로가기

XMPP

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

XMPP(Extensible Messaging and Presence Protocol)는 분산형 구조를 가진 개방형 표준 프로토콜로, 인스턴트 메시징(IM)과 상태 정보를 교환하기 위해 설계되었다. 전자 메일과 유사한 구조로 중앙 서버 없이 누구나 서버를 운영할 수 있으며, 보안, 유연성, 확장성을 제공한다. XMPP는 1999년부터 사용되었으며, IETF에 의해 표준화되었다. HTTP를 통해 사용 가능하며, 다양한 확장 기능을 통해 IM 외에도 그룹 채팅, 네트워크 관리, 파일 공유 등 다양한 분야에 활용된다. XMPP는 서비스 품질(QoS) 직접 지원, XML 기반의 네트워크 오버헤드, 인-밴드 바이너리 데이터 전송 제한 등의 한계를 가지고 있다. XMPP는 P2P 세션, 다중 사용자 채팅, 보안 및 암호화, 서비스 검색, 다른 프로토콜과의 연결을 지원하며, ejabberd, Prosody 등의 서버 소프트웨어와 Conversations, Dino, Gajim 등의 클라이언트 소프트웨어를 포함하여 다양한 소프트웨어로 구현된다. XMPP는 다양한 공개 및 비공개 배포를 통해 사용되며, 구글 토크, 페이스북 채팅 등에서도 활용되었으며, 사물 인터넷(IoT) 구현에도 사용된다.

더 읽어볼만한 페이지

  • 채팅 - 윈도우 라이브 메신저
    윈도우 라이브 메신저는 마이크로소프트가 개발한 인스턴트 메시징 클라이언트로, 2005년 MSN 메신저에서 브랜드 변경 후 출시되어 오프라인 메시징, 테마 변경 등의 기능을 제공하고 여러 플랫폼을 지원했으나 2013년 서비스가 종료되었으며 현재는 일부 기능만 이용 가능하다.
  • 채팅 - 구글 웨이브
    구글 웨이브는 이메일, 인스턴트 메시징, 위키 등의 기능을 통합하여 실시간 협업을 지원했던 구글의 인터넷 통신 플랫폼이었으나, 개발 중단 이후 아파치 웨이브로 변경되었고, 2018년 종료되었다.
  • 개방형 표준 - 오픈 핸드셋 얼라이언스
    오픈 핸드셋 얼라이언스(OHA)는 구글을 중심으로 2007년 11월에 결성된 컨소시엄으로, 34개의 기업이 참여하여 안드로이드 모바일 플랫폼을 개발 및 발전시키고 개방형 표준 설계를 통해 혁신적인 모바일 기기 및 서비스 개발을 목표로 한다.
  • 개방형 표준 - 디지털 비디오 방송
    디지털 비디오 방송(DVB)은 유럽에서 개발된 디지털 텔레비전 방송 표준으로, 위성, 케이블, 지상파 등 다양한 전송 방식을 지원하며 전 세계적으로 아날로그 방송 종료와 디지털 방송 전환을 주도하고 있고, 최근에는 인터넷 프로토콜 기반의 DVB-I 서비스로 발전하고 있다.
  • XML 기반 표준 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • XML 기반 표준 - 아톰 (표준)
    Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
XMPP
프로토콜 개요
이름확장 가능한 메시지 및 프레즌스 프로토콜
영어 이름Extensible Messaging and Presence Protocol
약자XMPP
용도인스턴트 메시지
관련 RFCRFC 6120 (코어)
RFC 6121 (IM & 프레즌스)
RFC 7622 (주소 형식)
RFC 3922 (CPIM)
RFC 3923 (암호화)
OSI 모델 계층응용 계층
포트TCP 5222, 5269, 8010
웹사이트XMPP 공식 웹사이트
XMPP 로고
기술 정보
목적메시지 지향 미들웨어 통신 프로토콜

2. 프로토콜 특징

XMPP 프로토콜의 주요 특징은 다음과 같다.


  • 개방형 표준: 국제 인터넷 표준화 기구(IETF)에 의해 XMPP라는 이름으로 규정되었다. (최신 규격은 RFC 6120 및 RFC 6121) 이 규격을 지원하는 데 로열티가 들지 않으며, 개발은 단일 업체에 한정되지 않는다.
  • 역사: 1999년부터 사용되어 왔으며, 클라이언트, 서버, 구성 요소, 코드 라이브러리 등 다양한 구현이 존재한다.
  • 보안: 공개 XMPP 네트워크와 분리 가능하며, SASL, TLS을 통해 강력한 보안을 제공한다.
  • 유연성: XMPP 표준 재단에서 관리하는 일반 확장 기능 외에도, 사용자 정의 기능을 XMPP에 추가할 수 있다. 그룹 채팅, 네트워크 관리, 콘텐츠 신디케이션, 협업 도구, 파일 공유, 게임, 원격 시스템 제어 및 감시, 지리 위치, 미들웨어, 클라우드 컴퓨팅, VoIP, 인증 서비스 등 다양한 응용 프로그램이 존재한다.
  • 분산화: 중앙 서버가 없으며, 누구나 자신의 XMPP 서버를 구축할 수 있다.


XMPP는 클라우드 컴퓨팅에 적합하며, 가상 머신, 네트워크 및 방화벽이 서비스 검색 및 현재 상태 기반 솔루션에 장애가 될 수 있는 환경에서 유용하다.

현재 XMPP는 다음과 같은 한계점을 가진다.

  • 서비스 품질(QoS)을 직접 지원하지 않으며, 메시지 전달 보장은 상위 계층에서 구현해야 한다.
  • XML 기반이므로 순수 바이너리 솔루션에 비해 네트워크 오버헤드가 크다.
  • 인-밴드 바이너리 데이터 전송은 Base64로 인코딩해야 하므로 제한적이다.[68]

2. 1. 분산화

XMPP 네트워크는 중앙 서버 없이 누구나 자신의 서버를 구축하고 운영할 수 있는 분산형 구조를 가진다. 이는 단순 메일 전송 프로토콜(SMTP)과 유사하며, AIM (소프트웨어), WLM, 왓츠앱, 텔레그램과 같은 중앙 권한 서버가 존재하는 메시징 서비스와는 다르다.[1]

많은 사용자가 `jabber.org`에서 운영되는 공개 XMPP 서버를 사용하지만, 누구나 자신의 도메인에서 자체 XMPP 서버를 운영할 수 있다.[1] 이러한 분산형 구조는 특정 서비스 제공자에 대한 의존성을 줄이고 네트워크의 안정성을 높인다.

XMPP의 표준 TCP 포트는 5222이다. 네트워크상의 모든 사용자는 고유한 Jabber ID (JID)를 가지며, 이는 이메일 주소와 같이 사용자 이름, 서버의 도메인 이름, @로 구성된다. (예: username@example.com) 한 사용자는 여러 위치에서 로그인할 수 있으며, 각 클라이언트는 리소스 문자열(예: home, work, mobile)과 우선순위를 지정하여 구분할 수 있다.[1]

2. 2. 주소 지정

표준 JID


네트워크의 모든 사용자는 '''JID'''[5] (역사적인 이유로 XMPP 주소는 종종 'Jabber ID'라고 불림)라고 하는 고유한 XMPP 주소를 가지고 있다. JID는 이메일 주소와 유사하게 구성되어 있으며, 앳 기호(@)로 구분된 사용자 이름과 해당 사용자가 거주하는 서버의 도메인 이름(또는 IP 주소[6])로 구성된다. 예를 들어 "alice@example.com"에서 alice는 사용자 이름이고 example.com은 사용자가 등록된 서버이다.

사용자는 여러 위치에서 로그인할 수 있으므로, '''자원'''을 지정할 수 있다. 자원은 사용자에 속한 특정 클라이언트(예: 집, 직장 또는 모바일)를 식별한다. 슬래시(/)와 자원 이름을 차례로 추가하여 JID에 포함할 수 있다. 예를 들어, 사용자의 모바일 계정의 전체 JID는 username@example.com/mobile일 수 있다.

각 자원은 '''우선 순위'''라고 하는 숫자 값을 가질 수 있다. username@example.com으로 단순히 전송된 메시지는 가장 높은 우선 순위를 가진 클라이언트로 전송되지만, username@example.com/mobile로 전송된 메시지는 ''오직'' 모바일 클라이언트로만 전송된다. 가장 높은 우선 순위는 가장 큰 숫자 값을 가진 것이다.

사용자 이름 부분이 없는 JID도 유효하며, 시스템 메시지 및 서버의 특수 기능 제어에 사용될 수 있다. 이러한 JID에도 자원은 선택 사항으로 남아 있다.

JID와 같은 논리적 엔드포인트 식별자를 기반으로 메시지를 라우팅하는 수단은, 명시적인 IP 주소 대신 XMPP를 다양한 기반 네트워크 위에 오버레이 네트워크 구현으로 사용할 수 있는 기회를 제공한다.[7]

2. 3. HTTP를 통한 XMPP

XMPP의 원래 "네이티브" 전송 프로토콜은 장기간 유지되는 TCP 연결을 통해 개방형 XML 스트림을 사용하는 전송 제어 프로토콜(TCP)이다. TCP 전송 방식의 대안으로 XMPP 커뮤니티는 웹 클라이언트와 제한된 방화벽(Firewall) 뒤에 있는 사용자를 위해 하이퍼텍스트 전송 프로토콜(HTTP) 전송 방식도 개발했다. 원래 사양에서 XMPP는 HTTP를 ''폴링''[8] 및 ''바인딩''의 두 가지 방식으로 사용할 수 있었다. 현재 사용되지 않는 폴링 방식은 기본적으로 서버 측 데이터베이스에 저장된 메시지를 XMPP 클라이언트가 HTTP 'GET' 및 'POST' 요청을 통해 정기적으로 가져오고 게시하는 것을 의미한다. BOSH(양방향 스트림 오버 동기식 HTTP)[9]를 사용하여 구현된 바인딩 방식은 서버가 메시지를 보내자마자 클라이언트에 푸시할 수 있도록 한다. 이 푸시 방식의 알림은 많은 폴링이 새로운 데이터를 반환하지 않는 폴링보다 효율적이다.

클라이언트가 HTTP를 사용하기 때문에 대부분의 방화벽은 클라이언트가 아무런 방해 없이 메시지를 가져오고 게시할 수 있도록 한다. 따라서 XMPP에서 사용하는 TCP 포트가 차단된 시나리오에서는 서버가 일반 HTTP 포트에서 수신 대기할 수 있으며 트래픽은 문제없이 통과해야 한다. 다양한 웹사이트에서 사용자가 브라우저를 통해 XMPP에 로그인할 수 있도록 한다. 또한 표준 http(포트 80) 및 https(포트 443) 포트에서 수신 대기하는 공개 서버가 있어 대부분의 방화벽 뒤에서 연결할 수 있다. 그러나 BOSH에 대해 IANA에 등록된 포트는 실제 80이 아닌 5280이다.

2. 4. 확장성

XMPP 표준 재단(XSF)은 개방형 XMPP 확장 기능, 즉 ''XEP''를 개발하는 데 적극적으로 참여하고 있다.[10] 모든 개인, 소프트웨어 프로젝트 또는 조직에서도 확장을 정의할 수 있지만, 상호 운용성을 유지하기 위해 일반적인 확장은 XSF에서 관리한다. IM을 넘어선 XMPP 응용 분야에는 채팅방, 네트워크 관리, 콘텐츠 신디케이션, 협업 도구, 파일 공유, 게임, 원격 시스템 제어 및 모니터링, 지리적 위치 정보, 미들웨어클라우드 컴퓨팅, VoIP 및 ID 서비스가 포함된다.

XMPP는 로컬 네트워크 도메인에서 검색을 지원하는 기능을 바탕으로 클라우드 컴퓨팅에 적합하다. 가상 머신, 네트워크 및 방화벽이 서비스 검색 및 현재 상태 기반 솔루션에 장애가 될 수 있는 환경에서 특히 유용하다. 클라우드 컴퓨팅 및 스토리지 시스템은 상태 중계를 위한 시스템 간 메시징뿐만 아니라 스토리지 또는 가상 머신과 같은 더 큰 객체의 마이그레이션 또는 배포를 포함하여 여러 수준에서 다양한 형태의 통신에 의존한다. 인증 및 전송 중인 데이터 보호와 함께 XMPP는 다양한 수준에서 적용될 수 있으며, 확장 가능한 미들웨어 또는 메시지 지향 미들웨어(MOM) 프로토콜로 이상적일 수 있다.

2. 5. 현재의 한계

현재 XMPP는 서비스 품질(QoS)을 직접 지원하지 않으며, 메시지 전달 보장은 상위 계층에서 구현해야 한다. 이 문제를 해결하기 위해 두 가지 XEP가 제안되었다. 현재 초안 표준인 XEP-0184 메시지 전달 확인과 실험적인 것으로 간주되는 XEP-0333 채팅 마커이다.

XML은 텍스트 기반이므로 일반 XMPP는 순수 바이너리 솔루션에 비해 네트워크 오버헤드가 더 크다. 이 문제는 실험적인 XEP-0322: 효율적인 XML 교환(EXI) 형식으로 해결되고 있었는데, 여기서 XML은 효율적인 바이너리 방식으로, 특히 스키마 인식 모드에서 직렬화된다. 이 XEP는 현재 보류되었다.

인-밴드 바이너리 데이터 전송은 제한적이다. 바이너리 데이터는 인-밴드로 전송되기 전에 먼저 Base64로 인코딩되어야 한다.[68] 따라서 상당한 양의 바이너리 데이터(예: 파일 전송)는 조정하기 위해 인-밴드 메시지를 사용하여 아웃오브밴드로 전송하는 것이 가장 좋다. 이에 대한 가장 좋은 예는 징글(Jingle) XMPP 확장 프로토콜인 XEP-0166이다.[69]

3. 기능

XMPP는 다음과 같은 다양한 기능을 제공한다.


  • P2P 세션: 징글 확장을 통해 다양한 네트워크에서 기계 대 기계 또는 P2P 통신을 지원한다. IP 텔레포니 (VoIP)에 주로 사용된다.
  • 다중 사용자 채팅: XEP-0045 사양을 사용하여 여러 사용자와의 회의, 즉 다중 사용자 채팅(MUC)을 지원한다. 이는 인터넷 릴레이 챗(IRC)과 유사하다.
  • 보안 및 암호화: XMPP 서버는 공개 XMPP 네트워크와 분리될 수 있으며, SASL, TLS 같은 강력한 보안 기능이 기본 규격에 포함되어 있다.[4] OTR 확장을 통해 메시지와 데이터를 암호화할 수 있다. 또한, OMEMO (XEP-0384) 확장으로 다중 종단간 암호화를 제공하여 사용자 간 종단간 암호화를 지원한다. 이는 클라이언트에서 데이터를 암호화하고 대상 클라이언트에서 해독하여 보안을 강화하며, 서버 운영자는 데이터를 해독할 수 없다.[5] Gajim 같은 소프트웨어를 사용하여 OpenPGP로 메시지를 암호화할 수도 있다.[5]

Conversations (안드로이드용 XMPP 클라이언트)의 채팅에서 파일 전송 옵션

  • 서비스 검색: 서비스 디스커버리 프로토콜에는 제로 설정 네트워킹, 서비스 위치 프로토콜 등 다양한 종류가 있지만, XMPP는 XEP-0030 DISCO를 통해 로컬 또는 네트워크에 존재하는 서비스를 검색하고, 프레즌스 정보를 통해 서비스 가용성을 확인할 수 있다.[36]
  • 다른 프로토콜과의 연결: XMPP는 전송(Transport) 또는 게이트웨이(Gateway) 기능을 통해 다른 프로토콜과 연동할 수 있다. ICQ, AIM, 야후 메신저 같은 인스턴트 메시징 프로토콜, SMS, IRC, 이메일 등과 연결 가능하다.[11][12][13] 다중 프로토콜 클라이언트와 달리, XMPP는 서버 수준에서 연결을 제공하며, XMPP 서버와 함께 실행되는 특수 게이트웨이 서비스를 통해 통신한다. 사용자는 게이트웨이에 정보를 제공하여 등록하고, 해당 네트워크 사용자와 XMPP 사용자인 것처럼 통신할 수 있다. XMPP 지원 클라이언트는 추가 코드 없이 게이트웨이가 있는 네트워크에 접근할 수 있지만, 이는 클라이언트 프록시 모델로서 프로토콜의 서비스 약관을 위반할 수 있으며, 개인 정보 및 보안 문제가 발생할 수 있다. 서버 간 게이트웨이를 사용하면 비 XMPP 서버 배포가 XMPP의 도메인 간 페더레이션 기능을 통해 기본 XMPP 서버에 연결할 수 있다.

3. 1. P2P 세션

징글 확장 기능을 사용하여 XMPP는 다양한 네트워크에서 기계 대 기계 또는 P2P 통신을 지원하는 개방형 수단을 제공할 수 있다. 이 기능은 주로 IP 텔레포니 (VoIP)에 사용된다.

3. 2. 다중 사용자 채팅

XMPP는 다중 사용자 채팅(MUC) (XEP-0045) 사양을 사용하여 여러 사용자와의 회의를 지원한다. 일반 사용자 관점에서 볼 때, 이는 인터넷 릴레이 챗(IRC)과 유사하다.

3. 3. 보안 및 암호화

XMPP 서버는 공개 XMPP 네트워크와 분리될 수 있으며, 강력한 보안(SASL, TLS)이 코어 XMPP 규격에 추가되어 있다.[4] OTR은 XMPP의 확장으로, 메시지와 데이터의 암호화를 가능하게 한다. 이후 더 나은 확장인 다중 종단간 암호화(OMEMO, XEP-0384)로 대체되어 사용자 간 종단간 암호화를 제공한다. 이는 소스 클라이언트에서 모든 데이터를 암호화하고 대상 클라이언트에서 다시 해독함으로써 더 높은 수준의 보안을 제공하며, 서버 운영자는 전달하는 데이터를 해독할 수 없다.[5]

메시지는 예를 들어 소프트웨어 Gajim을 사용하여 OpenPGP로 암호화할 수도 있다.[5]

3. 4. 서비스 검색

서비스 디스커버리 프로토콜에는 제로 설정 네트워킹, 서비스 위치 프로토콜 등 다양한 종류가 있지만, XMPP는 XEP-0030 DISCO를 통해 로컬 또는 네트워크 전체에 존재하는 서비스를 검색하고 이러한 서비스의 가용성(프레즌스 정보를 통해)을 확인할 수 있는 견고한 기반을 제공한다.[36]

3. 5. 다른 프로토콜과의 연결

XMPP는 전송(Transport) 또는 게이트웨이(Gateway) 기능을 통해 다른 프로토콜과 연동할 수 있다. 이러한 기능을 이용하면 ICQ, AIM, 야후 메신저와 같은 인스턴트 메시징 프로토콜뿐만 아니라, SMS, IRC, 이메일과 같은 프로토콜과도 연결할 수 있다.[11][12][13]

다중 프로토콜 클라이언트와 달리, XMPP는 서버 수준에서 이러한 연결을 제공한다. 이는 XMPP 서버와 함께 실행되는 특수 게이트웨이 서비스를 통해 통신함으로써 구현된다. 사용자는 게이트웨이에 필요한 정보를 제공하여 등록하고, 해당 네트워크의 사용자와 XMPP 사용자인 것처럼 통신할 수 있다.

XMPP를 지원하는 클라이언트는 추가 코드 없이 게이트웨이가 있는 네트워크에 접근할 수 있다. 다만, 이 방식은 클라이언트 프록시 모델로서, 사용된 프로토콜의 서비스 약관을 위반할 수 있으며, 사용자가 IM 사용자 이름과 비밀번호를 제3자 사이트에 전송해야 하므로 개인 정보 보호 및 보안 문제가 발생할 수 있다.

서버 간 게이트웨이를 사용하면 비 XMPP 서버 배포가 XMPP의 도메인 간 페더레이션 기능을 통해 기본 XMPP 서버에 연결할 수 있다.

4. 소프트웨어

XMPP는 다양한 소프트웨어 라이선스에 따라 제공되는 많은 클라이언트, 서버, 코드 라이브러리를 통해 구현된다.[14]

4. 1. 서버

ejabberd와 Prosody 등 다양한 XMPP 서버 소프트웨어가 존재한다.

4. 2. 클라이언트



다양한 최신 및 레거시 플랫폼에서 그래픽 기반 클라이언트와 명령줄 기반 클라이언트를 포함한 다수의 XMPP 클라이언트 소프트웨어가 존재한다. XMPP 웹사이트에 따르면 가장 인기 있는 소프트웨어는 Conversations와 Quicksy(안드로이드), Dino(BSD, 윈도우, 유닉스, 리눅스), Converse.js (웹 브라우저, 리눅스, 윈도우, macOS),[15] Gajim(윈도우, 리눅스),[15] Monal(macOS, iOS), Swift.IM(macOS, Windows, Linux)가 있다. 최근 Monal은 iOS용 Quicksy 릴리스로 포크되었다.

기타 클라이언트로는 Bombus, ChatSecure, Coccinella, Miranda NG,[15] Pidgin, Psi,[15] Tkabber, Trillian, Xabber가 있다.

5. 배포 및 활용

LiveJournal의 "LJ Talk",[16] Nimbuzz, HipChat 등 여러 대규모 공개 IM 서비스가 XMPP를 기본으로 사용하거나 사용했다. DreamHost와 같은 다양한 호스팅 서비스는 호스팅 고객이 웹 및 이메일 서비스와 함께 XMPP 서비스를 선택할 수 있도록 한다. 시스코 Webex Connect, Chrome.pl, Flosoft.biz, i-pobox.net 및 hosted.im을 포함하여 도메인 소유자가 직접 자체 XMPP 서버를 실행할 필요가 없도록 클라우드 형태의 특수 XMPP 호스팅 서비스도 있다.

XMPP는 수요 반응 애플리케이션, 메시지 지향 미들웨어와 같은 비 IM 서비스 배포에도 사용되며, 많은 스마트폰 클라이언트에서 문자 메시지를 제공하기 위해 SMS를 대체하기도 한다.

5. 1. 공개 및 비공개 배포

전 세계적으로 수천 개의 XMPP 서버가 있으며, 상업적 의도 없이 개인이나 조직이 운영하는 비공개 서버뿐만 아니라 많은 공개 서버도 있다. 많은 웹사이트에서 사용자가 등록할 수 있는 공개 XMPP 서버 목록을 보여준다(예: XMPP.net 웹사이트).[16]

LiveJournal의 "LJ Talk", Nimbuzz, HipChat을 포함한 여러 대규모 공개 IM 서비스가 XMPP를 기본적으로 사용하거나 사용했다. DreamHost와 같은 다양한 호스팅 서비스는 호스팅 고객이 보다 전통적인 웹 및 이메일 서비스와 함께 XMPP 서비스를 선택할 수 있도록 한다. 시스코 Webex Connect, Chrome.pl, Flosoft.biz, i-pobox.net 및 hosted.im을 포함하여 도메인 소유자가 직접 자체 XMPP 서버를 실행할 필요가 없도록 클라우드 형태의 특수 XMPP 호스팅 서비스도 있다.

XMPP는 수요 반응 애플리케이션, 메시지 지향 미들웨어와 같은 비 IM 서비스 배포에도 사용되며, 많은 스마트폰 클라이언트에서 문자 메시지를 제공하기 위해 SMS를 대체한다.

5. 2. 비(非) 네이티브 배포

구글은 2005년 8월에 인스턴트 메시징 및 VoIP 기능을 제공하는 구글 토크(Google Talk)를 출시했다. 이 서비스는 인스턴트 메시징에 XMPP를, 음성 및 파일 전송에는 징글(Jingle) 프로토콜을 사용했다.[17][18] 초기에는 서버 간 통신이 지원되지 않았으나, 2006년 1월 17일에 이 기능이 활성화되었다.[19] 이후 구글은 징글을 활용해 화상 통화 기능도 추가했다. 2013년 5월, 구글은 구글 토크에서 서버 간 연동에 대한 XMPP 호환성을 중단한다고 발표했지만, 클라이언트-서버 지원은 유지한다고 밝혔다.[20] 구글 토크는 이후 구글 제품군에서 제거되었다.

2008년 1월, AOL은 AOL 인스턴트 메신저(AIM) 서비스에 실험적으로 XMPP 지원을 도입하여[21] AIM 사용자가 XMPP를 통해 통신할 수 있도록 했다. 그러나 같은 해 3월, 이 서비스는 중단되었다. 2011년 5월 현재, AOL은 제한적인 XMPP 지원을 제공한다.[22]

2010년 2월, 페이스북(Facebook)은 채팅 기능에 XMPP 지원을 추가하여 타사 애플리케이션에서도 페이스북 채팅을 이용할 수 있게 했다.[23] 그러나 일부 기능은 XMPP를 통해 사용할 수 없었으며, 2014년 4월에 이 지원은 중단되었다.[24]

2011년 12월, 마이크로소프트는 Microsoft Messenger 서비스에 XMPP 인터페이스를 출시했으며,[25] 사실상 후속 제품인 스카이프(Skype)에서도 제한적인 XMPP 지원을 제공했다.[26] 아파치 웨이브(Apache Wave) 또한 XMPP를 활용한 예시 중 하나이다.[27]

XMPP는 오리진(Origin),[28] 플레이스테이션(PlayStation)과 같은 게임 관련 플랫폼과, 현재는 중단된 Xfire, Raptr에서 개인 채팅을 위한 사실상의 표준으로 사용되었다.[29] 자체적인 독점 메시징 프로토콜을 사용하는 스팀(Steam)[30]과 Xbox LIVE는 예외이다.

6. 역사 및 발전

제레미 밀러는 1998년에 Jabber 기술 개발을 시작하여 1999년 1월 4일에 `jabberd` 서버의 첫 번째 버전을 출시했다.[31] 초기 Jabber 커뮤니티는 오픈 소스 소프트웨어, 주로 jabberd 서버에 중점을 두었지만, 주요 결과는 XMPP 프로토콜의 개발이었다.

인터넷 기술 특별 위원회(IETF)는 2002년에 핵심 프로토콜을 IETF 인스턴트 메시징 및 상태 기술로 공식화하기 위해 XMPP 작업 그룹을 결성했다. 1999년과 2000년에 개발된 초기 Jabber 통신 프로토콜은 2004년 10월에 RFC 3920 및 RFC 3921에 게시된 XMPP의 기반을 형성했다. IETF의 XMPP 워킹 그룹이 공식화하는 동안 주요 변경 사항은 채널 암호화를 위한 전송 계층 보안(TLS)과 인증을 위한 간단한 인증 및 보안 계층(SASL)의 추가였다. XMPP 워킹 그룹은 또한 RFC 3922 및 RFC 3923 사양을 제작했다. 2011년에 RFC 3920과 RFC 3921는 각각 RFC 6120과 RFC 6121로 대체되었으며, RFC 6122는 XMPP 주소 형식을 지정했다. 2015년에는 RFC 6122가 RFC 7622로 대체되었다.

IETF에서 표준화된 이러한 핵심 프로토콜 외에도 XMPP 표준 재단(XSF)은 오픈 XMPP 확장을 개발하는 데 적극적으로 참여하고 있다. XSF는 'XMPP 확장 프로토콜'(XEP)을 중심으로 표준 프로세스를 통해 XMPP의 확장을 개발하고 게시한다.

XMPP를 기반으로 한 최초의 IM 서비스는 Jabber.org[15]였으며, 1999년부터 지속적으로 운영되었고 무료 계정을 제공했다.[32] 1999년부터 2006년 2월까지 이 서비스는 jabberd를 서버 소프트웨어로 사용했으며, 이후 ejabberd로 이전했다. 2010년 1월에는 Isode Ltd.에서 제작한 상용 소프트웨어 M-Link 서버 소프트웨어로 이전했다.[33]

2008년 9월, 시스코 시스템즈는 상용 제품 Jabber XCP의 제작사인 Jabber, Inc.를 인수했다.[34]

6. 1. 사물 인터넷 (IoT)

XMPP는 도메인 간의 페더레이션, 발행/구독, 인증 및 모바일 엔드포인트에 대한 보안과 같은 기능을 활용하여 사물 인터넷(IoT)을 구현하고 있다. 몇 가지 XMPP 확장 기능이 실험적 구현의 일부로 사용되고 있다. 효율적인 XML 교환(EXI) 형식,[43] 센서 데이터,[44] 프로비저닝,[45] 제어,[46] 집중 장치,[47] 검색[48] 등이 있다.

이러한 노력은 사물 인터넷 전용 XMPP 위키 페이지[49] 및 XMPP IoT 메일링 리스트에[50] 문서화되어 있다.

참조

[1] 웹사이트 Jabber Inc http://www.cisco.com[...] Cisco.com 2012-11-24
[2] 웹사이트 XMPP as MOM - Greater NOrdic MIddleware Symposium (GNOMIS) University of Stockholm 2005-04-18
[3] 간행물 Extensible Messaging and Presence Protocol (XMPP): Core IETF 2011-03
[4] 간행물 Jabber Instant Messaging User Base Surpasses ICQ http://xmpp.org/xsf/[...] XMPP Standards Foundation 2003-09-22
[5] 웹사이트 "XEP-0029: Definition of Jabber Identifiers (JIDs)" https://xmpp.org/ext[...] 2019-11-10
[6] 문서 RFC 6122
[7] 웹사이트 Extensible Messaging and Presence Protocol (XMPP): Core https://xmpp.org/rfc[...] 2023-09-21
[8] 웹사이트 XEP-0025: Jabber HTTP Polling http://xmpp.org/exte[...] Xmpp.org 2012-11-24
[9] 웹사이트 XEP-0124: Bidirectional-streams Over Synchronous HTTP ([BOSH]) http://xmpp.org/exte[...] Xmpp.org 2012-11-24
[10] 웹사이트 Specifications http://xmpp.org/exte[...] XMPP Standards Foundation 2017-01-06
[11] 뉴스 "Lotus Sametime 7.5 Interoperates with AIM, Google Talk" http://www.eweek.com[...] eWeek 2006-12-06
[12] 뉴스 "Lotus ships gateway to integrate IM with AOL, Yahoo, Google" http://www.networkwo[...] Network World 2006-12-06
[13] 간행물 "Unified Communications: Uniting Communication Across Different Networks" https://www.microsof[...] Microsoft Press Release 2009-10-01
[14] 웹사이트 Clients http://xmpp.org/xmpp[...]
[15] 웹사이트 XMPP Software https://xmpp.org/sof[...] 2024-09-19
[16] 웹사이트 Question FAQ #270-What is LJ Talk? http://www.livejourn[...] Livejournal.com 2012-11-24
[17] 웹사이트 Introduction to Jabber/XMPP http://www.dylanleig[...] 2017-10-16
[18] 웹사이트 Whatsapp, Facebook, Erlang and realtime messaging: It all started with ejabberd https://www.process-[...] 2020-09-17
[19] 웹사이트 XMPP Federation http://googletalk.bl[...] 2007-11-30
[20] 웹사이트 How do I allow my internal XMPP client or server to connect to the Talk service? https://support.goog[...]
[21] 웹사이트 AOL adopting XMPP aka Jabber http://florianjensen[...] 2008-01-17
[22] 웹사이트 AOL XMPP Gateway http://www.aim.com/x[...] 2011-05-14
[23] 웹사이트 Facebook Chat Now Available Everywhere http://blog.facebook[...] 2010-02-11
[24] 웹사이트 Chat API (deprecated) https://developers.f[...] 2015-07-05
[25] 웹사이트 Anyone can build a Messenger client—with open standards access via XMPP http://windowsteambl[...] Windowsteamblog.com 2012-11-24
[26] 웹사이트 Skype adds XMPP support, IM interoperability next? — Tech News and Analysis http://gigaom.com/20[...] Gigaom.com 2012-11-24
[27] 웹사이트 Google Wave Federation Protocol http://www.waveproto[...]
[28] 웹사이트 Origin game platform sends login and messages in plain-text https://www.slightfu[...] Slight Future 2016-02-22
[29] 웹사이트 Raptr is dead. No more Gaming Evolved a year after AMD ditch the app https://www.pcgamesn[...] Pcgamesn.com 2020-10-16
[30] 웹사이트 libsteam.c https://github.com/E[...] Github 2016-02-22
[31] 웹사이트 Open Real Time Messaging System http://tech.slashdot[...] Tech.slashdot.org 2012-11-24
[32] 웹사이트 Chatting Up the Chef http://www.linuxjour[...] 2003-03-01
[33] 웹사이트 Jabber.org – XMPP Server Migration http://www.jabber.or[...] 2009-12-14
[34] 웹사이트 Cisco Announces Definitive Agreement to Acquire Jabber http://newsroom.cisc[...] 2010-01-02
[35] 웹사이트 XEP-0004: Data Forms http://xmpp.org/exte[...] 2021-06-08
[36] 웹사이트 XEP-0030: Service Discovery http://xmpp.org/exte[...] 2017-10-03
[37] 웹사이트 XEP-0045: Multi-User Chat http://xmpp.org/exte[...] 2021-03-04
[38] 웹사이트 XEP-0060: Publish-Subscribe http://xmpp.org/exte[...] 2021-09-07
[39] 웹사이트 XEP-0163: Personal Eventing Protocol http://xmpp.org/exte[...] 2018-03-18
[40] 웹사이트 XEP-0071: XHTML-IM http://xmpp.org/exte[...] 2018-03-08
[41] 웹사이트 XEP-0096: SI File Transfer http://xmpp.org/exte[...] 2017-11-29
[42] 웹사이트 XEP-0115: Entity Capabilities http://xmpp.org/exte[...] 2020-05-05
[43] 웹사이트 XEP-0322: Efficient XML Interchange (EXI) Format http://xmpp.org/exte[...] 2018-01-25
[44] 웹사이트 XEP-0323: Internet of Things - Sensor Data http://xmpp.org/exte[...] 2017-05-20
[45] 웹사이트 XEP-0324: Internet of Things - Provisioning http://xmpp.org/exte[...] 2021-03-04
[46] 웹사이트 XEP-0325: Internet of Things - Control http://xmpp.org/exte[...] 2021-03-04
[47] 웹사이트 XEP-0326: Internet of Things - Concentrators http://xmpp.org/exte[...] 2017-05-20
[48] 웹사이트 XEP-0347: Internet of Things - Discovery http://xmpp.org/exte[...] 2018-11-03
[49] 웹사이트 Tech pages/IoT systems http://wiki.xmpp.org[...]
[50] 웹사이트 IOT Info Page http://mail.jabber.o[...]
[51] 뉴스 XMPP rises to face SIMPLE standard http://www.infoworld[...] Infoworld magazine 2003-04-17
[52] 뉴스 XMPP vs SIMPLE: The race for messaging standards http://www.infoworld[...] Infoworld magazine 2003-05-23
[53] 웹사이트 Jabber Inc. - About Us http://www.jabber.co[...]
[54] 웹사이트 Open Real Time Messaging System http://tech.slashdot[...]
[55] 뉴스 XMPP rises to face SIMPLE standard http://www.infoworld[...] Infoworld magazine 2003-04-17
[56] 뉴스 XMPP vs SIMPLE: The race for messaging standards http://www.infoworld[...] Infoworld magazine 2003-05-23
[57] 간행물 Chatting Up the Chef http://www.linuxjour[...] Linux Journal 2003-03-01
[58] 웹사이트 Jabber.org - XMPP Server Migration http://www.jabber.or[...] 2009-08-12
[59] 웹사이트 XMPP Federation https://googletalk.b[...] 2006-01-17
[60] 웹사이트 Cisco Announces Definitive Agreement to Acquire Jabber http://newsroom.cisc[...]
[61] 웹사이트 Facebook Chat Now Available Everywhere http://blog.facebook[...]
[62] 웹사이트 Integrating with Facebook Chat http://wiki.develope[...]
[63] 웹사이트 Question FAQ #270 http://www.livejourn[...]
[64] 웹사이트 Ovi Contacts http://betalabs.noki[...]
[65] 뉴스 Lotus Sametime 7.5 Interoperates with AIM, Google Talk http://www.eweek.com[...] eWeek 2006-12-06
[66] 뉴스 Lotus ships gateway to integrate IM with AOL, Yahoo, Google http://www.networkwo[...] Network World 2006-12-06
[67] 뉴스 Unified Communications: Uniting Communication Across Different Networks https://www.microsof[...] Microsoft Press Release 2009-10-01
[68] 웹사이트 '[Standards-JIG] Distribution of stanza types' http://mail.jabber.o[...]
[69] 웹사이트 '[Standards-JIG] proto-JEP: Smart Presence Distribution' http://mail.jabber.o[...]
[70] 저널 Greater NOrdic MIddleware Symposium (GNOMIS) University of Stockholm 2005-04-18
[71] 웹사이트 Jabber Inc. http://www.cisco.com[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com