Download presentation
Published byDebra Margery Bailey Modified over 9 years ago
1
XMPP Solution 개요 및 동향 ㈜씽크테크 기술연구소 이정규 책임연구원
2
목차 XMPP란? XMPP 국내외 동향 XMPP 프로토콜 분석 XMPP 활용 공개 서버/클라이언트를 이용한 IM 서비스 구축
3
역사, 아키텍쳐, 프로토콜, 1. XMPP 프로토콜 개요
4
eXtensible Message & Presence Protocol
XMPP/Jabber란? eXtensible Message & Presence Protocol “XML 스트리밍 기술로 인터넷상의 두 지점간 Presence, Message 그리고 XML로 표현가능한 구조적 정보를 실시간으로 전달하기 위한 국제 표준. XML
5
XMPP History GoogleTalk 출시
1998 2004 2005 2009 GoogleTalk 출시 독점적인 IM 서비스에 대항, 오픈소스 프로젝트인 Jabber 출범 (Jeremie Miller) IETF에 의해 표준의 형태를 갖추게 됨 Jabber.org 커뮤니티를 통해서 프로토콜 지속적 개선 XMPP 표준 제정 (RFC3920, RFC3921)
6
XMPP 프로토콜의특징 특징 설명 Open free, open, public 프로토콜 Standard IETF 표준
Proven 수천개의 서버, 수백만의 사용자 확보 Decentralized 과 유사한 방식으로 확장 Secure SASL, TLS 등 규격 지원 Extensible XML namespace에 의해 자신만의 프로토콜을 코어위에 확장 Flexible IM위에 네트워크 관리, 콘텐츠 동기화, 협업 도구, 파일공유, 게임, 등 확장 가능 Diverse 수많은 회사 또는 오픈소스 프로젝트에서 다양한 응용서비스들을 출시하고 있음.
7
RFC3920, RFC3921 그리고 XEPs… 2. XMPP 프로토콜 분석
8
프로토콜 스펙 규격이름 내용 => http://xmpp.org/protocols Core RFC3920 XMPP Core
Architecture, XML Stream, Security, … RFC3921 XMPP IM Session, Messaging, Presence, Roster, Blocking, Extensions XEP XMPP Extensions XEP-0030: Service Discovery ( XEP-0095: Stream Initiation ( XEP-0045: Multi-User chat ( XEP-0203: Delayed Delivery ( …
9
RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers
Gateway Security
10
username@domain/Resource
RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security Ex) …
11
XML Stream, Connection Oriented
RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security XML Stream, Connection Oriented XML Document Server Client XML Document
12
RFC3920 – XMPP Core Server Client 아키텍쳐 JID XML 스트림 Single Server
Multiple Servers Gateway Security <stream:stream to='example.com‘ xmlns='jabber:client‘ xmlns:stream=' version='1.0'> <message …..> …. </message> …………. <presence …> … </presence> <iq … > … </iq> </stream:stream> <stream:stream from='example.com‘ id='someid‘ xmlns='jabber:client' xmlns:stream=' version='1.0'> <message …..> …. </message> …………. <presence …> … </presence> <iq … > … </iq> </stream:stream> Server Client
13
RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers
Gateway Security <message type=“chat”> <body> hello! </body> </message> <presence to=“xmpp.co.kr” type=“available”> <show>online</show> <status>I’m here </status> </presence> <iq to=“xmpp.co.kr” type=“get” <query xmlns=“jabber:iq:roster”/> </iq>
14
RFC3920 – XMPP Core 폐쇄적 운영가능 로컬에서도 운영가능 아키텍쳐 JID XML 스트림 Single Server
Multiple Servers Gateway Security 폐쇄적 운영가능 로컬에서도 운영가능 XML Client XMPP Server Host.com
15
RFC3920 – XMPP Core 공인 IP에서 운영 외부 XMPP 서버와의 연결을 통한 무한 확장
아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security XML Client XMPP App XMPP Server Internet 공인 IP에서 운영 외부 XMPP 서버와의 연결을 통한 무한 확장 기술적으로 이메일을 대체 가능
16
RFC3920 – XMPP Core sms 010-xxx-xxxx@sms.host.com 아키텍쳐 Xml 스트림 JID
Single Server Multiple Servers Gateway Security Client Client sms XML XML XMPP Server Client Host.com XML XML XML XML Client XML Client Client Client
17
RFC3920 – XMPP Core TLS (Transport Layer Security)
아키텍쳐 Xml 스트림 JID Single Server Multiple Servers Gateway Security Server Client SASL TLS TLS (Transport Layer Security) RFC 5246 (TLS ver 1.2) SASL (Simple Authentication Security Layer) RFC2222
18
RFC3921 – XMPP IM 1) Session establishment
Message Presence Roster Blocking Communication PC PDA 1) Session establishment 2) Resource binding with “PC” Server 1) Session establishment 2)Resource binding with “PDA”
19
RFC3921 – XMPP IM Type Subject Body Thread
Session Message Presence Roster Blocking Communication Type Subject Body Thread <message type=“chat” > <body> hello </body> </message> Extensions
20
RFC3921 – XMPP IM user2 user1 Subscription Server Info user3
Session Message Presence Roster Blocking Communication user2 Server user1 Presence notify broadcast user3 Subscription Info Subscription Management Presence subscription Subscribing (type=subscribe) Canceling (type=unsubscribed) Unsubscribing (type=unsubscribe) Presence priority
21
RFC3921 – XMPP IM http://usrportage.de/uploads/gaim-2.0beta1.png
Session Message Presence Roster Blocking Communication Server 1) Roster 요청 2) Roster 다운로드 Roster (add, update, delete) Roster DB AAaa Roster 정보는 개인화되어 있음
22
Server-side privacy list
RFC3921 – XMPP IM Session Message Presence Roster Blocking Communication Server List Management Server-side privacy list Privacy 정보는 개인화되어 있음
23
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 user Catalog.Kyobookbook.com Kyobookbook.com
24
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 <iq type='get' to=‘kyobobook.com' id=‘item_1'> <query xmlns=' </iq> user Kyobookbook.com
25
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 Server <iq type='result' from=‘kyobobook.com‘ to=' ' id='item_1'> <query xmlns=' <item jid='catalog.kyobobook.com' name=‘교보문고 카탈로그 서비스'/> </query> </iq> user
26
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 <iq type='get' to=‘catalog.kyobobook.com' id=‘item_2'> <query xmlns=' </iq> user Catalog.Kyobookbook.com
27
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 <iq type='result' from=‘catalog.kyobobook.com‘ to=' ' id='item_2'> <query xmlns=' <item jid=‘music.catalog.kyobobook.com' name=‘교보문고 음악 카탈로그 '/> <item jid=‘book.catalog.kyobobook.com’ name=‘교보문고 신간서적 카탈로그’ /> … </query> </iq> user
28
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 <iq type='result' from=‘catalog.kyobobook.com‘ to=' ' id='item_2'> <query xmlns=' <item jid=‘catalog.kyobobook.com' node=‘music’ name=‘교보문고 음악 카탈로그 '/> <item jid=‘book.catalog.kyobobook.com’ name=‘교보문고 신간서적 카탈로그’ /> … </query> </iq> * Node 개념의 추가
29
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 * 동일 네트워크인 경우 proxy Server user1 user2
30
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 * 서로다른 네트워크인 경우 proxy Server user1 user2
31
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 user1 Xmpp.co.kr conference
32
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 Bill user3 user1 Harry Jack user2 Cindy user4
33
XEP(XMPP Extension Protocols)
SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 * 상대방이 온라인이 아닐 때, user2 Server user1 Message 서버가 메시지를 저장하고, 해당사용자가 온라인시 Push
34
공개 XMPP Server & Client 활용
35
XMPP 오픈소스 프로젝트 Type Name Homepage Language Server Client SDK Openfire
Java eJabberD erLang JabberD2 C Client Psi Pidgin C, C++ SDK libpurple XIFF ActionScript Smack
36
Openfire
37
Openfire – Install
38
Openfire – Admin
39
Openfire – Server Setting
40
Openfire – Database(standard)
41
Openfire – Database(standard)
42
Openfire –Database - Embedded)
43
Openfire – Profile
44
Openfire – Administrator Account
45
Openfire – Setup Complete
46
Openfire – Admin Login
47
Openfire – Adding a User
48
Openfire – User Summary
49
Psi – Install
50
Psi – Account Setup
51
Psi – Login
52
Psi – Subscribe
53
Psi – Subscribed
54
4. 참고
55
Gateway 개발
56
감사합니다. Contact: 이정규 책임연구원
JID:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.