KR100754310B1 - 다수의 전자 장치로 구성된 가상 작업 공간을 제공하는방법 - Google Patents

다수의 전자 장치로 구성된 가상 작업 공간을 제공하는방법 Download PDF

Info

Publication number
KR100754310B1
KR100754310B1 KR1020057018577A KR20057018577A KR100754310B1 KR 100754310 B1 KR100754310 B1 KR 100754310B1 KR 1020057018577 A KR1020057018577 A KR 1020057018577A KR 20057018577 A KR20057018577 A KR 20057018577A KR 100754310 B1 KR100754310 B1 KR 100754310B1
Authority
KR
South Korea
Prior art keywords
data
electronic device
electronic devices
determining
abandoned
Prior art date
Application number
KR1020057018577A
Other languages
English (en)
Other versions
KR20060018820A (ko
Inventor
데이비드 에프 반쯔
포나니 고팔라크리쉬넌
다니엘 엠 그루엔
로레인 엠 허거
나단 준섭 리
데니스 제랄드 쉐아
마리사 에스 비비로스
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20060018820A publication Critical patent/KR20060018820A/ko
Application granted granted Critical
Publication of KR100754310B1 publication Critical patent/KR100754310B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Navigation (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Casings For Electric Apparatus (AREA)
  • Filters And Equalizers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

다수의 전자 장치를 가진 사용자를 위하여 가상 작업 공간이 제공되는데, 여기서 전자 장치들 간의 많은 접속을 통하여 전자 장치들 간에 정보가 교환될 수 있다. 가상 작업 공간은 서비스가 위치한 장소, 서비스 유형을 결정하고 하나 이상의 전자 장치에 의해 액세스 가능한 데이터와 관련된 하나 이상의 데이터 포맷을 결정함으로써 제공된다. 데이터의 일부는 하나 이상의 데이터 포맷 중 일정한 데이터 포맷을 가지고 있다. 미리 정해진 기준 및 상기 일정한 데이터 포맷에 적어도 기초하여 전자 장치가 선택된다. 선택된 전자 장치로의 접속을 통과하는 경로가 결정되는 데, 이 경로는 하나 이상의 일정한 접속을 포함할 수 있다. 적어도 상기 일정한 데이터 포맷과 관련된 데이터의 일부는 선택된 전자 장치로 라우팅된다. 데이터의 일부는 선택된 전자 장치에 의해 수신될 때 선택된 전자 장치에 의해 표시되도록 이용될 수 있다.
가상 작업 공간, 라우팅, 전자 장치, 개인 작업 공간

Description

다수의 전자 장치로 구성된 가상 작업 공간을 제공하는 방법{TECHNIQUES FOR PROVIDING A VIRTUAL WORKSPACE COMPRISED OF A MULTIPLICITY OF ELECTRONIC DEVICES}
본 발명은 전자 장치들 간의 통신, 보다 구체적으로 다수의 상이한 전자 장치들에 의한 통신에 관한 것이다.
오늘날, 사람들은 다수의 전자 장치를 소유하는 경향이 있다. 예를 들어, 한 사람이 핸드폰, PDA 및 랩탑 컴퓨터를 가지고 있을 수 있고, 이 전자 장치들은 동일한 장소에 모두 상주하거나 아닐 수도 있다. 이 전자 장치들은 일반적으로 개별로 동작하고, 일반적으로 사용자의 요청 및 개입이 있을 때 다른 하나의 전자 장치와 동기화할 수 있다. 그러나, 많은 전자 장치 간에 더 많은 접속성을 제공하려는 경향이 있다. 예를 들어, 일부 전자 장치들은 다수의 전자 장치들과 통신하도록 설계되어 있다. 그러나, 데이터 공유는 일반적으로 미리 정해진 전자 장치들의 집합 간에 이루어지고, 데이터가 동일한 포맷을 공유하는 전자 장치들 간에 이루어진다.
또한, 각각 자신의 다수의 전자 장치를 지니고 있는 두 명 이상의 사람이 전자 장치들을 사용하여 통신하고 싶어할 때, 종래의 통신 수행 방식에서는 동일한 유형의 전자 장치 두 개 사이에 통신이 이루어진다. 예를 들어, 한 사람은 파일을 하나의 PDA로부터 다른 사람 소유의 PDA로 전송할 수 있다. 그러나, 만일 사용자가 임의로 선택된 두 개의 전자 장치 간에 정보를 공유하고 싶어한다면, 그 두 개의 전자 장치가 공통된 프로그램과 공통의 물리적 링크를 실행하지 않는 한, 그 선택된 전자 장치들이 서로 간에 통신하도록 구성하는 것은 그렇게 수월한 일이 아니다. 따라서, 한 사람의 개인이 사용하는 전자 장치의 수가 계속 증가함에도 불구하고, 전자 장치들 간에 통신을 가능하게 하려고 할 때 여전히 문제점이 존재한다.
따라서, 전자 장치들이 통신할 수 있도록 하기 위하여 전자 장치들 간에 정보를 공유하는 개선된 기술이 필요하다.
무엇보다도 본 발명은 데이터를 가지는 전자 장치와, 현재 상태에서 데이터를 표시하기에 최고로 적합한 동적으로 선택된 전자 장치 간에 데이터를 교환하는 기술을 제공함으로써, 사용자에게 하나의 가상 작업 공간으로 보이는 장치들의 집합을 사용자에게 제공한다.
발명의 일 측면에 있어서, 다수의 전자 장치를 위한 가상 작업 공간을 제공하는 기술이 개시되어 있다. 가상 작업 공간에서는 전자 장치 간의 다수의 접속을 통하여 전자 장치들 간에 정보가 교환될 수 있다. 가상 작업 공간은 하나 이상의 전자 장치에 의해 액세스될 수 있는 데이터와 관련된 하나 이상의 데이터 포맷을 결정함으로써 제공된다. 데이터의 일부는 하나 이상의 데이터 포맷 중 일정한 포맷을 가진다. 전자 장치가 소정의 기준 및 일정한 데이터 포맷에 적어도 부분적으로 기초하여 선택된다. 접속을 통한, 선택된 전자 장치로의 경로가 결정되고, 경로는 일정한 하나 이상의 접속을 포함한다. 일정한 데이터 포맷과 관련된 데이터 중 적어도 일부가, 주어진 접속들 중 적어도 하나의 접속을 통하여 라우팅된다. 선택된 전자 장치가 데이터의 일부를 수신할 때 그 데이터의 일부가 선택된 전자 장치에 의해 표시되도록 이용될 수 있다.
데이터는 전자 장치들 중 하나의 전자 장치 또는 전자 장치들 중 하나가 아닌 원격 전자 장치에 상주할 수 있다. 또한, 데이터의 일부는 데이터 전체가 되거나 전체 데이터보다 작을 수 있다.
데이터는 선택된 전자 장치상에서 표시될 수 있다. 각 전자 장치가 데이터의 하나 이상의 일부를 표시하는 그러한 다수의 전자 장치가 언제라도 존재할 수 있다는 것을 유의해야 한다.
소정의 기준은 화면 해상도, 애플리케이션 프로그램, 장치가 표시할 수 있는 오디오, 비디오 및 다른 포맷과 같은 장치 기준을 포함할 수 있다. 소정의 기준은 한 유형의 데이터 포맷이 하나의 특정한 전자 장치상에 항상 디스플레이되도록 하는 것과 같은 사용자 기준을 포함할 수 있다. 다차원 스코어의 사용을 통하여 사용자 선호도가 적용될 수 있다. 다차원 스코어는, 각 항이 변수와 가중치를 곱한 값을 가지는, 많은 항들을 더함으로써 결정될 수 있다. 가중치는 사용자 선호도에 대응하고, 변수는 재생의 충실도 또는 사용자 관심에의 근접도와 같이 전자 장치에 대한 일부 수량적인 정보를 표시할 수 있다.
데이터 포맷은 파일 확장자, 마크업 언어 태그와 같은 마커(marker), 또는 임의의 다른 데이터 포맷 표시자를 통하여 결정될 수 있다.
데이터의 일부가 선택된 전자 장치상에 나타내어질 수 있기 전에 이 데이터 일부가 변환될 필요가 있을지도 모른다. 만일 그렇다면, 데이터 변환기는 전자 장치들 상에서 이용가능한 데이터 변환기들로부터 선택될 수 있다. 데이터 일부는 전자 장치들을 통하여 데이터 변환기로 라우팅된 후 선택된 전자 장치로 다시 라우팅될 수 있다. 다수의 데이터 일부가 다수의 데이터 변환기로 라우팅되어 다수의 장치에 의해 표시될 수 있다는 것을 유의해야 한다. 데이터 일부가 다시 포맷되도록 데이터 일부가 하나의 데이터 포맷으로부터 다른 데이터 포맷으로 변환되거나 트랜스코딩되거나 둘다 가능하다. 데이터는 선택된 전자 장치로 라우팅되기 전에, 데이터 변환기를 가진 전자 장치를 통하여 라우팅될 수 있다.
소정의 기준을 만족시키는 전자 장치를 결정하기 위하여, 서비스 발견이 수행될 수 있다. 서비스 발견은 서비스 디렉토리를 액세스함으로써 수행될 수 있다. 서비스 디렉토리는 전자 장치들 각각 및 전자 장치들 간의 접속에 관한 속성을 포함할 수 있다. 서비스 디렉토리는 생성되어 전자 장치들 각각, 하나 이상의 전자 장치, 또는 전자 장치 중 하나가 아닌 원격 전자 장치 상에 상주할 수 있다.
본 발명의 다른 측면에서 다수의 전자 장치들을 위한 가상 작업 공간을 제공하는 기술이 제공되는데, 가상 작업 공간에서는 정보가 전자 장치들간의 다수의 접속을 통하여 전자 장치들 간에 교환될 수 있다. 하나 이상의 속성이 작업 공간 내의 다수의 전자 장치 중 하나 이상의 전자 장치에 대하여 결정되고, 속성들이 하나 이상의 서비스 디렉토리에 저장될 수 있다. 속성들은 전자 장치의 기능들, 전자 장치들간 접속의 접속 유형, 전자 장치의 장치 유형, 전자 장치에 의해 제공될 수 있는 애플리케이션과 서비스, 전자 장치에 의해 제공되는 각 서비스에 대한 액세스 권리를 포함할 수 있다. 하나 이상의 데이터 포맷이 결정되는데, 데이터 포맷 또는 포맷들은 전자 장치들 중 적어도 하나의 전자 장치에 의해 액세스될 수 있는 데이터와 관련되어 있다. 데이터의 일부는 하나 이상의 데이터 포맷 중 정해진 포맷을 가지고 있다. 전자 장치는 속성들 및 상기 정해진 데이터 포맷에 적어도 부분적으로 기초하여 정해진다. 접속들 중 정해진 하나 이상의 접속을 포함하는 경로가 선택된 전자 장치로의 접속을 통하여 결정된다. 정해진 데이터 포맷과 관련된 데이터의 적어도 일부가 선택된 전자 장치로의 하나 이상의 접속을 통하여 라우팅된다. 데이터의 일부는 선택된 전자 장치에 의해 수신될 때 선택된 전자 장치에 의해 표시되도록 이용가능하다.
제2 가상 작업 공간이 제2의 다수의 전자 장치에 대한 제2 서비스 디렉토리를 결정함으로써 형성될 수 있다. 제2 서비스 디렉토리는 제2 가상 작업 공간의 전자 장치를 선택하기 위하여 액세스될 수 있다. 제1 가상 작업 공간으로부터 제2 가상 작업 공간 내의 하나 이상의 전자 장치로 하나 이상의 전자 장치를 접속함으로써, 제1 및 제2 작업 공간이 접속될 수 있다.
본 발명의 다른 특징 및 장점뿐만 아니라, 본 발명에 대한 보다 완벽한 이해는 다음 상세한 설명과 도면을 참조하면 얻을 수 있을 것이다.
도 1은 본 발명의 바람직한 실시예에 따라, 네트워크를 통하여 통신하는 전 자 장치들의 두 개의 집합-각 집합은 개인 작업 공간으로 그룹화됨-을 도시하는 도면.
도 2 내지 도 4는 본 발명의 바람직한 실시예에 따라, 개인 작업 공간에서 전자 장치들에 대한 전형적인 특성 및 접속을 도시하는데 이용되는 블록도.
도 5는 본 발명의 바람직한 실시예에 따라 통신하는, 작업 공간에서의 4개의 전자 장치의 예를 도시하는 블록도.
도 6은 본 발명의 실시예가 어떻게 구현될 수 있는지 도시하는 소프트웨어 계층을 도시하는 블록도.
도 7a 및 도 7b는 본 발명의 바람직한 실시예에 따라, 전자 장치를 선택하고, 선택된 전자 장치로 데이터를 동적으로 라우팅하는 방법을 상세히 도시하는 흐름도.
도 8은 새로이 이용가능한 서비스 디렉토리를 추가하기 위한 전형적인 발견 디렉토리 셋업 방법의 흐름도.
도 9는 더 이상 이용가능하지 않은 서비스 디렉토리를 제거하기 위한 전형적인 발견 디렉토리 셋업 방법의 흐름도.
도 10 내지 도 15는 도 2 내지 도 4에서 11, 12, 13, 21, 22, 23으로 각각 식별되는 전자 장치들 내에 생성된 전형적인 서비스 디렉토리를 도시하는 도면.
도 16은 본 발명의 바람직한 실시예에 따라, 전자 장치를 선택하고 선택된 전자 장치로 데이터를 동적으로 라우팅하는 전체적인 방법을 도시하는 도면.
본 발명의 특징은 전자 장치가 서로 접속되어 데이터를 교환할 수 있도록 한다. 이러한 전자 장치들의 집합은 가상 작업 공간 내로 모일 수 있다. 다른 전자 장치들의 집합은 또한 다른 가상 작업 공간 내로 모일 수 있다. 가상 작업 공간 각각은 인터넷, 인트라넷, 또는 ad hoc 네트워크와 같은 네트워크와 최적으로 통신할 수 있다.
사용자는 사용자와 관련된 가상 작업 공간 또는 다른 사용자와 관련된 가상 작업 공간 내의 전자 장치들 중 하나 상에 존재하는 데이터를 액세스하도록 선택할 수 있다. 본 발명은 데이터를 사용자에게 표시하기 위하여, 전자 장치가 사용자 또는 사용자들과 관련된 가상 작업 공간 내의 모든 전자 장치들 중에서 선택될 수 있도록 한다. 선택된 전자 장치는 다수의 소정의 기준 및 데이터와 관련된 하나 이상의 데이터 포맷에 기초하여 선택된다.
가상 작업 공간은 유리하게도 데이터를 일관성있고 지속적으로 표시할 수 있고, 마치 하나의 계산 플랫폼이 사용되고 있는 것처럼 데이터가 보이게 할 수 있다. 예를 들어, 사용자가 전자 장치들의 집합을 서로 접속하여 특정 조건 하에 특정 데이터를 액세스할 때, 데이터는 하나 또는 여러개의 전자 장치 상에 표시되어야 한다. 데이터, 조건 및 전자 장치가 변화하지 않는 한, 데이터는 동일한 하나의 장치 또는 여러 장치상에 표시되어야 한다. 따라서, 데이터를 일관성있고 지속적으로 표시하는 것이 본 발명의 실시예에 제공될 수 있다.
이제 도 1을 살펴보면, 네트워크(111)를 통하여 통신하는 전자 장치들의 두 집합이 도시되어 있다. 전자 장치의 각 집합은 개인 작업 공간(104, 120)으로 그룹화될 수 있다. 개인 작업 공간(104) 내의 전자 장치의 집합은 태블릿 컴퓨터(101), 셀룰러 폰(102), 및 PDA(103)(집합적으로 전자 장치(101-103))을 포함한다. 개인 작업 공간(120) 내의 전자 장치들의 집합은 PDA(112), 셀룰러 폰(113), 랩탑(114)(집합적으로 전자 장치(112-114))을 포함한다.
다수의 전자 장치(101-103)를 휴대하는 사람은 그 전자 장치들 간에 일관성있고 지속적인 작업 공간(104)을 원할지도 모른다. 일관성있고 지속적인 작업 공간(104)을 제공하기 위하여, 전자 장치(101-103)는 유리하게는 하나의 가상적인 계산 플랫폼을 형성하면서 데이터와 리소스를 공유하도록 서로 협업해야 한다. 이러한 이유로, 개인 작업 공간(104)은 사람이 작업을 편리하게 완료하는데 필요로 하는 것을 제공해야 한다. 이러한 전자 장치(101-103)가 서로 간에 통신하여, 어떤 전자 장치가 사용되는지에 관계없이 지속적인 표시를 제공하는 것은 유리하다. 또한, 데이터를 표시하기 위하여 "최상의" 전자 장치로 생각되는 전자 장치로 데이터를 라우팅하는 것이 바람직한 일이다.
본 발명의 일 실시예에서, "최상의" 전자 장치는 데이터의 데이터 유형, 사용자 선호도, 전자 장치의 표시 기능 및 전자 장치의 디스플레이 기능을 포함하는 기준에 의해 정의된다. 예를 들어, PDA(103, 112)는 디스플레이 캘린더와 주소록 데이터, 자격 있는 PIM(personal information manager) 정보(107) 및 음성 메일(108)을 표시할 수 있다(참조 번호 106으로 도시됨). 한편, 셀룰러 폰(102, 103)은 음성 메일(108)과 간단한 이메일(119)을 표시할 수 있다(참조 번호 105로 도시됨). 반면, 태블릿 컴퓨터(101)와 랩탑 컴퓨터(114)는 음성 메일(108)과 간단한 이메일(119)과 같은 데이터 및 팩스(117)와 비디오(118)와 같이 더욱더 계산 집약적인 데이터를 표시할 수 있다(참조 번호 121로 도시됨).
전자 장치(101-103)의 디스플레이 및 표시 기능 및 사용자 선호도에 기초하여, PIM 정보(107), 음성 메일(108), 이메일(119), 팩스(117) 및 비디오(118) 내의 데이터가 개인 작업 공간(104) 내에서 하나 이상의 선택된 전자 장치로 라우팅된다. 이러한 라우팅은 바람직하게는 동적이다(dynamic). 왜냐하면 현재 상태는 전자 장치를 선택하는데 사용되는 특정한 기준을 만족할지 모르지만, 장래의 상태는 상이한 전자 장치를 선택하는데 사용되는 다른 기준을 만족할지 모르기 때문이다. 예를 들어, 사용자가 태블릿 컴퓨터(101)를 사용하고 있다면, 태블릿 컴퓨터(101)는 오디오 음성 메일(108)을 표시하기 위하여 선택 전자 장치로서 선택될 수 있다. 만일 사용자가 태블릿 컴퓨터(101)의 전원을 끈다면, 그 후에는 오디오 음성 메일(108)을 표시하기 위하여 PDA(103)가 사용될 수 있다.
자신의 개인적 전자 장치(112-114) 세트를 휴대하는 두 번째 사람은 그 자신의 개인 작업 공간(120)을 가질 것이다. 개인 작업 공간(120)에서 각 전자 장치(112-114)는 유리하게는 특정한 작업을 처리하도록 작동한다.
개인 작업 공간(104)과 개인 작업 공간(120)이 통신할 필요가 있을 때, 이들은 먼저 접속되어야 한다. 첫 번째 사람이 휴대하는 전자 장치(101-103) 세트의 일부가 네트워크(111)를 통하여 두 번째 사람이 휴대하는 전자 장치(112-114) 세트의 부분에 접속될 수 있다. 네트워크(111)는 인터넷, 인트라넷, ad-hoc 네트워크를 형성함으로써 생성되는 직접 접속, 또는 다른 임의의 네트워크가 될 수 있다. 이러한 두 개의 개인 작업 공간(104, 120)이 접속될 때, 각 작업 공간(104, 120)은 바람직하게는 하나의 엔티티로서 작용하고, 두 개의 개인 작업 공간(104, 120)이 소정의 기준을 사용함으로써 전자 장치(101-103, 112-114) 중 "최상의" 전자 장치를 결정한다. 심지어 제한적인 이용가능한 접속성을 이용하여, 각 개인 작업 공간(104, 120)은 데이터의 변환 및 전자 장치로의 라우팅 성능을 포함하는 라우팅 기준에 기초하여, 최상의 전자 장치로의 적절한 경로를 동적으로 결정할 수 있다.
이제 다른 예를 설명하겠다. 셀룰러 폰(113)은 PDA(103)로부터 PIM 정보(107)를 표시하는데 최상의 장치인 반면, 태블릿 컴퓨터(101)는 랩탑 컴퓨터(114)로부터 프리젠테이션 챠트(도시되지 않음)를 표시하는데 최상의 장치일 수 있다. 일실시예로 전자 장치(101-103, 112-114) 각각이 각 사용자에 대한 사용자 선호도 및 디스플레이 성능, 비디오 성능, 오디오 성능을 포함하는 장치 성능을 검사한 후, 상기 데이터는 셀룰러 폰(113) 및 태블릿 컴퓨터(101)로 라우팅된다. 그러나, PDA(103)는 셀룰러 폰(113)과 직접 통신할 수 없을지도 모른다. 마찬가지로 랩탑 컴퓨터(114)는 태블릿 컴퓨터(101)과 직접 통신할 수 없을지도 모른다.
그러나, PDA(103)가 태블릿 컴퓨터(101)와 통신할 수 있고 태블릿 컴퓨터(101)가 셀룰러 폰(113)에 접속된다고 가정해보자. 이 경우, PDA(103)는 데이터를 셀룰러 폰(113)으로 라우팅하기 위한 프록시로서 태블릿 컴퓨터(101)를 사용할 수 있다. 이 예에서, 만일 PDA(103)로부터의 PIM 정보(107)를 셀룰러 폰(113)이 이해할 수 없지만, 태블릿 컴퓨터(101)는 PDA(103)와 셀룰러 폰(113) 모두에 의해 요구되는 포맷을 이해한다면, 프록시 라우터로서 사용되고 있는 태블릿 컴퓨터(101)는 또한 PIM 정보(107)에 대하여 데이터 포맷의 변환을 수행할 수 있다. 반면에, 만일 태블릿 컴퓨터(101)가 PIM 정보(107)의 데이터 포맷을 이해할 수 없지만, 셀룰러 폰(102)이 데이터 포맷을 이해한다면, 셀룰러 폰(102)은 데이터 변환기로서 작용할 수 있다. 따라서, PIM 정보(107)가 태블릿 컴퓨터(101)로 라우팅되기 전에, PIM 정보(107)는 데이터 변환을 위하여 셀룰러 폰(102)으로 라우팅된다.
동일한 토큰에 의해, 랩탑 컴퓨터(114)가 태블릿 컴퓨터(101)에 접속되지 않는다고 가정하자. 이 경우, PDA(112)가 랩탑 컴퓨터(114)에 접속되어 있다면, 랩탑 컴퓨터(114)는 태블릿 컴퓨터(101)와 통신하는 프록시로서 PDA(112)를 사용하려고 시도할 것이다. 반면에, 랩탑 컴퓨터(114)가 태블릿 컴퓨터(101)와 직접 통신할 수 있다면, 랩탑 컴퓨터(114)는 그 후 태블릿 컴퓨터(101)와 직접 통신할 수 있다. 더욱이, 통신이 데이터 포맷의 변환을 필요로 한다면, 동일한 작업 공간 또는 다른 작업 공간 중 어느 한 군데 내에서 적당한 데이터 변환기가 검색될 것이고, 전술한 것과 같은 데이터 변환기를 통하여 데이터가 라우팅될 수 있다. 또한, 데이터의 변환에 하나보다 많은 전자 장치가 참여하는 것도 가능하다.
또한, 도 1에는 도시되지 않았지만, 데이터는 다수의 데이터 포맷을 포함할 수 있다. 예를 들어, 비디오(118)는 오디오 데이터 및 비디오 데이터를 모두 포함할 수 있다. 오디오 데이터가 랩탑(114)으로 라우팅될 수 있는 반면, 비디오 데이터는 태블릿 컴퓨터(101)로 라우팅될 수 있다.
이제 도 2를 참조하면, 두 개의 개인 작업 공간(201, 207)이 도시되어 있다. 개인 작업 공간(201, 207)은 개인 작업 공간(201) 내의 전자 장치(202, 203, 213) 및 개인 작업 공간(207) 내의 전자 장치(206, 211, 209)에 대한 접속 및 전형적인 특성을 도시하는데 사용된다.
본 예에서, 3개의 전자 장치(202, 203, 213)는 제1 개인 작업 공간(201)을 형성하면서, 장치 ID 11을 가진 전자 장치(202)를 통하여 서로 간에 접속되어 있다. 다시 말해서, 장치 ID 11을 가진 전자 장치(202)는 장치 ID 12를 가진 전자 장치(203) 및 장치 ID 13을 가진 전자 장치(213) 모두에 대하여 라우터로서 작용하고 있다. 전자 장치(202)와 전자 장치(203)를 접속하는 접속(215)의 접속 유형은 CT1이다. 전자 장치(202)와 전자 장치(213)를 접속하는 접속(214)의 접속 유형은 CT2이다. 반면에 제2 개인 작업 공간(207) 상에서는 모든 전자 장치가 동일한 작업 공간 내의 모든 다른 전자 장치(206, 211, 209)에 접속(205, 208, 210)을 통하여 접속되어 있다. 장치 ID 22를 가진 전자 장치(211)와 장치 ID 23을 가진 전자 장치(209) 간의 접속(210)의 접속 유형은 CT1 아니면 CT2이다. 장치 ID 21을 가진 전자 장치(206)로의 접속(205, 208)은 CT1 유형이다.
전자 장치(202)와 전자 장치(209)는 D1 유형 전자 장치이고, CT1과 CT2의 접속 유형을 지원하며, AT1 유형 및 AT2 유형 애플리케이션을 실행한다. AP1 애플리케이션은 AT1 유형의 애플리케이션이고, 입력 포맷 F1, F2, F4 및 출력 포맷 F1, F2를 지원한다. AP8 애플리케이션은 또한 AT1 유형의 애플리케이션이고, 입력 포맷 F1, F2, F3 및 출력 포맷 F1, F2를 지원하는 반면, AP2 애플리케이션은 또한 AT2 유형의 애플리케이션이고, 입력 포맷 F3, F4, F5 및 출력 포맷 F1, F3을 지원한다. 전자 장치(202)는 128 × 160 화소 해상도를 가지고 있고, 오디오 포맷 CVSD(Continuous Variable Slope Delta Modulation) 8KHz 를 지원할 수 있는 컬러 디스플레이를 가지고 있다. 전자 장치(202, 203, 213, 206, 211, 209)의 이러한 특징은 도 2에 표로 정리되어 있다.
도 2에서, 제1 개인 작업 공간(201)은 전자 장치(202)를 통하여 제2 개인 작업 공간(207)에 접속되어 있다. 전자 장치(202)는 전자 장치(211) 및 전자 장치(209)에 각각 접속(204, 212)을 사용하여 접속되어 있고, 접속(204, 212)은 각각 CT1 또는 CT2의 접속 유형을 가지고 있다. 데이터는 접속(204, 212)을 통하여 라우팅될 수 있다.
이제 도 3을 참조하면, 작업 공간(201, 207)이 상이한 구성으로 도시되어 있다. 도 3은 두 개의 작업 공간(201, 207) 사이에 세 개의 접속(304, 312, 316)을 가지고 있다. 도 3에서 데이터는 접속부(304, 312, 316)을 통하여 라우팅될 수 있다. 어느 경로를 선택할 것인지는 예를 들어, 선택된 전자 장치, 데이터 변환이 필요한지 여부 및 접속 유형에 따라 달라진다. 도 4에서 작업 공간(201, 207)은 그들 사이에 단지 하나의 접속(404)을 가지고 있다. 도 4의 예에서, 작업 공간(201, 207) 사이에 전달되는 모든 데이터는 접속(404)을 통하여 라우팅된다.
이제 도 5를 참조하면, 4개의 전자 장치(505-1 내지 505-4)의 다이어그램이 도시되어 있다. 각 전자 장치(505)는 소프트웨어 스택(510) 및 프로세서/하드웨어 부분(550)을 포함한다. 각 프로세서/하드웨어 부분(550)은 다른 프로세서들/하드웨어 부분들(550) 또는 프로세서와 하드웨어의 조합과 통신할 뿐만 아니라, 명령어를 임베드하고 구현하는데 적합한 하드웨어인 프로세서만을 포함할 수 있다. 또한, 도 5에 도시된 바와 같이, 프로세서/하드웨어 부분(550)은 물리적 링크(560)를 제공하기 위하여, 통신 장치(도시되지 않음)를 포함한다. 각 소프트웨어 스택(510)은 다수의 애플리케이션(520), 개인 협업 미들웨어 층(530), 운영 체제(OS)(540)를 포함한다. 각 개인 협업 미들웨어(530)는 서비스 디렉토리(535)를 포함한다. 전자 장치(505-1, 505-2)는 물리적 링크(560-1)를 통한 미디어 스트림(570-1)을 통하여 데이터를 전달한다. 마찬가지로, 전자 장치(505-2, 505-3)는 물리적 링크(560-2)를 통한 미디어 스트림(570-2)을 통하여 데이터를 전달하는 반면, 전자 장치(505-3, 505-4)는 미디어 스트림(570-3)을 통하여 데이터를 전달하며 물리적 링크(560-3)를 통하여 접속된다. 본 예에서, 물리적 링크(560)는 무선 이더넷 링크와 같은 물리적 하드웨어 접속인 반면, 미디어 스트림(570)은 TCP/IP와 같은 더 상위의 통신 프로토콜 계층 또는 HTTP 계층과 같은 훨씬 더 상위의 계층에서 보내지는 데이터 스트림이다. 상위 계층의 통신은 물리적 링크를 통하여 수행된다.
프로세서/하드웨어 부분(550) 및 소프트웨어 스택(510)은 하나의 반도체 장치 상에 집적되거나, 다수의 반도체 장치로 분리될 수 있음을 유의해야 한다. 더욱이, 소프트웨어 스택(510)은 하나 이상의 메모리를 통하여 구현될 수 있는데, 각 메모리는 하나 이상의 저장 장치를 포함한다. 저장 장치들은 자기 디스크 또는 광 디스크, RAM, ROM, 및 EEROM(electrically erasable read-only memory), 플래시 메모리, 배터리 백업 메모리, 테이프, 또는 다른 저장 장치를 포함할 수 있다. 예로서, 메모리는 OS(540)의 일부를 저장하는 ROM, 개인 협업 미들웨어(530) 및 OS(540)의 다른 부분을 저장하는 RAM, 전체 소프트웨어 스택(510)을 저장하는 비휘발성 RAM을 포함할 수 있다.
*OS(540)가 어떤 특징을 가지느냐 하는 것은 개인 협업 미들웨어(530)에서 무엇이 구현되어야 하는가에 따라 달라진다. 개인 협업 미들웨어(530)는 방법(700, 800, 900, 1600)을 수행하는데, 추후 자세히 설명하겠다. 개인 협업 미들웨어(530)는 (사용자 선호도뿐만 아니라) 서비스 디렉토리(535)를 저장할 수 있는데, 이는 도 10 내지 도 15에 더 자세히 도시된다. 개인 협업 미들웨어(530)는 전자 장치(505) 간에 협업을 가능하게 한다. 협업은 표시 목적, 사용자 입력 목적 또는 두 목적 모두를 위하여, 선택된 전자 장치로 데이터를 라우팅하기 위하여 전자 장치 간에 정보를 교환하는 것이다. 일반적으로 제1 전자 장치는, 제2 전자 장치가 제1 전자 장치가 데이터를 표시할 최상의 전자 장치인지 여부를 결정할 수 있도록, 제1 전자 장치에 관한 속성들을 제2 전자 장치로 전송할 것이다. 만일 제1 전자 장치가 데이터를 표시할 최상의 전자 장치라면, 제2 전자 장치는 데이터를 제1 전자 장치로 전송한다. 도 5에 도시된 바와 같이, 각 전자 장치의 속성들은 서비스 디렉토리(535)에 저장된다. 또한, 메시지와 같은 정보의 다른 교환이 일어날 수 있다.
이러한 전형적인 실시예에서, 각 전자 장치(505)는 OS(540)의 위에서 개인 협업 미들웨어 계층(530)을 실행하는데, 개인 협업 미들웨어 계층(530)은 본 발명을 구현하기 위하여, 예를 들어, 정보를 공유하고 데이터를 처리하고 정보를 표시하고 접속과 개인 선호도를 처리하는 기능을 제공한다. 이러한 기능의 일부는 OS(540)에서 실행되거나, 개인 협업 미들웨어(530)에서 실행될 수 있는데, 그 이유는 많은 작업 공간에서 OS(540)와 개인 협업 미들웨어(530) 간의 분명하게 나뉘는 경계가 없기 때문이다.
각 서비스 디렉토리(535)는 다수의 블록 노드를 포함하는데, 이는 도 5에 도시되지 않고, 도 10 내지 도 15에 좀 더 상세히 도시된다. 넓게 보아서, 서비스 디렉토리는 전자 장치(505)가 어떻게 접속되고 그들의 성능이 무엇인지에 관한 정보를 제공한다. 일반적으로 각 서비스 디렉토리는 다수의 블록 노드(도 5에 도시되지 않음)를 포함하는데, 각 블록 노드는 전자 장치들(505) 중 하나에 관한 정보를 담고 있다. 각 블록 노드는 또한 두 개의 블록 노드에 대응하는 두 개의 전자 장치(505)가 어떻게 접속되는지를 설명하는 링크 정보를 포함한다. 서비스 디렉토리와 블록 노드는 도 10 내지 도 15를 참조하여 더 상세히 설명한다.
도 5의 예에서, 각 전자 장치(505)는 서비스 디렉토리(535)를 포함한다. 도 10 내지 도 15를 참조하여 설명하는 바와 같이, 각 서비스 디렉토리(535)는 각 전자 장치(505)가 다른 전자 장치(505)에 접속되는 방식으로 인하여, 약간 서로 상이할 것이다. 그러나, 전자 장치(505)에 대하여 하나의 서비스 디렉토리(535)가 존재하는 것이 가능하다. 예를 들어, 단일 서비스 디렉토리(535)는 전자 장치(505-1)에 저장될 수 있고, 전자 장치(505-2, 505-3, 505-4) 각각은 전자 장치(505-1)에 저장된 서비스 디렉토리(535)에 접속될 것이다.
여기서 설명되는 본 발명은, 실행시에 본 발명의 실시예를 구현하는 하나 이상의 프로그램을 담고 있는 소프트웨어 스택(510)의 일부로서, 기계로 판독가능한 매체를 포함하는 제조물로서 구현될 수 있다. 예를 들어, 기계로 판독가능한 매체는 개인 협업 미들웨어(530)가 거치는 단계를 수행하도록 구성된 프로그램을 포함할 수 있다. 예를 들어, 기계로 판독가능한 매체는 하드 드라이브, 광 디스크 또는 자기 디스크, 전자 메모리, 또는 다른 저장 장치와 같은 기록가능한 매체가 될 수도 있다.
도 6은 계층들이 하나 이상의 전자 장치에 대하여 어떻게 구조화될 수 있는지에 대한 예를 보여준다. 참조 번호(628)는 OS 계층(630), 개인 협업 미들웨어 계층(631), 애플리케이션 계층(632), 사용자 인터페이스 및 표시 계층(633)을 포함하는 소프트웨어 계층들의 상위 레벨 모습을 도시한다. 사용자 인터페이스 및 표시 계층(633)의 사용자 인터페이스 부분은 키보드, 마우스, 음성 인식, 펜 입력과 같은 사용자 입력을 처리하고, 디스플레이, 프린터, 스피커와 같은 사용자에 대한 응답 또는 컴퓨터 출력을 처리한다. 사용자 인터페이스 및 표시 계층(633)의 표시 부분은 정보의 집합을 출력 장치에 어떻게 도시하는지 조직화하면서, 컴퓨터 출력을 처리한다. 또한, 프로세서/하드웨어 계층(629)이 도시되어 있다. 프로세서/하드웨어 계층(629)은 작업 공간에서 전자 장치들이 포함할 수 있는 물리적 하드웨어를 포함한다. 이러한 하드웨어는 사용을 위해 실제 데이터가 저장되고, 애플리케이션이 실행되며, 물리적 접속이 이루어지는 장소들을 포함할 수 있다.
계층(615)은 어느 기능이 OS 계층(630)과 일반적으로 관련되어 있는지 나타내고, 계층(613)은 어느 기능이 개인 협업 미들웨어 계층(631)과 일반적으로 관련되어 있는지 나타내는 반면, 계층(609)은 어느 기능이 애플리케이션 계층(632)과 일반적으로 관련되어 있는지 나타낸다. 그러나, 이것은 예일 뿐, 하나의 블록과 관련된 일부 기능들은 어떤 구현에서는 다른 계층에서 구현될 수 있다. 예로서, 원한다면, 어떤 데이터 관리 기능(616)은 OS 계층(630) 대신에 개인 협업 미들웨어 계층(631)에서 구현될 수 있다.
각 전자 장치는 OS 계층(630)에서 그 자신의 운영 체제를 실행할 수 있다. OS 계층(630)은 데이터 변환을 다루는 데이터 관리 기능(616)을 포함하는 반면, 데이터를 사용하는 표시 관리자(612)는 개인 협업 미들웨어 계층(631) 상에서 실행될 수 있다. 데이터 변환은 도 6에서 트랜스코딩 및/또는 변형 모듈(617)로서 도시되어 있다. 트랜스코딩은 데이터를 재포맷하여, 일반적으로 한 스크린 사이즈 및 해상도의 데이터를 다른 스크린 사이즈 및 해상도로 변환한다. 트랜스코딩은 일반적으로 신호 처리와 같은 약간의 "코딩"을 필요로 한다. 예를 들어, 랩탑용 인터넷 웹 페이지는 스케일링을 통하여 PDA를 위한 훨씬 더 작은 스크린에 맞도록 트랜스코딩될 수 있다. 변형은 데이터를 하나의 데이터 포맷에서 다른 데이터 포맷으로 변환하는 것을 의미한다. 예를 들어, 하나의 워드 프로세서를 위해 포맷된 문서는 다른 워드 프로세서에서 표시되도록 재포맷될 수 있다.
데이터 관리 기능(616)은 전자 장치들 중에 데이터의 동기화(618)를 포함할 수 있다. 또한, OS 계층(630)은 일반적으로 서비스 발견(627) 및 접속 관리(625)를 처리하는 inter/intra 작업 공간 통신 관리자(623)를 포함할 것이다. 데이터 관리(616) 및 inter/intra 작업 공간 통신 관리자(623)와 같은 OS 계층(630)에 도시된 기능은 메모리 관리, 파일 관리, 스케쥴링, 통신 관리, 및 입/출력 관리와 같은 종래의 OS 기능에 추가되는 유리한 부가 기능들이다. 이러한 기능들 모두 또는 일부는 또한 이미 언급한 바와 같이 개인 협업 미들웨어 계층(631)에서 구현될 수 있다.
그 외에 표시 관리자(612), 피어 인터랙션 관리자(611), 서비스 디렉토리(645), 검색 엔진(636), 액세스 제어 관리자(635), 및 사용자 감시 기능 및 선호도(614)가, 개인 협업 미들웨어 계층(631)에 대응하는 계층(613)에서 구현된다. 표시 관리자(612)는 데이터가 사용자에게 어떻게 표시되어야 하는지 처리한다. 피어 인터랙션 관리자(611)는 원격 서비스 호출 및 이러한 원격 서비스 요청이 수신될 때 애플리케이션을 호출하는 것뿐만 아니라, 피어 전자 장치들과의 통신을 처리한다. 액세스 제어 관리자(635)는 서비스가 서비스 요청자에 의해 액세스 될 수 있는지 여부를 확인한다. 검색 엔진(636)은 장치의 속성들 및 어느 전자 장치에 데이터가 위치하는지 여부를 결정하기 위하여, 작업 공간에서 전자 장치들을 검색할 수 있다. 사용자 감시 기능 및 선호도(614)는 사용자 정책 및 선호도를 처리하고, 사용자 선호도를 포함할 수 있다.
개인 협업 미들웨어 계층(631)의 위에, 계층(609)으로 도시된 바와 같이, 애플리케이션 계층(632)이 존재한다. 계층(609)은 달력(610), 차세대 이메일(605), 통지(602) 및 태스크 관리(634) 애플리케이션들을 포함한다. 이러한 애플리케이션들은 작업 공간 내의 임의의 선택된 가능한 전자 장치를 사용하여 사용자에게 데이터를 표시할 수 있다. 어떤 경우에는, 정보의 일부가 하나의 전자 장치 상에 도시되는 동안, 다른 부분이 다른 전자 장치 상에 도시될 것이다. 선호되는 기능이 있는 전자 장치들이 작업 공간을 위한 사용자의 입력을 받아들이는데 사용될 것이다. 도 6에 각 기능 블록이 어떻게 나누어지는가 및 어떻게 구현되는가는 본 발명의 주제를 벗어나는 것이지만, 도 6은 본 발명의 바람직한 실시예에서처럼 필요하다면, 데이터 변환기를 통하여 하나 이상의 최상의 적합한 전자 장치로 데이터를 라우팅하도록, 전자 장치들간의 통신을 가능하게 하는데 적합한 예시적인 기능들을 도시한다.
도 7a 및 도 7b는 전자 장치를 선택하고, 선택된 전자 장치로 데이터를 동적으로 라우팅하는 예시적인 방법(700)을 도시한다. 이 방법(700)은 일반적으로 개인 협업 미들웨어에 의해 수행되고, 하나의 전자 장치 상에서 실행되는 것으로 도시되어 있다. 따라서, 하나의 전자 장치 상의 개인 협업 미들웨어는 이 방법(700)을 수행하여, 서비스 디렉토리를 생성하거나 수정하거나, 데이터를 전송하거나, 데이터를 변환하거나, 데이터를 수신하거나, 이들을 조합한 것을 수행할 수 있다.
단계(702)는 이벤트가 일어날 때까지 대기가 수행되는 대기 단계이다. 이벤트가 발생할 때, 단계(704, 703, 718, 717)가 수행된다.
단계(701)에서 각 전자 장치는 개인 작업 공간 내에서 일반적으로 서비스 디렉토리를 생성한다. 각 서비스 디렉토리는 전자 장치를 위한 "블록 노드(block node)"라고 불린다. 블록 노드는 일반적으로 전자 장치의 성능, 접속 유형, 장치 유형, 전자 장치에 의해 제공될 수 있는 서비스 또는 애플리케이션 및 각 서비스에 대한 액세스 권한을 기술하는 정보와 같은 다양한 속성을 포함한다. 전형적인 서비스 디렉토리 및 블록 노드가 도 10 내지 도 15에 도시되어 있다. 블록 노드를 결정하는 것은 정보가 요청될 때 동적으로 수행되거나, 정보가 요청되기 전에 수행될 수 있다.
서비스 디렉토리는 예를 들어 주소록(address book) 애플리케이션에 의해 판독될 수 있는 전화 번호와 같은 단일 정보처럼 간단할 수 있다. 새로운 전자 장치가 작업 공간에 진입하거나, 작업 공간을 이탈할 때, 각각 새로이 이용가능한 블록 노드를 추가하거나 블록 노드를 제거함으로써, 서비스 디렉토리를 갱신한다. 전자 장치가 작업 공간에 진입하거나 작업 공간을 이탈할 때마다, 작업 공간 내의 하나 이상의 전자 장치에 의해 서비스 디렉토리를 갱신하기 위한 메시지가 생성된다(단계 704). 예를 들어, 만일 전자 장치의 전원이 꺼지면, 전자 장치는 서비스 디렉토리를 갱신하기 위한 메시지를 전송할 수 있다. 또한, 전자 장치가 폴(poll)에 응답하지 않는다면, 전자 장치를 제거하기 위해 폴링이 사용될 수 있다. 또한, 만일 전자 장치가, 추가된 애플리케이션과 같은 새로운 서비스를 가지고 있다면, 전자 장치는 서비스 디렉토리를 갱신하기 위한 메시지를 전송할 수 있다.
서비스 디렉토리 갱신이 있을 때(단계 704에서 예), 새로이 결합된 전자 장치 또는 새로이 갱신된 전자 장치로부터의 서비스 디렉토리가 새로운 블록 노드를 포함하도록 갱신된다. 이는 단계(705) 및 도 8의 방법(800)에서 일어난다. 또한, 전자 장치가 작업 공간을 이탈하여 작업 공간 내의 다른 장치들과 통신할 수 있거나 전자 장치의 전원이 꺼지는 경우와 같이 서비스 디렉토리의 블록 노드가 제거될 것이라면, 블록 노드는 단계(705) 및 도 9의 방법(900)에서 제거된다. 새로이 추가된 전자 장치 또는 제거된 전자 장치는 자신의 서비스 디렉토리를 갱신해야 하는데, 이 또한 단계(705)에서 일어난다. 만일 서비스 디렉토리 갱신이 없다면(단계 704에서 아니오), 방법(700)은 단계(702)에서 계속하여 다른 이벤트를 기다린다. 이벤트는 큐잉(queuing)될 수 있다는 것을 유의해야 한다.
만일 전자 장치로부터 데이터를 전송하라는 요청이 없다면(단계 703에서 아니오), 방법(700)은 단계(702)에서 계속하여 다른 이벤트를 기다린다. 만일 전자 장치로부터 데이터를 전송하라는 요청이 있다면(단계 703에서 예), 예를 들어, (도 16을 참조하여 설명한 바와 같은) 사용자의 선호도에 기초하여 "최상의" 목적지 전자 장치가 단계(706)에서 결정된다. 단계(707)에서 데이터 변환기가 필요한지 여부가 결정된다. 만일 그렇다면(단계 707에서 네), 예를 들어, 사용자 선호도, 장치 성능, 및 서비스의 이용가능성에 기초하여 "최상의" 데이터 변환기가 결정된다. 이는 단계(708)에서 일어난다. 단계(709)에서 데이터 변환기가 발견되었는지 여부가 결정된다. 만일 변환기가 다른 전자 장치 상에서 이용가능하다면, 원격 프러시져 호출 요청이 다른 장치로 전송될 수 있다.
만일 데이터 변환기가 발견되었다면(단계 709에서 네), 접속 이용가능성 및 접속 요구 조건에 기초하여 데이터 변환기로의 "최상의" 경로가 결정되는데, 이는 일반적으로 전자 장치상의 애플리케이션이다. 이는 단계(754)에서 일어난다. 데이터는 그 후 데이터 변환기로 전달된다. 데이터를 전달하는 것은 데이터 변환기를 가진 전자 장치에 도달할 때까지 하나 이상의 전자 장치를 거쳐 데이터를 라우팅하는 것을 포함한다.
만일 데이터 변환기가 발견되지 않는다면(단계 709에서 아니오), 요청된 전송이 적당한 데이터 변환기 없이 행해질 수 없다고 단계(755)에서 요청자에게 통보된다.
데이터 변환기가 필요하지 않다면(단계 707에서 아니오), 목적지 전자 장치까지의 "최상의" 경로가 접속 이용가능성 및 접속 요구 사항에 기초하여 결정된다. 이는 단계(751)에서 일어난다. 단계(753)에서 데이터가 목적지 전자 장치로 전달된다. 데이터를 전달하는 것은 목적지 전자 장치로서 선택된 전자 장치에 도달할 때까지 하나 이상의 전자 장치를 통과하여 데이터를 라우팅하는 것을 포함한다.
단계(718)에서 데이터 변환이 필요한지 여부가 결정된다. 이 단계는 다른 전자 장치 대신에 변환을 수행하는 원격 프로시져 호출이 수신되었는지 여부를 결정함으로써 수행될 수 있다. 예를 들어, JAVA 언어는 원격 프로시져 호출(remote procedure call, RPC) 요청을 가능하게 한다. 만일 데이터 변환기가 지역적으로(locally) 이용가능하다면, 데이터를 포함하는 전자 장치에서 지역적으로 변환이 요청될 수 있다. 만일 데이터 변환이 필요하지 않다면(단계 718에서 아니오), 방법(700)은 단계(702)에서 계속하여 다른 이벤트를 기다린다. 만일 데이터 변환이 필요하다면(단계 718에서 네), 단계(719)에서, 데이터 변환을 수행하기 위해 사용되는 애플리케이션이 변환을 수행할 수 있는지 여부와 애플리케이션이 인에이블될 수 있는지 여부에 대한 결정을 통하여, 전자 장치가 데이터 변환을 실제로 수행할 수 있는지 여부가 결정된다. 만일 단계(719)에서 아니오라면, 단계(720)에서 특정한 데이터 변환이 수행될 수 있는지 여부가 결정된다. 만일 특정한 데이터 변환이 수행될 수 있다면(단계 720에서 네), 애플리케이션은 부분적인 변환을 수행하고(단계 722), 데이터 변환의 출력이 다음 데이터 변환기로 전달된다(단계 711). 만일 특정한 데이터 변환이 수행될 수 없다면(단계 720에서 아니오), 전자 장치는 대표 데이터 변환기를 발견하고(단계 723), 데이터의 전송자에게 대표 데이터 변환기를 통지한다(단계 712).
만일 단계(719)에서 네라면, 데이터 변환이 단계(721)에서 애플리케이션에 의해 수행되고, 데이터 변환의 출력은 단계(710)에서 목적지 전자 장치로 전달된다. 방법(700)은 단계(702)로 돌아가서 다음 이벤트를 기다린다.
단계(717)에서 데이터가 수신될 것인지 여부가 결정된다. 만일 데이터가 수신되지 않을 것이라면(단계 711에서 아니오), 방법(700)은 단계(702)에서 계속된다. 데이터가 수신될 것이라면(단계 717에서 네), 데이터를 표시하는 애플리케이션이 데이터를 표시할 수 있고 데이터를 표시하기 위하여 인에이블될 수 있는지 여부가 결정된다. 이는 단계(716)에서 일어난다. 단계(716)에서 네라면, 데이터가 수신되고(단계 713), 표시된다(단계 745). 만일 단계(716)에서 아니오라면, 다른 가능한 수신자가 발견되고(단계 715), 송신자에게 가능성 있는 수신자를 통지한다(단계 715). 방법(700)은 단계(702)로 돌아가서 다른 이벤트를 기다린다.
이제 도 8로 돌아가서, 새로이 이용가능한 서비스 디렉토리를 추가하기 위한 전형적인 발견 디렉토리 셋업 방법(800)이 도시되어 있다. 도 8은 단계(702), 단계(705) 및 추가되거나 수정되는 갱신 접속(단계 705의 일부)을 나타낸다. 방법(800)은 전자 장치의 개인 협업 미들웨어에 의해 수행된다. 단계(801)는 단계(702)에 도시된 대기 단계로서, 이벤트가 추가적인 조치를 초래한다. 단계(802)에서, 서비스 디렉토리 갱신이 필요한지 여부가 결정된다. 만일 서비스 디렉토리 갱신이 필요하지 않다면(단계 802에서 아니오), 방법(800)은 단계(801)에서 계속된다. 새로이 추가된 전자 장치에 직접 접속되는 전자 장치는 전자 장치들간의 접속을 인에이블하는 단계들을 일반적으로 수행할 것이다. 예를 들어, 단계(803)에서 방법(800)을 수행하는 장치(즉, 장치(I))에 접속되는 새로운 장치(즉, 장치(N))가 있는지 여부가 결정된다. 만일 없다면(단계 803에서 아니오), 방법(800)은 단계(801)에서 계속된다. 만일 있다면(단계 803에서 네), 물리적 접속이 아직 이루어지지 않은 경우, 현재의 장치 및 새로운 장치 간에 네트워크 내의 이용가능한 접속 유형을 이용하여 물리적 접속이 설정된다. 임의의 이용가능한 서비스 발견 프로토콜을 이용하여 서비스 발견이 단계(805)에서 실행된다. 만일 접속 유형이 블루투스 무선 접속이거나, TCP/IP가 사용되는 경우 SLP(service location protocol), Jini, Salutation, 또는 UDDI(universal description, discovery, and integration)와 같은 임의의 상위 계층 서비스 발견 프로토콜이라면, 이러한 프로토콜은 블루투스 서비스 발견 프로토콜과 같은 링크 레벨 서비스 발견을 포함할 수 있다.
단계(813)에서 새로이 추가된 전자 장치에 대하여 "추가(add)" 통지가 수신되었는지 여부가 결정된다. 만일 수신되었다면(단계 813에서 네), 방법(800)은 단계(806)에서 계속된다. 만일 수신되지 않았다면(단계 813에서 아니오), 방법은 단계(801)에서 계속된다. 단계(812, 813)는 전자 장치 및 서비스의 추가를 위한 통지의 메시징 시스템 유형을 제공한다.
새로이 추가된 전자 장치가 다른 전자 장치들에 접속되어, 서비스 디렉토리 내의 다른 전자 장치들로부터의 서비스를 포함하는 것이 가능하다. 결과적으로 새로이 추가된 전자 장치의 서비스 디렉토리에는 다수의 블록 노드가 있을 수 있다. 따라서, 새로이 추가된 전자 장치의 서비스 디렉토리로부터의 모든 블록 노드를 세고(enumerate), 직접적 또는 간접적으로 이용가능한 임의의 새로운 서비스를 추가하는 것이 유익하다. 이를 수행하기 위하여 단계(806) 내지 단계(810)가 수행된다. 단계(806)에서 변수 x가 초기값으로 초기화되는데, 이는 어레이 인덱스 또는 링크드 리스트의 시작 부분인 경우 일반적으로 제로이다. 단계(807)에서, 새로이 추가된 전자 장치의 서비스 디렉토리 내의 블록 노드가, 방법(800)을 수행하는 현재의 전자 장치의 서비스 디렉토리에 이미 존재하는지 여부가 결정된다. 만일 존재하지 않는다면(단계 807에서 아니오), 새로이 추가된 전자 장치에 대한 블록 노드가 현재 전자 장치의 서비스 디렉토리에 링크드 리스트 항목으로서 덧붙여진다. 이는 단계(810)에서 일어난다. 방법은 다시 단계(808)에서 계속되는데, 이는 또한 단계(807)에서 네일 때 도달하는 단계이다. 단계(808)에서 서비스 디렉토리 내에 새로이 추가된 전자 장치를 위한 더 많은 블록 노드가 있는지 여부가 결정된다. 만일 있다면(단계 808에서 네), 변수 x가 단계(809)에서 증가되고, 방법(800)이 단계(807)에서 계속된다. 새로이 추가된 전자 장치는 모든 새로이 이용가능한 서비스를 직접적 또는 간접적으로 추가하는 동일한 프로시져를 또한 거쳐야 한다.
새로운 서비스가 직접 접속된 전자 장치들에 추가될 때, 새로운 전자 장치에 간접적으로 접속된 모든 다른 전자 장치들은 직접 접속된 전자 장치로부터 일반적으로 통지를 받을 것이다. 이는 다음과 같이 유리하게 수행된다. 단계(808)에서, 서비스 디렉토리에 새로이 추가된 전자 장치의 블록 노드가 더 이상 없을 때(단계 808에서 아니오), 만일 현재 서비스 디렉토리에 대한 변화가 이루어졌다면(단계 811에서 네), 현재 작업 공간에서 접속된 모든 전자 장치들에게 갱신이 통지된다(단계 812). 만일 현재의 서비스 디렉토리에 아무런 변화가 없다면(단계 811에서 아니오), 방법(800)은 단계(801)에서 계속된다.
이제 도 9를 참조하면, 더 이상 이용가능하지 않은 서비스 디렉토리를 제거하는 예시적인 발견 디렉토리 셋업 방법(900)이 도시되어 있다. 도 9는 단계(702), 단계(704), 및 전자 장치의 제거로 인한 서비스 디렉토리의 갱신을 설명하는 단계(705)의 일부를 나타낸다. 전자 장치가 개인 작업 공간을 이탈할 때, 이탈하는 전자 장치를 통하여 직접적 또는 간접적으로 이용가능했던 모든 서비스는 서비스 디렉토리로부터 제거되어야 한다. 단계(901)는 도 7의 단계(702)에서 도시된, 이벤트를 기다리는 대기 단계이다. 단계(902)에서 서비스 디렉토리 갱신이 일어났는지 여부가 결정된다. 만일 일어나지 않았다면(단계 902에서 아니오), 방법(900)은 단계(901)에서 계속된다. 만일 일어났다면(단계 902에서 네), 이탈하는 전자 장치에 직접적으로 접속되었던 전자 장치는 전자 장치의 접속이 해제되어 있다는 것을 발견할 것이고(단계 903), 간접적으로 접속되었던 다른 전자 장치들은 단계(910)에서 제거 통지를 받을 것이다. 검출된 전자 장치들은 단계(904 내지 907)을 통하여 블록 노드들을 제거할 것이고, 단계(908 내지 909)를 통하여 다른 전자 장치들에게 통지할 것이다. 접속이 해제된 전자 장치를 통하여 간접적으로 다른 전자 장치들로부터만 이용가능했던 서비스들이 있을 수 있다. 따라서, 모든 전자 장치는 접속 해제된 전자 장치를 통하여 이용가능한 블록 노드들이 있었는지 여부를 위해 그 서비스 디렉토리를 조사해야 한다. 이는 단계(905) 및 단계(906)에서 일어난다.
모든 전자 장치는 결과적으로 서비스 디렉토리 방법(800, 900)이 완료된 후에 동일한 수의 블록 노드를 포함해야 하므로, 새로이 추가된 서비스, 제거된 서비스, 또는 이들 모두가 보고되고 유지되는 중앙 서비스 디렉토리 서버를 이용할 수도 있다. 이러한 중앙 서비스 발견 디렉토리 서버 모델은 예를 들어 UDDI와 같은 많은 서비스 발견 프로토콜에 대하여 더 적합하다. 이러한 방식에 있을 수 있는 한계는 중앙 발견 디렉토리 서버가 개인 작업 공간 내에 있든 아니면 원격지에 있든 간에 중앙 발견 디렉토리 서버로의 접속이 항상 유지되어야 한다는 것이다. 때때로, 중앙 발견 디렉토리 서버들 중 적어도 하나가 동적인 환경에서 접속되어 있다는 것을 보장하기 위하여 리던던트 중앙 발견 디렉토리 서버가 이용될 수 있다. 중앙 서비스 디렉토리 서버가 이용되는 경우에, 전자 장치가 서비스로의 최적의 경로를 결정할 수 있도록, 물리적 링크 접속 정보가 서비스 속성들에 추가되어야 한다.
도 10은 도 2 내지 도 4의 개인 작업 공간(201) 내에 장치 ID 11을 가진 전자 장치(202) 내에 생성된 예시적인 서비스 디렉토리를 도시한다. 전자 장치(202) 내에 이용가능한 서비스에 대하여 블록 노드(1001)가 생성된다. 블록 노드(1004) 및 블록 노드(1005)는 링크 정보(1002, 1003)에 의해 도시된 대로 직접 접속된 서비스이다. 블록 노드(1004, 1005)는 "트리의 끝" 마커(1006, 1007)로 표시된 바와 같이 간접적으로 이용가능한 다른 서비스를 제공하지 않는다.
마찬가지로, 도 11은 도 2 내지 도 4에 도시된 장치 ID 12를 가진 전자 장치(203) 내에 생성된 예시적인 서비스 디렉토리를 도시한다. 제1 블록 노드(1101)는 전자 장치(203)의 서비스를 위한 것인 반면, 제2 블록 노드(1103)는 링크 정보(1104)로 도시된 바와 같이 직접 접속된 서비스를 위한 것이다. 제3 블록 노드(1105)는 링크 정보(1104)를 통하여 간접적으로 이용가능한 서비스를 위한 것이고, 트리의 끝 마커(1106, 1107)로의 링크에 의해 표시된 바와 같은 그러한 블록 외에 간접적으로 이용가능한 서비스는 더 이상 없다. 이는 만일 중간 블록 노드(1103)가 제거되는 경우, 제3 블록 노드(1105)가 또한 자동적으로 제거될 것이라는 것을 의미한다. 그러나, 제2 작업 공간(207)에서는 동일한 예를 이용하는 경우, 주된 차이점이 모든 서비스가 직접적으로 접속된다는 것일 것이다. 따라서, 트리의 끝 마커가 없다. 결과적으로 한 전자 장치가 작업 공간을 이탈하더라도, 후속하여 제거되는 간접적으로 이용가능한 서비스는 없을 것이다.
도 12는 도 2 내지 도 4에 도시된 장치 ID 13을 가진 전자 장치(213) 내에 생성된 예시적인 서비스 디렉토리를 도시한다. 제1 블록 노드(1201)는 전자 장치(213)의 서비스를 위한 것인 반면, 제2 블록 노드(1103)는 링크 정보(1202)에 의해 도시된 바와 같이 직접 접속된 서비스를 위한 것이다. 제3 블록 노드(1205)는 링크 정보(1204)를 통하여 간접적으로 이용가능한 서비스를 위한 것이고, 트리의 끝 마커(1206, 1207)로의 링크에 의해 표시된 바와 같은 그러한 블록 외에 간접적으로 이용가능한 서비스는 더 이상 없다.
도 13 내지 도 15를 참조하면, 도 2 내지 도 4에 도시된 전자 장치(206)(장치 ID 21), 전자 장치(211)(장치 ID 22), 전자 장치(209)(장치 ID 23)내에 각각 생성된 서비스 디렉토리를 도시한다. 개별 전자 장치를 위한 서비스에 대한 블록 노드는 블록 노드(1301, 1401, 1501)로서 도시되어 있고, 직접 접속된 전자 장치를 통하여 이용가능한 서비스는 블록 노드(1304, 1306, 1404, 1406, 1504, 1506)로서 도시되어 있다. 블록 노드 간의 접속 링크는 링크 정보(1302, 1303, 1402, 1403, 1502, 1503)으로서 도시되어 있다. 제2 블록 노드(1304, 1306, 1404, 1406, 1504, 1506)의 끝에 트리의 끝 마커를 가지는 대신에 블록 노드가 서로 간에 링크 정보(1305, 1405 1505)를 통하여 링크되어 있다는 것을 유의하는 것이 중요하다.
서비스 속성을 포함하는 각 블록 노드는 전자 장치의 성능, 애플리케이션 유형, 데이터 및 지원되는 데이터 포맷에 관한 정보를 가져야 한다. 지원되는 데이터 포맷은 전자 장치가 데이터 포맷의 변형을 수행하기 위한 후보인지 여부를 결정하는데 사용될 것이다. 물리적 접속 및 이들의 유형은 최상의 경로를 결정하는데 또한 중요한 정보이다. 이들의 예는 접속을 위해 사용된 물리적 링크뿐만 아니라, 전자 장치 유형 정보, 전자 장치 ID, 애플리케이션 이름 및 접속된 전자 장치를 포함한다.
이제 도 16을 보면, 전자 장치를 선택하고 선택된 전자 장치로 데이터를 동적으로 라우팅하는 전체적인 방법(1600)이 도시되어 있다. 방법(1600)에서, 개인 선호도 프로파일이 최상의 전자 장치 및 최상의 전자 장치로의 최상의 경로를 결정하는 정책으로서 사용될 수 있도록, 개인 선호도 프로파일이 각 전자 장치에서 사용자 입력으로 유리하게 생성된다. 이는 단계(1601)에서 일어난다. 개인 작업 공간이 생성될 때, 전술한 서비스 디렉토리를 생성하기 위하여 서비스 발견이 수행된다. 이는 단계(1602)에서 일어난다. 일단 각 전자 장치가 모든 이용가능한 서비스를 알고 이 서비스에 어떻게 도달하는지 알면, 이제 협업 세션에 참가할 준비가 된 것이다. 단계(1603)에 도시된 바와 같이, 모든 이용가능한 서비스가 동일한 작업 공간에 있는 임의의 전자 장치로부터 사용자에게 표시될 것이다.
단계(1604)에서 개인 작업 공간 내의 전자 장치들 중 하나로부터 특별한 데이터를 액세스하라고 사용자가 요청할 때, 개인 작업 공간의 전자 장치들은 정보의 소스 및 정보를 사용하는 애플리케이션이 저장된 곳을 발견해야 한다(단계 1605). 개인 작업 공간의 전자 장치들은 또한 데이터가 요청자와 공유될 수 있다는 것을 확인할 필요가 있다. 이는 또한 단계(1605)에서 일어난다.
단계(1606)에서 사용자 선호도 및 전자 장치의 성능에 기초하여 데이터를 표시하는 "최상의" 전자 장치가 결정된다. 사용자 선호도에 많은 상이한 기준이 있을 수 있는데, 예를 들어 데이터가 동일한 애플리케이션 프로그램을 실행하는 전자 장치에서만 디스플레이되어야 하는지 여부 또는 유사한 애플리케이션 유형을 지원하고 정보를 올바르게 표시할 수 있는 임의의 전자 장치상에서 디스플레이되어야 하는지 여부가 있다. 또한, 사용자 선호도는 디스플레이 선호도와 같은 기준이 될 수 있는데, 예를 들어, 정보가 가장 큰 스크린을 가진 전자 장치상에 디스플레이되어야 하는지 또는 컬러 스크린을 가진 전자 장치상에 디스플레이되어야 하는지 여부가 있다. 다른 사용자 선호도는, 부분적인 정보가 하나의 전자 장치상에 디스플레이되는 동안 다른 부분의 정보가 다른 전자 장치들 상에 디스플레이될 수 있도록, 정보가 매체 유형 또는 마크업 언어 태그 유형에 따라 분리되어야 하는지 여부를 포함한다.
"최상의" 전자 장치가 다차원 스코어를 통하여 결정되었다고 가정하자. 다차원 스코어를 결정하기 위하여 다항식이 이용될 수 있다. 예를 들어, 변수 f, p가 사용될 수 있다. f는 재생 충실도, p는 사용자 관심에의 근접도이다. 변수들은 디스플레이 성능과 같이, 장치에 관한 수량적인 정보에 대응한다. 변수들은 또한 애플리케이션 성능에 대응한다. 예를 들어, 두 개의 애플리케이션이 하나의 데이터 유형을 표시할 수 있지만, 하나의 애플리케이션이 다른 것에 비하여 선호된다면, 하나의 애플리케이션이 그와 관련된 더 높은 사용자 선호도를 가질 수 있다. 다항식 a0f + a1p + ...= S(S는 다차원 스코어임)가 다차원 스코어를 계산하는데 사용될 수 있다. 가중치 a0, a1,..은 사용자 선호도를 나타낸다. 어느 사용자 선호도가 데이터 포맷에 적용되는지 결정하고, 사용자 선호도에 기초하여 전자 장치들의 그룹으로부터 최상의 전자 장치를 결정할 수 있는 임의의 기법이 사용될 수 있다.
일단 최상의 전자 장치가 선택된다면, 데이터를 "최상의" 전자 장치로서 선택된 전자 장치에 표시하기 위하여, 데이터 포맷의 변환이 수행되어야 되는지 여부가 결정된다(단계 1607). 데이터 변환을 수행할 수 있는 전자 장치가 하나 이상 있을 수 있다. 전술한 바와 같이 데이터 변환은 트랜스코딩, 변형 또는 둘 다를 포함한다. 만일 단계(1607)에서 데이터 변환이 필요하다면, 데이터를 변환하기 위하여 사용하는 데이터 변환기를 발견하기 위한 시도가 이루어진다. 예를 들어 "최상의" 전자 장치의 데이터 변환 성능을 포함하는 전자 장치의 데이터 변환 성능 및 특정한 유형의 데이터에 대한 사용자 지정 데이터 변환기를 사용하여, 하나 이상의 데이터 변환기가 결정된다. 데이터를 최상의 전자 장치가 요구하는 최종 포맷으로 변환하기 위하여 다수의 데이터 변환기가 요구될 수 있다. 만일 요구된 데이터 변환기 또는 변환기들이 이용가능하지 않다면(단계 1608에서 아니오), 단계(1606)에서 차선인 전자 장치가 선택된다. 만일 데이터를 변환할 수 있는 전자 장치를 전혀 발견할 수 없다면, 정보가 액세스될 수 없다거나(예를 들어, 도 7b의 방법(700)의 단계(755) 참조), 예를 들어 사용자 선호도에 기초하여 임의의 전자 장치에서 이용가능한 포맷으로 데이터의 일부가 디스플레이될 수 있다고 사용자에게 통지될 수 있다.
반면에, 만일 데이터 변환을 수행하는, 요구된 전자 장치가 발견된다면(단계 1608에서 예), 최상의 전자 장치로의 "최상"의 루트가 발견된다. 이는 단계(1609)에서 일어난다. 이러한 최상의 경로는 데이터 변환기를 구비한 전자 장치를 통과하고, 예를 들어, 대역폭 요구 조건 및 이용가능성, 전력 소모, 최단 거리 경로, 및 레이턴시와 접속 유형과 같은 사용자가 지정한 기준에 기초하여 선택될 수 있다. 데이터는 단계(1609)에서 데이터 변환기로 라우팅된다. 만일 데이터 변환기가 필요하지 않았다면, 단계(1609)에서 최상의 루트가 데이터 변환기를 거치게 하지 않고 최상의 전자 장치로 가는 최상의 경로를 결정한다. 일단 경로가 결정되었으면, 데이터는 만일 필요하다면 최종 목적지로 가는 길에 하나 이상의 적당한 데이터 변환기를 호출하면서, 그 경로를 통하여 전송된다. 이는 단계(1610)에서 일어난다. SOAP(simple object access protocol) 요청과 같은 임의의 이용가능한 원격 프러시져 호출이 데이터 변환 서비스를 원격으로 호출하는데 사용될 수 있다. 다른 예로서, 데이터를 전송하기 이전에 데이터 변환기를 셋업하기 위하여 독점(proprietary) 메시지 패킷이 전송될 수 있다. 다른 전자 장치의 관점에서 어떤 전자 장치가 데이터 변환을 수행할 수 있는 것처럼 보일지라도, 요청된 데이터 변환이 전자 장치 상에서 수행될 수 있거나 수행될 수 없다는 것을 실제로 결정하는 것은, 디코딩을 행하도록 선택된 전자 장치이다.
도 7a 및 도 7b를 참조하여 전술한 바와 같이, 선택된 전자 장치가 부분적인 데이터 변환만을 수행할 수 있는 것이 가능하다. 만일 전자 장치가 데이터 변환을 전혀 할 수 없다면, 데이터 변환을 수행하고 송신자에게 통보하는 대표자를 제안할 수 있다. 만일 전자 장치가 요청된 데이터 변환을 수행할 수 있거나 부분적인 데이터 변환을 완료할 수 있다면, 그 전자 장치는 요청된 대로 데이터 변환을 수행하고 그 결과를 최상의 전자 장치로 넘겨줄 것이다. 최상의 전자 장치는 또한 데이터를 거부하고, 데이터를 다른 전자 장치로 넘겨주고, 이를 송신자에게 알려줄 수 있다.
마지막으로, 데이터가 최상의 전자 장치에 도달할 때 수신된 데이터가 사용자에게 표시된다. 이는 단계(1611)에서 일어난다. 데이터를 표시할 수 있는 적당한 애플리케이션이 이미 실행 중이고 데이터를 수신할 준비가 되어 있는 것이 아니라면, 애플리케이션이 호출되어야 한다. 사용자에게 데이터가 표시되고 있는 전자 장치를 시동하는 것에 대하여 알려주는 것이 바람직하다.
전술한 단계를 거침으로써 선택된 최적의 경로는 어느 전자 장치들이 협업 세션에 참여하고 있을 것인지를 결정한다. 최적의 경로를 통과하는 특정한 데이터 스트림은 협업 스트림을 형성한다. 또한, 각 데이터 스트림이 상이한 데이터 변환기를 거칠 필요가 있고, 상이한 데이터 스트림이 상이한 전자 장치에서 그들의 최종 목적지를 발견할 수 있기 때문에 협업 세션 내에 다수의 협업 스트림을 가지는 것이 가능하다. 예를 들어, 하나의 데이터 스트림은 MPEG 비디오 스트림인 반면, 다른 데이터 스트림은 비디오 스트림을 따라 전송된 채팅 메시지일 수 있다. 오디오 스트림은 상기한 것과 다른 루트를 통하여 전송될 수 있고 최상의 스피커를 가진 전자 장치에서 재생될 수 있는 반면, 비디오 스트림은 최상의 디스플레이 장치를 가진 전자 장치에서 시청될 수 있다.
일실시예에서 협업 세션에 참여하는 전자 장치들은 개인 작업 공간을 제공하는 하나의 큰 가상 컴퓨터를 형성한다. 두 개의 개인 작업 공간이 접속될 때 그 두 개의 개인 작업 공간은 다시 더 큰 가상 컴퓨터를 제공한다. 그러나, 다른 사용자에게 이용가능한 서비스의 양은 사용자 선호도에 의해 설정되는 액세스 권리에 의해 제한될 수 있다.
여기서 설명한 실시예와 변형예는 단지 본 발명의 원리를 설명하기 위한 것이고, 본 발명의 원리를 벗어나지 않고 당업자에 의해 다양한 변경이 구현될 수 있다는 것은 당연하다. 예를 들어, 사용자 선호도와 서비스 디렉토리는 작업 공간 내의 단일 장치에 위치할 수 있다.

Claims (34)

  1. 다수의 전자 장치들-상기 전자 장치들간의 다수의 접속을 통하여 상기 전자 장치들간에 정보가 교환될 수 있음-을 포함하는 가상 작업 공간을 제공하는 방법에 있어서,
    상기 가상 작업 공간 내에서 이용가능한 서비스들을 결정하는 단계와,
    관심 있는 데이터를 액세스할 수 있는, 상기 가상 작업 공간 내의 전자 장치를 결정하는 단계와,
    상기 데이터와 관련된 하나 이상의 데이터 포맷-상기 데이터의 일부는 상기 하나 이상의 데이터 포맷 중 정해진 포맷을 가짐-을 결정하는 단계와,
    상기 데이터 표시에 적합한 장치 선택을 위한 소정 기준 및 상기 정해진 데이터 포맷에 적어도 부분적으로 기초하여, 상기 서비스들 중 하나를 이용함으로써 상기 데이터의 적어도 일부를 표시하기에 적합한 하나의 전자 장치를 상기 다수의 전자 장치들 중에서 선택하는 단계와,
    상기 다수의 접속을 거치는, 상기 선택된 전자 장치로의 경로를 결정하는 단계와,
    상기 결정된 경로를 통하여, 상기 정해진 데이터 포맷과 관련된 상기 데이터의 적어도 일부를 라우팅하는 단계를 포함하는 가상 작업 공간 제공 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 데이터는 상기 가상 작업 공간에 포함되는 상기 다수의 전자 장치들 중 하나, 또는 상기 가상 작업 공간에 포함되지 않는 원격 전자 장치에 존재하는 것인 가상 작업 공간 제공 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 가상 작업 공간은 제1 가상 작업 공간이고,
    상기 선택된 전자 장치는 제2 가상 작업 공간에 있는 다수의 제2 전자 장치들 중 하나이고,
    상기 제1 및 제2 가상 작업 공간은 적어도 하나의 추가적인 접속을 통하여 접속되어 있는 것인 가상 작업 공간 제공 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 데이터의 일부는 모든 데이터, 또는 모든 데이터보다 적은 데이터 중 하나인 것인 가상 작업 공간 제공 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    전자 장치가 상기 가상 작업 공간에 추가되거나 상기 가상 작업 공간으로부터 제거될 때, 상기 선택된 전자 장치는 제1 선택된 전자 장치로부터 제2 전자 장치로 변경되는 것인 가상 작업 공간 제공 방법.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 선택 단계는 사용자에 의해 수행되는 것인 가상 작업 공간 제공 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 선택 단계는 사용자의 요청에 기초하여 다시 수행되는 것인 가상 작업 공간 제공 방법.
  8. 제1항에 있어서, 상기 선택 단계는 상기 방법을 수행하는 전자 장치를 선택하고, 상기 경로 결정 단계는 상기 다수의 접속 중 아무것도 포함하지 않는 경로를 결정하며, 상기 라우팅 단계는 상기 방법을 수행하는 전자 장치상의 서비스로 상기 데이터의 일부를 라우팅하는 단계를 포함하는 것인 가상 작업 공간 제공 방법.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 선택된 전자 장치에 의해 적어도 상기 데이터의 일부를 표시하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서, 적어도 상기 데이터의 일부를 표시하는데 사용되는 애플리케이션을 호출하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  11. 제1항에 있어서, 상기 하나 이상의 데이터의 포맷을 결정하는 단계는, 상기 데이터의 관련된 파일 확장자를 결정함으로써 상기 데이터와 관련된 하나 이상의 데이터 포맷을 결정하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 하나 이상의 데이터 포맷을 결정하는 단계는 상기 데 이터와 관련된 마커(marker)를 결정함으로써 상기 데이터와 관련된 상기 하나 이상의 데이터 포맷을 결정하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 마커는 마크업 언어 태그인 것인 가상 작업 공간 제공 방법.
  14. 제1항에 있어서, 상기 소정의 기준은 사용자 선호도를 포함하고, 상기 선택 단계는 적어도 상기 사용자 선호도를 이용하여 결정된 다차원 스코어에 기초하여 전자 장치를 선택하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제14항에 있어서, 사용자 선호도는 하나 이상의 재생 충실도 및 사용자 관심에의 근접도를 포함하는 것인 가상 작업 공간 제공 방법.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제14항에 있어서, 두 개 이상의 항을 추가함으로써 다차원 스코어를 결정하는 단계를 더 포함하고, 각 항은 변수에 가중치를 곱함으로써 결정된 값을 가지고, 각 가중치는 사용자 선호도에 대응하는 것인 가상 작업 공간 제공 방법.
  17. 제1항에 있어서, 상기 경로 결정 단계는 적어도 상기 정해진 데이터 포맷과 관련된 데이터의 일부를 라우팅하기 위하여, 정해진 하나 이상의 접속을 라우팅 기준에 기초하여 결정하는 단계를 더 포함하고, 상기 라우팅 기준은 성능 기준, 전력 소모 기준, 및 접속 유형 중 하나 이상을 포함하는 것인 가상 작업 공간 제공 방법.
  18. 제1항에 있어서, 상기 소정의 기준은 장치 기준을 더 포함하는 것인 가상 작업 공간 제공 방법.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제18항에 있어서, 서비스 발견(service discovery)을 통하여 상기 장치 기준을 결정하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    제19항에 있어서, 상기 서비스 발견을 통하여 장치 기준을 결정하는 단계는, 상기 전자 장치들 중 적어도 하나의 전자 장치에 대응하는 하나 이상의 속성을 포함하는 서비스 디렉토리를 액세스하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  21. 청구항 21은(는) 설정등록료 납부시 포기되었습니다.
    제20항에 있어서, 상기 하나 이상의 속성을 결정하기 위하여 상기 다수의 전자 장치들 각각을 액세스함으로써, 상기 서비스 디렉토리를 생성하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제20항에 있어서, 상기 서비스 디렉토리는 상기 가상 작업 공간에 포함되는 상기 다수의 전자 장치들 중 하나 이상의 전자 장치들에 저장된 것인 가상 작업 공간 제공 방법.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제20항에 있어서, 상기 서비스 디렉토리는 상기 가장 작업 공간에 포함되지 않는 원격 전자 장치에 저장되는 것인 가상 작업 공간 제공 방법.
  24. 청구항 24은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 라우팅 단계는, 사용자가 상기 데이터를 액세스하는 것에 대한 허가 또는 데이터를 액세스하고자 하는 사용자에 대한 인증에 기초하여 적어도 상기 데이터의 일부에 대한 액세스를 금지하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  25. 제1항에 있어서, 상기 데이터의 일부를 변환하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  26. 청구항 26은(는) 설정등록료 납부시 포기되었습니다.
    제25항에 있어서, 상기 변환 단계는, 상기 정해진 데이터 포맷으로부터 다른 데이터 포맷으로 상기 데이터의 일부를 변형하는 것과 상기 데이터의 일부를 트랜스코딩하는 것을 한번 이상 수행하는 것인 가상 작업 공간 제공 방법.
  27. 청구항 27은(는) 설정등록료 납부시 포기되었습니다.
    제25항에 있어서, 상기 변환 단계는, 상기 다수의 전자 장치들 중 하나 이상의 전자 장치에 의해 수행되는 것인 가상 작업 공간 제공 방법.
  28. 청구항 28은(는) 설정등록료 납부시 포기되었습니다.
    제25항에 있어서, 상기 변환 단계는, 상기 선택된 전자 장치가 아닌 특정한 전자 장치에 의해 수행되고, 상기 경로 결정 단계는 상기 다수의 접속 및 상기 특정한 전자 장치를 통한, 상기 선택된 전자 장치로의 경로를 결정하는 단계를 더 포함하고, 상기 경로는 상기 다수의 접속 중 정해진 하나 이상의 접속을 포함하는 것인 가상 작업 공간 제공 방법.
  29. 다수의 전자 장치들-상기 전자 장치들간의 다수의 접속을 통하여 상기 전자 장치들간에 정보가 교환될 수 있음-을 포함하는 가상 작업 공간을 제공하기 위한 하나 이상의 프로그램이 기록된 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 프로그램은,
    상기 가상 작업 공간 내에서 이용가능한 서비스들을 결정하는 단계와,
    관심있는 데이터를 액세스할 수 있는, 상기 가상 작업 공간 내의 전자 장치를 결정하는 단계와,
    상기 데이터와 관련된 하나 이상의 데이터 포맷-상기 데이터의 일부는 상기 하나 이상의 데이터 포맷 중 정해진 포맷을 가짐-을 결정하는 단계와,
    상기 데이터 표시에 적합한 장치 선택을 위한 소정 기준 및 상기 정해진 데이터 포맷에 적어도 부분적으로 기초하여, 상기 서비스들 중 하나를 이용함으로써 상기 데이터의 적어도 일부를 표시하기에 적합한 하나의 전자 장치를 상기 다수의 전자 장치들 중에서 선택하는 단계와,
    상기 다수의 접속을 거치는, 상기 선택된 전자 장치로의 경로를 결정하는 단계와,
    상기 결정된 경로를 통하여, 상기 정해진 데이터 포맷과 관련된 상기 데이터의 적어도 일부를 라우팅하는 단계를 구현하기 위한 명령어들을 포함하는 것인 컴퓨터로 판독가능한 기록 매체.
  30. 다수의 전자 장치들-상기 전자 장치들간의 다수의 접속을 통하여 상기 다수의 전자 장치들간에 정보가 교환될 수 있음-을 포함하는 가상 작업 공간을 제공하는 장치에 있어서,
    메모리와,
    상기 접속들 중 하나 이상의 접속에 연결된 적어도 하나의 통신 장치와,
    상기 메모리에 접속되고 소정의 단계를 수행하는 적어도 하나의 프로세서를 포함하고,
    상기 소정의 단계는,
    상기 가상 작업 공간 내에서 이용가능한 서비스들을 결정하는 단계와,
    관심있는 데이터를 액세스할 수 있는, 상기 가상 작업 공간 내의 전자 장치를 결정하는 단계와,
    상기 데이터와 관련된 하나 이상의 데이터 포맷-상기 데이터의 일부는 하나 이상의 데이터 포맷 중 정해진 포맷을 가짐-을 결정하는 단계와,
    상기 데이터 표시에 적합한 장치 선택을 위한 소정 기준 및 상기 정해진 데이터 포맷에 적어도 부분적으로 기초하여, 상기 서비스들 중 하나를 이용함으로써 상기 데이터의 적어도 일부를 표시하기에 적합한 하나의 전자 장치를 상기 다수의 전자 장치들 중에서 선택하는 단계와,
    상기 다수의 접속을 거치는, 상기 선택된 전자 장치로의 경로를 결정하는 단계와,
    상기 결정된 경로를 통하여, 상기 정해진 데이터 포맷과 관련된 상기 데이터의 적어도 일부를 라우팅하는 단계를 포함하는 것인 장치.
  31. 다수의 전자 장치들-상기 전자 장치들간의 다수의 접속을 통하여 상기 다수의 전자 장치들간에 정보가 교환될 수 있음-을 포함하는 가상 작업 공간을 제공하는 방법에 있어서,
    상기 다수의 전자 장치 중 적어도 하나의 전자 장치에 대한 하나 이상의 속성을 결정하는 단계와,
    관심있는 데이터를 액세스할 수 있는, 상기 가상 작업 공간 내의 전자 장치를 결정하는 단계와,
    상기 데이터의 하나 이상의 데이터 포맷을 결정하는 단계--와,
    상기 속성 및 상기 정해진 데이터 포맷-상기 데이터의 일부는 하나 이상의 데이터 포맷 중 정해진 포맷을 가짐-에 적어도 부분적으로 기초하여, 상기 다수의 전자 장치들 중에서 하나의 전자 장치를 선택하는 단계와,
    상기 선택된 전자 장치로의 상기 다수의 접속을 통한 경로-상기 경로는 상기 다수의 접속 중 정해진 하나 이상의 접속을 포함함-를 결정하는 단계와,
    상기 결정된 경로를 통하여, 상기 정해진 데이터 포맷과 관련된 상기 데이터의 적어도 일부를 라우팅하는 단계를 포함하는 것인 가상 작업 공간 제공 방법.
  32. 청구항 32은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서, 상기 하나 이상의 속성을 결정하는 단계는 상기 하나 이상의 속성을 결정하기 위하여 서비스 디렉토리를 액세스하는 단계를 더 포함하고,
    상기 서비스 디렉토리는, 상기 전자 장치들 중 적어도 하나의 전자 장치의 성능들, 전자 장치들간의 접속들의 접속 유형들, 상기 전자 장치들 중 적어도 하나의 전자 장치의 장치 유형, 상기 전자 장치들 중 적어도 하나의 전자 장치에 의해 제공될 수 있는 애플리케이션들과 서비스들, 및 상기 적어도 하나의 전자 장치에 의해 제공된 각 서비스에 대한 액세스 권리 중 하나 이상을 포함하는 것인 가상 작업 공간 제공 방법.
  33. 청구항 33은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서, 상기 선택 단계는 상기 속성, 상기 정해진 데이터 포맷, 및 사용자 선호도에 적어도 부분적으로 기초하여, 상기 다수의 전자 장치들 중 하나의 전자 장치를 선택하는 단계를 더 포함하는 것인 가상 작업 공간 제공 방법.
  34. 청구항 34은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서, 상기 전자 장치들은 제1 전자 장치들이고, 상기 가상 작업 공간은 제1 가상 작업 공간이고, 상기 방법은,
    다수의 제2 전자 장치들 각각의 하나 이상의 속성들을 결정함으로써, 상기 다수의 제2 전자 장치들이 제2 가상 작업 공간을 형성하는 단계와,
    상기 제1 전자 장치들 중 적어도 하나의 전자 장치를 상기 제2 전자 장치들 중 적어도 하나의 전자 장치에 접속하는 단계와,
    상기 제1 및 제2 다수의 전자 장치로부터 전자 장치를 선택하기 위하여, 하나 이상의 데이터 포맷을 결정하고, 전자 장치를 선택하고, 경로를 결정하고, 라우팅하는 것을 수행하는 단계를 포함하는 가상 작업 공간 제공 방법.
KR1020057018577A 2003-05-20 2004-04-12 다수의 전자 장치로 구성된 가상 작업 공간을 제공하는방법 KR100754310B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/442,218 2003-05-20
US10/442,218 US7406500B2 (en) 2003-05-20 2003-05-20 Techniques for providing a virtual workspace comprised of a multiplicity of electronic devices

Publications (2)

Publication Number Publication Date
KR20060018820A KR20060018820A (ko) 2006-03-02
KR100754310B1 true KR100754310B1 (ko) 2007-09-03

Family

ID=33450147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057018577A KR100754310B1 (ko) 2003-05-20 2004-04-12 다수의 전자 장치로 구성된 가상 작업 공간을 제공하는방법

Country Status (9)

Country Link
US (2) US7406500B2 (ko)
EP (1) EP1636952B1 (ko)
KR (1) KR100754310B1 (ko)
CN (1) CN100466633C (ko)
AT (1) ATE381835T1 (ko)
DE (1) DE602004010807T2 (ko)
IL (1) IL172052A0 (ko)
TW (1) TWI330023B (ko)
WO (1) WO2004105325A2 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343566B1 (en) 2002-07-10 2008-03-11 Apple Inc. Method and apparatus for displaying a window for a user interface
US7406500B2 (en) * 2003-05-20 2008-07-29 International Business Machines Corporation Techniques for providing a virtual workspace comprised of a multiplicity of electronic devices
US20050132264A1 (en) * 2003-12-15 2005-06-16 Joshi Ajit P. System and method for intelligent transcoding
US20060047819A1 (en) * 2004-05-14 2006-03-02 Caddes Scott A Simultaneous transfer of database updates between multiple clients and a server
GB2415325A (en) * 2004-06-15 2005-12-21 Mitel Networks Corp Spontaneous discovery of remote service profiles
KR100703754B1 (ko) * 2005-04-15 2007-04-06 삼성전자주식회사 웹서비스 처리 장치 및 방법
US20080147886A1 (en) * 2006-12-14 2008-06-19 Andrew Rodney Ferlitsch Methods and Systems for Providing Peripheral Device Services
US20080162628A1 (en) * 2007-01-03 2008-07-03 Peter Hill Simultaneous visual and telephonic access to interactive information delivery
US8321449B2 (en) * 2007-01-22 2012-11-27 Jook Inc. Media rating
US8839142B2 (en) * 2007-06-08 2014-09-16 Apple Inc. Desktop system object removal
US20090019120A1 (en) * 2007-07-13 2009-01-15 International Business Machines Corporation Metadata-enhanced instant-messaging applications
US8346932B1 (en) 2007-07-31 2013-01-01 Sutus, Inc. System for providing integrated voice and data services
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US8671174B2 (en) * 2009-04-17 2014-03-11 Prem Jothipragasam Kumar Management of shared client device and device manager
WO2011054077A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Device, system an d method for selecting, sharing and displaying electronic content
US20110111697A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Device, system and method for selecting, sharing and displaying electronic content
US20110246340A1 (en) * 2010-04-02 2011-10-06 Tracelink, Inc. Method and system for collaborative execution of business processes
US8898567B2 (en) * 2010-04-09 2014-11-25 Nokia Corporation Method and apparatus for generating a virtual interactive workspace
US9235268B2 (en) * 2010-04-09 2016-01-12 Nokia Technologies Oy Method and apparatus for generating a virtual interactive workspace
US9407718B2 (en) * 2010-07-01 2016-08-02 Broadcom Corporation Method and system for service discovery and deployment in an IP multimedia network
US10740117B2 (en) * 2010-10-19 2020-08-11 Apple Inc. Grouping windows into clusters in one or more workspaces in a user interface
US9658732B2 (en) * 2010-10-19 2017-05-23 Apple Inc. Changing a virtual workspace based on user interaction with an application window in a user interface
US9542202B2 (en) 2010-10-19 2017-01-10 Apple Inc. Displaying and updating workspaces in a user interface
US9292196B2 (en) * 2010-10-19 2016-03-22 Apple Inc. Modifying the presentation of clustered application windows in a user interface
US8676908B2 (en) * 2010-11-25 2014-03-18 Infosys Limited Method and system for seamless interaction and content sharing across multiple networks
KR20120066529A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 가상 전자제품 제공 시스템
US10152192B2 (en) 2011-02-21 2018-12-11 Apple Inc. Scaling application windows in one or more workspaces in a user interface
US8873618B2 (en) * 2011-02-28 2014-10-28 Blackberry Limited Device to transmit data by displaying a coded image generated according to a selectable encoding scheme and associated methods
CN102662971A (zh) * 2012-03-09 2012-09-12 盛乐信息技术(上海)有限公司 基于虚拟盘的互联网信息展示方法及系统
US20130290835A1 (en) * 2012-04-30 2013-10-31 James Paul Hudetz Method and Apparatus for the Selection and Reformat of Portions of a Document
US9756549B2 (en) 2014-03-14 2017-09-05 goTenna Inc. System and method for digital communication between computing devices
KR102463405B1 (ko) 2015-05-21 2022-11-04 삼성전자주식회사 전자 장치, 그 동작 방법 및 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049817A1 (en) 2001-07-12 2002-04-25 Eatamar Drory Storageless system and method for unified messaging on existing mail accounts via standard internet mail protocols
KR20020049817A (ko) * 2000-12-20 2002-06-26 정환진 토질안정 처리재의 제조방법

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0472854A (ja) 1990-07-12 1992-03-06 Oki Electric Ind Co Ltd データ収集方式
US5485634A (en) * 1993-12-14 1996-01-16 Xerox Corporation Method and system for the dynamic selection, allocation and arbitration of control between devices within a region
EP1018084B1 (en) * 1996-07-25 2011-12-07 Xcelera Inc. Web serving system with primary and secondary servers
US6233318B1 (en) 1996-11-05 2001-05-15 Comverse Network Systems, Inc. System for accessing multimedia mailboxes and messages over the internet and via telephone
JP3180745B2 (ja) 1997-11-07 2001-06-25 日本電気株式会社 Pon伝送システム及びその帯域割当方法
SE516122C2 (sv) * 1999-02-11 2001-11-19 Ericsson Telefon Ab L M Anordning och förfarande relaterande till paketdatakommunikation och ett paketdatakommunikationssystem
AU5610900A (en) 1999-06-14 2001-01-02 Wilshire Cellular, Inc. Method and apparatus for communicating via virtual office telephone extensions
JP2001022690A (ja) 1999-07-09 2001-01-26 Canon Inc 装置間のデータ通信方法及びそのシステム
US6498835B1 (en) * 2000-02-29 2002-12-24 Ameritech Corporation Method and system for providing visual notification in a unified messaging system
US7324226B2 (en) * 2000-05-31 2008-01-29 National Semiconductor Corporation Method, and arrangement in a communications network
US7260638B2 (en) * 2000-07-24 2007-08-21 Bluesocket, Inc. Method and system for enabling seamless roaming in a wireless network
JP2002101104A (ja) * 2000-09-21 2002-04-05 Toshiba Corp 無線通信システム及び電子機器検索方法
US7356347B1 (en) * 2000-09-28 2008-04-08 Palmsource, Inc. Efficient discovery of devices in a bluetooth environment
US20020059377A1 (en) * 2000-11-14 2002-05-16 Jagadish Bandhole Collaborative computing systems using dynamic computing environments
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
US7164885B2 (en) * 2000-12-18 2007-01-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for selective service access
US8126982B2 (en) * 2001-02-16 2012-02-28 International Business Machines Corporation Method, network device and computer program product for performing service discovery in a pervasive network
US7092740B1 (en) * 2001-04-20 2006-08-15 Trilogy Development Group, Inc. High density information presentation using space-constrained display device
US7171415B2 (en) * 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
US7099871B2 (en) * 2001-05-04 2006-08-29 Sun Microsystems, Inc. System and method for distributed real-time search
US7013303B2 (en) * 2001-05-04 2006-03-14 Sun Microsystems, Inc. System and method for multiple data sources to plug into a standardized interface for distributed deep search
US7340438B2 (en) * 2001-05-21 2008-03-04 Nokia Corporation Method and apparatus for managing and enforcing user privacy
US7194760B2 (en) * 2001-05-21 2007-03-20 Nokia Corporation Method for protecting privacy when using a Bluetooth device
US7668144B2 (en) * 2001-06-04 2010-02-23 Taylor Rebecca S Dynamically extensible communications device
FI20011239A (fi) * 2001-06-12 2002-12-13 Nokia Corp Tiedonsiirtomenetelmä ja -järjestely
WO2003001413A1 (en) * 2001-06-22 2003-01-03 Nosa Omoigui System and method for knowledge retrieval, management, delivery and presentation
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7089298B2 (en) * 2001-08-20 2006-08-08 Nokia Corporation Naming distribution method for ad hoc networks
US20030069989A1 (en) * 2001-10-05 2003-04-10 Silvester Kelan C. Extending bluetooth personal area networks
GB0126650D0 (en) * 2001-11-06 2002-01-02 Mitel Knowledge Corp System and method for the selection of electronic services from a set of resources using infrared communication
US7209705B2 (en) * 2001-11-14 2007-04-24 Samsung Electronics Co., Ltd. Method and apparatus for optional automatic configuration of wireless communications device behavior within small area transmitter service regions
US7340214B1 (en) * 2002-02-13 2008-03-04 Nokia Corporation Short-range wireless system and method for multimedia tags
US7249182B1 (en) * 2002-02-27 2007-07-24 Nokia Corporation Personal profile sharing and management for short-range wireless terminals
US7102640B1 (en) * 2002-03-21 2006-09-05 Nokia Corporation Service/device indication with graphical interface
US7324462B1 (en) * 2002-07-25 2008-01-29 3Com Corporation Methods for discovering devices within a wireless network
US6909721B2 (en) * 2002-10-31 2005-06-21 Nokia Corporation Device detection and service discovery system and method for a mobile ad hoc communications network
US7406500B2 (en) * 2003-05-20 2008-07-29 International Business Machines Corporation Techniques for providing a virtual workspace comprised of a multiplicity of electronic devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020049817A (ko) * 2000-12-20 2002-06-26 정환진 토질안정 처리재의 제조방법
US20020049817A1 (en) 2001-07-12 2002-04-25 Eatamar Drory Storageless system and method for unified messaging on existing mail accounts via standard internet mail protocols

Also Published As

Publication number Publication date
ATE381835T1 (de) 2008-01-15
US20040236818A1 (en) 2004-11-25
US7720909B2 (en) 2010-05-18
DE602004010807T2 (de) 2008-12-04
WO2004105325A3 (en) 2005-02-03
CN100466633C (zh) 2009-03-04
KR20060018820A (ko) 2006-03-02
TWI330023B (en) 2010-09-01
IL172052A0 (en) 2009-02-11
DE602004010807D1 (de) 2008-01-31
US7406500B2 (en) 2008-07-29
CN1792069A (zh) 2006-06-21
US20080256259A1 (en) 2008-10-16
EP1636952A2 (en) 2006-03-22
TW200515178A (en) 2005-05-01
WO2004105325A2 (en) 2004-12-02
EP1636952B1 (en) 2007-12-19

Similar Documents

Publication Publication Date Title
KR100754310B1 (ko) 다수의 전자 장치로 구성된 가상 작업 공간을 제공하는방법
JP4331203B2 (ja) ピアツーピアネットワークのためのコンテンツ分散型オーバーレイネットワーク
JP3974307B2 (ja) オブジェクト・レンダリングの分散配置のための協調プロキシ・システムの方法および装置
JP4560513B2 (ja) ハンドセット端末を介してリソースを共有する方法、及び装置
US8468227B2 (en) System and method for rendering content on multiple devices
KR101344178B1 (ko) 디지털 음성 대화로부터 데이터 패킷들을 마이닝하는 방법,컴퓨터 판독가능 매체 및 디지털 음성 대화의 내용과 관련된 추가의 정보를 제공하는 방법
JP2004153352A (ja) マルチメディアコミュニケーションシステム
US20080117897A1 (en) External data access information in a voip conversation
JP2004531782A (ja) リアルタイムなビジネス・コラボレーションの方法
Elgazzar et al. Mobile web services: state of the art and challenges
US20080275937A1 (en) Control Device, Method and Program for Providing Information
JP2022518879A (ja) セッション管理機能、アプリケーション機能、セッション管理機能の動作方法、アプリケーション機能の動作方法及び非一時的なコンピュータ読み取り可能記憶媒体
US8738801B2 (en) Methods and apparatus for updating index information while adding and updating documents in a distributed network
US9015292B2 (en) Method, apparatus and computer program product for providing composite capability information for devices in distributed networks
JP2005149040A (ja) ピアツーピア通信システム
Pirker et al. An approach for fipa agent service discovery in mobile ad hoc environments
JP2007102459A (ja) 情報処理装置及びデータ変換装置
JP2005065177A (ja) P2p通信システムにおける接続リンク数制御方法、情報処理装置、およびリンク数制御プログラム
JP2002252708A (ja) 通話仲介システム、通話仲介方法、及びプログラム
Baloch et al. Profile context management in ubiquitous computing
Liscano et al. Projecting Web services using presence communication protocols for pervasive computing
JP2023125388A (ja) 通信システム
JP2008129981A (ja) 接続先決定サーバ及び負荷分散方法
JPH10301864A (ja) 分散ネットワークコンピューティングシステム、同システムに用いられる情報交換装置、情報交換方法及び記憶媒体
US20070088847A1 (en) Method and System to Interact with Information Services using Messaging

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
FPAY Annual fee payment

Payment date: 20100429

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee