KR101443006B1 - 로컬 장치의 공유 액세스 - Google Patents

로컬 장치의 공유 액세스 Download PDF

Info

Publication number
KR101443006B1
KR101443006B1 KR1020137035042A KR20137035042A KR101443006B1 KR 101443006 B1 KR101443006 B1 KR 101443006B1 KR 1020137035042 A KR1020137035042 A KR 1020137035042A KR 20137035042 A KR20137035042 A KR 20137035042A KR 101443006 B1 KR101443006 B1 KR 101443006B1
Authority
KR
South Korea
Prior art keywords
local device
computer
network
connecting station
access
Prior art date
Application number
KR1020137035042A
Other languages
English (en)
Other versions
KR20140007977A (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 KR20140007977A publication Critical patent/KR20140007977A/ko
Application granted granted Critical
Publication of KR101443006B1 publication Critical patent/KR101443006B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

네트워크를 통해 로컬 장치 서비스를 제공하기 위한 방법이 개시되며, 로컬 장치는 네트워크 액세스를 위해 구성되지 않는다. 이 방법은 로컬 장치가 분주한지를 결정하는 단계, 및 로컬 장치가 분주하지 않은 경우에 로컬 장치에 의해 제공되는 이용 가능 제1 서비스를 네트워크를 통해 방송하는 단계를 포함한다. 이어서, 로컬 장치가 분주하지 않고, 컴퓨터에 의해 선택되는 경우에, 접속국에 의해 로컬 장치에 대한 컴퓨터 액세스를 제공한다.

Description

로컬 장치의 공유 액세스{SHARED ACCESS TO A LOCAL DEVICE}
관련 출원의 상호 참조
이 PCT 특허 출원은 "SHARED ACCESS TO LOCAL DEVICE"라는 명칭으로 2011년 6월 16일자로 출원된 미국 특허 출원 제13/161,942호에 대해 우선권을 주장하며, 이는 미국 특허청에서 대리인 사건 번호 P9951US1(P222092.US.01)로서 식별될 수 있고, 그 전체가 모든 목적을 위해 본 명세서에 참고로 포함된다.
기술분야
본 발명은 일반적으로 전자 장치에 관한 것으로서, 구체적으로는 네트워크를 통한 전자 장치들의 공유에 관한 것이다.
컴퓨터들 및 다른 전자 장치들, 예를 들어 태블릿, 이동 전화, 게이밍 콘솔 및 다른 필적하는 장치들(이하, "컴퓨터")은 다양한 외부 장치들, 한정이 아니라 예로서, 프린터, 카메라, 스캐너, 컴퓨터, 전화 등("외부 장치")에 전자적으로 접속되도록 구성될 수 있다. 많은 외부 장치들은 네트워크를 통해("네트워크 장치") 또는 국지적으로("로컬 장치") 컴퓨터에 접속되도록 구성될 수 있다. 네트워크 장치들은 네트워크를 통해 다수의 컴퓨터에 접속될 수 있으며, 각각의 컴퓨터는 네트워크 장치에 개별적으로 액세스할 수 있다. 이와 달리, 로컬 장치들은 종종 임의의 주어진 시간에 단일 컴퓨터에만 접속할 수 있다. 로컬 장치를 다른 컴퓨터에 접속하기 위하여, 로컬 장치는 최초 컴퓨터로부터 분리되는 것이 필요할 수 있다. 로컬 장치가 컴퓨터에 국지적으로 접속될 때, 로컬 장치는 장치 고유 드라이버를 설치할 수 있다(또는 사용자에게 컴퓨터 상에 설치하도록 요구할 수 있다). 드라이버는 컴퓨터가 로컬 장치와 통신하고 로컬 장치에 명령들을 제공하는 것을 가능하게 한다. 사람들이 집에서 둘 이상의 컴퓨터를 소유하는 것이 더 일반적이지만, 이러한 장치들 중 다수는 네트워크 장치들이 아니라 로컬 장치들일 수 있다. 예를 들어, 한 가족이 하나의 프린터를 가질 수 있지만, 각각의 가족 구성원은 그 또는 그녀 자신의 컴퓨터를 소유할 수 있다.
본 발명의 예들은 네트워크를 통해 로컬 장치 서비스를 제공하는 방법의 형태를 취할 수 있으며, 로컬 장치는 네트워크 액세스를 위해 구성되지 않는다. 이 방법은 로컬 장치가 분주한지를 결정하는 단계, 및 로컬 장치가 분주하지 않은 경우에 로컬 장치에 의해 제공되는 이용 가능 제1 서비스를 네트워크를 통해 방송하는 단계를 포함한다. 이어서, 로컬 장치가 분주하지 않고, 컴퓨터에 의해 선택되는 경우에, 로컬 장치에 대한 컴퓨터 액세스를 제공한다.
본 발명의 다른 예들은 컴퓨터를 네트워크를 통해 로컬 장치에 의해 제공되는 서비스에 접속하기 위한 방법의 형태를 취할 수 있다. 이 방법은 컴퓨터에 의해 네트워크를 통해 이용 가능한 서비스가 존재하는지를 결정하는 단계를 포함할 수 있다. 이용 가능한 서비스가 존재하는 경우, 서비스를 제공하도록 구성된 로컬 장치를 선택한다. 로컬 장치가 선택되면, 컴퓨터 및 로컬 장치와 통신하는 접속국(connection station)과 통신한다. 이어서, 로컬 장치에 대응하는 컴퓨터 상에 드라이버를 런칭(launching)한다.
본 발명의 또 다른 예들은 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 접속국의 형태를 취할 수 있다. 접속국은 로컬 장치로부터의 서비스 통지 및 컴퓨터로부터의 선택 통지를 수신하도록 구성된 네트워크 인터페이스를 포함할 수 있다. 접속국은 네트워크 인터페이스와 통신하는 프로세서도 포함할 수 있다. 프로세서는 로컬 장치로부터의 서비스 통지를 네트워크를 통해 컴퓨터로 방송하고, 컴퓨터가 선택 통지를 네트워크 인터페이스로 전송할 때 로컬 장치에 대한 컴퓨터 액세스를 제공하도록 구성된다.
도 1a는 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 시스템의 도면이다.
도 1b는 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 시스템의 다른 실시예의 도면이다.
도 1c는 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 시스템의 다른 실시예의 도면이다.
도 2는 도 1a에 도시된 시스템의 블록도이다.
도 3은 네트워크를 통해 로컬 장치에 대한 로컬 액세스를 제공하기 위한 일 실시예를 나타내는 흐름도이다.
도 4는 네트워크를 통해 로컬 장치를 컴퓨터에 접속하기 위한 방법의 일 실시예를 나타내는 흐름도이다.
도 5는 접속국이 네트워크를 통해 로컬 장치와 컴퓨터 사이의 통신을 용이하게 하기 위한 방법의 일 실시예의 흐름도이다.
개요
본 발명의 일부 실시예들에서, 본 발명은 네트워크(예를 들어, 와이파이, 이더넷, 블루투스 및 다른 네트워킹 토폴로지들)를 통해 로컬 장치들에 대한 액세스를 제공하기 위한 방법의 형태를 취할 수 있다. 로컬 장치는 네트워킹되지 않은 장치일 수 있거나, 적어도 하나의 네트워킹되지 않은 기능을 포함할 수 있다. 예를 들어, 로컬 장치는 다기능 프린터, 복사기, 스캐너일 수 있으며, 스캐너 및 복사기 기능은 국지적으로만 액세스되도록 구성될 수 있다. 이 방법은 로컬 장치가 네트워크 액세스를 위해 특별히 구성될 필요 없이 로컬 장치(또는 장치의 소정 기능)가 네트워크를 통해 제공되는 것을 가능하게 한다. 즉, 본 발명은 컴퓨터 및/또는 로컬 장치에 대응하는 소프트웨어 드라이버를 실질적으로 변경하지 않고도 네트워크를 통해 이용 가능한 "쉽게 쓸 수 있도록 준비된(out of the box)" 컴포넌트들을 제공한다.
게다가, 본 발명은 로컬 장치에 의해 제공되는 다수의 기능이 병렬로 사용되도록 제공할 수 있다. 예를 들어, 로컬 장치는 인쇄 기능 및 스캐닝 기능을 포함할 수 있으며, 본 발명은 프린터 액세스를 통해 컴퓨터를 로컬 장치에 접속하는 한편, 제2 컴퓨터에 의해 사용될 수 있는 별개의 스캐닝 액세스를 제공할 수 있다.
일 실시예에서, 접속국은 네트워크를 통해 컴퓨터에 의한 로컬 장치로의 네트워크 액세스를 제공할 수 있다. 접속국은 로컬 장치와 컴퓨터의 통신 사이에 배치될 수 있지만, 컴퓨터 및 장치는 (접속시에) 서로에게 국지적으로(예를 들어, 직접 유니버설 직렬 버스 접속을 통해) 접속된 것으로 보일 수 있다. 이러한 방식으로, 로컬 장치 및/또는 컴퓨터는 네트워크 상에 나타나도록 또는 네트워크에 접속되도록 특별히 구성될 필요가 없을 수 있다. 접속국은 또한 로컬 장치와 컴퓨터 사이의 통신을 용이하게 하고/하거나 변환할 수 있다.
상세한 설명
일 실시예에서, 하나 이상의 컴퓨터에 의한 로컬 장치로의 네트워크 액세스를 제공하기 위한 시스템은 적어도 하나의 컴퓨터, 접속국 및 로컬 장치를 포함할 수 있다. 도 1a는 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 시스템(100)의 블록도이다. 시스템(100)은 네트워크(108)를 통해 접속국(104)과 통신하는 컴퓨터(102)를 포함할 수 있다. 이어서 접속국(104)은 로컬 장치(106)와 통신할 수 있다. 따라서, 접속국(104)은 컴퓨터(102) 및 로컬 장치(106) 양자와 통신한다. 이 실시예에서, 컴퓨터(102)와 로컬 장치(106) 사이의 통신은 접속국(104)을 통해 전송될 수 있다. 접속국(104)은 로컬 장치(106)가 원래 네트워킹된 장치로 구성되지 않을 수 있지만 네트워크(108)를 통해 로컬 장치(106)에 대한 컴퓨터(102)의 액세스를 제공할 수 있다(또는 로컬 장치(106)의 기능들을 선택할 수 있다).
도 1b는 시스템(100)의 다른 실시예의 블록도이다. 이 실시예에서, 컴퓨터(102)는 제2 접속국(140)에 접속될 수 있으며, 이어서 제2 접속국은 제1 접속국(104)에 (네트워크(108)를 통해) 접속될 수 있다. 유사하게, 도 1b에는 도시되지 않았지만, 접속국들(104, 140)은 네트워크(108) 없이 서로 직접 통신하도록 구성될 수 있다. 예를 들어, 접속국들(104, 140)은 서로 직접 접속될 수 있고, 무선파 또는 다른 네트워킹/접속 토폴로지를 통해, 예를 들어 블루투스를 이용하는 피코넷 시스템으로서 통신할 수 있다.
도 1c는 도 1a의 시스템의 다른 실시예의 블록도이다. 이 실시예에서, 접속국(104)은 다수의 로컬 장치(106, 162, 164)에 접속될 수 있다. 게다가, 접속국(104)은 컴퓨터(102) 및/또는 제2 컴퓨터(121)에도 (네트워크(108)를 통해) 접속될 수 있다. 이러한 방식으로, 접속국(104)은 다수의 로컬 장치(106, 162, 164)에 대한 컴퓨터(102, 121)의 단일 접속을 제공할 수 있다. 로컬 장치들(162, 164)은 디지털 카메라, 오디오 장치, 저장 장치 또는 프린터와 같은 사실상 임의 타입의 로컬 장치일 수 있다.
도 2는 도 1a에 도시된 시스템의 블록도이다. 컴퓨터(102)는 사실상 임의 타입의 전자 컴퓨팅 장치일 수 있다. 예를 들어, 컴퓨터(102)는 개인용 컴퓨터, 랩탑, 태블릿 컴퓨터, 스마트폰, 비디오 게임 콘솔 등일 수 있다. 컴퓨터(102)는 프로세서(110), 입출력 인터페이스(112), 네트워크/통신 인터페이스(116) 및 메모리(114)를 포함할 수 있다. 컴퓨터(102) 내의 다양한 컴포넌트들은 시스템 버스(118)(또는 다수의 시스템 버스)를 통해 함께 전자적으로 접속될 수 있다. 컴퓨터(102)는 도시되지 않은 추가적인 로컬 또는 원격 컴포넌트들을 포함할 수 있으며, 도 2는 단지 예시적인 것을 의도한다.
네트워크/통신 인터페이스(116)는 다양한 전기 신호들을 송수신할 수 있다. 예를 들어, 네트워크/통신 인터페이스(116)는 접속국(104)은 물론, 네트워크(108) 상의 다른 장치들 및 컴퓨터들에 대해 신호들을 송수신하기 위해 컴퓨터(102)를 네트워크(108)에 접속하는 데 사용될 수 있다. 네트워크/통신 인터페이스(116)는 (인터넷, 와이파이, 블루투스, 이더넷, USB 및 파이어와이어를 포함하지만 이에 한정되지 않는) 무선 또는 유선 접속을 통해 전자 신호들을 송수신하는 데에도 사용될 수 있다.
메모리(114)는 컴퓨터(102)에 의해 사용될 수 있는 전자 데이터를 저장할 수 있다. 예를 들어, 메모리(114)는 오디오 파일, 비디오 파일, 문서 파일 및 데이터 파일을 포함하지만 이에 한정되지 않는 임의 타입의 콘텐츠를 포함하는 전기 데이터를 저장할 수 있다. 저장된 데이터는 컴퓨터의 하나 이상의 다양한 애플리케이션 및/또는 동작에 대응할 수 있다. 메모리(114)는 비휘발성 저장 장치, 자기 저장 매체, 광학 저장 매체, 광자기 저장 매체, 전기 저장 매체, 판독 전용 메모리, 랜덤 액세스 메모리, 소거 및 프로그래밍 가능 메모리 및 플래시 메모리를 포함하지만 이에 한정되지 않는 임의의 포맷일 수 있다. 메모리는 컴퓨터에 대해 국지적으로 그리고/또는 원격적으로 제공될 수 있다.
프로세서(110)는 컴퓨터(102) 및 그의 다양한 컴포넌트들의 동작을 제어할 수 있다. 프로세서(110)는 접속국(104)과 통신할 수 있다. 프로세서(110)는 명령어들을 처리, 수신 및/또는 전송할 수 있는 사실상 임의의 전자 장치일 수 있다. 예를 들어, 프로세서(110)는 마이크로프로세서 또는 마이크로컴퓨터일 수 있다.
입출력 인터페이스(112)는 다양한 장치들/소스들에 대한 컴퓨터(102)에 의한 통신을 용이하게 한다. 예를 들어, 입출력 인터페이스(112)는 (예를 들어, 키보드, 터치 감지 표면, 마우스, 가청 입력 또는 다른 장치를 통해) 사용자, 컴퓨터(102) 상의 제어 버튼들(예로서, 전원 버튼, 볼륨 버튼) 등으로부터 데이터를 수신할 수 있다. 게다가, 입출력 인터페이스(112)는 또한 외부 장치, 예를 들어 유니버설 직렬 버스(USB) 또는 다른 비디오/오디오/데이터 입력들에 대해 데이터를 송수신할 수 있다.
도 1a를 다시 참조하면, 네트워크(108)는 접속국(104)과 컴퓨터(102) 사이의 전자 통신을 제공한다. 네트워크(108)는 사실상 임의 타입의 전자 통신 메커니즘/경로일 수 있으며, 무선 또는 유선 또는 유선과 무선의 조합일 수 있다. 예를 들어, 네트워크(108)는 인터넷, 이더넷, 유니버설 직렬 버스(USB) 케이블 또는 무선 신호들(예로서, 와이파이, 블루투스)을 포함할 수 있다. 일례에서, 네트워크(108)는 근거리 네트워크(LAN)일 수 있지만, 다른 예들에서 네트워크(108)는 광역 네트워크(WAN)일 수 있거나, 임의의 주어진 구현에 대해 요구되는 대로 네트워크 토폴로지들이 사용될 수 있다.
이제, 도 1 및 2를 참조하면, 접속국(104)은 2개의 장치 사이에 통신을 제공하도록 구성된 사실상 임의 타입의 컴퓨팅 장치일 수 있다. 접속국(104)은 컴퓨터(102) 및 로컬 장치(106)에 대한 전자 통신을 제공하도록 구성된다. 2개의 장치 사이의 전자 통신은 유선 및/또는 무선 토폴로지들을 포함하는 임의의 접속 토폴로지를 사용할 수 있다. 게다가, 접속국(104)과 로컬 장치(106) 사이의 접속은 직접 또는 간접적일 수 있다. 예를 들어, 로컬 장치(106)는 접속국(104)에 직접 접속될 수 있고, 컴퓨터(102)는 접속국(104)에 무선 접속될 수 있다. 그러나, 예를 들어 컴퓨터(102) 및 로컬 장치(106) 양자가 접속국(104)에 무선 접속될 수 있는 것 등 다른 셋업들도 사용될 수 있다. 게다가, 접속국(104)은 라우터 기능들을 제공할 수 있다. 즉, 접속국(104)은 하나의 장치로부터 데이터 패킷들을 수신하여 다른 장치로 전송할 수 있다.
접속국(104)은 프로세서(120), 네트워크/통신 인터페이스(124), 메모리(126), 및 다양한 컴포넌트들을 전기적으로 접속할 수 있는 시스템 버스(130)를 포함할 수 있다. 프로세서(120)는 컴퓨터(102) 내의 프로세서(110)와 실질적으로 유사할 수 있지만, 원하는 응용들에 따라서는 접속국(104) 내의 프로세서(120)가 컴퓨터(102)보다 일반적으로 덜 강력할 수 있다. 유사하게, 메모리(126)는 컴퓨터(102) 내의 메모리(114)와 실질적으로 동일할 수 있지만, 접속국(104) 내의 메모리(126)는 (일반적으로) 더 적은 데이터를 저장하도록 구성될 수 있다. 외부 메모리 및 데이터 저장 서비스들도 임의의 주어진 구현에 대해 요구되는 대로 개별적으로 또는 메모리(126)와 결합하여 사용될 수 있다.
네트워크/통신 인터페이스(124)는 컴퓨터(102) 내의 네트워크/통신 인터페이스(116)와 실질적으로 동일할 수 있지만, 요구되지는 않는다. 네트워크/통신 인터페이스(124)는 소정 장치들에 대한 네트워크(108)의 액세스를 제공하고, 장치들을 서로 접속하고, 다수의, 아마도 상이한 컴퓨터들과 로컬 장치 사이에서 네트워킹 기능들을 수행하고, 다른 네트워크 및 접속 관리 기능들을 수행하도록 더 구성될 수 있다. 예를 들어, 네트워크/통신 인터페이스(124)는 그와 함께 직접 또는 간접 접속된 컴퓨터(102), 로컬 장치(106) 및 다른 장치들에 대한 라우터 기능들을 제공할 수 있다.
도 1a 및 2를 계속 참조하면, 로컬 장치(106)는 컴퓨터에 전자적으로 접속될 수 있는 사실상 임의의 장치일 수 있다. 게다가, 로컬 장치(106)는 컴퓨터에 국지적으로 접속되도록, 즉 네트워크의 일부로서가 아니라 컴퓨터에 직접 접속되도록 구성된 장치일 수 있다. 예를 들어, 로컬 장치(106)는 프린터, 스캐너, 카메라, 비디오 카메라, 저장 장치 등일 수 있다. 게다가, 일부 예들에서, 로컬 장치(106)는 다수의 서비스 또는 애플리케이션을 제공하도록 구성될 수 있다. 이러한 예들에서, 로컬 장치(106)는 장치(106)에 의해 제공되는 서비스들 또는 애플리케이션들 중 전부가 아닌 하나가 네트워크를 통해 제공될 수 있도록 구성될 수 있다. 예컨대, 로컬 장치(106)는 인쇄, 복사, 저장 및 스캐닝과 같은 다수의 서비스 또는 기능을 제공하는 다기능 장치일 수 있지만, 프린터 기능만이 네트워킹된 서비스로서 기능을 제공할 수 있다. 로컬 장치(106)는 다기능 장치 또는 단일 기능 장치일 수 있다는 점에 유의해야 한다.
일부 실시예들에서, 로컬 장치(106)는 접속(128)을 통해 컴퓨터(102)에 동작 가능하게 접속되도록 구성될 수 있다. 접속(128)은 케이블과 같은 유선 또는 무선 접속일 수 있다. 유선인 경우, 케이블은 전자 통신을 지원하기 위한 사실상 임의 타입의 케이블일 수 있으며, 일례에서 케이블(128)은 USB일 수 있다. 도 1a에 도시된 바와 같이, 로컬 장치(106)는 접속(128)을 통해 접속국(104)과 통신할 수 있다.
도 1a를 다시 참조하면, 로컬 장치(106)는 일반적으로 접속(128)을 통해 직접 통신하도록 구성될 수 있지만, 시스템(100)은 로컬 장치(106)에 대한 컴퓨터(102)의 네트워크 액세스를 제공할 수 있다. 이것은 일부 실시예들에서 접속국(104) 및 컴퓨터(102)가 로컬 장치(106)와 역방향 호환되는 것을 가능하게 할 수 있다. 즉, 로컬 장치(106)는 네트워킹 능력을 갖지 않을 수 있지만, 접속국(104)은 로컬 장치(106)에 의해 제공되는 기능들에 대한 네트워크 능력을 제공할 수 있다. 더구나, 로컬 장치(106)는 장치의 소프트웨어(예를 들어, 드라이버들) 또는 장치의 하드웨어(예를 들어, 네트워킹 카드, 모듈 등)에 대한 변경을 실질적으로 요구하지 않고도 접속국(104) 및 네트워크(108)를 통해 다른 장치들 및 컴퓨터들에 통신 가능하게 접속될 수 있다.
접속국(104)은 원래 네트워크 능력을 제공하도록 구성되지 않았을 수 있는 다수의 상이한 장치에 네트워크 능력을 제공할 수 있다. 이것은 로컬 장치(106)가 네트워크 장치로서 기능할 수 있게 하지만, 네트워크 장치가 통상적으로 필요로 할 수 있는 증가된 비용, 예를 들어 많은 네트워킹 토폴로지와 관련하여 사용되는 프로토콜 스택들에 대한 권리를 취득하는 것을 필요로 하지 않는다. 게다가, 로컬 장치(106)는 다수의 컴퓨터에 의해 액세스되고 사용될 수 있으며, 이는 다수의 사용자가 실질적으로 동시에 그리고 주어진 사용자의 컴퓨터와 로컬 장치의 지리적 근접도에 관계없이 동일 장치에 액세스하는 것을 가능하게 할 수 있다.
도 3은 로컬 장치(106)의 가용성을 광고하는 것은 물론, 네트워크를 통해 장치에 대한 컴퓨터 액세스를 조정하기 위한 방법의 일 실시예를 나타내는 흐름도이다. 방법(200)은 로컬 장치(106)뿐 아니라 컴퓨터(102) 사이의 통신을 제공하기 위해 원격 가상화를 제공할 수 있지만, 또한 일반적으로 로컬 장치(106)에 대한 컴퓨터(102)에 의한 액세스를 조절 또는 조정할 수 있다. 방법(200)은 동작 202로부터 시작될 수 있으며, 로컬 장치(106)는 접속국(104)에 통신 가능하게 접속될 수 있다.
로컬 장치(106)가 접속국(104)과 통신하면, 방법(200)은 동작 204로 진행할 수 있으며, 접속국(104)은 로컬 장치(106)가 사용중인지 또는 사용 가능한지를 결정할 수 있는데, 예를 들어 로컬 장치(106)는 사용중일 수 있지만, 추가 입력들을 수신할 수 있는 버퍼를 가질 수 있다. 이러한 동작은 로컬 장치(106)가 분주한지 또는 로컬 장치(106)가 다수의 기능, 즉 현재 이용 가능할 수 있는 특정 기능들을 제공하는지를 결정할 수 있다. 게다가, 일부 실시예들에서, 접속국(104)은 로컬 장치(106)가 소정 기간 내에 이용 가능할 수 있는지와 같은 로컬 장치(106)로부터의 상태 정보를 결정할 수 있다. 로컬 장치(106)가 사용중이거나 사용 가능하지 않은 경우, 방법(200)은 동작 210으로 진행하며, 접속국(104)은 로컬 장치(106)가 더 이상 사용하지 않거나 사용 불가능할 수 있을 때까지 사전 결정된, 결정된, 임의의 또는 선택된 시간 동안 기다릴 수 있다.
로컬 장치(106)(또는 특정 기능)가 주어진 컴퓨터가 액세스하는 데 이용 가능하면, 방법(200)은 동작 206으로 진행할 수 있다. 동작 206에서, 접속국(104)은 네트워크(108)를 통해 광고 또는 기타 경보를 방송할 수 있다. 예를 들어, 접속국(104)은 도메인 이름 시스템 서비스 발견(DNS-SD)과 같은 서비스 발견 프로토콜을 이용하여, 네트워크를 통해 서비스로서 공유될 수 있는 각각의 로컬 장치(106)를 광고할 수 있다.
경보 또는 광고는 로컬 장치(106)가 이용 가능하다는 통지를 포함할 수 있다. 다른 실시예들에서는, 경보 또는 광고의 존재 자체가 로컬 장치(106)가 이용 가능하다는 것을 지시할 수 있다. 즉, 접속국(104)은 실제로 이용 가능한 로컬 장치들(106)에 대한 광고 또는 경보만을 제공할 수 있다. 따라서, 로컬 장치(106)가 분주한 경우, 광고 또는 경보를 갖지 않을 수 있다. 유사하게, 분주하거나 공유될 수 없는 임의의 접속된 장치들은 광고되지 않을 수 있다. 더구나, 로컬 장치(106)가 접속국(104)으로부터 분리될 때, 접속국(104)은 더 이상 특정 장치를 광고하지 않을 수 있다. 이러한 방식으로, 불필요한 광고가 방지될 수 있고, 공유될 수 있는 로컬 장치들(106)만이 광고될 수 있다.
방송은 각각의 컴퓨터(102)가 광고를 수신하도록 구성될 수 있도록 전송될 수 있다. 예를 들어, 컴퓨터(102)는 접속국(104)과 동일한 또는 유사한 서비스 발견 프로토콜을 사용할 수 있으며, 광고들은 물론, 기존 광고들에 대한 갱신들도 수신할 수 있다.
게다가, 접속국(104)은 다수의 장치와 통신할 수도 있으며, 각각의 장치(또는 선택된 장치들)도 네트워크(108) 상에서 방송될 수 있다는 점에 유의해야 한다. 따라서, 방송은 네트워크(108)와 통신하는 상이한 컴퓨터들(102)에 의해 모두 이용 가능할 수 있는 다수의 상이한 장치를 포함할 수 있다. 일부 대안 실시예들에서 컴퓨터(102)와 접속국(104)은 요청 및 응답 방식으로 통신할 수 있다는 점에 유의해야 한다. 예를 들어, 컴퓨터(102)는 방송을 수신하기 전에 임의의 이용 가능한 장치가 존재하는지를 파악하기 위해 접속국(104)에 조회할 수 있다.
접속국(104)에 의한 방송 또는 광고는 로컬 장치(106)에 관한 정보를 포함할 수 있다. 이러한 정보는 사용자(또는 컴퓨터(102))로 하여금 그 또는 그녀가 로컬 장치(106)에 접속하기를 원하는지를 결정하는 것을 가능하게 할 수 있다. 정보는 판매자 정보(예를 들어, 브랜드 이름), 일련 번호 및 다른 관련 정보, 예를 들어 로컬 장치(106)에 의해 제공되는 기능들을 포함할 수 있다.
로컬 장치(106)가 네트워크(108)를 통해 방송되면, 방법(200)은 동작 208로 진행하며, 접속국(104)은 컴퓨터(102)가 로컬 장치(106)에 대한 독점 액세스를 요청했는지를 결정한다. 컴퓨터(102)에 의한 선택 프로세스는 도 4와 관련하여 더 상세히 설명된다. 그러나, 컴퓨터(102)가 로컬 장치(106)에 대한 액세스를 요청할 때, 컴퓨터(102)는 그가 로컬 장치(106)(또는 기능)에 접속하기를 원한다는 것을 지시하는 접속국(104)에 대한 호출을 행할 수 있다. 로컬 장치(106)가 선택되면, 방법(200)은 동작 212로 진행할 수 있다.
동작 212는 로컬 장치(106)가 분주한지를 결정한다. 접속국(104)은 컴퓨터(102)가 현재 로컬 장치(106)에 대한 독점 액세스를 갖고 있는지 그리고/또는 로컬 장치(106)의 원하는 기능이 사용중인지를 결정할 수 있다.
대안 실시예들에서, 로컬 장치(106)는 컴퓨터(102)가 로컬 장치(106)에 대한 액세스를 가지며, 현재 로컬 장치(106)와 통신하고 있거나 장래에 로컬 장치(106)와 통신할 수 있는 경우에 분주한 것으로 또한 간주될 수 있다. 그러나, 이러한 실시예들은 구현하기가 더 어려울 수 있다. 이것은 로컬 장치(106)와 컴퓨터(102) 간의 장래의 통신을 예측하기 어려울 수 있기 때문일 수 있다. 예를 들어, 로컬 장치(106)가 프린터이고, 종이가 부족한 경우, 장치(106)에 종이가 더 공급될 때까지 로컬 장치(106)와 컴퓨터(102) 간의 통신은 이루어지지 않을 수 있다. 접속국(104)에서 볼 때, 이러한 현재 통신의 결여는 컴퓨터(102)와 로컬 장치(106) 간의 통신의 종료의 징후일 수 있지만, 이것은 단지 일시적인 조건일 수 있다. 따라서, 일반적으로 로컬 장치(106)는 컴퓨터가 로컬 장치(106)에 대한 독점 액세스를 갖는 경우에만 분주한 것으로 결정될 수 있다.
일부 실시예들에서 동작 206에서의 방송은 로컬 장치(106)의 상태, 예컨대 로컬 장치(106)가 분주한지의 여부를 포함할 수 있다는 점에 유의해야 한다. 그러나, 동작 212는 로컬 장치(106)가 동작 206과 동작 212 사이에 분주해질 수 있는 경우에 완료될 수 있다. 그러나, 일부 실시예들에서, 동작 204에서 접속국(104)이 로컬 장치(106)가 사용중이 아닌 것으로 결정하지 않는 한, 동작 206은 수행되지 않을 수 있으므로, 동작 212는 생략될 수 있다는 점에 유의해야 한다. 이 실시예에서, 접속국(104)은 로컬 장치(106)가 현재 사용중/분주한 경우에 로컬 장치(106)를 이용 가능한 것으로 방송하지 않을 수 있다.
동작 212에서 접속국(104)이 로컬 장치(106)가 분주한 것으로 결정하는 경우, 방법(200)은 동작 214로 진행할 수 있다. 동작 214는 로컬 장치(106)(또는 기능)에 대한 컴퓨터(102)의 액세스를 거절할 수 있다. 예를 들어, 접속국(104)은 로컬 장치(106)(또는 기능)가 더 이상 이용 가능하지 않다는 경보 메시지를 컴퓨터(102)에 제공할 수 있다.
접속국(104)이 로컬 장치(106)에 대한 컴퓨터(102)의 액세스를 거절하면, 방법(200)은 동작 218로 진행할 수 있다. 동작 218은 로컬 장치(106)(또는 기능)가 사용중이라는 것을 방송한다. 예를 들어, 동작 206으로부터의 원래의 방송 광고는 로컬 장치(106)가 분주하다는 것을 지시하도록 변경될 수 있거나, 단순히 광고가 제거될 수 있다. 게다가, 사용중이라는 광고는 로컬 장치(106)에 액세스하는 컴퓨터(102)에 관한 정보, 예를 들어 식별자도 포함할 수 있다. 이어서, 방법(200)은 동작 204로 복귀할 수 있고, 접속국(104)은 로컬 장치(106)(또는 기능)가 사용중인지를 결정하기 위해 다시 한 번 체크할 수 있다. 로컬 장치가 분리된 경우, 동작 204는 로컬 장치(106)가 다시 한 번 이용 가능하다는 것을 지시할 수 있다.
동작 212에서 접속국(104)이 로컬 장치(106)가 분주하지 않은 것으로 결정하는 경우, 방법(200)은 동작 216으로 진행하며, 컴퓨터(102)는 로컬 장치(106)에 대한 액세스를 허가받는다. 이어서, 로컬 장치(106)는 컴퓨터(102)에 통신 가능하게 결합된다. 이어서, 로컬 장치(106)는 컴퓨터(102)에 "부착"된 것으로 간주될 수 있지만, 로컬 장치(106)는 컴퓨터(102)에 "물리적으로" 부착되는 것이 아니라 "가상적으로" 부착될 수 있다는 점에 유의해야 한다. 즉, 로컬 장치(106)는 접속(128)을 통해 접속국(104)에 직접 접속될 수 있으며, 접속국(104)을 통해 로컬 장치(106)는 컴퓨터(102)에 부착되거나 그와 통신할 수 있다.
도 4와 관련하여 더 상세히 설명되는 바와 같이, 로컬 장치(106)가 컴퓨터(102) 상에 가상화되면, 컴퓨터(102)는 로컬 장치(106)를 로컬로서 간주할 수 있다. 일부 실시예들에서 로컬 장치(106)의 부착은 로컬 장치(106)의 개별 기능을 컴퓨터(102)에 접속하는 것을 포함할 수 있다. 예를 들어, 로컬 장치(106)가 스캐닝 기능 및 인쇄 기능 양자를 갖는 경우, 로컬 장치(106)는 하나의 기능, 예를 들어 인쇄 기능에만 관련하여 컴퓨터(102)에 접속될 수 있으며, 다른 기능들에 대해서는 접속되지 않을 수 있다.
일부 실시예들에서, 로컬 장치(106)는 동작 216까지 컴퓨터(102)에 부착되지 않을 수 있다. 이것은 (컴퓨터(102)를 통해) 사용자에 의해 개시될 때까지 로컬 장치(106)와 컴퓨터(102) 사이에 접속이 존재하지 않을 수 있다는 것을 의미한다. 이것은 기능 또는 로컬 장치(106)가 실제로 이용될 수 있을 때까지 컴퓨터(102)가 기능 또는 전체 로컬 장치(106)를 독점하는 것을 방지할 수 있다. 로컬 장치(106)는 "네트워크" 장치로서 구성되지 않을 수 있으므로, 로컬 장치(106)는 한 번에 하나의 기능 또는 접속만을 제공하도록 구성될 수 있다. 따라서, 기능이 실제로 이용될 때까지 컴퓨터(102)가 기능 또는 로컬 장치(106)에 접속하는 것을 방지함으로써, 로컬 장치(106)는 사용 간의 다운 시간에 다른 컴퓨터들에 대한 접속에 이용 가능하다.
로컬 장치(106)(또는 개별 기능)가 컴퓨터(102)에 접속되면, 방법(200)은 동작 217로 진행할 수 있다. 접속국(104)은 컴퓨터(102)와 로컬 장치(106) 사이에 접속 해제가 있었는지를 결정할 수 있다. 예를 들어, 로컬 장치(106) 또는 컴퓨터(102)는 죽거나, 네트워크(108)에 대한 접속을 잃거나, 다른 방법으로 통신이 금지될 수 있다. 로컬 장치(106)와 컴퓨터(102) 사이의 접속이 해제되지 않은 경우, 방법(200)은 동작 218로 진행할 수 있다.
동작 218에서, 접속국(104)은 네트워크(108)를 통해 로컬 장치(106)가 사용중이라는 것을 방송할 수 있다. 방송은 네트워크(108)에 액세스하는 다른 컴퓨터들 및 장치들이 로컬 장치(106)(또는 로컬 장치(106)의 소정 기능들)가 이용 가능하지 않을 수 있다는 것을 알게 해줄 수 있다. 이어서, 방법(200)은 동작 204로 복귀하며, 접속국(104)은 로컬 장치(106)가 사용중인지를 결정할 수 있다.
동작 217에서 로컬 장치(106)와 컴퓨터(102) 사이의 접속이 해제되는 경우, 방법(200)은 동작 220으로 진행할 수 있다. 접속국(104)은 액세스가 더 이상 가능하지 않다는 것을 컴퓨터(102)(또는 로컬 장치(106))에 통지할 수 있다. 이어서, 접속국(104)은 로컬 장치(106)에 대한 컴퓨터(102)의 액세스를 종료할 수 있고, 방법(200)이 종료될 수 있다. 접속국(104)이 로컬 장치(106)에 대한 컴퓨터(102)의 액세스를 제공하고 있는 실질적으로 임의의 시점에 접속국(104)은 2개의 장치 사이의 접속이 해제되었는지를 결정하기 위해 체크할 수 있다. 이것은 컴퓨터(102)와 로컬 장치(106) 간의 접속이 해제된 경우에 컴퓨터(102)가 로컬 장치(106)에 대한 액세스를 독점하는 것을 방지할 수 있다.
도 4는 로컬 장치(106)(또는 로컬 장치(106)의 기능)를 네트워크(108)를 통해 컴퓨터(102)에 접속하기 위한 방법의 일 실시예를 나타내는 흐름도이다. 이 방법(300)은 동작 302에서 시작될 수 있으며, 컴퓨터(102)는 장치에 대한 네트워크(108) 및 네트워크(108)를 통해 이용 가능할 수 있는 서비스들을 검색할 수 있다. 동작 302는 컴퓨터(102)의 셋업시에 수행될 수 있으며, 사용자가 이용 가능한 장치/서비스들을 보기 위해 애플리케이션을 선택할 때, 컴퓨터(102)는 이용 가능한 장치들 및 서비스들 등을 찾기 위해 네트워크(108)를 계속 스캐닝할 수 있다.
동작 302에서, 컴퓨터(102)는 방법(200)의 동작 206, 218에서의 접속국(104)에 의한 광고들과 같은 방송 경보들 또는 광고들을 검색함으로써 네트워크(108)를 스캐닝 또는 검색할 수 있다. 광고는 로컬 장치(106)에 관한 정보, 예를 들어 제조자, 부품 번호, 일련 번호, 제품명 등을 포함할 수 있다.
동작 304 후에, 방법(300)은 동작 306으로 진행할 수 있으며, 컴퓨터(102), 접속국(104) 및/또는 사용자는 장치 및/또는 기능이 분주한지를 결정할 수 있다. 예를 들어, 로컬 장치(106)가 현재 네트워크(108) 상의 다른 컴퓨터에 의해 사용되고 있는 경우, 접속국(104)은 로컬 장치(106)가 분주하다는 것을 지시하는 다른 광고를 전송할 수 있다. 선택된 또는 원하는 장치가 분주한 경우, 방법(300)은 동작 304로 복귀할 수 있다. 그러나, 로컬 장치(106)가 분주하지 않은 경우, 방법(300)은 동작 308로 진행할 수 있다. 일부 실시예들에서 접속국(104)은 로컬 장치(106)가 분주한 경우에 광고를 방송하지 않을 수 있다는 점에 유의해야 한다. 따라서, 원하는 구현에 따라서는, 동작 304가 생략될 수 있다.
동작 308은 컴퓨터(102)가 네트워크(108)를 통해 광고된 로컬 장치(106)를 사용하기를 원하는지를 결정한다. 예를 들어, 사용자는 로컬 장치(106)에 대한 정보, 예를 들어 그의 이용 가능한 기능들(예를 들어, 인쇄, 스캐닝 등)을 볼 수 있고, 이어서 그 또는 그녀가 로컬 장치(106)를 이용하기를 원하는 것으로 결정할 수 있으며, 로컬 장치(106)(또는 기능)를 선택하도록 컴퓨터(102)를 구성할 수 있다. 이어서, 컴퓨터(102)는 접속국(104)으로부터 로컬 장치(106)(또는 기능)에 대한 독점 액세스를 요청할 수 있다.
동작 308에서 사용자가 선택된 장치를 사용하기를 원하지 않는 경우, 방법(300)은 동작 302로 복귀할 수 있고, 컴퓨터(102)는 이용 가능한 서비스들을 다시 한 번 검색할 수 있다. 그러나, 사용자가 로컬 장치(106)를 사용하기를 원하는 경우, 방법(300)은 동작 310으로 진행할 수 있다.
동작 310은 로컬 장치(106)에 대한 드라이버가 설치되었는지를 결정한다. 드라이버는 컴퓨터(102)로 하여금 로컬 장치(106)와 더 양호하게 통신하게 하기 위한 소프트웨어 패킷일 수 있다. 드라이버는 로컬 장치(106)에 고유한 정보를 포함할 수 있으며, 컴퓨터(102)의 하나 이상의 컴포넌트와 상호작용하도록 구성될 수 있다. 드라이버는 제조자를 통해 (예를 들어, 웹사이트를 통해) 컴퓨터(102)에 제공될 수 있으며, 각각의 로컬 장치(106) 및/또는 로컬 장치(106)의 각각의 기능에 대한 고유 드라이버가 존재할 수 있다. 드라이버가 설치되지 않은 경우, 방법(300)은 동작 312로 진행할 수 있으며, 드라이버가 설치될 수 있다. 예컨대, 로컬 장치들의 많은 제조자는 그들의 웹사이트 상에서 각각의 로컬 장치에 대한 드라이버들을 제공할 수 있으며, 컴퓨터(102)는 필요한 드라이버를 다운로드할 수 있다.
동작 312에서 드라이버가 설치된 후, 방법(300)은 동작 306으로 복귀하여, 로컬 장치(106)가 분주한지를 결정할 수 있다. 일부 예들에서, 드라이버의 설치는 컴퓨터(102)가 재시동되는 것을 필요로 할 수 있다. 이 경우, 로컬 장치(106)는 이용 가능하지 않게 될 수 있으며, 따라서 동작 306은 로컬 장치(106)가 이용 가능한지를 다시 한 번 결정한다.
일부 실시예들에서, 드라이버는 접속국(104)이 아니라 컴퓨터(102) 상에 설치될 수 있다. 이것은 사용될 수 있는 다수의 로컬 장치(106)가 존재할 수 있고, 접속국(104) 상에 소프트웨어 드라이버를 포함시키는 것은 접속국(104)이 더 많은 컴퓨팅 능력 및/또는 메모리를 갖는 것을 요구할 수 있기 때문이다. 따라서, 일반적으로, 접속국(104)은 로컬 장치(106) 및 컴퓨터(102) 양자에 공통일 수 있는 일반적인 범용 동작들을 이용하여 로컬 장치(106) 및 컴퓨터(102) 양자와 상호작용할 수 있다. 예를 들어, 로컬 장치(106)가 USB 접속을 포함하는 경우, 접속국(104)은 로컬 장치(106) 및 컴퓨터(102)에 대해 판독, 기록 및 장치 요청들을 통신할 수 있다.
그러나, 다른 실시예들에서, 드라이버는 접속국(104) 상에 설치될 수 있다. 이러한 실시예들에서, 접속국(104)은 컴퓨터(102) 상의 드라이버들과 로컬 장치(106)에 의해 요구되는 드라이버 간의 변환을 수행할 수 있다. 이러한 방식으로, 컴퓨터(102)는 로컬 장치(106)에 대한 특정 드라이버와 호환되거나 수용할 수 있을 필요가 없다. 예를 들어, 컴퓨터(102)는 새로운 로컬 장치(106)에 대한 드라이버와 호환되지 않을 수 있는 구식 운영 체제를 가질 수 있다. 이러한 방식으로, 접속국(104)은 로컬 장치(106)의 기능적인 능력들 중 적어도 일부를 컴퓨터(102)에 제공하기 위한 통신 메커니즘을 제공할 수 있다. 이러한 예들에서는 접속국(104)과 컴퓨터(102) 간의 통신 프로토콜이 확장될 수 있다는 점에 유의해야 한다. 통신 프로토콜은 판독/기록을 위한 엔드포인트들, 선택된 결정들에 대한 결정 순서, 및 요청들이 어느 장치에 대해 발행되어야 하는지와 같은 고레벨 드라이버 동작들을 포함해야 할 수 있다.
드라이버가 설치되면, 방법(300)은 동작 314로 진행할 수 있으며, 컴퓨터(102)는 로컬 장치(106)에 대한 독점 액세스를 요청할 수 있다. 예를 들어, 컴퓨터(102)는 로컬 장치(106) 광고에 포함될 수 있는 네트워크 호스트 이름, 네트워크 어드레스, 포트 번호 또는 다른 식별자에 기초하여 로컬 장치(106)를 요청할 수 있다. 일부 예들에서는, 접속국(104)에 의해 요청이 수신되는 시간 사이에 로컬 장치(106)가 분주해질 수 있음에 따라 (도 2의 동작 214에서 설명된 바와 같이) 액세스가 거절될 수 있다.
로컬 장치(106)가 분주하지 않은 경우, 접속국(104)은 로컬 장치에 대한 컴퓨터(102) 액세스를 허가한다. 컴퓨터(102)는 전체 로컬 장치(106) 또는 컴퓨터(102)에 대한 로컬 장치(106)의 개별 기능에 대한 액세스를 요청할 수 있다.
컴퓨터(102)에 대해 액세스가 허가되면, 방법(300)은 동작 315로 진행할 수 있다. 동작 315는 컴퓨터(102) 상에서 로컬 장치(106)의 가상 버전을 개시한다. 또한, 접속국(104)은 컴퓨터(102)와 로컬 장치(106) 사이의 매개물이며, 접속국(104)은 컴퓨터(102)와 로컬 장치(106) 간의 통신을 용이하게 할 수 있다.
로컬 장치(106)가 컴퓨터(102) 상에 가상화될 때, 컴퓨터(102) 및 로컬 장치(106) 양자가 볼 때, 접속은 직접 접속인 것으로 보일 수 있다. 그러나, 컴퓨터(102) 및 로컬 장치(106) 양자는 단지 접속국(104)을 통해, 즉 직접이 아닌 접속을 통해 서로 통신할 수도 있다. 게다가, 로컬 장치(106)가 컴퓨터(102)에 부착될 때, 컴퓨터(102)는 로컬 장치(106)를 로컬 USB와 같은 로컬 장치로서 간주할 수 있다.
접속국(104) 및/또는 컴퓨터(102)는 장치(106)를 (컴퓨터(102)에서 볼 때) 진정한 의미에서 "로컬"이 아닌 것으로 플래깅(flagging)하는 그의 서비스 방송과 함께 메타데이터 태그를 이용하여 장치 정보를 태깅(tagging)할 수 있다. 예를 들어, 컴퓨터(102) 상의 로컬 장치(106)의 모든 가상 장치 인스턴스들은 이들이 로컬 장치(106)에 대응하는 컴퓨터(102) 내의 대응하는 네트워크 서비스 레코드들과 매칭될 수 있도록 태깅될 수 있다. 이것은 컴퓨터(102)가 로컬 장치(106)의 단일 설명을 사용자에게 제공하는 것을 가능하게 할 수 있다.
일부 실시예들에서, 컴퓨터(102)는 네트워크 장치들은 물론, 국지적으로 부착된 장치들도 처리하는 소프트웨어를 포함할 수 있다. 이러한 예들에서, 소프트웨어는 접속국(104)에 부착된 로컬 장치(106)를 2개의 개별 장치(네트워크 장치 및 로컬 장치)로서 간주하는 것을 피하도록 구성될 수 있다. 따라서, 네트워크(108) 상에서 방송되는 바와 같은 로컬 장치(106) 및 컴퓨터(102)에 나타나는 바와 같은 로컬 장치(106)에 대응하는 리스트 또는 데이터는 함께 결합될 수 있다. 이것은 컴퓨터(102)가 2개의 개별 설명(예를 들어, 공유 장치로서의 하나 및 국지적으로 접속된 장치로서의 하나)이 아니라 로컬 장치(106)의 단일 설명을 표시하는 것을 가능하게 할 수 있다. 이것은 컴퓨터(102)에 의해 그리고/또는 접속국(104)에 의해 행해질 수 있다.
컴퓨터(102)는 접속국(104)과 통신할 수 있는 것은 물론, 로컬 장치(106)의 가상화의 양태들을 처리할 수 있는 전용 배경 프로세스 또는 다른 소프트웨어를 포함할 수 있다. 일부 실시예들에서는, 소프트웨어 라이브러리가 배경 프로세스와 통신하여 애플리케이션 프로그래밍 인터페이스를 제공할 수 있다. 애플리케이션 프로그래밍 인터페이스는 컴퓨터(102) 상에서 실행되는 애플리케이션이 로컬 장치(106)를 사용하는 것을 가능하게 할 수 있다. 이러한 방식으로, 애플리케이션들은 애플리케이션에 의해 제공되는 설정된 사용자 경험과 일치할 수 있는 방식으로 로컬 장치(106)의 가상 "부착" 및 "분리"를 통합할 수 있다. 즉, 애플리케이션은 로컬 장치(106)가 (사용자가 볼 때) 직접 부착되는 것처럼 나타나게 할 수 있는 방식으로 배경 프로세스를 통해 로컬 장치(106)에 접속 및 분리할 수 있다.
예를 들어, 컴퓨터(102)가 직접 접속된 장치들 및 "진정한" 네트워크 장치들을 포함하는 스캐닝 애플리케이션을 포함하는 경우, 애플리케이션은 로컬 장치(106)를 네트워크 장치로서 제공하도록 구성될 수 있다. 사용자가 (예를 들어, 이용 가능한 모델들의 클릭 가능 리스트로부터) 특정 장치를 선택할 때, 컴퓨터(102)에 대한 로컬 장치(106)의 가상 부착 및 분리는 애플리케이션을 통해, 그러나 배경 프로세스와 통신하는 소프트웨어 라이브러리의 도움으로 행해질 수 있다.
로컬 장치(106)가 컴퓨터(102)에 부착되면, 방법(300)은 옵션 동작 316으로 진행할 수 있으며, 컴퓨터(102)에 의해 사용되는 기능이 아닌 로컬 장치(106)의 다른 기능들이 차단될 수 있다. 예를 들어, 로컬 장치(106)는 저장 기능 및 스캐닝 기능을 포함할 수 있다. 컴퓨터(102)가 선택된 기능(예를 들어, 스캐닝)을 위해 로컬 장치(106)에 접속되면, 로컬 장치(106) 상에서 이용 가능한 다른 기능들(예를 들어, 저장된 파일들의 검색)은 컴퓨터(102)에 대해 차단될 수 있다.
동작 316 후에, 방법(300)은 동작 318로 진행할 수 있으며, 컴퓨터(102)는 드라이버를 런칭할 수 있다. 로컬 장치(106)는 컴퓨터(102)에 국지적으로(예를 들어, 직접) 부착된 것으로 간주될 수 있으므로, 드라이버는 로컬 장치(106)가 네트워크(108)를 통해 부착되는 것을 가능하게 하도록 변경되지 않았을 수 있지만, 런칭되어 적절히 동작할 수 있다.
드라이버가 런칭되면, 컴퓨터(102)는 로컬 장치(106)와 통신하도록 구성될 수 있다. 컴퓨터(102)는 (드라이버를 통해) 접속국(104)을 통해 로컬 장치(106)와 통신할 수 있다. 이것은 도 5와 관련하여 더 상세히 설명된다. 전술한 바와 같이, 로컬 장치(106)가 컴퓨터(102)에 부착될 때, 로컬 장치(106)(또는 선택된 기능)는 네트워크(108) 상의 다른 컴퓨터들에 대해 이용 가능하지 않을 수 있다. 이것은 로컬 장치(106)가 네트워킹된 장치로서 구성되지 못하고, 단지 컴퓨터(102)에 (케이블(128)을 통해) 직접 접속되도록 구성될 수 있기 때문이다. 따라서, 접속국(104)은 로컬 장치(106)가 컴퓨터(102)에 직접 접속해야 하는 필요성을 실질적으로 제거할 수 있지만, 로컬 장치(106)는 단지 운영 장치(예로서, 컴퓨터(102))에 대해 열린 단일 통신 경로만을 갖도록 구성될 수 있다. 추가로 또는 대안으로서, 로컬 장치(106)의 소정 기능들은 한 번에 하나의 컴퓨터(102)에 의해서만 사용되도록 구성될 수 있다. 예를 들어, 스캐닝 기능은 한 번에 하나의 컴퓨터에 대해 스캐닝하도록 구성될 수 있다.
대안 실시예에서, 도 1c에 도시된 바와 같이, 접속국(104)은 로컬 장치(106) 및/또는 컴퓨터(102)로 하여금 그들 중 하나 또는 양자가 단일의 다른 장치에 접속된 것으로 생각하게끔 효과적으로 "속이도록" 구성될 수 있다. 예를 들어, 로컬 장치(106)는 (접속국(104)을 통해) 사실상 그가 다수의 컴퓨터(예를 들어, 스캐닝 기능을 사용하는 하나의 컴퓨터 및 다른 기능을 사용하는 다른 컴퓨터)에 접속될 수 있을 때 그가 단지 하나의 컴퓨터(102)에 접속된 것으로 생각하도록 "속을" 수 있다. 이 실시예에서, 접속국(104)은 본질적으로 하나 이상의 컴퓨터(102, 120)와 로컬 장치(106) 사이의 버퍼로서 작용할 수 있다.
동작 318 후에, 방법(300)은 동작 320으로 진행하며, 접속국(104) 및/또는 로컬 장치(106)는 컴퓨터(102)가 로컬 장치(106)의 사용을 종료했는지를 결정한다. 예를 들어, 로컬 장치(106)를 사용하는 애플리케이션이 종료될 수 있으며, 컴퓨터(102)는 그가 로컬 장치(106)의 사용을 완료했다는 것을 접속국(104)에 (예를 들어, 이들의 점대점 통신 프로토콜을 통해) 통지할 수 있다. 이어서, 접속국(104)은 로컬 장치(106)의 현재 상태, 즉 로컬 장치(106)가 현재 이용 가능하다는 것을 반영하도록 로컬 장치(106)의 광고를 갱신할 수 있다.
컴퓨터(102)가 로컬 장치(106)의 사용을 아직 완료하지 않은 경우, 방법(300)은 동작 322로 진행할 수 있으며, 대기 루프가 방법(300)을 중지시킬 수 있고, 따라서 컴퓨터(102)가 완료할 수 있다. 컴퓨터(102)가 로컬 장치(106)의 사용을 완료하면, 방법(300)은 동작 324로 진행할 수 있으며, 컴퓨터(102)와 로컬 장치(106) 간의 가상 접속이 "분리"되고, (적절한 경우에) "사용중" 플래그가 재설정될 수 있다. 접속국(104)은 로컬 장치(106)와 컴퓨터(102) 간의 "가상" 접속을 종료할 수 있다.
도 5는 접속국(104)이 네트워크(108)를 통해 로컬 장치(106)와 컴퓨터(102) 사이의 통신을 용이하게 하기 위한 방법(400)의 일 실시예의 흐름도이다. 방법(400)은 동작 402로부터 시작될 수 있으며, 접속국(104)은 로컬 장치(106)와 컴퓨터(102)를 배타적으로 결합하거나 그들 간에 논리적 접속을 설정할 수 있다. 예를 들어, 로컬 장치(106)는 도 4 및 5의 동작 216, 314에서 각각 설명된 바와 같이 컴퓨터(102)에 부착될 수 있다. 로컬 장치(106)와 컴퓨터(102)가 접속 장치(104)를 통해 통신하면, 방법(400)은 동작 404로 진행할 수 있다.
동작 404는 로컬 장치(106) 및/또는 컴퓨터(102)가 다른 하나로 전송되는 것이 필요할 수 있는 명령 및/또는 데이터를 갖는지를 결정한다. 명령 또는 데이터는 판독, 기록, 정보 검색, 리셋 등과 같은 요청을 포함할 수 있다. 일반적으로 로컬 장치(106)는 컴퓨터(102)에 명령을 발하지 않는다는 점에 유의해야 한다. 오히려, 일반적으로 컴퓨터(102)는 로컬 장치(106)에 명령들을 배타적으로 요청할 수 있다. 게다가, 동작 410과 관련하여 후술하는 바와 같이, 컴퓨터(102)에 의한 각각의 요청은 사실상 접속국(104)에 의해 수행된다.
로컬 장치(106) 및/또는 컴퓨터(102)가 다른 하나에 대한 명령을 갖는 경우, 방법(400)은 동작 406으로 진행할 수 있다. 반면에 로컬 장치(106)도 컴퓨터(102)도 다른 하나에 대한 명령 또는 데이터 요청을 갖지 않는 경우, 방법(400)은 동작 405로 진행한다.
동작 405는 사전 결정된 대기 시간이 초과되었는지를 결정한다. 예를 들어, 컴퓨터(102)가 응답하지 않는 경우(예를 들어, 네트워크(108)에 대한 접속이 해제되거나, 고장나는 등), 접속국(104)은 대기 시간 후에 로컬 장치(106)에 대한 컴퓨터(102)의 액세스를 철회할 수 있다. 동작 405는 접속을 종료할 수 있으므로, 컴퓨터(102)가 더 이상 접속국(104) 및 로컬 장치(106)와 통신하지 못할 수 있다는 사실에도 불구하고 컴퓨터(102)가 로컬 장치(106)에 대한 배타적 액세스를 독점하는 것을 방지할 수 있다.
로컬 장치(106)도 컴퓨터(102)도 설정된 기간 동안 다른 하나에 대한 명령을 갖지 않는 경우, 동작 405는 대기 시간이 초과되었는지를 결정하며, 따라서 방법(400)은 무한 루프에 들어가지 않을 수 있다. 설정된 기간 후에 명령이 존재하지 않는 경우, 방법(400)은 종료(412)로 진행할 수 있다. 그러나, 동작 405에서 대기 시간이 아직 초과되지 않은 경우, 방법(400)은 동작 404로 역행하여 임의의 명령이 존재하는지를 결정할 수 있다. 동작 405는 무한 루프 조건을 잠재적으로 방지하기 위한 대기 기간, 다수의 사이클 또는 다른 체크일 수 있다는 점에 유의해야 한다.
게다가, 일부 예들에서, 컴퓨터(102)와 접속국(104) 사이에 키프 얼라이브(keep alive) 패킷들이 주기적으로 전송될 수 있다. 키프 얼라이브 패킷들은 컴퓨터(102)가 여전히 응답하고 있으며, 로컬 장치(106)와 컴퓨터(102) 간의 접속이 여전히 유효하다는 것을 접속국(104)에 알릴 수 있다. 접속국(104)은 키프 얼라이브 패킷을 수신할 때, 타임아웃 타이머를 재시동하고/하거나 타임아웃 전에 다수의 사이클을 재개할 수 있다. 키프 얼라이브 패킷들은 접속국(104)이 컴퓨터(102)와 로컬 장치(106) 간의 유휴 상태이지만 여전히 응답하는 접속을 종료하는 것을 방지할 수 있다. 예를 들어, 컴퓨터(102)와 로컬 장치(106) 간의 통신의 결여는 컴퓨터(102)가 응답하지 못하게 되었다는 것을 나타내지 않을 수도 있다.
명령 및/또는 데이터가 수신되면, 방법(400)은 동작 406으로 진행하며, 로컬 장치(106) 또는 컴퓨터(102)로부터의 명령 및/또는 데이터는 접속국(104)으로 전송된다. 접속국(104)이 명령 및/또는 데이터를 수신하면, 접속국(104)은 동작 408에서 명령 및/또는 데이터를 변환할 수 있다. 접속국(104)은 명령 및/또는 데이터가 직접 접속을 위해 구성될 수 있으므로 명령 및/또는 데이터를 변환한다. 예를 들어, 로컬 장치(106)는 컴퓨터(102)와 직접 통신하도록 구성될 수 있으며, 로컬 장치(106)는 네트워크(108)를 통해 컴퓨터(102)와 통신하므로, 명령 및/또는 데이터는 국지적으로 전송되는 것으로 보이도록 변환될 수 있다.
명령 및/또는 데이터가 전송되면, 방법(400)은 동작 410으로 진행하며, 명령 및/또는 데이터는 로컬 장치(106)로 또는 로컬 장치로부터 전송될 수 있다. 예를 들어, 컴퓨터(102)는 로컬 장치(106)로부터의 판독 명령을 발할 수 있으며, 명령이 적절히 변환된 후, 접속국(104)은 명령을 로컬 장치(106)로 전송할 수 있다. 유사하게, 로컬 장치(106)는 데이터를 접속국(104)으로 전송할 수 있으며, 이어서 데이터가 변환되면 컴퓨터(102)로 (네트워크(108)를 통해) 전송될 수 있다.
결론
위의 설명은 광범위한 응용을 갖는다. 예를 들어, 본 명세서에서 개시된 예들은 네트워크를 통해 로컬 장치에 대한 액세스를 제공하는 것에 집중할 수 있지만, 본 명세서에서 개시된 개념들은 특정 통신 스킴을 위해 구성될 수 있는 다른 장치 타입들에 동일하게 적용될 수 있다는 것을 알아야 한다. 유사하게, 네트워크 및 접속국이 로컬 장치와 관련하여 설명될 수 있지만, 본 명세서에서 개시되는 장치들 및 기술들은 다수의 장치에 의해 제공되는 특정 기능들 또는 서비스들에 동일하게 적용될 수 있다. 따라서, 임의의 실시예의 설명은 예시적인 것을 의도할 뿐이며, 청구항들을 포함하는 본 발명의 범위가 그러한 예들로 한정된다는 것을 시사하는 것을 의도하지 않는다.

Claims (20)

  1. 로컬 장치 서비스를 접속국(connecting station)을 통해 적어도 하나의 컴퓨터에 제공하기 위한 방법으로서,
    접속국에 의해, 상기 접속국에 직접 및 국지적으로 통신 가능하게 결합된 로컬 장치가 분주(busy)한지를 결정하는 단계 - 상기 로컬 장치는 상기 접속국과 통신하도록 구성됨 -;
    상기 접속국에 의해, 상기 로컬 장치에 의해 제공되는 이용 가능한 제1 서비스를 국지적으로 또는 네트워크를 통해 상기 접속국에 통신 가능하게 결합된 적어도 하나의 컴퓨터로 방송(broadcasting)하는 단계; 및
    상기 접속국에 의해, 상기 로컬 장치가 분주하지 않고 상기 적어도 하나의 컴퓨터 중 주어진 컴퓨터에 의해 선택되는 경우에, 상기 로컬 장치에 대한 액세스를 상기 주어진 컴퓨터에 제공하는 단계
    를 포함하고,
    상기 로컬 장치에 대한 액세스를 상기 주어진 컴퓨터에 제공하는 단계는,
    상기 적어도 하나의 컴퓨터 중 주어진 컴퓨터로부터 상기 로컬 장치에 대한 하나 이상의 명령을 수신하는 단계 - 상기 명령은 상기 적어도 하나의 컴퓨터 중 주어진 컴퓨터와 상기 로컬 장치 사이의 직접 접속을 위해 구성됨 -;
    상기 명령을 변환(translating)하는 단계 - 상기 변환된 명령은, 상기 로컬 장치의 관점에서, 상기 적어도 하나의 컴퓨터 중 주어진 컴퓨터로부터가 아닌 상기 접속국으로부터 국지적으로 유래된 요청으로 보이도록 구성됨 -; 및
    상기 변환된 명령을 상기 로컬 장치로 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 로컬 장치가 분주한 경우에, 상기 방법은 상기 적어도 하나의 컴퓨터 중 주어진 컴퓨터가 상기 로컬 장치에 액세스하는 것을 방지하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 로컬 장치는 다기능 로컬 장치인 방법.
  4. 제1항에 있어서,
    상기 로컬 장치의 상기 제1 서비스를 방송하는 것과 동시에 상기 로컬 장치에 의해 제공되는 이용 가능한 제2 서비스를 방송하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 접속국이 상기 로컬 장치에 의해 제공되는 상기 이용 가능한 제1 서비스를 상기 네트워크를 통해 방송하는 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 네트워크를 통해 컴퓨터를 로컬 장치에 의해 제공되는 서비스에 접속하기 위한 방법으로서,
    상기 컴퓨터에 의해, 상기 네트워크를 통해 서비스가 이용 가능한지를 결정하는 단계;
    상기 컴퓨터에 의해, 상기 서비스를 제공하도록 구성된 로컬 장치의 제1 선택을 접속국으로 전송하는 단계;
    상기 컴퓨터에 의해, 상기 로컬 장치가 이용 가능하다는 응답을 상기 접속국으로부터 수신하는 단계;
    상기 컴퓨터 상에서 상기 로컬 장치에 대응하는 드라이버를 런칭(launching)하는 단계; 및
    상기 컴퓨터에 의해 상기 접속국을 통해 상기 로컬 장치에 액세스하는 단계
    를 포함하고,
    상기 로컬 장치에 액세스하는 단계는,
    상기 컴퓨터로부터 상기 로컬 장치에 대한 하나 이상의 명령을 수신하는 단계 - 상기 명령은 상기 컴퓨터와 상기 로컬 장치 사이의 직접 접속을 위해 구성됨 -;
    상기 명령을 변환(translating)하는 단계 - 상기 변환된 명령은, 상기 로컬 장치의 관점에서, 상기 컴퓨터로부터가 아닌 상기 접속국으로부터 국지적으로 유래된 요청으로 보이도록 구성됨 -; 및
    상기 변환된 명령을 상기 로컬 장치로 전송하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 접속국은 상기 네트워크를 통해 이용 가능 서비스들을 목록화하는(listing) 방송을 제공하는 방법.
  11. 제9항에 있어서,
    상기 네트워크를 통해 이용 가능한 상기 서비스가 존재하는지를 결정하기 전에, 상기 서비스를 요청하는 상기 컴퓨터 상의 애플리케이션을 런칭하는 방법.
  12. 제9항에 있어서,
    상기 로컬 장치에 대한 상기 컴퓨터의 액세스를 제공하기 전에, 상기 방법은 상기 로컬 장치에 의해 제공되는 적어도 하나의 서비스가 분주한지를 결정하는 단계를 더 포함하는 방법.
  13. 삭제
  14. 제9항에 있어서,
    상기 서비스는 인쇄 기능, 스캐닝 기능 또는 복사 기능 중 하나인 방법.
  15. 제9항에 있어서,
    상기 로컬 장치에 대한 상기 컴퓨터의 액세스를 제공하는 단계는 상기 로컬 장치 및 상기 컴퓨터로부터 상기 접속국으로의 통신 경로를 생성하는 단계를 포함하는 방법.
  16. 로컬 장치에 대한 네트워크 액세스를 제공하기 위한 접속국으로서,
    로컬 장치로부터의 서비스 통지 및 컴퓨터로부터의 선택 통지를 수신하도록 구성된 네트워크 인터페이스;
    상기 네트워크 인터페이스와 통신하는 프로세서
    를 포함하고,
    상기 프로세서는
    상기 로컬 장치로부터의 상기 서비스 통지를 네트워크를 통해 상기 컴퓨터로 방송하고;
    상기 컴퓨터가 상기 선택 통지를 상기 네트워크 인터페이스로 전송할 때 상기 로컬 장치에 대한 상기 컴퓨터의 액세스를 제공하고;
    상기 컴퓨터가 상기 로컬 장치에 액세스하고 있을 때 상기 로컬 장치가 분주하다는 것을 적어도 하나의 제2 컴퓨터로 전송하도록 구성되고,
    상기 프로세서는,
    상기 컴퓨터로부터 상기 로컬 장치에 대한 하나 이상의 명령을 수신하고 - 상기 명령은 상기 컴퓨터와 상기 로컬 장치 사이의 직접 접속을 위해 구성됨 -;
    상기 명령을 변환(translating)하고 - 상기 변환된 명령은, 상기 로컬 장치의 관점에서, 상기 컴퓨터로부터가 아닌 상기 접속국으로부터 국지적으로 유래된 요청으로 보이도록 구성됨 -;
    상기 변환된 명령을 상기 로컬 장치로 전송함으로써, 상기 로컬 장치에 대한 상기 컴퓨터의 액세스를 제공하도록 구성되는 접속국.
  17. 제16항에 있어서,
    상기 프로세서는 또한 상기 컴퓨터로부터 컴퓨터 명령을 수신하도록 구성되는 접속국.
  18. 삭제
  19. 삭제
  20. 제16항에 있어서,
    상기 프로세서는 또한 라우터 기능을 제공하도록 구성되는 접속국.
KR1020137035042A 2011-06-16 2012-06-05 로컬 장치의 공유 액세스 KR101443006B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/161,942 2011-06-16
US13/161,942 US8667079B2 (en) 2011-06-16 2011-06-16 Shared access to a local device
PCT/US2012/040921 WO2012173820A2 (en) 2011-06-16 2012-06-05 Shared access to a local device

Publications (2)

Publication Number Publication Date
KR20140007977A KR20140007977A (ko) 2014-01-20
KR101443006B1 true KR101443006B1 (ko) 2014-09-22

Family

ID=46246284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137035042A KR101443006B1 (ko) 2011-06-16 2012-06-05 로컬 장치의 공유 액세스

Country Status (7)

Country Link
US (1) US8667079B2 (ko)
EP (1) EP2710464B1 (ko)
JP (1) JP5837189B2 (ko)
KR (1) KR101443006B1 (ko)
CN (1) CN103608771B (ko)
BR (1) BR112013032085B1 (ko)
WO (1) WO2012173820A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5729344B2 (ja) * 2012-03-29 2015-06-03 ブラザー工業株式会社 画像処理装置および画像処理システム
WO2019127327A1 (en) * 2017-12-29 2019-07-04 Qualcomm Incorporated Techniques for maintaining connected state
EP4305065A1 (en) 2021-03-10 2024-01-17 Xencor, Inc. Heterodimeric antibodies that bind cd3 and gpc3

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6348971B2 (en) * 1997-06-20 2002-02-19 Seiko Epson Corporation Printing system and printing method for selecting an optimum printing for printing
US20060026600A1 (en) * 2004-07-27 2006-02-02 Brother Kogyo Kabushiki Kaisha Selecting setting options method, device and computer program product
US7346673B1 (en) * 1999-09-09 2008-03-18 Ricoh Company, Ltd. Method and apparatus for selecting a device and a computer product

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6452692B1 (en) * 1996-12-02 2002-09-17 Sun Microsystems, Inc. Networked printer server
US7706017B2 (en) * 2001-01-11 2010-04-27 Sharp Laboratories Of America, Inc. Systems and methods for providing load balance rendering for direct printing
US20050209842A1 (en) 2004-03-16 2005-09-22 Digi International Inc. Remote USB port system and method
US20090303521A1 (en) 2008-06-06 2009-12-10 Moschip Seminconductor Technology Limited Method and system for sharing of a usb printer to all clients
TWM357099U (en) 2008-11-26 2009-05-11 Azurewave Technologies Inc System and apparatus of wireless remote universal serial bus hub
US8438294B2 (en) * 2010-04-07 2013-05-07 Apple Inc. Application programming interface, system, and method for collaborative online applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6348971B2 (en) * 1997-06-20 2002-02-19 Seiko Epson Corporation Printing system and printing method for selecting an optimum printing for printing
US7346673B1 (en) * 1999-09-09 2008-03-18 Ricoh Company, Ltd. Method and apparatus for selecting a device and a computer product
US20060026600A1 (en) * 2004-07-27 2006-02-02 Brother Kogyo Kabushiki Kaisha Selecting setting options method, device and computer program product

Also Published As

Publication number Publication date
EP2710464A2 (en) 2014-03-26
JP2014522016A (ja) 2014-08-28
WO2012173820A2 (en) 2012-12-20
BR112013032085A2 (pt) 2016-12-13
US20120324107A1 (en) 2012-12-20
US8667079B2 (en) 2014-03-04
WO2012173820A3 (en) 2013-03-14
CN103608771B (zh) 2016-11-02
JP5837189B2 (ja) 2015-12-24
CN103608771A (zh) 2014-02-26
KR20140007977A (ko) 2014-01-20
BR112013032085B1 (pt) 2021-12-14
EP2710464B1 (en) 2020-02-12

Similar Documents

Publication Publication Date Title
US11706600B2 (en) Information processing program product, information processing apparatus, and information processing system
CN100586073C (zh) 网络设备的简易动态配置
US9898231B2 (en) System and method of mobile printing using near field communication
JP5742651B2 (ja) 画像処理装置、連携方法および連携プログラム
US8396220B2 (en) System and method of mobile content sharing and delivery in an integrated network environment
CN107615791B (zh) 用于添加m2m服务的装置和方法
EP2562966B1 (en) Method and apparatus for sharing content in home network environment
US8819276B2 (en) Apparatus, system, and method of processing printing operation on home network
KR101443006B1 (ko) 로컬 장치의 공유 액세스
JP2002099473A (ja) ネットワーク上のサービス情報収集方法、ネットワーク上のサービス情報収集装置及びネットワーク上のサービス情報収集プログラムを格納した記録媒体
KR102072003B1 (ko) 디바이스들 간의 리소스 공유하는 방법 및 전자 디바이스
CN114007202A (zh) 一种绑定关系的建立方法以及相关设备
JP2019161585A (ja) 情報処理装置、情報処理システム、設定情報の共有方法およびプログラム
JP2010250723A (ja) 通信システムおよびソフトウェアモジュール配布方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20170818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 5