CN103608771B - 对本地设备的共享访问 - Google Patents
对本地设备的共享访问 Download PDFInfo
- Publication number
- CN103608771B CN103608771B CN201280029408.0A CN201280029408A CN103608771B CN 103608771 B CN103608771 B CN 103608771B CN 201280029408 A CN201280029408 A CN 201280029408A CN 103608771 B CN103608771 B CN 103608771B
- Authority
- CN
- China
- Prior art keywords
- local device
- computer
- docking station
- network
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor 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
一种用于通过网络提供本地设备服务的方法,其中本地设备不被配置为用于网络访问。所述方法包括确定本地设备是否忙碌,如果本地设备不忙碌,则在网络上广播由所述本地设备提供的可用的第一服务。接着,如果本地设备不忙碌并且被计算机选择,则由连接站向计算机提供对所述本地设备的访问。
Description
相关申请的交叉引用
本专利合作条约专利申请要求享有2011年6月16日提交的题为“SHARED ACCESSTO A LOCAL DEVICE”的美国专利申请号13/161,942的优先权,其也可以在美国专利商标局由代理人案号P9951US1(P222092.US.01)来识别,其出于所有的目的通过引用而全文并入于此。
技术领域
本发明一般地涉及电子设备,更具体地涉及经由网络共享电子设备。
背景技术
计算机和其他电子设备,诸如平板计算机、移动电话、游戏控制台和其他类似的设备(以下称为“计算机”),可以被配置为以电子方式连接到各种外部设备,例如但不作为限制地,打印机、照相机、扫描仪、计算机、电话等等(“外部设备”)。许多外部设备可以被配置为通过网络连接到计算机(“网络设备”)或以本地方式连接到计算机(“本地设备”)。网络设备可以通过网络连接到多个计算机,其中每个计算机可以单独地访问所述网络设备。相反,本地设备通常在任何给定时间仅可以连接到单个计算机。为了将本地设备连接到另一计算机,本地设备可能需要与第一个计算机断开连接。当本地设备以本地方式连接到计算机时,其可以安装(或要求用户在所述计算机上安装)特定于设备的驱动程序。所述驱动程序允许所述计算机与所述本地设备通信并向其提供命令。现在更常见的是,人们在家中具有多个计算机,但是这些设备中的许多可能是本地设备,而不是网络设备。例如,家庭可能具有单个打印机,但是该家庭中的每个成员可能具有其自己的计算机。
发明内容
本公开的示例可以采取用于通过网络提供本地设备服务的方法的形式,其中所述本地设备不被配置用于网络访问。所述方法包括确定所述本地设备是否忙碌,如果本地设备不忙碌,则通过网络广播由所述本地设备提供的可用的第一服务。接着,如果所述本地设备不忙碌并被计算机选择,则向所述计算机提供对所述本地设备的访问。
本公开的其他示例可以采取用于通过网络将计算机连接到由本地设备提供的服务的方法的形式。所述方法可以包括由计算机确定在网络上是否有可用的服务。如果有可用的服务,则选择被配置为提供所述服务的本地设备。一旦所述本地设备被选择,则与连接站通信,其中该连接站与所述计算机和所述本地设备通信。接着,在所述计算机上启动对应于所述本地设备的驱动程序。
本公开还有的其他示例可以采取用于向本地设备提供网络访问的连接站的形式。所述连接站可以包括网络接口,该网络接口被配置为接收来自本地设备的服务通知和来自计算机的选择通知。所述连接站还可以包括与所述网络接口通信的处理器。所述处理器被配置为通过网络将来自所述本地设备的服务通知广播给所述计算机,并当所述计算机向所述网络接口发送选择通知时,向所述计算机提供对所述本地设备的访问。
附图说明
图1A是用于提供对本地设备的网络访问的系统的示意图。
图1B是用于提供对本地设备的网络访问的系统的另一个实施例的示意图。
图1C是用于提供对本地设备的网络访问的系统的另一个实施例的示意图。
图2是图1A中所示出的系统的框图。
图3是示出了经由网络提供对本地设备的本地访问的一个实施例的流程图。
图4是示出了经由网络将本地设备连接到计算机的方法的实施例的流程图。
图5是连接站促进本地设备与计算机之间经由网络的通信的方法的一个实施例的流程图。
具体实施方式
概述
在这里的一些实施例中,本公开可以采取用于经由网络(例如WiFi、以太网、蓝牙以及其他的网络连接拓扑)提供对本地设备的访问的方法的形式。所述本地设备可以是非联网的设备,或者可以包括至少一个非联网的功能。例如,本地设备可以是多功能打印机、复印机、扫描仪,其中扫描仪和复印功能可以被配置为仅以本地方式访问。所述方法允许所述本地设备(或设备的某些功能)通过网络被提供,而不需要所述本地设备被特别配置用于网络访问。换句话说,本公开允许“开箱即用(out of the box)”组件在网络上可用,而基本上不需要修改对应于计算机和/或本地设备的软件驱动程序。
此外,本公开可以允许由本地设备提供的多个功能被并行使用。例如,本地设备可以包括打印功能和扫描功能,本公开可以经由打印机访问将一计算机连接到本地设备,同时提供可以由第二计算机使用的另外的扫描访问。
在一个实施例中,连接站可以提供由计算机通过网络对本地设备的网络访问。虽然所述连接站可以被放置在本地设备与计算机的通信之间,但是所述计算机与所述设备可以彼此看起来(当连接时)是以本地方式连接的(例如经由直接的通用串行总线连接)。以这种方式,本地设备和/或计算机可以不必被特别配置为呈现在网络上或连接到网络。所述连接站还可以促进和/或转译本地设备与计算机之间的通信。
具体实施例
在示例性的实施例中,一种用于提供由一个或多个计算机对本地设备的网络访问的系统可以包括至少一个计算机、连接站以及本地设备。图1A是用于提供对本地设备的网络访问的系统100的框图。系统100可以包括经由网络108与连接站104通信的计算机102。连接站104则可以与本地设备106通信。因此,连接站104与计算机102和本地设备106二者通信。在这个实施例中,计算机102与本地设备106之间的通信可以经由连接站104传送。连接站104可以向计算机102提供经由网络108对本地设备106(或本地设备106的选择的功能)的访问,尽管本地设备106可能原本没有被配置作为联网的设备。
图1B是系统100的另一个实施例的框图。在这个实施例中,计算机102可以连接到第二连接站140,后者则可以(经由网络108)连接到第一连接站104。类似地,虽然图1B中未示出,连接站104、140可以被配置为彼此直接通信,而无需网络108。例如,连接站104、140可以彼此直接连接,经由无线电波、或其他网络/连接拓扑(例如使用蓝牙的微微网系统)通信。
图1C是图1A的系统的另一个实施例的框图。在这个实施例中,连接站104可以连接到多个本地设备106、162和164。另外,连接站104也可以连接到(经由网络108)计算机102和/或第二计算机121。以这种方式,连接站104可以为计算机102、121提供到多个本地设备106、162、164的单个连接。本地设备162、164可以是基本上任何类型的本地设备,诸如数码相机、音频设备、存储设备或打印机。
图2是图1A中示出的系统的框图。计算机102可以是基本上任何类型的电子计算设备。例如,计算机102可以是个人计算机、膝上型计算机、平板计算机、智能电话、视频游戏控制台等。计算机102可以包括处理器110、输入/输出接口112、网络/通信接口116和存储器114。计算机102内的各种组件可以经由系统总线118(或多个系统总线)而电子连接在一起。计算机102可以包括未示出的附加的本地或远程组件;图2仅仅是示例性的。
网络/通信接口116可以接收和发送各种电信号。例如,网络/通信接口116可以用于将计算机102连接到网络108,以便向连接站104和网络108上的计算机和其他设备以及/或者从连接站104和网络108上的计算机和其他设备发送和接收信号。网络通信接口116也可以用于经由无线或有线连接(包括但不限于因特网、WiFi、蓝牙、以太网、USB和Firewire)发射和发送电子信号。
存储器114可以存储可以由计算机102利用的电子数据。例如,存储器114可以存储包括任何类型的内容的电数据,包括但不限于音频文件、视频文件、文档文件和数据文件。所存储的数据可以对应于计算机的各种应用和/或操作中的一个或多个。存储器114可以是任何格式的,包括但不限于非易失性存储装置、磁存储介质、光存储介质、磁光存储介质、电存储介质、只读存储器、随机存取存储器、可擦除可编程存储器和闪存。存储器可以相对于所述计算机在本地和/或远程提供。
处理器110可以控制计算机102及其各种组件的操作。处理器110可以与连接站104通信。处理器110可以是能够处理、接收和/或发送指令的基本上任何电子设备。例如,处理器110可以是微处理器或微型计算机。
输入/输出接口112促进计算机102往来于从各种设备/源的通信。例如,输入/输出接口112可以从用户(例如经由键盘、触敏表面、鼠标、声音输入或其他设备)、计算机102上的控制按钮(例如电源按钮、音量按钮)等接收数据。另外,输入/输出接口112还可以从以及向外部驱动(例如通用串行总线(USB)或其他视频/音频/数据输入)来接收/发送数据。
再次参照图1A,网络108提供连接站104与计算机102之间的电子通信。网络108可以是几乎任何类型的电子通信机制/路径,并且可以是无线或有线的、或者有线与无线的组合。例如,网络108可以包括因特网、以太网、通用串行总线(USB)电缆、或无线电信号(例如WiFi、蓝牙)。在一个例子中,网络108可以是局域网(LAN),然而在其他例子中,网络108可以是广域网(WAN)或根据任何给定实现方式的需要可以利用的网络拓扑。
现在参照图1和2,连接站104可以是被配置为在两个设备之间提供通信的基本上任何类型的计算设备。连接站104被配置为提供通往或来自计算机102和本地设备106的电子通信。两个设备之间的电子通信可以利用包括有线和/或无线拓扑的任何连接拓扑。进一步地,连接站102与本地设备106之间的这种连接可以是直接的或间接的。例如,本地设备106可以直接连接到连接站104,计算机102可以以无线方式连接到连接站104。然而,可以使用其他设置,例如计算机102和本地设备106均可以以无线方式连接到连接站104,等等。另外,连接站102可以提供路由器功能。换句话说,连接站102可以从一个设备向另一个设备接收和发送数据分组。
连接站104可以包括处理器120、网络通信接口124、存储器126、以及可以电连接各种组件的系统总线130。处理器120可以基本上类似于计算机102中的处理器110;然而,依赖于所需的应用,相比于计算机102,连接站104中的处理器124一般可以能力较低。类似地,存储器126与计算机102中的存储器114可以基本相同,尽管连接站104中的存储器126可以被配置为存储(一般而言)较少的数据。根据任何给定实现方式的需要,还可以单独使用或者与存储器126相结合地使用外部存储器和数据存储服务。
网络/通信接口124也可以(但不是必须)与计算机102中的网络/通信接口116基本上相同。网络/通信接口124可以被进一步配置为向网络108提供对某些设备的访问、彼此连接设备、在本地设备和多个可能不同的计算机中的两个或更多个之间执行联网功能、以及执行其他网络和连接性管理功能。例如,网络/通信接口124可以向计算机102、本地设备106和与其直接或间接连接的其他设备提供路由器功能。
仍然参照图1A和2,本地设备102可以是可电子连接到计算机的几乎任何设备。另外,本地设备102可以是被配置为本地连接到计算机的设备,也就是说,直接连接到计算机而不是作为网络的一部分。例如,本地设备106可以是打印机、扫描仪、照相机、摄像机、存储器等。进一步地,在一些示例中,本地设备102可以被配置为提供多个服务或应用。在这些例子中,本地设备102可以配置为使得本地设备102所提供的一个而不是所有的服务或应用可以通过网络被提供。例如,本地设备102可以是提供多个服务或功能(诸如打印、复制、存储以及扫描)的多功能设备;然而,只有打印机功能可以提供作为联网服务的功能。应当注意,本地设备106可以是多功能设备或单一功能设备。
在一些实施例中,本地设备106可以被配置为经由连接128可操作地连接到计算机102。连接128可以是有线或无线连接,诸如线缆。如果是有线的,则线缆可以是支持电子通讯的基本上任何类型的线缆,在一个例子中,线缆128可以是USB。如图1A所示,本地设备106可以经由连接128与连接站104通信。
再次参照图1A,系统100可以向计算机102提供对本地设备106的网络访问,虽然本地设备106可以一般被配置为通过连接128直接进行通信。在一些实施例中,这可以使得连接站104和计算机102能够与本地设备102后向兼容。换句话说,本地设备106可能不具有联网能力,但连接站104可以提供对本地设备106所提供的功能的网络功能。此外,本地设备106可以经由连接站104和网络108通信地连接到其他设备和计算机,而基本上不需要修改设备的软件(例如驱动程序)或设备的硬件(例如网卡、模块等)。
连接站104可以向原本可能没有被配置为提供网络能力的许多不同的设备提供网络能力。这使得本地设备106能够作为网络设备工作,但不需要增加网络设备通常可能需要的花费,例如获得对于与许多网络拓扑一起使用的协议栈的权利。另外,本地设备106可以能够由多个计算机访问和使用,这可以允许多个用户在基本相同的时间访问同一设备,而不需要关心给定用户的计算机与本地设备的地理邻近程度。
图3是示出了通告本地设备106的可用性、以及仲裁计算机经由网络对该设备的访问的方法的一个实施例的流程图。方法200可以提供远程虚拟化来提供本地设备106以及计算机102之间的通信,但也可以一般性地调节或仲裁由计算机102对本地设备106的访问。方法200可以开始于操作202,本地设备106可以通信地连接到连接站104。
一旦本地设备102与连接站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可以基于质询(challenge)和应答来通信。例如,计算机102可以询问连接站104以在接收广播之前查看是否有任何可用的设备。
连接站104的广播或通告可以包括关于本地设备106的信息。该信息可以允许用户(或计算机102)确定他或她是否想要连接到本地设备106。该信息可以包括厂商信息(例如商标名称)、序列号和其他相关信息,例如本地设备106所提供的功能。
一旦本地设备106已经在网络108上被广播,则方法200进行到操作208,连接站104确定计算机102是否已经请求对本地设备106的排他访问。计算机102的该选择过程将参照图4进行更详细的讨论。然而,当计算机102请求访问本地设备106时,计算机102可以呼叫连接站104,以指示其希望连接到本地设备106(或功能)。一旦本地设备106被选择,则方法200可以进行到操作212。
操作212确定本地设备106是否忙碌。连接站104可以确定计算机102当前是否具有对本地设备106的排他访问以及/或者本地设备106的所需功能是否在使用中。
在另选的实施例中,如果计算机102具有对本地设备106的访问,并且当前正与本地设备106通信或者将来可能与本地设备106通信,则本地设备106也可以被认为是忙碌的。然而,这些实施例可能更难以实现。这可能是因为本地设备106与计算机102之间将来的通信可能难以预测。例如,如果本地设备106是打印机并且用完了纸张,则在本地设备106与计算机102之间可能没有通信,直到更多纸张被给到设备106中。在连接站104看来,当前通信的这种缺失可以是计算机102与本地设备106之间的通信结束的标志,但是其可能只是临时状态。因此,一般地,如果一计算机具有对本地设备106的排他访问,则可以简单地将本地设备106确定为忙碌。
应该注意,在一些实施例中,操作206中的广播可以包括本地设备106的状态,例如本地设备106是否忙碌。然而,操作212可以针对本地设备106可能在操作206与操作212之间变得忙碌的情况而完成。但是,应当注意,在一些实施例中,操作212可以被省略,因为操作206可能不被执行,除非在操作204中连接站104确定本地设备106未在使用中。在这个实施例中,如果本地设备106当前正在使用中/忙碌,则连接站104可以不将本地设备106广播为可用。
如果在操作212中,连接站104确定本地设备106忙碌,则方法200可以进行到操作214。操作214可以拒绝计算机102对本地设备106(或功能)的访问。例如,连接站104可以向计算机102提供本地设备106(或功能)不再可用的告警消息。
一旦连接站104拒绝了计算机102对本地设备106的访问,则方法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可以不被附接到计算机102,直到操作216。这意味着,在本地设备106与计算机102之间可以没有连接,直到由用户发起(经由计算机102)。这可以防止在功能或本地设备106可以实际上被利用之前,计算机102独占该功能或整个本地设备106。因为本地设备106可以不被配置为“网络”设备,本地设备106可以只被配置为每次提供单个功能或连接。因此,通过在所述功能实际上被利用之前防止计算机102连接到该功能或本地设备106,在使用之间的停工期间本地设备106可用来连接到其他计算机。
一旦本地设备106(或分立的功能)已连接到计算机102,方法200可以进行到操作217。连接站217可以确定在计算机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然后可以终止计算机102对本地设备106的访问,并且方法200可以结束。应该注意,在连接站104在向计算机102提供对本地设备106的访问期间的基本上任何时间点,连接站104可以检查以确定两者之间的连接是否已断开。如果计算机102与本地设备106之间的连接已断开,则这可以防止计算机102独占对本地设备106的访问。
图4是示出了用于经由网络108将本地设备106(或本地设备106的功能)连接到计算机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。应当注意,在一些实施例中,如果本地设备106忙碌,则连接站104可以不广播通告。因此,根据期望的实施方式,操作304可以被省略。
操作308确定计算机102是否想使用在网络108上被通告的本地设备106。例如,用户可以查看关于本地设备106的信息,诸如其可用功能(例如打印、扫描等),接着可以确定他或她希望使用本地设备106并可以配置计算机102来选择该本地设备106(或功能)。计算机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以确定本地设备306是否忙碌。在一些情况下,安装驱动程序可能需要计算机102重新启动。在这种情况下,本地设备106可能变得不可用,因此,操作306再次确定本地设备106是否可用。
在一些实施例中,驱动程序可以安装在计算机102上,而不是在连接站104上。这是因为可能有多个可能被使用的本地设备106,并且,将软件驱动程序包括在连接站104上可能需要连接站104具有更多的计算能力和/或存储空间。因此,一般地,连接站104可以使用一般为通用的操作来与本地设备106和计算机120交互,该操作对于本地设备106和计算机102两者可以是共同的。例如,如果本地设备106包括USB连接,则连接站104可以向本地设备106和计算机102以及从它们传送读、写和设备请求。
然而,在其他实施例中,驱动程序可以安装在连接站104上。在这些实施例中,连接站104可以执行计算机102上的驱动程序与本地设备106所需的驱动程序之间的转译。这样,计算机102可以不必与本地设备106的特定驱动程序相兼容或者能够接受该特定驱动程序。例如,计算机102可以具有可能与新的本地设备106的驱动程序不兼容的过时的操作系统。这样,连接站104可以提供通信机制来向计算机102提供本地设备106的至少一些功能。应当注意,在这些例子中,连接站104与计算机102之间的通信协议可能已被扩展。通信协议可能必须包括高级驱动程序操作,诸如读/写终点、选择决策的判决顺序、以及应当向哪个设备发出请求。
一旦驱动程序被安装,则方法300可以进行到操作314,计算机102可以请求对本地设备106的排他访问。例如,计算机102可以基于可以包括在本地设备106的通告中的网络主机名称、网络地址、端口号或其他标识符来请求本地设备106。在一些情况下,访问可能被拒绝(如图2中的操作214所描述的),因为本地设备106在请求被连接站104接收的时间之间可能变得忙碌。
如果本地设备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看来)。例如,计算机102上的本地设备106的所有虚拟设备实例可以被加标签,以使得其可以与计算机102中对应于本地设备106的相应网络服务记录相匹配。这可以允许计算机102向用户呈现本地设备106的单个描述。
在一些实施例中,计算机102可以包括软件,其处理网络设备以及本地附接的设备。在这些情况下,软件可以被配置为避免将附接于连接站104的本地设备106作为两个单独的实体(网络设备和本地设备)对待。因此,对应于在网络108上广播的本地设备106的列表或数据和对计算机102呈现的本地设备106可以被组合在一起。这可以允许计算机102显示本地设备106的单个描述,而不是两个单独的描述(例如一个作为共享设备,一个作为本地连接设备)。这可以由计算机102和/或由连接站104完成。
计算机102可以包括可以与连接站104通信以及处理本地设备106的虚拟化的各方面的专用后台进程或其他软件。在一些实施例中,软件库可以与后台进程通信以提供应用编程接口。该应用编程接口可以允许在计算机102上运行的应用使用本地设备106。以这种方式,应用可以能够以可与所述应用提供的已建立的用户体验相一致的方式来集成本地设备106的虚拟“附接”和“脱离”。换句话说,所述应用可以用可允许本地设备106被呈现为直接附接(在用户看来)的方式,经由后台进程连接到本地设备106以及与其断开连接。
例如,如果计算机102包括扫描应用,其包括直接连接的设备和“真正”的网络设备,则可以使所述应用将本地设备106呈现为网络设备。当用户选择特定设备(例如从可用模型的可点击列表中)时,本地设备106到计算机102的虚拟附接和脱离可以经由所述应用来实现,但要借助于与后台进程通信的软件库。
一旦本地设备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可以不被配置为联网的设备,而是可以只被配置为直接连接(经由线缆128)到计算机102。因此,虽然连接站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可以向连接站104通知(例如经由它们的点对点通信协议)其已经完成使用本地设备106。连接站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可以附接到计算机102,如在图4和5中的操作216、314中所分别描述的。一旦本地设备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可以在所述等待时间之后撤销计算机102对本地设备106的访问。因为操作405可以终止连接,所以其可以防止计算机102独占对本地设备106的排他访问,尽管计算机102可能不再能够与连接站104和本地设备106通信。
如果在一设定的时间段中本地设备106和计算机102都不具有针对对方的指令,则操作405确定是否已经超过等待时间,以使得方法400可以不进行无限循环。如果在一设定的时间段之后没有指令,则方法400可以进行到结束412。然而,如果在操作405中尚未超过等待时间,则方法400可以返回到操作404,以确定是否存在任何指令。应当注意,操作405可以是等待时间段、循环数目、或为了潜在地防止无限循环状态的其他检查。
另外,在一些情况下,保活分组(keep alive packet)可以在计算机102和连接站104之间周期性地发送。保活分组可以向连接站104警告,计算机102仍然有响应,并且本地设备106与计算机102之间的连接仍然有效。当连接站104接收到保活分组时,其可以重新启动超时定时器和/或超时之前的循环数目。保活分组可以防止连接站104终止计算机102与本地设备106之间的空闲但仍然有响应的连接。例如,计算机102与本地设备106之间的通信的缺失可能不表示计算机102已变为无响应的。
一旦已经接收到命令和/或数据,方法400就进行到操作406,来自本地设备106或计算机102的命令和/或数据被发送到连接站104。一旦连接站104接收到命令和/或数据,连接站104就可以在操作408转译该命令和/或数据。连接站104转译命令和/或数据是因为命令和/或数据可能是针对直接连接被配置的。例如,本地设备106可能被配置为与计算机102之间直接通信,而由于本地设备106正在经由网络108与计算机102通信,所以所述指令和/或数据可以被转译以便看起来是本地发送的。
一旦命令和/或数据被发送,方法400就进行至操作410,命令和/或数据可以被发送到本地设备106或者从本地设备106被发送。例如,计算机102可以发出对本地设备106的读命令,并且在该命令被正确转译之后,连接站104可以将命令发送到本地设备106。类似地,本地设备106可以发送数据到连接站104,一旦其被转译,就可以被传递(经由网络108)到计算机102。
结论
前面的描述具有广泛的应用。例如,尽管这里所公开的例子可能专注于经由网络提供对本地设备的访问,但是应当理解,这里所公开的概念可以同样适用于可以被配置用于特定通信方案的其他类型的设备。类似地,尽管网络和连接站可以参照本地设备被讨论,但是这里所公开的设备和技术同样适用于由多个设备提供的特定功能或服务。因此,任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子。
Claims (14)
1.一种经由连接站向至少一个计算机提供本地设备服务的方法,包括:
由所述连接站确定直接且以本地方式通信地耦合到所述连接站的本地设备是否忙碌,其中所述本地设备仅被配置为与所述连接站通信;
由所述连接站向以本地方式或经由网络而通信地耦合到所述连接站的至少一个计算机广播由所述本地设备提供的可用的第一服务;以及
如果所述本地设备不忙碌并且被所述至少一个计算机中的给定计算机选择,则由所述连接站向所述给定计算机提供对所述本地设备的访问,其中,向所述至少一个计算机中的所述给定计算机提供访问包括:
从所述至少一个计算机中的所述给定计算机接收针对所述本地设备的一个或多个命令,其中所述命令被配置用于所述至少一个计算机中的所述给定计算机与所述本地设备之间的直接连接;
转译所述命令,其中经转译的命令被配置为在所述本地设备看来不是来自所述至少一个计算机中的所述给定计算机、而是以本地方式来自所述连接站的请求;和
将经转译的命令发送给所述本地设备。
2.如权利要求1所述的方法,其中如果所述本地设备忙碌,则所述方法进一步包括阻止所述计算机访问所述本地设备的步骤。
3.如权利要求1所述的方法,其中所述本地设备是多功能的本地设备。
4.如权利要求1所述的方法,进一步包括在广播所述本地设备的第一服务的同时,广播由所述本地设备提供的可用的第二服务。
5.如权利要求1所述的方法,其中所述连接站通过网络广播由所述本地设备提供的可用的第一服务。
6.一种通过网络将计算机连接到由本地设备提供的服务的方法,包括:
由所述计算机确定在所述网络上是否有可用的服务;
由所述计算机向连接站传送对于被配置为提供所述服务的本地设备的第一选择;
由所述计算机从所述连接站接收所述本地设备可用的响应;
在所述计算机上启动对应于所述本地设备的驱动程序;以及
由所述计算机通过所述连接站访问所述本地设备,其中,访问所述本地设备包括:
从所述计算机接收针对所述本地设备的一个或多个命令,其中所述命令被配置用于所述计算机与所述本地设备之间的直接连接;
转译所述命令,其中经转译的命令被配置为在所述本地设备看来不是来自所述计算机、而是以本地方式来自所述连接站的请求;和
将经转译的命令发送给所述本地设备。
7.如权利要求6所述的方法,其中所述连接站提供在网络上可用的服务的广播列表。
8.如权利要求6所述的方法,其中在确定在所述网络上是否有可用的服务之前,在所述计算机上启动需要服务的应用。
9.如权利要求6所述的方法,其中在向所述计算机提供对所述本地设备的访问之前,所述方法进一步包括确定由所述本地设备提供的至少一个服务是否忙碌。
10.如权利要求6所述的方法,其中所述服务是以下之一:打印功能、扫描功能、或复印功能。
11.如权利要求10所述的方法,其中向所述计算机提供对所述本地设备的访问包括:创建从所述本地设备和所述计算机到所述连接站的通信路径。
12.一种用于提供对本地设备的网络访问的连接站,包括:
被配置为接收来自本地设备的服务通知和来自计算机的选择通知的网络接口;以及
与所述网络接口通信的处理器,所述处理器被配置为:
通过网络向所述计算机广播来自所述本地设备的所述服务通知;
当所述计算机向所述网络接口发送所述选择通知时,向所述计算机提供对所述本地设备的访问,其中,所述处理器被配置为通过以下操作向所述计算机提供对所述本地设备的访问:
从所述计算机接收针对所述本地设备的一个或多个命令,其中所述命令被配置用于所述计算机与所述本地设备之间的直接连接;
转译所述命令,其中经转译的命令被配置为在所述本地设备看来不是来自所述计算机、而是以本地方式来自所述连接站的请求;和
将经转译的命令发送给所述本地设备;以及
当所述计算机正在访问所述本地设备时,向至少一个第二计算机告知所述本地设备正在忙碌。
13.如权利要求12所述的连接站,其中所述处理器被进一步配置为接收来自所述计算机的计算机命令。
14.如权利要求12所述的连接站,其中所述处理器进一步被配置为提供路由器功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/161,942 US8667079B2 (en) | 2011-06-16 | 2011-06-16 | Shared access to a local device |
US13/161,942 | 2011-06-16 | ||
PCT/US2012/040921 WO2012173820A2 (en) | 2011-06-16 | 2012-06-05 | Shared access to a local device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103608771A CN103608771A (zh) | 2014-02-26 |
CN103608771B true CN103608771B (zh) | 2016-11-02 |
Family
ID=46246284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280029408.0A Active CN103608771B (zh) | 2011-06-16 | 2012-06-05 | 对本地设备的共享访问 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8667079B2 (zh) |
EP (1) | EP2710464B1 (zh) |
JP (1) | JP5837189B2 (zh) |
KR (1) | KR101443006B1 (zh) |
CN (1) | CN103608771B (zh) |
BR (1) | BR112013032085B1 (zh) |
WO (1) | WO2012173820A2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5729344B2 (ja) * | 2012-03-29 | 2015-06-03 | ブラザー工業株式会社 | 画像処理装置および画像処理システム |
CN111512596A (zh) * | 2017-12-29 | 2020-08-07 | 高通股份有限公司 | 用于维持连接状态的技术 |
KR20230154311A (ko) | 2021-03-10 | 2023-11-07 | 젠코어 인코포레이티드 | Cd3 및 gpc3에 결합하는 이종이량체 항체 |
Citations (3)
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 |
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 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4059598B2 (ja) * | 1999-09-09 | 2008-03-12 | 株式会社リコー | プリンタ選択装置、プリンタ選択方法及び記憶媒体 |
US20050209842A1 (en) | 2004-03-16 | 2005-09-22 | Digi International Inc. | Remote USB port system and method |
JP4457797B2 (ja) * | 2004-07-27 | 2010-04-28 | ブラザー工業株式会社 | 画像形成装置設定プログラム、画像形成装置設定装置、画像読取装置設定プログラム、および画像読取装置設定装置 |
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 |
-
2011
- 2011-06-16 US US13/161,942 patent/US8667079B2/en active Active
-
2012
- 2012-06-05 KR KR1020137035042A patent/KR101443006B1/ko active IP Right Grant
- 2012-06-05 WO PCT/US2012/040921 patent/WO2012173820A2/en active Application Filing
- 2012-06-05 CN CN201280029408.0A patent/CN103608771B/zh active Active
- 2012-06-05 EP EP12727050.2A patent/EP2710464B1/en active Active
- 2012-06-05 BR BR112013032085-0A patent/BR112013032085B1/pt active IP Right Grant
- 2012-06-05 JP JP2014515865A patent/JP5837189B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452692B1 (en) * | 1996-12-02 | 2002-09-17 | Sun Microsystems, Inc. | Networked printer server |
US6348971B2 (en) * | 1997-06-20 | 2002-02-19 | Seiko Epson Corporation | Printing system and printing method for selecting an optimum printing for printing |
US7706017B2 (en) * | 2001-01-11 | 2010-04-27 | Sharp Laboratories Of America, Inc. | Systems and methods for providing load balance rendering for direct printing |
Also Published As
Publication number | Publication date |
---|---|
BR112013032085A2 (pt) | 2016-12-13 |
WO2012173820A3 (en) | 2013-03-14 |
US8667079B2 (en) | 2014-03-04 |
JP2014522016A (ja) | 2014-08-28 |
US20120324107A1 (en) | 2012-12-20 |
KR101443006B1 (ko) | 2014-09-22 |
EP2710464A2 (en) | 2014-03-26 |
CN103608771A (zh) | 2014-02-26 |
JP5837189B2 (ja) | 2015-12-24 |
BR112013032085B1 (pt) | 2021-12-14 |
EP2710464B1 (en) | 2020-02-12 |
KR20140007977A (ko) | 2014-01-20 |
WO2012173820A2 (en) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100586073C (zh) | 网络设备的简易动态配置 | |
CN102763095B (zh) | 便携式存储接口 | |
CN102255887B (zh) | 对应多移动装置的线上服务的提供方法与系统 | |
EP2778912B1 (en) | Information processing apparatus, relay server, information relay method, information relay program, and communication system | |
EP3161647B1 (en) | Information processing apparatus, and information processing system | |
CN101567951B (zh) | 信息处理装置、复合机以及复合机的外部认证系统 | |
US9244633B2 (en) | Image forming apparatus and method of controlling wireless network connection in the apparatus | |
JP2005084891A (ja) | デジタル機器、デジタル機器遠隔操作装置、サーバコンピュータ、デジタル機器ネットワークシステム | |
JP2009015520A (ja) | 情報処理装置及び情報処理装置を制御するプログラム及びプログラムを記憶した記憶媒体 | |
US20070076244A1 (en) | Electronic apparatus, electronic apparatus system, control method and computer-readable storage medium | |
US20130111564A1 (en) | Image forming apparatus, license server, terminal apparatus, method for installing application, and method for providing application file | |
EP2590354B1 (en) | Method, apparatus and system for software management | |
CN100502305C (zh) | 一种家庭网络设备的管理系统及管理方法 | |
CN103608771B (zh) | 对本地设备的共享访问 | |
US8135742B2 (en) | Proxy service providing apparatus, service providing method, and network system | |
US10079689B2 (en) | Method for realizing smart home service, smart home terminal and service hotspots | |
KR20090076712A (ko) | 펌웨어 업그레이드 시스템 | |
KR100494429B1 (ko) | Pc 원격구동을 위한 중계기기 및 그것을 이용한원격제어방법 | |
JP2008227671A (ja) | 遠隔管理システムおよび管理情報取得制御方法 | |
JP2002099473A (ja) | ネットワーク上のサービス情報収集方法、ネットワーク上のサービス情報収集装置及びネットワーク上のサービス情報収集プログラムを格納した記録媒体 | |
JP2014170442A (ja) | 情報処理システム、情報処理装置及びプログラム | |
JP4728767B2 (ja) | 通信装置、通信装置の制御方法、通信システム、プログラム及び記録媒体 | |
JP4378338B2 (ja) | 情報処理装置、デバイス設定方法、記憶媒体、プログラム | |
US20200045197A1 (en) | System and method for deploying software and applications | |
JP2017107576A (ja) | 情報処理システムとそのアプリケーションの利用可能機能決定方法、並びに情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |