INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING SYSTEM, AND NON-TRANSITORY COMPUTER READABLE MEDIUM

An information processing apparatus includes a memory storing identification information on the information processing apparatus and a processor configured to: generate a code image including the identification information and cause a display to display the code image; detect a communication content from a terminal apparatus and, if the communication content includes the identification information on the information processing apparatus, make a connect request to the terminal apparatus as a transmission source of the communication content via a communication unit that performs wireless communication; and perform control to establish a connection to the terminal apparatus.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2021-054520 filed Mar. 29, 2021.

BACKGROUND

(i) Technical Field

The present disclosure relates to an information processing apparatus, an information processing system, and a non-transitory computer readable medium.

(ii) Related Art

Japanese Unexamined Patent Application Publication No. 2018-198400 discloses an image processing apparatus. The image processing apparatus addresses a problem that a user identity (ID) or password may be stolen by a third party when the user ID or password is input on an operation unit of a device at a public place to utilize a network. The image processing apparatus may communicate with a mobile terminal of a user having an authentication module for biometric authentication. When verification data is received from a service providing system, the authentication module of the mobile terminal for biometric authentication identifies the verification data. The image processing apparatus thus causes the authentication module of the mobile terminal to perform an authentication process.

An information processing apparatus, terminal apparatus A, and terminal apparatus B may be present in an area. A user having the terminal apparatus A is present near the information processing apparatus and may now wish to wirelessly communicate with the information processing apparatus to utilize the information processing apparatus. However, wireless communication may now happen to be established between the information processing apparatus and the terminal apparatus B that is farther from the information processing apparatus than the terminal apparatus A.

SUMMARY

Aspects of non-limiting embodiments of the present disclosure relate to providing an information processing apparatus, information processing system, and non-transitory computer readable medium reducing the possibility that a terminal apparatus, other than a terminal apparatus held by a user who is near the information processing apparatus and tries to use the information processing apparatus, communicates with the information processing apparatus.

According to an aspect of the present disclosure, there is provided an information processing apparatus including a memory storing identification information on the information processing apparatus and a processor configured to: generate a code image including the identification information and cause a display to display the code image; detect a communication content from a terminal apparatus and, if the communication content includes the identification information on the information processing apparatus, make a connect request to the terminal apparatus as a transmission source of the communication content via a communication unit that performs wireless communication; and perform control to establish a connection to the terminal apparatus.

DETAILED DESCRIPTION

Exemplary embodiment of the disclosure is described below with reference to the drawings.

FIGS. 1A and 1Billustrate a conceptual module configuration of a structure of the exemplary embodiment.

The term “module” refers to a software component (including a computer program) that is logically separable, or a hardware component. The module of the exemplary embodiment refers to not only a module in a computer program but also a module in a hardware configuration. The discussion of the exemplary embodiment also serves as the discussion of a system, method, and computer program that causes the modules to function (including a program that causes a computer to execute each step, a program that causes the computer to function as an element, and a program that causes the computer to implement each function). In the discussion that follows, the phrases “stores information,” “causes information to be stored,” and other phrases equivalent thereto are used. If the exemplary embodiment is a computer program, these phrases are intended to express “causes a memory device to store information” or “controls a memory device to cause the memory device to store information.” The modules may correspond to the functions in a one-to-one correspondence. In software implementation, one module may be configured of one program or multiple modules may be configured of one program. One module may be configured of multiple programs. Multiple modules may be executed by a single computer. A single module may be executed by multiple computers in a distributed environment or a parallel environment. One module may include another module.

In the discussion that follows, the term “connection” refers to not only a physical connection but also a logic connection (such as an exchange of data, instructions, data reference relationship, or login).

The term “predetermined” signifies that something is decided in advance of a process of interest. The term predetermined is thus intended to refer to something that is decided in advance of a process of interest in the exemplary embodiment. Even after a process in the exemplary embodiment has started, the term predetermined refers to something that is decided in advance of a process of interest depending on a condition or a status of the exemplary embodiment at the present point of time or depending on a condition or status of the exemplary embodiment heretofore continuing down to the present point of time. If plural predetermined values are used, the predetermined values may be different from each other, or two or more of the predetermined values (including all the values) may be equal to each other.

A statement that “if A, B is to be performed” is intended to signify that a determination as to whether something is A is performed and that if something is determined as A, an action B is to be taken. The statement becomes meaningless if the determination as to whether something is A is not performed. If a discussion is made of events “A, B, and C,” the discussion is applicable to at least one of the events “A, B, and C” unless otherwise noted. For example, the discussion is applicable to the case in which only the event A is selected.

The term “system” or the term “apparatus” refers to an arrangement where multiple computers, a hardware configuration, and an apparatus are interconnected via a communication network (including a one-to-one communication connection). The term system or the term apparatus also refers to an arrangement that includes a single computer, a hardware configuration, and an apparatus. The term system and the term apparatus have the same definition and are interchangeable with each other. The system in the context of the exemplary embodiment does not include a social system that is a social arrangement formulated by humans.

At each process performed by a module, or at one of the processes performed by a module, information as a process target is read from a memory device, the information is then processed, and the process results are written onto the memory device. A description related to the reading of the information from the memory device prior to the process and the writing of the processed information onto the memory device subsequent to the process may be omitted as appropriate.

An information processing apparatus100of the exemplary embodiment inFIG. 1Ahas a function of performing a wireless communication process with a terminal apparatus250held by a user210. Referring toFIG. 1A, the information processing apparatus100includes, at least, a processor105, memory110, communication device195and bus198that connects these elements to exchange data. The information processing apparatus100may further include an outputter185and receiver190. The processor105, memory110, outputter185, receiver190, and communication device195exchange data via the bus198.

The block diagram inFIG. 1Aalso indicates a hardware configuration of a computer that implements the information processing apparatus100of the exemplary embodiment. The hardware configuration of the computer that executes a program of the exemplary embodiment is the computer illustrated inFIG. 1A. Specifically, the hardware configuration is a personal computer or a computer that may be used as a server. Specifically, the processor105and memory110are used as a processing unit and a storage device, respectively.

One or more processors105may be used. The processor105may include a central processing unit (CPU) or a microprocessor. If multiple processors105are used, they are tightly coupled or loosely coupled. For example, a single processor105may include multiple processor cores. Multiple computers are coupled as a system that virtually functions as a single computer. Specifically, a loosely coupled multi-processor may be configured as a cluster system or a computer cluster. The processor105executes a program on a program memory140.

The memory110may include a semiconductor memory, such as a register or a cache memory, in the processor105or a memory, such as a random-access memory (RAM) or a read-only memory (ROM). The memory110may also be an internal memory device, such as a hard disk drive (HDD) or a solid-state drive (SSD), each functioning as a persistent memory, or an external memory device or an auxiliary memory device, such as a compact disc (CD), or digital versatile disc (DVD), Blu-ray (registered trademark) disc, universal serial bus (USB) memory, or memory card. The memory110may also be a memory device of a server connected to the information processing apparatus100via a communication network.

The memory110includes a data memory120storing data and a program memory140storing programs. The data memory120and program memory140may store programs of the modules illustrated inFIG. 1A, programs such as an operating system to start up the computer, and data, such as parameters that appropriately vary in the execution of the modules.

The outputter185includes a display187and printer189. The display187may be a liquid-crystal display, organic electroluminescent (EL) display, three-dimensional display, or projector and displays, in text or image, process results from the processor105and data on the data memory120. The printer189may serve as only a printer or may be a multi-function device and prints the process results from the processor105and data on the data memory120. The outputter185may also include a speaker and actuator to vibrate a device.

The receiver190includes an instruction receiver192and document reader194. The instruction receiver192includes a keyboard, mouse, microphone, and/or camera (including eye-gaze detection camera) and receives data generated in response to user operation performed on these device (such as an action, voice, or gaze of a user).

A touch screen serving the functions of both the display187and the instruction receiver192may be used. In such a case, without the physical presence of keys, the keyboard function may be implemented by drawing a keyboard (called a software keyboard or a screen keyboard) on the touch screen using software.

The display187and instruction receiver192are used as user interfaces.

The document reader194, such as a scanner or camera, reads or photographs a document to create image data.

The communication device195is a communication network interface used to connect to another apparatus via a communication network.

A wireless communication module195A (an example of a communication unit) performs a wireless communication with the terminal apparatus250. The wireless communication may be Bluetooth, Bluetooth Low Energy (BLE), or Wi-Fi. For example, the wireless communication module195A utilizes BLE in the following discussion.

The wired communication module195B performs a wired communication with another apparatus (e.g., a service providing apparatus230described with reference toFIG. 2, or a FIDO server565, cloud server (contract)570, or cloud server (public)575described with reference toFIG. 5). For example, the wired communication module195B may utilize the Internet.

A computer program of the exemplary embodiment is implemented when the computer program as software is read onto the program memory140as a hardware resource and the software and hardware cooperate with each other.

Specifically, to implement the exemplary embodiment, information processing based on software is performed by hardware resources (at least including the processor105and the memory110and in some cases including further the outputter185, receiver190, and communication device195). The exemplary embodiment is thus implemented in accordance with the laws of nature.

The hardware configuration inFIGS. 1A and 1Bis illustrated for exemplary purposes only. The exemplary embodiment is not limited to the configuration illustrated inFIGS. 1A and 1Band is acceptable as long as the configuration implements the modules of the exemplary embodiment. For example, the processor105may include a graphics processing unit (GPU) (including general-purpose computing on graphics processing unit (GPGPU)) as the processor255. Part of the modules may be implemented by a dedicated hardware resource (such as application specific integrated circuit (ASIC)) or field-programmable gate array (FPGA) that is a reconfigurable integrated circuit. Part of the modules may be in an external system that is connected via a communication network. Multiple of the system inFIGS. 1A and 1Bmay be operatively coupled via a communication network. The information processing apparatus100inFIG. 1Amay be incorporated in a server, personal computer, information appliance, robot, copier, fax, scanner, printer, or multi-function apparatus (an image processing apparatus having at least two of scanner function, printer function, copier function, and fax function). The terminal apparatus250inFIG. 1Bmay be incorporated into a mobile information communication apparatus (such as mobile phone, smart phone, mobile device, or wearable computer).

The processor105is connected to the memory110, outputter185, receiver190, and communication device195via the bus198. The processor105executes a process in accordance with the computer program that describes an execution sequence of each module and stored on the program memory140. For example, in response to an event when the wireless communication module195A receives a communication from the terminal apparatus250or the instruction receiver192receives user operation, the processor105performs the process of a module responsive to the event on the program memory140, causes the data memory120to store the process results, outputs the process results to the display187, or transmits the process results to another apparatus by controlling the communication device195.

The memory110includes the data memory120and program memory140and is connected to the processor105, outputter185, receiver190, and communication device195via the bus198.

The data memory120includes an identification (ID) information memory module122.

The ID information memory module122stores identification information on the information processing apparatus100. In the exemplary embodiment (including a system configuration of a single information processing apparatus100or a system configuration including the information processing apparatus100and the terminal apparatus250), the identification information is used to uniquely identify the information processing apparatus100. For example, the identification information may be a media access control address (MAC), hash value, serial number, or name assigned to the information processing apparatus100.

Identification number on the ID information memory module122may be unique information or modified as described below.

The program memory140includes a code image generation module142and wireless communication control module144.

The code image generation module142generates a code image including the identification information on the ID information memory module122and causes the display187to display the identification information. The code image refers to an image code that is systematically generated to represent digital data in a machine-readable manner. Specifically, the code image may be one-dimensional bar code, two-dimensional code, or the like. Recently, Quick Response Code (QR code (registered trademark)) has been used as the two-dimensional code. The QR code is utilized in the exemplary embodiment.

The code image displayed on the display187is read by the terminal apparatus250.

The terminal apparatus250enabled to read the code image (or the user210having the terminal apparatus250) may read the code image displayed on the display187of the information processing apparatus100and is thus near the information processing apparatus100. The nearness signifies that the terminal apparatus250or the user210is near enough in distance to read, with at least a camera function of the terminal apparatus250, the code image displayed on the display187.

Specifically, the code image generation module142may generate the code image including connection information800described below with reference toFIG. 8.

A message reading “Please read the code image using your terminal apparatus250” may be also displayed together with the code image on the display187.

When the wireless communication control module144detects a communication from the terminal apparatus250, the identification information on the information processing apparatus100may be included in the communication. In such a case, the wireless communication control module144makes a connect request to the terminal apparatus250serving as a communication source of the communication via the wireless communication module195A that supports wireless communication. Specifically, this operation is performed if the communication is detected from the terminal apparatus250having read the code image displayed on the display187of the information processing apparatus100.

The “communication” detected from the terminal apparatus250may be a beacon from the terminal apparatus250.

The wireless communication control module144performs control to establish a connection to the terminal apparatus250.

When the wireless communication control module144detects a communication from the terminal apparatus250and if the identification information on the information processing apparatus100is not included in the communication, the wireless communication control module144performs control not to make a connect request to the terminal apparatus250. Specifically, this operation is performed if the communication is detected from the terminal apparatus250not having read the code image displayed on the display187of the information processing apparatus100. Wireless communication connection is not established with the terminal apparatus250.

If a communication from a second terminal apparatus250is detected within a predetermined period of time from the establishment of the connection, the wireless communication control module144may perform control not to connect with the second terminal apparatus250. Specifically, the information processing apparatus100performs wireless communication with only the terminal apparatus250that has established first the wireless communication via the wireless communication module195A.

The second terminal apparatus250refers to a terminal apparatus250other than the terminal apparatus250that has established the wireless communication.

However, if the communication with the terminal apparatus250having established the connection becomes unsuccessful, the wireless communication control module144may perform control to permit the connection to the second terminal apparatus250via the wireless communication module195A.

The information processing apparatus100may be an image processing apparatus.

In such a case, if the terminal apparatus250utilizes a read function of the information processing apparatus100(e.g., a scan function in which the terminal apparatus250acquires the image read by the document reader194), the wireless communication control module144may perform control not to make a connection to the second terminal apparatus250. The read function is used not by multiple persons but by a single person who utilizes the information processing apparatus100. Specifically, the read function for the terminal apparatus250to acquire a document image read by the document reader194in the information processing apparatus100may now be used. An instruction to perform the read function with a document placed on the document reader194in the information processing apparatus100is a person who operates the information processing apparatus100in front of the information processing apparatus100. In the wireless communication, a terminal apparatus250at a slightly distant location may be connected. In such a case, if a wrong terminal apparatus250is selected, the image of the read document may not be transmitted to the terminal apparatus250of the person who has operated the information processing apparatus100but may be erroneously transmitted to the wrong terminal apparatus250of another person. Concurrent connection to multiple terminal apparatuses250may not be desirable.

If information indicating which of the functions of the information processing apparatus100is to be used is included in information transmitted in the communication from the terminal apparatus250, the terminal apparatus250and the second terminal apparatus250may be enabled to perform a determination as to whether to use the read function of the information processing apparatus100.

If a communication from a second terminal apparatus250is detected within a predetermined period of time from the establishment of the connection, the wireless communication control module144may connect to the second terminal apparatus250via the wireless communication module195A. Specifically, the terminal apparatus250may establish first the wireless communication connection via the wireless communication module195A, a communication may be detected from a second or subsequent terminal apparatus250, and the identification information on the information processing apparatus100(e.g., the identification information embedded in the code image displayed on the display187) may be included in the communication. In such a case, the information processing apparatus100connects to the second or subsequent terminal apparatus250via the wireless communication module195A and establishes the wireless communication connection.

The information processing apparatus100may be an image processing apparatus.

In such a case, if a terminal apparatus250and a second terminal apparatus250utilize a print function of the information processing apparatus100(print function using the printer189), the wireless communication control module144may enable the second terminal apparatus250to connect to the information processing apparatus100via the wireless communication module195A. The print function may simply successively perform received print instructions. The print function may be utilized with multiple users connected and the information processing apparatus100is thus utilized by the multiple users. Specifically, when the terminal apparatus250utilizes the print function of the information processing apparatus100, the terminal apparatus250simply transmits a print job. Even when print jobs are substantially concurrently received from multiple terminal apparatuses250, the received print jobs are simply printed in the order of reception. Concurrent multiple connections may thus work.

If information indicating which of the functions of the information processing apparatus100is to be used is included in the communication from the terminal apparatus250, the terminal apparatus250and the second terminal apparatus250may be enabled to determine whether to utilize the print function of the information processing apparatus100.

A communication may be detected from the second terminal apparatus250within a specific period of time from the establishment of the connection and the second terminal apparatus250may be nearer to the information processing apparatus100than the terminal apparatus250. The wireless communication control module144may perform control to enable the second terminal apparatus250to connect to the information processing apparatus100via the wireless communication module195A. A determination as to whether the terminal apparatus250is nearer to the information processing apparatus100may be performed based on the strength of a radiowave received from the terminal apparatus250. Specifically, if the strength of the radiowave received from the terminal apparatus250having established the connection (the terminal apparatus250A) is higher than the strength of the radiowave received from the second terminal apparatus250(the terminal apparatus250B), the terminal apparatus250A is nearer to the information processing apparatus100than the terminal apparatus250B. Conversely, if the strength of the radiowave received from the terminal apparatus250B is higher than the strength of the radiowave received from the terminal apparatus250A, the terminal apparatus250B is nearer to the information processing apparatus100than the terminal apparatus250A.

A communication from the terminal apparatus250may be detected and information indicating a Fast Identity Online (FIDO) service may be included in the communication. In such a case, the wireless communication control module144may perform control to make a connection to the communication interface module350serving as a communication source via the wireless communication module195A. Specifically, if the communication from the terminal apparatus250includes the identification information on the information processing apparatus100and the information indicating the FIDO service, the wireless communication control module144performs control to make a connection via the wireless communication module195A to the terminal apparatus250serving as the communication source.

If a communication detected from the terminal apparatus250does not include the information indicating the FIDO service, the wireless communication control module144may perform control not to make a connection to the terminal apparatus250serving as the communication source.

Specifically, if the communication from the terminal apparatus250includes the identification information on the information processing apparatus100but is without the information indicating the FIDO service, the wireless communication control module144performs control not to make the connection to the terminal apparatus250serving as the communication source.

After the display187in the information processing apparatus100displays the identification information, the code image generation module142may modify that identification information. For example, the wireless communication via the wireless communication module195A is restricted when the terminal apparatus250leaves away from the information processing apparatus100after performing the wireless communication via the wireless communication module195A in the information processing apparatus100. The phrase “after the display187in the information processing apparatus100displays the identification information” may signify an even later timing, specifically “after the wireless communication module195A establishes the wireless communication connection.”

The timings when the identification information on the information processing apparatus100is modified may include a timing when the information processing apparatus100is started up, a timing when the information processing apparatus100shifts into a power-saving mode, a timing when the information processing apparatus100is restored from the power-saving mode, a timing at every predetermined period of time, a timing when connection is established with the terminal apparatus100, a timing when the connection to the terminal apparatus100is disconnected, a timing when an update operation is performed by an operator, a timing when an operation to display the code image is performed by an operator, or a combination of two or more of the timings.

The code image generation module142may generate not only the identification information on the information processing apparatus100but also the code image including a password. The password is used to decrypt the identification information included in the communication from the terminal apparatus250.

Using the password, the wireless communication control module144may decrypt the identification information included in the communication from the terminal apparatus250.

The code image generation module142generates not only the identification information on the information processing apparatus100but also the code image including information indicating a service provided via the information processing apparatus100.

Using the information indicating the service and included in the communication from the terminal apparatus250, the wireless communication control module144may connect to an external service.

After establishing the connection, the wireless communication control module144may acquire authentication information included in the communication from the terminal apparatus250and permit the user of the information processing apparatus100to utilize the service in accordance with the acquired authentication information. For example, a process concerning the authentication information is a process subsequent to a Bluetooth Low Energy (BLE) connection and corresponds to an authentication process that utilizes a service in a Client to Authenticator Protocol (CTAP) communication.

A determination as to whether to permit the user to utilize the service may be performed by authenticating with the information processing apparatus100.

The determination as to whether permit the user to utilize the service may be performed by requesting an authentication device to authenticate the authentication information and acquiring authentication results from the authentication device. Specifically, the authentication device may be an FIDO server (such as FIDO server2).

The terminal apparatus250of the exemplary embodiment inFIG. 1Bhas a function of performing a wireless communication process with the information processing apparatus100the user210is trying to utilize. Referring toFIG. 1B, the terminal apparatus250includes, at least, a processor255, memory260, communication device288, and bus298that interconnects these elements to exchange data. The terminal apparatus250may further include an outputter278and receiver282. The processor255, memory260, outputter278, receiver282, and communication device288exchange data via the bus298.

A block diagram inFIG. 1Billustrates a hardware configuration of a computer that implements the terminal apparatus250of the exemplary embodiment. The hardware configuration of the computer that executes a program of the exemplary embodiment is the computer inFIGS. 1B and 1sspecifically the computer that may work as a mobile information communication apparatus. Specifically, the processor255is used as a processor and the memory260is used as a memory.

The functions of the processor255, memory260, outputter278, receiver282, communication device288, and bus298in the terminal apparatus250respectively correspond to and are respectively identical in function to the functions of the processor105, memory110, outputter185, receiver190, communication device195, and bus198in the information processing apparatus100. Similarly, an ID information memory module267corresponds to and is identical in function to the data memory120, a program memory270corresponds to and is identical in function to the program memory140, a display280corresponds to and is identical in function to the display187, an instruction receiver284corresponds to and is identical in function to the instruction receiver192, and a wireless communication module290corresponds to and is identical in function to the wireless communication module195A. In response to an operation of the user210of the instruction receiver284also serving as a shutter, a camera286photographs the code image (the code image displayed on the information processing apparatus100) as a digital image. The code image photographed by the camera286is transferred to a code image analyzing module272. The terminal apparatus250as a mobile information communication apparatus has an appropriate size that allows humans to carry the terminal apparatus250.

The ID information memory module267stores the identification information on the information processing apparatus100extracted from the code image by the code image analyzing module272.

The code image analyzing module272receives the code image captured by the camera286, analyzes the code image, and extracts the identification information on the information processing apparatus100embedded in the code image.

By communicating information including the identification information, the wireless communication control module274performs control to receive a connect request from the information processing apparatus100via the wireless communication module290(an example of a second communication unit) and establish connection to the information processing apparatus100. The wireless communication control module274performs wireless communication with the wireless communication control module144in the information processing apparatus100. The wireless communication corresponds to BLE.

The communication device288may also additionally perform communication via wireless phone or via the Internet over the wireless network.

FIG. 2illustrates a system configuration of the exemplary embodiment.

An image processing apparatus200includes the information processing apparatus100. In the illustrated example, the information processing apparatus100serves as an image processing apparatus.

The user210holds the terminal apparatus250. The terminal apparatus250is a mobile information communication apparatus held by the user210and has a camera function. The terminal apparatus250may read the code image displayed on the display187in the information processing apparatus100.

The image processing apparatuses200A,200B, and200C are interconnected to each other via a communication network299. The communication network299may be a wireless network, a wired network, or a combination thereof. For example, the communication network299may be the Internet as a communication infrastructure and/or an intranet.

The service providing apparatus230provides a service to the terminal apparatus250(or the user210) via the image processing apparatus200. The service includes storing a document printed by the image processing apparatus200and/or storing a document read by the image processing apparatus200. The function of the service providing apparatus230may be implemented as a cloud service.

When the image processing apparatus200is wirelessly connected to the terminal apparatus250via BLE, the terminal apparatus250is not necessarily connected to the nearest image processing apparatus200. For example, even when a user210A having the terminal apparatus250A approaches the image processing apparatus200A to utilize the image processing apparatus200A, the terminal apparatus250A may not necessarily be connected to the image processing apparatus200A but the terminal apparatus250B held by a user210B may be connected to the image processing apparatus200A.

The image processing apparatus200A first displays the code image having the identification information on the image processing apparatus200A (the information processing apparatus100A) embedded therewithin. In such a case, only the terminal apparatus250A held by the user210A close enough to operate the image processing apparatus200A may read the identification information. The terminal apparatus250A and250B perform beacon communication to connect to the image processing apparatus200(not necessarily the image processing apparatus200A). If the identification information on the image processing apparatus200A is included in the beacon communication, the BLE connection is established with the image processing apparatus200A. Referring toFIG. 2, the BLE connection is established between the image processing apparatus200A and the terminal apparatus250A but not established between the image processing apparatus200A and the terminal apparatus250B. This is because the beacon of the terminal apparatus250B does not include the identification information on the image processing apparatus200A and because the code image displayed on the image processing apparatus200A is not read.

FIG. 3illustrates an example of a connection process in which the image processing apparatus300and the terminal apparatus250are connected to each other without employing the exemplary embodiment. Specifically, the image processing apparatus300does not display the code image having the identification information on the image processing apparatus300embedded therewithin.

Via BLE, a broadcast packet as an advertising packet is received and a corresponding terminal is identified by analyzing the packet.

If multiple terminal apparatuses250are present around the image processing apparatus300installed at an office, the image processing apparatus300has difficulty in determining whether a terminal apparatus250detected by the image processing apparatus300is held by the user210A who is actually in front of the image processing apparatus300. This suggests the possibility of erroneous connection. The position detection based on the strength of a received radiowave in Bluetooth has a relatively low accuracy and determining the nearest terminal apparatus250based on the strength of the received radiowave alone is difficult. Specifically, if the user210B near the image processing apparatus300starts up the same application as the terminal apparatus250A, the terminal apparatus250B may possibly be detected.

An example of the erroneous connection is described with reference toFIG. 3. The user210A having the terminal apparatus250A (the user210A is in front of the image processing apparatus300) may be going to utilize the image processing apparatus300and the user210B having the terminal apparatus250B may happen to pass by the image processing apparatus300. Both the terminal apparatus250A and the terminal apparatus250B have started up an application to use the image processing apparatus300.

The specifications of Client to Authenticator Protocol (CTAP2) used in Fast Identity Online2(FIDO2) specify that an authenticator (the terminal apparatus250) transmits an advertising packet including universally unique identifier (UUID) of FIDO, and that a browser (the image processing apparatus300) searches for the terminal apparatus250(FIDO UUID) and makes a connection. A process complying with the specifications of CTAP2of FIDO2is performed.

In step S302, the terminal apparatus250A emits a beacon A. This corresponds to the transmission of the advertising packet. It is assumed that the beacon A is not received by the image processing apparatus300.

In step S304, the terminal apparatus250B emits a beacon B. This corresponds to the transmission of the advertising packet. It is assumed that the beacon B is received by the image processing apparatus300.

In step S306, the image processing apparatus300determines that the transmission source of the detected beacon is the terminal apparatus250B.

In step S308, the image processing apparatus300makes a connect request to the terminal apparatus250B.

In step S310, the terminal apparatus250B responds to the connect request.

In step S312, a connection is established between the image processing apparatus300and the terminal apparatus250B.

In this way, the image processing apparatus300may possibly receive the advertising packet of the beacon emitted by the terminal apparatus250B and the image processing apparatus300is not necessarily connected to the nearest terminal apparatus250(originally intended terminal apparatus250A).

The image processing apparatus300is to be wirelessly connected to the nearest terminal apparatus250(the terminal apparatus250of the user210who is in front of the image processing apparatus300to use the image processing apparatus300). In the discussion that follows, the image processing apparatus300of the exemplary embodiment performs a process that may reduce the possibility of the wireless communication that the image processing apparatus300of the exemplary embodiment performs wireless communication with a terminal apparatus other than the terminal apparatus held by a user near the image processing apparatus300.

A network service may be utilized via the image processing apparatus300installed at a public place. When a user identification (ID) or password is entered onto an operation screen of the image processing apparatus300, a mechanism is provided to control a risk that a user ID or password is stolen by a third party. In the mechanism, the terminal apparatus250performs authentication and sends verification results to the image processing apparatus300. If the verification results are authenticated by an authentication system, an access token is issued.

If authentication modules of multiple terminal apparatuses250are detected, an authentication method or a communication method may be displayed on the screen of the image processing apparatus300to identify an authentication module and the user210having the terminal apparatus250may manually select one of the authentication methods and communication methods.

Since the right of usage of the user210having the terminal apparatus250is not registered on the image processing apparatus300installed at the public place, the terms of usage of the user210is not switched to a service or billing method provided by the image processing apparatus300.

According to the exemplary embodiment, the image processing apparatus300automatically determines the terminal apparatus250(authentication module) held by the user210who wants to utilize the image processing apparatus300and is BLE connected to the terminal apparatus250. The erroneous connection is thus controlled and the user210may be free from an operation selecting the authentication method to identify the authentication module and an operation selecting the communication method.

The right of usage of the user210having the terminal apparatus250connected to the image processing apparatus300is identified before the authentication process performed by the FIDO server565. The service to be provided and billing method may be automatically switched and operation assistance responsive to the right of usage may thus be provided.

FIG. 4specifically illustrates a system configuration implementing the exemplary embodiment.

The image processing apparatus300incudes a printer control module315, scanner control module320, operation panel control module325, code image control module330, BLE control module335, random-access memory (RAM)337, BLE stack339, BLE interface module340, and communication interface module350. The image processing apparatus300is a specific example of the information processing apparatus100(or the image processing apparatus200).

The printer control module315, scanner control module320, operation panel control module325, code image control module330, BLE control module335, BLE interface module340, and communication interface module350are interconnected to each other via a bus390.

The image processing apparatus300is connected to a printer305and scanner310.

The printer305is connected to the printer control module315. The printer control module315controls a print process of the printer305.

The scanner310is connected to the scanner control module320. The scanner control module320controls a read process of the scanner310.

The operation panel control module325controls a panel enabled to display and receive an operation. For example, the operation panel control module325displays on the panel the code image having the identification information on the image processing apparatus300embedded therewithin, receives an operation of the user210on the image processing apparatus300, and displays process results of the image processing apparatus300.

The code image control module330is an example of the code image generation module142.

The BLE control module335is connected to the RAM337and BLE stack339. The BLE control module335is an example of the wireless communication control module144. Specifically, the BLE control module335controls BLE communication and CTAP communication for FIDO server authentication.

The RAM337is connected to the BLE control module335. The RAM337stores a local name, one-time password, tenant ticket information, and the like.

The BLE stack339is connected to the BLE control module335. The BLE stack339stores a collection of protocols for the BLE communication and is hierarchically structured. One communication includes multiple protocols. Each protocol communicates with an upper layer protocol and a lower layer protocol. The bottom layer protocol is used to communicate with hardware. As a layer becomes higher, more functions of the protocol are added.

The communication interface module350is connected to the communication network299. The communication interface module350is an example of the wired communication module195B. Specifically, the service providing apparatus230(and the FIDO server as well) is connected to the Internet.

The BLE interface module340is connected to the BLE antenna355and controlled by the BLE control module335. The BLE interface module340and BLE antenna355are examples of the wireless communication module195A.

FIG. 5illustrates a system configuration including specific apparatuses of the exemplary embodiment.

The terminal apparatus250(corresponding to the authentication module in FIDO) held by the user210who wants to utilize the image processing apparatus300is automatically determined and the BLE connection to the terminal apparatus250is made. The erroneous connection is controlled and an operation selecting the authentication method to identify the authentication module and an operation selecting the communication method may thus be dispensed with.

The right of usage of the user210having the terminal apparatus250connected to the image processing apparatus300is identified before the authentication process performed by the FIDO server565. The service to be provided and billing method may be automatically switched and operation assistance responsive to the right of usage may thus be provided. Specifically, time until the start of a service usage may be shortened and a procedure for a cloud connection and billing method may be displayed on a panel525in an easy-to-understand guide.

The image processing apparatus300is configured as illustrated inFIG. 4.FIG. 5illustrates the panel525. The image processing apparatus300further includes a BLE interface module340for communication and communication interface module350. A code image530is displayed on the panel525.

The image processing apparatus300is installed at a public space550. The user210A, user210B, and user210C are within the public space550. The user210A has the terminal apparatus250A, the user210B has the terminal apparatus250B, and the user210C has the terminal apparatus250C.

A solution service provider560connected to the image processing apparatus300via a communication network299includes an FIDO server565and cloud server (contract)570.

If authentication has been successfully performed on the FIDO server565via FIDO2, the FIDO server565transmits an access token to connect to the cloud server (contract)570.

The cloud server (contract)570performs a service provided by the solution service provider560. The service is provided to a predetermined user group. The user group may be a group of users who belong to an organization, such as a company or a group of users who participate in a project across the group. The user group is a tenant in the following discussion. For example, a user in the tenant may be a user of a business client that is in contract with the usage of the image processing apparatus300.

The cloud server (public)575is a public cloud server that is normally available to a user connected to the Internet. For example, the cloud server (public)575provides services including storing a file and receiving or transmitting email.

The image processing apparatus300(the BLE interface module340) is connectable via BLE connection to the terminal apparatuses250A,250B, and250C.

The image processing apparatus300(the communication interface module350) is communicably connected to the FIDO server565, cloud server (contract)570, and cloud server (public)575via the communication network299.

The terminal apparatus250is connected via the BLE connection to the image processing apparatus300and communicates via the image processing apparatus300with the FIDO server565, cloud server (contract)570, and cloud server (public)575. The terminal apparatus250is provided with service by the cloud server (contract)570and cloud server (public)575. The terminal apparatus250includes an authentication module that performs biometric authentication, a wireless interface that performs the BLE connection, and a camera.

The system inFIG. 5performs a process described below. The following description is intended to help understand the exemplary embodiment more easily and is not intended to limit the scope of the disclosure.

The image processing apparatus300displays on the panel525the code image530, such as a QR code, and the terminal apparatus250reads the code image530via the camera function thereof.

The code image530includes information identifying the image processing apparatus300, information on a list of cloud services available from the image processing apparatus300, and a one-time password that is used to encrypt information transferred from the terminal apparatus250to the image processing apparatus300.

The terminal apparatus250transmits to the image processing apparatus300, via a BLE advertising beacon, information identifying the image processing apparatus300read from the code image530, information on the cloud services available from the image processing apparatus300, and a tenant ticket of the user encrypted with a one-time password. The terminal apparatus250may also transmit information identifying the terminal apparatus250. The tenant ticket includes information indicating the tenant which the user belongs to and the service available for the user. The tenant ticket is also referred to as service contract information.

The image processing apparatus300scans the BLE advertising beacon of the terminal apparatus250. If the identification information on the image processing apparatus300is included in the BLE advertising beacon, the image processing apparatus300is connected to the terminal apparatus250via the BLE connection. The right of usage of the user is determined in accordance with the encrypted tenant ticket of the user. In the BLE connection, the identification information on the terminal apparatus250may be utilized.

The user may utilize the system as described below.

The user210A may scan a document contracted at a business destination on the image processing apparatus300installed at a shared office (the public space550) which the user210A drops by and the user210A may store data on the cloud server (contract)570in the solution service provider560used at the office of the user210A.

The solution service provider560including the FIDO server565provides a service. In the service, an access token of the cloud server (contract)570is issued by transmitting via the BLE connection to the image processing apparatus300results of biometric authentication performed by the terminal apparatus250held by the user210and login is thus performed on the cloud server (contract)570without inputting the password.

The user210A has registered an account for the FIDO server565in advance and is thus a contract user of the solution service provider560. The user210A is going to the business destination after having received a service ticket and storing the service ticket on the terminal apparatus250A.

When the user210A stands in front of the image processing apparatus300at the shared office and issues an instruction to use the image processing apparatus300, the code image530(e.g., the QR code) is displayed on the panel525. When the user210A starts up an application of the terminal apparatus250A and reads the code image530, the user210A is requested to perform biometric authentication on the terminal apparatus250A. The user210A performs biometric authentication. The user210A performs biometric authentication and if the user210A is successfully authenticated, a folder of the cloud server (contract)570used in the office of the user210A is displayed. When the document is scanned on the image processing apparatus300, the data is stored. When the data transmission is complete, the code image530is displayed again.

The user210B may run a private store. On the image processing apparatus300shared and installed at a shared office which the user210B drops by, the user210B may now print catalogues or leaflets to be distributed to customers. The user210B does not make a cloud service contract with the solution service provider560but has an account registered with the FIDO server565. The user210B has registered with the cloud server (public)575that the user210B normally utilizes.

When the user210B stands in front of the image processing apparatus300in the shared office and enters an instruction for use, the code image530is displayed on the panel525. The user210B starts an application on the terminal apparatus250B and reads the code image530. The user210B is requested to perform biometric authentication on the terminal apparatus250B. The user210B performs the biometric authentication and if the user210B is successfully authenticated, the available cloud server (public)575and the billing method are displayed. When settings are complete, the catalogues or leaflets stored on the cloud server (public)575are printed on the image processing apparatus300.

The user210A having the terminal apparatus250A may have an FIDO account and may be a member of a predetermined tenant. Specifically, the user210A has made a usage contract of a service provided by the solution service provider560and has registered an account with the cloud server (contract)570.

The user210B having the terminal apparatus250B has an FIDO account but is not a member of the tenant. Specifically, the user210B normally utilizes the cloud server (public)575and has registered an account with the cloud server (contract)570in the solution service provider560.

The user210C having the terminal apparatus250C does not have an FIDO account. Specifically, the user210C has not registered an account with the cloud server (contract)570. Note that a question whether the user210cis a usage contractor of the service provided by the solution service provider560is not asked.

On the condition described above, examples of processes of the system including the terminal apparatus250, image processing apparatus300, solution service provider560, FIDO server565, cloud server (contract)570, and cloud server (public)575are described with reference toFIGS. 6, 7A, 7B, 9A and 9B.

FIG. 6is a flowchart illustrating an example of a process of the exemplary embodiment.FIG. 6illustrates the process of FIDO account registration of the solution service provider560(the FIDO server565). The process is performed prior to the utilization of the image processing apparatus300.

The process is performed by the solution service provider560(the FIDO server565), terminal apparatus250A, and terminal apparatus250B.

The user210A having the terminal apparatus250A applies for an FIDO account on the solution service provider560(the FIDO server565) and a tenant ticket serving as information used to utilize the cloud server (contract)570is issued.

The user210B having the terminal apparatus250B applies for an FIDO account on the solution service provider560(the FIDO server565) and a tenant ticket used to utilize the cloud server (contract)570is not issued.

The user210C having the terminal apparatus250C does not do anything on the solution service provider560(the FIDO server565) and has no FIDO account. No tenant ticket is issued for the user210C.

In step S602, mobile applications are installed on the terminal apparatus250A and terminal apparatus250B. The mobile applications are software programs used to perform the processes inFIG. 6andFIGS. 7A and 7BandFIGS. 9A and 9B.

In step S604, the terminal apparatuses250A and250B apply for the FIDO account on the solution service provider560by transmitting service provider accounts thereof.

In step S606, the solution service provider560receives the FIDO accounts respectively from the terminal apparatuses250A and250B.

Specifically in the operations in steps S604and S606, the installed mobile applications apply for the FIDO accounts on the FIDO server565in the solution service provider560. The terminal apparatus250A includes into account application information (service provider account) a registered ID of a service (the cloud server (contract)570) contracted for use. The terminal apparatus250B includes into account application information (service provider account) registration information on a normally used public cloud (the cloud server (public)575).

In step S608, the solution service provider560registers the FIDO accounts and transmits FIDO account information respectively to the terminal apparatuses250A and250B.

In step S610, the terminal apparatuses250A and250B store the FIDO account information thereof.

In the operations in steps S608and S610, if there is no problem with the application for the FIDO account, the account registration is performed on the FIDO server565and the access token is stored for connection to the cloud server (contract)570. The mobile applications of the terminal apparatuses250A and250B store the FIDO account information (e.g., server URL and user ID), provided by the solution service provider560, on non-volatile memories respectively within the terminal apparatuses250A and250B.

In step S612, the solution service provider560determines whether the user is a tenant user. If the user is a tenant user, the process proceeds to step S614; otherwise, the process ends. In this example, the user210A (having the terminal apparatus250A) is a tenant user but the user210B (having the terminal apparatus250B) is not a tenant user.

In step S614, the solution service provider560issues a tenant ticket to the user210A and transmits information on the tenant ticket to the terminal apparatus250A. The information on the tenant ticket may include not only the tenant ticket to utilize the cloud server (contract)570but also contract information.

In step S616, the terminal apparatus250A stores the tenant ticket received from the solution service provider560.

Specifically in the operations in steps S612through S616, the tenant ticket is issued to the terminal apparatus250A of a usage contractor (the user210A) of the service provided by the solution service provider560and is stored on the non-volatile memory of the terminal apparatus250A.

FIGS. 7A and 7Bare a flowchart illustrating an example of a process of the exemplary embodiment. In the process, the system is utilized by the usage contractor (the user210A) of a service (the cloud server (contract)570) provide by the solution service provider560. The process is performed by the terminal apparatus250A, image processing apparatus300, FIDO server565, and cloud server (contract)570.

In step S702, the image processing apparatus300generates a code image. For example, the image processing apparatus300generates the code image530having connection information800embedded therewithin.FIG. 8illustrates a data structure of the connection information800. The connection information800includes a local name column802, one-time password column804, cloud service count column806, and cloud ID column808. The local name column802stores a local name serving as identification information uniquely identifying the image processing apparatus300in the exemplary embodiment. The one-time password column804stores a one-time password used to encrypt the tenant ticket. The cloud service count column806stores a cloud service count. The cloud ID column808stores cloud IDs (a list of cloud IDs) corresponding to the cloud service count. The cloud ID is identification information uniquely identifying a cloud service (or a cloud server) in the exemplary embodiment.

In step S704, the image processing apparatus300displays the code image. Specifically, the image processing apparatus300detects a user with a human sensor. When the user (in this case, the user210A) stands in front of the image processing apparatus300and gives an instruction to “perform authentication on the mobile terminal,” the image processing apparatus300displays the code image530on the panel525.

In step S706, the terminal apparatus250A reads the code image530on the panel525.

In step S708, the terminal apparatus250A retrieves information on the local name, one-time password, and a list of available cloud IDs.

Specifically in the operations in steps S706and S708, the terminal apparatus250A reads with a camera function (the camera286) the code image530displayed on the panel525in the image processing apparatus300and acquires information on the local name, one-time password, and the list of available cloud IDs,

The terminal apparatus250A displays to the user210A the available cloud services in a selectable way and allows the user210A to select a cloud service the user210A wants to utilize.

The information on the list of available cloud IDs may not be necessarily displayed and allowed to be selected if the available cloud services are fixed or the number of available cloud services is only one. If the available cloud services are not fixed and more than one, the terminal apparatus250A may allow the user210A to select one from the cloud services by displaying the cloud services on the terminal apparatus250A.

In step S710, the terminal apparatus250A encrypts the tenant ticket.

In step S712, the terminal apparatus250A transmits advertising to the image processing apparatus300. For example, the advertising includes a local name, usage cloud ID, encrypted tenant ticket, and universally unique identifier (UUID) of the terminal apparatus250A.

In the operations in steps S710and S712, the terminal apparatus250A encrypts with the one-time password the tenant ticket provided beforehand by the solution service provider560, and transmits a BLE advertising beacon that is a combination of information on the local name and usage cloud ID and UUID serving as information identifying the terminal apparatus250A.

In step S714, the image processing apparatus300detects a terminal apparatus250via BLE scan.

Specifically in the operations in steps S714and S716, the image processing apparatus300searches for an advertising packet of the terminal apparatus250via the BLE scan and selects the terminal apparatus250(in this case, the terminal apparatus250A) matching the local name included in the code image530.

The image processing apparatus300extracts UUID and tenant ticket of the terminal apparatus250A having a matched local name, and the cloud server ID and store these pieces of information on the memory (RAM).

If no terminal apparatus250having the matched local name has been detected through a predetermined period of time of BLE scan, the process returns to step S702to generate the code image530. The image processing apparatus300then waits for a request of a next user who utilizes the image processing apparatus300next.

In step S718, the image processing apparatus300extracts the tenant ticket and encrypts the extracted tenant ticket.

In step S720, the image processing apparatus300determines whether there is a tenant ticket. If there is a ticket, the process proceeds to step S722; otherwise, the process proceeds to step S920in a flowchart inFIG. 9B.

In step S722, the image processing apparatus300determines whether the tenant ticket is valid. If the tenant ticket is value, the process proceeds to step S724; otherwise, the process returns to step S702.

Specifically in the operations in steps S718through S722, the tenant ticket of the terminal apparatus250A is decrypted, and if the tenant ticket is valid, the image processing apparatus300shifts to generic access profile (GAP) communication status of the BLE connection.

If no tenant ticket is extracted, the image processing apparatus300shifts to a usage service status in accordance with the flowchart inFIGS. 9A and 9B(the process in step S920and thereafter). In the usage service status, the image processing apparatus300is enabled to provide the usage service that is available to the terminal apparatus250B.

If the decrypted tenant ticket is determined to be invalid, the image processing apparatus300displays a message indicating unavailability on the panel525. The process returns to step S702and waits for a next user who utilizes the image processing apparatus300.

In steps S724and S726, the image processing apparatus300and the terminal apparatus250A perform the BLE connection and exchange BLE packets (GAP).

Specifically, the terminal apparatus250A performs BLE pairing with the image processing apparatus300. If successfully paired, the terminal apparatus250A is BLE connected to the image processing apparatus300.

In step S728, the terminal apparatus250A performs biometric authentication.

In step S730, the terminal apparatus250A performs CTAP communication with the image processing apparatus300and transmits a BLE packet (Generic Attribute Profile (GATT)) and biometric authentication results.

In step S732, the image processing apparatus300transmits authentication information and the biometric authentication results to the FIDO server565.

In step S734, the FIDO server565performs authentication.

Specifically in the operations in steps S728through S734, the user210A is biometrically authenticated on the terminal apparatus250A. If the user210A is successfully authenticated, the CTAP communication is performed with the image processing apparatus300in BLE GATT. The image processing apparatus300performs an authentication request on the FIDO server565using UUID of the terminal apparatus250A and the biometric authentication results. The biometric authentication results are information indicating that the biometric authentication has been successfully performed on the terminal apparatus250A.

In step S736, the FIDO server565acquires the access token issued by the cloud server (contract)570and transmits the access token to the image processing apparatus300.

In step S738, the image processing apparatus300receives the access token.

Specifically in the operations in steps S736and S738, upon having successfully completed the authentication process, the FIDO server565acquires the access token issued by the cloud server (contract)570that is set beforehand in authentication cooperation with the FIDO server565and the FIDO server565transmits to the image processing apparatus300the access token registered by the user210A of the terminal apparatus250A.

In step S740, the image processing apparatus300connects to the cloud server (contract)570by transmitting a connect request and login information to the cloud server (contract)570.

In step S742, the cloud server (contract)570transmits login results to the image processing apparatus300.

Specifically in the operations in steps S740and S742, using the access token acquired from the FIDO server565, the image processing apparatus300connects to the cloud server (contract)570provided by the solution service provider560. The image processing apparatus300thus logs in on a cloud service provided by the cloud server (contract)570.

In step S744, the image processing apparatus300performs a scan service and thus transmits scan data to the cloud server (contract)570.

In step S746, the cloud server (contract)570stores the scan data.

In step S748, the image processing apparatus300transmits a disconnect request to the cloud server (contract)570and then returns to step S702.

In step S750, the cloud server (contract)570is disconnected.

Specifically in the operations in steps S744through S750, after being connected to the cloud server (contract)570and successfully logging in on the cloud service provided by the cloud server (contract)570, the image processing apparatus300transmits to the cloud server (contract)570data that is read by using the scanner310in the image processing apparatus300. Upon transmitting the scan data, the image processing apparatus300logs off from the cloud server (contract)570and shifts into a standby state for next use of service.

In the above example, the scan service is utilized. In the case of a print service, step S744is followed by the following operations described below.

After being connected to the cloud server (contract)570and successfully logging in on the cloud service, the image processing apparatus300receives print data from the cloud server (contract)570and performs a print operation on the printer305. Upon completing the print operation, the image processing apparatus300logs off from the cloud server (contract)570and shifts into a standby state for next use of service.

FIGS. 9A and 9Bare a flowchart illustrating an example of a process of the exemplary embodiment. In the process, a user (the user210B) of the cloud server (public)575only registers an account of the cloud server (contract)570in the solution service provider560. The process is performed by the terminal apparatus250B, image processing apparatus300, FIDO server565, and cloud server (public)575.

It is now assumed that the FIDO server565and cloud server (public)575are configured to perform authentication in cooperation with each other. If the authentication is completed by the FIDO server565, the cloud server (public)575issues the access token.

In step S902, the image processing apparatus300generates the code image.

In step S904, the image processing apparatus300displays the code image.

In step S906, the terminal apparatus250B reads the code image.

In step S908, the terminal apparatus250B retrieves a local name, one-time password, and a list of cloud IDs.

In step S910, the terminal apparatus250B transmits advertising to the image processing apparatus300. For example, the advertising includes a local name, usage cloud ID, and UUID of the terminal apparatus250B. A tenant ticket is not stored and thus not transmitted.

Specifically, the terminal apparatus250B combines the local name and information on the cloud ID of the usage cloud into a BLE advertising beacon and sends the BLE advertising beacon to the image processing apparatus300. In this case, the tenant ticket provided by the solution service provider560is not stored.

In step S912, the image processing apparatus300detects a terminal apparatus250via the BLE scan.

In step S914, the image processing apparatus300determines whether local names match each other. If the local names match each other, the image processing apparatus300proceeds to step S916; otherwise, the image processing apparatus300returns to step S902.

In step S916, the image processing apparatus300extracts a tenant ticket and decrypts the extracted tenant ticket.

The operations in steps S902through S916are identical to the operations in steps S702through S718in the flowchart inFIG. 7A. Since the terminal apparatus250B has no tenant ticket, the terminal apparatus250B is free from the operation in step S710inFIG. 7A.

In step S918, the image processing apparatus300determines whether there is a tenant ticket. If there is a tenant ticket, the image processing apparatus300proceeds to step S722in the flowchart inFIG. 7B; otherwise, the image processing apparatus300proceeds to step S920.

Specifically, since the tenant ticket of the terminal apparatus250B is not stored, the process shifts into a status of a usage service that is provided under the authority of the user of the cloud server (public)575. The image processing apparatus300shifts to a GAP communication state of the BLE connection.

If a tenant ticket is stored, the image processing apparatus300shifts, in accordance with the flowchart (step S722and subsequent operations) inFIG. 7B, to a status in which a service provided by the solution service provider560is usable under the authority available to the terminal apparatus250A.

In steps S920and S922, the image processing apparatus300and terminal apparatus250B are connected to each other via BLE connection and exchange BLE packets (GAP).

Specifically, the terminal apparatus250B performs BLE pairing with the image processing apparatus300. The terminal apparatus250B and the image processing apparatus300, if successfully paired, are connected to each other via the BLE connection.

In step S924, the terminal apparatus250B performs biometric authentication.

In step S926, the terminal apparatus250B performs CTAP communication with the image processing apparatus300, transmitting the BLE packet (GATT) and biometric authentication results.

In step S928, the image processing apparatus300transmits authentication information and biometric authentication results to the FIDO server565.

In step S930, the FIDO server565performs authentication.

Specifically in the operations in steps S924through S930, the user210B is biometrically authenticated on the terminal apparatus250B. If the user210B is successfully authenticated, the CTAP communication is performed with the image processing apparatus300in BLE GATT connection. The image processing apparatus300performs an authentication request to the FIDO server565using UUID of the terminal apparatus250B and the biometric authentication results.

In step S932, the FIDO server565, if set beforehand in authentication cooperation with the cloud server (public)575, acquires the access token issued by the cloud server (public)575and transmits the access token to the image processing apparatus300. The access token may be issued on a per cloud service basis or a common access token may be issued.

In step S934, the image processing apparatus300receives the access token.

Specifically in the operations in steps S932and S934, after having successfully completed the authentication, the FIDO server565issues to the image processing apparatus300the access token of the cloud server (public)575that the user210B of the terminal apparatus250B has registered.

In step S936, the image processing apparatus300selects a usage cloud and selects a billing method.

In step S938, the image processing apparatus300enters a password.

In step S940, the image processing apparatus300transmits the access token and connect request to the cloud server (public)575to connect to the cloud server (contract)570.

In step S942, the cloud server (public)575transmits login results to the image processing apparatus300.

Specifically in the operations in steps S936through S942, the image processing apparatus300displays a list of available cloud servers and a list of billing methods on the panel525and causes the user210B to select a cloud server and a billing method. In accordance with the selected information, the image processing apparatus300is connected to the cloud server (public)575using the access token acquired from the FIDO server565and login is performed on the cloud service provided by the cloud server (public)575by entering the password.

In step S944, the image processing apparatus300performs a scan service to transmit scan data to the cloud server (public)575.

In step S946, the cloud server (contract)570stores the scan data.

The image processing apparatus300transmits a disconnect request to the cloud server (contract)570in step S948and then returns to step S902.

In step S950, the cloud server (contract)570is disconnected.

Specifically in the operations in steps S944through S950, if the connection to the cloud server (public)575and the login on the cloud service have been successfully completed, data read using the scanner310in the image processing apparatus300is sent to the cloud server (public)575. If the scan data has been sent, the image processing apparatus300logs off from the cloud server (public)575and shifts to a standby state for next use of service.

The process of the scan service has been described. If a print service is performed, the operation in step S944is followed by operation described below.

After the successful connection to the cloud server (public)575and successful login on the cloud service, the image processing apparatus300receives document data from the cloud server (public)575and print the document data using the printer305. When the print operation is complete, the image processing apparatus300logs off from the cloud server (public)575and shifts into a standby state for next use of service.

Processes of the image processing apparatus300establishing a connection to the terminal apparatus250is described with reference to flowcharts inFIGS. 10 through 15.

FIG. 10is a flowchart illustrating an example of a process (of the image processing apparatus300) in accordance with the exemplary embodiment.

In step S1002, the image processing apparatus300generates a local name to be transferred to the terminal apparatus250. The local name is an example of the identification information on the image processing apparatus300.

In step S1004, the image processing apparatus300generates the code image530having the local name embedded therewithin and displays the code image530on the panel525. This allows the terminal apparatus250to read the code image530.

The local name is updated at a specific timing. For example, the local name may be updated when the terminal apparatus250reads the code image530. In other words, the local name is a one-time value. When the local name is updated, the one-time password may be updated. The one-time password may be updated independently of updating the local name.

The local name may be updated at any of the following timings or at a combination of the following timings.

(1) Timing when the image processing apparatus300is started up,

(2) Timing when the image processing apparatus300shifts into a power-saving mode,

(3) Timing when the image processing apparatus300is restored from the power-saving mode,

(4) Timing at every predetermined period of time,

(5) Timing when Bluetooth connection to the terminal apparatus250is established,

(6) Timing when Bluetooth connection to the terminal apparatus250ends,

(7) Timing when the user210performs an update operation, and

(8) Timing when the user210performs an operation to display the code image530.

The local name may be used around with the value thereof unchanged. The time period of “(4) Timing at every predetermined period of time” may be set by the user210. In other words, the update timing of the local name may be set by the user210.

In step S1006, the image processing apparatus300searches for the terminal apparatus250with the local name set via BLE scan. Specifically, the image processing apparatus300starts the BLE scan and searches for an advertising packet with the local name generated in step S1002. If the terminal apparatus250is not detected within a predetermined period of time, the local name may be updated.

In step S1008, the image processing apparatus300determines whether the terminal apparatus250has been detected in step S1006. If the terminal apparatus250has been detected, the image processing apparatus300proceeds to step S1010. If time is out with the terminal apparatus250not detected, the image processing apparatus300returns to step S1002. Specifically, if an advertising packet broadcast by the terminal apparatus250is detected and includes the local name set in step S1002, the image processing apparatus300determines that the terminal apparatus250having transmitted the advertising packet is a connection partner.

As a connection condition, a distance to the terminal apparatus250(strength of a received radiowave) may be accounted for. Specifically, if two or more terminal apparatuses250are detected, the image processing apparatus300determines that a terminal apparatus250providing a stronger received radiowave is the terminal apparatus250serving as a BLE connection target.

In step S1010, the BLE connection is made to the terminal apparatus250. The image processing apparatus300requests the terminal apparatus250detected (yes path) in step S1008to perform the BLE connection.

In step S1012, the image processing apparatus300determines whether the connection has been successfully made. If the connection has been successfully made, the image processing apparatus300proceeds to step S1014; otherwise, the image processing apparatus300returns to step S1002.

In step S1014, the image processing apparatus300performs service (such as authentication) using BLE. Specifically, if the BLE connection is established between the image processing apparatus300and the terminal apparatus250, the image processing apparatus300performs BLE pairing and the service.

Specifically, operations performed herein include (1) BLE paring operation, and (2) authentication using BLE GATT service, namely, an operation of reading account information from the terminal apparatus250.

If no connection response is obtained from the terminal apparatus250for a predetermined period of time, the image processing apparatus300quits the connection operation.

If a new terminal apparatus250is detected after the connection, switching to the new terminal apparatus250or simultaneous connection to the terminal apparatuses250may be performed. These operations may be described below.

FIG. 11is a flowchart illustrating the example of a process of the exemplary embodiment. If a communication from a terminal apparatus250B is detected within a predetermined period of time from the establishment of the connection to the terminal apparatus250A, the process performs control such that a connect request to the terminal apparatus250B is not performed. For example, the event that the communication from the terminal apparatus250B is detected corresponds to when the communication from the terminal apparatus250B is detected immediately subsequent to the detection of the communication (e.g., beacon) from the terminal apparatus250A or when the code images530are consecutively read from different terminals.

The operations in steps S1102through S1112are respectively identical to the operations in steps S1002through S1012in the flowchart inFIG. 10.

In step S1114, the process searches for the terminal apparatus250with the local name set via the BLE scan. The operation in step S1114is identical to the operation in step S1006.

In step S1116, the process determines whether the terminal apparatus250has been detected in step S1114. If the terminal apparatus250has been detected, the process proceeds to step S1118. If time is out with no terminal apparatus250detected, the process proceeds to step S1122. The operation in step S1116is identical to the operation in step S1008.

In step S1118, the BLE connection is not made to the terminal apparatus250detected in step S1116.

In step S1120, the process determines whether a predetermined period of time has elapsed since the successful connection (yes path is followed in step S1112). If the predetermined period of time has elapsed, the process proceeds to step S1122; otherwise, the process returns to step S1114.

In step S1122, the process performs the service (e.g., authentication) using BLE. The operation in step S1122is identical to the operation in step S1014.

FIG. 12is a flowchart illustrating the example of a process of the exemplary embodiment. If within a predetermined period of time from the establishment of the connection to the terminal apparatus250A, the terminal apparatus250B is caused to read the local name with the code image530displayed, the process performs control such that a connect request to connect to the terminal apparatus250B is not made.

The operations in steps S1202through S1212are respectively identical to the operations in steps S1002through S1012in the flowchart inFIG. 10.

In step S1214, the process generates the code image530with the local name embedded therewithin and displays the code image530on the panel525. The operation in step S1214is identical to the operation in step S1004.

In step S1216, the process searches for the terminal apparatus250with the local name set via the BLE scan. The operation in step S1216is identical to the operation in step S1006.

In step S1218, the process determines whether the terminal apparatus250has been detected in step S1216. If the terminal apparatus250has been detected, the process proceeds to step S1220. If time is out with no terminal apparatus250detected, the process proceeds to step S1224. The operation in step S1218is identical to the operation in step S1208.

In step S1220, the process does not perform the BLE connection to the terminal apparatus250.

In step S1222, the process determines whether a predetermined period of time has elapsed. If the predetermined period of time has elapsed, the process proceeds to step S1224; otherwise, the process returns to step S1214.

In step S1224, the process performs the service (e.g., authentication) using BLE. The operation in step S1224is identical to the operation in step S1014.

FIG. 13is a flowchart illustrating the example of a process of the exemplary embodiment. The process performs when communication with the terminal apparatus250A having established communication in the flowchart inFIG. 11orFIG. 12becomes difficult. The process performs control such that a request for the BLE connection is made on the terminal apparatus250B having requested a connection. The terminal apparatus250B having requested the connection is the terminal apparatus250to which the BLE connection has not been made in the flowchart inFIG. 11 or 12(step S1118or S1220).

The flowchart inFIG. 13illustrates the process performed after the BLE connection is established with the terminal apparatus250A.

In step S1302, the process determines whether the communication with the terminal apparatus250A is possible. If the communication with the terminal apparatus250A is possible, the process proceeds to step S1314; otherwise, the process proceeds to step S1304.

In step S1304, the process determines whether the terminal apparatus250A utilizes a scan function of the image processing apparatus300. If the terminal apparatus250A utilizes the scan function, the process proceeds to step S1316; otherwise (e.g., the print function of the image processing apparatus300is used), the process proceeds to step S1306.

In step S1306, the process determines whether the terminal apparatus250B with the local name set thereon has been detected since the connection to the terminal apparatus250A. If the terminal apparatus250B has been detected, the process proceeds to step S1308; otherwise, the process proceeds to step S1320.

In step S1308, the process performs the BLE connection to the terminal apparatus250B. The operation in step S1308is identical to the operation in step S1010.

In step S1310, the process determines whether the connection has been successful. If the connection has been successful, the process proceeds to step S1312; otherwise, the process proceeds to step S1320. The operation in step S1310is identical to the operation in step S1012.

In step S1312, the process performs the service (e.g., authentication) using BLE. The operation in step S1312is identical to the operation in step S1014.

In step S1314, the process continues to communicate with the terminal apparatus250A.

In step S1316, the process tries to connect to the terminal apparatus250A.

In step S1318, the process determines according to results of the operation in step S1316whether the terminal apparatus250A is connectable. If the terminal apparatus250A is connectable, the process proceeds to step S1314; otherwise, the process proceeds to step S1320.

In step S1320, the process returns to the flowchart (step S1002) inFIG. 10.

The operation in step S1118in the flowchart inFIG. 11or the operation in step S1220in the flowchart inFIG. 12may be replaced with a process in a flowchart inFIG. 14.

FIG. 14is a flowchart illustrating the example of the process of the exemplary embodiment. If a communication from the terminal apparatus250B is detected within a predetermined period of time after the establishment of the connection, the process place a request for the BLE connection to the terminal apparatus250B. Specifically, if the terminal apparatuses250A and250B utilize the print function of the image processing apparatus300, the process also places a request for the BLE connection to the terminal apparatus250B.

In step S1402, the process determines whether the terminal apparatus250A connected first and the terminal apparatus250B ready to be connected next are to utilize the print function of the image processing apparatus300. If the print function of the image processing apparatus300is to be utilized, the process proceeds to step S1404; otherwise, the process proceeds to step S1406.

In step S1404, the process performs the BLE connection to the terminal apparatus250B.

In step S1406, the process does not perform the BLE connection to the terminal apparatus250B.

The operation in step S1122in the flowchart inFIG. 11or the operation in step S1224in the flowchart inFIG. 12may be replaced with an operation to “perform the print operation of the terminal apparatuses250A and250B using BLE.”

The operation in step S1118in the flowchart inFIG. 11or the operation in step S1220in the flowchart inFIG. 12may be replaced with a process in a flowchart inFIG. 15.

FIG. 15is a flowchart illustrating the example of the process of the exemplary embodiment. A communication from the terminal apparatus250B may be detected within a predetermined period of time from the establishment of the connection to the terminal apparatus250A. In such a case, if the terminal apparatus250B is closer to the image processing apparatus300than the terminal apparatus250A, the process performs control such that a request for the BLE connection is made on the terminal apparatus250B.

In step S1502, the process determines whether the terminal apparatus250B ready to be connected next is closer in distance to the image processing apparatus300than the terminal apparatus250A connected first. If the terminal apparatus250B is closer to the image processing apparatus300, the process proceeds to step S1504; otherwise, the process proceeds to step S1508. A determination as to whether the terminal apparatus250B is closer may be performed by using the strength of a radiowave received from the terminal apparatus250as previously described. If the radiowave from the terminal apparatus250B is stronger than the radiowave from the terminal apparatus250A, the process proceeds to step S1504. If the radiowave from the terminal apparatus250A is stronger than the radiowave from the terminal apparatus250B, the process proceeds to step S1508.

In step S1504, the process performs the BLE connection to the terminal apparatus250B.

In step S1506, the process disconnect the BLE connection from the terminal apparatus250A.

In step S1508, the process does not perform the BLE connection to the terminal apparatus250B.

If three or more terminal apparatuses250are connected or connectable, the operation in step S1502may be replaced with an operation to “determine whether a terminal apparatus250closest in distance to the image processing apparatus300is other than the terminal apparatus250A already connected.” The operation in step S1504may be replaced with an operation to “make the BLE connection to the closest terminal apparatus250.”

The program described above may be supplied in the recorded form on a recording medium or via a communication medium. In such a case, the program may be construed as a non-transitory computer readable recording medium having stored the program.

The non-transitory computer readable recording medium refers to a computer readable recording medium having recorded the program that may be utilized to install, execute, and/or distribute the program.

The recording media include digital versatile disk (DVD), compact disk (CD), Blu-ray disc (registered trademark), magnetooptical disk (MO), flexible disk (FD), magnetic tape, hard disk, read-only memory (ROM), electronically erasable and programmable read-only memory (EEPROM (registered trademark)), flash memory, random-access memory (RAM), and secure digital (SD) memory card. The DVDs include “DVD-R, DVD-RW, and DVD-RAM” complying with the standard formulated by the DVD forum, and “DVD+R and DVD+RW” complying with DVD+RW standards. The CDs include read-only CD (CD-ROM), recordable CD-R, and rewritable CD-RW.

The program in whole or in part may be stored on the recording medium for storage and distribution. The program in whole or in part may be transmitted via a transmission medium. The transmission media include a wired network, a wireless network, or a combination thereof. The wired and wireless networks may include a local-area network (LAN), metropolitan-area network (MAN), wide-area network (WAN), the Internet, intranet, and/or extranet. The program in whole or in part may be transmitted over a carrier wave.

The program may be part or whole of another program, or may be stored on the recording medium together with another program. The program may be split and the split programs may then be separately stored on the recording media. The program may be processed in any fashion before being stored as long as the program remains restorable. For example, the program may be compressed or encrypted before storage.