Patent Description:
A cloud print service, which enables a user to give a print instruction from an information communication terminal such as a PC or a smartphone to a printer via a cloud server, has been provided as a means for printing. The cloud print service has a function of pre-registering and managing printers that support the cloud print service. After logging in to the cloud print service from the information communication terminal, the user is able to confirm a list of already-registered printers on a UI, make a selection from the list, and give an instruction for printing. However, it is burdensome to select the printer which the user wants to use from among the already-registered printers in the list every time, and this burden on the user becomes heavier as the number of the registered printers increases. For a solution, in <CIT>, the printer that is in regular use (hereinafter referred to as "default printer") is managed individually on a user-by-user basis on the cloud server. <CIT> discloses a method of setting the default printer by transmitting a default printer setting request together with the physical ID of the printer that is in front of the user from the information communication terminal to the cloud print service.

However, in <CIT>, the number of default printers that can be registered into the cloud server from the default printer setting application installed in the information communication terminal is just one for each user. Printers having been registered in the cloud print service are located at various places. Accordingly, the user has to perform default printer setting again using the default printer setting application each time the user moves from one location to another. Another problem is that it could happen that a print output is made from a wrong printer when the user moves from one location to another; this is because the default printer is not updated unless the user performs the default printer setting. <CIT> discloses a configuration of displaying printer information registered in a cloud print service on the basis of location information input by a user and/or being registered in a registry of an information processing apparatus. <CIT> discloses a cloud print service including to determine a personalized printer list for further selection.

The present disclosure in its first aspect provides a control method as recited in claims <NUM> to <NUM>, and the present disclosure in its second aspect provides a system as recited in claims <NUM> to <NUM>.

With reference to the accompanying drawings, some exemplary embodiments of the present disclosure will now be explained.

<FIG> is a simplified network configuration diagram schematically illustrating an environment of a network <NUM> according to an exemplary embodiment of the present disclosure. The network <NUM> is a network for connection of client terminals <NUM> and <NUM>, printers <NUM> and <NUM>, and various servers.

The client terminal <NUM> and the printer <NUM> are connected to an identical intra network <NUM>, and to the network <NUM> via the intra network <NUM>. The client terminal <NUM> and the printer <NUM> are connected to another intra network <NUM>, and to the network <NUM> via the intra network <NUM>. A collaboration tool <NUM>, a cloud storage service <NUM>, a cloud print service <NUM>, and a print plug-in <NUM> are connected to the network <NUM>.

The collaboration tool <NUM> is a server system configured to provide services which applications running on the client terminal <NUM>, <NUM> execute and/or an online meeting service programmed to operate on a Web browser of the client terminal <NUM>, <NUM>. The collaboration tool <NUM> performs user-ID-and-password-based account management. The collaboration tool <NUM> causes the client terminal <NUM>, <NUM> to display a login screen when accessed therefrom, and waits for an input of a user ID and password. Based on the inputted user ID and password, the collaboration tool <NUM> performs user authentication. A login to the service enables the authenticated user to use it. The collaboration tool <NUM> provides a video-call or chat-based meeting function online to the client terminal used by the login user. In addition, a user who does not have the user's own registered account is also able to use the collaboration tool <NUM> on a temporary basis when invited as a guest by the login user.

The cloud storage service <NUM> is a server system comprised of one or more server apparatuses. The cloud storage service <NUM> is a cloud-constructed (i.e., server-system-based) Internet storage service. The cloud storage service <NUM> is accessible from the client terminal <NUM>, <NUM> using a cloud-storage ID and password. The user is able to upload file data to the cloud storage service <NUM> and download file data from the cloud storage service <NUM>. The uploaded file data can be shared with other users. Depending on settings, restrictions on browsing, editing, and downloading can be imposed on a user-by-user or group-by-group basis.

The cloud print service <NUM> is a cloud-based (i.e., server-system-based) print service available via an Internet network constructed on a cloud system that is a server system comprised of one or more server apparatuses. The cloud print service <NUM> is connectable to the client terminal <NUM> and the printer <NUM>, and to the client terminal <NUM> and the printer <NUM>, via the Internet. The cloud print service <NUM> performs account management using a cloud-printing ID and password. The user is able to access the cloud print service <NUM> by using this account. The cloud print service <NUM> receives print data from the client terminal <NUM>, <NUM>, and performs management for each individual user. In addition, the cloud print service <NUM> transmits the print data received from the client terminal <NUM>, <NUM> to the printer <NUM>, <NUM>.

The print plug-in <NUM> is capable of working together with the cloud storage service <NUM> and the cloud print service <NUM> online and furnishes the collaboration tool <NUM> with a print function. The print plug-in <NUM> is a server system comprised of one or more server apparatuses. A vendor who provides the print plug-in <NUM> creates a print plug-in that can be used as an add-on function of the collaboration tool <NUM> and registers the print plug-in into the collaboration tool <NUM>. A user installs the print plug-in on the collaboration tool <NUM>, and this enables the user to instruct for print execution using the print plug-in <NUM>. After the user adds the print plug-in onto the collaboration tool <NUM>, the collaboration tool <NUM> displays an icon of the print plug-in. When the user selects the print icon, the print plug-in is activated, and a print UI is displayed. A result of operation of the print UI is transmitted to the print plug-in <NUM>. Based on the received information, the print plug-in <NUM> performs processing. Then, upon receiving a print command from the print UI, based on information acquired from the collaboration tool <NUM> such as message information and file information, the print plug-in <NUM> performs print processing via the cloud print service <NUM>. Using the print plug-in <NUM> enables print execution without any need for downloading a file shared on the collaboration tool <NUM> to a local storage of the client terminal <NUM>. Moreover, using the print plug-in <NUM> enables print execution even when a printer driver is not installed in the client terminal <NUM>, <NUM>.

Accesses to the collaboration tool <NUM>, the cloud storage service <NUM>, and the cloud print service <NUM> can be made by using a collaboration tool account, thanks to single sign-on technology.

Next, with reference to <FIG>, a hardware configuration of a system according to the present embodiment will now be explained.

<FIG> is a block diagram illustrating an example of a hardware configuration of the client terminal <NUM>. The client terminal <NUM> includes a control unit <NUM>, a network communication unit <NUM>, a storage unit <NUM>, a display unit <NUM>, and an input unit <NUM>. The control unit <NUM> includes a CPU <NUM> and a memory <NUM> and controls the overall operation of the client terminal <NUM>. The CPU <NUM> loads a program stored in the storage unit <NUM> into the memory <NUM> and runs the loaded program. The memory <NUM> is a main memory of the CPU <NUM> and is used as a work area and a temporary storage area for the loading of various kinds of program. The network communication unit <NUM> is a device configured to communicate with an external server or an external information processing terminal via the external network <NUM> for inputting and outputting digital data. The storage unit <NUM> is a nonvolatile storage device such as a hard disk drive or an SSD. Digital data can be stored and overwritten into the storage unit <NUM>. The display unit <NUM> is a device configured to display visual information for real-time presentation to the user, for example, a liquid crystal display. The input unit <NUM> is a device configured to receive an input from the user, for example, a keyboard, a mouse, a camera, or a microphone. A device that has both an input function and a display function, for example, a touch panel, may be adopted. In the present embodiment, it is assumed that an application for using the collaboration tool <NUM> is installed in the client terminal <NUM> and that the user uses the functions of the collaboration tool <NUM> through the intermediary of the application.

<FIG> is a block diagram illustrating an example of a hardware configuration of the printer <NUM>. The printer <NUM> includes a control unit <NUM>, a network communication unit <NUM>, a storage unit <NUM>, a display unit <NUM>, an input unit <NUM>, and a printing unit <NUM>. An explanation of the control unit <NUM> and the storage unit <NUM> is omitted because they are similar to the counterparts illustrated in <FIG>. The network communication unit <NUM> is a device for communication via the external network <NUM>. The network communication unit <NUM> mainly plays a role of receiving print data and transmitting information on the status of the printer <NUM> such as an error to an external server or the like. If the printer <NUM> supports cloud printing, the network communication unit <NUM> communicates with the cloud print service <NUM> to transmit registration information and receive a job. The display unit <NUM> is a device configured to display and present information on a real-time basis to the user, for example, a touch panel or an LED which the printer <NUM> is equipped with. The input unit <NUM> is a device configured to receive an input from the user. One example of the input unit <NUM> is a touch panel. The input unit <NUM> may have a hardware key configuration such as a numeric keypad. The printing unit <NUM> is device configured to form an image on a sheet fed from a cassette or a tray by performing a series of operations including sheet feeding, printing, and sheet ejection. The method of printing is not specifically limited. For example, the printing unit <NUM> may perform electrophotographic printing and ink-jet printing. A duplex unit and a finisher, which are used in the process of sheet ejection, are also encompassed within the concept of the printing unit <NUM>. The printer <NUM> may be a multifunction printer (multifunction peripheral) that includes a scanner and has, in addition to a print function, a scan function of scanning a document and a FAX function.

<FIG> is a block diagram illustrating an example of a hardware configuration of a server apparatus configured as the collaboration tool <NUM>. The collaboration tool <NUM> includes a control unit <NUM>, a network communication unit <NUM>, and a storage unit <NUM>. A detailed explanation of them is omitted because they are similar to the counterparts illustrated in <FIG>. The network communication unit <NUM> is used for communicating with the client terminal <NUM> so as to receive various kinds of operation from the user and for communicating with the print plug-in <NUM> and the cloud storage service <NUM>.

<FIG> is a block diagram illustrating an example of a hardware configuration of the cloud storage service <NUM>. The cloud storage service <NUM> includes a control unit <NUM>, a network communication unit <NUM>, and a storage unit <NUM>. A detailed explanation of them is omitted because they are similar to the counterparts illustrated in <FIG>. Files uploaded from the client terminal <NUM> are stored in the storage unit <NUM>. The control unit <NUM> performs processing for file display, file transmission, and file uploading in response to accesses made from the client terminal <NUM> and from the collaboration tool <NUM>.

<FIG> is a block diagram illustrating an example of a hardware configuration of the cloud print service <NUM>. The cloud print service <NUM> includes a control unit <NUM>, a network communication unit <NUM>, and a storage unit <NUM>. A detailed explanation of them is omitted because they are similar to the counterparts illustrated in <FIG>. Print data received from the client terminal <NUM> and from the print plug-in <NUM>, and information on the printer <NUM> used for printing, are stored in the storage unit <NUM>. The network communication unit <NUM> is used for communicating with the client terminal <NUM>, the print plug-in <NUM>, and the printer <NUM>.

<FIG> is a block diagram illustrating an example of a hardware configuration of the print plug-in <NUM>. The print plug-in <NUM> includes a control unit <NUM>, a network communication unit <NUM>, and a storage unit <NUM>. A detailed explanation of them is omitted because they are similar to the counterparts illustrated in <FIG>. The network communication unit <NUM> is used for communicating with the collaboration tool <NUM> and the cloud print service <NUM>.

The collaboration tool <NUM>, the cloud storage service <NUM>, the cloud print service <NUM>, the print plug-in <NUM> may be configured in the form of a single information processing apparatus described above. Alternatively, plural information processing apparatuses described above may cooperate with one another to fulfill the functions thereof.

Next, each processing according to the present embodiment will now be explained in detail.

First, with reference to a sequence chart of <FIG>, processing for registering information on the printer <NUM> into the cloud print service <NUM> will now be explained.

In order to use the cloud print service <NUM>, it is necessary to register, into the cloud print service <NUM>, information on a printer which the user wants to use for printing. A series of steps for this registration is illustrated in <FIG>.

In the present embodiment, it is assumed that an access is made from the client terminal <NUM> to the printer <NUM> and that the printer <NUM> is registered into the cloud print service <NUM> via a setting screen provided by a web server function of the printer <NUM>.

The user inputs an IP address of the printer <NUM> on a browser of the client terminal <NUM> and instructs the client terminal <NUM> to execute a search (S3000). Though a method of accessing the printer <NUM> by using its IP address is described here, any other method may be used for accessing the printer <NUM>.

The client terminal <NUM> accesses the inputted IP address (S3001). The client terminal <NUM> transmits a request for acquiring a remote UI screen to the inputted IP address.

In response to the request made from the client terminal <NUM>, the printer <NUM> transmits a remote UI screen and causes the browser of the client terminal <NUM> to display the remote UI screen (S3002). The remote UI screen displayed on the client terminal <NUM> is a screen for inputting a user ID and password.

The user inputs the user ID and password on the screen displayed on the client terminal <NUM> and gives a login instruction. The client terminal <NUM> notifies the printer <NUM> of the inputted user ID and password. The printer <NUM> performs user authentication. If the user authentication is successful, the printer <NUM> transmits the next screen to the client terminal <NUM>.

After the login, the user operates the remote UI screen to instruct that a network setting form be displayed, and then inputs basic settings and registration information of the cloud print service <NUM> (S3003). The basic settings of the cloud print service <NUM> include a setting regarding a printer name of the printer <NUM>. When registering the printer <NUM> into the cloud print service <NUM>, the user sets the name of the printer to be used, and then presses a "Register" button. When this button is pressed, the client terminal <NUM> transmits registration content and registration instruction to the printer <NUM> (S3004).

Upon receiving the registration content and registration instruction, the printer <NUM> transmits a registration request for registering the printer <NUM> to the cloud print service <NUM> (S3005).

Upon receiving the registration request from the printer <NUM>, the cloud print service <NUM> issues a registration code and URL, and returns the registration code and URL to the printer <NUM> (S3006).

Upon receiving the registration code and URL, the printer <NUM> causes the client terminal <NUM> to display the received registration code and URL (S3007). When the user accesses the URL displayed on the browser, a registration form and an authentication form are displayed sequentially. The registration form is a screen for inputting the registration code displayed on the client terminal <NUM>. The authentication form is a screen for user authentication. The user inputs the user ID and password (S3008).

The client terminal <NUM> transmits the content of the input made by the user to the printer <NUM> (S3009). The printer <NUM> transmits the content of the input to the cloud print service <NUM> (S3010). Based on the content of the input received from the printer <NUM>, the cloud print service <NUM> executes a printer registration job, and, upon completion of registration, notifies the printer <NUM> to the effect that the registration has completed (S3011). In addition, upon completion of registration of the printer <NUM> into the cloud print service <NUM>, the printer <NUM> causes the browser of the client terminal <NUM> to perform display to the effect that the registration has completed (S3012). Registering printer information into the cloud print service in this way enables the user to command print execution using the printer <NUM> via the cloud print service.

Next, with reference to a sequence chart of <FIG>, and UI examples of the collaboration tool <NUM> in <FIG>, <FIG>, a method of installing an application for the collaboration tool <NUM> and setting a default printer will now be explained. <FIG> is a sequence chart illustrating the installing of the print plug-in into the collaboration tool and processing for registration of a default printer. <FIG>, <FIG> are diagrams illustrating an example of screen transition occurring when the print plug-in is installed into the collaboration tool.

The user selects a collaboration tool application that has already been installed in the client terminal <NUM>, and inputs a collaboration tool activation request (S4000). It is assumed here that an access to the collaboration tool <NUM> is made using the collaboration tool application installed in the client terminal <NUM> operated by the user. Alternatively, an access to the collaboration tool <NUM> may be made via a web browser installed in the client terminal <NUM>, and a screen provided by the collaboration tool may be displayed.

Upon receiving the activation request made by the user, the client terminal <NUM> activates the collaboration tool <NUM> (S4001). After the collaboration tool activation, the user selects an application button <NUM> displayed on the collaboration tool <NUM> as illustrated in <FIG> (S4002). In S4002, the user operates the client terminal <NUM> to select the application button <NUM>, and the client terminal <NUM> notifies the collaboration tool of the selection of this button.

The collaboration tool <NUM> acquires a list of applications that can be installed from the server and causes the client terminal to display an application list screen illustrated in <FIG> (S4003).

On the application list screen illustrated in <FIG>, applications are grouped. The user operates the client terminal <NUM> to select an application which the user demands, from among those in the list (S4004). Information on the application selected by the user is notified to the collaboration tool.

In response to the selection of the application by the user, pop-up display of a UI illustrated in <FIG> appears. The UI illustrated in <FIG> includes, in addition to an "Add" button <NUM>, a drop-down button <NUM> to open an expansion box including an "Add to Chat" button and an "Add to Team" button. The user is able to install an application individually by pressing the "Add" button <NUM> (S4005). In this process, the user is able to designate an installing destination by selecting the "Add to Chat" button or the "Add to Team" button in the expansion box of the drop-down button <NUM> and then by inputting a team name or a channel name for designation of the installing destination on a UI that will appear next. Upon receiving the installing instruction from the user, the collaboration tool <NUM> executes the installing of the application (S4006).

In the present embodiment, a collaboration tool user ID and an application identifier of an application that the user is able to use are stored in association with each other into the storage unit of the collaboration tool <NUM>. If the user selects "Add to Chat" or "Add to Team" in <FIG>, the collaboration tool <NUM> performs the following processing. If "Add to Chat" is selected, the identifier of the chat designated by the user and the identifier of the application are stored in association with each other into the storage unit of the collaboration tool <NUM>. If "Add to Team" is selected, the identifier of the team designated by the user and the identifier of the application are registered in association with each other into the storage unit of the collaboration tool <NUM>.

Next, setting a default printer by the print plug-in <NUM> will now be explained. In the present embodiment, processing for registering a default printer by using a QR code (registered trademark) (two-dimensional code) containing written information about the printer <NUM> will be described.

For example, a QR code is printed as follows. The user activates the collaboration tool application installed in the client terminal <NUM> to display a chat room for users and the print plug-in. The user inputs, into a chat box, a predetermined message to the effect that the QR code will be printed, and then posts the message. The collaboration tool <NUM> receives the message from the client terminal <NUM>, and performs message notification to the print plug-in <NUM>. The print plug-in <NUM> analyzes the received message and determines whether a predetermined message to the effect that the QR code will be printed is contained therein or not. If the predetermined message is contained therein, the print plug-in <NUM> accesses the cloud print service <NUM> and acquires a list of printers which the user who is logged in to the collaboration tool <NUM> is able to use. The print plug-in <NUM> notifies the collaboration tool <NUM> of the printer list acquired from the cloud print service <NUM>, and causes the client terminal <NUM> to display the printer list. From among those in the printer list displayed on the client terminal <NUM>, the user selects the printer name of the printer <NUM> which the user wants to use for printing the QR code. The selected printer name is notified to the collaboration tool <NUM>. The collaboration tool <NUM> notifies the print plug-in <NUM> of the printer name notified from the client terminal <NUM>. The print plug-in <NUM> generates a QR code that contains information including the printer name of the notified printer, the printer ID thereof, and the application identifier of the print plug-in. In addition to these kinds of information, the QR code generated by the print plug-in contains information for causing the collaboration tool <NUM> to display a message to be used at the time of registration of the default printer. The print plug-in <NUM> transmits the generated QR code to the printer <NUM> via the cloud print service <NUM>. The printer <NUM> prints the QR code received from the cloud print service <NUM>. The user affixes the printed QR code to the printer.

In the above embodiment, it has been described that the user gives a print instruction for printing the QR code via a chat screen displayed by the collaboration tool application. An application for the print plug-in may be installed into the printer <NUM>, and the QR code may be printed using the installed application. In this case, the user operates the display unit <NUM> of the printer <NUM> to activate the application corresponding to the print plug-in and give a print instruction. The application generates a QR code that contains the information described above and, the generated QR code is printed. Instead of using the display unit <NUM> of the printer <NUM>, the print instruction for printing the QR code may be given by using a remote UI function that is available by accessing the printer <NUM> from the client terminal <NUM>. In the example described above, the printing of a QR code is started by posting a predetermined message by the user. The print plug-in may command that a QR code print button be displayed on a screen of the collaboration tool, and the user may select the QR code print button so as to start processing necessary for printing the QR code.

In the description below, it is assumed that the printing of a QR code for default printer registration has been completed and that the QR code has been affixed to the printer <NUM>.

The user scans the QR code affixed to the body of the printer <NUM> by means of a camera function of the client terminal <NUM> (S4007). In the QR code, the printer name of the printer <NUM>, the printer ID thereof, the application identifier of the print plug-in, a character string for activating a QR collaboration tool, and a character string which the user wants to be displayed as a message on a chat screen after the activation of the collaboration tool are stored in the form of a URL.

In accordance with a command contained in the QR code, the client terminal <NUM> activates the collaboration tool application. The collaboration tool application identifies the print plug-in <NUM> by the application identifier contained in the QR code, and displays a screen of a chat room for users and the print plug-in <NUM>. In addition, based on the information contained in the QR code, the collaboration tool application displays a screen illustrated in <FIG> on the client terminal <NUM>. <FIG> illustrates a chat room for users and the print plug-in <NUM>. In an area <NUM>, a message saying "The printer A (ID of the printer A) will be set as the default printer; go ahead and post this message" is inputted automatically. In the message, the portion "printer A" represents the printer name contained in the QR code; a character string that differs from printer to printer is displayed here. In the message, the portion "ID of the printer A" represents the printer ID contained in the QR code; a character string that differs from printer to printer is displayed here. When the user presses a "Post" button <NUM>, the message inputted in the area <NUM> is transmitted to the collaboration tool <NUM> (S4008). In S4008, based on the user instruction, the client terminal <NUM> transmits the posted message to the collaboration tool <NUM>.

Upon receiving the registration request, the collaboration tool <NUM> transmits the posted message to the print plug-in <NUM> (S4009). The transmitted message contains the printer name of the printer <NUM> which the user wants to be registered as the default printer, and the printer ID thereof.

Upon receiving the information, based on the printer name and the printer ID contained in the received message, the print plug-in <NUM> registers the printer <NUM> as the default printer into the storage unit of the print plug-in <NUM> (S4010). In the processing in S4010, the print plug-in <NUM> transmits, to the collaboration tool <NUM>, a request for acquiring an IP address that is network information of the client terminal <NUM> operated by the user. The print plug-in <NUM> acquires the IP address of the client terminal <NUM> from the collaboration tool <NUM> and generates a table illustrated in <FIG>. Each IP address illustrated in <FIG> is a global IP address, which is information for roughly indicating a location by the client terminal <NUM>.

A detailed explanation of default printer registration processing will be given later with reference to <FIG>. <FIG> is a diagram illustrating an example of a default printer management table managed by the print plug-in <NUM>. The default printer management table is a table for managing the default printer for a case where printing is performed using the print plug-in <NUM>. In the default printer management table, the IP address used when the client terminal <NUM> accesses the collaboration tool <NUM>, the printer name of the printer registered as the default printer, and the printer ID thereof, are managed in association with one another. In addition, in this table, the IP address of the client terminal <NUM>, the printer name of the printer which the user used last, and the printer ID thereof, are also managed in association with one another. The IP address registered in this table is an IP address which the print plug-in <NUM> is capable of acquiring by accessing the collaboration tool <NUM>, and is information indicating from which network the user is accessing the collaboration tool <NUM>. This IP address does not necessarily have to be real-time one; an IP address at the timing of the user having logged in to the collaboration tool <NUM> may be used. Though <FIG> provides an illustrative example in which the IP address is used as information about the location at the time of the user using the printer, location information such as GPS information may be registered in association with the printer name and the printer ID.

After registering the IP address of the client terminal <NUM> and the printer name in association with each other, the print plug-in <NUM> sends a message to the effect that registration has completed to the collaboration tool <NUM> (S4011). The collaboration tool <NUM> causes this registration completion message received from the print plug-in <NUM> to be displayed on a chat room of the collaboration tool application of the client terminal <NUM> (S4012).

In the above embodiment, it has been described that the user prints a QR code for default printer registration and affixes the printed code to the printer <NUM>. However, an application for the print plug-in <NUM> may be installed in the printer <NUM>, and the user may activate the application by operating the display unit <NUM> of the printer <NUM> and cause the display unit <NUM> to display the QR code.

In the above embodiment, it has been described that the IP address of the client terminal <NUM> performing the transmission in S4008 is registered in association with the printer name and the printer ID into the default printer table. However, the QR code may contain the IP address of the printer, and this IP address may be registered in association with the printer name and the printer ID into the default printer management table.

Next, with reference to <FIG>, <FIG>, <FIG>, and <FIG>, the transition of print UI display occurring when the print plug-in <NUM> is called up on the collaboration tool <NUM> will now be explained. <FIG>, <FIG>, and <FIG> are diagrams illustrating screen transition up to printing using the print plug-in <NUM>. <FIG> illustrates a sequence of processing up to printing. A case where the collaboration tool application installed in the client terminal <NUM> is used will be taken as an example here. Similar screen transition occurs in a case where an access to the collaboration tool <NUM> is made via the web browser installed in the client terminal <NUM>, instead of using the collaboration tool application.

The user activates the collaboration tool application installed in the client terminal <NUM>. The collaboration tool application displays an authentication screen and waits for an input of a user ID and password. The inputted user ID and password is transmitted to an authentication unit of the collaboration tool <NUM>. If the authentication is successful, a collaboration tool screen is displayed. The collaboration tool application displays a screen illustrated in <FIG> is a diagram illustrating a chat room screen of a channel C to which the user who is logged in to the collaboration tool <NUM> belongs. In an area <NUM>, a message posted by a user A and an attached file "AAA. pdf" are displayed. When the user selects the attached file "AAA. pdf", the collaboration tool application opens the attached file "AAA. pdf" and displays its content. To print the attached file "AAA. pdf", the user selects a three-dot leader <NUM>. When the user selects the three-dot leader <NUM>, a function selection UI <NUM> is displayed. Standard-function buttons and an "Other operation" button <NUM> are displayed in the function selection UI <NUM>. When the user selects the "Other operation" button <NUM>, an already-installed-application list UI <NUM> is displayed. A list of applications that have been installed using the method illustrated in <FIG> is displayed in the already-installed-application list UI <NUM>.

When the user selects a print plug-in icon <NUM>, the collaboration tool application notifies the collaboration tool <NUM> of the selection of this icon for plug-in application activation (S8000). The collaboration tool <NUM> activates the print plug-in <NUM> (S8001).

In S8002, the print plug-in <NUM> selects the default printer by comparing the network information acquired from the client terminal <NUM> with the default printer management table illustrated in <FIG>. For example, the print plug-in selects printer information registered in the default printer management table in association with an IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree with those of the IP address acquired from the client terminal <NUM>.

Next, the print plug-in <NUM> makes a request for a list of printers which the user is able to use to the cloud print service <NUM> (S8003). Upon receiving the request from the print plug-in <NUM>, the cloud print service <NUM> transmits a list of printers which the user who is logged in to the collaboration tool <NUM> is able to use to the print plug-in <NUM> (S8004).

The print plug-in <NUM> generates a print UI by using the information of the default printer selected in S8002, and gives a display instruction to the collaboration tool <NUM> (S8005). In S8005, the collaboration tool <NUM> displays a print UI illustrated in <FIG> on the client terminal <NUM>. In a printer area <NUM> illustrated in <FIG>, the printer name of the default printer selected in S8002 is displayed. In the present embodiment, the default printer is a printer to be default-selected on a screen which the print plug-in causes to be displayed first when the collaboration tool calls up the print plug-in. The printer name of the default printer varies depending on the IP address that is the network information of the client terminal <NUM>. Suppose that, for example, an IP address whose initial part of a numeric string from the head is <NUM> is acquired as the network information when the user activates the print plug-in <NUM> from the office. In this case, among the printer names registered in the default printer management table, Printer A, the IP address of which is <NUM>. <NUM>, is displayed as the printer name of the default printer. Suppose that an IP address whose initial part of a numeric string from the head is <NUM> is acquired as the network information when the user activates the print plug-in <NUM> from home. In this case, among the printer names registered in the default printer management table, Printer B is displayed as the printer name of the default printer. Besides the printer area <NUM>, the print UI illustrated in <FIG> has a file area <NUM>, which includes a list of names of print-target files acquired from the collaboration tool <NUM> and individual UIs for switching whether to perform printing or not for the respective file names. In addition, the print UI further has a "Detailed setting" button <NUM> for calling up a Web UI for making detailed print settings, a "Print" button <NUM> for starting cloud printing, and a "Cancel" button <NUM> for aborting the print setting. When the user selects the "Detailed setting" button <NUM>, a print setting screen that is not illustrated is displayed. When the user selects the "Cancel" button <NUM>, the display of the print setting UI ends, and the screen illustrated in <FIG> is displayed. When the user selects a printer selection ("Select") button <NUM> provided in the printer area <NUM>, a printer selection UI illustrated in <FIG> is displayed. The printer selection UI displays a list of printers registered in the cloud print service <NUM> and includes a printer list UI <NUM> for receiving a selection made by the user, an "OK" button <NUM> for communicating the result of the user selection to <FIG>, and a "Cancel" button <NUM>. Though it is assumed here that all of the printers registered in the cloud print service <NUM> are displayed in the printer list UI <NUM>, depending on the number of the printers registered therein, it is hard for the user to find the target printer. For a solution, for example, location information used as the network information of the user may be compared with location information of each of the printers registered in the cloud print service <NUM> to limit selectable printers, based on their distances. Then, if the user selects the "OK" button <NUM>, the result of the selection made in the printer list UI <NUM> is reflected to the printer name displayed in the printer area <NUM> illustrated in <FIG>. If the user selects the "Cancel" button <NUM>, display switches to <FIG> without updating the information.

When the user presses the "Print" button <NUM>, the print plug-in <NUM> transmits a print instruction that includes the print target file and detailed settings to a printer queue having already been registered in the cloud print service <NUM> (S8006).

The print plug-in <NUM> transmits print data to the virtual printer queue having been registered in the cloud print service <NUM> by using Web API (S8007). In this transmission, a JSON-format print job containing file format, file size, and detailed setting information, and stream-type data of the file acquired from the cloud storage service <NUM>, are transmitted to the virtual printer queue.

The cloud print service <NUM> has a function of converting a part of the file format with a printable file format. The print plug-in <NUM> determines in advance whether the file format is a print-supported file format or not. If it is determined that the file format is a print-supported file format, the print plug-in <NUM> transmits the print data. If it is determined that the file format is not a print-supported file format, the print plug-in <NUM> displays, on a call-up-source chat screen, a non-illustrated message indicating that the file format is not a print-supported file format.

The cloud print service <NUM> having received the print data successfully notifies the print plug-in <NUM> of the successful reception (S8008). Based on the notification from the cloud print service, the print plug-in <NUM> updates the information about the printer that was used last in the printer management table illustrated in <FIG>. The print plug-in updates the printer information of the printer that was used last and corresponds to the network information of the client terminal <NUM> and information on the date (and time) of the last use.

The cloud print service <NUM> transmits a print job to the printer and starts printing (S8009). At this time, in S8008, the print plug-in <NUM> displays a UI illustrated in <FIG> on the collaboration tool <NUM> to show the received result (S8010). The UI illustrated in <FIG> includes a message <NUM> as to whether the print processing has succeeded or failed, a "Continue" button <NUM> for continuing the print operation, and an "End" button <NUM> for ending the print operation. The UI illustrated in FIG. 7C is displayed again when the user selects the "Continue" button <NUM>. In this case, among the printer names registered in the default printer management table, Printer B is displayed as the printer name of the default printer illustrated in <FIG>.

The print plug-in <NUM> terminates when the user presses the "End" button <NUM> (S8011).

With reference to a flowchart of <FIG>, processing performed by the print plug-in <NUM> regarding default printer registration explained with reference to <FIG> will now be explained in detail. Each processing illustrated in the flowchart of <FIG> is performed by a CPU <NUM> of the print plug-in <NUM>.

The CPU <NUM> receives the printer information (the printer name and the printer ID) contained in the QR code scanned by the user from the collaboration tool <NUM> (S9000). In addition to the printer name and the printer ID that are contained in the QR code, the CPU <NUM> receives the user ID of the user who posted the message for default printer registration.

The print plug-in <NUM> analyzes the received information to take out the printer name and the printer ID separately (S9001).

The CPU <NUM> acquires, from the cloud print service <NUM>, a list of printers which the user corresponding to the user ID received in S9001 is able to use (S9002). The cloud print service <NUM> notifies the print plug-in <NUM> of the list of printers registered in association with the user ID of the user notified from the print plug-in <NUM>.

The CPU <NUM> determines whether the printer corresponding to the printer name and the printer ID notified from the collaboration tool <NUM> in S9001 is contained in the list of printers acquired in S9002 or not (S9003). If the printer name and the printer ID notified from the collaboration tool <NUM> are not contained in the list of printers acquired from the cloud print service <NUM>, the CPU <NUM> transmits an error message to the collaboration tool <NUM> (S9004). The collaboration tool <NUM> causes the display unit of the client terminal <NUM> to display the error message notified from the print plug-in <NUM>. The processing in S9004 is processing performed when, though the user has attempted to perform default printer registration after scanning the QR code, the user is not permitted to use this printer.

Next, processing performed in S9003 in a case where the printer name and the printer ID notified from the collaboration tool <NUM> are contained in the list of printers acquired from the cloud print service <NUM> will now be explained.

The CPU <NUM> acquires the network information of the client terminal <NUM> (S9005). The print plug-in <NUM> inquires of the collaboration tool <NUM> about the IP address of the client terminal <NUM> operated by the user. The print plug-in <NUM> receives the IP address of the client terminal <NUM> from the collaboration tool <NUM>.

Next, the CPU <NUM> calls up the default printer management table which it manages (S9006). The default printer management table is the table illustrated in <FIG>.

The CPU <NUM> determines whether the printer name and the printer ID that correspond to the acquired network information are registered in the default printer management table or not (S9007). The CPU <NUM> compares numerals at a predetermined number of digits counted from the head of the numeric string of the acquired IP address of the client terminal <NUM> with numerals at a predetermined number of digits counted from the head of the numeric string of each IP address stored in the default printer management table, and determines whether there is a match or not. The determination in S9007 is processing for determining whether the default printer to be used when accessed from the network corresponding to the acquired network information is registered or not. In the present embodiment, it has been explained that the CPU <NUM> determines whether the numerals at the predetermined number of digits counted from the head of the numeric string of the former IP address agree with those of the latter IP address or not. It may be determined whether the entire string of the former IP address agrees with the entire string of the latter IP address or not.

In a case where it is determined that default printer information is not registered in the printer management table, the CPU <NUM> registers the network information in association with the printer information (the printer name and the printer ID) that has been received from the collaboration tool into the printer management table (S9009). In a case where it is determined that default printer information has already been registered, the CPU <NUM> overwrites the default printer information registered for the network information with the printer information (the printer name and the printer ID) that has been received from the collaboration tool <NUM> (S9008). Upon completion of updating the printer management table, the print plug-in <NUM> sends a notification of completion of default printer registration to the individual chat of the collaboration tool <NUM> (S9010).

In the present embodiment, in a case where the default printer corresponding to the acquired network information has already been registered, overwriting with the printer information is performed. In a case where the default printer corresponding to the acquired network information has already been registered, the CPU <NUM> may post a query message as to whether to update the default printer or not to the collaboration tool <NUM>. The collaboration tool <NUM> causes the display unit of the client terminal <NUM> to display the notified message. When the user posts a message to the collaboration tool <NUM>, the posted message is notified to the print plug-in <NUM>. Based on the message received from the collaboration tool <NUM>, the print plug-in <NUM> determines whether updating the default printer is instructed or not. In a case where it is determined that updating the default printer is instructed, the print plug-in <NUM> performs overwriting of the printer information in the default printer management table. In a case where updating the default printer is not instructed, the print plug-in <NUM> terminates the processing illustrated in <FIG> without updating the default printer management table. Processing of Print plug-in When Print Setting UI is Displayed.

Next, with reference to a flowchart of <FIG> and <FIG>, processing when printing is performed actually as illustrated in <FIG> and <FIG> will now be explained.

In the print plug-in <NUM>, default printer information is stored in the default printer management table. When the user activates the print plug-in <NUM> from the collaboration tool <NUM>, the network information of the user is collated with the information in the printer management table to acquire the default printer information, and a print setting UI is displayed. With reference to <FIG> and <FIG>, this processing will now be explained in detail.

The processing illustrated in <FIG> and <FIG> is performed by running a program by the CPU <NUM> of the print plug-in <NUM>. The processing illustrated in <FIG> and <FIG> is initiated based on selecting the print plug-in icon <NUM> illustrated in <FIG> by the user.

The CPU <NUM> acquires the network information of the client terminal <NUM> from the collaboration tool <NUM> (S11000). The processing in S11000 is similar to the processing in S9005 illustrated in <FIG>. Specifically, in S11000, the print plug-in <NUM> makes a request for the IP address of the client terminal <NUM> to the collaboration tool <NUM>, and acquires it.

After the above step, the CPU <NUM> calls up the default printer management table stored in the storage unit <NUM> (S11001).

The CPU <NUM> acquires a list of printers which the user is able to use from the cloud print service <NUM> (S11002). In S11002, the CPU <NUM> transmits a request for acquiring a list of printers and the user information to the cloud print service <NUM>. In a case where a list of printers cannot be acquired from the cloud print service <NUM>, though not illustrated, the CPU <NUM> posts an error message to the collaboration tool <NUM> and causes the client terminal <NUM> to display the error message. In this case, after posting the error notification, the CPU <NUM> terminates the processing illustrated in <FIG> and <FIG>.

The CPU <NUM> determines whether the network information acquired in S11000 is registered in the default printer management table or not (S11003). In S11003, the CPU <NUM> determines whether there exists a registered IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree with those of the IP address acquired in S11000. Performing the determination in this way ensures that, even if the user gives a print instruction from a device that is different from the device that was used at the time of default printer registration, the same printer will be displayed as the default printer when the user demands printing within a certain area as in an office. In the present embodiment, it is determined whether numerals at a predetermined number of digits counted from the head of the numeric string of the IP address acquired from the client terminal agree with those of the IP address registered in the default printer management table or not. It may be determined whether the entire string of the former IP address agrees with the entire string of the latter IP address or not.

In S11003, if the acquired network information is not registered in the default printer management table, the CPU <NUM> performs processing in S11010. The CPU <NUM> generates a print setting screen in which printer information of the printer at the top of the printer list acquired in S11002 is taken as the default printer information (S11010).

If the network information is registered in the default printer management table, the CPU <NUM> performs processing in S11004. In S11004, the CPU <NUM> determines whether the printer information of the default printer corresponding to the network information acquired in S11000 has been written in the default printer management table or not. In S11004, the CPU <NUM> determines whether there exists default printer information registered in the default printer management table in association with an IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree with those of the IP address of the client terminal <NUM> or not. For example, suppose that the IP address of the client terminal <NUM> is "<NUM>. In this case, the printer whose IP address registered in the default printer management table is "<NUM>. <NUM>", whose printer name is "Printer A", and whose printer ID is "Id123", is selected as the default printer. Suppose that the IP address of the client terminal <NUM> is "<NUM>. In this case, the IP address "<NUM>. <NUM>", the printer name "Printer B", and the printer ID "Id128", are selected as the printer information of the default printer. It may be determined whether the IP address acquired from the client terminal agrees perfectly with the IP address managed in the default printer management table or not.

If the IP address of the client terminal <NUM> is "<NUM>. <NUM>", the CPU <NUM> determines that the printer information of the default printer corresponding thereto is not registered therein.

If the printer information of the default printer corresponding to the network information is registered, the CPU <NUM> generates a print setting UI based on the printer information of the default printer corresponding to the network information (S11005). In S11005, the CPU <NUM> generates a print setting UI whose printer area <NUM> illustrated in <FIG> displays the printer information of the default printer corresponding to the network information.

If it is determined in S11004 that the printer information of the default printer corresponding to the network information of the client terminal <NUM> is not registered, the CPU <NUM> performs processing in S11006. The CPU <NUM> determines whether the printer information of the printer that was used last and corresponds to the network information of the client terminal <NUM> is registered in the default printer management table or not (S11006). In S11006, the CPU <NUM> determines whether the printer information of the printer that was used last and corresponds to an IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree with those of the IP address of the client terminal <NUM> is registered therein or not. For example, if the IP address of the client terminal <NUM> is "<NUM>. <NUM>", the printer whose IP address is "<NUM>. <NUM>", whose printer name is "Printer C", and whose printer ID is "Id124", is the printer that was used last.

The CPU <NUM> generates a print setting UI whose default printer information is the printer information of the printer that was used last and corresponds to the network information (S11007). For example, if the IP address of the client terminal <NUM> is "<NUM>. <NUM>", a print setting UI displaying "Printer C" in the printer area <NUM> illustrated in <FIG> is generated.

If the network information is registered but neither the information of the default printer corresponding thereto nor the information of the printer of the latest use is registered, the CPU <NUM> performs processing in S11008. The CPU <NUM> generates a print setting UI in which, regardless of the network information of the client terminal <NUM>, the printer that was used last by the user who is logged in to the collaboration tool <NUM> is set as the default printer (S11008). In S11008, the information on the date of the last use in the table illustrated in <FIG> is used. The date of the last use is the date on which print data was transmitted last to the printer that was used last. In S11008, the CPU <NUM> refers to the information on the date of the last use in the default printer management table and generates a print setting UI in which the printer having the most recent date information is set as the default printer. For example, in the default printer management table illustrated in <FIG>, the printer whose printer name is "Printer C" and whose printer ID is "Id124" is selected as the default printer, and the screen illustrated in <FIG> is generated.

If the printer information of the printer that was used last is not registered in the default printer management table, the CPU <NUM> advances the process to S11010.

The CPU <NUM> transmits the print setting UI generated in S11005, S11007, S11009, or S11010 to the collaboration tool <NUM> (S11011). The collaboration tool <NUM> causes the client terminal <NUM> to display the print setting UI received from the print plug-in <NUM>.

By this means, it is possible to cause the client terminal to display a print setting UI containing, as its default value, printer information that differs depending on where the client terminal is located at the timing of displaying the print setting UI by the print plug-in.

In the first embodiment, a two-dimensional code (QR code) in which information such as the printer name, the printer ID, the identifier of the print plug-in <NUM>, etc. is written is printed, the QR code is affixed to the printer, and the user captures an image of the QR code with the client terminal <NUM>. The printer <NUM> may display, on its display unit <NUM>, a QR code in which information such as the printer name, the printer ID, the identifier of the print plug-in <NUM>, etc. is written. In this case, in S4007 of <FIG>, the user operates the printer <NUM> to cause the display unit <NUM> to display the QR code, and then scans the QR code by using the client terminal <NUM>. Operations after this step are the same as those of the first embodiment.

In the first embodiment, an example of scanning a QR code affixed to the body of a printer and then performing default printer registration has been described. In the second embodiment, an example of performing default printer registration by using the collaboration tool <NUM> will be described. The second embodiment makes it possible to set a default printer without any need for printing a QR code or the like.

First, with reference to <FIG>, the operation of the client terminal <NUM> according to the second embodiment will now be explained.

<FIG> illustrates a chat screen displayed by the collaboration tool application installed in the client terminal <NUM>. It is assumed that the installing of the print plug-in explained earlier with reference to <FIG> has already been done. <FIG> illustrates a chat room for users and the print plug-in. When the user posts a message, the posted message is transmitted to the collaboration tool <NUM>, and the collaboration tool <NUM> notifies the print plug-in <NUM> of the received message. In the second embodiment, in order to set a default printer, the user enters "Set the default printer" in a message input area <NUM>, and selects a "Post" button <NUM>. The print plug-in <NUM> receives the posted message, and displays a printer list screen illustrated in <FIG>. The printers displayed in the print list are printers registered in the cloud print service <NUM> as those which the user is able to use. The user operates a printer selection area <NUM> to select a printer which the user wants to register as the default printer. An "OK" button <NUM> is a button for a user instruction for registering the selected printer as the default printer. A "Cancel" button <NUM> is a button for terminating setting the default printer. When the "Cancel" button <NUM> is selected, the printer list disappears, and the chat screen illustrated in <FIG> appears.

Next, with reference to <FIG>, processing performed by the print plug-in <NUM> in the second embodiment will now be explained. Each processing illustrated in <FIG> is performed by running a program by the CPU <NUM>. The process illustrated in <FIG> corresponds to the process illustrated in <FIG>. The same reference signs as those used in <FIG> will be used for the same processing in <FIG>, and an explanation of the same processing will not be given below.

The CPU <NUM> determines whether a message for default printer registration is received from the collaboration tool <NUM> or not (S1300). Based on the content of the message received from the collaboration tool <NUM>, the CPU <NUM> determines whether the message is a message for default printer registration or not. For example, the CPU <NUM> determines that the received message is a message for default printer registration if it contains a predetermined keyword. If a message for default printer registration is not received, the CPU <NUM> repeats the processing in S1300.

The CPU <NUM> acquires a list of printers which the user is able to use from the cloud print service <NUM> (S9002). The processing in S9002 is the same as the processing in the corresponding step of the first embodiment.

The CPU <NUM> causes the collaboration tool <NUM> to display the acquired printer list (S1303). As a result of this processing, the screen illustrated in <FIG> appears on the display unit of the client terminal <NUM>.

The CPU <NUM> determines whether a printer name is received from the collaboration tool <NUM> or not (S1304). On the screen illustrated in <FIG>, the user selects the name of a printer which the user wants to set as the default printer, and then selects the "OK" button <NUM>. The printer name to be registered as the default printer is notified from the client terminal <NUM> to the print plug-in <NUM> via the collaboration tool <NUM>. If a printer name is not received from the collaboration tool <NUM>, the CPU <NUM> advances the process to S1305. The CPU <NUM> determines whether the "Cancel" button <NUM> is selected on the screen illustrated in <FIG> or not (S1305).

When the "Cancel" button <NUM> is selected on the screen illustrated in <FIG>, the CPU <NUM> terminates the display of the printer list illustrated in <FIG> (S1306). Accordingly, the screen displayed on the client terminal <NUM> switches to the chat screen illustrated in <FIG>.

If the "Cancel" button is not selected in S1305, the CPU <NUM> returns the process to S1304.

If a printer name is received from the collaboration tool <NUM> in S1304, the CPU <NUM> acquires the network information of the client terminal <NUM> (S9005). Since this processing is the same as that of S9005 of <FIG> according to the first embodiment, an explanation of this processing is omitted.

Then, the CPU <NUM> performs the processing in S9007 to S9009 of <FIG> according to the first embodiment.

Upon completion of writing the default printer information into the default printer management table, the CPU <NUM> terminates the display of the printer list illustrated in <FIG> (S1307). The processing illustrated in S1307 is performed when the CPU <NUM> commands the collaboration tool <NUM> to terminate the display of the printer list.

The CPU <NUM> notifies the chat room for the users and the print plug-in of the completion of default printer registration (S9010). This processing is the same as that of S9010 of <FIG> according to the first embodiment.

The same processing as the print processing explained earlier with reference to <FIG> and <FIG> in the first embodiment is performed in the second embodiment; therefore, an explanation of it is omitted.

Executing the above series of steps enables default printer registration even when it is impossible to print a QR code or when it is impossible to scan a QR code by using the client terminal <NUM>.

In the second embodiment, it has been described that default printer registration is initiated by posting a predetermined message by the user to a chat room for interaction with the print plug-in. An object for default printer registration may be provided on the chat room illustrated in <FIG>, and the process illustrated in <FIG> may be executed in response to selecting the object by the user.

In the second embodiment, it has been described that a list of printers which the user is able to use is displayed in response to posting a predetermined message by the user, and the printer selected from among those in the printer list is registered as the default printer.

A screen illustrated in <FIG> may be displayed when the user selects the printer selection button <NUM> after calling up the print plug-in by operating the icon <NUM> illustrated in <FIG>, and default printer registration may be performed on this screen. The difference between the screen illustrated in <FIG> and the screen illustrated in <FIG> will now be explained. As is the case with <FIG>, the screen illustrated in <FIG> is a screen for selecting a printer that is to be used for printing. The screen illustrated in <FIG> includes a default printer registration button <NUM>, which is not included in the screen illustrated in <FIG>. From among the printers displayed in the printer list UI <NUM>, the user selects a printer which the user wants to register as the default printer, and then selects the default printer registration button <NUM>. When the default printer registration button <NUM> is selected, the processing in S9005 and the subsequent steps of <FIG> is executed. When the default printer is registered by operating the default printer registration button <NUM>, after the registration processing, a print setting UI whose printer area <NUM> illustrated in <FIG> displays the printer name of the registered default printer is displayed. If the user selects the "OK" button <NUM> illustrated in <FIG>, default printer registration is not performed, and only the printer information of the printer that is to be used for printing is changed.

By this means, it is possible to register the default printer during screen transition for printing.

In the first embodiment described earlier, the print plug-in <NUM> performs default printer registration and acquisition by using the network information acquired from the collaboration tool <NUM>. However, depending on the specification of the collaboration tool <NUM>, it could happen that the network information acquired from the collaboration tool <NUM> by the print plug-in <NUM> is not the network information of the client terminal <NUM> but the server information of the collaboration tool <NUM>. For a solution, in the third embodiment, the print plug-in <NUM> acquires the network information of the client terminal <NUM> from another service, which is not the collaboration tool <NUM>.

In the first embodiment, it has been described that the collaboration tool <NUM> performs authentication processing for a login to the collaboration tool <NUM>. In the present embodiment, it is assumed that an access management service for managing authentication processing for logging in to the collaboration tool <NUM> and the cloud storage service <NUM> and managing user access logs is provided separately from the collaboration tool <NUM>. An example of the access management service is Azure Active Directory provided by Microsoft Corporation. In the third embodiment, default printer registration and acquisition is performed by using network information contained in the latest sign-in log of the user managed by means of access management information. This makes it possible to select a default printer identified by the network information of the client terminal even in a case where the network information of the client terminal cannot be acquired from the collaboration tool <NUM>.

The access management service configured to control accesses to the collaboration tool <NUM> and control access authority for accessing data stored in the cloud storage service <NUM> is connected to the network <NUM>.

The access management service manages and monitors accesses to the collaboration tool <NUM> and the cloud storage service <NUM>. The access management service records, as a sign-in log, information about account authentication that was performed so as to authorize the user to access resources. The resources mean content provided by the collaboration tool <NUM>, files stored in the cloud storage service <NUM>, and the like.

The sign-in log records the user ID, which is identification information of the user, sign-in time at which the user signed in, device information of the client terminal <NUM> operated by the user, the IP address and location information thereof, etc. The device information of the client terminal <NUM> includes the type of operating system of the client terminal <NUM>, the type of a web browser that was used at the time of sign-in, and the like. The location information is information corresponding to geoCoordinates, which will be described later. The location information indicates the latitude and longitude of the client terminal <NUM>.

The user is able to confirm the sign-in log by accessing the access management service via the web browser installed in the client terminal <NUM>. In addition, it can be acquired as JSON data by accessing the access management service from the client terminal <NUM> or the print plug-in <NUM> and by using WebAPI.

In the third embodiment, a case where the IP address is used as the network information will be described. However, any other information by means of which it is possible to pinpoint the location of the client terminal <NUM>, for example, GPS information, may be used instead. The network and hardware configuration, the installing of the collaboration tool application, the transition of the UI displayed by the print plug-in, the management of the default printer, etc. in the third embodiment are the same as those of the first embodiment. Therefore, an explanation of them is omitted.

First, regarding default printer registration, it is assumed that the default printer is registered via the UI illustrated in <FIG> as done in the second embodiment. The user operates the printer selection area <NUM> to select a printer which the user wants to register as the default printer. The method disclosed in the first embodiment may be used for registering the default printer.

When the "OK" button <NUM> is selected by the user, the collaboration tool <NUM> notifies the print plug-in <NUM> of information on the printer selected in the printer selection area <NUM>, the selection of the "OK" button <NUM>, and the identification information of the user who accesses the collaboration tool <NUM>.

Upon receiving the notification, the print plug-in <NUM> acquires the latest sign-in log of the user who is logged in to the collaboration tool <NUM> from the access management service by using WebAPI. It is assumed that the print plug-in <NUM> prestores a URL for accessing the access management service and WebAPI to be used for acquiring the information.

The print plug-in <NUM> extracts network information included in the sign-in log acquired from the access management service. In the third embodiment, it is assumed that the IP address is extracted as the network information.

The print plug-in <NUM> registers the printer information selected in the printer selection area <NUM> by the user and the IP address in association with each other into the default printer management table.

The timing of acquiring the IP address by the print plug-in <NUM> may be the timing of displaying the UI illustrated in <FIG> by the print plug-in <NUM>. In this case, the print plug-in <NUM> generates screen information illustrated in <FIG>, with an IP address acquisition request contained in it, and transmits it to the collaboration tool <NUM>. Upon acquiring the screen information, the collaboration tool <NUM> processes the received screen information, thereby generating the screen illustrated in <FIG> and performing processing for acquiring the IP address of the client terminal. The processing for acquiring the IP address is the same as the processing explained earlier, and the network information is extracted from the sign-in log acquired from the access management service accessed using WebAPI.

The acquired IP address is notified to the print plug-in <NUM> together with the printer information selected on the screen illustrated in <FIG> by the user. The print plug-in <NUM> registers the IP address notified from the collaboration tool <NUM> and the printer information in association with each other into the default printer management table.

The UI illustrated in <FIG> is JSON-format data comprised of objects such as the "OK" button <NUM> for performing particular actions. Some of the objects may contain URLs and character strings as their data in addition to title and action type as action information. Therefore, it is possible to display the UI of <FIG> that contains the IP address by adding the IP address acquired immediately before it as the data of the "OK" button <NUM> when the print plug-in <NUM> reads UI data that is in the JSON format. When the user presses the "OK" button <NUM>, the IP address is also transmitted to the print plug-in <NUM>, together with the selected printer information.

The default printer may be associated with the IP address by the following method. For example, when the print plug-in <NUM> is called up on the collaboration tool <NUM>, the collaboration tool <NUM> transmits an activation instruction and the user information of the user who has given the activation instruction to the print plug-in <NUM>. By using the user information notified from the collaboration tool <NUM>, the print plug-in <NUM> acquires the latest sign-in log of the user from the access management service. The IP address contained in the acquired log is stored in association with the user identification information notified from the collaboration tool <NUM>. When a default printer registration request is received from the collaboration tool <NUM>, the print plug-in <NUM> stores the notified default printer information in association with the user identification information and the IP address.

Next, with reference to a print sequence chart of <FIG>, a flow from acquisition of the default printer to printing by using the access management service will now be explained.

When the user selects the print plug-in icon <NUM>, the collaboration tool application notifies the collaboration tool <NUM> of the selection of this icon for print plug-in activation (S8000). The collaboration tool <NUM> activates the print plug-in <NUM> (S8001).

The print plug-in <NUM> makes a request for the latest sign-in log to the access management service by using WebAPI (S1400). Upon receiving the request from the print plug-in <NUM>, the access management service transmits the latest sign-in log that is in a JSON format illustrated in <FIG> to the print plug-in <NUM> (S1401). Upon receiving the sign-in log, the print plug-in <NUM> takes the value of the IP address out of "ipAddress" <NUM> of the sign-in log information that is in the JSON format (S1402). The IP address acquired in this step is a global IP address. Besides the IP address, the sign-in log information illustrated in <FIG> contains, for example, "geoCoordinates" <NUM> as network information by means of which it is possible to pinpoint the location of the client terminal <NUM>. Therefore, this information may be used as information for determining the default printer in the subsequent step. The information "geoCoordinates" <NUM> expresses the location of the client terminal in terms of latitude and longitude.

Then, the print plug-in <NUM> compares the acquired IP address with each IP address registered in the default printer management table illustrated in <FIG> to select a printer that is to be displayed as the default printer (S1403). In the IP address comparison, IP address conversion from a decimal format into a binary format is performed, and then a digit-by-digit comparison is performed sequentially, beginning with the highest-order digit, and the printer associated with the IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree therewith is determined as the default printer. If two or more candidate printers are found as a result of the comparison, a further comparison may be performed for lower-order digits until the default printer can be determined. The flow S8003 to S8011 after the determination of the default printer by the print plug-in <NUM> is the same as that of the first embodiment and is therefore not explained here.

In <FIG>, it has been described that the processing in S1400 to S1403 is performed by the print plug-in. Alternatively, the print plug-in may provide the collaboration tool with an HTML or a JavaScript including a program for execution of S1400 to S1403. In this case, the collaboration tool performs processing corresponding to S1400 to S1403 by running a program received from the print plug-in.

In <FIG>, the collaboration tool is illustrated as an independent service that is separated from the client terminal. However, the processing performed by the collaboration tool in <FIG> may be performed by the collaboration tool application installed in the client terminal.

Finally, with reference to <FIG> and <FIG>, default printer acquisition processing performed by the print plug-in <NUM> will now be explained in detail. The processing illustrated in <FIG> and <FIG> is performed by running a program by the CPU <NUM> of the print plug-in <NUM>. The processing illustrated in <FIG> and <FIG> is initiated based on selecting the print plug-in icon <NUM> illustrated in <FIG> by the user.

The CPU <NUM> acquires the latest sign-in log of the user from the access management service (S1500). The processing in S1500 is the same as the processing in S1400 and S1401 of <FIG>; that is, the print plug-in <NUM> makes a request for the latest sign-in log to the access management service and acquires it by performing WebAPI. The CPU <NUM> analyzes the acquired sign-in log and extracts the IP address as the network information of the client terminal <NUM> from it (S1501). Location information contained in the sign-in log may be acquired in addition to the IP address. After the above step, the CPU <NUM> calls up the default printer management table stored in the storage unit <NUM> as done in <FIG> and <FIG> (S11001). In addition, the CPU <NUM> acquires a list of printers which the user is able to use from the cloud print service <NUM> (S11002).

After acquiring the information, the CPU <NUM> determines whether the default printer associated with the IP address or the printer that was used last is registered in the default printer management table or not (S1502).

If it is determined in S1502 that the printer information is not registered, the CPU <NUM> performs processing in S11010. If the IP address is registered in the default printer management table, the CPU <NUM> performs processing in S1503.

In S1503, the CPU <NUM> determines whether default printer information corresponding to the IP address acquired in S1501 has been written in the default printer management table or not. In S1503, the CPU <NUM> determines whether there exists default printer information registered in the default printer management table in association with an IP address whose numerals at a predetermined number of digits counted from the head of its numeric string agree with those of the IP address of the client terminal <NUM> or not. In this step, as done in the processing in S1403 of <FIG>, IP address conversion into a binary format may be performed, and then a numeric comparison for a predetermined number of digits counted from the head of its numeric string may be performed.

If it is determined in S1503 that the default printer is not registered, it is determined in S1504 whether the information of the printer that was used last is registered. The CPU <NUM> may perform the same determination as that of the first embodiment. Alternatively, the CPU <NUM> may perform IP address conversion into a binary format, and then perform a numeric comparison for a predetermined number of digits counted from the head of its numeric string. The other processing S11005 and S11007 to S11011 is the same as that of the first embodiment and is therefore not explained here.

As described above, in the third embodiment, the IP address of the terminal which the user used at the time of logging in to the service provided by the collaboration tool is acquired from the access management service configured to perform integrated management of the log of the user accessing the collaboration tool and the cloud print service. By this means, even in a case where the print plug-in cannot acquire the IP address of the terminal operated by the user from the collaboration tool directly, it is possible to estimate the IP address and location information of the terminal operated by the user. Therefore, it is possible to present, to the user, a printer suitable for the location of the user as the default printer.

In the third embodiment, the login information of the user is acquired from the service configured to control accesses to the collaboration tool <NUM> and control access authority for accessing data stored in the cloud storage service <NUM>. Then, the disclosed system selects the default printer by using the IP address contained in the acquired login information.

Instead of providing a server configured to manage the login information of the user, a service capable of acquiring the IP address of the client terminal used by the user may be constructed on a server. The print plug-in <NUM> may acquire the IP address of the client terminal by using the service and may display the printer corresponding to the IP address as the default printer.

In the first and second embodiments, the client terminal <NUM> inquires of the collaboration tool <NUM> about the IP address of the client terminal <NUM> to acquire the network information of the client terminal <NUM>. In the third and fourth embodiments, the print plug-in <NUM> performs communication in cooperation with another service to acquire the network information of the client terminal <NUM>. Any other method may be used for acquiring the IP address that is the network information of the client terminal <NUM>.

For example, the print plug-in <NUM> may generate an HTML or a JavaScript containing a command for acquiring the IP address of the client terminal <NUM> and may cause the collaboration tool <NUM> to run this program.

With reference to the drawings of the first embodiment, operation performed when this alternative method is used will now be explained. For example, after the scanning of a QR code by using the client terminal <NUM> in S4007 of the default printer registration processing in <FIG>, the message illustrated in <FIG> is posted to the collaboration tool. The collaboration tool notifies the print plug-in of the posted message. The print plug-in determines whether the received message contains a predetermined message indicating default printer registration or not. If it is determined that the received message contains a predetermined message, the print plug-in generates an HTML that includes a command for acquiring the IP address of the client terminal <NUM> and includes the identifier of the print plug-in. The print plug-in transmits the generated HTML to the collaboration tool and cause the collaboration tool to execute it. By executing the HTML received from the print plug-in, the collaboration tool acquires the IP address of the client terminal <NUM> from the client terminal <NUM>. Then, the collaboration tool notifies the print plug-in of the acquired IP address. The acquisition of the IP address of the client terminal in S8001 of <FIG> can be performed using the same method as above. The print plug-in transmits, to the collaboration tool, a code of HTML or JavaScript that includes a command for acquiring the IP address of the client terminal based on the notification from the collaboration tool. The collaboration tool acquires the IP address of the client terminal by executing the code received from the print plug-in. The collaboration tool notifies the print plug-in of the acquired IP address. Based on the IP address acquired from the collaboration tool, the print plug-in performs the processing in S8002.

In the above description, the print plug-in transmits an HTML or a JavaScript containing a command for acquiring the IP address to the collaboration tool, and the collaboration tool runs this program. The print plug-in may transmit an HTML or a JavaScript containing a command for acquiring the IP address of the client terminal to the client terminal. In this case, the client terminal runs the received program by using the browser function provided in the collaboration tool application installed in the client terminal. The IP address of the client terminal acquired by running the program by the browser function provided in the collaboration tool application may be notified to the print plug-in.

In the foregoing embodiments, the IP address is used as the network information. However, the network information is not limited to the IP address. Any information may be used as long as the location of the client terminal accessing the collaboration tool can be known. For example, GPS information of the client terminal may be used as the network information.

The disclosed technique may be implemented by execution of the following process. Specifically, the process involves supplying software (program) for realizing the functions of the above-described embodiments to a system or an apparatus via a network or any of various kinds of storage medium, and causing a computer (or a CPU or an MPU) in the system or the apparatus to read and execute its program code. In this case, the computer program, and the storage medium containing the computer program, embodies the present disclosure.

Implementing the disclosed technique makes it possible to present, to the user, the default printer that is suitable for the user's location of printing at the time of cloud print execution.

Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a 'non-transitory computer-readable storage medium') to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s).

Claim 1:
A control method for controlling a second server apparatus (<NUM>) configured to communicate with a first server apparatus (<NUM>), providing a collaboration tool in which a user at an information processing apparatus (<NUM>, <NUM>) can log in, said second server configured to communicate with a cloud storage service (<NUM>) and with a cloud print service (<NUM>), the second server apparatus configured to store a program, the first server apparatus (<NUM>) being configured to communicate with the information processing apparatus (<NUM>, <NUM>), the program providing a function for printing a file having been uploaded to the cloud storage service (<NUM>) from the information processing apparatus (<NUM>, <NUM>), wherein the second server apparatus executes the steps of the control method, the method characterized by comprising:
acquiring (S11000) network information of the information processing apparatus (<NUM>, <NUM>) accessing the first server apparatus (<NUM>);
selecting (S8002, and S11002 to S11007), based on the acquired network information, a first piece of printer information defining a default printer to be default-selected for printing from a list of default printers registered in a default printer management table;
acquiring (S8003, S8004), from the cloud print service, a list of printers which the user who is logged in to the collaboration tool is able to use; and
performing control (S8005, S11003 to S11007, and S11001) for causing the information processing apparatus to display the selected first piece of printer information as the default printer in an area (<NUM>), and to display a button (<NUM>) for displaying the list of printers, wherein the list of printers is displayed based on selection of the button, and then a printer is selected from the displayed list of printers by the user.