WO2014098260A1 - 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム - Google Patents

情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム Download PDF

Info

Publication number
WO2014098260A1
WO2014098260A1 PCT/JP2013/085025 JP2013085025W WO2014098260A1 WO 2014098260 A1 WO2014098260 A1 WO 2014098260A1 JP 2013085025 W JP2013085025 W JP 2013085025W WO 2014098260 A1 WO2014098260 A1 WO 2014098260A1
Authority
WO
WIPO (PCT)
Prior art keywords
control
virtualization
information processing
control unit
processing apparatus
Prior art date
Application number
PCT/JP2013/085025
Other languages
English (en)
French (fr)
Inventor
良介 宮下
Original Assignee
キヤノンイメージングシステムズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by キヤノンイメージングシステムズ株式会社 filed Critical キヤノンイメージングシステムズ株式会社
Priority to CN201380067236.0A priority Critical patent/CN104885066B/zh
Publication of WO2014098260A1 publication Critical patent/WO2014098260A1/ja
Priority to US14/738,303 priority patent/US20150281324A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • the present invention relates to an information processing apparatus, a device control apparatus, a control method thereof, and a device control system connected via a network.
  • a system in which an information processing apparatus (hereinafter referred to as a PC) such as a personal computer is used as a client, and the client uses devices (peripherals) such as a printer, storage, and scanner via a network.
  • a PC information processing apparatus
  • devices peripherals
  • a client virtually recognizes a device on a network as a locally connected device and can access the device from a client on the network.
  • the present applicant controls a device controller (host controller) of a device server in order to control a device locally connected to a device server (device control apparatus) connected to a network such as a LAN from a client on the network.
  • a device controller host controller
  • a device server device control apparatus
  • a network such as a LAN from a client on the network.
  • Patent Document 1 A device control system that can be controlled from a PC has been proposed (see, for example, Patent Document 1).
  • the device control unit of the device server that is controlled by the client.
  • the device control unit the device control unit of the device server that is controlled by the client.
  • the client when resetting a device locally connected to the device server, other than the device control unit Need to control the hardware.
  • An object of the present invention is to provide an information processing apparatus, a device control apparatus, and a device control apparatus capable of controlling a device in cooperation with an application of a client and a device server, using a communication path used in virtualization control between the client and the device server And a control method thereof, and a device control system.
  • an object of the present invention is to provide an information processing apparatus, a device control apparatus, a control method thereof, and a device control system capable of controlling software, hardware, and firmware inside the device server other than the device control unit of the device server. Is to provide.
  • an information processing apparatus is an information processing apparatus connected via a network to a device control apparatus to which a device is locally connected, and communicates with the device control apparatus.
  • a first virtualization control unit that establishes a path and performs virtualization control of the device connected to the device control apparatus; and the device that is virtualized and controlled by the first virtualization control unit, or a device control apparatus
  • the communication path is established by the first control means that controls the first control means and the first virtualization control means, a predetermined control path is selected according to an instruction from the first control means, and the control path is And first device control means for transmitting and receiving data.
  • the device control apparatus is a device control apparatus that is connected to an information processing apparatus via a network and is locally connected to the device, and establishes a communication path with the information processing apparatus.
  • a second virtualization control unit that performs virtualization control of the device connected to the control apparatus; and a second virtualization control unit that controls the device that is virtualized by the second virtualization control unit, or the information processing apparatus.
  • the present invention it is possible to control a device by linking an information processing apparatus and a device control apparatus using a communication path used for virtualization control between the information processing apparatus and the device control apparatus.
  • FIG. 1 is a schematic block diagram of an example of a device control system according to a first embodiment of the present invention. Connection / disconnection of a session, data transmission / reception, request to the device control unit (reset), connection / disconnection of a device, and start / stop of virtualization control performed via the control path in the device control system illustrated in FIG. It is a sequence diagram for demonstrating. It is a figure for demonstrating the sequence at the time of starting virtualization control from a device control apparatus in the device control system which concerns on the 2nd Embodiment of this invention. It is a sequence diagram for demonstrating the application control using the virtualization control communication path in the device control system which concerns on the 3rd Embodiment of this invention, and the hardware control of a device control apparatus.
  • FIG. 1 is a schematic block diagram of a device control system according to the first embodiment of the present invention.
  • FIG. 1 shows a printing system which is an example of a device control system.
  • the information processing apparatus 100 and the device control apparatus 200 are connected to each other via a network 500. Further, the device control apparatus 200 and the device 300 are connected to each other via the connection cable 400.
  • the information processing apparatus 100 is, for example, a personal computer (PC), and the device control apparatus 200 is, for example, a multifunction peripheral (MFP: Multi Function Peripheral).
  • PC personal computer
  • MFP Multi Function Peripheral
  • the information processing apparatus 100 includes a CPU, an input unit, a display unit, a memory, a storage unit, and the like (not shown) as a hardware configuration included in a general personal computer, which are connected to each other via an internal bus. Yes.
  • the CPU is a central processing unit for controlling each part of the information processing apparatus 100.
  • the input unit is an operation unit including a keyboard and a mouse, for example.
  • the display unit is a display device such as a liquid crystal monitor, for example.
  • the memory is a storage device such as a RAM and a ROM.
  • the storage unit is a storage device such as a hard disk drive.
  • the storage unit stores an operating system (hereinafter referred to as OS) (not shown), a communication control unit 100E, a virtualization control unit 100D, a virtualization control API 100B, a device driver 100C, and an application 100A as software.
  • OS operating system
  • the communication control unit 100E, the virtualization control unit 100D, the virtualization control API 100B, the device driver 100C, and the application 100A are read into the memory and operate according to the control of the CPU.
  • the application 100A is software that controls the device 300 via the device driver 100C.
  • the application 100A is software for performing control by a communication path used in virtualization control and virtualization control via the virtualization control API 100B.
  • the virtualization control API 100B provides the application 100A with an interface (Application Program Interface) for performing control using a communication path used in virtualization control and virtualization control.
  • interface Application Program Interface
  • Specific examples of the interface provided by the virtualization control API 100B include communication start / stop and virtualization control start / stop, data transmission / reception with the application 200A, and a control request instruction to the device control unit 200F described later. And an interface for receiving a change in the operation state in the information processing apparatus 100 detected by the virtualization control unit 100D and a change in the operation state sent from the device control apparatus 200.
  • the device driver 100C generates a control command for the device 300 in response to an instruction from the upper layer software such as the OS or the application 100A, transmits the control command to the virtualization control unit 103, and sends a response from the device 300 to the control command. It is software to notify.
  • the virtualization control unit 100D is software that controls the device 300 as if it is directly connected to the information processing apparatus 100. In addition, the virtualization control unit 100D performs control instructed by an interface provided by the virtualization control API 100B.
  • the communication control unit 100E is an interface for connecting the information processing apparatus 100 to a LAN or WAN (wired or wireless network), and thus the information processing apparatus 100 can perform data transmission / reception with the device control apparatus 200. It becomes.
  • the device control apparatus 200 includes a CPU, an input unit, a display unit, a memory, a storage unit, and the like, similar to the information processing apparatus 100, and these are connected to each other via an internal bus.
  • the storage unit stores an OS (not shown) that is software, a communication control unit 200E, a device control unit 200F, a virtualization control unit 200D, a virtualization control API 200B, a device control unit 200C, and an application 200A.
  • the OS, the communication control unit 200E, the device control unit 200F, the virtualization control unit 200D, the virtualization control API 200B, the device control unit 200C, and the application 200A are read into the memory and operate according to the control of the CPU.
  • Application 200A is software for causing device control apparatus 200 to execute a predetermined function.
  • the application 200A can control the device 300 in cooperation with the application 100A of the information processing apparatus 100 via the virtualization control API 200B.
  • the virtualization control API 200B provides an interface for performing control by the communication path used in the virtualization control and the virtualization control for the application 200A. Then, the virtualization control API 200B makes a control request to the virtualization control unit 200D based on an instruction from the application 200A, and notifies the application 200A of a change in the operating state detected by the virtualization control unit 200D.
  • Specific examples of the interface provided by the virtualization control API 200B include communication start / stop and virtualization control start / stop, data transmission / reception with the application 100A, and a control request instruction to the device control unit 200F. And an interface for receiving an operation change inside the device control apparatus 200 and an operation change of the device 300 detected by the virtualization control unit 200D and notifying the application 200A.
  • the device control unit 200C controls the device 300 connected via the connection cable 400.
  • the virtualization control unit 200D is software for controlling the device 300 as if it is directly connected to the information processing apparatus 100. In addition, the virtualization control unit 200D performs control instructed by an interface provided by the virtualization control API 200B.
  • the communication control unit 200E is an interface for connecting the device control apparatus 200 to a LAN or WAN (wired or wireless network), whereby the device control apparatus 200 can transmit and receive data to and from the information processing apparatus 100. It becomes.
  • the device control unit 200F is a component for controlling software, hardware, and firmware inside the device control device 200 other than the device control unit 200C of the device control device 200 (depending on the device control device model).
  • the device 300 is connected to the device control apparatus 200 by a USB cable or the like.
  • the device 300 is a peripheral device such as an IC card reader or a storage, for example, and has a CPU, an input unit, a memory, a communication control unit, a storage unit, and the like, similar to the information processing apparatus 100. Connected by an internal bus.
  • the information processing apparatus 100 is not limited to a PC, and may be a mobile phone or a mobile terminal, for example.
  • the device control apparatus 200 and the device 300 are configured as separate apparatuses. However, the device 300 may be integrated with the casing of the device control apparatus 200.
  • the communication interface included in the device control apparatus 200 and the device 300 is not limited to USB or HDMI, and may be one that conforms to another communication interface such as Thunderbolt.
  • control route In the device control system shown in FIG. 1, the information processing apparatus 100 and the device control apparatus 200 are connected through a communication path 150. In the illustrated example, control paths 0 to 3 are defined for the communication path 150.
  • a communication path 150 indicated by a broken line is a communication path established with the device control apparatus 200 when the information processing apparatus 100 performs virtualization control on the device 300.
  • a control path 0 indicated by a two-dot chain line is a path for virtualizing the device 300 via the communication path 150.
  • control paths 1 to 3 indicated by solid lines are paths when the application 100A of the information processing apparatus 100 and the application 200A of the device control apparatus 200 control the other party using the communication path 150. Which of the control paths 1 to 3 is used depends on connection / disconnection of communication (session), data transmission / reception, request to the device control unit (reset), connection / disconnection of device, and start / stop of virtualization control
  • the application 100A and the application 200A specify and instruct the virtualization control API 100B and the virtualization control API 200B, respectively.
  • FIG. 2 shows communication / session connection / disconnection, data transmission / reception, request to the device control unit (reset), device connection / disconnection in the device control system shown in FIG.
  • FIG. 5 is a sequence diagram for explaining the start / stop of virtualization control.
  • the device control unit 200C detects the connection of the device 300 and notifies the virtualization control unit 200D to that effect (step S002). Subsequently, the virtualization control unit 200D notifies the detected device connection to the virtualization control API 200B (step S003). Then, the virtualization control API 200B notifies the device connection to the application 200A (step S004).
  • the application 200A Upon receiving the notification of device connection, the application 200A, for example, turns on (flashes) an LED (Light Emitting Diode) or displays the fact on a display unit such as an LCD (Liquid Crystal Display), so that the device 300 is a device. It is notified that it has been connected to the control device 200 (step S005: display update).
  • step S005 display update
  • the application 100A of the information processing device 100 detects a change in the operation state (connection of the device 300) detected by the virtualization control unit 200D of the device control device 200 described above. ) Will be described.
  • the device connection detected by the virtualization control unit 200D of the device control apparatus 200 is notified to the information processing apparatus 100 by the communication control unit 200E (step S011).
  • the communication control unit 100E of the information processing apparatus 100 Upon receiving the device connection notification, notifies the virtualization control API 100B of the device connection notification via the virtualization control unit 100D (step S012). Then, the virtualization control API 100B notifies the application 100A of device connection (step S013).
  • the application 100A displays a message indicating that the device 300 is connected to the device control apparatus 200 using a display unit such as a display (step S014).
  • the application 100A of the information processing apparatus 100 detects a change in the operation state of connection of the device 300 in the device control apparatus 200 via the virtualization control API 100B, and the device connects to a display unit such as a display. It is possible to display the effect.
  • step S013 Start of Device Virtualization Control by Information Processing Device
  • the information processing device 100 determines that the application 100A is the timing for starting the virtualization control of the device 300, and performs virtualization.
  • the control API 100B is instructed to start virtualization control (step S021).
  • the virtualization control API 100B instructs the virtualization control unit 100D to start virtualization control (step S022).
  • a communication path 150 is established between the communication control unit 100E of the information processing apparatus 100 and the communication control unit 200E of the device control apparatus 200.
  • the virtualization control unit 100D performs virtualization control as if the device 300 was directly connected to the information processing apparatus 100 according to the device connection information received in step S011 described above.
  • the information processing apparatus 100 establishes a communication path 150 (shown by a broken line in FIG. 1) with the device control apparatus 200 connected to the network 500 in order to control the device 300 in a virtualized manner.
  • the device 300 can be controlled as if directly connected via the device control apparatus 200 connected via the communication path 150.
  • the information processing apparatus 100 includes information related to the device 300 that can be connected in advance (for example, vendor ID or product ID), settable data encryption method (for example, AES: Advanced Encryption Standard), and communication protocol (for example, SSL: (Secure Socket Layer) and information related to digital certificates and the like are stored.
  • the user can select these pieces of information using an input device (not shown), and can specify the information when there are a plurality of devices, encryption types, and certificates.
  • the application 100A of the information processing apparatus 100 instructs the virtualization control API 100B to specify SSL encryption and start communication (step S031).
  • the virtualization control API 100B instructs the virtualization control unit 100D to connect an SSL session (step S032).
  • the virtualization control unit 100D establishes an SSL session with the communication control unit 200E of the device control apparatus 200 by the communication control unit 100E (step S033).
  • the information processing apparatus 100 and the device 300 are ready for data communication via the device control apparatus 200.
  • the control request from the application 100A is transmitted to the device control apparatus 200 via the device driver 100C, the virtualization control unit 100D, and the communication control unit 100E. .
  • a transfer request is transmitted from the application 100A to the device driver 100C (step S041).
  • the device driver 100C receives the transfer request from the application 100A, generates a first transfer request for requesting a parameter related to the device 300, and passes it to the virtualization control unit 100D (step S042).
  • the virtualization control unit 100D takes out only parameters passed from the first transfer request to the virtualization control unit 200D of the device control apparatus 200 as request parameters. Then, the virtualization control unit 100D generates a device transfer request including device identification information for specifying the device 300 together with the request parameter. Subsequently, the communication control unit 100E transmits the device transfer request to the device control apparatus 200 (step S043).
  • the virtualization control unit 200D performs data transfer according to the device identification information included in the device transfer request.
  • the device 300 to be identified is specified.
  • the virtualization controller 200D converts the request parameter included in the device transfer request into a data format to be passed to the device controller of the device 300, generates a second transfer request, and passes it to the device controller 200C (step) S044).
  • the device control unit 200C generates a device communication request based on the transfer request, and transmits the device communication request to the device 300 (step S045).
  • the device control apparatus 200 is connected to the device communication request via the connection cable 400 via the communication control unit 200E, the virtualization control unit 200D, and the device control unit 200C in response to the received device transfer request. To the device 300.
  • Device virtualization control (from device to information processing device) Upon receiving the device communication request from the device control apparatus 200, the device 300 sends a device communication response corresponding to the device communication request to the device control apparatus 200 (step S051). The device control apparatus 200 sends a second transfer response according to the device communication response received via the device control unit 200C to the virtualization control unit 200D (step S052).
  • the virtualization control unit 200D extracts only the parameter corresponding to the request parameter from the second transfer response as a response parameter, and generates a device transfer response including the response parameter. Then, the virtualization control unit 200D transmits a device transfer response to the information processing apparatus 100 via the communication control unit 200E (step S053).
  • the communication control unit 100E when the communication control unit 100E receives a device transfer response from the device control apparatus 200, the communication control unit 100E passes the device transfer response to the virtualization control unit 100D. Then, the virtualization controller 100D sends a first transfer response obtained by converting the response parameter included in the device transfer response into a predetermined data format to the device driver 100C (step S054). Subsequently, the device driver 100C passes the first transfer response to the application 100A (step S055).
  • the response from the device 300 is sent to the application 100A of the information processing apparatus 100 through the control path 0 shown in FIG.
  • the virtualization control API 100B disconnects the connection with the device control apparatus 200 by the communication control unit 100E.
  • the information processing apparatus 100 is a PC
  • the device control apparatus 200 is an MFP
  • the device 300 is an IC card reader.
  • data can be transmitted to and received from the device 300 that is virtualized by the information processing apparatus 100, and the card ID acquired by the device 300 is read by the information processing apparatus 100 and authenticated by the device control apparatus 200. An example of the case will be described.
  • data transmission / reception between the information processing apparatus 100 and the device 300 is performed through the control path 0 shown in FIG. 1 and data transmission / reception processing similar to steps S041 to S055 described above.
  • the device 300 acquires the card ID from the IC card and sends the card ID to the device control apparatus 200.
  • the device control apparatus 200 sends the card ID to the information processing apparatus 100 via the SSL encrypted communication path.
  • the application 100A reads (recognizes) the acquired card ID, sends it to the device control apparatus 200 in the next steps S061 to S072, and performs authentication in the device control apparatus 200.
  • the application 100A instructs the virtualization control API 100B to transmit data (hereinafter referred to as card ID transmission) to the application 200A of the device control apparatus 200 (step S061).
  • the virtualization control API 100B requests the virtualization control unit 100D to transmit a card ID (step S062).
  • the virtualization control unit 100D transmits a card ID to the device control apparatus 200 via the communication control unit 100E (step S063).
  • the information processing apparatus 100 sends a control request from the application 100A to the virtualization control API 100B, and controls the device control apparatus 200 from the virtualization control API 100B via the virtualization control unit 100D and the communication control unit 100E.
  • a request (here, card ID transmission) is transmitted.
  • the communication control unit 200E receives the card ID and sends the card ID to the virtualization control unit 200D. Then, the virtualization control API 200B receives data (hereinafter referred to as card ID reception) from the virtualization control unit 200D (step S071). The virtualization control API 200B notifies the application 200A that the card ID has been received (step S072).
  • the device control apparatus 200 sends the control request received by the control path 1 to the virtualization control unit 200D via the communication control unit 200E, and the virtualization control unit 200D passes through the virtualization control API 200B. Then, a control request (in this case, card ID reception) is sent to the application 200A.
  • a control request in this case, card ID reception
  • the application 200A of the device control apparatus 200 performs data transmission / reception with the application 100A of the information processing apparatus 100, the communication path 150 that has already been used in the virtualization control without using a new communication path.
  • the card ID can be transmitted / received using.
  • the application 200A receives the card ID as described above, but an error occurs because the card ID does not exist in the authentication database provided in the device control apparatus 200.
  • the error occurs, the error is detected, and the display unit or the like of the device is informed that it is an authentication error (step S073).
  • the application 200A instructs the virtualization control API 200B to transmit data (hereinafter referred to as authentication error notification) so as to notify the authentication error (step S081). Then, the virtualization control API 200B requests the virtualization controller 200D to notify the authentication error (step S082).
  • authentication error notification data
  • the virtualization control API 200B requests the virtualization controller 200D to notify the authentication error (step S082).
  • the virtualization control unit 200D notifies the information processing apparatus 100 of an authentication error via the communication control unit 200E (step S091).
  • a data / control request from the application 200A is sent to the virtualization control API 200B through the control path 1 shown in FIG. 1, and the virtualization control unit 200D and the communication control unit are transmitted from the virtualization control API 200B.
  • An authentication error is notified to the information processing apparatus 100 via 200E.
  • the virtualization control unit 100D receives the notification of the authentication error via the communication control unit 100E, and notifies the virtualization control API 100B that the notification of the authentication error has been received (step S092). ). Then, the virtualization control API 100B notifies the application 100A that an authentication error notification has been received (step S093).
  • the information is transmitted by the communication path 150 (SSL session) already used in the virtualization control without using a new communication path between the application 100A of the information processing apparatus 100 and the application 200A of the device control apparatus 200.
  • Each of the processing apparatus 100 and the device control apparatus 200 can receive an operation result and the like.
  • the authentication error is detected by the notification of the authentication error sent from the application 200A of the device control apparatus 200 (step S094), and the application 100A responds to the virtualization control API 100B according to the notification of the authentication error. To stop communication (step S101).
  • the application 100A displays an error, for example, on a display unit such as a display or reports an error by a sound unit (not shown) such as a buzzer.
  • the virtualization control API 100B instructs the virtualization control unit 100D to disconnect the communication path (SSL session) (step S102). Then, the virtualization control unit 100D disconnects the communication path (SSL session) with the communication control unit 200E of the device control apparatus 200 by the communication control unit 100E (step S103).
  • the device 100A controls the device control unit 200F of the device control device 200 at a timing designated by the user.
  • the case where the device 300 is reconnected (reset) will be described as an example.
  • the application 100A acquires the software, hardware, and firmware in the device control unit 200F (the device control unit 200 other than the device control unit 200C) via the virtualization control unit 200D of the device control unit 200. Control parts). At this time, control is performed by the control path 3 shown in FIG.
  • step S094 the information processing apparatus 100 causes the application 100A to display an error.
  • the user instructs a reset using a UI (User Interface) on the application 100A.
  • UI User Interface
  • the application 100A instructs the virtualization control API 100B to reset (step S111). Subsequently, the virtualization control API 100B instructs the virtualization control unit 100D to reset (step S112).
  • the virtualization control unit 100D transmits a device control request (reset) to the device control device 200 (MFP) via the communication control unit 100E (step S113).
  • the virtualization control unit 200D receives a device control request (reset) via the communication control unit 200E.
  • the virtualization control unit 200D instructs the apparatus control unit 200F to reset (step S114).
  • the device control unit 200F controls the hardware bus that cannot be controlled by the device control unit 200C shown in FIG.
  • the magnitude of the current of the power supplied via the USB interface is limited by a high side switch (hereinafter referred to as a USB high side switch), and the device control unit 200F is connected to the USB high side switch.
  • Send reset instructions As a result, the device control unit 200F performs off / on control of the USB high-side switch to reset the device control unit 200C (USB host controller).
  • USB high-side switch in order to control software, hardware, and firmware in the device control apparatus 200 other than the device control unit 200C of the device control apparatus 200 from the virtualization control API 100B of the information processing apparatus 100 In addition, an instruction can be given to the device control unit 200F via the virtualization control API 100B.
  • a data / control request from the application of the own device is transmitted to the counterpart device via the virtualization control API, and software, hardware in the counterpart device is transmitted via the virtualization control unit of the counterpart device, And can control the firmware.
  • a solution can be performed in cooperation with various functions provided in the device control apparatus 200.
  • the device control unit 200C detects the disconnection with the device 300 in the device control apparatus 200 (step S121). This is notified to the virtualization control unit 200D (step S122).
  • the virtualization control unit 200D notifies the virtualization control API 200B of disconnection of the connection with the device 300 (step S123). Then, the virtualization control API 200B notifies the application 200A of disconnection of the connection with the device 300 (step S124). As a result, the device control apparatus 200 displays on the display unit such as an LED / LCD that the connection with the device 300 has been disconnected (step S125).
  • the device control apparatus 200 notifies the information processing apparatus 100 of the disconnection with the device detected by the virtualization control unit 200D via the communication control unit 200E (step S131).
  • the information processing apparatus 100 notifies the virtualization control API 100B of the disconnection with the device received by the communication control unit 100E via the virtualization control unit 100D (step S132).
  • the virtualization control API 100B notifies the application 100A of disconnection of the device (step S133). As a result, the application 100A displays on the display unit such as a display that the connection with the device has been disconnected (step S134).
  • the application 100A determines that the disconnection with the device is the timing of stopping the virtualization control, and instructs the virtualization control API 100B to stop the virtualization control (step S141). Then, the virtualization control API 100B instructs the virtualization control unit 100D to stop virtualization control (step S142). Thus, the virtualization control unit 100D disconnects the information processing apparatus 100 and the device 300 by stopping the virtualization control.
  • the device control unit 200C detects the reconnection of the device 300 (step S151), and the virtual This is notified to the control unit 200D (step S152). Then, the virtualization control unit 200D notifies the connection of the device 300 to the virtualization control API 200B (step S153).
  • the virtualization control API 200B notifies the connection of the device 300 to the application 200A (step S154). Accordingly, the device control apparatus 200 displays that the device 300 is connected on a display unit such as an LED / LCD (step S155).
  • the device control apparatus 200 notifies the information processing apparatus 100 of the device connection detected by the virtualization control unit 200D via the communication control unit 200E (step S161).
  • the device connection received by the communication control unit 100E is notified to the virtualization control API 100B via the virtualization control unit 100D (step S162).
  • the virtualization control API 100B notifies the application 100A of device connection (step S163). Accordingly, the application 100A displays that the device 300 is connected to a display unit such as a display (step S164).
  • the application 100A determines that the device connection is the timing for starting the virtualization control, and instructs the virtualization control API 100B to start the virtualization control (step S171). Thereby, the virtualization control API 100B instructs the virtualization control unit 100D to start the virtualization control (step S172).
  • the virtualization control unit 100D starts the virtualization control as if the device 300 was connected to the information processing apparatus 100. In this way, the device 100A is disconnected / reconnected after the reset instruction by the application 100A, and the application 100A determines that the recovery is successful when the virtualization control is started (step S181).
  • the application 100A and the application 200A can transmit and receive data through a communication path that is already used in virtualization control without providing a new communication path. .
  • the application 100A and the application 200A can transmit and receive data through a communication path that is already used in virtualization control without providing a new communication path.
  • a port number (Registered Port Number) registered in IANA (Internet Assigned Number Authority) is used as a network port used by the device 300 described in the first embodiment for communication. For this reason, when a new communication path is secured, a port number (Private Port Numbers) that the user can freely use is used. At this time, since the port number may already be used, it is necessary to check whether the port number is duplicated. However, as described above, in the first embodiment, since communication is performed using a communication path that is already used in virtualization control, it is not necessary to check whether or not the port number is duplicated.
  • the application 100A can determine the disconnection / connection of the device 300 according to the communication path used in the virtualization control, and can start / stop the virtualization control by the virtualization control API.
  • communication with the device control apparatus 200 is started by specifying the device 300, the encryption type, and the certificate via the virtualization control API 100B. Or it can be stopped.
  • firmware control eg, device reset
  • the second embodiment is different from the first embodiment in that the application of the device control apparatus performs virtualization control and connection control in cooperation with the information processing apparatus using the virtualization control API.
  • the same referential mark or reference number is attached
  • FIG. 3 is a diagram for explaining a sequence when starting virtualization control from the device control apparatus 200 in the device control system according to the second embodiment of the present invention.
  • the virtualization control unit 100D of the information processing apparatus 100 is controlled from the application 200A of the device control apparatus 200 using the communication path 150. At this time, control is executed by the control path 2 shown in FIG.
  • step S001 the device connection is performed in step S001 described in FIG. 2, and the sequence until the device connection is detected in step S005 is the same as that in the first embodiment.
  • the application 200A starts virtualization control at a specified timing in cooperation with the virtualization control unit 100D of the information processing device 100 The sequence will be described. This sequence is started by user input in the device control apparatus 200.
  • the device control apparatus 200 stores information processing apparatus information related to the information processing apparatus 100 that can be connected in advance, and the user can select the information processing apparatus 100 connected to the device 300 using the input device. it can.
  • the user can designate an arbitrary device and information processing apparatus.
  • the information processing identification information here is information for identifying the information processing apparatus 100.
  • the computer name, the IP address, the MAC address, and the serial number (manufacturing number) of the information processing apparatus 100 are not limited thereto. Furthermore, it may be a combination of these pieces of information.
  • the application 200A accepts a user input (here, device information for selecting the device 300 and information processing apparatus information related to the information processing apparatus 100). Then, the application 200A notifies the virtualization control API 200B of the user input for starting the virtualization control (step S201).
  • a user input here, device information for selecting the device 300 and information processing apparatus information related to the information processing apparatus 100. Then, the application 200A notifies the virtualization control API 200B of the user input for starting the virtualization control (step S201).
  • the virtualization control API 200B instructs the virtualization control unit 200D to start virtualization control (step S202).
  • the virtualization control unit 200D transmits a virtualization control start to the information processing apparatus 100 via the communication control unit 200E (step S211).
  • the virtualization control unit 100D connects the information processing apparatus 100 and the device 300 based on the information regarding the selection of the device 300 received in step S211 by performing the connection of the virtualization control (step S212).
  • the virtualization control process can be performed by designating an arbitrary device and information processing apparatus from the device control apparatus 200.
  • device information of connectable devices 300 and encryption types / certificates that can be set are stored.
  • And certificate can be selected.
  • the user can specify any device, information processing apparatus, encryption type, and certificate.
  • the application 200A accepts a user input (here, device information for selecting the device 300, encryption type, and certificate). As a result, the application 200A notifies the virtualization control API 200B of the start of communication (step S221).
  • the virtualization control API 200B instructs the virtualization control unit 200D to start communication (step S222). Subsequently, the virtualization control unit 200D communicates with the information processing apparatus 100 in which the device 300 specified by the application 200A is virtualized via the communication control unit 200E with the specified encryption type and the specified certificate. Is performed (step S231).
  • communication can be established by designating an arbitrary device, information processing apparatus, network encryption, and certificate from the device control apparatus 200.
  • Steps S121 to S125 are the same as in the first embodiment.
  • the application 200A receives a user input (here, device information for selecting the device 300). As a result, the application 200A notifies the virtualization control API 200B of communication stop (step S251).
  • the virtualization control API 200B instructs the virtualization control unit 200D to stop communication (step S252). Then, the virtualization control unit 200D transmits a communication stop instruction to the information processing apparatus 100 in which the device 300 is virtualized (step S261).
  • the application 200A receives a user input (here, device information for selecting the device 300). Thereby, the application 200A notifies the virtualization control API 200B of the stop of the virtualization control (step S271).
  • the device information here is information for identifying the device 300, for example, for identifying a vendor ID (VID) and a model assigned to each manufacturer that manufactures the device to identify the manufacturer. A product ID (PID) assigned to each model, a serial number assigned to each device in order to identify an individual device, and the like.
  • the device information is acquired from the device 300 by the device control unit 200C when the device 300 is connected to the device control apparatus 200, for example.
  • the virtualization control API 200B instructs the virtualization control unit 200D to stop virtualization control (step S272). Then, the virtualization control unit 200D transmits an instruction to stop the virtualization control of the device 300 to the information processing apparatus 100 in which the device 300 is controlled to be virtualized (step S281). Thereby, in the information processing apparatus 100, the virtualization control unit 100D stops the virtualization control of the device 300 (step S282).
  • the virtualization control stop process can be performed by designating an arbitrary device and information processing apparatus from the device control apparatus 200. Note that the user input related to the virtualization control stop and the communication stop need not necessarily be separated.
  • virtualization control can be started or stopped by selecting an arbitrary device and an arbitrary information processing apparatus by user input from the device control apparatus.
  • the third embodiment of the present invention is different from the first embodiment in that the application of the device control apparatus performs hardware control other than the device using the virtualization control API.
  • the same referential mark or reference number is attached
  • FIG. 4 is a sequence diagram for explaining application control using the virtualization control communication path and hardware control of the device control apparatus in the device control system according to the third embodiment of the present invention.
  • step S001 sequence from device connection in step S001 described in FIG. 2 to error detection in step S073 is the same as in the first embodiment.
  • ⁇ 16> Device Reset by Input from Device Control Device The user instructs device reset from the device control device 200 in accordance with the error display information (step S073) in the device control device 200.
  • the application 200A instructs the virtualization control API 200B to reset (step S301).
  • the virtualization control API 200B instructs the virtualization control unit 200D to reset (step S302).
  • the virtualization control unit 200D instructs the device control unit 200F to reset (step S114).
  • steps S121 to S125 the device control apparatus 200 detects that the connection with the device 300 has been disconnected, as in the first embodiment, That effect is displayed on the display unit.
  • steps S151 to S155 as in the first embodiment, the device control apparatus 200 detects that the device 300 is reconnected, and displays that fact on the display unit.
  • the application 200A determines that the recovery is successful by being connected to the device control apparatus 200 again (step S311).
  • virtualization may also be performed to determine recovery.
  • the third embodiment of the present invention device control (for example, device reset) other than the device control unit is performed not only from the information processing apparatus 100 but also at a timing specified by a user input or the like from the device control apparatus 200. Etc.). That is, the device control (software, hardware, and firmware) in the device itself can be controlled by the virtualization control API of the device itself. [Other embodiments] Note that the present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the gist of the present invention.
  • a plurality of virtualization control APIs may be provided for each control path, and which virtualization control API (that is, control path) the application uses may be selected.
  • a device control system may be configured by a plurality of information processing apparatuses 100 or a plurality of device control apparatuses 200, and a device control system may be configured as a plurality of information processing apparatuses 100 and device control apparatuses 200. It may be.
  • the communication path used for the virtualization control between the information processing apparatus 100 and the device control apparatus 200 can be switched to perform various controls including the processes exemplified below.
  • the device control apparatus receives data from the information processing apparatus A via the communication path A, the virtualization control API of the device control apparatus switches the communication path, and the received data is transferred to the information processing apparatus B. To the information processing apparatus B via the communication path B between
  • the information processing apparatus receives data from the device control apparatus A via the communication path A, switches the communication path with the virtualization control API of the information processing apparatus, and transmits the received data to the device control apparatus B. To the information processing apparatus B via the communication path B between the two.
  • apparatus control means (virtualization control API) is provided in the information processing apparatus and device control apparatus, and applications that are higher layers of the virtualization control unit are already virtualized. Can be linked according to the communication path used in the network. Furthermore, the device control unit of the device control device can be controlled from an application installed in the information processing device.
  • a program having the functions of the above-described embodiment may be used as a control program, and the control program may be executed by a computer included in the information processing apparatus or device control apparatus.
  • the control program is recorded on a computer-readable recording medium, for example.
  • the aspect of the present invention is also achieved by a computer of a system or apparatus (or a device such as a CPU or MPU) that reads and executes a program stored in a storage device in order to realize the functions of the above-described embodiments,
  • the steps are also achieved by a method executed by a computer of a system or apparatus by reading and executing a program stored in a storage device to realize the functions of the above-described embodiments, for example.
  • the program is provided to the computer, for example, via a network or from various recording media that serve as storage devices (eg, computer-readable media).
  • the client In a system in which a client (information processing apparatus) uses a device via a network, the client virtually recognizes the device on the network as a locally connected device and accesses the device from the client on the network. Applying to what is possible, using a communication path used for virtualization control between a client and a device server (device control device) to control the device by linking the client and device server applications.
  • a communication path used for virtualization control between a client and a device server device control device
  • the software, hardware, and firmware inside the device server other than the device control unit of the device server can be controlled, it is useful in the system as described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

情報処理装置とデバイス制御装置との間の仮想化制御で用いる通信路を用いて、情報処理装置およびデバイス制御装置のアプリケーションを連携させてデバイスを制御する。情報処理装置100は、デバイス300がローカル接続されたデバイス制御装置200にネットワーク500を介して接続されており、仮想化制御部100Dはデバイス制御装置との間に通信路150を確立し、デバイス制御装置に接続されたデバイスを仮想化制御する。アプリケーション100Aは所定の制御経路を選択し、仮想化制御されたデバイス又はデバイス制御装置を制御する。そして、仮想化制御API100Bはアプリケーション100Aに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェースを提供する。

Description

情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
 本発明はネットワークを介して接続された情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムに関する。
 一般に、パーソナルコンピュータなどの情報処理装置(以下PCと呼ぶ)をクライアントとして、ネットワークを介して当該クライアントがプリンタ、ストレージ、およびスキャナなどのデバイス(周辺機器)を利用するシステムが知られている。このようなシステムにおいて、クライアントがネットワーク上のデバイスをローカル接続されたデバイスとして仮想的に認識して、ネットワーク上のクライアントからデバイスをアクセスできるようにしたものがある。
 例えば、本出願人は、LANなどのネットワークに接続されたデバイスサーバ(デバイス制御装置)にローカル接続されたデバイスを、ネットワーク上のクライアントから制御するため、デバイスサーバのデバイス制御部(ホストコントローラ)をPCから制御できるようにしたデバイス制御システムを提案している(例えば、特許文献1参照)。
特開2013−084113号公報
 ところで、上述したデバイス制御システムにおいて、クライアントによって制御されるのはデバイスサーバのデバイス制御部(ホストコントローラ)であり、例えば、デバイスサーバにローカル接続されたデバイスをリセットする際には、デバイス制御部以外のハードウェアを制御する必要がある。また、クライアントにインストールされたアプリケーション(上位層のプログラム)からデバイスサーバに導入されているアプリケーションを連携させてデバイスを制御したいことがある。
 このような場合、クライアントとデバイスサーバとの間に新たな通信路が必要となるので、まず、ネットワークリソースを確保しなければならない。さらに、使用するネットワークポートの重複を判定するなどの処理を行った上で、通信路を生成するので、接続に時間がかかってしまう。
 本明の目的は、クライアントとデバイスサーバとの間の仮想化制御で用いる通信路を用いて、クライアントおよびデバイスサーバのアプリケーションを連携させてデバイスを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
 さらに、本明の目的は、デバイスサーバのデバイス制御部以外のデバイスサーバ内部のソフトウェア、ハードウェア、およびファームウェアを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
 上記の目的を達成するため、本発明に係る情報処理装置は、デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、を有することを特徴とする。
 本発明に係るデバイス制御装置は、ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、を有することを特徴とする。
 本発明によれば、情報処理装置とデバイス制御装置との間の仮想化制御で用いる通信路を用いて、情報処理装置およびデバイス制御装置を連携させてデバイスを制御することができる。
本発明の第1の実施形態に係るデバイス制御システムの一例の概略ブロック図である。 図1に示すデバイス制御システムにおいて制御経路を介して行われるセッションの接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止を説明するためのシーケンス図である。 本発明の第2の実施形態に係るデバイス制御システムにおいてデバイス制御装置から仮想化制御を開始する際のシーケンスを説明するための図である。 本発明の第3の実施形態に係るデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
 以下、本発明の実施の形態に係るデバイス制御システムの一例について図面を参照して説明する。
 [第1の実施形態]
 <システム構成>
 図1は、本発明の第1の実施形態に係るデバイス制御システムの概略ブロック図である。なお、図1ではデバイス制御システムの一例である印刷システムが示されている。
 図示の印刷システムでは、情報処理装置100およびデバイス制御装置200がネットワーク500を介して互いに接続されている。また、デバイス制御装置200およびデバイス300が接続ケーブル400を介して互いに接続されている。
 なお、図示の例では、情報処理装置100は、例えば、パーソナルコンピュータ(PC)であり、デバイス制御装置200は、例えば、複合機(MFP:Multi Function Peripheral)である。
 ≪各装置の内部構成(ソフトウェア/ハードウェア構成)≫
 <情報処理装置100の構成>
 情報処理装置100は、一般的なパーソナルコンピュータが備えるハードウェア構成として、図示はしないが、CPU、入力部、表示部、メモリ、および記憶部などを備え、これらは内部バスで相互に接続されている。
 CPUは情報処理装置100の各部を制御するための中央処理装置である。入力部は、例えば、キーボードおよびマウスなどから成る操作部である。表示部は、例えば、液晶モニタなどの表示装置である。メモリは、RAMおよびROMなどの記憶装置である。記憶部は、ハードディスクドライブなどの記憶装置である。
 記憶部には、ソフトウェアとして、図示しないオペレーティングシステム(以下OSと呼ぶ)、通信制御部100E、仮想化制御部100D、仮想化制御API100B、デバイスドライバ100C、およびアプリケーション100Aが格納されている。そして、これら通信制御部100E、仮想化制御部100D、仮想化制御API100B、デバイスドライバ100C、およびアプリケーション100Aはメモリに読み出されて、CPUの制御に従い動作する。
 アプリケーション100Aは、デバイスドライバ100Cを介してデバイス300を制御するソフトウェアである。また、アプリケーション100Aは仮想化制御API100Bを介して仮想化制御および仮想化制御で用いる通信路による制御を行うためのソフトウェアである。
 仮想化制御API100Bは、アプリケーション100Aに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェース(Application Program Interface)を提供する。
 仮想化制御API100Bによって提供されるインターフェースの具体例には、通信開始/停止および仮想化制御開始/停止、アプリケーション200Aとの間のデータ送信/受信、後述する装置制御部200Fへの制御要求の指示を行うとともに、仮想化制御部100Dによって検知される情報処理装置100内部の動作状態の変化およびデバイス制御装置200から送られる動作状態の変化を受信するためのインターフェース等がある。
 デバイスドライバ100Cは、OSやアプリケーション100Aなど上位層のソフトウェアの指示により、デバイス300に対する制御コマンドを生成して、仮想化制御部103に送信し、この制御コマンドに対するデバイス300からの応答を上位のソフトウェアへ通知するソフトウェアである。
 仮想化制御部100Dは、デバイス300が情報処理装置100にあたかも直接的に接続されているかのように制御するソフトウェアである。また、仮想化制御部100Dは仮想化制御API100Bが提供するインターフェースによって指示された制御を行う。
 通信制御部100Eは、情報処理装置100をLAN又はWAN(有線又は無線ネットワーク)に接続するためのインターフェースであり、これによって、情報処理装置100はデバイス制御装置200とのデータ送受信を行うことが可能となる。
 <デバイス制御装置200の構成>
 デバイス制御装置200は、図示はしないが、情報処理装置100と同様にCPU、入力部、表示部、メモリ、および記憶部などを備え、これらが相互に内部バスで接続されている。
 記憶部には、ソフトウェアであるOS(図示せず)、通信制御部200E、装置制御部200F、仮想化制御部200D、仮想化制御API200B、およびデバイス制御部200C、アプリケーション200Aが格納されている。そして、これらOS、通信制御部200E、装置制御部200F、仮想化制御部200D、仮想化制御API200B、およびデバイス制御部200C、アプリケーション200Aはメモリに読み出されて、CPUの制御に従い動作する。
 アプリケーション200Aは、デバイス制御装置200に所定の機能を実行させるためのソフトウェアである。またアプリケーション200Aは仮想化制御API200Bを介して情報処理装置100のアプリケーション100Aと連携してデバイス300を制御することができる。
 仮想化制御API200Bは、アプリケーション200Aに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェースを提供する。そして、仮想化制御API200Bはアプリケーション200Aからの指示に基づいて仮想化制御部200Dに制御要求を行い、仮想化制御部200Dが検知する動作状態の変化をアプリケーション200Aに通知する。
 仮想化制御API200Bによって提供されるインターフェースの具体例には、通信開始/停止および仮想化制御開始/停止、アプリケーション100Aとの間のデータ送信/受信、および装置制御部200Fへの制御要求の指示を行うとともに、仮想化制御部200Dによって検知されるデバイス制御装置200内部の動作変化およびデバイス300の動作変化を受信してアプリケーション200Aに通知するためのインターフェース等がある。
 デバイス制御部200Cは、接続ケーブル400を介して接続されているデバイス300を制御する。
 仮想化制御部200Dは、デバイス300が情報処理装置100に直接的に接続されているかのように制御するためのソフトウェアである。また、仮想化制御部200Dは仮想化制御API200Bが提供するインターフェースによって指示された制御を行う。
 通信制御部200Eは、デバイス制御装置200をLAN又はWANなど(有線又は無線ネットワーク)に接続するためのインターフェースであり、これによって、デバイス制御装置200は情報処理装置100とデータ送受信を行うことが可能となる。
 装置制御部200Fは、デバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアを制御するための部品(デバイス制御装置の機種によって異なる)である。
 <デバイス300の構成>
 デバイス300は、USBケーブルなどによってデバイス制御装置200に接続される。デバイス300は、例えば、ICカードリーダ又はストレージなどの周辺装置であり、情報処理装置100と同様に、CPU、入力部、メモリ、通信制御部、および記憶部などを有しており、これらは相互に内部バスで接続されている。
 なお、図1に示すデバイス制御システムでは、1つの情報処理装置100およびデバイス制御装置200が示されているが、ネットワーク500上の情報処理装置100およびデバイス制御装置200の台数は図示の例に限定されるものではない。また、情報処理装置100は、PCに限定されるものではなく、例えば、携帯電話機又はモバイル端末機であってもよい。
 また、図1に示す例では、デバイス制御装置200およびデバイス300はそれぞれ別の装置として構成されているが、デバイス300をデバイス制御装置200のケーシングに収まるようにして一体構造としてもよい。
 さらに、デバイス制御装置200およびデバイス300が備える通信インターフェースは、USB又はHDMIに限定されるものではなく、Thunderboltなど他の通信インターフェースに準拠したものであってもよい。
 ≪制御経路の説明≫
 図1に示すデバイス制御システムにおいては通信路150で情報処理装置100およびデバイス制御装置200が接続される。そして、図示の例では、通信路150には制御経路0~3が規定される。
 破線で示す通信路150は、情報処理装置100がデバイス300を仮想化制御する際にデバイス制御装置200との間で確立される通信路である。二点鎖線で示す制御経路0は通信路150を介してデバイス300を仮想化制御する際の経路である。
 また、実線で示す制御経路1~3は情報処理装置100のアプリケーション100Aおよびデバイス制御装置200のアプリケーション200Aが通信路150を用いて相手側を制御する際の経路である。制御経路1~3のいずれを用いるかは、通信(セッション)の接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止などの制御内容に応じて、アプリケーション100Aおよびアプリケーション200Aが指定し、それぞれ仮想化制御API100Bと仮想化制御API200Bに対して指示する。
 ≪システムおよび装置の動作シーケンスの説明≫
 図2は、図1に示すデバイス制御システムにおいて制御経路0~3を介して通信(セッション)の接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止を説明するためのシーケンス図である。
 <1>デバイス制御装置によるデバイス接続状態の検知
 まず、デバイス制御装置200のアプリケーション200Aが仮想化制御部200Dによって検知された動作状態の変化を受信するまでのシーケンスについて説明する。なお、ここでは、デバイス制御装置200にデバイス300が接続されたことを動作状態の変化として説明する。
 いま、デバイス300をデバイス制御装置200に接続すると(ステップS001)、デバイス制御部200Cはデバイス300の接続を検知して、その旨を仮想化制御部200Dに通知する(ステップS002)。続いて、仮想化制御部200Dは、検知したデバイス接続を仮想化制御API200Bに通知する(ステップS003)。そして、仮想化制御API200Bはアプリケーション200Aにデバイス接続を通知する(ステップS004)。
 アプリケーション200Aは、デバイス接続の通知を受けると、例えば、LED(Light Emitting Diode)を点灯(点滅)させるか又はLCD(Liquid Crystal Display)などの表示部にその旨を表示して、デバイス300がデバイス制御装置200に接続されたことを報知する(ステップS005:表示更新)。
 <2>情報処理装置100によるデバイス接続状態の検知
 次に、情報処理装置100のアプリケーション100Aが、上述したデバイス制御装置200の仮想化制御部200Dで検知された動作状態の変化(デバイス300の接続)を受信するまでのシーケンスについて説明する。
 S011では、デバイス制御装置200の仮想化制御部200Dで検知したデバイス接続が通信制御部200Eによって情報処理装置100に通知される(ステップS011)。情報処理装置100の通信制御部100Eはデバイス接続の通知を受信すると、当該デバイス接続の通知を、仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS012)。そして、仮想化制御API100Bはアプリケーション100Aにデバイス接続を通知する(ステップS013)。
 続いて、アプリケーション100Aはディスプレイなどの表示部によって、デバイス制御装置200にデバイス300が接続された旨を表示する(ステップS014)。
 このようにして、情報処理装置100のアプリケーション100Aは、仮想化制御API100Bを介して、デバイス制御装置200におけるデバイス300の接続という動作状態の変化を検知して、ディスプレイなどの表示部にデバイスが接続された旨を表示することが可能となる。
 <3>情報処理装置によるデバイス仮想化制御開始
 前述のように、ステップS013で接続通知を受けると、情報処理装置100ではアプリケーション100Aがデバイス300の仮想化制御開始のタイミングと判定して、仮想化制御API100Bに仮想化制御の開始を指示する(ステップS021)。そして、仮想化制御API100Bは仮想化制御部100Dに仮想化制御の開始を指示する(ステップS022)。ここで、情報処理装置100の通信制御部100Eとデバイス制御装置200の通信制御部200Eとの間に通信路150が確立される。
 これによって、仮想化制御部100Dは、上述したステップS011で受信したデバイス接続の情報に応じて、情報処理装置100にデバイス300が直接的に接続されたかのように仮想化制御を行う。
 このようにして、情報処理装置100は、デバイス300を仮想化制御するため、ネットワーク500に接続されているデバイス制御装置200との間で通信路150(図1に破線で示す)を確立して、当該通信路150を介して接続されたデバイス制御装置200を介して、デバイス300が直接的に接続されているかのように制御することができるようになる。
 <4>情報処理装置による通信開始
 続いて、デバイス300の仮想化制御を開始した情報処理装置100が指定したタイミングでデバイス300との間でデータ通信を開始するまでのシーケンスについて説明する。なお、ここでは、ユーザからの指示によって暗号化通信によりデータ通信を開始する場合を例に挙げて説明する。
 情報処理装置100には、予め接続可能なデバイス300に関する情報(例えば、ベンダーID又はプロダクトID)、設定可能なデータの暗号化方式(例えば、AES:Advanced Encryption Standard)、通信プロトコル(例えば、SSL:Secure Socket Layer)、およびデジタル証明書などに係る情報が格納されている。そして、ユーザはこれらの情報を入力装置(図示せず)によって選択することができ、デバイス、暗号化種別、および証明書が複数存在する場合には指定が可能となる。
 ユーザが暗号化通信指示を行うと、情報処理装置100のアプリケーション100Aは仮想化制御API100Bに対してSSL暗号化を指定して通信開始を指示する(ステップS031)。これによって、仮想化制御API100Bは仮想化制御部100Dに対してSSLセッションの接続を指示する(ステップS032)。
 続いて、仮想化制御部100Dは通信制御部100Eによってデバイス制御装置200の通信制御部200Eとの間でSSLセッションを確立する(ステップS033)。
 これによって、情報処理装置100とデバイス300とがデバイス制御装置200を介してデータ通信可能な状態となる。
 <5>デバイスの仮想化制御(情報処理装置からデバイスへ)
 次に、図1に示す情報処理装置100によるデバイス300の仮想化制御について説明する。ここでは、図1に示す制御経路0によって制御が行われる。
 情報処理装置100から制御要求をデバイス300に送信する際、アプリケーション100Aからの制御要求は、デバイスドライバ100C、仮想化制御部100D、および通信制御部100Eを経由してデバイス制御装置200に送信される。
 具体的には、アプリケーション100Aからデバイスドライバ100Cへ転送要求を送信する(ステップS041)。デバイスドライバ100Cはアプリケーション100Aから転送要求を受け取ってデバイス300に係るパラメータを要求する第1の転送要求を生成して、仮想化制御部100Dに渡す(ステップS042)。
 仮想化制御部100Dは、第1の転送要求からデバイス制御装置200の仮想化制御部200Dに渡すパラメータのみを要求パラメータとして取り出す。そして、仮想化制御部100Dは当該要求パラメータとともにデバイス300を特定するためのデバイス識別情報を含むデバイス転送要求を生成する。続いて、通信制御部100Eは当該デバイス転送要求をデバイス制御装置200に送信する(ステップS043)。
 一方、デバイス制御装置200は、通信制御部200Eを介して情報処理装置100からデバイス転送要求を受けると、仮想化制御部200Dによって当該デバイス転送要求に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイス300を特定する。そして、仮想化制御部200Dはデバイス転送要求に含まれる要求パラメータを、デバイス300のデバイス制御部に渡すデータ形式に変換して第2の転送要求を生成して、デバイス制御部200Cに渡す(ステップS044)。
 デバイス制御部200Cは、この転送要求に基づいてデバイス通信要求を生成して、当該デバイス通信要求をデバイス300に送信する(ステップS045)。
 このようにして、デバイス制御装置200は、受信したデバイス転送要求に応じて、通信制御部200E、仮想化制御部200D、およびデバイス制御部200Cを介して、デバイス通信要求を接続ケーブル400で接続されたデバイス300に送信する。
 <6>デバイスの仮想化制御(デバイスから情報処理装置へ)
 デバイス300は、デバイス制御装置200からデバイス通信要求を受信すると、デバイス通信要求に応じたデバイス通信応答をデバイス制御装置200に送る(ステップS051)。デバイス制御装置200ではデバイス制御部200Cを介して受信したデバイス通信応答に応じた第2の転送応答を仮想化制御部200Dに送る(ステップS052)。
 仮想化制御部200Dは第2の転送応答から要求パラメータに応じたパラメータのみを応答パラメータとして取り出して、当該応答パラメータを含むデバイス転送応答を生成する。そして、仮想化制御部200Dは通信制御部200Eを介して、デバイス転送応答を情報処理装置100に送信する(ステップS053)。
 情報処理装置100では、通信制御部100Eがデバイス制御装置200からデバイス転送応答を受けると、当該デバイス転送応答を仮想化制御部100Dに渡す。そして、仮想化制御部100Dはデバイス転送応答に含まれている応答パラメータを所定のデータ形式に変換した第1の転送応答をデバイスドライバ100Cに送る(ステップS054)。続いて、デバイスドライバ100Cは第1の転送応答をアプリケーション100Aに渡す(ステップS055)。
 このようにして、デバイス300からの応答は、図1に示す制御経路0によって、情報処理装置100のアプリケーション100Aに送られる。ここで、アプリケーション100Aから仮想化制御API100Bに対して通信終了が指示されると、仮想化制御API100Bは通信制御部100Eによってデバイス制御装置200との接続を切断する。
 <7>情報処理装置からデバイス制御装置へのカードID送信
 次に、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとを連携させて相手装置にデータ/制御要求を送る際のシーケンスについて説明する。
 ここでは、情報処理装置100をPC、デバイス制御装置200をMFP、デバイス300をICカードリーダとする。また、情報処理装置100によって仮想化制御されているデバイス300との間でデータの送受信が可能な状態にあり、デバイス300で取得したカードIDを情報処理装置100で読み取り、デバイス制御装置200で認証する場合を例に挙げて説明する。
 この場合には、情報処理装置100とデバイス300との間におけるデータの送受信は、図1に示す制御経路0によって上述したステップS041~S055と同様のデータ送受信処理が行われる。
 具体的には、デバイス300にICカードがかざされると、デバイス300はICカードからカードIDを取得して、当該カードIDをデバイス制御装置200に送る。デバイス制御装置200はカードIDをSSL暗号化された通信経路によって情報処理装置100に送る。
 続いて、情報処理装置100において、アプリケーション100Aは、取得したカードIDを読み取って(認識して)、次のステップS061~S072でデバイス制御装置200に送り、デバイス制御装置200において認証を行う。
 この場合、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとを連携させて処理を実行させるため、図1に示す制御経路1によってデータの送受信が行われる。
 具体的には、情報処理装置100において、アプリケーション100Aが仮想化制御API100Bに対して、デバイス制御装置200のアプリケーション200Aにデータ送信(以下カードID送信と呼ぶ)を指示する(ステップS061)。
 次に、仮想化制御API100Bは仮想化制御部100DにカードIDの送信を要求する(ステップS062)。仮想化制御部100Dは通信制御部100Eを介してデバイス制御装置200にカードID送信を行う(ステップS063)。
 このようにして、情報処理装置100では、アプリケーション100Aからの制御要求を、仮想化制御API100Bに送り、仮想化制御API100Bから仮想化制御部100Dおよび通信制御部100Eを介してデバイス制御装置200に制御要求(ここでは、カードID送信)を送信する。
 一方、デバイス制御装置200では、通信制御部200EがカードIDを受信して、当該カードIDを仮想化制御部200Dに送る。そして、仮想化制御API200Bは仮想化制御部200Dからデータ受信(以下カードID受信と呼ぶ)する(ステップS071)。仮想化制御API200Bはアプリケーション200AにカードID受信を通知する(ステップS072)。
 このようにして、デバイス制御装置200では、制御経路1によって受信した制御要求を、通信制御部200Eを介して仮想化制御部200Dに送って、仮想化制御部200Dは、仮想化制御API200Bを介して制御要求(つまりここではカードID受信)をアプリケーション200Aに送る。
 このように、デバイス制御装置200のアプリケーション200Aは、情報処理装置100のアプリケーション100Aとデータ送受信を実行する際に、新たな通信路を用いることなく、既に仮想化制御で使用されている通信路150を用いてカードIDを送受信することが可能となる。
 <8>デバイス制御装置から情報処理装置へのエラー通知
 ここで、デバイス制御装置200のアプリケーション200Aにおいて、上述したカードIDの認証処理でエラーを検出した場合について説明する。この場合は、図1に示す制御経路1によって、デバイス制御装置200から情報処理装置100に対してデータ(エラー検出)が送られる。
 具体的には、デバイス制御装置200において、アプリケーション200Aは、例えば、上述したようにカードIDを受信したが、デバイス制御装置200に備えられた認証データベースに当該カードIDが存在しないなどの理由によってエラーが発生すると、当該エラーを検出して、自装置の表示部などに認証エラーである旨を報知する(ステップS073)。
 また、デバイス制御装置200では、アプリケーション200Aが認証エラーを通知すべく、仮想化制御API200Bにデータ送信(以下認証エラーの通知と呼ぶ)を指示する(ステップS081)。そして、仮想化制御API200Bは仮想化制御部200Dに認証エラーの通知を要求する(ステップS082)。
 続いて、仮想化制御部200Dは通信制御部200Eを介して情報処理装置100に認証エラーの通知を行う(ステップS091)。
 このようにして、デバイス制御装置200では、図1に示す制御経路1によってアプリケーション200Aからのデータ/制御要求を、仮想化制御API200Bに送り、仮想化制御API200Bから仮想化制御部200Dおよび通信制御部200Eを介して情報処理装置100に認証エラーの通知を行う。
 一方、情報処理装置100では、仮想化制御部100Dが通信制御部100Eを介して認証エラーの通知を受信して、当該認証エラーの通知を受信した旨を仮想化制御API100Bに通知する(ステップS092)。そして、仮想化制御API100Bはアプリケーション100Aに認証エラーの通知を受信した旨を通知する(ステップS093)。
 このように、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとの間で新たな通信路を用いることなく、既に仮想化制御で使用している通信路150(SSLセッション)によって情報処理装置100およびデバイス制御装置200の各々においてオペレーションの結果などを受信することが可能となる。
 <9>情報処理装置の通信停止
 続いて、情報処理装置100においてアプリケーション100Aによって指定されたタイミングで通信停止するシーケンスについて、上述のステップS093において認証エラーが通知された場合を例に挙げて説明する。
 情報処理装置100では、デバイス制御装置200のアプリケーション200Aから送られた認証エラーの通知により認証エラーを検出して(ステップS094)、認証エラーの通知に応じて、アプリケーション100Aが仮想化制御API100Bに対して通信停止を指示する(ステップS101)。
 このとき、情報処理装置100では、アプリケーション100Aは、例えば、ディスプレイなどの表示部でエラーを表示するか又はブザーなどの音声部(図示せず)によってエラーを報知する。
 続いて、仮想化制御API100Bが仮想化制御部100Dに対して、通信路(SSLセッション)の切断を指示する(ステップS102)。そして、仮想化制御部100Dは通信制御部100Eによってデバイス制御装置200の通信制御部200Eとの通信路(SSLセッション)を切断する(ステップS103)。
 <10>情報処理装置によるデバイスのリセット
 ここでは、上述したステップS094~S102に続いて、情報処理装置100では、アプリケーション100Aがユーザによって指定されたタイミングでデバイス制御装置200の装置制御部200Fを制御して、デバイス300の再接続(リセット)を実施する場合を例に挙げて説明する。
 この場合には、情報処理装置100ではアプリケーション100Aがデバイス制御装置200の仮想化制御部200Dを介して装置制御部200F(デバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、ファームウェアを制御するための部品)を制御する。この際、図1に示す制御経路3によって制御が行われる。
 具体的には、前述のように、ステップS094において、情報処理装置100ではアプリケーション100Aがエラー表示を行う。ユーザは当該エラー表示に応じてアプリケーション100A上のUI(User Interface)を用いてリセットを指示する。
 ユーザのリセット指示に応じて、アプリケーション100Aは仮想化制御API100Bにリセットを指示する(ステップS111)。続いて、仮想化制御API100Bは仮想化制御部100Dにリセットを指示する(ステップS112)。
 これによって、仮想化制御部100Dは通信制御部100Eを介して、デバイス制御装置200(MFP)に装置制御要求(リセット)を送信する(ステップS113)。デバイス制御装置200(MFP)では、仮想化制御部200Dが通信制御部200Eを介して装置制御要求(リセット)を受信する。
 続いて、デバイス制御装置200(MFP)では、仮想化制御部200Dが装置制御部200Fに対してリセットを指示する(ステップS114)。
 ここでは、装置制御部200Fは、図1に示すデバイス制御部200Cでは制御できないハードウェアバスに対する制御を行う。例えば、デバイス300は、ハイサイドスイッチ(以下USBハイサイドスイッチと呼ぶ)によってUSBインターフェースを介して供給される電源の電流の大きさが制限されており、装置制御部200Fは当該USBハイサイドスイッチにリセットの指示を送る。これによって、装置制御部200FはUSBハイサイドスイッチをオフ/オン制御して、デバイス制御部200C(USBホストコントローラ)をリセットする。
 つまり、装置制御部200Fを制御することによって、デバイス300とデバイス制御装置200とを接続する接続ケーブル400を物理的に挿抜するのと同様のことを行うことができる。
 なお、上述のUSBハイサイドスイッチばかりでなく、情報処理装置100の仮想化制御API100Bからデバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアを制御するために、仮想化制御API100Bを介して装置制御部200Fに指示を行うことができる。
 つまり、自装置のアプリケーションからのデータ/制御要求を、仮想化制御APIを介して相手側装置に送信して、相手側装置の仮想化制御部を介して相手側装置内のソフトウェア、ハードウェア、およびファームウェアを制御することができる。これによって、デバイス制御装置200に備えられた様々な機能と連携してソリューションを行うことができる。
 <11>情報処理装置によるデバイスのリカバリ検知
 ここで、上述したステップS111~S114の処理によるリセット制御が実施された後のリカバリ動作の例について説明する。
 上述のステップS111~S114の処理によるリセット制御によって、デバイス300との接続が一旦切断されると、デバイス制御装置200において、デバイス制御部200Cがデバイス300との接続の切断を検知し(ステップS121)、その旨を仮想化制御部200Dに通知する(ステップS122)。
 仮想化制御部200Dはデバイス300との接続の切断を仮想化制御API200Bに通知する(ステップS123)。そして、仮想化制御API200Bはアプリケーション200Aにデバイス300との接続の切断を通知する(ステップS124)。これによって、デバイス制御装置200はLED/LCDなどの表示部に、デバイス300との接続が切断された旨を表示する(ステップS125)。
 また、デバイス制御装置200では、仮想化制御部200Dが検知したデバイスとの接続の切断を、通信制御部200Eを介して情報処理装置100に通知する(ステップS131)。情報処理装置100では、通信制御部100Eによって受信したデバイスとの接続の切断を、仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS132)。
 仮想化制御API100Bはアプリケーション100Aにデバイスとの接続の切断を通知する(ステップS133)。これによって、アプリケーション100Aは、ディスプレイなどの表示部にデバイスとの接続が切断された旨を表示する(ステップS134)。
 続いて、情報処理装置100では、アプリケーション100Aがデバイスとの接続の切断を仮想化制御停止のタイミングと判断して、仮想化制御停止を仮想化制御API100Bに指示する(ステップS141)。そして、仮想化制御API100Bは仮想化制御部100Dに仮想化制御停止を指示する(ステップS142)。これによって、仮想化制御部100Dは、仮想化制御の停止を行うことにより、情報処理装置100とデバイス300との接続を切断する。
 デバイス制御装置200において、上述のステップS114によるリセット制御でデバイス300との接続が一旦切断され、再接続されると、デバイス制御部200Cはデバイス300の再接続を検知して(ステップS151)、仮想化制御部200Dにその旨の通知を行う(ステップS152)。そして、仮想化制御部200Dはデバイス300の接続を仮想化制御API200Bに通知する(ステップS153)。
 続いて、仮想化制御API200Bはアプリケーション200Aにデバイス300の接続を通知する(ステップS154)。これによって、デバイス制御装置200はLED/LCDなどの表示部に、デバイス300が接続されたことを表示する(ステップS155)。
 また、デバイス制御装置200では、仮想化制御部200Dによって検知されたデバイス接続を、通信制御部200Eを介して情報処理装置100に通知する(ステップS161)。情報処理装置100では、通信制御部100Eによって受信したデバイス接続を仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS162)。
 次に、仮想化制御API100Bはアプリケーション100Aにデバイス接続を通知する(ステップS163)。これによって、アプリケーション100Aは、ディスプレイなどの表示部にデバイス300が接続されたことを表示する(ステップS164)。
 続いて、情報処理装置100では、アプリケーション100Aがデバイス接続を仮想化制御開始のタイミングと判断して、仮想化制御開始を仮想化制御API100Bに指示する(ステップS171)。これによって、仮想化制御API100Bは仮想化制御部100Dに仮想化制御開始を指示する(ステップS172)。仮想化制御部100Dは、情報処理装置100にデバイス300が接続されたかのように仮想化制御を開始する。このようにして、アプリケーション100Aによるリセットの指示後にデバイス切断/再接続が行われて、アプリケーション100Aは仮想化制御の開始をもってリカバリの成功と判断する(ステップS181)。
 ≪第1の実施形態における効果≫
 上述のように、本発明の第1の実施形態では、アプリケーション100Aおよびアプリケーション200Aは新たに通信路を設けることなく、既に仮想化制御で用いられている通信路によってデータの送受信を行うことができる。特に、ネットワークを介して暗号化によって通信を行う必要がある場合に、通信路によって暗号化キー/証明書の交換など暗号化に必要な手続きを行うことができるので、通信を開始するまでの時間を低減することができる。
 また、第1の実施形態で説明したデバイス300が通信で用いるネットワークポートとして、IANA(Internet Assigned Number Authority)に登録されているポート番号(Registered Port Numbers)が用いられる。このため、新たに通信路を確保する場合には、ユーザが自由に使えるポート番号(Private Port Numbers)を用いる。この際、当該ポート番号が既に用いられていることが有り得るので、ポート番号が重複しているか否かを確認する必要がある。しかし、前述のように、第1の実施形態では、既に仮想化制御で用いられている通信路によって通信を行うので、ポート番号が重複しているか否かの確認が不要となる。
 そして、仮想化制御で用いられている通信路によって、アプリケーション100Aはデバイス300の切断/接続を判断して、仮想化制御APIによって仮想化制御開始/停止を行うことができる。
 さらに、情報処理装置100におけるユーザ入力などのアプリケーション100Aが検知可能なタイミングで、仮想化制御API100Bを介してデバイス300、暗号化種別、および証明書を指定してデバイス制御装置200との通信を開始又は停止することができる。
 加えて、情報処理装置100におけるユーザ入力などのアプリケーション100Aが検知可能なタイミングで、仮想化制御API100Bを介してデバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアの制御(例えば、デバイスのリセット)を実行させることができる。
[第2の実施形態]
 続いて、本発明の第2の実施形態に係るデバイス制御システムの一例について説明する。なお、第2の実施形態に係るデバイス制御システムの構成は、図1に示すデバイス制御システムと同様である。
 第2の実施形態においては、デバイス制御装置のアプリケーションが仮想化制御APIを用いて情報処理装置と連携して仮想化制御および接続制御を行う点が第1の実施形態と異なる。なお、第1の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
 ≪システムおよび装置の動作のシーケンスの説明≫
 図3は、本発明の第2の実施形態に係るデバイス制御システムにおいてデバイス制御装置200から仮想化制御を開始する際のシーケンスを説明するための図である。
 ここでは、通信路150を用いて、デバイス制御装置200のアプリケーション200Aから情報処理装置100の仮想化制御部100Dを制御する。この際には、図1に示す制御経路2によって制御が実行される。
 なお、図2で説明したステップS001においてデバイス接続が行われ、ステップS005においてデバイス接続を検出するまでのシーケンスは第1の実施形態と同様である。
 <12>デバイス制御装置からの入力による仮想化制御開始
 ここでは、デバイス制御装置200においてアプリケーション200Aが情報処理装置100の仮想化制御部100Dと連携して、指定したタイミングで仮想化制御を開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
 デバイス制御装置200には、予め接続可能な情報処理装置100に係る情報処理装置情報が格納されており、ユーザは入力装置を用いてデバイス300と接続先である情報処理装置100を選択することができる。デバイスおよび情報処理装置が複数存在する場合には、ユーザは任意のデバイスおよび情報処理装置を指定することができる。ここでいう情報処理識別情報とは、情報処理装置100を識別するための情報である。例えば、情報処理装置100のコンピュータ名、IPアドレス、MACアドレス、シリアルナンバー(製造番号)などであるが、これらに限定されない。さらに、これらの情報を組み合わせたものであってもよい。
 まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報および情報処理装置100に係る情報処理装置情報)を受け付ける。そして、アプリケーション200Aは、仮想化制御API200Bに仮想化制御開始のユーザ入力を通知する(ステップS201)。
 続いて、仮想化制御API200Bは仮想化制御部200Dに仮想化制御開始を指示する(ステップS202)。仮想化制御部200Dは通信制御部200Eを介して仮想化制御開始を情報処理装置100に送信する(ステップS211)。そして、仮想化制御部100Dは仮想化制御の接続を行うことにより、ステップS211で受信したデバイス300の選択に関する情報に基づいて情報処理装置100とデバイス300との接続を行う(ステップS212)。
 このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して仮想化制御処理を行うことができる。
 <13>デバイス制御装置からの入力による通信開始
 ここでは、デバイス制御装置200のアプリケーション200Aが指定したタイミングで通信開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
 デバイス制御装置には、予め接続可能なデバイス300のデバイス情報と設定可能な暗号化種別・証明書が格納されており、ユーザは入力装置を用いてデバイス300、暗号化種別(SSL/AESなど)、および証明書を選択することができる。情報処理装置、デバイス、暗号化種別、および証明書が複数存在する場合には、ユーザは任意のデバイス、情報処理装置、暗号化種別、および証明書を指定することができる。
 まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報、暗号化種別、および証明書)を受け付ける。これによって、アプリケーション200Aは通信開始を仮想化制御API200Bに通知する(ステップS221)。
 仮想化制御API200Bは仮想化制御部200Dに通信開始を指示する(ステップS222)。続いて、仮想化制御部200Dは通信制御部200Eを介して、アプリケーション200Aで指定したデバイス300が仮想化制御されている情報処理装置100に、指定した暗号化種別および指定した証明書で通信接続を行う(ステップS231)。
 このようにして、デバイス制御装置200から任意のデバイス、情報処理装置、ネットワーク暗号化、および証明書を指定して通信接続を行うことができる。
 なお、仮想化制御接続および通信接続に係るユーザ入力は必ずしも分ける必要はない。また、ステップS121~ステップS125は、第1の実施形態と同様である。
 <14>デバイス制御装置からの入力による通信停止
 ここでは、デバイス制御装置200のアプリケーション200Aが指定したタイミングで通信停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
 まず、デバイス制御装置200において、アプリケーション200Aはユーザ入力(ここでは、デバイス300を選択したデバイス情報)を受け付ける。これによって、アプリケーション200Aは通信停止を仮想化制御API200Bに通知する(ステップS251)。
 続いて、仮想化制御API200Bは仮想化制御部200Dに通信停止を指示する(ステップS252)。そして、仮想化制御部200Dはデバイス300が仮想化制御されている情報処理装置100に通信停止の指示を送信する(ステップS261)。
 このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して通信停止を行うことができる。
 <15>デバイス制御装置からの入力による仮想化制御停止
 ここでは、デバイス制御装置200のアプリケーション200Aが情報処理装置100の仮想化制御部100Dと連携して、指定したタイミングで仮想化制御を停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
 まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報)を受け付ける。これによって、アプリケーション200Aは仮想化制御停止を仮想化制御API200Bに通知する(ステップS271)。ここでいうデバイス情報とは、例えば、デバイス300を識別するための情報であって、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーID(VID)、機種を識別するために機種毎に割り当てられた製品ID(PID)、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。デバイス情報は、デバイス300がデバイス制御装置200に接続された際などに、デバイス制御部200Cがデバイス300から取得する。
 続いて、仮想化制御API200Bは仮想化制御部200Dに仮想化制御停止を指示する(ステップS272)。そして、仮想化制御部200Dは、デバイス300が仮想化制御されている情報処理装置100に、デバイス300の仮想化制御停止の指示を送信する(ステップS281)。これによって、情報処理装置100では仮想化制御部100Dがデバイス300の仮想化制御を停止する(ステップS282)。
 このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して仮想化制御停止処理を行うことができる。なお、仮想化制御停止および通信停止に係るユーザ入力は必ずしも分ける必要はない。
 ≪第2の実施形態における効果≫
 上述のように、本発明の第2の実施形態では、デバイス制御装置からユーザ入力によって任意のデバイスおよび任意の情報処理装置を選択して仮想化制御開始又は停止を行うことができる。
 また、デバイス制御装置からのユーザ入力によって指定されたデバイスのセッションについて、ネットワーク暗号化の有無(サポート可能暗号化種別/証明書など)を選択して通信接続又は切断処理を行うこともできる。
 [第3の実施形態]
 次に、本発明の第3の実施形態に係るデバイス制御システムの一例について説明する。なお、第3の実施形態に係るデバイス制御システムの構成は、図1に示すデバイス制御システムと同様である。
 本発明の第3の実施形態では、デバイス制御装置のアプリケーションが仮想化制御APIを用いてデバイス以外のハードウェア制御を行う点が第1の実施形態と異なる。なお、第1の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
 ≪システムおよび装置の動作のシーケンスの説明≫
 図4は、本発明の第3の実施形態に係るデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
 ここでは、デバイス制御装置200のアプリケーション200Aが装置制御部200Fに動作指示を行うシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力(デバイスのリセット指示)で開始される。
 なお、図2で説明したステップS001においてデバイス接続が行われ、ステップS073においてエラー検出を行うまでのシーケンスは第1の実施形態と同様である。
 <16>デバイス制御装置からの入力によるデバイスリセット
 デバイス制御装置200におけるエラー表示(ステップS073)の情報に応じて、ユーザはデバイス制御装置200からデバイスリセットを指示する。これによって、アプリケーション200Aは仮想化制御API200Bにリセットを指示する(ステップS301)。
 続いて、仮想化制御API200Bは仮想化制御部200Dにリセットを指示する(ステップS302)。これによって、第1の実施形態と同様にして、仮想化制御部200Dは装置制御部200Fに対してリセットを指示する(ステップS114)。
 <17>デバイス制御装置の表示部によるリカバリの確認
 ステップS121~S125においては、第1の実施形態と同様にして、デバイス制御装置200はデバイス300との接続が切断されたことを検出して、その旨を表示部に表示する。また、ステップS151~S155においては、第1の実施形態と同様して、デバイス制御装置200はデバイス300が再接続されたことを検出して、その旨を表示部に表示する。
 続いて、アプリケーション200Aはデバイス300との接続が一旦デバイス制御装置200から切断された後、再度デバイス制御装置200に接続されたことによってリカバリの成功と判断する(ステップS311)。
 なお、第1の実施形態と同様に、仮想化制御も行ってリカバリを判定するようにしてもよい。
 ≪第3の実施形態における効果≫
 上述のように、本発明の第3の実施形態では、情報処理装置100からだけでなく、デバイス制御装置200からユーザ入力などで指定したタイミングでデバイス制御部以外の装置制御(例えば、デバイスのリセットなど)を行うことができる。つまり、自装置の仮想化制御APIに対して自装置内の装置制御(ソフトウェア、ハードウェア、およびファームウェア)を制御させることができる。
[その他の実施の形態]
 なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
 例えば、仮想化制御APIを制御経路毎に複数設け、アプリケーションがどの仮想化制御API(すなわち、制御経路)を用いるかを選択するようにしてもよい。
 例えば、複数台の情報処理装置100又は複数台のデバイス制御装置200によってデバイス制御システムを構成するようにしてもよく、情報処理装置100およびデバイス制御装置200ともに複数台としてデバイス制御システムを構成するようにしてもよい。
 このような場合には、情報処理装置100とデバイス制御装置200との間における仮想化制御で用いる通信路を切り替えて、以下に例示するような処理を含めて様々な制御を行うことができる。
 (1)デバイス制御装置が、通信路Aを介して情報処理装置Aからのデータを受信して、デバイス制御装置の仮想化制御APIが通信路の切り替えを行い、受信したデータを情報処理装置Bとの間の通信路Bを介して情報処理装置Bに送る。
 (2)情報処理装置が、通信路Aを介してデバイス制御装置Aからのデータを受信し、情報処理装置の仮想化制御APIで通信路の切り替えを行い、受信したデータをデバイス制御装置Bとの間の通信路Bを介して情報処理装置Bに送る。
 (3)情報処理装置およびデバイス制御装置をそれぞれ複数台で備える場合には、上記の(1)および(2)を組み合わせて制御を行うことも可能である。
 上述のように、本発明の実施の形態では、情報処理装置およびデバイス制御装置に装置制御手段(仮想化制御API)を設けて、仮想化制御部の上位層であるアプリケーション同士を既に仮想化制御で用いている通信路によって連携させることができる。さらに、情報処理装置に搭載されるアプリケーションからデバイス制御装置の装置制御部を制御することができる。
 なお、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置又はデバイス制御装置に実行させるのも本発明の1つの態様である。
 また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを情報処理装置又はデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。
 なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
 本発明の態様は、上述した実施の形態の機能を実現するために記憶装置に格納されたプログラムを読み出して実行するシステム又は装置(又はCPU若しくはMPUのようなデバイス)のコンピュータによっても達成され、また、ステップが、例えば上述した実施の形態の機能を実現するために記憶装置に格納されたプログラムを読み出して実行することによってシステム又は装置のコンピュータによって実行される方法によっても達成される。このために、プログラムは、例えば、ネットワークを介して又は記憶装置(例えば、コンピュータ読み取り可能な媒体)として役割を果たす種々の記録媒体からコンピュータに提供される。
 本発明は、例示的な実施の形態を参照して記載されているが、開示された例示的実施の形態に限定されると解されるべきではない。以下に記載の請求の範囲は、すべての変形例や同等の構成及び機能を包含するように最も広く解釈されるべきである。
 本発明は、ネットワークを介してクライアント(情報処理装置)がデバイスを利用するシステムにおいて、クライアントがネットワーク上のデバイスをローカル接続されたデバイスとして仮想的に認識して、ネットワーク上のクライアントからデバイスをアクセスできるようにしたものに適用して、クライアントとデバイスサーバ(デバイス制御装置)との間の仮想化制御で用いる通信路を用いて、クライアントおよびデバイスサーバのアプリケーションを連携させてデバイスを制御することができ、また、デバイスサーバのデバイス制御部以外のデバイスサーバ内部のソフトウェア、ハードウェア、およびファームウェアを制御することができるので、上記のようなシステムにおいて有用である。
 100 情報処理装置
 100A,200A アプリケーション
 100B,200B 仮想化制御API
 100C デバイスドライバ
 100D,200D 仮想化制御部
 100E,200E 通信制御部
 200 デバイス制御装置
 200C デバイス制御部
 200F 装置制御部
 300 デバイス
 150 通信路
 400 接続ケーブル
 500 ネットワーク

Claims (9)

  1. デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、
     前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、
     前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、
     前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、
     を有することを特徴とする情報処理装置。
  2.  ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、
     前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、
     前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、
     前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、
     を有することを特徴とするデバイス制御装置。
  3.  前記第二の装置制御手段は、前記第二の制御手段からの第一の要求に応じて、前記情報処理装置によるデバイスの仮想化制御の開始又は停止を行うことを特徴とする請求項2に記載のデバイス制御装置。
  4.  請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
     前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第一の制御経路であり、
     前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第一の制御経路を選択して、前記第二の制御手段とデータの送受信を行うとともに、
     前記第二の制御手段の指示により、前記第一の制御経路を選択して、前記第一の制御手段とデータの送受信を行うことを特徴とするデバイス制御システム。
  5.  請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
     前記制御経路は、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第二の制御経路であり、
     前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により、前記第二の制御経路を選択して、前記第一の仮想化制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
  6.  請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
     前記デバイス制御装置は、さらに前記デバイス制御装置内部を制御する装置制御手段を備え、
     前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記装置制御手段とを経由する第三の制御経路であり、
     前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第三の制御経路を選択して、前記装置制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
  7.  前記デバイス制御装置は、さらに前記デバイスを制御するデバイス制御手段を備え、
     前記装置制御手段は、前記デバイス制御手段以外の前記デバイス制御装置内部を制御することを特徴とする請求項6に記載のデバイス制御システム。
  8.  デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置の制御方法であって、
     前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御ステップと、
     前記第一の仮想化制御ステップによって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御ステップと、
     前記第一の仮想化制御ステップによって前記通信路が確立された場合、前記第一の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御ステップと、
     を有することを特徴とする情報処理装置の制御方法。
  9.  ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置の制御方法であって、
     前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御ステップと、
     前記第二の仮想化制御ステップによって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御ステップと、
     前記第二の仮想化制御ステップによって前記通信路が確立された場合、前記第二の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御ステップと、
     を有することを特徴とするデバイス制御装置の制御方法。
PCT/JP2013/085025 2012-12-21 2013-12-19 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム WO2014098260A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201380067236.0A CN104885066B (zh) 2012-12-21 2013-12-19 信息处理设备、装置控制设备及控制方法和装置控制系统
US14/738,303 US20150281324A1 (en) 2012-12-21 2015-06-12 Information processing apparatus, device control apparatus, methods of controlling them, and device control system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012279336A JP6025547B2 (ja) 2012-12-21 2012-12-21 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
JP2012-279336 2012-12-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/738,303 Continuation US20150281324A1 (en) 2012-12-21 2015-06-12 Information processing apparatus, device control apparatus, methods of controlling them, and device control system

Publications (1)

Publication Number Publication Date
WO2014098260A1 true WO2014098260A1 (ja) 2014-06-26

Family

ID=50978564

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/085025 WO2014098260A1 (ja) 2012-12-21 2013-12-19 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム

Country Status (4)

Country Link
US (1) US20150281324A1 (ja)
JP (1) JP6025547B2 (ja)
CN (1) CN104885066B (ja)
WO (1) WO2014098260A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045244A (ja) * 2015-08-26 2017-03-02 キヤノン株式会社 印刷制御方法、プログラム、及び情報処理装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953350A (en) * 1995-03-13 1999-09-14 Selsius Systems, Inc. Multimedia client for multimedia/hybrid network
JP2007072953A (ja) * 2005-09-09 2007-03-22 Seiko Epson Corp ネットワーク型プラグアンドプレイに対応したネットワーク装置における制御
JP2007219711A (ja) * 2006-02-15 2007-08-30 Silex Technology Inc リモートデバイス制御プログラム
JP2010113606A (ja) * 2008-11-07 2010-05-20 Canon Imaging Systems Inc デバイス共有システム、デバイス共有クライアント、及びデバイス共有方法
WO2011055831A1 (ja) * 2009-11-04 2011-05-12 キヤノンイメージングシステムズ株式会社 デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2011129111A (ja) * 2009-11-18 2011-06-30 Canon Imaging Systems Inc クライアント装置、デバイス制御方法、およびデバイス制御システム
US20120254473A1 (en) * 2011-04-01 2012-10-04 Ralink Technology Corporation Method of establishing virtual usb interface for non-usb apparatus and the non-usb apparatus thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3766259B2 (ja) * 2000-06-01 2006-04-12 株式会社日立製作所 パケット転送装置
US6904489B2 (en) * 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
EP1422920B1 (en) * 2002-11-19 2013-01-23 Canon Denshi Kabushiki Kaisha Network scanning system
JP4164467B2 (ja) * 2004-03-26 2008-10-15 キヤノン株式会社 画像処理装置、画像処理制御方法、及びプログラム
US20060107269A1 (en) * 2004-11-17 2006-05-18 International Business Machines Corporation Virtual device hub
CN100347692C (zh) * 2005-05-31 2007-11-07 清华大学 San系统中虚拟化智能控制器的实现方法
US20070005867A1 (en) * 2005-06-30 2007-01-04 Nimrod Diamant Virtual peripheral device interface and protocol for use in peripheral device redirection communication
JP4842593B2 (ja) * 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
EP1763198A3 (en) * 2005-09-07 2007-04-04 Seiko Epson Corporation Control of network plug-and-play compliant device
JP5272265B2 (ja) * 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US8438256B2 (en) * 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US8326976B2 (en) * 2009-06-30 2012-12-04 Alcatel Lucent Configuring application management reporting in a communication network
JP5482453B2 (ja) * 2010-05-27 2014-05-07 富士通株式会社 ルータ、情報処理装置及びプログラム
US9641621B2 (en) * 2011-11-02 2017-05-02 Microsoft Technology Licensing, Llc Sensor aware packet modification and routing
US9083644B2 (en) * 2012-02-14 2015-07-14 International Business Machines Corporation Packet routing for embedded applications sharing a single network interface over multiple virtual networks
US9148368B2 (en) * 2012-02-14 2015-09-29 International Business Machines Corporation Packet routing with analysis assist for embedded applications sharing a single network interface over multiple virtual networks
CA2841685C (en) * 2013-03-15 2021-05-18 Panasonic Avionics Corporation System and method for providing multi-mode wireless data distribution

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953350A (en) * 1995-03-13 1999-09-14 Selsius Systems, Inc. Multimedia client for multimedia/hybrid network
JP2007072953A (ja) * 2005-09-09 2007-03-22 Seiko Epson Corp ネットワーク型プラグアンドプレイに対応したネットワーク装置における制御
JP2007219711A (ja) * 2006-02-15 2007-08-30 Silex Technology Inc リモートデバイス制御プログラム
JP2010113606A (ja) * 2008-11-07 2010-05-20 Canon Imaging Systems Inc デバイス共有システム、デバイス共有クライアント、及びデバイス共有方法
WO2011055831A1 (ja) * 2009-11-04 2011-05-12 キヤノンイメージングシステムズ株式会社 デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2011129111A (ja) * 2009-11-18 2011-06-30 Canon Imaging Systems Inc クライアント装置、デバイス制御方法、およびデバイス制御システム
US20120254473A1 (en) * 2011-04-01 2012-10-04 Ralink Technology Corporation Method of establishing virtual usb interface for non-usb apparatus and the non-usb apparatus thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045244A (ja) * 2015-08-26 2017-03-02 キヤノン株式会社 印刷制御方法、プログラム、及び情報処理装置

Also Published As

Publication number Publication date
JP2014123265A (ja) 2014-07-03
JP6025547B2 (ja) 2016-11-16
CN104885066B (zh) 2017-12-22
US20150281324A1 (en) 2015-10-01
CN104885066A (zh) 2015-09-02

Similar Documents

Publication Publication Date Title
US9811295B2 (en) Communication system and relay device
US8127340B2 (en) Communication apparatus
JP2016021090A (ja) 端末装置、プリンタ、コンピュータプログラム
TWI414945B (zh) Process system and method for automatically connecting with remote USB device
JP5745424B2 (ja) デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
CA2865725A1 (en) Information processing system, information processing method, mobile phone, server, and control method and control program thereof
JP5743673B2 (ja) 通信システム、通信装置、情報処理装置、制御方法、およびプログラム
US20130286434A1 (en) Image forming apparatus having network interface and interface enabling to connect peripheral device
US8838740B2 (en) Information processing apparatus that controls device via network and method of controlling the apparatus, device control apparatus and method of controlling the apparatus, as well as device control system
WO2016018211A1 (en) Master module
JP6025547B2 (ja) 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
JP5447585B2 (ja) 画像処理装置、遠隔操作システム、およびプログラム
US9843422B2 (en) Device control protocol (over IPP)
JP2014127121A (ja) 携帯端末、携帯端末の制御方法、およびデバイス制御システム
JP4965144B2 (ja) 通信装置
JP6064822B2 (ja) 情報処理システム、情報処理装置及びプログラム
US11966643B2 (en) Device and storage medium storing computer program
US11924286B2 (en) Encrypted communication processing apparatus, encrypted communication processing system, and non-transitory recording medium
JP5883185B2 (ja) 通信装置、通信システム、制御方法、通信方法、およびプログラム
WO2020097926A1 (zh) 医疗设备自动联网系统及其自动连接wlan的方法
JP5353847B2 (ja) 通信装置、通信方法、及び通信プログラム
JP2010128588A (ja) Usbシステム装置
JP2017010192A (ja) デバイス制御装置、その制御方法、およびデバイス制御システム
JP2018055635A (ja) デバイス制御装置、情報処理装置、その制御方法、およびデバイス制御システム
JP2017182735A (ja) 情報処理装置、その制御方法、およびデバイス制御システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13865529

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13865529

Country of ref document: EP

Kind code of ref document: A1