KR100621092B1 - P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 - Google Patents

P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 Download PDF

Info

Publication number
KR100621092B1
KR100621092B1 KR1020030084953A KR20030084953A KR100621092B1 KR 100621092 B1 KR100621092 B1 KR 100621092B1 KR 1020030084953 A KR1020030084953 A KR 1020030084953A KR 20030084953 A KR20030084953 A KR 20030084953A KR 100621092 B1 KR100621092 B1 KR 100621092B1
Authority
KR
South Korea
Prior art keywords
peer
application
specific application
command
server
Prior art date
Application number
KR1020030084953A
Other languages
English (en)
Other versions
KR20050051200A (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 삼성전자주식회사
Priority to KR1020030084953A priority Critical patent/KR100621092B1/ko
Priority to US10/975,536 priority patent/US20050120073A1/en
Priority to EP04256938A priority patent/EP1536612A1/en
Priority to JP2004335167A priority patent/JP2005158068A/ja
Priority to CNA2004100914803A priority patent/CN1622549A/zh
Publication of KR20050051200A publication Critical patent/KR20050051200A/ko
Application granted granted Critical
Publication of KR100621092B1 publication Critical patent/KR100621092B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/1063Discovery through centralising entities
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Abstract

본 발명은 P2P(Peer-to-Peer) 방식을 이용하여 피어(Peer)들 끼리 각자가 탑재하고 있는 어플리케이션을 라이센스(license)에 저촉됨이 없이 다른 피어에서 사용할 수 있게 하고, 상호간의 유휴 리소스를 효율적으로 이용할 수 있게 하는 방법 및 장치에 관한 것이다.
본 발명에 따른 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법은 제1 피어가 공유하고자 하는 어플리케이션을 등록하는 제1단계와, 제2 피어로부터 수신한 어플리케이션 검색 명령에 포함되는 검색 조건을 상기 등록된 어플리케이션 파일이 만족하는지 판단한 결과에 따라 제2 피어에 디스크립션 파일을 송신하는 제2단계와, 검색 조건에 맞는 어플리케이션에 관한 서비스를 실행하기 위하여 제2 피어와 소정의 프로토콜로 연결을 하는 제3단계와, 어플리케이션에 관한 원격 디스플레이 서비스를 제2 피어에 제공하는 세션을 실행하는 제4단계로 이루어진다.
본 발명에 따르면 서버의 유휴 리소스를 공유함으로써 클라이언트가 현재 리소스 환경에서 수행할 수 없는 어플리케이션을 사용할 수 있는 장점이 있다.
P2P(peer-to-peer), 피어(peer), 운영 체계, 어플리케이션, 미들웨어

Description

P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법 및 장치{Method and apparatus for sharing application using P2P}
도 1a는 종래의 P2P 파일 공유 시스템 중 Pure 형을 나타낸 구성도.
도 1b는 종래의 P2P 파일 공유 시스템 중 Hybrid 형을 나타낸 구성도.
도 2는 종래의'Grid computing', 'SETI@home'의 시스템 구성도.
도 3은 종래의 JXTA 소프트웨어의 아키텍처를 나타낸 블록도.
도 4는 종래의 'VNC'의 동작 구성을 나타낸 도면.
도 5는 종래의 'Gnutella' 프로토콜의 동작 과정을 나타낸 흐름도.
도 6은 본 발명에 따른 P2P 공유 시스템의 서버 구성도.
도 7은 본 발명에 따른 P2P 공유 시스템의 클라이언트 구성도.
도 8은 본 발명에 따른 방법의 전체 동작을 나타낸 흐름도.
도 9는 도 8에서 세션실행 과정 중 서버에 의하여 종료되는 경우를 나타낸 흐름도.
본 발명은 어플리케이션을 공유하는 방법에 관한 것으로서, 보다 상세하게는 P2P(Peer-to-Peer) 방식을 이용하여 피어(Peer)들 끼리 각자가 탑재하고 있는 어플리케이션을 라이센스(license)에 저촉됨이 없이 다른 피어에서 사용할 수 있게 하고, 상호간의 유휴 리소스를 효율적으로 이용할 수 있는 방법 및 장치에 관한 것이다.
인터넷의 일반적인 데이터 모델인 클라이언트/서버(Client/Server) 모델은 데이터의 생산자가 소수의 서버이고 이 소수의 서버에 다수의 클라이언트가 접근하여 사용하는 방식이다. 그러나 인터넷 사용량이 폭발적으로 증가하고 인터넷 사용에 대한 익명성 보장됨에 따라, 그리고 자유로운 데이터의 교환 및 복제 등에 대한 사용자들의 요구가 증가함에 따라 P2P를 기반으로 한 다양한 어플리케이션이 등장하게 되었다. 대표적인 것으로는 그누텔라(Gnutella), 냅스터(Napster) 등과 같은 파일 공유 어플리케이션이 있다. 이들 파일 공유 어플리케이션들은 특정 서버 없이 누구나 서버가 되기도 하고 클라이언트가 되기도 하는 피어(peer)들로 구성되어 있다. 이와 같은 피어는 P2P 프로토콜로 구현된 네트워크에 참여할 수 있는 디바이스들을 의미하는데, 각 피어는 독립적, 비동기적으로 작동이 가능하며 피어 ID(peer indentification)에 의해서 구분된다. 피어와 또 다른 피어가 상호 서비스를 연동하기 위해서 직접 연결될 필요는 없고, 중간에 다른 피어들을 라우팅(routing)을 위한 매개체로 삼아 원하는 피어와 통신하거나 서비스를 제공하고 제공받을 수 있다.
그누텔라의 경우는 도 1a에 도시된 바와 같이 순수한 형태의 P2P 모델로 구성된다. 이 때 피어들은 데이터를 찾기 위해 실시간으로 노드(node)를 검색하며, 검색의 결과로 데이터를 가지고 있는 노드를 발견하면 커넥션을 맺고 데이터를 교환한다. 한편 냅스터의 경우, 도 1b에서와 같이 데이터를 주고 받는 주체는 여전히 피어이지만, 이들에 대한 검색은 별도의 검색서버를 통하여 이루어진다. 그누텔라에 관한 보다 자세한 내용은 "http://www.gnutella.com"를 참조하여 알 수 있다.
파일공유 외에도 'Grid computing'("http://www.ibm.com/grid"참조), 'SETI@home'("http://setiathome.ssl.berkeley.edu"참조)과 같이 컴퓨터의 리소스를 공유하는 프로젝트(project)들도 있다. 그러나 이러한 프로젝트들은 도 1a 또는 도 1b에서처럼 피어들 간에 상호 리소스를 공유하는 것이 아니라, 도 2에서처럼 처리시에 리소스를 크게 요구하는 수학 연산 등에 필요한 원 데이터(raw data)를 분할하여 피어들에게 할당한 다음 각각의 피어에서 할당된 데이터를 처리한 후, 마스터가 상기 처리된 데이터(processed data)를 다시 취합하는 구조를 갖고 있다.
도 3은 대표적인 P2P 프로토콜인 JXTA의 소프트웨어 아키텍처를 나타내고 있다. 웹페이지 "http://www.jxta.org/"를 참조하면 JXTA에 대한 보다 자세한 내용을 찾아볼 수 있다. 이러한 JXTA는 OS(operating system), 네트워크, 프로그래밍 언어(programming language)에 대하여 독립적으로 P2P 어플리케이션을 실행할 수 있도록 만든 범용 플랫폼(flatform)이다. 이러한 JXTA를 비롯한 일반적인 P2P 파일 공유 시스템은 기존의 TCP/IP(Transmission Control Protocol/Internet Protocol) 계열의 인터넷을 기반으로 하고 있고, 여기에 코어(core)에 해당하는 P2P 프로토콜 스택(P2P protocol stack)이 올라간다. P2P 프로토콜 스택을 공통적으로 크게 나누어 보면, 피어들 간에 그룹 혹은 커뮤니티를 형성하기 위해서 서로를 발견하고 모 니터링 하는 디스커버리(discovery) 부분, 원하는 서비스나 데이터를 찾는 쿼리(query) 부분, 및 서비스와 데이터를 제공해주는 피어와 연결(connection)을 형성하는 부분으로 나누어 질 수 있다. 이와 같은 P2P 프로토콜 스택 위에 이것을 이용하여 파일 공유와 같은 어플리케이션이 동작한다.
이러한 P2P 공유 모델은 그 동작 방식에 있어 다소 차이가 있다. 도 5는 통상적으로 사용되는 P2P모델의 어플리케이션인 그누텔라(Gnutella) 파일공유 어플리케이션의 동작방식을 나타낸 것인데, 그누텔라는 도1a에서와 같이 순수한 피어들의 집합으로 이루어진 노드 형태를 기반으로 하는 시스템이다. 이러한 그누텔라의 파일공유 어플리케이션 동작을 살펴보면, 기존에 피어1(10) 및 피어3(30)가 참여해 있는 네트워크에 피어2(20)이 새로이 참여(join)한다. 이때 주변에 어떤 피어들이 있는지 확인하기 위해 노드를 발견(node discovery)하기 위한 패킷(packet)인 'Ping'패킷을 브로드캐스트(broadcast)하면(S510), 주변의 피어들은 이에 응답하는 'Pong'패킷을 피어2(20)에게 보낸다(S520). 이러한 과정을 통하여, 피어2(20)는 주변에 피어1(10)과 피어3(30)가 존재한다는 것을 알게 된다. 이후 원하는 파일을 검색하는 'Query'패킷을 브로드캐스트 하면(S530), 주변 피어들 중에서 검색 조건에 해당하는 파일을 가지고 있는 피어가 'Query hit'패킷으로 응답을 하게 된다(S540). 이후에 피어2(20)는 Query hit 패킷으로 응답을 한 피어들 중에 하나의 피어를 선택하여서 이와 연결을 하고(S550) GET 또는 PUSH 방식으로 원하는 파일을 수신한다(S560). 일반적으로 파일을 수신할 때는 GET 명령을 이용하지만, 피어2(20)가 방화벽 내에 존재하는 경우와 같이 특수한 조건에서는 파일을 가지고 있 는 피어2(20)가 PUSH하는 방식을 이용하기도 한다. 하나의 완성된 어플리케이션으로 동작하기 위해서는 이러한 P2P 프로토콜 스택 외에도 보안(authentication), 세션(session), 사용자 인터페이스(GUI)와 같은 요소(component)들과 결합하여야 한다.
상기 P2P 모델 외에, 본 발명과 관련된 기술로서 원격 디스플레이 시스템(Remote display system)이 있는데, 대표적인 기술로는 'X 윈도 시스템(X Window System)','VNC(Virtual Network Computing)'등이 있다. X 윈도 시스템에 관한 상세한 정보는 웹페이지 "http://www.x.org "를, VNC에 관한 상세한 정보는 웹페이지 "http://www.uk.research.att.com/vnc/"를 통하여 알 수 있다. 이와 같은 기술들은 도 4에 도시된 바와 같이, 원격지 뷰어(remote viewer)에서 키보드, 마우스 등의 입력 장치를 이용하여 서버에 접속하고 각종 명령을 전달하면, 서버가 상기 명령에 따라 어플리케이션을 실행한 후, 수행된 결과인 디스플레이 정보를 다시 원격지 뷰어에 전달하는 방식이다. 이러한 원격지 뷰어 역할을 하는 클라이언트는 서버의 프로그램을 다운 받아서 실행하는 것이 아니라, 모든 동작 실행은 서버에서 일어나고 단지 서버에서 실행된 결과를 보여주기만 하기 때문에 소위, 씬 클라이언트(thin client)라고 할 수 있다.
VNC의 경우, 대부분의 OS에서 실행될 수 있다. 다시 말해서 OS간의 상호 운용성(interoperability)를 만족한다. 예를 들어 리눅스 시스템에서 윈도우즈 서버에 접속하여 프로그램을 실행시키고 리눅스 시스템에서 출력화면을 볼 수 있으며, 반대로 윈도우 시스템에서도 리눅스 서버에 접속하여 프로그램을 실행시키고 출력 화면을 볼 수 있다. 또한 PDA와 같은 이동 기기(mobile device)에서도 프로토콜을 만족하는 뷰어(viewer)만 있다면 서버의 프로그램을 수행할 수 있다.
도 4를 참조하여 VNC의 동작을 살펴보면, VNC는 서버가 클라이언트측 뷰어에 디스플레이 되는 프레임버퍼(frame buffer)를 갱신하는 원리로 동작한다. 이런 의미에서 VNC를 remote framebuffer(RFB)라고도 부른다. 이 때 디스플레이 되는 픽셀의 정보는 마치 비디오 데이터를 전송할 때처럼 다양한 방식으로 그리고 상황에 적합한(adaptive) 방식으로 전송된다. 구체적으로 보면, 클라이언트 즉 VNC 뷰어가 키보드, 마우스 등의 입력장치를 이용하여 명령을 전달하면 VNC 서버는 상기 명령에 따라 자신에 내장된 어플리케이션을 실행하고 그 결과를 VNC 뷰어에 전달하는 방식으로 되어 있다. 상기 VNC 뷰어와 VNC 서버 간에 통신은 VNC 프로토콜을 통하여, 네트워크의 상황에 따라 다양한 퀄리티(quality)로 이루어진다.
상기 P2P 공유 모델과 원격 디스플레이 시스템은 이하와 같은 문제점 내지 불편함을 안고 있다. P2P방식은 다수의 피어들이 커뮤니티를 형성하여 서로의 정보와 리소스를 공유하는 방식이지만, 종래의 P2P방식에서의 어플리케이션들은 대부분 파일 공유만에 초점이 맞춰져 있었다. 따라서, 정보를 공유하는 것이 음악, 동영상과 같은 파일에만 국한되어 있어 어플리케이션 자체를 공유하고자 하는 요구에 부합하지 못한다. 그리고, 리소스를 공유하는 몇몇 어플리케이션이 존재하기는 하지만, 이는 파일공유와 같이 순수한 피어들의 자율적인 공유가 아니라 'Grid computing'이나 'SETI@home'과 같이 병렬 컴퓨팅의 방식으로 사용되고 있을 뿐이었다.
한편, 원격 디스플레이 시스템은 내지 원격 억세스 시스템(remote access system)은 클라이언트가 잘 알려진 서버에 접속을 하여 하나의 유저(user)로서 서버를 사용하는 방식으로서, 단순히 서버에 접속하여 파일을 내려 받는 것과 다르지 않으며 서버의 프로그램을 다수의 클라이언트들이 사용하는 데 불과하다. 따라서 이는 피어들 간의 순수한 공유 형태가 아니기 때문에 클라이언트/서버 모델이 갖는 문제점들을 그대로 갖게 된다. 즉 클라이언트는 계정이 존재하는 서버에만 접속할 수 있고, 반드시 서버에 사용하고자 하는 어플리케이션이 존재하여야만 한다. 따라서 여전히 라이센스가 허락된 어플리케이션만 수행할 수 있다. 뿐만 아니라 많은 클라이언트들의 접속이 몇몇 서버에만 집중되기 때문에 서버는 더욱 더 강력한 컴퓨팅 파워가 요구되는 반면에, 갈수록 늘어나는 클라이언트들의 컴퓨팅 파워는 효율적으로 사용되지 못하는 문제가 있다.
이와 같이, 종래의 기술들로는 피어들이 가지고 있는 어플리케이션들을 커뮤니티의 모든 클라이언트들이 공유할 수 있도록 하는 방법이 없으며, 피어들이 자신의 유휴 리소스를 다른 피어들에게 제공할 수 있는 방법 또한 존재하지 않는다.
본 발명은 상기와 같은 문제점을 고려하여 창안된 것으로, 오늘날 인터넷 환경에서 관심이 집중되고 있는 P2P방식을 이용하여 피어 간의 어플리케이션과 리소스를 효율적으로 공유하는 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 어플리케이션의 공유를 통하여 별도의 설치과정 없이 다른 플랫폼(flatform)의 어플리케이션을 사용할 수 있도록 하는 데 그 목적이 있다.
그리고, 본 발명은 PC의 유휴 리소스를 공유함으로써 현재의 리소스나 환경으로 수행할 수 없는 어플리케이션을 사용할 수 있도록 하는 데 그 목적이 있다.
상기한 목적을 달성하기 위하여 본 발명에 따른 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법은, 서버 기능을 가지는 제1 피어가 공유하고자 하는 어플리케이션을 등록하는 제1단계; 클라이이언트 기능을 가지는 제2 피어로부터 수신한 어플리케이션 검색 명령에 포함되는 검색 조건을 상기 등록된 어플리케이션 파일이 만족하는지 판단하여, 상기 판단 결과에 따라 상기 제2 피어에 상기 디스크립션 파일을 송신하는 제2단계; 상기 검색 조건에 맞는 어플리케이션에 관한 서비스를 실행하기 위하여 상기 제2 피어와 소정의 프로토콜로 연결을 하는 제3단계; 및 상기 어플리케이션에 관한 원격 디스플레이 서비스를 상기 제2 피어에 제공하는 세션을 실행하는 제4단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법은, 클라이언트 기능을 가지는 피어(a)의 사용자가 서비스 받고자 하는 어플리케이션의 검색 조건을 입력하는 제1단계; 상기 검색 조건을 이용하여 검색 메시지를 구성한 뒤 주변 피어에게 검색 명령을 송신하는 제2단계; 상기 주변 피어 중 상기 검색 조건이 만족되는 어플리케이션을 등록하고 있는 피어로부터 상기 어플리케이션에 관한 디스크립션 파일을 수신하는 제3단계; 상기 디스크립션 파일을 토대로 상기 어플리케이션을 등록하고 있는 피어 중에서 상기 피어(a)의 사용자가 선택하는 피어(b)와 소정의 프로토콜로 연결을 하는 제4단계; 및 상기 어플리케이션에 관 한 원격 디스플레이 서비스를 상기 피어(b)로부터 제공받는 세션을 실행하는 제5단계를 포함하는 것을 특징으로 한다.
그리고, 본 발명에 따른 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버는 사용자의 입력에 따라 공유하고자 하는 어플리케이션을 등록하고 전체 어플리케이션 또는 개별 어플리케이션에 대한 서비스 정책을 설정하는 등록 모듈; 서버의 유휴 리소스를 측정하고 상기 등록된 어플리케이션이 평균적으로 사용하는 리소스의 양을 점검하는 리소스 점검 모듈; 상기 등록 모듈 및 상기 리소스 점검 모듈에 근거하여 현재 서비스 가능한 어플리케이션에 대한 정보와 상기 어플리케이션을 서비스하는 환경에 대한 정보를 담은 디스크립션 파일을 생성하는 디스크립션 모듈; 및 클라이언트에게 원격 디스플레이 서비스를 제공하는 세션을 유지하거나 종료하는 세션 모듈을 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트는, 서비스를 받고자 하는 어플리케이션에 대한 검색 조건을 클라이언트의 사용자로부터 입력받아 검색 조건을 만족하는 어플리케이션을 찾기 위한 검색 메시지를 작성하고 이를 주변 피어에 전송하는 검색 모듈; 및 상기 주변 피어 중 상기 검색 조건을 만족하는 어플리케이션을 등록하고 있는 서버로부터 상기 어플리케이션에 관한 원격 디스플레이 서비스를 제공받는 세션을 유지하거나 종료하는 세션 모듈을 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알여주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명이 제안하는 어플리케이션 공유 시스템(Application Sharing System)에는, 특정 서버나 클라이언트가 따로 존재하는 것이 아니라 하나의 피어는 클라이언트로서 다른 피어의 어플리케이션을 사용하기도 하고 그 피어가 자신의 어플리케이션과 리소스를 다른 피어에게 공급하는 서버의 역할도 한다. 따라서 서버와 클라이언트 파트가 하나의 프로그램으로 동작한다. 그러나, 모든 피어가 반드시 서버 및 클라이언트 기능을 동시에 갖추어야 하는 것은 아니며, 경우에 따라서는 서버로만 동작하는 피어와 클라이언트로만 동작하는 피어가 일부 포함되어 있을 수도 있다. 따라서, 기능상의 측면에서 구성요소를 서버 측과 클라이언트 측으로 나눌 필요가 있다. 본 발명은 피어들 간의 커뮤니티 형성과 서비스 받고자 하는 어플리케이션에 대한 검색 프로토콜로는 종래의 P2P 프로토콜 스택을 사용하고, 원격지의 어플리케이션 수행과 제어는 종래의 원격 디스플레이 시스템의 서버/뷰어 구조를 이용한다.
도 6은 본 발명에 따른 어플리케이션 공유 시스템의 서버 측의 구성을 나타낸 것이다. 서버는 피어들과 공유할 어플리케이션을 등록하고 컴퓨터가 P2P 네트워 크에 물려있는 동안 현재 가용한 시스템 리소스를 모니터링 한다. 또 현재 등록된 어플리케이션과 모니터 된 시스템 리소스를 근거로 서버 자신에 대한 디스크립션(description)을 작성하며, 이 디스크립션에 근거하여 다른 피어로부터 들어오는 검색(search) 메시지에 응답한다. P2P 커뮤니티를 형성하고 있는 동안은 서버 파트는 데몬(daemon) 형태로 수행되면서 다른 피어들로부터 검색이나 어플리케이션 사용 요청이 올 경우를 위하여 대기한다. 만약 다른 피어로부터 어플리케이션 사용 요청이 들어오면 연결(connection)을 하고 적절한 협상(negotiation)을 거친 후 서버인 피어가 클라이언트인 피어에 원격 디스플레이 서비스를 제공하는 세션(session)을 시작한다. 세션이 시작되면 이때부터 해당 어플리케이션을 원격지의 다른 피어가 컨트롤 할 수 있도록 원격 디스플레이 시스템(remote display system)을 구동한다.
서버 측 피어의 구성을 구체적으로 살펴보면, 최하위에 시스템 구동을 위한 운영 체계(OS; 660)가 존재하고 최상위에 사용자가 이용하고자 하는 어플리케이션(application; 610)이 존재한다. 운영체계(660) 및 어플리케이션(610) 사이에는 본 발명에 따라 P2P 방식으로 컴퓨터 리소스를 공유하기 위한 미들웨어(620)이 존재한다. 그리고 상기 미들웨어(620)에는 다수의 피어들을 발견하여 커뮤니티를 형성하고 피어들간의 데이터 송수신을 가능하게 하는 P2P 프로토콜 스택(640), 및 원격지 뷰어로부터 전달된 명령에 따라 어플리케이션을 실행하고 그 실행 결과를 원격지 뷰어에 전달하는 원격 디스플레이 시스템(650), 그리고 이들의 상위층에 본 발명에서 추가한 어플리케이션 공유 시스템 모듈(630)이 존재한 다.
상기 어플리케이션 공유 시스템 모듈(630)은 다수의 하부 모듈을 포함하는데 이하에서는 이에 관하여 살펴본다. 컴퓨터의 모든 어플리케이션을 다른 피어들과 공유하는 것이 아니기 때문에 공유하고자 하는 어플리케이션을 사용자가 직접 등록하여야 한다. 이때, 사용자는 등록하는 어플리케이션에 대한 서비스 정책을 설정할 수 있다. 만일 여기서 설정된 기준에 시스템의 상태가 미치지 못한다면 해당 어플리케이션에 대한 서비스를 중단해야 한다. 이러한 서비스 정책의 예로는 'CPU사용량이 최근 10분 동안 평균 50%이상 되었을 때 해당 어플리케이션에 대한 서비스를 할 수 없다' 와 같은 것이 있다. 이와 같이 등록 모듈(registration module; 632)은 사용자의 입력에 따라 공유하고자 하는 어플리케이션을 등록하고 사용자 입력 또는 리소스 점검 모듈(resource monitoring modue; 633)에 의하여 관측된 리소스 통계치에 따라 전체 혹은 개별 어플리케이션에 대한 서비스 정책을 설정하는 역할을 담당한다.
서버 역할을 하는 피어가 클라이언트의 어플리케이션 사용 요청을 받아 들일 수 있는지, 혹은 현재 서비스하고 있는 어플리케이션을 계속해서 유지할 수 있는지에 대한 판단은 현재 서버의 리소스 상태와 등록과정에서의 정책에 영향을 받는다.
즉 서버의 리소스가 설정된 기준을 넘어서 사용되고 있으면 현재의 상태로는 서비스 할 수 없기 때문에 클라이언트의 요청을 거절 또는 중단한다. 뿐만 아니라 다른 피어들의 검색에 영향을 미치는 디스크립션 파일 역시 새롭게 구성되어야 한다. 따라서, 리소스 점검 모듈(resource monitoring module; 633)은 매 순간 컴퓨 터의 유휴 리소스를 측정하고 최근의 일정시간 동안의 리소스에 대한 통계를 관리한다. 그리고, 특정 어플리케이션이 평균적으로 얼마만큼의 리소스를 사용하는지, 즉 과거의 통계치도 마찬가지로 관리한다. 리소스 점검 모듈(633)이 점검(monitoring)할 리소스에는 프로그램을 수행시킬 때 필요한 CPU, 메모리, 네트워크 대역폭 등과 같은 항목들이 포함된다.
디스크립션 모듈(description module; 634)은 등록 모듈(632)과 리소스 점검 모듈(633)에 근거하여 현재 서비스 가능한 어플리케이션에 대한 정보와 서비스 환경에 대한 정보를 담은 디스크립션 파일(description file)을 생성하는 역할을 한다. 세부적으로 보면 디스크립션 파일에는 서비스하는 어플리케이션의 이름, 버전과 기타 정보, 서버의 운영체제, 메모리, CPU, 가상메모리, 현재 해당 어플리케이션에 대해 제공 가능한 리소스 정보 등을 담고 있다. 디스크립션 파일은 서비스하는 각각의 어플리케이션에 대하여 작성되는데, 주기적 혹은 다른 피어의 검색 요청이 있을 때 변화하는 시스템 정보를 반영하여 동적으로 생성된다. 이렇게 생성된 디스크립션 파일은 다른 피어들의 검색 요청에 응답하는 메시지를 작성하는데 사용된다. 또한 하부 P2P 스택에 따라 다르지만 이러한 디스크립션 파일이 광고(advertisement)에 사용될 수도 있다.
한편, 연결 모듈(connection module; 637)은 서버의 서비스를 클라이언트에 제공하기 위해 서버와 클라이언트 간에 소정의 프로토콜(예컨대, HTTP 프로토콜)을 통하여 통신을 할 수 있도록 연결해주는 역할을 한다.
그리고, 협상 모듈(negotiation module; 636)은 선택적(optional) 구성요소 로서, 데이터 전송 퀄리티(예를 들어, QoS; Quality of Service)나 서비스 정책 등과 같이 서비스에 관련된 여러 가지 사항을 클라이언트와 협상하는 역할을 한다.
세션 모듈(session module; 635)은 클라이언트에 원격 디스플레이 서비스를 제공하는 세션(session)을 유지하는 역할을 한다. 세션은 관련된 프로세스를 일괄적으로 유지하고 관리하기 위해서 필요한데, 하나의 세션에는 클라이언트 측 정보, QoS와 같은 퀄리티 정보, 안전한 프로세스 종료, 해당 서비스 정책, 로그 정보(log information) 등이 포함된다. 결국 세션 모듈(635)은 제공하는 어플리케이션의 서비스 별로 이러한 세션을 유지하고 서비스 종료와 함께 세션을 닫는 역할을 하는 것이다.
GUI 모듈(graphic user interface module; 631)은 서버 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하고 상기 서버 사용자로부터 명령을 입력받는다. 즉 GUI 모듈(631)은 등록 과정, 어플리케이션 공유에 대한 환경설정, 시스템의 리소스에 대한 모니터 결과, 연결설정과 해제에 대한 서버 측 컨트롤 등에 관여한다.
도 7은 본 발명에 따른 어플리케이션 공유 시스템의 클라이언트 측의 구성을 나타낸 것이다. 클라이언트는 사용자의 요구 사항에 따라 검색 조건을 완료하고 검색 조건에 해당하는 피어의 어플리케이션을 찾는다. 또 검색된 피어들 중에서 사용자가 선택한 피어와 협상을 통해 연결을 맺으며 어플리케이션의 원활한 수행을 위해 세션을 유지한다. 세션이 시작되면 사용자는 원격 디스플레이 시스템의 뷰어를 통해 상대 피어의 어플리케이션을 수행할 수 있도록 한다.
클라이언트 측 피어의 구성을 구체적으로 살펴보면, 최하위에 시스템 구동을 위한 운영 체계(OS; 750)가 존재하고 그 위에 본 발명에 따라 P2P 방식으로 컴퓨터 리소스를 공유하기 위한 미들웨어(710)이 존재한다. 그리고 상기 미들웨어(710)에는 상기 서버 측의 미들웨어(620)과 마찬가지로 P2P 프로토콜 스택(730), 및 원격 디스플레이 시스템(740), 그리고 이들의 상위층에 본 발명에서 추가한 어플리케이션 공유 시스템 모듈(720)이 존재한다. 상기 어플리케이션 공유 시스템 모듈(720)은 다수의 하부 모듈을 포함하는데 이하에서는 이에 관하여 살펴본다.
검색 모듈(searching module; 712)은 클라이언트 동작 후 사용자로부터 GUI 모듈(631)을 통해 서비스를 받고자 하는 어플리케이션에 대한 검색 조건을 입력받아 검색 조건을 만족하는 서비스를 찾기 위해 검색 메시지를 작성하고 이를 하부 P2P 스택을 통해 다른 피어들에게 전송하는 역할을 담당한다.
연결 모듈(connection module; 715)은 서버 측의 연결 모듈(637)과 마찬가지로 서버의 서비스를 제공받기 서버와 클라이언트 간에 소정의 프로토콜을 통하여 통신을 할 수 있도록 연결해주는 역할을 한다.
협상 모듈(negotiation module; 714)은 서버 측의 협상 모듈(636)과 마찬가지로 데이터 전송 퀄리티나 서비스 정책 등과 같이 서비스에 관련된 사항을 서버와 협상하는 역할을 한다.
세션 모듈(session module; 713)은 서버로부터 원격 디스플레이 서비스를 제공받는 세션(session)을 유지하는 역할을 한다. 하나의 세션에는 서버 측 정보, QoS와 같은 퀄리티 정보, 안전한 프로세스 종료, 해당 서비스 정책, 로그 등이 포 함된다. 세션 모듈(713)는 제공하는 어플리케이션의 서비스 별로 이러한 이러한 세션을 유지하고 서비스 종료와 함께 세션을 닫는다.
GUI 모듈(graphic user interface module; 711)은 클라이언트 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하고 상기 서버 사용자로부터 명령을 입력받는다. 이와 같이 클라이언트 측 GUI 모듈(711)은 주변 노드에 대한 검색 결과 및 사용자가 요청한 서비스에 대한 검색 결과를 보여주는 부분, 그리고 사용자가 원하는 어플리케이션을 검색하기 위한 옵션을 입력하는 부분을 포함한다. 뿐만 아니라 GUI 모듈(711)은 서버의 상황이나 네트워크에 대한 정보를 보여주는 부분을 포함할 수도 있다. 또한, GUI 모듈(711)은 서버로부터 상기 어플리케이션 수행 결과, 즉 원격 디스플레이 서비스를 원격 디스플레이 시스템(740)을 통하여 전달받고, 그 결과를 클라이언트 사용자에게 디스플레이하는 역할도 수행한다.
도 8은 본 발명에 따른 동작을 전체적으로 나타낸 흐름도이다.
먼저, 서버 기능을 가진 피어들(10, 20, 30)은 각자 공유하고자 하는 어플리케이션을 등록한다(S810, S811, S812). 등록과정에서 어플리케이션의 실행 명령뿐만 아니라 어플리케이션을 서비스 할 때 서비스 기준이 되는 각종 정책들도 함께 등록한다.
다음으로, 상기 피어들(10, 20, 30) 중 하나인 피어2(20)가 주변에 어떤 피어들이 있는지 확인하기 위해 Ping 패킷을 브로드캐스트 하면(S820), 주변의 피어들(10, 30)은 이에 응답하는 Pong 패킷을 피어2(20)에게 보낸다(S820). 이를 통하여 피어2(20)는 주변에 피어1(10) 및 피어3(30)이 존재하고 있음을 알게 된다.
다음으로 클라이언트 측(피어2) 모듈은 사용자의 요청에 의해 실행된다(S840). 사용자는 다른 피어의 어플리케이션을 사용하고자 할 때 서비스 받고자 하는 어플리케이션의 검색 조건을 GUI 모듈(711)을 통하여 입력한다. 그러면, 클라이언트의 검색 모듈(712)은 사용자로부터 입력 받은 검색 조건을 가지고 검색 메시지를 구성한 뒤 커뮤니티를 형성하고 있는 주변 피어들(10, 30)에게 연결 모듈(715)을 통하여 검색 명령을 전송한다(S850). 상기 검색 명령을 전송받은 주변 피어들(10, 30)은 자신의 디스크립션 파일을 참조하여 상기 검색 조건에 만족되면 응답을 하고 만족되지 않으면 응답하지 않는다. 피어1(10)이 상기 검색 조건을 만족하는 어플리케이션을 등록하고 있다면 피어2(20)에 그 어플리케이션에 대한 디스크립션 파일을 송신하고, 피어2(20)는 이를 수신하게 된다(S860).
이 때부터 피어2(20)와 피어1(10) 간에 어플리케이션 서비스를 수행하기 위해 연결(connection)을 한다(S870). 본 예에서는 응답으로 디스크립션 파일을 송신한 피어가 하나인 경우를 예를 든 것이지만, 만약 디스크립션 파일을 송신한 피어가 여러 개인 경우에는 피어2(20)는 상기 디스크립션 파일을 토대로 상기 어플리케이션을 등록하고 있는 피어 중에서 피어2(20)의 사용자가 선택하는 피어와 소정의 프로토콜로 연결을 한다.
상기 연결 과정을 거친 후 피어2(20)와 피어1(10) 간에 서비스에 대한 협상(negotiation)을 시작하고(S880), 협상과정이 끝나면 피어1(10)이 피어2(20)에 원격 디스플레이 서비스를 제공하는 세션(session)을 시작하고 어플리케이션을 수행한다(S890).
상기 세션을 실행하는 과정(S890)은 종래의 원격 디스플레이 시스템을 이용하여 수행된다. 먼저 사용자의 입력, 즉 컨트롤이 클라이언트인 피어2(20)에서 서버인 피어1(10)로 전송되면(S891), 디스플레이 정보를 비롯한 어플리케이션의 출력 값은 피어1(10)에서 피어2(20)로 전송된다(S892). S891 및 S892과 같은 과정은 클라이언트인 피어2(20)의 요구에 따라 수차례 반복될 수 있다. 이후 피어2(20)에서 어플리케이션에 대한 사용이 끝나면 어플리케이션의 실행 결과로 발생한 파일 및 기타 로그 정보를 로컬에 저장하고(S893) 피어1(10)에게 종료 명령을 보낸다(S894). 이후 상기 종료 명령을 받은 피어1(10)은 세션을 종료하고 정상적인 수행과정을 마친다(S895).
도 9는 도 8에서 세션 실행 후 서버에 의하여 세션이 종료되는 과정을 나타낸 흐름도이다. 만일, 도 8에서와 같이 연결된 피어간의 협상이 끝난 후(S880), 클라이언트 측에서 서비스 사용을 마치고 종료하는 과정이 아니라 서버 측의 서비스 중단에 의해 전체과정이 종료된다면 일반적인 경우와는 약간 다른 과정(S990)을 따른다.
즉 사용자의 입력 전송(S991) 및 디스플레이(S992) 과정이 반복되는 중에 서버인 피어1(10)의 사용자에 의해 서비스가 중단되는 경우에는 피어1(10)이 서비스를 하고 있는 클라이언트 측 피어, 즉 피어2(20)에게 서비스 중단을 알리는 종료 명령을 전송한다(S993). 그러면, 메시지를 받은 피어2(20)은 데이터 파일과 로그를 로컬에 저장하고(S994), 어플리케이션 사용을 안전하게 중단한 후 피어2(20)에 올바르게 종료되었다는 OK 메시지를 전송한다(S995). 피어1(10)은 상기 OK 메시지의 확인을 통하여 피어2(20)에서의 동작이 안전하게 종료되었음을 확인하고 세션을 종료한다(S996).
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
P2P 공유 방식의 어플리케이션 공유를 이용한 본 발명을 이용하면 다음과 같은 이점을 가질 수 있다. 첫째, 라이센스에 저촉됨이 없이 어플리케이션을 공유할 수 있게 된다. 피어 간의 어플리케이션 공유는 어플리케이션의 무단 복제, 배포와는 다르다. 어플리케이션은 허가된 컴퓨터에서 수행되며 다른 곳으로 복제되지 않는다. 단지 다른 익명의 사용자가 원격에서 접속하는 경우와 같다. 예를 들어 게임 라이센스가 없는 사용자라고 해도 다른 사람의 컴퓨터에서 게임을 수행하고 원격지에서 디스플레이를 보고 컨트롤 할 수 있다.
둘째, 본 발명에 따르면 설치과정이 필요없이 어플리케이션을 사용할 수 있다. 잘 사용하지 않는 프로그램의 경우 한두 번의 사용을 위해 장시간 설치과정을 해야 하고 또 필요 없을 때 삭제하는 과정을 겪어야 한다. 그러나 본 발명을 통해서 한두 번 사용하는 어플리케이션을 다른 피어의 컴퓨터에서 수행할 수 있다.
셋째, 본 발명에 따르면 다른 운영체제나 다른 종류의 플랫폼을 갖는 클라이 언트에서도 원하는 어플리케이션을 사용할 수 있다. 예를 들어 윈도우즈에서 리눅스용 어플리케이션을 수행할 수 있으며, PDA를 통해 일반적인 PC용 어플리케이션을 수행할 수도 있다.
넷째, 본 발명에 따르면 클라이언트 피어가 서버 피어의 유휴 리소스를 공유할 수 있어 현재의 리소스나 환경에서는 수행할 수 없는 어플리케이션을 클라이언트 피어에서 사용할 수 있다. 예를 들어 높은 사양의 컴퓨터 리소스를 원하는 3D시뮬레이션이나 CAD같은 어플리케이션을 이들 어플리케이션이 설치된 PC의 유휴시간에 수행함으로써 해당 어플리케이션을 직접 수행할 수 없는 PC를 가진 사용자라 하더라도 어플리케이션을 사용할 수 있다.

Claims (18)

  1. 서버 기능을 가지는 제1 피어가 공유하고자 하는 적어도 하나 이상의 어플리케이션을 등록하는 제1단계;
    클라이이언트 기능을 가지는 제2 피어로부터 수신한 특정 어플리케이션에 대한 검색 명령에 따라, 상기 특정 어플리케이션이 상기 제1 피어에 존재하는지 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 상기 제1 피어에 존재하는지를 판단하고, 그 판단 결과를 상기 제2 피어에 송신하는 제2단계;
    상기 특정 어플리케이션을 실행하기 위하여 상기 제2 피어와 소정의 프로토콜로 연결하고, 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 제2 피어로부터 수신하는 제3단계; 및
    상기 수신된 컨트롤 명령에 따라 상기 특정 어플리케이션을 상기 유휴 리소스를 이용하여 실행하는 제4단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  2. 제1항에 있어서, 상기 제1단계는
    상기 공유하고자 하는 어플리케이션의 실행 명령 및 상기 어플리케이션을 서비스 할 때의 기준이 되는 정책을 등록하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  3. 제2항에 있어서,
    상기 정책은 관측된 리소스의 통계치를 기준으로 하여 설정되는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  4. 제1항에 있어서,
    상기 실행 결과를 제2 피어에 원격 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  5. 제4항에 있어서, 상기 원격 디스플레이하는 단계는
    상기 제2 피어가 상기 특정 어플리케이션을 실행하기 위한 사용자의 입력을 상기 제1 피어에 전송하면 상기 제1 피어는 상기 원격 디스플레이 시스템을 이용하여 상기 제2 피어에 상기 특정 어플리케이션 실행에 따른 출력을 송신하는 단계; 및
    상기 제1 피어의 명령 또는 상기 제2 피어의 명령에 따라 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  6. 제5항에 있어서, 상기 제1 피어의 명령에 따라 상기 세션을 종료하는 경우에, 상기 세션을 종료하는 단계는
    상기 제2 피어에 서비스 중단을 알리는 종료 명령을 송신하는 단계;
    상기 제2 피어가 올바르게 종료되었다는 메시지를 수신하는 단계; 및
    상기 수신된 메시지를 확인하고 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
  7. 클라이언트 기능을 가지는 피어(a)의 사용자가 특정 어플리케이션에 대한 검색 조건을 입력하는 제1단계;
    상기 검색 조건을 이용하여 검색 메시지를 구성한 뒤 주변 피어에게 검색 명령을 송신하는 제2단계;
    상기 검색 명령을 수신한 주변 피어 중 상기 특정 어플리케이션 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는 피어(b)로부터 상기 특정 어플리케이션에 관한 디스크립션 파일을 수신하는 제3단계;
    상기 특정 어플리케이션을 실행하기 위하여 상기 피어(b)와 소정의 프로토콜로 연결하고, 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어(b)에 송신하는 제4단계; 및
    상기 컨트롤 명령에 따라 상기 피어(b)에서 실행된 상기 특정 어플리케이션의 실행 결과를 수신 받아 원격 디스플레이하는 제5단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
  8. 제7항에 있어서, 상기 제4단계 이후에
    상기 피어(b)와 상기 특정 어플리케이션에 대한 세부 사항에 대하여 협상하는 단계를 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
  9. 제7항에 있어서, 상기 제4단계는
    상기 피어(a)가 상기 특정 어플리케이션을 실행하기 위한 사용자의 입력을 상기 피어(b)에 송신하고 상기 원격 디스플레이 시스템을 이용하여 상기 피어(b)로부터 상기 특정 어플리케이션 실행에 따른 출력을 수신하는 단계; 및
    상기 피어(a)의 명령 또는 상기 피어(b)의 명령에 따라 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
  10. 제9항에 있어서, 상기 피어(a)의 명령에 따라 상기 세션을 종료하는 경우에 상기 세션을 종료하는 단계는
    상기 특정 어플리케이션 실행에 따른 출력 결과를 포함하는 파일을 저장하는 단계; 및
    상기 피어(b)에 상기 세션을 종료하도록 요청하는 명령을 송신하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
  11. 제9항에 있어서, 상기 피어(b)의 명령에 따라 상기 세션을 종료하는 경우에 상기 세션을 종료하는 단계는
    상기 피어(b)로부터 서비스 중단을 알리는 종료 명령을 수신하는 단계;
    상기 특정 어플리케이션 실행에 따른 출력 결과를 포함하는 파일을 저장하는 단계; 및
    상기 피어(a)가 올바르게 종료되었다는 메시지를 상기 피어(b)에 송신하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
  12. 사용자의 입력에 따라 공유하고자 하는 어플리케이션을 등록하고 전체 어플리케이션 또는 개별 어플리케이션에 대한 서비스 정책을 설정하는 등록 모듈;
    서버의 유휴 리소스를 측정하고 상기 등록된 어플리케이션이 평균적으로 사용하는 리소스의 양을 점검하는 리소스 점검함으로써, 클라이이언트 기능을 가지는 피어로부터 수신한 특정 어플리케이션에 대한 검색 명령에 따라, 상기 특정 어플리케이션이 존재하는지 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는지를 판단하는 리소스 점검 모듈;
    상기 리소스 점검 모듈의 판단 결과에 따라서, 현재 서비스 가능한 어플리케이션에 대한 정보와 상기 어플리케이션을 서비스하는 환경에 대한 정보를 담은 디스크립션 파일을 생성하여 상기 피어에 제공하는 디스크립션 모듈; 및
    상기 특정 어플리케이션을 실행하기 위하여 상기 피어와 소정의 프로토콜로 연결하고, 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어로부터 수신하고, 상기 수신된 명령에 따라 상기 특정 어플리케이션을 상기 유휴 리소스를 이용하여 실행하는 세션 모듈을 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
  13. 제12항에 있어서,
    서버 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하고 상기 서버 사용자로부터 명령을 입력받는 GUI 모듈; 및
    상기 특정 어플리케이션에 관한 서비스를 클라이언트에 제공하기 위해 상기 피어와 소정의 프로토콜을 통하여 통신을 할 수 있도록 연결해주는 연결 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
  14. 제12항에 있어서,
    데이터 전송 퀄리티, 서비스 정책, 기타 서비스에 관련된 사항을 상기 클라이언트와 협상하는 역할을 담당하는 협상 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
  15. 클라이언트 기능을 가지는 피어(a)의 사용자가 특정 어플리케이션에 대한 검색 조건을 입력하고, 상기 검색 조건을 이용하여 검색 메시지를 구성한 뒤 주변 피어에게 검색 명령을 송신하는 검색 모듈;
    상기 검색 명령을 수신한 주변 피어 중 상기 특정 어플리케이션 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는 피어(b)로부터 상기 특정 어플리케이션에 관한 디스크립션 파일을 수신하고, 상기 특정 어플리케이션을 실행하기 위하여 상기 피어(b)와 소정의 프로토콜로 연결하며 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어(b)에 송신하는 연결 모듈; 및
    상기 컨트롤 명령에 따라 상기 피어(b)에서 실행된 상기 특정 어플리케이션의 실행 결과를 수신 받아 원격 디스플레이하는 GUI 모듈을 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
  16. 제15항에 있어서,
    상기 GUI 모듈은 클라이언트 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
  17. 제15항에 있어서,
    데이터 전송 퀄리티, 서비스 정책, 기타 서비스에 관련된 사항을 상기 서버와 협상하는 역할을 담당하는 협상 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
  18. 제1항 내지 제11항 중 어느 한 항의 방법을 컴퓨터로 판독가능한 프로그램으로 기록한 기록매체.
KR1020030084953A 2003-11-27 2003-11-27 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 KR100621092B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020030084953A KR100621092B1 (ko) 2003-11-27 2003-11-27 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
US10/975,536 US20050120073A1 (en) 2003-11-27 2004-10-29 Method and apparatus for sharing applications using P2P protocol
EP04256938A EP1536612A1 (en) 2003-11-27 2004-11-09 Method and apparatus for sharing applications using a peer-to-peer protocol
JP2004335167A JP2005158068A (ja) 2003-11-27 2004-11-18 P2pプロトコルを用いてアプリケーションを共有する方法及び装置
CNA2004100914803A CN1622549A (zh) 2003-11-27 2004-11-25 用于使用对等网络协议共享应用程序的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030084953A KR100621092B1 (ko) 2003-11-27 2003-11-27 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치

Publications (2)

Publication Number Publication Date
KR20050051200A KR20050051200A (ko) 2005-06-01
KR100621092B1 true KR100621092B1 (ko) 2006-09-08

Family

ID=34464758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030084953A KR100621092B1 (ko) 2003-11-27 2003-11-27 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치

Country Status (5)

Country Link
US (1) US20050120073A1 (ko)
EP (1) EP1536612A1 (ko)
JP (1) JP2005158068A (ko)
KR (1) KR100621092B1 (ko)
CN (1) CN1622549A (ko)

Families Citing this family (214)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8151259B2 (en) 2006-01-03 2012-04-03 Apple Inc. Remote content updates for portable media devices
US7433546B2 (en) 2004-10-25 2008-10-07 Apple Inc. Image scaling arrangement
US20120173732A1 (en) * 2002-10-22 2012-07-05 Sullivan Jason A Systems and methods for providing resources and interactivity in computer systems
WO2004038555A2 (en) 2002-10-22 2004-05-06 Isys Technologies Robust customizable computer processing system
AU2003285949A1 (en) 2002-10-22 2004-05-13 Isys Technologies Non-peripherals processing control module having improved heat dissipating properties
CN102043446A (zh) 2002-10-22 2011-05-04 贾森·A·沙利文 用于提供动态模块处理单元的系统及方法
US7831199B2 (en) * 2006-01-03 2010-11-09 Apple Inc. Media data exchange, transfer or delivery for portable electronic devices
US7724716B2 (en) 2006-06-20 2010-05-25 Apple Inc. Wireless communication system
JP2005275937A (ja) * 2004-03-25 2005-10-06 Fujitsu Ltd P2pネットワークシステム
US8437307B2 (en) 2007-09-03 2013-05-07 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US8050272B2 (en) 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US7933260B2 (en) 2004-06-29 2011-04-26 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US8009586B2 (en) 2004-06-29 2011-08-30 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
US7570636B2 (en) 2004-06-29 2009-08-04 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
US9077766B2 (en) 2004-07-09 2015-07-07 Qualcomm Incorporated System and method for combining memory resources for use on a personal network
US8819140B2 (en) 2004-07-09 2014-08-26 Qualcomm Incorporated System and method for enabling the establishment and use of a personal network
US8787164B2 (en) 2004-07-09 2014-07-22 Qualcomm Incorporated Media delivery system and method for transporting media to desired target devices
US8195744B2 (en) * 2004-07-09 2012-06-05 Orb Networks, Inc. File sharing system for use with a network
US8738693B2 (en) 2004-07-09 2014-05-27 Qualcomm Incorporated System and method for managing distribution of media files
US7937484B2 (en) 2004-07-09 2011-05-03 Orb Networks, Inc. System and method for remotely controlling network resources
US7706637B2 (en) 2004-10-25 2010-04-27 Apple Inc. Host configured for interoperation with coupled portable media player device
US7593782B2 (en) 2005-01-07 2009-09-22 Apple Inc. Highly portable media device
US7562125B2 (en) * 2005-02-02 2009-07-14 Cisco Technology, Inc. Techniques for locating distributed objects on a network based on physical communication costs
US8499023B1 (en) * 2005-03-23 2013-07-30 Oracle America, Inc. Servlet-based grid computing environment using grid engines and switches to manage resources
US8300841B2 (en) 2005-06-03 2012-10-30 Apple Inc. Techniques for presenting sound effects on a portable media player
CN101233738B (zh) * 2005-07-29 2013-06-19 皇家飞利浦电子股份有限公司 用于移动医疗设备的环境相关的服务发现的系统和方法
US7590772B2 (en) 2005-08-22 2009-09-15 Apple Inc. Audio status information for a portable electronic device
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7930369B2 (en) 2005-10-19 2011-04-19 Apple Inc. Remotely configured media device
US8654993B2 (en) 2005-12-07 2014-02-18 Apple Inc. Portable audio device providing automated control of audio volume parameters for hearing protection
US8171104B2 (en) * 2005-12-15 2012-05-01 International Business Machines Corporation Scheduling and searching meetings in a network environment
US8433753B2 (en) * 2005-12-15 2013-04-30 International Business Machines Corporation Providing meeting information from a meeting server to an email server to store in an email database
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US8255640B2 (en) 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US7673238B2 (en) 2006-01-05 2010-03-02 Apple Inc. Portable media device with video acceleration capabilities
CN101390395B (zh) * 2006-02-24 2010-12-15 皇家飞利浦电子股份有限公司 用于在同伴网络中共享资源的设备
US7848527B2 (en) 2006-02-27 2010-12-07 Apple Inc. Dynamic power management in a portable media delivery system
KR100774930B1 (ko) * 2006-05-17 2007-11-09 엘지전자 주식회사 이동통신단말기, 시스템 및 컨텐츠공유방법
EP1858226B1 (en) * 2006-05-19 2010-09-22 Microsoft Corporation Content management in peer-to-peer content distribution clouds
US7643895B2 (en) 2006-05-22 2010-01-05 Apple Inc. Portable media device with workout support
US8073984B2 (en) 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
US9137309B2 (en) 2006-05-22 2015-09-15 Apple Inc. Calibration techniques for activity sensing devices
US20070271116A1 (en) 2006-05-22 2007-11-22 Apple Computer, Inc. Integrated media jukebox and physiologic data handling application
US8358273B2 (en) 2006-05-23 2013-01-22 Apple Inc. Portable media device with power-managed display
US20070294626A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Controlling application sharing
CN101485140B (zh) * 2006-07-12 2013-12-18 艾利森电话股份有限公司 用于控制设备的方法、设备和计算机程序产品
WO2008012301A2 (de) * 2006-07-25 2008-01-31 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum ausführen eines dienstes in einem dezentralen datennetz
US7913297B2 (en) 2006-08-30 2011-03-22 Apple Inc. Pairing of wireless devices using a wired medium
US7813715B2 (en) 2006-08-30 2010-10-12 Apple Inc. Automated pairing of wireless accessories with host devices
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8341524B2 (en) 2006-09-11 2012-12-25 Apple Inc. Portable electronic device with local search capabilities
US7729791B2 (en) 2006-09-11 2010-06-01 Apple Inc. Portable media playback device including user interface event passthrough to non-media-playback processing
US8090130B2 (en) 2006-09-11 2012-01-03 Apple Inc. Highly portable media devices
CN100488146C (zh) * 2006-09-14 2009-05-13 华为技术有限公司 在p2p网络中建立点对点连接的方法及在p2p网络中的节点
US9294608B2 (en) * 2007-02-20 2016-03-22 Microsoft Technology Licensing, Llc Contextual auto-replication in short range wireless networks
US7589629B2 (en) 2007-02-28 2009-09-15 Apple Inc. Event recorder for portable media device
US7698101B2 (en) 2007-03-07 2010-04-13 Apple Inc. Smart garment
JP2008233991A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd 無線端末間貸借制御方法
US8135018B1 (en) 2007-03-29 2012-03-13 Qurio Holdings, Inc. Message propagation in a distributed virtual world
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8000328B1 (en) 2007-05-22 2011-08-16 Qurio Holdings, Inc. Filtering messages in a distributed virtual world based on virtual space properties
US20090055157A1 (en) * 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US8862164B2 (en) 2007-09-28 2014-10-14 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US20090100137A1 (en) * 2007-10-11 2009-04-16 Motorola, Inc. Method and apparatus for providing services in a peer-to-peer communications network
WO2009070718A1 (en) 2007-11-28 2009-06-04 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US20090172082A1 (en) * 2007-12-31 2009-07-02 Joaquin Sufuentes Software as a service in a peer-to-peer environment
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8266637B2 (en) * 2008-03-03 2012-09-11 Microsoft Corporation Privacy modes in a remote desktop environment
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US9058090B1 (en) 2008-06-02 2015-06-16 Qurio Holdings, Inc. Collaborative information sharing in a virtual world
KR100969989B1 (ko) * 2008-06-02 2010-07-15 박상진 네트워크에서 응용프로그램 배포 방법 및 장치
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8341214B2 (en) * 2009-08-12 2012-12-25 Xerox Corporation System and method for communicating with a network of printers using a mobile device
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8725895B2 (en) 2010-02-15 2014-05-13 Damaka, Inc. NAT traversal by concurrently probing multiple candidates
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8689307B2 (en) 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
US20110235592A1 (en) * 2010-03-26 2011-09-29 Qualcomm Incorporated Network resource leasing
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US8352563B2 (en) 2010-04-29 2013-01-08 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US8446900B2 (en) 2010-06-18 2013-05-21 Damaka, Inc. System and method for transferring a call between endpoints in a hybrid peer-to-peer network
US8611540B2 (en) 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US8468010B2 (en) 2010-09-24 2013-06-18 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US20120158819A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Policy-based application delivery
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
KR101842256B1 (ko) 2011-02-01 2018-03-26 삼성전자주식회사 어플리케이션을 원격으로 실행하는 방법 및 장치
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8407314B2 (en) 2011-04-04 2013-03-26 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US8694587B2 (en) 2011-05-17 2014-04-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
KR101319815B1 (ko) * 2011-06-22 2013-10-21 김강수 멀티 단말 장치 간 서버-클라이언트 서비스 환경을 지원하는 앱 구동 방법
US8478890B2 (en) 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9936335B2 (en) * 2012-12-13 2018-04-03 Microsoft Technology Licensing, Llc Mobile computing device application sharing
CN103902499A (zh) * 2012-12-25 2014-07-02 联想(北京)有限公司 一种处理方法及一种电子设备
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
CN105027197B (zh) 2013-03-15 2018-12-14 苹果公司 训练至少部分语音命令系统
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
KR101809808B1 (ko) 2013-06-13 2017-12-15 애플 인크. 음성 명령에 의해 개시되는 긴급 전화를 걸기 위한 시스템 및 방법
US9027032B2 (en) 2013-07-16 2015-05-05 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
JP6296813B2 (ja) * 2014-01-30 2018-03-20 キヤノン株式会社 情報処理端末、情報処理端末の制御方法およびプログラム
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US11283866B2 (en) 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US11310312B2 (en) * 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
CA2956617A1 (en) 2014-08-05 2016-02-11 Damaka, Inc. System and method for providing unified communications and collaboration (ucc) connectivity between incompatible systems
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10003659B2 (en) * 2014-10-31 2018-06-19 Qualcomm Incorporated Efficient group communications leveraging LTE-D discovery for application layer contextual communication
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US20180018445A1 (en) * 2016-07-13 2018-01-18 International Business Machines Corporation Social Sharing of Software Products
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US9763047B1 (en) 2016-09-28 2017-09-12 International Business Machines Corporation Anonymizing location data
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
WO2019046021A1 (en) * 2017-08-30 2019-03-07 Raytheon Company AUTHENTICATION OF MESH NETWORK PAIR TO MOBILE PAIR WITH AUTO-ORGANIZATION
US11184420B2 (en) 2020-01-06 2021-11-23 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079425A (ko) * 2001-04-06 2002-10-19 네트워크스 어소시에이츠 테크놀로지,인크 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법
JP2003085111A (ja) * 2001-09-14 2003-03-20 Fujitsu Ltd コラボレーション方法、システム、プログラム及び記録媒体
KR20030026708A (ko) * 2001-09-26 2003-04-03 (주)네오클릭 P2p(피어투피어) 기반의 cpu 공유 분산 컴퓨팅
KR20030066976A (ko) * 2002-02-06 2003-08-14 삼성전자주식회사 P2p를 이용한 자원 공유 서비스 제공 및 그 이용방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US5761421A (en) * 1996-03-25 1998-06-02 Sun Microsystems, Inc. System and method for secure peer-to-peer communication between downloaded programs
US6144992A (en) * 1997-05-09 2000-11-07 Altiris, Inc. Method and system for client/server and peer-to-peer disk imaging
US6094676A (en) * 1997-05-30 2000-07-25 Hilgraeve Incorporated Method and apparatus for peer-to-peer communication
US7509372B2 (en) * 2001-09-13 2009-03-24 International Business Machines Corporation Method and system for redirecting data requests in peer-to-peer data networks
US7536182B2 (en) * 2001-09-18 2009-05-19 Nec Corporation Method and system for extending the capabilities of handheld devices using local resources
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
US8001187B2 (en) * 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079425A (ko) * 2001-04-06 2002-10-19 네트워크스 어소시에이츠 테크놀로지,인크 피어 투 피어 네트워크 환경내에서 자원들을 안전하고검증가능하게 공유하는 시스템 및 방법
JP2003085111A (ja) * 2001-09-14 2003-03-20 Fujitsu Ltd コラボレーション方法、システム、プログラム及び記録媒体
KR20030026708A (ko) * 2001-09-26 2003-04-03 (주)네오클릭 P2p(피어투피어) 기반의 cpu 공유 분산 컴퓨팅
KR20030066976A (ko) * 2002-02-06 2003-08-14 삼성전자주식회사 P2p를 이용한 자원 공유 서비스 제공 및 그 이용방법

Also Published As

Publication number Publication date
US20050120073A1 (en) 2005-06-02
EP1536612A1 (en) 2005-06-01
CN1622549A (zh) 2005-06-01
JP2005158068A (ja) 2005-06-16
KR20050051200A (ko) 2005-06-01

Similar Documents

Publication Publication Date Title
KR100621092B1 (ko) P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
US7039701B2 (en) Providing management functions in decentralized networks
US8219614B2 (en) Edge peer device, pan gateway device, super peer device, and P2P network-based interconnection method
RU2364925C2 (ru) Бесшовное обнаружение установленных на рабочей станции удаленных приложений из экстрасети
US7069318B2 (en) Content tracking in transient network communities
US7558859B2 (en) Peer-to-peer auction based data distribution
US7177929B2 (en) Persisting node reputations in transient network communities
US7136924B2 (en) Method and system for parallel operation and control of legacy computer clusters
US7181536B2 (en) Interminable peer relationships in transient communities
US20030187973A1 (en) Managing storage resources in decentralized networks
US20100228824A1 (en) Distributed server selection for online collaborative computing sessions
JP2004038956A (ja) コンピューティングシステムおよびその方法
EP2735131B1 (en) Self-adapting direct peer to peer communication and messaging system
WO2003079635A1 (en) Secured and access controlled peer-to-peer resource sharing method and apparatus
US10187458B2 (en) Providing enhanced access to remote services
US20080137663A1 (en) Identifier verification method in peer-to-peer networks
KR100957701B1 (ko) 단말간 응용프로그램 공유실행 시스템, 서버 및 방법
KR20100062866A (ko) 일반 피어 장치, pan 게이트웨이 장치, 수퍼 피어 장치, p2p 네트워크 기반의 상호 연동 방법
US20050060700A1 (en) Seamless scaling of multiple appliances
JP2012108685A (ja) 負荷分散システム
JP2006025211A (ja) ピアツーピア端末装置並びにピアツーピア通信システム、ピアツーピア通信方法、ピアツーピア端末プログラム
Verma et al. SRIRAM: A scalable resilient autonomic mesh
US20030046398A1 (en) Method and system for managing a plurality of console devices in a network
KR101305397B1 (ko) P2p 시스템에서 피어 랜덤 선택을 위한 피어 관리 서버및 피어 관리 방법
JP3857258B2 (ja) グリッドコンピューティングシステム、及びグリッドコンピューティングシステムにおける計算資源収集方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee