WO2017150472A1 - システムおよび情報処理方法 - Google Patents

システムおよび情報処理方法 Download PDF

Info

Publication number
WO2017150472A1
WO2017150472A1 PCT/JP2017/007562 JP2017007562W WO2017150472A1 WO 2017150472 A1 WO2017150472 A1 WO 2017150472A1 JP 2017007562 W JP2017007562 W JP 2017007562W WO 2017150472 A1 WO2017150472 A1 WO 2017150472A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
server
application
unit
connection
Prior art date
Application number
PCT/JP2017/007562
Other languages
English (en)
French (fr)
Inventor
松島 弘幸
楽 竹本
Original Assignee
株式会社リコー
松島 弘幸
楽 竹本
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社リコー, 松島 弘幸, 楽 竹本 filed Critical 株式会社リコー
Priority to CN201780013880.8A priority Critical patent/CN108701097A/zh
Priority to JP2018503306A priority patent/JP6673464B2/ja
Priority to US16/079,281 priority patent/US11132149B2/en
Priority to EP17759938.8A priority patent/EP3425515B1/en
Publication of WO2017150472A1 publication Critical patent/WO2017150472A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1226Discovery of devices having required properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1257Configuration of print job parameters, e.g. using UI at the client by using pre-stored settings, e.g. job templates, presets, print styles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/128Direct printing, e.g. sending document file, using memory stick, printing from a camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages

Definitions

  • the present invention relates to a system and an information processing method.
  • an application description page in which a download button (virtual button) for requesting download of the application is displayed is provided from the server to the computer device (client device) for each of a plurality of applications held by the server. And displayed on the display of the computer device. And, when the download button on the application explanation page is selected, a technique is disclosed that permits the download only if the selected application is supported by the computer device.
  • Patent Document 1 when the display content of a page (Web page) introducing an application usable by the device is changed on the server side, the program on the device side is also changed in accordance with the change.
  • a page is provided that introduces an application that can be used by the device (including a form in which the page itself is provided and a form in which the device side provides information necessary to generate the page)
  • the present invention has been made in view of the above, and a server providing a page introducing an application that can be used by a device can build pages having different display contents, and is disclosed in the area where the device is installed. It is an object of the present invention to provide a system and an information processing method capable of providing a page introducing only the application being
  • the present invention is a system comprising: a plurality of first servers; and an apparatus connected to each of the first servers via a network
  • the first server includes at least region information indicating a geographical position where the device is installed from the device, and display information indicating an application that the device corresponding to the region information can use, and the device
  • a control unit configured to transmit, to the device, Web content data including at least an application command that causes the device to execute processing related to the application, the Web received from the first server;
  • a display control unit that performs control to display a screen based on content data on a display unit; and user operation via the screen From the web browser, the web browser including: an execution unit that requests the device to execute processing related to the application corresponding to the application command by executing the application command included in the web content data accordingly And a process execution unit that executes a process related to an application according to the request based on the request.
  • the server providing the page introducing the application that can use the device can construct a page with different display content, and the page introducing only the application published in the area where the device is installed Can be provided.
  • FIG. 1 is a diagram showing an example of the configuration of a system according to the present embodiment.
  • FIG. 2 is a diagram illustrating an example of the hardware configuration of the server.
  • FIG. 3 is a diagram illustrating an example of the function of the server.
  • FIG. 4 is a diagram illustrating an example of the function of the application information management module.
  • FIG. 5 is a diagram showing an example of the first correspondence information.
  • FIG. 6 is a diagram showing an example of second correspondence information.
  • FIG. 7 is a diagram showing an example of the third correspondence information.
  • FIG. 8 is a diagram showing an example of fourth correspondence information.
  • FIG. 9 is a diagram showing an example of the fifth correspondence information.
  • FIG. 10 is a diagram showing an example of sixth correspondence information.
  • FIG. 10 is a diagram showing an example of sixth correspondence information.
  • FIG. 11 is a diagram illustrating an example of the function of the control unit.
  • FIG. 12 is a diagram illustrating an example of functions of the license management module.
  • FIG. 13 is a diagram showing an example of seventh correspondence information.
  • FIG. 14 is a diagram showing an example of eighth correspondence information.
  • FIG. 15 is a diagram showing an example of ninth correspondence information.
  • FIG. 16 is a diagram illustrating an example of the function of the control unit.
  • FIG. 17 is a diagram illustrating an example of the function of the application download management module.
  • FIG. 18 is a view showing a modification of the server.
  • FIG. 19 is a diagram illustrating an example of functions of the connection destination providing server.
  • FIG. 20 is a diagram illustrating an example of functions of the service search module.
  • FIG. 20 is a diagram illustrating an example of functions of the service search module.
  • FIG. 21 is a diagram illustrating an example of tenth correspondence information.
  • FIG. 22 is a diagram showing an example of eleventh correspondence information.
  • FIG. 23 is a diagram illustrating an example of the function of the control unit.
  • FIG. 24 is a block diagram showing an example of the hardware configuration of the MFP.
  • FIG. 25 is a schematic view showing an example of the software configuration of the MFP.
  • FIG. 26 is a diagram illustrating an example of the function of the operation unit.
  • FIG. 27 is a diagram illustrating an example of a request for acquiring connection information of a server.
  • FIG. 28 is a diagram showing an example of connection information of a server.
  • FIG. 29 is a diagram illustrating an example of an acquisition request for connection information of each module.
  • FIG. 30 is a diagram showing an example of connection information of each module.
  • FIG. 31 is a diagram illustrating an example of an acquisition request for connection information of a server and connection information of a connection destination providing server.
  • FIG. 32 is a diagram illustrating an example of connection information of a server and connection information of a plurality of connection destination providing servers.
  • FIG. 33 is a diagram showing an example of the operation screen.
  • FIG. 34 is a diagram showing an example of the area information setting screen.
  • FIG. 35 is a diagram showing an example of the area information setting dialogue screen.
  • FIG. 36 is a diagram showing an example of a sales company information input screen.
  • FIG. 37 shows an example of the error screen.
  • FIG. 38 is a diagram showing an example of the application list screen.
  • FIG. 39 is a diagram showing an example of a display information request.
  • FIG. 39 is a diagram showing an example of a display information request.
  • FIG. 40 is a diagram showing an example of the information received as a response to the display information request.
  • FIG. 41 is a diagram showing an example of the installation instruction screen.
  • FIG. 42 is a diagram showing an example of the installation confirmation screen.
  • FIG. 43 is a diagram illustrating an example of information notified from the execution unit to the processing execution unit.
  • FIG. 44 is a diagram showing an example of the input screen.
  • FIG. 45 is a diagram showing an example of application management information.
  • FIG. 46 is a diagram showing an example of application detailed information.
  • FIG. 47 is a diagram showing an example of the update instruction screen.
  • FIG. 48 is a diagram showing an example of information notified from the execution unit to the processing execution unit.
  • FIG. 49 is a diagram showing an example of the deletion instruction screen.
  • FIG. 41 is a diagram showing an example of the installation instruction screen.
  • FIG. 42 is a diagram showing an example of the installation confirmation screen.
  • FIG. 43 is a diagram illustrating an example of information notified from
  • FIG. 50 is a diagram showing an example of the deletion confirmation screen.
  • FIG. 51 is a diagram of an example of information notified from the execution unit to the processing execution unit.
  • FIG. 52 is a sequence diagram showing an example of the operation procedure of the system.
  • FIG. 53 is a flowchart showing an operation example of the MFP.
  • FIG. 54 is a flowchart showing an operation example of the server.
  • FIG. 55 is a sequence diagram showing an example of the operation procedure of the system.
  • FIG. 56 is a sequence diagram showing an example of the operation procedure of the system.
  • FIG. 57 is a sequence diagram showing an example of the operation procedure of the system.
  • FIG. 58 is a diagram showing an example of a shortcut creation instruction screen.
  • FIG. 59 is a diagram showing an example of the application list screen of the modification.
  • MFP Multifunction Peripheral
  • the multi-function device is a device having a plurality of different functions such as a copy function, a scanner function, a printer function, and a fax function.
  • FIG. 1 is a diagram showing an example of the configuration of a system (information processing system) 1 according to the present embodiment.
  • the system 1 includes servers 2 to 4 and a connection destination providing server 5 via a server 2, a server 3, a server 4, a connection destination providing server 5, and a network 7 such as the Internet. And the MFP 6 connected.
  • the servers 2 to 4 and the connection destination providing server 5 are in the form of a cloud computing type having a server device group constituted by a plurality of servers.
  • the number of servers constituting the cloud shown in FIG. 1 is an example, and the number of servers used is not limited to this.
  • MFP 6 In the example of FIG. 1, only one MFP 6 is illustrated as an apparatus included in the system 1 as a client when viewed from the cloud side, but the present invention is not limited to this, and an apparatus included in the system 1
  • the number and type of are arbitrary.
  • a PC Personal Computer
  • three servers 2 to 4 are illustrated as servers (first servers) included in the system 1, the present invention is not limited to this, and the number and types of servers included in the system 1 are arbitrary. is there.
  • connection destination providing server 5 is illustrated as the connection destination providing server (second server) included in the system 1, the present invention is not limited to this, and the connection destination providing server included in the system 1
  • device is also referred to as “MFP”.
  • the “first server” in the claims corresponds to the “servers 2 to 4”
  • the “second server” in the claims corresponds to the “connection destination providing server 5”.
  • the connection destination providing server 5 transmits connection information of the servers 2 to 4 to the MFP 6 in response to a request for acquiring connection information (URL) of the servers 2 to 4 from the MFP 6.
  • Servers 2 to 4 are configured of display information including information indicating an application that can be used by MFP 6 in response to a request from MFP 6 and screen information including an application command indicating a command for causing MFP 6 to execute processing related to the application. Web content data to be sent is sent to MFP 6.
  • the servers 2 to 4 differ from each other only in the area indicating the geographical position where the server is installed. Therefore, hereinafter, when there is no need to distinguish between the servers 2 to 4, the servers 2 to 4 are described as the server 2. In the example of FIG. 1, the area of the server 2 is Japan, the area of the server 3 is the United States, and the area of the server 4 is Europe. Hereinafter, the specific configuration of the server 2 will be described.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the server 2.
  • the server 2 includes a CPU 301, a ROM 302, a RAM 303, a communication I / F 304, an input device 305, a display device 306, and an auxiliary storage device 307.
  • the CPU 301 centrally controls the operation of the server 2.
  • the ROM 302 is a non-volatile memory that stores various data such as programs.
  • the RAM 303 is a volatile memory that functions as a work area (work area) for various processes executed by the CPU 301.
  • the communication I / F 304 is an interface for connecting to the network 7.
  • the input device 305 is a device used to input an operation by the user, and is configured of, for example, a mouse, a keyboard, and the like.
  • the display device 306 is a device that displays various types of information, and includes, for example, a liquid crystal display device.
  • the auxiliary storage device 307 is configured by, for example, an HDD (Hard Disk Drive).
  • FIG. 3 is a diagram illustrating an example of the function of the server 2.
  • the server 2 includes an application information management module 210, a license management module 220, and an application download management module 230.
  • the modules (functions) related to the present embodiment are illustrated in the example of FIG. 3, the modules included in the server 2 are not limited to these.
  • FIG. 4 is a diagram illustrating an example of the function of the application information management module 210.
  • the application information management module 210 includes a storage unit 211, a control unit 212, a screen providing unit 213, and a setting unit 214.
  • the example in FIG. 4 mainly illustrates the functions related to the present embodiment, the functions possessed by the application information management module 210 are not limited to these.
  • the storage unit 211 includes an application information database (hereinafter referred to as “application information DB”) 261 and a user information database (hereinafter referred to as “user information DB”) 262.
  • application information database hereinafter referred to as “application information DB”
  • user information database hereinafter referred to as “user information DB”
  • the application information DB 261 is linked to an organization ID identifying an organization providing an application corresponding to area information indicating a geographical position where the device (MFP 6) is installed or sales company information indicating a store of the device. For each application, open state information indicating whether or not the state is open is stored in association with model information identifying the model of the device that can use the application.
  • the application information DB 261 includes the first correspondence information shown in FIG. 5, the second correspondence information shown in FIG. 6, the third correspondence information shown in FIG. 7, and the fourth correspondence information shown in FIG. The correspondence information, the fifth correspondence information shown in FIG. 9, and the sixth correspondence information shown in FIG. 10 are stored.
  • the first correspondence information includes a model ID assigned to each model of the device (MFP 6), a model name of the device, and a model code ("model information") for identifying the device model. Information associated with each other. A plurality of model codes may be associated with one model ID.
  • the second correspondence information includes an application ID for identifying the application, a license key used for authenticating the usage right (license) of the application, a model ID, and an application identified by the application ID. Is information associated with version information indicating the latest version of.
  • the license key is associated in advance with the application ID of the free application because the license authentication is not required, but the application ID of the paid application is not Since authentication is required, the license key is not associated.
  • an organization ID assigned to each organization providing an application an organization name identified by the organization ID, a type of the organization, and the organization are located.
  • This is information in which area information indicating a geographical position is associated with sales company information indicating a shop of the device (MFP 6).
  • the fourth correspondence information is information in which an organization ID, an application ID, and disclosure state information indicating whether the application is in a state of being published are associated.
  • disclosure state information indicating whether or not the application is in a disclosure state is associated with model information identifying a model of a device that can use the application.
  • the fifth correspondence information includes the application ID, language information indicating the language of the country or region in which the device is used, the display name of the application identified by the application ID, and It is the information which matched the introduction message which introduces the application identified by application ID.
  • the combination of the display name and the introduction message may be referred to as “application description information” for describing the application.
  • the sixth correspondence information includes the organization ID, the application ID, the language information, the price of the application identified by the application ID, and the price of the application identified by the application ID. It is the information which matched the explanation.
  • the combination of the price and the price description may be referred to as “application price information” for describing the price of the application.
  • the user information DB 262 stores, for example, information necessary for authenticating a user who is authorized to perform an operation for setting by the setting unit 214 described later.
  • control unit 212 the function of the control unit 212 is provided by an application programming interface (API) on the server 2 side.
  • API application programming interface
  • the screen providing unit 213 When the screen providing unit 213 receives a screen information request for requesting screen information from the device (MFP 6), the screen providing unit 213 generates Web content data (screen information) including at least an application command, and responds to the screen information request as a response.
  • the content data (screen information) is transmitted to the device (MFP 6).
  • the web content data (screen information) includes, for example, HTML, CSS contained in (or referred to as HTML), JavaScript (registered trademark), and the like.
  • the Web browser displays control unit 273 described later
  • the device requests display information to the API (control unit 212) of the server 2 by a technology called JavaScript of JavaScript.
  • JavaScript a technology called JavaScript of JavaScript.
  • the script itself may be embedded in HTML, or only the link may be described.
  • a display information request including the model code of the transmission source device (MFP 6) and requesting display information is transmitted to the control unit 212.
  • types of application commands in the present embodiment include an install instruction, an update instruction, and an uninstall instruction.
  • the installation instruction indicates an instruction to install an application.
  • the update instruction indicates an instruction to update the application.
  • the uninstall instruction indicates an instruction to delete the installed application and return the state of the MFP 4 to the state before installing the application.
  • FIG. 11 is a diagram illustrating an example of the function of the control unit 212.
  • the control unit 212 includes a specifying unit 216, a display information generation unit 217, and a setting control unit 219.
  • the specifying unit 216 includes, from the device (MFP 6), at least region information indicating a geographical position where the device is installed, and a model code for identifying a model of the device, and displaying information for which display information is requested When the request is received, it refers to the information stored in the storage unit 211 (in this example, the application information DB 261), the area information included in the display information request, the model code, and the organization ID linked to the area information Identify the application corresponding to the combination with the open state information indicating the open state. More specifically, when the specifying unit 216 receives the display information request from the device, the specifying unit 216 refers to the third correspondence information shown in FIG. 7 and transmits the region information or the sales company information included in the received display information request.
  • the identifying unit 216 refers to the fourth correspondence information shown in FIG. 8 and shows the open state indicating the open state among the one or more application IDs associated with the selected organization ID. The application ID associated with the information is selected.
  • the identifying unit 216 refers to the first correspondence information shown in FIG. 5 and selects the model ID associated with the model code included in the received display information request.
  • the identifying unit 216 refers to the second correspondence information shown in FIG. 6, and selects one or more application IDs associated with the selected model ID.
  • the identifying unit 216 selects one or more application IDs published among the one or more application IDs associated with the organization ID selected in FIG. 8 and the model ID selected in FIG.
  • the application ID is compared to identify the matching application ID.
  • State in which the application identified by the application ID identified as described above is disclosed by the area information, the model code, and the organization ID linked to the area information included in the display information request received from the device (MFP 6) Is specified as an application corresponding to the combination with the release state information indicating (i.e., an application that can be used by the device of the request source of the display information request).
  • the specification unit 216 Identifies the application description information corresponding to the combination of the application ID identified as described above and the language information included in the display information request received from the device with reference to the fifth correspondence information shown in FIG. 9 can do.
  • the display information request in this embodiment includes language information (locale information) indicating the language of the country or region where the device of the request source of the display information request is used
  • the identification unit Reference numeral 216 corresponds to a combination of the application ID for each organization ID identified as described above with reference to the sixth correspondence information shown in FIG. 10, and the language information included in the display information request received from the device. App price information can be identified.
  • the above-mentioned language information is generally described in the HTTP Accept-Language header.
  • the display information generation unit 217 generates Web content data (display information) indicating the application specified by the specification unit 216, and the generated Web content data (display information) is a device (MFP 6) as a response to the display information request.
  • the detailed information indicating the details of the application is associated with each application (for example, each application ID) that can be used by the device (MFP 6) requesting the display information request.
  • Application detailed information is included.
  • the detailed information includes a license key, version information, application description information, application price information and the like.
  • the setting control unit 219 performs control to reflect the setting by the setting unit 214 in the information stored in the storage unit 211. That is, the setting control unit 219 performs control to update the information stored in the storage unit 211 according to the setting by the setting unit 214.
  • the setting unit 214 has a function of variably setting display information in accordance with the user's operation.
  • the setting unit 214 can variably set layout information indicating the application description information, the application price information, the arrangement of display components on the screen, and the like according to the user's operation. Thereby, for example, display contents different from one area to another can be obtained.
  • control unit 212 The functions of the control unit 212, the screen providing unit 213, and the setting unit 214 described above can be realized by the CPU 301 executing a program stored in a storage device such as the ROM 302 or the like.
  • storage unit 211 described above can be realized by the ROM 302 or the auxiliary storage device 307 such as an HDD.
  • the combination of the control unit 212 and the screen providing unit 213 is, in response to a request from the device (MFP 6), screen information including at least display information indicating an application that can be used by the device (MFP 6) and an application command. It can be considered that it corresponds to a function ("control unit") for transmitting Web content data composed of
  • FIG. 12 is a diagram illustrating an example of the function of the license management module 220.
  • the license management module 220 includes a storage unit 221, a control unit 222, and a license issuing unit 223.
  • the example in FIG. 12 mainly illustrates the functions related to the present embodiment, the functions possessed by the license management module 220 are not limited to these.
  • the storage unit 221 includes a license information database (hereinafter referred to as “license information DB”) 224 and a user information database (hereinafter referred to as “user information DB”) 225.
  • license information database hereinafter referred to as “license information DB”
  • user information database hereinafter referred to as “user information DB”
  • the license information DB 224 stores, for each of a plurality of applications, information associated with the usage right (license) of the application.
  • the license information DB 224 stores seventh correspondence information shown in FIG. 13, eighth correspondence information shown in FIG. 14, and ninth correspondence information shown in FIG.
  • the seventh correspondence information includes an application ID, a license type indicating the type of license, and a license form indicating the form of the license (in this example, any of paid, free, and trial). , An expiration date indicating a period in which the license is valid, and a volume number indicating the number of licenses that can be granted.
  • the eighth correspondence information includes the license type, the license key, the number of in-use licenses indicating the number of licenses in use, and the number of used licenses indicating the number of used licenses. And the corresponding information.
  • the ninth correspondence information is information in which a license key, a machine number, an expiration date, and validity state information indicating whether the license is valid or invalid is associated. is there.
  • the user information DB 225 stores, for example, information necessary for authenticating a user who can perform an operation for issuing a license.
  • the user information DB 225 may be common to the user information DB 262 of the application information management module 210.
  • FIG. 16 is a diagram illustrating an example of the function of the control unit 222.
  • the control unit 222 includes a registration control unit 226, a license validation unit 227, and a license disabling unit 228.
  • the registration control unit 226 performs control to register information on the license issued by the license issuance unit 223 in the storage unit 221 (license information DB 224).
  • the license issuing unit 223 receives, from a user having the authority to perform an operation for issuing a license, an operation for selecting an application ID of an application for which a license is to be issued and a license type.
  • a license key corresponding to the application ID and license type selected by the received operation is issued.
  • the function of issuing a license according to the user's operation may be in the form possessed by the control unit 222 only by creating a UI described in HTML or the like.
  • the registration control unit 226 controls the license information DB 224 to register information indicating the license key issued by the license issuing unit 223 and the license type corresponding to the license key. More specifically, when the registration control unit 226 receives the license key and the license type corresponding to the license key from the license issuance unit 223, the registration control unit 226 may receive the correspondence information in the eighth correspondence information shown in FIG. A new record (unit information, information in units of lines in this example) including the received license key and license type is added.
  • the license validation unit 227 performs control to validate a license in response to a request from the device (MFP 6).
  • the license activation unit 227 receives at least an application ID, a license key, and a machine number and receives an activation request for requesting a license activation from the device (MFP 6)
  • the license information DB 224 It is checked whether the license key included in the received validation request exists in the stored eighth correspondence information (see FIG. 14). If the confirmation result is affirmative, the license validation unit 227 refers to the seventh correspondence information (see FIG. 13) stored in the license information DB 224, and responds to the application ID included in the received validation request. Identify the assigned expiration date. Then, in the ninth correspondence information shown in FIG.
  • the license validation unit 227 refers to the eighth correspondence information shown in FIG. 14 to set the number of in-use licenses corresponding to the license key included in the validation request received from the device (MFP 6) to “1”. Increment only and update. Then, as a response to the validation request, the license validation unit 227 transmits to the device (MFP 6) that the license status is valid. The device (MFP 6) that has received this notification can use the application identified by the application ID included in the validation request.
  • the license validation unit 227 will return an error in response to a validation request from the device (MFP 6).
  • the license invalidation unit 228 performs control to invalidate the license in response to a request from the device (MFP 6).
  • the license invalidation unit 228 stores at least the license key and the machine number, and is stored in the license information DB 224 when receiving from the device (MFP 6) an invalidation request for requesting a license invalidation.
  • the valid state information associated with the combination of the license key and the machine number included in the received invalidation request is changed to information indicating invalid. Further, referring to the eighth correspondence information (see FIG.
  • the number of in-use licenses associated with the license key included in the invalidation request received from the device (MFP 6) is Decrement by 1 "and increment and update the number of used licenses by" 1 ".
  • the license invalidation unit 228 transmits to the device (MFP 6) that the status of the license is invalid.
  • the device (MFP 6) that has received this notification can not use the application identified by the application ID included in the invalidation request.
  • control unit 222 and the license issuing unit 223 described above can be realized by the CPU 301 executing a program stored in a storage device such as the ROM 302 or the like.
  • storage unit 221 described above can be realized by the ROM 302 or an auxiliary storage device 307 such as an HDD.
  • FIG. 17 is a diagram illustrating an example of the function of the application download management module 230.
  • the application download management module 230 includes an application storage 231 and a download unit 232.
  • the example of FIG. 17 mainly illustrates the functions related to the present embodiment, the functions of the application download management module 230 are not limited to these.
  • the application storage 231 stores a plurality of applications to be provided to the device (MFP 6).
  • the application storage 231 stores a data file including an application main body in association with each of a plurality of application IDs.
  • the download unit 232 controls to transmit (download) any application stored in the application storage 231 to the MFP 6 in response to a request from the device (MFP 6).
  • the download unit 232 at least includes the application ID and receives a download request for downloading the application from the device (MFP 6)
  • the application corresponding to the application ID included in the received download request is selected.
  • the functions of the download unit 232 described above can be realized by the CPU 301 executing a program stored in a storage device such as the ROM 302 or the like. Also, the application storage 231 described above can be realized by the ROM 302 or an auxiliary storage device 307 such as an HDD.
  • the server 2 may be configured as a plurality of servers as shown in FIG.
  • the server 2 may be configured by an application server 240 and a database server 250.
  • the application server 240 may be configured to include the control unit 212, the screen providing unit 213, the setting unit 214, the control unit 222, and the license issuing unit 223 described above.
  • the application server 240 is configured of a plurality of servers, and each of the control unit 212, the screen providing unit 213, the setting unit 214, the control unit 222, the license issuing unit 223, and the download unit 232 described above It may be in the form of being distributed and installed.
  • the database server 250 may have a form in which the storage unit 211 and the storage unit 221 described above are included. Further, for example, the database server 250 is configured of a plurality of servers, and the application information DB 261, the user information DB 262, the license information DB 224, the user information DB 225, and the application storage 231 described above are distributed and installed in any server. It may be in the form of
  • the area of the server 2 is Japan
  • the area of the server 3 is the United States
  • the area of the server 4 is Europe.
  • the configurations of the servers 2 to 4 may all be the same.
  • only the server 2 (Japan) may include the license management module
  • the server 3 (US) and the server 4 (Europe) may not include the license management module.
  • server 2 (Japan) and server 4 (Europe) are provided with application server 240 and database server 250
  • server 3 (USA) is not provided with application server 240 and database server 250. It is also good.
  • the application download management module 230 is provided, for example, in the servers 2 to 4 in order to improve responsiveness
  • the license management module 220 is, for example, the server 2 (Japan) in order to perform centralized management. You may be prepared to
  • the application information management module 210 is provided in the server 2 (Japan) and the server 4 (Europe) from the viewpoint of data protection, from the viewpoint of data protection, and a submodule (setting unit 214) of the application information management module 210. ) May be provided in the server 2 (Japan) in order to improve the work efficiency.
  • FIG. 19 is a diagram illustrating an example of functions of the connection destination providing server 5.
  • the connection destination providing server 5 has a service search module 310. Although only the module (function) concerning this embodiment is illustrated in the example of FIG. 19, the module which the connection destination providing server 5 has is not limited to this.
  • FIG. 20 is a diagram illustrating an example of the function of the service search module 310.
  • the service search module 310 includes a storage unit 311 and a control unit 312. Although the example of FIG. 20 mainly illustrates the functions related to the present embodiment, the functions of the service search module 310 are not limited to these.
  • connection information database (hereinafter, referred to as “connection information DB”) 321.
  • connection information DB 321 associates at least an organization ID assigned to each organization providing an application, area information indicating a geographical position where the organization is located, and sales company information indicating a store of the device (MFP 6). Store the information you
  • the connection information DB 321 includes at least area information indicating a geographical position where the device (MFP 6) is installed or an organization ID associated with sales company information indicating a store of the device (MFP 6) and a server 2 that provides an application.
  • connection information DB 321 stores at least information in which device information (machine number) for identifying a device (MFP 6) is associated with connection information of a server providing an application.
  • the connection information DB 321 stores the third correspondence information shown in FIG. 7, the tenth correspondence information shown in FIG. 21, and the eleventh correspondence information shown in FIG.
  • the connection information DB 321 may store either the third correspondence information and the tenth correspondence information or the eleventh correspondence information.
  • the tenth correspondence information includes an organization ID assigned to each organization providing the application, and connection information of a server providing the application published in the organization identified by the organization ID. It is the associated information.
  • the third correspondence information shown in FIG. 7 and the tenth correspondence information shown in FIG. 21 it corresponds to the area information or the sales company information based on the area information or the sales company information where the device (MFP 6) is installed.
  • Connection information (URL) of a server providing an application published in the organization identified by the organization ID can be identified.
  • the connection destination providing server 5 can connect to the server located at the nearest location to the device (MFP 6).
  • eleventh correspondence information is information in which a machine number for identifying a device (MFP 6) is associated with connection information of a server providing an application.
  • the connection information (URL) of the server providing the application can be specified from the machine number.
  • the connection destination providing server 5 can connect to a predetermined server associated with the machine number of the device (MFP 6).
  • the regional information (region code) or the sales company information (sales company code) is a contract for users of companies across multiple regions.
  • the connection destination providing server 5 can connect to a predetermined server associated with the device number of the device (MFP 6). As described above, when the connection destination providing server 5 receives a connection information acquisition request including at least region information or sales company information and device information (machine number) from the device (MFP 6), the connection destination providing server 5 relies on the region information or sales company information. Instead, predetermined connection information can be specified for each device (MFP 6).
  • the tenth one is based on area information (area code) or sales company information (sales company code) in which the device (MFP 6) is usually installed. Identify the connection information (URL) of the server that provides the application published in the organization identified by the organization ID corresponding to the area information or sales company information using the correspondence information, and specify only a specific device as a predetermined server.
  • a predetermined server associated with the device number of the device (MFP 6) is specified using the eleventh correspondence information.
  • the server connection information is specified using the eleventh correspondence information, and the machine number is registered in the eleventh correspondence information. If not, the server connection information may be specified based on the area information or the sales company information using the tenth correspondence information.
  • the control unit 312 identifies, from the device (MFP 6), regional information indicating the geographical position where the device (MFP 6) is installed or sales company information indicating the store of the device (MFP 6), and a device that identifies the device (MFP 6)
  • a connection information acquisition request containing at least information (machine number) and requesting acquisition of connection information of the server 2
  • the connection information of the server 2 is specified with reference to the information stored in the storage unit 311, Control of transmitting the connection information of the server 2 to the device (MFP 6) is performed.
  • the function of the control unit 312 is provided by an application programming interface (API) on the connection destination providing server 5 side.
  • API application programming interface
  • FIG. 23 is a diagram illustrating an example of the function of the control unit 312. As illustrated in FIG. 23, the control unit 312 includes a connection information identification unit 322 and a list generation unit 323.
  • connection information specification unit 322 specifies connection information (URL) of the server 2 and passes it to the list generation unit 323, and the list generation unit 323 lists the connection information of connection information of a plurality of servers arranged according to predetermined conditions.
  • the information (list) is generated and passed to the connection information identification unit 322, and the connection information identification unit 322 transmits connection list information of connection information (connection list information of connection information of the server 2) to the device (MFP 6).
  • the predetermined condition can be set arbitrarily.
  • connection information (URL) of the server 2 there are cases where there is only one connection information (URL) of the server 2 identified by the connection information identifying unit 322, and cases where there are a plurality of connections.
  • the list generation unit 323 When the connection information (URL) of the server 2 is only one, the list generation unit 323 generates connection list information (list) having one connection information (URL).
  • the list generation unit 323 when there is a plurality of connection information (URLs) of the server 2, the list generation unit 323 generates connection list information (list) of a plurality of connection information (URLs) arranged according to a predetermined condition.
  • the “connection information identification unit” includes the function of the “connection information transmission unit” in the claims. Below, connection list information is also described as a "list.”
  • connection list information (list) of connection information of a plurality of servers generated by the list generation unit 323 may be transmitted from the list generation unit 323 to the device (MFP 6). It is.
  • the connection information specification unit 322 specifies connection information (URL) of the server 2 and passes it to the list generation unit 323, and connection list information of connection information of a plurality of servers arranged according to a predetermined condition by the list generation unit 323 ( The list generation unit 323 transmits the connection list information (connection list information of connection information of the server 2) of the connection information to the device (MFP 6).
  • Connection information specifying unit 322 includes at least region information or sales company information from a device (MFP 6) and device information (machine number) for identifying the device (MFP 6), and is connection information for requesting acquisition of connection information of server 2 Receiving the acquisition request, referring to the information stored in the storage unit 311 (the connection information DB 321 in this example) and identifying the area information included in the connection information acquisition request of the server 2 or the organization ID corresponding to the sales company information
  • the connection information (URL) of the server 2 providing the application published in the organization to be specified is specified, and the connection information (URL) of the server 2 is passed to the list generation unit 323, and the connection information generated by the list generation unit 323 It receives the list of (URL) and sends it to the device (MFP 6).
  • connection information specifying unit 322 when the connection information specifying unit 322 receives a connection information acquisition request for the server 2 from the device (MFP 6), the connection information specifying unit 322 refers to the third correspondence information shown in FIG. An organization ID associated with regional information or sales company information included in the information acquisition request is selected. For example, if the connection information acquisition request of the server 2 includes the area information “JP”, the connection information identification unit 322 selects the organization ID “O0002”. When the sales company information is included, the organization ID associated with the sales company information is preferentially selected, and when the sales company information is not included, the organization ID associated with the area information is selected. Then, the connection information identifying unit 322 is, among the tenth correspondence information shown in FIG.
  • connection information of the server 2 that provides the application published in the organization identified by the selected organization ID (in this example, Identify the connection information of the organization ID "O0002" (Japanese branch office), https://jp.example.com/apps, and the connection information (https://jp.example.com/apps) of the identified server 2. Pass it to the list generation unit 323. Then, the connection information identification unit 322 receives the connection list information (list) of the connection information (URL) generated by the list generation unit 323, and transmits the connection list information (list) to the device (MFP 6).
  • connection information identification unit 322 generates a list of connection information (URL), and The connection information (https://jp.example.com/apps/discov) of itself (connection destination providing server 5) is also sent to the device (MFP 6). Note that whether each connection information is to be transmitted or not is specified as a parameter of the connection information acquisition request.
  • the parameter is the “service” parameter of the connection information acquisition request shown in FIG. 27 described later.
  • Each connection information (URL) is transmitted to the device (MFP 6) according to the parameters of the connection information acquisition request.
  • connection information specifying unit 322 specifies connection information (URL) of the server 2 of the organization ID corresponding to the area information or the sales company information
  • the connection information specifying unit 322 further specifies an organization ID closer to the geographical information of the server 2 Do.
  • the server connection information (URL) of the organization ID close to the geographical position is specified.
  • connection information (URLs) of a plurality of identified servers is passed to the list generation unit 323. Specifically, for example, when the sales company information included in the connection information acquisition request of the server 2 is "JA5", the organization ID "O0005" is specified by referring to the third correspondence information in FIG.
  • connection information https://en5.jp.example.com/apps
  • the connection information (https://en5.jp.example.com/apps) of the organization ID “O0005” is specified with reference to the tenth correspondence information in S.21.
  • organization IDs “O0006” and “O0002” having the same area information as the area information “JP” of the organization ID “O0005” are specified, and the tenth in FIG. Refer to the correspondence information, connection information (https://ja6.jp.example.com/apps) of organization ID "O0006", connection information (https://jp.example.com/apps) of "O0002" Identify.
  • connection information identification unit 322 passes the connection information (URL) of the identified organization IDs “O0005”, “O0006”, and “O0002” to the list generation unit 323. Further, for example, when the area information included in the connection information acquisition request is "EU", the third correspondence information in FIG. 7 is referred to, the organization ID "O0004" is specified, and the tenth correspondence in FIG. Refer to the information and identify the connection information (https://eu.example.com/apps) of the organization ID "O0004". An organization ID having the same area information as the area information "EU” of the organization ID "O0004" in the third correspondence information of FIG.
  • connection information identification unit 322 passes the connection information (URL) of the identified organization IDs “O0003”, “O0007”, “O0002”, “O0002”, “O0005”, and “O0006” to the list generation unit 323. Then, the connection information identification unit 322 receives the list of connection information (URL) generated by the list generation unit 323 and transmits the list to the device (MFP 6).
  • connection information specifying unit 322 specifies connection information of a plurality of servers
  • connection information of a server of an organization ID whose geographical position is close to the area information included in the connection information acquisition request ( URL) is specified
  • connection information (URL) of servers of organization IDs of different area information may be specified, or connection information of servers of organization ID of all area information (URL ) May be specified.
  • connection information acquisition request of the server 2 is access from Japan, it specifies in the order of Japan ⁇ US ⁇ Europe, and generates a list. If the connection information acquisition request of the server 2 is from the United States, it will be identified in the order of US ⁇ Europe ⁇ Japan, and a list will be generated. Further, if the connection information acquisition request of the server 2 is from Europe, it will be specified in the order of Europe ⁇ US ⁇ Japan, and a list will be generated. However, for access from Europe, there is a tendency to dislike communication with the United States, so a list may be generated only in the order of Europe ⁇ Japan. In addition, the mechanism about the determination of the order is arbitrary.
  • connection information identification unit 322 When the connection information identification unit 322 receives a connection information acquisition request for the server 2 from the device (MFP 6), the connection information identification unit 322 refers to the information stored in the storage unit 311 (the connection information DB 321 in this example).
  • the connection information (URL) of the server providing the application corresponding to the machine number included in the connection information acquisition request may be specified, and the connection information of the server may be transmitted to the device (MFP 6). More specifically, when the connection information identification unit 322 receives a connection information acquisition request for the server 2 from the device (MFP 6), the machine number is registered in the eleventh correspondence information shown in FIG.
  • connection information https://jp.example.com/apps
  • the connection information identification unit 322 receives the connection list information (list) of the connection information (URL) generated by the list generation unit 323, and transmits the connection list information (list) to the device (MFP 6).
  • the list generation unit 323 receives connection information of one server or connection information of a plurality of servers from the connection information identification unit 322. If the connection information of the server 2 is only one, the list generation unit 323 generates a list of only one connection information of the server and passes it to the connection information identification unit 322. In addition, when there is a plurality of connection information of the server 2, the list generation unit 323 displays in the area information where the device (MFP 6) is installed among the connection information of the plurality of servers received from the connection information identification unit 322.
  • a list of connection information of a plurality of servers arranged in the order of connection information with geographical locations distant from the connection information with close geographical locations is generated and passed to the connection information identifying unit 322. That is, as described above, among the connection information of the plurality of servers 2 identified by the connection information identifying unit 322, the list creating unit 323 determines the time required for the communication from the connection information that requires a short time to communicate with the device (MFP 6). Creates connection list information (list) of connection information of the plurality of servers 2 arranged in the order of long connection information and passes it to the connection information identifying unit 322.
  • the list generation unit 323 generates connection list information (list) of connection information of a plurality of servers arranged according to a predetermined condition, and the list generation unit 323 generates connection of the connection information.
  • the list information (connection list information of connection information of the server 2) can also be transmitted to the device (MFP 6).
  • the list generation unit 323 when there are a plurality of connection destination providing servers, the list generation unit 323 generates a list of connection information of the plurality of servers, and also generates a list of connection information of the plurality of connection destination provision servers. Then, the generated two lists (a list of connection information of a plurality of servers and a list of connection information of a plurality of connection destination providing servers) are delivered to the connection information identification unit 322.
  • generation of the two lists is specified as a parameter of the connection information acquisition request as described above.
  • the parameter is the “service” parameter of the connection information acquisition request shown in FIG. 27 described later.
  • the list generation unit 323 is, among connection information of a plurality of connection destination providing servers, connection information whose geographical position is near from the connection information whose geographical position is close to the area information where the device (MFP 6) is installed.
  • a list of connection information of a plurality of connection destination providing servers arranged in order is generated, the present invention is not limited to this and the order of the list is arbitrary.
  • the list generation unit arranges, in the connection information of the plurality of connection destination providing servers, the connection information having a short time for communication with the device (MFP 6) to the connection information having a long time for the communication.
  • Connection list information (list) of connection information of a plurality of connection destination providing servers is generated.
  • the list generation unit 323 generates connection list information (list) of connection information of a plurality of connection destination providing servers arranged according to a predetermined condition, and the list generation unit 323 connects
  • the connection list information of the information (connection list information of the connection information of the connection destination providing server 5) may be transmitted to the device (MFP 6).
  • connection destination providing server 5 As the area where the connection destination providing server 5 is installed, the connection destination providing server 5 is installed in each area where the server 2 (Japan), the server 3 (US), and the server 4 (Europe) described in the example of FIG. A plurality of connection destination providing servers 5 may be installed in an area where the number of users is large, for example, in Japan.
  • the MFP 6 includes a main body 10 capable of realizing various functions such as a copy function, a scanner function, a fax function, and a printer function, and an operation unit 20 that receives an operation of a user.
  • accepting the user's operation is a concept including accepting information (including a signal indicating a coordinate value of the screen) input according to the user's operation.
  • the main body 10 and the operation unit 20 are communicably connected to each other via a dedicated communication path 30.
  • the communication path 30 may use, for example, the USB (Universal Serial Bus) standard, but may be any standard regardless of whether it is wired or wireless.
  • USB Universal Serial Bus
  • the main body 10 can perform an operation according to the operation received by the operation unit 20.
  • the main unit 10 can also communicate with an external device such as a client PC (personal computer), and can perform an operation according to an instruction received from the external device.
  • an external device such as a client PC (personal computer)
  • the main unit 10 includes a CPU 11, a ROM 12, a RAM 13, an HDD (hard disk drive) 14, a communication I / F (interface) 15, a connection I / F 16, and an engine unit 17. These are mutually connected via the system bus 18.
  • the CPU 11 centrally controls the operation of the main body 10.
  • the CPU 11 controls the entire operation of the main unit 10 by executing a program stored in the ROM 12 or the HDD 14 using the RAM 13 as a work area (work area) to control the copy function, the scanner function, the fax function, the printer function, etc. Realize various functions of
  • the communication I / F 15 is an interface for connecting to the network 7.
  • the connection I / F 16 is an interface for communicating with the operation unit 20 via the communication path 30.
  • the engine unit 17 is hardware that performs processing other than general-purpose information processing and communication for realizing the copy function, the scanner function, the fax function, and the printer function.
  • a scanner image reading unit
  • a plotter image forming unit
  • a fax unit that performs fax communication are provided.
  • it is possible to provide a specific option such as a finisher for sorting the printed sheet material or an ADF (automatic document feeder) for automatically feeding a document.
  • the operation unit 20 includes a CPU 21, a ROM 22, a RAM 23, a flash memory 24, a communication I / F 25, a connection I / F 26, and an operation panel 27. Are connected to each other.
  • the CPU 21 centrally controls the operation of the operation unit 20.
  • the CPU 21 controls the entire operation of the operation unit 20 by executing a program stored in the ROM 22 or the flash memory 24 or the like, using the RAM 23 as a work area (work area), and information (image To realize various functions to be described later such as display of.
  • the communication I / F 25 is an interface for connecting to the network 7.
  • the connection I / F 26 is an interface for communicating with the main body 10 via the communication path 30.
  • Operation panel 27 receives various inputs corresponding to the user's operation, and displays various information (for example, information corresponding to the received operation, information indicating the operation status of MFP 6, information indicating the setting state, etc.) .
  • the operation panel 27 is configured of a liquid crystal display (LCD) equipped with a touch panel function, but is not limited to this.
  • LCD liquid crystal display
  • it may be configured by an organic EL display device equipped with a touch panel function.
  • an operation unit such as a hardware key or a display unit such as a lamp may be provided.
  • FIG. 25 is a schematic view showing an example of the software configuration of the MFP 6.
  • the main body 10 includes an application layer 101, a service layer 102, and an OS layer 103.
  • the substance of the application layer 101, the service layer 102, and the OS layer 103 is various software stored in the ROM 12, the HDD 14, or the like.
  • Various functions are provided by the CPU 11 executing these software.
  • the software of the application layer 101 is application software (in the following description, it may be simply referred to as “application”) for operating hardware resources to provide a predetermined function.
  • application examples include a copy application for providing a copy function, a scanner application for providing a scanner function, a fax application for providing a fax function, and a printer application for providing a printer function.
  • the software of the service layer 102 is software that is interposed between the application layer 101 and the OS layer 103, and provides the application with an interface for using the hardware resources of the main unit 10. More specifically, it is software for providing a function of accepting an operation request for hardware resources and arbitrating the operation request. As the operation request accepted by the service layer 102, a request such as reading by a scanner or printing by a plotter can be considered.
  • the function of the interface by the service layer 102 is provided not only to the application layer 101 of the main body 10 but also to the application layer 201 of the operation unit 20. That is, the application layer 201 (application) of the operation unit 20 can also realize the function using the hardware resource (for example, the engine unit 17) of the main body 10 via the interface function of the service layer 102.
  • the software of the OS layer 103 is basic software (operating system (OS)) for providing a basic function of controlling the hardware provided in the main unit 10.
  • the software of the service layer 102 converts a request for using hardware resources from various applications into a command interpretable by the OS layer 103 and passes the command to the OS layer 103. Then, when the command is executed by the software of the OS layer 103, the hardware resource performs an operation according to the request of the application.
  • the operation unit 20 includes an application layer 201, a service layer 202, and an OS layer 203.
  • the hierarchical structure of the application layer 201, the service layer 202, and the OS layer 203 included in the operation unit 20 is the same as that on the main body 10 side.
  • the functions provided by the application of the application layer 201 and the types of operation requests that can be accepted by the service layer 202 are different from those on the main body 10 side.
  • the application of the application layer 201 may be software for operating the hardware resources of the operation unit 20 to provide a predetermined function, but mainly the functions of the main body 10 (copy function, scanner function, fax function Software for providing a function of a UI (user interface) for performing an operation or display regarding a function of updating a license file of an installed application, a printer function, and the like.
  • the application of the application layer 201 executes an application for providing the function of the web browser (hereinafter, may be referred to as a “browser application”) or an application command included in the above-described web content data.
  • An application for providing a function hereinafter, sometimes referred to as an “installer” or the like is included.
  • the software of the OS layer 103 on the main body 10 side and the software of the OS layer 203 on the operation unit 20 are different from each other in order to maintain the independence of the functions. That is, the main body 10 and the operation unit 20 operate independently of each other in different operating systems.
  • Linux registered trademark
  • Android registered trademark
  • the main unit 10 and the operation unit 20 operate with different operating systems, so communication between the main unit 10 and the operation unit 20 can be performed by inter-process communication in a common apparatus. Instead, it is performed as communication between different devices.
  • An operation (command communication) of transmitting information (instruction content from the user) received by the operation unit 20 to the main body 10, an operation of notifying the operation unit 20 of an event by the main body 10, and the like correspond to this.
  • the operation unit 20 performs command communication to the main body 10
  • the function of the main body 10 can be used.
  • the event notified from the main unit 10 to the operation unit 20 includes an execution status of an operation in the main unit 10, contents set on the main unit 10 side, and the like.
  • FIG. 26 is a diagram illustrating an example of the function of the operation unit 20 according to the present embodiment.
  • the operation unit 20 includes a connection information acquisition unit 271, an activation unit 272, a display control unit 273, an execution unit 274, and a process execution unit 275.
  • the example in FIG. 26 mainly illustrates the functions related to the present embodiment, the functions that the operation unit 20 has are not limited to these.
  • the display control unit 273 and the execution unit 274 are realized by a web browser.
  • the connection information acquisition unit 271 acquires device information in order to acquire connection information (URL) of the server 2 connected when the activation unit 272 described later activates the browser application providing the browser function according to the user's operation.
  • a connection destination acquisition request is sent to the connection destination providing server 5 that includes at least the (machine number) and the region information or the sales company information, and requests acquisition of the connection information of the server 2.
  • the connection information acquisition unit 271 acquires the connection information (URL) of the server 2 providing the application transmitted from the connection destination providing server 5 and the connection information (URL) of the connection destination providing server 5 and stores the storage unit ( It is stored in the flash memory 24) and delivered to an activation unit 272 described later.
  • the connection information acquisition unit 271 holds in advance connection information of at least one connection destination providing server 5 to be connected first as a default. Then, from the second time onward, the connection information of the connection destination providing server 5 is updated according to the installation situation of the other connection destination providing server. In addition, as a timing which the connection information acquisition part 271 acquires connection information (URL) of the server 2, you may acquire before the starting part 272 starts a browser application, and the starting part 272 starts a browser application. You may get it (during startup).
  • URL connection information
  • the following three patterns can be illustrated as an example of an acquisition request for connection information of the server 2 that the connection information acquisition unit 271 transmits to the connection destination providing server 5, but the present invention is not limited thereto. It is optional.
  • the first pattern is the case where the server 2 shown in FIG. 3 includes the application information management module 210, the license management module 220, and the application download management module 230, and the application download including the respective modules is performed. It is an example which acquires connection information (URL) of the whole site (server 2).
  • FIG. 27 is a diagram illustrating an example of a server connection information acquisition request
  • FIG. 28 is a diagram illustrating an example of server connection information (URL) received as a response to the server connection information acquisition request.
  • connection information acquisition unit 271 stores the connection information of the server 2 illustrated in FIG. 28 in the storage unit (flash memory 24 or the like).
  • the second pattern is to obtain connection information (URL) for each sub-module included in each of the application information management module 210, the license management module 220, and the application download management module 230 shown in FIG. 4, FIG. 12, and FIG.
  • This is an example of FIG. 29 is a diagram showing an example of an acquisition request of connection information of each module
  • FIG. 30 is a diagram showing an example of connection information (URL) of each module received as a response to the acquisition request of connection information of each module. It is.
  • the value of the parameter “service” of the connection information acquisition request shown in FIG. 29 is obtained by encoding a special character.
  • appsdownload / api appsdownload / top appsdownload / operation appsdownload / storage is a character string in which server identifiers are arranged with space separation, and the result of encoding this is “appsdownload% 2Fapi + appsdownload%” shown in FIG. 2Ftop + appsdownload% 2Foperation + appsdownload% 2Fstorage ".
  • “Host: www.example.com” is an example of a host name to be connected as a default stored in the storage unit (flash memory 24 or the like).
  • “Appsdownload / api” illustrated in FIG. 30 is an example of connection information of the control unit 212 of the application information management module 210 illustrated in FIG.
  • “appsdownload / top” is the application information management module 210 illustrated in FIG. 4.
  • “Appsdownload / operation” is an example of connection information of the setting unit 214 of the application information management module 210 shown in FIG. 4
  • “appsdownload / storage” is an example of connection information of the screen providing unit 213 of FIG. 17 illustrates an example of connection information of the download unit 232 of the application download management module 230 illustrated in 17;
  • the connection information acquisition unit 271 stores connection information of each module illustrated in FIG. 30 in a storage unit (such as the flash memory 24).
  • connection information of site and connection information of multiple connection destination servers includes the application information management module 210, the license management module 220, and the application download management module 230 shown in FIG. 3, and the application download including the respective modules is performed.
  • connection information (URL) of the entire site (server 2) and connection information of a plurality of connection destination providing servers are acquired.
  • FIG. 31 is a diagram showing an example of acquisition request of server connection information and connection destination providing server connection information
  • FIG. 32 is a request for acquisition of server connection information and connection destination providing server connection information. It is a figure which shows an example of the connection information (URL) of the server received as a response with respect to, and the connection information (URL) of several connection destination provision server.
  • the value of the parameter “service” of the connection information acquisition request shown in FIG. 31 is the same as that described above with reference to FIG. 29 and is an encoding of a special character.
  • “Host: www.example.com” is an example of a host name to be connected as a default stored in the storage unit (flash memory 24 or the like).
  • “Discovery” shown in FIG. 32 indicates a connection destination providing server, and the first “https://jp.example.com/discov” is an example of connection information of the connection destination providing server in the area information “JP”. The second “https://us.example.com/discov” is an example of connection information of the connection destination providing server in the regional information “US”.
  • FIG. 32 indicates a connection destination providing server, and the first “https://jp.example.com/discov” is an example of connection information of the connection destination providing server in the area information “JP”.
  • connection information acquisition unit 271 stores the connection information of the server 2 illustrated in FIG. 32 and the connection information of the connection destination providing server in the storage unit (flash memory 24 or the like).
  • the activation unit 272 activates a browser application that provides the function of the web browser in response to the user's operation. At this time, the activation unit 272 checks whether or not the sales company information of its own device (MFP 6) is held when activating the browser application, and if the sales company information (sales company code information) is not held.
  • the display control unit 273 causes the operation panel 27 to display a UI screen for inputting sales company information.
  • sales company information is not set as in the organization ID “O0002” shown in FIG. 7, the sales company information set completion flag is stored separately, and the sales company information set completion flag is not set separately.
  • the UI screen may be displayed only in the case.
  • the initial value of the area information is stored in advance in the storage unit as the destination setting when the device (MFP 6) is shipped.
  • the display of the UI screen for inputting the sales company information is only the first time, and when the sales company information is inputted and held, the UI screen is not displayed next time.
  • connection information acquisition unit 271 has been described above, the setting of the sales company information (sales company code) in the activation unit 272 precedes the processing flow execution order, and the connection information acquisition unit 271 is next.
  • the acquisition of the connection information (URL) of the server 2 in step (b) is executed. That is, the connection information acquisition unit 271 acquires connection information in accordance with the setting of the sales company information previously set by the activation unit 272.
  • FIG. 34 is a diagram showing an example of the area information setting screen.
  • the area information setting screen includes an area information selection button 401 for selecting area information, a sales company information setting button 402 for setting sales company information, and a next for transition to the next screen. At least a button 403 and a return button 404 for returning to the operation screen shown in FIG.
  • FIG. 35 is a diagram showing an example of the area information setting dialogue screen.
  • the regional information setting dialog screen displays regional information indicating regions such as “Japan (JP) 411”, “US (US) 412”, “Europe (EU)” and “Asia (ASIA)”. indicate.
  • US (US) 412 is selected and the “OK” button is pressed, the screen returns to the regional information setting screen shown in FIG. 34, and is changed to “area: US (US)”.
  • FIG. 36 is a diagram showing an example of a sales company information input screen.
  • at least a ten key button for inputting a sales company code (code information indicating sales company information) is displayed.
  • the sales company code “11234516” shown in the example of FIG. 36 can be set arbitrarily, but for example, the first one character “1” represents “region”, “1: Japan (JP)”, “2: America ( “US)”, “3: Europe (EU)”, “4: Asia (ASIA)” are assigned.
  • the next five characters "12345" represent "sales company information", and for example, an arbitrary random number for identifying a store is assigned in advance. Arbitrary random numbers are assigned to reduce the risk of entering another sales company code due to an input error.
  • the last two characters “16” represent “checksum”, for example, to detect an input error of the sales company code.
  • the sales company code may be a method of encrypting the entire code.
  • error detection is performed (in this example, the area information (first character) specified from the code information received on the sales company information input screen It is determined whether the value of the regional information set on the regional information setting dialog screen of FIG.
  • FIG. 37 shows an example of the error screen.
  • a screen for inputting a sales company code (code information indicating sales company information) is displayed again (see FIG. 36).
  • FIG. 36 when the sales company code is correctly input, the regional information setting screen shown in FIG. 34 is displayed.
  • the activation unit 272 causes the storage unit (such as the flash memory 24) to store the area information and the sales company information (sales company code) input as described above.
  • FIG. 38 is a diagram showing an example of the application list screen. The details of the application list screen will be described later.
  • connection information acquisition unit 271 transmits an acquisition request for connection information of the server 2 with reference to the connection information (URL) of the connection destination providing server 5 stored in the storage unit (flash memory 24 or the like).
  • the URL indicating the location of the server 2 on the network 7 is acquired, and the URL indicating the location of the server 2 is passed to the start unit 272.
  • the activation unit 272 performs control to activate the browser application.
  • the connection information acquisition unit 271 holds or updates the acquired connection information (URL) of the server 2.
  • the started browser application (screen information acquisition unit) transmits the above-described screen information request as an HTTP request to the server 2 specified by the URL received from the activation unit 272, and a response to the screen information request (HTTP response) Web content data (screen information) is received.
  • HTML and CSS / JavaScript included in HTML are received as Web content data (screen information).
  • the browser application interprets and executes JavaScript, and transmits the above-described display information request as an HTTP request to the server 2 using Ajax, and an application command as a response to the display information request (HTTP response)
  • Receive Web content data (display information) including at least The functions of the "display information acquisition unit" and the "screen information acquisition unit” in the claims are provided by the browser application.
  • FIG. 39 is a diagram showing an example of a display information request
  • FIG. 40 is a diagram showing an example of information received as a response to the display information request.
  • the browser application performs control to display a screen configured based on the Web content data (screen information and display information) received from the server 2 on the operation panel 27 (display unit).
  • the function of the display control unit 273 is provided by the browser application.
  • the display control unit 273 generates a screen based on the web content data (screen information and display information) received from the server 2 and displays the generated screen on the operation panel 27.
  • the display control unit 273 holds the Web content data (screen information and display information) received from the server 2 in a storage device such as the flash memory 24 or the like, and, if necessary, the Web content data (screen information and display information)
  • the screen can be generated using the read out web content data (screen information and display information).
  • the display control unit 273 selects an application command selected according to the user's operation on a screen (a screen configured based on Web content data (screen information and display information)) displayed on the operation panel 27.
  • the identified application command can be notified to the execution unit 274.
  • the display control unit 273 can specify an application command selected by the user as JavaScript (registered trademark) or a custom scheme.
  • the execution unit 274 includes an application command (notified from the display control unit 273) included in the web content data according to the user's operation via the screen displayed on the operation panel 27.
  • the application command is executed to request the MFP 6 to execute processing related to the application corresponding to the application command.
  • the function of the execution unit 274 is provided by an application programming interface (API) on the MFP 6 side.
  • the MFP 6 can call an application programming interface (API) from a web application arranged on the server 2 as usable by the browser application of the operation unit 20.
  • the processing execution unit 275 executes processing related to the application according to the request based on the request from the web browser (execution unit 274).
  • examples of application commands included in Web content data received from the server 2 include an installation instruction, an update instruction, and an uninstallation instruction.
  • the execution unit 274 notifies the processing execution unit 275 of the installation instruction selected according to the user's operation, and the processing execution unit 275 executes the installation instruction notified from the execution unit 274. More specifically, it is as follows.
  • the display control unit 273 uses the Web content data (screen information and display information) received from the server 2 to display an application list screen (see FIG. 38) that shows a list of applications available on the device (MFP 6). Is controlled to be displayed on the operation panel 27.
  • the application list screen at least displays the name of the application and an application selection button 331 for selecting the application for each application available on the device (MFP 6).
  • the application list screen displays an update selection button 325 for selecting an application update and a deletion selection button 326 for selecting an application deletion. The specific contents of these will be described later.
  • FIG. 41 is a diagram showing an example of the installation instruction screen.
  • the installation instruction screen displays the application explanation information and application price information of the corresponding application, and an installation button 332 for instructing the execution of installation.
  • pressing the install button 332 means selection of an installation instruction (which may be considered as selection of an application to be installed).
  • FIG. 42 is a diagram showing an example of the installation confirmation screen.
  • the installation confirmation screen displays a confirmation button (OK) 333 for instructing that the execution of the installation has finally been accepted.
  • the installation instruction is pasted in JavaScript format to the confirmation button 333.
  • the execution unit 274 notifies the processing execution unit 275 of the installation instruction that has been attached to the pressed confirmation button 333. Then, the process execution unit 275 executes this installation instruction.
  • FIG. 43 is a diagram showing an example of information (JavaScript attached to the confirmation button 333) notified from the execution unit 274 to the processing execution unit 275 in this case.
  • the execution unit 274 includes, among the display information received from the server 2, a license key used to authenticate the use authority of the application targeted for the installation instruction selected according to the user operation. If it is included, the license key and the installation instruction are notified to the processing execution unit 275. If the license key is not included, control is performed to display an input screen prompting input of the license key. . More specifically, of the application detailed information in the display information received from the server 2, the display control unit 273 is among the detailed information corresponding to the application targeted for the installation instruction selected according to the operation of the user. If a license key for authenticating the right to use the application is not included, control is performed to display an input screen prompting the user to enter the license key.
  • FIG. 44 is a diagram showing an example of the input screen.
  • the same installation instruction as that in FIG. 43 is attached to the OK button in FIG. In this case, the character string input in the license key input area is set to appMgmt. Pass it as the second argument of the install function.
  • the display control unit 273 transmits the current version of the application among the installed applications and the application among the application detailed information included in the display information received from the server 2. Identify an application different from the version indicated by the corresponding detailed information. Then, when the update command corresponding to the specified application is selected according to the user's operation, the execution unit 274 notifies the process execution unit 275 of the selected update command.
  • the process execution unit 275 executes the update instruction notified from the execution unit 274. More specifically, it is as follows.
  • the display control unit 273 When the display control unit 273 receives the pressing of the update selection button 325 displayed on the application list screen shown in FIG. 38, the display control unit 273 displays the display information received from the server 2 and the application installed in the device (MFP 6). Application management information associated with the current version of the application is acquired.
  • the execution unit 275 since the process execution unit 275 manages the above-described application management information, the execution unit 274 requests the process execution unit 275 for application management information, and the display control unit 273 processes the application management information. get. Then, among the installed applications, the display control unit 273 corresponds to the current version corresponding to the application in the application management information and the detail corresponding to the application in the application detailed information included in the display information received from the server 2.
  • An application different from the version indicated by the information is identified as the application to be updated.
  • the application management information is in the mode of FIG. 45 and the application detailed information included in the display information received from the server 2 is in the mode of FIG.
  • the application ID “S001” and the application ID “S003” are specified as the application to be updated.
  • FIG. 47 is a diagram showing an example of the update instruction screen.
  • the update instruction screen displays, for each of the plurality of applications, an update instruction button 341 for receiving an update instruction of the application.
  • an update instruction indicating an instruction to update the application is pasted to the update instruction button 341 corresponding to the application to be updated (the application specified as described above).
  • the update instruction screen displays both the application to be updated (applications 1 and 3 in the example of FIG. 47) and the application not to be updated (application 2 in the example of FIG. 47).
  • the update instruction button 341 corresponding to the application of (1) is in an inoperable state (a state in which it is not possible to receive a press). That is, although the update instruction screen distinguishes and displays the application to be updated (the application specified as described above) and the application not to be updated, for example, the update instruction screen is not limited to this. Only the application to be updated may be displayed in association with the update instruction button 341 in the operable state. Also, for example, the display control unit 273 can perform control to display information indicating the number of applications (applications to be updated) identified as described above.
  • the display control unit 273 determines the number of applications different from the current version of the application and the version indicated by the detailed information corresponding to the application among the application detailed information. Control to display the indicated information can also be performed.
  • the execution unit 274 receives pressing of the update instruction button 341, the execution unit 274 notifies the processing execution unit 275 of the update instruction pasted on the update instruction button 341.
  • FIG. 48 is a diagram showing an example of information notified from the execution unit 274 to the processing execution unit 275 in this case.
  • update instruction button 341 is individually provided for each application to be updated, the present invention is not limited to this.
  • the button may be provided.
  • update instructions of all the applications to be updated are selected at once.
  • the application command collectively updates the applications whose current version is different from the version indicated by the detailed information corresponding to the application among the application detailed information.
  • the display control unit 273 is installed in the device (MFP 6) when the batch update instruction is selected (when depression of a button for instructing to execute update of the application to be updated collectively) is received. Identify the application whose current version of the application is different from the version indicated by the detailed information corresponding to the application among the application detailed information, and the executing unit 274 updates the application corresponding to the specified application The instruction may be notified to the processing execution unit 275.
  • the server 2 may have a function of specifying an application to be updated.
  • the display control unit 273 acquires the above-described application management information from the processing execution unit 275 before transmitting the above-described display information request, and sends the server 2 the display information request to which the acquired application management information is added. It can also be sent.
  • the server 2 For each application ID included in the application management information received from the MFP 6, the server 2 has a version associated with the application ID in the application management information, and an application information DB 261 (second correspondence information) managed by the server 2.
  • the application ID having a difference can be identified as the application ID to be updated by comparing the version with the version associated with the application ID.
  • the server 2 may include information indicating the application ID specified as the update target in the display information and transmit the display information to the MFP 6. Furthermore, for example, the server 2 may manage an application installed in the MFP 6 (manage the above-described application management information). In this case, for example, the server 2 can update the application management information at the timing of activation or deactivation of the license, and can also update the application management information at the timing of updating the application. In this case, since it is not necessary to acquire the current version of the application installed in the MFP 6 from the MFP 6, the application to be updated can be determined only by the server 2 and the processing load on the MFP 6 can be reduced.
  • the execution unit 274 notifies the process execution unit 275 of the uninstall instruction selected according to the user's operation, and the process execution unit 275 executes the uninstall instruction notified from the execution unit 274. More specifically, it is as follows.
  • FIG. 49 is a diagram showing an example of the deletion instruction screen.
  • the deletion instruction screen displays, for each application installed in the MFP 6, a deletion instruction button 351 for accepting a deletion instruction of the application.
  • the display control unit 273 performs control to display a deletion confirmation screen for finally confirming execution of uninstallation on the operation panel 27.
  • FIG. 50 is a diagram showing an example of the deletion confirmation screen.
  • the deletion confirmation screen displays a confirmation button (OK) 361 for instructing that the execution of uninstallation has finally been accepted.
  • a deletion instruction indicating an instruction to delete one or more applications corresponding to the confirmation button 361 is pasted to the confirmation button 361.
  • the execution unit 274 notifies the processing execution unit 275 of the uninstallation instruction that has been attached to the pressed confirmation button 361.
  • FIG. 51 is a diagram showing an example of information notified from the execution unit 274 to the process execution unit 275 in this case.
  • the deletion instruction button 351 described above is individually provided for each application installed in the MFP 6, but the present invention is not limited to this.
  • the button may be provided.
  • uninstall instructions of all the applications installed in the MFP 6 are selected at once.
  • the application command includes a batch uninstall instruction indicating a command to collectively delete the application installed in the MFP 6, and the execution unit 274 selects the application installed in the MFP 6 when the batch uninstall instruction is selected.
  • the processing execution unit 275 may be notified of a corresponding uninstall instruction (one or more uninstall instructions corresponding to one or more installed applications and one to one).
  • the CPU 21 stores the functions of the connection information acquisition unit 271, the activation unit 272, the display control unit 273, the execution unit 274, and the process execution unit 275 described above in the storage device such as the ROM 22 or the flash memory 24. It can be realized by executing a program.
  • FIG. 52 is a sequence diagram showing an example of the operation procedure of the system 1 of the present embodiment.
  • the connection destination providing server 5 includes area information indicating a geographical position where the device (MFP 6) is installed or sales company information indicating a store of the device (MFP 6) and connection information of the server 2 providing the application. Hold the associated information.
  • the activation unit 272 of the MFP 6 holds regional information or sales company information.
  • the connection information acquisition unit 271 of the MFP 6 stores connection information of one connection destination providing server 5 at the time of shipment.
  • connection information acquiring unit 271 indicates that the icon 8 is pressed. It notifies (step S2).
  • the connection information acquisition unit 271 sends, to the connection destination providing server 5, an acquisition request for connection information that includes at least device information (machine number), area information or sales company information, and requests acquisition of connection information of the server 2. Send (step S3).
  • connection information specifying unit 322 of the connection destination providing server 5 acquires connection information from the device (MFP 6) including at least area information or sales company information and device information (machine number) and requesting acquisition of connection information of the server 2
  • the request is received, and the organization identified by the organization ID corresponding to the area information or the sales company information included in the connection information acquisition request with reference to the connection correspondence information stored in the storage unit 311 (in this example, the connection information DB 321)
  • the connection information (URL) of the server 2 that provides the application published in step (b) is specified (step S4).
  • connection information identification unit 322 sends the connection information (URL) of the identified server 2 and the connection information (URL) of itself (the connection destination providing server 5) to the connection information acquisition unit 271 of the MFP 6 that is the transmission source of the connection information acquisition request. Send (step S5).
  • the connection information acquisition unit 271 acquires connection information (URL) of the server 2 and connection information (URL) of the connection destination providing server 5 by receiving a response to the connection information acquisition request of the server 2 from the connection destination providing server 5. Then, the information is stored in the storage unit (flash memory 24 or the like) (step S6), and the above two connection information (URLs) are transmitted to the activation unit 272 (step S7).
  • the activation unit 272 transmits the URL of the server 2 together with the activation instruction to the browser application (the display control unit 273 and the execution unit 274) which is a Web browser (step S8).
  • the browser application (the display control unit 273 and the execution unit 274) activated upon receiving the activation instruction transmits the above-described screen information request as an HTTP request to the server 2 designated by the received URL (step S9).
  • the server 2 generates Web content data (screen information) in response to a request from the MFP 6 (step S10), and transmits the generated Web content data (screen information) to the MFP 6 as an HTTP response (step S11). ).
  • the MFP 6 (display control unit 273) receives Web content data (screen information) as a response to the screen information request which is an HTTP request.
  • the MFP 6 (display control unit 273) receives HTML and CSS / JavaScript included in the HTML (or referred to by the HTML) as Web content data (screen information).
  • the browser application of the MFP 6 having received the screen information interprets and executes JavaScript, and transmits the above-described display information request (see FIG. 39) as an HTTP request to the server 2 using Ajax (step S12).
  • the server 2 generates display information in response to a request from the MFP 6 (step S13), and transmits the generated Web content data (display information) as an HTTP response to the MFP 6 (step S14).
  • the MFP 6 (display control unit 273) receives Web content data (display information) as a response to the display information request which is an HTTP request.
  • MFP 6 display control unit 273 generates a screen configured based on the Web content data (screen information and display information) received from server 2 (step S15), and displays the generated screen on operation panel 27 (step S15) Step S16).
  • the display control unit 273 stores the Web content data (screen information and display information) received from the server 2 in a storage device such as the flash memory 24, and the received Web content data (screen information and display)
  • the application list screen shown in FIG. 38 is first generated using information). Then, control is performed to display the generated application list screen on the operation panel 27 (display unit).
  • FIG. 53 is a flowchart showing an operation example of the MFP 6 from the reception of pressing of the icon 8 by the MFP 6 to acquisition of the application list screen. That is, this is an example of the process of the MFP 6 in steps S1 to S9, steps S11 to S12, and step S14 in FIG. 52 described above.
  • connection information acquiring unit 271 of the MFP 6 receives the notification of pressing the icon 8 (step S1)
  • the connection information acquiring unit 271 holds (stores) the connection information (URL) of the connection destination providing server 5 in the storage unit (flash memory 24 or the like). It is determined whether or not there is (step S21).
  • the connection information acquisition unit 271 stores the URL of one connection destination providing server 5 in advance at the time of shipment, but temporarily stores (stores) the URL of the connection destination providing server 5 in a storage unit (flash memory 24 or the like). When there is not (Step S21: No), it shifts to processing of Step S26.
  • the connection information acquisition unit 271 When the URL of the connection destination providing server 5 is held (stored) in the storage unit (flash memory 24 or the like) (step S21: Yes), the connection information acquisition unit 271 provides the connection destination request for the URL of the server 2 It transmits to the URL of the server 5 (step S22). Next, the connection information acquisition unit 271 determines whether the URL of the server 2 can be acquired from the connection destination providing server 5 (step S23). When the URL of the server 2 can not be acquired (step S23: No), the connection information acquisition unit 271 holds (stores) the URL of the next connection destination providing server 5 in the storage unit (flash memory 24 or the like) Is determined (step S24).
  • the connection information acquiring unit 271 acquires a URL of one connection destination providing server 5 from the connection destination providing server 5, and a plurality of connection destinations. Since there is a case where the list of URLs of the providing server is acquired, the determination process of step S24 is performed. In addition, the case where the connection to the server 2 fails by server down, network down, etc. is mentioned as an example of the cause which URL of the server 2 can not acquire.
  • step S24: Yes When the URL of the next connection destination providing server 5 is held (stored) in the storage unit (flash memory 24 or the like) (step S24: Yes), the process returns to step S22 and continues the processing for acquiring the URL of the server 2 Do.
  • step S24: No When the URL of the next connection destination providing server 5 is not held (stored) in the storage unit (flash memory 24 or the like) (step S24: No), the process proceeds to step S26.
  • step S23 when the URL of the server 2 can be acquired (step S23: Yes), the connection information acquisition unit 271 stores the URL of the server 2 in the storage unit (flash memory 24 or the like) (step S25).
  • the activation unit 272 determines whether the URL of the server 2 is held (stored) in the storage unit (flash memory 24 or the like) (step S26).
  • step S26: No the process proceeds to step S30, and an error screen is displayed on the operation panel 27 (display unit) Step S30)
  • the case where the connection to the server 2 fails by server down, network down, etc. is mentioned as an example of the cause which URL of the server 2 can not acquire.
  • the activation unit 272 passes the URL of the server 2 to the browser application, and the browser application is the activation unit 272 Requests model information, region information, and locale information (language information) identifying the model of MFP 6, and requests screen information and display information (application list screen) to server 2 specified by the URL received from The screen information request and the display information request are transmitted (step S27).
  • the activation unit 272 determines whether the screen information and the display information can be acquired from the server 2 (step S28). If the screen information and the display information can be acquired (step S28: Yes), the process ends. That is, the screen is generated in step S15 of FIG. 52, and the screen is displayed in step S16.
  • the activation unit 272 determines whether the URL of the next server is held (stored) in the storage unit (flash memory 24 or the like) (step S29). As described in the connection information identifying unit 322 and the list generating unit 323, the connection information acquiring unit 271 acquires a URL of one server 2 from the connection destination providing server 5, and a list of URLs of a plurality of servers. Is determined, the determination process of step S29 is performed.
  • step S29: Yes When the URL of the next server 2 is held (stored) in the storage unit (flash memory 24 or the like) (step S29: Yes), the process returns to step S27, and the process of acquiring the screen information and display information is continued.
  • step S29: No When the URL of the next server 2 is not held (stored) in the storage unit (flash memory 24 or the like) (step S29: No), an error screen is displayed on the operation panel 27 (display unit) and processing is performed (step S30) Finish. That is, when the URL of the next server 2 is not held (stored) in the storage unit (flash memory 24 or the like), using the URL of one server 2 or a plurality of servers acquired from the connection destination providing server 5 Also indicates that the screen information could not be acquired from the server. In addition, the case where the connection to the server 2 fails by server down, network down, etc. is mentioned as an example of the cause which URL of the server 2 can not acquire.
  • FIG. 54 shows details of an application that can be used by the MFP 6 in which the server 2 is linked to an organization that provides an application corresponding to area information or sales company information in step S13 of FIG. 52 described above. It is a flowchart which shows the operation example of the server 2 which produces
  • the specifying unit 216 receives the above-mentioned display information request from the MFP 6, the area information included in the received display information request is referred to with reference to the third correspondence information shown in FIG. An organization ID corresponding to sales company information is selected (step S41).
  • the identifying unit 216 refers to the fourth correspondence information shown in FIG.
  • step S42 The application ID associated with the information is selected (step S42).
  • the specifying unit 216 refers to the first correspondence information shown in FIG. 5 and selects the model ID associated with the model code included in the received display information request (step S43).
  • the identifying unit 216 refers to the second correspondence information shown in FIG. 6, and selects one or more application IDs associated with the selected model ID (step S44).
  • the specifying unit 216 also specifies version information associated with the application ID selected in step S44 among the second correspondence information shown in FIG.
  • the identifying unit 216 selects one or more application IDs published among the one or more application IDs associated with the organization ID selected in FIG.
  • the identifying unit 216 refers to the fifth correspondence information shown in FIG. 9, and combines the application ID identified in step S45 with the language information (locale information) included in the display information request received from the MFP 6
  • the application description information corresponding to is specified (step S46).
  • the identifying unit 216 refers to the sixth correspondence information shown in FIG. 10 to combine the application ID selected in step S45 with the language information (locale information) included in the display information request received from the MFP 6
  • the application price information corresponding to is specified (step S47).
  • the generation unit 217 associates the application description information identified in step S46 with the application ID selected in step S44 among the second correspondence information shown in FIG. 6 for each application ID identified in step S45.
  • the application detailed information can be generated by associating detailed information including the version information, the license key if the license key is set, and the application price information specified in step S47 (step S48).
  • FIG. 55 is a sequence diagram showing an example of an operation procedure of the system 1 when one of the application selection buttons 331 displayed on the application list screen shown in FIG. 38 is pressed.
  • the display control unit 273 performs control to display the above-described installation instruction screen (see FIG. 41) on the operation panel 27 when pressing of any of the application selection buttons 331 is received (step S51).
  • the display control unit 273 receives the pressing of the install button 332
  • the display control unit 273 refers to the screen information received from the server 2, and the user of the application detailed information in the display information included in the screen information. It is checked whether the license key is included in the detailed information corresponding to the application targeted for the installation instruction selected according to the operation (step S52).
  • step S52 As a result of confirmation in step S52, when a license key is included, control is performed to display the above-mentioned installation confirmation screen (see FIG. 42) on the operation panel 27 (step S53).
  • step S52 when the license key is not included (that is, when the application targeted for the installation instruction is a paid application), the display control unit 273 operates the input screen in FIG. Control to be displayed on the panel 27 is performed (step S54), and input of a license key from the user is accepted.
  • the user knows in advance the license key corresponding to the purchased application.
  • the administrator of the application may notify the user who has purchased the application of the license key by mail, mail, or the like.
  • the execution unit 274 selects the installation instruction selected according to the user's operation, the application ID (the application ID of the application targeted by the selected application instruction), and the license key (the selected application instruction) And the license key of the application to be notified to the process execution unit 275 (step S55).
  • the process execution unit 275 uses the license key notified from the execution unit 274 to execute the installation instruction notified from the execution unit 274. More specifically, it is as follows. First, the process execution unit 275 transmits, to the server 2, the above-described download request that includes at least the application ID of the application that is the target of the installation instruction, and requests the download of the application (step S56).
  • the server 2 (download unit 232) having received the download request selects an application corresponding to the application ID included in the received download request (step S57), and transmits the selected application to the MFP 6 (step S58).
  • the process execution unit 275 transmits, to the server 2, the above-described activation request including at least the application ID, the license key, and the machine number and requesting activation of the license (step S59).
  • the server 2 (the license activation unit 227) having received the activation request performs control to activate the license (step S60), and then returns a response to the activation request to the MFP 6 (step S61).
  • step S60 the specific content of step S60 is as described above, when the license validation unit 227 receives the above-described validation request from the MFP 6, the license validation unit 227 is included in the received validation request in the license information DB 224. Check if the license key exists.
  • the license validation unit 227 updates the information stored in the license information DB 224 as described above.
  • the license activation unit 227 issues a license file defining a license (usage of use) such as an expiration date of the application identified by the application ID included in the activation request received from the MFP 6, and responds to the activation request.
  • a license file defining a license (usage of use) such as an expiration date of the application identified by the application ID included in the activation request received from the MFP 6, and responds to the activation request.
  • the license file can also be transmitted.
  • an error is transmitted as a response to the validation request.
  • the MFP 6 (process execution unit 275) receives that the license status is valid as a response to the validation request, the MFP 6 (step S62) performs control to install the application downloaded from the server 2 (step S62). After the installation is completed, the process execution unit 275 associates the application ID of the application for which the installation has been completed with the version of the application at the time of installation, and adds the application management information by adding it to the application management information described above. It updates (step S63).
  • FIG. 56 is a sequence diagram showing an example of an operation procedure of the system 1 when the update selection button 325 displayed on the application list screen shown in FIG. 38 is pressed.
  • the display control unit 273 receives the pressing of the update selection button 325, the display control unit 273 identifies an application to be updated among the applications installed in the MFP 6 (step S71). Then, for each of the applications specified in step S71, control is performed to display an update instruction screen (see FIG. 47) for receiving an update instruction of the application on the operation panel 27 (step S72).
  • step S71 the display control unit 273 identifies an application to be updated among the applications installed in the MFP 6
  • control is performed to display an update instruction screen (see FIG. 47) for receiving an update instruction of the application on the operation panel 27 (step S72).
  • the specific contents of these are as described above.
  • the execution unit 274 receives pressing of any one of the update instruction buttons 341, the execution unit 274 notifies the process execution unit 275 of the update instruction attached to the update instruction button 341 (step S73).
  • the process execution unit 275 executes the update instruction notified from the execution unit 274. More specifically, it is as follows. First, the process execution unit 275 transmits, to the server 2, an update request for requesting an application of the latest version that includes at least an application ID to be updated (step S74).
  • the server 2 having received the update request selects an application corresponding to the application ID included in the received update request (step S75), and transmits the selected application to the MFP 6 (step S76).
  • the MFP 6 performs control to install the (newly downloaded application) received from the server 2 (step S77).
  • the process execution unit 275 associates the application ID of the application for which the installation has been completed with the version of the application at the time of installation (at the time of update) and adds it to the application management information described above.
  • Application management information is updated (step S78).
  • FIG. 57 is a sequence diagram showing an example of an operation procedure of the system 1 when the delete selection button 326 displayed on the application list screen shown in FIG. 38 is pressed.
  • the display control unit 273 receives the pressing of the delete selection button 326, the display control unit 273 performs control to display the above-described delete instruction screen (see FIG. 49) on the operation panel 27 (step S81).
  • the display control unit 273 receives pressing of any of the delete instruction buttons 351
  • the display control unit 273 performs control to display the above-described delete confirmation screen (see FIG. 50) on the operation panel 27 (step S82).
  • the uninstall command (uninstall attached to the pressed confirmation button 361 is selected according to the user's operation).
  • the installation instruction is notified to the process execution unit 275 (step S83).
  • the process execution unit 275 executes the uninstall instruction notified from the execution unit 274. More specifically, it is as follows. First, the process execution unit 275 requests the server 2 to invalidate the above-described request that includes at least the license key corresponding to the application targeted by the uninstall instruction and the machine number, and invalidate the license. Is sent (step S84). The server 2 (the license invalidation unit 228) having received the invalidation request performs control to invalidate the license (step S85), and then responds to the invalidation request (in this case, the license status is invalid). Is returned to the MFP 6 (step S86).
  • step S85 when the license invalidation unit 228 receives the above-described invalidation request from the MFP 6, the received invalidation of the information stored in the license information DB 224 is performed.
  • the valid status information associated with the combination of the license key and the machine number included in the request is changed to information indicating “invalid”, and the license in use associated with the license key included in the received invalidation request Decrement the number by one and increment the number of used licenses by one.
  • the MFP 6 (process execution unit 275) receives, as a response to the invalidation request, that the license status is invalid, it performs control to uninstall the application corresponding to the license key included in the invalidation request (step S87). After the uninstallation is completed, the process execution unit 275 updates the application management information by deleting the information corresponding to the application for which the uninstallation has been completed among the application management information described above (step S88).
  • the server 2 in response to a request from the MFP 6 connected via the network 7, the server 2 is an application that can be used by the MFP 6 linked to the area information where the MFP 6 is installed.
  • Control unit 212 for transmitting to the MFP 6 Web content data including at least display information indicating an application and an application command for causing the MFP 6 to execute processing related to an application.
  • the activation unit 272 activates the browser application
  • the connection information acquisition unit 271 acquires connection information of the server 2 to be connected, the display control unit 273 performing control to display a screen based on the web content data received from the server 2 on the operation panel 27, and Depending on the operation of the user via the displayed screen Run the application commands contained in Ceiling data includes an execution unit 274 for requesting execution of a process related to the application corresponding to the application command to MFP 6, a.
  • the MFP 6 stores connection information of the connection destination providing server 5 and acquires connection information of the server 2 for acquiring screen information and display information from the connection destination providing server 5 and holds the connection information. There is no need to change the program on the MFP 6 side even if the number of the servers increases and the installation position of the server 2 for each area changes. Furthermore, as described above, when the MFP 6 can not connect to the server 2 by storing the connection information of the plurality of servers 2, it can switch to another server 2 having the same function to perform communication. , Has a significant effect of improving availability.
  • the application arranged in the server 2 is used by the browser application of the operation unit 20 (that is, an application , Web application) may be included. Since it is not necessary to install such a web application on the MFP 6, when the pressing of the application selection button 331 corresponding to the web application is accepted, the display control unit 273 displays, for example, a shortcut creation instruction screen as shown in FIG. May be displayed on the operation panel 27.
  • the shortcut creation instruction screen displays application description information and application price information of the corresponding application (Web application), and a shortcut creation button 371 for instructing creation of a shortcut icon for calling the function of the web application.
  • a shortcut creation instruction indicating an instruction for creating a shortcut is pasted to the shortcut creation button 371.
  • the execution unit 274 receives pressing of the shortcut creation button 371, the execution unit 274 notifies the processing execution unit 275 of a shortcut creation instruction attached to the shortcut creation button 371. Then, the process execution unit 275 executes the shortcut creation instruction notified from the execution unit 274.
  • the application command may include a shortcut icon creation instruction indicating an instruction to create a shortcut icon for calling a function of the web application.
  • the shortcut icon creation instruction is selected according to the user's operation (for example, when the above-described shortcut creation button 371 is pressed)
  • the selected shortcut icon creation instruction (pressed) is selected.
  • the shortcut execution command attached to the shortcut creation button 371 may be notified to the processing execution unit 275, and the processing execution unit 275 may execute the shortcut icon creation instruction notified from the execution unit 274.
  • the display information received by the MFP 6 from the server 2 includes an application that requires installation and a Web application, referring to “appType” in the detailed information in FIG. It is also possible to determine that the application is required and display FIG. 41, and when the value is “web”, to determine that it is a web application and to display FIG.
  • the operation unit 20 may further include a function (authorization information management unit) that manages, for each of a plurality of users, authority information associated with the authority of the user.
  • the display control unit 273 refers to the authority information acquired from the authority information management unit, and is associated with a user who is using the MFP 6 (a user who is authorized to use the MFP 6 and a user who is logging in). If the authority is, for example, in a form in which execution of installation can not be instructed, the installation button 332 shown in FIG. 41 can also be hidden. Similarly, when the authority associated with the user who is using the MFP 6 is in a form that can not instruct the execution of the update, for example, the update instruction button 341 shown in FIG. 47 can also be hidden. Further, in the case where the authority associated with the user who is using the MFP 6 is, for example, a mode in which execution of uninstallation can not be instructed, the deletion instruction button 351 shown in FIG. 49 can also be hidden.
  • main body 10 and the operation part 20 operate mutually independently by a different operating system
  • move by the same operating system for example It may be in the form. That is, the main body 10 and the operation unit 20 may be integrated.
  • the form of the application list screen described above is arbitrary, and may be a form combining the above examples as shown in FIG. 59, for example.
  • the above-described screen providing unit 213 may be configured to generate Web content data including the above-described application command only when the above-described screen information request is received from the image forming apparatus including the MFP 6. That is, when the screen providing unit 213 receives a screen information request from a device (PC, tablet, etc.) other than the image forming apparatus, the screen providing unit 213 generates Web content data that does not include an application command, and responds as the response to the screen information request. The generated Web content data may be transmitted to the device.
  • a device PC, tablet, etc.
  • the screen providing unit 213 when the screen providing unit 213 receives a screen information request from a device other than the image forming apparatus, the screen providing unit 213 generates Web content data not including an application command, and generates the Web content data as a response to the screen information request.
  • the web content data may be transmitted to the device.
  • information button for selecting an application command (install instruction, update instruction, uninstall instruction, etc.) May be generated, and the generated Web content data may be transmitted to the device as a response to the screen information request.
  • the method of determining whether the screen information request received from the device is the screen information request from the MFP 6 is optional, for example, a method of determining using the User-Agent header may be used.
  • the device authentication may be performed at the time of the first access of (i.e., whether or not the MFP 6 is authenticated). Further, for example, when a command for the MFP 6 is executed by JavaScript, if an error occurs, it may be determined that the device is other than the MFP 6.
  • the program executed by the system 1 (server 2, MFP 6 or the like) of the embodiment described above is a file in an installable format or an executable format, and is a CD-ROM, a flexible disk (FD), a CD-R, a DVD (Digital Versatile Disk), USB (Universal Serial Bus), etc. may be configured to be recorded and provided in a computer-readable recording medium, or may be configured to be provided or distributed via a network such as the Internet May be
  • various programs may be configured to be provided by being incorporated in a ROM or the like in advance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Facsimiles In General (AREA)

Abstract

第1サーバは、地域情報を少なくとも含み、かつ、該地域情報に対応する機器が利用可能なアプリケーションを示す表示情報と、機器から該アプリケーションに関する処理を機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、機器からの要求に応じて、機器に送信する制御部を備え、機器は、地域情報を少なくとも含み、かつ、表示情報を要求する表示情報要求を送信し、第1サーバから受信したWebコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行を機器に要求する実行部と、を含むWebブラウザと、Webブラウザからの要求に基づいてアプリケーションに関する処理を実行する処理実行部と、を備える。

Description

システムおよび情報処理方法
 本発明は、システムおよび情報処理方法に関する。
 近年、携帯電話や情報携帯端末を代表とする様々な通信機器の普及により、通信機器上で利用可能なアプリケーションの開発が盛んになってきている。これらのアプリケーションの利用を促進するため、アプリケーションを紹介し、そのまま通信機器にダウンロードやインストールすることができるウェブサイトやアプリケーションも開発されている。
 例えば特許文献1では、サーバが保持している複数のアプリケーションごとに、当該アプリケーションのダウンロードを要求するダウンロードボタン(仮想ボタン)が表示されたアプリケーション説明ページが、サーバからコンピュータデバイス(クライアントデバイス)に提供され、コンピュータデバイスの表示部に表示される。そして、アプリケーション説明ページのダウンロードボタンが選択された場合、選択されたアプリケーションがコンピュータデバイスによってサポートされている場合に限り、ダウンロードを許可する技術が開示されている。
 しかしながら、例えば特許文献1に開示された技術では、サーバ側で、機器が利用可能なアプリケーションを紹介するページ(Webページ)の表示内容を変更する場合、その変更に合わせて機器側のプログラムも変更する必要がある。すなわち、従来においては、機器が利用可能なアプリケーションを紹介するページを提供(ページ自体を提供する形態、および、機器側でページを生成するために必要な情報を提供する形態の両方を含む)するサーバが、例えば地域ごとに表示内容の異なるページを構築するための仕組みは存在しなかった。
 また、機器から利用可能なアプリケーションを紹介するページの提供の要求があった場合、機器が設置されている地域で公開されているアプリケーションだけを選択して、機器が利用可能なアプリケーションを紹介するページを提供するという仕組みも存在しなかった。
 本発明は、上記に鑑みてなされたものであり、機器が利用可能なアプリケーションを紹介するページを提供するサーバが、表示内容の異なるページを構築可能で、機器が設置されている地域で公開されているアプリケーションだけを紹介するページを提供することができる、システムおよび情報処理方法を提供することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムであって、前記第1サーバは、前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御部を備え、前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行部と、を含むWebブラウザと、前記Webブラウザからの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行部と、を備える。
 本発明によれば、機器が利用可能なアプリケーションを紹介するページを提供するサーバは、表示内容が異なるページを構築可能で、機器が設置されている地域で公開されているアプリケーションだけを紹介するページを提供することができる。
図1は、本実施形態のシステムの構成の一例を示す図である。 図2は、サーバのハードウェア構成の一例を示す図である。 図3は、サーバが有する機能の一例を示す図である。 図4は、アプリ情報管理モジュールが有する機能の一例を示す図である。 図5は、第1の対応情報の一例を示す図である。 図6は、第2の対応情報の一例を示す図である。 図7は、第3の対応情報の一例を示す図である。 図8は、第4の対応情報の一例を示す図である。 図9は、第5の対応情報の一例を示す図である。 図10は、第6の対応情報の一例を示す図である。 図11は、制御部が有する機能の一例を示す図である。 図12は、ライセンス管理モジュールが有する機能の一例を示す図である。 図13は、第7の対応情報の一例を示す図である。 図14は、第8の対応情報の一例を示す図である。 図15は、第9の対応情報の一例を示す図である。 図16は、制御部が有する機能の一例を示す図である。 図17は、アプリダウンロード管理モジュールが有する機能の一例を示す図である。 図18は、サーバの変形例を示す図である。 図19は、接続先提供サーバが有する機能の一例を示す図である。 図20は、サービス検索モジュールが有する機能の一例を示す図である。 図21は、第10の対応情報の一例を示す図である。 図22は、第11の対応情報の一例を示す図である。 図23は、制御部が有する機能の一例を示す図である。 図24は、MFPのハードウェア構成の一例を示すブロック図である。 図25は、MFPのソフトウェア構成の一例を示す模式図である。 図26は、操作部が有する機能の一例を示す図である。 図27は、サーバの接続情報の取得要求の一例を示す図である。 図28は、サーバの接続情報の一例を示す図である。 図29は、各モジュールの接続情報の取得要求の一例を示す図である。 図30は、各モジュールの接続情報の一例を示す図である。 図31は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求の一例を示す図である。 図32は、サーバの接続情報と、複数の接続先提供サーバの接続情報の一例を示す図である。 図33は、操作画面の一例を示す図である。 図34は、地域情報設定画面の一例を示す図である。 図35は、地域情報設定ダイアログ画面の一例を示す図である。 図36は、販社情報入力画面の一例を示す図である。 図37は、エラー画面の一例を示す図である。 図38は、アプリケーション一覧画面の一例を示す図である。 図39は、表示情報要求の一例を示す図である。 図40は、表示情報要求に対する応答として受信した情報の一例を示す図である。 図41は、インストール指示画面の一例を示す図である。 図42は、インストール確認画面の一例を示す図である。 図43は、実行部から処理実行部へ通知される情報の一例を示す図である。 図44は、入力画面の一例を示す図である。 図45は、アプリケーション管理情報の一例を示す図である。 図46は、アプリケーション詳細情報の一例を示す図である。 図47は、更新指示画面の一例を示す図である。 図48は、実行部から処理実行部へ通知される情報の一例を示す図である。 図49は、削除指示画面の一例を示す図である。 図50は、削除確認画面の一例を示す図である。 図51は、実行部から処理実行部へ通知される情報の一例を示す図である。 図52は、システムの動作手順の一例を示すシーケンス図である。 図53は、MFPの動作例を示すフローチャートである。 図54は、サーバの動作例を示すフローチャートである。 図55は、システムの動作手順の一例を示すシーケンス図である。 図56は、システムの動作手順の一例を示すシーケンス図である。 図57は、システムの動作手順の一例を示すシーケンス図である。 図58は、ショートカット作成指示画面の一例を示す図である。 図59は、変形例のアプリケーション一覧画面の一例を示す図である。
 以下、添付図面を参照しながら、本発明に係るシステムおよび情報処理方法の実施形態を詳細に説明する。以下では、システムに含まれる機器の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、ファクス機能などの複数の異なる機能を有する装置である。
 図1は、本実施形態のシステム(情報処理システム)1の構成の一例を示す図である。図1に示すように、システム1は、サーバ2と、サーバ3と、サーバ4と、接続先提供サーバ5と、例えばインターネットなどのネットワーク7を介してサーバ2~4および接続先提供サーバ5に接続されるMFP6と、を備える。なお、サーバ2~4や接続先提供サーバ5は、複数のサーバから構成されるサーバ装置群を有しているクラウドコンピューティング型の形態である。図1に示すクラウドを構成するサーバの数は、一例を示したものであり、使用するサーバの数はこれに限定されない。
 なお、図1の例では、クラウド側から見るとクライアントとなるシステム1に含まれる機器として、1台のMFP6のみを例示しているが、これに限られるものではなく、システム1に含まれる機器の台数および種類は任意である。例えばクライアントとなる機器として、PC(Personal Computer)がシステム1に含まれる形態であってもよい。また、システム1に含まれるサーバ(第1サーバ)として、3台のサーバ2~4を例示しているが、これに限られるものではなく、システム1に含まれるサーバの台数および種類は任意である。また、システム1に含まれる接続先提供サーバ(第2サーバ)として、1台の接続先提供サーバ5を例示しているが、これに限られるものではなく、システム1に含まれる接続先提供サーバの台数および種類は任意である。なお以下では、「機器」を「MFP」とも表記する。なお、請求項の「第1サーバ」は「サーバ2~4」に対応し、請求項の「第2サーバ」は「接続先提供サーバ5」に対応する。
 接続先提供サーバ5は、MFP6からサーバ2~4の接続情報(URL)の取得要求に応じてサーバ2~4の接続情報をMFP6へ送信する。サーバ2~4は、MFP6からの要求に応じて、MFP6が利用可能なアプリケーションを示す情報を含む表示情報と、アプリケーションに関する処理をMFP6に実行させるコマンドを示すアプリケーションコマンドとを含む画面情報とで構成されるWebコンテンツデータをMFP6へ送信する。サーバ2~4は、サーバが設置されている地理的位置を示す地域が異なるだけであるので、以下では、サーバ2~4を区別する必要がない場合、サーバ2と表記する。なお図1の例において、サーバ2の地域は日本であり、サーバ3の地域はアメリカであり、サーバ4の地域はヨーロッパである。以下、サーバ2の具体的な構成を説明する。
 図2は、サーバ2のハードウェア構成の一例を示す図である。図2に示すように、サーバ2は、CPU301と、ROM302と、RAM303と、通信I/F304と、入力装置305と、表示装置306と、補助記憶装置307とを備える。CPU301は、サーバ2の動作を統括的に制御する。ROM302は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM303は、CPU301が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。通信I/F304は、ネットワーク7と接続するためのインタフェースである。入力装置305は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示装置306は各種の情報を表示するデバイスであり、例えば液晶型ディスプレイ装置などで構成される。補助記憶装置307は、例えばHDD(Hard Disk Drive)などで構成される。
 図3は、サーバ2が有する機能の一例を示す図である。図3に示すように、サーバ2は、アプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とを有する。図3の例では、本実施形態に関するモジュール(機能)のみを例示しているが、サーバ2が有するモジュールはこれらに限られるものではない。
 図4は、アプリ情報管理モジュール210が有する機能の一例を示す図である。アプリ情報管理モジュール210は、記憶部211と、制御部212と、画面提供部213と、設定部214と、を有している。なお、図4の例では、本実施形態に関する機能を主に例示しているが、アプリ情報管理モジュール210が有する機能はこれらに限られるものではない。
 図4に示すように、記憶部211は、アプリ情報データベース(以下、「アプリ情報DB」と称する)261と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)262とを有する。
 アプリ情報DB261は、機器(MFP6)が設置されている地理的位置を示す地域情報、または機器の販売店を示す販社情報に対応するアプリケーションを提供する組織を識別する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な機器の機種を識別する機種情報とを対応付けて記憶する。本実施形態では、アプリ情報DB261は、図5に示す第1の対応情報と、図6に示す第2の対応情報と、図7に示す第3の対応情報と、図8に示す第4の対応情報と、図9に示す第5の対応情報と、図10に示す第6の対応情報とを記憶している。
 図5に示すように、第1の対応情報は、機器(MFP6)の機種ごとに割り当てられた機種IDと、機器の機種名と、機器の機種を識別する機種コード(「機種情報」)とを対応付けた情報である。なお、1つの機種IDに、複数の機種コードを対応付けてもよい。図6に示すように、第2の対応情報は、アプリケーションを識別するアプリIDと、アプリケーションの使用権限(ライセンス)の認証に用いられるライセンスキーと、機種IDと、該アプリIDで識別されるアプリケーションの最新のバージョンを示すバージョン情報とを対応付けた情報である。なお、この例では、無償のアプリケーションのアプリIDに対しては、ライセンスの認証が不要であるために予めライセンスキーが対応付けられているが、有償のアプリケーションのアプリIDに対しては、ライセンスの認証が必要になるのでライセンスキーは対応付けられない構成となる。
 図7に示すように、第3の対応情報は、アプリケーションを提供する組織ごとに割り当てられた組織IDと、該組織IDで識別される組織名称と、該組織の種別と、該組織が位置する地理的位置を示す地域情報と、機器(MFP6)の販売店を示す販社情報とを対応付けた情報である。図8に示すように、第4の対応情報は、組織IDと、アプリIDと、アプリケーションが公開されている状態であるか否かを示す公開状態情報とを対応付けた情報である。以上の第1の対応情報と第2の対応情報と第3の対応情報と第4の情報との組み合わせにより、地域情報、または販社情報に対応するアプリケーションを提供する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な機器の機種を識別する機種情報とを対応付けていると考えることができる。
 また、図9に示すように、第5の対応情報は、アプリIDと、機器が使用される国や地域の言語を示す言語情報と、該アプリIDで識別されるアプリケーションの表示名称と、該アプリIDで識別されるアプリケーションを紹介する紹介メッセージとを対応付けた情報である。以下の説明では、表示名称と紹介メッセージとの組み合わせを、アプリケーションを説明するための「アプリ説明情報」と称する場合がある。
 また、図10に示すように、第6の対応情報は、組織IDと、アプリIDと、言語情報と、該アプリIDで識別されるアプリケーションの価格と、該アプリIDで識別されるアプリケーションの価格説明とを対応付けた情報である。以下の説明では、価格と価格説明との組合せを、アプリケーションの価格を説明するための「アプリ価格情報」と称する場合がある。
 図4に戻って記憶部211の説明を続ける。ユーザ情報DB262は、例えば後述の設定部214による設定のための操作を行う権限を有するユーザの認証に必要な情報を記憶する。
 次に、制御部212が有する機能を説明する。ここでは、制御部212が有する機能は、サーバ2側のアプリケーションプログラミングインタフェース(API)により提供される。
 ここで、説明の便宜上、制御部212が有する機能を説明する前に、画面提供部213の機能を説明する。画面提供部213は、機器(MFP6)から、画面情報を要求する画面情報要求を受信した場合に、アプリケーションコマンドを少なくとも含むWebコンテンツデータ(画面情報)を生成し、画面情報要求に対する応答として、Webコンテンツデータ(画面情報)を機器(MFP6)へ送信する。Webコンテンツデータ(画面情報)は、例えばHTMLと、HTMLに含まれる(あるいはHTMLから参照される)CSS、JavaScript(登録商標)などを含む。これを、機器(MFP6)のWebブラウザ(後述の表示制御部273)が表示して、JavaScriptのAjaxと呼ばれる技術で、サーバ2のAPI(制御部212)に表示情報を依頼する。例えばアプリケーションコマンドがJavaScriptである場合、HTMLにスクリプト自体を埋め込む形態であってもよいし、リンクだけを記載する形態であってもよい。この例では、送信元の機器(MFP6)の機種コードを含み、かつ、表示情報を要求する表示情報要求が、制御部212へ送信される。本実施形態のアプリケーションコマンドの種類として、インストール命令、更新命令、アンインストール命令などが挙げられる。インストール命令は、アプリケーションをインストールする命令を示す。更新命令は、アプリケーションを更新する命令を示す。アンインストール命令は、インストール済みのアプリケーションを削除して、MFP4の状態を、該アプリケーションをインストールする前の状態に戻す命令を示す。
 図11は、制御部212が有する機能の一例を示す図である。図11に示すように、制御部212は、特定部216と、表示情報生成部217と、設定制御部219とを有する。
 特定部216は、機器(MFP6)から、該機器が設置されている地理的位置を示す地域情報と、該機器の機種を識別する機種コードとを少なくとも含み、かつ、表示情報を要求する表示情報要求を受信した場合に、記憶部211(この例ではアプリ情報DB261)に記憶された情報を参照して、表示情報要求に含まれる地域情報と、機種コードと、地域情報に紐付いた組織IDで公開されている状態を示す公開状態情報との組み合わせに対応するアプリケーションを特定する。より具体的には、特定部216は、機器から表示情報要求を受信した場合、図7に示す第3の対応情報を参照して、その受信した表示情報要求に含まれる地域情報または販社情報に対応付けられた組織IDを選択する。なお、販社情報が含まれている場合は販社情報に対応付けられた組織IDを優先的に選択し、販社情報が含まれていない場合は地域情報に対応付けられた組織IDを選択する。次に、特定部216は、図8に示す第4の対応情報を参照して、その選択した組織IDに対応付けられた1以上のアプリIDの中から、公開されている状態を示す公開状態情報が対応付けられたアプリIDを選択する。次に、特定部216は、図5に示す第1の対応情報を参照して、その受信した表示情報要求に含まれる機種コードに対応付けられた機種IDを選択する。次に、特定部216は、図6に示す第2の対応情報を参照して、その選択した機種IDに対応付けられた1以上のアプリIDを選択する。次に、特定部216は、図8で選択した組織IDに対応付けられた1以上のアプリIDの中で公開されているアプリIDと、図6で選択した機種IDに対応付けられた1以上のアプリIDとを比較して一致するアプリIDを特定する。以上のようにして特定したアプリIDで識別されるアプリケーションを、機器(MFP6)から受信した表示情報要求に含まれる地域情報と、機種コードと、地域情報に紐付いた組織IDで公開されている状態を示す公開状態情報との組み合わせに対応するアプリケーションとして(つまり、表示情報要求の要求元の機器で利用可能なアプリケーションとして)特定する。
 また、本実施形態における表示情報要求の中には、該表示情報要求の要求元の機器が使用される国または地域の言語を示す言語情報(ロケール情報)が含まれているので、特定部216は、図9に示す第5の対応情報を参照して、以上のようにして特定したアプリIDと、機器から受信した表示情報要求に含まれる言語情報との組み合わせに対応するアプリ説明情報を特定することができる。同様に、本実施形態における表示情報要求の中には、該表示情報要求の要求元の機器が使用される国または地域の言語を示す言語情報(ロケール情報)が含まれているので、特定部216は、図10に示す第6の対応情報を参照して、以上のようにして特定した組織IDごとのアプリIDと、機器から受信した表示情報要求に含まれる言語情報との組み合わせに対応するアプリ価格情報を特定することができる。なお、上記言語情報は、HTTPのAccept-Languageヘッダで記載するのが一般的である。
 図11の説明を続ける。表示情報生成部217は、特定部216により特定されたアプリケーションを示すWebコンテンツデータ(表示情報)を生成し、その生成したWebコンテンツデータ(表示情報)を、表示情報要求に対する応答として機器(MFP6)へ送信する。本実施形態のWebコンテンツデータ(表示情報)は、表示情報要求の要求元の機器(MFP6)が利用可能なアプリケーションごとに(例えばアプリIDごとに)、該アプリケーションの詳細を示す詳細情報を対応付けたアプリケーション詳細情報を含んでいる。詳細情報としては、ライセンスキー、バージョン情報、アプリ説明情報、アプリ価格情報などが含まれる。
 設定制御部219は、設定部214による設定を、記憶部211に記憶された情報に反映させる制御を行う。つまり、設定制御部219は、設定部214による設定に応じて、記憶部211に記憶された情報を更新する制御を行う。この例では、設定部214は、ユーザの操作に応じて、表示情報を可変に設定する機能を有する。例えば設定部214は、ユーザの操作に応じて、アプリ説明情報やアプリ価格情報、画面上の表示部品の配置などを示すレイアウト情報を可変に設定することができる。これにより、例えば地域ごとに異なる表示内容とすることもできる。
 以上に説明した制御部212、画面提供部213および設定部214の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部211は、ROM302またはHDD等の補助記憶装置307などにより実現可能である。この例では、制御部212と画面提供部213との組み合わせが、機器(MFP6)からの要求に応じて、機器(MFP6)が利用可能なアプリケーションを示す表示情報と、アプリケーションコマンドを少なくとも含む画面情報とで構成されるWebコンテンツデータを送信する機能(「制御部」)に対応していると考えることができる。
 次に、ライセンス管理モジュール220が有する機能を説明する。図12は、ライセンス管理モジュール220が有する機能の一例を示す図である。図12に示すように、ライセンス管理モジュール220は、記憶部221と、制御部222と、ライセンス発行部223とを有している。なお、図12の例では、本実施形態に関する機能を主に例示しているが、ライセンス管理モジュール220が有する機能はこれらに限られるものではない。
 図12に示すように、記憶部221は、ライセンス情報データベース(以下、「ライセンス情報DB」と称する)224と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)225と、を有する。
 ライセンス情報DB224は、複数のアプリケーションごとに、該アプリケーションの使用権限(ライセンス)に関する情報を対応付けて記憶する。本実施形態では、ライセンス情報DB224は、図13に示す第7の対応情報と、図14に示す第8の対応情報と、図15に示す第9の対応情報とを記憶している。
 図13に示すように、第7の対応情報は、アプリIDと、ライセンスの種別を示すライセンス種別と、ライセンスの形態(この例では、有償、無償、トライアルのうちの何れか)を示すライセンス形態と、ライセンスが有効な期間を示す有効期限と、ライセンスを付与可能な数を示すボリューム数とを対応付けた情報である。また、図14に示すように、第8の対応情報は、ライセンス種別と、ライセンスキーと、使用中のライセンスの数を示す使用中ライセンス数と、使用済みのライセンスの数を示す使用済みライセンス数とを対応付けた情報である。さらに、図15に示すように、第9の対応情報は、ライセンスキーと、機番と、有効期限と、ライセンスが有効であるか無効であるかを示す有効状態情報とを対応付けた情報である。
 図12に戻って記憶部221の説明を続ける。ユーザ情報DB225は、例えばライセンスを発行するための操作を行うことができるユーザの認証に必要な情報を記憶する。このユーザ情報DB225は、アプリ情報管理モジュール210のユーザ情報DB262と共通であってもよい。
 次に、制御部222が有する機能を説明する。ここでは、制御部222が有する機能は、サーバ2側のアプリケーションプログラミングインタフェース(API)により提供される。図16は、制御部222が有する機能の一例を示す図である。図16に示すように、制御部222は、登録制御部226と、ライセンス有効化部227と、ライセンス無効化部228とを有する。
 登録制御部226は、ライセンス発行部223により発行されたライセンスに関する情報を記憶部221(ライセンス情報DB224)に登録する制御を行う。本実施形態では、ライセンス発行部223は、ライセンスを発行するための操作を行う権限を有するユーザから、ライセンスを発行する対象となるアプリケーションのアプリIDと、ライセンス種別を選択する操作を受け付けた場合、その受け付けた操作により選択されたアプリIDとライセンス種別に対応するライセンスキーを発行する。なお、ライセンス発行部223は、HTMLなどで記述されるUIを作るだけにして、ユーザの操作に応じてライセンスを発行する機能は、制御部222が有する形態であってもよい。登録制御部226は、ライセンス発行部223により発行されたライセンスキーと、該ライセンスキーに対応するライセンス種別とを示す情報をライセンス情報DB224に登録する制御を行う。より具体的には、登録制御部226は、ライセンス発行部223から、ライセンスキーと、該ライセンスキーに対応するライセンス種別とを受け取った場合、図14に示す第8の対応情報の中に、その受け取ったライセンスキーとライセンス種別とを含む新たなレコード(単位情報、この例では行単位の情報)を追加する。
 ライセンス有効化部227は、機器(MFP6)からの要求に応じて、ライセンスを有効化するための制御を行う。この例では、ライセンス有効化部227は、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する有効化要求を機器(MFP6)から受信した場合、ライセンス情報DB224に記憶された第8の対応情報(図14参照)の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。その確認結果が肯定の場合、ライセンス有効化部227は、ライセンス情報DB224に記憶された第7の対応情報(図13参照)を参照して、その受信した有効化要求に含まれるアプリIDに対応付けられた有効期限を特定する。そして、図15に示す第9の対応情報の中に、受信した有効化要求に含まれるライセンスキーおよび機番と、特定した有効期限と、有効を示す有効状態情報とを対応付けた新たなレコードを追加する。また、ライセンス有効化部227は、図14に示す第8の対応情報を参照して、機器(MFP6)から受信した有効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけインクリメントして更新する。そして、ライセンス有効化部227は、有効化要求に対する応答として、ライセンスの状態が有効である旨を機器(MFP6)へ送信する。この通知を受けた機器(MFP6)は、有効化要求に含まれるアプリIDで識別されるアプリケーションを利用することができる。
 なお、例えばライセンス情報DB224に記憶された情報の中に、機器(MFP6)から受信した有効化要求に含まれるライセンスキーが存在しない場合や、機器(MFP6)から受信した有効化要求に含まれるライセンスキーに対応するボリューム数が既に上限に到達している場合は、ライセンス有効化部227は、機器(MFP6)からの有効化要求に対して、エラーを返すことになる。
 ライセンス無効化部228は、機器(MFP6)からの要求に応じて、ライセンスを無効化するための制御を行う。この例では、ライセンス無効化部228は、ライセンスキーと機番とを少なくとも含み、かつ、ライセンスの無効化を要求する無効化要求を機器(MFP6)から受信した場合、ライセンス情報DB224に記憶された第9の対応情報(図15参照)を参照して、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を、無効を示す情報に変更する。また、ライセンス情報DB224に記憶された第8の対応情報(図14参照)を参照して、機器(MFP6)から受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントして更新する。そして、ライセンス無効化部228は、無効化要求に対する応答として、ライセンスの状態が無効である旨を機器(MFP6)へ送信する。この通知を受けた機器(MFP6)は、無効化要求に含まれるアプリIDで識別されるアプリケーションを利用することはできなくなる。
 以上に説明した制御部222およびライセンス発行部223の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部221は、ROM302またはHDD等の補助記憶装置307により実現可能である。
 次に、アプリダウンロード管理モジュール230が有する機能を説明する。図17は、アプリダウンロード管理モジュール230が有する機能の一例を示す図である。図17に示すように、アプリダウンロード管理モジュール230は、アプリストレージ231と、ダウンロード部232とを有している。なお、図17の例では、本実施形態に関する機能を主に例示しているが、アプリダウンロード管理モジュール230が有する機能はこれらに限られるものではない。
 アプリストレージ231は、機器(MFP6)に提供するための複数のアプリケーションを記憶している。この例では、アプリストレージ231は、複数のアプリIDごとに、アプリケーション本体を含むデータファイルを対応付けて記憶している。ダウンロード部232は、機器(MFP6)からの要求に応じて、アプリストレージ231に記憶された何れかのアプリケーションをMFP6へ送信(ダウンロード)する制御を行う。この例では、ダウンロード部232は、アプリIDを少なくとも含み、かつ、アプリケーションのダウンロードを要求するダウンロード要求を機器(MFP6)から受信した場合、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションを機器(MFP6)へ送信する。より具体的には、ダウンロード部232は、アプリストレージ231を参照して、機器(MFP6)から受信したダウンロード要求に含まれるアプリIDに対応するデータファイルを特定し、その特定したデータファイルを機器(MFP6)へ送信する。
 以上に説明したダウンロード部232の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明したアプリストレージ231は、ROM302またはHDD等の補助記憶装置307により実現可能である。
 以上がサーバ2の構成となる。なお、サーバ2は、図1に示したように、複数のサーバから構成される形態であってもよい。例えば図18に示すように、サーバ2は、アプリケーションサーバ240と、データベースサーバ250とから構成される形態であってもよい。例えばアプリケーションサーバ240は、上述の制御部212、画面提供部213、設定部214、制御部222、ライセンス発行部223を有する形態であってもよい。また、例えばアプリケーションサーバ240は、複数のサーバで構成され、上述の制御部212、画面提供部213、設定部214、制御部222、ライセンス発行部223、ダウンロード部232の各々は、何れかのサーバに分散して搭載される形態であってもよい。
 また、例えばデータベースサーバ250は、上述の記憶部211および記憶部221を有する形態であってもよい。また、例えばデータベースサーバ250は、複数のサーバで構成され、上述のアプリ情報DB261、ユーザ情報DB262、ライセンス情報DB224、ユーザ情報DB225、アプリストレージ231の各々は、何れかのサーバに分散して搭載される形態であってもよい。
 また、図1の例で説明したように、例えばサーバ2の地域は日本であり、サーバ3の地域はアメリカであり、サーバ4の地域はヨーロッパである。このような場合、上記のサーバ2~4の構成はすべて同じ構成であってもよい。また例えば、サーバ2(日本)だけがライセンス管理モジュールを備え、サーバ3(アメリカ)、サーバ4(ヨーロッパ)はライセンス管理モジュールを備えない構成であってもよい。また例えば、サーバ2(日本)、サーバ4(ヨーロッパ)がアプリケーションサーバ240と、データベースサーバ250とを備え、サーバ3(アメリカ)は、アプリケーションサーバ240と、データベースサーバ250とを備えない構成であってもよい。
 また、アプリダウンロード管理モジュール230は、応答性を向上させるために、例えば、サーバ2~4に備えるようにし、ライセンス管理モジュール220は、一極集中管理を行うために、例えば、サーバ2(日本)に備えるようにしてもよい。また、アプリ情報管理モジュール210は、応答性を向上させるためや、データ保護の観点からサーバ2(日本)、サーバ4(ヨーロッパ)に備えるようにし、アプリ情報管理モジュール210のサブモジュール(設定部214)は、業務効率の向上のためにサーバ2(日本)に備えるようにしてもよい。
 次に、接続先提供サーバ5の機能構成について説明する。なお、接続先提供サーバ5のハードウェア構成の一例は、上記の図2を用いて説明した、サーバ2のハードウェア構成の一例と同様であるため詳細な説明は省略する。図19は、接続先提供サーバ5が有する機能の一例を示す図である。図19に示すように、接続先提供サーバ5は、サービス検索モジュール310を有する。図19の例では、本実施形態に関するモジュール(機能)のみを例示しているが、接続先提供サーバ5が有するモジュールはこれに限られるものではない。
 図20は、サービス検索モジュール310が有する機能の一例を示す図である。サービス検索モジュール310は、記憶部311と、制御部312と、を有している。なお、図20の例では、本実施形態に関する機能を主に例示しているが、サービス検索モジュール310が有する機能はこれらに限られるものではない。
 図20に示すように、記憶部311は、接続情報データベース(以下、「接続情報DB」と称する)321を有する。
 接続情報DB321は、少なくとも、アプリケーションを提供する組織ごとに割り当てられた組織IDと、該組織が位置する地理的位置を示す地域情報と、機器(MFP6)の販売店を示す販社情報とを対応付けた情報を記憶する。
 接続情報DB321は、少なくとも、機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報に対応付けられた組織IDと、アプリケーションを提供するサーバ2の接続情報とを対応付けた情報を記憶する。
 また、接続情報DB321は、少なくとも、機器(MFP6)を識別する機器情報(機番)と、アプリケーションを提供するサーバの接続情報とを対応付けた情報を記憶する。本実施形態では、接続情報DB321は、図7に示した第3の対応情報と、図21に示す第10の対応情報と、図22に示す第11の対応情報とを記憶している。なお、接続情報DB321は、第3の対応情報および第10の対応情報、または第11の対応情報のどちらか一方を記憶するようにしてもよい。
 図21に示すように、第10の対応情報は、アプリケーションを提供する組織ごとに割り当てられた組織IDと、組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報とを対応付けた情報である。図7に示す第3の対応情報および図21に示す第10の対応情報を用いることで、機器(MFP6)が設置されている地域情報または販社情報に基づいて、地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報(URL)を特定することができる。これにより、接続先提供サーバ5は、機器(MFP6)に一番近いロケーションにあるサーバに接続させることができる。
 図22に示すように、第11の対応情報は、機器(MFP6)を識別する機番と、アプリケーションを提供するサーバの接続情報とを対応付けた情報である。第11の対応情報を用いることで、機番から、アプリケーションを提供するサーバの接続情報(URL)を特定することができる。これにより、機番ごとに、アプリケーションを提供するサーバの接続情報を管理する場合には、接続先提供サーバ5は、機器(MFP6)の機番に対応付いた所定のサーバに接続させることができる。例えば、特定の機器だけを特別に所定のサーバに接続させたい場合、具体的には、複数地域にまたがる企業のユーザに対して、地域情報(地域コード)または販社情報(販社コード)は、契約元の本社所在地に基づいて設定されていたとしても、機器(MFP6)に接続させるサーバは機器(MFP6)の設置されている場所に近いところのサーバに接続させたい場合には、第11の対応情報を用いることで、接続先提供サーバ5は、機器(MFP6)の機番に対応付いた所定のサーバに接続させることができる。このように、接続先提供サーバ5は、機器(MFP6)から地域情報または販社情報と、機器情報(機番)とを少なくとも含む、接続情報取得要求を受け付けた場合、地域情報または販社情報に拠らず、機器(MFP6)ごとに所定の接続情報を特定することができる。
 上記の第10の対応情報および第11の対応情報の用い方として、例えば通常は機器(MFP6)が設置されている地域情報(地域コード)または販社情報(販社コード)に基づいて、第10の対応情報を用いて、地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報(URL)を特定し、特定の機器だけを所定のサーバに接続させたい場合には、第11の対応情報を用いて、機器(MFP6)の機番に対応付いた所定のサーバを特定する。なお、図22に示した第11の対応情報に機番が登録されている場合は第11の対応情報を用いてサーバの接続情報を特定し、第11の対応情報に機番が登録されていない場合には、第10の対応情報を用いて地域情報または販社情報に基づいてサーバの接続情報を特定するようにしてもよい。
 次に、制御部312が有する機能を説明する。制御部312は、機器(MFP6)から該機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報と、該機器(MFP6)を識別する機器情報(機番)とを少なくとも含み、サーバ2の接続情報の取得を要求する接続情報取得要求に応じて、記憶部311に記憶された情報を参照し、サーバ2の接続情報を特定し、該サーバ2の接続情報を機器(MFP6)に送信する制御を行う。ここでは、制御部312が有する機能は、接続先提供サーバ5側のアプリケーションプログラミングインタフェース(API)により提供される。
 図23は、制御部312が有する機能の一例を示す図である。図23に示すように、制御部312は、接続情報特定部322と、リスト生成部323とを有する。
 まず、接続情報特定部322とリスト生成部323の役割分担について説明する。本実施形態では、接続情報特定部322がサーバ2の接続情報(URL)を特定してリスト生成部323に受け渡し、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して接続情報特定部322に受け渡し、接続情報特定部322が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信する。なお、所定の条件は任意に設定できる。また、本実施形態において、接続情報特定部322が特定するサーバ2の接続情報(URL)が1つだけの場合と、複数ある場合とがある。サーバ2の接続情報(URL)が1つだけの場合にはリスト生成部323は、接続情報(URL)が1つの接続一覧情報(リスト)を生成する。また、サーバ2の接続情報(URL)が複数ある場合にはリスト生成部323は、所定の条件に従って並べた複数の接続情報(URL)の接続一覧情報(リスト)を生成する。なお、「接続情報特定部」は請求項の「接続情報送信部」の機能を含んでいる。以下では、接続一覧情報を「リスト」とも表記する。
 また、本実施形態の変形例として、リスト生成部323が生成した複数のサーバの接続情報の接続一覧情報(リスト)を、リスト生成部323から機器(MFP6)に送信させるようにすることも可能である。この場合、接続情報特定部322がサーバ2の接続情報(URL)を特定してリスト生成部323に受け渡し、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信する。
(接続情報が1つの場合)
 接続情報特定部322は、機器(MFP6)から地域情報または販社情報と、該機器(MFP6)を識別する機器情報(機番)とを少なくとも含み、サーバ2の接続情報の取得を要求する接続情報取得要求を受け付けて、記憶部311(この例では接続情報DB321)に記憶された情報を参照して、サーバ2の接続情報の取得要求に含まれる地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(URL)を特定し、サーバ2の接続情報(URL)をリスト生成部323に受け渡し、リスト生成部323で生成された接続情報(URL)のリストを受け取って機器(MFP6)に送信する。具体的には、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受信した場合、図7に示す第3の対応情報を参照して、その受信したサーバ2の接続情報取得要求に含まれる地域情報または販社情報に対応付けられた組織IDを選択する。例えば、サーバ2の接続情報取得要求に地域情報「JP」が含まれていた場合、接続情報特定部322は、組織ID「O0002」を選択する。なお、販社情報が含まれている場合は販社情報に対応付けられた組織IDを優先的に選択し、販社情報が含まれていない場合は地域情報に対応付けられた組織IDを選択する。そして、接続情報特定部322は、図21に示す第10の対応情報の中で、選択した組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(この例では、組織ID「O0002」(日本支社)の接続情報、https://jp.example.com/apps)を特定し、特定したサーバ2の接続情報(https://jp.example.com/apps)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)の接続一覧情報(リスト)を受け取って機器(MFP6)に送信する。この際に接続情報取得要求のパラメータに、自身(接続先提供サーバ5)の接続情報の取得要求が含まれていた場合には、接続情報特定部322は、接続情報(URL)のリストと、自身(接続先提供サーバ5)の接続情報(https://jp.example.com/apps/discov)を併せて機器(MFP6)に送信する。なお、各接続情報を送信するか、送信しないかは、接続情報取得要求のパラメータとして指定される。パラメータとは、後述する図27に示す接続情報の取得要求の「service」パラメータである。この接続情報取得要求のパラメータに応じて、それぞれの接続情報(URL)を機器(MFP6)に送信する。
(接続情報が複数ある場合)
 また、接続情報特定部322は、地域情報または販社情報に対応する組織IDのサーバ2の接続情報(URL)を特定した際に、さらにサーバ2の地域情報に地理的位置が近い組織IDを特定する。次に、地理的位置が近い組織IDのサーバの接続情報(URL)を特定する。このようにして、特定した複数のサーバの接続情報(URL)をリスト生成部323に受け渡す。具体的には、例えば、サーバ2の接続情報の取得要求に含まれる販社情報が「JA5」の場合には図7の第3の対応情報を参照し、組織ID「O0005」を特定し、図21の第10の対応情報を参照し、組織ID「O0005」の接続情報(https://ja5.jp.example.com/apps)を特定する。次に、図7の第3の対応情報の中で組織ID「O0005」の地域情報「JP」と同じ地域情報を持つ組織ID「O0006」と「O0002」を特定し、図21の第10の対応情報を参照し、組織ID「O0006」の接続情報(https://ja6.jp.example.com/apps)、「O0002」の接続情報(https://jp.example.com/apps)を特定する。そして、接続情報特定部322は、特定した組織ID「O0005」、「O0006」、「O0002」の接続情報(URL)をリスト生成部323に受け渡す。また、例えば、接続情報の取得要求に含まれる地域情報が「EU」の場合には図7の第3の対応情報を参照し、組織ID「O0004」を特定し、図21の第10の対応情報を参照し、組織ID「O0004」の接続情報(https://eu.example.com/apps)を特定する。図7の第3の対応情報で組織ID「O0004」の地域情報「EU」と同じ地域情報である組織IDは存在しないので、他の地域情報「US」または「JP」の地域情報を持つ組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」を特定し、図21の第10の対応情報を参照し、組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」の接続情報(URL)を特定する。そして、接続情報特定部322は、特定した組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」の接続情報(URL)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)のリストを受け取って機器(MFP6)に送信する。
 なお、上記の説明では、接続情報特定部322が複数のサーバの接続情報を特定する場合、接続情報の取得要求に含まれている地域情報に地理的位置が近い組織IDのサーバの接続情報(URL)を特定したが、これに限ることはなく、異なる地域情報の組織IDのサーバの接続情報(URL)を特定してもよいし、すべての地域情報の組織IDのサーバの接続情報(URL)を特定するようにしてもよい。
 ここで、「地理的位置が近い」、「遠い」について補足説明をする。ネットワークシステムにおける応答性能(ネットワーク遅延)と地理的な位置は必ずしも関係しない。例えば、日本と欧州の通信は米国経由になることが多いので、通信の距離としては日本と欧州は、日本と米国よりも遠いことになる。従って、サーバ2の接続情報取得要求が、日本からのアクセスであれば、日本→米国→欧州の順に特定し、リストを生成することになる。サーバ2の接続情報取得要求が、米国からであれば米国→欧州→日本の順に特定し、リストを生成することになる。また、サーバ2の接続情報取得要求が、欧州からであれば欧州→米国→日本の順に特定し、リストを生成することになる。但し、欧州からのアクセスに関しては、米国との通信を嫌う傾向があるので、欧州→日本の順だけのリストを生成してもよい。なお、順位の決定に関する仕組みは任意である。
(所定の接続情報の場合)
 また、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受け付けた場合、記憶部311(この例では接続情報DB321)に記憶された情報を参照して、サーバ2の接続情報取得要求に含まれる機番に対応するアプリケーションを提供するサーバの接続情報(URL)を特定し、該サーバの接続情報を機器(MFP6)に送信するようにすることもできる。より具体的には、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受信した場合、図22に示す第11の対応情報に機番が登録されていた場合(この例では機番「3F08-00001」が登録されている)には、アプリケーションを提供するサーバの接続情報(https://jp.example.com/apps)を特定し、特定したサーバの接続情報(URL)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)の接続一覧情報(リスト)を受け取って機器(MFP6)に送信する。
(サーバの接続情報のリスト)
 図23の説明を続ける。リスト生成部323は、上述したように、接続情報特定部322から、1つのサーバの接続情報または複数のサーバの接続情報を受け取ることになる。リスト生成部323は、サーバ2の接続情報が1つだけの場合には、サーバの接続情報が1つだけのリストを生成して接続情報特定部322に受け渡す。また、リスト生成部323は、サーバ2の接続情報が複数ある場合には、接続情報特定部322から受け取った複数のサーバの接続情報の中で、機器(MFP6)が設置されている地域情報に地理的位置が近い接続情報から該地理的位置が遠い接続情報の順に並べた複数のサーバの接続情報のリストを生成して接続情報特定部322に受け渡す。すなわち、上述したようにリスト生成部323は、接続情報特定部322で特定した複数のサーバ2の接続情報の中で、機器(MFP6)と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数のサーバ2の接続情報の接続一覧情報(リスト)を生成して接続情報特定部322に受け渡す。なお、上述した本実施形態の変形例として、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信するようにすることもできる。
(接続先提供サーバの接続情報のリスト)
 また、リスト生成部323は、接続先提供サーバが複数存在する場合には、複数のサーバの接続情報のリストを生成すると共に、複数の接続先提供サーバの接続情報のリストを併せて生成する。そして、生成した2つのリスト(複数のサーバの接続情報のリストおよび複数の接続先提供サーバの接続情報のリスト)を接続情報特定部322に受け渡す。ここで、2つのリストの生成は、上述したように接続情報取得要求のパラメータとして指定される。パラメータとは、後述する図27に示す接続情報の取得要求の「service」パラメータである。なお、リスト生成部323は、複数の接続先提供サーバの接続情報の中で、機器(MFP6)が設置されている地域情報に地理的位置が近い接続情報から該地理的位置が遠い接続情報の順に並べた複数の接続先提供サーバの接続情報のリストを生成するが、これに限ることはなくリストの順は任意である。例えば、上述したようにリスト生成部は、複数の接続先提供サーバの接続情報の中で、機器(MFP6)と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数の接続先提供サーバの接続情報の接続一覧情報(リスト)を生成する。なお、上述した本実施形態の変形例として、リスト生成部323が所定の条件に従って並べた複数の接続先提供サーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(接続先提供サーバ5の接続情報の接続一覧情報)を機器(MFP6)に送信するようにすることもできる。
 以上が接続先提供サーバ5の構成である。接続先提供サーバ5を設置する地域としては、図1の例で説明したサーバ2(日本)、サーバ3(アメリカ)、サーバ4(ヨーロッパ)が設置される各地域に接続先提供サーバ5を設置するようにしてもよいし、ユーザの数が多い地域、例えば日本には接続先提供サーバ5を複数台設置するようにしてもよい。
 次に、図24を用いて、MFP6のハードウェア構成について説明する。図24に示すように、MFP6は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
 なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
 まず、本体10のハードウェア構成について説明する。図24に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
 CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
 通信I/F15は、ネットワーク7と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
 エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを備えることもできる。
 次に、操作部20のハードウェア構成について説明する。図24に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27とを備え、これらがシステムバス28を介して相互に接続されている。
 CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
 通信I/F25は、ネットワーク7と接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。
 操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP6の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
 次に、MFP6のソフトウェア構成について説明する。図25は、MFP6のソフトウェア構成の一例を示す模式図である。図25に示すように、本体10は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
 アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
 サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受け付け、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
 なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201(アプリ)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。
 OS層103のソフトウェアは、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム(OS))である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
 同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202及びOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能)やインストール済みのアプリケーションのライセンスファイルを更新する機能等に関する操作や表示を行うためのUI(ユーザインタフェース)の機能を提供するためのソフトウェアである。この例では、アプリ層201のアプリには、Webブラウザの機能を提供するためのアプリ(以下、「ブラウザアプリ」と称する場合がある)や、上述のWebコンテンツデータに含まれるアプリケーションコマンドを実行する機能を提供するためのアプリ(以下、「インストーラ」と称する場合がある)などが含まれる。
 なお、本実施形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと操作部20側のOS層203のソフトウェアが互いに異なる。つまり、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
 以上のように、本実施形態のMFP6において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
 また、本実施形態では、操作部20に対する電力供給は、本体10から通信路30を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
 図26は、本実施形態の操作部20が有する機能の一例を示す図である。図26に示すように、操作部20は、接続情報取得部271と、起動部272と、表示制御部273と、実行部274と、処理実行部275と、を有する。なお、図26の例では、本実施形態に関する機能を主に例示しているが、操作部20が有する機能はこれらに限られるものではない。また、図26に示すように、表示制御部273および実行部274は、Webブラウザにおいて実現されている。
 接続情報取得部271は、後述する起動部272がユーザの操作に応じて、ブラウザ機能を提供するブラウザアプリを起動する際に接続するサーバ2の接続情報(URL)を取得するために、機器情報(機番)と、地域情報または販社情報とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続先取得要求を接続先提供サーバ5に対して送信する。そして、接続情報取得部271は、接続先提供サーバ5から送信されたアプリケーションを提供するサーバ2の接続情報(URL)と接続先提供サーバ5の接続情報(URL)とを取得して記憶部(フラッシュメモリ24)に記憶させると共に後述する起動部272に受け渡す。なお、接続情報取得部271は、デフォルトとして最初に接続する少なくとも1つの接続先提供サーバ5の接続情報を予め保持している。そして、2回目以降からは他の接続先提供サーバの設置状況に応じて接続先提供サーバ5の接続情報は更新されることになる。なお、接続情報取得部271がサーバ2の接続情報(URL)を取得するタイミングとしては、起動部272がブラウザアプリを起動する前に取得してもよいし、起動部272がブラウザアプリを起動する際に(起動中に)取得してもよい。
 本実施形態において、接続情報取得部271が接続先提供サーバ5に送信するサーバ2の接続情報の取得要求の一例として下記の3つのパターンを例示することができるが、これに限られることはなく任意である。
(サイト全体の接続情報を取得)
 第1のパターンは、図3で示した、サーバ2にアプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とが含まれている場合であって、各モジュールを含むアプリダウンロードサイト全体(サーバ2)の接続情報(URL)を取得する例である。図27は、サーバの接続情報の取得要求の一例を示す図であり、図28は、サーバの接続情報の取得要求に対する応答として受信したサーバの接続情報(URL)の一例を示す図である。図27に示す接続情報の取得要求のパラメータ「service」は接続情報を要求するサーバの識別子を示し、「device_id」は機番を示し、「region_code」は地域コード(地域情報)を示し、「dealer_code」は販社コード(販社情報)を示している。なお、「?」の後ろに「パラメータ名=値」を「&」でつないで並べるのはQUERYパラメータと呼ばれる標準の記法である。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。接続情報取得部271は、図28に示すサーバ2の接続情報を記憶部(フラッシュメモリ24等)に記憶させる。
(サイトの接続情報を、サブモジュールごとに取得)
 第2のパターンは、図4、図12、図17で示した、アプリ情報管理モジュール210、ライセンス管理モジュール220、アプリダウンロード管理モジュール230の各モジュールが備えるサブモジュールごとに接続情報(URL)を取得する例である。図29は、各モジュールの接続情報の取得要求の一例を示す図であり、図30は、各モジュールの接続情報の取得要求に対する応答として受信した各モジュールの接続情報(URL)の一例を示す図である。図29に示す接続情報の取得要求のパラメータ「service」の値は特殊文字をエンコードしたものである。すなわち、「appsdownload/api appsdownload/top appsdownload/operation appsdownload/storage」はスペース区切りでサーバの識別子を並べた文字列であり、これをエンコードした結果が、図29に示した「appsdownload%2Fapi+appsdownload%2Ftop+appsdownload%2Foperation+appsdownload%2Fstorage」である。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。図30に示す「appsdownload/api」は、図4に示したアプリ情報管理モジュール210の制御部212の接続情報の一例であり、「appsdownload/top」は、図4に示したアプリ情報管理モジュール210の画面提供部213の接続情報の一例であり、「appsdownload/operation」は、図4に示したアプリ情報管理モジュール210の設定部214の接続情報の一例であり、「appsdownload/storage」は、図17に示したアプリダウンロード管理モジュール230のダウンロード部232の接続情報の一例である。接続情報取得部271は、図30に示す各モジュールの接続情報を記憶部(フラッシュメモリ24等)に記憶させる。
(サイトの接続情報および複数の接続先提供サーバの接続情報を取得)
 第3のパターンは、図3で示した、サーバ2にアプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とが含まれている場合であって、各モジュールを含むアプリダウンロードサイト全体(サーバ2)の接続情報(URL)と、複数の接続先提供サーバの接続情報を取得する例である。図31は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求の一例を示す図であり、図32は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求に対する応答として受信したサーバの接続情報(URL)と、複数の接続先提供サーバの接続情報(URL)の一例を示す図である。図31に示す接続情報の取得要求のパラメータ「service」の値は、上記の図29で説明したものと同様で、特殊文字をエンコードしたものである。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。図32に示す「discovery」は接続先提供サーバを示し、先頭の「https://jp.example.com/discov」は地域情報「JP」にある接続先提供サーバの接続情報の一例であり、2番目の「https://us.example.com/discov」は地域情報「US」にある接続先提供サーバの接続情報の一例である。なお図32の応答例では、接続情報の取得要求元の機器(MFP6)の地域情報が「JP」の場合であり、地域情報「JP」に基づいて、地理的位置が近い「JP」にある接続先提供サーバの接続情報を先頭にしている。なお、上述したように、接続情報の並べ順は販社情報に基づいて決めるようにしてもよいし、機番(機器情報)に基づいて決めるようにしてもよい。接続情報取得部271は、図32に示すサーバ2の接続情報と、接続先提供サーバの接続情報とを記憶部(フラッシュメモリ24等)に記憶させる。
 図26に戻り説明を続ける。起動部272は、ユーザの操作に応じて、Webブラウザの機能を提供するブラウザアプリを起動する。この時、起動部272は、ブラウザアプリを起動する際に自身の機器(MFP6)の販社情報を保持しているか否かを確認し、販社情報(販社コード情報)が保持されていない場合には、表示制御部273が販社情報を入力するUI画面を操作パネル27に表示させる。ただし、図7で示した組織ID「O0002」のように販社情報が設定されないケースがあるので、別途、販社情報設定済みフラグの設定を保存するようにして、販社情報設定済みフラグが未設定の場合のみUI画面を表示するようにしてもよい。なお、機器(MFP6)の出荷時に仕向け地設定として地域情報の初期値は予め記憶部に記憶させている。この販社情報を入力するUI画面の表示は最初の1回目だけであり、販社情報が入力されて保持されたら次回からUI画面は表示されない。
 なお、上記で接続情報取得部271の説明を先にしたが、処理フローの実行順としては、起動部272での販社情報(販社コード)の設定が先であり、次に接続情報取得部271でのサーバ2の接続情報(URL)の取得が実行される。つまり、起動部272で先に設定された販社情報の設定に従って、接続情報取得部271で接続情報を取得するためである。
 例えば、図33に示す操作画面が操作パネル27(表示部)に表示された状態で、「アプリマーケット」という名称のアイコン8の押下を受け付けた場合、起動部272が自身の機器(MFP6)の販社情報を保持していないことを確認した場合、表示制御部273は、図34に示す地域情報設定画面を操作パネル27(表示部)に表示させる。図34は、地域情報設定画面の一例を示す図である。図34の例では、地域情報設定画面は、地域情報を選択するための地域情報選択ボタン401と、販社情報を設定するための販社情報設定ボタン402と、次の画面に遷移するための次へボタン403と、図33に示す操作画面に戻るための戻るボタン404とを少なくとも表示する。地域情報選択ボタン401に表示されている「地域:日本(JP)」は出荷時に仕向け地設定として予め記憶している地域情報である。この地域情報を変更する場合に地域情報選択ボタン401を選択すると、図35に示す地域情報設定ダイアログ画面が表示される。図35は、地域情報設定ダイアログ画面の一例を示す図である。図35の例では、地域情報設定ダイアログ画面は、「日本(JP)411」、「アメリカ(US)412」、「ヨーロッパ(EU)」、「アジア(ASIA)」などの地域を示す地域情報を表示する。図35において、「アメリカ(US)412」が選択され、「OK」ボタンが押下されると、図34に示す地域情報設定画面に戻り、「地域:アメリカ(US)」に変更される。
 次に、図34に示す販社情報設定ボタン402を選択すると、図36に示す販社情報入力画面が表示される。図36は、販社情報入力画面の一例を示す図である。図36の例では、販社コード(販社情報を示すコード情報)を入力するためのテンキーボタンを少なくとも表示する。図36の例で示している販社コード「11234516」は任意に設定できるが、例えば、最初の1文字「1」は「地域」を表し、「1:日本(JP)」、「2:アメリカ(US)」、「3:ヨーロッパ(EU)」、「4:アジア(ASIA)」が割り当てられている。次の5文字「12345」は「販社情報」を表し、例えば、販売店を識別するための任意の乱数が予め割り当てられている。任意の乱数を割り当てているのは、入力ミスで他の販社コードを入力する危険性を下げるためである。最後の2文字「16」は「チェックサム」を表し、例えば、販社コードの入力ミスを検知するためである。なお、販社コードは、コード全体を暗号化する方式などでもよい。図36において、販社コードを入力して「OK」ボタンが押下されると、誤り検出が行われ(この例では、販社情報入力画面で受け付けたコード情報から特定される地域情報(1文字目)と、図35の地域情報設定ダイアログ画面で設定された地域情報の値が同一であるか否かを判断し、同一でない場合(値が異なる場合)にはエラーと判断する。または、販社情報入力画面で受け付けたコード情報の6文字目まで(地域情報+販社情報)に対するチェックサムを計算し、最後の2文字と比較して値が同一であるか否かを判断し、同一でない場合(値が異なる場合)にはエラーと判断する。このチェックサムでは、コード情報に含まれる所定の情報が予め設定された情報と同一であるかを判断することになる)、エラーの場合には図37に示すエラー画面が表示される。図37は、エラー画面の一例を示す図である。図37において、「閉じる」ボタンが押下されると再度販社コード(販社情報を示すコード情報)を入力するための画面が表示される(図36参照)。図36において、販社コードが正しく入力された場合、図34に示す地域情報設定画面が表示される。なお起動部272は、上記のように入力された地域情報および販社情報(販社コード)を記憶部(フラッシュメモリ24等)に記憶させる。
 次に、図34に示す、次の画面に遷移するための次へボタン403が押下されると、図38に示すアプリケーション一覧画面が表示される。図38は、アプリケーション一覧画面の一例を示す図である。なお、アプリケーション一覧画面の詳細については後述する。
 図33に戻り説明を続ける。例えば図33に示す操作画面が操作パネル27に表示された状態で、「アプリマーケット」という名称のアイコン8の押下を受け付けた場合、起動部272は、接続情報取得部271にアイコン8の押下を通知し、接続情報取得部271は、記憶部(フラッシュメモリ24等)に記憶されている接続先提供サーバ5の接続情報(URL)を参照して、サーバ2の接続情報の取得要求を送信し、ネットワーク7上のサーバ2の所在を示すURLを取得して、サーバ2の所在を示すURLを起動部272に受け渡す。そして起動部272はブラウザアプリを起動する制御を行う。なお、接続情報取得部271は、取得したサーバ2の接続情報(URL)を保持または更新する。
 起動したブラウザアプリ(画面情報取得部)は、起動部272から受け取ったURLで指定されるサーバ2に対して、HTTPリクエストとして上述の画面情報要求を送信し、画面情報要求に対する応答(HTTPレスポンス)として、Webコンテンツデータ(画面情報)を受信する。この例では、Webコンテンツデータ(画面情報)として、HTMLと、HTMLに含まれる(あるいは、HTMLから参照される)CSS/JavaScriptを受信する。ブラウザアプリ(表示情報取得部)は、JavaScriptを解釈、実行し、Ajaxを用いて、HTTPリクエストとして上述の表示情報要求をサーバ2へ送信し、表示情報要求に対する応答(HTTPレスポンス)として、アプリケーションコマンドを少なくとも含むWebコンテンツデータ(表示情報)を受信する。なお、請求項の「表示情報取得部」、「画面情報取得部」の機能はブラウザアプリにより提供される。図39は、表示情報要求の一例を示す図であり、図40は、表示情報要求に対する応答として受信した情報の一例を示す図である。
 そして、ブラウザアプリは、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面を操作パネル27(表示部)に表示する制御を行う。ここでは、表示制御部273の機能はブラウザアプリにより提供される。また、前述したように、この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて画面を生成し、その生成した画面を操作パネル27に表示する。表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報および表示情報)をフラッシュメモリ24等の記憶装置に保持しておき、必要に応じてWebコンテンツデータ(画面情報および表示情報)を読み出し、その読み出したWebコンテンツデータ(画面情報および表示情報)を用いて画面を生成することができる。
 この例では、表示制御部273は、操作パネル27に表示された画面(Webコンテンツデータ(画面情報と表示情報)に基づいて構成される画面)に対するユーザの操作に応じて選択されたアプリケーションコマンドを特定し、その特定したアプリケーションコマンドを実行部274へ通知することができる。例えば表示制御部273は、JavaScript(登録商標)、カスタムスキームとして、ユーザによって選択されたアプリケーションコマンドを特定することができる。
 実行部274は、Webコンテンツデータに含まれるアプリケーションコマンドのうち、操作パネル27に表示された画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンド(表示制御部273から通知されたアプリケーションコマンド)を実行して、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行をMFP6に要求する。ここでは、実行部274の機能は、MFP6側のアプリケーションプログラミングインタフェース(API)により提供される。MFP6は、アプリケーションプログラミングインタフェース(API)を、操作部20のブラウザアプリで利用可能としてサーバ2に配置したWebアプリケーションから呼び出せる。
 処理実行部275は、Webブラウザ(実行部274)からの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する。
 前述したように、サーバ2から受信したWebコンテンツデータに含まれるアプリケーションコマンドとしては、インストール命令、更新命令、アンインストール命令などが挙げられる。
 以下では、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じてインストール命令が選択される場合を例に挙げて説明する。この場合、実行部274は、ユーザの操作に応じて選択されたインストール命令を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたインストール命令を実行する。より具体的には以下のとおりである。
 この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)を用いて、機器(MFP6)で利用可能なアプリケーションの一覧を示すアプリケーション一覧画面(図38参照)を操作パネル27に表示する制御を行う。図38の例では、アプリケーション一覧画面は、機器(MFP6)で利用可能なアプリケーションごとに、該アプリケーションの名称と、該アプリケーションを選択するためのアプリケーション選択ボタン331とを少なくとも表示する。また、図38の例では、アプリケーション一覧画面は、アプリケーションの更新を選択するための更新選択ボタン325と、アプリケーションの削除を選択するための削除選択ボタン326とを表示する。これらの具体的な内容については後述する。
 表示制御部273は、何れかのアプリケーション選択ボタン331の押下を受け付けた場合、サーバ2から受信した画面情報を用いて、対応するアプリケーションの詳細な内容を示すとともにインストールの実行指示を受け付けるためのインストール指示画面を操作パネル27に表示する制御を行う。図41は、インストール指示画面の一例を示す図である。図41の例では、インストール指示画面は、対応するアプリケーションのアプリ説明情報とアプリ価格情報と、インストールの実行を指示するためのインストールボタン332とを表示する。この例では、インストールボタン332の押下は、インストール命令の選択(インストールしたいアプリケーションの選択であると考えてもよい)を意味する。
 この例では、表示制御部273は、インストールボタン332の押下を受け付けた場合、インストールの実行を最終的に確認するためのインストール確認画面を操作パネル27に表示する制御を行う。図42は、インストール確認画面の一例を示す図である。図42の例では、インストール確認画面は、インストールの実行を最終的に承諾したことを指示するための確認ボタン(OK)333を表示する。この例では、確認ボタン333に対して、インストール命令がJavaScript形式で貼り付けられている。確認ボタン333の押下を受け付けると、実行部274は、押下された確認ボタン333に貼り付けられていたインストール命令を処理実行部275へ通知する。そして、処理実行部275が、このインストール命令を実行することになる。図43は、この場合に、実行部274から処理実行部275へ通知される情報(確認ボタン333に貼り付けられているJavaScript)の一例を示す図である。
 また、本実施形態では、実行部274は、サーバ2から受信した表示情報の中に、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションの使用権限の認証に用いられるライセンスキーが含まれている場合は、該ライセンスキーと、該インストール命令とを処理実行部275へ通知し、該ライセンスキーが含まれていない場合は、ライセンスキーの入力を促す入力画面を表示する制御を行う。より具体的には、表示制御部273は、サーバ2から受信した表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、該アプリケーションの使用権限を認証するためのライセンスキーが含まれていない場合は、ライセンスキーの入力を促す入力画面を表示する制御を行い、ライセンスキーが含まれている場合は、該ライセンスキーと、インストール命令とを処理実行部275へ通知する。より具体的には、表示制御部273は、上述のインストールボタン332の押下を受け付けた場合、サーバ2から受信した表示情報内のアプリケーション詳細情報のうち、ユーザによって選択されたアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する。ライセンスキーが含まれていない場合は、表示制御部273は、図42のインストール確認画面を表示せず、ライセンスキーの入力を促す入力画面を表示する制御を行い、実行部274は、入力されたライセンスキーと、選択されたインストール命令とを処理実行部275へ通知する。図44は、入力画面の一例を示す図である。図44のOKボタンに対しても、図43と同様のインストール命令が貼り付けられている。この場合、ライセンスキー入力領域に入力された文字列をappMgmt.install関数の第2引数として渡すようにする。
 次に、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じて更新命令が選択される場合を例に挙げて説明する。この例では、表示制御部273は、ユーザの操作に応じて、インストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを特定する。そして、実行部274は、ユーザの操作に応じて、その特定したアプリケーションに対応する更新命令が選択された場合、その選択された更新命令を処理実行部275へ通知する。処理実行部275は、実行部274から通知された更新命令を実行する。より具体的には以下のとおりである。
 表示制御部273は、図38に示すアプリケーション一覧画面に表示された更新選択ボタン325の押下を受け付けた場合、サーバ2から受信した表示情報と、機器(MFP6)にインストール済みのアプリケーションごとに、該アプリケーションの現在のバージョンを対応付けたアプリケーション管理情報と、を取得する。この例では、処理実行部275が上述のアプリケーション管理情報を管理しているので、実行部274は、処理実行部275に対してアプリケーション管理情報を要求し、表示制御部273は、アプリケーション管理情報を取得する。そして、表示制御部273は、インストール済みのアプリケーションのうち、アプリケーション管理情報において該アプリケーションに対応する現在のバージョンと、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを、更新対象のアプリケーションとして特定する。例えばアプリケーション管理情報が図45の態様であり、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報が図46の態様である場合を想定する。この場合、更新対象のアプリケーションとして、アプリID「S001」およびアプリID「S003」が特定されることになる。
 そして、表示制御部273は、以上のようにして特定したアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示画面を操作パネル27に表示する制御を行う。図47は、更新指示画面の一例を示す図である。更新指示画面は、複数のアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示ボタン341を表示する。この例では、更新対象のアプリケーション(以上のようにして特定したアプリケーション)に対応する更新指示ボタン341に対しては、該アプリケーションを更新する命令を示す更新命令が貼り付けられている。図47の例では、更新指示画面は、更新対象のアプリケーション(図47の例ではアプリ1、3)と更新対象外のアプリケーション(図47の例ではアプリ2)の両方が表示され、更新対象外のアプリケーションに対応する更新指示ボタン341は操作不能な状態(押下を受け付けることができない状態)になっている。つまり、更新指示画面は、更新対象のアプリケーション(以上のようにして特定されたアプリケーション)と、更新対象外のアプリケーションとを区別して表示しているが、これに限らず、例えば更新指示画面は、更新対象のアプリケーションのみを、操作可能な状態の更新指示ボタン341と対応付けて表示する形態であってもよい。また、例えば表示制御部273は、以上のようにして特定したアプリケーション(更新対象のアプリケーション)の数を示す情報を表示する制御を行うこともできる。つまり、表示制御部273は、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションの数を示す情報を表示する制御を行うこともできる。実行部274は、更新指示ボタン341の押下を受け付けた場合、該更新指示ボタン341に貼り付けられた更新命令を処理実行部275へ通知する。図48は、この場合に、実行部274から処理実行部275へ通知される情報の一例を示す図である。
 なお、この例では、更新対象のアプリケーションごとに、上述の更新指示ボタン341が個別に設けられているが、これに限らず、例えば更新対象のアプリケーションの更新を一括で実行することを指示するためのボタンが設けられる形態であってもよい。この場合、該ボタンの押下を受け付けた場合、更新対象の全てのアプリケーションの更新命令が一括して選択されることになる。要するに、アプリケーションコマンドは、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを一括して更新する命令を示す一括更新命令を含んでいてもよい。この場合、表示制御部273は、一括更新命令が選択された場合(更新対象のアプリケーションの更新を一括で実行することを指示するためのボタンの押下を受け付けた場合)、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを特定し、実行部274は、該特定したアプリケーションに対応する更新命令を処理実行部275へ通知する形態であってもよい。
 また、例えばサーバ2が、更新対象のアプリケーションを特定する機能を有する形態であってもよい。この場合、例えば表示制御部273は、上述の表示情報要求の送信前に、処理実行部275から上述のアプリケーション管理情報を取得し、その取得したアプリケーション管理情報を付加した表示情報要求をサーバ2へ送信することもできる。サーバ2は、MFP6から受信したアプリケーション管理情報に含まれるアプリIDごとに、該アプリケーション管理情報において該アプリIDに対応付けられたバージョンと、サーバ2が管理するアプリ情報DB261(第2の対応情報)において該アプリIDに対応付けられたバージョンとを比較し、差異があるアプリIDを更新対象のアプリIDとして特定することができる。そして、サーバ2は、更新対象として特定したアプリIDを示す情報を表示情報に含めてMFP6へ送信する形態であってもよい。さらに、例えばサーバ2側でMFP6にインストール済みのアプリケーションを管理する(上述のアプリケーション管理情報を管理する)形態であってもよい。この場合、例えばサーバ2は、ライセンスの有効化または無効化のタイミングでアプリケーション管理情報を更新することができるし、アプリケーションを更新するタイミングでもアプリケーション管理情報を更新することもできる。この場合、MFP6にインストール済みのアプリケーションの現在のバージョンをMFP6から取得する必要は無いので、サーバ2のみで更新対象のアプリケーションを判断できるとともにMFP6の処理負担を減らすことができる。
 次に、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じてアンインストール命令が選択される場合を例に挙げて説明する。この例では、実行部274は、ユーザの操作に応じて選択されたアンインストール命令を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたアンインストール命令を実行する。より具体的には以下のとおりである。
 表示制御部273は、図38に示すアプリケーション一覧画面に表示された削除選択ボタン326の押下を受け付けた場合、MFP6にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示画面を操作パネル27に表示する制御を行う。図49は、削除指示画面の一例を示す図である。削除指示画面は、MFP6にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示ボタン351を表示する。表示制御部273は、削除指示ボタン351の押下を受け付けた場合、アンインストールの実行を最終的に確認するための削除確認画面を操作パネル27に表示する制御を行う。図50は、削除確認画面の一例を示す図である。削除確認画面は、アンインストールの実行を最終的に承諾したことを指示するための確認ボタン(OK)361を表示する。この例では、確認ボタン361に対しては、該確認ボタン361に対応する1以上のアプリケーションを削除する命令を示す削除命令が貼り付けられている。確認ボタン361の押下を受け付けると、実行部274は、押下された確認ボタン361に貼り付けられていたアンインストール命令を処理実行部275へ通知する。図51は、この場合に、実行部274から処理実行部275へ通知される情報の一例を示す図である。
 この例では、MFP6にインストール済みのアプリケーションごとに、上述の削除指示ボタン351が個別に設けられているが、これに限らず、例えばMFP6にインストール済みのアプリケーションを一括で削除することを指示するためのボタンが設けられる形態であってもよい。この形態では、該ボタンの押下を受け付けた場合、MFP6にインストール済みの全てのアプリケーションのアンインストール命令が一括して選択されることになる。要するに、アプリケーションコマンドは、MFP6にインストール済みのアプリケーションを一括して削除する命令を示す一括アンインストール命令を含み、実行部274は、一括アンインストール命令が選択された場合、MFP6にインストール済みのアプリケーションに対応するアンインストール命令(インストール済みの1以上のアプリケーションと1対1に対応する1以上のアンインストール命令)を処理実行部275へ通知する形態であってもよい。
 以上に説明した接続情報取得部271、起動部272、表示制御部273、実行部274、および、処理実行部275の各々の機能は、CPU21がROM22やフラッシュメモリ24等の記憶装置に記憶されたプログラムを実行することにより実現可能である。
 図52は、本実施形態のシステム1の動作手順の一例を示すシーケンス図である。まず、接続先提供サーバ5は、機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報と、アプリケーションを提供するサーバ2の接続情報とを対応付けた情報を保持する。また、MFP6の起動部272は、地域情報または販社情報を保持する。なお、MFP6の接続情報取得部271は、出荷時に予め1つの接続先提供サーバ5の接続情報を記憶している。
 上述したように、MFP6の起動部272は、操作画面上の「アプリマーケット」という名称のアイコン8の押下を受け付けた場合(ステップS1)、アイコン8が押下されたことを接続情報取得部271に通知する(ステップS2)。接続情報取得部271は、機器情報(機番)と、地域情報または販社情報とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続情報の取得要求を接続先提供サーバ5に対して送信する(ステップS3)。接続先提供サーバ5の接続情報特定部322は、機器(MFP6)から地域情報または販社情報と、機器情報(機番)とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続情報取得要求を受け付けて、記憶部311(この例では接続情報DB321)に記憶された接続対応情報を参照して、接続情報取得要求に含まれる地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(URL)を特定する(ステップS4)。接続情報特定部322は、特定したサーバ2の接続情報(URL)と、自身(接続先提供サーバ5)の接続情報(URL)を接続情報取得要求の送信元のMFP6の接続情報取得部271に送信する(ステップS5)。
 接続情報取得部271は、接続先提供サーバ5からサーバ2の接続情報取得要求に対する応答を受信することでサーバ2の接続情報(URL)と、接続先提供サーバ5の接続情報(URL)を取得して記憶部(フラッシュメモリ24等)に記憶させ(ステップS6)、上記の2つの接続情報(URL)を起動部272に送信する(ステップS7)。起動部272は、Webブラウザであるブラウザアプリ(表示制御部273および実行部274)に対して、起動指令とともにサーバ2のURLを送信する(ステップS8)。起動指令を受けて起動したブラウザアプリ(表示制御部273および実行部274)は、受け取ったURLで指定されるサーバ2に対して、HTTPリクエストとして上述の画面情報要求を送信する(ステップS9)。
 次に、サーバ2は、MFP6からの要求に応じてWebコンテンツデータ(画面情報)を生成し(ステップS10)、その生成したWebコンテンツデータ(画面情報)をHTTPレスポンスとしてMFP6へ送信する(ステップS11)。MFP6(表示制御部273)は、HTTPリクエストである画面情報要求に対する応答として、Webコンテンツデータ(画面情報)を受信する。例えば、MFP6(表示制御部273)は、Webコンテンツデータ(画面情報)として、HTMLと、HTMLに含まれる(あるいは、HTMLから参照される)CSS/JavaScriptを受信する。
 次に、画面情報を受信したMFP6のブラウザアプリは、JavaScriptを解釈、実行し、Ajaxを用いて、サーバ2に対して、HTTPリクエストとして上述の表示情報要求(図39参照)を送信する(ステップS12)。
 サーバ2は、MFP6からの要求に応じて表示情報を生成し(ステップS13)、その生成したWebコンテンツデータ(表示情報)をHTTPレスポンスとしてMFP6へ送信する(ステップS14)。MFP6(表示制御部273)は、HTTPリクエストである表示情報要求に対する応答として、Webコンテンツデータ(表示情報)を受信する。
 MFP6(表示制御部273)は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面を生成し(ステップS15)、生成した画面を操作パネル27に表示する(ステップS16)。この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)を、フラッシュメモリ24等の記憶装置に格納するとともに、その受信したWebコンテンツデータ(画面情報および表示情報)を用いて、図38に示すアプリケーション一覧画面を最初に生成する。そして、その生成したアプリケーション一覧画面を操作パネル27(表示部)に表示する制御を行う。
 図53は、MFP6がアイコン8の押下を受け付けてからアプリケーション一覧画面を取得するまでのMFP6の動作例を示すフローチャートである。つまり、上述の図52のステップS1~ステップS9、ステップS11~ステップS12、ステップS14のMFP6の処理の一例である。
 MFP6の接続情報取得部271は、アイコン8の押下通知(ステップS1)を受け付けた場合、接続先提供サーバ5の接続情報(URL)を記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS21)。接続情報取得部271は、出荷時に予め1つの接続先提供サーバ5のURLを記憶しているが、仮に接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS21:No)、ステップS26の処理に移行する。
 接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS21:Yes)、接続情報取得部271は、サーバ2のURLの取得要求を接続先提供サーバ5のURLに送信する(ステップS22)。次に、接続情報取得部271は、接続先提供サーバ5からサーバ2のURLが取得できたか否かを判断する(ステップS23)。サーバ2のURLが取得できない場合(ステップS23:No)、接続情報取得部271は、次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS24)。上記の接続情報特定部322及びリスト生成部323で説明したように、接続情報取得部271は、接続先提供サーバ5から1つの接続先提供サーバ5のURLを取得する場合と、複数の接続先提供サーバのURLのリストを取得する場合とがあるので、ステップS24の判断処理を行う。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
 次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS24:Yes)、ステップS22に戻り、サーバ2のURLの取得要求の処理を継続する。次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS24:No)、ステップS26の処理に移行する。
 ステップS23に戻り、サーバ2のURLが取得できた場合(ステップS23:Yes)、接続情報取得部271は、サーバ2のURLを記憶部(フラッシュメモリ24等)に記憶させる(ステップS25)。
 次に、起動部272は、サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS26)。サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS26:No)、ステップS30に移行し、エラー画面を操作パネル27(表示部)に表示させて(ステップS30)処理を終了する。すなわち、サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合とは、接続先提供サーバ5からサーバ2のURLが取得できなかったことを示す。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
 サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS26:Yes)、起動部272は、サーバ2のURLをブラウザアプリに受け渡し、ブラウザアプリは起動部272から受け取ったURLで指定されるサーバ2に対して、MFP6の機種を識別する機種情報と地域情報とロケール情報(言語情報)とを含み、かつ、画面情報および表示情報(アプリケーション一覧画面)を要求する画面情報要求、および表示情報要求を送信する(ステップS27)。
 次に、起動部272は、サーバ2から画面情報および表示情報を取得できたか否かを判断する(ステップS28)。画面情報および表示情報を取得できた場合(ステップS28:Yes)、処理を終了する。つまり、図52のステップS15で画面を生成してステップS16で画面を表示する。
 画面情報および表示情報を取得できない場合(ステップS28:No)、起動部272は、次のサーバのURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS29)。上記の接続情報特定部322及びリスト生成部323で説明したように、接続情報取得部271は、接続先提供サーバ5から1つのサーバ2のURLを取得する場合と、複数のサーバのURLのリストを取得する場合とがあるので、ステップS29の判断処理を行う。
 次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS29:Yes)、ステップS27に戻り、画面情報および表示情報の取得要求の処理を継続する。次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS29:No)、エラー画面を操作パネル27(表示部)に表示させて(ステップS30)処理を終了する。すなわち、次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合とは、接続先提供サーバ5から取得した1つのサーバ2又は複数のサーバのURLを用いても、サーバから画面情報が取得できなかったことを示す。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
 図54は、上述の図52のステップS13において、サーバ2が、地域情報または販社情報に対応するアプリケーションを提供する組織に紐付いている、MFP6が利用可能なアプリケーションごとに、該アプリケーションの詳細を示す詳細情報を対応付けたアプリケーション詳細情報を生成するサーバ2の動作例を示すフローチャートである。図54に示すように、特定部216は、MFP6から上述の表示情報要求を受信した場合、図7に示す第3の対応情報を参照して、その受信した表示情報要求に含まれる地域情報または販社情報に対応する組織IDを選択する(ステップS41)。次に、特定部216は、図8に示す第4の対応情報を参照して、その選択した組織IDに対応付けられた1以上のアプリIDの中から、公開されている状態を示す公開状態情報が対応付けられたアプリIDを選択する(ステップS42)。次に、特定部216は、図5に示す第1の対応情報を参照して、その受信した表示情報要求に含まれる機種コードに対応付けられた機種IDを選択する(ステップS43)。次に、特定部216は、図6に示す第2の対応情報を参照して、その選択した機種IDに対応付けられた1以上のアプリIDを選択する(ステップS44)。このとき、特定部216は、図6に示す第2の対応情報のうち、ステップS44で選択したアプリIDに対応付けられたバージョン情報も特定しておく。次に、特定部216は、図8で選択した組織IDに対応付けられた1以上のアプリIDの中で公開されているアプリIDと、図6で選択した機種IDに対応付けられた1以上のアプリIDとを比較して一致するアプリIDを特定する(ステップS45)。次に、特定部216は、図9に示す第5の対応情報を参照して、ステップS45で特定したアプリIDと、MFP6から受信した表示情報要求に含まれる言語情報(ロケール情報)との組み合わせに対応するアプリ説明情報を特定する(ステップS46)。次に、特定部216は、図10に示す第6の対応情報を参照して、ステップS45で選択したアプリIDと、MFP6から受信した表示情報要求に含まれる言語情報(ロケール情報)との組み合わせに対応するアプリ価格情報を特定する(ステップS47)。そして、生成部217は、ステップS45で特定したアプリIDごとに、ステップS46で特定したアプリ説明情報と、図6に示す第2の対応情報のうち、ステップS44で選択したアプリIDに対応付けられたバージョン情報と、ライセンスキーが設定されている場合はライセンスキーと、ステップS47で特定したアプリ価格情報と、を含む詳細情報を対応付けてアプリケーション詳細情報を生成することができる(ステップS48)。
 図55は、図38に示すアプリケーション一覧画面に表示された何れかのアプリケーション選択ボタン331が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、何れかのアプリケーション選択ボタン331の押下を受け付けた場合、上述のインストール指示画面(図41参照)を操作パネル27に表示する制御を行う(ステップS51)。次に、表示制御部273は、インストールボタン332の押下を受け付けた場合、サーバ2から受信済みの画面情報を参照して、該画面情報に含まれる表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する(ステップS52)。ステップS52の確認の結果、ライセンスキーが含まれている場合、上述のインストール確認画面(図42参照)を操作パネル27に表示する制御を行う(ステップS53)。
 上述のステップS52の確認の結果、ライセンスキーが含まれていない場合(つまり、インストール命令の対象となるアプリケーションが有償のアプリケーションの場合)、表示制御部273は、上述の図44の入力画面を操作パネル27に表示する制御を行い(ステップS54)、ユーザからのライセンスキーの入力を受け付ける。ここでは、ユーザは、購入済みのアプリケーションに対応するライセンスキーを事前に把握していることを前提とする。例えばアプリケーションの管理者から、該アプリケーションを購入したユーザに対して、郵送やメール等でライセンスキーを通知する形態であってもよい。
 次に、実行部274は、ユーザの操作に応じて選択されたインストール命令と、アプリID(選択されたアプリケーション命令の対象となるアプリケーションのアプリID)と、ライセンスキー(選択されたアプリケーション命令の対象となるアプリケーションのライセンスキー)とを処理実行部275へ通知する(ステップS55)。処理実行部275は、実行部274から通知されたライセンスキーを用いて、実行部274から通知されたインストール命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、インストール命令の対象となるアプリケーションのアプリIDを少なくとも含み、かつ、該アプリケーションのダウンロードを要求する上述のダウンロード要求を送信する(ステップS56)。ダウンロード要求を受信したサーバ2(ダウンロード部232)は、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションを選択し(ステップS57)、その選択したアプリケーションをMFP6へ送信する(ステップS58)。
 次に、処理実行部275は、サーバ2に対して、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する上述の有効化要求を送信する(ステップS59)。有効化要求を受信したサーバ2(ライセンス有効化部227)は、ライセンスを有効化するための制御を行った後(ステップS60)、有効化要求に対する応答をMFP6へ返す(ステップS61)。ステップS60の具体的な内容は上述したとおりであるが、ライセンス有効化部227は、MFP6から上述の有効化要求を受信した場合、ライセンス情報DB224の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。ライセンスキーが存在する場合は、ライセンス有効化部227は、上述したようにライセンス情報DB224に記憶された情報を更新する。また、ライセンス有効化部227は、MFP6から受信した有効化要求に含まれるアプリIDで識別されるアプリケーションの有効期限などのライセンス(使用権限)を定めたライセンスファイルを発行し、有効化要求に対する応答として、ライセンスの状態が有効である旨に加えて該ライセンスファイルを送信することもできる。一方、ライセンス情報DB224の中に、その受信した有効化要求に含まれるライセンスキーが存在しない場合は、有効化要求に対する応答としてエラーを送信する。
 MFP6(処理実行部275)は、有効化要求に対する応答として、ライセンスの状態が有効である旨を受信した場合、ステップS58でサーバ2からダウンロードしたアプリケーションをインストールする制御を行う(ステップS62)。インストールが完了した後、処理実行部275は、そのインストールが完了したアプリケーションのアプリIDと、インストール時の該アプリケーションのバージョンとを対応付けて上述のアプリケーション管理情報に追加することで、アプリケーション管理情報を更新する(ステップS63)。
 図56は、図38に示すアプリケーション一覧画面に表示された更新選択ボタン325が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、更新選択ボタン325の押下を受け付けた場合、MFP6にインストール済みのアプリケーションのうち、更新対象のアプリケーションを特定する(ステップS71)。そして、ステップS71で特定したアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示画面(図47参照)を操作パネル27に表示する制御を行う(ステップS72)。これらの具体的な内容は上述したとおりである。
 次に、実行部274は、何れかの更新指示ボタン341の押下を受け付けた場合、該更新指示ボタン341に貼り付けられた更新命令を処理実行部275へ通知する(ステップS73)。処理実行部275は、実行部274から通知された更新命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、更新対象のアプリIDを少なくとも含み、かつ、最新のバージョンのアプリケーションを要求する更新要求を送信する(ステップS74)。更新要求を受信したサーバ2は、その受信した更新要求に含まれるアプリIDに対応するアプリケーションを選択し(ステップS75)、その選択したアプリケーションをMFP6へ送信する(ステップS76)。
 次に、MFP6(処理実行部275)は、更新要求に対する応答として、サーバ2から受信した(新たにダウンロードしたアプリケーション)をインストールする制御を行う(ステップS77)。インストールが完了した後、処理実行部275は、そのインストールが完了したアプリケーションのアプリIDと、インストール時(更新時)の該アプリケーションのバージョンとを対応付けて上述のアプリケーション管理情報に追加することで、アプリケーション管理情報を更新する(ステップS78)。
 図57は、図38に示すアプリケーション一覧画面に表示された削除選択ボタン326が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、削除選択ボタン326の押下を受け付けた場合、上述の削除指示画面(図49参照)を操作パネル27に表示する制御を行う(ステップS81)。次に、表示制御部273は、何れかの削除指示ボタン351の押下を受け付けた場合、上述の削除確認画面(図50参照)を操作パネル27に表示する制御を行う(ステップS82)。次に、実行部274は、削除確認画面に表示された確認ボタン361の押下を受け付けた場合、ユーザの操作に応じて選択されたアンインストール命令(押下された確認ボタン361に貼り付けられたアンインストール命令)を処理実行部275へ通知する(ステップS83)。
 処理実行部275は、実行部274から通知されたアンインストール命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、アンインストール命令の対象となるアプリケーションに対応するライセンスキーと、機番とを少なくとも含み、かつ、ライセンスの無効化を要求する上述の無効化要求を送信する(ステップS84)。無効化要求を受信したサーバ2(ライセンス無効化部228)は、ライセンスを無効化するための制御を行った後(ステップS85)、無効化要求に対する応答(ここではライセンスの状態が無効である旨を示す応答)をMFP6へ返す(ステップS86)。ステップS85の具体的な内容は上述したとおりであるが、ライセンス無効化部228は、MFP6から上述の無効化要求を受信した場合、ライセンス情報DB224に記憶された情報のうち、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を「無効」を示す情報に変更し、その受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントする。
 MFP6(処理実行部275)は、無効化要求に対する応答として、ライセンスの状態が無効である旨を受信した場合、無効化要求に含まれるライセンスキーに対応するアプリケーションをアンインストールする制御を行う(ステップS87)。アンインストールが完了した後、処理実行部275は、上述のアプリケーション管理情報のうち、該アンインストールが完了したアプリケーションに対応する情報を削除することで、アプリケーション管理情報を更新する(ステップS88)。
 以上に説明したように、本実施形態では、サーバ2は、ネットワーク7を介して接続されるMFP6からの要求に応じて、MFP6が設置されている地域情報に紐付いた、MFP6が利用可能なアプリケーションを示す表示情報と、アプリケーションに関する処理をMFP6に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータをMFP6に送信する制御を行う制御部212を備え、MFP6は、起動部272がブラウザアプリを起動する際に接続するサーバ2の接続情報を取得する接続情報取得部271と、サーバ2から受信したWebコンテンツデータに基づく画面を操作パネル27に表示する制御を行う表示制御部273と、操作パネル27に表示された画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンドを実行して、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行をMFP6に要求する実行部274と、を備える。これにより、サーバ2側で表示情報を自由に変更しても、Webコンテンツデータに含まれるアプリケーションコマンドをMFP6に実行させることができるので、表示情報の変更に合わせてMFP6側のプログラムを変更する必要は無い。すなわち、本実施形態によれば、MFP6が利用可能なアプリケーションを紹介するページを提供するサーバ2が、例えば地域ごとに表示内容が異なるページを構築するための仕組みを実現できる。また、MFP6は、接続先提供サーバ5の接続情報を記憶しており、画面情報および表示情報を取得するサーバ2の接続情報を接続先提供サーバ5から取得して保持するので、例えば、サーバ2の数が増加した場合や、地域ごとのサーバ2の設置位置が変更になった場合でもMFP6側のプログラムを変更する必要は無い。さらに、上述したようにMFP6は、複数のサーバ2の接続情報を記憶することで、サーバ2に接続できない場合には、同等の機能を有する他のサーバ2に切り替えて通信を行うことができるため、可用性が向上するという有意な効果を奏する。
 以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
 例えば図38に示すアプリケーション一覧画面に表示されるアプリケーションの中に(MFP6が利用可能なアプリケーションの中に)、サーバ2に配置したアプリケーションを、操作部20のブラウザアプリで利用する形態のアプリケーション(つまり、Webアプリ)が含まれていてもよい。このようなWebアプリについては、MFP6にインストールする必要は無いので、Webアプリに対応するアプリケーション選択ボタン331の押下を受け付けた場合、表示制御部273は、例えば図58に示すようなショートカット作成指示画面を操作パネル27に表示する制御を行う形態であってもよい。ショートカット作成指示画面は、対応するアプリケーション(Webアプリ)のアプリ説明情報とアプリ価格情報と、Webアプリの機能を呼び出すためのショートカットアイコンの作成を指示するためのショートカット作成ボタン371とを表示する。この例では、ショートカット作成ボタン371に対して、ショートカットを作成する命令を示すショートカット作成命令が貼り付けられている。実行部274は、ショートカット作成ボタン371の押下を受け付けた場合、処理実行部275に対して、該ショートカット作成ボタン371に貼り付けられたショートカット作成命令を通知する。そして、処理実行部275は、実行部274から通知されたショートカット作成命令を実行する。要するに、アプリケーションコマンドは、Webアプリの機能を呼び出すためのショートカットアイコンを作成する命令を示すショートカットアイコン作成命令を含んでいてもよい。この場合、実行部274は、ユーザの操作に応じてショートカットアイコン作成命令が選択された場合(例えば上述のショートカット作成ボタン371が押下された場合)、その選択されたショートカットアイコン作成命令(押下されたショートカット作成ボタン371に貼り付けられたショートカット作成命令)を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたショートカットアイコン作成命令を実行する形態であってもよい。MFP6がサーバ2から受信した表示情報の中に、インストールが必要なアプリとWebアプリが混在している場合、図40の詳細情報における「appType」を参照して、値が「install」の場合インストールが必要なアプリと判断して図41を表示し、値が「web」の場合Webアプリと判断して図58を表示するようにしてもよい。
 また、例えば操作部20(MFP6)は、複数のユーザごとに、該ユーザの権限を対応付けた権限情報を管理する機能(権限情報管理部)をさらに備える形態であってもよい。表示制御部273は、権限情報管理部から取得した権限情報を参照して、MFP6を使用中のユーザ(MFP6を使用する権限を有すると認められたユーザ、ログイン中のユーザ)に対応付けられた権限が、例えばインストールの実行を指示できない形態である場合は、図41に示すインストールボタン332を非表示にすることもできる。同様に、MFP6を使用中のユーザに対応付けられた権限が、例えば更新の実行を指示できない形態である場合は、図47に示す更新指示ボタン341を非表示にすることもできる。また、MFP6を使用中のユーザに対応付けられた権限が、例えばアンインストールの実行を指示できない形態である場合は、図49に示す削除指示ボタン351を非表示にすることもできる。
 また、上述の実施形態では、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーティングシステムで動作する形態であってもよい。つまり、本体10と操作部20とを一体とした構成であってもよい。
 また、上述したアプリケーション一覧画面の形態は任意であり、例えば図59に示すような、以上の例を組み合わせた形態であってもよい。
 また、例えば上述の画面提供部213は、MFP6を含む画像形成装置から上述の画面情報要求を受信した場合に限り、上述のアプリケーションコマンドを含むWebコンテンツデータを生成する形態であってもよい。つまり、画面提供部213は、画像形成装置以外の機器(PC、タブレット等)から画面情報要求を受信した場合は、アプリケーションコマンドを含まないWebコンテンツデータを生成し、画面情報要求に対する応答として、その生成したWebコンテンツデータを機器へ送信する形態であってもよい。この形態において、上述の画面提供部213は、画像形成装置以外の機器から画面情報要求を受信した場合は、アプリケーションコマンドを含まないWebコンテンツデータを生成し、画面情報要求に対する応答として、その生成したWebコンテンツデータを機器へ送信する形態であってもよい。この形態において、上述の画面提供部213は、画像形成装置以外の機器から画面情報要求を受信した場合、アプリケーションコマンド(インストール命令、更新命令、アンインストール命令等)を選択するための情報(ボタン)を含まないWebコンテンツデータを生成し、その生成したWebコンテンツデータを、画面情報要求に対する応答として機器へ送信する形態であってもよい。また、機器から受信した画面情報要求が、MFP6からの画面情報要求であるか否かを判断する方法は任意であるが、例えばUser-Agentヘッダで判断する方法であってもよいし、MFP6からの最初のアクセスの際に機器認証を行う(MFP6であるか否かを認証する)といった方法であってもよい。また、例えばJavaScriptでMFP6向けのコマンドを実行してみて、エラーが発生した場合はMFP6以外の機器であると判断する方法であってもよい。
 また、上述した実施形態のシステム1(サーバ2、MFP6等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
1 システム
2、3、4 サーバ
5 接続先提供サーバ
6 MFP
7 ネットワーク
8 アイコン
10 本体
11 CPU
12 ROM
13 RAM
14 HDD
15 通信I/F
16 接続I/F
17 エンジン部
18 システムバス
20 操作部
21 CPU
22 ROM
23 RAM
24 フラッシュメモリ(記憶部)
25 通信I/F
26 接続I/F
27 操作パネル
28 システムバス
30 通信路
101 アプリ層
102 サービス層
103 OS層
201 アプリ層
202 サービス層
203 OS層
210 アプリ情報管理モジュール
211 記憶部
212 制御部
213 画面提供部
214 設定部
216 特定部
217 表示情報生成部
219 設定制御部
220 ライセンス管理モジュール
221 記憶部
222 制御部
223 ライセンス発行部
224 ライセンス情報DB
225 ユーザ情報DB
226 登録制御部
227 ライセンス有効化部
228 ライセンス無効化部
230 アプリダウンロード管理モジュール
231 アプリストレージ
232 ダウンロード部
240 アプリケーションサーバ
250 データベースサーバ
261 アプリ情報DB
262 ユーザ情報DB
271 接続情報取得部
272 起動部
273 表示制御部
274 実行部
275 処理実行部
301 CPU
302 ROM
303 RAM
304 通信I/F
305 入力装置
306 表示装置
310 サービス検索モジュール
311 記憶部
312 制御部
321 接続情報DB
322 接続情報特定部
323 リスト生成部
特開2010-182309号公報

Claims (14)

  1.  複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムであって、
     前記第1サーバは、
     前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御部を備え、
     前記機器は、
     前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行部と、を含むWebブラウザと、
     前記Webブラウザからの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行部と、
    を備える、
     ことを特徴とするシステム。
  2.  前記実行部は、アプリケーションプログラミングインタフェースにより提供される、
     ことを特徴とする請求項1に記載のシステム。
  3.  前記システムは、ネットワークを介して前記第1サーバおよび前記機器の各々と接続される第2サーバをさらに備え、
     前記第2サーバは、
     前記機器が設置されている地理的位置を示す地域情報または前記機器の販売店を示す販社情報と、前記アプリケーションを提供する前記第1サーバに接続するための情報を示す接続情報とを対応付けた接続対応情報を記憶する記憶部と、
     前記機器から、前記地域情報または前記販社情報を少なくとも含み、かつ前記第1サーバの前記接続情報の取得を要求する接続情報取得要求を受け付けて、前記接続対応情報を参照し、前記第1サーバの前記接続情報を特定する接続情報特定部と、
     特定した前記第1サーバの前記接続情報を前記機器に送信する接続情報送信部と、を備え、
     前記機器は、
     前記接続情報取得要求を前記第2サーバに送信し、前記第1サーバの前記接続情報を取得する接続情報取得部を備える、
     ことを特徴とする請求項1または2に記載のシステム。
  4.  前記第2サーバは、
     前記第1サーバの前記接続情報の一覧を示す接続一覧情報を生成するリスト生成部を備え、
     前記第2サーバの前記接続情報特定部は、前記接続情報取得要求を受け付けて、前記第1サーバの前記接続情報を特定して前記リスト生成部に受け渡し、前記リスト生成部で生成した前記第1サーバの前記接続一覧情報を前記機器に送信し、
     前記リスト生成部は、前記接続情報特定部で特定した前記第1サーバの前記接続情報の中で、前記機器と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数の前記第1サーバの前記接続一覧情報を生成して前記接続情報特定部に受け渡し、
     前記機器の前記接続情報取得部は、前記第2サーバから受信した前記第1サーバの前記接続一覧情報を保持し、
     前記機器の前記接続情報取得部は、前記第2サーバから前記第1サーバの前記接続情報が受信できない場合、または前記第1サーバから前記Webコンテンツデータの取得要求に対する応答がない場合、前記第1サーバの前記接続一覧情報の順に前記表示情報要求および前記画面情報要求を前記第1サーバに送信する、
     ことを特徴とする請求項3に記載のシステム。
  5.  前記第2サーバの前記記憶部は、前記機器を識別する機器情報をさらに対応付けた前記接続対応情報を記憶し、
     前記第2サーバの前記接続情報特定部は、前記機器から、前記機器情報を少なくとも含み、かつ、前記第1サーバの前記接続情報の取得を要求する接続情報取得要求を受け付けて、前記接続対応情報を参照し、前記第1サーバの前記接続情報を特定し、
     前記第2サーバの前記接続情報送信部は、特定した前記第1サーバの前記接続情報を前記機器に送信し、
     前記機器の接続情報取得部は、前記接続情報取得要求を前記第2サーバに送信し、前記第1サーバの前記接続情報を取得する、
     ことを特徴とする請求項3または4に記載のシステム。
  6.  前記第2サーバの前記接続情報特定部は、前記第1サーバの前記接続情報と共に該第2サーバに接続するための情報を示す接続情報を前記機器に送信し、
     前記機器の前記接続情報取得部は、受信した前記第1サーバの前記接続情報と共に前記第2サーバの前記接続情報を記憶部に記憶させる、
     ことを特徴とする請求項5に記載のシステム。
  7.  前記システムは、複数の第2サーバを備え、
     前記第2サーバの前記リスト生成部は、前記第1サーバの前記接続一覧情報を生成すると共に前記第2サーバの接続情報の接続一覧情報を生成し、生成した2つの該接続一覧情報を前記機器に送信し、
     前記機器の前記接続情報取得部は、前記第2サーバの前記接続情報特定部から受信した前記第1サーバの前記接続一覧情報と共に前記第2サーバの前記接続一覧情報を記憶部に記憶させておき、
     前記機器の前記接続情報取得部は、前記第2サーバから前記第1サーバの前記接続情報が受信できない場合、前記記憶部に記憶されている前記第2サーバの前記接続一覧情報の順に前記接続情報取得要求を前記第2サーバに送信する、
     ことを特徴とする請求項6に記載のシステム。
  8.  前記地域情報は、前記機器の販売店を示す販社情報に含まれており、
     前記機器の表示制御部は、前記表示情報取得部が前記表示情報要求を送信する際に、前記地域情報を含んだ該販社情報が保持されていない場合、該販社情報を示すコード情報の入力を受け付けるUI画面を表示部に表示させ、
     ユーザの操作に応じて、ブラウザ機能を提供するブラウザアプリを起動する起動部は、前記UI画面で受け付けた前記コード情報から特定される販社情報と地域情報とを記憶部に記憶させる、
     ことを特徴とする請求項1から7の何れか1項に記載のシステム。
  9.  前記表示制御部は、前記UI画面で受け付けた前記コード情報から特定される地域情報と、予め記憶している販社情報に対応付けられたコード情報から特定された地域情報とが同一であるかを判断する、または該コード情報に含まれる所定の情報が予め設定された情報と同一であるかを判断する、の何れか一方または両方を行って、同一でない場合には、エラーを示す画面を前記表示部に表示させた後、再度前記販社情報を示すコード情報の入力を受け付けるUI画面を表示部に表示させる、
     ことを特徴とする請求項8に記載のシステム。
  10.  前記第1サーバは、
     前記地域情報、または前記機器の販売店を示す販社情報に対応するアプリケーションを提供する組織を識別する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な前記機器の機種を識別する機種情報とを対応付けて記憶する記憶部をさらに備え、
     前記制御部は、
     前記機器から、前記画面情報を要求する画面情報要求を受信した場合に、前記画面情報を生成し、前記画面情報要求に対する応答として、その生成した前記画面情報を前記機器へ送信する画面提供部と、
     前記機器から、前記地域情報と前記機種情報を含み、かつ、前記表示情報を要求する表示情報要求を受信した場合に、前記記憶部に記憶された情報を参照して、前記表示情報要求に含まれる前記地域情報と、前記機種情報と、公開されている状態を示す前記公開状態情報とに基づいて構成されるアプリケーションを特定する特定部と、
     前記特定部により特定されたアプリケーションを示す前記表示情報を生成し、その生成した前記表示情報を、前記表示情報要求に対する応答として前記機器へ送信する表示情報生成部と、を含む、
     ことを特徴とする請求項1から9の何れか1項に記載のシステム。
  11.  前記アプリケーションコマンドは、アプリケーションをインストールする命令を示すインストール命令を含み、
     前記実行部は、前記ユーザの操作に応じて前記インストール命令が選択された場合、その選択された前記インストール命令を前記処理実行部へ通知し、
     前記処理実行部は、前記実行部から通知された前記インストール命令を実行する、
     ことを特徴とする請求項1から10の何れか1項に記載のシステム。
  12.  前記アプリケーションコマンドは、アプリケーションを更新する命令を示す更新命令を含み、
     前記表示情報は、前記機器が利用可能なアプリケーションごとに、該アプリケーションの最新のバージョンを少なくとも示す詳細情報を対応付けたアプリケーション詳細情報を含み、
     前記実行部は、
     前記ユーザの操作に応じて、前記機器にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、前記アプリケーション詳細情報のうち該アプリケーションに対応する前記詳細情報が示すバージョンとが異なるアプリケーションを特定し、該特定したアプリケーションに対応する前記更新命令が選択された場合、その選択された前記更新命令を前記処理実行部へ通知し、
     前記処理実行部は、前記実行部から通知された前記更新命令を実行する、
     ことを特徴とする請求項1から11の何れか1項に記載のシステム。
  13.  前記アプリケーションコマンドは、インストール済みのアプリケーションを削除して、前記機器の状態を、該アプリケーションをインストールする前の状態に戻す命令を示すアンインストール命令を含み、
     前記実行部は、前記ユーザの操作に応じて選択された前記アンインストール命令を前記処理実行部へ通知し、
     前記処理実行部は、前記実行部から通知された前記アンインストール命令を実行する、
     ことを特徴とする請求項1から12の何れか1項に記載のシステム。
  14.  複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムの情報処理方法であって、
     前記第1サーバは、
     前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御ステップを含み、
     前記機器は、
     前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御ステップと、
     前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行ステップと、
     前記要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行ステップと、
    を含む、
     ことを特徴とする情報処理方法。
PCT/JP2017/007562 2016-02-29 2017-02-27 システムおよび情報処理方法 WO2017150472A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201780013880.8A CN108701097A (zh) 2016-02-29 2017-02-27 系统和信息处理方法
JP2018503306A JP6673464B2 (ja) 2016-02-29 2017-02-27 システム、システムの方法および画像形成装置
US16/079,281 US11132149B2 (en) 2016-02-29 2017-02-27 System and information processing method for providing available applications
EP17759938.8A EP3425515B1 (en) 2016-02-29 2017-02-27 System and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016038046 2016-02-29
JP2016-038046 2016-02-29

Publications (1)

Publication Number Publication Date
WO2017150472A1 true WO2017150472A1 (ja) 2017-09-08

Family

ID=59743927

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/007562 WO2017150472A1 (ja) 2016-02-29 2017-02-27 システムおよび情報処理方法

Country Status (5)

Country Link
US (1) US11132149B2 (ja)
EP (1) EP3425515B1 (ja)
JP (2) JP6673464B2 (ja)
CN (1) CN108701097A (ja)
WO (1) WO2017150472A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220096A (ja) * 2018-06-22 2019-12-26 株式会社クロスビート 資産管理装置及び資産管理プログラム
JP2020119452A (ja) * 2019-01-28 2020-08-06 株式会社リコー 情報処理システム及び情報処理方法
US11947414B2 (en) 2020-11-17 2024-04-02 Ricoh Company, Ltd. Printing abnormality information processing system, apparatus, display method, and storage medium
US11966643B2 (en) 2022-04-08 2024-04-23 Brother Kogyo Kabushiki Kaisha Device and storage medium storing computer program
US11989466B2 (en) 2022-04-08 2024-05-21 Brother Kogyo Kabushiki Kaisha Device and computer-readable storage medium for providing appropriate error notification

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033898B2 (en) * 2016-03-17 2018-07-24 Ricoh Company, Ltd. Information processing system, image forming apparatus, and method of processing information
US11372951B2 (en) * 2019-12-12 2022-06-28 EMC IP Holding Company LLC Proxy license server for host-based software licensing
JP2023006297A (ja) * 2021-06-30 2023-01-18 ブラザー工業株式会社 管理システム、デバイス、デバイス管理方法、制御方法及び制御プログラム
JP2023039685A (ja) 2021-09-09 2023-03-22 株式会社リコー 画像形成装置及び画像形成方法
US12022049B2 (en) 2022-02-28 2024-06-25 Ricoh Company, Ltd. Color adjustment system, color adjustment method, and color adjustment apparatus
JP2023176540A (ja) * 2022-05-31 2023-12-13 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002328855A (ja) * 2001-05-02 2002-11-15 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2010522398A (ja) * 2007-03-21 2010-07-01 ヤフー! インコーポレイテッド ページ内インストーラ
JP2011022712A (ja) * 2009-07-14 2011-02-03 Canon Inc 配信システム、配信装置、及び配信方法
WO2015178422A1 (ja) * 2014-05-23 2015-11-26 株式会社コナミデジタルエンタテインメント 管理装置、ユーザ端末、管理装置プログラム及び端末プログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54869B1 (ja) 1970-05-07 1979-01-17
JPH08314872A (ja) * 1995-05-12 1996-11-29 Hitachi Tohoku Software Kk アプリケーションプログラム間連携処理方法
JP2008293196A (ja) * 2007-05-23 2008-12-04 Brother Ind Ltd 情報配信システム、同システムに用いる端末装置及びその情報処理プログラム、並びに情報処理方法
US9342287B2 (en) 2008-05-05 2016-05-17 Apple Inc. Software program ratings
US9076176B2 (en) 2008-05-05 2015-07-07 Apple Inc. Electronic submission of application programs for network-based distribution
US20090276333A1 (en) 2008-05-05 2009-11-05 Cortes Ricardo D Electronic submission and management of digital products for network-based distribution
US10255580B2 (en) 2008-05-05 2019-04-09 Apple Inc. Network-based distribution of application products
US8745153B2 (en) 2009-02-09 2014-06-03 Apple Inc. Intelligent download of application programs
US9936333B2 (en) * 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US8773676B2 (en) * 2011-03-07 2014-07-08 Sharp Kabushiki Kaisha Multifunction peripheral, multifunction peripheral control system, and multifunction peripheral control method for preparing information display screen including changing default conditions
JP5408230B2 (ja) * 2011-11-04 2014-02-05 オムロン株式会社 ネットワークシステム、ノード装置群、センサ装置群およびセンサデータ送受信方法
JP2013161450A (ja) * 2012-02-08 2013-08-19 Canon Inc ネットワークプリンター管理システム、ネットワークプリンター管理装置及びその制御方法
CN103455505B (zh) 2012-05-31 2017-06-27 华为技术有限公司 一种媒体获取方法、装置及系统
JP5974364B2 (ja) * 2012-07-24 2016-08-23 セイコーエプソン株式会社 デバイス制御装置、デバイス装置、制御方法および制御プログラム
US20140171116A1 (en) 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
JP6456028B2 (ja) * 2014-02-07 2019-01-23 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6376851B2 (ja) * 2014-06-06 2018-08-22 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6638183B2 (ja) 2014-10-28 2020-01-29 株式会社リコー 情報処理システム、情報処理装置、情報処理方法およびプログラム
US9971883B2 (en) 2014-11-20 2018-05-15 Ricoh Company, Ltd. Information processing device to install applications using installation screen associated with a user
JP2016105266A (ja) 2014-11-20 2016-06-09 株式会社リコー 情報処理装置、情報処理システム、情報処理方法およびプログラム
US9661171B2 (en) * 2014-12-09 2017-05-23 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method for providing application information
US10642547B2 (en) * 2016-07-20 2020-05-05 Ricoh Company, Ltd. Information processing system and information processing method for generating an application providing screen for display at a requesting device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002328855A (ja) * 2001-05-02 2002-11-15 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2010522398A (ja) * 2007-03-21 2010-07-01 ヤフー! インコーポレイテッド ページ内インストーラ
JP2011022712A (ja) * 2009-07-14 2011-02-03 Canon Inc 配信システム、配信装置、及び配信方法
WO2015178422A1 (ja) * 2014-05-23 2015-11-26 株式会社コナミデジタルエンタテインメント 管理装置、ユーザ端末、管理装置プログラム及び端末プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220096A (ja) * 2018-06-22 2019-12-26 株式会社クロスビート 資産管理装置及び資産管理プログラム
JP7060876B2 (ja) 2018-06-22 2022-04-27 株式会社クロスビート 資産管理装置及び資産管理プログラム
JP2020119452A (ja) * 2019-01-28 2020-08-06 株式会社リコー 情報処理システム及び情報処理方法
JP7302181B2 (ja) 2019-01-28 2023-07-04 株式会社リコー 情報処理システム及び情報処理方法
US11947414B2 (en) 2020-11-17 2024-04-02 Ricoh Company, Ltd. Printing abnormality information processing system, apparatus, display method, and storage medium
US11966643B2 (en) 2022-04-08 2024-04-23 Brother Kogyo Kabushiki Kaisha Device and storage medium storing computer program
US11989466B2 (en) 2022-04-08 2024-05-21 Brother Kogyo Kabushiki Kaisha Device and computer-readable storage medium for providing appropriate error notification

Also Published As

Publication number Publication date
EP3425515B1 (en) 2023-10-25
CN108701097A (zh) 2018-10-23
EP3425515A1 (en) 2019-01-09
EP3425515A4 (en) 2019-01-09
JP2020091913A (ja) 2020-06-11
JP6881639B2 (ja) 2021-06-02
JP6673464B2 (ja) 2020-03-25
US11132149B2 (en) 2021-09-28
US20210072931A1 (en) 2021-03-11
JPWO2017150472A1 (ja) 2018-10-11

Similar Documents

Publication Publication Date Title
JP6881639B2 (ja) システム、システムの方法および画像形成装置
US10129428B2 (en) System, image forming device, and information processing method
JP6720519B2 (ja) 情報処理装置、プログラムおよび情報処理システム
US10382640B2 (en) Information processing system, information processing apparatus, image forming apparatus, information processing method, and computer program product
JP6822172B2 (ja) システム、画像形成装置、情報処理方法および情報処理装置
US10735614B2 (en) Information processing system, information processing apparatus, image forming apparatus, information processing method, and computer program product
JP6499423B2 (ja) 情報処理システム、情報処理装置、及びその制御方法とプログラム
JP6859870B2 (ja) サーバ、システムおよび情報処理方法
JP2016057697A (ja) 情報処理システム、情報処理装置、及びその制御方法とプログラム
JP2016218666A (ja) 情報処理装置、情報処理方法およびプログラム
JP2017122963A (ja) 情報処理装置、情報処理方法、プログラムおよび情報処理システム
JP2011130117A (ja) 複合機、複合機制御システム、プログラムおよび記録媒体
JP2017120582A (ja) システム、情報処理方法、情報処理装置およびプログラム
JP6648523B2 (ja) 情報処理装置、プログラム、情報処理システムおよび情報処理方法
US20130258406A1 (en) User terminal apparatus, method of controlling user terminal apparatus, image forming apparatus, and method of controlling image forming apparatus
JP6790482B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2018156488A (ja) 画像処理装置、システムおよび情報処理方法
JP6988930B2 (ja) 情報処理装置、プログラム、情報処理システムおよび情報処理方法
JP5694495B2 (ja) 複合機
JP6299101B2 (ja) サービス提供システム、サービス提供方法及びプログラム
JP2019068401A (ja) 画像処理装置、画像処理システム、電子機器、画像処理方法及びプログラム
JP2017199216A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018503306

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017759938

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017759938

Country of ref document: EP

Effective date: 20181001

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

Ref document number: 17759938

Country of ref document: EP

Kind code of ref document: A1