KR20180008503A - 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신 - Google Patents

상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신 Download PDF

Info

Publication number
KR20180008503A
KR20180008503A KR1020177033370A KR20177033370A KR20180008503A KR 20180008503 A KR20180008503 A KR 20180008503A KR 1020177033370 A KR1020177033370 A KR 1020177033370A KR 20177033370 A KR20177033370 A KR 20177033370A KR 20180008503 A KR20180008503 A KR 20180008503A
Authority
KR
South Korea
Prior art keywords
client device
client
registration
server
application
Prior art date
Application number
KR1020177033370A
Other languages
English (en)
Other versions
KR102033232B1 (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 KR20180008503A publication Critical patent/KR20180008503A/ko
Application granted granted Critical
Publication of KR102033232B1 publication Critical patent/KR102033232B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • H04L67/42
    • H04L67/18
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

일 실시형태에서, 클라이언트 디바이스는 특정 클라이언트 애플리케이션과 연관하여 등록된 클라이언트 디바이스들의 리스트를 획득한 다음, 로컬 통신 인터페이스를 통해 근접한 것으로 리스트된 클라이언트 디바이스(들)를 검출한다. 근접 클라이언트 디바이스들 중 하나는 서버에의 각각의 애플리케이션 등록을 갱신하기 위해 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 것으로 식별된다. 다른 실시형태에서, 서버는 클라이언트 디바이스로부터 클라이언트 애플리케이션에 대한 등록 메시지를 수신하고 그 클라이언트 애플리케이션에 대한 적어도 하나의 다른 등록된 클라이언트 디바이스가 요청 클라이언트 디바이스에 근접한다는 것을 검출한다. 서버는 근접 검출에 기초하여 요청 클라이언트 디바이스 및 적어도 하나의 다른 등록된 클라이언트 디바이스 모두에 대한 등록들을 선제적으로 갱신하려고 시도한다.

Description

상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신{RENEWING REGISTRATIONS FOR CLIENT APPLICATIONS INSTALLED ON DIFFERENT PROXIMATE CLIENT DEVICES}
실시형태들은 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들을 갱신하는 것에 관한 것이다.
1세대 아날로그 무선 전화 서비스 (1G), 2세대 (2G) 디지털 무선 전화 서비스 (2.5G 및 2.75G 네트워크들을 포함) 및 3세대 (3G) 고속 데이터, 인터넷 가능 무선 서비스를 포함한 다양한 세대들에 걸쳐 개발되었다. 셀룰러 및 개인 통신 서비스 (PCS) 시스템들을 포함해서 많은 상이한 타입들의 무선 통신 시스템들이 현재 사용되고 있다. 공지된 셀룰러 시스템들의 예들은 셀룰러 AMPS (Analog Advanced Mobile Phone System), 및 CDMA (Code Division Multiple Access), FDMA (Frequency Division Multiple Access), TDMA (Time Division Multiple Access), TDMA의 GSM (Global System for Mobile access) 변형, 및 TDMA와 CDMA 기술들 양자를 이용한 보다 신규한 하이브리드 디지털 통신 시스템에 기반한 디지털 셀룰러 시스템들을 포함한다.
상기 언급된 통신 시스템 또는 다른 유형의 액세스 네트워크 (예를 들어, WiFi 등) 를 사용하는 클라이언트 디바이스들 (예를 들어, 휴대폰들과 같은 모바일 디바이스들) 은 하나 이상의 호스트 서버들이 있는 클라이언트 애플리케이션들에 대한 등록을 유지하는 것이 일반적이다. 예를 들어, 사용자는 자신의 휴대 전화 상의 페이스북 클라이언트 애플리케이션, 자신의 태블릿 컴퓨터 상의 페이스북 클라이언트 애플리케이션, 자신의 랩탑 또는 데스크탑 상의 페이스북 클라이언트 애플리케이션, 자신의 스마트 TV 상의 페이스북 클라이언트 애플리케이션 등을 통해 페이스북 호스트 서버로 자신의 페이스북 계정에 로그인할 수 있다. 이러한 클라이언트 애플리케이션 등록은 일반적으로 일시적이며 주기적인 갱신이 필요하거나, 또는 그렇지 않으면 클라이언트 애플리케이션은 그 각각의 호스트 서버에 의해 등록 해제될 것이다. 또한, 2 이상의 클라이언트 애플리케이션이 동일한 호스트 서버에의 활성 등록을 유지하는 것도 가능하다. 이 경우, 2 이상의 클라이언트 애플리케이션들을 실행하는 각각의 디바이스들은 일반적으로 각각의 클라이언트 애플리케이션들의 등록을 연장 또는 갱신하기 위한 독립적인 등록 갱신 요청들을 송신할 것이 요구될 것이다.
일 실시형태에서, 클라이언트 디바이스는 특정 클라이언트 애플리케이션과 연관하여 등록된 클라이언트 디바이스들의 리스트를 획득한 다음, 로컬 통신 인터페이스를 통해 근접한 것으로 리스트된 클라이언트 디바이스(들)를 검출한다. 근접 클라이언트 디바이스들 중 하나는 서버에의 각각의 애플리케이션 등록을 갱신하기 위해 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 것으로 식별된다. 다른 실시형태에서, 서버는 클라이언트 디바이스로부터 클라이언트 애플리케이션에 대한 등록 메시지를 수신하고 그 클라이언트 애플리케이션에 대한 적어도 하나의 다른 등록된 클라이언트 디바이스가 요청 클라이언트 디바이스에 근접한 것을 검출한다. 서버는 근접 검출에 기초하여 요청 클라이언트 디바이스 및 적어도 하나의 다른 등록된 클라이언트 디바이스 모두에 대한 등록들을 선제적으로 갱신하려고 시도한다.
본 개시의 한정이 아닌 단지 예시를 위해 제시되는 첨부 도면과 함께 고려될 때 다음의 상세한 설명을 참조하여 보다 잘 이해하게 될 것이므로, 본 개시의 실시형태들 및 이들의 수반되는 많은 이점들의 보다 완전한 이해는 용이하게 얻어질 것이며, 첨부 도면들에서:
도 1은 본 개시의 양태에 따른 무선 통신 시스템들의 하이 레벨 시스템 아키텍처를 예시한다.
도 2는 본 개시의 실시형태들에 따른 사용자 장비들 (UE들) 의 예들을 예시한다.
도 3은 본 개시의 실시형태에 따른 기능성을 수행하도록 구성된 로직을 포함하는 통신 디바이스를 예시한다.
도 4는 본 발명의 일 실시형태에 따라 주어진 사용자와 연관하여 등록되는 클라이언트 디바이스들 내의 애플리케이션 구성들을 나타낸다.
도 5는 도 4에 도시된 바와 같이 각각의 클라이언트 디바이스들 상의 주어진 클라이언트 애플리케이션을 위해 구현될 수 있는 예시적인 등록 절차를 나타낸다.
도 6은 도 5의 프로세스의 실행 후에 각각의 클라이언트 디바이스들 상의 주어진 클라이언트 애플리케이션에 대한 등록들을 갱신 또는 연장하기 위한 종래의 메커니즘을 나타낸다.
도 7은 본 발명의 일 실시형태에 따른 클라이언트 디바이스를 동작시키는 프로세스를 나타낸다.
도 8은 본 발명의 일 실시형태에 따른 서버를 동작시키는 프로세스를 나타낸다.
도 9는 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 7 및 도 8의 프로세스들의 예시적인 구현을 나타낸다.
도 10은 본 발명의 일 실시형태에 따른 서버를 동작시키는 프로세스를 나타낸다.
도 11은 본 발명의 일 실시형태에 따른 클라이언트 디바이스를 동작시키는 프로세스를 나타낸다.
도 12는 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 10 및 도 11의 프로세스들의 또 다른 예시적인 구현을 나타낸다.
도 13은 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 10 및 도 11의 프로세스들의 또 다른 예시적인 구현을 나타낸다.
본 발명의 양태들은 본 발명의 특정 실시형태들에 관한 하기 설명 및 관련 도면들에 개시된다. 대안의 실시형태들은 본 발명의 범위를 벗어나지 않으면서 고안될 수도 있다. 부가하여, 본 발명의 주지된 엘리먼트들은 본 발명의 관련 상세들을 모호하게 하지 않기 위해서 상세히 기재되지 않거나 또는 생략될 것이다.
단어 "예시적인" 및/또는 "예"는 본 명세서에서 "예, 사례, 또는 예시로서 기능하는 것" 을 의미하는데 사용된다. 본 명세서에서 "예시적인" 으로서 설명된 임의의 실시형태가 반드시 다른 실시형태들에 비해 선호되거나 또는 유리한 것으로서 해석되는 것은 아니다. 마찬가지로, 용어 "본 발명의 실시형태"는, 본 발명의 모든 실시형태들이 논의된 피쳐, 이점 또는 동작의 모드를 포함하는 것을 요구하지는 않는다.
또한, 많은 실시형태들은 예를 들면, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 액션들의 시퀀스들의 측면에서 설명되어 있다. 여기서 설명된 다양한 액션들은 특정 회로들 (예를 들면, 주문형 반도체 (ASIC)) 에 의해, 하나 이상의 프로세서들에 의해 실행되는 프로그램 명령들에 의해 또는 양쪽 모두의 조합에 의해 수행될 수 있음이 인식될 것이다. 또한, 여기에 기술된 이들 액션들의 시퀀스는, 실행시 연관된 프로세서로 하여금 여기에 기술된 기능을 수행하게 하는 컴퓨터 명령들의 대응하는 세트가 저장된 임의의 형태의 컴퓨터 판독가능 저장 매체 내에 완전히 수록되는 것으로 고려될 수 있다. 따라서, 본 발명의 다양한 양태들이 다수의 상이한 형태들로 구현될 수도 있는데, 그 전부는 본원 특허청구범위의 요지의 범위 내에 존재하는 것으로 고려되었다. 또한, 여기에 기술된 실시형태들 각각에 대하여, 임의의 이러한 실시형태들의 대응하는 형태는 예를 들어, 설명된 액션을 수행하도록 "구성된 로직" 으로서 여기에 설명될 수도 있다.
여기서 사용자 장비 (UE) 로 지칭되는 클라이언트 디바이스는, 이동식 또는 고정식일 수도 있고, 무선 액세스 네트워크 (RAN) 와 통신할 수도 있다. 여기서 사용된 용어 "UE" 는 "액세스 단말기" 또는 "AT", "무선 디바이스", "가입자 디바이스", "가입자 단말기", "가입자 국", "사용자 단말기" 또는 UT, "이동 단말기", "이동국" 및 이들의 변형들로서 상호교환가능하게 지칭될 수도 있다. 일반적으로, UE들은 RAN 을 경유하여 코어 네트워크와 통신할 수 있고, 코어 네트워크를 통해, UE들은 인터넷과 같은 외부 네트워크들과 연결될 수 있다. 물론, 유선 액세스 네트워크들, (예를 들어, IEEE 802.11 등에 기초한) WiFi 네트워크들 등을 통한 것과 같이, 코어 네트워크 및/또는 인터넷에 연결되는 다른 메커니즘들이 UE들에 대해 또한 가능하다. UE들은 PC 카드들, 컴팩트 플래시 디바이스들, 외부 또는 내부 모뎀들, 무선 또는 유선 전화 등을 포함하지만 이에 한정되지 않는 다수의 타입들의 디바이스들 중의 임의의 것에 의해 구체화될 수 있다. UE들이 신호들을 RAN 으로 전송할 수 있는 통신 링크는 업링크 채널 (예를 들어, 역방향 트래픽 채널, 역방향 제어 채널, 액세스 채널 등) 로 칭해진다. RAN 이 신호들을 UE들로 전송할 수 있는 통신 링크는 다운링크 또는 순방향 링크 채널 (예를 들어, 페이징 채널, 제어 채널, 브로드캐스트 채널, 순방향 트래픽 채널 등) 로 칭해진다. 본원에서 사용된 용어 트래픽 채널 (traffic channel; TCH) 은 업링크 / 역방향 또는 다운링크 / 순방향 트래픽 채널 중 어느 하나를 지칭할 수 있다.
도 1은 본 발명의 실시형태에 따른 무선 통신 시스템 (100) 의 하이 레벨 시스템 아키텍처를 예시한다. 무선 통신 시스템 (100) 은 UE들 1...N 을 포함한다. UE들 1...N 은 셀룰러 전화기, 개인 정보 단말 (personal digitalassistant; PDA), 페이저, 랩톱 컴퓨터, 데스크톱 컴퓨터 등을 포함할 수 있다. 예를 들어, 도 1에서, UE들 1...2 은 셀룰러 호출 전화기들로서 예시되어 있고, UE들 3...5 는 셀룰러 터치스크린 전화기 또는 스마트폰들로서 예시되어 있고, UE N 은 데스크톱 컴퓨터 또는 PC 로서 예시되어 있다.
도 1을 참조하면, UE들 1...N 은 에어 인터페이스들 (104, 106, 108) 로서 도 1에서 도시된 물리 통신 인터페이스 또는 계층 및/또는 직접 유선 연결을 통해 액세스 네트워크 (예를 들어, RAN (120), 액세스 포인트 (125) 등) 와 통신하도록 구성된다. 에어 인터페이스 (104 및 106) 는 소정의 셀룰러 통신 프로토콜 (예를 들어, CDMA, EVDO, eHRPD, GSM, EDGE, W-CDMA, LTE 등) 을 준수할 수 있는 한편, 에어 인터페이스 (108) 는 무선 IP 프로토콜 (예를 들어, IEEE 802.11) 을 준수할 수 있다. RAN (120) 은 에어 인터페이스들 (104 및 106) 과 같은 에어 인터페이스들을 통해 UE들을 서빙하는 복수의 액세스 포인트들을 포함한다. RAN (120) 에서의 액세스 포인트들은 액세스 노드들 또는 AN 들, 액세스 포인트들 또는 AP들, 기지국들 또는 BS들, 노드 B들, e노드 B (eNode B) 등으로서 지칭될 수 있다. 이 액세스 포인트들은 지상 (terrestrial) 액세스 포인트들 (또는 지상국들), 또는 위성 액세스 포인트들일 수 있다. RAN (120) 은, RAN (120) 에 의해 서빙된 UE들과, 전적으로 RAN (120) 또는 상이한 RAN 에 의해 서빙된 다른 UE들과의 사이에서 회선 교환 (CS) 호들을 브릿징 (bridging) 하는 것을 포함하는 다양한 기능들을 수행할 수 있고, 또한, 인터넷 (175) 과 같은 외부 네트워크들과의 패킷-교환 (PS) 데이터의 교환을 중재할 수 있는 코어 네트워크 (140) 에 연결되도록 구성된다. 인터넷 (175) 은 다수의 라우팅 에이전트들 및 프로세싱 에이전트들 (편리성을 위하여 도 1에 미도시) 을 포함한다. 도 1에서는, UE N 이 (이를테면, WiFi 또는 802.11-기반 네트워크의 이더넷 연결을 통한 것과 같이, 코어 네트워크 (140) 로부터 분리된) 인터넷 (175) 에 직접 연결되는 것으로서 도시되어 있다. 이로써, 인터넷 (175) 은 코어 네트워크 (140) 를 경유하여 UE N 과 UE들 1...N 사이에서 패킷-교환 데이터 통신을 브릿징하도록 기능할 수 있다. 또한, RAN (120) 으로부터 분리된 액세스 포인트 (125) 가 도 1에 도시되어 있다. 액세스 포인트 (125) 는 (예를 들어, FiOS, 케이블 모뎀 등과 같은 광학 통신 시스템을 경유하여) 코어 네트워크 (140) 에 관계없이 인터넷 (175) 에 연결될 수도 있다. 에어 인터페이스 (108) 는 일 예에서 IEEE 802.11 과 같은 로컬 무선 연결을 통해 UE 4 또는 UE 5 를 서빙할 수도 있다. UE N 은, (예를 들어, 유선 및 무선 연결성의 양자 모두를 갖는 WiFi 라우터에 대한) 일 예에서 액세스 포인트 (125) 자체에 대응할 수 있는, 모뎀 또는 라우터로의 직접 연결과 같은, 인터넷 (175) 에의 유선 연결을 갖는 데스크톱 컴퓨터로서 도시되어 있다.
도 1을 참조하면, 애플리케이션 서버 (170) 가 인터넷 (175), 코어네트워크 (140), 또는 양자 모두에 연결된 것으로서 도시되어 있다. 애플리케이션 서버 (170) 는 복수의 구조적으로 분리된 서버들로서 구현될 수 있거나, 또는 대안으로, 단일 서버에 대응할 수도 있다. 이하에서 더욱 상세하게 설명되는 바와 같이, 애플리케이션 서버 (170) 는, 코어 네트워크 (140) 및/또는 인터넷 (175) 을 경유하여 애플리케이션 서버 (170) 에 연결될 수 있는 UE들을 위한 하나 이상의 통신 서비스들 (예를 들어, VoIP (Voice-over-Internet Protocol) 세션들, PTT (Push-to-Talk) 세션들, 그룹 통신 세션들, 소셜 네트워킹 서비스들 등) 을 지원하거나 및/또는 콘텐츠 (예를 들어, 웹 페이지 다운로드) 를 UE들에 제공하도록 구성된다.
도 2 는 본 발명의 실시형태들에 따른 UE (즉, 클라이언트 디바이스) 들의 예들을 예시한다. 도 2를 참조하면, UE (300A) 는 호출 전화기로서 예시되어 있고 UE (300B) 는 터치스크린 디바이스 (예를 들어, 스마트 폰, 태블릿 컴퓨터 등) 으로 예시되어 있다. 도 2에 도시된 바처럼, UE (300A) 의 외부 케이싱은, 당해 분야에 알려져 있는 바처럼, 다른 컴포넌트들 중에서도 안테나 (305A), 디스플레이 (310A), 적어도 하나의 버튼 (315A) (예를 들어, PTT 버튼, 전력 버튼, 볼륨 제어 버튼 등) 및 키패드 (320A) 로 구성된다. 또한, UE (300B) 의 외부 케이싱은 당해 분야에서 알려져 있는 바와 같이 다른 컴포넌트들 중에서도 터치스크린 디스플레이 (305B), 주변 버튼들 (310B, 315B, 320B 및 325B) (예를 들어,전원 제어 버튼, 볼륨 또는 진동 제어 버튼, 비행기 모드 토글 버튼 등), 적어도 하나의 전면-패널 버튼 (330B) (예를 들어, 홈 버튼 등) 으로 구성된다. UE (300B) 의 일부로서 명시적으로 도시되어 있지 않지만, UE (300B) 는, WiFi 안테나들, 셀룰러 안테나들, 위성 위치 시스템 (satellite position system; SPS) 안테나들 (예를 들어, 글로벌 위치확인 시스템 (global positioning system; GPS) 안테나들) 등을 포함하지만 이에 한정되지 않는, UE (300B) 의 외부 케이싱 내에 내장되는 하나 이상의 통합 안테나들 및/또는 하나 이상의 외부 안테나들을 포함할 수 있다.
UE들 (300A 및 300B) 과 같은 UE들의 내부 컴포넌트들은 상이한 하드웨어 구성들로 구체화될 수 있지만, 내부 하드웨어 컴포넌트들을 위한 기본적인 하이-레벨 (high-level) UE 구성은 도 2에서 플랫폼 (302) 으로서 도시되어 있다. 플랫폼 (302) 은, 궁극적으로 코어 네트워크 (140), 인터넷 (175) 및/또는 다른 원격 서버들 및 네트워크들 (예를 들어, 애플리케이션 서버 (170), 웹 URL 등) 로부터 나올 수도 있는 RAN (120) 으로부터 송신된 소프트웨어 애플리케이션들, 데이터 및/또는 커맨드들을 수신 및 실행할 수 있다. 플랫폼 (302) 은 또한, RAN 상호작용 없이 로컬적으로 저장된 애플리케이션들을 독립적으로 실행할 수 있다. 플랫폼 (302) 은 ASIC (application specific integrated circuit; 308), 또는 다른 프로세서, 마이크로프로세서, 논리 회로 또는 다른 데이터 프로세싱 디바이스에 동작 가능하게 커플링된 송수신기 (306) 를 포함할 수 있다. ASIC (308) 또는 다른 프로세서는, 무선 디바이스의 메모리 (312) 에서의 임의의 상주 프로그램들과 인터페이스 연결되는 애플리케이션 프로그래밍 인터페이스 (API)(310) 계층을 실행한다. 메모리 (312) 는 ROM (read-only memory), RAM (random-access memory), EEPROM, 플래시 카드, 또는 컴퓨터 플랫폼에 공통된 임의의 메모리로 구성될 수 있다. 플랫폼 (302) 은 또한 메모리 (312) 내에 활동적으로 사용되지 않는 애플리케이션 그리고 다른 데이터를 저장할 수 있는 로컬 데이터베이스 (314) 를 포함할 수 있다. 로컬 데이터베이스 (314) 는 통상적으로 플래시 메모리 셀이지만 자기 매체, EEPROM, 광 매체, 테이프, 소프트 또는 하드 디스크 등과 같은 당해 기술 분야에서 알려진 임의의 부수적인 저장 디바이스일 수 있다.
이에 따라, 본 발명의 실시형태는 본원에서 설명된 기능들을 수행하기 위한 능력을 포함하는 UE (예를 들어, UE (300A, 300B) 등) 를 포함할 수 있다. 본 기술 분야의 당업자가 알 수 있는 바와 같이, 다양한 논리 엘리먼트들이 본 명세서에서 개시된 기능들을 달성하기 위해서 개별 엘리먼트들 (discrete elements), 프로세서상에서 실행되는 소프트웨어 모듈들 또는 소프트웨어와 하드웨어의 임의의 조합에 의해서 구현될 수 있다. 예를 들어, ASIC (308), 메모리 (312), API (310) 및 로컬 데이터베이스 (314) 는 모두 본 명세서에서 개시된 다양한 기능들을 로딩, 저장 및 실행하기 위해서 협동적으로 사용될 수 있으며, 따라서 이들 기능들을 수행하기 위한 로직은 다양한 엘리먼트들에 걸쳐서 분포될 수도 있다. 다르게는, 이 기능은 하나의 개별 컴포넌트내에 포함될 수 있다. 따라서, 도 2에서의 UE들 (300A 및 300B) 의 특징들은 단지 예시적인 것으로 고려되야 하고, 본 발명은 예시된 특징들 또는 배열에 한정되지 않는다.
UE들 (300A 및/또는 300B) 과 RAN (120) 사이의 무선 통신은 CDMA, W-CDMA, 시간 분할 다중 연결 (TDMA), 주파수 분할 다중 연결 (FDMA), 직교 주파수 분할 멀티플렉싱 (Orthogonal Frequency Division Multiplexing; OFDM), GSM, 또는 무선 통신 네트워크 또는 데이터 통신 네트워크에서 이용될 수도 있는 다른 프로토콜들과 같은 상이한 기술들에 기초할 수 있다. 앞서 논의되었고 당해 기술 분야에서 알려진 바와 같이, 음성 송신 및/또는 데이터는 다양한 네트워크 및 구성을 사용하여 RAN으로부터 UE들로 송신될 수 있다. 따라서, 본 명세서에서 제공된 예시들은 본 발명의 실시형태들을 한정하도록 의도된 것이 아니며 단지 본 발명의 실시형태들의 양태들의 설명을 돕기 위한 것일 뿐이다.
도 3은, 기능성을 수행하도록 구성된 로직을 포함하는 통신 디바이스 (400) 를 예시한다. 통신 디바이스 (400) 는 위에 언급된 통신 디바이스들 중의 임의의 것에 대응할 수 있으며, UE들 (300A 또는 300B), RAN (120) 의 임의의 컴포넌트, 코어 네트워크 (140) 의 임의의 컴포넌트, 코어 네트워크 (140) 및/또는 인터넷 (175) 과 연결된 임의의 컴포넌트 (예를 들어, 애플리케이션 서버 (170)) 등을 포함하지만, 이에 한정되지 않는다. 따라서, 통신 디바이스 (400) 는 도 1의 무선 통신 시스템 (100) 을 통해 하나 이상의 다른 엔티티들과 통신하도록 (또는 통신하는 것을 가능하게 하도록) 구성되는 임의의 전자 디바이스에 대응할 수 있다.
도 3 을 참조하면, 통신 디바이스 (400) 는 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 을 포함한다. 일 예에서, 통신 디바이스 (400) 가 무선 통신 디바이스 (예를 들어, UE (300A 또는 300B), AP (125), RAN (120) 에서의 BS, Node B 또는 eNodeB 등) 에 대응할 경우, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 무선 송수신기 및 연관된 하드웨어 (예를 들어, RF 안테나, MODEM, 변조기 및/또는 복조기 등) 와 같은 무선 통신 인터페이스 (예를 들어, 블루투스 (블루투스), WiFi, 2G, CDMA, W-CDMA, 3G, 4G, LTE 등), 예컨대 무선 송신기 및 연관된 하드웨어 (예를 들어, RF 안테나, MODEM, 변조기 및/또는 복조기 등) 를 포함할 수 있다. 다른 예에서, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 유선 통신 인터페이스 (예를 들어, 직렬 연결, USB 또는 파이어와이어 연결, 인터넷 (175) 이 액세스될 수 있는 이더넷 연결 등) 에 대응할 수 있다. 따라서, 통신 디바이스 (400) 가 몇몇 타입의 네트워크 기반의 서버 (예를 들어, 애플리케이션 서버 (170) 등) 에 대응한다면, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은, 일 예에서, 이더넷 프로토콜을 통해 네트워크 기반의 서버를 다른 통신 엔티티들에 접속하는 이더넷 카드에 대응할 수 있다. 추가의 예에서, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 통신 디바이스 (400) 가 그의 로컬 환경 (예를 들어, 가속도계, 온도 센서, 광 센서, 로컬 RF 신호들을 모니터링하는 안테나 등) 을 모니터링할 수 있게 하는 센서류 또는 측정 하드웨어를 포함할 수 있다. 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 또한, 실행될 경우, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 의 연관된 하드웨어가 그의 수신 및/또는 송신 기능(들)을 수행하게 하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 소프트웨어 단독으로만 대응하는 것은 아니며, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 은 그의 기능성을 달성하도록 하드웨어에 적어도 부분적으로 의존한다.
도 3 을 참조하면, 통신 디바이스 (400) 는 정보를 프로세싱하도록 구성된 로직 (410) 을 더 포함한다. 일 예에서, 정보를 프로세싱하도록 구성된 로직 (410) 은 적어도 프로세서를 포함할 수 있다. 정보를 프로세싱하도록 구성된 로직 (410) 에 의해 수행될 수 있는 프로세싱 타입의 예시적인 구현들은 결정들을 수행하는 것, 연결들을 확립하는 것, 상이한 정보 옵션들 사이에서 선택들을 하는 것, 데이터에 관련된 평가들을 수행하는 것, 통신 디바이스 (400) 에 커플링된 센서들과 상호작용하여 측정 동작들을 수행하는 것, 하나의 포맷으로부터 다른 포맷으로 (예를 들어, .wmv 내지 .avi 등과 같은 상이한 프로토콜들 사이에서) 정보를 변환하는 것을 포함하지만, 이들로 제한되지 않는다. 예를 들어, 정보를 프로세싱하도록 구성된 로직 (410) 에 포함된 프로세서는, 범용 프로세서, 디지털 신호출프로세서 (DSP), ASIC, 필드 프로그램가능 게이트 어레이 (FPGA) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트 또는 여기에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합에 대응할 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다르게는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합한 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 정보를 프로세싱하도록 구성된 로직 (410) 은 또한, 실행될 때, 정보를 프로세싱하도록 구성된 로직 (410) 의 연관된 하드웨어가 그의 프로세싱 기능(들) 을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 프로세싱하도록 구성된 로직 (410) 은 소프트웨어 하나에만 대응하는 것은 아니고, 정보를 프로세싱하도록 구성된 로직 (410) 은 그의 기능성을 달성하기 위하여 하드웨어에 적어도 부분적으로 의거한다.
도 3을 참조하면, 통신 디바이스 (400) 는 정보를 저장하도록 구성된 로직 (415) 을 더 포함한다. 일 예에서, 정보를 저장하도록 구성된 로직 (415) 은 적어도 비-일시적인 메모리 및 연관된 하드웨어 (예를 들어, 메모리 제어기 등) 를 포함할 수 있다. 예를 들어, 정보를 저장하도록 구성된 로직 (415) 에 포함된 비-일시적인 메모리는 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 리무버블 디스크, CD-ROM, 또는 당해 분야에서 알려진 임의의 다른 형태의 저장 매체에 대응할 수 있다. 정보를 저장하도록 구성된 로직 (415) 은 또한, 실행될 때, 정보를 저장하도록 구성된 로직 (415) 의 연관된 하드웨어가 그의 저장 기능(들) 을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 저장하도록 구성된 로직 (415) 은 소프트웨어 하나에만 대응하는 것은 아니고, 정보를 저장하도록 구성된 로직 (415) 은 그의 기능성을 달성하기 위하여 하드웨어에 적어도 부분적으로 의거한다.
도 3을 참조하면, 통신 디바이스 (400) 는 선택적으로, 정보를 제시하도록 구성된 로직 (420) 을 더 포함한다. 일 예에서, 정보를 제시하도록 구성된 로직 (420) 은 적어도 출력 디바이스 및 연관된 하드웨어를 포함할 수 있다. 예를 들어, 출력 디바이스는 비디오 출력 디바이스 (예를 들어, 디스플레이 스크린, USB, HDMI 등과 같이 비디오 정보를 전달할 수 있는 포트), 오디오 출력 디바이스 (예를 들어, 스피커들, 마이크로폰 잭, USB, HDMI 등과 같이 오디오 정보를 전달할 수 있는 포트), 진동 디바이스, 및/또는 정보가 출력을 위해 포맷될 수 있거나 또는 통신 디바이스 (400) 의 사용자 또는 운영자에 의해 실제로 출력될 수 있는 임의의 다른 디바이스를 포함할 수 있다. 예를 들어, 통신 디바이스 (400) 가 도 2에서 도시된 바와 같은 UE (300A) 또는 UE (300B) 에 대응할 경우, 정보를 제시하도록 구성된 로직 (420) 은 UE (300A) 의 디스플레이 (310A) 또는 UE (300B) 의 터치스크린 디스플레이 (305B) 를 포함할 수 있다. 추가의 예에서는, 정보를 제시하도록 구성된 로직 (420) 은, 로컬 사용자를 갖지 않는 네트워크 통신 디바이스들 (예를 들어, 네트워크 스위치들 또는 라우터들, 애플리케이션 서버 (170) 와 같은 원격 서버들 등) 과 같은 어떤 통신 디바이스들에 대해, 생략될 수 있다. 정보를 제시하도록 구성된 로직 (420) 은 또한, 실행될 때, 정보를 제시하도록 구성된 로직 (420) 의 연관된 하드웨어가 그의 제시 기능(들) 을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 제시하도록 구성된 로직 (420) 은 소프트웨어 하나에만 대응하는 것은 아니고, 정보를 제시하도록 구성된 로직 (420) 은 그의 기능성을 달성하기 위하여 하드웨어에 적어도 부분적으로 의거한다.
도 3을 참조하면, 통신 디바이스 (400) 는 선택적으로, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 을 더 포함한다. 일 예에서, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은 적어도 사용자 입력 디바이스 및 연관된 하드웨어를 포함할 수 있다. 예를 들어, 사용자 입력 디바이스는 버튼들, 터치스크린 디스플레이, 키보드, 카메라, 오디오 입력 디바이스 (예를 들어, 마이크로폰, 또는 마이크로폰 잭 등과 같이 오디오 정보를 전달할 수 있는 포트), 및/또는 통신 디바이스 (400) 의 사용자 또는 운영자로부터 정보가 수신될 수 있는 임의의 다른 디바이스를 포함할 수 있다. 예를 들어, 통신 디바이스 (400) 가 도 2에서 도시된 바와 같은 UE (300A) 또는 UE (300B) 에 대응할 경우, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은 키패드 (320A), 버튼들 (315A 또는 310B 내지 325B) 중의 임의의 것, 터치스크린 디스플레이 (305B) 등을 포함할 수 있다. 추가의 예에서는, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은, 로컬 사용자를 갖지 않는 네트워크 통신 디바이스들 (예를 들어, 네트워크 스위치들 또는 라우터들, 애플리케이션 서버 (170) 와 같은 원격 서버들 등) 과 같은 어떤 통신 디바이스들에 대해, 생략될 수 있다. 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은 또한, 실행될 때, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 의 연관된 하드웨어가 그의 입력 수신 기능(들) 을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은 소프트웨어 하나에만 대응하는 것은 아니고, 로컬 사용자 입력을 수신하도록 구성된 로직 (425) 은 그의 기능성을 달성하기 위하여 하드웨어에 적어도 부분적으로 의거한다.
도 3을 참조하면, 405 내지 425 의 구성된 로직들은 도 3에서 분리 또는 구분되는 블록들로서 도시되어 있지만, 각각의 구성된 로직이 그의 기능성을 수행하는 하드웨어 및/또는 소프트웨어는 부분적으로 오버랩될 수 있다는 것이 인식될 것이다. 예를 들어, 405 내지 425 의 구성된 로직들의 기능성을 가능하게 하기 위하여 이용된 임의의 소프트웨어는 정보를 저장하도록 구성된 로직 (415) 과 연관된 비-일시적인 메모리에 저장되어, 405 내지 425 의 구성된 로직들은 각각, 정보를 저장하도록 구성된 로직 (415) 에 의해 저장된 소프트웨어의 동작에 부분적으로 기초하여 그들의 기능성 (즉, 이 경우, 소프트웨어 실행) 을 수행할 수 있다. 마찬가지로, 구성된 로직들 중의 하나와 직접 연관되는 하드웨어는 때때로 다른 구성된 로직들에 의해 차용 또는 이용될 수 있다. 예를 들어, 정보를 프로세싱하도록 구성된 로직 (410) 의 프로세서는 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 에 의해 송신되기 전에 데이터를 적절한 포맷으로 포맷하여, 정보를 수신 및/또는 송신하도록 구성된 로직 (405) 이 정보를 프로세싱하도록 구성된 로직 (410) 과 연관된 하드웨어 (즉, 프로세서) 의 동작에 부분적으로 기초하여 그의 기능성 (즉, 이 경우, 데이터의 송신) 을 수행할 수 있다.
일반적으로, 이와 다르게 명시적으로 언급되지 않으면, 본 개시의 전반에 걸쳐 이용된 어구 "~하도록 구성된 로직" 은 하드웨어로 적어도 부분적으로 구현되는 실시형태를 환기시키도록 의도된 것이고, 하드웨어에 관련 없는 소프트웨어만의 구현들에 맵핑하도록 의도된 것은 아니다. 또한, 다양한 블록들에서의 구성된 로직 또는 "~하도록 구성된 로직" 은 특정 로직 게이트들 또는 엘리먼트들에 한정되는 것이 아니라, (하드웨어, 또는 하드웨어 및 소프트웨어의 조합 중의 어느 하나를 통하여) 본원에 기재된 기능을 수행할 수 있는 능력을 일반적으로 지칭한다는 것이 인식될 것이다. 따라서, 다양한 블록들에서 예시된 구성된 로직들 또는 "~하도록 구성된 로직" 은 단어 "로직" 을 공유함에도 불구하고 로직 게이트들 또는 로직 엘리먼트들로서 반드시 구현되는 것은 아니다. 다양한 블록들에서의 로직간의 다른 상호작용들 또는 협력은 이하에서 더욱 상세하게 설명된 실시형태들의 검토로부터 당해 분야의 당업자에게 명확해질 것이다.
상기 언급된 통신 시스템 또는 다른 유형의 액세스 네트워크 (예를 들어, WiFi 등) 를 사용하는 클라이언트 디바이스들 (예를 들어, 휴대폰들과 같은 모바일 디바이스들) 은 하나 이상의 호스트 서버들이 있는 클라이언트 애플리케이션들에 대한 등록을 유지하는 것이 일반적이다. 예를 들어, 사용자는 자신의 휴대 전화 상의 페이스북 클라이언트 애플리케이션, 자신의 태블릿 컴퓨터 상의 페이스북 클라이언트 애플리케이션, 자신의 랩탑 또는 데스크탑 상의 페이스북 클라이언트 애플리케이션, 자신의 스마트 TV 상의 페이스북 클라이언트 애플리케이션 등을 통해 페이스북 호스트 서버로 자신의 페이스북 계정에 로그인할 수 있다. 이러한 클라이언트 애플리케이션 등록은 일반적으로 일시적이며 주기적인 갱신이 필요하거나, 또는 그렇지 않으면 클라이언트 애플리케이션은 그 각각의 호스트 서버에 의해 등록 해제될 것이다. 또한, 2 이상의 클라이언트 애플리케이션이 동일한 호스트 서버에의 활성 등록을 유지하는 것도 가능하다. 이 경우, 2 이상의 클라이언트 애플리케이션들을 실행하는 각각의 디바이스들은 일반적으로 각각의 클라이언트 애플리케이션들의 등록을 연장 또는 갱신하기 위한 독립적인 등록 갱신 요청들을 송신할 것이 요구될 것이다.
도 4는 본 발명의 일 실시형태에 따라 주어진 사용자 ("사용자 A") 와 연관하여 등록되는 클라이언트 디바이스들 내의 애플리케이션 구성들을 나타낸다. 도 4를 참조하면, 사용자 A가 클라이언트 디바이스 (400A) (예를 들어, 셀룰러 폰 또는 핸드셋), 클라이언트 디바이스 (410A) (예를 들어, 태블릿 컴퓨터), 클라이언트 디바이스 (420A) (예를 들어, 랩톱 컴퓨터) 및 클라이언트 디바이스 (430A) (예를 들어, 또 다른 셀룰러 폰 또는 핸드셋) 을 제어한다고 가정한다. 클라이언트 디바이스 (400A, 410A, 420A 및 430A) 의 각각은 클라이언트 애플리케이션들 (405A, 415A, 425A 및 435A) 의 세트를 각각 실행하도록 구성된다. 특히, 클라이언트 애플리케이션 X ("App X") 는 클라이언트 애플리케이션들 (405A, 415A, 425A 및 435A) 의 각 세트의 각각 중에서 포함된다. App X는 각 클라이언트 디바이스들에 설치되는 것으로 지칭되지만, 실제로 App X의 다른 버전을 설치할 수 있다. 예를 들어, App X의 핸드셋 버전이 클라이언트 애플리케이션 세트 (405A 및 435A) 사이에 포함될 수 있고, App X의 태블릿 버전이 클라이언트 애플리케이션 세트 (415A) 사이에 포함될 수 있고, App X의 랩톱 버전이 클라이언트 애플리케이션 세트 (425A) 사이에 포함될 수 있다. 따라서, 다른 디바이스 사용자 인터페이스, 폼 팩터 및/또는 운영 체제는 App X의 상이한 버전들을 필요하게 만들 수 있다. 또한, 유사한 구성들을 갖는 디바이스들 상에 App X의 다른 버전들이 설치될 수 있다 (예를 들어, 핸드셋 디바이스 1과 2는 동일한 물리적 구성을 가지며 각각 App X가 설치되게 할 수 있으며, 하지만 App X의 최신 버전이 디바이스 1 상에서 실행 등이 되도록 업그레이드가 릴리스되기 때문에 디바이스 2의 사용자는 App X를 업그레이드하지 않는다). 아래에서 보다 상세히 논의되는 바와 같이, App X의 등록을 담당하는 서버는, 등록을 수행중인 각 디바이스에서의 잠재적인 버전 차이와 상관없이 각 App X 인스턴스를 사용자 A와 연관시킬 수 있다.
도 5는 도 4에 도시된 바와 같이 각각 클라이언트 디바이스 (400A 및 410A) 상의 App X에 대해 구현될 수 있는 예시적인 등록 절차를 도시한다. 도 5에서는, App X가 동일한 호스트 서버 ("애플리케이션 서버 (170)") 에 의해 지원되고 등록되도록 구성된다고 가정된다. 그러나, 이러한 가정은 클라이언트 디바이스들 (400A 및/또는 410A) 상에 배치된 다른 클라이언트 애플리케이션들에 대해 반드시 사실일 필요는 없다.
도 5는 도 4에 도시된 바와 같이 각각 클라이언트 디바이스 (400A 및 410A) 상의 App X에 대해 구현될 수 있는 예시적인 등록 절차를 도시한다. 도 5에서는, App X가 동일한 호스트 서버 ("애플리케이션 서버 (170)") 에 의해 지원되고 등록되도록 구성된다고 가정된다. 그러나, 이러한 가정은 클라이언트 디바이스들 (400A 및/또는 410A) 상에 배치된 다른 클라이언트 애플리케이션들에 대해 반드시 사실일 필요는 없다. 도 5를 참조하면, 클라이언트 디바이스 (400A) 는 등록 메시지를 애플리케이션 서버 (170) 로 송신한다 (500). 도 5에서, 500의 등록 메시지는 등록을 위한 연관 사용자를 식별하는 사용자 어드레스, App X 식별자 (ID), 클라이언트 디바이스 (400A) 상의 App X에 의해 사용된 IP 어드레스 및 포트 번호, 클라이언트 디바이스 (400A) 의 디바이스 식별자 (ID) 를 포함하는 SIP (Session Initiation Protocol) 레지스터 메시지를 통해 구현된 것으로 도시된다. 일례에서, App X에 의해 사용되는 포트 번호는 App X에 고유할 수 있지만, App X에 의해 사용되는 IP 어드레스는 또한 클라이언트 디바이스 (400A) 에서 실행중인 다른 클라이언트 애플리케이션들과 공유되어, 클라이언트 애플리케이션들이 그 포트 번호에 의해 구별될 수 있다. 이로써, 애플리케이션 서버는 App X의 포트 번호와 함께 IP 어드레스를 사용하여 외부 디바이스들로부터 클라이언트 디바이스 (400A) 상의 App X로 메시지를 라우팅할 수 있다. 일례에서, App X ID는 App X를 다른 클라이언트 애플리케이션과 구별하는 전역적 고유 ID로 구현될 수 있다. 이 경우, 임의의 버전의 App X가 설치된 임의의 다른 클라이언트 디바이스는 App X에 대해 동일한 App X ID를 사용할 수 있으며, 버전 정보는 선택적으로 등록 메시지의 별도 필드를 통해 표시될 수 있다. 대안의 예에서, App X ID는 각각이 상이한 버전의 App X 과 연관되는 다중의 전역적 고유의 App X ID들을 포함할 수 있다 (예를 들어, App X의 태블릿 버전은 제 1 의 App X ID를 가질 수 있고, App X의 데스크톱 버전은 제 2 의 App X ID를 가질 수 있고, App X의 스마트 TV 버전은 제 3 의 App X ID를 가질 수 있다). 이 경우, 등록 메시지를 통해 버전 정보를 표시하기 위한 별도의 필드가 필요하지 않다. 또한, 디바이스 ID는 클라이언트 디바이스 (400A) 를 MAC 디바이스와 같은 임의의 다른 클라이언트 디바이스로부터 구별하는 클라이언트 디바이스 (400A) 에 대한 전역적으로 고유한 식별자에 대응할 수 있다. 설명의 편의상, 본 출원 전반에 걸쳐 기재된 등록 메시지는 SIP에 따른 SIP 레지스터 메시지를 참조할 것이지만, 다른 실시형태는 비-SIP 구현을 지향할 수 있음을 알 것이다.
도 5를 참조하면, 505에서, 애플리케이션 서버 (170) 는 500의 SIP 레지스터 메시지로부터의 클라이언트 디바이스 (400A) 의 IP 어드레스 및 App X의 포트 번호에 기초하여 클라이언트 디바이스 (400A) 상의 App X로 200 OK 메시지를 전송함으로써 500으로부터의 SIP 레지스터 메시지에 확인응답 (ACK) 한다. 또한, 500으로부터의 SIP 레지스터 메시지에 응답하여, 애플리케이션 서버 (170) 는 선택적으로 App X의 SIP 레지스터 메시지를 인증한다 (510). 500으로부터의 SIP 레지스터 메시지가 510에서 적절히 인증되면 (또는 인증이 스킵되면), 애플리케이션 서버 (170) 는 (i) App X의 ID, (ii) App X와 연관된 IP 어드레스 및 포트 번호, 및 (iii) 클라이언트 디바이스 (400A, 515) 와 연관된 디바이스 ID를 포함하는 사용자 어드레스에 의해 식별된 사용자와 연관하여 App X에 대한 레코드를 확립함으로써 App X를 등록한다한다. 애플리케이션 서버 (170) 는 또한 App X의 등록에 대한 만료 타이머를 시작하며 (520), 이에 의해 애플리케이션 서버 (170) 는 App X의 만료 타이머의 만료시 App X의 등록을 해제하도록 구성된다.
애플리케이션 서버 (170) 는 서비스가 App X에 이용 가능하다는 것을 나타내는 메시지를 클라이언트 디바이스 (400A) 상의 App X로 전송하고 (525), App X는 서비스 이용 가능 메시지에 응답하여 ACK를 전송한다 (530). 일례에서, 서비스 이용 가능 메시지 (525) 는 클라이언트 디바이스 (400A) 상의 App X의 현재 등록 기간이 만료될 때까지 유효한 인증 키를 포함한다. 535에서, App X는 클라이언트 디바이스 (400A) 에 대한 애플리케이션 서버 (170) 에서 실행중인 App X의 만료 타이머 전에 만료되도록 구성된 TTL (time to live) 타이머를 시작한다. App X의 TTL 타이머의 만료는, 클라이언트 디바이스 (400A) 에 대한 App X의 만료 타이머를 리셋함으로써 애플리케이션 서버 (170) 에의 App X의 등록을 갱신 또는 연장하기 위한 또 다른 SIP 레지스터 메시지를 송신하기 위해 클라이언트 디바이스 (400A) 상의 App X를 트리거할 것이다.
또한, 얼마 후, 클라이언트 디바이스 (410A) 상의 App X는 SIP 레지스터 메시지 (540) 를 애플리케이션 서버에 전송하는데, 이 메시지는 등록을 위한 연관 사용자를 식별하는 사용자 어드레스, App X ID, 클라이언트 디바이스 (410A) 상의 App X에 의해 사용된 IP 어드레스 및 포트 번호, 및 클라이언트 디바이스 (410A) 의 디바이스 ID를 포함한다. 545에서, 애플리케이션 서버 (170) 는 540의 SIP 레지스터 메시지로부터의 클라이언트 디바이스 (400A) 의 IP 어드레스 및 App X의 포트 번호에 기초하여 클라이언트 디바이스 (410A) 상의 App X로 200 OK 메시지를 전송함으로써 540으로부터의 SIP 레지스터 메시지에 ACK한다. 또한, 540으로부터의 SIP 레지스터 메시지에 응답하여, 애플리케이션 서버 (170) 는 선택적으로 App X의 SIP 레지스터 메시지를 인증한다 (550). 540으로부터의 SIP 레지스터 메시지가 510에서 적절히 인증되면 (또는 인증이 스킵되면), 애플리케이션 서버 (170) 는 (i) APP X의 ID, (ii) App X와 연관된 IP 어드레스 및 포트 번호, 및 (iii) 클라이언트 디바이스 (410A) 와 연관된 디바이스 ID 를 포함하는 사용자 어드레스에 의해 식별된 사용자와 연관하여 App X에 대한 레코드를 설정함으로써 App X를 등록한다. 애플리케이션 서버 (170) 는 또한 클라이언트 디바이스 (410A) 상의 App X의 등록에 대한 만료 타이머를 시작하며 (560), 이에 의해 애플리케이션 서버 (170) 는 App X의 만료 타이머의 만료시 클라이언트 디바이스 (410A) 상의 App X의 등록을 해제하도록 구성된다.
애플리케이션 서버 (170) 는 서비스가 App X에 이용 가능하다는 것을 나타내는 메시지를 클라이언트 디바이스 (410A) 상의 App X로 전송하고 (565), App X는 서비스 이용 가능 메시지에 응답하여 ACK를 전송한다 (570). 일례에서, 서비스 이용 가능 메시지 (565) 는 클라이언트 디바이스 (410A) 상의 App X의 현재 등록 기간이 만료될 때까지 유효한 인증 키를 포함한다. 575에서, 클라이언트 디바이스 (410A) 상의 App X는 애플리케이션 서버 (170) 에서 실행중인 App X의 만료 타이머 전에 만료되도록 구성된 TTL 타이머를 시작한다. 클라이언트 디바이스 (410A) 상의 App X의 TTL 타이머의 만료는, App X의 만료 타이머를 리셋함으로써 애플리케이션 서버 (170) 에의 클라이언트 디바이스 (410A) 상의 App X의 등록을 갱신 또는 연장하기 위한 또 다른 SIP 레지스터 메시지를 송신하기 위해 클라이언트 디바이스 (410A) 상의 App X를 트리거할 것이다.
도 6은 도 5의 프로세스의 실행 후에 클라이언트 디바이스 (400A 및 410A) 상의 App X에 대한 등록을 갱신 또는 연장하기 위한 종래의 메커니즘을 나타낸다. 도 6을 참조하면, 575 이후 일부 포인트에서, 클라이언트 디바이스 (400A) 는 535에서 시작된 App X의 TTL 타이머가 만료되었다고 결정한다 (600). 이는 애플리케이션 서버 (170) 에의 클라이언트 디바이스 (400A) 에 대한 App X의 등록을 연장 또는 갱신하도록 애플리케이션 서버 (170) 에 요청하는 기능을 하는 또 다른 SIP 레지스터 메시지를 송신하도록 클라이언트 디바이스 (400A) 를 트리거한다. 애플리케이션 서버 (170) 는 605로부터의 SIP 레지스터 메시지를 200 OK 메시지로 ACK 하고 (610), 애플리케이션 서버 (170) 는 또한 App X의 만료 타이머를 리셋 또는 연장함으로써 클라이언트 디바이스 (400A) 의 App X에 대한 등록을 갱신한다 (615). 이해할 수 있는 바와 같이, 615의 동작은 클라이언트 디바이스 (400A) 상의 App X의 등록이 달리 만료되는 시점을 푸시 백한다. 애플리케이션 서버 (170) 는 업데이트된 인증 키를 갖는 서비스 이용 가능 메시지를 전송함으로써 그 등록이 갱신되었음을 클라이언트 디바이스 (400A) 상의 App X에 통지하고 (620), 클라이언트 디바이스 (400A) 는 서비스 이용 가능 메시지에 ACK 한다 (625). 630에서, 클라이언트 디바이스 (400A) 상의 App X는 App X TTL 타이머를 리셋 또는 재시작하여, App X TTL 타이머가 클라이언트 디바이스 (400A) 상에서 만료된 다음에, 클라이언트 디바이스 (400A) 가 애플리케이션 서버 (170) 에의 App X의 등록을 갱신하기 위한 또 다른 SIP 레지스터 메시지를 전송하도록 하는 등이다.
도 6을 참조하면, 클라이언트 디바이스 (410A) 는 App X의 TTL 타이머가 만료되었다고 결정한다 (635). 이는 클라이언트 디바이스 (410A) 에 대한 애플리케이션 서버 (170) 에의 App X의 등록을 연장 또는 갱신하도록 애플리케이션 서버 (170) 에 요청하는 기능을 하는 또 다른 SIP 레지스터 메시지를 640에서 송신하도록 클라이언트 디바이스 (410A) 를 트리거한다. 애플리케이션 서버 (170) 는 640으로부터의 SIP 레지스터 메시지를 200 OK 메시지로 ACK하고 (645), 애플리케이션 서버 (170) 는 또한 App X의 만료 타이머를 리셋 또는 연장함으로써 클라이언트 디바이스 (410A) 상의 App X에 대한 등록을 갱신한다 (650). 이해할 수 있는 바와 같이, 650의 동작은 클라이언트 디바이스 (410A) 에 대한 App X의 등록이 달리 만료되는 시점을 푸시 백한다. 애플리케이션 서버 (170) 는 업데이트된 인증 키를 갖는 서비스 이용 가능 메시지를 전송함으로써 그 등록이 갱신되었음을 클라이언트 디바이스 (410A) 상의 App X에 통지하고 (655), 클라이언트 디바이스 (410A) 는 서비스 이용 가능 메시지에 ACK 한다 (660). 665에서, 클라이언트 디바이스 (410A) 상의 App X는 App X TTL 타이머를 리셋 또는 재시작하여, App X TTL 타이머가 만료된 다음에, 클라이언트 디바이스 (410A) 가 애플리케이션 서버 (170) 에의 클라이언트 디바이스 (410A) 에 대한 App X의 등록을 갱신하기 위한 또 다른 SIP 레지스터 메시지를 전송하도록 하는 등이다.
사용자들이, 서로 근접하는 여러 클라이언트 디바이스들에 동일한 클라이언트 애플리케이션을 설치하는 것이 점점 더 보편화되고 있다. 예를 들어, 특정 사용자는 홈 환경에서의 스마트 TV, 셀룰러 폰, 태블릿 컴퓨터 및/또는 랩톱 또는 데스톱 컴퓨터와 같은, 홈 환경에서의 여러 근접 클라이언트 디바이스들에 설치된 비디오 컨텐츠 (예를 들어, Netflix, YouTube 등) 를 스트리밍하기 위한 클라이언트 애플리케이션의 다양한 버전을 가질 수 있다. 각각의 클라이언트 디바이스 상의 각각의 클라이언트 애플리케이션이 자체적인 등록 갱신 절차에 독립적으로 관여하는 도 6에 도시된 종래의 접근법은, 동일한 클라이언트 애플리케이션의 다수의 버전이 근접한 클라이언트 디바이스들 상에 설치될 때 자원 사용면에서 낭비적일 수 있다. 이에 따라서, 본 발명의 실시형태들은 상이한 다수의 근접 클라이언트 디바이스들에 대한 등록 갱신 요청들을 단일 송신으로 합병 또는 어그리게이팅함으로써 동일한 사용자와 연관하여 다수의 근접 클라이언트 디바이스들 상에 설치된 주어진 클라이언트 애플리케이션에 대한 등록을 갱신하는데 사용되는 메시징의 양을 감소시키는 것에 관한 것이다.
도 7은 본 발명의 일 실시형태에 따른 클라이언트 디바이스 (예를 들어, 클라이언트 디바이스 (400A, 410A, 420A 또는 430A)) 를 동작시키는 프로세스를 나타낸다. 도 7을 참조하면, 700에서, 클라이언트 디바이스는 클라이언트 디바이스의 리스트를 획득하며, 그 클라이언트 디바이스에 대한 클라이언트 애플리케이션 (예를 들어, App X) 은 주어진 사용자와 연관하여 서버에 등록된다 (예를 들어, 각각의 클라이언트 애플리케이션 인스턴스는 애플리케이션 서버에서 동일한 사용자 어드레스로 등록된다). 본원에서 사용된 바와 같이, 각각의 열거된 클라이언트 디바이스가 실행하도록 구성된 "클라이언트 애플리케이션"은 동일한 기본 서비스 (예를 들어, Facebook, Netflix 등) 와 연관되지만 버전마다 다를 수 있다. 예를 들어, 데스크톱 컴퓨터, 핸드셋 디바이스 및 스마트 TV는 각각 다른 버전의 클라이언트 애플리케이션을 실행할 수 있지만, 이들 디바이스 각각은 700에서 획득된 리스트에 열거될 것이다.
도 7을 참조하면, 클라이언트 디바이스는, 클라이언트 디바이스들의 리스트로부터의 하나 이상의 다른 클라이언트 디바이스들이 클라이언트 디바이스에 근접한다고, 로컬 통신 인터페이스 (예를 들어, 피어 투 피어 인터페이스, 블루투스 인터페이스, WiFi-다이렉트 인터페이스, LTE-D 인터페이스 등) 를 통해 검출한다 (705). 예를 들어, 700에서 획득된 클라이언트 디바이스들의 리스트는 각각의 열거된 클라이언트 디바이스에 대한 식별 정보 (예를 들어, MAC ID, IP 어드레스, SSID 등과 같은 디바이스 ID) 를 포함할 수 있으며, 그에 따라 각각의 열거된 클라이언트 디바이스는 로컬 통신 인터페이스를 통한 각각의 식별 정보를 주기적으로 방송할 것으로 기재되고, 클라이언트 디바이스는 임의의 열거된 클라이언트 디바이스들이 근접한지 여부를 검출하기 위해 로컬통신 인터페이스를 모니터링할 수 있다. 마찬가지로, 클라이언트 디바이스는 또한 열거된 클라이언트 디바이스들에서의 검출을 용이하게 하기 위해 로컬 통신 인터페이스를 통해 자신의 식별 정보를 주기적으로 방송할 수 있다.
본 명세서에 사용된 바와 같이, "로컬 통신 인터페이스"는 애플리케이션 서버와 관련되지 않고 상이한 클라이언트 디바이스들 사이에서 브릿지될 수 있는 임의의 통신 경로에 대응할 수 있다. 이것은 다이렉트 P2P, 블루투스, WiFi-다이렉트, LTE-D 등과 같은 임의의 다이렉트 (또는 포인트-투-포인트) 통신 인터페이스를 포함하며, 또한 액세스 포인트에 의해 중재되는 인다이렉트 P2P와 같은 간접 통신 인터페이스 등도 포함할 수 있다. 이로써 로컬 통신 인터페이스는 애플리케이션 서버에 의해 중재되는 통신에 비해 적은 오버헤드로 통신이 일어날 수 있는 임의의 인터페이스이므로, 서버로/로부터 간접 방식으로 메시지를 중계하는 로컬 통신 인터페이스를 사용하면서 애플리케이션 서버에 메시지를 어그리게이팅하는 것은 시스템 자원 활용 측면에서 이점을 제공한다. 또한, 본 명세서에 사용된 용어 "근접한 (proximate)" 은 로컬 통신 인터페이스를 통해 통신하는 2 이상의 클라이언트 디바이스들의 예상 또는 실제 용량을 나타낸다. 예를 들어, 블루투스 능력을 가진 2 개의 클라이언트 디바이스들은, 2 개의 클라이언트 디바이스들 사이에 실제 블루투스 접속이 존재하지 않더라도 (즉, 예상된 통신 용량에 의해 근접하더라도) 2 개의 클라이언트 디바이스가 서로 5 피트 떨어져 있다면, 근접한 것으로 간주될 수 있다. 마찬가지로, LTE-D 접속이 확립된 2 개의 클라이언트 디바이스들은 확립된 LTE-D 접속에 의해 근접한 것으로 (즉, 실제 통신 용량에 근접한 것으로) 간주될 수 있다. 따라서, 물리적 거리면에서 "근접한" 클라이언트 디바이스들을 구성하는 범위는 인터페이스 유형에 따라 다를 수 있다 (예를 들어, 블루투스의 경우 10-30 피트, LTE-D의 경우 수백 미터 등).
도 7을 참조하면, 710에서, 클라이언트 디바이스 또는 그 위에 설치된 각각의 클라이언트 애플리케이션을 갱신하기 위해 705에서 검출된 하나 이상의 다른 클라이언트 디바이스에 의해 결정이 이루어진다. 일례에서, 이 결정은, 705의 검출이 임박한 등록 갱신 절차에 의해 직접 트리거되지 않는 주기적 또는 백그라운드 프로세스로서 또한 발생할 수 있지만, 705의 검출을 초래하는 로컬 통신 인터페이스를 통한 검색을 트리거할 수 있다. 이 결정에 응답하여, 도 6에서와 같은 하나의 특정 클라이언트 디바이스 상의 클라이언트 애플리케이션에 대한 등록 갱신을 요청하는 등록 갱신 요청을 단순히 송신하는 대신에, 705에서 검출된 클라이언트 디바이스 및 하나 이상의 다른 클라이언트 디바이스들은 클라이언트 디바이스와 하나 이상의 다른 클라이언트 디바이스들 모두에 대한 서버에의 클라이언트 애플리케이션 등록을 갱신하기 위한 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 주어진 클라이언트 디바이스를 식별하기 위해 통신한다 (710). 예를 들어, 710에서의 통신은 하나 이상의 디바이스 선택 룰들에 기초하는 디바이스 선택 프로토콜을 구현하는데 사용될 수 있다. 예를 들어, 하나 이상의 디바이스 선택 룰은 배터리 전력을 보존하기 위해 배터리 전원의 공급 디바이스를 통해 플러그-인 디바이스를 선택하는 것, 셀룰러 정체를 줄이기 위해 셀룰러-접속된 디바이스 상에서 WiFi-접속된 디바이스를 선택하는 것, App X에 대한 가장 임박한 TTL 타이머 만료 시간을 갖는 디바이스를 선택하는 것, 또는 이들의 조합을 포함할 수 있다.
715에서, 클라이언트 디바이스는 710에서 클라이언트 디바이스가 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 것으로 식별되는지 여부를 결정한다. 클라이언트 디바이스가 710에서 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 것으로 식별되지 않으면, 클라이언트 디바이스는 또 다른 클라이언트 디바이스가 어그리게이팅된 등록 요청 메시지를 전송할 것이라는 기대에 기초하여 App X에 대한 등록 갱신 요청을 송신하는 것을 억제한다 (720). 그렇지 않으면, 710에서 클라이언트 디바이스가 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 것으로 식별되면, 클라이언트 디바이스는 어그리게이팅된 등록 요청 메시지를 구성하고 (725), 어그리게이팅된 등록 요청 메시지를 애플리케이션 서버에 송신한다 (730). 이해할 수있는 바와 같이, App X 등록 갱신 요청을 송신하는데 필요한 근접한 클라이언트 디바이스들의 수를 줄이면 관련된 네트워크(들)에서 물리적 계층 간섭 및/또는 백홀 혼잡이 제한된다.
도 8은 본 발명의 일 실시형태에 따른 서버 (예를 들어, 애플리케이션 서버 (170)) 를 동작시키는 프로세스를 나타낸다. 특히, 도 8은 도 7과 관련하여 위에서 설명한 클라이언트측 동작들과 관련하여 수행되는 서버측 동작을 나타낸다.
도 8을 참조하면, 800에서, 서버는 복수의 상이한 클라이언트 디바이스들 각각의 주어진 사용자에게 클라이언트 애플리케이션을 등록한다. 서버는 복수의 상이한 클라이언트 디바이스들의 리스트를 복수의 상이한 클라이언트 디바이스들 중 적어도 하나에 제공한다 (805). 예를 들어, 서버는 주어진 사용자를 위한 새로운 클라이언트 디바이스에 클라이언트 애플리케이션을 등록하는 동안 또는 일부 나중 시점에 805의 리스트를 제공할 수 있다. 서버는, 클라이언트 디바이스가 주어진 사용자에 대해 클라이언트 애플리케이션을 등록 또는 등록 해제할 때마다, 또는 주기적인 방식으로 현재 등록된 클라이언트 디바이스들에 업데이트된 리스트를 제공할 수 있다. 추가 예에서, 서버 자체는 805의 리스트를 각각의 등록된 클라이언트 디바이스에 전파할 필요가 없다. 예를 들어, 등록된 2 개의 클라이언트 디바이스들이 근접해 있고 로컬 통신 인터페이스 (예를 들어, P2P, 블루투스, WiFi 다이렉트, LTE-D 등) 를 통해 접속되어 있는 경우, 서버는 등록된 클라이언트 디바이스들 중 하나에 리스트를 제공할 수 있으며, 등록된 클라이언트 디바이스들 중 하나는 다른 인접 클라이언트 디바이스로 리스트를 중계할 수 있다.
810에서, 805의 리스트 제공에 응답하여, 서버는 (i) 주어진 클라이언트 디바이스의 서버에의 클라이언트 애플리케이션 등록을 갱신하기 위한 요청, 및 (ii) 클라이언트 디바이스에 근접하는 하나 이상의 다른 클라이언트 디바이스들에 대한 서버에의 클라이언트 애플리케이션의 1회 이상의 등록들을 갱신하기 위한 하나 이상의 요청들을 포함하는, 어그리게이팅된 등록 요청 메시지를 복수의 상이한 클라이언트 디바이스들 중에서 주어진 클라이언트 디바이스로부터 수신한다.
도 9는 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 4의 클라이언트 디바이스 (400A 및 410A) 와 관련하여 수행된 도 7 및 8의 프로세스들의 예시적인 구현을 나타낸다. 도 9의 실시형태에서, 클라이언트 디바이스들 (400A 및 410A) 은 서로 근접한 것으로 가정된다. 도 9를 참조하면, 애플리케이션 서버는 클라이언트 디바이스들 (400A 및 410A) 에 클라이언트 디바이스의 리스트를 제공하며, 그 클라이언트 디바이스에 대한 App X는 (예를 들어, 도 7의 700 또는 도 8의 805에서와 같이) 사용자 A에 등록된다 (900). 900의 제공은, 도 5의 프로세스 전, 후 또는 도중에 발생할 수 있다.
도 9를 참조하면, 575 이후 일부 포인트에서, 클라이언트 디바이스 (400A) 는 535에서 시작된 App X의 TTL 타이머가 만료되었다고 결정한다 (905). 도 6의 605에서와 같이 또 다른 SIP 레지스터 메시지를 송신하는 대신에, 클라이언트 디바이스 (400A) 는 (예를 들어, 도 7의 705에서와 같이) 900, 910의 리스트에 제공되는 클라이언트 디바이스 (410A) 에 대한 식별 정보를 사용하여 로컬 통신 인터페이스를 통해 클라이언트 디바이스 (410A) 를 검출한다. 다음, 클라이언트 디바이스들 (400A 및 410A) 은 서로 통신하여, (예를 들어, 도 7의 710에서와 같이) 어떤 클라이언트 디바이스가 서버에의 그 각각의 App X 등록들 양자를 갱신하기 위한 어그리게이팅된 등록 요청 메시지를 송신하는 것을 담당할 것인지를 식별한다 (915). 도 9의 실시형태에서, 클라이언트 디바이스 (400A) 가 담당하고 있는 클라이언트 디바이스인 것으로 식별된다고 가정된다.
(예를 들어, 도 7의 730 또는 도 8의 805에서와 같이) 920에서, 클라이언트 디바이스 (400A) 는 등록을 위해 연관된 사용자를 식별하는 사용자 어드레스 ("사용자 어드레스"), App X ID ("App X ID"), 클라이언트 디바이스 (400A) 에 의해 사용된 IP 어드레스 및 포트 번호 ("IP 어드레스_ #1" 및 "App X Port_#1") 및 클라이언트 디바이스 (410A) 에 의해 사용된 IP 어드레스 및 포트 번호 ("IP 어드레스_ #2" 및 "App X Port_#2"), 클라이언트 디바이스 (400A) 의 디바이스 ID들 ("디바이스 ID_ #1") 및 클라이언트 디바이스 (410A) 의 디바이스 ID들 ("디바이스 ID_ #2") 를 포함하는 어그리게이팅된 등록 요청 메시지를 구성 및 전송한다. 925에서, 애플리케이션 서버 (170) 는 920의 SIP 레지스터 메시지로부터의 클라이언트 디바이스 (410A) 의 IP 어드레스 및 App X의 포트 번호에 기초하여 클라이언트 디바이스 (400A) 상의 App X로 200 OK 메시지를 전송함으로써 920으로부터의 SIP 레지스터 메시지에 ACK한다. 920으로부터의 SIP 레지스터 메시지에 응답하여, 애플리케이션 서버는 양 클라이언트 디바이스들 (400A 및 410A) 에 대한 App X 등록들을 갱신한다 (930 및 935).
도 9의 실시형태에서, 애플리케이션 서버 (170) 는 업데이트된 인증 키를 갖는 서비스 이용 가능 메시지를 전송함으로써 양 클라이언트 디바이스들 (400A 및 410A) 에 대한 App X 등록들이 갱신되었음을 클라이언트 디바이스 (400A) 상의 App X에 통지하고 (940), 클라이언트 디바이스 (400A) 는 서비스 이용 가능 메시지에 ACK 한다 (945). 서비스 이용가능 메시지에 응답하여, 클라이언트 디바이스 (400A) 는 로컬 통신 인터페이스를 통해 클라이언트 디바이스 (410) 상의 App X에 대한 업데이트된 인증 키에 의해 서비스 이용 가능 메시지를 클라이언트 디바이스 (410A) 로 포워딩함으로써 그 등록이 갱신되었음을 클라이언트 디바이스 (410A) 상의 App X에 통지한다 (950). 클라이언트 디바이스 (400A) 상의 App X는 App X TTL 타이머 (955) 를 리셋 또는 재시작하고, 클라이언트 디바이스 (410A) 상의 App X는 마찬가지로 자신의 App X TTL 타이머 (960) 를 리셋하거나 재시작한다.
도 7-9와 관련하여 전술한 실시형태가 동일한 사용자에 대한 상이한 디바이스들 상의 App X의 다중 인스턴스들에 대한 등록 갱신을 요청하는 어그리게이팅된 등록 요청 메시지를 송신하기 위해 서로 조정되는 근접 클라이언트 디바이스들에 관한 것이지만, 도 10-12는 서버가 2 이상의 클라이언트 디바이스들에 대한 자신의 근접 검출을 행한 후, 요청 클라이언트 디바이스에 근접하는 적어도 하나의 클라이언트 디바이스에 의한 등록 갱신을 명시적으로 요청하지 않은 적어도 하나의 클라이언트 디바이스에 대한 등록 갱신(들)을 선제적으로 발행하는 시나리오에 관한 것이다.
도 10은 본 발명의 일 실시형태에 따른 서버 (예를 들어, 애플리케이션 서버 (170)) 를 동작시키는 프로세스를 나타낸다. 도 10을 참조하면, 서버는 복수의 상이한 클라이언트 디바이스들 각각의 주어진 사용자와 연관된 클라이언트 애플리케이션 (예를 들어, App X) 을 등록한다 (1000). 나중에 어느 시점에서, 서버는 등록된 클라이언트 디바이스들 중 하나로부터 클라이언트 애플리케이션에 대한 등록을 갱신하기 위한 요청을 수신한다 (1005). 도 7-9와 관련하여 전술한 등록 갱신 요청과는 달리, 1005의 등록 갱신 요청은 어그리게이팅된 등록 요청 메시지가 아니며 클라이언트 디바이스 자체에 대한 클라이언트 애플리케이션에 대한 등록 갱신만을 요청한다. 요청하는 클라이언트 디바이스에 대한 애플리케이션 등록을 단순히 갱신하는 대신에, 서버는 등록된 클라이언트 디바이스둘 중에서 적어도 하나의 다른 클라이언트 디바이스에 클라이언트 디바이스가 근접한다는 것을 검출한다 (1010). 1010의 검출은 다양한 방식으로 수행될 수 있다. 예를 들어, 서버는 등록된 클라이언트 디바이스들 중 어느 것이 서로 근접하는지를 결정하기 위해 서버에 의해 평가되는 하나 이상의 등록된 클라이언트 디바이스들로부터 위치 정보를 보고하는 위치 보고서 (예를 들어, 등록된 클라이언트 디바이스들이 현재 접속되는 액세스 포인트, 위도 경도 좌표, 적어도 하나의 다른 클라이언트 디바이스가 로컬 통신 인터페이스를 통해 클라이언트 디바이스에 의해 검출되었다는 보고 등) 를 수신할 수 있다. 예를 들어, 동일한 액세스 포인트에 접속된 클라이언트 디바이스들은 근접한 것으로 간주될 수 있거나, 위도 경도 좌표에 기초하여 서로의 임계 거리 내에 있는 클라이언트 디바이스는 근접한 것으로 간주될 수 있거나, 또는 로컬 통신 인터페이스를 통해 서로 접속되는 클라이언트 디바이스들은 근접하다고 간주될 수 있는 식이다. 추가 예에서, 1010의 검출은 최근의 등록 이력 정보에 기초하여 서버에서 구현될 수 있다. 예를 들어, 제 1 클라이언트 디바이스로부터 도착한 이전 등록 메시지가 제 2 클라이언트 디바이스에 대한 등록 갱신 요청을 번들하는 것을 포함하는 어그리게이팅된 등록 요청 메시지인 경우, 서버는 임계 기간 동안 제 1 및 제 2 클라이언트 디바이스 클라이언트 디바이스가 여전히 근접한다는 것을 가정할 수 있다. 이 경우, 임계 시간 내에 수신된 제 1 또는 제 2 클라이언트 디바이스 중 하나로부터 1005에서 수신된 (어그리게이팅되거나 비어그리게이팅된) 다른 등록 갱신 메시지는 다른 클라이언트 디바이스가 여전히 근접하다는 가정을 통해 1010 의 검출을 트리거할 수 있다. 추가 예에서, 1010의 검출은 발견적 (heuristic) 정보에 기초하여 서버에서 구현될 수 있다. 예를 들어, 자정에, 사용자(들)는 적어도 사용자(들)가 깨어날 때까지 동일한 위치에 머물러 있는 각각의 디바이스들과 함께 통상 잠들어 있으므로, 자정에 근접한 임의의 디바이스는 오전 2시, 오전 4 시 등에 근접할 가능성이 높다. 이 시나리오에서, 서버는 근접에 관한 특정 가정을 할 수 있다, 예를 들어 자정에 가까운 것으로 긍정적으로 식별된 2개의 디바이스들은 주어진 시간량 동안 (예를 들어, 과거의 사용자 특정 방식의 사용자 웨이크업 시간들 또는 디폴트 사용자 웨이크업 시간에 관한 이력 정보에 기초할 수 있는, 사용자(들)에 대한 프로젝팅된 웨이크업까지) 근접한 것으로 단순히 가정된다.
1010의 검출 후에, 서버는 1000에서 애플리케이션 등록 갱신을 요청한 클라이언트 디바이스에 근접한 것으로 검출되는 적어도 하나의 다른 클라이언트 디바이스에 대한 애플리케이션 등록을 선제적으로 갱신하도록 결정한다 (1015). 이에 따라서, 서버는 1015의 결정에 응답하여, 클라이언트 및 적어도 하나의 다른 클라이언트 디바이스 양자에 대한 클라이언트 애플리케이션 등록들이 임의의 연관된 인증 키들과 함께 갱신된다는 표시들을, 요청 클라이언트 디바이스로 송신한다 (1020). 1015의 송신은, 도 11의 1110과 관련하여 후술되는 바와 같이, 로컬 통신 인터페이스를 통해 적어도 하나의 다른 클라이언트 디바이스에 등록 갱신 통지를 중계하려고 시도하는 요청 클라이언트 디바이스에 대한 암시적 또는 명시적 명령으로서 작용한다. 이 시점에서, 서버는 선택적으로, 클라이언트 디바이스가 적어도 하나의 다른 클라이언트 디바이스 상의 클라이언트 애플리케이션에 대한 연관된 등록(들)을 갱신하기 이전에, 로컬 통신 인터페이스를 통해 적어도 하나의 다른 클라이언트 디바이스에 대한 갱신 표시(들)를 성공적으로 전달했음을 나타내는 표시를 대기할 수 있다 (1025). 1025의 대안으로서, 서버는 적어도 하나의 다른 클라이언트 디바이스 상의 클라이언트 애플리케이션에 대한 등록을 갱신할 수 있으며, 클라이언트 디바이스가 등록 갱신 통지 실패를 후속적으로 보고하는 경우 등록 갱신을 되돌릴 수 있다.
도 11은 본 발명의 일 실시형태에 따른 클라이언트 디바이스 (예를 들어, 클라이언트 디바이스 (400A, 410A, 420A 또는 430A)) 를 동작시키는 프로세스를 나타낸다. 특히, 도 11은 도 10과 관련하여 위에서 설명한 서버측 동작들과 관련하여 수행되는 클라이언트측 동작을 나타낸다.
도 11을 참조하면, 1100에서, 클라이언트 디바이스는 서버에의 클라이언트 애플리케이션의 등록을 갱신하기 위한 요청을 송신한다. 도 7-9와 관련하여 전술한 등록 갱신 요청과는 달리, 1100의 등록 갱신 요청은 어그리게이팅된 등록 요청 메시지가 아니다. 1100의 등록 갱신 요청에 응답하여, 클라이언트 디바이스는 클라이언트 디바이스 및 클라이언트 디바이스에 인접한 적어도 하나의 다른 클라이언트 디바이스 양자에 대한 클라이언트 애플리케이션의 등록들이 임의의 연관된 인증 키들과 함께 갱신된다는 표시를 수신한다 (1105).
1110에서, 클라이언트 디바이스는, 클라이언트 애플리케이션의 적어도 하나의 다른 클라이언트 디바이스의 등록이 갱신된다는 것을, 로컬 통신 인터페이스를 통해 클라이언트 디바이스에 근접하는 적어도 하나의 다른 클라이언트 디바이스에 통지하려고 시도한다. 클라이언트 디바이스는, 1110의 시도가 성공인지 실패인지 여부에 관해 서버에 보고한다 (1115).
도 12는 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 4의 클라이언트 디바이스 (400A 및 410A) 와 관련하여 수행된 도 10 및 11의 프로세스들의 또 다른 예시적인 구현을 나타낸다. 도 12의 실시형태에서, 클라이언트 디바이스들 (400A 및 410A) 은 서로 근접한 것으로 가정된다.
도 12를 참조하면, 575 이후 일부 포인트에서, 클라이언트 디바이스 (400A) 는 535에서 시작된 App X의 TTL 타이머가 만료되었다고 결정한다 (1200). 이후 클라이언트 디바이스 (400A) 는 클라이언트 디바이스 (400A) 상의 App X에 대해 SIP 레지스터 메시지 요청 갱신을 전송하고 (1205) (예를 들어, 도 6의 605 및 도 10의 1005와 유사함), 그리고 애플리케이션 서버는 SIP 레지스터 메시지에 ACK 한다 (1210). 클라이언트 디바이스 (400A) 에 대한 App X 등록을 단순히 갱신하는 대신에, 애플리케이션 서버는 클라이언트 디바이스 (400A) 가 동일한 사용자에 등록된 App X도 또한 갖는 클라이언트 디바이스 (400A) 에 근접한다는 것을 검출한다 (예를 들어, 도 10의 1010에서와 같음). 애플리케이션 서버는 클라이언트 디바이스 (400A) 에 대한 App X 등록을 갱신하고 연관된 App X 만료 타이머를 리셋하고 (1220), 그리고 양 클라이언트 디바이스 (400A 및 410A) 에 대한 App X 등록들이 갱신되는 것을 나타내는 서비스 이용 가능 메시지를 클라이언트 디바이스 (400A) 로 송신한다 (1225). 클라이언트 디바이스 (400A) 는 서비스 이용 가능 메시지에 ACK 하고 (1230), 그리고 자신의 App X TTL 타이머를 리셋한다 (1235). 클라이언트 디바이스 (400A) 는 (예를 들어, 도 11의 1110에서와 같이) 자신의 App X 등록이 또한 갱신되었음을 클라이언트 디바이스 (410A) 에 통지하려고 시도하고, 그리고 클라이언트 디바이스 (410A) 상의 App X에 대한 업데이트된 인증 키를 제공한다 (1240). 예를 들어, 클라이언트 디바이스 (400A) 는 도 12에 도시된 바와 같이 로컬 통신 인터페이스를 통해 클라이언트 디바이스 (410) 에 서비스 이용 가능 메시지를 포워딩하려고 시도할 수 있다.
도 12의 실시형태에서, 클라이언트 디바이스 (410A) 는 클라이언트 디바이스 (400A) 로부터 App X 등록 갱신 통지에 ACK하고 (1245), 자신의 App X TTL 타이머를 리셋한다 (1250). 다음, 클라이언트 디바이스 (400A) 는 클라이언트 디바이스 (410A) 에 대한 App X 등록을 갱신하는 애플리케이션 서버에 성공적인 App X 등록 갱신 통지를 보고하고 (1255), 연관된 App X 만료 타이머를 리셋한다 (1260).
도 13은 본 발명의 실시형태에 따른 도 5의 프로세스의 연속으로서 도 4의 클라이언트 디바이스 (400A 및 410A) 와 관련하여 수행된 도 10 및 11의 프로세스들의 또 다른 예시적인 구현을 나타낸다. App X에 대한 피기-백 등록 갱신 통지가 클라이언트 디바이스 (410A) 에 성공적으로 도달하지 않는다는 점을 제외하면, 도 13의 프로세스는 도 12의 프로세스와 유사하다. 도 12와 유사하게, 도 13의 실시형태에서, 클라이언트 디바이스들 (400A 및 410A) 은 서로 근접한 것으로 가정된다.
도 13을 참조하면, 1300-1340은 각각 도 12의 1200-1240에 실질적으로 대응한다. 1345에서, 도 12의 1245와 대조적으로, 클라이언트 디바이스 (410A) 는 클라이언트 디바이스 (400A) 로부터 App X 등록 갱신 통지를 NACK한다. 1345의 NACK은 명백한 NACK이거나 (예를 들어, 1340의 송신이 실패했음을 나타내는 실제 메시지가 클라이언트 디바이스 (410A) 로부터 전송됨) 또는 암시적 NACK일 수 있다 (예를 들어, 클라이언트 디바이스 (410A) 는 임계 시간 내에 1340의 송신을 ACK하는데 실패함). 이에 따라, 클라이언트 디바이스 (410A) 는 자신의 App X TTL 타이머를 리셋하지 않으며 (1350), 그리고 클라이언트 디바이스 (400A) 는 애플리케이션 서버에 App X 등록 갱신 통지 실패를 보고하여 (1355), 애플리케이션 서버가 클라이언트 디바이스 (410A) 에 대한 App X 등록을 갱신하지 않고 연관된 App X 만료 타이머를 리셋하지 않도록 한다 (1360).
당업자는 정보 및 신호가 임의의 다양한 상이한 기술 및 기법을 이용하여 표현될 수도 있음을 인식할 것이다. 예를 들어, 위의 설명 전체에 걸쳐 언급될 수도 있는 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자기장 또는 자기입자, 광학장 (optical field) 또는 광학 입자, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
또한, 당업자는, 여기에 개시된 예시적 실시형태와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계가 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 양자의 조합으로 구현될 수도 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로, 및 단계가 일반적으로 그들의 기능성의 측면에서 위에서 설명되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로 구현될지 여부는, 전체 시스템에 부과된 특정 응용 및 설계 제약에 달려 있다. 당업자는 설명된 기능성을 각각의 특정 응용을 위해 다른 방식으로 구현할 수도 있지만, 이러한 구현 결정이 본 발명의 범위를 벗어나는 것으로 해석되지는 않아야 한다.
여기에 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 및 회로는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트 또는 여기에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다르게는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다.
여기에 개시된 예시적 실시형태들과 관련하여 설명된 방법, 시퀀스 및/또는 알고리즘은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 양자의 조합으로 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적 저장 매체는 프로세서가 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있도록 프로세서에 연결된다. 다르게는, 저장 매체는 프로세서에 내장될 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. ASIC는 사용자 단말 (예를 들어, UE) 에 상주할 수도 있다. 다르게는, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트로서 상주할 수도 있다.
하나 이상의 예시적 실시형태들에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 또는 송신될 수도 있다. 컴퓨터 판독가능 매체는 일 장소로부터 또 다른 장소로의 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 양자 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 비한정적 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 반송 또는 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인 (DSL), 또는 적외선, 전파, 및 마이크로파와 같은 무선 기술을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 그 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 전파, 및 마이크로파와 같은 무선 기술은 매체의 정의 내에 포함된다. 여기에 설명된 바처럼, 디스크 (disk) 및 디스크 (disc) 는 컴팩 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 일반적으로 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생한다. 또한, 상기의 조합은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
이전의 개시는 본 발명의 예시적인 실시형태들을 보여주지만, 첨부된 청구항들에 의해 정의된 본 발명의 범위로부터 벗어남이 없이 다양한 변화 및 변경들이 여기서 이루어질 수 있음에 유의해야 한다. 여기에 설명된 본 발명의 실시형태들에 따른 방법 청구항들의 기능, 단계 및/또는 액션들은 어느 특정 순서로 수행될 필요는 없다. 또한, 본 발명의 엘리먼트들은 단수형태로 설명되고 청구될 수도 있지만, 단수형으로의 한정이 명시적으로 언급되지 않으면 복수형이 고려된다.

Claims (30)

  1. 주어진 사용자와 연관하여 서버에 등록되는 클라이언트 애플리케이션을 실행하도록 구성된 클라이언트 디바이스를 동작시키는 방법으로서,
    클라이언트 디바이스들의 리스트를 획득하는 단계로서, 상기 클라이언트 디바이스들에 대한 상기 클라이언트 애플리케이션이 상기 주어진 사용자와 연관하여 상기 서버에 등록되는, 상기 클라이언트 디바이스들의 리스트를 획득하는 단계;
    상기 클라이언트 디바이스들의 리스트로부터의 하나 이상의 다른 클라이언트 디바이스들이 상기 클라이언트 디바이스에 근접하다는 것을, 로컬 통신 인터페이스를 통해, 검출하는 단계; 및
    상기 클라이언트 디바이스 또는 상기 하나 이상의 다른 클라이언트 디바이스들에 의해 상기 클라이언트 애플리케이션을 갱신하려는 결정에 응답하여, 상기 클라이언트 디바이스와 상기 하나 이상의 다른 클라이언트 디바이스들 양자에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위한 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 주어진 클라이언트 디바이스를 식별하기 위해, 상기 로컬 통신 인터페이스를 통해 상기 하나 이상의 다른 클라이언트 디바이스들과 통신하는 단계를 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  2. 제 1 항에 있어서,
    상기 획득하는 단계는 상기 서버 또는 열거된 상기 클라이언트 디바이스들 중 하나로부터 상기 클라이언트 디바이스들의 리스트를 획득하는, 클라이언트 디바이스를 동작시키는 방법.
  3. 제 1 항에 있어서,
    상기 로컬 통신 인터페이스는 다이렉트 또는 포인트-투-포인트 인터페이스, 인다이렉트 인터페이스, 피어-투-피어 (P2P) 인터페이스, 블루투스 인터페이스, WiFi-다이렉트 인터페이스, LTE-D 인터페이스 또는 이들의 임의의 조합에 대응하는, 클라이언트 디바이스를 동작시키는 방법.
  4. 제 1 항에 있어서,
    상기 클라이언트 디바이스는 상기 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 상기 주어진 클라이언트 디바이스로서 식별되고,
    (i) 상기 클라이언트 디바이스의 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위한 요청, 및 (ii) 상기 하나 이상의 다른 클라이언트 디바이스들에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 1회 이상의 등록들을 갱신하기 위한 하나 이상의 요청들을 포함하도록 상기 어그리게이팅된 등록 요청 메시지를 구성하는 단계; 및
    상기 어그리게이팅된 등록 요청 메시지를 상기 서버로 송신하는 단계를 더 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  5. 제 4 항에 있어서,
    상기 클라이언트 디바이스 및 상기 하나 이상의 다른 클라이언트 디바이스들 상의 상기 클라이언트 애플리케이션의 등록들이 갱신되었음을 나타내는 메시지를 상기 서버로부터 수신하는 단계; 및
    상기 하나 이상의 다른 클라이언트 디바이스들에 대한 서버에의 상기 클라이언트 애플리케이션의 1회 이상의 등록들이 갱신되었다고, 상기 로컬 통신 인터페이스를 통해 상기 하나 이상의 다른 클라이언트 디바이스들에 통지하려고 시도하는 단계를 더 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  6. 제 1 항에 있어서,
    상기 클라이언트 디바이스는 상기 어그리게이팅된 등록 요청 메시지를 전송하는 것을 담당하는 상기 주어진 클라이언트 디바이스로서 식별되지 않고,
    상기 주어진 클라이언트 디바이스가 상기 어그리게이팅된 등록 요청 메시지를 송신할 것이라는 기대에 기초하여 상기 클라이언트 디바이스를 대신하여 상기 서버에 등록 요청 메시지를 송신하는 것을 억제하는 단계를 더 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  7. 제 6 항에 있어서,
    상기 클라이언트 디바이스에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 등록이 갱신되었음을 나타내는 통지를, 상기 로컬 통신 인터페이스를 통해, 상기 주어진 클라이언트 디바이스로부터 수신하는 단계를 더 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  8. 제 1 항에 있어서,
    상기 클라이언트 디바이스에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기로 결정하는 단계를 더 포함하고,
    상기 검출하는 단계 및 상기 통신하는 단계는 상기 결정하는 단계에 응답하여 수행되는, 클라이언트 디바이스를 동작시키는 방법.
  9. 제 1 항에 있어서,
    결정하는 단계는 상기 클라이언트 디바이스에 대한 상기 클라이언트 애플리케이션의 TTL (Time To Live) 타이머의 만료에 기초하는, 클라이언트 디바이스를 동작시키는 방법.
  10. 제 1 항에 있어서,
    상기 검출하는 단계 및 상기 통신하는 단계는, 상기 다른 클라이언트 디바이스에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위해 또 다른 클라이언트 디바이스에 의해 행해진 결정에 응답하여 수행되는, 클라이언트 디바이스를 동작시키는 방법.
  11. 제 1 항에 있어서,
    상기 클라이언트 디바이스들의 리스트에서 2 이상의 클라이언트 디바이스들은 상기 클라이언트 애플리케이션의 상이한 버전들을 실행하도록 구성되는, 클라이언트 디바이스를 동작시키는 방법.
  12. 제 1 항에 있어서,
    상기 클라이언트 디바이스들의 리스트에서 각각의 클라이언트 디바이스는 상기 클라이언트 애플리케이션의 동일한 버전을 실행하도록 구성되는, 클라이언트 디바이스를 동작시키는 방법.
  13. 클라이언트 애플리케이션을 지원하도록 구성된 서버를 동작시키는 방법으로서,
    복수의 상이한 클라이언트 디바이스들 각각의 주어진 사용자에게 상기 클라이언트 애플리케이션을 등록하는 단계;
    상기 복수의 상이한 클라이언트 디바이스들의 리스트를 상기 복수의 상이한 클라이언트 디바이스들 중 적어도 하나에 제공하는 단계; 및
    상기 제공하는 단계에 응답하여, (i) 주어진 클라이언트 디바이스의 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위한 요청, 및 (ii) 상기 클라이언트 디바이스에 근접하는 하나 이상의 다른 클라이언트 디바이스들에 대한 상기 서버에의 상기 클라이언트 애플리케이션의 1회 이상의 등록들을 갱신하기 위한 하나 이상의 요청들을 포함하는, 어그리게이팅된 등록 요청 메시지를 상기 복수의 상이한 클라이언트 디바이스들 중에서 상기 주어진 클라이언트 디바이스로부터 수신하는 단계를 포함하는, 서버를 동작시키는 방법.
  14. 제 13 항에 있어서,
    상기 하나 이상의 다른 클라이언트 디바이스들은 로컬 통신 인터페이스를 통해 통신하기 위해 예상 또는 실제 용량에 기초하여 상기 클라이언트 디바이스에 근접하는, 서버를 동작시키는 방법.
  15. 제 14 항에 있어서,
    상기 로컬 통신 인터페이스는 다이렉트 또는 포인트-투-포인트 인터페이스, 인다이렉트 인터페이스, 피어-투-피어 (P2P) 인터페이스, 블루투스 인터페이스, WiFi-다이렉트 인터페이스, LTE-D 인터페이스 또는 이들의 임의의 조합에 대응하는, 서버를 동작시키는 방법.
  16. 제 13 항에 있어서,
    상기 어그리게이팅된 등록 요청 메시지에 응답하여 상기 주어진 클라이언트 디바이스 및 상기 하나 이상의 다른 클라이언트 디바이스에 대한 등록들을 갱신하는 단계; 및
    상기 주어진 클라이언트 디바이스 및 상기 하나 이상의 다른 클라이언트 디바이스에 대한 등록들이 갱신되었음을 나타내는 메시지를 상기 주어진 클라이언트 디바이스로 송신하는 단계를 더 포함하는, 서버를 동작시키는 방법.
  17. 제 13 항에 있어서,
    상기 복수의 상이한 클라이언트 디바이스들 중 2 이상의 클라이언트 디바이스들은 상기 클라이언트 애플리케이션의 상이한 버전들을 실행하도록 구성되는, 서버를 동작시키는 방법.
  18. 제 13 항에 있어서,
    상기 복수의 클라이언트 디바이스들의 각각은 상기 클라이언트 애플리케이션의 동일한 버전들을 실행하도록 구성되는, 서버를 동작시키는 방법.
  19. 클라이언트 애플리케이션을 지원하도록 구성된 서버를 동작시키는 방법으로서,
    복수의 상이한 클라이언트 디바이스들 각각의 주어진 사용자와 연관하여 상기 클라이언트 애플리케이션을 등록하는 단계;
    상기 복수의 상이한 클라이언트 디바이스들 중에서의 클라이언트 디바이스로부터, 상기 클라이언트 디바이스의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위한 요청을 수신하는 단계;
    상기 클라이언트 디바이스가 상기 복수의 상이한 클라이언트 디바이스들 중에서 적어도 하나의 다른 클라이언트 디바이스에 근접한다는 것을 검출하는 단계;
    상기 적어도 하나의 다른 클라이언트 디바이스의 상기 클라이언트 애플리케이션의 등록을 선제적으로 갱신하도록 결정하는 단계; 및
    상기 결정에 응답하여, 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스 양자에 대한 상기 클라이언트 애플리케이션의 등록들이 갱신된다는 표시들을, 상기 클라이언트 디바이스로 송신하는 단계를 포함하는, 서버를 동작시키는 방법.
  20. 제 19 항에 있어서,
    상기 검출하는 단계는 상기 서버에서 획득되는 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스와 연관된 위치 정보에 기초하는, 서버를 동작시키는 방법.
  21. 제 20 항에 있어서,
    상기 위치 정보는, 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스가 접속되는 액세스 포인트의 식별, 상기 서버에서 획득되는 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스가 위치하는 위치 좌표들, 상기 서버에서 획득되는 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스가 로컬 통신 인터페이스를 통해 서로를 검출했다는 표시, 상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스가 최근에 서로 근접했다고 나타낸 이전 등록 메시지, 및 이들의 임의의 조합을 포함하는, 서버를 동작시키는 방법.
  22. 제 19 항에 있어서,
    상기 클라이언트 애플리케이션에 대한 등록 갱신을 상기 적어도 하나의 다른 클라이언트 디바이스에 통지하려는 시도가 성공했음을 나타내는 보고서를 상기 클라이언트 디바이스로부터 수신하는 단계; 및
    상기 보고서에 응답하여 상기 적어도 하나의 다른 클라이언트 디바이스의 상기 클라이언트 애플리케이션의 등록을 갱신하는 단계를 더 포함하는, 서버를 동작시키는 방법.
  23. 제 19 항에 있어서,
    상기 클라이언트 애플리케이션에 대한 등록 갱신을 상기 적어도 하나의 다른 클라이언트 디바이스에 통지하려는 시도가 실패했음을 나타내는 보고서를 상기 클라이언트 디바이스로부터 수신하는 단계; 및
    상기 보고서에 응답하여 상기 적어도 하나의 다른 클라이언트 디바이스의 상기 클라이언트 애플리케이션의 등록을 갱신하는 것을 억제하는 단계를 더 포함하는, 서버를 동작시키는 방법.
  24. 제 19 항에 있어서,
    상기 복수의 상이한 클라이언트 디바이스들 중에서 2 이상의 클라이언트 디바이스들은 상기 클라이언트 애플리케이션의 상이한 버전들을 실행하도록 구성되는, 서버를 동작시키는 방법.
  25. 제 19 항에 있어서,
    상기 복수의 클라이언트 디바이스들의 각각은 상기 클라이언트 애플리케이션의 동일한 버전을 실행하도록 구성되는, 서버를 동작시키는 방법.
  26. 주어진 사용자와 연관하여 서버에 등록되는 클라이언트 애플리케이션을 실행하도록 구성된 클라이언트 디바이스를 동작시키는 방법으로서,
    상기 클라이언트 디바이스의 상기 서버에의 상기 클라이언트 애플리케이션의 등록을 갱신하기 위한 요청을 송신하는 단계;
    상기 요청에 응답하여, 상기 클라이언트 디바이스 및 상기 클라이언트 디바이스에 근접하는 적어도 하나의 다른 클라이언트 디바이스 양자에 대한 상기 클라이언트 애플리케이션의 등록들이 갱신된다는 표시들을 수신하는 단계; 및
    상기 적어도 하나의 다른 클라이언트 디바이스의 상기 클라이언트 애플리케이션의 등록이 갱신된다는 것을 로컬 통신 인터페이스를 통해 상기 적어도 하나의 다른 클라이언트 디바이스에 통지하려고 시도하는 단계를 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  27. 제 26 항에 있어서,
    상기 시도하는 단계가 성공적인지 여부를 나타내는 보고서를 상기 서버로 송신하는 단계를 더 포함하는, 클라이언트 디바이스를 동작시키는 방법.
  28. 제 26 항에 있어서,
    상기 로컬 통신 인터페이스는 다이렉트 또는 포인트-투-포인트 인터페이스, 인다이렉트 인터페이스, 피어-투-피어 (P2P) 인터페이스, 블루투스 인터페이스, WiFi-다이렉트 인터페이스, LTE-D 인터페이스 또는 이들의 임의의 조합에 대응하는, 클라이언트 디바이스를 동작시키는 방법.
  29. 제 26 항에 있어서,
    상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스 중에서 2 이상의 클라이언트 디바이스들은 상기 클라이언트 애플리케이션의 상이한 버전들을 실행하도록 구성되는, 클라이언트 디바이스를 동작시키는 방법.
  30. 제 26 항에 있어서,
    상기 클라이언트 디바이스 및 상기 적어도 하나의 다른 클라이언트 디바이스는 상기 클라이언트 애플리케이션의 동일한 버전을 실행하도록 구성되는, 클라이언트 디바이스를 동작시키는 방법.
KR1020177033370A 2015-05-20 2016-04-04 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신 KR102033232B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/717,596 US10397373B2 (en) 2015-05-20 2015-05-20 Renewing registrations for client applications installed on different proximate client devices
US14/717,596 2015-05-20
PCT/US2016/025878 WO2016186741A1 (en) 2015-05-20 2016-04-04 Renewing registrations for client applications installed on different proximate client devices

Publications (2)

Publication Number Publication Date
KR20180008503A true KR20180008503A (ko) 2018-01-24
KR102033232B1 KR102033232B1 (ko) 2019-10-16

Family

ID=55806776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177033370A KR102033232B1 (ko) 2015-05-20 2016-04-04 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신

Country Status (8)

Country Link
US (1) US10397373B2 (ko)
EP (1) EP3298753B1 (ko)
JP (1) JP6704939B2 (ko)
KR (1) KR102033232B1 (ko)
CN (1) CN107637049B (ko)
ES (1) ES2739155T3 (ko)
TW (1) TW201642676A (ko)
WO (1) WO2016186741A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3348080A2 (en) * 2015-09-11 2018-07-18 Christoph, George G. System and method for content delivery
CN107015870B (zh) * 2016-09-19 2020-11-03 创新先进技术有限公司 实现web页面与本地应用通信的方法、装置和电子设备
US10768979B2 (en) * 2016-09-23 2020-09-08 Apple Inc. Peer-to-peer distributed computing system for heterogeneous device types
CN108234184B (zh) * 2016-12-22 2021-01-15 上海诺基亚贝尔股份有限公司 用于管理用户信息的方法和设备
US10425475B2 (en) * 2017-02-27 2019-09-24 International Business Machines Corporation Distributed data management
US10447741B2 (en) * 2017-07-26 2019-10-15 T-Mobile Usa, Inc. Server-managed notifications for maintaining registered state
US11189017B1 (en) 2018-09-11 2021-11-30 Apple Inc. Generalized fusion techniques based on minimizing variance and asymmetric distance measures
CN111556024B (zh) * 2020-03-31 2022-07-05 中国航天系统科学与工程研究院 一种反向接入控制系统及方法
EP4054146B1 (en) * 2021-03-05 2023-03-15 Spotify AB Systems and methods for communicating with a device in a low power mode
CN114070825A (zh) * 2021-11-17 2022-02-18 上海景吾智能科技有限公司 机器人与数字电话通信方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110185437A1 (en) * 2010-01-04 2011-07-28 Samsung Electronics Co., Ltd. Method and system for multi-user, multi-device login and content access control and metering and blocking
US8054780B1 (en) * 2008-12-09 2011-11-08 Sprint Spectrum L.P. Transparent application data notification during IMS registrations
WO2014162175A1 (en) * 2013-04-02 2014-10-09 Broadcom Corporation Method and apparatus for discovering devices and application users
WO2015042370A1 (en) * 2013-09-20 2015-03-26 Convida Wireless, Llc Method of joint registration and de-registration for proximity services and internet of things services
US20150234832A1 (en) * 2014-02-18 2015-08-20 Google Inc. Proximity Detection

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438690B1 (en) 1998-06-04 2002-08-20 International Business Machines Corp. Vault controller based registration application serving web based registration authorities and end users for conducting electronic commerce in secure end-to-end distributed information system
GB2406664B (en) 2003-10-03 2006-12-13 Sendo Int Ltd Registering an application program of an information device
US7761571B2 (en) 2003-11-25 2010-07-20 Panasonic Corporation SIP service for home network device and service mobility
US8655357B1 (en) 2006-08-22 2014-02-18 At&T Mobility Ii Llc Systems and methods for identifying applications on a communications device
US8005236B2 (en) 2006-09-07 2011-08-23 Porto Vinci Ltd. Limited Liability Company Control of data presentation using a wireless home entertainment hub
US8271663B2 (en) 2007-07-31 2012-09-18 Cisco Technology, Inc. System and method for multiple address of record registration using a single implicit SIP request
US9232053B2 (en) 2009-04-16 2016-01-05 Mitel Networks Corporation Extended hot desking features for multi-device users
US8239852B2 (en) 2009-06-24 2012-08-07 Uniloc Luxembourg S.A. Remote update of computers based on physical device recognition
US8812601B2 (en) 2011-05-09 2014-08-19 Google Inc. Transferring application state across devices with checkpoints
US20140120949A1 (en) * 2011-06-30 2014-05-01 Panasonic Corporation Communication device, communication system, server device and communication method
KR101850817B1 (ko) 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
CN103379469B (zh) 2012-04-13 2016-08-03 华为技术有限公司 近距离信息的注册方法、查询方法和用户设备
CN108347713B (zh) 2012-04-27 2021-12-28 交互数字专利控股公司 Wtru及由wtru执行的方法
US9130837B2 (en) 2012-05-22 2015-09-08 Cisco Technology, Inc. System and method for enabling unconfigured devices to join an autonomic network in a secure manner
US9706399B2 (en) * 2012-10-26 2017-07-11 Nokia Technologies Oy Methods and apparatus for anonymous key management in mobile ad hoc networks
US9219758B2 (en) 2013-03-05 2015-12-22 Qualcomm Incorporated Renewing registrations for a plurality of client applications that are associated with the same host server via an implicit piggybacking scheme
US9374699B2 (en) 2013-05-14 2016-06-21 Htc Corporation Proximity-based service registration method and related apparatus
CN103581176A (zh) * 2013-10-23 2014-02-12 大唐移动通信设备有限公司 会话初始协议sip消息注册刷新的方法及装置
CN103607456B (zh) * 2013-11-21 2018-12-18 厦门雅迅网络股份有限公司 一种集群移动终端的软件远程升级的方法
CN104243596B (zh) * 2014-09-24 2017-11-28 厦门美图移动科技有限公司 软件管理方法、设备和移动终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8054780B1 (en) * 2008-12-09 2011-11-08 Sprint Spectrum L.P. Transparent application data notification during IMS registrations
US20110185437A1 (en) * 2010-01-04 2011-07-28 Samsung Electronics Co., Ltd. Method and system for multi-user, multi-device login and content access control and metering and blocking
WO2014162175A1 (en) * 2013-04-02 2014-10-09 Broadcom Corporation Method and apparatus for discovering devices and application users
WO2015042370A1 (en) * 2013-09-20 2015-03-26 Convida Wireless, Llc Method of joint registration and de-registration for proximity services and internet of things services
US20150234832A1 (en) * 2014-02-18 2015-08-20 Google Inc. Proximity Detection

Also Published As

Publication number Publication date
TW201642676A (zh) 2016-12-01
CN107637049B (zh) 2020-06-16
ES2739155T3 (es) 2020-01-29
KR102033232B1 (ko) 2019-10-16
US20160344845A1 (en) 2016-11-24
EP3298753B1 (en) 2019-05-15
CN107637049A (zh) 2018-01-26
WO2016186741A1 (en) 2016-11-24
EP3298753A1 (en) 2018-03-28
JP2018523196A (ja) 2018-08-16
US10397373B2 (en) 2019-08-27
JP6704939B2 (ja) 2020-06-03

Similar Documents

Publication Publication Date Title
KR102033232B1 (ko) 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신
US9219758B2 (en) Renewing registrations for a plurality of client applications that are associated with the same host server via an implicit piggybacking scheme
US11736927B2 (en) Network assisted device-to-device discovery for peer-to-peer applications
US10904326B2 (en) Network assisted device-to-device discovery for peer-to-peer applications
US9225579B2 (en) Renewing registrations for a plurality of client applications that are associated with the same host server via an explicit piggybacking scheme
EP3178048B1 (en) Triggering a communicative action based on a client-determined relationship between proximate client devices
US20160105786A1 (en) Leveraging peer-to-peer discovery messages for group activity notification
TWI613895B (zh) 用以管理網路中資訊之方法及裝置
US20180027458A1 (en) Exchanging network server registration credentials over a d2d network
US9693265B2 (en) Method and apparatus for mobile terminal mobility
KR20170021876A (ko) 코어 네트워크와 무선 노드 인증의 오프로딩
US20130084844A1 (en) Mobile communication device and wireless communication method
US20150215158A1 (en) Discriminating or prioritizing users during failover in a voip system
JP6251210B2 (ja) 端末装置、通信セッション確立方法、及び、プログラム
US11290982B2 (en) Notifications concerning UE unreachability
JP6469203B2 (ja) 端末装置、通信セッション確立方法、及び、プログラム
EP3213479A1 (en) Efficient group communications leveraging lte-d discovery for application layer contextual communication
KR20150052494A (ko) 단말의 파워 세이빙 방법 및 단말

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant