WO2021124980A1 - プログラム、プログラム群、および情報処理装置 - Google Patents

プログラム、プログラム群、および情報処理装置 Download PDF

Info

Publication number
WO2021124980A1
WO2021124980A1 PCT/JP2020/045636 JP2020045636W WO2021124980A1 WO 2021124980 A1 WO2021124980 A1 WO 2021124980A1 JP 2020045636 W JP2020045636 W JP 2020045636W WO 2021124980 A1 WO2021124980 A1 WO 2021124980A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
port
program
protocol
information
Prior art date
Application number
PCT/JP2020/045636
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 CN202080085593.XA priority Critical patent/CN114902200A/zh
Publication of WO2021124980A1 publication Critical patent/WO2021124980A1/ja

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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

Definitions

  • the present invention relates to a program or the like for transmitting a request in the first protocol used in the first communication interface to a device.
  • EWS abbreviation of Embedded Web Server
  • a device request in HTTP is output when accessing the EWS of the device in the first protocol, for example.
  • the device may be connected to the information processing device via a communication interface different from the communication interface used in HTTP, for example, a USB interface.
  • a communication interface different from the communication interface used in HTTP for example, a USB interface.
  • the present invention transmits a device request in the first protocol to a device via a second communication interface different from the first communication interface used in the first protocol, and a second device request is returned from the device.
  • the subject is to receive via a communication interface.
  • the program disclosed in the embodiment is a program that can be read by a computer of an information processing apparatus including the first communication interface and the second communication interface, and the computer accepts the first request.
  • the second request is different from the first request by functioning as a first creation means for creating a first port for the purpose and a second creation means for creating a second port for accepting the second request.
  • the first request and the second request are requests according to the first protocol, the first protocol is a protocol used in the first communication interface, and the first port and the second port are described by the program. It is a port for receiving a request from a program installed on an installed computer and different from the program by the first protocol without going through the first communication interface, and the computer is referred to as the first.
  • the first public means for publishing the second port to the program requesting the first request and the second public means published by the first public means.
  • the transmission means for transmitting the second request to the device connected to the second communication interface by the second protocol and the second transmission transmitted by the transmission means.
  • the reply to the request is made to function as a receiving means for receiving the reply from the device via the second communication interface, the second protocol is a program used in the second communication interface, and the reply received by the receiving means is said to be the same. It is characterized in that the request source program of the second request to the second port functions as a first output means for outputting by the first protocol.
  • the second port is added to the program requesting the request to the first port.
  • the program transmits the device request to the device via the second communication interface in the second protocol.
  • the program receives the reply of the device request by the second protocol, the program outputs the reply of the device request to the program requesting the device request.
  • the device request in the first protocol can be transmitted to the device via the second communication interface, and the reply of the device request can be received from the device via the second communication interface.
  • FIG. 1 is a block diagram of the communication system 1 according to the present embodiment.
  • the communication system 1 shown in FIG. 1 includes a PC (an example of an information processing device) 10, an MFP (an example of a device) 50, and an MFP 56.
  • the MFPs 50 and 56 are devices capable of executing various processes such as a scan process and a print process.
  • the MFP 50 incorporates an EWS (an example of a server) 52
  • the MFP 56 incorporates an EWS 58.
  • the EWS 52 and 58 have the same functions as the web server, and the EWS 52 and 58 include information indicating the status of the MFPs 50 and 56, information indicating an HTML web page related to setting information, and the like (hereinafter, "EWS information").
  • EWS information an example of server information
  • the PC 10 mainly includes a CPU (an example of a computer) 12, a memory 14, an LCD 16, an input I / F 18, a network I / F (an example of a first communication interface) 19, and a USB I / F (an example of a second communication interface) 20. I have. These components are made communicable with each other via the bus 22.
  • the CPU 12 includes a control program (an example of a program and a first program) 30 in a memory 14, an application (an example of another program and a second program) 32, a setting tool (an example of another program and a third program) 34, and a browser (a browser).
  • Example) Process is executed according to 36 and OS38.
  • the control program 30 is an application program for acquiring server information from the EWS 52 of the MFP 50.
  • the application 32 is an application program for executing various processes using the MFP 50.
  • the setting tool 34 is an application program for performing various settings based on the EWS information stored in the EWS 52 and 58 of the MFPs 50 and 56.
  • the application 32 includes a library (an example of a module program) 40
  • the setting tool 34 includes a library (an example of a module program) 42.
  • the library 40 and the library 42 are the same application program, and are used when the server information is acquired from the EWS 52 of the MFP 50 by the processing of the control program 30.
  • the browser 36 is an application program for acquiring HTML format data using HTTP via the network I / F19 and displaying a web page on the LCD 16.
  • the OS 38 is a program that provides basic functions used in the control program 30 and the like.
  • the CPU 12 that executes the control program 30 and the like may be simply described by the program name.
  • the description "the control program 30 is” may mean "the CPU 12 that executes the control program 30".
  • the memory 14 includes a data storage area (an example of memory) 46.
  • the data storage area 46 is an area for storing data and the like necessary for executing the control program 30 and the like.
  • the memory 14 is configured by combining a RAM, a ROM, a flash memory, an HDD, a portable storage medium such as a USB memory attached to and detached from the PC 10, a buffer included in the CPU 12, and the like.
  • the memory 14 may be a storage medium that can be read by a computer.
  • a computer-readable storage medium is a non-transitory medium.
  • the non-transitory medium also includes a recording medium such as a CD-ROM or a DVD-ROM.
  • the non-transitory medium is also a tangible medium.
  • an electric signal that carries a program downloaded from a server on the Internet is a computer-readable signal medium, which is a kind of computer-readable medium, but is a storage that can be read by a non-transitory computer. Not included in the medium.
  • the LCD 16 displays various information of the PC 10.
  • the display of the present application is not limited to a liquid crystal display, and may be a display of another display method such as an organic EL display.
  • the input I / F18 includes a keyboard, a mouse, and the like, and is an interface for inputting user operations.
  • the input I / F18 is not limited to a keyboard or the like, and may be a film-like touch sensor superimposed on the display screen of the LCD 16.
  • the network I / F19 is for communicating with a device using HTTP (an example of the first protocol), and is capable of communicating with the MFP 56 via the network 60. Further, the USB I / F 20 is for communicating with a device using the USB protocol (an example of the second protocol), and is capable of communicating with the MFP 50.
  • this specification basically shows the processing of the CPU 12 according to the instructions described in the program. That is, the processes such as “judgment”, “extraction”, “selection”, “calculation”, “decision”, “specification”, “acquisition”, “acceptance”, “control”, and “setting” in the following description are performed by the CPU12. Represents the processing of.
  • the processing by the CPU 12 also includes hardware control via the OS 38.
  • acquisition is used in a concept that does not require a request. That is, the process of receiving the data without the CPU 12 requesting is also included in the concept of "the CPU 12 acquires the data”.
  • the "data” in the present specification is represented by a bit string that can be read by a computer.
  • processing such as “command”, “response”, and “request” is performed by communicating information indicating “command”, “response”, “request”, and the like.
  • words such as “command”, “response”, and “request” may be described in the sense of information itself indicating "command”, “response”, “request”, and the like.
  • the process of determining whether or not the information A indicates that the information A is the matter B by the CPU is conceptually described as "determining whether or not the information A is the matter B from the information A”. There is.
  • the process of determining whether the information A indicates that the information A is the matter B or the matter C by the CPU is “determining from the information A whether the information A is the matter B or the matter C”. It may be described conceptually as.
  • the browser 36 can acquire the EWS information from the MFP 56 which can communicate with the PC 10 via the network I / F 19 according to the above-described configuration, and display the web page on the LCD 16 based on the EWS information. It is possible. Such a process is a process that has been conventionally performed, and the browser 36 can preferably acquire EWS information from the MFP 56 by using HTTP. On the other hand, the browser 36 could not acquire EWS information using HTTP by the conventional method from the MFP 50 which can communicate with the PC 10 via the USB I / F20, that is, the MFP 50 connected by USB. In the communication system 1, the browser 36 can acquire EWS information from the USB-connected MFP 50 using HTTP.
  • processing of the control program 30 and the like when the browser 36 acquires EWS information using HTTP from the USB-connected MFP 50 will be described in detail with reference to the sequence diagrams shown in FIGS. 2 to 4.
  • the control program 30 when the power is turned on to the PC 10, the control program 30 is started by the processing of the OS 38 (see FIG. 2: S100). Then, the control program 30 refers to the data storage area 46 (S102) and determines whether or not the related information is stored in the data storage area 46 (S104).
  • the related information is information indicating a device indicating the acquisition destination of EWS information and a device port for communicating with the device. The relevant information will be described in detail later. First, here, the case where the related information is not yet stored in the data storage area 46 will be described.
  • the control program 30 determines that the related information is not stored in the data storage area 46 (S104: NO), and the control program 30 creates a reception port (an example of the first port) (S106).
  • the control program 30 puts the reception port in the standby state by "Accept” (S108). That is, the control program 30 sets the reception port to a state in which information can be accepted (hereinafter, referred to as "acceptable state”).
  • the port number of the reception port is in accordance with HTTP and is set to 50,000.
  • the control program 30 communicates with the library 40 of the application 32 by its reception port.
  • the control program 30 creates a port, changes the state of the port, deletes the port, and the like according to a known Socket method, for example.
  • the control program 30 is activated when the power is turned on, and the processing of the control program 30 creates a reception port for communicating with the application 32.
  • the application 32 is started by a user operation, and when the application 32 is started (see FIG. 3: S110), the library 40 included in the application 32 provides information for confirming the connection to the reception port of the port number 50,000. Output (S112).
  • the library 40 is programmed so that the port number of the port to be communicated is 50,000.
  • the control program 30 returns "OK" to the library 40 (S114). If the connection confirmation information is not input to the reception port, "NG" is returned to the library 40.
  • the control program 30 determines the reception port.
  • a port number different from the port number 50000 is determined as the port number of the receiving port, and the port of that port number is created as the receiving port.
  • a predetermined rule for determining the reception port is also programmed in the library 40. If the connection confirmation information cannot be input, the library 40 inputs the connection confirmation information and the like to the ports having different port numbers according to the rules.
  • the library 40 uses the port number into which the connection confirmation information can be input as the reception port number. For convenience, in this embodiment, the port with the port number 50,000 will be used as the receiving port.
  • the library 40 accepts "OK", it outputs a request for port information to the receiving port of port number 50,000.
  • the library 40 outputs the device designation information to the receiving port as well as the request for the port information.
  • the device designation information is information that specifies the device from which the EWS information is acquired, and here, the device designation information that specifies the MFP 50 is output to the reception port. Further, the device designation information is information on a character string used in the USB protocol. Specifically, for example, "VID / PID" is output to the reception port as device designation information.
  • the VID is a VenderID (manufacturer number)
  • the PID is a ProductID (product number).
  • the model of the device can be specified by "VID / PID". It is considered that it is not common to connect a plurality of printers of the same model to one PC by USB. Therefore, in the embodiment of the present application, the device designation information "VID / PID" is also used as the information for identifying the individual device. Of course, information other than "VID / PID", such as a serial number, is used as information for identifying the individual device, and the "VID / PID" and the information for identifying the individual device are combined to provide device designation information. May be.
  • the control program 30 sends a confirmation request for the device specified by the device designation information included in the request (hereinafter, may be referred to as "target device") to the OS 38.
  • This confirmation request is for confirming whether or not the target device is a device corresponding to HTTP, and the OS 38 sets "true” to the control program 30 if the target device is a device corresponding to HTTP.
  • the OS 38 outputs "false” to the control program 30 if the target device is not a device corresponding to HTTP (S120).
  • the OS 38 stores information on the USB device in an area called a registry, for example, and S118 requests the OS to output the information.
  • the information of the USB device may be the information acquired from the device connected to the PC 10 by USB, the data storage area 46 of the PC 10, or the information acquired from the server of the device manufacturer.
  • the information indicating whether or not the target device is a device corresponding to HTTP may be information other than "true" and "false". Further, it may be determined by the model based on the VID / PID output by the library 40, or the model information may be acquired from the OS 38 and determined. Furthermore, the model information may be received from the device to make a judgment.
  • the control program 30 when the control program 30 receives the "true" from the OS 38, the control program 30 creates a thread (S122). Then, the control program 30 creates a device port (an example of the second port) (S124), and puts the device port in the standby state in "Accept” (S126). That is, the control program 30 makes the device port acceptable.
  • the port number of the device port also conforms to HTTP and is set to 51000.
  • the control program 30 communicates with the browser 36 by the device port.
  • the port of port number 51000 is already in use and the control program 30 cannot create the device port of port number 51000, it differs from the port number 51000 according to a predetermined rule of device port determination. Create the port with the port number as the device port. For convenience, in this embodiment, the port with the port number 51000 will be used as the receiving port.
  • the control program 30 associates the information indicating the port number of the created device port (hereinafter, referred to as “port information”) with the device designation information received in S116, and stores the information in the data storage area 46. (S128).
  • the port information and device designation information stored here are the related information described above. That is, the related information is stored in the data storage area 46 by creating the device port by the processing of the control program 30.
  • the control program 30 outputs the port information indicating the port number of the device port to the library 40 (S130).
  • the control program 30 outputs the port information in the HTTP format to the library 40. Specifically, for example, when the port number of the device port is 51000, the control program 30 outputs the port information "http: // localhost: 51000 /" to the library 40.
  • the library 40 When the library 40 receives the port information from the control program 30, the library 40 starts the browser 36 (S132). Then, the library 40 outputs the port information "http: // localhost: 51000 /" received from the control program 30 to the browser 36 (S134). As a result, the browser 36 can access the device port of the port number 51000, and outputs the request information of the EWS information to the device port by HTTP (see FIG. 4: S136).
  • the control program 30 when the control program 30 receives the request information of the EWS information in HTTP in the device port of the port number 51000, the device corresponding to the device designation information stored in association with the port information of the port number, that is, the device, that is, The request information of the EWS information is output to the MFP 50 by the USB protocol (an example of the second protocol) (S138).
  • the control program 30 transmits the request information received by HTTP to the device port to the MFP 50 by the USB protocol without converting it. That is, the request information received by the MFP 50 from the control program 30 and the request information received by the MFP 50 via HTTP, assuming that the MFP 50 receives directly from the browser 36 via HTTP, are the same request information. Therefore, the MFP 50 basically does not need to change the processing for the request information between the case of receiving from the control program 30 and the case of receiving by HTTP.
  • the MFP 50 when the MFP 50 receives the request information of the EWS information, the MFP 50 returns the EWS information to the control program 30 by the USB protocol (S140). Then, the control program 30 outputs the received EWS information to the browser 36 by HTTP (S142). As described above, in the PC 10, the browser 36 can acquire the EWS information by using HTTP through the control program 30. Then, the browser 36 displays the web page on the LCD 16 based on the acquired EWS information (S143).
  • the EWS information returned by the MFP 50 to the control program 30 and the EWS information returned by the MFP 50 by HTTP, assuming that the MFP 50 directly returns to the browser 36 by HTTP, are the same EWS information.
  • control program 30 outputs the EWS information received by the USB protocol to the browser 36 by HTTP without converting it. Therefore, the browser 36 basically does not need to change the processing for the EWS information depending on whether the browser 36 receives the information from the control program 30 or the HTTP program.
  • the control program 30 sets the device port that has received the request information of the EWS information from the browser into a acceptable state after outputting the EWS information corresponding to the request information to the browser 36 (S144).
  • the browser 36 again outputs the request information of the EWS information to the device port by HTTP (S146)
  • the device port can receive the request information of the EWS information.
  • the subsequent processes (S148 to S154) are the same as the processes (S138 to S144) described above.
  • the browser 36 can save the bookmark, when the user operation for saving the bookmark is accepted, the information for accessing the device port, that is, the device port of the port number 51000, that is, the control program 30
  • the port information acquired from is stored in the data storage area 46 (S156).
  • the browser 36 can easily access the device port by the bookmark operation and acquire the EWS information from the MFP 50 via the control program 30.
  • a device port having a port number different from the port number indicated by the bookmarked port information may be created. That is, when the control program 30 is restarted and the processes of S106 to S124 are executed, the device port is created again. At this time, if the device port with the port number 51000 is created, there is no problem, but as described above, when the control program 30 creates the device port, the port with the port number 51000 is already used.
  • the control program 30 creates a port number different from the port number 51000, for example, a port with a port number 51010 as a device port.
  • the browser 36 tries to output the request information of the EWS information by using the port information for accessing the device port of the port number 51000.
  • the browser 36 cannot access the device port of port number 51010 and cannot display the web page on the LCD 16.
  • the control program 30 when the control program 30 creates the device port (see FIG. 3: S124), the control program 30 associates the port information of the created device port with the device designation information received from the library 40 and stores the data as related information. It is stored in the area 46 (S128). Then, the control program 30 creates a device port based on the related information. This makes it possible to create a device port with the same port number as the port number indicated by the bookmarked port information, and even when the control program 30 is restarted, the browser can bookmark the web page to the LCD 16 even when the control program 30 is restarted. It becomes possible to display.
  • the control program 30 when the control program 30 is restarted by a command from the OS 38 (see FIG. 2: S100), the data storage area 46 is referred to (S102), and whether or not related information is stored in the data storage area 46 is determined. Judgment (S104). Here, since the related information is stored in the data storage area 46, it is determined that the related information is stored in the data storage area 46 (S104: YES), and the control program 30 creates a monitoring thread (S160). ). Next, the control program 30 requests the USB list information from the OS 38 (S162).
  • the USB list information is information indicating all the devices connected to the USB I / F20.
  • the OS 38 When the OS 38 receives the request for the USB list information, the OS 38 outputs the USB list information to the control program 30 (S164). Then, the control program 30 determines whether or not the device corresponding to the device designation information included in the related information is connected to the USB I / F 20 based on the received USB list information (S166). At this time, if it is determined that the device corresponding to the device designation information is not connected to the USB I / F20, the same processes (S168 to S178) as those processes (S162 to S166) are repeatedly executed.
  • control program 30 If the control program 30 cannot determine from the received USB list information alone, for example, if the USB list information does not include information for identifying an individual, the control program 30 performs communication for further inquiring information to the device connected to the PC 10 via USB. Then, based on the returned information, it may be determined whether or not the device corresponding to the device designation information is connected to the USB I / F20.
  • the control program 30 receives the device designation information to be determined from the monitoring thread (S180). Next, the control program 30 creates a thread different from the monitoring thread (S182). Subsequently, the control program 30 identifies the port information stored in the data storage area 46 in association with the received device designation information, and creates a device port having a port number indicated by the port information (S184). Then, the control program 30 makes the device port acceptable (S186).
  • the control program 30 is re-used.
  • the device port with the port number 51000 is created (S184).
  • the port information is added.
  • the corresponding device port is created (S184). Therefore, when the browser 36 is started by a user operation (see FIG. 4: S190) and the bookmark operation is executed (S192) instead of the command from the library 40, the browser 36 is loaded with the bookmarked port information.
  • the device port is accessed by using the port information for accessing the device port of the port number 51000 saved in S156, and the request information of the EWS information is output to the device port by HTTP (S136). Then, as described above, the processing after S138 is executed. As a result, even when the control program 30 is restarted, the device port can be reliably accessed by using the bookmarked port information, and the web page of the device corresponding to the device specification information can be displayed on the LCD 16. Is possible.
  • control program 30 creates a device port in response to a request for port information from the library 40 of the application 32, and outputs the port information of the device port to the library 40 of the application 32.
  • the setting tool 34 also includes the same library 42 as the library 40 of the application 32. Therefore, the library 42 of the setting tool 34 can perform the same processing as the library 40 of the application 32. That is, it is possible for the library 42 of the setting tool 34 to execute the same processing as the processing by the library 40 described above.
  • the device port is until the control program 30 outputs the EWS information to the browser 36 in response to the request information. Is not ready to accept information. That is, the control program 30 cannot receive the next request information until the reply corresponding to the request information of 1 received from the browser 36 is output to the browser 36, and the processing time may become long. Therefore, the control program 30 can set the device port to the acceptable state every time the request information is received from the browser 36.
  • the control program 30 when the browser 36 outputs the EWS information request information to the device port by HTTP (S200), the control program 30 outputs the EWS information request information to the MFP 50 by the USB protocol (S200). S202). At this time, the control program 30 adds identification information (ID: No. 1) indicating that it is the first request information to the request information of the EWS information, and the request information of the EWS information to which the identification information is given. Is output to the MFP 50. Then, the control program 30 makes the device port ready for reception without waiting for the reception of the reply to the request information (S204). Therefore, the device port receives the request information of the EWS information output second by the browser 36 without waiting for the reply to the request information of the first EWS information (S206). Then, the control program 30 outputs the request information of the EWS information to which the identification information (ID: No. 2) indicating that it is the second request information is added to the MFP 50 (S208), and the device port is ready to be accepted. (S210).
  • the MFP50 when the MFP50 receives the request information of the EWS information to which the identification information is added, the MFP50 adds the identification information added to the request information to the EWS information as a reply to the request information, and the EWS to which the identification information is added.
  • the information is output to the control program 30 by the USB protocol. Therefore, for example, the MFP 50 outputs the EWS information to which the identification information "ID: No. 1" is added to the control program 30 by the USB protocol as a reply to the request information of the first EWS information (S212). Then, the control program 30 outputs the EWS information to which the identification information "ID: No. 1" is added to the browser 36 by HTTP (S214).
  • the control program 30 since the control program 30 is in a state where the device port can be accepted in S210, the control program 30 receives the request information of the EWS information output third by the browser 36 (S216). Then, the control program 30 outputs the request information of the EWS information to which the identification information (ID: No. 3) indicating that it is the third request information is added to the MFP 50 (S218), and the device port is ready to be accepted. (S220). Further, when the MFP 50 outputs the EWS information to which the identification information "ID: No. 2" is added to the control program 30 by the USB protocol as a reply to the request information of the second EWS information (S222), the control program 30 outputs the EWS information to which the identification information "ID: No.
  • the device port is made ready to receive the request from the browser 36 without waiting for the reply of the request information output by the control program 30.
  • Information can be accepted in sequence. This makes it possible to shorten the processing time. Further, by adding the identification information to the request information of the EWS information output by the control program 30 and the EWS information, the request information of the EWS information output by the browser 36 and the EWS information for the request information can be reliably obtained. It becomes possible to correspond.
  • the browser 36 acquires the EWS information from the MFP 50 by outputting the request information of the EWS information as a device request to the device port created by the control program 30, but the control program 30 acquires the EWS information.
  • the application 32 outputs various image processing requests as device requests to the created device port, so that the MFP 50 can execute various image processing.
  • the control program 30 creates a device port (see FIG. 3: S124), makes the created device port ready for reception (S126), and then associates the port information of the device port with the device designation information.
  • the control program 30 outputs the port information to the application 32 (S300) instead of the library 40, as shown in FIG.
  • the application 32 can access the device port created by the control program 30, and outputs a copy processing request to the device port by HTTP (S302).
  • the control program 30 receives the request for copy processing by HTTP in the device port, the control program 30 performs the copy processing in the device corresponding to the device designation information stored in association with the port information of the device port, that is, the MFP 50.
  • the request is output by the USB protocol (S304).
  • the copy process is executed in the MFP 50 (S306).
  • the MFP 50 transmits information indicating that the copy process is completed to the control program 30 by the USB protocol (S308).
  • the MFP 50 transmits information indicating that the error has occurred to the control program 30 by the USB protocol (S308).
  • the control program 30 outputs the information indicating that the copy process is completed or the information indicating that an error has occurred to the application 32 by HTTP (S310).
  • the control program 30 outputs the information indicating that the copy process is completed or the information indicating that an error has occurred to the application 32, and then sets the device port in the acceptable state (S312). In this way, the application 32 can output various image processing requests as device requests to the device port created by the control program 30, so that the MFP 50 can execute various image processing.
  • the CPU 12 that executes S106 is an example of the first creation means.
  • the CPU 12 that executes S116 is an example of the receiving means and the second output means.
  • the CPU 12 that executes S124 and S184 is an example of the second creation means.
  • the CPU 12 that executes S128 is an example of the storage control means.
  • the CPU 12 that executes S130 is an example of the first public means.
  • the CPU 12 that executes S134 is an example of the second public means.
  • the CPU 12 that executes S136, S146, S200, S206, S216, and S302 is an example of the third output means.
  • the CPU 12 that executes S138, S148, S202, S208, S218, and S304 is an example of transmission means.
  • the CPU 12 that executes S140, S150, S212, S222, S226, and S308 is an example of the receiving means.
  • the CPU 12 that executes S142, S152, S214, S224, S228, and S310 is an example of the first output means.
  • the CPU 12 that executes S144, S154, S204, S210, S220, and S312 is an example of the reception state changing means.
  • the CPU 12 that executes S166, S172, and S178 is an example of the determination means.
  • the control program 30 creates a receiving port and a device port. Then, when the control program 30 receives the request for the port information from the library 40 of the application 32, the control program 30 outputs the port information of the device port to the library 40. Subsequently, when the control program 30 receives a device request to the device port, that is, a request information of EWS information or a request for copy processing by HTTP, the control program 30 sends the device request to the MFP 50 via the USB I / F20 and the USB protocol. Send with. At this time, the control program 30 receives the reply of the device request from the MFP 50 by the USB protocol via the USB I / F 20 in response to the device request being transmitted to the MFP 50.
  • a device request to the device port that is, a request information of EWS information or a request for copy processing by HTTP
  • the control program 30 sends the device request to the MFP 50 via the USB I / F20 and the USB protocol. Send with.
  • the control program 30 receives the reply of the device
  • control program 30 outputs the reply of the received device request to the output source of the device request, that is, the browser 36 or the application 32.
  • control program 30 creates a device port when it receives a request for port information from the library 40. This makes it possible to suppress the creation of unnecessary device ports.
  • the device designation information is stored in the data storage area 46
  • the control program 30 is a device corresponding to the device designation information stored in the data storage area 46, that is, a device for receiving a device request to the MFP 50.
  • Create a port This makes it possible to create a device port capable of reliably communicating with the MFP 50.
  • control program 30 determines whether or not communication is established with the device corresponding to the device designation information stored in the data storage area 46, that is, the MFP 50, and the communication with the MFP 50 is established. If it is determined, a device port for accepting a device request to the MFP 50 is created. This makes it possible to create a device port capable of reliably communicating with the MFP 50.
  • the control program 30 since the device port is in a state where it cannot receive information every time it receives a device request, the control program 30 receives a reply to the device request from the device after sending the received device request to the device. If this happens, the device port will be ready for reception. This makes it possible to accept the next device request from a browser or the like. On the other hand, after transmitting the received device request to the device, the control program 30 makes the device port ready for reception even if the reply to the device request is not received from the device. As a result, device requests can be sequentially received from a browser or the like, and processing can be shortened.
  • the port number of the reception port that accepts the request from the library 40 and the device port that accepts the request from the browser 36 are different. As a result, requests can be suitably accepted from the library 40 and the browser 36.
  • control program 30 when the control program 30 receives the request for the port information and the device designation information, the control program 30 associates the port information with the device designation information and stores it in the data storage area 46. Then, when the control program 30 receives the device request to the device port, the control program 30 transmits the device request to the device corresponding to the device designation information stored in the data storage area 46 via the USB I / F 20. This makes it possible to reliably send the device request to the device according to the device specification information.
  • the device designation information received by the control program 30 conforms to the USB protocol. This makes it possible to suitably transmit a device request to a device corresponding to the device designation information via the USB I / F20.
  • the library 40 When the library 40 receives the port information from the control program 30, the library 40 outputs the port information to the browser 36, and the browser 36 outputs the request information of the EWS information to the device port by HTTP using the port information. .. Then, the control program 30 transmits the request information of the EWS information to the MFP 50 by the USB protocol. As a result, the browser 36 can transmit the request information of the EWS information in HTTP to the MFP 50 via the USB I / F 20, and receive the EWS information from the MFP 50 via the USB I / F 20.
  • the library 40 When the library 40 receives the port information from the control program 30, the library 40 outputs the port information to the application 32, and the application 32 outputs a copy processing request to the device port by HTTP using the port information. Then, the control program 30 transmits the copy processing request to the MFP 50 by the USB protocol. As a result, the application 32 can transmit the request for the copy processing in HTTP to the MFP 50 via the USB I / F20, and execute the copy processing by the MFP 50.
  • the library 40 that transmits / receives to / from the control program 30 is modularized, and the same library 42 as the library 40 is also incorporated in the setting tool 34. Therefore, using either the application 32 or the setting tool 34, a device request in HTTP can be transmitted to the device via the USB I / F 20. As a result, it is possible to send a device request in HTTP to a device via USB I / F20 simply by incorporating a library into various application programs.
  • control program 30 is started by the processing of the OS 38, but it may be started by the user operation.
  • the library 40 is started by a user operation, but may be started by a process of the control program 30.
  • the PC 10 communicates only with the MFP 50, but when communicating with a plurality of devices, a plurality of device ports may be created corresponding to the plurality of devices. Then, when the control program 30 specifies one of the plurality of devices and receives the port information request, the control program 30 outputs the port information of the device port corresponding to the one device to the library 40.
  • the control program 30 sets the device port in the process of S184 (see FIG. 2) based on the related information stored in the data storage area 46 in the process of S128 (see FIG. 3).
  • the control program 30 may create a device port by using the information stored in the data storage area 46 by another method. Specifically, for example, when a device is attached to the PC 10 via the USB I / F 20, device information is registered in the OS 38 by PnP. Therefore, the device port may be created by using the device information registered in the OS 38. Further, for example, in an application program for executing image processing by a device such as application 32, device information of the device that executes the processing may be registered. In such a case, the device port may be created by using the device information registered in the application program. As an application program in which device information is registered, a program that does not output a request to the reception port or device port can also be adopted.
  • the present invention is applied to a technique of transmitting a device request in HTTP to a device via USB I / F20 and receiving a reply of a device request from the device via USB I / F20.
  • the present invention may be applied to the technique of receiving via the communication interface of 2. That is, the first communication protocol and the second communication protocol need not be limited to the HTTP and USB protocols.
  • FIGS. 2 to 6 are executed by the CPU 12
  • these processes are not limited to the CPU 12, and may be executed by an ASIC or another logical integrated circuit.
  • These processes may be executed by the cooperation of a CPU or the like, an ASIC, or another logical integrated circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

HTTPでのデバイスリクエストをUSBI/Fを介してMFPに送信し、そのMFPからデバイスリクエストの返信を受信する。PCでは、制御プログラムが、受付ポートとデバイスポートとを作成し、受付ポートがポート情報の要求を受け付けると、デバイスポートのポート情報が出力される。続いて、デバイスポートがデバイスリクエストをHTTPで受け付けると、制御プログラムが、デバイスリクエストをMFPに、USBI/Fを介してUSBプロトコルで送信する。この際、制御プログラムが、MFPからデバイスリクエストの返信をUSBプロトコルで受信する。そして、制御プログラム30は、受信したデバイスリクエストの返信をデバイスリクエストの出力元にHTTPで出力する。これにより、HTTPでのデバイスリクエストをUSBI/Fを介してMFPに送信し、そのMFPからデバイスリクエストの返信を受信することが可能となる。

Description

プログラム、プログラム群、および情報処理装置
 本発明は、第1通信インタフェースで用いられる第1プロトコルでのリクエストをデバイスに送信するためのプログラム等に関する。
 下記特許文献に記載されているように、近年のプリンタ、スキャナ等のデバイスには、サーバ、所謂、EW S(Embedded Web Serverの略)が組み込まれており、PC等の情報処理装置により、そのサーバにアクセスすることで、そのデバイスの状態、設定情報等を確認することが可能とされている。
特開2007-079940号公報
 PC等の情報処理装置では、第1のプロトコルでの、例えば、デバイスのEWSにアクセスする際に、HTTPでのデバイスリクエストが出力される。一方で、HTTPで用いられる通信インタフェースと異なる通信インタフェース、例えば、USBインタフェースを介してデバイスが情報処理装置に接続されている場合がある。このような場合に、HTTPでのデバイスリクエストを、USBインタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、USBインタフェースを介して受信することが望まれている。そこで、本発明は、第1プロトコルでのデバイスリクエストを、第1プロトコルで用いられる第1通信インタフェースと異なる第2通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、第2通信インタフェースを介して受信することを課題とする。
 上記課題を解決するために、実施例に開示するプログラムは、第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、前記コンピュータを、第1リクエストを受け付けるための第1ポートを作成する第1作成手段と、第2リクエストを受け付けるための第2ポートを作成する第2作成手段として機能させ、前記第2リクエストは前記第1リクエストとは異なるリクエストであり、前記第1リクエストおよび前記第2リクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記第1ポートおよび前記第2ポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、前記コンピュータを、前記第1ポートへの前記第1リクエストを受け付けた場合に、当該第1リクエストのリクエスト元のプログラムに、前記第2ポートを公開する第1公開手段と、前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、前記送信手段により送信された前記第2リクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元のプログラムに、前記第1プロトコルで出力する第1出力手段と、して機能させることを特徴とする。
 実施例に開示するプログラムは、第1ポート及び第2ポートを作成し、第1ポートに第1プロトコルでのリクエストを受け付けると、その第1ポートへのリクエストのリクエスト元のプログラムに、第2ポートを公開する。そして、プログラムは、その第2ポートに、第1プロトコルでのデバイスリクエストを受け付けると、そのデバイスリクエストをデバイスに第2通信インタフェースを介して、第2プロトコルで送信する。続いて、プログラムは、そのデバイスリクエストの返信を第2プロトコルで受信すると、そのデバイスリクエストの返信を、デバイスリクエストのリクエスト元のプログラムに出力する。これにより、第1プロトコルでのデバイスリクエストを、第2通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、第2通信インタフェースを介して受信することができる。
通信システム1のブロック図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。
 以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明する実施形態は、本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更できる。
 図1は、本実施形態に係る通信システム1のブロック図である。図1に示す通信システム1は、PC(情報処理装置の一例)10、MFP(デバイスの一例)50、MFP56を備える。MFP50,56は、スキャン処理,印刷処理等の各種処理を実行可能なデバイスである。また、MFP50には、EWS(サーバの一例)52が組み込まれており、MFP56には、EWS58が組み込まれている。EWS52,58は、ウェブサーバと同等の機能を有しており、EWS52,58には、MFP50,56の状態を示す情報,設定情報などに関するHTMLのウェブページを示す情報(以下、「EWS情報」と記載する)(サーバ情報の一例)が蓄積されている。
 PC10は、CPU(コンピュータの一例)12、メモリ14、LCD16、入力I/F18、ネットワークI/F(第1通信インタフェースの一例)19、USBI/F(第2通信インタフェースの一例)20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
 CPU12は、メモリ14内の制御プログラム(プログラム及び第1プログラムの一例)30,アプリケーション(別プログラム及び第2プログラムの一例)32,設定ツール(別プログラム及び第3プログラムの一例)34,ブラウザ(ブラウザの一例)36,OS38に従って処理を実行する。制御プログラム30は、MFP50のEWS52からサーバ情報を取得するためのアプリケーションプログラムである。また、アプリケーション32は、MFP50を用いて各種処理を実行するためのアプリケーションプログラムである。また、設定ツール34は、MFP50,56のEWS52,58に蓄積されているEWS情報に基づいて各種設定を行うためのアプリケーションプログラムである。なお、アプリケーション32は、ライブラリ(モジュールプログラムの一例)40を含んでおり、設定ツール34は、ライブラリ(モジュールプログラムの一例)42を含んでいる。ライブラリ40とライブラリ42とは、同じアプリケーションプログラムであり、制御プログラム30の処理によりMFP50のEWS52からサーバ情報を取得する際に用いられる。また、ブラウザ36は、ネットワークI/F19を介してHTTPを用いてHTML形式のデータを取得し、ウェブページをLCD16に表示するためのアプリケーションプログラムである。また、OS38は、制御プログラム30等に利用される基本的な機能を提供するプログラムである。なお、以下の説明では、制御プログラム30等を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「制御プログラム30が」という記載は、「制御プログラム30を実行するCPU12が」ということを意味する場合がある。
 また、メモリ14は、データ記憶領域(メモリの一例)46を備える。データ記憶領域46は、制御プログラム30等の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリ、HDD、PC10に着脱されるUSBメモリ等の可搬記憶媒体、CPU12が備えるバッファなどが組み合わされて構成されている。
 なお、メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。
コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
 また、LCD16は、PC10の各種情報を表示する。なお、本願のディスプレイは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力I/F18は、キーボード、マウス等を含み、ユーザ操作を入力するためのインタフェースである。なお、入力I/F18は、キーボード等に限らず、LCD16の表示画面に重畳された膜状のタッチセンサでも良い。
 ネットワークI/F19は、HTTP(第1プロトコルの一例)を用いてデバイスと通信を行うためのものであり、ネットワーク60を介してMFP56と通信可能とされている。また、USBI/F20は、USBプロトコル(第2プロトコルの一例)を用いてデバイスと通信を行うためのものであり、MFP50と通信可能とされている。
 なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」「設定 」等の処理は、CPU12の処理を表している。CPU12による処理は、OS38を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
 通信システム1では、上述した構成に従って、PC10とネットワークI/F19を介して通信可能とされたMFP56から、ブラウザ36がEWS情報を取得し、EWS情報に基づいてウェブページをLCD16に表示することが可能とされている。このような処理は、従来から行われている処理であり、ブラウザ36がHTTPを用いることで好適にMFP56からEWS情報を取得することができる。一方で、PC10とUSBI/F20を介して通信可能とされたMFP50、つまり、USB接続されたMFP50から、ブラウザ36は、従来の手法ではHTTPを用いてEWS情報を取得することはできなかったが、通信システム1では、USB接続されたMFP50から、ブラウザ36がHTTPを用いてEWS情報を取得することが可能とされている。以下に、USB接続されたMFP50から、ブラウザ36がHTTPを用いてEWS情報を取得する際の制御プログラム30等の処理について、図2乃至図4に示すシーケンス図を用いて、詳しく説明する。
 詳しくは、PC10への電源投入に伴って、OS38の処理により制御プログラム30が起動する(図2参照:S100)。そして、制御プログラム30は、データ記憶領域46を参照し(S102)、データ記憶領域46に関連情報が記憶されているか否かを判断する(S104)。関連情報は、EWS情報の取得先を示すデバイス及び、そのデバイスとの通信を行うためのデバイスポートを示す情報である。関連情報については、後に詳しく説明する。まず、ここでは、関連情報が、まだデータ記憶領域46に記憶されていない場合を説明する。制御プログラム30は、データ記憶領域46に関連情報は記憶されていないと判断し(S104:NO)、制御プログラム30は、受付ポート(第1ポートの一例)を作成する(S106)。そして、制御プログラム30は、その受付ポートを「Accept」で待ち受け状態とする(S108)。つまり、制御プログラム30は、受付ポートを、情報を受け付け可能な状態(以下、「受付可能状態」と記載する)とする。なお、受付ポートのポート番号は、HTTPに従ったものであり、50000とされている。
そして、制御プログラム30は、その受付ポートによりアプリケーション32のライブラリ40と通信を行う。制御プログラム30は、例えば、既知のSocket方式に従ってポートの作成、ポートの状態の変更、ポートの削除などを行う。
 このように、PC10では、電源投入に伴って、制御プログラム30が起動し、制御プログラム30の処理により、アプリケーション32と通信を行うための受付ポートが作成される。一方で、アプリケーション32は、ユーザ操作により起動し、アプリケーション32が起動すると(図3参照:S110)、アプリケーション32に含まれるライブラリ40が、ポート番号50000の受付ポートに接続を確認するための情報を出力する(S112)。なお、ライブラリ40には、通信対象のポートのポート番号が50000であることがプログラミングされている。そして、制御プログラム30は、受付ポートに接続確認の情報が入力されると、「OK」をライブラリ40に返信する(S114)。なお、受付ポートに接続確認の情報が入力されない場合には、「NG」がライブラリ40に返信される。ちなみに、制御プログラム30は、ポート番号50000のデバイスポートを作成することができない場合に(例えば、ポート番号50000のポートが、他のプログラムによって既に使用されている場合に)、受付ポート決定の所定のルールに従って、そのポート番号50000と異なるポート番号を受付ポートのポート番号として決定し、そのポート番号のポートを受付ポートとして作成する。この場合、ライブラリ40がポート番号50000のポートに接続確認の情報を入力しようとしても、入力できない。そこで、ライブラリ40にも、受付ポート決定の所定のルールがプログラミングされている。接続確認の情報を入力できなかった場合、ライブラリ40は、ルールに従って、異なるポート番号のポートに接続確認の情報などを入力する。ライブラリ40は、接続確認の情報を入力できたポート番号を、受付ポートの番号として使用する。便宜上、本実施例ではポート番号50000のポートを受付ポートとして説明を続ける。
 そして、ライブラリ40は、「OK」を受け付けると、ポート番号50000の受付ポートに、ポート情報の要求を出力する。この際、ライブラリ40は、ポート情報の要求とともに、デバイス指定情報も受付ポートに出力する。デバイス指定情報は、EWS情報の取得先のデバイスを指定する情報であり、ここでは、MFP50を指定するデバイス指定情報が受付ポートに出力される。また、デバイス指定情報は、USBプロトコルで用いられる文字列の情報とされている。具体的には、例えば、デバイス指定情報として「VID/PID」が受付ポートに出力される。ちなみに、VIDは、VenderID(メーカ番号)であり、PIDは、ProductID(製品番号)である。このため、「VID/PID」により、デバイスの機種(モデル)を特定することができる。なお、1台のPCに、複数の同じ機種のプリンタをUSBで接続して利用する形態は一般的ではないと考えられる。そのため、本願実施例ではデバイス指定情報である「VID/PID」が、デバイスの個体を識別する情報としても用いられる。もちろん、「VID/PID」以外の情報、例えばシリアル番号などを、デバイスの個体を識別する情報として用いることとし、「VID/PID」と、デバイスの個体を識別する情報とを合わせてデバイス指定情報としてもよい。
 そして、制御プログラム30は、受付ポートがポート情報の要求を受け付けると、その要求に含まれるデバイス指定情報により指定されるデバイス(以下、「対象デバイス」と記載する場合がある)の確認要求をOS38に出力する(S118)。この確認要求は、対象デバイスがHTTPに対応するデバイスであるか否かを確認するためのものであり、OS38は、対象デバイスがHTTPに対応するデバイスであれば、「true」を制御プログラム30に出力する(S120)。一方、OS38は、対象デバイスがHTTPに対応するデバイスでなければ、「false」を制御プログラム30に出力する(S120)。OS38は、例えば、レジストリと呼ばれる領域にUSBデバイスの情報を記憶しており、S118では、その情報の出力をOSに要求している。USBデバイスの情報は、PC10にUSB接続したデバイスから取得した情報であってもよいし、PC10のデータ記憶領域46や、デバイスメーカのサーバから取得した情報であってもよい。対象デバイスがHTTPに対応するデバイスであるか否かを示す情報は「true」「false」以外の情報であってもよい。また、ライブラリ40が出力するVID/PIDに基づいて、機種で判断してもよく、OS38からモデル情報を取得して判断してもよい。さらに言えば、デバイスからモデル情報を受け取って判断してもよい。
 この際、制御プログラム30は、「true」をOS38から受け付けると、スレッドを作成する(S122)。そして、制御プログラム30は、デバイスポート(第2ポートの一例)を作成し(S124)、そのデバイスポートを「Accept」で待ち受け状態とする(S126)。つまり、制御プログラム30は、デバイスポートを受付可能状態とする。なお、デバイスポートのポート番号も、HTTPに従ったものであり、51000とされている。そして、制御プログラム30は、そのデバイスポートによりブラウザ36と通信を行う。ちなみに、ポート番号51000のポートが、既に使用されており、制御プログラム30が、ポート番号51000のデバイスポートを作成することができない場合に、デバイスポート決定の所定のルールに従って、そのポート番号51000と異なるポート番号のポートをデバイスポートとして作成する。便宜上、本実施例ではポート番号51000のポートを受付ポートとして説明を続ける。
 そして、制御プログラム30は、作成したデバイスポートのポート番号を示す情報(以下、「ポート情報」と記載する)と、S116で受け付けているデバイス指定情報とを関連付けて、データ記憶領域46に記憶する(S128)。なお、ここで記憶されるポート情報とデバイス指定情報とが、先に説明した関連情報となる。つまり、制御プログラム30の処理によりデバイスポートが作成されることで、関連情報がデータ記憶領域46に記憶される。そして、制御プログラム30は、デバイスポートのポート番号を示すポート情報をライブラリ40に出力する(S130)。この際、制御プログラム30は、HTTP形式のポート情報をライブラリ40に出力する。具体的には、例えば、デバイスポートのポート番号が51000である場合に、制御プログラム30は、ポート情報「http://localhost:51000/」をライブラリ40に出力する。
 ライブラリ40は、制御プログラム30からポート情報を受け付けると、ブラウザ36を起動する(S132)。そして、ライブラリ40は、制御プログラム30から受け付けたポート情報「http://localhost:51000/」をブラウザ36に出力する(S134)。これにより、ブラウザ36は、ポート番号51000のデバイスポートにアクセス可能となり、そのデバイスポートにEWS情報の要求情報をHTTPで出力する(図4参照:S136)。この際、制御プログラム30は、ポート番号51000のデバイスポートにHTTPでのEWS情報の要求情報を受け付けると、そのポート番号のポート情報と関連付けて記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50に、EWS情報の要求情報をUSBプロトコル(第2プロトコルの一例)で出力する(S138)。このとき、制御プログラム30は、デバイスポートにHTTPで受け取った要求情報を変換することなく、USBプロトコルでMFP50に送信する。すなわち、MFP50が制御プログラム30から受信する要求情報と、仮に、MFP50がブラウザ36から直接HTTPで受信するとして、MFP50がHTTPで受信する要求情報とは、同じ要求情報である。したがって、MFP50は、制御プログラム30から受信する場合と、HTTPで受信する場合とで、要求情報に対する処理を基本的には変更する必要がない。
 次に、MFP50は、EWS情報の要求情報を受け付けると、EWS情報を制御プログラム30にUSBプロトコルで返信する(S140)。そして、制御プログラム30は、受け付けたEWS情報をブラウザ36にHTTPで出力する(S142)。このように、PC10では、制御プログラム30を介することで、ブラウザ36がHTTPを用いてEWS情報を取得することが可能とされている。そして、ブラウザ36は、取得したEWS情報に基づいてウェブページをLCD16に表示する(S143)。なお、MFP50が制御プログラム30に返信するEWS情報と、仮に、MFP50がブラウザ36に直接HTTPで返信するとして、MFP50がHTTPで返信するEWS情報とは、同じEWS情報である。また、制御プログラム30は、USBプロトコルで受信したEWS情報を変換することなく、HTTPでブラウザ36に出力する。したがって、ブラウザ36は、制御プログラム30から受け取る場合と、HTTPで受信する場合とで、EWS情報に対する処理を基本的には変更する必要がない。
 なお、デバイスポートは情報を受け付けると、次の情報を受け付けることができない状態、つまり、次の情報の受付が不能な状態となる。このため、制御プログラム30は、ブラウザからEWS情報の要求情報を受け付けたデバイスポートを、その要求情報に応じたEWS情報をブラウザ36に出力した後に受付可能状態とする(S144)。これにより、ブラウザ36が、再度、そのデバイスポートにEWS情報の要求情報をHTTPで出力した場合(S146)において、そのデバイスポートが、EWS情報の要求情報を受け付けることができる。なお、以降の処理(S148~S154)は、先に説明した処理(S138~S144)と同じである。なお、ブラウザ36は、ブックマーク保存を行うことができるため、ブックマーク保存のユーザ操作を受け付けた場合に、そのデバイスポート、つまり、ポート番号51000のデバイスポートにアクセスするための情報、つまり、制御プログラム30から取得したポート情報をデータ記憶領域46に保存する(S156)。
 このように、ポート情報がブラウザ36によりブックマーク保存されると、ブックマーク操作により、ブラウザ36は容易にデバイスポートにアクセスし、制御プログラム30を介してMFP50からEWS情報を取得することが可能となる。ただし、例えば、制御プログラム30が再起動されると、ブックマーク保存されたポート情報が示すポート番号と異なるポート番号のデバイスポートが作成される場合がある。つまり、制御プログラム30が再起動し、S106~S124の処理を実行すると、再度、デバイスポートが作成される。この際、ポート番号51000のデバイスポートが作成されれば、問題ないが、上述したように、制御プログラム30がデバイスポートを作成する際に、既に、ポート番号51000のポートが使用されている場合に、制御プログラム30は、ポート番号51000と異なるポート番号、例えば、ポート番号51010のポートをデバイスポートとして作成する。このような場合に、ブックマーク操作が実行されると、ブラウザ36は、ポート番号51000のデバイスポートにアクセスするためのポート情報を利用して、EWS情報の要求情報を出力しようとするが、当然、ブラウザ36は、ポート番号51010のデバイスポートにアクセスできず、ウェブページをLCD16に表示することはできない。
 このため、制御プログラム30は、デバイスポートを作成した際(図3参照:S124)に、作成したデバイスポートのポート情報と、ライブラリ40から受け付けたデバイス指定情報とを関連付けて、関連情報としてデータ記憶領域46に記憶している(S128)。そして、制御プログラム30は、その関連情報に基づいてデバイスポートを作成する。これにより、ブックマーク保存されたポート情報が示すポート番号と同じポート番号のデバイスポートを作成することが可能となり、制御プログラム30が再起動した場合などにおいても、ブラウザがブックマーク操作によりウェブページをLCD16に表示することが可能となる。
 詳しくは、制御プログラム30は、OS38からの指令により再起動すると(図2参照:S100)、データ記憶領域46を参照し(S102)、データ記憶領域46に関連情報が記憶されているか否かを判断する(S104)。ここでは、関連情報はデータ記憶領域46に記憶されているため、データ記憶領域46に関連情報が記憶されていると判断され(S104:YES)、制御プログラム30は、監視スレッドを作成する(S160)。次に、制御プログラム30は、USB一覧情報をOS38に要求する(S162)。USB一覧情報は、USBI/F20に接続されている全てのデバイスを示す情報である。
OS38は、USB一覧情報の要求を受け付けると、USB一覧情報を制御プログラム30に出力する(S164)。そして、制御プログラム30は、受け付けたUSB一覧情報に基づいて、関連情報に含まれるデバイス指定情報に応じたデバイスが、USBI/F20に接続されているか否かを判断する(S166)。この際、デバイス指定情報に応じたデバイスが、USBI/F20に接続されていないと判断されると、それらの処理(S162~S166)と同じ処理(S168~S178)が繰り返し実行される。なお、制御プログラム30は受け付けたUSB一覧情報のみでは判断できない場合、例えば、個体を識別する情報がUSB一覧情報に含まれていない場合には、PC10にUSB接続したデバイスにさらに情報を問い合わせる通信を行い、返信された情報に基づいて、デバイス指定情報に応じたデバイスが、USBI/F20に接続されているか否かを判断してもよい。
 そして、デバイス指定情報に応じたデバイスが、USBI/F20に接続されたと判断されると(S178)、制御プログラム30は、判断の対象とされたデバイス指定情報を監視スレッドから受け付ける(S180)。次に、制御プログラム30は、監視スレッドと異なるスレッドを作成する(S182)。続いて、制御プログラム30は、受け付けたデバイス指定情報と関連付けてデータ記憶領域46に記憶されているポート情報を特定し、そのポート情報が示すポート番号のデバイスポートを作成する(S184)。そして、制御プログラム30は、そのデバイスポートを受付可能状態とする(S186)。
 このように、PC10では、S124において、例えば、ポート番号51000のデバイスポートが作成され、S128において、ポート番号51000を示すポート情報がデータ記憶領域46に記憶されている場合に、制御プログラム30の再起動時において、そのポート番号51000のデバイスポートが作成される(S184)。さらに言えば、そのポート情報と関連付けてデータ記憶領域46に記憶されているデバイス指定情報に応じたデバイスが、USBI/F20に接続されていることが確認された後に(S178)、そのポート情報に応じたデバイスポートが作成される(S184)。このため、ブラウザ36が、ライブラリ40からの指令でなく、ユーザ操作により起動し(図4参照:S190)、ブックマーク操作が実行された場合に(S192)、ブラウザ36は、ブックマーク保存されたポート情報、つまり、S156で保存されたポート番号51000のデバイスポートにアクセスするためのポート情報を利用してデバイスポートにアクセスし、そのデバイスポートにEWS情報の要求情報をHTTPで出力する(S136)。そして、先に説明したように、S138以降の処理が実行される。これにより、制御プログラム30が再起動した場合などにおいても、ブックマーク保存されたポート情報を利用して確実にデバイスポートにアクセスするとともに、デバイス指定情報に応じたデバイスのウェブページをLCD16に表示することが可能となる。
 なお、上記説明では、アプリケーション32のライブラリ40からのポート情報の要求に応じて、制御プログラム30がデバイスポートを作成し、そのデバイスポートのポート情報をアプリケーション32のライブラリ40に出力しているが、設定ツール34にも、アプリケーション32のライブラリ40と同じライブラリ42が含まれている。このため、設定ツール34のライブラリ42も、アプリケーション32のライブラリ40と同様の処理を行うことができる。つまり、上述したライブラリ40による処理と同じ処理を、設定ツール34のライブラリ42も実行することが可能とされている。
 また、上記実施形態では、図4に示すように、ブラウザ36がEWS情報の要求情報を出力した後に、制御プログラム30が、その要求情報に応じてEWS情報をブラウザ36に出力するまで、デバイスポートは、情報を受付可能な状態とされない。つまり、制御プログラム30は、ブラウザ36から受け付けた1の要求情報に応じた返信を、ブラウザ36に出力するまで、次の要求情報を受け付けることができず、処理時間が長くなる虞がある。そこで、制御プログラム30は、ブラウザ36から要求情報を受け付ける毎に、デバイスポートを受付可能状態とすることも可能である。
 詳しくは、図5に示すように、ブラウザ36が、デバイスポートにEWS情報の要求情報をHTTPで出力すると(S200)、制御プログラム30は、EWS情報の要求情報をUSBプロトコルでMFP50に出力する(S202)。この際、制御プログラム30は、EWS情報の要求情報に、1番目の要求情報であることを示す識別情報(ID:No.1)を付与し、その識別情報が付与されたEWS情報の要求情報をMFP50に出力する。そして、制御プログラム30は、その要求情報に対する返信の受け付けを待つことなく、デバイスポートを受付可能状態とする(S204)。このため、デバイスポートは、1番目のEWS情報の要求情報に対する返信を待つことなく、ブラウザ36が2番目に出力したEWS情報の要求情報を受け付ける(S206)。そして、制御プログラム30は、2番目の要求情報であることを示す識別情報(ID:No.2)を付与したEWS情報の要求情報をMFP50に出力し(S208)、デバイスポートを受付可能状態とする(S210)。
 また、MFP50は、識別情報が付与されたEWS情報の要求情報を受け付けると、その要求情報に対する返信として、その要求情報に付与された識別情報をEWS情報に付与し、識別情報が付与されたEWS情報をUSBプロトコルで、制御プログラム30に出力する。このため、MFP50は、例えば、1番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.1」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力する(S212)。そして、制御プログラム30は、識別情報「ID:No.1」が付与されたEWS情報をHTTPでブラウザ36に出力する(S214)。
 また、制御プログラム30は、S210でデバイスポートを受付可能状態としているため、ブラウザ36が3番目に出力したEWS情報の要求情報を受け付ける(S216)。
そして、制御プログラム30は、3番目の要求情報であることを示す識別情報(ID:No.3)を付与したEWS情報の要求情報をMFP50に出力し(S218)、デバイスポートを受付可能状態とする(S220)。また、MFP50が、例えば、2番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.2」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力すると(S222)、制御プログラム30は、識別情報「ID:No.2」が付与されたEWS情報をHTTPでブラウザ36に出力する(S224)。また、MFP50が、例えば、3番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.3」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力すると(S226)、制御プログラム30は、識別情報「ID:No.3」が付与されたEWS情報をHTTPでブラウザ36に出力する(S228)。
 このように、制御プログラム30が、ブラウザ36から要求情報を受け付ける毎に、デバイスポートを受付可能状態とすることで、制御プログラム30が出力した要求情報の返信を待つことなく、ブラウザ36からの要求情報を順次、受け付けることが可能となる。
これにより、処理時間の短縮を図ることが可能となる。また、制御プログラム30が出力するEWS情報の要求情報及び、EWS情報に、識別情報が付与されることで、ブラウザ36が出力したEWS情報の要求情報と、その要求情報に対するEWS情報とを確実に対応させることが可能となる。
 また、上記実施形態では、制御プログラム30が作成したデバイスポートに、ブラウザ36がデバイスリクエストとして、EWS情報の要求情報を出力することで、MFP50からEWS情報を取得しているが、制御プログラム30が作成したデバイスポートに、アプリケーション32がデバイスリクエストとして、各種画像処理の要求を出力することで、MFP50に各種画像処理を実行させることができる。
 詳しくは、制御プログラム30が、デバイスポートを作成し(図3参照:S124)、作成したデバイスポートを受付可能状態とした後に(S126)、そのデバイスポートのポート情報と、デバイス指定情報とを関連付けてデータ記憶領域46に記憶すると(S128)、制御プログラム30は、ライブラリ40でなく、図6に示すように、アプリケーション32にポート情報を出力する(S300)。これにより、アプリケーション32は、制御プログラム30が作成したデバイスポートにアクセス可能となり、そのデバイスポートにコピー処理の要求をHTTPで出力する(S302)。そして、制御プログラム30は、デバイスポートにHTTPでのコピー処理の要求を受け付けると、そのデバイスポートのポート情報と関連付けて記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50に、コピー処理の要求をUSBプロトコルで出力する(S304)。これにより、MFP50においてコピー処理が実行される(S306)。この際、MFP50は、コピー処理を完了させると、制御プログラム30にコピー処理が完了したことを示す情報をUSBプロトコルで送信する(S308)。また、MFP50は、コピー処理にエラーが発生した場合には、エラーが発生したことを示す情報を制御プログラム30にUSBプロトコルで送信する(S308)。そして、制御プログラム30は、コピー処理が完了したことを示す情報、若しくは、エラーが発生したことを示す情報を、HTTPでアプリケーション32に出力する(S310)。なお、制御プログラム30は、コピー処理が完了したことを示す情報、若しくは、エラーが発生したことを示す情報をアプリケーション32に出力した後に、デバイスポートを受付可能状態とする(S312)。このように、制御プログラム30が作成したデバイスポートに、アプリケーション32がデバイスリクエストとして、各種画像処理の要求を出力することで、MFP50に各種画像処理を実行させることもできる。
 なお、S106を実行するCPU12は、第1作成手段の一例である。S116を実行するCPU12は、受付手段及び第2出力手段の一例である。S124,S184を実行するCPU12は、第2作成手段の一例である。S128を実行するCPU12は、記憶制御手段の一例である。S130を実行するCPU12は、第1公開手段の一例である。
S134を実行するCPU12は、第2公開手段の一例である。S136,S146,S200,S206,S216,S302を実行するCPU12は、第3出力手段の一例である。S138,S148,S202,S208,S218,S304を実行するCPU12は、送信手段の一例である。S140,S150,S212,S222,S226,S308を実行するCPU12は、受信手段の一例である。S142,S152,S214,S224,S228,S310を実行するCPU12は、第1出力手段の一例である。S144,S154,S204,S210,S220,S312を実行するCPU12は、受付状態変更手段の一例である。S166,S172,S178を実行するCPU12は、判断手段の一例である。
 上記した実施形態によれば、以下の効果を奏する。
 上記実施形態では、制御プログラム30が、受け付けポートを作成するとともに、デバイスポートを作成する。そして、制御プログラム30は、アプリケーション32のライブラリ40からポート情報の要求を受け付けると、デバイスポートのポート情報をライブラリ40に出力する。続いて、制御プログラム30は、デバイスポートへのデバイスリクエストつまり、EWS情報の要求情報、若しくは、コピー処理の要求をHTTPで受け付けると、そのデバイスリクエストをMFP50に、USBI/F20を介して、USBプロトコルで送信する。この際、制御プログラム30は、MFP50にデバイスリクエストを送信したことに応じて、MFP50からデバイスリクエストの返信を、USBI/F20を介して、USBプロトコルで受信する。そして、制御プログラム30は、受信したデバイスリクエストの返信を、デバイスリクエストの出力元、つまり、ブラウザ36若しくは、アプリケーション32に出力する。これにより、HTTPでのデバイスリクエストをUSBI/F20を介してMFP50に送信し、そのMFP50からデバイスリクエストの返信をUSBI/F20を介して受信することが可能となる。
 また、制御プログラム30は、ライブラリ40からポート情報の要求を受け付けると、デバイスポートを作成する。これにより、不必要なデバイスポートの作成を抑制することが可能となる。
 また、デバイス指定情報がデータ記憶領域46に記憶されており、制御プログラム30は、データ記憶領域46に記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50へのデバイスリクエストを受け付けるためのデバイスポートを作成する。これにより、MFP50と確実に通信することが可能なデバイスポートを作成することができる。
 また、制御プログラム30は、データ記憶領域46に記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50と通信が確立しているか否かを判断しており、MFP50と通信が確立していると判断された場合に、MFP50へのデバイスリクエストを受け付けるためのデバイスポートを作成する。これにより、MFP50と確実に通信することが可能なデバイスポートを作成することができる。
 また、デバイスポートはデバイスリクエストを受け付ける毎に、情報の受け付けが不能な状態とされているため、制御プログラム30は、受け付けたデバイスリクエストをデバイスに送信した後に、そのデバイスリクエストに対する返信をデバイスから受信した場合に、デバイスポートを受付可能状態とする。これにより、ブラウザ等から次のデバイスリクエストを受け付けることが可能となる。一方で、制御プログラム30は、受け付けたデバイスリクエストをデバイスに送信した後に、そのデバイスリクエストに対する返信をデバイスから受信しなくても、デバイスポートを受付可能状態とする。これにより、ブラウザ等からデバイスリクエストを順次、受け付けることが可能となり、処理の短縮を図ることが可能となる。
 また、ライブラリ40からのリクエストを受け付ける受付ポートと、ブラウザ36からのリクエストを受け付けるデバイスポートとは、ポート番号が異なっている。これにより、ライブラリ40及び、ブラウザ36から好適にリクエストを受け付けることができる。
 また、制御プログラム30は、ポート情報の要求とデバイス指定情報とを受け付けると、そのポート情報とデバイス指定情報とを関連付けてデータ記憶領域46に記憶する。そして、制御プログラム30は、デバイスポートへのデバイスリクエストを受け付けると、そのデバイスリクエストを、データ記憶領域46に記憶されているデバイス指定情報に応じたデバイスにUSBI/F20を介して送信する。これにより、デバイス指定情報に応じたデバイスにデバイスリクエストを確実に送信することが可能となる。なお、制御プログラム30が受け付けるデバイス指定情報はUSBプロトコルに従ったものである。これにより、デバイス指定情報に応じたデバイスに、USBI/F20を介して好適にデバイスリクエストを送信することが可能となる。
 また、ライブラリ40は、制御プログラム30からポート情報を受け付けると、そのポート情報をブラウザ36に出力し、ブラウザ36は、そのポート情報を用いて、デバイスポートにEWS情報の要求情報をHTTPで出力する。そして、制御プログラム30が、そのEWS情報の要求情報をMFP50にUSBプロトコルで送信する。これにより、ブラウザ36は、HTTPでのEWS情報の要求情報をUSBI/F20を介してMFP50に送信し、そのMFP50からEWS情報をUSBI/F20を介して受信することが可能となる。
 また、ライブラリ40は、制御プログラム30からポート情報を受け付けると、そのポート情報をアプリケーション32に出力し、アプリケーション32は、そのポート情報を用いて、デバイスポートにコピー処理の要求をHTTPで出力する。そして、制御プログラム30が、そのコピー処理の要求をMFP50にUSBプロトコルで送信する。これにより、アプリケーション32は、HTTPでのコピー処理の要求をUSBI/F20を介してMFP50に送信し、MFP50によりコピー処理を実行させることが可能となる。
 また、制御プログラム30と送受信を行うライブラリ40は、モジュール化されており、そのライブラリ40と同じライブラリ42が設定ツール34にも組み込まれている。このため、アプリケーション32と設定ツール34との何れを用いても、HTTPでのデバイスリクエストをUSBI/F20を介してデバイスに送信することができる。これにより、種々のアプリケーションプログラムに、ライブラリを組み込むだけで、HTTPでのデバイスリクエストをUSBI/F20を介してデバイスに送信することが可能となる。
 また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、制御プログラム30が、OS38の処理により起動しているが、ユーザ操作により起動してもよい。また、上記実施形態では、ライブラリ40は、ユーザ操作により起動しているが、制御プログラム30の処理により起動してもよい。
 また、上記実施形態では、PC10がMFP50のみと通信を行っているが、複数のデバイスと通信を行う場合に、それら複数のデバイスに対応して複数のデバイスポートが作成されてもよい。そして、制御プログラム30は、それら複数のデバイスのうちの1のデバイスを指定してポート情報の要求を受け付けた場合に、その1のデバイスに対応するデバイスポートのポート情報をライブラリ40に出力する。
 また、上記実施形態では、制御プログラム30がS128(図3参照)の処理においてデータ記憶領域46に記憶させた関連情報に基づいて、制御プログラム30がS184(図2参照)の処理においてデバイスポートを作成しているが、別手法によりデータ記憶領域46に記憶された情報を利用して、制御プログラム30がデバイスポートを作成してもよい。具体的には、例えば、PC10にUSBI/F20を介してデバイスが装着されると、PnPによりデバイス情報がOS38に登録される。そこで、OS38に登録されたデバイス情報を利用してデバイスポートが作成されてもよい。また、例えば、アプリケーション32のようにデバイスによる画像処理を実行させるためのアプリケーションプログラムでは、処理を実行するデバイスのデバイス情報が登録されている場合がある。このような場合に、そのアプリケーションプログラムに登録されているデバイス情報を利用してデバイスポートが作成されてもよい。なお、デバイス情報が登録されるアプリケーションプログラムとして、受付ポートやデバイスポートにリクエストを出力しないものも採用することができる。
 また、上記実施形態では、HTTPでのデバイスリクエストをUSBI/F20を介してデバイスに送信し、そのデバイスからデバイスリクエストの返信をUSBI/F20を介して受信する技術に、本発明が適用されているが、第1の通信プロトコルでのデバイスリクエストを、その第1のプロトコルに応じた第1の通信インタフェースと異なる第2の通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を第2の通信インタフェースを介して受信する技術に、本発明が適用されてもよい。
つまり、第1の通信プロトコル及び第2の通信プロトコルが、HTTP及びUSBプロトコルに限定される必要はない。
 また、上記実施形態では、CPU12によって図2~図6に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。
 10:PC、12:CPU、20:USBI/F、30:制御プログラム、32:アプリケーション、36:ブラウザ、40:ライブラリ、50:MFP、52:EWS
 

Claims (22)

  1.  第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、
     前記コンピュータを、
     第1リクエストを受け付けるための第1ポートを作成する第1作成手段と、
     第2リクエストを受け付けるための第2ポートを作成する第2作成手段として機能させ、前記第2リクエストは前記第1リクエストとは異なるリクエストであり、前記第1リクエストおよび前記第2リクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記第1ポートおよび前記第2ポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
     前記コンピュータを、
     前記第1ポートへの前記第1リクエストを受け付けた場合に、当該第1リクエストのリクエスト元のプログラムに、前記第2ポートを公開する第1公開手段と、
     前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
     前記送信手段により送信された前記第2リクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
     前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元のプログラムに、前記第1プロトコルで出力する第1出力手段と、
     して機能させることを特徴とするプログラム。
  2.  前記第1作成手段により作成される第1ポートのポート番号と、前記第2作成手段により作成される第2ポートのポート番号とは、異なることを特徴とする請求項1に記載のプログラム。
  3.  前記第1プロトコルは、HTTPであり、
     前記ポート番号は、HTTPのポート番号であることを特徴とする請求項2に記載のプログラム。
  4.  前記コンピュータを、
     前記第1ポートへの前記第1リクエストとともに、デバイスを指定するデバイス指定情報を受け付ける受付手段と、
     前記受付手段が受け付けたデバイス指定情報と、前記第2作成手段により作成された第2ポートと関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
     して機能させ、
     前記送信手段は、
     前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2ポートと関連付けて前記メモリに記憶されているデバイス指定情報により指定されるデバイスに前記第2リクエストを、前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とする請求項1乃至3の何れか1項に記載のプログラム。
  5.  前記受付手段は、
     前記第1ポートへの前記第1リクエストとともに、第2プロトコルでのデバイス指定情報を受け付けることを特徴とする請求項4に記載のプログラム。
  6.  前記第2リクエストは、前記デバイスに組み込まれたサーバに記憶されているサーバ情報の返信を要求するものであることを特徴とする請求項1乃至5の何れか1項に記載のプログラム。
  7.  前記第2リクエストは、前記デバイスによる処理実行を要求するものであることを特徴とする請求項1乃至5の何れか1項に記載のプログラム。
  8.  前記第2作成手段は、
     前記第1ポートへの前記第1リクエストを受け付けた場合に、前記第2ポートを作成することを特徴とする請求項1乃至7の何れか1項に記載のプログラム。
  9.  前記情報処理装置は、デバイスを指定するデバイス指定情報を記憶するメモリを備え、 前記第2作成手段は、
     前記メモリに記憶されているデバイス指定情報により指定されるデバイスに対応する第2ポートを作成することを特徴とする請求項1乃至7の何れか1項に記載のプログラム。
  10.  前記第2作成手段は、
     前記情報処理装置のオペレーティングシステムが備える、前記第2通信インタフェースでの通信対象として登録されたデバイスを記憶する前記メモリを参照し、そのデバイスに対応する第2ポートを作成することを特徴とする請求項9に記載のプログラム。
  11.  前記第2作成手段は、
     前記プログラムと異なるプログラムにより前記第2通信インタフェースでの通信対象として登録されたデバイスを記憶する前記メモリを参照し、そのデバイスに対応する第2ポートを作成することを特徴とする請求項9に記載のプログラム。
  12.  前記メモリは、複数のデバイスに応じた複数のデバイス指定情報を記憶しており、
     前記第2作成手段は、
     前記メモリに記憶されている複数のデバイス指定情報により指定される複数のデバイスの各々に対応する第2ポートを作成し、
     前記第1公開手段は、
     前記第1ポートへのデバイスを指定した前記第1リクエストを受け付けた場合に、当該指定されたデバイスに対応する前記第2ポートを、当該第1リクエストのリクエスト元のプログラムに公開することを特徴とする請求項9乃至11の何れか1項に記載のプログラム。
  13.  前記コンピュータを、
     前記メモリに記憶されているデバイス指定情報により指定されるデバイスとの通信が確立しているか否かを判断する判断手段として機能させ、
     前記第2作成手段は、
     前記判断手段によりデバイスとの通信が確立していると判断された場合に、当該デバイスへの第2リクエストを受け付けるための第2ポートを作成することを特徴とする請求項9乃至12の何れか1項に記載のプログラム。
  14.  前記第2ポートは、第2リクエストを受け付ける毎に、第2リクエストの受付が不能な状態である受付不能状態となり、
     前記コンピュータを、
     第2リクエストを受け付けて受付不能状態となった第2ポートを、第2リクエストの受付を可能な状態とする受付状態変更手段として機能させ、
     前記受付状態変更手段は、前記第2ポートが第2リクエストを受付不能な状態で、前記受信手段が第2リクエストに対する返信を受信した場合に、当該第2ポートを、第2リクエストの受付を可能な状態とし、前記第1出力手段が当該返信を出力することを特徴とする請求項1乃至13の何れか1項に記載のプログラム。
  15.  前記第2ポートは、第2リクエストを受け付ける毎に、第2リクエストの受付が不能な状態である受付不能状態となり、
     前記コンピュータを、
     第2リクエストを受け付けて受付不能状態となった第2ポートを、第2リクエストの受付を可能な状態とする受付状態変更手段として機能させ、
     前記受付状態変更手段は、前記受信手段が第2リクエストに対する返信を受信すること、及び、当該返信を前記第1出力手段が出力することを必要とせず、前記第2ポートを、第2リクエストの受付を可能な状態とし、当該第2ポートにより新たな第2リクエストを受け付けることを特徴とする請求項1乃至13の何れか1項に記載のプログラム。
  16.  第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能な第1プログラムと第2プログラムとを含むプログラム群であって、
     前記コンピュータを、
     第1リクエストを受け付けるための第1ポートを作成する第1作成手段と、
     第2リクエストを受け付けるための第2ポートを作成する第2作成手段として前記第1プログラムにより機能させ、前記第2リクエストは前記第1リクエストとは異なるリクエストであり、前記第1リクエストおよび前記第2リクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記第1ポートおよび前記第2ポートは、前記コンピュータにインストールされたプログラムであって前記第1プログラムとは異なるプログラムから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
     前記コンピュータを、
     前記第1作成手段により作成された第1ポートに前記第1リクエストを出力する第2出力手段として前記第2プログラムにより機能させ、
     前記コンピュータを、
     前記第2出力手段により出力された前記第1ポートへの前記第1リクエストを受け付けた場合に、前記第2プログラムに、前記第2ポートを公開する第1公開手段と、
     前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
     前記送信手段により送信された前記第2リクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
     前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元のプログラムに、前記第1プロトコルで出力する第1出力手段と、
     して前記プログラムにより機能させることを特徴とするプログラム群。
  17.  前記第2出力手段は、
     前記第1作成手段により作成された前記第1ポートに前記第1リクエストとともに、デバイスを指定するデバイス指定情報を出力し、
     前記コンピュータを、
     前記第2出力手段が出力したデバイス指定情報と、前記第2作成手段により作成された第2ポートと関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段として前記第1プログラムにより機能させ、
     前記送信手段は、
     前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2ポートと関連付けて前記メモリに記憶されているデバイス指定情報により指定されるデバイスに前記第2リクエストを、前記第2通信インタフェースに接続されたデバイスに、前記第2プロトコルによって送信することを特徴とする請求項16に記載のプログラム群。
  18.  前記第2出力手段は、
     前記第1作成手段により作成された前記第1ポートに前記第1リクエストとともに、第2プロトコルでのデバイス指定情報を出力することを特徴とする請求項17に記載のプログラム群。
  19.  当該プログラム群は、前記コンピュータが読み取り可能なブラウザも含み、
     前記コンピュータを、
     前記第1公開手段により公開された前記第2ポートを、前記ブラウザに公開する第2公開手段として前記第2プログラムにより機能させ、
     前記コンピュータを、
     前記第2公開手段により公開された第2ポートに前記第2リクエストを出力する第3出力手段として前記ブラウザにより機能させ、
     前記送信手段は、
     前記第3出力手段により出力された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信し、
     前記第1出力手段は、
     前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元である前記ブラウザに、前記第1プロトコルによって出力することを特徴とする請求項16乃至18の何れか1項に記載のプログラム群。
  20.  前記コンピュータを、
     前記第1公開手段により公開された前記第2ポートに前記第2リクエストを出力する第3出力手段として前記第2プログラムにより機能させ、
     前記送信手段は、
     前記第3出力手段により出力された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信し、
     前記第1出力手段は、
     前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元である前記第2プログラムに、前記第1プロトコルによって出力することを特徴とする請求項16乃至18の何れか1項に記載のプログラム群。
  21.  当該プログラム群は、前記コンピュータが読み取り可能な第3プログラムも含み、
     前記第2プログラムと前記第3プログラムとの各々は、モジュールプログラムを含み、 前記モジュールプログラムは、前記コンピュータを前記第2出力手段として機能させ、 前記第2出力手段は、
     前記第1プログラムが前記コンピュータを前記第1作成手段として機能させることで作成された第1ポートに前記第1リクエストを出力することを特徴とする請求項16乃至20の何れか1項に記載のプログラム群。
  22.  第1通信インタフェースと第2通信インタフェースとコンピュータとを備える情報処理装置であって、
     前記コンピュータに、第1プログラムと第2プログラムとがインストールされており、 前記コンピュータを、
     第1リクエストを受け付けるための第1ポートを作成する第1作成手段と、
     第2リクエストを受け付けるための第2ポートを作成する第2作成手段として前記第1プログラムにより機能させ、前記第2リクエストは前記第1リクエストとは異なるリクエストであり、前記第1リクエストおよび前記第2リクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記第1ポートおよび前記第2ポートは、前記コンピュータにインストールされたプログラムであって前記第1プログラムとは異なるプログラムから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
     前記コンピュータを、
     前記第1作成手段により作成された第1ポートに前記第1リクエストを出力する第2出力手段として前記第2プログラムにより機能させ、
     前記コンピュータを、
     前記第2出力手段により出力された前記第1ポートへの前記第1リクエストを受け付けた場合に、前記第2プログラムに、前記第2ポートを公開する第1公開手段と、
     前記第1公開手段により公開された前記第2ポートへの前記第2リクエストを受け付けた場合に、当該第2リクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
     前記送信手段により送信された前記第2リクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
     前記受信手段により受信した返信を、前記第2ポートへの前記第2リクエストのリクエスト元のプログラムに、前記第1プロトコルで出力する第1出力手段と、
     して前記プログラムにより機能させることを特徴とするプログラム群。
     
PCT/JP2020/045636 2019-12-16 2020-12-08 プログラム、プログラム群、および情報処理装置 WO2021124980A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202080085593.XA CN114902200A (zh) 2019-12-16 2020-12-08 程序、程序组及信息处理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019226158A JP7427951B2 (ja) 2019-12-16 2019-12-16 プログラム、プログラム群、および情報処理装置
JP2019-226158 2019-12-16

Publications (1)

Publication Number Publication Date
WO2021124980A1 true WO2021124980A1 (ja) 2021-06-24

Family

ID=76431411

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/045636 WO2021124980A1 (ja) 2019-12-16 2020-12-08 プログラム、プログラム群、および情報処理装置

Country Status (3)

Country Link
JP (1) JP7427951B2 (ja)
CN (1) CN114902200A (ja)
WO (1) WO2021124980A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196559A (ja) * 2004-01-08 2005-07-21 Ricoh Co Ltd Webサーバ組み込みビジネス機器
JP2007207141A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp コンピュータのデバイスドライバ実現方法およびコンピュータ
JP2008191883A (ja) * 2007-02-05 2008-08-21 Ricoh Co Ltd プリントシステム、プリントプログラム及び記録媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4019848B2 (ja) * 2002-08-05 2007-12-12 ソニー株式会社 アドレス変換装置
JP2009059152A (ja) * 2007-08-31 2009-03-19 Konica Minolta Business Technologies Inc データ処理システム、データ処理装置、データ処理方法およびデータ処理プログラム
JP5507295B2 (ja) * 2009-06-05 2014-05-28 株式会社ミツトヨ 信号処理装置、および信号変換伝送システム
EP2605607B1 (en) * 2011-12-12 2018-11-07 HP Printing Korea Co., Ltd. Image forming apparatus supporting peer-to-peer connection and method of managing channel thereof
JP6167502B2 (ja) * 2012-10-31 2017-07-26 ブラザー工業株式会社 通信中継プログラム、通信中継装置、及び、画像処理装置
CN103973812B (zh) * 2014-05-23 2018-05-25 上海斐讯数据通信技术有限公司 基于http协议中统一资源定位符的服务接口提供方法及系统
US20170005938A1 (en) * 2015-06-30 2017-01-05 Konica Minolta Laboratory U.S.A., Inc. System and method of tcp/ip bypass over universal serial bus (usb)
JP2017121761A (ja) * 2016-01-08 2017-07-13 ブラザー工業株式会社 印刷装置、及びコンピュータプログラム
JP6988421B2 (ja) * 2017-12-11 2022-01-05 ブラザー工業株式会社 制御プログラム
JP6750706B2 (ja) * 2019-05-22 2020-09-02 ブラザー工業株式会社 中継装置、画像処理装置および通信システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196559A (ja) * 2004-01-08 2005-07-21 Ricoh Co Ltd Webサーバ組み込みビジネス機器
JP2007207141A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp コンピュータのデバイスドライバ実現方法およびコンピュータ
JP2008191883A (ja) * 2007-02-05 2008-08-21 Ricoh Co Ltd プリントシステム、プリントプログラム及び記録媒体

Also Published As

Publication number Publication date
JP7427951B2 (ja) 2024-02-06
CN114902200A (zh) 2022-08-12
JP2021096556A (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
JP2005242994A (ja) サービス提供装置、情報処理装置、サービス提供方法、情報処理方法、サービス提供プログラム、情報処理プログラム及び記録媒体
US8947708B2 (en) Information processing apparatus, method for controlling an information processing apparatus, and image forming system
US10289370B2 (en) Image processing apparatus, control method, and storage medium for multiple processing requests
US9377981B2 (en) Image forming system that sends schedule information of image forming apparatus over network
JP2012056117A (ja) 印刷システムと印刷装置と印刷装置の制御方法とプログラム
JP2009205529A (ja) ドライバインストール方法およびドライバインストールプログラム
US20180302529A1 (en) Image forming apparatus, method of controlling the same, and storage medium
JP2006168347A (ja) プリンタ、印刷方法、プログラム及び該プログラムが記録されたコンピュータ読み取り可能な記録媒体
JP7338461B2 (ja) プログラム、プログラム群、および情報処理装置
JP2007082157A (ja) データ処理システムとそのデータ管理装置,プログラム,および記録媒体
JP2007156614A (ja) ローカルデバイスが接続される制御装置におけるメニューデータの生成
WO2021124980A1 (ja) プログラム、プログラム群、および情報処理装置
JP2007060126A (ja) 画像形成装置及び画像形成方法
US20200201585A1 (en) Information processing apparatus, method of controlling same, and storage medium
US9367267B2 (en) Relaying device, image processing device, and system comprising image processing device and relaying device and image data conversion process
US9432441B2 (en) Relaying device, image processing device, and system comprising image processing device and relaying device
JP7413750B2 (ja) プログラム、プログラム群、および情報処理装置
JP5974726B2 (ja) プレビュー画面表示制御装置およびプログラム
US10382638B2 (en) Electronic device, service execution system, and log acquisition method
JP7115071B2 (ja) プリンタドライバ、及び情報処理装置
JP4681828B2 (ja) 印刷環境共用サービス提供方法、印刷環境共用サービス提供プログラム、記録媒体及び印刷環境共用サービス提供装置
JP2006140812A (ja) 情報処理装置及びデータ送信プログラム
JP2006309444A (ja) データ処理システム
JP4891859B2 (ja) 画像形成装置
JP4910623B2 (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: 20902027

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: 20902027

Country of ref document: EP

Kind code of ref document: A1