KR20080066770A - 상이한 서비스 제공자들 간의 인스턴트 메시징 연동성 - Google Patents

상이한 서비스 제공자들 간의 인스턴트 메시징 연동성 Download PDF

Info

Publication number
KR20080066770A
KR20080066770A KR1020087010888A KR20087010888A KR20080066770A KR 20080066770 A KR20080066770 A KR 20080066770A KR 1020087010888 A KR1020087010888 A KR 1020087010888A KR 20087010888 A KR20087010888 A KR 20087010888A KR 20080066770 A KR20080066770 A KR 20080066770A
Authority
KR
South Korea
Prior art keywords
instant messaging
communication
service provider
messaging service
external
Prior art date
Application number
KR1020087010888A
Other languages
English (en)
Other versions
KR101022901B1 (ko
Inventor
라자니칸쓰 베무라폴리
밍 쥬디 루
자야라마 쿠마르 코타
Original Assignee
야후! 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 야후! 인크. filed Critical 야후! 인크.
Publication of KR20080066770A publication Critical patent/KR20080066770A/ko
Application granted granted Critical
Publication of KR101022901B1 publication Critical patent/KR101022901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

상이한 인스턴트 메시징 서비스 제공자 네트워크들의 클라이언트들 간의 인스턴트 메시징 통신을 용이하게 하기 위한 장치가 제공된다. 장치는 인스턴트 메시징 서비스와 관련된 수신된 통신을 변환하기 위한 변환 로직을 포함하고, 수신된 통신은 외부 인스턴트 메시징 서비스 제공자 네트워크와 연관되고, 제2 프로토콜에 따라 포맷된다. 변환 로직은 수신된 통신을 제2 프로토콜에서 제1 프로토콜로 변환하고, 제1 프로토콜은 수신 서비스 제공자 네트워크에 고유하다. 이어서, 통신은 고유한 제1 프로토콜에 따라 주요 네트워크의 클라이언트에게 라우팅될 수 있다.
Figure P1020087010888
인스턴트 메시징 서비스 제공자 네트워크, 연동성, 변환 로직, 인터페이스 로직, 프로토콜

Description

상이한 서비스 제공자들 간의 인스턴트 메시징 연동성{INSTANT MESSAGING INTEROPERABILITY BETWEEN DISPARATE SERVICE PROVIDERS}
<관련 출원의 상호 참조>
본 출원은 본 명세서에서 충분히 설명되는 바와 같이 참조로 포함되는, INSTANT MESSAGING INTEROPERABILITY BETWEEN DISPARATE SERVICE PROVIDERS라는 제목으로 2005년 10월 7일자로 출원된 미국 특허 가출원 번호 60/724,577에 대한 우선권의 이익을 주장한다.
본 발명은 일반적으로 인터넷 또는 인트라넷과 같은 네트워크를 통한 인스턴트 메시징에 관한 것으로서, 구체적으로는 상이한 인스턴트 메시징 제공자들의 둘 이상의 사용자 간의 인스턴트 메시징에 관한 것이다.
인스턴트 메시징 기술은 일반적으로 둘 이상의 관여자가 인터넷 또는 인트라넷(예를 들어, 사설 네트워크)과 같은 컴퓨터 네트워크를 통해 거의 실시간으로 통신하는 것을 가능하게 한다. 통상적으로, 각각의 관여자는 클라이언트 컴퓨터 시스템을 사용하여, 사용자 인터페이스를 통해 메시지들(예를 들어, 텍스트, 음성, 파일 등을 포함함)을 송수신한다. 통신하는 각각의 클라이언트 컴퓨터는 네트워크를 통해 공통 인스턴트 메시징 서비스 제공자 및 접속 서버에 접속된다. 접속 서 버는 관여자들로부터 메시지들을 수신하고, 메시지들을 표시를 위해 다른 관여자들의 클라이언트 시스템들에 전송하는 것 등에 의해 메시지들을 처리한다. 접속 서버는 또한 관여자들에게 상대 관여자가 접속 해제 또는 로그 오프한 것을 알리는 것 등을 위하여 시스템 대신에 메시지들을 전송하도록 구성될 수 있다.
통상적으로, 인스턴트 메시징 애플리케이션 소프트웨어는 클라이언트 시스템이 인스턴트 메시징 클라이언트로서 사용되는 것을 가능하게 하기 위해 각각의 클라이언트 시스템에 설치된다. 인스턴트 메시징 소프트웨어는 예를 들어 인터넷을 통해 액세스 가능한 웹 페이지로부터의 다운로드에 이용될 수 있게 될 수 있다. 사용자는 인스턴트 메시징에 의해 하나 이상의 다른 관여자와 통신하기 위해 클라이언트 시스템 상에서 이 소프트웨어를 호출한다. 클라이언트측 애플리케이션 소프트웨어는 통상적으로 클라이언트 시스템과 접속 서버 간의 접속을 설정하고, 사용자를 접속 서버에 자동으로 로그인하거나, 사용자에게 사용자 이름 및 패스워드와 같이 로그인에 필요한 정보를 입력하도록 촉구한다. 이어서, 사용자는 그 시간에 인스턴트 메시징 시스템에 로그인한 하나 이상의 다른 사용자와 인스턴트 메시징에 의해 통신할 수 있다.
MSN® 메신저, 야후!® 메신저, AOL® 인스턴트 메신저("AIM) 등과 같은 여러 공지된 인스턴트 메시징 시스템 및 서비스 제공자가 존재한다. 일반적으로, 인스턴트 메시징 시스템들 중 하나를 사용하는 클라이언트는 상이한 인스턴트 메시징 시스템을 사용하는 클라이언트와 인스턴트 메시지들을 교환할 수 없는데, 이는 대부분의 인스턴트 메시징 서비스들(또는 서비스 제공자들)이 독점 솔루션들을 사용 하기 때문이다. 예를 들어, MSN® 메신저를 사용하는 클라이언트는 통상적으로 동일 시스템, 예를 들어 동일 인스턴트 메시징 제공자를 사용하는 다른 클라이언트와 통신할 수 있지만, 야후!® 메신저와 같은 다른 인스턴트 메시징 서비스 제공자들을 사용하는 클라이언트들과는 통신할 수 없다.
따라서, 인스턴트 메시징 시스템용의 둘 이상의 네트워크 간의 통신 및 연동성을 허가하는 것이 요망된다. 또한, 하나 이상의 외부 네트워크 및 인스턴트 메시징 제공자와 연관된 관여자들에 대한 존재 지시자들 및 버디 리스트 정보를 제공하는 것이 요망된다.
<발명의 요약>
본 발명의 일 양태 및 일례에 따르면, 상이한 인스턴트 메시징 서비스 제공자들의 사용자들 간의 인스턴트 메시징 통신 및 이벤트들을 용이하게 하기 위한 시스템이 제공된다. 시스템은 외부 서버로부터 수신되는 통신들을 변환할 수 있는 주요 인스턴트 메신저 서비스 제공자 네트워크와 연관된 변환 로직을 포함한다. 구체적으로, 변환 로직은 외부 서버로부터 수신되는 통신들을 제2 프로토콜로부터 시스템에 고유한 제1 프로토콜로 변환한다.
일례에서, 상이한 인스턴트 메시징 서비스 제공자들의 사용자들 간의 인스턴트 메시징 통신들을 용이하게 하기 위한 장치는 인터페이스 로직 및 변환 로직을 포함한다. 인터페이스 로직은 인스턴트 메시징 서비스와 관련된 통신들을 수신하며, 수신된 통신들은 외부 인스턴트 메시징 서비스 제공자와 연관되고, 제2 프로토콜에 따라 포맷된다. 장치는 수신된 통신을 제2 프로토콜로부터 수신 서비스 제공 자 네트워크에 고유한 제1 프로토콜로 변환하기 위한 변환 로직을 더 포함한다.
몇몇 예에서, 수신되는 통신들은 외부 인스턴트 메시징 서비스 제공자 네트워크로부터 수신된다(예를 들어, 외부 네트워크 클라이언트가 통신들을 외부 네트워크로 라우팅하며, 외부 네트워크는 다시 통신들을 주요 네트워크로 라우팅한다). 통신들은 가입 요청, 초대 요청, 가입 해지 요청, 참관인 통지 등과 같은 다양한 인스턴트 메시징 통신 및 이벤트를 포함할 수 있다.
또한, 장치는 게이트웨이 이벤트 서버, 이벤트 서버, SIP 게이트웨이, 에지 프록시, (예를 들어, 실행시간 다이얼로그 상태들, SIP 다이얼로그 라우팅 정보 등을 저장하기 위한) 세션 관리자, (예를 들어, 버디 리스트, 지속 정보 등을 저장하기 위한) 게이트웨이 데이터베이스, 접속 서버, 접속 관리자 등 중 하나 이상을 더 포함하거나 그와 통신할 수 있다.
다른 예에 따르면, 상이한 인스턴트 메시징 서비스 제공자들의 사용자들 간의 인스턴트 메시징 통신들을 용이하게 하기 위한 방법이 제공된다. 일례에서, 방법은 외부 인스턴트 메시징 서비스 제공자 네트워크로부터 인스턴트 메시징 서비스에 관련된 통신을 수신하는 단계 - 수신된 통신은 제2 프로토콜에 따라 포맷됨 - , 및 수신된 통신을 제2 프로토콜로부터 제1 프로토콜로 변환하는 단계를 포함한다.
다른 예에 따르면, 상이한 서비스 제공자 네트워크들을 통한 인스턴트 메시징 통신들을 용이하게 하기 위한 명령들을 포함하는 컴퓨터 판독가능 매체가 제공된다. 일례에서, 명령들은 인스턴트 메시징 서비스와 관련되고 주요 인스턴트 메시징 서비스 제공자 네트워크로 지향되는 통신을 변환하는 단계를 포함하는 방법을 수행시키며, 수신된 통신은 외부 인스턴트 메시징 서비스 제공자 네트워크와 연관되며, 통신은 제2 프로토콜로부터 주요 인스턴트 메시징 서비스 제공자 네트워크에 고유한 제1 프로토콜로 변환된다.
본 발명의 그의 다양한 양태는 첨부 도면들 및 청구범위와 관련하여 아래의 상세한 설명을 고려할 때 보다 잘 이해된다.
도 1은 서버 대 서버 연동성을 갖는 2개의 인스턴트 메시징 서비스 제공자 간의 통신을 위한 예시적인 시스템 및 환경을 개략적으로 나타내는 도면이다.
도 2는 외부 또는 보조 네트워크/인스턴트 메시징 서비스 제공자 네트워크와의 통신시에 제1 인스턴트 메시징 제공자와 연관되는 예시적인 주요 네트워크 백엔드의 개략도이다.
도 3은 주요 서비스 제공자 네트워크 백엔드와 외부 네트워크 간의 예시적인 게이트웨이 및 접속의 개략도이다.
도 4는 외부 또는 보조 네트워크/인스턴트 메시징 서비스 제공자와의 통신시 제1 인스턴트 메시징 서비스 제공자와 연관되는 예시적인 주요 네트워크 백엔드의 개략도이다.
도 5-21은 하나 이상의 외부 네트워크/인스턴트 메시징 서비스 제공자와의 통신시 주요 네트워크 서비스 제공자 백엔드의 컴포넌트들 간의 다양한 예시적인 통신 및 이벤트 흐름을 나타내는 도면이다.
도 22는 본 발명의 다양한 양태의 처리 기능을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템을 나타내는 도면이다.
이하의 설명은 이 분야의 통상의 전문가가 본 발명을 실시하고 이용하는 것을 가능하게 하기 위해 제공된다. 특정 장치, 기술 및 응용에 대한 설명은 단지 예로서 제공된다. 이 분야의 통상의 전문가에게는 여기에 설명되는 예들에 대한 다양한 변형이 자명할 것이며, 여기에 정의되는 일반적인 원리들은 본 발명의 사상 및 범위를 벗어나지 않고 다른 예들 및 응용들에 적용될 수 있다. 따라서, 본 발명은 여기에 설명되고 도시되는 예들로 한정되는 것을 의도하지 않으며, 청구범위와 일치하는 범위를 갖는다.
도 1은 여기에 설명되는 몇몇 양태들이 이용될 수 있는 예시적인 시스템 및 환경을 나타낸다. 대체로, 예를 들어 제1 서비스 제공자 프로토콜을 통해 복수의 제1 클라이언트(110)가 로그인되는 제1 인스턴트 메신저("IM") 서비스 제공자(100), 및 예를 들어 제2 서비스 제공자 프로토콜을 통해 복수의 제2 클라이언트(112)가 로그인되는 제2 IM 서비스 제공자(102)가 도시되어 있다. 제1 및 제2 IM 서비스 제공자들(100, 102)은 제1 클라이언트(110)가 제2 클라이언트(112)와 인스턴트 메시지들을 송수신하는 것을 가능하게 하도록 통신한다. 일례에서, 통신은 제1 및 제2 네트워크들(100, 102) 사이에서 직접, 예를 들어 각각의 네트워크의 각각의 서버들 또는 다른 네트워크 컴포넌트들 사이에서 이루어진다(제1 클라이언트(110)가 제2 네트워크(102)와 직접 통신하거나 제2 클라이언트(112)가 제1 네트워크(100)와 직접 통신하는 것과 반대이다). 이러한 시스템은 상이한 IM 제공자들 간의 연동성을 허가할 수 있다.
제1 및 제2 IM 서비스 제공자들(100, 102)은 적어도 부분적으로 그리고 일례에서 SIP(Session Initiation Protocol) 및 SIMPLE(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions) 기반 프로토콜을 통해 통신할 수 있다. SIP/SIMPLE는 IM 및 존재 기능을 위한 제1 및 제2 IM 서비스 제공자들 간의 상호 통신 및 연동성을 위한 하나의 예시적인 프로토콜이다. 또한, SIP/SIMPLE는 음성 비디오 등에 대한 서버 대 서버 연동성을 지원할 수 있다.
일례에서, 서버 대 서버 연동성 목적을 위한 특정 SIP/SIMPLE 프로토콜은 SIP RFC 3261, SIP RFC 3265 및/또는 PIDF RFC 3863을 포함한다. 또한, 네트워크들 간의 통신은 원하는 보안 및 IP 필터링 레벨로 TCP를 통해 서버 대 서버 통신할 수 있다.
이 분야의 통상의 전문가들은, 단독으로 또는 다른 통신 시스템들/방법들과 함께 사용되는지에 관계없이, 다양한 다른 통신 프로토콜(개방 또는 독점에 관계없음)이 가능하고 고려된다는 것을 인식할 것이다. 예를 들어 원하는 특정 IM 서비스 제공자들 및 기능에 따라 SIP/SIMPLE 프로토콜에 대한 다양한 변형이 이루어질 수 있다. 예를 들어, 주어진 네트워크 내에서 보다 효율적으로(예를 들어, 전송 속도, 프로세스, 비용 등과 관련하여) 사용되도록 SIP/SIMPLE와 같은 임의의 공지된 프로토콜을 수정할 수 있다. 또한, 상이한 IM 제공자들 간의 통신 및/또는 연동성을 가능하게 하거나 용이하게 하는 XMPP 등과 같은 다른 적절한 통신 프로토콜들이 단독으로 또는 SIP/SIMPLE 프로토콜과 함께 사용될 수 있다.
클라이언트들(110, 112)은 예를 들어 인터넷 브라우저, 퍼스널 컴퓨터, 셀룰러 전화 또는 랩톱 퍼스널 컴퓨터와 같은 모바일 장치 등을 통해 IM 계정들에 액세스하는 사용자를 포함할 수 있다. 사용자는 통상적으로 네트워크(인터넷 또는 인트라넷 등)를 통해 특정 사용자 IM 계정에 대한 각각의 IM 서비스 제공자를 포함하는 하나 이상의 서버에 접속된다. 네트워크는 게이트웨이 서버, 프록시 서버, 계정 서버, 이메일 서버, 모바일 서버 등과 같은 다양한 다른 서버를 더 포함할 수 있다.
컴퓨터 장치를 경유하는 클라이언트는 무선 게이트웨이, 예를 들어 셀룰러, 위성 또는 다른 무선 네트워크와 같은 무선 네트워크를 통해 통신할 수 있다. 또한, 컴퓨터 장치는 케이블 또는 광섬유 네트워크와 같은 비 무선 네트워크, 또는 무선 및 비 무선 시스템들의 조합을 통해 통신할 수 있다. 컴퓨터 장치는 키보드와 같은 입력 장치에 접속된 프로세서, 네트워크 인터페이스, 메모리 및 디스플레이와 같은 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 메모리는 여기에 설명되는 기능들의 일부를 수행하기 위해 장치와 함께 동작 가능한 로직 또는 소프트웨어를 포함할 수 있다. 장치는 이메일 인박스, 인스턴트 메시징(IM), 단문 메시징 서비스(SMS), 멀티미디어 메시징 서비스(MMS) 등과 같은 메시징 기능을 위한 적절한 인터페이스를 포함하도록 동작할 수 있다. 장치는 예를 들어 야후!® 메일 계정 또는 핫메일® 계정과 같은 웹메일 환경들을 포함하는 인터넷 또는 사용자 계정들에 액세스하기 위한 웹 브라우저를 표시하도록 더 동작할 수 있다.
네트워크들(100, 102)은, 서로 통신하고 복수의 사용자의 장치들과 무선 통신할 수 있는 하나 이상의 서버 및 데이터베이스 시스템과 통신하거나 이를 포함할 수 있다. 예시적인 서버 시스템들은 다양한 라우터, 데이터베이스, 게이트웨이, 및 에지 또는 프록시 서버, 게이트웨이 서버, 모바일 서버, 이메일 서버, 웹 서버, 음성 메시징 서버 등과 같은 서버를 포함할 수 있다. 또한, 네트워크(20)는 다양한 사용자, 장치, 서버, 에이전트, 모듈, 클라이언트, 프로세서 등 간의 통신을 가능하게 하는 무선 네트워크 및 하나 이상의 LAN 및/또는 WAN을 포함할 수 있다.
하나의 예시적인 동작에서, 사용자는 클라이언트(110)를 통해 유효 ID 및 패스워드를 이용하여 주요 네트워크에 서명하여 들어간다. 사용자가 주요 네트워크(100)에 성공적으로 들어간 후, 클라이언트(110) 및/또는 주요 네트워크(110)는 보조 네트워크(102) 상에 있는 버디들의 존재/상태에 대한 가입들을 전송하며, 보조 네트워크(102) 상의 참관인(예를 들어, 클라이언트(110)와 연관된 클라이언트(112))에게 주요 네트워크 상의 존재/상태를 지시하는 통지를 전송한다. 사용자가 주요 네트워크로부터 서명하고 나가면, 적절한 가입/통지 메시지들이 보조 네트워크 상의 버디들에게 전송된다.
사용자는 또한 보조 네트워크로부터의 콘택을 차단/무시하고, 보조 네트워크에 대한 그 콘택의 ID를 이용하여 보조 네트워크로부터의 새로운 콘택을 추가하고, 보조 네트워크로부터의 콘택을 삭제하고, 보조 네트워크로부터의 콘택을 개명할 수 있다.
도 2는 여기에 설명되는 몇몇 양태들이 이용될 수 있는 예시적인 IM 서비스 제공자 네트워크의 개요를 나타낸다. 모든 컴포넌트가 필요하지는 않을 수 있으며, 다양한 발명들의 사상 및 범위를 벗어나지 않고 컴포넌트들의 배열 및 유형의 변화가 이루어질 수 있다.
일례에서, 제1 IM 서비스 제공자에 대응하는 주요 또는 제1 네트워크(200)는 에지 프록시(212)를 포함한다. 에지 프록시(212)는 제1 IM 서비스 제공자와 외래 네트워크(202)와 같은 하나 이상의 IM 서비스 제공자를 포함하는 하나 이상의 외부 또는 외래 네트워크 사이에 사용되는 SIP/SIMPLE 또는 다른 통신 프로토콜(들)을 위해 구성될 수 있다. 구체적으로, 에지 프록시(212)는 외부 네트워크(들)에 대한 접속 핸들링 및 라우팅을 제공한다. 에지 프록시(212) 컴포넌트는 옵션이며, 다른 예들에서 게이트웨이(214)는 다른 서버 또는 네트워크 컴포넌트와 직접(예를 들어, 다른 네트워크의 에지 프록시 또는 게이트웨이와 직접) 통신할 수 있다. 그러나, 범용 에지 프록시(212)의 구현은 둘 이상의 외부 네트워크와의 연합을 보다 쉽게 할 수 있다. 에지 프록시(212)의 포함은 또한 하나 이상의 외부 네트워크에 대한 연합 라우팅 및 접속 핸들링의 집중화를 도울 수 있다.
이 예에서, 게이트웨이(214)는 제1 네트워크로의 최종 SIP이며, 제1 네트워크의 클라이언트들을 외부 네트워크(들)에 대한 SIP 엔드 포인트들로서 프록시한다. 따라서, 게이트웨이(214)는 SIP/SIMPLE 통신/이벤트 등을 네트워크(200)의 백엔드 내의 고유 또는 제1 프로토콜 통신으로 변환할 수 있는 로직을 포함한다. 예를 들어, 게이트웨이(214)는 SIP 트래픽을 특정 주요 네트워크/IM 서비스 제공자를 위한 고유 또는 제1 프로토콜로 변환하는 기능 및 그 반대의 기능을 갖는다. 통상적으로, 게이트웨이(214)(또는 균등 컴포넌트)의 스케일 가능성 제한들은 (도 3과 관련하여 더 상세히 설명되는 바와 같은) SIP 스택 구현의 성능에 의존한다. 또한, 특정 네트워크 및/또는 컴포넌트에 의존하는 스케일 가능성을 개선하도록 단체 가입 및 통지를 구현하기 위해 SIP 계층에서 다양한 최적화가 수행될 수 있다. 일례에서, 게이트웨이(214)는 단체화된 가입 및 통지를 핸들링하도록 SIP 스택이 최적화되는 SIP 게이트웨이이다.
게이트웨이(216)는 게이트웨이 이벤트 서버(ES)를 포함하며, 다양한 백엔드 서버, 예를 들어 리버스 버디 이벤트 서버(218), 이벤트 서버(220) 및 접속 서버(222)와 같은 고유 주요 네트워크 서버들과의 통신을 핸들링한다. 게이트웨이(216)는 또한 임의 유형의 외부 IM/존재 프로토콜과 함께 사용될 수 있는 범용 가입 및 다이얼로그 모델을 내보낼 수 있다. 일례에서, 게이트웨이(216)는 더 무 상태이고 스케일 가능성이 크다.
게이트웨이(216)는 실행시간 다이얼로그 상태를 저장하기 위해 세션 관리자(242)를 포함하거나 이에 액세스하고, 외부 사용자들의 주요 네트워크 버디들을 저장하기 위한 버디 스토어(240)를 포함하거나 이에 액세스할 수 있다. 버디 스토어(240)는 예를 들어 외부 사용자 어드레스 또는 다른 식별자에 의해 키잉될 수 있는 외부 사용자들의 주요 계정 버디들(예를 들어, 야후! 버디들, 콘택들 등)을 저장하기 위한 데이터베이스 대체물을 포함할 수 있다. 외부 사용자들로부터의 가입들이 들어올 때, 이들은 버디 스토어(240)에 대해 허가된다. 이것은 SQL 구현들에 의해 수행되거나, 대안으로 독점 데이터베이스에 의해 대체될 수 있다.
세션 관리자(242)는 일반적으로 다이얼로그들의 과도 상태를 저장한다. 일례에서, 세션 관리자(242)는 메모리 저장에서 스케일 가능한 분산 캐싱 메카니즘을 이용하지만, 다른 구현들도 가능하다.
제1 네트워크 백엔드 상의 다양한 다른 서버로부터의 추가 지원이 포함될 수 있다. 예를 들어, RBUM/RBES(218)는 리버스 버디 리스트들에서 외부 ID들을 저장하고 검색할 수 있다. 이벤트 서버(ES)(220)는 메시지들이 게이트웨이(216)로, 따라서 SIP 게이트웨이(214)로(그리고 궁극적으로는 적절한 외부 네트워크 및 외부 사용자에게로) 적절히 전송될 수 있도록 외부 도메인들을 결정할 수 있다.
도 3은 예를 들어 SIP/SIMPLE 게이트웨이(도 2에 도시된 SIP 게이트웨이(214) 등)를 포함하는 예시적인 게이트웨이(300)의 컴포넌트들의 블록도를 나타낸다. SIP/SIMPLE 게이트웨이는 네트워크의 어느 한 쪽 상의(예를 들어, 외부 네트워크와 주요 네트워크/백엔드 사이) 다른 컴포넌트들/서버들을 이용하여 네트워크 I/O를 핸들링할 수 있는 "접속 관리자"를 포함한다. 이것은 또한 옵션인 전송 레벨 보안(예를 들어, 암호화, 인증 등)을 위해 동작할 수 있으며, 다른 컴포넌트들로부터의 전송 레벨 상세들을 추상화한다. 보안 메카니즘은 그와 상호작용하고 있는 컴포넌트의 신뢰 레벨에 따라 간단한 IP 필터링에서 상호 전송 계층 보안(MTLS)까지 다양할 수 있다. 일례에서, 매우 효율적인 비동기 kqueue 기반 I/O가 네트워크 통신들의 일부 또는 모두에 대해 구현될 수 있다. 또한, 접속 풀의 크기 및 거동이 구성 파라미터들을 통해 제어될 수 있다.
일례에서, 게이트웨이는 오픈 소스 SIP 스택, 상용 SIP 스택, 또는 독점 SIP 스택을 포함할 수 있는 SIP 스택(310)을 포함한다. 또한, SIP 추상화 계층(320)은 게이트웨이 구현의 나머지가 사용중인 SIP 스택(310)에 대해 불가지론적이 되게 할 수 있다. API들 및 개체들의 범용 세트가 이러한 추상화를 제공할 수 있다. 결과적으로, 설계는 원할 경우에 완전히 다르거나 수정된 SIP 구현의 채택에 매우 연관적(conductive)이다.
이 예에서는 SIP 엔드 포인트 존재, 다이얼로그 관리자(330)가 더 포함된다. 예를 들어, 외부/외래 클라이언트(예를 들어, MSN 클라이언트)와 통신하기를 원하는 주요 네트워크 클라이언트에 대해, 이 컴포넌트는 논리적 SIP 종료 포인트(엔드 포인트)를 생성한다. 종료 포인트들은 네트워크들의 어느 한 쪽으로부터의 관심이 존재할 때마다 온-디맨드 방식으로 생성된다. 이러한 종료 포인트들 각각에 첨부되는 SIP SUBSCRIBE 및 INVITE 다이얼로그들은 다이얼로그 관리자에 의해 추적되고 관리된다. 아래의 SIP 기능은 주요 네트워크 클라이언트들 대신에 SIP 엔드 포인트 존재, 다이얼로그 관리자(330)에 의해 핸들링될 수 있다.
주요 네트워크 클라이언트 대신에 SUBSCRIBE를 송수신한다.
주요 네트워크 클라이언트 대신에 SUBSCRIBE 다이얼로그들(들어오는 것과 나가는 것 양자)을 추적, 관리한다.
주요 네트워크 클라이언트 대신에 SUBSCRIBE 리프레시를 송신/처리한다.
주요 네트워크 클라이언트 대신에 NOTIFY를 송수신한다.
PDIF(Presence Information Data Format) 존재 정보를 파싱하고 요약한다.
주요 네트워크 클라이언트 존재 경보를 PDIF 포맷으로 변환한다.
주요 네트워크 클라이언트 대신에 INVITE를 송수신한다.
주요 네트워크 클라이언트 대신에 INVITE 다이얼로그들을 추적, 관리한다.
주요 네트워크 클라이언트 대신에 IM을 송수신한다.
주요 네트워크 클라이언트 대신에 타이핑 통지를 송수신한다.
주요 네트워크 클라이언트 대신에 UNSUBSCRIBE를 송수신한다.
SIP 엔드 포인트 존재, 다이얼로그 관리자(330) 컴포넌트는 다양한 SIP 다이얼로그의 이들에 대응하는 주요 네트워크 클라이언트 종료 포인트들로의 맵핑을 돕기 위해 그 자신의 상태 정보 및 탐색 테이블들을 더 유지할 수 있다. 또한, 이 컴포넌트는 존재의 다수의 포인트(MPOP) 또는 동일 주요 네트워크 클라이언트에 대한 다수의 종료 포인트를 유지하도록 동작할 수 있다.
통상적으로 (예를 들어, 주요 네트워크 상에서) 둘 이상의 게이트웨이 머신이 실행되고, 주어진 종료 포인트가 게이트웨이 머신들 중 하나에서만 그의 관련 상태를 가지므로, 세션 관리자(예를 들어, 도 4 참조)는 네트워크 내에서 메시지들을 적절한 게이트웨이 머신으로 라우팅하는 것을 더 도울 수 있고, 그 반대도 마찬가지다. 적절한 로직은 메시지들이 시스템의 스케일 가능성을 저하시키지 않고 적절한 다이얼로그 컨텍스트에서 처리되는 것을 보장할 수 있다.
또한, 이 예에서, 게이트웨이는 SIP-고유 브리지(340)를 포함한다. SIP-고유 브리지(340)는 일반적으로 SIP 포맷을 고유 백엔드 포맷으로 그리고 그 반대로, 예를 들어 네트워크 고유 포맷으로 그리고 그 반대로 변환하도록 동작한다. 주요 네트워크는 예를 들어 개별 머신들을 무상태화하는 비교적 빠르고 집중화된 상태 저장을 이용하는 서버들을 포함할 수 있다. 이러한 아키텍처는 일반적으로 게이트웨이들과 주요 네트워크 서버들 간의 무결함 클러스터링/로드 밸런싱을 가능하게 한다. SIP-고유 브리지(340)은 고유 주요 네트워크 프로토콜로 이러한 주요 네트워크 서버들의 클러스터와 대화한다. 이것은 또한 외부 네트워크 클라이언트들에게 지향되는 개별 주요 네트워크 클라이언트들로부터의 메시지들을 수신하여 처리한다.
도 4-21은 하나 이상의 외부 네트워크/인스턴트 메시징 서비스 제공자와 통신하는 제1 네트워크 백엔드의 컴포넌트들 간의 다양한 예시적인 통신 및 이벤트 흐름을 나타낸다.
도 4는 외부 네트워크와 통신하는 게이트웨이를 포함하는 주요 서비스 제공자 네트워크 백엔드의 전체 아키텍처를 나타낸다. 이 예에서, 에지 프록시(EP; 412)는 액세스 제어, 준비, 및 외부 네트워크에 대한 라우팅은 물론, 외부 네트워크에 대한 SIP/SIMPLE 메시지들의 접속 풀링 및 전송을 위해 제공된다. 일반적으로, 에지 프록시(412)는 하나 이상의 도메인과 통신하도록 동작하고 구성된다. 또한, SIP 게이트웨이(SGW; 414)는 주요 네트워크 클라이언트들을 외부 네트워크에 대한 SIP 엔드 포인트들로서 프록시하고, 주요 네트워크 인스턴트 메시징 요청들을 SIP/SIMPLE 메시지들로 맵핑하고, 그 역을 행하도록 동작한다. 일례에서, SGW(414)는 SIP 스택(예를 들어, 오픈 소스 SIP 스택, 상용 SIP 스택 또는 독점 SIP 스택)에 의존하며, 유상태(stateful)이다. 게이트웨이 ES(GWES; 416)는 인터-도메인 게이트웨이 요청들(주로 IM 및 존재)을 핸들링하도록 동작하고, SIP 게이트웨이(414) 및 하나 이상의 주요 네트워크 백엔드 서버를 브리지하며, GWES(416)는 일례에서 무상태이고 스케일 가능성이 크다.
아키텍처는 주요 네트워크의 백엔드 서버들에 대한 SIP 다이얼로그 라우팅 정보를 저장하는 세션 관리자(SM; 422)를 더 포함한다. 예를 들어, 각각의 레코드는 주요 네트워크 클라이언트 ID, 게이트웨이 ID 및 다이얼로그 유형(IM, 존재 등)에 의해 키잉되며, 대응 SIP 다이얼로그를 유지하는 특정 SGW 서버(414)를 지시하는 SGW 키를 포함한다. 세션 관리자 서버는 데이터 파티션 및 피어 복제를 지원하는 메모리 캐시 관리 시스템 내에 있다.
게이트웨이 DB(GWDB; 440)는 외부 사용자들에 대한 지속 정보(예를 들어, 버디 리스트 또는 다른 정보)를 저장한다. 일례에서, MySQL 서버가 영구 저장 장치로서 사용된다. 일례에서, GWDB(440)는 데이터 파티션 및 피어 복제를 지원하도록 구성되지만, 접속 풀링 능력과 같은 shmproxy가 결여되어 있다.
도 4는 외부 네트워크와 통신하기 위한 예시적인 아키텍처의 일 구현을 나타내지만, 다양한 다른 아키텍처도 가능하다. 예를 들어, 다양한 컴포넌트가 제거될 수 있고 그리고/또는 이들의 기능이 다른 컴포넌트들과 결합될 수 있다. 단일 게이트웨이 장치는 예를 들어 GWES(416) 및 SGW(414)의 기능들을 수행하기 위한 로직을 포함할 수 있다. 또한, 몇몇 예에서, 에지 프록시(412)가 제거되거나, 그의 기능이 다른 머신에 의해 수행될 수 있다.
도 4를 계속 참조하면, 도 5는 주요 네트워크에 대한 사용자의 로그인을 나타낸다. 1.1에서 사용자에 의한 로그인시, 이벤트 서버(ES; 420)(도 4 참조)는 다음을 수행하는데, 즉 각각의 버디에 대해, ES(420)는 그의 도메인을 식별하고, 이 정보를 프리로그인 데이터 1.3 내에서 클라이언트에게 전송한다. 또한, 로그인 1.3시, 리버스 버디들과 같은 외부 사용자들/참관인들에게 통지가 전송된다(예를 들어, ES 서버(420)에서 GWES(416)로, SGW(414)로 그리고 외부 네트워크로; 2.1-2.2). 일례에서, ES(420)는 RBES(ES(400) 내에 포함될 수 있음)에게 사용자 로그인에 대하여 통지하고, RBES는 도메인 정보를 이용하여 클라이언트 리버스 버디 리스트 상에서 외부 사용자들/참관인들을 식별하고, GWES(416)에게 통지를 전송한다. GWES(416)는 SM(442)으로부터 SGW 키를 탐색하고, 외부 참관인들을 적절히 분류하고, SGW(414)에게 통지한다. SGW(414)는 메모리 캐시에서 외부 참관인들에 대한 다이얼로그들을 탐색한 후, 다이얼로그들을 통해 SIP NOTIFY 요청들을 외부 네트워크에 전송한다. SGW(414)가 외부 참관인에 대한 다이얼로그를 발견할 수 없는 경우, 후속 통지를 중지하기 위해 가입 해제 요청을 GWES(416)에게 전송해야 한다.
또한, 클라이언트는 외부 버디들에 대한 존재 정보에 가입한다(예를 들어, ES(420)에서 GWES(416)로, SGW(414)로, 외부 네트워크로; 3.1-3.5). 일례에서, ES(420)는 연합 도메인 정보를 이용하여 주요 서비스 제공자 사용자의 버디 리스트 상에서 외부 버디들을 식별하고, GWES(416)에 가입 요청을 전송한다. GWES(416)는 가입 요청을 SGW(414)에 전송하며, 각각의 외부 버디에 대해, SGW(414)는 다이얼로그가 가입에 대해 이미 존재하는지를 검사한다. 그러한 경우, 가입을 리프레시하기 위해 외부 네트워크에 요청을 전송하고, 그렇지 않은 경우에는 외부 네트워크 버디에 대한 새로운 다이얼로그를 생성하고, SIP SUBSCRIBE 요청을 외부 네트워크에 전송한다. SGW(414)가 외부 네트워크로부터 OK 또는 에러 응답을 취득할 때, 대응하는 캐시된 다이얼로그를 갱신 또는 삭제한 후, 응답을 GWES(416)에 전달한다. 응답이 "OK"인 경우, GWES(416)는 SGW 키를 SM(442)에 저장한다. 가입이 금지된 에러로 인해 거절되는 경우, 이것은 외부 사용자가 더 이상 유효하지 않음을 의미한다. GWES(416)는 UDB(422) 및 GWDB(440)로부터 외부 사용자를 삭제할 수 있으며, 주요 네트워크 클라이언트에게 통지를 전송할 수 있다.
일례에서, 최초 존재 통지는 성공적으로 가입된 외부 버디들에 대해 발행될 수 있으며, 클라이언트에 의해 필터링될 수 있는 오프라인 통지를 포함할 수 있다(예를 들어, 외부 네트워크에서 SGW(414)로, GWES(416)로, 주요 네트워크 클라이언트로; 4.1-4.3). 예를 들어, 외부 네트워크는 SGW(414)에게 통지를 전송한다. 대응하는 다이얼로그가 발견되지 않으면, SGW(414)는 통지를 버리며, 그렇지 않은 경우에는 통지를 GWES(416)에게 전달한다. GWES(416)는 통지를 주요/고유 포맷 또는 프로토콜로 변환하며, GWES(416)는 UM(420)으로부터 타겟 접속 정보를 취득하고, 주요 네트워크 클라이언트에게 통지를 전달한다.
도 6은 외부 사용자들에 대한 예시적인 로그인 프로세스를 나타낸다. 이 예에서, 외부 사용자에 의한 로그인시, 통지가 주요 네트워크 참관인들에게 전송된다(예를 들어, 외부 네트워크에서 SGW(414)로, GWES(416)로, 주요 네트워크 클라이언트(들)로 라우팅됨; 1.1-1.3). 구체적으로, 외부 네트워크는 각각의 주요 네트워크 참관인에 대해 SGW(414)로 온라인 통지를 전송한다. SGW(414)는 주요 네트워크 참관인에 대한 대응 다이얼로그를 탐색하고, 다이얼로그가 발견되지 않으면, SGW(414)는 에러 응답을 외부 네트워크에 전송하며, 통지는 전달되지 않는다. 다이얼로그가 발견되면, SGW(414)는 GWES(416)에 통지를 전송하며, GWES(416)는 통지를 필터링하고 변환하여 주요 네트워크 참관인에게 전달한다.
이어서, 외부 사용자는 주요 네트워크 클라이언트 버디들의 존재 상태들을 관찰하도록 가입할 수 있다(예를 들어, 외부 네트워크에서 SGW(414)로, GWES(416)로의 흐름; 2.1-2.5). 구체적으로, 외부 네트워크는 각각의 주요 네트워크 버디에 대한 가입 요청을 전송한다. SGW(414)는 가입에 대한 다이얼로그를 생성하고, 가입 요청을 GWES(416)에 전송한다. GWES(416)는 GWDB(440)를 탐색하여 주요 네트워크 클라이언트들이 외부 사용자의 버디 리스트 상에 있는지를 검사하고, 그렇지 않은 경우, 요청을 버디 추가 요청으로서 해석한다. 주요 네트워크 클라이언트가 버디 리스트 상에 있지만, 승인 심리(pending) 중인 경우, GWES(416)는 오프라인 통지가 이어지는 OK 응답을 SGW(414)에게 전송한다. 주요 네트워크 클라이언트가 액티브 버디인 경우, GWES(416)는 외부 사용자를 주요 네트워크 클라이언트의 리버스 버디 리스트에 추가하기 위한 요청을 RBES(418)에 전송한 후, UM(420)으로부터 주요 네트워크 클라이언트의 초기 존재 상태를 검색하고, 필요한 경우에는 상태를 변환하고, 이를 SGW(414)에 전송한다. SGW(414)가 GWES(416)로부터 OK 응답을 취득하는 경우, 캐시 내의 다이얼로그를 갱신하고, 응답은 물론 초기 존재 상태 통지를 외부 네트워크에 전달한다. SGW(414)가 GWES(416)로부터 에러 응답을 취득하는 경우, 캐시 내의 다이얼로그를 삭제하고, 에러 응답을 외부 네트워크로 전송한다.
몇몇 예에서, 몇몇 네트워크 백엔드에 대해, 외부 사용자가 다수의 위치로부터 로그인하는 경우, 사용자는 주요 네트워크에 다수의 가입을 전송한다. 이러한 사례에서, SGW(414)는 그의 메모리 캐시 내에 외부 사용자 ID에 의해 키잉되는 다수의 다이얼로그를 생성하고 저장할 수 있다. 나중에 주요 네트워크 클라이언트 버디가 존재 통지를 외부 사용자에게 전송하는 경우, 통지는 SGW(414)에 저장된 다수의 다이얼로그에 대응하는 각각의 외부 위치로 전달된다.
도 7 및 8은 주요 사용자 및 외부 사용자 각각에 대한 예시적인 로그오프 프로세스를 나타낸다. 주요 네트워크 클라이언트가 로그오프하는 경우, 오프라인 통지가 외부 참관인들에게 전송된다(예를 들어, ES(418)에서 RBES로, GWES(416)로, SGW(414)로, 외부 네트워크로; 1.1-1.3). 또한, 외부 버디들의 존재에 대한 가입 해제 프로세스가 수행된다(예를 들어, ES(418)에서 GWES(416)으로; 2.1-2.2). 예를 들어, GWES(416)는 SM(422)으로부터 SGW 키들을 탐색하고, 대응하는 SGW들(414)에게 요청을 전송한다. 이어서, SM(442)로부터 SGW 라우트 레코드를 제거한다. SGW들은 가입 해제 요청을 외부 네트워크에 전송하며, 그의 메모리 캐시에서 대응 다이얼로그들을 삭제한다.
외부 사용자가 로그오프하는 경우, 온라인 통지가 주요 네트워크 클라이언트 참관인들에게 전송된다(예를 들어, 외부 네트워크에서 SGW(414)로, GWES(416)로, 주요 네트워크 클라이언트로; 1.1-1.3). 또한, 주요 네트워크 클라이언트 버디 존재에 대한 가입 해제 프로세스가 수행된다(예를 들어, 외부 네트워크에서 SGW(414)로, GWES(416)로, RBES(418)로; 2.1-2.2). SGW(414)는 대응 다이얼로그들을 삭제하고, GWES(416)에게 가입 해제 요청을 전송한다. GWES(416)는 SM(442)으로부터 SGW(414) 라우트를 제거하며, 주요 네트워크 클라이언트 버디의 참관인 리스트(즉, 리버스 버디 리스트)로부터 외부 사용자들을 제거한다.
도 9 및 10은 주요 네트워크 클라이언트들 및 외부 사용자들의 존재 상태들을 각각 변경하는 이들과 연관된 프로세스들을 나타낸다. 일례에서, 주요 네트워크 클라이언트는 그의 존재를 변경하며, 존재 통지를 발행한다. RBES(418)는 연합 도메인 정보를 이용하여 외부 네트워크로부터 어떠한 리버스 버디들이 유래되는지를 식별하고, GWES(416)에 통지를 전송한다. 이어서, 존재 변경 통지가 외부 참관인들에 대해 외부 네트워크로 전송된다. 일례에서, GWES(416)는 주요 네트워크 클라이언트 상태를 필터링하거나 적절한 외부 상태로 변환한다. GWES(416)는 SM(442)으로부터 SGW 키를 탐색하고, SGW(414)에 통지를 전송한다. SGW(414)는 각각의 기존 다이얼로그들에 대해 외부 네트워크로 통지를 전송하고, 다이얼로그가 발견되지 않으면, 후속 통지를 중지하기 위하여 가입 해제 요청을 GWES(416)에 전송해야 한다. 일례에서, 주요 네트워크 클라이언트 상태와 외부 상태 간의 매치가 매치업되지 않는 경우, 통지는 GWES(416)에 의해 필터링(제거)된다.
외부 사용자가 존재 상태를 변경하는 경우, SGW(414)는 대응하는 다이얼로그를 찾는다(그리고 다이얼로그가 발견되지 않는 경우, 외부 네트워크에 에러 응답을 전송할 수 있다). SGW(414)는 통지를 GWES(416)에 전송하고, GWES(416)는 존재 통지를 주요 네트워크 클라이언트에 대한 매칭 상태로 변환한다. 주요 네트워크는 원할 경우에 커스텀 메시지를 이용하여 비 매칭 상태를 고유 상태로 변환할 수 있다. GWES(416)는 UM(420)으로부터 타겟 접속 정보를 취득하고, 적절한 주요 네트워크 클라이언트에게 통지를 전달한다.
도 11 및 12는 상이한 제공자들의 사용자들로부터의 존재 가입을 종결시키기 위한 사용자들에 대한 예시적인 프로세스들을 나타낸다. 예를 들어, 도 11에서, 주요 네트워크 클라이언트는 외부 사용자로부터의 존재 가입을 종결시키며, 이는 스팸 제어 등에 바람직할 수 있다. 외부 사용자의 가입을 종결시킬 것을 요청하는 클라이언트 종결 요청은 GWES(416)에 의해 핸들링된다. GWES(416)는 GWDB(440)로부터 외부 사용자의 버디 리스트를 취득하고, GWES(416)는 각각의 주요 네트워크 클라이언트 버디의 리버스 버디 리스트로부터 외부 사용자들을 제거하기 위한 요청을 RBES에게 전송한다.
이어서, 종결 요청은 외부 사용자에게 전송된다(예를 들어, GWES(416)에서 SGW(414)로, 외부 네트워크로). 일례에서, GWES(416)는 SM(442)으로부터 SGW 키를 탐색하고, SGW(414)에 종결 요청을 전송한다. GWES(416)는 SM(442)으로부터 SGW 라우트 레코드를 제거하고, SGW(414)는 그의 캐시 메모리에서 다이얼로그들을 삭제하며, 종결 요청을 외부 네트워크에 전송한다. 외부 네트워크는 오프라인 통지를 외부 사용자에게 전송하고, 외부 네트워크는 그의 가입 레코드를 적절히 갱신한다. GWES(416)는 요청을 그의 종결 로그에 기록한다.
또한, 도 12에 도시된 바와 같이, 외부 네트워크는 고유 사용자로부터의 존재 가입을 종결시킬 수 있다. 일례에서, SGW(414)는 외부 사용자의 존재에 대한 주요 네트워크 클라이언트의 가입을 종결시키기 위한 요청을 수신한다. SGW(414)는 그의 메모리 캐시에서 다이얼로그를 제거하고, 종결 요청을 GWES(416)에 전송한다. GWES(416)는 SM(442)으로부터 라우트 레코드를 제거하고, GWES(416)는 주요 네트워크 클라이언트 오프라인 통지를 전송한다. 외부 사용자가 이미 주요 네트워크 클라이언트에 대해 오프라인으로 나타나는 경우, 주요 네트워크 클라이언트는 통지가 필터링되어야 하는지를 결정할 수 있다.
도 13 및 14는 고유 사용자가 외부 버디를 추가하기 위한 예시적인 프로세스들을 나타낸다. 도 13의 제1 예에서, 주요 네트워크 클라이언트는 외부 사용자를 버디로서(예를 들어, 그의 버디 리스트 등에) 추가하도록 요청한다. 외부 네트워크로부터, 최초의 오프라인 통지 2.1-2.3(클라이언트의 버디 추가 요청에 의해 트리거되는 가입을 위한 확인으로서)가 온라인 통지 3.1-3.3에 의해 이어진다(이 프로세스는 외부 사용자가 주요 네트워크 클라이언트의 버디 추가 요청을 승인한 것으로 가정한다).
구체적으로, 주요 네트워크 클라이언트가 외부 사용자를 추가할 것을 요청할 때, ES(418)는 외부 사용자를 UDB 및 UM(420) 내의 주요 네트워크 클라이언트의 버디 리스트에 추가한 후, 요청을 GWES(416)에 전달하는데, 이는 새로운 버디가 외부 사용자이기 때문이다. 이어서, GWES(416)는 외부 사용자의 존재에 가입하기 위해 SGW(414) 및 외부 네트워크에 정보를 전달한다(주요 네트워크 클라이언트가 외부 사용자를 버디로서 추가할 것을 요청하고 있는 경우). SGW(414)가 외부 네트워크로부터 OK 응답을 취득하는 경우, SGW(414)는 메모리 캐시에 다이얼로그를 저장하고, 응답을 GWES(416)로 전달한다. GWES(416)는 라우트 레코드를 SM(442)에 추가하고, OK 응답을 주요 네트워크 클라이언트에 전송한다. SGW(414)가 외부 네트워크로부터 외부 ID가 무효임을 지시하는 에러 응답을 취득하는 경우, SGW(414)는 대응 다이얼로그를 삭제하고, 에러 응답을 GWES(416)에 전송한다. GWES(416)는 UDB 및 UM(420) 내의 주요 네트워크 클라이언트의 버디 리스트로부터 외부 사용자를 제거하고, 에러 응답을 주요 네트워크 클라이언트에게 전송한다.
외부 네트워크로부터, 오프라인 통지가 전송된 가입 요청에 대한 확인으로서 최초 전송된다(예를 들어, SGW(414)에서 GWES(416)로, 외부 사용자가 오프라인으로 있는 주요 네트워크 클라이언트로). 주요 네트워크 클라이언트는 최초 오프라인 통지를 버릴 것인지의 여부를 결정할 수 있다. 마지막으로, 외부 네트워크로부터, 사용자가 온라인으로 있다는 온라인 통지가 전송된다(외부 사용자가 버디 추가 요청을 승인한 것으로 가정한다).
일례에서, 외부 사용자는 가입 요청에 대하여 외부 네트워크로부터 OK 응답을 취득한 직후에 주요 네트워크 클라이언트의 버디 리스트에 추가된다. 이 예의 특정 구성에서 심리 상태가 존재하지 않는데, 이는 외부 사용자가 추가 요청을 언제 승인/거부할지를 검출할 필요가 없기 때문이다.
도 14는 외부 사용자들이 추가를 거부하는 예를 나타낸다. 프로세스/이벤트 흐름은 최종 이벤트 시리즈 3.1-3.3 외에는 (예를 들어, 외부 사용자의 추가 승인이 없는) 도 13의 그것과 유사하다.
도 15 및 16은 주요 네트워크 클라이언트를 외부 사용자에 대한 버디로서 추가하기 위한 예시적인 프로세스들을 나타낸다. 일반적으로, 외부 사용자는 주요 네트워크 클라이언트를 버디로서 추가할 것을 요청하며, 주요 네트워크 클라이언트는 추가 요청을 승인한다.
구체적으로, 외부 사용자는 주요 네트워크 클라이언트의 존재에 가입함으로써(1.1) 주요 네트워크 클라이언트를 버디로서 가입시킬 것을 요청한다. SGW(414)는 가입 요청을 GWES(416)에 전송하고, GWES(416)는 GWDB(440)을 탐색하여, 이 요청이 버디를 추가하는 것을 암시하는지를 검출하는데, 이는 주요 네트워크 클라이언트가 외부 사용자의 버디 리스트 상에 있지 않기 때문이다. GWES(416)는 UDB(420)를 탐색하여, 주요 네트워크 클라이언트 ID가 유효한지를 검사한다. 그렇지 않은 경우, SGW(414)를 통해 외부 네트워크로 에러 응답을 전송한다. 주요 네트워크 ID가 유효한 경우, GWES(416)는 SGW(414)에 OK 응답을 전송한다. SGW(414)는 캐시 내에 다이얼로그를 생성하고, 외부 네트워크에 OK 응답을 전달한다. 일례에서, 외부 사용자는 주요 네트워크 클라이언트가 오프라인 상태임을 통지받는다(예를 들어, GWES(416)에서 SGW(414)로, 외부 네트워크로). GWES(416)는 SM(442)에 라우트 레코드를 추가하고, GWES(416)는 GWDB(440)에서 심리 상태에 있는 주요 네트워크 클라이언트를 외부 사용자의 버디 리스트에 추가한다. 마지막으로, (예를 들어, GWES(416)를 통해 CS(420)로, 주요 네트워크 클라이언트로) 주요 네트워크 클라이언트로부터 승인이 요청된다.
주요 네트워크 클라이언트가 추가 요청을 승인하는 경우, ES(418)는 버디 추가 승인 요청을 GWES(416)로 전송한다. GWES(416)는 GWDB(440)에서 주요 네트워크 클라이언트 버디의 상태를 심리 상태에서 액티브 상태로 변경한다. GWES(416)는 갱신 요청을 RBES(418)에 전송하여, 외부 사용자를 주요 네트워크 클라이언트의 리버스 버디 리스트에 추가한다. GWES(416)는 UM(420)으로부터 주요 네트워크 클라이언트의 온라인 상태를 취득하고, 이를 외부 상태로 변환한다. 주요 네트워크 클라이언트의 온라인 존재 통지는 외부 사용자에게 전송된다(예를 들어, GWES(416)를 통해 SGW(414)로, 외부 네트워크 및 사용자에게).
GWDB(440)에서, 각각의 버디 레코드는 상태(예를 들어, 액티브, 심리, 거부) 및 타임스탬프를 포함한다. 상태는 버디 추가 흐름의 관리와 같은 다양한 목적으로 사용될 수 있으며, 타임스탬프는 주요 네트워크 클라이언트들에 대한 외부 네트워크로부터의 과다 SUBSCRIBE로부터 보호하는 데 사용될 수 있고, 또한 쓰레기 수집을 위해 사용될 수도 있다.
도 15는 주요 네트워크 클라이언트가 추가 요청을 거부하는 예를 나타낸다. 프로세스/이벤트 흐름은 최종 이벤트 시리즈 2.2-2.4 외에는 도 14의 그것과 유사하다. 또한, 이벤트 2.1은 GWDB(440) 내의 외부 사용자의 버디 리스트 상에서 주요 네트워크 클라이언트의 상태를 "심리"에서 "거부"로 변경하는 것이다. 몇몇 예에서, 외부 네트워크는 외부 사용자에게 거부 이벤트를 통지하지 않지만, 외부 사용자가 다시 로그인할 때마다 가입 요청을 피하기 위해, 주요 네트워크는 거부된 요청과 연관된 거부 상태를 유지할 수 있다. 거부 상태를 갖는 버디 레코드들은 조정의 기간 후에는 쓰레기로서 수집될 수 있다.
도 17 및 18은 외부 네트워크 서비스 제공자로부터 버디를 삭제하기 위한 예시적인 프로세스를 나타낸다. 도 17에서, 주요 네트워크 클라이언트가 외부 버디를 삭제한다. 이 예에서, GWES(416)는 외부 사용자가 주요 네트워크 클라이언트의 버디임을 검증하고, UDB 및 UM(420) 내의 주요 네트워크 클라이언트의 버디 리스트로부터 외부 사용자를 삭제한다. 이어서, 주요 네트워크 클라이언트는 삭제된 요청에 대한 응답(예를 들어, GWES(416)에서 CS(420)으로, 주요 네트워크 클라이언트로의 OK, 에러 등과 같은 응답)을 통지받는다. 또한, GWES(416)는 SGW(414)(및 외부 네트워크)와 통신하여 외부 사용자의 존재에 대한 가입을 해제하고, 다이얼로그 및 라우트 레코드들을 제거한다.
도 18에는, 버디 리스트로부터 주요 네트워크 클라이언트를 삭제하는 외부 사용자가 도시되어 있다. 이 예에서, 외부 사용자는 주요 네트워크 클라이언트의 존재에 대한 가입을 해제한다. SGW(414)는 다이얼로그를 삭제하고, 가입 해제 요청을 GWES(416)에 전송한다. GWES(416)는 SM(442)으로부터 SGW(414)로의 라우트를 제거한다. 또한, GWES(416)는 주요 네트워크 클라이언트의 리버스 버디 리스트로부터 외부 사용자를 제거한다.
도 19는 주요 네트워크 클라이언트와 외부 사용자 간의 IM 세션을 개시하기 위한 예시적인 프로세스를 나타낸다. 이 예에서, 주요 네트워크 클라이언트는 외부 사용자와의 IM 세션을 개시하도록 요청하기 위해(예를 들어, 주요 네트워크 클라이언트로부터의 요청이 ES(418)에서 GWES(416)로 통신된다) 주요 네트워크 클라이언트를 이용하여 IM 세션을 개시한다. GWES(416)는 새로운 세션을 검증한다. 일례에서, 시스템은 주요 네트워크 클라이언트가 세션 기반 IM을 지원하지 않는지를 검사하고, 그러한 경우에 에러 리턴이 클라이언트에게 전송되고, 그렇지 않은 경우에는 IM 세션 개시 요청이 SGW(414)로 전송된다. IM 세션 다이얼로그가 이미 존재하는 경우, GWES(416)에 OK가 리턴되며, 그렇지 않은 경우에는 SIP INVITE 요청이 외부 네트워크로 전송된다.
SGW(414)는 외부 네트워크로부터 응답을 취득하며, 응답이 OK인 경우에 세션 다이얼로그가 캐시에 저장되고, 그렇지 않은 경우에는 다이얼로그가 삭제된다. SGW(414)는 또한 응답을 GWES(416)에 전송한다. GWES(416)는 SGW(414)로부터 응답을 취득하고, 응답이 OK인 경우에 SM에 SGW(414) 라우트 레코드를 저장하고, 응답을 주요 네트워크 클라이언트에 전달한다. 이 시점에서, 주요 네트워크 클라이언트는 IM 통신을 전송할 수 있다.
주요 네트워크 클라이언트가 세션 기반 IM을 지원하지 않는 클라이언트를 이용하여 IM 세션을 개시하는 예들에서, 프로세스는 다음과 같다. 주요 네트워크 클라이언트는 제1 IM을 ES(418)에 전송한다. ES(418)는 수신자를 외부 사용자로서 식별하고(연합 도메인 정보 등을 이용함), 요청을 GWES(416)에 전송한다. GWES(416)는 SM(442)을 탐색하여, 송신자 및 수신자에 대해 아직 IM 세션이 존재하지 않는 것으로 판정하며, 따라서 새로운 세션 검증을 계속 수행한다(예를 들어, 이 사례에서는 YPC 마이너를 검사한다). 검증에 실패한 경우, 에러가 주요 네트워크 클라이언트로 전송되고, 그렇지 않은 경우에는 제1 IM이 SGW(414)로 전송된다. SGW(414)는 캐시를 탐색하여, 세션이 아직 존재하지 않음을 발견하고, IM을 캐싱하고, SIP INVITE 요청을 외부 사용자에게 전송한다. SGW(414)는 외부 사용자로부터 응답을 취득하고, 세션이 승인된 경우에 SGW(414)는 캐시 내의 다이얼로그를 갱신하고, IM을 외부로 방출하며, 세션이 거절된 경우에는 SGW(414)는 캐시 내의 최초 다이얼로그를 삭제하고, 캐시된 IM을 제거하고, 응답을 GWES(416)에 전송한다. GWES(416)는 세션이 승인된 경우에 SGW(414)로부터 응답을 취득하고, SGW(414)는 SM(442)에 라우트를 저장한다.
또한, 도 19에는 외부 사용자가 주요 네트워크 클라이언트를 이용하여 IM 세션을 개시하는 일례가 도시되어 있다. 외부 네트워크는 SIP INVITE를 SGW(414)에 전송한다. 송신자 및 수신자에 대해 IM 다이얼로그가 이미 존재하는 경우(예를 들어, 다수의 외부 네트워크 클라이언트가 실행되고 있는 경우), SGW(414)는 SIP BYE를 외부 사용자에게 전송하여 이전 세션을 종료한 후, 새로운 세션 다이얼로그를 캐시에 저장한다. SGW(414)는 IM 개시 요청을 GWES(416)에 전송하고, GWES(416)는 새로운 세션을 검증한다. 예를 들어, GWES(416)는 주요 네트워크 클라이언트 ID가 유효한지를 검사하고, YPC 제한을 검사하고, 주요 네트워크 클라이언트들(수신자들)이 리스트를 무시하는지를 검사한다. 검증이 OK인 경우, GWES는 SM에 SGW 키를 저장하고, SGW(414)에 OK를 리턴하며, 그렇지 않은 경우에는 SGW(414)에 에러를 전송한다. SGW(414)는 GWES(416)로부터의 응답을 검사하여, 최초 다이얼로그를 적절히 갱신 또는 삭제한다. 이어서, SGW(414)는 OK 또는 에러 응답을 외부 네트워크에 전송한다.
도 20은 주요 네트워크 클라이언트와 외부 사용자 간의 타이핑 통지를 위한 예시적인 이벤트 흐름을 나타낸다. IM 세션이 설정된 후, IM 및 타이핑 통지 요청이 교환될 수 있다. 주요 네트워크에서 외부 네트워크로 나가는 요청에 대해, GWES(416)는 SM으로부터 SGW 키를 탐색한 후, 요청을 대응 SGW(414) 서버로 전송하며, 이 서버는 이후 요청을 외부 네트워크로 전송한다. 외부 네트워크에서 주요 네트워크로 나가는 요청에 대해, SGW(414)는 캐시 내의 대응 다이얼로그를 탐색하고, 다이얼로그가 발견되지 않는 경우, 요청이 제거되며, 그렇지 않은 경우에는 요청이 GWES(416)로 전송되고, 이어서 GWES는 요청을 적절한 주요 네트워크 클라이언트로 전달한다.
도 21은 주요 네트워크와 외부 사용자 간의 IM 세션을 종료하기 위한 이벤트 흐름을 나타낸다. 주요 네트워크 클라이언트가 IM 세션을 종료하는 경우, 종료 요청이 ES(418)를 통해 GWES(416)로 전달되어 IM 세션이 종료된다. GWES(416)는 SM(442)으로부터 SGW 키를 탐색하고, 요청을 SGW(414)로 전송하고, SM(442)으로부터 SGW 라우트 레코드를 삭제한다. SGW(414)는 캐시 내의 다이얼로그를 삭제하고, SIP BYE를 외부 사용자에게 전송하여 세션을 종료한다.
외부 사용자가 IM 세션을 종료하는 경우, 외부 사용자는 SIP BYE를 SGW(414)에 전송한다. SGW(414)는 캐시 내의 다이얼로그를 삭제하고, IM 세션 종료 요청을 GWES(416)에 전송한다. GWES(416)는 SM 내의 SGW 라우트 레코드를 삭제한다. 또한, GWES(416)는 주요 네트워크 클라이언트에 IM 세션 종료 요청을 전송할 수 있다.
도 22는 (예를 들어, 게이트웨이 서버 또는 머신으로서) 본 발명의 다양한 양태의 처리 기능을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템(600)을 나타낸다. 관련 분야의 전문가들은 다른 컴퓨터 시스템들 또는 아키텍처들을 이용하여 어떻게 본 발명을 구현하는지를 또한 인식할 것이다. 컴퓨팅 시스템(600)은 주어진 응용 또는 환경에 바람직하거나 적절할 수 있을 때, 예를 들어 데스크톱, 메인프레임, 서버, 클라이언트, 또는 임의의 다른 유형의 특수 또는 일반 목적 컴퓨팅 장치를 나타낼 수 있다. 컴퓨팅 시스템(600)은 프로세서(604)와 같은 하나 이상의 프로세서를 포함할 수 있다. 프로세서(604)는 예를 들어 마이크로프로세서, 마이크로컨트롤러 또는 다른 제어 논리와 같은 일반 또는 특수 목적 처리 엔진을 이용하여 구현될 수 있다. 이 예에서, 프로세서(604)는 버스(602) 또는 다른 통신 매체에 접속된다.
컴퓨팅 시스템(600)은 또한 정보 및 프로세서(604)에 의해 실행될 명령들을 저장하기 위한 메인 메모리(608), 바람직하게는 랜덤 액세스 메모리(RAM) 또는 다른 동적 메모리를 포함할 수 있다. 메인 메모리(608)는 또한 프로세서(604)에 의해 실행되는 명령들의 실행 동안 임시 변수들 또는 다른 중간 정보를 저장하는 데 사용될 수 있다. 컴퓨팅 시스템(600)은 또한 프로세서(604)에 대한 정적 정보 및 명령들을 저장하기 위하여 버스(602)에 결합되는 판독 전용 메모리(ROM) 또는 다른 정적 저장 장치를 포함할 수 있다.
컴퓨팅 시스템(600)는 또한 예를 들어 매체 드라이브(612) 및 이동식 저장 인터페이스(620)를 포함할 수 있는 정보 저장 메카니즘(610)을 포함할 수 있다. 매체 드라이브(612)는 하드 디스크 드라이브, 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브, CD 또는 DVD 드라이브(R 또는 RW), 또는 다른 이동식 또는 고정식 매체 드라이브와 같은 고정식 또는 이동식 저장 매체를 지원하는 드라이브 또는 다른 메카니즘을 포함할 수 있다. 저장 매체(618)는 예를 들어 매체 드라이브(612)에 의해 판독 및 기록되는 하드 디스크, 플로피 디스크, 자기 테이프, 광 디스크, CD 또는 DVD, 또는 다른 고정식 또는 이동식 매체를 포함할 수 있다. 이러한 예들이 도시하는 바와 같이, 저장 매체(618)는 특정 컴퓨터 소프트웨어 또는 데이터를 저장한 컴퓨터 판독가능 저장 매체를 포함할 수 있다.
대안 실시예들에서, 정보 저장 메카니즘(610)은 컴퓨터 프로그램들 또는 다른 명령들 또는 데이터가 컴퓨팅 시스템(600)에 로딩되는 것을 허가하기 위한 다른 유사한 명령들을 포함할 수 있다. 이러한 기구들은 예를 들어 프로그램 카트리지 및 카트리지 인터페이스와 같은 이동식 저장 유닛(622) 및 인터페이스(620), 이동식 메모리(예를 들어, 플래시 메모리 또는 다른 이동식 메모리 모듈) 및 메모리 슬롯, 및 소프트웨어 및 데이터가 이동식 저장 유닛(618)에서 컴퓨팅 시스템(600)으로 전달되는 것을 허가하는 다른 이동식 저장 유닛들(622) 및 인터페이스들(620)을 포함할 수 있다.
컴퓨팅 시스템(600)은 또한 통신 인터페이스(624)를 포함할 수 있다. 통신 인터페이스(624)는 소프트웨어 및 데이터가 컴퓨팅 시스템(600)과 외부 장치들 간에 전달되는 것을 허가하는 데 사용될 수 있다. 통신 인터페이스(624)의 예는 모뎀, 네트워크 인터페이스(이더넷 또는 다른 NIC 카드 등), 통신 포트(예를 들어, USB 포트 등), PCMCIA 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스(624)를 통해 전달되는 소프트웨어 및 데이터는 통신 인터페이스(624)에 의해 수신될 수 있는 전자, 전자기, 광 또는 다른 신호들일 수 있는 신호들의 형태이다. 이러한 신호들은 채널(628)을 통해 통신 인터페이스(624)에 제공된다. 이러한 채널(628)은 신호들을 전송하며, 무선 매체, 유선 또는 케이블, 광섬유 또는 다른 통신 매체를 이용하여 구현될 수 있다. 채널의 몇몇 예는 전화선, 셀룰러폰 링크, RF 링크, 네트워크 인터페이스, 근거리 또는 원거리 네트워크, 및 다른 통신 채널들을 포함한다.
본 명세서에서, "컴퓨터 프로그램 제품" 및 "컴퓨터 판독가능 매체"라는 용어는 예를 들어 메모리(608), 저장 장치(618), 저장 유닛(622) 또는 채널(628) 상의 신호(들)와 같은 매체를 일반적으로 지칭하는 데 사용될 수 있다. 이들 및 다른 형태의 컴퓨터 판독가능 매체는 하나 이상의 명령의 하나 이상의 시퀀스를 실행을 위해 프로세서(604)에 제공하는 데 수반될 수 있다. "컴퓨터 프로그램 코드"(컴퓨터 프로그램들 또는 다른 그룹들의 형태로 그룹화될 수 있음)로서 일반적으로 지칭되는 이러한 명령들은 실행시 컴퓨팅 시스템(600)이 본 발명의 실시예들의 특징들 및 기능들을 수행하는 것을 가능하게 한다.
소프트웨어를 이용하여 요소들이 구현되는 일 실시예에서, 소프트웨어는 컴퓨터 판독가능 매체에 저장되고, 예를 들어 이동식 저장 드라이브(614), 드라이브(612) 또는 통신 인터페이스(624)를 이용하여 컴퓨팅 시스템에 로딩될 수 있다. 제어 로직(이 예에서는 소프트웨어 명령들 및 컴퓨터 프로그램 코드)은 프로세서(604)에 의해 실행될 때 프로세서(604)가 여기에 설명되는 바와 같은 본 발명의 기능들을 수행하게 한다.
명료화를 위해, 위의 설명은 상이한 기능 유닛들 및 프로세서들과 관련하여 본 발명의 실시예들을 설명하였다는 것을 알 것이다. 그러나, 본 발명을 벗어나지 않고, 상이한 기능 유닛들, 프로세서들 또는 도메인들 간의 임의의 적절한 기능 분산이 이용될 수 있음은 자명하다. 예를 들어, 개별 프로세서들 또는 컨트롤러들에 의해 수행되는 것으로 설명된 기능들은 동일 프로세서 또는 컨트롤러에 의해 수행될 수 있다. 따라서, 특정 기능 유닛들에 대한 참조는 엄격한 논리적 또는 물리적 구조 또는 체계를 나타내는 것이 아니라, 설명되는 기능을 제공하기 위한 적절한 수단에 대한 참조로서만 보여져야 한다.
본 발명은 몇몇 실시예와 관련하여 설명되었지만, 여기에 설명되는 특정 형태로 한정되는 것을 의도하지 않는다. 오히려, 본 발명의 범위는 청구범위에 의해서만 한정된다. 또한, 하나의 특징이 특정 실시예들과 관련하여 설명되는 것으로 보일 수 있지만, 설명되는 실시예들의 다양한 특징은 본 발명에 따라 조합될 수 있음을 이 분야의 전문가는 인식할 것이다.
또한, 복수의 수단, 요소 또는 방법 단계들은, 개별적으로 리스트되었지만, 예를 들어 단일 유닛 또는 프로세서에 의해 구현될 수 있다. 또한, 개별 특징들이 상이한 청구항들에 포함될 수 있지만, 이들은 아마도 이롭게 결합될 수 있으며, 상이한 청구항들 내의 포함은 특징들의 조합이 가능하지 않고 그리고/또는 이롭지 않음을 의미하지 않는다. 또한, 하나의 청구항들의 카테고리 내의 하나의 특징의 포함은 이 카테고리에 대한 제한을 의미하는 것이 아니라, 오히려 그 특징은 적절한 경우에 다른 청구항 카테고리들에 동일하게 적용될 수 있다.
본 발명은 몇몇 실시예와 관련하여 설명되었지만, 여기에 설명되는 특정 형태로 한정되는 것을 의도하지 않는다. 오히려, 본 발명의 범위는 청구범위에 의해서만 한정된다. 또한, 하나의 특징이 특정 실시예들과 관련하여 설명되는 것으로 보일 수 있지만, 설명되는 실시예들의 다양한 특징은 본 발명에 따라 조합될 수 있음을 이 분야의 전문가는 인식할 것이다. 더욱이, 일 실시예와 관련하여 설명되는 본 발명의 양태들은 하나의 발명으로서 독립할 수 있다.
더욱이, 본 발명의 사상 및 범위를 벗어나지 않고 이 분야의 전문가들에 의해 다양한 수정 및 변경이 이루어질 수 있음을 알 것이다. 본 발명은 전술한 예시적인 상세들로 한정되는 것이 아니라 청구범위에 따라 정의되어야 한다.

Claims (30)

  1. 상이한 인스턴트 메시징 서비스 제공자 네트워크들의 클라이언트들 간의 인스턴트 메시징 통신을 용이하게 하기 위한 장치로서,
    외부 인스턴트 메시징 서비스 제공자 네트워크의 인스턴트 메시징 서비스에 관련된 통신을 수신하기 위한 인터페이스 로직; 및
    수신된 통신을 제2 프로토콜에서 수신 서비스 제공자 네트워크에 고유한 제1 프로토콜로 변환하기 위한 변환 로직
    을 포함하는 장치.
  2. 제1항에 있어서, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크로부터 수신되는 장치.
  3. 제1항에 있어서, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크의 클라이언트로부터 생성되고, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크를 통해 상기 인터페이스 로직으로 라우팅되는 장치.
  4. 제1항에 있어서, 상기 수신된 통신은 가입 요청, 초대 요청 및 가입 해제 요청으로 이루어지는 그룹으로부터의 적어도 하나의 통신을 포함하는 장치.
  5. 제1항에 있어서, 상기 인터페이스 로직은 또한 통신을 상기 외부 인스턴트 메시징 서비스 제공자에게 전송하고, 상기 변환 로직은 또한 상기 통신을 상기 제1 프로토콜에서 상기 제2 프로토콜로 변환하는 장치.
  6. 제5항에 있어서, 상기 전송된 통신은 참관인들에 대한 통지, 가입 요청, 초대 요청 및 가입 해제 요청으로 이루어지는 그룹 중 적어도 하나를 포함하는 장치.
  7. 제1항에 있어서, 상기 인터페이스 로직 및 상기 변환 로직은 게이트웨이 이벤트 서버에 포함되는 장치.
  8. 제1항에 있어서, 상기 수신된 통신과 연관된 실행시간 다이얼로그 상태를 저장하도록 동작 가능한 세션 관리자를 더 포함하는 장치.
  9. 제1항에 있어서, 상기 수신된 통신을 처리하기 위한 접속 관리자를 더 포함하고, 상기 접속 관리자는 엔드 포인트 존재 다이얼로그 관리자를 포함하는 장치.
  10. 제1항에 있어서, 상기 제2 프로토콜은 SIP/SIMPLE 프로토콜을 포함하는 장치.
  11. 상이한 인스턴트 메시징 서비스 제공자 네트워크들의 클라이언트들 간의 인스턴트 메시징 통신을 용이하게 하기 위한 장치로서,
    외부 인스턴트 메시징 서비스 제공자 네트워크와 관련된 수신된 인스턴트 메시징 통신을 주요 인스턴트 메시징 서비스 제공자 네트워크와 연관된 제1 프로토콜로 변환하기 위한 변환 로직
    을 포함하는 장치.
  12. 제11항에 있어서, 상기 통신은 상기 주요 인스턴트 메시징 서비스 제공자 네트워크의 클라이언트에게 지향되는 장치.
  13. 제11항에 있어서, 상기 제1 프로토콜은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크의 프로토콜과 다른 장치.
  14. 제11항에 있어서, 상기 통신은 상기 변환 로직에 의해 SIP/SIMPLE 프로토콜로서 수신되는 장치.
  15. 상이한 인스턴트 메시징 서비스 제공자 네트워크들의 클라이언트들 간의 인스턴트 메시징 통신을 용이하게 하기 위한 방법으로서,
    외부 인스턴트 메시징 서비스 제공자 네트워크로부터 인스턴트 메시징 서비스에 관련된 통신을 수신하는 단계 - 상기 수신된 통신은 제2 프로토콜에 따라 포 맷됨 - ; 및
    상기 수신된 통신을 상기 제2 프로토콜에서 제1 프로토콜로 변환하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크로부터 수신되는 방법.
  17. 제15항에 있어서, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크의 클라이언트로부터 생성되고, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크를 통해 라우팅되는 방법.
  18. 제15항에 있어서, 상기 수신된 통신은 가입 요청, 초대 요청 및 가입 해제 요청으로 이루어지는 그룹 중 적어도 하나를 포함하는 방법.
  19. 제15항에 있어서, 상기 인스턴트 메시징 서비스와 관련된 통신을 상기 외부 인스턴트 메시징 서비스 제공자 네트워크로 전송하는 단계를 더 포함하고, 상기 통신은 상기 제2 프로토콜에 따라 전송되는 방법.
  20. 제15항에 있어서, 상기 변환된 통신을 상기 제1 프로토콜에 따라 주요 네트워크의 클라이언트에게 라우팅하는 단계를 더 포함하는 방법.
  21. 제15항에 있어서, 수신된 통신과 연관된 실행시간 다이얼로그 상태를 저장하는 단계를 더 포함하는 방법.
  22. 제15항에 있어서, 상기 수신된 통신을 엔드 포인트 존재 다이얼로그 관리자로 처리하는 단계를 더 포함하는 방법.
  23. 상이한 서비스 제공자 네트워크들을 통한 인스턴트 메시징 통신을 용이하게 하기 위한 명령들을 포함하는 컴퓨터 판독가능 매체로서,
    상기 명령들은
    인스턴트 메시징 서비스와 관련되고 주요 인스턴트 메시징 서비스 제공자 네트워크로 지향되는 통신을 변환하는 단계 - 상기 수신된 통신은 외부 인스턴트 메시징 서비스 제공자 네트워크와 연관되고, 상기 통신은 수신된 제2 프로토콜에서 제1 프로토콜로 변환되고, 상기 제1 프로토콜은 상기 주요 인스턴트 메시징 서비스 제공자 네트워크에 고유함 -
    를 포함하는 방법을 수행하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서, 상기 통신은 상기 외부 인스턴트 메시징 서비스 제공자로부터 수신되는 컴퓨터 판독가능 매체.
  25. 제23항에 있어서, 상기 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크의 클라이언트로부터 생성되고, 상기 수신된 통신은 상기 외부 인스턴트 메시징 서비스 제공자 네트워크를 통해 상기 주요 인스턴트 메시징 서비스 제공자 네트워크로 라우팅되는 컴퓨터 판독가능 매체.
  26. 제23항에 있어서, 상기 수신된 통신은 가입 요청, 초대 요청 및 가입 해제 요청으로 이루어지는 그룹 중 적어도 하나를 포함하는 컴퓨터 판독가능 매체.
  27. 제23항에 있어서, 상기 명령들은 상기 인스턴트 메시징 서비스에 관련된 통신을 상기 제2 프로토콜에 따라 전송하는 단계를 더 수행하는 컴퓨터 판독가능 매체.
  28. 제23항에 있어서, 상기 명령들은 상기 변환된 통신을 상기 주요 인스턴트 메시징 서비스 제공자 네트워크의 클라이언트에게 라우팅하는 단계를 더 수행하는 컴퓨터 판독가능 매체.
  29. 제23항에 있어서, 상기 명령들은 수신된 통신과 연관된 실행시간 다이얼로그 상태를 저장하는 단계를 더 수행하는 컴퓨터 판독가능 매체.
  30. 제23항에 있어서, 상기 명령들은 상기 수신된 통신을 엔드 포인트 존재 다이 얼로그 관리자로 처리하는 단계를 더 수행하는 컴퓨터 판독가능 매체.
KR1020087010888A 2005-10-07 2006-10-03 상이한 서비스 제공자들 간의 인스턴트 메시징 연동성 KR101022901B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US72457705P 2005-10-07 2005-10-07
US60/724,577 2005-10-07
US11/528,753 US9053461B2 (en) 2005-10-07 2006-09-27 Instant messaging interoperability between disparate service providers
US11/528,753 2006-09-27

Publications (2)

Publication Number Publication Date
KR20080066770A true KR20080066770A (ko) 2008-07-16
KR101022901B1 KR101022901B1 (ko) 2011-03-16

Family

ID=37912125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087010888A KR101022901B1 (ko) 2005-10-07 2006-10-03 상이한 서비스 제공자들 간의 인스턴트 메시징 연동성

Country Status (5)

Country Link
US (5) US9053461B2 (ko)
EP (2) EP1932300A1 (ko)
JP (2) JP2009512016A (ko)
KR (1) KR101022901B1 (ko)
WO (1) WO2007044371A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774402B2 (en) 2005-06-29 2010-08-10 Visa U.S.A. Adaptive gateway for switching transactions and data on unreliable networks using context-based rules
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
US9282081B2 (en) 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
EP1938520B1 (en) * 2005-10-21 2010-08-04 Research In Motion Limited Instant messaging device/server protocol
WO2007092310A2 (en) * 2006-02-03 2007-08-16 Cibernet Corporation System and method for electronically facilitating, recording, and tracking transactions
US20070220143A1 (en) * 2006-03-20 2007-09-20 Postini, Inc. Synchronous message management system
US8041770B1 (en) * 2006-07-13 2011-10-18 Avaya Inc. Method of providing instant messaging functionality within an email session
US20080077704A1 (en) * 2006-09-24 2008-03-27 Void Communications, Inc. Variable Electronic Communication Ping Time System and Method
US9628490B2 (en) * 2006-11-27 2017-04-18 International Business Machines Corporation Trusted contact name validation
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US9530117B2 (en) * 2007-02-13 2016-12-27 International Business Machines Corporation Method and apparatus for transforming user requests and responses based on a persona
US8301782B2 (en) * 2007-03-02 2012-10-30 Yahoo! Inc. Stateless gateways having remote dialog store
US7769951B2 (en) * 2007-04-10 2010-08-03 Yahoo! Inc. Intelligent caching of user data for real time communications
US8224940B2 (en) * 2007-05-31 2012-07-17 Microsoft Corporation Strategies for compressing information using bloom filters
EP2007105A1 (en) * 2007-06-22 2008-12-24 Accenture Global Services GmbH Session initiation protocol adaptor
JP5512919B2 (ja) * 2007-06-27 2014-06-04 富士通株式会社 異なるサービス間でのサービス利用状況の共有方式
US7856505B2 (en) 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
US7792913B2 (en) * 2007-09-17 2010-09-07 At&T Intellectual Property I, L.P. Providing multi-device instant messaging presence indications
WO2009039702A1 (fr) * 2007-09-26 2009-04-02 Alibaba Group Holding Limited Procédé et système pour gérer les informations d'utilisateur dans le système de messagerie instantanée
US20090097421A1 (en) * 2007-10-12 2009-04-16 Telefonaktiebolaget Lm Ericsson (Publ) IP-based interworking methods and apparatus for voice and data communications
TWI350089B (en) * 2007-11-29 2011-10-01 Ind Tech Res Inst Apparatus and method for presence service on inter-domain
PL2250786T3 (pl) * 2008-02-29 2012-03-30 Ericsson Telefon Ab L M Technika przeprowadzania konwersji sygnału pomiędzy domenami HTTP i SIP
US20090327300A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Manifest-based enhanced presence publishing
US8392514B2 (en) * 2009-03-04 2013-03-05 Dion Emami VCC software enhancement system
RU2732585C2 (ru) 2010-07-09 2020-09-22 Виза Интернэшнл Сервис Ассосиэйшн Шлюзовой уровень абстракции
US9350819B2 (en) 2011-07-21 2016-05-24 Microsoft Technology Licensing, Llc Centralized service for distributed service deployments
US9191358B2 (en) * 2011-09-13 2015-11-17 Level 3 Communications, Llc System and method for short message services to instant messaging conversion
CN102571967B (zh) * 2012-01-17 2015-04-01 深圳市乐唯科技开发有限公司 一种实现多对象数据交互应答和呼叫功能的系统及方法
US9124646B2 (en) * 2012-02-16 2015-09-01 Blackberry Limited Method and system for obtaining availability status for multiple SIP users
US9641609B2 (en) * 2012-02-28 2017-05-02 Google Inc. Integrated messaging
WO2014121818A1 (en) * 2013-02-05 2014-08-14 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for identifying events
US9609080B2 (en) * 2013-03-12 2017-03-28 Cyberlink Corp. Systems and methods for device identity delegation for application software
US11765208B2 (en) * 2014-01-13 2023-09-19 Comcast Cable Communications, Llc Systems and methods for dynamic connection management
US20160308685A1 (en) * 2015-04-20 2016-10-20 Avaya Inc. Dynamic resource list subscriptions
CN104811371B (zh) * 2015-05-15 2018-04-03 北京北信源软件股份有限公司 一种全新的即时通信系统
US10356830B2 (en) 2017-01-17 2019-07-16 Cisco Technology, Inc. System and method to facilitate stateless serving gateway operations in a network environment
US10817196B2 (en) 2017-07-07 2020-10-27 Sap Se Page list based crash recovery
CN107395495A (zh) * 2017-09-05 2017-11-24 江苏电力信息技术有限公司 一种电力行业内外网互联互通的即时通讯系统及方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457279B1 (en) * 1999-09-10 2008-11-25 Vertical Communications Acquisition Corp. Method, system, and computer program product for managing routing servers and services
US20020120779A1 (en) * 2000-11-14 2002-08-29 Douglas Teeple Mediation software for delivery of interactive mobile messaging and personalized content to mobile devices
JP3743507B2 (ja) 2001-07-16 2006-02-08 村田機械株式会社 中継サーバ
AUPR459901A0 (en) * 2001-04-27 2001-05-24 Sharinga Networks Inc. Instant messaging
US7359943B2 (en) * 2002-01-22 2008-04-15 Yahoo! Inc. Providing instant messaging functionality in non-instant messaging environments
ATE423354T1 (de) * 2002-04-02 2009-03-15 Verizon Business Global Llc Nachrichtenantwortsystem
US8856236B2 (en) * 2002-04-02 2014-10-07 Verizon Patent And Licensing Inc. Messaging response system
US7016978B2 (en) 2002-04-29 2006-03-21 Bellsouth Intellectual Property Corporation Instant messaging architecture and system for interoperability and presence management
US7899915B2 (en) * 2002-05-10 2011-03-01 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
JP4381655B2 (ja) * 2002-05-31 2009-12-09 株式会社日立製作所 ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
AU2003239220A1 (en) * 2002-06-10 2003-12-22 Akonix Systems, Inc. Systems and methods for a protocol gateway
US9497168B2 (en) * 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
GB0218711D0 (en) * 2002-08-12 2002-09-18 Mitel Knowledge Corp System and method for facilitating communication using presence and communication services
US7035942B2 (en) 2002-09-17 2006-04-25 Bellsouth Intellectual Property Corp. Server-based message protocol translation
US7185059B2 (en) * 2002-09-17 2007-02-27 Bellsouth Intellectual Property Corp Multi-system instant messaging (IM)
US7487248B2 (en) * 2002-10-08 2009-02-03 Brian Moran Method and system for transferring a computer session between devices
US20040122901A1 (en) * 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
US20040152450A1 (en) * 2002-12-24 2004-08-05 Alexander Kouznetsov Internet-based messaging system
US7249161B2 (en) 2002-12-27 2007-07-24 Nokia Corporation Method and system for facilitating instant messaging transactions between disparate service providers
US20040205175A1 (en) * 2003-03-11 2004-10-14 Kammerer Stephen J. Communications system for monitoring user interactivity
JP4196738B2 (ja) 2003-06-04 2008-12-17 沖電気工業株式会社 通信システム
JP4718767B2 (ja) * 2003-06-24 2011-07-06 Necインフロンティア株式会社 コミュニケーション交換機
JP4277621B2 (ja) 2003-08-20 2009-06-10 沖電気工業株式会社 サービス提供システムおよびその方法ならびにサービス提供プログラムおよび記録媒体
EP1549024A1 (en) 2003-12-23 2005-06-29 Siemens Mobile Communications S.p.A. A method of processing presence information in a communication system with hererogeneous presence protocols, and communication system implementing the method
US7251254B2 (en) 2003-09-03 2007-07-31 At&T Corp. Telecommunication network system and method in communication services using session initiation protocol
JP4273899B2 (ja) 2003-09-25 2009-06-03 日本電気株式会社 ネットワークシステム、プロトコル変換装置及び方法
US7283506B2 (en) * 2003-10-13 2007-10-16 Nokia Corporation System and method for releasing sessions at network entities associated with the sessions
US7526563B2 (en) * 2004-02-27 2009-04-28 Nokia Corporation Interworking gateway and method
US8301782B2 (en) * 2007-03-02 2012-10-30 Yahoo! Inc. Stateless gateways having remote dialog store
US10601753B2 (en) 2017-04-04 2020-03-24 International Business Machines Corporation Automatic threading of conversations based on content and interactions

Also Published As

Publication number Publication date
US9053461B2 (en) 2015-06-09
WO2007044371A1 (en) 2007-04-19
US20170374012A1 (en) 2017-12-28
US11729132B2 (en) 2023-08-15
US20070083675A1 (en) 2007-04-12
JP2012190490A (ja) 2012-10-04
JP2009512016A (ja) 2009-03-19
EP2503748A1 (en) 2012-09-26
EP1932300A1 (en) 2008-06-18
US20150271129A1 (en) 2015-09-24
US11240194B2 (en) 2022-02-01
JP5646551B2 (ja) 2014-12-24
US20220150211A1 (en) 2022-05-12
KR101022901B1 (ko) 2011-03-16
US10701026B2 (en) 2020-06-30
US9762530B2 (en) 2017-09-12
US20200403959A1 (en) 2020-12-24

Similar Documents

Publication Publication Date Title
US11729132B2 (en) Instant messaging interoperability between disparate service providers
US7844716B2 (en) Instant messaging architecture and system for interoperability and presence management
KR100554239B1 (ko) 사용자 및 클라이언트 아이덴티티 인스턴트 메시징 분리
US7043538B2 (en) Thin instant messaging proxy interface with persistent sessions
CA2792147C (en) Apparatus and method for providing contacts through interworking between messaging service and social network service
US20070100944A1 (en) Uniform resource identifier decoration to enable connectivity for instant messaging providers serving non-authoritative namespaces
EP1913743B1 (en) Group management method and system in interworking system of imps system and simple im system
US20080005294A1 (en) Method and system for exchanging messages using a presence service
US20110270880A1 (en) Automated communications system
EP2560329B1 (en) Method and processing system for routing a message request
CN101292478A (zh) 不同服务提供商之间的即时消息传递互操作性
EP2254319B1 (en) Integration of voice chat services
CN102801742A (zh) 一种基于xmpp协议的通讯系统及其方法
WO2011038639A1 (zh) 端到端即时通讯的实现方法、端到端即时通讯终端及系统
US8301782B2 (en) Stateless gateways having remote dialog store
Mezö et al. Interoperability solution between Peer-to-Peer and client—Server based mailing systems
Srinivas et al. A comparative analysis of protocols for Instant Messaging and Presence
Mäntysaari Extensible Messaging and Presence Protocol (XMPP)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 10