Patent Publication Number: US-2020293632-A1

Title: Information processing system, server, non-transitory computer-readable medium, and method for controlling assignment of license

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This patent application is based on and claims priority pursuant to 35 U.S.C. § 119(a) to Japanese Patent Application Nos. 2019-046557, filed on Mar. 13, 2019 and 2020-034344, filed on Feb. 28, 2020, in the Japan Patent Office, the entire disclosures of which are hereby incorporated by reference herein. 
     BACKGROUND 
     Technical Field 
     The present disclosure relates to an information processing system, a server, a non-transitory computer-readable medium, and a method of controlling assignment of license. 
     Description of the Related Art 
     In the related art, services are provided to dedicated devices such as a multifunction peripheral (MFP), an interactive whiteboard (IWB), and a projector in various manners. For example, services are provided such that a user can use a desired function or functions only when the user needs such function(s). In order to use a service provided in the above-described manner, companies, institutions or the like have to purchase licenses of the desired service from a service sales company (distributor). The companies or the like allocate the purchased licenses to devices or users. Examples of the license for the service include a device license that specifies a device that can use the license and a user license that specifies a user who can use the license. 
     For example, a technique is known in which, when plural licenses exist for one application, two or more licenses are not allocated to one user. 
     On the other hand, services (applications, packages, functions, web services, etc.) are usually targeted to a particular type(s) of device. However, when managing licenses, if a service is simply associated with a target device, a license may be allocated to a device of a type that is not applicable to the service. The larger the number of types of devices, the more frequently this inappropriate allocation of license occurs. 
     SUMMARY 
     According to one or more embodiments, an information processing system includes at least one server and one or more devices communicable with the server through a network. The information processing system includes circuitry configured to: manage a service in association with a device type that can use the service; manage the devices in association with the device type, the devices each being a target device to which a license is to be allocated; and compare a device type associated with the target device to which the license is to be allocated with the device type associated with the service, to determine whether an allocation of the license of the service to the target device is permitted. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
       A more complete appreciation of the disclosure and many of the attendant advantages and features thereof can be readily obtained and understood from the following detailed description with reference to the accompanying drawings, wherein: 
         FIG. 1  is a diagram illustrating an example of a configuration of a system, according to a first embodiment of the present disclosure; 
         FIG. 2  is a block diagram illustrating an example of a hardware configuration of a server, according to embodiments of the present disclosure; 
         FIG. 3  is a block diagram illustrating an example of functions that the server includes, according to embodiments of the present disclosure; 
         FIG. 4-1  is a diagram illustrating a basic data model of data stored in the server, according to embodiments of the present disclosure; 
         FIG. 4-2  is a diagram illustrating a detailed data model of data stored in the server, according to embodiments of the present disclosure; 
         FIG. 4-3  is a diagram illustrating a detailed data model of data stored in the server, according to embodiments of the present disclosure; 
         FIG. 5  is a diagram illustrating an example of management information of a package managed by an application management unit, according to embodiments of the present disclosure; 
         FIG. 6  is a diagram illustrating an example of management information of a service definition managed by a license management unit, according to embodiments of the present disclosure; 
         FIG. 7  is a diagram illustrating an example of management information of a license definition managed by the license management unit, according to embodiments of the present disclosure; 
         FIG. 8  is a diagram illustrating an example of management information of a device definition managed by a device management unit, according to embodiments of the present disclosure; 
         FIG. 9  is a sequence diagram illustrating a registration process of various information to be performed when creating a package, according to embodiments of the present disclosure; 
         FIG. 10  is a diagram illustrating an example of a package creation screen, according to embodiments of the present disclosure; 
         FIG. 11  is a diagram illustrating an example of a package information input screen, according to embodiments of the present disclosure; 
         FIG. 12  is a diagram illustrating an example of a license definition information input screen, according to embodiments of the present disclosure; 
         FIG. 13  is a sequence diagram illustrating a license allocation process, according to embodiments of the present disclosure; 
         FIG. 14  is a diagram illustrating an example of a license purchase screen, according to embodiments of the present disclosure; 
         FIG. 15  is a diagram illustrating an example of a license allocation screen on which inputs are made, according to embodiments of the present disclosure; 
         FIG. 16  is a diagram illustrating an example of an instance for a data model, according to embodiments of the present disclosure; 
         FIG. 17  is a diagram illustrating an example of a notification indicating that a license allocation is not permitted, according to embodiments of the present disclosure; 
         FIG. 18  is a diagram illustrating another example of a license allocation screen on which inputs are made, according to embodiments of the present disclosure; 
         FIG. 19  is a sequence diagram illustrating a license allocation process, according to the second embodiment of the present disclosure; 
         FIG. 20  is a diagram illustrating an example of a license allocation screen, according to embodiments of the present disclosure; 
         FIG. 21  is a diagram illustrating another example of a license allocation screen, according to embodiments of the present disclosure; 
         FIG. 22  is a block diagram illustrating an example of functions that the server includes, according to the third embodiment of the present disclosure; and 
         FIG. 23  is a sequence diagram illustrating a part of a license allocation process, according to the third embodiment of the present disclosure. 
     
    
    
     The accompanying drawings are intended to depict embodiments of the present disclosure and should not be interpreted to limit the scope thereof. The accompanying drawings are not to be considered as drawn to scale unless explicitly noted. 
     DETAILED DESCRIPTION 
     The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. 
     In describing embodiments illustrated in the drawings, specific terminology is employed for the sake of clarity. However, the disclosure of this specification is not intended to be limited to the specific terminology so selected and it is to be understood that each specific element includes all technical equivalents that have a similar function, operate in a similar manner, and achieve a similar result. 
     Embodiments of an information processing system, a server, a carrier medium, and a method of controlling assignment of license are described in detail with reference to the drawings. 
     First Embodiment 
       FIG. 1  is a diagram illustrating an example of a configuration of a system  1 , according to a first embodiment. As illustrated in  FIG. 1 , the system (information processing system)  1  implements a cloud computing type service. 
     The system  1  includes a cloud system  2  and a plurality of types of devices  10 . A network  3  such as the Internet and a local network  4  such as a local area network (LAN) connect the plurality of types of devices  10  to the cloud system  2 . 
     Examples of the plurality of types of devices  10  connected to the cloud system  2  include a multifunction peripheral (MFP)  11 , an information processing apparatus  12  such as a laptop personal computer (PC) and a tablet, a projector (PJ)  13 , an interactive whiteboard (IWB; an electronic whiteboard having mutual communication capability)  14 . The MFP  11  is an example of an image forming apparatus. However, these devices are just examples. The plurality of types of devices  10  includes any device such as a copier, a scanner, a facsimile, a camera, and a remote conference terminal, provided that it can receive service provision. Note that the MFP  11  is a device having a plurality of functions such as a copier function, a scanner function, a printer function, and a facsimile function. 
     Examples of the information processing apparatus  12  include a laptop PC and a tablet terminal, as described above. The information processing apparatus  12  is installed with a browser  120  functioning as a display unit. Alternatively, the information processing apparatus  12  may be installed with dedicated software for managing “license setting information”, instead of the browser  120 . As described below in detail, a tenant administrator who manages the plurality of types of devices  10  in a tenant such as a company, an office, and a store edits “license setting information” of the plurality of types of devices  10  using the browser  120  (or dedicated software). For example, the tenant administrator assigns a license or removes the assigned license. The term “tenant” refers to a unit by which the tenant administrator manages the plurality of types of devices  10 . Two or more users may serve as the tenant administrator. 
     The cloud system  2  includes a server apparatus group configured by a plurality of servers  5 . The number of the servers  5  illustrated in  FIG. 1  is one example, and the number of servers  5  to be used is not limited to this example. In the example of  FIG. 1 , the MFP  11 , the information processing apparatus  12 , the projector  13  and the IWB  14  are illustrated as examples of the plurality of types of devices  10  included in the system  1 , which functions as a client when viewed from the cloud system  2 . However, the number and type of devices  10  included in the system  1  are not limited to this example, and any suitable number and type of devices may be provided. 
     As described below in detail, when a license of each package is assigned to each of the devices  10 , a user of each of the devices  10  can use the package that resides in the server  5  (cloud system  2 ). The “license setting information” indicating which package license is allocated to which of the devices  10  is managed in the server  5  (cloud system  2 ). A description is given below of a detailed configuration of the server  5 . 
       FIG. 2  is a block diagram illustrating an example of a hardware configuration of the server  5 , according to embodiments. A description is now given of a hardware configuration of the server  5 . 
     As illustrated in  FIG. 2 , the server  5  is implemented by a computer. The server  5  includes a central processing unit (CPU)  501 , a read only memory (ROM)  502 , a random access memory (RAM)  503 , a hard disk (HD)  504 , a hard disk drive (HDD) controller  505 , a display  506 , an external device connection interface (I/F)  508 , network I/F  509 , a bus line  510 , a keyboard  511 , a pointing device  512 , a digital versatile disc rewritable (DVD-RW) drive  514  and a medium I/F  516 . 
     The CPU  501  controls entire operation of the server  5 . The ROM  502  stores a control program such as an initial program loader (IPL) to boot the CPU  501 . The RAM  503  is used as a work area for the CPU  501 . 
     The HD  504  stores various data such as a control program. The HDD controller  505  controls reading and writing of various data from and to the HD  504  under control of the CPU  501 . 
     The display  506  displays various information such as a cursor, menu, window, character, or image. 
     The external device connection I/F  508  is an interface that connects the computer as the server  5  to various external devices. Examples of the external devices include a universal serial bus (USB) memory and a printer. 
     The network I/F  509  is an interface that controls communication of data through the network  3  and the local network  4 . The bus line  510  is, for example, an address bus or a data bus, which electrically connects the components such as the CPU  501  illustrated in  FIG. 2 . 
     The keyboard  511  is an example of an input device provided with a plurality of keys for allowing a user to input characters, numerals, or various instructions. The pointing device  512  is an example of an input device that allows a user to select or execute a specific instruction, select a target for processing, or move a cursor being displayed. 
     The DVD-RW drive  514  reads and writes various data from and to a DVD-RW  513 , which is an example of a removable storage medium. The removable storage medium is not limited to the DVD-RW and may be a digital versatile disc-recordable (DVD-R) or the like. The medium I/F  516  controls reading and writing (storing) of data from and to a storage medium  515  such as a flash memory. 
     The program executed by the server  5  according to each embodiment can be stored in a computer readable storage medium, such as a compact disc read only memory (CD-ROM), a flexible disk (FD), a compact disc recordable (CD-R), and a digital versatile disk (DVD), in an installable or executable file format, for distribution. 
     Furthermore, the program executed by the server  5  according to each embodiment can be stored in a computer connected to a network such as the Internet and downloaded through the network. Further, the program executed by the server  5  according to each embodiment can be provided or distributed through a network such as the Internet. 
     A description is now given of functions implemented by the CPU  501  of the server  5  executing the program stored in the ROM  502  or the HD  504 . Note that descriptions of conventionally known functions are omitted below. The characteristic functions implemented by the CPU  501  of the server  5  according to the present embodiment are described. 
       FIG. 3  is a block diagram illustrating an example of functions that the server  5  includes. As illustrated in  FIG. 3 , the server  5  includes an application management unit  210 , a license management unit  220 , a device management unit  230 , a control unit  240 , and a determination unit  250 . Although only the modules related to the present embodiment are illustrated in the example of  FIG. 3 , modules that the server  5  includes are not limited thereto. The modules (functional units) of the server  5  may be configured by a single apparatus, for example, as in the present embodiment. In another example, the modules (functional units) are configured by two or more apparatuses. For example, the license management unit  220 , the device management unit  230 , and the application management unit  210  may be provided respectively in different apparatuses. 
     The application management unit  210  manages management information and an entity of a package or an application. In this disclosure, the term “package” refers to is a bundle of a plurality of applications. The package is a unit of product sales. The number of applications included in the package can be one. In other words, the package includes one or more packages. In general, a unit of product sales is sometimes referred to as an “application”, and therefore a package can be referred to as an “application”. In this case, the term “application” refers to not only a set of executable programs operating on an apparatus and setting files of the programs, but also a set of a plurality of the applications. In order to use one or more applications included in the package on the device  10 , the license of the package has to be assigned to the device  10 . The application is an application that operates on the device  10 . Alternatively, the application may a web application which operates on a server apparatus in response to a request for processing from the browser  120  of the device  10  to the server apparatus such as the server  5 . 
       FIG. 4-1  is a diagram illustrating a basic data model of data stored in the server  5 . The association between the device  10  and the application is associated with “application license assigning permission” indicating information on whether or not an assignment of license is permitted. The value of the “application license assigning permission” is determined based on whether the type of the device  10  such as the MFP  11  or the IWB  14  matches a device type associated with a service. The service is information that defines which kind of service is caused to be run by the application and on which type of device  10  the service can run. 
       FIG. 4-2  is a diagram illustrating a detailed data model of data stored in the server  5 . As illustrated in the figure, each device is associated with a device definition described later as well as management information of a package licensed to the device. Further, each package is associated with an application well as management information of a service definition described below. Furthermore, the service definition is associated with management information of a license definition described later. 
       FIG. 4-2  illustrates an example in which the device definition and a service type are associated with the package. Alternatively, the device definition and the service type may be associated with an application, as illustrated in  FIG. 4-3 . In this case, although the sales unit is basically a package, the license assigning permission can be determined in units of an application, which is more detailed manner than illustrated in  FIG. 4-2 . 
       FIG. 5  is a diagram illustrating an example of management information of a package managed by the application management unit  210 . As illustrated in  FIG. 5 , the application management unit  210  manages, for each package, a package ID, a package name, a package description, a service class, an application list, etc. 
     The package ID is an identifier (ID) for identifying a package. The package name is a name of the package. The package description is a description of the package. The service class is information for associating the package with a service definition described later. The application list is a list of applications included in the package. 
     The license management unit  220  sets and holds a service definition including the device types of the plurality types of devices  10  and a license definition. In addition, the license management unit  220  determines whether a license can be assigned based on a relation between the device  10  and the package. Further, the license management unit  220  performs a process of allocating a license to the device  10 . 
     The service definition is information indicating what kind of service is provided by the package, and includes a device type, a name, a uniform resource locator (URL), and an available language. The device type indicates on which device  10  the service can operate. 
     The license definition is information that defines how to purchase a license. The license information is issued by inputting specific values such as a use start date and a scheduled expiration date in the license definition. The license information is the entity of the purchased license. 
       FIG. 6  is a diagram illustrating an example of management information of the service definition managed by the license management unit  220 . As illustrated in  FIG. 6 , the license management unit  220  manages a service class, a service name, a service description, a service type, the presence or absence of a license assigning permission, a device type, etc., as the service definition. The license assigning permission is information indicating whether a license can be assigned in view of the relation between the device  10  and the package. 
     The service class is an ID for identifying the service definition. The service name is a name of the service, and the same value as the package name is set. The service description is a description of the service, and the same value as the description of the package is set. The service type is a type of the service, and is information indicating what kind of service it is. 
     In the presence or absence of the license assigning permission, a value indicating whether or not a license can be assigned. When the license can be assigned, the value “Yes” is set. When the license cannot be assigned, the value “No” is set. When the value “Yes” is set, the license definition described below has to be created. 
     In the device type, one or more devices that can use the corresponding service, such as the MFP  11 , the projector  13 , and the IWB  14 , are set. 
       FIG. 7  is a diagram illustrating an example of management information of the license definition managed by the license management unit  220 . As illustrated in  FIG. 7 , the license management unit  220  manages a license code, a license name, a license type, an expiration date, a service class, a device type, etc., as the license definition. 
     The license code is an ID for identifying the license definition. The license name is a name of the license definition. 
     The license type indicates a kind of license. The kind of license includes a user license (a license that limits the maximum number of users who can use the service) and a device license (a license that limits the maximum number of devices that can use the service). Note that the maximum number of users or devices is not included in the license definition because the number is set when a license is issued. 
     The expiration date is an expiration date of the license. The expiration date is set to an indefinite period, months, or days. 
     The service class is information for associating the license definition with the service definition. 
     In the device type, one or more devices that can use the corresponding service, such as the MFP  11 , the projector  13 , and the IWB  14 , are set. 
     The device management unit  230  registers and manages device information of all the devices  10 , each being a target of license management. The device information is information on the devices  10  to be managed. The device information includes a serial ID, a device type, etc. 
     Although in the present embodiment, the description described above is of the case in which the device type is included in the management information of the service definition and the management information of the license definition, in another example, the management information of the package can also include the device information. 
       FIG. 8  is a diagram illustrating an example of management information of the device definition managed by the device management unit  230 . As illustrated in  FIG. 8 , the device management unit  230  manages a serial ID, a device type, etc., as the device definition. 
     The serial ID is an individual identification information (ID) held by a main unit of the device. The device type is a type of the device, such as the MFP  11 , the projector  13 , and the IWB  14 . 
     The control unit  240  transmits various information to the browser  120  installed in the information processing apparatus  12 , to cause the browser  120  to display a license allocation screen described below. 
     When allocating a license to a device, the determination unit  250  compares a device type associated with the device as a license allocation target with a device type associated with a service, to determine whether the license of the service can be allocated to the device as the license allocation target. 
     A description is now given of a registration process of various information (package, service definition, license definition) performed when creating a package. 
       FIG. 9  is a sequence diagram illustrating a registration process of various information (package, service definition, license definition) to be performed when creating a package. As illustrated in  FIG. 9 , in response to a request for acquiring a package creation screen from a package creator, the browser  120  of the information processing apparatus  12  acquires the package creation screen from the server  5  and displays the package creation screen acquired from the server  5  (step S 1 ). 
       FIG. 10  is a diagram illustrating an example of a package creation screen P 1 . The package creation screen P 1  illustrated in  FIG. 10  is displayed on the browser  120  of the information processing apparatus  12 . The package creator enters various definition information on the package creation screen P 1 . Examples of the various information entered by the package creator on the package creation screen P 1  includes a service name, a service overview, a package name, a license control, and a device type. 
     The service name is a name of the service. The service name is a unique value on the system. 
     The service overview is a description about the service. 
     The package name is a product name used when selling a product (package) including one or more services. 
     For the license control, radio buttons for selecting one of “valid” and “invalid” are provided. When “valid” is selected, the license control indicates that the service cannot be used unless a license is assigned. When “invalid” is selected, the license control indicates that the service can be used without a license assignment. 
     The device type is an item for receiving selection of one or more types of a device (MFP, IWB, projector, videoconference system, camera, tablet) on which the package can operate. That is, the license of the package as a setting target on the package creation screen of  FIG. 10  can be assigned to the device of one or more types selected in this device type field. When “all” is selected (a mark is put in a check box labeled with “all”), it means that marks are put in checkboxes corresponding to not only all the current device types but also a device type(s) newly added in the future. Therefore, it is determined that a device of a newly added device type can use the package as the setting target, and the license can be allocated to the device of the newly added device type. 
     The package creator enters service definition information including the device type on the package creation screen P 1  (step S 2 ). 
     Specifically, the package creator enters information indicating on which device the target package can operate by selecting a desired device type. The package creator can select a plurality of device types. In a case where no information of the device type is entered, a default value can be set. One example of the default value indicates that the target package operates on the devices of all types. Another example of the default value indicates that the target package operates on the devices of neither one of types. When the package is created mainly for the MFP, the default value of the device type can be set to the MFP. In addition, the device type information can add an element after the registration. For example, the IWB can be added after the registration of the MFP. 
     When a “Next” button B 1  is pressed on the package creation screen P 1 , a screen displayed by the browser  120  of the information processing apparatus  12  transitions to a package information input screen. 
       FIG. 11  is a diagram illustrating an example of a package information input screen P 2 . The package information input screen P 2  illustrated in  FIG. 11  is displayed on the browser  120  of the information processing apparatus  12 . The package creator enters various information on the package information input screen P 2 . 
     The package creator registers one or more applications to be included in the target package on the package information input screen P 2 . 
     An application name field provided on the package information input screen P 2  is a field for entering characters as a search key. The package creator enters a desired characters as a search key in the application name field and presses a “Search” button B 5 . Thus, one or more application to be included in the target package are retrieved. 
     After retrieving one or more applications to be included in the target package, the package creator presses a “Register” button B 2  corresponding to an application that the creator wants to include in the target package. This, the desired application to be included in the target package is registered. When the registration of the desired application to be included in the target package is completed, the “Register” button B 2  is switched to an indication “Registered”. When a “Deregister” button B 4  provided on the package information input screen P 2  is pressed after the registration of the information regarding the package, the registration of the package associated with the “Deregister” button B 4  is deregistered, and the “Register” button B 2  is displayed in association with the deregistered application. Searching for an application name as described above is just one example of operation for specifying a desired application to be included in the target package. A desired application to be included in the target application can be specified in any suitable manner, provided that the browser  120  can receive the specification of the application from the package creator. For example, the browser  120  receives specification of an application by receiving an input of an application identification number from a user. 
     The package creator enters information regarding the package on the package information input screen P 2  (step S 3 ). 
     When a “next” button B 3  on the package information input screen P 2  is pressed after the information regarding the package is registered, a screen displayed by the browser  120  of the information processing apparatus  12  transitions to a license definition information input screen. 
       FIG. 12  is a diagram illustrating an example of a license definition information input screen P 3 . The license definition information input screen P 3  illustrated in  FIG. 12  is displayed on the browser  120  of the information processing apparatus  12 . The package creator enters various definition information on the license definition information input screen P 3 . The various definition information that the package creator enters on the license definition information input screen P 3  is a package name, a license name, a validity period, a license type, a charge category, and a unit price for each device type. 
     The package name is the name of the package entered on the package creation screen P 1 . 
     The license name is a name of the license. When plural license definitions are defined for one package, the license name is a character string unique within one package. 
     The validity period is a period during which the license is valid from the start date after purchasing the license. The validity period can be an indefinite period, and a radio button for selecting the indefinite period is also provided. 
     As the license type, a license allocation type (device or user) is selected. When the device is selected as the license type, a license allocation target is a device. In this case, a usage license is allocated to each device that executes an application. When the user is selected as the license type, a license allocation target is a user. In this case, a usage license is allocated to each user who uses an application from a device. 
     For the charge category, radio buttons for selecting one of “Sale (Charge occurs) and “Demonstration (No charge)” are provided. When “Sales (Charge occurs)” is selected, billing information such as a unit price for each device type or a unit price for each user is to be entered. 
     After entering the license definition information on the license definition information input screen P 3  (step S 4 ), the package creator presses the “Register” button B 6  on the license definition information input screen P 3  (step S 5 ). 
     When the “Register” button B 6  on the license definition information input screen P 3  is pressed, the license management unit  220  registers the service definition (the device type, service name, etc.) entered via the browser  120  (step S 6 ). 
     When the “Register” button B 6  on the license definition information input screen P 3  is pressed, the license management unit  220  registers information (the package name, etc.) regarding the package entered via the browser  120  (step S 7 ). 
     When the “Register” button B 6  on the license definition information input screen P 3  is pressed, the license management unit  220  registers the license definition (the device type, license name, validity period, etc.) entered via the browser  120  (step S 8 ). 
     Although in the present embodiment, the description given above is of an example in which the device type is registered in the service definition and the license definition, the embodiment is not limited thereto. In another example, the device type can be registered only in the service definition. 
     Note that a plurality of license definitions can be provided. In a case in which the package is permitted to be used without a license, the license definition can be omitted. 
     The description given heretofore is of a role of the package creator. 
     A description is now given of a license allocation process. 
       FIG. 13  is a sequence diagram illustrating a license allocation process. A person (a tenant administrator or a user) who wants to use an application causes the browser  120  of the information processing apparatus  12  to display a user interface (license purchase screen) for purchasing a license as illustrated in  FIG. 13  (step S 9 ), and purchase a license (step S 10 ). 
       FIG. 14  is a diagram illustrating an example of a license purchase screen P 4 . The license purchase screen P 4  illustrated in  FIG. 14  is displayed on the browser  120  of the information processing apparatus  12 . The license purchase screen P 4  is a screen that receives inputs of a product name, a license, a unit price, a quantity, and a start date. On the license purchase screen P 4 , a person (a tenant administrator or a user) who wants to use an application selects a desired product name (package name) and a desired license, and enters a desired quantity. The unit price is displayed when the desired license is selected. 
     In one example, for the quantity, radio buttons for selecting one of specifying for each device type and specifying collectively regardless of the device type can be provided. In this case, the person (a tenant administrator or user) who wants to use the application can specify the quantity for each device type (device type) or specify the quantity collectively (regardless of the device type). When the specifying for each device type is selected, the browser  120  of the information processing apparatus  12  displays input items that allow the user or the tenant administrator to specify the quantity for each device, as illustrated in  FIG. 14 . Further, the person (user) who wants to use the application enters a start date of the license to be purchased, and presses a “Purchase” button B 7 . 
     After the registration process illustrated in the sequence diagram of  FIG. 9  is performed, when a license of each package is purchased, “license information” is generated. The license information is the entity of the purchased license. For example, when the license information indicates that the volume is equal to 5, licenses can be assigned to up to five devices. 
     Although not described in the above with reference to the registration process illustrated in  FIG. 9 , the tenant administrator sends the device management unit  230  a list of devices to be managed in addition to the information on the package, the service definition, and the license definition. This allows the device management unit  230  to manage the device list for each tenant. 
     A description is given hereinafter of the license allocation process. 
     In response to receiving a request for acquiring a license allocation screen from the tenant administrator (step S 11 ), the browser  120  of the information processing apparatus  12  acquires a license information list from the license management unit  220  (step S 12 ). The license information list is a list of license information including a package name, the number of volumes, the device type, and the like. 
     Further, the browser  120  acquires device list information including the device type from the device management unit  230  (step S 13 ). The device list information is a list of devices associated with a tenant to which the tenant administrator belongs. For example, the device list information includes, the device ID of the device  10  (e.g., MFP_ 001 ), a model name, a location where the device is provided. 
     Next, the browser  120  displays a license allocation screen P 5  as illustrated in  FIG. 15  (step S 14 ). 
     The tenant administrator configures settings of the device license on the license allocation screen P 5  (step S 15 ), and presses a “Save” button B 8  on the license allocation screen P 5  after configuring the settings (step S 16 ). 
       FIG. 15  is a diagram illustrating an example of the license allocation screen P 5  on which inputs are made by the user or the tenant administrator. As illustrated in  FIG. 15 , the license allocation screen P 5  displays, for each tenant, a list associating the service corresponding the license information of the license purchased in S 10  and the device types that can use the service with each other. The license allocation screen P 5  includes an input area A 1  having a table format. The row heading includes a list of packages, and the column heading includes a list of device IDs of the devices  10 . The tenant administrator puts a check mark in a cell corresponding to a combination of a desired package and device  10 , to select a desired device(s)  10  to which a license is to be allocated for each package. 
     When the configuration of settings of the device license is completed, the browser  120  sends a request for a license allocation to the license management unit  220  (step S 17 ). 
     In response to receiving the request for license allocation, the determination unit  250  compares the device type corresponding to each package stored in the server  5  with the device type of each device to determine whether a license allocation is to be permitted (step S 18 ). The determination unit  250  sends a notification indicating the allocation result to the browser  120  (step S 19 ). 
     Although in the present embodiment, the description given above is of a case in which the determination unit  250  determines whether the allocate of license is permitted based on the device type (step S 18 ), the embodiment is not limited thereto. In another example, the browser  120  of the information processing apparatus  12  can determine whether the allocation of license is permitted based on the device type. 
       FIG. 16  is a diagram illustrating an example of an instance for a data model.  FIG. 16  illustrates an example case in which a user can use an MFP print package and an IWB camera package in an environment (tenant) to which the MFP  11  and the IWB  14  belong as the devices  10 . 
     In the relation between the MFP  11  and the print package for the MFP, the device type of the device information of the MFP  11  is ‘MFP”, and the device type of the service definition of the print package for the MFP is ‘MFP’, and therefore the device types match with each other. Accordingly, the license assignment permission is set to “Permitted”. 
     By contrast, the device type of the MFP  11  is ‘MFP’ and the device type of the IWB camera package is ‘IWB’, and therefore the device types do not match with each other. Accordingly, the license assignment permission is set to “Not Permitted”. 
     Conversely, in the relation between the IWB  14  and the camera package for IWB, the license assignment permission is set to “Permitted”, while in the relation between the IWB  14  and the print package for the MFP, the license assignment permission is set to “Not Permitted”. 
     As described above, in the license allocation determination, when the allocation result is “No” because the license assignment permission is “Not Permitted”, the license management unit  220  transmits a notification including the reason for the negative result. 
     When the allocation result is “Yes”, the browser  120  displays a notification indicating that the license allocation is completed (step S 20 ). 
     By contrast, when there is an item for which the allocation result is “No”, the browser  120  displays a notification indicating that the license allocation is not permitted including the reason.  FIG. 17  is a diagram illustrating an example of the notification indicating that the license allocation is not permitted. As illustrated in  FIG. 17 , the item for which for the allocation result is “No” is highlighted (for example, shaded), and a message indicating a reason for the negative result such as “Cannot set license of package B to IWB” is displayed. 
     As described heretofore, according to the present embodiment, allocating to a device a license that the device that cannot use is avoided. In other words, when the tenant administrator collectively registers package licenses to devices using a PC browser or the like, a drawback is avoided that the license is allocated to a device that cannot use the package and accordingly license resources are wasted. 
     Further, according to the present embodiment, a service such as an application and a package is prevented from being erroneously installed on a device of an unexpected type, and thereby preventing a malfunction from occurring. Accordingly, adverse effects on devices and cloud systems are avoided. 
     Although in the present embodiment, the description given above is of an example case in which a package is applied as a service, the embodiment is not limited thereto. The present embodiment can be applied to various applications, various functions, web services, and the like. 
       FIG. 18  is a diagram illustrating another example of a license allocation screen P 6  on which inputs are made by the user or the tenant administrator. The license allocation screen P 6  in the example illustrated in  FIG. 18  has a list X 1  having a table format, for each tenant, and displays a list of packages in the row headings and displays a list of the applications included in each package in the columns. The tenant administrator selects a desired package or application for which a license is to be set from the list X 1 . 
     When the tenant administrator selects a desired package as a license setting target, the screen transitions to a license allocation screen P 7 . The license allocation screen P 7  is displayed by the browser  120 . The license allocation screen P 7  includes an input area X 2  having a table format. The row heading includes a list of applications included in the selected package, and the column heading includes a list of device IDs of the devices  10 . The tenant administrator puts a check mark in a cell corresponding to a combination of a desired application included in the package and the device  10 , to select a desired device(s)  10  to which a license is to be allocated for each application included in the package. 
     Further, in another example, the browser  120  can display a remaining license indication in the input area X 2  of the license allocation screen P 6  based on the license information of the license purchased in S 10  and the number of allocated licenses. In the remaining license indication, the denominator indicates the total number of licenses to be allocated and the numerator indicates the number of licenses that have been already allocated. Note that when “Specify for each device type” is selected when purchasing the license on the license purchase screen P 4 , for example, the remaining license indication can be presented for each device type. 
     In the example of  FIG. 18 , the remaining license (MFP) and the remaining license (IWB) are displayed collectively for Application A 3  in the input area X 2 . This means that when purchasing the licenses in S 10 , the license quantity is not specified for each device type, and the licenses for the MFP and the licenses for the IWB licenses are purchased collectively. 
     On the other hand, when the tenant administrator selects an application as a license setting target, the browser  120  causes the screen to transition to a license allocation screen P 8 . The license allocation screen P 8  includes an input area X 3  having a table format. The row heading includes a list of the selected applications, and the column heading includes a list of device IDs of the devices  10 . The tenant administrator puts a check mark in a cell corresponding to a combination of a desired application and device  10 , to select a desired device  10  to which a license is to be allocated for each application. 
     Further, in the input area X 3  of the license allocation screen P 8 , the browser  120  can display a remaining license indication. Note that when “Specify for each device type” is selected when purchasing the license on the license purchase screen P 4 , for example, the browser  120  can display the remaining license indication for each device type. 
     Second Embodiment 
     Hereinafter, a description is given of a second embodiment. 
     The second embodiment is different from the first embodiment in that, in the license allocation process, the browser  120  determines whether or not a licenses allocation is permitted. In other words, the browser  120  functions as the determination unit. In the second embodiment, the elements, functions, processes, and steps that are the same or substantially the same as those described in the first embodiment are denoted by the same reference numerals or step numbers, and redundant descriptions thereof are omitted below. A description is given of the differences from the first embodiment. 
       FIG. 19  is a sequence diagram illustrating a license allocation process, according to the second embodiment. As illustrated in  FIG. 19 , the browser  120  displays a license allocation screen (step S 14 ). The tenant administrator selects a device type such as an MFP or an IWB on the license allocation screen (step S 31 ). 
     In response to receiving the selection of the device type from the tenant administrator, the browser  120  performs filtering on a package list using the selected device type as a filtering key, to extract a package(s) that the devices  10  corresponding the selected device type can use (step S 32 ). 
       FIG. 20  is a diagram illustrating an example of a license allocation screen P 9 . As illustrated in  FIG. 20 , the license allocation screen P 9  includes a pull-down menu M used for selecting a device type such as the MFP and the IWB. The license allocation screen P 9  further includes an input area A 1  having a table format. The row heading includes a list of packages, and the column heading includes a list of device IDs of the devices  10  corresponding to the device type selected in the pull-down menu M. The tenant administrator puts a check mark in a cell corresponding to a combination of a desired package and device  10 , to select a desired device(s)  10  to which a license is to be allocated for each package. In the pull-down menu M, a plurality of devices can be selected. 
     As illustrated in  FIG. 20 , the browser  120  extracts and displays only a package(s) corresponding to a device type that matches the device type of the device  10  selected in the pull-down menu M. In a case where there is no package corresponding to a device type that matches the device type of the device  10  selected in the pull-down menu M, the browser  120  can display “No target device”, for example. Further, the browser  120  may display a pull-down menu as illustrated in  FIG. 20  and display the device ID(s) of the device  10  corresponding to the selected device type even in a case where the server determines whether a license allocation is permitted as in the first embodiment, and display only the selected device. 
       FIG. 21  is a diagram illustrating another example of a license allocation screen P 10 . As illustrated in  FIG. 21 , the browser  120  display a license allocation screen P 10  in which a combination of a package and the device  10  for which license allocation is no permitted is grayed out. In this case, the browser  120  identifies the device type of each device before displaying the screen of  FIG. 21  and compares the device type of each device with the device type corresponding to each package to determine whether the license allocation is permitted. In one example, each device is associated with tenant information identifying a tenant to which each device belongs in the management information of the device definition. In this example, a target device(s) for which determination as to whether a license allocation is permitted is performed is a device(s) corresponding to a tenant specified based on the tenant ID or the like that is input from the tenant administrator and received by the browser. In another example, all devices included in the management information of the device definition managed by the device management unit  230  are the target devices for which determination as whether a license allocation is permitted is performed. 
     Although in the present embodiment, the description given above of is an example case in which only a package(s) corresponding to a device type that matches the device type of the device  10  selected in the pull-down menu M is extracted, the embodiment is not limited thereto. In another example, the browser  120  can extract only a device(s) of a device type that matches the device type of the package selected in the pull-down menu M. 
     Further, although in the present embodiment, the device type is selected in S 31 , in another example, selection of one device such as MFP_ 001  or MFP_ 002  is received instead of the device type. In this case, the browser  120  determines the device type of the selected device according to the management information of the device definition acquired from the device management unit  230 , and then performs the filtering process of step S 32 . 
     The tenant administrator configures settings of the device license by putting a check mark in the cell corresponding to the combination of the desired package and device  10  on the license allocation screen obtained through the filtering process (step S 15 ). After the configuration of the settings is completed, the tenant administrator presses a “Save” button on the license allocation screen (step S 16 ). 
     When the configuration of settings of the device license is completed, the browser  120  sends a request for a license allocation to the license management unit  220  (step S 17 ). 
     As described heretofore, according to the present embodiment, allocating to a device a license that the device that cannot use is avoided. 
     Although in the embodiment, a package license is assigned to each device, but the embodiment is not limited thereto. In another example, a license of any suitable service can be allocated to each device, instead of the package license. For example, one or more above embodiments are applied to a process of allocating a license of a single application to each device instead of allocating a license of a package including plural applications. In this case, the server  5  stores application information that associates information of an application with a device type, and determination as to whether the license allocation is permitted is performed by comparing the device type associated with the application information with a device type of the target device. In substantially the same manner, determination can be performed as to whether allocation of a license of a web service is permitted or as to whether allocation of a license of a particular function of the service is permitted, instead of the package license. In this case, the server  5  stores web service information regarding a web service or function information regarding a function in association with the device type, instead of the application information, and determination as to whether the license allocation is permitted in substantially the same manner. 
     Further, since the license information includes the maximum number of licenses, the browser  120  may check whether the number of allocated licenses of the target package exceeds the upper limit (volume), and outputs a warning when the number of allocated licenses exceeds the upper limit. 
     Third Embodiment 
     Hereinafter, a description is given of a third embodiment. 
     The third embodiment is different from the first embodiment and the second embodiment in that the tenant administrator logs in to the cloud system and obtains a user authentication ticket (or access token) before acquiring the license allocation screen in the license allocation process. In the third embodiment, the elements, functions, processes, and steps that are the same or substantially the same as those described in the first embodiment and the second embodiment are denoted by the same reference numerals or step numbers, and redundant descriptions thereof are omitted below. A description is given of the differences from the first embodiment and the second embodiment. 
       FIG. 22  is a block diagram illustrating an example of functions that the server  5  includes, according to the third embodiment. As illustrated in  FIG. 22 , the server  5  further includes an authentication unit  260 , in addition to the application management unit  210 , the license management unit  220 , the device management unit  230 , the control unit  240 , and the determination unit  250 . Although only the modules related to the present embodiment are illustrated in the example of  FIG. 22 , modules that the server  5  includes are not limited thereto. The modules (functional units) of the server  5  may be configured by a single apparatus, for example, as in the present embodiment. In another example, the modules (functional units) are configured by two or more apparatuses. For example, the license management unit  220 , the device management unit  230 , and the application management unit  210  may be provided respectively in different apparatuses. 
     The authentication unit  260  transmits a user authentication ticket (or an access token) to the browser  120  in response to the login from the browser  120  of the information processing apparatus  12 . 
       FIG. 23  is a sequence diagram illustrating a part of a license allocation process, according to the embodiment. As illustrated in  FIG. 23 , before acquiring the license allocation screen, the tenant administrator inputs login information via the browser  120  of the information processing apparatus  12  (step S 41 ), and logs in to the cloud system (step S 42 ). Then, the authentication unit  260  issues a user authentication ticket (or an access token that can identify a particular user) (step S 43 ). 
     Next, the browser  120  of the information processing apparatus  12  receives a request for acquiring a license allocation screen together with the user authentication ticket from the tenant administrator (step S 11 ). In response to receiving the request together with the user authentication ticket, the browser  120  acquires, from the license management unit  220 , a license information list registered in an organization managed by a user (tenant administrator) corresponding to the user authentication ticket (step S 12 ). The license information list is a list of license information including a package name, the number of volumes, the device type, and the like. 
     Further, the browser  120  acquires, from the device management unit  230 , device list information registered in the organization (tenant) managed by the user (tenant administrator) corresponding to the user authentication ticket (step S 13 ). 
     Next, the browser  120  displays a license allocation screen including a list of a plurality of types of devices associated with the organization (step S 14 ). Subsequently, the processes of S 15  and subsequent steps illustrated in  FIG. 13  or the processes of step S 31  and subsequent steps illustrated in  FIG. 19  are performed, in substantially the same manner as the first embodiment and the second embodiment. 
     As described above, according to the present embodiment, since the user authentication ticket (or the access token that identifies a particular user) is transmitted when transmitting the request for the license allocation screen, the cloud system  2  can determine which user (tenant administrator) is operating the information processing apparatus  12 . This enables the cloud system  2  to acquire the license information and the device information list registered in association with the organization (tenant) managed by the user (tenant administrator). Thus, the user (tenant administrator) can collectively allocate licenses to a plurality of types of devices of the tenant to which the user belongs. Further, a service such as an application or a package is prevented from being erroneously installed on a device of an unexpected type, and thereby preventing a malfunction from occurring. Accordingly, adverse effects on devices and cloud systems are avoided. 
     Each of the functions of the described embodiments may be implemented by one or more processing circuits or circuitry. Processing circuitry includes a programmed processor, as a processor includes circuitry. A processing circuit also includes devices such as an application specific integrated circuit (ASIC), digital signal processor (DSP), field programmable gate array (FPGA), and conventional circuit components arranged to perform the recited functions. 
     The apparatus group or device group described in one or more embodiments are just one example of plural computing environments that implement the one or more embodiments of the present disclosure. 
     In one or more embodiments, the server  5  includes plural computing devices, such as a server cluster. The plural computing devices are configured to communicate with one another through any type of communication link including a network, shared memory, etc., and perform the processes described in this disclosure. 
     The device  10  is not limited to an image forming apparatus as long as the device has a communication capability. The device  10  includes, for example, an output device such as a projector (PJ), an interactive whiteboard (IWB; an electronic whiteboard having mutual communication capability), and a digital signage, a head-up display (HUD), an industrial machine, an imaging device, a sound collecting device, a medical device, a networked home appliance, an automobile (connected car), a laptop computer, a mobile phone, a smartphone, a tablet terminal, a game console, a personal digital assistant (PDA), a digital camera, a wearable PC and a desktop PC. 
     According to one or more embodiments of the present disclosure, an allocation of a license to a device that cannot use the license is avoided. 
     The above-described embodiments are illustrative and do not limit the present disclosure. Thus, numerous additional modifications and variations are possible in light of the above teachings. For example, elements and/or features of different illustrative embodiments may be combined with each other and/or substituted for each other within the scope of the present disclosure. Any one of the above-described operations may be performed in various other ways, for example, in an order different from the one described above.