KR100621092B1 - P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 - Google Patents
P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1063—Discovery through centralising entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery 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
도 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단계;클라이이언트 기능을 가지는 제2 피어로부터 수신한 특정 어플리케이션에 대한 검색 명령에 따라, 상기 특정 어플리케이션이 상기 제1 피어에 존재하는지 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 상기 제1 피어에 존재하는지를 판단하고, 그 판단 결과를 상기 제2 피어에 송신하는 제2단계;상기 특정 어플리케이션을 실행하기 위하여 상기 제2 피어와 소정의 프로토콜로 연결하고, 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 제2 피어로부터 수신하는 제3단계; 및상기 수신된 컨트롤 명령에 따라 상기 특정 어플리케이션을 상기 유휴 리소스를 이용하여 실행하는 제4단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 제1항에 있어서, 상기 제1단계는상기 공유하고자 하는 어플리케이션의 실행 명령 및 상기 어플리케이션을 서비스 할 때의 기준이 되는 정책을 등록하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 제2항에 있어서,상기 정책은 관측된 리소스의 통계치를 기준으로 하여 설정되는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 제1항에 있어서,상기 실행 결과를 제2 피어에 원격 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 제4항에 있어서, 상기 원격 디스플레이하는 단계는상기 제2 피어가 상기 특정 어플리케이션을 실행하기 위한 사용자의 입력을 상기 제1 피어에 전송하면 상기 제1 피어는 상기 원격 디스플레이 시스템을 이용하여 상기 제2 피어에 상기 특정 어플리케이션 실행에 따른 출력을 송신하는 단계; 및상기 제1 피어의 명령 또는 상기 제2 피어의 명령에 따라 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 제5항에 있어서, 상기 제1 피어의 명령에 따라 상기 세션을 종료하는 경우에, 상기 세션을 종료하는 단계는상기 제2 피어에 서비스 중단을 알리는 종료 명령을 송신하는 단계;상기 제2 피어가 올바르게 종료되었다는 메시지를 수신하는 단계; 및상기 수신된 메시지를 확인하고 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 방법.
- 클라이언트 기능을 가지는 피어(a)의 사용자가 특정 어플리케이션에 대한 검색 조건을 입력하는 제1단계;상기 검색 조건을 이용하여 검색 메시지를 구성한 뒤 주변 피어에게 검색 명령을 송신하는 제2단계;상기 검색 명령을 수신한 주변 피어 중 상기 특정 어플리케이션 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는 피어(b)로부터 상기 특정 어플리케이션에 관한 디스크립션 파일을 수신하는 제3단계;상기 특정 어플리케이션을 실행하기 위하여 상기 피어(b)와 소정의 프로토콜로 연결하고, 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어(b)에 송신하는 제4단계; 및상기 컨트롤 명령에 따라 상기 피어(b)에서 실행된 상기 특정 어플리케이션의 실행 결과를 수신 받아 원격 디스플레이하는 제5단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
- 제7항에 있어서, 상기 제4단계 이후에상기 피어(b)와 상기 특정 어플리케이션에 대한 세부 사항에 대하여 협상하는 단계를 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
- 제7항에 있어서, 상기 제4단계는상기 피어(a)가 상기 특정 어플리케이션을 실행하기 위한 사용자의 입력을 상기 피어(b)에 송신하고 상기 원격 디스플레이 시스템을 이용하여 상기 피어(b)로부터 상기 특정 어플리케이션 실행에 따른 출력을 수신하는 단계; 및상기 피어(a)의 명령 또는 상기 피어(b)의 명령에 따라 상기 세션을 종료하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
- 제9항에 있어서, 상기 피어(a)의 명령에 따라 상기 세션을 종료하는 경우에 상기 세션을 종료하는 단계는상기 특정 어플리케이션 실행에 따른 출력 결과를 포함하는 파일을 저장하는 단계; 및상기 피어(b)에 상기 세션을 종료하도록 요청하는 명령을 송신하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
- 제9항에 있어서, 상기 피어(b)의 명령에 따라 상기 세션을 종료하는 경우에 상기 세션을 종료하는 단계는상기 피어(b)로부터 서비스 중단을 알리는 종료 명령을 수신하는 단계;상기 특정 어플리케이션 실행에 따른 출력 결과를 포함하는 파일을 저장하는 단계; 및상기 피어(a)가 올바르게 종료되었다는 메시지를 상기 피어(b)에 송신하는 단계를 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된P2P 프로토콜을 이용하여 공유된 어플리케이션을 사용하는 방법.
- 사용자의 입력에 따라 공유하고자 하는 어플리케이션을 등록하고 전체 어플리케이션 또는 개별 어플리케이션에 대한 서비스 정책을 설정하는 등록 모듈;서버의 유휴 리소스를 측정하고 상기 등록된 어플리케이션이 평균적으로 사용하는 리소스의 양을 점검하는 리소스 점검함으로써, 클라이이언트 기능을 가지는 피어로부터 수신한 특정 어플리케이션에 대한 검색 명령에 따라, 상기 특정 어플리케이션이 존재하는지 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는지를 판단하는 리소스 점검 모듈;상기 리소스 점검 모듈의 판단 결과에 따라서, 현재 서비스 가능한 어플리케이션에 대한 정보와 상기 어플리케이션을 서비스하는 환경에 대한 정보를 담은 디스크립션 파일을 생성하여 상기 피어에 제공하는 디스크립션 모듈; 및상기 특정 어플리케이션을 실행하기 위하여 상기 피어와 소정의 프로토콜로 연결하고, 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어로부터 수신하고, 상기 수신된 명령에 따라 상기 특정 어플리케이션을 상기 유휴 리소스를 이용하여 실행하는 세션 모듈을 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
- 제12항에 있어서,서버 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하고 상기 서버 사용자로부터 명령을 입력받는 GUI 모듈; 및상기 특정 어플리케이션에 관한 서비스를 클라이언트에 제공하기 위해 상기 피어와 소정의 프로토콜을 통하여 통신을 할 수 있도록 연결해주는 연결 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
- 제12항에 있어서,데이터 전송 퀄리티, 서비스 정책, 기타 서비스에 관련된 사항을 상기 클라이언트와 협상하는 역할을 담당하는 협상 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 이용하여 어플리케이션을 공유하는 서버 피어.
- 클라이언트 기능을 가지는 피어(a)의 사용자가 특정 어플리케이션에 대한 검색 조건을 입력하고, 상기 검색 조건을 이용하여 검색 메시지를 구성한 뒤 주변 피어에게 검색 명령을 송신하는 검색 모듈;상기 검색 명령을 수신한 주변 피어 중 상기 특정 어플리케이션 및 상기 특정 어플리케이션을 수행할 유휴 리소스가 존재하는 피어(b)로부터 상기 특정 어플리케이션에 관한 디스크립션 파일을 수신하고, 상기 특정 어플리케이션을 실행하기 위하여 상기 피어(b)와 소정의 프로토콜로 연결하며 상기 특정 어플리케이션의 실행을 명하는 컨트롤 명령을 상기 피어(b)에 송신하는 연결 모듈; 및상기 컨트롤 명령에 따라 상기 피어(b)에서 실행된 상기 특정 어플리케이션의 실행 결과를 수신 받아 원격 디스플레이하는 GUI 모듈을 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
- 제15항에 있어서,상기 GUI 모듈은 클라이언트 사용자가 명령을 입력할 수 있도록 그래픽 인터페이스를 제공하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
- 제15항에 있어서,데이터 전송 퀄리티, 서비스 정책, 기타 서비스에 관련된 사항을 상기 서버와 협상하는 역할을 담당하는 협상 모듈을 더 포함하는 것을 특징으로 하는 P2P 프로토콜을 사용하여 공유된 어플리케이션을 사용하는 클라이언트 피어.
- 제1항 내지 제11항 중 어느 한 항의 방법을 컴퓨터로 판독가능한 프로그램으로 기록한 기록매체.
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)
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)
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)
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 |
-
2003
- 2003-11-27 KR KR1020030084953A patent/KR100621092B1/ko not_active IP Right Cessation
-
2004
- 2004-10-29 US US10/975,536 patent/US20050120073A1/en not_active Abandoned
- 2004-11-09 EP EP04256938A patent/EP1536612A1/en not_active Ceased
- 2004-11-18 JP JP2004335167A patent/JP2005158068A/ja active Pending
- 2004-11-25 CN CNA2004100914803A patent/CN1622549A/zh active Pending
Patent Citations (4)
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 |