KR20120027461A - 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법 - Google Patents

가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법 Download PDF

Info

Publication number
KR20120027461A
KR20120027461A KR1020127000180A KR20127000180A KR20120027461A KR 20120027461 A KR20120027461 A KR 20120027461A KR 1020127000180 A KR1020127000180 A KR 1020127000180A KR 20127000180 A KR20127000180 A KR 20127000180A KR 20120027461 A KR20120027461 A KR 20120027461A
Authority
KR
South Korea
Prior art keywords
network
agent application
peer
message
address
Prior art date
Application number
KR1020127000180A
Other languages
English (en)
Other versions
KR101411145B1 (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 KR20120027461A publication Critical patent/KR20120027461A/ko
Application granted granted Critical
Publication of KR101411145B1 publication Critical patent/KR101411145B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2582NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • 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/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 방법 및 디바이스는, 소스 네트워크 (100) 상에 위치된 디바이스가 타겟 네트워크 (116) 상의 가상 디바이스로서 나타나는 것을 가능하게 한다. 소스 네트워크 및 타겟 네트워크상의 컴퓨터상에서 실행하는 에이전트 어플리케이션은 인터넷 (114) 상의 수퍼-피어 네트워킹 서버 (140) 에 의해 인에이블된 피어-투-피어 네트워크를 통해서 통신한다. 디바이스를 공유하기 위해, 타겟 네트워크 에이전트 (126) 는 소스 네트워크 에이전트 (108) 에 소스 네트워크 내의 디바이스에 액세스를 제공하도록 요청한다. 소스 네트워크 에이전트는 디바이스 명칭, 특징, 및 서비스 템플릿 정보를 타겟 네트워크 에이전트에 전송한다. 타겟 네트워크 에이전트는 수신된 정보 그 자체를 디바이스로서 타겟 네트워크에 어나운싱하도록 이용한다. 타겟 네트워크상의 디바이스들은 타겟 네트워크 에이저트로부터 디바이스 서비스들을 요청할 수도 있다. 이러한 요청들은 타겟 네트워크 에이전트에 의해 리패키징되고 소스 네트워크 에이전트로 전공된다. 소스 네트워크 에이전트는, 서비스 요청을 실제 디바이스에 다시 전송하고 수신된 응답을 타겟 네트워크 에이전트에 다시 전송한다. 타겟 네트워크 에이전트는, 요청 디바이스에 응답하여 서비스를 수신하고, 프로세싱하여 포워딩한다. 그후, 제 1 네트워크상의 요청 디바이스는, 2 개의 디바이스들이 동일한 네트워크상에 있었던 것처럼, 제 2 네트워크상의 디바이스로부터 서비스에 직접 액세스할 수 있다. 이러한 방법을 이용하여, 로컬 네트워크상의 디바이스들은, 서버가 그 로컬 네트워크상에 있었던 것처럼, 인터넷 서버상에서 이용가능한 서비스에 액세스할 수도 있다.

Description

가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법{SYSTEMS AND METHODS FOR CREATING VIRTUAL UNIVERSAL PLUG-AND-PLAY SYSTEMS}
관련 출원
본 출원은, 발명의 명칭이 "Systems And Methods For Creating Virtual Universal Plug-And-Play Systems" 로 2009년 6월 3일자로 출원된 미국 가출원 특허 제61/183,761호에 대한 우선권을 주장하고, 그 내용은 참조로서 본 명세서에 통합된다.
본 발명은, 일반적으로, 컴퓨터 네트워크에 관한 것이고, 더욱 상세하게는, 사설 네트워크들 사이에서 미디어 선택 및 인증을 스트리밍하는 원격 제어에 관한 것이다.`
점점 더, 사람들은 디지털 미디어, 예를 들어, 오디오 파일, 비디오 파일, 디지털 이미지 등의 수집을 해나가고 있다. 썸 드라이브 (thumb drive), CD-R 디스크, 및 MP3 플레이어와 같은 휴대용 메모리 디바이스들이 이용을 위해 이곳저곳으로 이러한 파일들을 물리적으로 운반하기 위해 몇몇 성능들을 제공했지만, 종종 이러한 메모리 디바이스들은 성능을 옮겨다니는데 있어서 너무 제한적일 뿐만 아니라 민감한 데이터 파일들을 위임하는데 있어서 쉽게 분실하거나 또는 도난당한다. 여전히, 디지털 미디어의 수집가들은 정교한 네트워크 브릿지를 셋업할 필요 없이 그들의 수집에 액세스할 수 있는 이점을 가질 수 있다.
방법 및 디바이스들은 소스 네트워크상에 위치된 디바이스들이 타겟 네트워크 상의 가상 디바이스로서 나타나도록 인에이블한다. 소스 네트워크 및 타겟 네트워크상의 그리고 중앙 네트워크 서버상의 컴퓨터에서 실행하는 에이전트 어플리케이션들은, 인터넷상의 수퍼-피어 네트워킹 서버에 의해 인에이블된 피어-투-피어 네트워크를 통해서 통신한다. 디바이스를 공유하기 위해, 중앙 서버 에이전트는, 소스 네트워크 내의 디바이스에 액세스를 제공하도록 소스 네트워크 에이전트에 요청하고, 전송될 이러한 정보를 타겟 네트워크에 전송시킨다. 소스 네트워크 에이전트는, 디바이스 명칭, 특징 및 서비스 템플릿 정보를 타겟 네트워크 에이전트에 전송한다. 타겟 네트워크 에이전트는 수신된 정보 그 자체를 디바이스로서 이용하여 타겟 네트워크에 어나운싱한다. 타겟 네트워크상의 디바이스들은 타겟 네트워크 에이전트로부터 디바이스 서비스들을 요청할 수도 있다. 이러한 요청들은, 타겟 네트워크 에이전트에 의해 리패키징되어 소스 네트워크 에이전트에 전송된다. 소스 네트워크 에이전트는, 서비스 요청을 실제 디바이스에 다시 전송하고 수신된 응답을 타겟 네트워크 에이전트에 다시 전송한다. 타겟 네트워크 에이전트는, 응답을 수신하고 이 수신된 응답을 프로세싱하여, 서비스 응답을 요청 디바이스에 포워딩한다. 그후, 제 1 네트워크상의 요청 디바이스는, 2 개의 네트워크들이 동일한 네트워크상에 있었던 것처럼, 제 2 네트워크상의 디바이스로부터의 서비스에 직접 액세스할 수 있다. 이러한 방법을 이용하여, 로컬 네트워크상의 디바이스들은, 서버가 로컬 네트워크상에 있었던 것처럼, 인터넷 서버상에서 이용가능한 서비스에 액세스할 수도 있다.
본 명세서에 통합되고, 상세한 설명의 일부를 구성하는 첨부된 도면들이 본 발명의 예시적인 실시형태들을 예시하고, 전술한 일반적인 설명과 함께 이하 주어진 상세한 설명은 본 발명의 특징을 설명하도록 기능한다.
도 1 은, 다양한 실시형태들을 통해서 이용하기에 적절한 통신 시스템을 예시하는 통신 시스템 블록도이다.
도 2a 내지 도 2c 는, 다양한 실시형태들의 기능을 예시하는 통신 시스템 블록도이다.
도 3 은, 다양한 실시형태들을 통해서 이용하기 위해 이동 디바이스와 통신하는 컴포넌트들을 예시하는 통신 시스템 블록도이다.
도 4 는, 다양한 실시형태들을 통해서 이용하기 위해 이동 디바이스 상에서의 구현에 적절한 사용자 인터페이스를 도시한다.
도 5 는, 다양한 실시형태들의 개괄적인 프로세스의 프로세스 흐름도이다.
도 6 은, 다양한 실시형태들을 통해서 이용하기 위해, 피어-투-피어 네트워크를 확립하도록 네트워크를 등록하기 위한 실시형태 방법의 프로세스 흐름도이다.
도 7 은, 도 6 에 예시된 실시형태 방법에서 다양한 컴포넌트들 중 교환될 수도 있는 메시지들을 예시하는 메시지 흐름도이다.
도 8 은, 제 2 네트워크상의 가상 디바이스로서 나타날 수 있도록, 제 1 네트워크상의 디바이스를 가상화하기 위한 일 실시형태 방법의 프로세스 흐름도이다.
도 9a 내지 도 9c 는, 서비스를 획득하고 제 2 네트워크상의 가상 디바이스로서 나타나는 제 1 네트워크상의 디바이스로부터 콘텐츠를 수신하기 위한 실시형태 방법들의 프로세스 흐름도이다.
도 10 은, 이동 디바이스를 이용하여 제 1 네트워크상의 디바이스에 제 2 네트워크상의 가상 디바이스로서 액세스되도록 인에이블하기 위한 실시형태 방법의 프로세스 흐름도이다.
도 11 은, 제 1 네트워크상의 컴퓨터를 이용하여 제 1 네트워크상의 디바이스에 제 2 네트워크상의 가상 디바이스로 액세스되도록 인에이블하기 위한 다른 실시형태 방법의 프로세스 흐름도이다.
도 12 는, 제 1 네트워크상의 컴퓨터를 이용하여 제 2 네트워크상의 디바이스에 제 1 네트워크상의 가상 디바이스로서 액세스되도록 인에이블하기 위한 실시형태 방법의 프로세스 흐름도이다.
도 13 은, 도 12 에 예시된 방법에서 다양한 컴포넌트들 중 교환될 수도 있는 메시지들의 메시지 흐름도이다.
도 14 는, 다양한 실시형태의 특정 구현을 위해 이용하는데 적절한 통신 시스템의 통신 블록도이다.
도 15 는, 제 1 네트워크상의 디바이스로 하여금 제 1 네트워크상의 가상 서비스로서 서버 제공된 서비스에 액세스하도록 인에이블하기 위한 실시형태 방법의 프로세스 흐름도이다.
도 16 은, 도 15 에 예시된 방법의 다양한 컴포넌트들 중 교환되도록 요청될 수도 있는 메시지들의 메시지 흐름도이다.
도 17 은, 디지털 포토그래프 디스플레이에서 동적 파일을 스태틱 이미지로서 디스플레이하기 위한 실시형태 방법의 프로세스 흐름도이다.
도 18 은, 도 17 에 예시된 방법의 예시적인 구현의 프로세스 흐름도이다.
도 19 는, 도 17 에 예시된 방법의 다른 예시적인 구현의 프로세스 흐름도이다.
도 20 은, 다양한 실시형태들을 통해서 이용하는데 적절한 퍼스널 컴퓨터의 컴포넌트 블록도이다.
도 21 은, 다양한 실시형태들을 통해서 이용하는데 적절한 서버의 컴포넌트 블록도이다.
도 22 는, 다양한 실시형태를 통해서 이용하는데 적절한 디지털 포토 디스플레이의 컴포넌트 블록도이다.
첨부된 도면을 참조하여 다양한 실시형태들이 상세하게 설명될 것이다. 어디든 가능하면, 동일한 참조 수치들은 도면 전체적으로 동일하거나 또는 유사한 부분들을 지칭하도록 이용될 것이다. 특정 예시 및 구현들로 이루어진 참조는, 예시적인 목적을 위해서이며, 본 발명 또는 청구항의 범위를 제한하도록 의도되지 않는다.
본 명세서에서, 단어 "예시적인" 은 예, 예시, 또는 실례로서 기능하는" 을 의미하도록 이용된다. "예시적인" 으로서 본 명세서에 설명된 임의의 구현은 다른 구현들을 통해서 바람직하거나 또는 이점을 갖는 것으로서 구성되도록 필연적이지는 않다.
본 명세서에 이용되는 것과 같이, 용어 "이동 디바이스 (mobile device)" 및 "휴대용 디바이스 (handheld device)" 는, 셀룰러 폰, 휴대정보 단말기 (PDA), 팜-탑 컴퓨터, 무선 전자 메일 수신기, 셀룰러 전화기능이 인에이블된 멀티미디어 인터넷, 글로벌 위치추정 시스템 (GPS) 수신기, 무선 게이밍 제어기, 및 유사한 퍼스널 전자 디바이스 (프로그래머블 프로세서 및 메모리를 포함하고, 무선 통신 네트워크와 통신하도록 구성되고, 웹 브라우저를 가짐) 의 임의의 하나 또는 모두를 지칭한다.
본 명세서에 이용된 바와 같이, 용어 "컴퓨터", "퍼스널 컴퓨터" 및 "컴퓨팅 디바이스" 는 주지되거나 또는 미래에 개발될 임의의 프로그래머블 컴퓨터 시스템을 지칭한다. 바람직한 실시형태에서, 컴퓨터는 본 명세서에 설명되는 것과 같은 네트워크에 커플링될 것이다. 컴퓨터 시스템은 본 명세서에 설명된 프로세스들을 수행하기 위해 소프트웨어 명령들로 구성될 수도 있다.
본 명세서에 이용된 바와 같이, 용어 "컴포넌트", "모듈", "시스템" 등은, 컴퓨터 관련 엔티티, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어를 지칭하도록 의도된다. 예를 들어, 컴포넌트는, 프로세서상에서 실행하는 프로세스, 프로세서, 오브젝트, 실행가능, 실행의 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만 이에 한정하지 않는다. 예시의 방법으로, 서버상에서 실행하는 어플리케이션 및 서버 둘 다는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터상에서 로컬라이징될 수도 있고, 2 개 이상의 컴퓨터들 사이에서 분산될 수도 있다.
본 명세서에 이용된 바와 같이, 용어 "디바이스" 는 임의의 전자 디바이스를 지칭하고, 그 몇몇 예시가 본 명세서에 언급 또는 설명된다. 바람직한 실시형태에서, 디바이스는 네트워크에 커플링될 수도 있는 "유니버셜 플러그-앤-플레이 (UPnP; universal plug-and-play)" 디바이스일 수도 있다.
용어 "피어-투-피어 네트워크" 는, 주지된 또는 미래에 개발될 수도 있는 피어-투-피어 네트워크 기술의 임의의 형태를 포함하도록 의도된다. 몇몇 실시형태들은 하이퍼텍스트 전송 프로토콜 (HTTP) 메시징을 이용하는 피어-투-피어 네트워크를 지칭하지만, 이러한 지칭들은 예시로서만 기능하도록 의도되고, 임의의 특정 네트워킹 기술에 청구항의 범위를 제한하도록 의도되지는 않는다.
참조의 용이성을 위해, 다양한 실시형태들의 기능을 예시하는 예시는 제 1 및 제 2 네트워크로서 네트워크 또는 사용자를 지칭할 수도 있고, 네트워크 및 사용자 (A 및 B) 를 지칭할 수도 있다. 예를 들어, 제 1 사용자는 "사용자 A" 를 지칭할 수도 있고, 제 2 사용자는 "사용자 B" 를 지칭할 수도 있다. 도면 및 상세한 설명의 이러한 참조는 임의적이고 네트워크 및 사용자 참조를 간략화하도록 이용되며, 따라서, 다양한 실시형태들이 임의의 수의 네트워크들 및 사용자들을 지원하기 때문에, 단지 3 개의 네트워크들 또는 단지 2 명의 사용자들로 청구항의 범위를 한정하지 않도록 의도되고, 특정 네트워크들에 특정 사용자들을 한정하도록 의도되지 않는다.
다양한 양태들이 컴포넌트, 모듈 등의 수를 포함할 수도 있는 시스템과 관련하여 설명될 것이다. 다양한 시스템은, 추가적인 컴포넌트들, 모듈들 등을 포함하고, 도면과 관련하여 논의된 컴포넌트들, 모듈들 등의 모두를 포함하지 않을 수도 있다는 것을 이해 및 파악해야만 한다. 따라서, 이러한 접근방식의 조합이 이용될 수도 있다.
본 명세서에 설명된 다양한 실시형태들은, 실제 네트워크 디바이스에 있었던 것처럼 액세스될 수도 있도록, 제 1 네트워크상에서 실행하는 서비스 또는 디바이스의 발견을 가능하게 하고, 제 2 네트워크상의 디바이스 또는 서비스의 가상 렌디션 (virtual rendition) 을 생성하는 방법 및 시스템을 제공한다. 바람직한 실시형태에서, 제 1 및 제 2 네트워크들은 프로그래머블 컴퓨터, 예를 들어, 퍼스널 컴퓨터와 함께 링크된 UPnP (Universal Plug-and-Play; 예를 들어, http://www.upnp.org) 디바이스들을 이용하는 피어 네트워크이다. 또한, 제 1 및 제 2 네트워크들은, 예를 들어, 각각의 프로그래머블 컴퓨터들 사이에 통신이 확립될 수 있는 인터넷으로의 접속을 제공하는 라우터 또는 홈 게이트웨이와 같은 광대역 네트워크로의 접속을 포함한다. 제 1 및 제 2 네트워크들은, 이더넷 또는 802.11 무선 통신, 이들 통신 기술의 조합, 또는 인터넷 프로토콜 (IP) 을 지원할 수 있는 다른 네트워킹 기술을 구현할 수도 있다. 각각의 프로그래머블 컴퓨터는 그 로컬 네트워크 내의 플러그-앤-플레이 디바이스들을 발견하는 에이전트 어플리케이션으로 구성된다. 에이전트 어플리케이션은, 유사한 에이전트 어플리케이션이 설치된 다른 컴퓨터들에 대한 접속이 확립될 수 있는 광대역 네트워크상의 수퍼-피어 서버를 포함하는 피어-투-피어 네트워크에 조인하도록 컴퓨터들 각각을 인에이블한다. 소셜 네트워크와 유사하게, 사용자들은, 예를 들어 인터넷과 같은 광대역 네트워크를 통해서 디바이스 및 서비스 (예를 들어, 파일 공유) 가 확립될 수도 있는 피어-투-피어 네트워크 링크를 확립하기 위해 다른 네트워크를 초대할 수 있다.
디바이스 또는 서비스 공유를 개시하기 위해, 제 1 네트워크 내의 제 1 컴퓨터의 제 1 에이전트는 제 2 네트워크 내의 하나 이상의 디바이스들 또는 서비스들로의 액세스를 위해 피어-투-피어 네트워크 링크를 통해서 요청을 제 2 네트워크 내의 제 2 컴퓨터의 제 2 에이전트에 전송할 수도 있다. 제 2 에이전트는, 제 2 네트워크상의 플러그-앤-플레이 디바이스들의 명칭, 특징, 및 서비스 템플릿을 획득하여 이러한 정보를 피어-투-피어 네트워크 링크를 통해서 제 1 에이전트에 전송할 수도 있다. 제 1 에이전트는, 수신된 플러그-앤-플레이 정보를 이용하여 제 2 에이전트로부터 수신된 특징 및 서비스 템플릿을 갖는 UPnP 디바이스로서 그 자체를 어나운싱함으로써 제 1 네트워크상에 요청된 디바이스 또는 서비스를 모방한다. 따라서, 제 1 에이전트는 제 2 네트워크 내에서 디바이스 또는 서비스의 특징을 어나운싱하는 가상 디바이스 또는 서비스로서 작용한다. 그후, 제 1 네트워크상의 UPnP 디바이스들은 UPnP 네트워크의 보통의 방식으로 가상 디바이스 또는 서비스로부터 서비스를 요청할 수도 있다. 가상 디바이스 또는 서비스로의 서비스에 대한 요청은 제 1 에이전트에 의해 리패키징될 수도 있고, 피어-투-피어 네트워크 링크를 통해서 제 2 네트워크 내의 제 2 에이전트에 전송할 수도 있다. 제 2 네트워크에서 제 2 에이전트는 서비스 요청을 리어드레싱할 수도 있고, 리어드레싱된 요청을 제 2 네트워크의 실제 디바이스에 전송할 수도 있다. 이 디바이스는, 보통의 방식으로 제 2 에이전트에 응답한다. 그후, 제 2 에이전트는 수신된 응답을 패키징하고, 이를 피어-투-피어 네트워크 링크를 통해서 제 1 에이전트에 전송한다. 제 1 에이전트는, 유니버설 리소스 로케이터 (URL; universal resource locator) 또는 IP 어드레스들을 제 2 네트워크 또는 실제 디바이스에 대한 공중 IP 어드레스로 변화시키도록, 그 패키지를 수신하고 수신된 정보를 프로세싱하여, 제 1 네트워크상의 요청 디바이스에 서비스 응답을 포워딩한다. 그후, 제 1 네트워크상의 요청 디바이스는 제 1 및 제 2 에이전트를 통해서 제 2 네트워크상의 디바이스로부터의 서비스에 액세스할 수 있고, 여기서 요청된 파일 및 서비스들은 2 개의 디바이스들이 동일한 네트워크상에 있었던 것처럼 (피어-투-피어 네트워크 전체와는 대조적으로) 제 1 에이전트와 제 2 에이전트 사이에서 통신한다. 이러한 방법을 이용하여, 로컬 네트워크상의 디바이스들은, 디바이스가 로컬 네트워크상에 있었던 것처럼, 제 2 로컬 네트워크상에서 이용가능한 서비스에 액세스할 수도 있다. 또한, 이러한 방법은 제 2 네트워크상의 디바이스에 프리젠테이션, 프린팅 또는 디스플레이하기 위해 제 1 네트워크 내의 컴퓨터 또는 디바이스로부터의 콘텐츠를 전송하는 것을 가능하게 할 수도 있다.
다양한 실시형태들을 구현하는데 적절한 예시적인 통신 시스템은 도 1 에 예시된다. 이러한 통신 시스템은, 2 개 이상의 로컬 네트워크 (100, 116) 를 포함할 수도 있고, 통상적으로 홈 네트워크일 수도 있는 네트워크들 A 및 B 로서 본 명세서에 라벨링되고 지칭될 수도 있다. 로컬 영역 네트워크 (100, 116) 는 이더넷 또는 802.11 무선 통신, 또는 이들의 조합으로서 구현될 수도 있다. 로컬 영역 네트워크 (100, 116) 는 하나 이상의 UPnP 디바이스들 (102, 104, 106, 110, 120, 122, 124, 128) 를 포함한다. 예시된 예시의 통신 시스템에서, 네트워크들 (100, 116) 모두는, 홈 네트워크 시스템 내에서 통상적인 것처럼, 라우터 (112, 118) 또는 홈 게이트웨이를 통해서 인터넷 (114) 에 접속된다. 또한, 로컬 네트워크 (100, 116) 는, 예를 들어, 퍼스널 컴퓨터, 컴퓨터 게임 콘솔, 또는 로컬 영역 네트워크 서버와 같은 프로그래머블 컴퓨터 (108, 126) 를 포함한다. 몇몇 구현에서, 프로그래머블 컴퓨터 (108, 126) 및 라우터 (112, 118) 또는 홈 게이트웨이는, 예를 들어 홈 게이트웨이로서 기능하도록 구성된 퍼스널 컴퓨터 또는 게임 콘솔과 같은 동일한 프로그래머블 디바이스에서 구현될 수도 있다. 몇몇 실시형태에서, 하나 이상의 로컬 네트워크들 (100, 116) 은, 하나의 네트워크가 인터넷 (114) 에 커플링된 프로그래머블 컴퓨터 (108, 126) 만을 포함할 때, 라우터 (112, 118) 를 포함하지 않을 수도 있다.
로컬 네트워크 (100, 116) 는, 예를 들어, 텔레비전 (102, 120), 미디어 플레이어 (예를 들어, 디지털 비디오 디스크 (DVD) 플레이어 (104)), 콘텐츠 소스 (예를 들어, 위성 또는 케이블 TV 수신기 박스 (124)), 및 출력 디바이스 (예를 들어, 디지털 포토 프레임 (106), 프린터 (110), 및 멀티펑션 디바이스들 (128)) 와 같은 다양한 UPnP 디바이스들을 포함할 수도 있다. 미래에 개발될수도 있는 UPnP 디바이스들을 포함하는 임의의 수의 상이한 UPnP 디바이스들이 구현될 수도 있다. 추가적으로, 컴퓨팅 디바이스들 (108, 126) 내의 컴퓨터 하드 드라이브 시스템과 같은 콘텐츠 저장 디바이스가 로컬 네트워크 (100, 116) 상의 하나 이상의 UPnP 디바이스들 상에서 디스플레이 또는 플레이될 수도 있는 디지털 콘텐츠 (예를 들어, 음악, 포토그래프, 비디오 및 텍스트 파일) 를 저장할 수도 있다.
선택적으로, 통신 시스템은 인터넷 (114) 으로의 액세스를 갖는 다른 컴퓨팅 디바이스, 예를 들어, 퍼스널 컴퓨터 (138) 및 이동 디바이스 (136) 를 포함할 수도 있다. 예를 들어, 셀룰러 텔레폰과 같은 이동 디바이스 (136) 는 무선 통신 네트워크 (130) (예를 들어, WIFI 또는 셀룰러 텔레폰 데이터 통신 네트워크) 를 통해서 인터넷에 액세스할 수도 있다. 이러한 무선 통신 네트워크 (130) 는, 게이트웨이에 커플링된 복수의 기지국들 (132) 및 인터넷 (114) 에 커플링된 인터넷 액세스 서버 (134) 를 포함할 수도 있다. 퍼스널 컴퓨터들은, 인터넷 게이트웨이 (미도시) 를 통해서 유선 접속에 의해 또는 무선 통신 네트워크 (130) 에 의해서와 같은 임의의 종래의 방식으로 인터넷 (114) 에 커플링될 수도 있다.
또한, 다양한 실시형태들이 수퍼-피어 네트워킹 서버 (140), 등록 서버 (142), 및 선택적으로는 공중 인터넷 (114) 상에 위치된 리라우팅 서버 (144) 를 포함할 수도 있다. 수퍼-피어 네트워킹 서버 (140) 는, 본 명세서에 설명된 에이전트 어플리케이션들로 구성된 인터넷-접속된 컴퓨팅 디바이스들 (108, 126) 사이의 피어-투-피어 통신을 인에이블하기 위해 다양한 실시형태들에 따른 소프트웨어 명령들로 구성된 임의의 상업적으로 이용가능한 서버일 수도 있다. 등록 서버 (142) 는, (적절한 브라우저를 갖는 이동 디바이스 (136), 또는 웹 브라우저로 구성된 컴퓨팅 디바이스들 (108, 126, 138) 둘 중 하나의) 웹 브라우저로부터 요청을 수신할 수 있는 웹페이지를 호스팅하기 위해 소프트웨어 명령들로 구성된 임의의 상업적으로 이용가능한 서버일 수도 있다. 선택적인 리라우팅 서버 (144) 는, 두 네트워크가 포트 포워딩 기능을 제공하지 않을 때, 로컬 영역 네트워크들 (100, 116) 사이의 통신을 리라우팅하기 위해 소프트웨어 명령들로 구성된 임의의 상업적으로 이용가능한 서버일 수도 있다.
다양한 실시형태에서, 수퍼-피어 네트워킹 서버 (140), 등록 서버 (142), 및 선택적으로, 리라우팅 서버 (144) 는 임의의 구성 또는 특정 수의 디바이스들에 한정하지 않고, 단일의 서버, 2 개의 서버들 또는 여러개의 서버들 내에서 구현될 수도 있다. 또한, 몇몇 수퍼-피어 네트워킹 서버들 (140) 은 많은 수의 피어-투-피어 통신 링크들을 지원하기 위해 인트라넷 상에 위치될 수도 있다.
수퍼-피어 네트워킹 서버 (140) 는 엔드 포인트 디바이스들 상의 인터넷 프로토콜 (IP) 어드레스를 인지하지 않고 피어-투-피어 방식으로 다양한 컴퓨팅 디바이스들 (108, 126) 이 메시지 및 데이터를 통과시키고 서로에 대해 위치되도록 인에이블하기 위한 소프트웨어 명령들로 구성될 수도 있다. 각각의 엔드 포인트 컴퓨팅 디바이스 (108, 126) 의 위치는, IP 어드레스 이외의 고유한 명칭들의 어드레싱 체계를 이용하여 결정될 수도 있다. 이러한 어드레싱 체계에서, 각각의 어드레스는 도메인 ID 로서 알려져 있다. 따라서, 논리적으로, 각각의 도메인 ID 는 단일의 네트워크 서브네트 또는 로컬 네트워크를 기술적으로 나타내고, "장소" (예를 들어, 나의 집, 나의 사무실 등) 로서 지칭될 수도 있다. 피어-투-피어 통신을 인에이블하기 위해, 수퍼-피어 네트워킹 서버 (140) 는 사용자의 아이덴티티 또는 계정의 데이터베이스, 및 관련 도메인 ID 에 대한 액세스를 갖는다. 이러한 계정의 데이터베이스는, 사용자들이 인터넷 (114) 을 통해서 액세스할 수도 있는, 등록 서버 (142) 에 의해 유지될 수도 있고, 등록 서버 (142) 에 부가될 수도 있다. 단일의 사용자는 수많은 관련 도메인 ID 또는 "장소" 를 가질 수도 있다.
수퍼-피어 네트워킹 서버 (140) 가 에이전트 어플리케이션으로 구성된 네트워크 컴퓨팅 디바이스의 IP 어드레스에 대한 액세스를 갖기 때문에, 컴퓨팅 디바이스 (108, 126) 가 각각의 다른 도메인 ID 에 대해, 그리고 수퍼-피어 네트워킹 서버 (140) 의 IP 어드레스에 대해 통지될 때, 피어-투-피어 네트워크 (128) 가 생성될 수 있다. 사용자들이 수퍼-피어 네트워킹 서버 (140) 를 통해서 (예를 들어, 등록 서버 (142) 를 통해서) 등록된 다른 사용자들을 그들과 함께 네트워크에 초대함으로써 피어-투-피어 네트워크를 생성할 수 있다. 이러한 방식으로, 수퍼-피어 네트워킹 서버 (140) 를 통한 피어-투-피어 네트워크의 생성은 수퍼-피어 네트워킹 서버 (140) 를 통해서 등록된 사용자들 사이에서 소셜 네트워크 사이트 (예를 들어, 페이스북 또는 마이스페이스) 와 같이 기능할 수도 있다. 따라서, 사용자들은, 다른 시스템 계정에 대한 도메인 ID 또는 다른 기준이 사용자의 네트워크와 통신할 수 있다는 것을 나타냄으로써 그들의 네트워크에 "친구들" 을 연결할 수도 있다. 2 개의 네트워크들 (100, 116) 이 피어-투-피어 통신 링크 (128) 에 링크될 때, 하나의 네트워크로부터의 메시지들은 다른 네트워크에 메시지를 포워딩하고 그 메시지를 연락하기 위해 어드레스 도메인 ID 를 이용하는 수퍼-피어 네트워킹 서버 (140) 에 전송될 수도 있다.
다양한 실시형태들이, 하나의 네트워크 (100) 상에 존재하는 UPnP-인에이블된 디바이스로 하여금 제 2 네트워크 (116) 상에서 이용가능한 "가상으로" 되도록 인에이블하기 위해 UPnP 디바이스들의 기능을 이용한다. UPnP 는 네트워크 서브네트 상의 피어-투-피어 방식으로 서로에 대해 디바이스들에 의해 제공된 서비스들의 발견 및 액세스에 대한 주지된 프로토콜이다. UPnP 디바이스들의 로컬 네트워크에서, 각각의 디바이스는 IP 멀티캐스팅 방법을 이용하여 네트워크상의 자신의 존재를 어나운싱 ("광고" 또는 "광고 어나운스먼트" 로서 지칭됨) 하게 하고, 네트워크상에서 다른 UPnP 디바이스들에 대해 서칭 ("발견" 으로 지칭됨) 한다. 종래의 UPnP 네트워크에서, UPnP 디바이스 광고 및 발견의 IP 멀티캐스트는 단일 네트워크 서브네트로 제한된다. 따라서, 도 1 에서, 디바이스 발견/광고 기능은 로컬 네트워크 A (100), 및 네트워크 B (116) 각각으로 한정되고, 발견/광고 기능은 인터넷으로 또는 임의의 방식으로 로컬 네트워크 외부로 계속 나가도록 라우팅될 수 없다. 따라서, 제 1 네트워크 (100) 내의 UPnP 디바이스들이 표준 UPnP 기능을 이용하여 제 2 네트워크 (116) 내의 UPnP 디바이스들을 "관찰 (see)" 하고 또는 이들과 상호작용하는 것은 불가능하다.
다양한 실시형태들은 제 1 네트워크 (100) 내에 위치된 UPnP 디바이스 및 관련 서비스들로 하여금 "가상화되도록" 인에이블하고 제 2 네트워크 (116) 상에서 이용가능하도록 인에이블한다. 이러한 기능을 인에이블하기 위해, 에이전트 어플리케이션이 각각의 로컬 네트워크 (100, 116) 상의 컴퓨팅 디바이스 (108, 126) 상에 전개 (deploy) 된다. 에이전트 어플리케이션은, 수많은 방식으로 각각의 로컬 네트워크 (100, 116) 상의 UPnP 디바이스들 및 서비스들과 상호작용하게 하고, 인터넷 (114) 을 통해서 수퍼-피어 네트워킹 서버 (140) 와 통신하게 하고, 인터넷 (114) 을 통해서 수퍼-피어 네트워킹 서버 (140) 로부터 수신된 외부 메시지들에 응답하거나 이들에 의해 제어되게 하는 컴퓨팅 디바이스들 (108, 126) 를 구성하는 소프트웨어 프로그램이다. 제어 메시지들은, 등록 서버 (142) 에 의해 호스팅된 사용자 인터페이스 웹사이트와의 사용자 상호작용에 응답하여 등록 서버 (142) 에 의해 수퍼-피어 네트워킹 서버 (140) 에 전송될 수도 있다.
각각의 로컬 네트워크 (100, 116) 내에서, 에이전트 어플리케이션은 UPnP 디바이스들로부터의 광고 메시지에 대해 경청할 수도 있다. 또한, 가끔, 에이전트 어플리케이션은 네트워크에 연결된 UPnP 디바이스들을 발견하기 위해 로컬 네트워크 (100, 116) 상에 발견 메시지를 전송할 수도 있다. 이러한 방식으로, 에이전트 어플리케이션은 로컬 네트워크 (100, 116) 상에서 이용가능한 UPnP 디바이스 및 서비스들 모두의 완료 리스트를 증강 (build up) 할 수 있다. 이용가능한 UPnP 디바이스들 및 서비스들의 리스트는, 에이전트 어플리케이션이 구현되는 컴퓨팅 디바이스 (108, 126) 내의 캐시 내에 유지될 수도 있다.
사용자들이 등록 서버 (142) 를 경유하여 시스템을 통해서 등록되면, 에이전트 어플리케이션을 그들의 컴퓨팅 디바이스에 다운로딩하는 단계를 포함하는 프로세스는, 리소스들을 공유하는 다른 등록된 네트워크를 선택하기 위해 인터넷 (114) 에 링크된 임의의 컴퓨팅 디바이스 (136, 138) 를 통해서 등록 서버 (142) (또는 다른 서버) 에 액세스할 수도 있다. 사용자들이 서버상에 호스팅된 웹사이트에 그 자신을 식별하고 액세스함으로써 등록 서버 (142) 에 사인할 때, 그 자신의 도메인 ID ("장소들") 의 리스트 및 그들의 "친구들" (즉, 나타난 사용자가 사용자의 네트워크 도메인에 링크할 수 있는 개인들) 뿐만 아니라 그들 친구들의 도메인들로 나타낼 수도 있다.
디바이스 또는 서비스들을 공유하기 위해, 사용자는 임의의 컴퓨팅 디바이스 (136, 138) 로부터 등록 서버 (142) 에 액세스할 수도 있고, 등록 서버 (142) 상에 호스팅된 사용자 인터페이스 웹사이트를 이용하여 디바이스 또는 파일이 이용가능하게 만들어질 "타겟" 으로서 사용자의 친구의 도메인들 중 하나의 도메인을 선택한다. 타겟 네트워크가 선택되기 전 또는 후에, 사용자는 공유될 수도 있는 사용자의 자신의 도메인 ("소스" 도메인으로 지칭됨) 들의 리스트로 나타날 수도 있다. 사용자가 소스 도메인으로서 사용자의 도메인 중 하나의 도메인을 선택할 때, 등록 서버 (142) 는 수퍼-피어 네트워킹 서버 (140) 에 제어 메시지를 전송할 수도 있다. 수퍼-피어 네트워킹 서버 (140) 는 선택된 소스 네트워킹 (100) 내의 컴퓨터 (108) 에 제어 메시지를 중계할 수도 있다. 이러한 제어 메시지는 컴퓨터 (108) 내에서 실행하는 에이전트 어플리케이션을 증진시켜 로컬 네트워크 (100) 상의 에이전트 어플리케이션에 의해 발견되었던 UPnP 디바이스들의 리스트를 생성한다. 이에 응답하여, 에이전트 어플리케이션은 수퍼-피어 네트워킹 서버 (140) 를 경유하여 요청 경로를 통해서 등록 서버 (142) 에 다시 UPnP 디바이스들의 리스트를 송신한다. 등록 서버 (142) 는 소스 네트워크상의 UPnP 디바이스들의 리스트를 수신하고, 사용자에게 디스플레이하기 위한 사용자의 컴퓨팅 디바이스 (136, 138) 에 송신된 사용자의 선택에 응답하는 정보 또는 웹페이지를 생성할 수도 있다. UPnP 디바이스들의 이러한 리스팅에서, 각각의 디바이스는 보편적으로 고유한 ID (또는 UUID; Universally Unique ID) 로서 본 명세서에 지칭된 UPnP 특징에 의해 고유하게 식별될 수도 있다. 이러한 방식으로, 사용자가 인터넷 (114) 에 링크된 이동 디바이스 (136) 또는 다른 컴퓨터 (138) 를 통해서 등록 서버 (142) 에 액세스할 때와 같이 서버가 그 네트워크상에 물리적으로는 존재하지 않는 것처럼, 사용자는 사용자의 도메인들 중 하나의 도메인에 위치된 UPnP 디바이스들 모두를 관찰할 수 있다.
소스 도메인 상의 사용자의 UPnP 디바이스들의 리스트를 나타내는 사용자 인터페이스 웹페이지의 일부로서, 사용자는 특정 UPnP 디바이스 또는 서비스를 선택할 수도 있고, 타겟 도메인 상에서 선택된 디바이스 또는 서비스를 "가상화" 하기 위한 옵션이 제공될 수도 있다. 사용자가 선택된 디바이스 또는 서비스를 가상화하기 위한 응답으로 들어가는 경우, 등록 서버 (142) 는 소스 도메인 (즉, 사용자의 네트워크 (100)) 내의 컴퓨터 (108) 에 수퍼-피어 네트워킹 서버 (140) 를 통해서 제어 메시지를 전송할 수도 있다. 이러한 제어 메시지는 선택된 UPnP 디바이스의 UUID, 및 타겟 도메인 ID 모두를 식별할 수도 있다. 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션은 제어 메시지를 해석하고, 그 메시지 내에 지칭된 UPnP 디바이스를 위치시키고, UPnP 서비스 상세 및 디바이스의 UPnP 서비스 상세를 포함하는 응답 메시지를 만들어 낸다 (build). 에이전트 어플리케이션은 타겟 도메인 ID 와 함께 이러한 응답 메시지를 수퍼-피어 네트워킹 서버 (140) 에 전송할 수도 있다. 수퍼-피어 네트워킹 서버 (140) 는 도메인 ID (예를 들어, 사용자 계정 데이터베이스) 과 관련된 컴퓨터의 IP 어드레스에 연락하고 그 IP 어드레스 (즉, 타겟 네트워크 (116) 내의 컴퓨터 (126) 의 IP 어드레스) 에 그 메시지를 중계한다. 타겟 도메인 내에 있는 컴퓨터 (126) 내의 에이전트 어플리케이션은 응답 메시지를 수신하고, 그 메시지 내에 저장된 디바이스 상세 및 서비스 상세를 판독한다. 수신된 디바이스 상세 및 서비스 상세를 이용하여, 에이전트 어플리케이션은 타겟 네트워크 (116) 상의 UPnP 디바이스 광고를 수행한다. 이러한 광고 메시지는, 디바이스가 어디에서 타겟 네트워크 (116) 상의 다른 UPnP 디바이스들에 의해 액세스될 수 있는지를 나타내는 URL 을 포함한다. 이 URL 은 그 자신을 포인팅하기 위해, 특히 에이전트 어플리케이션 내에서 실행하는 간단한 HTTP 서버를 포인팅하기 위해 타겟 도메인 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션에 의해 구성된다. 이 방식으로, 에이전트 어플리케이션은 소스 도메인 (즉, 네트워크 (100)) 내의 사용자에 의해 선택된 디바이스로서 그 자신을 어나운싱하고, 이에 따라, 에이전트 어플리케이션은 타겟 도메인 (즉, 네트워크 (116)) 상의 선택된 디바이스로서 나타난다. 이는, 네트워크 B 상의 가상 데이터 저장소 (202v) 로서 나타나는 네트워크 A 상에 존재하는 데이터 저장소 (202), 및 네트워크 A 상의 가상 UPnP 디바이스 (210v) 로서 나타나는 네트워크 B 상의 UPnP 디바이스 (210) 를 도시하는 도 2a 에 예시된다.
이러한 동작은, 도 2a 를 참조하여 예시의 방법에 의해 예시될 수도 있다. 제 1 사용자 (사용자 A) 는 무선 데이터 네트워크 (130) 를 통해서 인터넷 (114) 에 연결하는 브라우저를 통해서 셀 폰 이동 디바이스 (136) 로부터 등록 서버 (142) 에 액세스 및 사인할 수도 있다. 등록 서버 (142) 에 의해 생성된 웹페이지에서, 사용자 A 는 그의 친구들 (예를 들어, 사용자 B) 및 그의 친구들의 도메인들 (예를 들어, 네트워크 B) 에 따라서 그 자신의 도메인 (예를 들어, 네트워크 A) 을 관찰할 수 있다. 또한, 웹페이지는 그 자신의 도메인 (네트워크 A) 내의 모든 UPnP 디바이스의 리스트를 디스플레이할 수도 있고, 또는, 이러한 리스트는 사용자 A 가 소스 도메인을 선택할 때 디스플레이될 수도 있다. 디스플레이된 웹페이지 내의 사용자 인터페이스를 이용하여, 사용자 A 는 타겟 도메인으로서 그의 친구 사용자 B 의 네트워크 B 를 선택할 수도 있다. 그후, 사용자 A 는소스 도메인으로서 그의 도메인 (네트워크 A) 를 선택할 수도 있고, 소스 도메인 상의 UPnP 디바이스의 디스플레이를 수신할 수도 있다. 디바이스들의 리스팅을 포함하는 사용자 인터페이스를 이용하여, 사용자 A 는 가상화를 위해 그의 미디어 저장소 (202) 를 선택할 수도 있다. 이 예시에서, 미디어 저장소 (202) 는 2 개의 UPnP 서비스들 (ContentDirectory:1 및 ConnectionManager:1) 를 포함하는 UPnP 미디어 서버이다. 등록 서버 (142) 에 의해 호스팅된 사용자 인터페이스를 이용하여, 사용자 A 는 그의 미디어 저장소 (202) 를 가상화하도록 선택한다. 전술한 바와 같이, 이러한 선택은, 네트워크 A 내의 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션으로 하여금 타겟 네트워크 (즉, 네트워크 B) 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션에 미디어 저장소 (202) 의 디바이스 상세 및 서비스 상세를 전송하게 한다. 이러한 메시지의 수신시에, 네트워크 B 내의 에이전트 어플리케이션은 수신된 디바이스 상세 및 서비스 상세에 기초하여 네트워크 B 상에 UPnP 광고 메시지를 전송한다. 이러한 UPnP 광고 메시지들 내에서, 에이전트 어플리케이션은 그 자신을 포인팅하기 위해 디바이스 상세 내에 제어 URL 을 설정한다. 도 2a 에 예시된 바와 같이, 이러한 방식으로, 네트워크 B 내의 다른 UPnP 디바이스들은, 미디어 저장소 (202v) 가 실질적으로 네트워크 B 내에 존재한다는 것을 믿게 하도록 "속임" 당했다. 타겟 네트워크 B 상의 임의의 디바이스는, 그 디바이스가 실질적으로 네트워크 B 상에 있었던 것처럼, 가상화된 미디어 저장소 (202v) 의 서비스 및 파일에 액세스할 수 있다. 그러나, 에이전트가 UPnP 디바이스 광고 메시지 내의 위치 URL 내에 특정되었기 때문에, 가상화된 미디어 저장소 (202v) 와 함께 디바이스가 갖는 모든 상호작용들은 네트워크 B 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션에 전송될 것이다.
UPnP 프로토콜에서, UPnP 디바이스가 다른 UPnP 가능한 디바이스에 의해 발견되었을 때, 선택된 디바이스 내의 서비스들이 위치될 수도 있고 이용될 수도 있다. 이는, 예를 들어, HTTP 를 통해서 서비스 상세를 획득하고, 디바이스 상세 (제어 URL) 내에 특정된 URL 에 대해 HTTP 를 통해서 SOAP 프로토콜을 이용하여 상호작용을 수행함으로써 달성될 수도 있다. 서비스 상세를 통해서, UPnP-가능한 디바이스들은 발견된 디바이스 내에서 이용가능한 서비스 및 UPnP 동작들, 입력으로서 필요한 이러한 서비스들 및 동작들의 파라미터들, 및 이러한 서비스 및 동작들에 의해 복귀될 결과의 형태를 "이해" 할 수 있다.
다양한 실시형태에서, 가상화된 UPnP 디바이스 (예를 들어, 가상화된 미디어 저장소 (202v)) 가 네트워크 (예를 들어, 네트워크 B) 상에서 어나운싱되면, 그 네트워크상의 다른 디바이스들 (126, 210, 212, 214) 은 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션에 대한 URL 인 특정 URL 에 HTTP GET 요청을 통해서 그 디바이스에 대한 디바이스 상세 및 서비스 상세를 획득하도록 시도할 수 있다. 에이전트 어플리케이션은, 이것이 마치 실제 디바이스였던 것처럼 이러한 요청을 핸들링하고 호 UPnP 디바이스 (126, 210, 212, 214) 에 가상화된 디바이스 (202v) 에 대한 디바이스 상세 및 서비스 상세를 복귀시키도록 하는 간단한 HTTP 서버를 포함한다. 이러한 방식으로, 예를 들어, 미디어 플레이와 같은 네트워크 B 내의 UPnP 디바이스 (212) 는 네트워크 A 내의 실제 미디어 저장소 (202) 의 상세들과 매칭하는 가상화된 미디어 저장소 (202v) 에 대한 디바이스 상세 및 서비스 상세를 획득할 수 있다. 이러한 예시에서, 서비스 상세에서의 제어 URL 은 네트워크 B 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션을 포인팅할 것이고, 이에 따라 서비스들에 대한 모든 요청들은 네트워크 A 내의 실제 디바이스 (202) 가 아닌 에이전트 어플리케이션에 대해 생성될 것이다.
디바이스 (예를 들어, 미디어 플레이어 (212)) 가 가상화된 디바이스 (예를 들어, 가상화된 미디어 저장소 (202v)) 에 의해 제공된 "가상" 서비스에 호 (234) 를 생성할 때, 컴퓨터 (126) 내의 에이전트 어플리케이션은 인바운드 SOAP 요청을 수락하고, 입력 파라미터들을 파싱하고, 가상화된 디바이스 및 서비스 상세들 모두에 대해 유효한지를 테스트한 후, 소스 네트워크 내의 에이전트 어플리케이션 (예를 들어, 네트워크 A 내의 컴퓨터 (108) 내에서 실행하는 에이전트 어플리케이션) 내의 엔드포인트에 어드레싱된 요청 제어 메시지 (220) 를 전송한다. 이러한 요청 제어 메시지는 소스 네트워크 A 내의 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션의 IP 어드레스에 그 메시지를 중계하는 수퍼-피어 네트워킹 서버 (140) 를 경유하여 피어-투-피어 네트워크 (128) 를 통해서 통과된다. 이러한 요청 제어 메시지는 가상화된 디바이스 상에서 호되었던 UPnP 디바이스, 서비스, 동작, 및 입력 파라미터들의 세부사항을 포함한다. 소스 도메인 (예를 들어, 네트워크 A) 내 컴퓨터 (108) 내의 에이전트 어플리케이션은 요청 제어 메시지를 수신 및 언패킹한다. 수신된 요청 제어 메시지 내에 포함된 UUID 를 이용하여, 에이전트 어플리케이션은 로컬 네트워크 (즉, 네트워크 A) 상에 정확한 디바이스 (예를 들어, 미디어 저장소 (202)) 를 위치시키고, 제어 메시지로부터 획득된 것으로서 적절한 동작 및 파라미터들을 이용하여 소스 네트워크 서비스 내의 UPnP 디바이스의 제어 URL 에 SOAP 요청 (224) 을 전송한다. 네트워크 A 내의 소스 디바이스 (예를 들어, 미디어 저장소 (202)) 는 네트워크 A 내 컴퓨터 (108) 내의 에이전트 어플리케이션에 응답 메시지 (236) 를 전송함으로써 SOAP 요청에 응답한다. 에이전트 어플리케이션은, 그 응답 메시지를 수신하고, 이 응답 메시지를 응답 제어 메시지로 패킹하고, 이 응답 제어 메시지 (226) 를 다시 (타겟 도메인 네트워크 B 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션인) 요청 제어 메시지의 엔드포인트에 전송한다. 요청 제어 메시지를 통해서, 응답 제어 메시지 (226) 는 타겟 네트워크 B 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션의 IP 어드레스에 그 메시지를 중계하는 수퍼-피어 네트워킹 서버 (140) 를 경유하여 피어-투-피어 네트워크를 통해서 전송된다. 타겟 네트워크 B 내의 컴퓨터 (126) 상에서 실행하는 에이전트 어플리케이션은 응답 제어 메시지 (226) 를 언패킹하고, 수신된 결과 파라미터를 이용하여 네트워크 B 내의 요청 디바이스 (212) 로부터 오리지널 SOAP 요청에 응답한다. 따라서, 네트워크 B 내 호 디바이스 (212) 는 가상화된 디바이스 (202v) 상에서 호할 수 있는 것으로 나타나고 에이전트 어플리케이션 (점선 (228) 으로 도시됨) 에 의해 생성된 네트워크 B 내에서 서비스할 수 있는 것으로 나타나지만, 호 디바이스 (212) 는 사실상 네트워크 A 내의 실제 UPnP 디바이스로부터 서빙된 응답이다.
도 2b 에 도시된 바와 같이, 이들 방법은, 단일의 디바이스 또는 서비스를 가상화시킬 뿐만 아니라, 2 명의 사용자들이 함께 각각의 네트워크에 링크될 때, 그들의 네트워크들이 다른 사용자의 네트워크상의 UPnP 디바이스들의 가상 표현, 및 그들 자신의 UPnP 디바이스들 모두를 포함하는 것으로 나타나도록, 확대 또는 구현될 수도 있다.
또한, UPnP 포럼 (http://www.upnp.org) 은 미디어 디바이스에 대한 방법이 UPnP 프로토콜 및 표준을 이용하여 서로 사이에서 통신하도록 생성했다. 이를 달성하기 위해, UPnP 프로토콜은 몇몇 UPnP 디바이스 유형 (예를 들어, 미디어 서버) 및 서비스 (예를 들어, ContentDirectory:1 및 AVTransport:1) 를 정의한다. 그러나, 종래의 UPnP 프로토콜은 로컬 네트워크에 이러한 통신을 한정하고, 인터넷을 통한 외부 네트워크로의 통신을 인에이블하지 않는다.
종래의 UPnP 네트워크에서, 미디어 플레이어는 실제 소스 디바이스 내에 미디어의 아이템들을 위치시키기 위해 ContentDirectory:1 의 서비스 템플릿 내에 정의된 "브라우즈 (browse)" 로 명명된 UPnP 동작을 호를 발생시킬 수도 있다. 원하는 미디어 아이템이 위치되면, UPnP 프로토콜 사양은, 콘텐츠 디렉토리가 DIDL-Lite 로 지칭된 포맷 내의 미디어 아이템의 XML-기반 상세를 복원하도록 요청한다. DIDL-Lite 정의는 "RES" 또는 리소스로 불려지는 엘리먼트를 포함한다. 이 RES 엘리먼트의 값은, 미디어의 위치가 요청 디바이스에 의해 플레이되는 URL 포인팅이다. 정상 서브네트에서, 이러한 URL 은 ContentDirectory:1 서비스를 제공하는 소스 디바이스에 포인팅하고, 몇몇 파라미터들은 미디어 아이템 그 자신을 식별한다. 그후, 요청 미디어 플레이어는 이러한 URL 에 연결하고 이를 판독하여 미디어 아이템 (예를 들어, MP3 파일) 을 생성하는 데이터를 획득한다.
다른 실시형태에서, 피어-투-피어 네트워크를 통해서 데이터를 통과시키지 않고 타겟 네트워크 내의 요청 디바이스에 소스 네트워크 내의 실제 소스 디바이스로부터의 미디어 스트리밍을 인에이블하는 URL 매핑이 수행된다. 따라서, 가상화된 디바이스가 ContentDirectory:1 를 지원하는 경우, 실제 미디어 아이템은 원격의 소스 네트워크 (예를 들어, 네트워크 A) 내에 위치되고, RES URL 은 미디어가 찾아질 수 있는 타겟 네트워크 (예를 들어, 네트워크 B) 내의 정확한 위치에 포인팅하도록 재기록된다. 이를 행하기 위해, 소스 또는 타겟 네트워크 둘 중 하나에 컴퓨터 (108, 116) 내에서 실행하는 에이전트 어플리케이션은 이 URL 재기록을 수행하기 위한 몇몇 기술들을 채용하여 이에 따라 소스 네트워크 내의 소스 디바이스로부터 타겟 네트워크 내의 요청 디바이스로 콘텐츠의 전달을 최적화한다.
에이전트 어플리케이션이 로컬 네트워크 컴퓨터 (108, 116) 내에서 시동할 때, 네트워크 포트 포워딩을 지원할 수 있는 인터넷 게이트웨이 디바이스 (IGD) 를 위치시키기 위해 네트워크 서비스 발견에 대한 다른 표준 프로토콜인 멀티캐스트 도메인 명칭 서비스 (mDNS) 를 이용한다. 예를 들어, 포트 포워딩을 지원하는 라우터 (112, 118) 에 커플링된 인터넷 게이트웨이와 같은 디바이스가 발견되는 경우, 에이전트 어플리케이션은 IGD 로부터의 외부 IP 어드레스 (즉, 공공 인터넷에서 관찰되는 것과 같은 로컬 네트워크 (100, 116) 의 IP 어드레스) 를 획득하고, 컴퓨터 (108, 116) 내에서 실행하는 에이전트 어플리케이션에 대해 이 디바이스상에서 포트 포워드를 생성한다. 이러한 포트 포워드의 세부사항은, 에이전트 어플리케이션 내에 홀딩되고 후속 제어 메시지 내의 타겟 네트워크 (예를 들어, 네트워크 B) 내의 에이전트 어플리케이션으로 통과된다. 미디어 플레이어 (즉, 타겟 네트워크 내 컴퓨터 (116) 상에서 실행하는 에이전트 어플리케이션) 에 의해 '브라우즈' 동작의 결과로서 가상화된 ContentDirectory:1 서비스로서 동작하는 에이전트 어플리케이션에 의해 RES 엘리먼트가 생성될 때, RES 엘리먼트는 본 발명의 목적을 위해 구체적으로 HTTP 서버를 유지하는 에이전트 어플리케이션에 다시 포인팅하기 위해 에이전트 어플리케이션에 의해 변형된다. 그후, 미디어 데이터는 소스 도메인 및 타겟 도메인 내의 컴퓨터들 (108, 126) 내에서 실행하는 에이전트 어플리케이션들 사이에서 트랜스퍼링되지만, RES URL 들은 피어-투-피어 메시징 네트워크 (128) 를 이용하는 것과 반대로 인터넷 (114) 을 통해서 미디어 데이터가 송신되도록, 추가적인 정보를 통해서 재기록된다. 후술하는 바와 같이, RES URL 들이 재기록되는 방식은, 소스 및 타겟 네트워크들의 포트 포워딩 성능에 의존한다.
소스 도메인 네트워크가 포트 포워딩을 지원하는 경우, 피어-투-피어 메시징 네트워크를 통해서 가지 않고 타겟 클라이언트 (예를 들어, 타겟 네트워크 B 내의 미디어 플레이어 (212)) 가 소스 도메인 내의 에이전트 어플리케이션으로부터 직접 HTTP 판독 요청을 생성하도록 허용하기 위해 미디어 플레이어로부터 타겟 네트워크 에이전트 어플리케이션 (예를 들어, 네트워크 B 내의 컴퓨터 (126) 내에서 실행하는 에이전트) 로의 요청들이 해석되도록, 미디어 소스 URL 이 인코딩된다. 따라서, HTTP 판독 요청은 소스 네트워크 A 내의 컴퓨터 (108) 내에서 실행하는 에이전트 어플리케이션으로 어드레싱되고, 수퍼-피어 네트워킹 서버 (140) 를 통해서 통과하지 않고 인터넷 (114) 을 통해서 송신될 것이다. 이러한 구현은, 피어-투-피어 네트워킹 서버 (140) 를 통해서 통과하지 않고 소스 및 타겟 도메인 (즉, 네트워크 A 및 B) 내의 컴퓨터 (108, 126) 에서 실행하는 에이전트 어플리케이션들 사이에서 인터넷 (114) 을 경유하여 통신 (220) 을 통해서 흐르는 미디어 데이터를 도시하는 도 2a 에 예시된다. 따라서, 소스 도메인 내에서 액세싱 미디어를 인에이블하는 교섭 (negotiation) 이 피어-투-피어 네트워크를 통해서 달성되지만, 미디어 데이터의 송신 또는 스트리밍은 인터넷을 통해서 소스 및 타겟 도메인 내의 에이전트 어플리케이션들 사이에서 직접 달성된다.
소스 도메인이 포트 포워딩을 지원하지 않고, 타겟 도메인은 지원하는 경우, 타겟 도메인 내 컴퓨터 (116) 내의 에이전트 어플리케이션은, 미디어 플레이어 (예를 들어, 타겟 네트워크 B 내의 미디어 플레이어 (212)) 로부터 타겟 도메인 에이전트 어플리케이션 (즉, 타겟 네트워크 B 내 컴퓨터 (126) 내에서 실행하는 에이전트 어플리케이션) 으로의 요청들이 제어 메시지로 하여금 소스 도메인 내의 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션으로 전송되도록 야기할 것이다. 이러한 제어 메시지는, 에이전트 어플리케이션으로 하여금 피어-투-피어 메시징 네트워크를 이용하지 않고 인터넷을 통해서 타겟 도메인으로 직접 미디어 데이터를 푸싱하도록 야기한다. 따라서, HTTP 판독-요청은, 소스 도메인 내의 에이전트 어플리케이션으로 하여금 미디어 소스 (예를 들어, 미디어 저장소 (202)) 로부터 획득된 미디어 데이터를 획득하게 하고 인터넷 (114) 을 통해서 타겟 도메인 내의 에이전트 어플리케이션에 그 획득된 미디어 데이터를 푸싱하도록 야기하는 제어 메시지로 변형될 것이다. 그후, 타겟 도메인 내의 에이전트 어플리케이션은, 미디어를 수신하고 이를 에이전트 어플리케이션이 미디어 소스였던 것처럼 요청 미디어 플레이어에 제공한다. 이 구현은, 피어-투-피어 네트워킹 서버 (140) 를 통해서 통과하지 않고 소스 및 타겟 도메인들 (즉, 네트워크 A 및 B) 내 컴퓨터들 (108, 126) 내에서 실행하는 에이전트 어플리케이션들 사이의 인터넷 (114) 을 경유하여 통신 (220) 을 통해서 흐르는 미디어 데이터를 도시하는 도 2a 에 예시된다. 다시, 소스 도메인 내에서 액세싱 미디어를 인에이블하는 교섭이 피어-투-피어 네트워크를 통해서 달성되지만, 미디어 데이터의 송신 또는 스트리밍은 인터젯을 통해서 소스 및 타겟 도메인들 내의 에이전트 어플리케이션들 사이에서 직접 달성된다.
소스 도메인 또는 타겟 도메인 중 어느 것도 포트 포워딩을 지원하지 않는 경우, 타겟 도메인 내의 컴퓨터 (126) 내에서 실행하는 에이전트 어플리케이션은, 요청된 미디어 데이터를 획득하여 인터넷 (114) 상에 존재하는 중재 중계 서버 (리라우팅 서버 (144) 로서 본 명세서에서 지칭됨) 에 푸싱하도록 소스 에이전트 어플리케이션에게 명령하는 소스 도메인 내의 컴퓨터 (108) 내에서 실행하는 에이전트 어플리케이션에 제어 메시지를 전송한다. 이러한 리라우팅 서버 (144) 는 효율적인 데이터 버퍼로서 작용하여, 데이터의 업로드 및 다운로드를 발생하도록 허용한다. 대략 동일한 시점에서, 타겟 도메인 내 컴퓨터 (126) 내에서 실행하는 에이전트 어플리케이션은 동일한 리라우팅 서버 (144) 에 액세스하고, 리라우팅 서버 (144) 에 의해 생성된 버퍼로부터 미디어 데이터를 판독하는 것을 시작한다. 타겟 도메인 에이전트 어플리케이션으로부터 소스 도메인 에이전트 어플리케이션으로의 제어 메시지는 피어-투-피어 네트워킹 서버 (140) 를 경유하여 피어-투-피어 네트워크를 통해서 송신될 수도 있지만; 후속 미디어 데이터 송신은 리라우팅 서버 (144) 를 통해서 통신되어, 이에 따라 피어-투-피어 네트워크를 바이패싱한다. 이 구현은, 피어-투-피어 네트워킹 서버 (140) 를 통해서 통과하지 않고 소스 도메인과 타겟 도메인 (즉, 네트워크 A 및 B) 사이에서 인터넷에 위치된 리라우팅 서버 (144) 를 경유하여 인터넷 (114) 을 통해서 흐르는 미디어 데이터를 도시하는 도 2c 에 예시된다. 따라서, 소스 도메인 내의 액세싱 미디어를 인에이블하는 교섭은 피어-투-피어 네트워크를 통해서 달성되지만, 미디어 데이터의 송신 또는 스트리밍은 인터넷을 경유하여 리라우팅 서버 (144) 를 통해서 소스 및 타겟 도메인들 내의 에이전트 어플리케이션들 사이에서 달성된다.
수행된 특정 URL 매핑과는 관계없이, 미디어 플레이어는, 타겟 도메인 내의 에이전트 어플리케이션으로부터 요청된 미디어 데이터를 판독하고, 로컬 네트워크 (예를 들어, 네트워크 B) 상의 UPnP 디바이스로부터 미디어 데이터를 판독했던 것처럼 데이터를 렌더링 (예를 들어, 노래를 재생하거나, 비디오를 디스플레이함) 한다.
전술한 바와 같이, 사용자들은, 이동 디바이스 (136) 를 포함하여 인터넷 (114) 에 대한 액세스를 갖는 임의의 컴퓨팅 디바이스로부터 그들의 도메인 (예를 들어, 네트워크 A) 상에서 디바이스들 및 서비스들이 이용가능하게 하는 가상 프로세스를 개시할 수도 있다. 그들이 셀룰러 전화기를 가지고, 사용자들은 이용가능한 네트워크상에서 임의의 UPnP 디바이스에 그들의 미디어를 전송시킬 수 있다고 가정하여, 이러한 능력은, 사용자들에게 미디어 파일들의 저장을 수행할 필요 없이 그들의 미디어 파일에 액세스해야할 능력을 제공한다.
이동 디바이스 (136) 상의 네트워크 및 디바이스 액세스를 제어하는 것을 인에이블하는 통신 시스템의 컴포넌트들 몇몇은 도 3 에 예시된다. 이동 디바이스 (136) 가 인터넷 (114) 에 액세스하도록 인에이블하기 위해, 등록 서버 (142) 에 액세스하기 위해 인터넷을 통해서, 이동 디바이스 (136) 는 무선 네트워크 (130) 와 통신할 수도 있다. 무선 네트워크 (130) 는, 예를 들어, 인터넷, 보안 LAN, WAN, 또는 다른 네트워크와 같은 데이터 링크 (330) 를 통해서 캐리어 네트워크 (326) 를 경유하여 인터넷 (114) 과 통신할 수도 있다. 캐리어 네트워크 (326) 는 이동 스위칭 센터 (MSC; 332) 로 전송된 메시지 (일반적으로, 데이터 패킷들을 구성) 를 제어하고, 데이터 및 음성 정보를 트랜스퍼하기 위해 MSC (332) 와 통신한다. MSC (332) 는, 예를 들어, 데이터 트랜스퍼를 위한 데이터 네트워크 및/또는 인터넷 부분 및 음성 정보를 위한 POTS 부분과 같은 다른 네트워크 (336) 에 의해 다수의 기지국 (BTS; 132) 에 접속될 수도 있다. BTS (132) 는, 예를 들어, 코드 분할 다중 액세스 (CDMA), 단문 메시징 서비스 (SMS), 또는 임의의 다른 공중 방법과 같은 소정의 음성 및/또는 데이터 패킷 서비스들을 이용하여, 이동 디바이스 (136) 에 무선으로 메시지를 브로드캐스팅하고 이동 디바이스 (136) 로부터 메시지를 수신한다.
이동 디바이스 (136) 는 임의의 상주 어플리케이션들과의 상호작용을 인에이블하는 어플리케이션 프로그램 인터페이스 (API; 320) (예를 들어, 도 1 에 도시된 등록 서버 (142) 에 의해 통신된 정보와 협조적으로 작동하는 "나의 미디어" 인터페이스 (322)) 를 경유하는 것과 같이 프로세서 (318) 와 통신하는 메모리 (316) 를 갖는 컴퓨터 플랫폼 (314) 을 포함하도록 구성된다.
도 4 는 다양한 디바이스들과 함께 이용하기 위해 퍼스널 미디어 콘텐츠를 원격으로 액세스하고 제어하기 위해 그래픽 사용자 인터페이스 (GUI; 402) 를 제공하는 예시적인 이동 디바이스 디스플레이 (400) 를 예시한다. 이러한 GUI (402) 는, 디스플레이 (400) 하부에 제공될 수도 있는 키패드 내의 물리적 키들을 누르고, 또는 터치 스크린 성능을 디스플레이가 가질 때 그 디스플레이 자체를 누름으로써 선택될 수도 있는 기능들과 관련된 아이콘 및 형상을 포함할 수도 있다. GUI 디스플레이 (416) 는, 예를 들어, "나의 미디어" 탭 (420), "플레이어 선택" 탭 (422), "찾기 미디어" 서치 탭 (424), 및 "게이트웨이" 링크 탭 (426) 와 같은 계층적 탭들 하에서 조작될 수도 있는 퍼스널 미디어 콘텐츠 인덱스 (418) 를 포함할 수도 있다. 예를 들어, "나의 미디어" 탭 (420) 하에서, GUI 는, 예를 들어, 미디어 유형의 리스팅 (예를 들어, 오디오, 비디오, 이미지, 등), 아티스트, 앨범 타이틀, 장르, 플레이리스트, 노래 타이틀 등과 같은 복수의 이용가능한 디바이스 또는 서비스 리스트 아이템들 (A-D, 428-431) 을 제공할 수도 있다. 이 디스플레이는, 서비스의 제공자가 미디어 구매 기회 또는 도시된 미디어 리스팅과 관련된 부수적인 서비스에 대해서 구현할 수도 있는 광고 배너 (432) 를 포함할 수도 있다.
전술한 바와 같이, 타겟 도메인 상에서 디바이스들 또는 서비스들이 이용가능하게 하기 위해 사용자가 등록 서버 (142) 에 액세스할 때, 이동 디바이스가 GUI 디스플레이 (402 (예를 들어, 리스트 아이템들 (A-D, 428-431)) 상에 존재할 수도 있는 이러한 디바이스 또는 서비스들의 리스트를 등록 서버 (142) 가 생성할 수도 있다. GUI 기능을 이용하여, 사용자는 타겟 도메인으로서 특정 친구 도메인을, 소스 도메인으로서 특정 리스팅된 사용자 도메인을, 타겟 도메인 상에서 가상화될 특정 디바이스 또는 서비스를 선택할 수도 있다.
다양한 실시형태들에서 수반된 프로세스들의 개관이 방법 (500) 을 도시하는 도 5 에 예시된다. 사용자가 다양한 실시형태들을 통해서 공유하기 위해 로컬 네트워크를 등록하도록 결정할 때, 사용자는 인터넷 (114) 를 경유하여 이에 접속함으로써 등록 서버 (142) 에 액세스할 수도 있다 (단계 502). 서비스에 대한 등록의 일부로서, 사용자는, 등록 서버가 사용자의 아이덴티티를 확인하기 위해 미래에 이용될 수 있는 식별 정보를 제공하도록 유도될 수도 있다. 이러한 프로세스의 일부로서, 등록 서버는 사용자의 네트워크상의 컴퓨터에 에이전트 어플리케이션을 다운로딩할 수도 있다. 서비스에 대해 등록될 때, 사용자는 피어-투-피어 통신 링크를 통해서 그들의 로컬 네트워크에 링크하기 위해 친구 및 동료를 초대할 수도 있다 (단계 504). 이러한 프로세스는, 사용자들이 피어-투-피어 네트워크에 조인하기 위해 친구들을 식별하고 다른 사람들을 초대하는 소셜 네트워킹 프로세스와 매우 유사하다. 사용자들이 친구로서 서로 식별되면, 사용자는 호를 발생시킬 수도 있다 를 경유하여 그 네트워크를 식별함으로써 디바이스 및 서비스를 공유하기 위한 타겟 네트워크를 선택할 수도 있다. 사용자가 미디어를 공유하기 위해 타겟 및 소스 네트워크를 식별했을 때, 사용자는 타겟 네트워크상에서 선택된 디바이스 또는 서비스들을 가상화하는 프로세스를 개시할 수도 있다 (단계 506). 그후, 타겟 네트워크상의 UPnP 디바이스들은 피어-투-피어 네트워크 링크를 경유하여 가상 디바이스 또는 서비스에 액세스할 수도 있다 (단계 508). 타겟 네트워크상의 미디어 플레이어 디바이스가 소스 네트워크상의 미디어 파일에 액세스할 때, 소스 및 타겟 네트워크상의 컴퓨터들 (108, 126) 상의 에이전트 어플리케이션들은 피어-투-피어 네트워크 링크를 통해서 데이터를 송신하지 않고 인터넷을 경유하여 미디어의 직접 액세스를 인에이블하는 URL 에 미디어 데이터 URL 또는 가상 콘텐츠를 매핑하도록 협력한다 (단계 510).
호를 발생시킬 수도 있다 를 통해서 등록하기 위해 예시적인 실시형태 방법 (600) 은 도 6 에 예시된다. 등록 프로세스를 개시하기 위해, 사용자는 수퍼-피어 호를 발생시킬 수도 있다 로의 컴퓨터 링크를 확립한다 (단계 602). 사용자는, 미래에 사용자의 아이덴티티를 확인하도록 등록 사용자를 인에이블하기에 충분한 정보를 포함하는 사용자 계정을 생성하도록 요구되는 것과 같이 그들에 대한 정보를 넣도록 유도할 수도 있다 (단계 604). 이러한 정보는 사용자 계정 데이터베이스 내에 저장될 수도 있다. 또한, 등록 서버는 사용자의 네트워크상의 컴퓨터에 에이전트 어플리케이션을 다운로딩할 수도 있고 그 어플리케이션이 설치되도록 야기할 수도 있다 (단계 606). 이러한 프로세스의 일부로서, 등록 서버는, 고유한 도메인 ID 를 사용자에게 제공하고, 사용자 계정 데이터페이스 내의 사용자의 네트워크상에서 컴퓨터에 대한 IP 어드레스와 함께 사용자의 도메인 ID 을 저장한다. 이러한 정보를 이용하여, 수퍼-피어 네트워킹 서버 (140) 는 사용자의 도메인 ID 를수신하는 것에 기초하여 사용자의 컴퓨터 및 그 에이전트 어플리케이션에 제어 메시지를 어드레싱할 수 있다. 따라서, 도메인 ID 는 사용자의 컴퓨터에 대한 공공 어드레스로서 기능하고 그리고 수퍼-피어 네트워킹 서버 (140) 가 적절한 IP 어드레스에 제어 메시지를 재전송시키도록 이용할 수 있는 그 에이전트 어플리케이션으로서 기능한다.
사용자가 등록 서버를 이용하여 등록되면, 사용자는 수퍼-피어 네트워킹 서버 (140) 를 경유하여 피어-투-피어 네트워크에 조인할 수 있다 (단계 610). 다른 네트워크와의 피어-투-피어 링크를 확립하기 위해, 사용자는 다른 네트워크들을 식별하고 이러한 다른 네트워크들에 초대를 전송 또는 수신하여 피어-투-피어 네트워크를 형성하는 호를 발생시킬 수도 있다 에 액세스할 수도 있다 (단계 612). 2 개의 네트워크들이 초대를 교환하고, 사용자들이 그들의 각각의 네트워크들에 링크하도록 동의할 때, 이 네트워크들은 수퍼-피어 네트워킹 서버 (140) 를 통해서 확립된 피어-투-피어 네트워크를 경유하여 서로에 대해 제어 메시지를 전송하는 것을 시작한다 (단계 614). 하나의 네트워크에서 다른 네트워크로의 미디어 다운로딩을 가능하게 하기 위해, 사용자의 각각의 네트워크 내의 컴퓨터 (108, 126) 상에서 실행하는 에이전트 어플리케이션들은, 전술한 바와 같이 포트 포워딩 동작으로부터 획득되는 것과 같은 외부 IP 어드레스 정보를 교환할 수도 있다 (단계 616). 이 시점에서, 도 8 을 참조하여 이하 더욱 완전하게 설명되는 바와 같이, 2 개의 네트워크들이, 디바이스 및 서비스를 공유하는 것을 시작할 수 있다.
도 7 은, 도 6 을 참조하여 전술된 등록 프로세스의 일부로서 다양한 실시형태들의 그리고 통신 시스템 내의 컴포넌트들 사이에서 교환될 수도 있는 메시지들을 예시한다. 전술한 바와 같이, 컴퓨터 (108, 126) 및 네트워크가 시작되고 에이전트 어플리케이션이 개시될 때, 에이전트 어플리케이션이 이러한 디바이스들에게 그들의 존재를 어나운싱하도록 요청함으로써 (메시지 702) 그리고 UPnP 디바이스 광고 메시지들 (메시지 704) 를 경청함으로써 그 네트워크 내 UPnP 디바이스들 (102, 120) 을 발견할 수도 있다.
호를 발생시킬 수도 있다 를 통해서 네트워크에 등록하기 위해, 사용자는 등록 서버 (142) 에 의해 호스팅된 웹사이트에 액세스할 수도 있다 (메시지 706). 등록 프로세스의 일부로서, 등록 서버 (142) 는 로컬 네트워크상의 컴퓨터에 에이전트 어플리케이션을 다운로딩한다 (메시지 708). 유사하게, 다른 사용자가 그 네트워크에 등록할 때, 이들은 등록 서버에 의해 호스팅된 웹사이트에 액세스하고 (메시지 710), 에이전트 어플리케이션의 다운로드를 수신한다 (메시지 712). 얼마 후에, 하나의 사용자는 피어-투-피어 라우팅 서버 (140) 에 초대 메시지로서 송신될 수도 있는 피어-투-피어 링크 내에 조인하기 위해 (메시지 714) 다른 사용자에게 초대를 전송할 수도 있고, 피어-투-피어 라우팅 서버 (140) 가 초대된 네트워크 내의 컴퓨터 (108) 로 포워딩하는 피어-투-피어 링크에 조인하기 위해 (메시지 716) 다른 사용자에게 초대를 전송할 수도 있다. 이러한 네트워킹 초대가 메시지 718 에서 수락되어 피어-투-피어 라우팅 서버 (140) 가 초대 컴퓨터에 포워딩할 수도 있다 (메시지 720).
제 1 네트워크 (네트워크 A) 상에서 이용가능한 디바이스 및 서비스들이 제 2 네트워크 (네트워크 B) 상에서 가상화될 수도 있는 예시적인 프로세스 (800) 는 도 8 에 예시된다. 전술한 바와 같이, (에이전트 A 로서 도면에서 지칭된) 네트워크 A 내의 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션은 네트워크 A 에 접속된 UPnP 디바이스를 발견할 수도 있다 (단계 802). 전술한 바와 같이, 디바이스 광고 메시지를 모니터링함으로써 또는 그 네트워크상의 디바이스에 주기적으로 질의함으로써 달성될 수도 있다. 이러한 프로세스의 일부로서, 에이전트 어플리케이션은 네트워크상의 UPnP 디바이스의 서비스 템플릿, 특징, 및 어드레스들을 획득할 수도 있다 (단계 804).
사용자가 다른 네트워크에 대해 이용가능한 사용자의 네트워크상에서 디바이스 또는 서비스를 만들기 위해 (예를 들어, 도 10 및 도 11 을 참조하여 이하 후술되는 프로세스들을 구현함으로써) 찾을 때, 등록 서버 (142) 는 특정 디바이스 또는 모든 디바이스와 관련된 정보를 네트워크 B 내의 에이전트 어플리케이션 (에이전트 B 로 지칭됨) 으로 전송하도록 에이전트에 요청하는 네트워크 A 내의 에이전트 어플리케이션에 제어 메시지를 전송할 수도 있다 (단계 806). 몇몇 구현에서, 디바이스들에 대한 요청은 수퍼-피어 네트워킹 서버 (140) 에 의해 인에이블된 피어-투-피어 네트워크를 통해서 네트워크 B 내의 에이전트 어플리케이션으로부터 수신될 수도 있다. 디바이스 명칭, 서비스 템플릿, 및 특징을 획득하는 단계 (804) 는 특정 디바이스에 대한 이러한 정보에 대한 요청을 수신하기 위해 수행될 수도 있다 (단계 806) 는 점에 유의해야만 한다. 다음으로, 네트워크 A 에서 실행하는 에이전트 어플리케이션은 네트워크 A 내의 디바이스 어드레스, 서비스 템플릿, 및 디바이스들 및 서비스들 (또는 선택된 디바이스들) 의 특징들은 네트워크 B 내의 에이전트 어플리케이션에 전송한다 (단계 808). 그후, 네트워크 B 내의 에이전트 어플리케이션은 수신된 디바이스 정보로부터 관련 엘리먼트들을 추출하고 (단계 810), 정보가 수신되었던 디바이스 또는 서비스의 각각의 네트워크에 대한 UPnP 디바이스 광고 메시지를 생성한다 (단계 812). UPnP 디바이스 광고 메시지를 생성하는 프로세스는 UPnP 프로토콜 요청에 따르며, 광고 메시지는 종래의 UPnP 디바이스들에 의해 이해될 수 있다. UPnP 디바이스 광고 메시지를 생성하는 디바이스는 네트워크에 어나운싱되는 디바이스에 대해 URL 로서 에이전트 어플리케이션 URL 을 이용한다. 다음으로, 네트워크 B 내의 에이전트 어플리케이션은 네트워크 B 상의 UPnP 디바이스 광고 메시지를 송신하고, 이에 따라 네트워크 A 의 UPnP 디바이스 또는 디바이스들로서 그 자신을 어나운싱한다 (단계 814). 따라서, 이러한 프로세스는 네트워크 B 상의 에이전트 어플리케이션과 동일한 URL 을 갖는 가상 디바이스들을 통해서 네트워크 B 상에서 네트워크 A 의 디바이스 또는 디바이스들의 가상 카피를 생성한다.
네트워크 B 와 같은 타겟 네트워크에서 UPnP 디바이스는 네트워크 A 와 같은 소스 네트워크에서 이용가능한 디바이스, 서비스 및 미디어에 액세스할 수 있는 예시적인 실시형태 방법 (900a) 가 도 9a 에 예시된다. 이러한 예시적인 실시형태는, 소스 네트워크 (예를 들어, 네트워크 A) 가 포트 포워딩을 지원할 때 적용가능하다. 네트워크 B 상의 UPnP 디바이스는 도 8 을 참조하여 전술한 바와 같이, "가상 디바이스 Y" 에 대해서와 같은 디바이스 광고 메시지를 수신할 것이다 (단계 902). "디바이스 X" 와 같은 네트워크 B 상의 UPnP 가능 디바이스는 디바이스 Y 광고 어나운스먼트 내에 포함된 정보를 이용할 수도 있고, 서비스 호 메시지, 예를 들어, HTTP 호를 포맷하기 위해 서비스 템플릿 내에 정보를 포함한다 (단계 904). 이러한 서비스 호 메시지는, 네트워크 B 의 에이전트 어플리케이션의 URL 인 가상 디바이스 Y 의 URL 에 어드레싱된 네트워크 B 상에 전송된다 (단계 906). 이러한 서비스 호 메시지는, 원하는 서비스를 획득하기 위해 디바이스 서비스 템플릿에 특정된 요건에 따르는 정보의 패킷 (예를 들어, 이용가능한 파일들 또는 서비스들의 디렉토리) 을 포함할 수도 있다.
네트워크 B 상의 에이전트 어플리케이션은 디바이스 X 로 부터 가상 디바이스 Y 서비스 호를 수신한다 (단계 908). 그후, 네트워크 B 의 에이전트 어플리케이션은, 수퍼-피어 라우팅 서버 (140) 를 경유하여 네트워크 A 내의 에이전트 어플리케이션에 송신하는, 피어-투-피어 메시지에 이러한 서비스 호를 리패키징한다 (단계 910). 네트워크 A 의 에이전트 어플리케이션은 서비스 호 메시지를 수신하고 (단계 912), 실제 디바이스 Y 에 서비스 호를 리-어드레싱하여 네트워크 A 상에 그 서비스 호를 전송한다 (단계 914). 다음으로, 실제 디바이스 Y 는 이 서비스 호에 응답하고 그 응답 메시지를 요청된 서비스 (예를 들어, 이용가능한 미디어 파일의 디렉토리) 를 포함하는 네트워크 A 내의 에이전트 어플리케이션에 전송한다 (단계 916). 네트워크 A 내의 에이전트 어플리케이션은 디바이스 Y 로부터의 응답을 수신하고 네트워크 B 내의 에이전트에 송신하는 피어-투-피어 메시지로의 서비스 응답을 패키징한다 (단계 918). 응답 메시지를 패키징하는 일부로서, 네트워크 A 내의 에이전트 어플리케이션은 포트 포워딩 요청을 이용하여 사전에 획득된 네트워크 A 에 대한 외부 IP 어드레스를 포함한다.
네트워크 B 내의 에이전트 어플리케이션은 서비스 응답 메시지를 수신하고 (단계 920), 네트워크 B 내의 디바이스 X 에 서비스 응답 정보를 포워딩하기 전에 네트워크 A 내의 에이전트 어플리케이션의 외부 IP 어드레스를 반영하는 파라미터들을 포함하지만 그 어드레스 자체를 포인팅하기 위해 디바이스 Y 로부터 수신된 정보 내의 서비스 URL 을 리매핑한다 (단계 922). 그후, 디바이스 X 는 가상 디바이스 Y 내에서 이용가능한 특정 파일에 대한 URL 에 액세스할 수도 있다 (단계 924). 네트워크 B 내의 에이전트 어플리케이션이 수신된 URL 로서 네트워크 A 내의 디바이스 Y 의 외부 IP 어드레스에 매핑되기 때문에, 디바이스 X 에 의한 액세스는 네트워크 B 내의 에이전트 어플리케이션에 대한 것이다. 그 에이전트 어플리케이션은 단계 924 에서 인터넷을 경유하여 네트워크 A 내의 에이전트에 대한 URL 액세스 요청을 포워딩한다. 대안적인 실시형태에서, 디바이스 X URL 액세스는 네트워크 A 내의 에이전트 어플리케이션에 인터넷을 통해서 직접 포워딩될 수도 있다.
네트워크 A 내의 디바이스 Y 가 URL 액세스 요청을 수신할 때, 그 URL 과 관련된 콘텐츠를 네트워크 A 내의 에이전트 어플리케이션에 제공하는 것을 시작한다 (단계 925). 네트워크 A 내의 에이전트 어플리케이션은, 데이터를 버퍼링할 수도 있고, 피어-투-피어 네트워크 또는 수퍼-피어 네트워킹 서버 (140) 를 통해서 통과하지 않고 미디어 데이터를 수신하고 버퍼링하는 것을 시작하는 네트워크 B 내의 에이전트 어플리케이션에 미디어 데이터에 대한 액세스를 제공한다 (단계 926). 대안적인 실시형태에서, 네트워크 A 내의 에이전트는 피어-투-피어 네트워크를 통해서 통과하지 않고 네트워크 B 내의 디바이스 X 에 직접 미디어 데이터를 스트리밍할 수도 있다. 그후, 네트워크 B 내의 디바이스 X 는 수신된 미디어를 플레이하는 것과 같은 콘텐츠를 렌더링하는 것을 시작한다 (단계 928). 몇몇 실시형태에서, 미디어 데이터는 디바이스 X 로의 미디어 데이터의 연속적인 흐름을 용이하게 하기 위해 네트워크 B 내의 에이전트 어플리케이션에 의해 버퍼링될 수도 있다. 추가적인 실시형태에서, 소스 및 타겟 네트워크들 내의 에이전트 어플리케이션에 의해 제공된 URL 매핑은 네트워크 A 의 소스 디바이스 Y 에 직접 액세스하도록 네트워크 B 내의 요청 디바이스 X 를 인에이블할 수도 있다.
타겟 네트워크 (예를 들어, 네트워크 B) 내의 UPnP 디바이스들이 소스 네트워크 (네트워크 A) 내에서 이용가능한 디바이스, 서비스 및 미디어에 액세스할 수 있는 다른 예시적인 실시형태 방법 (900b) 이 도 9b 에 예시된다. 이러한 예시적인 실시형태는, 소스 네트워크 (네트워크 A) 가 포트 포워딩을 지원하지 않지만 타겟 네트워크 (네트워크 B) 는 포트 포워딩을 지원할 때 적용가능하다. 이 예시적인 실시형태에서, 네트워크 B 내의 디바이스 X 가 네트워크 A 내의 디바이스 Y 내에서 이용가능한 미디어를 발견할 수 있는 프로세스는, 네트워크 A 내의 에이전트 어플리케이션이 네트워크 B 내의 에이전트 어플리케이션으로의 송신을 위해 서비스 응답 메시지를 패키징 (단계 918) 할 때까지, 도 9a 를 참조하여 설명된 것과 실질적으로 유사하다. 네트워크 A 가 이 실시형태에서 포트 포워딩을 지원하지 않기 때문에, 네트워크 A 내의 에이전트에 의해 제공된 서비스 응답 메시지는 네트워크 A 에 대한 외부 IP 어드레스를 포함하지 않는다. 서비스 응답 메시지는 네트워크 B 내의 에이전트에 의해 수신된다 (단계 920). 이러한 실시형태에서 네트워크 B 가 포트 포워딩을 지원하기 때문에, 네트워크 B 내의 에이전트 어플리케이션은 네트워크 B 내의 에이전트 어플리케이션의 것이 되도록 디바이스 Y 에 대한 URL 을 인코딩할 수도 있고, 네트워크 B 상의 디바이스 X 에 서비스 응답 메시지를 포워딩한다 (단계 930). 디바이스 X 가 가상 디바이스 Y 에 대한 URL 을 액세스 (단계 932) 할 때, 이 메시지는 네트워크 A 내의 에이전트 어플리케이션에 피어-투-피어 네트워크 (128) 를 경유하여 전송된 제어 메시지로 액세스 요청을 변형하는 네트워크 B 내의 에이전트 어플리케이션에 의해 수신된다 (단계 934). 이 제어 메시지는 네트워크 B 의 외부 IP 어드레스를 포함한다. 제어 메시지는 네트워크 A 내의 에이전트 어플리케이션이 실제 디바이스 Y 의 URL 에 액세스하고 미디어 데이터를 수신하게 한다 (단계 936). 디바이스 Y 는, URL 액세스를 수신하고, 수신된 데이터를 버퍼링할 수도 있는 네트워크 A 내의 에이전트 어플리케이션에 미디어 데이터를 제공하는 것을 시작한다 (단계 938). 그후, 네트워크 A 내의 에이전트 어플리케이션은 제어 메시지 내에 수신된 외부 IP 어드레스를 이용하여 인터넷을 경유하여 네트워크 B 에 미디어 데이터를 푸싱한다 (단계 940). 제 1 실시형태에서, 네트워크 A 내의 에이전트 어플리케이션은 네트워크 B 내의 에이전트 어플리케이션에 인터넷을 경유하여 미디어 데이터를 푸싱한다 (단계 940). 네트워크 B 내의 에이전트 어플리케이션은 미디어 데이터를 수신하고, 에이전트 어플리케이션이 미디어 소스였던 것처럼 요청 미디어 플레이어, 디바이스 X 에 수신된 미디어 데이터를 제공한다. 그후, 네트워크 B 내의 디바이스 X 는 수신된 미디어를 플레이하는 것과 같은 콘텐츠를 렌더링하는 것을 시작한다 (단계 942). 수신된 미디어 데이터는 디바이스 X 로의 미디어 데이터의 연속적인 흐름을 용이하게 하기 위해 네트워크 B 내의 에이전트 어플리케이션에 의해 버퍼링될 수도 있다. 대안적인 실시형태에서, 미디어 데이터는 미디어 플레이어 (즉, 디바이스 X) 의 IP 어드레스에 직접 푸싱될 수도 있다.
타겟 네트워크 (네트워크 B) 내의 UPnP 디바이스들이 소스 네트워크 (네트워크 A) 내에서 이용가능한 디바이스, 서비스 및 미디어에 액세스할 수 있는 다른 예시적인 실시형태 방법 900c 이 도 9c 에 예시된다. 이러한 예시적인 실시형태는, 소스 네트워크 또는 타겟 네트워크 어느 하나도 포트 포워딩을 지원하지 않을 때 적용가능하다. 이러한 실시형태에서, 네트워크 B 내의 디바이스 X 가 네트워크 A 내의 실제 디바이스 Y 내에서 이용가능한 미디어를 발견할 수 있는 프로세스가, 네트워크 A 내의 에이전트 어플리케이션이 에이전트 어플리케이션 및 네트워크 B 로의 송신을 위해 서비스 응답 메시지를 패키징 (단계 918) 할 때까지, 도 9a 를 참조하여 전술된 것과 실질적으로 유사하다. 네트워크 A 가 포트 포워딩을 지원하지 않기 때문에, 네트워크 A 내의 에이전트에 의해 제공된 서비스 응답 메시지는 네트워크 A 에 대한 외부 IP 어드레스를 포함하지 않는다. 서비스 응답 메시지는 네트워크 B 내의 에이전트에 의해 수신된다 (단계 920). 또한, 타겟 네트워크 B 가 포트 포워딩을 지원하지 않기 때문에, 네트워크 B 내의 에이전트 어플리케이션은 리라우팅 서버 (144) 의 것이 되도록 디바이스 Y 에 대한 URL 을 인코딩할 수도 있고, 네트워크 B 상의 디바이스 X 에 서비스 응답 메시지를 포워딩한다 (단계 950). 디바이스 X 가 가상 디바이스 Y 에 대한 URL 에 액세스 (단계 952) 할 때, 이러한 메시지는 네트워크 A 내의 에이전트 어플리케이션에 피어-투-피어 네트워크를 경유하여 전송된 제어 메시지로 액세스 요청을 변형하는 네트워크 B 내의 에이전트 어플리케이션에 의해 수신된다 (단계 954). 이러한 제어 메시지는 네트워크 A 내의 에이전트 어플리케이션이 미디어 데이터를 에이전트 어플리케이션에 제공하도록 시작하는 (단계 958) 디바이스 Y 의 URL 에 액세스하도록 한다 (단계 960). 또한, 제어 메시지는 네트워크 A 내의 에이전트 어플리케이션이 미디어 데이터를 리라우팅 서버 (144) 에 푸싱하도록 시작하게 한다 (단계 962). 또한, 네트워크 B 내의 에이전트 어플리케이션은 리라우팅 서버 (144) 에 제어 메시지를 전송하여 네트워크 A 로부터의 미디어 데이터를 수신하고 버퍼링하는 것을 시작하도록 야기할 수도 있다 (단계 956). 대략 동시에, 네트워크 B 내의 에이전트 어플리케이션은 리라우팅 서버 (144) 에 액세스할 수도 있고 리라우팅 서버 (144) 내의 버퍼로부터 미디어 데이터를 판독하는 것을 시작한다 (단계 964). 그후, 네트워크 B 내의 디바이스 X 는 네트워크 B 내의 에이전트 어플리케이션으로부터 미디어 데이터에 액세스하고 수신된 미디어를 플레잉하는 것과 같은 콘텐츠를 렌더링하도록 시작한다 (단계 966). 네트워크 B 내의 에이전트 어플리케이션은 디바이스 X 로의 미디어 데이터의 연속적인 흐름을 용이하게 하기 위해 미디어 데이터를 버퍼링할 수도 있다.
등록 서버 (142) 에 의해 호스팅된 웹사이트에 의해 제공된 사용자 인터페이스 툴을 이용하여, 사용자는 소스 네트워크 (예를 들어, 네트워크 A), 및 타겟 또는 목적지 네트워크 (예를 들어, 네트워크 B) 를 선택 또는 식별할 수도 있다 (단계 1003). 소스 네트워크를 식별하여, 사용자가 소스 네트워크상에서 이용가능한 디바이스, 서비스, 또는 미디어의 메뉴를 요청할 수도 있다 (단계 1004). 등록 (142) 은 사용자의 요청을 수신하고 디바이스, 서비스 또는 미디어의 리스팅을 요청하는 네트워크 A 내의 에이전트 어플리케이션에 제어 메시지를 전송한다 (단계 1006). 제어 메시지는 수퍼-피어 네트워킹 서버 (140) 를 통해서 피어-투-피어 네트워크를 경유하여 전송될 수도 있다. 네트워크 A 내의 에이전트 어플리케이션은 네트워크 A 상에서 발견된 디바이스들의 리스트에 응답할 수도 있다 (단계 1008). 등록 서버는, 이 정보를 수신하고 디바이스 서비스 또는 미디어를 리스팅하는 정보 메시지 또는 웹페이지를 생성하여 (단계 1010) 무선 네트워크를 경유하여 이동 디바이스에 송신된다 (단계 1012). 이동 디바이스는, 사용자 선택을 수신하기 위한 사용자 인터페이스의 형태일 수도 있는 이 메시지를 수신하한다 (단계 1014). 사용자가 선택하면, 이동 디바이스는 이 정보를 수신하고 디바이스, 서비스 또는 미디어의 사용자의 선택을 등록 서버에 송신한다 (단계 1016). 그후, 등록 서버는 선택된 디바이스, 서비스 또는 미디어를 식별하는 네트워크 A 내의 에이전트 어플리케이션에 제어 메시지를 전송한다 (단계 1018). 그 단계의 일부로서 선택적으로, 등록 서버 (142) 는, 디바이스, 네트워크 B 상의 에이전트 어플리케이션에, 서비스 또는 미디어 정보가 네트워크 A 로부터 다가올 수도 있다는 것을 통지할 수도 있다.
네트워크 A 내의 에이전트 어플리케이션은 선택된 디바이스, 서비스 또는 미디어를 가상화하도록하는 요청을 수신하고 (단계 1020), 디바이스의 어드레스, 서비스 템플릿 및 특징을 획득한다 (단계 1022). 그후, 에이전트 네트워크 A 는, 피어-투-피어 네트워크 (즉, 수퍼-피어 네트워킹 서버 (140)) 를 경유하여 네트워크 B 내의 에이전트 어플리케이션에 송신되는 메시지로 수신된 정보를 포맷한다 (단계 1024). 이러한 메시지는 관련 엘리먼트들을 추출하는 네트워크 B 내의 에이전트 어플리케이션에 의해 수신 (단계 1026) 되고, 선택된 디바이스에 대해 UPnP 디바이스 광고 메시지를 발생시킨다 (단계 1028). 전술한 바와 같이, 이러한 디바이스 광고 메시지는 네트워크 B 상의 에이전트 어플리케이션에 해당하는 가상 디바이스에 대한 URL 을 포함한다. 그후, 네트워크 B 내의 에이전트는 네트워크 B 상의 디바이스 광고 메시지를 송신하고, 이에 따라 가상 디바이스, 서비스 또는 미디어로서 그 자체를 어나운싱한다 (단계 1030). 광고 메시지가 네트워크 B 상에서 전송되면, 네트워크상의 디바이스들은 도 9a 내지 도 9c 를 참조하여 전술한 것과 같은 가상 디바이스, 서비스 또는 미디어에 액세스할 수도 있다.
또한, 디바이스, 서비스 또는 미디어의 가상화 프로세스는 소스 네트워크 (예를 들어, 네트워크 A) 상의 컴퓨터, 도 11 에 예시된 예시적인 실시형태 방법 (1100) 으로부터 개시될 수도 있다. 네트워크 A 상의 컴퓨터 (108) 을 이용하여, 사용자는, 사용자가 링크를 확립할 수도 있는 피어-투-피어 네트워크 링크 또는 "친구" 네트워크의 리스트뿐만 아니라 네트워크상의 디바이스들의 디스플레이를 관찰할 수도 있다 (단계 1102). 컴퓨터 (108) 는 선택된 타겟 네트워크 B 와 공유될 선택된 디바이스의 사용자 입력을 수신할 수도 있다 (단계 1104). 예를 들어, 컴퓨터 (108) 는, 디바이스 및 네트워크를 리스팅하고 키스트로크 (keystroke) 또는 마우스 클릭의 형태로 사용자 입력을 수신하는 그래픽 사용자 인터페이스로 구성될 수도 있다. 사용자로부터 획득된 정보를 통해서, 프로세스는 단계 1022 내지 1030 동안 도 10 을 참조하여 전술한 바와 같이 진행할 수도 있다. 광고 메시지가 네트워크 B 상에서 전송되면, 네트워크상의 디바이스는 도 9a 내지 도 9c 를 참조하여 전술된 것과 같은 가상 디바이스, 서비스, 또는 미디어에 액세스할 수도 있다.
또한, 다양한 실시형태들은 도 12 에 예시된 예시적인 실시형태 (1200) 에서 하나의 네트워크 (예를 들어, 네트워크 B) 상의 사용자가 다른 네트워크 (예를 들어, 네트워크 A) 내의 액세스 디바이스, 서비스 또는 미디어를 획득하도록 인에이블할 수도 있다. 네트워크 B 상의 컴퓨터를 이용하여, 사용자는 네트워크 B 내의 에이전트 어플리케이션에 의한 액세스에 대해 등록되는 피어-투-피어 네트워크 링크 또는 네트워크의 메뉴를 관찰할 수도 있다 (단계 1202). 컴퓨터는 특정 소스 네트워크 A 를 선택하는 사용자의 입력을 수신할 수도 있다 (단계 1204). 그후, 네트워크 B 상의 에이전트 어플리케이션은 요청 메시지를 네트워크 A 상에서 이용가능한 디바이스, 서비스 또는 미디어의 리스트에 대해 네트워크 A 내의 에이전트 어플리케이션으로 전송할 수도 있다 (단계 1206). 요청 메시지는 수퍼-피어 네트워킹 서버 (140) 를 경유하여 피어-투-피어 네트워크를 통해서 송신된다. 네트워크 A 내의 에이전트 어플리케이션은 요청 메시지를 수신할 수도 있고, 에이전트 어플리케이션이 네트워크 A 상에서 발견되는 UPnP 디바이스, 서비스 및 미디어의 리스트에 응답한다 (단계 1208). 또한, 이러한 응답 메시지는 피어-투-피어 네트워크를 경유하여 전송될 수도 있다. 네트워크 B 내의 에이전트 어플리케이션은 디바이스, 서비스 및 미디어의 리스트를 수신하고, 사용자를 위해 이러한 정보의 디스플레이를 생성한다 (단계 1210). 디바이스, 서비스 및 미디어의 네트워크 A 의 디스플레이는 사용자 선택을 용이하게 하기 위해 그래픽 사용자 인터페이스의 형태일 수도 있다. 네트워크 B 내의 컴퓨터는 네트워크 B 상에서 가상화될 디바이스, 서비스, 또는 미디어의 선택된 네트워크의 사용자 입력을 수신할 수도 있다 (단계 1212). 수신된 사용자 입력에 기초하여, 네트워크 B 내의 에이전트 어플리케이션은 네트워크 내의 에이전트 어플리케이션으로의 선택된 디바이스, 서비스 또는 미디어로의 액세스에 대한 요청을 전송할 수도 있다 (단계 1214). 이러한 메시지는 피어-투-피어 네트워크를 통해서 전송될 수도 있다. 네트워크 A 내의 에이전트 어플리케이션은 선택된 디바이스, 서비스 또는 미디어를 가상화시키기 위해 요청을 수신하고 (단계 1216), 선택된 아이템에 대한 UPnP 어드레스, 서비스 템플릿 및 특징을 획득한다 (단계 1218). 다음으로, 네트워크 A 내의 에이전트 어플리케이션은 네트워크 B 내의 에이전트 어플리케이션에 획득된 어드레스, 서비스 템플릿 및 특징을 전송한다 (단계 1220). 네트워크 B 내의 에이전트 어플리케이션은, 수신된 정보로부터 관련 엘리먼트를 추출하고 (단계 1222), 선택된 디바이스, 서비스 또는 미디어에 대한 적절한 UPnP 디바이스 광고 메시지를 생성한다 (단계 1224). 다른 구현을 통해서, 에이전트 어플리케이션은 그 자신에 대응하는 선택된 디바이스, 서비스 또는 미디어에 대한 URL 을 광고 메시지에 포함하여, 에이전트 어플리케이션이 디바이스 광고 메시지를 송신할 때 (단계 1226), 선택된 디바이스, 서비스 또는 미디어로서 그 자신을 어나운싱한다. 디바이스 광고 메시지가 네트워크 B 상에 전송되면, 네트워크상의 디바이스들은 도 9a 내지 도 9c 를 참조하여 전술한 것과 같은 가상 디바이스, 서비스 또는 미디어에 액세스할 수도 있다.
다양한 실시형태에 따른 통신 시스템 컴포넌트들 중에서 교환될 수도 있는 예시적인 데이터 메시지들은 도 13 에서 예시적이다. 사용자가 이동 디바이스 (136) 로부터 다른 네트워크 A 와 네트워크 B 상의 디바이스 및 서비스의 공유를 개시할 때, 사용자는 등록 서버 (142) 에 무선 통신 네트워크 (130) 및 인터넷 (114) 을 경유하여 데이터 호를 발생시킨다 (메시지 1302). 이에 응답하여, 등록 서버 (142) 는 네트워크상에서 이용가능한 디바이스 및 서비스들의 리스팅을 요청하는 네트워크 A 상의 컴퓨터 (108) 상에서 실행하는 에이전트 어플리케이션에 제어 메시지를 전송할 수도 있다 (메시지 1304). 네트워크 A 상의 에이전트 어플리케이션은 발견된 UPnP 디바이스 및 서비스들의 리스팅에 응답할 수도 있다 (메시지 1306).
등록 서버 (142) 는 디스플레이를 위해 웹페이지로서 또는 리스트로서 그 정보를 전송함으로써 이동 디바이스 (136) 에 응답할 수도 있다 (메시지 1308). 그후, 사용자는 가상화될 선택된 디바이스 또는 서비스를 이용하여 등록 서버 (142) 에 응답할 수도 있다 (메시지 1309). 가상화를 위한 특정 디바이스 또는 서비스의 선택은 네트워크 A 상의 컴퓨터 (108) 상에서 에이전트 어플리케이션에 통신될 수도 있다 (메시지 1310). 이러한 메시지는 타겟 네트워크 B 의 도메인 ID 를 포함할 수도 있다. 그후, 에이전트 어플리케이션은 선택된 디바이스 또는 서비스의 어드레스, 서비스 템플릿 및 특징을 획득할 수도 있고 (프로세싱 1312), 피어-투-피어 네트워크 (128) 를 경유하여 네트워크 B 상의 컴퓨터 (126) 상에서 에이전트 어플리케이션에 이 정보를 전송할 수도 있다 (메시지 1314). 그후, 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션은 UPnP 디바이스 광고 어나운스먼트를 생성할 수도 있고 (프로세싱 1316), 네트워크 B 상에 이러한 어나운스 먼트를 송신할 수도 있다 (메시지 1318). 네트워크 B 상의 UPnP 디바이스는, 네트워크 B 상의 컴퓨터 (126) 상의 에이전트 어플리케이션에 전송된 메시지 내의 서비스 템플릿에 따라서 가상화된 디바이스 또는 서비스로부터 서비스를 요청할 수도 있다 (메시지 1320). 전술한 바와 같이, 서비스를 요청하는 프로세스는 어플리케이션이 제공하는 가상 디바이스로부터의 서비스 템플릿을 요청하는 것을 먼저 수반하고, 그후, 서비스 템플릿으로부터 획득된 정보를 이용하여 서비스 요청을 포매팅하는 것을 수반한다. 간략화를 위해, 요청 디바이스와 어플리케이션 사이의 이러한 시그널링은 도 13 에 포함되지 않는다.
네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션은 피어-투-피어 메시지로 서비스 요청을 리포매팅할 수도 있고 (프로세싱 1324), 피어-투-피어 네트워크를 경유하여 네트워크 A 상의 컴퓨터 (108) 의 어플리케이션에 그 메시지를 송신한다 (메시지 1326). 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션은 수신된 서비스 요청 메시지를 프로세싱하고, (프로세싱 1328), 선택된 디바이스에 요청을 발행한다 (메시지 1330). 선택된 디바이스는, 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션에 의해 수신된 서비스 응답 메시지에 응답할 수도 있다 (메시지 1332). 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션은, 이 서비스 응답 메시지를 프로세싱할 수도 있고 (프로세싱 1334), 네트워크 A 가 포트 포워딩을 지원할 때 네트워크 A 의 외부 IP 어드레스를 포함하고, 피어-투-피어 네트워크를 경유하여 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션에 서비스 응답 메시지를 포워딩한다 (메시지 1336). 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션은, 수신된 서비스 응답 메시지를 프로세싱할 수도 있고 (프로세싱 1338), 본 명세서에 설명된 디바이스 URL 을 매핑하고, 요청 디바이스에 서비스 응답 메시지를 포워딩한다 (메시지 1340). 예를 들어, 서비스 응답 메시지는 미디어 데이터를 획득하기 위해 요청 디바이스가 액세스할 수 있는 관련 URL 및 이용가능한 미디어의 리스팅일 수도 있다. 다음으로, 네트워크 B 상의 요청 디바이스는, 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션에 지시된 특정 URL 에 액세스할 수 있다 (메시지 1342). 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션은 URL 액세스를 프로세싱하고 (프로세싱 1344), 피어-투-피어 네트워크를 경유하여 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션으로 RUL 액세스를 포워딩한다 (메시지 1346). 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션은, 선택된 디바이스 또는 서비스에 액세스를 통과시키기 전에 수신된 URL 액세스를 프로세싱할 수도 있다 (프로세싱 1348) (메시지 1350). 그후, 선택된 디바이스 또는 서비스는 URL 과 관련된 미디어 데이터를 전달하기 시작할 수도 있다 (메시지 1352). 소스 및 타겟 네트워크들의 포트 포워딩 성능에 의존하여, 네트워크 A 상의 컴퓨터 (108) 의 에이전트는 미디어 데이터 패킷을 프로세싱할 수도 있고 (프로세싱 1354), 메시지 1356 에서 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션에 미디어 데이터를 푸싱하고 버퍼링한다. 추가적인 대안으로서, 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션은, 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션이 데이터에 액세스할 수 있는 리라우팅 서버 (114; 미도시) 에 미디어 데이터를 푸싱할 수도 있다 (여기서, 메시지 1356 는 2 개의 메시지들에서 달성되는데, 하나는 네트워크 A 상의 컴퓨터 (108) 의 에이전트 어플리케이션으로부터 리라우팅 서버 (144) 로의 메시지, 다른 하나는 리라우팅 서버 (144) 로부터 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션으로의 메시지). 미디어 데이터는 네트워크 B 상의 컴퓨터 (126) 의 에이전트 어플리케이션에 의해 수신될 수도 있고, 여기서, 요청 디바이스로의 전달 이전에 버퍼링 또는 프로세싱될 수도 있다 (메시지 1360). 도 13 에 도시된 메시지들은, 예시적인 실시형태를 예시하는 것으로 의도된다. 메시지들의 순서는 예시된 것과는 상이할 수도 있고, 어 적은 또는 더 많은 메시지들이 다양한 실시형태들을 구현하도록 이용될 수도 있다. 따라서, 도 13 에 예시된 메시지들은 임의의 방식으로 청구항의 범위를 제한하도록 의도되지 않는다.
전술한 예시들이 2 개의 개인 네트워크들 사이에서 미디어를 공유하는 것으로 고려되지만, 실시형태들은 (이 예시에서 네트워크 A 를 지칭하는) 제 1 네트워크 내의 디바이스가 인터넷 (114) 을 경유하여 액세스가능한 서버 (1400) 상에서 호스팅된 미디어에 직접 액세스하도록 인에이블하기 위해 이용될 수도 있다. 도 14 는 이러한 실시형태를 지원하는 예시적인 통신 네트워크를 예시한다. 이러한 통신 네트워크의 컴포넌트들은, 미디어 서버 (1400) 가 네트워크 A 상의 UPnP 디바이스들 (102, 104, 106, 108, 110) 중 하나의 이바이스에 의해 렌더링될 미디어에 대한 소스 도메인인 것을 제외하고는, 도 1 에 예시된 것과 유사하다. 이 실시형태는, 컴퓨터 (108) 를 통해서 디지털 미디어를 프로세싱할 필요없이, 디지털 텔레비전과 같은 UPnP 미디어 플레이어로 하여금 서버로부터 디지털 포맷으로 서버 호스팅 영화와 같은 미디어에 직접 액세스하게 하도록 인에이블할 수도 있다.
UPnP 디바이스가 인터넷 서버로부터 직접 미디어에 액세스할 수도 있는 예시적인 실시형태 방법 (1500) 이 도 15 에 예시된다. 네트워크 A 상의 컴퓨터의 에이전트 어플리케이션은 액세싱될 수도 있는 피어-투-피어 네트워크의 메뉴를 디스플레이하고 (단계 1502), 선택된 인터넷 서비스의 사용자 입력을 수신할 수도 있다 (단계 1504). 예를 들어, 사용자는 다양한 실시형태의 구현을 통해서 영화 렌탈을 제공하는 영화 렌탈 서비스를 선택할 수도 있다. 이에 응답하여, 네트워크 A 상의 에이전트 어플리케이션은, 렌탈을 위해 이용가능한 영화들의 리스팅과 같은 이용가능한 서비스들의 리스팅을 요청하는 선택된 서버 S 에 요청 메시지를 전송할 수도 있다 (단계 1506). 미디어 서버는 이러한 요청을 수신하고, 액세스가 렌트될 수도 있는 영화의 리스팅과 같은 이용가능한 서비스들의 리스트에 응답할 수도 있다 (단계 1508). 이용가능한 서비스들의 리스팅은, 네트워크 A 내의 에이전트 어플리케이션에 의해 수신될 수도 있고, 사용자를 위해 디스플레이될 수도 있다 (단계 1510). 사용자가 특정 서비스, 예를 들어 영화를 관람하도록 선택하는 경우, 입력은 네트워크 A 내의 에이전트 어플리케이션에 의해 수신될 수도 있고 (단계 1512), 선택된 서비스로의 액세스를 위해 미디어 서버에 요청을 발생 및 전송하도록 이용될 수도 있다 (단계 1514). 미디어 서버는 선택된 서비스, 예를 들어, 특정 영화를 가상화하기 위해 요청을 수신하고 (단계 1516), 선택된 서비스에 대한 어드레스, 서비스 템플릿 및 특징에 응답할 수도 있다 (단계 1518). 그후, 네트워크 A 내의 에이전트 어플리케이션은 수신된 정보로부터 관련 엘리먼트들을 추출하고 (단계 1520), 선택된 서비스에 대한 UPnP 광고 메시지를 생성한다 (단계 1520). 그후, 생성된 UPnP 어나운스먼트가 네트워크 A 상에 송신될 수도 있고 (단계 1524), 이에 따라 디지털 텔레비젼과 같은 UPnP 디바이스들을 가상 서비스를 발견하도록 인에이블할 수 있다. 디바이스 광고 메시지가 네트워크 B 상에 전송되면, 네트워크 상의 이바이스들은 도 9a 내지 도 9c 를 참조하여 전술된 것과 유사한 방식으로 가상 디바이스, 서비스 또는 미디어에 액세스할 수도 있다.
네트워크상의 디바이스가 인터넷 서버상에 저장된 미디어에 직접 액세스하게 하도록 인에이블하는 통신 시스템의 컴포넌트들 사이에서 교환될 수도 있는 예시적인 메시지들은, 도 16 에 예시된다. 인터넷 미디어 서버 (1600) 상에 저장된 미디어 데이터에 직접 액세스하기 위해, 사용자는 등록 서버 (142) 를 이용하여 사용자의 네트워크에 등록하는 것이 필요할 수도 있다 (메시지 1602). 등록 프로세스의 일부로서, 등록 서버 (142) 는 에이전트 어플리케이션을 다운로딩할 수도 있고, 미디어 서버 (1600) 에 액세스하기 위해 필요한 사용자 ID 정보 를 제공한다 (메시지 1604). 또한, 등록 서버 (142) 는, 사용자가 서비스에 대해 등록할 때에 대해 미디어 서버 (1600) 에 통지할 수도 있다 (메시지 1606). 사용자가 등록되면, 네트워크 A 상의 에이전트 어플리케이션은 미디어 서버 (1600) 와 메시지들을 교환할 수도 있고 (메시지 1608), 인증 자격 (authentication credential) 을 교환하고, 이용가능한 서비스의 메뉴를 에이전트 어플리케이션에 제공하며, 다른 서비스 등록 정보를 수신한다. 미디어 서버 (1600) 는, 네트워크 A 상의 가상 디바이스로서 미디어 서버 (1600) 를 식별하는 디바이스 광고 메시지를 생성하도록 인에이블하는 정보를 네트워크 A 상의 에이전트 어플리케이션에 제공한다 (메시지 1609).
디지털 텔레비전과 같은 네트워크 A 상의 UPnP 디바이스는 네트워크 A 상에서 에이전트 어플리케이션이 프로세싱하는 서비스 요청을 발행하고 (메시지 1610) (프로세싱 1612), 미디어 서버 (1600) 에 포워딩한다 (메시지 1614). 이러한 서비스 요청 메시지는, 미디어 서버 (1600) 에 의해 프로세싱될 수도 있고 (프로세싱 1616), 미디어 데이터베이스 (1601) 로의 데이터 요청을 수반할 수도 있고 (메시지 1618), 미디어 서버 (1600) 가 프로세싱하는 데이터 응답 (메시지 1620) (프로세싱 1624) 전에 상기 프로세싱을 처리한다. 네트워크 A 내의 에이전트 어플리이션은, 요청 디바이스에 요청된 정보를 제공하기 전에 본 명세서에 설명된 것과 같은 URL 어드레스를 리매핑하도록 수신된 정보를 프로세싱한다 (프로세싱 1626) (메시지 1628). 예를 들어, 디지털 텔레비전은 미디어 서버 (1600) 로부터의 다운로드를 위해 이용가능한 영화의 프로그램 가이드를 요청할 수도 있다.
사용자는 액세스될 특정 미디어를 선택할 수도 있고, 대응 미디어 URL 는 네트워크 A 상의 에이전트 어플리케이션에 송신될 수도 있다 (메시지 1630). 네트워크 A 상의 에이전트 어플리케이션은, 미디어 서버 (1600) 에 URL 을 송신하기 전에 URL 요청을 프로세싱할 수도 있다 (프로세싱 1632) (메시지 1634). 미디어 서버 (1600) 는 이 URL 요청을 프로세싱하고 (프로세싱 1636), 미디어 데이터베이스 (1601) 내의 관련 미디어 파일에 액세스할 수도 있다 (메시지 1638). 그후, 요청된 미디어는, 인터넷을 경유하여 미디어 데이터를 송신하기 (메시지 1644) 전에 미디어 데이터를 프로세싱할 (프로세싱 1642) 수도 있는 미디어 서버 (1600) 에 미디어 데이터베이스 (1601) 로부터 송신 (메시지 1640) 될 수도 있다. 미디어 데이터는 요청 디바이스에 제공되기 (프로세싱 1646) 전에, 네트워크 A 내의 어플리케이션에 의해 수신될 수도 있고 버퍼링될 수도 있으며 또는 리어드레싱될 수도 있다 (메시지 1648). 대안적인 실시형태에서, 미디어 데이터는, 메시지 1644 가 요청 디바이스에 어드레싱될 수도 있는 네트워크 A 내의 요청 디바이스에 제공될 수도 있다.
다양한 실시형태들이 수많은 유용한 구현을 가능하게 한다. 일 실시형태에서 예를 들어, 일 네트워크상에서 이용가능한 동적 정보는 디지털 포토 프레임과 같은 간단한 디스플레이 디바이스 상에 포토그래픽 이미지로서 디스플레이될 수도 있다. 디지털 포토 프레임 디바이스는 사용자 미디어, 특히 포토그래프를 디스플레이하기 위해 대중적이 되고 있다. UPnP 디지털 포토 프레임은 현재 이용가능하고 사용자의 네트워크상에 저장된 포토그래픽 미디어를 편리하게 디스플레이하는데 널리 이용된다. 예를 들어, 디지털 포토 프레임은 전술된 실시형태에 따라서 가상 미디어 저장소로부터 수신된 미디어를 렌더링하기 위해 디스플레이 디바이스로서 이용될 수도 있다. 이러한 아이디어의 추가적인 구현은, 동적 정보 (예를 들어, 웹 페이지), 및 텍스처 정보 (예를 들어, e-mail 및 트위터 메시지) 를 디지털 포토 프레임 상에 포토그래프로서 디스플레이하도록 인에이블한다. 다양한 실시형태들을 이용하여, 이러한 디스플레이 방법은 수많은 어플리케이션에서 사용자들에게 매우 유용할 수도 있다.
디지털 포토 프레임 상에서 동적 정보 및 텍스처 정보를 렌더링하기 위한 예시적인 실시형태 방법 (1700) 이 도 17 에 예시된다. 이러한 실시형태 방법은 렌더링될 동적 또는 텍스처 정보에 액세스하는 컴퓨터상에서 구현될 수도 있다. 이러한 컴퓨터는 동적 데이터 소스로부터 텍스트, 이미지, HTML 또는 다른 데이터를 획득하기 위해 파일 또는 URL 에 액세스할 수도 있다 (단계 1702). 예를 들어, 컴퓨터는 사용자의 가장 최근의 메시지를 획득하기 위해 사용자의 e-mail 또는 트위터 계정에 액세스할 수도 있다. 그후, 컴퓨터는 디스플레이를 위해 적절한 포맷으로 획득된 정보를 포매팅한다 (단계 1704). 예를 들어, 획득된 정보가 e-mail 메시지이면, 이 메시지는 e-mail 어플리케이션에서 e-mail 의 디스플레이 상에 존재하는 방식과 유사한 방식으로 포매팅될 수도 있다. 그후, 포매팅된 데이터는 메모리-내 비트맵으로서 렌더링된다 (단계 1706). 다음으로, 이 비트맵은 JPEG 포맷과 같은 디지털 포토그래프 데이터 포맷으로 변환되고 메모리 내에 저장된다 (단계 1708). JPEG 파일과 같은 디지털 포토그래프 데이터는 디지털 포토 프레임 디스플레이에 통신된다 (단계 1710). 예를 들어, 디지털 포토그래프 데이터는 디지털 포토 프레임의 메모리 내에 저장될 수도 있고, 또는 디지털 포토 프레임이 액세스하는 로컬 네트워크상의 데이터 저장소 내에 저장될 수도 있다. 추가적인 실시형태에서, 디지털 포토그래프 데이터는 이전 실시형태에서 설명된 것과 같은 다른 네트워크상에서 가상화된 디바이스에 저장될 수도 있고, 이에 따라, 다른 네트워크상의 디지털 포토프레임으로 하여금 도 9a 내지 도 9c 를 참조하여 전술된 것과 유사한 방식으로 이미지를 액세스하고 디스플레이한다 (단계 1712).
이 실시형태의 특정 예시적인 구현은, 사용자의 트위터 계정인 "트위트들" 은 디지털 포토 프레임 상의 디스플레이에 대해 렌더링되는 도 18 에 예시된다. 컴퓨터는 사용자의 트위터 계정에 액세스할 수도 있고 가장 최근의 메시지 텍스트를 획득할 수도 있다 (단계 1802). 다음으로, 트위터 텍스트는 디스플레이를 위해 포매팅될 수도 있고 (단계 1804) 비트맵으로서 렌더링될 수도 있다 (단계 1806). 그후, 비트맵 이미지는 JPEG 포맷으로 변환되고 (단계 1808), 결과 JPEG 파일은 디지털 포토 프레임에 제공된다 (단계 1810). 대안적으로, 결과 JPEG 파일은 다른 네트워크상에서 가상화된 디바이스에 저장될 수도 있고, 이 JPEG 파일로 하여금 도 9a 내지 도 9c 를 참조하여 전술한 것과 유사한 방식으로 다른 네트워크 상의 디지털 포토 프레임 내에 디스플레이되는 것을 인에이블한다 (단계 1812).
이 실시형태의 다른 예시적인 구현은, 동적 웹 페이지, 예를 들어, 뉴스 웹페이지, 주식 인용, 및 웹캠 피드가 디지털 포토 프레임 상에 디스플레이를 위해 렌더링되는 도 19 에 예시된다. 컴퓨터는 특정 웹사이트에 액세스할 수도 있고 가장 최근의 HTML 스크립트 및 이미지를 획득할 수도 있다 (단계 1902). 그후, 획득된 HTML 및 이미지들은 웹 브라우저 어플리케이션을 이용하여 대응 웹페이지를 생성함으로써 디스플레이를 위해 포매팅될 수도 있다 (단계 1904). 그후, 생성된 웹페이지는 비트맵으로서 렌더링되고 (단계 1906), 비트맵 이미지는 JPEG 포맷으로 변환된다 (단계 1908). 그 결과 JPEG 파일은 디지털 포토 프레임에 제공될 수도 있다 (단계 1910). 대안적으로, 그 결과 JPEG 파일은 다른 네트워크상에서 가상화된 디바이스에 저장될 수도 있고, 이는 JPEG 파일로 하여금 도 9a 내지 도 9c 를 참조하여 전술된 것과 유사한 방식으로 다른 네트워크상의 디지털 포토 프레임 내에 디스플레이되도록 인에이블된다 (단계 1912).
다양한 실시형태들 내의 등록 서버 (142) (또는 다른 서버) 에 액세스함으로써 공유하는 디바이스 또는 파일을 초대하는데 이용된 "컨트롤러" 는 웹 브라우저, 예를 들어, 퍼스널 컴퓨터 (138), 웹북, 또는 이동 디바이스 (136) 를 호스팅하고 또는 제공하는 임의의 디바이스일 수도 있다. 셀룰러 텔레폰과 같은 이동 디바이스 (136) 는, 그 작은 크기 및 다른 유틸리티가 사용자가 그들과 함께 또는 주변에 있는 것을 가진다는 것을 통상적으로 의미하기 때문에, 컨트롤러로서 이용하기 위해 특정 편리한 디바이스일 수도 있다. 다양한 실시형태들에 이용하기 위해 적절한 통상적인 이동 디바이스 (136) 는 도 20 에 예시된 컴포넌트들을 통상적으로 가질 것이다. 예를 들어, 예시적인 이동 디바이스 (136) 는 내부 메모리 (192), 및 디스플레이 (193) 에 커플링된 프로세서 (191) 를 포함할 수도 있다. 추가적으로, 이동 디바이스 (136) 는 프로세서 (191) 에 커플링된 무선 데이터 링크 및/또는 셀룰러 텔레폰 트랜시버 (195) 에 접속된 전자기 방사선을 전송 및 수신하기 위한 안테나 (194) 를 가질 수도 있다. 또한, 통상적으로 이동 디바이스는, 사용자 입력을 수신하기 위해, 키 패드 (196) 또는 미니어쳐 키보드 및 메뉴 선택 버트 또는 로커 스위치 (197) 를 포함한다.
전술한 실시형태들은 도 21 에 예시된 서버 (1400) 와 같은 다양한 서버 디바이스들 중 임의의 디바이스를 통해서 구현될 수도 있다. 이러한 서버 (1400) 는 통상적으로, 휘발성 메모리 (1402) 및 디스크 드라이버 (1403) 와 같은 큰 용량 비휘발성 메모리에 커플링된 프로세서 (1401) 를 포함한다. 또한, 서버 (1400) 는 프로세서 (1401) 에 커플링된 플로피 디스크 드라이브 및/또는 컴팩트 디스크 (CD) 드라이브 (1406) 를 포함할 수도 있다. 또한, 서버 (1400) 는 인터넷과 같은 네트워크 회로 (1405) 와의 데이터 접속을 확립하기 위해 프로세서 (1401) 에 커플링된 네트워크 액세스 포트 (1404) 를 포함할 수도 있다.
또한, 전술한 실시형태는 도 22 에 예시된 것과 같은 디지털 포토 프레임을 구현할 수도 있다. 이러한 디지털 포토 프레임 (2200) 은 통상적으로 메모리 (2202) 및 큰 디스플레이 (2203) 에 커플링된 프로세서 (2201) 를 포함한다. 디지털 포토 프레임 (2200) 은 또한 안테나 (2204) 에 커플링된 무선 데이터 링크 트랜시버 (2205) 뿐만 아니라 프로세서 (2201) 에 커플링된 배터리 (2206) 를 포함할 수도 있다. 프로세서 (2201) 는 무선 데이터 링크 트랜시버 (2205) 를 통해서 액세스된 무선 네트워크상에 그 플러그-앤-플레이 파라미터들 및 서비스 템플릿을 어나운싱하도록 구성될 수도 있다.
다양한 디바이스들에서 프로세서들 (191, 1401, 2201) 은, 본 명세서에 설명된 다양한 실시형태들의 기능을 포함하는 다양한 기능들을 수행하기 위해 소프트웨어 명령들 (어플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래머블 마이크로프로세서, 마이크로컴퓨터 또는 멀티플 프로세서 칩 또는 칩들일 수도 있다. 몇몇 디바이스에서, 무선 통신 기능을 전용하는 하나의 프로세서 및 다른 어플리케이션을 실행하는데 전용된 하나의 프로세서와 같은 다수의 프로세서들 (191, 1401, 2201) 이 제공될 수도 있다. 통상적으로, 소프트웨어 어플리케이션은, 이들이 프로세서 (191, 1401, 2201) 에 액세스 및 로딩되기 전에, 내부 메모리 (192, 1402, 2202) 내에 저장될 수도 있다. 몇몇 이동 디바이스에서, 프로세서 (191, 1401, 1501) 는 어플리케이션 소프트웨어 명령을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 몇몇 디바이스에서, 보안 메모리는 프로세서 (191, 1401, 1501) 에 커플링된 별도의 메모리 칩 내에 있을 수도 있다. 수많은 디바이스에서, 내부 메모리 (192, 1402, 2202) 는 휘발성 또는 비휘발성 메모리, 예를 들어, 플래시 메모리, 또는 이들의 조합일 수도 있다. 이러한 상세의 목적을 위해, 메모리에 대한 일반적인 참조는, 디바이스에 플러그된 제거가능한 메모리인 내부 메모리 (192, 1402, 2202), 및 프로세서 (191, 1401, 1501) 그 자신 내의 메모리를 포함하는 프로세서 (191, 1401, 2201) 에 의해 액세스가능한 모든 메모리를 지칭한다.
전술한 방법 및 프로세스 흐름도는 예시적인 예시로서만 제공되고, 다양한 실시형태들이 나타난 순서로 수행되어야만 하는 것을 요구하거나 또는 함축하도록 의도되지 않는다. 당업자는, 전술한 실시형태들의 단계들의 순서가 임의의 순서로 수행될 수도 있다는 것을 이해할 것이다. 단어 "이하", "그후", "다음" 등은 그 단계의 순서를 한정하도록 의도되지 않고, 이들 단어는 방법의 상세를 통해서 독자를 가이드하는데 간단하게 이용된다. 또한, 예를 들어, 관사 "a", "an", 또는 "the" 를 이용하는 단수의 청구항 엘리먼트에 대한 임의의 참조가 엘리먼트를 단수로 한정하는 것으로서 구성되지 않는다.
또한, 당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현할 수도 있음을 알 수 있다. 하드웨어와 소프트웨어의 이러한 대체 가능성을 분명히 설명하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정한 애플리케이션 및 설계 제약조건들에 의존한다. 당업자는 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범위를 벗어나도록 하는 것으로 해석하지는 않아야 한다.
여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 기타 프로그래머블 로직 디바이스, 별도의 게이트 또는 트랜지스터 로직, 별도의 하드웨어 컴포넌트들, 또는 여기서 설명된 기능을 수행하도록 설계된 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 기타 다른 구성물로 구현될 수도 있다. 대안적으로, 몇몇 단계들 또는 방법들이 주어진 기능에 대해 구체화하는 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어에서 구현되는 경우, 그 기능은 컴퓨터-판독가능 매체상에서 하나 이상의 명령 또는 코드로서 저장될 수도 있고, 하나 이상의 명령 또는 코드를 통해서 송신될 수도 있다. 본 명세서에 기재된 방법 또는 알고리즘의 단계들은, 컴퓨터-판독가능 매체 상에 상주할 수도 있는 실행된 프로세서-실행가능 소프트웨어 모듈 내에서 채용될 수도 있다. 컴퓨터-판독가능 매체는 하나의 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능 매체일 수도 있다. 한정이 아닌 예시로서, 이러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장매체, 자기 디스크 저장매체 또는 다른 자기 저장 매체, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수도 있다. 또한, 임의의 커넥션은 컴퓨터-판독가능 매체로서 적절하게 지칭된다. 예를 들어, 소프트웨어가, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL) 또는 (적외선, 무선, 및 마이크로웨이브와 같은) 무선 기술을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 (적외선, 무선, 및 마이크로웨이브와 같은) 무선 기술이 매체의 정의에 포함된다. 본 발명에 사용되는 것과 같은 디스크 (Disk) 및 디스크 (Disc) 는 콤팩트 디스크 (CD; compact disc), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 휘발성 디스크 (DVD; digital versatile disc), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (blue-lay disc) 를 포함하고, 여기서 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하고, 디스크 (disc) 는 레이저를 통해서 광학적으로 데이터를 재생한다. 전술한 것들의 조합이 컴퓨터-판독가능 매체의 범위 내에 포함되어야만 한다. 추가적으로, 방법 또는 알고리즘의 동작들은, 컴퓨터 프로그램 제품으로 통합될 수도 있는 머신 판독가능 매체 및/또는 컴퓨터-판독가능 매체 상에 코드들 및/또는 명령들의 세트 또는 하나 또는 임의의 조합으로서 상주할 수도 있다.
개시된 실시형태의 이전의 설명은 당업자가 본 발명을 수행 또는 사용할 수 있도록 제공된다. 이들 실시형태에 대한 다양한 변형은 당업자에게는 용이하게 명백할 것이며, 여기에 정의된 일반적인 원리는 본 발명의 범위 또는 사상을 벗어나지 않고 다른 실시형태에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태로 제한하려는 것이 아니라, 여기에 개시된 원리 및 신규한 특성에 그리고 이하의 청구항에 부합되는 최광의 범위를 부여하려는 것이다.

Claims (40)

  1. 제 2 네트워크상에 위치된 제 2 디바이스로부터 제 1 네트워크상에 위치된 제 1 디바이스에 액세스하기 위한 방법으로서,
    피어-투-피어 네트워크를 통해서 상기 제 1 네트워크와 상기 제 2 네트워크를 링크시키는 단계;
    상기 제 2 네트워크상에서, 상기 제 1 디바이스의 디바이스 광고 메시지를 생성하는 단계;
    상기 제 2 네트워크상의 상기 제 2 디바이스로부터 상기 제 1 디바이스에 대한 액세스 요청 메시지를 수신하는 단계; 및
    상기 피어-투-피어 네트워크를 통해서 상기 제 1 디바이스에 대한 상기 액세스 요청 메시지를 상기 제 1 네트워크에 통신하는 단계를 포함하는, 액세스 방법.
  2. 제 1 항에 있어서,
    상기 제 1 네트워크 내의 컴퓨터상에서 동작하는 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를 획득하는 단계; 및
    상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보 (property information) 를, 상기 제 1 네트워크 내의 제 1 컴퓨터상에서 동작하는 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 제 2 컴퓨터상에서 동작하는 제 2 에이전트 어플리케이션으로 송신하는 단계를 더 포함하고,
    상기 제 2 에이전트 어플리케이션은, 상기 제 1 디바이스와 관련된 상기 수신된 어드레스, 서비스 템플릿 및 속성 정보에 기초하여 상기 제 2 네트워크상에서 상기 디바이스 광고 메시지를 생성하고;
    상기 디바이스 광고 메시지는, 상기 제 1 디바이스에 대한 네트워크 어드레스로서 상기 제 2 에이전트 어플리케이션에 대한 어드레스를 포함하는, 액세스 방법.
  3. 제 2 항에 있어서,
    상기 제 1 네트워크 내의 상기 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스로부터 서비스 응답 메시지를 수신하고;
    상기 피어-투-피어 네트워크를 통해서 상기 서비스 응답 메시지를 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 상기 제 2 에이전트 어플리케이션으로 송신하고;
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스에 제공함으로써,
    상기 제 1 디바이스로부터 상기 제 2 디바이스로 상기 서비스 응답 메시지를 통신하는 단계를 더 포함하는, 액세스 방법.
  4. 제 3 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 1 에이전트 어플리케이션으로부터의 상기 제 1 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 수신하는 단계; 및
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스로 제공하기 전에, 상기 제 1 네트워크에 대한 상기 IP 어드레스를 포함하는 URL (universal resource locator) 에 상기 서비스 응답 메시지 내의 URL 을 매핑하는 단계를 더 포함하는, 액세스 방법.
  5. 제 3 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 획득하는 단계;
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하는 단계;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키는 단계; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하는 단계를 더 포함하고,
    상기 제어 메시지는, 상기 제 2 네트워크에 대한 상기 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하게 하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하게 하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제 2 네트워크에 대한 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로 푸싱 (push) 하게 하도록
    포매팅된, 액세스 방법.
  6. 제 1 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하는 단계;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키는 단계; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하는 단계를 더 포함하고,
    상기 제어 메시지는, 인터넷에 위치된 리라우팅 서버에 대한 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금:
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하게 하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하게 하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제어 메시지에 포함된 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 리라우팅 서버에 푸싱하게 하도록
    포매팅되고,
    상기 리라우팅 서버는 버퍼에서 상기 미디어 데이터를 수신하도록 구성되고; 그리고
    상기 액세스 방법은:
    상기 리라우팅 서버 내의 상기 버퍼에 액세스하여 상기 제 2 에이전트 어플리케이션에 미디어 데이터를 송신하는 단계; 및
    상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스에 제공하는 단계를 더 포함하는, 액세스 방법.
  7. 제 2 항에 있어서,
    데이터의 소스에 액세스하여 데이터 파일을 획득하는 단계;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하는 단계;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하는 단계;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하는 단계; 및
    상기 제 1 디바이스 상에 상기 디지털 포토그래프 데이터를 저장하는 단계를 더 포함하고,
    상기 제 2 디바이스는 디지털 포토 프레임 디바이스인, 액세스 방법.
  8. 제 7 항에 있어서,
    상기 디지털 포토그래프 데이터 포맷은 JPEG 포맷인, 액세스 방법.
  9. 데이터의 소스에 액세스하여 데이터 파일을 획득하는 단계;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하는 단계;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하는 단계;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하는 단계; 및
    상기 디지털 포토그래프 데이터를 디스플레이를 위한 디지털 포토 프레임에 제공하는 단계를 포함하는, 데이터를 디스플레이하는 방법.
  10. 제 9 항에 있어서,
    제 2 네트워크상의 디바이스에 의해 액세스될 수 있는 디바이스에 상기 디지털 포토그래프 데이터를 저장하는 단계를 더 포함하는, 데이터를 디스플레이하는 방법.
  11. 프로세서;
    상기 프로세서에 커플링되고, 인터넷을 통해서 상기 프로세스가 통신할 수 있도록 구성된 제 1 네트워크 인터페이스 회로; 및
    상기 프로세서에 커플링되고, 상기 프로세서가 제 1 로컬 네트워크와 통신할 수 있도록 구성된 제 2 네트워크 인터페이스 회로를 포함하고,
    상기 프로세서는:
    피어-투-피어 네트워크를 통해서 제 2 네트워크와 통신하는 단계;
    제 2 로컬 네트워크상에 위치된 제 1 디바이스의 디바이스 광고 메시지를 상기 제 1 로컬 네트워크상에서 생성시키는 단계;
    상기 위치된 제 1 디바이스 상에서 제 2 디바이스로부터 상기 제 1 디바이스에 대한 액세스 요청 메시지를 수신하는 단계; 및
    상기 피어-투-피어 네트워크를 통해서 상기 제 1 디바이스에 대한 상기 액세스 요청 메시지를 상기 제 1 제 2 로컬 네트워크에 통신하는 단계
    를 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  12. 제 11 항에 있어서,
    상기 프로세서는:
    상기 제 2 로컬 네트워크로부터 상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를 수신하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성되고;
    상기 디바이스 광고 메시지는 상기 제 1 디바이스와 관련된 상기 수신된 어드레스, 서비스 템플릿 및 속성 정보에 기초하고;
    상기 디바이스 광고 메시지는 상기 제 1 디바이스에 대한 네트워크 어드레스로서 상기 컴퓨터에 대한 어드레스를 포함하는, 컴퓨터.
  13. 제 12 항에 있어서,
    상기 프로세서는:
    상기 피어-투-피어 네트워크를 통해서 상기 제 2 로컬 네트워크로부터 서비스 응답 메시지를 수신하는 단계; 및
    상기 서비스 응답 메시지를 상기 제 2 디바이스에 제공하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성되는, 컴퓨터.
  14. 제 13 항에 있어서,
    상기 프로세서는:
    상기 제 2 로컬 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 수신하는 단계; 및
    상기 서비스 응답 메시지를 상기 제 2 디바이스에 제공하기 전에, 상기 제 2 로컬 네트워크에 대한 상기 IP 어드레스를 포함하는 URL 에 상기 서비스 응답 메시지 내의 URL 을 매핑하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  15. 제 13 항에 있어서,
    상기 프로세서는:
    상기 제 1 로컬 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 획득하는 단계;
    상기 제 2 디바이스로부터 URL (universal resource locator) 액세스 메시지를 수신하는 단계;
    상기 URL 액세스 메시지를 상기 제 1 로컬 네트워크에 대한 상기 IP 어드레스를 포함하는 제어 메시지로 변환시키는 단계;
    상기 제어 메시지를 상기 제 2 로컬 네트워크에 송신하는 단계; 및
    상기 제 2 로컬 네트워크로부터 미디어 데이터를 수신하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  16. 제 11 항에 있어서,
    상기 프로세서는:
    상기 제 2 디바이스로부터 URL 액세스 메시지를 수신하는 단계;
    상기 URL 액세스 메시지를 상기 인터넷에 위치된 리라우팅 서버에 대한 IP 어드레스를 포함하는 제어 메시지로 변환시키는 단계;
    상기 제어 메시지를 상기 제 2 로컬 네트워크에 송신하는 단계; 및
    상기 리라우팅 서버로부터의 미디어 데이터에 액세스하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  17. 제 12 항에 있어서,
    상기 프로세서는:
    데이터의 소스에 액세스하여 데이터 파일을 획득하는 단계;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하는 단계;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하는 단계;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형시키는 단계; 및
    상기 디지털 포토그래프 데이터를 상기 제 1 디바이스에 제공하는 단계
    를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성되고,
    상기 제 1 디바이스는 디지털 포토 프레임 디바이스인, 컴퓨터.
  18. 제 17 항에 있어서,
    상기 디지털 포토그래프 데이터 포맷은 JPEG 포맷인, 컴퓨터.
  19. 프로세서;
    상기 프로세서에 커플링된 메모리; 및
    상기 프로세서에 커플링되고, 네트워크를 통해서 상기 프로세서가 통신할 수 있도록 구성된, 네트워크 인터페이스 회로를 포함하고;
    상기 프로세서는:
    데이터의 소스에 액세스하여 데이터 파일을 획득하는 단계;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하는 단계;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하는 단계;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형시키는 단계; 및
    상기 디지털 포토그래프 데이터를 디스플레이를 위한 디지털 포토 프레임에 제공하는 단계
    를 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  20. 제 19 항에 있어서,
    상기 프로세서는, 제 2 네트워크상의 디바이스에 의해 액세스될 수 있는 디바이스 상에 상기 디지털 포토그래프 데이터를 저장하는 단계를 더 포함하는 단계들을 수행하기 위한 프로세서-실행가능 명령들로 구성된, 컴퓨터.
  21. 제 2 네트워크상에 위치된 제 2 디바이스에 의해 제 1 네트워크상에 위치된 제 1 디바이스에 액세스되도록 인에이블하기 위한 시스템으로서,
    피어-투-피어 네트워크를 통해서 상기 제 1 네트워크와 상기 제 2 네트워크를 링크시키는 수단;
    상기 제 1 디바이스의 디바이스 광고 메시지를 상기 제 2 네트워크상에서 생성하는 수단;
    상기 제 2 네트워크상의 상기 제 2 디바이스로부터 상기 제 1 디바이스에 대한 액세스 요청 메시지를 수신하는 수단; 및
    상기 피어-투-피어 네트워크를 통해서 상기 제 1 디바이스에 대한 상기 액세스 요청 메시지를 상기 제 1 네트워크에 통신하는 수단을 포함하는, 시스템.
  22. 제 21 항에 있어서,
    상기 제 1 네트워크 내의 컴퓨터상에서 동작하는 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를 획득하는 수단; 및
    상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를, 상기 제 1 네트워크 내의 제 1 컴퓨터상에서 동작하는 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 제 2 컴퓨터상에서 동작하는 제 2 에이전트 어플리케이션으로 송신하는 수단을 더 포함하고,
    상기 제 2 에이전트 어플리케이션은, 상기 제 1 디바이스와 관련된 상기 수신된 어드레스, 서비스 템플릿 및 속성 정보에 기초하여 상기 제 2 네트워크상에서 상기 디바이스 광고 메시지를 생성하기 위한 수단을 포함하고;
    상기 디바이스 광고 메시지는, 상기 제 1 디바이스에 대한 네트워크 어드레스로서 상기 제 2 에이전트 어플리케이션에 대한 어드레스를 포함하는, 시스템.
  23. 제 22 항에 있어서,
    서비스 응답 메시지를 상기 제 1 디바이스로부터 상기 제 2 디바이스로 통신하기 위한 수단을 더 포함하고,
    상기 통신하기 위한 수단은:
    상기 제 1 네트워크 내의 상기 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스로부터 서비스 응답 메시지를 수신하기 위한 수단;
    상기 피어-투-피어 네트워크를 통해서 상기 서비스 응답 메시지를 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 상기 제 2 에이전트 어플리케이션으로 송신하기 위한 수단; 및
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스로 제공하기 위한 수단
    을 포함하는, 시스템.
  24. 제 23 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 1 에이전트 어플리케이션으로부터의 상기 제 1 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 수신하기 위한 수단; 및
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스로 제공하기 전에, 상기 제 1 네트워크에 대한 상기 IP 어드레스를 포함하는 URL (universal resource locator) 에 상기 서비스 응답 메시지 내의 URL 을 매핑하기 위한 수단을 더 포함하는, 방법.
  25. 제 23 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 획득하기 위한 수단;
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하기 위한 수단;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키기 위한 수단; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하기 위한 수단을 더 포함하고,
    상기 제어 메시지는, 상기 제 2 네트워크에 대한 상기 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하게 하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하게 하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제 2 네트워크에 대한 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로 푸싱하게 하도록
    포매팅된, 방법.
  26. 제 21 항에 있어서,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하기 위한 수단;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키기 위한 수단; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하기 위한 수단을 더 포함하고,
    상기 제어 메시지는, 인터넷에 위치된 리라우팅 서버에 대한 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금:
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하게 하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하게 하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제어 메시지에 포함된 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 리라우팅 서버에 푸싱하게 하도록
    포매팅되고,
    상기 리라우팅 서버는 버퍼에서 상기 미디어 데이터를 수신하도록 구성되고; 그리고
    상기 시스템은:
    상기 리라우팅 서버 내의 상기 버퍼에 액세스하여 상기 제 2 에이전트 어플리케이션에 미디어 데이터를 송신하기 위한 수단; 및
    상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스에 제공하기 위한 수단을 더 포함하는, 방법.
  27. 제 22 항에 있어서,
    데이터의 소스에 액세스하여 데이터 파일을 획득하기 위한 수단;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하기 위한 수단;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하기 위한 수단;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하기 위한 수단; 및
    상기 제 1 디바이스 상에 상기 디지털 포토그래프 데이터를 저장하기 위한 수단을 더 포함하고,
    상기 제 2 디바이스는 디지털 포토 프레임 디바이스인, 시스템.
  28. 제 27 항에 있어서,
    상기 디지털 포토그래프 데이터 포맷은 JPEG 포맷인, 시스템.
  29. 데이터의 소스에 액세스하여 데이터 파일을 획득하기 위한 수단;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하기 위한 수단;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하기 위한 수단;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하기 위한 수단; 및
    상기 디지털 포토그래프 데이터를 디스플레이를 위한 디지털 포토 프레임에 제공하기 위한 수단을 포함하는, 컴퓨터.
  30. 제 29 항에 있어서,
    제 2 네트워크상의 디바이스에 의해 액세스될 수 있는 디바이스에 상기 디지털 포토그래프 데이터를 저장하기 위한 수단을 더 포함하는, 컴퓨터.
  31. 프로세서 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 프로세서 판독가능 매체는:
    피어-투-피어 네트워크를 통해서 제 1 네트워크와 제 2 네트워크를 링크시키기 위한 적어도 하나의 명령;
    상기 제 1 디바이스의 디바이스 광고 메시지를 제 2 네트워크상에서 생성하기 위한 적어도 하나의 명령;
    상기 제 2 네트워크상의 제 2 디바이스로부터 상기 제 1 디바이스에 대한 액세스 요청 메시지를 수신하기 위한 적어도 하나의 명령; 및
    상기 피어-투-피어 네트워크를 통해서 상기 제 1 디바이스에 대한 상기 액세스 요청 메시지를 상기 제 1 네트워크에 통신하기 위한 적어도 하나의 명령을 포함하는, 컴퓨터 프로그램 제품.
  32. 제 31 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    상기 제 1 네트워크 내의 컴퓨터상에서 동작하는 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를 획득하기 위한 적어도 하나의 명령; 및
    상기 제 1 디바이스와 관련된 어드레스, 서비스 템플릿 및 속성 정보를, 상기 제 1 네트워크 내의 제 1 컴퓨터상에서 동작하는 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 제 2 컴퓨터상에서 동작하는 제 2 에이전트 어플리케이션으로 송신하기 위한 적어도 하나의 명령을 더 포함하고,
    상기 제 2 에이전트 어플리케이션은, 상기 제 1 디바이스와 관련된 상기 수신된 어드레스, 서비스 템플릿 및 속성 정보에 기초하여 상기 제 2 네트워크상에서 상기 디바이스 광고 메시지를 생성하고;
    상기 디바이스 광고 메시지는, 상기 제 1 디바이스에 대한 네트워크 어드레스로서 상기 제 2 에이전트 어플리케이션에 대한 어드레스를 포함하는, 컴퓨터 프로그램 제품.
  33. 제 32 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    서비스 응답 메시지를 상기 제 1 디바이스로부터 상기 제 2 디바이스로 통신하기 위한 적어도 하나의 명령을 더 포함하고,
    상기 통신하기 위한 적어도 하나의 명령은:
    상기 제 1 네트워크 내의 상기 제 1 에이전트 어플리케이션에서 상기 제 1 디바이스로부터 서비스 응답 메시지를 수신하기 위한 적어도 하나의 명령;
    상기 피어-투-피어 네트워크를 통해서 상기 서비스 응답 메시지를 상기 제 1 에이전트 어플리케이션으로부터 상기 제 2 네트워크 내의 상기 제 2 에이전트 어플리케이션으로 송신하기 위한 적어도 하나의 명령; 및
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스로 제공하기 위한 적어도 하나의 명령
    을 포함하는, 컴퓨터 프로그램 제품.
  34. 제 33 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    상기 제 2 에이전트 어플리케이션에서 상기 제 1 에이전트 어플리케이션으로부터의 상기 제 1 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 수신하는기 위한 적어도 하나의 명령; 및
    상기 서비스 응답 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스로 제공하기 전에, 상기 제 1 네트워크에 대한 상기 IP 어드레스를 포함하는 URL (universal resource locator) 에 상기 서비스 응답 메시지 내의 URL 을 매핑하기 위한 적어도 하나의 명령을 더 포함하는, 컴퓨터 프로그램 제품.
  35. 제 33 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 네트워크에 대한 인터넷 프로토콜 (IP) 어드레스를 획득하기 위한 적어도 하나의 명령;
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하기 위한 적어도 하나의 명령;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키기 위한 적어도 하나의 명령; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하기 위한 적어도 하나의 명령을 더 포함하고,
    상기 제어 메시지는, 상기 제 2 네트워크에 대한 상기 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하게 하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하게 하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제 2 네트워크에 대한 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로 푸싱하게 하도록
    포매팅된, 컴퓨터 프로그램 제품.
  36. 제 31 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    상기 제 2 에이전트 어플리케이션에서 상기 제 2 디바이스로부터의 URL 액세스 메시지를 수신하기 위한 적어도 하나의 명령;
    상기 URL 액세스 메시지를 제어 메시지로 변환시키기 위한 적어도 하나의 명령; 및
    상기 제어 메시지를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 1 에이전트 어플리케이션으로 송신하기 위한 적어도 하나의 명령을 더 포함하고,
    상기 제어 메시지는, 인터넷에 위치된 리라우팅 서버에 대한 IP 어드레스를 포함하고, 상기 제 1 에이전트 어플리케이션으로 하여금:
    상기 URL 과 관련된 상기 제 1 디바이스 내의 미디어 파일에 액세스하고;
    상기 제 1 디바이스로부터 미디어 데이터를 수신하고;
    상기 피어-투-피어 네트워크를 통해서 미디어 데이터를 통과시키지 않고 상기 제어 메시지에 포함된 상기 IP 어드레스를 이용하여 상기 미디어 데이터를 상기 리라우팅 서버에 푸싱하도록
    포매팅되고,
    상기 리라우팅 서버는 버퍼에서 상기 미디어 데이터를 수신하도록 구성되고; 그리고
    상기 방법은:
    상기 리라우팅 서버 내의 상기 버퍼에 액세스하여 상기 제 2 에이전트 어플리케이션에 미디어 데이터를 송신하는 것; 및
    상기 미디어 데이터를 상기 제 2 에이전트 어플리케이션으로부터 상기 제 2 디바이스에 제공하는 것을 더 포함하는, 컴퓨터 프로그램 제품.
  37. 제 32 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    데이터의 소스에 액세스하여 데이터 파일을 획득하기 위한 적어도 하나의 명령;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하기 위한 적어도 하나의 명령;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하기 위한 적어도 하나의 명령;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하기 위한 적어도 하나의 명령; 및
    상기 제 1 디바이스 상에 상기 디지털 포토그래프 데이터를 저장하기 위한 적어도 하나의 명령을 더 포함하고,
    상기 제 2 디바이스는 디지털 포토 프레임 디바이스인, 컴퓨터 프로그램 제품.
  38. 제 37 항에 있어서,
    상기 디지털 포토그래프 데이터 포맷은 JPEG 포맷인, 컴퓨터 프로그램 제품.
  39. 프로세서 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 프로세서 판독가능 매체는:
    데이터의 소스에 액세스하여 데이터 파일을 획득하기 위한 적어도 하나의 명령;
    상기 획득된 데이터 파일을 디스플레이에 적절한 포맷으로 포매팅하기 위한 적어도 하나의 명령;
    상기 포매팅된 획득된 데이터 파일을 메모리-내 비트맵으로서 렌더링하기 위한 적어도 하나의 명령;
    상기 비트맵을 디지털 포토그래프 데이터 포맷으로 변형하기 위한 적어도 하나의 명령; 및
    상기 디지털 포토그래프 데이터를 디스플레이를 위한 디지털 포토 프레임에 제공하기 위한 적어도 하나의 명령을 포함하는, 컴퓨터 프로그램 제품.
  40. 제 39 항에 있어서,
    상기 프로세서 판독가능 매체에서는,
    제 2 네트워크상의 디바이스에 의해 액세스될 수 있는 디바이스에 상기 디지털 포토그래프 데이터를 저장하기 위한 적어도 하나의 명령을 더 포함하는, 컴퓨터 프로그램 제품.
KR1020127000180A 2009-06-03 2010-06-03 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법 KR101411145B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US18376109P 2009-06-03 2009-06-03
US61/183,761 2009-06-03
US12/642,853 2009-12-20
US12/642,853 US8516071B2 (en) 2009-06-03 2009-12-20 Systems and methods for creating virtual universal plug-and-play systems
PCT/US2010/037250 WO2010141714A2 (en) 2009-06-03 2010-06-03 Systems and methods for creating virtual universal plug-and-play systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013572A Division KR101614194B1 (ko) 2009-06-03 2010-06-03 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20120027461A true KR20120027461A (ko) 2012-03-21
KR101411145B1 KR101411145B1 (ko) 2014-06-23

Family

ID=42797146

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137013572A KR101614194B1 (ko) 2009-06-03 2010-06-03 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법
KR1020127000180A KR101411145B1 (ko) 2009-06-03 2010-06-03 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137013572A KR101614194B1 (ko) 2009-06-03 2010-06-03 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법

Country Status (15)

Country Link
US (2) US8516071B2 (ko)
EP (1) EP2438745B1 (ko)
JP (1) JP5656983B2 (ko)
KR (2) KR101614194B1 (ko)
CN (2) CN102461124B (ko)
AU (1) AU2010256543A1 (ko)
BR (1) BRPI1010864A2 (ko)
CA (1) CA2762857A1 (ko)
ES (1) ES2519172T3 (ko)
HK (1) HK1167761A1 (ko)
IL (1) IL216379A0 (ko)
RU (1) RU2011154353A (ko)
SG (1) SG175985A1 (ko)
WO (1) WO2010141714A2 (ko)
ZA (1) ZA201109329B (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516071B2 (en) * 2009-06-03 2013-08-20 Qualcomm Incorporated Systems and methods for creating virtual universal plug-and-play systems
CN101938505B (zh) * 2009-07-01 2013-01-30 华为技术有限公司 一种P2P流媒体数据分发的方法、系统和proxy节点
US20110082902A1 (en) * 2009-10-01 2011-04-07 Apple Inc. Systems and methods for providing media pools in a communications network
US8646057B2 (en) * 2010-03-10 2014-02-04 Verizon Patent And Licensing Inc. Authentication and authorization of user and access to network resources using openid
EP2381372A1 (en) * 2010-04-23 2011-10-26 Research In Motion Limited Visual shuffling of media icons
US9032047B1 (en) * 2010-05-24 2015-05-12 Troy Gomez Video sharing network
KR20120007433A (ko) * 2010-07-14 2012-01-20 삼성전자주식회사 컴퓨터 장치 간의 고화질 비디오 텔레포니를 설정하는 장치 및 방법
KR101701158B1 (ko) * 2010-12-15 2017-02-01 주식회사 케이티 홈 네트워크의 장치에 대한 원격 접속 제공 방법 및 시스템
US9451331B2 (en) 2011-01-15 2016-09-20 Lattice Semiconductor Corporation Proxy device operation in command and control network
US8856875B2 (en) * 2011-07-25 2014-10-07 Intel Corporation Software delivery models
US10289267B2 (en) * 2011-09-09 2019-05-14 Facebook, Inc. Platform for third-party supplied calls-to-action
US9098314B2 (en) * 2011-09-20 2015-08-04 Sap Se Systems and methods for web based application modeling and generation
US8583955B2 (en) * 2011-10-04 2013-11-12 Advanergy, Inc. Battery management system and method
US8880561B2 (en) * 2011-12-21 2014-11-04 Sap Se Computer system and computerized method for storing business objects and business mapping data
JP6007697B2 (ja) * 2012-09-19 2016-10-12 沖電気工業株式会社 キャッシュ装置、キャッシュプログラム及びコンテンツ配信システム
CN103795768B (zh) * 2012-11-05 2019-03-01 华为技术有限公司 远程访问的方法及设备
US9319869B2 (en) 2013-02-11 2016-04-19 Qualcomm Incorporated Method for storing and sharing a history of interactions between devices in a network
CN104079544A (zh) * 2013-03-29 2014-10-01 联想(北京)有限公司 服务发布方法及装置、服务发现方法及装置
US9578117B2 (en) * 2013-09-20 2017-02-21 Amazon Technologies, Inc. Service discovery using a network
CN104519077A (zh) * 2013-09-26 2015-04-15 中兴通讯股份有限公司 多媒体分享方法、注册方法、服务器及代理服务器
US9774709B2 (en) * 2013-11-18 2017-09-26 Cable Television Laboratories, Inc. Service discovery
IL231750A (en) * 2014-03-27 2016-10-31 Brillianetor Ltd An artificial social networking system and method
US9628485B2 (en) * 2014-08-28 2017-04-18 At&T Intellectual Property I, L.P. Facilitating peering between devices in wireless communication networks
US10708967B2 (en) * 2015-12-28 2020-07-07 Koninkilijke KPN N.V. Establishment of a connection between two local devices connected to different networks
WO2017114788A1 (en) 2015-12-28 2017-07-06 Koninklijke Kpn N.V. Method and system for controlling access for a user equipment to a local device
CN105634810B (zh) * 2015-12-29 2019-12-13 Tcl集团股份有限公司 一种访问通用即插即用设备的方法和系统、访问设备
US10572202B2 (en) * 2016-10-07 2020-02-25 Ricoh Company, Ltd. Network communication system, communication control apparatus, and recording medium
US10776174B2 (en) * 2018-05-24 2020-09-15 Amazon Technologies, Inc. Managing hosted resources across different virtualization platforms
JP6614280B1 (ja) * 2018-06-05 2019-12-04 富士通株式会社 通信装置および通信方法
CN110798328A (zh) * 2018-08-01 2020-02-14 珠海格力电器股份有限公司 无线网络芯片、电器设备、配置处理方法及装置
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
CN111510499B (zh) * 2020-04-20 2023-06-13 深圳市盟天科技有限公司 一种通讯方法、装置、设备及存储介质
CN114726850B (zh) * 2022-04-02 2024-01-05 福达新创通讯科技(厦门)有限公司 一种vnc远程访问的方法、装置及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0129174D0 (en) 2001-12-06 2002-01-23 Koninl Philips Electronics Nv Havi-upnp bridging
US7016361B2 (en) * 2002-03-02 2006-03-21 Toshiba America Information Systems, Inc. Virtual switch in a wide area network
US20050012829A1 (en) * 2003-07-17 2005-01-20 Atsushi Tashiro Resolution selector for image capturing system
EP1562343A1 (fr) * 2004-02-09 2005-08-10 France Telecom Procédé et système de gestion d'autorisation d'accès d'un utilisateur au niveau d'un domaine administratif local lors d'une connexion de l'utilisateur à un réseau IP
US7720024B2 (en) * 2004-03-31 2010-05-18 Qualcomm Incorporated Method and apparatus for obtaining server information in a wireless network
JP2005293352A (ja) * 2004-04-01 2005-10-20 Seiko Epson Corp 制御装置、制御方法及び制御プログラム
JP4154364B2 (ja) * 2004-04-22 2008-09-24 キヤノン株式会社 通知方法
US8413198B2 (en) * 2004-11-12 2013-04-02 Intel Corporation System and method for the controlled on-demand distribution of content via a centralized server and a peer-to-peer network
KR100678897B1 (ko) * 2004-11-23 2007-02-07 삼성전자주식회사 홈 네트워크 장치 간의 보안 연결을 위한 시스템 및 방법
US7602984B2 (en) 2005-09-28 2009-10-13 Novell, Inc. Adaptive method and system for encoding digital images for the internet
US7630714B2 (en) * 2005-11-08 2009-12-08 Research In Motion Limited System and methods for data communications in a wireless communication system
US7660321B2 (en) * 2006-03-01 2010-02-09 Alcatel-Lucent Usa Inc. System and method for prioritizing session initiation protocol messages
US7921194B2 (en) 2006-03-09 2011-04-05 Samsung Electronics Co., Ltd. Method and system for remote access to universal plug and play devices
US20070286100A1 (en) * 2006-06-09 2007-12-13 Mika Juhani Saaranen Local discovery of mobile network services
GB2445791A (en) 2007-01-17 2008-07-23 Electricpocket Ltd Interconnection of Universal Plug and Play Networks using eXtensible Messaging and Presence Protocol Streams
WO2008136719A1 (en) * 2007-05-08 2008-11-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for security support for universal plug and play system
US8516071B2 (en) * 2009-06-03 2013-08-20 Qualcomm Incorporated Systems and methods for creating virtual universal plug-and-play systems

Also Published As

Publication number Publication date
EP2438745B1 (en) 2014-07-23
KR101614194B1 (ko) 2016-04-20
KR20130083917A (ko) 2013-07-23
HK1167761A1 (en) 2012-12-07
BRPI1010864A2 (pt) 2018-06-12
AU2010256543A1 (en) 2011-12-15
IL216379A0 (en) 2012-01-31
CN105208118A (zh) 2015-12-30
ES2519172T3 (es) 2014-11-06
US20130304922A1 (en) 2013-11-14
WO2010141714A2 (en) 2010-12-09
CN102461124B (zh) 2015-11-25
US8516071B2 (en) 2013-08-20
JP5656983B2 (ja) 2015-01-21
EP2438745A2 (en) 2012-04-11
CA2762857A1 (en) 2010-12-09
RU2011154353A (ru) 2013-07-20
US20100312851A1 (en) 2010-12-09
WO2010141714A3 (en) 2011-02-24
SG175985A1 (en) 2011-12-29
JP2012529125A (ja) 2012-11-15
KR101411145B1 (ko) 2014-06-23
CN102461124A (zh) 2012-05-16
ZA201109329B (en) 2012-08-29

Similar Documents

Publication Publication Date Title
KR101411145B1 (ko) 가상 유니버셜 플러그-앤-플레이 시스템을 생성하는 시스템 및 방법
US10477259B2 (en) System and method for making a content item, resident or accessible on one resource, available through another
CN101764726B (zh) 增强的内容共享框架
JP4975831B2 (ja) 携帯機器のためのリモート・データ・アクセス技術
CA2785048C (en) Systems and methods for accessing and controlling media stored remotely
US8543637B2 (en) Distributed web publishing
US20100274858A1 (en) Mid-service sharing
KR102304086B1 (ko) 대화형 콘텐츠를 제공하는 전자 장치, 서버 및 이를 위한 방법
US8499088B1 (en) Parallel multiple format downloads
JP2012526315A (ja) パーソナライズされた仮想環境を提供する方法および装置
TW201129043A (en) Method and apparatus for providing shared services
US20100222085A1 (en) Methods and arrangements for creating a virtual relationship
CN104871481A (zh) 用于本地网络设备的基于云的功率管理的方法和装置
CN109672749B (zh) 异构系统互通可互通的应用的方法和装置
JP2008134914A (ja) 複合サービス提供システムおよび方法
AU2014233547B2 (en) Systems and methods for accessing and controlling media stored remotely
US20130132478A1 (en) Establishing Communication Among Parties Based on Location
Vartiainen Designing a photo sharing service for mobile: a phone number as the key enabler
Blum et al. Mediacast for mobile communities: When the web and telecommunications converge

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
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: 20170330

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee