XMPP Solution 개요 및 동향 2009.12.12 ㈜씽크테크 기술연구소 이정규 책임연구원.

Slides:



Advertisements
Similar presentations
…and a natural peer-to-peer platform!. Jabber as P2P Platform Agenda Why spend time in this session? What is Jabber? Who cares about Jabber? How does.
Advertisements

Internet Peer-to-Peer Application Infrastructure Darren New Invisible Worlds, Inc.
SIP, Presence and Instant Messaging
Presence and IM as SIP Services Jonathan Rosenberg Chief Scientist.
VoN Developers Conference -- July 2000 Introduction to IMPP Jonathan Rosenberg Chief Scientist.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Introduction to XMPP Joe Hildebrand.
Notification Explosion Calendaring –You have a new meeting request –Your meeting begins in 15 minutes SIP –Hello HTTP/WebDAV –A resource you want to edit.
Cisco Confidential © 2011 Cisco and/or its affiliates. All rights reserved. 1 XMPP-Grid for SACM Information Transport XMPP Protocol Extensions for Use.
“” How much richer would it be if the network could extract more useful 'state' information about the device and/or user, especially if it is enriched.
Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005.
SIP issues with S/MIME and CMS Rohan Mahy SIP, SIPPING co-chair.
© 2009 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialNetwork-level Smart Services 1.
P2P (Peer To Peer) Used: when applications need to communicate between devices. Examples: – Interactive game of checkers – Instant Messaging P2P can be.
Red Hat Linux Network. Red Hat Network Red Hat Network is the environment for system- level support and management of Red Hat Linux networks. Red Hat.
Instant Messaging Internet Technologies and Applications.
ShortTalk - XMPP messaging in a peer to peer manner Instructed by: Edward Bortnikov Supervisor: Dr. Ilana David Developed.
XMPP (eXtensible Messaging and Presence Protocol ) Reporter : Allen.
A Gateway For SIP Event Interworking - Sasu Tarkoma & Thalainayar Balasubramanian Ramya.
Introduction to the Secure SMTP Server service. Secure SMTP server is a secure, reliable SMTP mail relay server for your outgoing mail. Secure SMTP service.
CEO, Tech IT Easy Lab of Pervasive VM Computing A Beginner’s Guide to XMPP.
V v Business Process AMTV Streaming TV Streaming.
Open Source XMPP for Cloud Services Matt Tucker, CTO Jive Software.
Overview What are the provisioning methods used in the Australian registry system? How are these provisioning systems secured?
B UZZ - ME L OCATION BASED DATING SERVICE Arun Ponnusamy Abhisheak Iyer Deepak Swathi Gangisetty.
Publishing and transporting Web Services over XMPP
Introducing XMPP For real-time communication. Agenda Protocol Market Implementation.
XMPP Extensible Messaging and Presence Protocol. Chat In the beginning there was instant messaging and chat. Lots of binary standards: Unix talk, IRC,
XMPP – Extensible Messaging and Presence Protocol Vidya Satyanarayanan.
03/09/2003Helsinki University of Technology1 Overview of Thesis Topic Presented By: Zhao Xuetao.
1 Chapter 19 Netscape Navigator and Communicator 인공지능 연구실.
Backdrop Particle Paintings created by artist Tom Kemp September Grid Information and Monitoring System using XML-RPC and Instant.
XMPP Concrete Implementation Updates: 1. Why XMPP 2 »XMPP protocol provides capabilities that allows realization of the NHIN Direct. Simple – Built on.
POP3
Jabber Client Jeevan Varma Anga Distributed Systems(CSC8530) Villanova University.
User Interface; Graphical User Interface;Jabber XMPP- Core.
Serving society Stimulating innovation Supporting legislation Danny Vandenbroucke & Ann Crabbé KU Leuven (SADL) AAA-architecture for.
RVP Protocol for Real-Time Presence Information Sonu Aggarwal Lead Program Manager, Exchange Instant Messaging Microsoft Corporation
Introduction to SIP Larry Amiot Northwestern University Internet2 Commons Site Coordinator Training March 22, 2004 Indianapolis,
1 Multimedia Services Service provider Service client Service registry Publish Find/discovery Bind Multimedia Services Framework and architecture.
4BP1 Electronic & Computer Engineering Paul Gildea th Year Interim Project Presentation.
M337 Standards Based Video Interop Interoperability modelling for Video Skype for Business Video Interoperability Server (VIS)
Introduction to 學校:大同大學 班級: GI1 學號: 姓名:李奕銳 教師:葉慶隆 Jabber 1.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
draft-mayrhofer-enum-xmpp1 XMPP Enumservice registration draft-mayrhofer-enum-xmpp-00 Alexander Mayrhofer, enum.at
HANNAM UNIVERSITY 1 Chapter 29 Internet Security.
Presence Networking: XMPP and Jabber Joe Hildebrand Chief Architect Jabber, Inc. Networld+Interop 1 May 2003.
Jabber Technical Overview Presenter: Ming-Wei Lin.
An Analysis of XMPP Security Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen CMPE 209 Spring 2009.
Post Office Protocol.
External Messaging Services. Page 2 External Messaging: Extends the power of Presence and Instant Messaging outside corporate Network Provided only to.
Voeventnet.caltech.edu Transporting VOEvents Andrew Drake, Matthew Graham, Roy Williams, et al.
15 May 2006 IVOA - Victoria: VOEvent 11 Jabber/XMPP Matthew J. Graham Caltech T HE US N ATIONAL V IRTUAL O BSERVATORY.
OpenSIPS Presence Project Atul Tambe Hitesh Thavnani Amit Rindhe Madhusudhan
Morpheus Server 2.0 정기교육 Version 목 차 Morpheus Server 2.0 SpringFramework API 개발 Morpheus Admin 실 습.
#SummitNow Alfresco Rumors: What is your content saying? 7 Nov 2013 / 15 Nov 2013 Jared Ottley / Alfresco Software.
Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson.
VIRTUAL SERVERS Chapter 7. 2 OVERVIEW Exchange Server 2003 virtual servers Virtual servers in a clustering environment Creating additional virtual servers.
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
March 16, 2009 Jabber IM Client. March 16, 2009 What is Jabber? An open instant message protocol Defines client/server communication Uses XMPP –XML-Based.
XMPP Extensible Messaging and Presence Protocol Internet Technologies 1.
CS 5565 Network Architecture and Protocols
XMPP messaging in a peer to peer manner Instructed by:
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Peer-to-Peer Information Systems Week 14: Instant Messaging
Working at a Small-to-Medium Business or ISP – Chapter 7
ISAM System Architecture Buthayna Elabdalla & Bao Vuong Spring 2007
Presentation transcript:

XMPP Solution 개요 및 동향 2009.12.12 ㈜씽크테크 기술연구소 이정규 책임연구원

목차 XMPP란? XMPP 국내외 동향 XMPP 프로토콜 분석 XMPP 활용 공개 서버/클라이언트를 이용한 IM 서비스 구축

역사, 아키텍쳐, 프로토콜, 1. XMPP 프로토콜 개요

eXtensible Message & Presence Protocol XMPP/Jabber란? eXtensible Message & Presence Protocol “XML 스트리밍 기술로 인터넷상의 두 지점간 Presence, Message 그리고 XML로 표현가능한 구조적 정보를 실시간으로 전달하기 위한 국제 표준. XML

XMPP History GoogleTalk 출시 1998 1999- 2000 2002-2003 2004 2005 2009 GoogleTalk 출시 독점적인 IM 서비스에 대항, 오픈소스 프로젝트인 Jabber 출범 (Jeremie Miller) IETF에 의해 표준의 형태를 갖추게 됨 Jabber.org 커뮤니티를 통해서 프로토콜 지속적 개선 XMPP 표준 제정 (RFC3920, RFC3921)

XMPP 프로토콜의특징 특징 설명 Open free, open, public 프로토콜 Standard IETF 표준 Proven 수천개의 서버, 수백만의 사용자 확보 Decentralized email과 유사한 방식으로 확장 Secure SASL, TLS 등 규격 지원 Extensible XML namespace에 의해 자신만의 프로토콜을 코어위에 확장 Flexible IM위에 네트워크 관리, 콘텐츠 동기화, 협업 도구, 파일공유, 게임, 등 확장 가능 Diverse 수많은 회사 또는 오픈소스 프로젝트에서 다양한 응용서비스들을 출시하고 있음.

RFC3920, RFC3921 그리고 XEPs… 2. XMPP 프로토콜 분석

프로토콜 스펙 규격이름 내용 => 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 (http://xmpp.org/protocols/disco/) XEP-0095: Stream Initiation (http://xmpp.org/protocols/si/) XEP-0045: Multi-User chat (http://xmpp.org/protocols/muc/) XEP-0203: Delayed Delivery (http://xmpp.org/protocols/urn:xmpp:delay/) …

RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security

username@domain/Resource RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security username@domain/Resource Ex) jklee@xmpp.co.kr/tbotim peter@jabber.org/gaim …

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

RFC3920 – XMPP Core Server Client 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security <stream:stream to='example.com‘ xmlns='jabber:client‘ xmlns:stream='http://etherx.jabber.org/streams’ version='1.0'> <message …..> …. </message> …………. <presence …> … </presence> <iq … > … </iq> </stream:stream> <stream:stream from='example.com‘ id='someid‘ xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams‘ version='1.0'> <message …..> …. </message> …………. <presence …> … </presence> <iq … > … </iq> </stream:stream> Server Client

RFC3920 – XMPP Core 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security <message from=“kim@xmpp.co.kr” to=“park@xmpp.co.kr” type=“chat”> <body> hello! </body> </message> <presence from=“kim@xmpp.co.kr” to=“xmpp.co.kr” type=“available”> <show>online</show> <status>I’m here </status> </presence> <iq from=“kim@xmpp.co.kr” to=“xmpp.co.kr” type=“get” <query xmlns=“jabber:iq:roster”/> </iq>

RFC3920 – XMPP Core 폐쇄적 운영가능 로컬에서도 운영가능 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security 폐쇄적 운영가능 로컬에서도 운영가능 XML Client XMPP Server Host.com

RFC3920 – XMPP Core 공인 IP에서 운영 외부 XMPP 서버와의 연결을 통한 무한 확장 아키텍쳐 JID XML 스트림 Single Server Multiple Servers Gateway Security XML Client XMPP App XMPP Server Internet 공인 IP에서 운영 외부 XMPP 서버와의 연결을 통한 무한 확장 기술적으로 이메일을 대체 가능

RFC3920 – XMPP Core sms 010-xxx-xxxx@sms.host.com 아키텍쳐 Xml 스트림 JID Single Server Multiple Servers Gateway Security Client Client sms 010-xxx-xxxx@sms.host.com XML XML XMPP Server Client Host.com XML XML XML XML Client XML Client Client Client

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

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”

RFC3921 – XMPP IM Type Subject Body Thread Session Message Presence Roster Blocking Communication Type Subject Body Thread <message from=jklee@xmpp.co.kr to=“kim@jabber.org” type=“chat” > <body> hello </body> </message> Extensions

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

RFC3921 – XMPP IM http://usrportage.de/uploads/gaim-2.0beta1.png Session Message Presence Roster Blocking Communication http://usrportage.de/uploads/gaim-2.0beta1.png Server 1) Roster 요청 2) Roster 다운로드 Roster (add, update, delete) Roster DB AAaa Roster 정보는 개인화되어 있음

Server-side privacy list RFC3921 – XMPP IM Session Message Presence Roster Blocking Communication http://usrportage.de/uploads/gaim-2.0beta1.png Server List Management Server-side privacy list Privacy 정보는 개인화되어 있음

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png user Catalog.Kyobookbook.com Kyobookbook.com

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png <iq type='get' from=‘user@xmpp.co.kr/tbotim' to=‘kyobobook.com' id=‘item_1'> <query xmlns='http://jabber.org/protocol/disco#items'/> </iq> user Kyobookbook.com

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png Server <iq type='result' from=‘kyobobook.com‘ to=' user@xmpp.co.kr/tbotim ' id='item_1'> <query xmlns='http://jabber.org/protocol/disco#items'> <item jid='catalog.kyobobook.com' name=‘교보문고 카탈로그 서비스'/> </query> </iq> user

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png <iq type='get' from=‘user@xmpp.co.kr/tbotim' to=‘catalog.kyobobook.com' id=‘item_2'> <query xmlns='http://jabber.org/protocol/disco#items'/> </iq> user Catalog.Kyobookbook.com

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png <iq type='result' from=‘catalog.kyobobook.com‘ to=' user@xmpp.co.kr/tbotim ' id='item_2'> <query xmlns='http://jabber.org/protocol/disco#items'> <item jid=‘music.catalog.kyobobook.com' name=‘교보문고 음악 카탈로그 '/> <item jid=‘book.catalog.kyobobook.com’ name=‘교보문고 신간서적 카탈로그’ /> … </query> </iq> user

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png <iq type='result' from=‘catalog.kyobobook.com‘ to=' user@xmpp.co.kr/tbotim ' id='item_2'> <query xmlns='http://jabber.org/protocol/disco#items'> <item jid=‘catalog.kyobobook.com' node=‘music’ name=‘교보문고 음악 카탈로그 '/> <item jid=‘book.catalog.kyobobook.com’ name=‘교보문고 신간서적 카탈로그’ /> … </query> </iq> * Node 개념의 추가

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png * 동일 네트워크인 경우 proxy Server user1 user2

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png * 서로다른 네트워크인 경우 proxy Server user1 user2

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png user1 Xmpp.co.kr conference room1@conference.xmpp.co.kr

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png room1@conference.xmpp.co.kr Bill user3 user1 Harry Jack user2 Cindy user4 room1@conference.xmpp.co.kr/Harry room1@conference.xmpp.co.kr/Jack room1@conference.xmpp.co.kr/Bill room1@conference.xmpp.co.kr/Cindy

XEP(XMPP Extension Protocols) SVC Disco XEP-0030 Stream Initiation XEP-0095 Multiuser chat XEP-0045 Delayed delivery XEP-0203 http://usrportage.de/uploads/gaim-2.0beta1.png * 상대방이 온라인이 아닐 때, user2 Server user1 Message 서버가 메시지를 저장하고, 해당사용자가 온라인시 Push

공개 XMPP Server & Client 활용

XMPP 오픈소스 프로젝트 Type Name Homepage Language Server Client SDK Openfire http://www.igniterealtime.org Java eJabberD http://www.process-one.net erLang JabberD2 http://codex.xiaoka.com/wiki/jabberd2:start C Client Psi http://psi-im.org/ Pidgin http://pidgin.im/ C, C++ SDK libpurple XIFF http://www.igniterealtime.org/projects/xiff/ ActionScript Smack http://www.igniterealtime.org/projects/smack/index.jsp http://en.wikipedia.org/wiki/List_of_XMPP_library_software

Openfire http://www.igniterealtime.org/downloads/

Openfire – Install

Openfire – Admin http://127.0.0.1:9090/setup/index.jsp

Openfire – Server Setting

Openfire – Database(standard)

Openfire – Database(standard)

Openfire –Database - Embedded)

Openfire – Profile

Openfire – Administrator Account

Openfire – Setup Complete

Openfire – Admin Login http://127.0.0.1:9090/login.jsp

Openfire – Adding a User

Openfire – User Summary

Psi – Install http://psi-im.org/

Psi – Account Setup

Psi – Login

Psi – Subscribe

Psi – Subscribed

4. 참고

Gateway 개발 http://www.igniterealtime.org/projects/tinder/index.jsp

감사합니다. Contact: 이정규 책임연구원 Email: jklee@thinktek.co.kr JID: jklee@xmpp.co.kr