WO2015045332A1 - 連携装置、連携システム、サービス連携方法およびプログラム記憶媒体 - Google Patents

連携装置、連携システム、サービス連携方法およびプログラム記憶媒体 Download PDF

Info

Publication number
WO2015045332A1
WO2015045332A1 PCT/JP2014/004778 JP2014004778W WO2015045332A1 WO 2015045332 A1 WO2015045332 A1 WO 2015045332A1 JP 2014004778 W JP2014004778 W JP 2014004778W WO 2015045332 A1 WO2015045332 A1 WO 2015045332A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
api
function
cooperation
service
Prior art date
Application number
PCT/JP2014/004778
Other languages
English (en)
French (fr)
Inventor
裕則 宮田
Original Assignee
Necプラットフォームズ株式会社
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 Necプラットフォームズ株式会社 filed Critical Necプラットフォームズ株式会社
Publication of WO2015045332A1 publication Critical patent/WO2015045332A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Definitions

  • the present invention relates to a technology for linking a function of an apparatus with a service provided via an information communication network.
  • cloud computing there are various services that a system server can provide to an information processing apparatus (computer apparatus) used by a user.
  • an information processing apparatus computer apparatus
  • the user downloads the desired document file from the server of the document management service. You may want to print the document. Further, the user may want to upload the document file acquired by the information processing apparatus used by the scanner to the external document management service server.
  • a technology that can easily link a function (internal function) of an information processing apparatus used by a user with various services provided by cloud computing.
  • Patent Document 1 The technology related to such a request is described in Patent Document 1.
  • the apparatus is set for each service provided from outside (external service), and a service communication unit that performs processing according to the set service, and a user that is commonly used by a plurality of service communication units And an interface control unit.
  • the service communication unit manages the management information of the set service, and performs communication based on the service.
  • the user interface control unit provides a user interface for using the service based on the management information managed by the service communication unit.
  • Patent Document 1 In the related technology described in Patent Document 1, as described above, in order to use a new service, it is necessary to add an implementation code of a service communication unit corresponding to the service. However, for example, end users, maintenance personnel of information processing systems and external services, system integrators, and the like often do not have knowledge of developing implementation codes. Therefore, it is difficult for such a user to make the information processing apparatus compatible with a desired new service using the technology of Patent Document 1.
  • the main object of the present invention is to provide a technique that allows even a user who does not have knowledge to develop an implementation code to operate the function of the apparatus in a manner that is easily linked to a service provided by the server. That is.
  • the cooperation device of the present invention When using API information representing an application programming interface (API) necessary for communicating with the server to use a service provided by an external server, and a plurality of the APIs when using the server service
  • API information representing an application programming interface (API) necessary for communicating with the server to use a service provided by an external server
  • the API information of API sequence information for determining the API usage order in the above and function information including internal function specifying information for specifying an execution target function for executing an operation linked to the service to be used, or
  • the cooperation system of the present invention is A linkage device of the present invention; And a function execution device having a function to be executed that executes an operation linked to a service provided by an external server.
  • the service cooperation method of the present invention includes: When using API information representing an application programming interface (API) necessary for communicating with the server to use a service provided by an external server, and a plurality of the APIs when using the server service
  • the API information of API sequence information for determining the API usage order in the above and function information including internal function specifying information for specifying an execution target function for executing an operation linked to the service to be used, or , Generating a plurality of the information including the API information using definition information supplied from outside, Using the generated information, a cooperative operation between the service to be used and the function to be executed is controlled.
  • API information representing an application programming interface (API) necessary for communicating with the server to use a service provided by an external server
  • the API information of API sequence information for determining the API usage order in the above and function information including internal function specifying information for specifying an execution target function for executing an operation linked to the service to be used, or , Generating a plurality of the information including the API information using definition information supplied from outside, Using
  • the program storage medium of the present invention includes: When using API information representing an application programming interface (API) necessary for communicating with the server to use a service provided by an external server, and a plurality of the APIs when using the server service
  • the API information of API sequence information for determining the API usage order in the above and function information including internal function specifying information for specifying an execution target function for executing an operation linked to the service to be used, or Generating a plurality of pieces of information including the API information using definition information supplied from outside;
  • a program for causing a computer to execute a process for controlling a cooperative operation between the service to be used and the function to be executed is held.
  • the main object of the present invention is also achieved by a service cooperation method corresponding to the cooperation device and the cooperation system of the present invention. Furthermore, the main object of the present invention is also achieved by a computer program that realizes the cooperation device, the cooperation system, and the service cooperation method of the present invention, or a program storage medium that holds the computer program.
  • 2nd Embodiment it is a figure explaining another example of the response information which a cooperation apparatus receives from a server. It is a figure explaining another example of the information which the cooperation apparatus of 2nd Embodiment transmits to a server based on API information. In 2nd Embodiment, it is a figure explaining another example of the response information which a cooperation apparatus receives from a server. In 2nd Embodiment, it is a figure showing an example of the screen which alert
  • FIG. 1 is a block diagram showing a simplified configuration of the linkage system according to the first embodiment of the present invention.
  • the linkage system 1 of the first embodiment includes a linkage device 10 and a function execution device 80.
  • the cooperation device 10 and the function execution device 80 are connected to be communicable.
  • the cooperation apparatus 10 and the function execution apparatus 80 are connected via a wired LAN (Local Area Network), a wireless LAN, a connection cable, or the like.
  • the function execution device 80 is a device that executes a predetermined function.
  • examples of the function execution device 80 include a server device and a personal computer device.
  • the function execution device 80 may be a printer, a scanner, a multifunction peripheral (a device (device) having a plurality of functions including a print function), a camera, a video camera, or other various electronic devices.
  • the function execution device 80 may be a control device that controls the operation of such various electronic devices.
  • the function executed by the function execution device 80 is also referred to as an internal function.
  • the function execution device 80 is a multifunction device having a print function and a scanner function
  • the internal functions are a print function and a scanner function.
  • the function execution device 80 may have a plurality of internal functions.
  • the cooperation device 10 is a device that enables the internal function of the function execution device 80 to operate in cooperation with the service (function) of the server 90 connected via the information communication network 70.
  • the cooperation apparatus 10 is communicably connected to a server 90 that provides a service.
  • the cooperation apparatus 10 is connected to the server 90 via an information communication network 70 configured by the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the server 90 discloses a service application programming interface (API).
  • API service application programming interface
  • the cooperation device 10 and the function execution device 80 are illustrated one by one, but the cooperation device 10 and the function execution device 80 included in the cooperation system 1 may be plural and the number is limited. It is not a thing.
  • FIG. 2 is a block diagram showing a simplified functional configuration of the linkage apparatus 10.
  • the cooperation device 10 includes an acquisition unit (acquisition unit) 11 and a cooperation unit (cooperation unit) 12 as functional units.
  • FIG. 3 is a block diagram showing a simplified example of the hardware configuration of the cooperation apparatus 10.
  • the cooperation device 10 shown in FIG. 3 is a computer device that includes a CPU (Central Processing Unit) 1001.
  • the cooperation device 10 further includes a RAM (Random Access Memory) 1002, a ROM (Read Only Memory) 1003, a storage device (for example, a hard disk device) 1004, a network interface 1005, an input device 1006, and a display device 1007. It has.
  • the CPU 1001 has a function of reading out a computer program (hereinafter also referred to as a program) and various data stored in the ROM 1003 and the storage device 1004 and writing the read program and various data in the RAM 1002. Further, the CPU 1001 can have various functions by executing the program of the RAM 1002.
  • a computer program hereinafter also referred to as a program
  • the CPU 1001 can have various functions by executing the program of the RAM 1002.
  • the acquisition unit 11 includes a network interface 1005 and a CPU 1001.
  • the cooperation unit 12 includes a network interface 1005, an input device 1006, a display device 1007, and a CPU 1001.
  • the hardware configuration which comprises the cooperation apparatus 10, the acquisition part 11, and the cooperation part 12 is not limited to the structure mentioned above.
  • the acquisition unit 11 has a function of generating API information of API (Application Programming Interface) information, API (Application Programming Interface) sequence information, and function information, or a plurality of the information including API information.
  • API information is information representing an API that is disclosed by a service provided by the server 90 and is necessary when communicating with the server 90 in order to use the service.
  • API sequence information is information for determining the use order of the APIs when a plurality of APIs are used.
  • the function information is information including internal function specifying information for specifying the internal function of the function execution device 80 that executes an operation linked to the service of the server 90.
  • the acquisition unit 11 uses definition information supplied from the outside when generating the information.
  • the definition information is information including information necessary for the acquisition unit 11 to generate information. Note that the information generated by the acquisition unit 11 is held in a storage device 1004 built in the cooperation device 10 or the like. Alternatively, when the cooperation device 10 is configured to use an external storage device, the information generated by the acquisition unit 11 is held in the external storage device.
  • the cooperation unit 12 has a function of controlling the cooperative operation between the internal function of the function execution device 80 and the service of the server 90 to be used, using the information generated by the acquisition unit 11.
  • FIG. 4 is a flowchart showing an operation example of the acquisition unit 11.
  • the acquisition unit 11 first acquires definition information including information necessary for generating API information, API sequence information, or function information (step S1).
  • the acquisition unit 11 uses the acquired definition information to generate information (cooperation control information) necessary for cooperation with the service of the server 90 (step S2).
  • FIG. 5 is a flowchart showing an operation example of the cooperation unit 12.
  • the cooperation unit 12 acquires the information generated by the acquisition unit 11 (step S11). Then, based on the acquired API information or a plurality of pieces of information including API information, the cooperation unit 12 links the service (function) to be used of the server 90 and the function of the function execution device 80 to be executed. The operation is controlled (step S12).
  • the linkage system 1 (linkage device 10) of the first embodiment is a new one that has not used the internal functions of the function execution device 80 until now even if the user has no knowledge of developing the implementation code. It can be operated in conjunction with a service (function).
  • the acquisition unit 11 includes API information, API sequence information, and function information, or a plurality of information including API information, that is, information necessary for cooperation with the service of the server 90. This is because it has a function to generate This is because the link unit 12 controls the link operation between the function to be used and the service of the server 90 based on the generated information.
  • the user does not need to develop an implementation code that links the internal function of the function execution device 80 to a service that has not been used. That is, the user can operate the internal function of the function execution device 80 in cooperation with a desired service of the server 90 without having knowledge of developing the implementation code.
  • FIG. 6 is a block diagram illustrating a simplified functional configuration of the linkage system according to the second embodiment.
  • the cooperation system 2 of the second embodiment includes a cooperation device 20, a scanner unit 81, a printer unit 82, and a storage unit 83.
  • the cooperation apparatus 20 includes an acquisition unit (acquisition unit) 21 and a cooperation unit (cooperation unit) 23, and further includes a user interface unit (user interface unit) 24.
  • the scanner unit 81 and the printer unit 82 constitute a function execution device 85.
  • the scanner unit 81 executes a scanner function for acquiring digital image data by scanning a photograph, a picture, a character, or the like.
  • the printer unit 82 executes a print function for printing a document, a picture, or a photo.
  • the cooperation device 20 has a function of executing (operating) the scanner function by the scanner unit 81 or the print function by the printer unit 82 in cooperation with the service (function) of the server 90.
  • the cooperation device 20 is communicably connected to a server 90 that provides a service.
  • the cooperation apparatus 20 is connected to the server 90 via an information communication network 70 configured by the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the server 90 provides a service for managing documents.
  • the server 90 publishes a WEB API (World Wide Web API) based on HTTP (Hypertext Transfer Protocol) as a service API.
  • WEB API World Wide Web API
  • HTTP Hypertext Transfer Protocol
  • the cooperation device 20, the scanner unit 81, the printer unit 82, and the storage unit 83 are shown one by one, but the number of the cooperation devices 20 and the number of function execution devices 85 are not limited.
  • one server 90 is shown, but the number of servers to which the cooperation system 2 is connected and the number of services provided from the server 90 are not limited.
  • FIG. 7 is a block diagram showing a simplified hardware configuration of the image forming apparatus.
  • the image forming apparatus includes a control unit 2001 including a CPU, a nonvolatile memory 2002, a network interface 2003, and an input device 2004 such as a touch panel and operation buttons.
  • the image forming apparatus further includes a display device 2005 such as a liquid crystal display, a scanner device 2006, and a printer device 2007.
  • the control unit 2001 controls the overall operation of the image forming apparatus based on information stored in the nonvolatile memory 2002, input information from the input device 2004, and information received via the network interface 2003.
  • the nonvolatile memory 2002 stores information (programs and various data) necessary for the operation of the scanner device 2006 and the printer device 2007 and information (programs and various data) necessary for the cooperation device 20 to operate.
  • the network interface 2003 has a function that enables communication with the server 90 and other external devices.
  • the input device 2004 receives setting information necessary when the scanner device 2006 and the printer device 2007 execute functions and various input information necessary when the cooperation device 20 operates.
  • the display device 2005 is a device that displays characters and images on the screen, and displays an input screen that prompts the user to input information using the input device 2004 and a result of the operation of the image forming apparatus.
  • the scanner device 2006 reads a document placed on an automatic document feeder (ADF: Auto Document Feeder) or a document table (FB: Flat Bed) and generates image data.
  • ADF Auto Document Feeder
  • FB Document Table
  • the scanner device 2006 performs document reading and image processing according to various scan setting data (file format, color mode, resolution, density, reading mode, etc.).
  • scan setting data file format, color mode, resolution, density, reading mode, etc.
  • Various types of scan setting data are set in advance or input via the input device 2004.
  • the scanner device 2006 compresses or decompresses the generated image data as necessary.
  • the scanner device 2006 constitutes a scanner unit 81.
  • the printer device 2007 prints image data to be printed on a recording medium such as paper.
  • the printer device 2007 follows print setting data (number of copies, paper size, paper type, color mode, resolution, paper feed tray, etc.) when printing.
  • Various print setting data are set in advance or input via the input device 2004.
  • the printer device 2007 constitutes the printer unit 82.
  • the acquisition unit 21 and the cooperation unit 23 are configured by a control unit 2001 and a network interface 2003.
  • the storage unit 83 includes a nonvolatile memory 2002.
  • the user interface unit 24 includes a control unit 2001, an input device 2004, and a display device 2005. Note that the hardware configuration that configures the cooperation device 20 and its functional units is not limited to the configuration described above.
  • the acquisition unit 21 has a function of generating API information, API sequence information, and function information by analyzing a definition file (definition information) supplied from the outside.
  • the acquisition unit 21 has a function of writing the generated information in the storage unit 83.
  • the API information is information that represents an API that is disclosed by a service provided by the external server 90 and is necessary when communicating with the server 90 in order to use the service.
  • a definition file supplied from the outside in order to generate API information is called an API definition file.
  • API sequence information is information that determines the API usage order when multiple APIs are used.
  • a definition file supplied from the outside in order to generate API sequence information is called an API sequence definition file.
  • the function information is information including information for specifying an internal function to be operated in cooperation with the service of the server 90 based on the API.
  • a definition file supplied from the outside in order to generate function information is called a function definition file.
  • the API definition file, the API sequence definition file, and the function definition file are generated by a user, for example.
  • these definition files are described in an XML (Extensible Markup Language) format or a JSON (JavaScript (registered trademark) Object Notation) format
  • the user can generate them using a text editor or a dedicated application.
  • the definition file is supplied to the acquisition unit 21 via the network interface 2003, for example, from a device (not shown) that generated the definition file.
  • the acquisition unit 21 may analyze these definition files by employing a technique of a known XML parser (Expat or the like) or JSON parser (yajl or the like).
  • the acquisition unit 21 analyzes the API definition file in FIG. 8 to extract necessary information from the API definition file, and generates API information as shown in FIG.
  • information extracted from the API definition file includes an API name, a method, a URL (Uniform Resource Locator), a header part, a body part, a response format, a response acquisition key, and the like.
  • the API name represents the name of the API.
  • the method represents a method used in an HTTP request transmitted to the server 90 in order to link to the service of the server 90.
  • URL represents the path name of the transmission destination of the HTTP request.
  • the header part represents the header part of the HTTP request.
  • the body part represents the body part of the HTTP request.
  • the response format represents the data format of the body part of the HTTP response. For example, XML or JSON is set as the response format.
  • the response acquisition key will be described later.
  • the information extracted from the API definition file can include the following input variables, acquisition variables, internal function related variables, and dependent variables.
  • An input variable is a variable that is replaced by information input by the user.
  • the input variable is described as “(user)” in which the variable name (in this example, user) is enclosed in parentheses.
  • the acquisition variable is a variable that is replaced by the acquisition value.
  • the acquired value is information acquired by communication by the service of the server 90 based on the API.
  • Information acquired as the acquired value is determined by a response acquisition key set in the API definition file. For example, when an element name is set as a response acquisition key, a value (information) corresponding to the element name is acquired as an acquired value from the body part of the HTTP response.
  • the element name “REGISTID” is set in the response acquisition key of the API name “login”. Note that there may be a plurality of element names set as response acquisition keys.
  • Internal function related variables are variables that are replaced with information obtained from internal functions.
  • the internal function related variable is described in the body part of the API name “upload” in the form of $ IMAGEDATA $ in which the variable name (IMAGEDATA in this example) is sandwiched between dollar signs.
  • the variable name “IMAGEDATA” represents image data obtained by the scan function of the scanner unit 81.
  • Dependent variable is a variable whose value depends on the contents of other variables.
  • the dependent variable is described in the header part of the API name “upload” in the form of ⁇ Content-Length ⁇ in which the variable name (Content-Length in this example) is enclosed in curly brackets.
  • Content-Length represents the data length of the body part
  • this dependent variable ⁇ Content-Length ⁇ is replaced with an internal function related variable “$ IMAGEDATA $” included in the body part of the API name “upload”. It is determined based on the length of the image data.
  • the acquisition unit 21 extracts the necessary information from the API sequence definition file by analyzing the API sequence definition file of FIG. 10, and generates API sequence information as shown in FIG.
  • the information extracted by the acquisition unit 21 from the API sequence definition file is a sequence name, an API name, and next process determination information.
  • the sequence name represents the name of this API sequence.
  • the API name represents the name of each API used sequentially in this API sequence.
  • the next process determination information represents information used when determining the next process to be performed based on the communication result of each API.
  • the next process determination information described after the API name is information used to determine a process to be performed next to the communication process based on the API having the API name.
  • these subsequent processing determination information Represents different pieces of determination information.
  • the next process determination information includes information representing a status code, a result key, a result value, a logical operation, and a next process API name.
  • the status code is a code consisting of a three-digit number obtained by an HTTP response.
  • the result key is an element name acquired as a result of the API from the body part of the HTTP response.
  • the result value is the content of the element having the element name of the result key.
  • the logical operation represents a logical operation method for authenticating the status code and determining the authenticity of the result value. For example, OR (logical sum) or AND (logical product) is set as the logical operation.
  • the authenticity determination of the status code is a process of determining whether the status code of the HTTP response actually obtained is equal to the status code included in the next process determination information.
  • the authenticity determination of the result value is a process of determining whether or not the result value of the HTTP response actually obtained is equal to the result value included in the next process determination information.
  • the true / false judgment result of the status code and the true / false judgment result of the result value are arithmetically processed by the cooperation unit 23 by a logical operation set in the next process determination information as a logical operation. This calculation result becomes the determination result of the next process determination information.
  • the next process API name represents the API name to be processed next or the end when the determination result of the next process determination information is true.
  • “NORMAL_END (normal end)” set as the next process API name indicates that the API sequence is normally ended when the determination result of the next process determination information is true.
  • ERPOR_END (abnormal end)” set in the next process API name represents that the API sequence is abnormally ended when the determination result of the next process determination information is true.
  • FIG. 12 A file described in XML format, which is an example of a function definition file, is shown in FIG. 12 .
  • An example of function information generated based on the function definition file shown in FIG. 12 is shown in FIG.
  • the acquisition unit 21 analyzes the function definition file of FIG. 12 to extract necessary information from the function definition file, and generates function information as shown in FIG.
  • the information extracted from the function definition file includes a function name, a sequence name as API sequence specifying information, input variable information, and an internal function type as internal function specifying information.
  • the function name represents the name given to the combination of the internal function and the service to be used.
  • the sequence name represents the name of API sequence information used when controlling the cooperative operation by the combination of the internal function and the service to be used.
  • the input variable information is information regarding input variables included in the API information used in the cooperative operation.
  • the input variable information is an information group including a plurality of types of information related to one input variable.
  • the input variable information includes information representing the variable name, type, initial value, length, and display name of the input variable.
  • the variable name represents the name of the input variable used in the API information.
  • the type represents the type of the input variable. For example, an integer type or a character string type is set.
  • the initial value represents the initial value of the input variable. For example, “NULL” or the like is set for an empty character string.
  • the display name is the name of the input variable used by the user interface unit 24 and is displayed on the input screen of the display device 2005, for example.
  • the first function information includes input variable information related to the input variable “(user)” included in the API information of FIG. 9.
  • the internal function type represents internal function specifying information for specifying an internal function to be linked with the service of the server 90. For example, “scan” or “print” is set as the internal function type.
  • the user interface unit 24 provides a user interface that allows the user to select a combination (in this example, a function name) of a service that executes a cooperative operation and an internal function. For example, the user interface unit 24 displays a list of function names on the display device 2005 in a state where the user can select a function with the input device 2004.
  • the user interface unit 24 provides a user interface that allows the user to input information. Specifically, the user interface unit 24 displays on the display device 2005 an input screen that allows the user to input information using the input device 2004.
  • the user interface unit 24 provides an input interface that allows the user to input an input value as an input variable based on input variable information included in the function information having the selected function name.
  • the user interface unit 24 provides a setting interface that allows the user to input setting information used by an internal function linked to an external service. That is, the user interface unit 24 provides a setting interface for inputting setting information of the scanner unit 81 or the printer unit 82 based on the internal function specifying information included in the function information having the selected function name.
  • the user interface unit 24 displays the execution result of the internal function linked to the service of the server 90 on the display device 2005.
  • the cooperation unit 23 reads the API sequence information from the storage unit 83 by referring to the function information having the function name selected by the user.
  • the cooperation unit 23 communicates with the service of the server 90 using the API information in the order of use determined based on the read API sequence information. That is, the cooperation unit 23 sequentially executes communication processing with the service of the server 90 using each API based on the next process determination information included in the API sequence information. For example, the cooperation unit 23 determines whether or not the service of the server 90 is based on the API represented by the next process API name based on the next process determination information determined to be true based on the communication result with the service of the server 90 based on a certain API. Communication may be executed.
  • the cooperation unit 23 acquires an input value input by the user via the user interface unit 24, and in communication with the service of the server 90 based on the API, an API in which the input variable is replaced with the acquired input value. Communication is performed using the information.
  • the cooperation unit 23 generates an HTTP request based on the API information corresponding to the first API name included in the API sequence information of FIG. 11 and transmits the HTTP request to the service of the server 90. Thereafter, when receiving the HTTP response, the cooperation unit 23 determines whether or not the status code included in the received HTTP response is equal to the status code included in the next process determination information of the API. In addition, the cooperation unit 23 determines whether or not the result key value (result value) included in the received HTTP response is equal to the result value included in the next process determination information.
  • the linkage unit 23 performs a logical operation included in the next process determination information using the true / false determination result of the status code and the true / false determination result of the result value, and determines whether or not the result is true. judge.
  • the linking unit 23 may repeat the same process based on the API information corresponding to the next process API name included in the next process determination information determined to be true.
  • the cooperation unit 23 replaces the internal function related variable included in the API information with information obtained from the internal function, and communicates with the service of the server 90 using the API information replaced with the information.
  • the linkage unit 23 replaces the internal function related variable with the execution result of the internal function.
  • the linkage unit 23 causes the scanner unit 81 to execute the scanner function and execute the execution result.
  • the cooperation unit 23 may cause the scanner unit 81 to execute the scanner function using the scan setting information input by the user through the user interface unit 24.
  • the cooperation unit 23 generates an HTTP request based on the API information in which the internal function related variable is replaced with the image data, and transmits the HTTP request to the external service.
  • the linkage unit 23 may execute an internal function using an acquired value obtained from a communication result with the server 90. Specifically, when information specifying the image data included in the HTTP response is set in the response acquisition key included in the API information, the cooperation unit 23 acquires the image data based on the response acquisition key. Get as a value. Then, the cooperation unit 23 passes the acquired value to the printer unit 82 to execute the print function. At this time, the cooperation unit 23 may cause the printer unit 82 to execute the print function using the print setting information input by the user through the user interface unit 24.
  • the cooperation unit 23 replaces the acquisition variable included in the API information with the acquired value, and communicates with the server 90 using the API information replaced with the acquired value.
  • the acquired value is a value obtained from the server 90 by the cooperation unit 23 executing a function for causing the internal function to cooperate with the service of the server 90.
  • the linkage unit 23 calculates a value for replacing the dependent variable included in the API information according to the content of replacement of other variables. Then, the cooperation unit 23 communicates with the service of the server 90 using the API information in which the dependency variable is replaced with the calculated value.
  • the cooperation unit 23 acquires processing based on the HTTP response (XML format or JSON format) obtained in communication with the server 90, processing based on the next processing determination information, and acquisition of the acquisition value determined by the response acquisition key.
  • the linkage unit 23 may adopt a known XML parser or JSON parser technology.
  • FIG. 14 is a flowchart showing an operation example when the cooperation system 2 (cooperation apparatus 20) applies to a new service that has never been used. Note that the flowchart shown in FIG. 14 represents a control procedure executed by the control unit (CPU) 2001 configuring the cooperation apparatus 20.
  • the acquisition unit 21 acquires an API definition file, an API sequence definition file, and a function definition file (step S21), it analyzes each acquired definition file (step S22). For example, if each definition file is in the XML format, the acquisition unit 21 analyzes each definition file using an XML syntax analysis method, and extracts information necessary for generating API information, API sequence information, and function information.
  • the acquisition unit 21 determines whether there is an error in the definition file (step S23).
  • the acquisition unit 21 If there is no error in the definition file, the acquisition unit 21 generates API information, API sequence information, and function information based on the information extracted from each definition file, and writes (stores) it in the storage unit 83 (step S24). .
  • the acquisition unit 21 ends the operation. At this time, the acquisition unit 21 may output information representing an error in the definition file to the user interface unit 24. In this case, the user interface unit 24 displays on the display device 2005 that there is an error in the definition file.
  • FIG. 15 is a flowchart illustrating an operation example when the cooperation device 20 executes the cooperation operation selected by the user.
  • the operation when using the service of the server 90 using the execution result of the internal function will be described.
  • the flowchart shown in FIG. 15 represents a control procedure executed by the control unit (CPU) 2001 configuring the cooperation apparatus 20.
  • the linkage unit 23 acquires information representing the function name selected by the user via the user interface unit 24, and reads out the function information having the selected function name from the storage unit 83 (step S31).
  • the user interface unit 24 displays an input screen on which the user inputs input values and setting information of internal functions on the display device 2005 based on the input variable information and the internal function type included in the function information (step 2005). S32).
  • the user interface unit 24 acquires an input value and setting information input by the user using the input device 2004 (step S33).
  • the cooperation unit 23 instructs execution of the internal function represented by the internal function type included in the acquired setting information (step S34).
  • the cooperation part 23 reads API sequence information of the sequence name contained in function information from the memory
  • the cooperation unit 23 reads API information of the API name included in the read API sequence information from the storage unit 83 (step S36).
  • the linkage unit 23 reads the API information corresponding to the first API name included in the API sequence information. Just put it out.
  • the cooperation unit 23 acquires information to be replaced (substitute) as various variables in the read API information (step S37), and replaces the acquired information (value) with various variables. Specifically, if the input API is included in the read API information, the cooperation unit 23 acquires an input value input by the user, and replaces (substitutes) the input variable with the acquired input value. If the read API information includes an internal function related variable, the linkage unit 23 replaces (substitutes) the internal function related variable with information (execution result information) obtained by executing the internal function. .
  • the cooperation unit 23 depends on a value calculated based on the contents in which other variables such as an input variable, an acquisition variable, or an internal function related variable are set. Replace (assign) a variable.
  • the cooperation part 23 communicates with the server 90 which provides a desired service based on the API information by which the variable was replaced (step S38). Specifically, the cooperation unit 23 generates an HTTP request based on API information in which variables are set (input). Then, the cooperation unit 23 transmits the generated HTTP request to the server 90, and then receives an HTTP response from the server 90.
  • the linkage unit 23 analyzes the communication result with the service of the server 90 based on the response format of the API information, and extracts necessary information (step S39).
  • the cooperation unit 23 extracts a status code and a result value from the HTTP response.
  • the result value is a value of an element set as a result key in the next process determination information of the API used for communication. If the element set in the response acquisition key is included in the HTTP response in the API information of the API used for communication, the cooperation unit 23 extracts the value of the element as an acquired value.
  • the linkage unit 23 determines whether there is an API to be executed next by using the information extracted from the communication result with the server 90 and the next process determination information included in the API sequence information (step S40). ).
  • the cooperation unit 23 determines whether the extracted status code matches the status code set in the next process determination information. In addition, the cooperation unit 23 determines whether the extracted result value matches the result value set in the next process determination information. Then, the cooperation unit 23 calculates the true / false determination result of the status code and the true / false determination result of the result value by a logical operation set in the next process determination information. And the cooperation part 23 refers to the content set to the next process API name of the next process determination information for which the logical operation result is true. At this time, if an API name is set as the next processing API name, the cooperation unit 23 determines that there is an API to be executed next. If information indicating termination is set in the next process API name, the cooperation unit 23 determines that there is no API to be executed next.
  • step S40 If it is determined in step S40 that there is an API to be executed next, the linkage unit 23 repeats the processing from step S36 for the API set as the next processing API name. When the processing is repeated in this way, the cooperation unit 23 may read API information corresponding to the set next processing API name in step S36. In step S ⁇ b> 37, if the acquired API information includes an acquisition variable, the cooperation unit 23 replaces (substitutes) the acquisition value obtained through communication with the server 90 with the acquisition variable.
  • the user interface unit 24 displays the execution result of the function on the display device 2005 (step S41). For example, the user interface unit 24 may display information indicating normal end or abnormal end in accordance with the content of information indicating end set in the next processing API name.
  • the storage unit 83 stores API information, API sequence information, and function information shown in FIGS. 9, 11, and 13.
  • information indicating that the user has selected the cooperative operation “upload scan data to service A (scan To service A)” using the input device 2004 is transmitted to the cooperative device 20 via the user interface unit 24. Assuming that it was entered.
  • the cooperation unit 23 reads function information whose function name shown in FIG. 13 is “scan To service A” from the storage unit 83 (step S31).
  • the function information is also referred to as function information “scan To service A”.
  • the function information “scan To service A” includes input variable information related to the input variable “user” and internal function specifying information indicating a scan function. Based on this function information, the user interface unit 24 displays an input screen as shown in FIG. 16 on the display device 2005 (step S32). In this input screen, a text input box can be displayed for the user to input character information in a column for inputting a variable “user” (display name “user name”). In addition, in each column for inputting a plurality of setting information of the scan function, a plurality of candidate information that can be set as setting information is displayed in a list, and desired setting information is alternatively selected from the candidate information. Displayed as possible.
  • the cooperation device 20 can obtain the input value and setting information that have been input (step S33). For example, as illustrated in FIG. 17, when the user name “taro” is input by the user on the input screen, the cooperation apparatus 20 can obtain “taro” as an input variable.
  • the setting information of the scan function for example, it is assumed that the file format is set to JPEG (Joint Photographic Experts Group), the color mode is set to color, and the resolution is set to 400 by the user.
  • the setting information of the scan function for example, it is assumed that the density is normal and the reading mode is set to ADF (Automatic Document Feeder) by the user. That is, it is assumed that the cooperation apparatus 20 has obtained the setting information.
  • the cooperation unit 23 instructs the scanner unit 81 to execute the scan function using the input setting information (step S34). At this time, the scanner unit 81 may compress or decompress the scan data as necessary.
  • the function information “scan To service A” includes a sequence name “service_upload” that is API sequence identification information. Therefore, the cooperation unit 23 reads API sequence information named “service_upload” shown in FIG. 11 from the storage unit 83 (step S35).
  • the API sequence information is also referred to as API sequence information “service_upload”.
  • the API sequence information “service_upload” includes “login” as the first API name.
  • the cooperation part 23 reads API information with the name "login” represented by FIG. 9 from the memory
  • the API information is also referred to as API information “login”.
  • the linkage unit 23 replaces the input variable “(user)” included in the URL with the user name “taro” input by the user on the input screen in the API information “login” (step S37).
  • the cooperation unit 23 performs HTTP communication with the server 90 by using the method, URL, header part, and body part included in the API information “login” (step S38). Specifically, the cooperation unit 23 generates an HTTP request as illustrated in FIG. 18A. Then, the linkage unit 23 transmits the generated HTTP request to the server 90. Thereby, the cooperation part 23 receives the HTTP response as represented, for example in FIG. 18B from the server 90.
  • the linkage unit 23 analyzes the HTTP response obtained by communication with the server 90 based on “XML” set in the response format of the API information “login”, and extracts necessary information (step S39). ).
  • the cooperation unit 23 extracts the status code “200” from the HTTP response shown in FIG. 18B.
  • the linkage unit 23 refers to the element “RESULT” set in the result key in the first process determination information described first belonging to the API name “login”. Then, the cooperation unit 23 extracts the value “OK” of the element “RESULT” as a result value from the HTTP response. Further, the cooperation unit 23 refers to the element “REGISTID” set in the response acquisition key in the API information “login”. Then, the linkage unit 23 extracts the value “12345” of the element “REGISTID” as an acquired value from the body part of the HTTP response.
  • the cooperation unit 23 determines whether there is an API to be executed next based on the information extracted from the HTTP response and the next process determination information of the API name “login” (step S40).
  • the status code “200” obtained from the HTTP response is equal to the status code “200” included in the next process determination information described at the beginning of the API name “login” ( Judgment is made (true / false). Thereby, the cooperation unit 23 determines that the status code is true. Further, the cooperation unit 23 determines (true / false determination) whether or not the result value “OK” extracted from the HTTP response is equal to (true) the result value “OK” included in the next process determination information. . Thereby, the cooperation part 23 judges that a result value is true.
  • the cooperation unit 23 calculates the logic between the result of true / false determination of the status code (true) and the result of true / false determination of the result value (true). Calculate the product. Thereby, the cooperation part 23 detects that the result of a logical operation is true. Then, the cooperation unit 23 determines that there is a next process based on the next process API name “upload” included in the next process determination information (Yes in step S40). Thereafter, the cooperation apparatus 20 repeats the operations after step S36 using API information, API sequence information, and the like having the API name “upload”.
  • the linkage unit 23 reads the API information “upload” shown in FIG. 9 from the storage unit 83 (step S36).
  • the linkage unit 23 replaces the input variable “(user)” included in the URL of the API information “upload” with the user name “taro” input by the user on the input screen. Further, the cooperation unit 23 replaces the acquisition variable “[REGISTID]” included in the URL with the acquisition value “12345” extracted from the HTTP response by communication with the server 90. Further, the cooperation unit 23 replaces the internal function related variable “$ IMAGEDATA $” included in the body unit with the image data obtained from the scanner unit 81. Further, the cooperation unit 23 replaces the dependency variable “ ⁇ Content-Length ⁇ ” in the header part with the value of the data length of the body part in which the image data is replaced (step S37).
  • the cooperation part 23 performs HTTP communication with the server 90 using the method, URL, header part, and body part included in the API information “upload” whose information is input in the variable (step S38). Specifically, the cooperation unit 23 generates an HTTP request as shown in FIG. 19A. Then, the cooperation unit 23 transmits the generated HTTP request to the server 90. Thereby, the cooperation part 23 receives an HTTP response as represented in FIG. 19B from the server 90.
  • the linking unit 23 extracts necessary information from the HTTP response obtained by communication with the server 90 based on “XML” set in the response format of the API information “upload” (step S39).
  • the cooperation unit 23 extracts the status code “200” from the HTTP response as shown in FIG. 19B. Further, the cooperation unit 23 refers to the element “RESULT” set in the result key of the next process determination information described first in the API name “upload” in the API sequence information “service_upload”. Thereby, the cooperation unit 23 extracts the value “OK” of the element “RESULT” as a result value from the HTTP response.
  • the cooperation unit 23 determines whether there is an API to be executed next based on the extracted information and the next process determination information first described in the API name “upload” (step S40). ).
  • the cooperation unit 23 determines that the status code “200” extracted from the HTTP response is equal to the status code “200” included in the next process determination information first described in the API name “upload” (true ) Whether or not (true / false judgment). Thereby, the cooperation part 23 judges that the authenticity determination regarding a status code is true. Further, the cooperation unit 23 determines (true / false determination) whether or not the result value “OK” extracted from the HTTP response is equal (true) to the result value “OK” included in the next process determination information. Thereby, the cooperation part 23 judges that the authenticity determination regarding a result value is true.
  • the cooperation unit 23 calculates the logical product of the true / false determination (true) of the status code and the true / false determination (true) of the result value. To do.
  • the cooperation unit 23 detects that the result of the logical operation is true. Thereby, the cooperation part 23 judges that there exists a next process based on the next process API name "logout" contained in this next process determination information (it is Yes at step S40). Thereafter, the cooperation apparatus 20 repeats the operations after step S36 again using API information, API sequence information, and the like having the API name “logout”.
  • the cooperation unit 23 reads the API information “logout” shown in FIG. 9 from the storage unit 83 (step S36).
  • the linkage unit 23 replaces the input variable “(user)” included in the URL of the API information “logout” with the user name “taro” input by the user (inputs information to the variable) (step S37).
  • the linkage unit 23 performs HTTP communication with the server 90 using the method, URL, header portion, and body portion included in the API information “logout” (step S38). Specifically, the cooperation unit 23 generates an HTTP request as shown in FIG. 20A. Then, the cooperation unit 23 transmits the generated HTTP request to the server 90. Thereby, the cooperation part 23 receives an HTTP response as represented in FIG. 20B from the server 90.
  • the cooperation part 23 extracts required information from the HTTP response obtained by communication with the server 90 based on “XML” set in the response format of the API information “logout” (step S39).
  • the cooperation unit 23 extracts the status code “200” from the HTTP response as shown in FIG. 20B. Further, the linkage unit 23 refers to the element “RESULT” (see FIG. 11) set in the result key of the next process determination information first described in the API name “logout” in the API sequence information “service_upload”. To do. Then, the linkage unit 23 extracts the value “OK” (see FIG. 20B) of the element “RESULT” from the HTTP response as a result value.
  • the cooperation unit 23 determines whether there is an API to be executed next based on the extracted information and the next process determination information of the API name “logout” (step S40).
  • the cooperation unit 23 determines that the status code “200” extracted from the HTTP response is equal to the status code “200” included in the next process determination information first described in the API name “logout” (true ) Whether or not (true / false judgment). Thereby, the cooperation part 23 judges that the authenticity determination of a status code is true. Further, the cooperation unit 23 determines (true / false determination) whether or not the result value “OK” extracted from the HTTP response is equal (true) to the result value “OK” included in the next process determination information. Thereby, the cooperation part 23 judges that the authenticity determination of a result value is true.
  • the cooperation unit 23 calculates the logical product of the true / false determination (true) of the status code and the true / false determination (true) of the result value. To do. Then, the linkage unit 23 detects that the result of the logical operation is true. Thereby, the cooperation unit 23 determines that there is no next process based on the next process API name “NORMAL_END” included in the next process determination information (No in step S40).
  • the cooperation device 20 displays a screen for notifying “normal end” on the display device 2005 by the user interface unit 24 as shown in FIG. 21A. Displayed (step S41).
  • FIG. 21B is an example of a screen for informing the “abnormal end” user interface unit 24 when the next processing API name is “ERROR_END”.
  • the cooperation device 20 can execute the internal function in cooperation with the service of the server 90.
  • the cooperation apparatus 20 can print a document published by the server 90 by a print function that is an internal function by operating as follows. That is, the cooperation unit 23 causes the printer unit 82 to execute printing using the acquired value extracted from the HTTP response by communication with the server 90 after determining that there is no next processing by the determination operation of step S40 in FIG. May be. Alternatively, the cooperation unit 23 uses the acquired value extracted from the HTTP response at an arbitrary timing when the operations of steps S36 to S40 in FIG. 15 are repeatedly executed (during communication with the server 90), and the printer unit 82 may be caused to execute printing.
  • the cooperation device 20 (cooperation system 2) can easily link the internal function to a service provided from the server 90 that has not been used so far, even for a user who has no knowledge of developing the implementation code. it can.
  • the reason is that the acquisition unit 21 generates API information, API sequence information, and function information including information necessary for executing the API. And the cooperation part 23 performs API in the order of use determined by the API sequence information based on the function information of the function name selected by the user. This is because the service of the server 90 and the internal function can operate in cooperation.
  • the user simply provides the linkage device 20 with various definition files based on the API published by the server 90, and the function of the function execution device 85 can be transferred to the server 90 without knowledge of developing the implementation code. Can be executed in conjunction with other services.
  • FIG. 22 is a block diagram showing a simplified configuration of the cooperative system according to the third embodiment of the present invention.
  • the linkage system 3 according to the third embodiment includes an image forming apparatus 310 and a communication apparatus 320.
  • the image forming apparatus 310 is connected to the server 90 via an information communication network 70 configured by the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the image forming apparatus 310 is also connected to a communication device 320 so as to be communicable.
  • the means for connecting the image forming apparatus 310 and the communication apparatus 320 is, for example, the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the image forming apparatus 310 has a hardware configuration similar to that of the image forming apparatus described in the second embodiment (see FIG. 7), for example.
  • the communication device 320 is configured by a computer device having a hardware configuration as shown in FIG. That is, the communication device 320 includes a CPU 3201, a RAM 3202, a ROM 3203, a storage device (hard disk device) 3204, a network interface 3205, an input device 3206, and a display device 3207.
  • Specific examples of the communication device 320 include a smart device, a personal computer device, or a gateway device.
  • the image forming apparatus 310 includes a scanner unit 81, a printer unit 82, an acquisition unit 21, a cooperation unit 23, and a storage unit 83 as functional units.
  • the communication device 320 includes a user interface unit 24.
  • the user interface unit 24 includes a network interface 3205, an input device 3206, a display device 3207, and a CPU 3201.
  • the CPU 3201 implements various functions by reading out programs and various data stored in the ROM 3203 and the storage device 3204, writing them into the RAM 3202, and executing the written programs.
  • the function execution device 85 is configured by the scanner unit 81 and the printer unit 82.
  • the acquisition device 21 and the cooperation unit 23 of the image forming apparatus 310 and the user interface unit 24 of the communication device 320 constitute the cooperation device 20.
  • the user interface unit 24 of the communication device 320 displays an input screen that allows the user to input the path of the definition file to be transmitted to the acquisition unit 21. To display.
  • a definition file corresponding to the input path is transmitted from the communication device 320 to the acquisition unit 21 of the image forming apparatus 310.
  • the acquisition unit 21 analyzes the API definition file, API sequence definition file, and function definition file received from the communication device 320. And the acquisition part 21 produces
  • step S31 the user interface unit 24 of the communication device 320 transmits information representing the selected function name to the image forming apparatus 310.
  • the link unit 23 of the image forming apparatus 310 reads function information having the function name indicated by the received information from the storage unit 83.
  • step S32 the cooperation unit 23 transmits the input variable information and the internal function setting information included in the function information to the communication device 320.
  • the user interface unit 24 of the communication device 320 displays an input screen for allowing the user to input the input value and the internal function setting information on the display device 3207.
  • step S33 the input value and setting information input by the user are transmitted to the image forming apparatus 310 by the user interface unit 24 of the communication apparatus 320, so that the acquisition unit 21 obtains the information.
  • step S34 the cooperation unit 23 causes the internal function to be executed using the setting information received from the communication device 320 (step S34).
  • step S41 when it is determined that there is no API to be executed next, the linkage unit 23 transmits information indicating the end (for example, “NORMAL_END” or “ERROR_END”) to the communication device 320.
  • the user interface unit 24 of the communication device 320 displays on the display device 3207 a screen for informing the normal end or the abnormal end as a function execution result.
  • the function execution device 85 is installed in the server 90, as in the first and second embodiments. Can be easily linked to new services that have never been used.
  • a communication device 320 different from the image forming device 310 including the function execution device 85 has the user interface unit 24 related to a function of cooperation with an external service.
  • the user can link the remote image forming apparatus 310 with an external service by operating the communication apparatus 320 at hand, for example. That is, the linkage system 3 of the third embodiment can improve usability. Furthermore, by using the communication device 320 that the user is familiar with, the cooperation system 3 of the third embodiment can prevent an operation error of the communication device 320 caused by the user.
  • FIG. 24 is a block diagram showing a simplified configuration of the cooperation system 4 of the fourth embodiment.
  • the cooperation system 4 according to the fourth embodiment includes an image forming apparatus 410 and a communication apparatus 420.
  • the image forming apparatus 410 is a function execution apparatus including a scanner unit 81 and a printer unit 82.
  • the communication device 420 includes an acquisition unit 21, a cooperation unit 23, a user interface unit 24, and a storage unit 83.
  • the acquisition device 21, the cooperation unit 23, and the user interface unit 24 constitute a cooperation device 20.
  • the communication device 420 is connected to the server 90 via an information communication network 70 configured by the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the image forming apparatus 410 is also communicably connected to the communication apparatus 420.
  • the communication means of the image forming apparatus 410 and the communication apparatus 420 is, for example, the Internet, a LAN, a public line network, a wireless communication network, or a combination thereof.
  • the image forming apparatus 410 has a hardware configuration similar to that of the image forming apparatus described in the second embodiment (see FIG. 7).
  • the communication device 420 has the same hardware configuration (see FIG. 23) as the communication device 320 described in the third embodiment.
  • the acquisition unit 21 since the acquisition unit 21 is provided in the communication device 420, the communication device 420 performs operations related to acquisition of definition files and generation of API information, API sequence information, and function information.
  • the operation of the acquisition unit 21 is the same as the operation of the acquisition unit 21 described in the second and third embodiments.
  • the operation in which the cooperation system 4 of the fourth embodiment executes the selected cooperation operation is substantially the same as the operation shown in FIG. 15 described in the second embodiment.
  • the cooperation device 20 since the cooperation device 20 (cooperation unit 23) is provided in the communication device 420, the operation illustrated in FIG. Different from the embodiment.
  • the cooperation device 20 (cooperation unit 23) is provided in a communication device 420 that is different from the image forming device 410 that is a function execution device. For this reason, the operations in step S32 and step S34 in FIG. 15 that require communication between the linkage unit 23 and the scanner unit 81 or the printer unit 82 are different from those in the second embodiment.
  • step S32 the user interface unit 24 of the communication device 420 displays an input screen for prompting the user to input information on the display device 3207.
  • the user interface unit 24 inquires of the image forming apparatus 410 what kind of information the setting information of the internal function corresponding to the internal function specifying information included in the function information is. Then, the user interface unit 24 receives the answer (reply). For example, if the internal function specifying information indicates a scan function, the user interface unit 24 determines what information is necessary for setting the scan function by executing an inquiry to the image forming apparatus 410. Receive information to represent.
  • the user interface unit 24 makes an inquiry to the image forming apparatus 410 to determine what information is necessary for setting information when executing the printer function. Receive information to represent. Using such received information, the user interface unit 24 generates an input screen that allows the user to input input values and setting information of internal functions, and displays the input screen on the display device 3207.
  • step S34 the link unit 23 of the communication device 420 transmits setting information regarding the scan function or print function input by the user to the image forming apparatus 410, and an internal function (scan function or print function) based on the setting information. Is executed.
  • XML format files are cited as specific examples of API definition files, API sequence definition files, and function definition files.
  • each definition file is not limited to the XML format and may be expressed in other formats.
  • the API information, the API sequence information, and the function information include examples including information represented in FIGS. 9, 11, and 13. On the other hand, the information may not include all of the items or may include other items.
  • the API information only needs to include information necessary to communicate with the server 90 (service) using the API.
  • the API sequence information only needs to indicate the order of API use.
  • the function information only needs to include information necessary for linking the internal function and the external service.
  • part or all of the cooperation system is realized by the image forming apparatus.
  • a part or all of the cooperation system according to the present invention is not limited to the image forming apparatus, and may be realized by other apparatuses.
  • the scanner function and the printer function are applied as internal functions to be linked to an external service.
  • the internal functions in the present invention are linked to an external service.
  • Other possible functions may be used.
  • an example of information ($ IMAGEDATA $) representing image data acquired by the scanner unit is described as an internal function related variable included in the API definition file.
  • the internal function related variable may be information related to other functions that can be linked with the service in the function execution device.
  • the internal function related variable is counter data ($ COUNTER $) representing the number of prints, the number of scans, etc. It may be.
  • the internal function related variable includes alarm data indicating the warning status ( $ ALARM $).
  • the linkage unit 23 performs HTTP communication based on the API information.
  • the linkage unit 23 may communicate with the server 90 using the corresponding protocol based on the API information. Good.
  • the acquisition unit 21 generates API information, API sequence information, and function information, and the cooperation unit 23 operates based on these three pieces of information. is doing. Not limited to this, the cooperation unit 23 may operate based on one or two of these three pieces of information. For example, when only one API is used in the execution of the cooperative operation, the cooperative unit 23 can omit reading API sequence information. In this case, the function information only needs to include information specifying API information to be used instead of information specifying API sequence information. Further, if there is only one API sequence information, the linkage unit 23 does not use function information and reads the API sequence information from the storage unit 83 at a predetermined timing (for example, a predetermined interval). And the cooperation part 23 may perform the operation
  • the linkage unit 23 may perform an operation based on the API information by reading the designated API information from the storage unit 83 at a predetermined timing without using the function information and the API sequence information.
  • the linkage unit 23 operates as described above.
  • a specific example of the case where the cooperation unit 23 operates in this way is a case where counter data and alarm data are transmitted to an external service without executing a scan function or a print function.
  • the linkage unit 23 can link the service of the server 90 and the internal function without using the function information or the function information and the API sequence information.
  • the acquisition unit 21 need only acquire necessary information among API information, API sequence information, and function information, and does not necessarily acquire all of them.
  • the example in which the cooperation unit 23 executes the cooperation operation of the function name selected by the user has been described.
  • the cooperation operation preset at a predetermined timing is described. May be executed.
  • each functional block of the cooperation device is realized by a CPU that executes a computer program stored in a storage device or a ROM is mainly described.
  • some or all of the functional blocks of the cooperation apparatus may be realized by dedicated hardware.
  • the operation of the cooperation device 20 described in the second to fourth embodiments is realized by the CPU reading and executing a computer program stored in the storage device (storage medium).
  • the present invention is realized by a computer program code or a storage medium.
  • cooperation system according to the present invention can be configured by appropriately combining the configurations described in the second to fourth embodiments.
  • Appendix 1 Information related to application programming interface (API) published by an external service (API information), information related to the API usage order (API sequence information), and internal functions of the function execution device are linked to the external service based on the API
  • An acquisition unit that acquires at least one of information (function information) about a function to be performed (function);
  • a storage unit for storing information acquired by the acquisition unit;
  • a linkage unit that executes the function that links the internal function and the external service based on at least one of the API information, the API sequence information, and the function information;
  • Coordination device with The acquisition unit generates at least one of the API information, the API sequence information, and the function information by analyzing definition information received from outside, and stores the generated information in the storage unit.
  • the cooperation apparatus includes API sequence specifying information for specifying the API sequence information corresponding to the function, and internal function specifying information for specifying the internal function to be linked in the function
  • the linkage unit refers to API sequence information indicated by API sequence specifying information included in the function information, performs communication with the external service based on the API information in a use order indicated by the API sequence information, and
  • the cooperation apparatus according to appendix 1 or appendix 2, wherein the function is executed by causing the function execution apparatus to execute an internal function indicated by internal function specifying information included in the information.
  • the cooperation apparatus according to any one of attachments 1 to 3, further comprising a user interface unit that allows a user to select a function to be executed by the cooperation unit.
  • the cooperation apparatus according to any one of attachments 1 to 7, wherein the cooperation unit performs communication with the external service based on API information in which the input variable is replaced with the input value.
  • the API information includes internal function related variables
  • the linkage unit performs communication with the external service based on API information obtained by replacing the internal function-related variable with information obtained from the internal function.
  • the linkage device described in 1. (Appendix 10)
  • the API information includes information (response acquisition key) that specifies an acquisition value acquired from a communication result with the external service,
  • the cooperation device according to any one of Supplementary Note 1 to Supplementary Note 9, wherein the cooperation unit acquires the acquired value from a communication result with the external service based on the response acquisition key.
  • the API information includes an acquisition variable, The cooperation apparatus according to appendix 10, wherein the cooperation unit performs communication with the external service based on API information obtained by replacing the acquisition variable with the acquisition value.
  • the API information includes a dependent variable whose value is determined depending on the contents of other variables, Any one of appendix 1 to appendix 12, wherein the linkage unit communicates with the external service based on API information obtained by replacing the dependent variable with a value calculated according to the content of another variable.
  • One cooperation apparatus as described in one.
  • the API sequence information includes, for each API used in the execution of the function, next process determination information indicating information for determining a process to be executed next based on a communication result with the external service using the API. Included, The cooperation device according to any one of Supplementary Note 1 to Supplementary Note 13, wherein the cooperation unit sequentially executes each API indicated by the API sequence information based on the next process determination information.
  • Appendix 17 Information related to application programming interface (API) published by an external service (API information), information related to the API usage order (API sequence information), and internal functions of the function execution device are linked to the external service based on the API Get at least one of the information (function information) about the function
  • API Get at least one of the information (function information) about the function
  • Appendix 18 18. The service cooperation method according to appendix 17, wherein at least one of the API information, the API sequence information, and the function information is generated by analyzing definition information received from outside.
  • Appendix 19 Information related to application programming interface (API) published by an external service (API information), information related to the API usage order (API sequence information), and internal functions of the function execution device are linked to the external service based on the API Processing to acquire at least one of information (function information) related to the function to be performed (function); A process of executing the function that links the internal function and the external service based on at least one of the API information, the API sequence information, and the function information; A program storage medium for holding a program for causing a computer device to execute the program. (Appendix 20) Item 20. The supplementary note 19 further holds a program that causes a computer device to execute processing for generating at least one of the API information, the API sequence information, and the function information by analyzing definition information received from the outside. Program storage medium.
  • API information application programming interface
  • API sequence information information related to the API usage order
  • internal functions of the function execution device are linked to the external service based on the API Processing to acquire at least one of information (function information) related to the function

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)

Abstract

 実装コードを開発する知識のないユーザであっても、装置の機能をサーバにより提供されるサービスに簡単に連携させて実行させることを可能にする技術を提供する。 連携装置10は、取得部11と連携部12を備える。取得部11は、API情報とAPIシーケンス情報とファンクション情報のうちのAPI情報、あるいは、API情報を含む複数の情報を外部から供給される定義情報を利用して生成する。API情報は、アプリケーションプログラミングインタフェース(API)を表す情報である。APIシーケンス情報は、複数のAPIを用いる場合におけるAPIの使用順序を決定する情報である。ファンクション情報は、利用対象のサービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含む情報である。連携部12は、取得部11により生成された情報を利用して、利用対象のサービスと実行対象の機能との連携動作を制御する。

Description

連携装置、連携システム、サービス連携方法およびプログラム記憶媒体
 本発明は、装置が持つ機能と、情報通信網を介して提供されるサービスとを連携させる技術に関する。
 近年、クラウドコンピューティング(クラウドシステム)において、ユーザの利用する情報処理装置(コンピュータ装置)にシステムのサーバが提供可能なサービスは様々にある。ユーザは、そのような様々なサービスの中からニーズに合うものを選択し、当該選択したサービスと、自身の利用する情報処理装置が持つ機能とを連携させたいという要望が有る。例えば、外部の文書管理サービス(文書管理システム)が管理している文書ファイルの中に所望の文書ファイルが有った場合に、ユーザは、その文書管理サービスのサーバから所望の文書ファイルをダウンロードし当該文書を印刷したい場合がある。また、ユーザは、自身の利用する情報処理装置がスキャナによって取得した文書ファイルを外部の文書管理サービスのサーバにアップロードしたい場合もある。このような要望に応えるために、ユーザの利用する情報処理装置が持つ機能(内部機能)と、クラウドコンピューティングが提供している様々なサービスとを簡単に連携可能な技術が望まれている。
 そのような要望に関連する技術が特許文献1に記載されている。この関連技術では、装置は、外部から提供されるサービス(外部サービス)毎に設定され当該設定されたサービスに応じた処理を行うサービス通信部と、複数のサービス通信部から共通に利用されるユーザインタフェース制御部とを有する。この関連技術では、サービス通信部は、設定されたサービスの管理情報を管理し、また、そのサービスに基づいた通信を行う。ユーザインタフェース制御部は、サービス通信部で管理されている管理情報に基づいて、サービスを利用するためのユーザインタフェースを提供する。この関連技術では、今まで利用したことのない新たなサービスを利用する際に、そのサービスに応じたユーザインタフェース制御部の実装コードを追加しなくてよいが、その新たなサービスに応じたサービス通信部の実装コードを追加する必要が有る。
特開2012-49788号公報
 特許文献1に記載された関連技術では、上述したように、新たなサービスを利用するために、そのサービスに応じたサービス通信部の実装コードを追加する必要がある。しかしながら、例えば、エンドユーザ、情報処理システムや外部サービスの保守員、または、システムインテグレーター等は、実装コードを開発する知識を持たない場合が多い。そのため、そのようなユーザが、特許文献1の技術を利用して、情報処理装置を所望の新たなサービスに対応させることは難しい。
 本発明は上述の課題を解決するためになされた。すなわち、本発明の主な目的は、実装コードを開発する知識のないユーザであっても、装置の機能を、サーバにより提供されるサービスに簡単に連携させて動作させることができる技術を提供することである。
 上記目的を達成するために、本発明の連携装置は、
 外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成する取得手段と、
 前記取得手段により生成された前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する連携手段と、
を備える。
 本発明の連携システムは、
 本発明の連携装置と、
  外部のサーバによって提供されるサービスに連携した動作を実行する実行対象の機能を備えた機能実行装置と
を備える。
 本発明のサービス連携方法は、
 外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成し、
 その生成した前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する。
 本発明のプログラム記憶媒体は、
 外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成する処理と、
 その生成された前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する処理と
をコンピュータによって実行させるプログラムを保持する。
 なお、本発明の主な前記目的は、本発明の連携装置、連携システムに対応するサービス連携方法によっても達成される。さらに、本発明の主な前記目的は、本発明の連携装置、連携システム、サービス連携方法を実現するコンピュータプログラム又は当該コンピュータプログラムを保持するプログラム記憶媒体によっても達成される。
 本発明は、実装コードを開発する知識のないユーザであっても、装置の機能を、サーバにより提供されるサービスに簡単に連携させて動作させることができる。
本発明に係る第1実施形態の連携システムの構成を簡略化して表すブロック図である。 本発明に係る第1実施形態の連携装置の機能構成を表すブロック図である。 第1実施形態の連携装置のハードウェア構成の一例を簡略化して表すブロック図である。 第1実施形態の連携装置における取得部の動作例を説明するフローチャートである。 第1実施形態の連携装置における連携部の動作例を説明するフローチャートである。 本発明に係る第2実施形態の連携システムの機能構成を表すブロック図である。 第2実施形態の連携システムが組み込まれる画像形成装置のハードウェア構成の一例を簡略化して表すブロック図である。 第2実施形態におけるAPI定義ファイルの一例を表す図である。 第2実施形態におけるAPI情報の一例を表す図である。 第2実施形態におけるAPIシーケンス定義ファイルの一例を表す図である。 第2実施形態におけるAPIシーケンス情報の一例を表す図である。 第2実施形態におけるファンクション定義ファイルの一例を表す図である。 第2実施形態におけるファンクション情報の一例を表す図である。 第2実施形態の連携装置の一動作例を説明するフローチャートである。 第2実施形態の連携装置の他の動作例を説明するフローチャートである。 第2実施形態においてユーザに情報を入力させる入力画面の一例を表す図である。 ユーザが情報を入力した後の入力画面の一例を表す図である。 第2実施形態の連携装置がAPI情報に基づきサーバに送信する情報の一例を説明する図である。 第2実施形態において、連携装置がサーバから受信する応答情報の一例を説明する図である。 第2実施形態の連携装置がAPI情報に基づきサーバに送信する情報の別の例を説明する図である。 第2実施形態において、連携装置がサーバから受信する応答情報の別の例を説明する図である。 第2実施形態の連携装置がAPI情報に基づきサーバに送信する情報のさらに別の例を説明する図である。 第2実施形態において、連携装置がサーバから受信する応答情報のさらに別の例を説明する図である。 第2実施形態において、ユーザインタフェース部によって表示される正常終了を報知する画面の一例を表す図である。 第2実施形態において、ユーザインタフェース部によって表示される異常終了を報知する画面の一例を表す図である。 本発明に係る第3実施形態の連携システムの機能構成を表すブロック図である。 第3実施形態の連携システムを構成する通信装置のハードウェア構成の一例を簡略化して表すブロック図である。 本発明に係る第4実施形態の連携システムの機能構成を表すブロック図である。
 以下に、本発明に係る実施形態を図面を参照しつつ説明する。
 <第1実施形態>
 図1は、本発明に係る第1実施形態の連携システムの構成を簡略化して表すブロック図である。
 第1実施形態の連携システム1は、連携装置10と、機能実行装置80とを含む。連携装置10と機能実行装置80は、通信可能に接続される。例えば、連携装置10と機能実行装置80は、有線LAN(Local Area Network)、無線LAN、または、接続用ケーブル等を介して接続される。
 機能実行装置80は、所定の機能を実行する装置である。例えば、機能実行装置80としては、サーバ装置やパーソナルコンピュータ装置を挙げることができる。また、機能実行装置80は、プリンタ、スキャナ、複合機(プリント機能を含む複数の機能を備えた装置(機器))、カメラ、ビデオカメラ、または、その他の各種電子機器であってもよい。さらにまた、機能実行装置80は、そのような各種電子機器の動作を制御する制御装置であってもよい。以下、機能実行装置80によって実行される機能を内部機能とも記載する。例えば、機能実行装置80が、プリント機能とスキャナ機能とを有する複合機である場合には、内部機能とは、プリント機能とスキャナ機能である。このように、機能実行装置80は、複数の内部機能を有していてもよい。
 連携装置10は、機能実行装置80の内部機能が、情報通信網70を介して接続するサーバ90のサービス(機能)と連携して動作することを可能にする装置である。連携装置10は、サービスを提供するサーバ90と通信可能に接続される。例えば、連携装置10は、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せによって構成される情報通信網70を介して、サーバ90に接続される。また、サーバ90は、サービスのアプリケーションプログラミングインタフェース(API:Application Programming Interface)を公開しているとする。
 なお、図1では、連携装置10および機能実行装置80が1つずつ表されているが、連携システム1が備える連携装置10および機能実行装置80は複数であってもよく、数が限定されるものではない。また、図1では、連携システム1(連携装置10および機能実行装置80)が接続するサーバ90は1つであるが、連携システム1が接続するサーバ90の数および機能実行装置80が利用可能なサービスの数は限定されない。
 図2は、連携装置10が持つ機能構成を簡略化して表すブロック図である。連携装置10は、機能部として、取得部(取得手段)11と、連携部(連携手段)12とを有する。
 図3は、連携装置10のハードウェア構成の一例を簡略化して表すブロック図である。図3に表される連携装置10は、CPU(Central Processing Unit)1001を備えたコンピュータ装置である。この連携装置10は、さらに、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、記憶装置(例えばハードディスク装置)1004と、ネットワークインタフェース1005と、入力装置1006と、表示装置1007とを備えている。CPU1001は、ROM1003および記憶装置1004に記憶されたコンピュータプログラム(以下、プログラムとも記載する)と各種データを読み出し、当該読み出したプログラムと各種データをRAM1002に書き込む機能を備えている。さらに、CPU1001は、RAM1002のプログラムを実行することによって様々な機能を持つことができる。
 連携装置10がこのようなハードウェア構成を備えている場合には、例えば、取得部11は、ネットワークインタフェース1005と、CPU1001とによって構成される。連携部12は、ネットワークインタフェース1005と、入力装置1006と、表示装置1007と、CPU1001とによって構成される。なお、連携装置10、取得部11および連携部12を構成するハードウェア構成は、上述した構成に限定されない。
 次に、取得部11と連携部12の各機能について説明する。
 取得部11は、API(Application Programming Interface)情報と、API(Application Programming Interface)シーケンス情報と、ファンクション情報とのうちのAPI情報、あるいは、API情報を含む複数の前記情報を生成する機能を備えている。ここで、API情報とは、サーバ90が提供するサービスによって公開され当該サービスを利用するためにサーバ90と通信する際に必要なAPIを表す情報である。APIシーケンス情報とは、複数のAPIを用いる場合に当該APIの使用順序を決定する情報である。また、ファンクション情報とは、サーバ90のサービスに連携した動作を実行する機能実行装置80の内部機能を特定する内部機能特定情報を含む情報である。
 取得部11は、前記情報を生成する際には、外部から供給される定義情報を利用する。定義情報とは、取得部11が情報を生成するために必要な情報を含む情報である。なお、取得部11が生成した情報は、連携装置10に内蔵される記憶装置1004などに保持される。あるいは、連携装置10が外部の記憶装置を利用する構成である場合には、取得部11が生成した情報は、その外部の記憶装置に保持される。
 連携部12は、取得部11により生成された情報を利用して、機能実行装置80の内部機能と、利用対象のサーバ90のサービスとの連携動作を制御する機能を備えている。
 図4は、取得部11の動作例を表すフローチャートである。取得部11は、まず、API情報、APIシーケンス情報又はファンクション情報を生成するために必要な情報を含む定義情報を取得する(ステップS1)。
 次に、取得部11は、その取得した定義情報を利用して、サーバ90のサービスとの連携に必要な情報(連携制御情報)を生成する(ステップS2)。
 図5は、連携部12の動作例を表すフローチャートである。
 まず、連携部12は、取得部11により生成された情報を取得する(ステップS11)。そして、連携部12は、その取得したAPI情報、あるいは、API情報を含む複数の情報に基づいて、サーバ90の利用対象のサービス(機能)と、実行対象の機能実行装置80の機能との連携動作を制御する(ステップS12)。
 次に、第1実施形態の効果について述べる。
 第1実施形態の連携システム1(連携装置10)は、実装コードを開発する知識のないユーザであっても、機能実行装置80の内部機能を、サーバ90の今まで利用したことのない新たなサービス(機能)に連携させて動作させることができる。
 その理由は、取得部11が、API情報と、APIシーケンス情報と、ファンクション情報とのうちのAPI情報、あるいは、API情報を含む複数の情報、つまり、サーバ90のサービスとの連携に必要な情報を生成する機能を備えているからである。そして、連携部12が、その生成された情報に基づいて、利用対象の機能とサーバ90のサービスとの連携動作を制御するからである。
 したがって、ユーザは、今まで利用したことのないサービスに機能実行装置80の内部機能を連携させる実装コードを開発する必要はない。つまり、ユーザは、実装コードを開発する知識を持たなくとも、機能実行装置80の内部機能をサーバ90の所望のサービスに連携させて動作させることができる。
 <第2実施形態>
 以下に、本発明に係る第2実施形態を説明する。なお、第2実施形態の説明において、第1実施形態と同一構成部分には同一符号を付し、その共通部分の重複説明は省略する。
 この第2実施形態では、本発明に係る連携システムは、画像形成装置に組み込まれているとする。図6は、第2実施形態の連携システムの機能構成を簡略化して表すブロック図である。
 第2実施形態の連携システム2は、連携装置20と、スキャナ部81と、プリンタ部82と、記憶部83とを備える。連携装置20は、取得部(取得手段)21と、連携部(連携手段)23とを備え、さらに、ユーザインタフェース部(ユーザインタフェース手段)24を備える。
 スキャナ部81およびプリンタ部82は、機能実行装置85を構成する。スキャナ部81は、写真や絵や文字等をスキャンすることによりデジタルの画像データを取得するスキャナ機能を実行する。プリンタ部82は、文書や絵や写真を印刷するプリント機能を実行する。
 連携装置20は、スキャナ部81によるスキャナ機能またはプリンタ部82によるプリント機能を、サーバ90のサービス(機能)と連携して実行(動作)させる機能を有する。連携装置20は、サービスを提供するサーバ90と通信可能に接続される。例えば、連携装置20は、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せによって構成される情報通信網70を介して、サーバ90に接続される。この第2実施形態では、サーバ90は、文書を管理するサービスを提供しているとする。また、サーバ90は、サービスのAPIとして、HTTP(Hypertext Transfer Protocol)に基づくWEB API(World Wide Web API)を公開しているとする。
 なお、図6では、連携装置20、スキャナ部81、プリンタ部82、および、記憶部83を1つずつ表しているが、連携装置20の数および機能実行装置85の数は限定されない。また、図6では、1つのサーバ90が表されているが、連携システム2が接続するサーバの数およびサーバ90から提供されるサービスの数も限定されない。
 次に、連携システム2が組み込まれる画像形成装置のハードウェア構成について説明する。図7は、その画像形成装置のハードウェア構成を簡略化して表すブロック図である。
 図7に表されるように、画像形成装置は、CPUを含む制御部2001と、不揮発性メモリ2002と、ネットワークインタフェース2003と、タッチパネルや操作ボタン等の入力装置2004とを備えている。当該画像形成装置は、さらに、液晶ディスプレイ等の表示装置2005と、スキャナ装置2006と、プリンタ装置2007とを備えている。
 制御部2001は、不揮発性メモリ2002に記憶された情報、入力装置2004からの入力情報およびネットワークインタフェース2003を介して受信される情報に基づいて、画像形成装置の全体的な動作を制御する。
 不揮発性メモリ2002は、スキャナ装置2006およびプリンタ装置2007の動作に必要な情報(プログラムや各種データ)、および、連携装置20が動作するために必要な情報(プログラムや各種データ)を記憶する。
 ネットワークインタフェース2003は、サーバ90やその他の外部の装置との通信を可能にする機能を備えている。
 入力装置2004は、スキャナ装置2006およびプリンタ装置2007が機能を実行する際に必要な設定情報、および、連携装置20が動作する際に必要な各種の入力情報を受け付ける。
 表示装置2005は、文字や画像を画面表示する装置であり、入力装置2004を用いて情報を入力することをユーザに促す入力画面や、画像形成装置の動作の結果を表示する。
 スキャナ装置2006は、自動原稿送り装置(ADF:Auto Document Feeder)または原稿台(FB:Flat Bed)に載置された原稿を読み取って画像データを生成する。また、スキャナ装置2006は、各種のスキャン設定データ(ファイル形式、カラーモード、解像度、濃度、読取モード等)にしたがって、原稿の読み取りおよび画像処理を行う。各種のスキャン設定データは、あらかじめ設定されているか、または、入力装置2004を介して入力される。また、スキャナ装置2006は、必要に応じて、生成した画像データの圧縮または伸長を行う。スキャナ装置2006は、スキャナ部81を構成する。
 プリンタ装置2007は、印刷対象の画像データを紙等の記録媒体に印刷する。また、プリンタ装置2007は、印刷を行う際には、プリント設定データ(部数、用紙サイズ、用紙種類、カラーモード、解像度、給紙トレイ等)に従う。各種のプリント設定データは、あらかじめ設定されているか、または、入力装置2004を介して入力される。プリンタ装置2007は、プリンタ部82を構成する。
 連携システム2が上述したようなハードウェア構成を持つ画像形成装置に組み込まれる場合には、例えば、取得部21および連携部23は、制御部2001およびネットワークインタフェース2003によって構成される。また、記憶部83は、不揮発性メモリ2002によって構成される。また、ユーザインタフェース部24は、制御部2001と、入力装置2004と、表示装置2005とによって構成される。なお、連携装置20およびその機能部を構成するハードウェア構成は、上述した構成に限定されない。
 次に、連携装置20を構成する取得部21と連携部23とユーザインターフェース部24について説明する。
 取得部21は、外部から供給された定義ファイル(定義情報)を解析することにより、API情報、APIシーケンス情報、および、ファンクション情報を生成する機能を備えている。また、取得部21は、生成した情報を記憶部83に書き込む機能を備えている。
 ここで、API情報とは、外部のサーバ90が提供するサービスによって公開され当該サービスを利用するためにサーバ90と通信する際に必要なAPIを表す情報である。この第2実施形態では、API情報を生成するために外部から供給される定義ファイルを、API定義ファイルと呼ぶことにする。
 APIシーケンス情報とは、APIを複数利用する場合にAPIの使用順序を決定する情報である。この第2実施形態では、APIシーケンス情報を生成するために外部から供給される定義ファイルを、APIシーケンス定義ファイルと呼ぶことにする。
 ファンクション情報とは、APIに基づきサーバ90のサービスに連携させて動作させる内部機能を特定する情報を含む情報である。この第2実施形態では、ファンクション情報を生成するために外部から供給される定義ファイルを、ファンクション定義ファイルと呼ぶことにする。
 この第2実施形態で、API定義ファイル、APIシーケンス定義ファイル、および、ファンクション定義ファイルは、例えばユーザによって生成される。例えば、これらの定義ファイルが、XML(Extensible Markup Language)形式やJSON(JavaScript(登録商標) Object Notation)形式で記述される場合には、ユーザは、テキストエディタや専用のアプリケーション等を用いて生成できる。ユーザが定義ファイルを生成した場合には、取得部21には、例えば、その定義ファイルを生成した装置(図示せず)からネットワークインタフェース2003を介して定義ファイルが供給される。また、取得部21は、公知のXMLパーサ(Expat等)やJSONパーサ(yajl等)の技術を採用することにより、これらの定義ファイルを解析してもよい。
 API定義ファイルの一例である、XML形式で記述された定義ファイルは図8に表される。また、図8に表されるAPI定義ファイルに基づき生成されるAPI情報の一例は図9に表される。取得部21は、図8のAPI定義ファイルを解析することにより、API定義ファイルから必要な情報を抽出し、図9のようなAPI情報を生成する。
 図8および図9の例では、API定義ファイルから抽出される情報は、API名と、メソッドと、URL(Uniform Resource Locator)と、ヘッダ部と、ボディ部と、レスポンス形式と、レスポンス取得キーとをそれぞれ表す情報である。ここで、API名は、そのAPIの名称を表す。メソッドは、サーバ90のサービスにリンクするためにサーバ90に向けて送信するHTTPリクエストで用いられるメソッドを表す。URLは、HTTPリクエストの送信先のパス名を表す。ヘッダ部は、HTTPリクエストのヘッダ部を表す。ボディ部は、HTTPリクエストのボディ部を表す。レスポンス形式は、HTTPレスポンスのボディ部のデータ形式を表す。レスポンス形式としては、例えば、XMLまたはJSONが設定される。レスポンス取得キーについては後述する。
 なお、API定義ファイルから抽出される情報は、次のような入力変数、取得変数、内部機能関連変数、および、依存変数を含むことができる。
 入力変数とは、ユーザによって入力される情報によって置き換えられる変数である。図8および図9の例では、入力変数は、その変数名(この例では、user)が括弧で囲まれた“(user)”として記載されている。
 取得変数とは、取得値によって置き換えられる変数である。ここで、取得値とは、APIに基づくサーバ90のサービスによる通信により取得される情報である。この取得値として取得される情報は、API定義ファイルに設定されているレスポンス取得キーによって定められる。例えば、レスポンス取得キーとして要素名が設定されている場合、その要素名に対応する値(情報)が、HTTPレスポンスのボディ部から取得値として取得される。例えば、API定義ファイルにおいて、API名“login”のレスポンス取得キーには、要素名“REGISTID”が設定されている。なお、レスポンス取得キーとして設定される要素名は複数であってもよい。
 内部機能関連変数とは、内部機能から得られる情報で置き換えられる変数である。図8の例では、内部機能関連変数は、変数名(この例では、IMAGEDATA)がドル記号で挟まれた$IMAGEDATA$の態様でもってAPI名“upload”のボディ部に記載されている。なお、その変数名“IMAGEDATA”は、スキャナ部81のスキャン機能により得られる画像データを表している。
 依存変数は、他の変数の内容に依存して値が定まる変数である。図8の例では、依存変数は、変数名(この例では、Content-Length)が波括弧で囲まれた{Content-Length}の態様でもってAPI名“upload”のヘッダ部に記載されている。なお、Content-Lengthは、ボディ部のデータ長を表しており、この依存変数{Content-Length}は、API名“upload”のボディ部に含まれる内部機能関連変数“$IMAGEDATA$”に置き換えられる画像データの長さに基づいて定まる。
 APIシーケンス定義ファイルの一例である、XML形式で記述された定義ファイルは図10に表される。また、図10に表されるAPIシーケンス定義ファイルに基づき生成されるAPIシーケンス情報の一例は図11に表される。取得部21は、図10のAPIシーケンス定義ファイルを解析することにより、APIシーケンス定義ファイルから必要な情報を抽出し、図11のようなAPIシーケンス情報を生成する。
 図10および図11の例では、取得部21がAPIシーケンス定義ファイルから抽出する情報は、シーケンス名と、API名と、次処理判定情報である。シーケンス名は、このAPIシーケンスの名称を表す。API名は、このAPIシーケンスにおいて順次使用される各APIの名称を表す。次処理判定情報は、各APIによる通信結果に基づいて次に行う処理を判定する際に利用する情報を表す。なお、この例では、API名の次に記載された次処理判定情報は、そのAPI名を持つAPIに基づく通信処理の次に行う処理を判定するために用いられる情報であるとする。また、この例に表されているように、1つのAPI名から次のAPI名が記載されている部分までの範囲内に、複数の次処理判定情報が記載される場合、それら次処理判定情報は、互いに異なる判定情報を表している。
 次処理判定情報は、ステータスコードと、結果キーと、結果値と、論理演算と、次処理API名とをそれぞれ表す情報を含む。ステータスコードは、HTTPレスポンスで得られる3桁の数字からなるコードである。結果キーは、HTTPレスポンスのボディ部からAPIの結果として取得する要素名である。結果値は、結果キーの要素名を持つ要素の内容である。論理演算は、ステータスコードの真偽判定および結果値の真偽判定の論理演算方法を表す。例えば、論理演算としては、OR(論理和)またはAND(論理積)が設定される。ここで、ステータスコードの真偽判定とは、実際に得られたHTTPレスポンスのステータスコードと、この次処理判定情報に含まれるステータスコードとが等しいかどうかの真偽を判定する処理である。また、結果値の真偽判定とは、実際に得られたHTTPレスポンスの結果値と、この次処理判定情報に含まれる結果値とが等しいか否かの真偽を判定する処理である。これらステータスコードの真偽判定結果および結果値の真偽判定結果は、論理演算として次処理判定情報に設定された論理演算でもって、連携部23によって演算処理される。この演算結果が、この次処理判定情報の判定結果となる。次処理API名は、次処理判定情報の判定結果が真であった場合に次に処理するAPI名または終了であることを表す。なお、次処理API名として設定される“NORMAL_END(正常終了)”は、次処理判定情報の判定結果が真であった場合に、APIシーケンスを正常終了させることを表す。また、次処理API名に設定される“ERROR_END(異常終了)”は、次処理判定情報の判定結果が真であった場合に、このAPIシーケンスを異常終了させることを表す。
 ファンクション定義ファイルの一例である、XML形式で記述されたファイルは図12に表される。また、図12に表されるファンクション定義ファイルに基づいて生成されるファンクション情報の一例は図13に表される。取得部21は、図12のファンクション定義ファイルを解析することにより、ファンクション定義ファイルから必要な情報を抽出し、図13のようなファンクション情報を生成する。
 図12および図13の例では、ファンクション定義ファイルから抽出される情報は、ファンクション名と、APIシーケンス特定情報としてのシーケンス名と、入力変数情報と、内部機能特定情報としての内部機能種別である。ファンクション名は、内部機能と利用対象のサービスとの組み合わせに名づけられた名称を表す。シーケンス名は、その内部機能と利用対象のサービスとの組み合わせによる連携動作を制御する際に利用されるAPIシーケンス情報の名称を表す。入力変数情報は、その連携動作で用いられるAPI情報に含まれる入力変数に関する情報である。この入力変数情報は、この例では、1つの入力変数に関する複数種の情報を含む情報群である。例えば、入力変数情報は、入力変数の変数名、型、初期値、長さ、表示名をそれぞれ表す情報を含む。変数名は、API情報で用いられる入力変数の名称を表す。型は、入力変数の型を表し、例えば、整数型や文字列型等が設定される。初期値は、入力変数の初期値を表し、例えば、空の文字列であれば“NULL”等が設定される。表示名は、ユーザインタフェース部24が用いる入力変数の名称であり、例えば、表示装置2005の入力画面に表示される。図12および図13の例では、1つ目のファンクション情報は、図9のAPI情報に含まれる入力変数“(user)”に関連する入力変数情報を含んでいる。内部機能種別は、サーバ90のサービスと連携させる内部機能を特定する内部機能特定情報を表す。例えば、内部機能種別には、“スキャン”または“プリント”が設定される。
 ユーザインタフェース部24は、連携動作を実行させるサービスと内部機能との組み合わせ(この例では、ファンクション名)をユーザに選択させるユーザインタフェースを提供する。例えば、ユーザインタフェース部24は、ファンクション名のリストを、入力装置2004によってユーザがファンクションを選択可能な状態で、表示装置2005に表示する。
 また、ユーザインタフェース部24は、ユーザに情報を入力させるユーザインタフェースを提供する。具体的には、ユーザインタフェース部24は、入力装置2004を用いてユーザに情報を入力させる入力画面を、表示装置2005に表示する。
 例えば、ユーザインタフェース部24は、選択されたファンクション名を持つファンクション情報に含まれる入力変数情報に基づいて、入力変数としての入力値を、ユーザに入力させる入力用インタフェースを提供する。
 また、ユーザインタフェース部24は、外部のサービスと連携させる内部機能で用いられる設定情報を、ユーザに入力させる設定用インタフェースを提供する。つまり、ユーザインタフェース部24は、選択されたファンクション名を持つファンクション情報に含まれる内部機能特定情報に基づいて、スキャナ部81またはプリンタ部82の設定情報を入力する設定用インタフェースを提供する。
 また、ユーザインタフェース部24は、サーバ90のサービスに連携した内部機能の実行結果を表示装置2005に表示する。
 連携部23は、ユーザによって選択されたファンクション名を持つファンクション情報を参照することにより、APIシーケンス情報を記憶部83から読み出す。
 また、連携部23は、読み出したAPIシーケンス情報に基づいて定まる使用順序でAPI情報を用いてサーバ90のサービスとの通信を行う。つまり、連携部23は、APIシーケンス情報に含まれる次処理判定情報に基づいて、各APIを用いたサーバ90のサービスとの通信処理を順次実行する。例えば、連携部23は、あるAPIに基づくサーバ90のサービスとの通信結果に基づき真と判定された次処理判定情報に基づいて、次処理API名の表すAPIに基づいてサーバ90のサービスとの通信を実行すればよい。
 また、連携部23は、ユーザが入力した入力値をユーザインタフェース部24を介して取得し、APIに基づいたサーバ90のサービスとの通信では、入力変数を、その取得した入力値で置き換えたAPI情報を用いて、通信を行う。
 具体的には、例えば、連携部23は、図11のAPIシーケンス情報に含まれる1つ目のAPI名に対応するAPI情報に基づいて、HTTPリクエストを生成し、サーバ90のサービスに送信する。その後、連携部23は、HTTPレスポンスを受信した場合に、この受信したHTTPレスポンスに含まれるステータスコードと、このAPIの次処理判定情報に含まれるステータスコードとが等しいか否かを判定する。また、連携部23は、受信したHTTPレスポンスに含まれる結果キーの値(結果値)と、次処理判定情報に含まれる結果値とが等しいか否かを判定する。そして、連携部23は、ステータスコードの真偽判定結果と、結果値の真偽判定結果とを用いて、次処理判定情報に含まれる論理演算を行い、その結果が真であるか否かを判定する。連携部23は、真であると判定された次処理判定情報に含まれる次処理API名に対応するAPI情報に基づいて、同様の処理を繰り返せばよい。
 さらに、連携部23は、API情報に含まれる内部機能関連変数を、内部機能から得られる情報で置き換え、その情報で置き換えたAPI情報を用いてサーバ90のサービスとの通信を行う。
 例えば、連携部23は、内部機能関連変数を、内部機能の実行結果に置き換える。具体的には、例えば、API情報に、スキャナ部81からの画像データを表す内部機能関連変数が含まれている場合には、連携部23は、スキャナ部81にスキャナ機能を実行させ、実行結果としての画像データを得る。このとき、連携部23は、ユーザインタフェース部24によってユーザが入力したスキャン設定情報を用いて、スキャナ部81にスキャナ機能を実行させてもよい。そして、連携部23は、内部機能関連変数を画像データで置き換えたAPI情報に基づいてHTTPリクエストを生成し、外部サービスに送信する。
 また、例えば、連携部23は、サーバ90との通信結果から得られる取得値を用いて、内部機能を実行してもよい。具体的には、API情報に含まれるレスポンス取得キーに、HTTPレスポンスに含まれる画像データを指定する情報が設定されている場合には、連携部23は、レスポンス取得キーに基づいて画像データを取得値として取得する。そして、連携部23は、取得値をプリンタ部82に渡してプリント機能を実行させる。このとき、連携部23は、ユーザインタフェース部24によってユーザが入力したプリント設定情報を用いて、プリンタ部82にプリント機能を実行させてもよい。
 また、連携部23は、API情報に含まれる取得変数を取得値で置き換え、取得値で置き換えたAPI情報を用いてサーバ90との通信を行う。ここで、取得値は、連携部23が内部機能をサーバ90のサービスに連携させる機能を実行することにより、サーバ90から得られた値である。
 また、連携部23は、API情報に含まれる依存変数を置き換えるための値を、他の変数の置き換え内容に応じて算出する。そして、連携部23は、算出した値で依存変数を置き換えたAPI情報を用いて、サーバ90のサービスとの通信を行う。
 このように、連携部23は、サーバ90との通信において得られるHTTPレスポンス(XML形式やJSON形式)に基づいて、次処理判定情報に基づく処理や、レスポンス取得キーで定められた取得値の取得処理を行う。このため、連携部23は、公知のXMLパーサやJSONパーサの技術を採用してもよい。
 以上のように構成された連携システム2の動作について、以下に説明する。
 図14は、連携システム2(連携装置20)が、今まで利用したことのない新たなサービスに適用する場合の動作例を表すフローチャートである。なお、この図14に表されるフローチャートは、連携装置20を構成する制御部(CPU)2001が実行する制御手順を表している。
 まず、取得部21は、API定義ファイルと、APIシーケンス定義ファイルと、ファンクション定義ファイルとを取得すると(ステップS21)、取得した各定義ファイルを解析する(ステップS22)。例えば、各定義ファイルがXML形式であれば、取得部21は、各定義ファイルをXML構文解析手法により解析し、API情報、APIシーケンス情報、ファンクション情報を生成するために必要な情報を抽出する。
 次に、取得部21は、定義ファイルにエラーがあるか否かを判断する(ステップS23)。
 定義ファイルにエラーがなければ、取得部21は、各定義ファイルから抽出した情報に基づいて、API情報、APIシーケンス情報、ファンクション情報を生成し、記憶部83に書き込む(記憶する)(ステップS24)。
 一方、エラーがあった場合、取得部21は、動作を終了する。このとき、取得部21は、ユーザインタフェース部24に、定義ファイルのエラーを表す情報を出力してもよい。この場合には、ユーザインタフェース部24によって、定義ファイルにエラーがあったことが表示装置2005に表示される。
 図15は、連携装置20が、ユーザによって選択された連携動作を実行する場合の動作例を表すフローチャートである。ここでは、内部機能の実行結果を用いてサーバ90のサービスを利用する場合の動作について説明する。なお、図15に表されるフローチャートは、連携装置20を構成する制御部(CPU)2001が実行する制御手順を表している。
 まず、連携部23は、ユーザが選択したファンクション名を表す情報をユーザインタフェース部24を介して取得し、その選択されたファンクション名を持つファンクション情報を、記憶部83から読み出す(ステップS31)。
 次に、ユーザインタフェース部24は、ファンクション情報に含まれる入力変数情報と内部機能種別とに基づいて、入力値および内部機能の設定情報をユーザが入力する入力画面を表示装置2005に表示する(ステップS32)。
 次に、ユーザインタフェース部24は、入力装置2004を利用してユーザが入力した入力値および設定情報を取得する(ステップS33)。
 次に、連携部23は、その取得した設定情報に含まれている内部機能種別が表す内部機能の実行を指示する(ステップS34)。
 そして、連携部23は、ファンクション情報に含まれるシーケンス名のAPIシーケンス情報を記憶部83から読み出す(ステップS35)。
 また、連携部23は、その読み出したAPIシーケンス情報に含まれるAPI名のAPI情報を記憶部83から読み出す(ステップS36)。
 この際、その読み出したAPIシーケンス情報に基づいたAPI情報を記憶部83から最初に読み出す場合には、連携部23は、APIシーケンス情報に含まれる1つ目のAPI名に対応するAPI情報を読み出せばよい。
 次に、連携部23は、その読み出したAPI情報における各種の変数として置き換える(代入する)情報を取得し(ステップS37)、取得した情報(値)を各種の変数に置き換える。具体的には、連携部23は、読み出したAPI情報に入力変数が含まれていれば、ユーザが入力した入力値を取得し、当該取得した入力値で入力変数を置き換える(代入する)。また、連携部23は、読み出したAPI情報に内部機能関連変数が含まれていれば、内部機能が実行したことにより得られた情報(実行結果情報)に内部機能関連変数を置き換える(代入する)。また、連携部23は、読み出したAPI情報に依存変数が含まれていれば、入力変数、取得変数、または、内部機能関連変数等の他の変数が設定された内容に基づき算出した値に依存変数を置き換える(代入する)。
 そして、連携部23は、変数が置き換えられたAPI情報に基づいて、所望のサービスを提供するサーバ90と通信する(ステップS38)。具体的には、連携部23は、変数が設定(入力)されたAPI情報に基づいて、HTTPリクエストを生成する。そして、連携部23は、生成したHTTPリクエストをサーバ90に送信し、その後、HTTPレスポンスをサーバ90から受信する。
 その後、連携部23は、API情報のレスポンス形式に基づいて、サーバ90のサービスとの通信結果を解析し、必要な情報を抽出する(ステップS39)。
 例えば、連携部23は、HTTPレスポンスから、ステータスコードと、結果値とを抽出する。結果値は、通信に利用したAPIの次処理判定情報における結果キーとして設定された要素の値である。また、連携部23は、通信に利用したAPIのAPI情報においてレスポンス取得キーに設定された要素がHTTPレスポンスに含まれていれば、その要素の値を取得値として抽出する。
 その後、連携部23は、サーバ90との通信結果から抽出した情報と、APIシーケンス情報に含まれる次処理判定情報とを用いて、次に実行するAPIがあるか否かを判断する(ステップS40)。
 具体的には、連携部23は、抽出したステータスコードが、次処理判定情報で設定されたステータスコードと一致するか否かの真偽判定を行う。また、連携部23は、抽出した結果値が、次処理判定情報で設定された結果値と一致するか否かの真偽判定を行う。そして、連携部23は、ステータスコードの真偽判定結果と、結果値の真偽判定結果とを、次処理判定情報に設定された論理演算によって演算する。そして、連携部23は、論理演算結果が真となる次処理判定情報の次処理API名に設定された内容を参照する。このとき、次処理API名にAPI名が設定されていれば、連携部23は、次に実行するAPIがあると判断する。また、次処理API名に終了を表す情報が設定されていれば、連携部23は、次に実行するAPIがないと判断する。
 ステップS40において、次に実行するAPIがあると判断した場合には、連携部23は、次処理API名に設定されたAPIについて、ステップS36からの処理を繰り返す。このように処理を繰り返す際には、連携部23は、ステップS36において、その設定された次処理API名に対応するAPI情報を読み出せばよい。また、ステップS37において、連携部23は、読み出したAPI情報に取得変数が含まれていれば、サーバ90との通信により得られた取得値を取得変数に置き換える(代入する)。
 一方、ステップS40において、次に実行するAPIがないと判断した場合、ユーザインタフェース部24は、ファンクションの実行結果を表示装置2005に表示する(ステップS41)。例えば、ユーザインタフェース部24は、次処理API名に設定されていた終了を表す情報の内容に応じて、正常終了または異常終了を表す情報を表示してもよい。
 これにより、内部機能をサーバ90のサービスと連携させて実行させる場合の連携装置20の動作が終了する。
 以下に、連携システム2(連携装置20)の動作を具体例で示す。
 ここでは、記憶部83には、図9、図11、図13に表されているAPI情報、APIシーケンス情報、および、ファンクション情報が格納されているとする。また、ユーザが、“スキャンデータをサービスAにアップロードする(scan To service A)”という連携動作を入力装置2004を利用して選択したことを表す情報がユーザインタフェース部24を介して連携装置20に入力されたと仮定する。
 まず、連携部23は、図13に表されているファンクション名が“scan To service A”であるファンクション情報を記憶部83から読み出す(ステップS31)。以下、そのファンクション情報を、ファンクション情報“scan To service A”とも記載する。
 ファンクション情報“scan To service A”には、入力変数“user”に関する入力変数情報と、スキャン機能を示す内部機能特定情報とが含まれる。このファンクション情報に基づいて、ユーザインタフェース部24は、図16に表すような入力画面を表示装置2005に表示する(ステップS32)。この入力画面では、変数“user”(表示名“ユーザ名”)を入力する欄にユーザが文字情報を入力するためにテキスト入力ボックスが表示可能となっている。また、スキャン機能の複数の設定情報を入力する各欄においては、設定情報として設定可能な複数の候補情報が一覧表示され、かつ、それら候補情報の中から択一的に所望の設定情報を選択可能な状態で表示される。
 ユーザインタフェース部24により入力画面が表示されることにより、連携装置20は、入力された入力値および設定情報を得ることができる(ステップS33)。例えば、図17に表されているように、入力画面において、ユーザ名“taro”がユーザにより入力されることにより、連携装置20は、入力変数として“taro”を得ることができる。また、スキャン機能の設定情報として、例えば、ファイル形式はJPEG(Joint Photographic Experts Group)が、カラーモードはカラーが、解像度は400が、それぞれユーザにより設定されたとする。さらに、スキャン機能の設定情報として、例えば、濃度は普通が、読取モードはADF(Automatic Document Feeder)が、それぞれユーザにより設定されたとする。つまり、これら設定情報を連携装置20は得たとする。
 連携部23は、その入力された設定情報を用いて、スキャナ部81に、スキャン機能を実行することを指示する(ステップS34)。このとき、スキャナ部81は、必要に応じてスキャンデータの圧縮または伸長を行ってもよい。
 ここで、ファンクション情報“scan To service A”には、APIシーケンス特定情報であるシーケンス名“service_upload”が含まれる。そこで、連携部23は、図11に表される“service_upload”という名称のAPIシーケンス情報を記憶部83から読み出す(ステップS35)。以下、そのAPIシーケンス情報を、APIシーケンス情報“service_upload”とも記載する。
 APIシーケンス情報“service_upload”には、1つ目のAPI名として“login”が含まれる。これにより、連携部23は、図9に表される“login”という名称を持つAPI情報を記憶部83から読み出す(ステップS36)。以下、そのAPI情報を、API情報“login”とも記載する。
 その後、連携部23は、API情報“login”において、URLに含まれる入力変数“(user)”を、入力画面においてユーザが入力したユーザ名“taro”に置き換える(ステップS37)。
 また、連携部23は、API情報“login”に含まれるメソッド、URL、ヘッダ部、ボディ部を用いて、サーバ90とのHTTP通信を行う(ステップS38)。具体的には、連携部23は、図18Aに表されるようなHTTPリクエストを生成する。そして、連携部23は、その生成したHTTPリクエストをサーバ90に送信する。これにより、連携部23は、サーバ90から例えば図18Bに表されるようなHTTPレスポンスを受信する。
 その後、連携部23は、API情報“login”のレスポンス形式に設定された“XML”に基づいて、サーバ90との通信により得られたHTTPレスポンスを解析し、必要な情報を抽出する(ステップS39)。
 具体的には、連携部23は、図18Bに表されるHTTPレスポンスから、ステータスコード“200”を抽出する。また、連携部23は、APIシーケンス情報“service_upload”では、API名“login”に属する最初に記載されている次処理判定情報における結果キーに設定されている要素“RESULT”を参照する。そして、連携部23は、HTTPレスポンスから、要素“RESULT”の値“OK”を結果値として抽出する。また、連携部23は、API情報“login”におけるレスポンス取得キーに設定されている要素“REGISTID”を参照する。そして、連携部23は、HTTPレスポンスのボディ部から、要素“REGISTID”の値“12345”を取得値として抽出する。
 その後、連携部23は、HTTPレスポンスから抽出した情報と、API名“login”の次処理判定情報とに基づいて、次に実行するAPIがあるか否かを判断する(ステップS40)。
 具体的には、連携部23は、HTTPレスポンスから得られたステータスコード“200”が、API名“login”の最初に記載されている次処理判定情報に含まれるステータスコード“200”に等しい(真)であるか否かを判断(真偽判定)する。これにより、連携部23は、ステータスコードは真であると判断する。また、連携部23は、HTTPレスポンスから抽出した結果値“OK”が、この次処理判定情報に含まれる結果値“OK”に等しい(真)であるか否かを判断(真偽判定)する。これにより、連携部23は、結果値は真であると判断する。そして、連携部23は、この次処理判定情報に含まれる論理演算“AND”に基づき、ステータスコードの真偽判定の結果(真)と、結果値の真偽判定の結果(真)との論理積を演算する。これにより、連携部23は、論理演算の結果が真であることを検知する。そして、連携部23は、この次処理判定情報に含まれる次処理API名“upload”に基づき、次処理が有ると判断する(ステップS40でYes)。然る後に、連携装置20は、API名“upload”を持つAPI情報、APIシーケンス情報等を利用して、ステップS36以降の動作を繰り返す。
 つまり、連携部23は、図9に表されるAPI情報“upload”を記憶部83から読み出す(ステップS36)。
 次に、連携部23は、API情報“upload”のURLに含まれる入力変数“(user)”を、入力画面によりユーザが入力したユーザ名“taro”に置き換える。また、連携部23は、URLに含まれる取得変数“[REGISTID]”を、サーバ90との通信によるHTTPレスポンスから抽出した取得値“12345”に置き換える。さらに、連携部23は、ボディ部に含まれる内部機能関連変数“$IMAGEDATA$”を、スキャナ部81から得られた画像データに置き換える。また、連携部23は、ヘッダ部における依存変数“{Content-Length}”を、画像データを置き換えたボディ部のデータ長の値に置き換える(ステップS37)。
 そして、連携部23は、変数に情報が入力されたAPI情報“upload”に含まれるメソッド、URL、ヘッダ部、ボディ部を用いて、サーバ90とのHTTP通信を行う(ステップS38)。具体的には、連携部23は、図19Aに表されるようなHTTPリクエストを生成する。そして、連携部23は、生成したHTTPリクエストをサーバ90に送信する。これにより、連携部23は、サーバ90から図19Bに表されるようなHTTPレスポンスを受信する。
 その後、連携部23は、API情報“upload”のレスポンス形式に設定された“XML”に基づいて、サーバ90との通信により得られたHTTPレスポンスから必要な情報を抽出する(ステップS39)。
 具体的には、連携部23は、図19Bに表されるようなHTTPレスポンスから、ステータスコード“200”を抽出する。また、連携部23は、APIシーケンス情報“service_upload”におけるAPI名“upload”に最初に記載されている次処理判定情報の結果キーに設定されている要素“RESULT”を参照する。これにより、連携部23は、HTTPレスポンスから、要素“RESULT”の値“OK”を結果値として抽出する。
 そして、連携部23は、その抽出した情報と、API名“upload”に最初に記載されている次処理判定情報とに基づいて、次に実行するAPIがあるか否かを判断する(ステップS40)。
 具体的には、連携部23は、HTTPレスポンスから抽出したステータスコード“200”が、API名“upload”に最初に記載されている次処理判定情報に含まれるステータスコード“200”と等しい(真)か否かを判断(真偽判定)する。これにより、連携部23は、ステータスコードに関する真偽判定は真であると判断する。また、連携部23は、HTTPレスポンスから抽出した結果値“OK”が、この次処理判定情報に含まれる結果値“OK”と等しい(真)か否かを判断(真偽判定)する。これにより、連携部23は、結果値に関する真偽判定は真であると判断する。そして、連携部23は、この次処理判定情報に含まれる論理演算“AND”に基づいて、ステータスコードの真偽判定(真)と、結果値の真偽判定(真)との論理積を演算する。連携部23は、論理演算の結果が真であることを検知する。これにより、連携部23は、この次処理判定情報に含まれる次処理API名“logout”に基づいて、次処理が有ると判断する(ステップS40でYes)。然る後に、連携装置20は、API名“logout”を持つAPI情報、APIシーケンス情報等を利用して、ステップS36以降の動作を再び繰り返す。
 つまり、連携部23は、図9に表されるAPI情報“logout”を記憶部83から読み出す(ステップS36)。
 そして、連携部23は、API情報“logout”のURLに含まれる入力変数“(user)”を、ユーザにより入力されたユーザ名“taro”に置き換える(変数に情報を入力する)(ステップS37)。
 その後、連携部23は、API情報“logout”に含まれるメソッド、URL、ヘッダ部、ボディ部を用いて、サーバ90とのHTTP通信を行う(ステップS38)。具体的には、連携部23は、図20Aに表されるようなHTTPリクエストを生成する。そして、連携部23は、生成したHTTPリクエストをサーバ90に送信する。これにより、連携部23は、サーバ90から図20Bに表されるようなHTTPレスポンスを受信する。
 そして、連携部23は、API情報“logout”のレスポンス形式に設定された“XML”に基づいて、サーバ90との通信により得られたHTTPレスポンスから必要な情報を抽出する(ステップS39)。
 具体的には、連携部23は、図20Bに表されるようなHTTPレスポンスから、ステータスコード“200”を抽出する。また、連携部23は、APIシーケンス情報“service_upload”におけるAPI名“logout”に最初に記載されている次処理判定情報の結果キーに設定されている要素“RESULT”(図11を参照)を参照する。そして、連携部23は、HTTPレスポンスから要素“RESULT”の値“OK” (図20Bを参照)を結果値として抽出する。
 その後、連携部23は、その抽出した情報と、API名“logout”の次処理判定情報とに基づいて、次に実行するAPIがあるか否かを判断する(ステップS40)。
 具体的には、連携部23は、HTTPレスポンスから抽出したステータスコード“200”が、API名“logout”に最初に記載されている次処理判定情報に含まれるステータスコード“200”と等しい(真)か否かを判断(真偽判定)する。これにより、連携部23は、ステータスコードの真偽判定は真であると判断する。また、連携部23は、HTTPレスポンスから抽出した結果値“OK”が、この次処理判定情報に含まれる結果値“OK”と等しい(真)か否かを判断(真偽判定)する。これにより、連携部23は、結果値の真偽判定は真であると判断する。そして、連携部23は、この次処理判定情報に含まれる論理演算“AND”に基づいて、ステータスコードの真偽判定(真)と、結果値の真偽判定(真)との論理積を演算する。そして、連携部23は、論理演算の結果が真であることを検知する。これにより、連携部23は、この次処理判定情報に含まれる次処理API名“NORMAL_END”に基づいて、次処理は無いと判断する(ステップS40でNo)。
 これにより、連携装置20は、次処理API名が“NORMAL_END”であることに基づいて、図21Aに表されるように、“正常終了”を報知する画面をユーザインタフェース部24によって表示装置2005に表示する(ステップS41)。なお、図21Bは、次処理API名が“ERROR_END”であった場合に、“異常終了”ユーザインタフェース部24によってを報知する画面の一例である。
 このようにして、連携装置20は、内部機能をサーバ90のサービスに連携させて実行させることができる。
 なお、ここでは、内部機能であるスキャナ機能により得られた画像データをサーバ90のサービスに向けてアップロードする場合における連携装置20の動作例を述べている。連携装置20が実行する動作は、上述した動作に限定されない。例えば、連携装置20は、次のように動作することにより、サーバ90により公開されている文書を内部機能であるプリント機能によって印刷させることができる。すなわち、連携部23は、図15におけるステップS40の判断動作により次処理が無いと判断した後に、サーバ90との通信によるHTTPレスポンスから抽出した取得値を用いて、プリンタ部82に印刷を実行させてもよい。あるいは、連携部23は、図15におけるステップS36~S40の動作を繰り返し実行している場合(サーバ90との通信中)に任意のタイミングで、HTTPレスポンスから抽出した取得値を用いて、プリンタ部82に印刷を実行させてもよい。
 次に、第2実施形態の効果について述べる。
 すなわち、連携装置20(連携システム2)は、実装コードを開発する知識のないユーザであっても、サーバ90から提供される今まで利用したことのないサービスに簡単に内部機能を連携させることができる。
 その理由は、取得部21が、APIを実行するために必要な情報を含むAPI情報、APIシーケンス情報、および、ファンクション情報を生成するからである。そして、連携部23が、ユーザにより選択されたファンクション名のファンクション情報に基づいたAPIシーケンス情報により決定される使用順序でAPIを実行する。これにより、サーバ90のサービスと内部機能が連携して動作できるからである。
 これにより、ユーザは、サーバ90が公開しているAPIに基づく各種の定義ファイルを連携装置20に提供するだけで、実装コードを開発する知識がなくても、機能実行装置85の機能をサーバ90のサービスに連携させて実行させることができる。
 <第3実施形態>
 以下に、本発明に係る第3実施形態を説明する。なお、第3実施形態の説明において、第2実施形態と同様な構成部分には同一符号を付し、その重複説明は省略する。
 図22は、本発明に係る第3実施形態の連携システムの構成を簡略化して表すブロック図である。この第3実施形態の連携システム3は、画像形成装置310と、通信装置320とを有して構成される。画像形成装置310は、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せ等によって構成される情報通信網70を介して、サーバ90に接続される。また、画像形成装置310は、通信装置320も通信可能に接続されている。この画像形成装置310と通信装置320を接続する手段は、例えば、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せ等である。
 画像形成装置310は、例えば、第2実施形態で述べた画像形成装置と同様なハードウェア構成(図7を参照)を備えている。また、通信装置320は、図23に表されるようなハードウェア構成を持つコンピュータ装置により構成される。つまり、通信装置320は、CPU3201と、RAM3202と、ROM3203と、記憶装置(ハードディスク装置)3204と、ネットワークインタフェース3205と、入力装置3206と、表示装置3207とを備えている。通信装置320の具体例として、例えば、スマートデバイス、パーソナルコンピュータ装置、あるいは、ゲートウェイ機器等を挙げることができる。
 画像形成装置310は、図22に表されているように、機能部として、スキャナ部81およびプリンタ部82と、取得部21と、連携部23と、記憶部83とを含む。また、通信装置320は、ユーザインタフェース部24を含む。ユーザインタフェース部24は、ネットワークインタフェース3205と、入力装置3206と、表示装置3207と、CPU3201とによって構成される。このCPU3201は、ROM3203および記憶装置3204に記憶されているプログラムおよび各種データを読み出し、RAM3202に書き込み、当該書き込んだプログラムを実行することにより、様々な機能を実現する。
 この連携システム3においては、スキャナ部81とプリンタ部82により機能実行装置85が構成される。また、画像形成装置310の取得部21と連携部23と、通信装置320のユーザインタフェース部24とによって、連携装置20が構成される。
 以下に、連携システム3の動作例について説明する。まず、連携システム3が、今まで利用したことのない新たなサービスに適用する場合の動作について説明する。なお、ここでは、例えばユーザにより生成されたAPI定義ファイル、APIシーケンス定義ファイル、および、ファンクション定義ファイルが通信装置320に保持されているとする。
 連携システム3が新たなサービスに適用する場合には、例えば、通信装置320のユーザインタフェース部24が、取得部21に送信する送信対象の定義ファイルのパスをユーザに入力させる入力画面を表示装置3207に表示する。これにより、入力されたパスに応じた定義ファイルが通信装置320から画像形成装置310の取得部21に送信される。取得部21は、通信装置320から受け取ったAPI定義ファイル、APIシーケンス定義ファイル、および、ファンクション定義ファイルを解析する。そして、取得部21は、その解析により得た情報に基づいて、APIを実行するために必要なAPI情報、APIシーケンス情報およびファンクション情報を生成する。
 以下に、連携システム3が、選択された連携動作を実行する動作について説明する。この動作は、第2実施形態で述べた図15に表されている動作とほぼ同様である。ただし、ステップS31~S34、S41における動作に相違が見られる。これらの相違は、取得部21とユーザインタフェース部24が互いに異なる装置に設けられていることに因り生じている。
 すなわち、ステップS31では、通信装置320のユーザインタフェース部24は、選択されたファンクション名を表す情報を画像形成装置310に送信する。これにより、画像形成装置310の連携部23は、受信した情報の示すファンクション名を持つファンクション情報を、記憶部83から読み出す。
 ステップS32では、連携部23は、ファンクション情報に含まれる入力変数情報と内部機能設定情報とを、通信装置320に送信する。これにより、通信装置320のユーザインタフェース部24は、入力値および内部機能設定情報をユーザに入力させる入力画面を表示装置3207に表示する。
 ステップS33では、ユーザが入力した入力値および設定情報が、通信装置320のユーザインタフェース部24によって、画像形成装置310に送信されることにより、取得部21がそれら情報を得る。
 ステップS34では、連携部23は、通信装置320から受信した設定情報を用いて、内部機能を実行させる(ステップS34)。
 ステップS41では、次に実行するAPIがないと判断された場合に、連携部23が、終了を表す情報(例えば、“NORMAL_END”または“ERROR_END”)を、通信装置320に送信する。これにより、通信装置320のユーザインタフェース部24が、ファンクションの実行結果として、正常終了または異常終了を報知する画面を表示装置3207に表示する。
 次に、第3実施形態の効果について述べる。
 第3実施形態の連携システム3は、取得部21を有するので、第1や第2の実施形態と同様に、実装コードを開発する知識のないユーザであっても、機能実行装置85をサーバ90における利用したことない新たなサービスに容易に連携させることができる。
 また、この第3実施形態では、機能実行装置85を含む画像形成装置310とは異なる通信装置320が、外部のサービスとの連携機能に関するユーザインタフェース部24を有している。
 これにより、ユーザは、例えば、手元の通信装置320を操作することにより、離れている画像形成装置310を外部のサービスに連携させることができる。つまり、第3実施形態の連携システム3は、ユーザビリティを向上させることができる。さらに、ユーザが使い慣れた通信装置320を利用する使用形態とすることにより、第3実施形態の連携システム3は、ユーザに因る通信装置320の操作ミスを防止できる。
 <第4実施形態>
 以下に、本発明に係る第4実施形態を説明する。なお、第4実施形態の説明において、第2又は第3の実施形態と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
 図24は、第4実施形態の連携システム4の構成を簡略化して表すブロック図である。第4実施形態の連携システム4は、画像形成装置410と、通信装置420とを有している。
 画像形成装置410は、スキャナ部81およびプリンタ部82を含む機能実行装置である。通信装置420は、取得部21と、連携部23と、ユーザインタフェース部24と、記憶部83を含む。取得部21と連携部23とユーザインタフェース部24により連携装置20が構成される。
 通信装置420は、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せ等によって構成される情報通信網70を介して、サーバ90に接続される。また、画像形成装置410は、通信装置420にも通信可能に接続される。画像形成装置410と通信装置420の通信手段は、例えば、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せ等である。
 画像形成装置410は、第2実施形態で述べた画像形成装置と同様なハードウェア構成(図7を参照)を備えている。また、通信装置420は、第3実施形態で述べた通信装置320と同様なハードウェア構成(図23を参照)を備えている。
 以下に、連携システム4の動作について説明する。
 この第4実施形態では、取得部21が通信装置420に設けられているので、定義ファイルの取得およびAPI情報、APIシーケンス情報、ファンクション情報の生成に関係する動作は、通信装置420が実行する。なお、取得部21の動作は、第2や第3の実施形態で述べた取得部21の動作と同様である。
 第4実施形態の連携システム4が、選択された連携動作を実行する動作は、第2実施形態で述べた図15に表されている動作とほぼ同様である。ただし、この第4実施形態では、連携装置20(連携部23)が通信装置420に設けられていることにより、図15に表されている動作が、通信装置420により実行される点が第2実施形態と異なる。また、この第4実施形態では、連携装置20(連携部23)が、機能実行装置である画像形成装置410とは異なる通信装置420に設けられている。このため、連携部23と、スキャナ部81あるいはプリンタ部82との通信が必要な図15におけるステップS32およびステップS34の動作が第2実施形態とは異なる。
 すなわち、ステップS32では、通信装置420のユーザインタフェース部24が、ユーザに情報入力を促す入力画面を表示装置3207に表示する。ユーザインタフェース部24は、その入力画面を表示する前に、ファンクション情報に含まれる内部機能特定情報に対応する内部機能の設定情報がどのような情報であるかを画像形成装置410に問い合わせる。そして、ユーザインタフェース部24は、その回答(返信)を受け取る。例えば、内部機能特定情報がスキャン機能を表していれば、ユーザインタフェース部24は、画像形成装置410への問い合わせにより、スキャン機能を実行する際に必要な設定情報がどのような情報であるかを表す情報を受信する。また、内部機能特定情報がプリント機能を表していれば、ユーザインタフェース部24は、画像形成装置410への問い合わせるにより、プリンタ機能を実行する際に必要な設定情報がどのような情報であるかを表す情報を受信する。このような受信情報を利用して、ユーザインタフェース部24は、ユーザに入力値および内部機能の設定情報を入力させる入力画面を生成し当該入力画面を表示装置3207に表示する。
 ステップS34では、通信装置420の連携部23は、ユーザにより入力されたスキャン機能あるいはプリント機能に関する設定情報を画像形成装置410に送信し、この設定情報に基づいて内部機能(スキャン機能あるいはプリント機能)を実行させる。
 以下に、第4実施形態の効果について述べる。
 第4実施形態の連携システム4においても、連携装置20を備えているので、第1~第3の実施形態と同様の効果を得ることができる。
 なお、上述した第2~第4の実施形態では、API定義ファイル、APIシーケンス定義ファイル、ファンクション定義ファイルの具体例として、XML形式のファイルを挙げている。これに対し、各定義ファイルは、XML形式に限らず、その他の形式で表されていてもよい。また、第2~第4の実施形態において、API情報、APIシーケンス情報、ファンクション情報が、図9、図11、図13に表される情報を含んでいる例を挙げている。これに対し、それら情報は、それらの全ての項目を含んでいなくてもよいし、その他の項目を含んでいてもよい。各実施の形態において、API情報は、APIを用いてサーバ90(サービス)との通信を行うために必要な情報を含むものであればよい。また、APIシーケンス情報は、APIの使用順序を示すものであればよい。さらに、ファンクション情報は、内部機能と外部サービスとを連携させる際に必要な情報を含んでいればよい。
 また、第2~第4の実施形態では、連携システムの一部または全部を画像形成装置によって実現する例を中心に説明している。これに代えて、本発明に係る連携システムの一部または全部は、画像形成装置に限らず、その他の装置によって実現してもよい。
 また、第2~第4の実施形態では、外部のサービスと連携させる内部機能として、スキャナ機能およびプリンタ機能を適用する例を説明しているが、本発明における内部機能は、外部のサービスと連携可能なその他の機能であってもよい。
 また、第2~第4の実施形態では、API定義ファイルに含まれる内部機能関連変数として、スキャナ部によって取得される画像データを表す情報($IMAGEDATA$)の例を挙げて説明している。これに代えて、内部機能関連変数は、機能実行装置においてサービスと連携可能なその他の機能に関連する情報であってもよい。例えば、外部のサービスとして、機能実行装置におけるプリント枚数やスキャン枚数を管理する機能が提供されている場合には、内部機能関連変数は、プリント枚数やスキャン枚数等を表すカウンタデータ($COUNTER$)であってもよい。また、外部のサービスとして、機能実行装置におけるトナー切れや部品の故障等の警告状況を管理(監視)する機能が提供されている場合には、内部機能関連変数は、警告状況を表すアラームデータ($ALARM$)であってもよい。
 また、第2~第4の実施形態では、サーバ90のサービスによって、HTTPに基づくWEB APIが公開され、連携部23は、API情報に基づきHTTP通信を行う例を説明している。これに限らず、サーバ90のサービスによって、その他のプロトコルに基づくAPIが公開されている場合には、連携部23は、API情報に基づき該当するプロトコルを用いてサーバ90との通信を行ってもよい。
 また、第2~第4の実施形態では、取得部21が、API情報、APIシーケンス情報、および、ファンクション情報を生成し、連携部23が、これらの3つの情報に基づいて動作することを説明している。これに限らず、連携部23は、これらの3つの情報のうち1つまたは2つに基づいて動作してもよい。例えば、連携動作の実行において用いられるAPIが1つである場合、連携部23は、APIシーケンス情報の読み込みを省略可能である。この場合、ファンクション情報には、APIシーケンス情報を特定する情報の代わりに、利用するAPI情報を特定する情報が含まれていればよい。また、連携部23は、APIシーケンス情報が1つであれば、ファンクション情報を利用せず、そのAPIシーケンス情報を所定のタイミング(例えば、所定間隔等)で記憶部83から読み出す。そして、連携部23は、そのAPIシーケンス情報に従ってAPI情報に基づく動作を順次行ってもよい。
 また、連携部23は、ファンクション情報およびAPIシーケンス情報を利用せず、指定されたAPI情報を所定のタイミングで記憶部83から読み出すことにより、当該API情報に基づく動作を行ってもよい。例えば、内部機能を、その実行を伴わずに外部のサービスに連携させる場合に、連携部23は、そのように動作する。連携部23は、そのように動作する場合の具体例としては、スキャン機能やプリント機能の実行を伴わずに、カウンタデータやアラームデータを外部のサービスに送信する場合を挙げることができる。このように、連携部23は、ファンクション情報、または、ファンクション情報およびAPIシーケンス情報を利用せずに、サーバ90のサービスと内部機能を連携させることができる。取得部21は、API情報、APIシーケンス情報、および、ファンクション情報のうち、必要なものを取得すればよく、必ずしも全てを取得しなくてもよい。
 また、第2~第4の実施形態では、連携部23は、ユーザによって選択されたファンクション名の連携動作を実行する例を説明しているが、所定のタイミングで予め設定されている連携動作を実行してもよい。
 また、上述した各実施形態において、連携装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータプログラムを実行するCPUによって実現される例を中心に説明している。これ代えて、連携装置の各機能ブロックの一部又は全部が専用のハードウェアにより実現されてもよい。
 また、第2~第4の実施形態において説明している連携装置20の動作は、記憶装置(記憶媒体)に格納されているコンピュータプログラムをCPUが読み出して実行することにより実現している。このような場合において、本発明は、コンピュータプログラムのコードあるいは記憶媒体によって実現される。
 また、本発明に係る連携システムは、第2~第4の実施形態で説明した構成を適宜組み合わせて構成することが可能である。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2013年9月24日に出願された日本出願特願2013-197414を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
 外部サービスによって公開されるアプリケーションプログラミングインタフェース(API)に関する情報(API情報)と、前記APIの使用順序に関する情報(APIシーケンス情報)と、機能実行装置の内部機能を前記APIに基づき前記外部サービスに連携させる機能(ファンクション)に関する情報(ファンクション情報)との少なくともいずれかを取得する取得部と、
 前記取得部によって取得された情報を記憶する記憶部と、
 前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかに基づいて、前記内部機能と前記外部サービスとを連携させた前記ファンクションを実行する連携部と、
 を備えた連携装置。
(付記2)
 前記取得部は、外部から受信する定義情報を解析することにより、前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかを生成して前記記憶部に記憶させることを特徴とする付記1に記載の連携装置。
(付記3)
 前記ファンクション情報には、該ファンクションに対応する前記APIシーケンス情報を特定するAPIシーケンス特定情報および該ファンクションにおいて連携させる前記内部機能を特定する内部機能特定情報が含まれ、
 前記連携部は、前記ファンクション情報に含まれるAPIシーケンス特定情報の示すAPIシーケンス情報を参照し、該APIシーケンス情報の示す使用順序で前記API情報に基づき前記外部サービスとの通信を行うとともに、前記ファンクション情報に含まれる内部機能特定情報の示す内部機能を前記機能実行装置に実行させることにより、該ファンクションを実行することを特徴とする付記1または付記2に記載の連携装置。
(付記4)
 前記連携部に実行させるファンクションをユーザに選択させるユーザインタフェース部をさらに備えることを特徴とする付記1から付記3のいずれか1つに記載の連携装置。
(付記5)
 前記連携部は、前記内部機能の実行結果を用いて前記外部サービスとの通信を行うことを特徴とする付記1から付記4のいずれか1つに記載の連携装置。
(付記6)
 前記連携部は、前記外部サービスとの通信結果を用いて前記機能実行装置に前記内部機能を実行させることを特徴とする付記1から付記5のいずれか1つに記載の連携装置。
(付記7)
 前記ユーザインタフェース部は、前記内部機能に関する設定情報を入力させ、
 前記連携部は、前記ユーザインタフェース部に入力された設定情報を用いて前記機能実行装置に前記内部機能を実行させることを特徴とする付記1から付記6のいずれか1つに記載の連携装置。
(付記8)
 前記API情報には、入力変数が含まれ、
 前記ユーザインタフェース部は、入力値を入力させ、
 前記連携部は、前記入力値で前記入力変数を置き換えたAPI情報に基づいて、前記外部サービスとの通信を行うことを特徴とする付記1から付記7のいずれか1つに記載の連携装置。
(付記9)
 前記API情報には、内部機能関連変数が含まれ、
 前記連携部は、前記内部機能から得られる情報で前記内部機能関連変数を置き換えたAPI情報に基づいて、前記外部サービスとの通信を行うことを特徴とする付記1から付記8のいずれか1つに記載の連携装置。
(付記10)
 前記API情報には、前記外部サービスとの通信結果から取得する取得値を指定する情報(レスポンス取得キー)が含まれ、
 前記連携部は、前記レスポンス取得キーに基づいて、前記外部サービスとの通信結果から前記取得値を取得することを特徴とする付記1から付記9のいずれか1つに記載の連携装置。
(付記11)
 前記API情報には、取得変数が含まれ、
 前記連携部は、前記取得値で前記取得変数を置き換えたAPI情報に基づいて、前記外部サービスとの通信を行うことを特徴とする付記10に記載の連携装置。
(付記12)
 前記連携部は、前記取得値を用いて、前記内部機能を実行することを特徴とする付記10に記載の連携装置。
(付記13)
 前記API情報には、他の変数の内容に依存して値が定まる依存変数が含まれ、
 前記連携部は、他の変数の内容に応じて算出した値で前記依存変数を置き換えたAPI情報に基づいて、前記外部サービスとの通信を行うことを特徴とする付記1から付記12のいずれか1つに記載の連携装置。
(付記14)
 前記APIシーケンス情報には、前記ファンクションの実行において用いられる各APIについて、該APIを用いた前記外部サービスとの通信結果に基づき次に実行する処理を判定するための情報を表す次処理判定情報が含まれ、
 前記連携部は、前記次処理判定情報に基づいて、前記APIシーケンス情報の示す各APIを順次実行することを特徴とする付記1から付記13のいずれか1つに記載の連携装置。
(付記15)
 付記1から付記14のいずれか1つに記載の連携装置と、
 前記機能実行装置と、
 を含む連携システム。
(付記16)
 前記機能実行装置として画像形成装置を含むことを特徴とする付記15に記載の連携システム。
(付記17)
 外部サービスによって公開されるアプリケーションプログラミングインタフェース(API)に関する情報(API情報)と、前記APIの使用順序に関する情報(APIシーケンス情報)と、機能実行装置の内部機能を前記APIに基づき前記外部サービスに連携させる機能(ファンクション)に関する情報(ファンクション情報)との少なくともいずれかを取得し、
 前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかに基づいて、前記内部機能と前記外部サービスとを連携させた前記ファンクションを実行するサービス連携方法。
(付記18)
 外部から受信する定義情報を解析することにより、前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかを生成することを特徴とする付記17に記載のサービス連携方法。
(付記19)
 外部サービスによって公開されるアプリケーションプログラミングインタフェース(API)に関する情報(API情報)と、前記APIの使用順序に関する情報(APIシーケンス情報)と、機能実行装置の内部機能を前記APIに基づき前記外部サービスに連携させる機能(ファンクション)に関する情報(ファンクション情報)との少なくともいずれかを取得する処理と、
 前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかに基づいて、前記内部機能と前記外部サービスとを連携させた前記ファンクションを実行する処理と、
 をコンピュータ装置に実行させるプログラムを保持するプログラム記憶媒体。
(付記20)
 外部から受信する定義情報を解析することにより、前記API情報、前記APIシーケンス情報、および、前記ファンクション情報の少なくともいずれかを生成する処理をコンピュータ装置に実行させるプログラムをさらに保持する付記19に記載のプログラム記憶媒体。
 1,2,3,4 連携システム
 10,20 連携装置
 11,21 取得部
 13,23 連携部
 24 ユーザインタフェース部
 80 機能実行装置
 81 スキャナ部
 82 プリンタ部
 90 サーバ
 310,410 画像形成装置
 320,420 通信装置

Claims (10)

  1.  外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成する取得手段と、
     前記取得手段により生成された前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する連携手段と、
    を備える連携装置。
  2.  前記利用対象となり得るサービスと、前記実行対象となり得る機能とのうちの一方又は両方は複数有り、
     前記取得手段は、前記利用対象のサービスと前記実行対象の機能との組み合わせに応じた前記APIシーケンス情報を生成する機能と、そのAPIシーケンス情報を特定する前記APIシーケンス特定情報を含む前記ファンクション情報を前記利用対象のサービスと前記実行対象の機能との組み合わせ毎に生成する機能とを備え、
     前記連携手段は、前記利用対象のサービスと前記実行対象の機能との組み合わせに応じた前記ファンクション情報の前記APIシーケンス特定情報に基づいて特定される前記APIシーケンス情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する請求項1に記載の連携装置。
  3.  前記実行対象の機能に関わる情報をユーザに入力させる入力画面を表示するユーザインタフェース手段をさらに備えている請求項1又は請求項2に記載の連携装置。
  4.  前記API情報は、入力変数を含み、
     前記ユーザインタフェース手段は、前記入力変数として用いる情報をユーザに入力させる画面を表示する機能を備え、
     前記連携手段は、前記入力変数に前記ユーザにより入力された情報を代入した前記API情報に基づいて前記連携動作を制御する請求項3に記載の連携装置。
  5.  前記APIシーケンス情報は、次の処理を判定する情報を含む次処理判定情報を有し、
     前記連携手段は、前記APIシーケンス情報を利用して前記連携動作を制御する場合には、前記APIシーケンス情報の前記次処理判定情報に基づいて前記APIの使用順序を決定する請求項1乃至請求項4の何れか一つに記載の連携装置。
  6.  前記連携手段は、前記実行対象の機能が実行されたことにより得られた情報を前記利用対象のサービスを利用するために前記サーバに送信する機能を備えている請求項1乃至請求項5の何れか一つに記載の連携装置。
  7.  前記連携手段は、前記利用対象のサービスにより前記サーバから送信されてきた情報に基づいて前記実行対象の機能の動作を制御する請求項1乃至請求項6の何れか一つに記載の連携装置。
  8.  請求項1乃至請求項6の何れか一つに記載の連携装置と、
     外部のサーバによって提供されるサービスに連携した動作を実行する実行対象の機能を備えた機能実行装置と
    を備える連携システム。
  9.  外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成し、
     その生成した前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御するサービス連携方法。
  10.  外部のサーバによって提供されるサービスを利用するために前記サーバと通信する際に必要なアプリケーションプログラミングインタフェース(API)を表すAPI情報と、前記サーバのサービスを利用する際に複数の前記APIを用いる場合における当該APIの使用順序を決定するAPIシーケンス情報と、利用対象の前記サービスに連携した動作を実行する実行対象の機能を特定する内部機能特定情報を含むファンクション情報とのうちの前記API情報、あるいは、前記API情報を含む複数の前記情報を、外部から供給される定義情報を利用して生成する処理と、
     その生成された前記情報を利用して、前記利用対象のサービスと前記実行対象の機能との連携動作を制御する処理と
    をコンピュータによって実行させるプログラムを保持するプログラム記憶媒体。
PCT/JP2014/004778 2013-09-24 2014-09-17 連携装置、連携システム、サービス連携方法およびプログラム記憶媒体 WO2015045332A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-197414 2013-09-24
JP2013197414A JP2015064682A (ja) 2013-09-24 2013-09-24 外部サービス連携システム、外部サービス連携装置、外部サービス連携方法、および、コンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2015045332A1 true WO2015045332A1 (ja) 2015-04-02

Family

ID=52742505

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/004778 WO2015045332A1 (ja) 2013-09-24 2014-09-17 連携装置、連携システム、サービス連携方法およびプログラム記憶媒体

Country Status (2)

Country Link
JP (1) JP2015064682A (ja)
WO (1) WO2015045332A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6975414B2 (ja) * 2016-06-27 2021-12-01 ブラザー工業株式会社 プログラム及び携帯端末

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006040991A1 (ja) * 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha 端末装置、サーバ装置、及びWebサービス提供システム
JP2007060556A (ja) * 2005-08-26 2007-03-08 Canon Inc 画像形成装置及び画像形成装置の制御方法、画像形成システム、プログラム及び記憶媒体
JP2008176674A (ja) * 2007-01-22 2008-07-31 Kyocera Mita Corp 電子機器、サービス提供方法及びプログラム
JP2012098814A (ja) * 2010-10-29 2012-05-24 Toshiba Corp 情報処理装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006040991A1 (ja) * 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha 端末装置、サーバ装置、及びWebサービス提供システム
JP2007060556A (ja) * 2005-08-26 2007-03-08 Canon Inc 画像形成装置及び画像形成装置の制御方法、画像形成システム、プログラム及び記憶媒体
JP2008176674A (ja) * 2007-01-22 2008-07-31 Kyocera Mita Corp 電子機器、サービス提供方法及びプログラム
JP2012098814A (ja) * 2010-10-29 2012-05-24 Toshiba Corp 情報処理装置及びプログラム

Also Published As

Publication number Publication date
JP2015064682A (ja) 2015-04-09

Similar Documents

Publication Publication Date Title
US10044881B2 (en) Relay apparatus, communication system and communicating method
US9092704B2 (en) Image forming system, image forming apparatus, and recording medium
US20120314245A1 (en) Image processing apparatus, image processing system, method for controlling the same, and storage medium therefor
JP6223099B2 (ja) 画像処理装置、及びその制御方法、並びにプログラム
US8687219B2 (en) System which can utilize a function of an image processing apparatus as a web service
CN102279868A (zh) 信息发送装置及信息发送装置的控制方法
US8982388B2 (en) Information processing apparatus that displays operation screen and control method therefor
US8711410B2 (en) Image forming apparatus, information processing method, and storage medium for generating screen information
JP6550708B2 (ja) 画像読取装置、および、コンピュータプログラム
CN102123225A (zh) 信息处理装置及信息处理装置的控制方法
US9756201B2 (en) Information processing system, information processing device, and program having different browser functions pertaining to a plurality of web servers
JP2011109621A (ja) 画像処理装置、画像処理システム、それらの制御方法、及びプログラム
US8823980B2 (en) Printing system, image forming apparatus, data generation apparatus, storage apparatus, and control method
JP2012039478A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法及びプログラム
JP2016140044A (ja) 記入フォーム提供装置、画像形成装置及びプログラム
JP5648433B2 (ja) 共有画像印刷システム、共有画像印刷方法及び印刷装置
WO2015045332A1 (ja) 連携装置、連携システム、サービス連携方法およびプログラム記憶媒体
US9092722B2 (en) Printing control apparatus, control method, and storage medium
JP2008282311A (ja) ネットワーク装置およびデータ更新方法
JP5091802B2 (ja) 画像形成装置および画像形成システム
US11922078B2 (en) Printing device connectivity manager for a digital front end
WO2017187469A1 (ja) 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム
JP5393558B2 (ja) 画像形成装置
JP6680141B2 (ja) 画像処理装置
JP5081084B2 (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: 14848136

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

Country of ref document: EP

Kind code of ref document: A1