Electronic equipment, libraries and processing methods

JP7619081B2Active Publication Date: 2025-01-22RICOH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021028666
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-02-25
Publication Date
2025-01-22
Estimated Expiration
2041-02-25

AI Technical Summary

Benefits of technology

【0009】 プラットフォームのバージョンが変わっても同じバージョンのライブラリを利用できる電子機器を提供することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007619081000001
    Figure 0007619081000001
  • Figure 0007619081000002
    Figure 0007619081000002
  • Figure 0007619081000003
    Figure 0007619081000003
Patent Text Reader

Abstract

To provide an electronic device capable of using a library of the same version even when a version of a platform changes.SOLUTION: An electronic device 20 executes an application 11 operating on a platform. The application includes a library 12. The library controls whether to perform predetermined processing on the basis of version information of the platform acquired from the platform.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an electronic device, a library, and a processing method. [Background technology]

[0002] In electronic devices such as image forming devices, various applications run on platforms such as an OS. Users can install applications according to their needs, allowing a single electronic device to provide a variety of functions.

[0003] Platforms are sometimes upgraded to add or change functions, fix defects, improve security, etc. When a platform is upgraded, the functions of the platform available to applications and the method of using the platform change, so applications may also have configurations that correspond to the platform version. In other words, applications may also be upgraded according to the platform version.

[0004] In some cases, a method is adopted in which functions commonly used by applications are extracted as a library, and the library and application are developed separately. Since application developers do not need to develop functions equivalent to the library, the development process is reduced. Furthermore, application and library developers want to minimize the changes to applications or libraries required for platform upgrades.

[0005] A technology has been devised that allows an execution module of an old platform to operate normally even when migrating to a successor platform (see, for example, Patent Document 1). Patent Document 1 discloses an information processing method that allows an execution module of an old OS version to operate even when migrating to a new OS version by not recompiling the execution module of the old OS version. Summary of the Invention [Problem to be solved by the invention]

[0006] However, the conventional technology had a problem in that a library corresponding to the platform version was required. In other words, when the platform version was upgraded from N to N+α, the library also needed to be upgraded, and the library developer sometimes had to develop a library corresponding to the platform upgrade.

[0007] In view of the above-mentioned problems, an object of the present invention is to provide an electronic device that can use the same version of a library even if the platform version changes. [Means for solving the problem]

[0008] In view of the above problems, the present invention provides an electronic device that executes an application that runs on a platform, the application having a library, the library being a library acquired from the platform. Based on the version information of the platform, it is determined whether or not a module that cooperates with the library is installed, and depending on whether or not the module is installed, a predetermined process is performed by the module. Controls whether processing is performed. Effect of the Invention

[0009] It is possible to provide an electronic device that can use the same version of a library even if the platform version changes. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of a schematic configuration of software that operates on an electronic device. [Diagram 2] FIG. 1 illustrates a system configuration of an example of a service providing system. [Diagram 3] FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing system and a terminal device. [Figure 4] 1 is a diagram illustrating a hardware configuration of an image forming apparatus that is an example of an electronic device. [Diagram 5]FIG. 2 is a schematic diagram showing an example of a software configuration of a main unit and an operation panel of the electronic device. [Figure 6] FIG. 2 is a diagram illustrating a functional configuration of an example of a service providing system. [Figure 7] FIG. 2 is a diagram illustrating a software configuration of an example of an operation panel (version N). [Figure 8] FIG. 2 is a diagram illustrating a software configuration of an example of an operation panel (version N+α). [Figure 9A] 11 is a sequence diagram illustrating an example of a procedure in which an authentication library switches authentication processing depending on the version of an OS. [Figure 9B] 11 is a sequence diagram illustrating an example of a procedure in which an authentication library switches authentication processing depending on the version of an OS. [Figure 10] FIG. 13 is a diagram illustrating an example of a format for a version inquiry. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an electronic device and a processing method performed by the electronic device will be described as an example of an embodiment of the present invention with reference to the drawings.

[0012] <Outline of operation of electronic devices> Fig. 1 is an example of a schematic configuration diagram of software that operates on electronic device 20. Fig. 1(a) shows the software configuration before an OS version upgrade, and Fig. 1(b) shows the software configuration after the OS version upgrade.

[0013] The application 11 has an authentication library 12. Since the authentication library 12 can be commonly used by each application 11, the development process of the application 11 can be reduced.

[0014] A case will be described where the authentication library 12 performs processing related to user authentication, for example. When user authentication is successful, operability can be improved by omitting user authentication for a certain period of time. However, if each application 11 has a separate authentication library 12, the authentication results held by the authentication library 12 cannot be used by other applications 11. In other words, after a user logs in to an information processing system described below to use application 11, the user may need to log in to the information processing system again even if the user uses application 11 (or another application) within a certain period of time.

[0015] Therefore, as shown in Fig. 1(b), in accordance with the OS upgrade, the developer of the authentication library 12 added the authentication module 13 to the electronic device 20. Either the authentication module 13 can be used as a result of the OS upgrade, or the authentication module 13 can be used regardless of the OS upgrade.

[0016] The authentication library 12 works in conjunction with the authentication module 13 to perform authentication processing when a user logs into the information processing system. Since each application 11 can use the authentication module 13, if the user authentication is successful, it is possible to omit user authentication for a certain period of time.

[0017] On the other hand, for the authentication library 12, even if the OS version changes, the same version of the library can be used, so that an increase in the development process can be suppressed. However, the authentication library 12 does not know whether it should perform the authentication process itself or cooperate with the authentication module 13 (whether the authentication module 13 exists or not).

[0018] Therefore, the authentication library 12 inquires of the OS about the OS version to determine whether or not the authentication module 13 is present. The authentication library 12 determines whether or not the authentication module 13 is present depending on the OS version. If the authentication module 13 is present, the authentication library 12 requests the authentication module 13 to perform processing related to user authentication, and if the authentication module 13 is not present, the authentication library 12 itself performs processing related to user authentication.

[0019] Through this process, the electronic device 20 can use the authentication library 12 with the same functions regardless of the version of the platform such as the OS. Since the same authentication library 12 is sufficient, the developer of the application 11 can release the application 11 with the same binary even if the OS version changes, which is expected to reduce development and maintenance costs. In addition, the developer of the authentication library 12 can unify the authentication library 12 that is developed or maintained regardless of the version of the platform such as the OS, which is expected to reduce development and maintenance costs.

[0020] <Terminology> In a computer, a platform mainly refers to the basic parts on which a program runs, such as the operating system and basic hardware.

[0021] A library is a collection of multiple highly versatile programs in a reusable form.

[0022] Version information is a number or symbol that is added to indicate the revision stage of the software. A build number may be used. A build number is a number or symbol that is added to identify an executable program that has been built (generating an executable program by compiling, assembling, linking, etc.).

[0023] The predetermined process may be a process provided in the library. In this embodiment, the predetermined process is an authentication process.

[0024] <System configuration> The system configuration of the service providing system 100 according to this embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of the system configuration of the service providing system 100 according to this embodiment.

[0025] 2 includes an information processing system 10, an electronic device 20, and a terminal device 30, which are communicatively connected via a wide area network N1 such as the Internet. The service providing system 100 communicates with an external service system 40, which is an external system.

[0026] The information processing system 10 is realized by one or more information processing devices, and provides various services realized by a series of processes linked to an external service system 40 such as a cloud service via a network N1. The service providing system 100 enables users or distributors to easily and quickly develop and provide solutions using electronic devices 20 that correspond to the industry or business of the customer.

[0027] The services provided by the information processing system 10 according to this embodiment include, for example, processing in which image data scanned by the electronic device 20 is stored in the external service system 40, or the electronic device 20 prints image data stored in the external service system 40.

[0028] The information processing system 10 may be realized by cloud computing or by a single information processing device. Cloud computing refers to a form in which resources on a network are used without being aware of specific hardware resources. The information processing system 10 may exist on the Internet or on-premise. A series of processes is provided by one application, and the series of processes is also called a "processing flow" or "workflow." The application may be a native app or a web app.

[0029] The electronic device 20 is a device of various types that has the function of an information processing device and is used by a user. The electronic device 20 is, for example, an image forming device such as an MFP (Multifunction Peripheral), a projector, an electronic whiteboard, a video conference terminal, a digital camera, etc. The electronic device 20 is connected to a network N2. The user can use the electronic device 20 to utilize various services provided by the information processing system 10 or the external service system 40.

[0030] In the following description, when the multiple electronic devices 20 are to be distinguished from one another, they will be referred to using subscripts such as "electronic device 201" and "electronic device 202."

[0031] The terminal device 30 is, for example, a desktop PC, a notebook PC, a smartphone, a tablet terminal, or the like used by an administrator or a user. The terminal device 30 is connected to a network N2. The administrator or user can operate the terminal device 30 to use various services provided by the information processing system 10 or the external service system 40, and can also configure applications.

[0032] In the following description, when the multiple terminal devices 30 are to be distinguished from one another, they will be referred to using subscripts such as "terminal device 301" and "terminal device 302."

[0033] The external service system 40 is one or more information processing devices that provide services by executing applications via the network N1. Data is saved or read by executing the applications. The "external" of the external service system 40 means that it is a system separate from the information processing system 10. In many cases, it is operated by a different company. For example, even the same user has different accounts in the external service system 40 and the information processing system 10.

[0034] Examples of the external service system 40 include a cloud service, an ASP (Application Service Provider), and the like, and may include various external services provided via a network. For example, an example of a service is a tabular database. The external service system 40 may exist on the Internet or on-premise.

[0035] In the following description, when distinguishing between the multiple external service systems 40, the illustrated "external service system 401" will be referred to as external service system A, the "external service system 402" will be referred to as external service system B, and so on.

[0036] <Hardware configuration example> The hardware configurations of the information processing system 10 and the terminal device 30 included in the service providing system 100 according to this embodiment will be described with reference to FIG.

[0037] <<Information processing system and terminal device>> Fig. 3 is a diagram showing an example of a hardware configuration of the information processing system 10 and the terminal device 30 according to the present embodiment. As shown in Fig. 3, the information processing system 10 and the terminal device 30 are constructed by a computer, and include a CPU 501, a ROM 502, a RAM 503, a HD (Hard Disk) 504, a HDD (Hard Disk Drive) controller 505, a display 506, an external device connection I / F (Interface) 508, a network I / F 509, a bus line 510, a keyboard 511, a pointing device 512, a DVD-RW (Digital Versatile Disk Rewritable) drive 514, and a media I / F 516.

[0038] Among these, the CPU 501 controls the overall operation of the information processing system 10 and the terminal device 30. The ROM 502 stores a program such as an IPL used to drive the CPU 501. The RAM 503 is used as a work area for the CPU 501. The HD 504 stores various data such as programs. The HDD controller 505 controls the reading or writing of various data from the HD 504 under the control of the CPU 501. The display 506 displays various information such as a cursor, a menu, a window, a character, or an image. The external device connection I / F 508 is an interface for connecting various external devices. In this case, the external device is, for example, a USB (Universal Serial Bus) memory or a printer. The network I / F 509 is an interface for data communication using the network N2. The bus line 510 is an address bus, a data bus, or the like for electrically connecting each component such as the CPU 501 shown in FIG. 3.

[0039] Moreover, the keyboard 511 is a type of input means having a plurality of keys used for inputting characters, numbers, various instructions, etc. The pointing device 512 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, etc. The DVD-RW drive 514 controls reading and writing of various data from a DVD-RW 513 as an example of a removable recording medium. Note that the DVD-RW drive 514 is not limited to a DVD-RW, and may be a DVD-R or the like. The media I / F 516 controls reading and writing (storing) of data from a recording medium 515 such as a flash memory.

[0040] <<Electronic equipment>> 4 is a hardware configuration diagram of an image forming apparatus, which is an example of electronic device 20. As shown in FIG. 4, the image forming apparatus includes a controller 910, a short-range communication circuit 920, an engine control unit 930, an operation panel 940, and a network I / F 950.

[0041] Of these, the controller 910 has a CPU 901 which is the main part of the computer, a system memory (MEM-P) 902, a north bridge (NB) 903, a south bridge (SB) 904, an ASIC (Application Specific Integrated Circuit) 906, a local memory (MEM-C) 907 which is a storage unit, an HDD controller 908, and an HD 909 which is also a storage unit, and is configured such that the NB 903 and the ASIC 906 are connected by an AGP (Accelerated Graphics Port) bus 921.

[0042] Among these, the CPU 901 is a control unit that performs overall control of the image forming apparatus. The NB 903 is a bridge for connecting the CPU 901 with the MEM-P 902, the SB 904, and the AGP bus 921, and includes a memory controller that controls reading and writing to the MEM-P 902, a PCI (Peripheral Component Interconnect) master, and an AGP target.

[0043] The MEM-P 902 is composed of a ROM 902a which is a memory for storing programs and data for implementing the various functions of the controller 910, and a RAM 902b which is used for developing the programs and data, and as a drawing memory during memory printing, etc. The programs stored in the RAM 902b may be provided by being recorded in a computer-readable recording medium such as a CD-ROM, CD-R, or DVD in the form of an installable or executable file.

[0044] The SB904 is a bridge for connecting the NB903 to a PCI device and a peripheral device. The ASIC906 is an IC (Integrated Circuit) for image processing purposes having hardware elements for image processing, and plays the role of a bridge connecting the AGP bus 921, the PCI bus 922, the HDD controller 908, and the MEM-C907. The ASIC906 is composed of a PCI target and an AGP master, an arbiter (ARB) that is the core of the ASIC906, a memory controller that controls the MEM-C907, a plurality of DMACs (Direct Memory Access Controllers) that rotate image data using hardware logic, and a PCI unit that transfers data between the scanner unit 931, the printer unit 932, and the facsimile unit via the PCI bus 922. The ASIC906 may have a USB (Universal Serial Bus) interface or an IEEE1394 (Institute of Electrical and Electronics Engineers 1394) interface.

[0045] The MEM-C907 is a local memory used as an image buffer for copying and a code buffer. The HD909 is a storage for storing image data, font data used during printing, and forms. The HD909 controls the reading and writing of data from and to the HD909 under the control of the CPU901. The AGP bus 921 is a bus interface for a graphics accelerator card proposed to speed up graphic processing, and by directly accessing the MEM-P902 at high throughput, the graphics accelerator card can be made faster.

[0046] Further, the short-range communication circuit 920 is provided with a short-range communication circuit antenna 920a. The short-range communication circuit 920 is a communication circuit such as NFC or Bluetooth (registered trademark).

[0047] Furthermore, the engine control unit 930 has a scanner unit 931, a printer unit 932, and a facsimile unit 933. The operation panel 940 has a panel display unit 940a such as a touch panel that displays current setting values ​​and a selection screen, etc., and receives input from an operator, and hard keys 940b consisting of a numeric keypad that receives setting values ​​for image formation conditions such as density setting conditions, and a start key that receives a copy start instruction. The controller 910 controls the entire image forming apparatus, and controls, for example, drawing, communication, and input from the operation panel 940. The scanner unit 931 or the printer unit 932 includes an image processing unit such as error diffusion and gamma conversion.

[0048] The image forming apparatus allows the user to sequentially switch between the document box function, copy function, printer function, and facsimile function using an application switching key on the operation panel 940. When the user selects the document box function, the image forming apparatus goes into document box mode, when the copy function is selected, the image forming apparatus goes into copy mode, when the printer function is selected, the image forming apparatus goes into printer mode, and when the facsimile mode is selected, the image forming apparatus goes into facsimile mode.

[0049] The network I / F 950 is an interface for performing data communication using the network N2. The short-range communication circuit 920 and the network I / F 950 are electrically connected to the ASIC 906 via a PCI bus 922.

[0050] <Relationship between the main body of the electronic device and the operation panel> Next, the software configuration of the electronic device 20 will be described with reference to Fig. 5. Fig. 5 is a schematic diagram showing an example of the software configuration of the main device 90 and the operation panel 940 of the electronic device 20. The main device 90 and the operation panel 940 each have the functions of an independent information processing device.

[0051] The main device 90 provides the original functions of the electronic device 20. The original functions are functions such as copying, printing, and faxing that involve hardware control used for image formation, scanning, and the like. The operation panel 940 provides a user interface for the electronic device 20. Note that network communication may be provided by either the main device 90 or the electronic device 20. The main device 90 communicates with the information processing system 10 via the network N2, and the operation panel 940 communicates with the information processing system 10 via the communication I / F 32.

[0052] Therefore, separate OSs (operating systems) operate independently on the main device 90 and the operation panel 940. For example, it is possible to use Linux (registered trademark) as the OS software of the main device 90 and Android (registered trademark) as the OS layer software of the operation panel 940. Note that the OS of the main device 90 and the information processing terminal 80 may be the same, and these OSs are merely examples.

[0053] In the electronic device 20 of this embodiment, the main device 90 and the operation panel 940 operate on different operating systems, and therefore communication between the main device 90 and the operation panel 940 via the communication path 300 is performed as communication between different devices, not as inter-process communication within the device. This includes an operation (command communication) in which the operation panel 940 transmits information received (instructions from the user) to the main device 90, and an operation in which the main device 90 notifies the operation panel 940 of an event. The operation panel 940 performs command communication with the main device 90, allowing the user to use the functions of the main device 90. The contents of information notified from the main device 90 to the operation panel 940 include the execution status of the operation in the main device 90, and the contents set on the main device side.

[0054] Since power is supplied to the operation panel 940 from the main device 90 via the communication path 300, the power control of the operation panel 940 can be performed separately (independently) from the power control of the main device 90.

[0055] <About the function> FIG. 6 is a diagram showing an example of a functional configuration of a service providing system 100 according to the present embodiment.

[0056] <<Electronic equipment>> The operation panel 940 of the electronic device 20 has an application 11 and an SDKService 15. The operation panel 940 has an authentication module 13 when the OS version is N+α, and does not have the authentication module 13 when the OS version is N.

[0057] There are various applications 11 that run on the operation panel 940, and they may be, for example, a copy application, a printer application, a scanner application, a FAX application, etc. The application 11 may also be a Web application that uses these functions.

[0058] The display control unit 21 and the operation reception unit 22 of the application 11 are functions or means that are realized by the CPU of the operation panel 940 executing commands included in one or more applications 11 installed in the electronic device 20.

[0059] The display control unit 21 interprets screen information of various screens and displays it on the panel display unit 940a. The operation reception unit 22 receives various operations by the user on the various screens displayed on the panel display unit 940a. The authentication library 12, the authentication module 13, and the SDK service 15 will be described later.

[0060] The main body device 90 of the electronic device 20 has an image data generating unit 23 , a facsimile processing unit 24 , an email processing unit 25 , a second communication unit 26 , and a WebAPI 16 .

[0061] These functional units are functions or means that are realized by the CPU 901 executing instructions contained in one or more programs installed in the main body of the electronic device 20.

[0062] When the operation panel 940 does not have a function of communicating with the information processing system 10, the second communication unit 26 transmits and receives various information to and from the information processing system 10. Therefore, the second communication unit 26 may transmit and receive information related to authentication to and from the information processing system 10.

[0063] When the application selected by the operation receiving unit 22 is for generating image data, the image data generating unit 23 generates image data by scanning an original with the scanner unit 931. The facsimile processing unit 24 performs processing related to the reception and transmission of facsimiles by the facsimile unit 933, and when a facsimile is received, requests the information processing system 10 to execute a previously associated application. The facsimile processing unit 24 may request an application corresponding to the sender of the facsimile (FAX number).

[0064] The email processing unit 25 performs processing related to sending and receiving emails, and when an email is received, requests the information processing system 10 to execute an application that is associated with the email in advance. Note that the email processing unit 25 may request an application that corresponds to the sender (email address) of the email.

[0065] WebAPI 16 receives requests for each function provided by main device 90 from operation panel 940 via HTTP communication and provides the functions. If an API (Application Interface) is specified for operation panel 940, operation panel 940 can use the functions of main device 90 without implementing a detailed control method for the hardware of main device 90.

[0066] <<Information Processing System>> The information processing system 10 has a communication unit 42 and an authentication unit 41. Each of these functional units is a function or means realized by the CPU 501 executing instructions included in one or more programs installed in the information processing system 10. Note that functions of the information processing system 10 that are not described in this embodiment are omitted in Fig. 6. The information processing system 10 has various functions other than those shown in the figure that are used, for example, when executing a workflow.

[0067] The communication unit 42 transmits and receives various information between the electronic device 20 and the terminal device 30. In this embodiment, the communication unit 42 mainly transmits and receives information related to authentication.

[0068] The authentication unit 41 performs processes related to authentication of users and the electronic device 20. The authentication unit 41 holds authentication information such as a user name and a password, and authenticates the user based on the consistency of authentication information such as a user name and a password transmitted from the electronic device 20. In addition, device authentication information is used to authenticate the electronic device 20. The electronic device 20 stores the device authentication information in advance. The device authentication information is information indicating that the electronic device 20 is located in a tenant and has been authenticated. Therefore, even if a user can log in to the information processing system 10, an application cannot be executed from an electronic device 20 that does not have the device authentication information.

[0069] If the authentication is successful, the authentication unit 41 issues a token. A token is user authority information. The token is associated with the user who logs in using the authentication information. Alternatively, the token may have information that can identify the user. By identifying the user using the token, the user's authority (the information that can be accessed and editing of that information, etc.) is also determined. The token may have the user's authority. By having the electronic device 20 communicate with the information processing system 10 using the token, the number of authentications can be reduced, improving user convenience and making it more difficult for passwords and the like to be leaked.

[0070] <About the authentication library> Next, the authentication library 12 included in the operation panel 940 will be described with reference to Fig. 7 and Fig. 8. Fig. 7 and Fig. 8 both show the software configuration of the operation panel 940, but the version of the OS running on the operation panel 940 is different. The OS version in Fig. 7 is N, and the OS version in Fig. 8 is N+α. In other words, the OS version in Fig. 8 is newer than that in Fig. 7.

[0071] Furthermore, in this embodiment, the generation of the operation panel 940 is distinguished by the version of the OS installed on the operation panel 940. Generations of the operation panel 940 include, for example, G1, G2, and G2.5. There are various standards for distinguishing the generation of the operation panel 940, one of which is the presence or absence of the authentication module 13. If the version of each OS is known, the generation of the operation panel 940 can be determined.

[0072] As described above, each application 11 has one or more libraries. There may be any number of different libraries, but in this embodiment, the authentication library 12 will be described as an example. The authentication library 12 communicates with the information processing system 10 and performs processing related to authentication. Therefore, each application 11 has the authentication library 12.

[0073] The authentication library 12 performs different controls depending on the OS version. On the other hand, the first stage authentication for a user to log in to the electronic device 20 is common even if the OS version changes. As the first stage authentication, the authentication library 12 authenticates the user who logs in to the electronic device 20 using authentication information entered on an authentication screen. Authentication refers to judging whether or not the user is a legitimate person. The first stage authentication is whether or not the user has the authority to use the electronic device 20. If the authentication is successful, the user logs in to the electronic device 20. Login refers to an authentication action to access system resources using authentication information registered in advance when using various services on a computer or the Internet. Authentication information is a user ID and password, an IC card number, biometric authentication information, etc.

[0074] In the case of version N: the authentication library 12 provides an API for second-stage authentication to the application 11. The authentication library 12 performs license authentication to confirm whether the user has the authority to use the application 11 (whether the tenant has purchased the application 11).

[0075] Furthermore, as a second stage authentication, the authentication library 12 communicates with the authentication unit 41 of the information processing system 10 using the authentication information inputted on the authentication screen to perform user authentication (token acquisition, etc.). The authentication method may be the same as that of the first stage authentication.

[0076] In the information processing system 10, if the license for the application 11 has expired or if acquisition of a token has failed, the authentication library 12 displays an error screen and inhibits the application from being started.

[0077] The user ID and password may be different between the first and second steps. This may require the user to perform authentication operations twice. A good way to reduce authentication operations is to use single sign-on such as OpenID, OAuth, or SAML (Security Assertion Markup Language).

[0078] Version N+α: Authentication library 12 provides application 11 with an API for second-stage authentication. Since authentication module 13 is provided, authentication library 12 performs second-stage authentication in cooperation with authentication module 13. Cooperation means that authentication module 13 performs second-stage authentication in response to a request from authentication library 12. In other words, authentication module 13 essentially performs second-stage authentication.

[0079] In addition to the second-stage authentication (license authentication, user authentication) performed by the authentication library 12, the authentication module 13 performs the following processes that are not performed by the authentication library 12. When the authentication module 13 receives a token from the authentication unit 41 as a result of successful second-stage authentication, the authentication module 13 associates the user ID currently logged in during the first-stage authentication with the token and stores (caches) them.

[0080] Then, the next time the user logs in to the electronic device 20 with the first-step authentication, if the token is associated with the user ID, the authentication module 13 launches the application 11 without displaying an authentication screen. If the same user launches the application 11 (which may be a different type of application) for a certain period of time (e.g., 24 hours after logging in to the information processing system 10), the authentication module 13 permits the use of the application 11 without performing the second-step authentication.

[0081] SDKService15 provides an API for controlling the hardware of the main device 90 that can be used only from the operation panel 940. SDKService15 converts a hardware control request from the application 11 into a format acceptable to the WebAPI and transmits the request to the main device 90. By using SDKService15, the application 11 does not need to convert the hardware control request into a format acceptable to the WebAPI.

[0082] The WebAPI 16 provides each function of the main device 90 in the WebAPI format.

[0083] <Operation procedure> FIG. 9 is an example of a sequence diagram showing a procedure in which the authentication library 12 switches the authentication process depending on the version of the OS.

[0084] S1: The user starts the application 11. The OS accepts the start of the application 11.

[0085] S2: The OS notifies the application 11 started by the user that there has been a start request. At this point, the application 11 does not start.

[0086] S3: The application 11 that has been requested to be started calls the authentication library 12 to request an inquiry about the OS version.

[0087] S4, S5: The authentication library 12 queries the OS for its version and acquires the version from the OS. Based on the OS version, the authentication library 12 determines whether the authentication module 13 is installed or not, and controls whether the authentication module 13 performs a process as a predetermined process depending on whether the authentication module 13 is installed or not.

[0088] Fig. 10 is a diagram showing an example of a format for a version inquiry. As shown in Fig. 10, there is the following correspondence between the OS version and the generations G1, G2, and G2.5 of the operation panel 940. G1: Android 2.3.3 (registered trademark) G2: Android 4.2.3 (registered trademark) G2.5: Android 6.0.1 (registered trademark) In this embodiment, it is assumed that G2 and G2.5 differ in whether or not the authentication module 13 is present. Therefore, the authentication library 12 judges whether the OS version is earlier than 6.01. The authentication library 12 obtains true if the OS version is earlier than 6.01, and obtains false if the OS version is not earlier than 6.01.

[0089] The authentication library 12 may determine the presence or absence of the authentication module 13 instead of inquiring of the OS.

[0090] Returning to FIG.

[0091] S6, S7: If the OS version is earlier than 6.01, the authentication module 13 is not installed on the operation panel 940. First, the authentication library 12 specifies the user ID input to the electronic device 20 and inquires of the information processing system 10 whether or not the user has a license to log in to the electronic device 20. The information processing system 10 may link the user information of the electronic device 20 with the user information of the information processing system 10, and can check whether or not the user can log in to the on-premise.

[0092] S8: If the user does not have a license to log in to the electronic device 20, a message is displayed on the operation panel 940 indicating that the authentication library 12 cannot be started.

[0093] S9: If the user has a license to log in to the electronic device 20, the authentication library 12 judges whether user authentication is necessary. That is, it judges whether the authentication library 12 holds the user ID, etc. of the information processing system 10 in association with the user who is logged in to the electronic device 20. If the user who is logged in to the electronic device 20 and the user ID, etc. of the information processing system are held in association with each other, authentication of the information processing system 10 is not necessary. This is to show that the user was able to log in to the information processing system 10 in the past.

[0094] When authentication by the information processing system 10 is required, the authentication library 12 displays an authentication screen on the operation panel 940 .

[0095] S10: The user inputs authentication information (user ID, password, etc.) for the information processing system 10. The operation reception unit 22 receives these inputs.

[0096] S11: The authentication library 12 designates authentication information and requests the information processing system 10 to execute authentication.

[0097] S12: The communication unit 42 of the information processing system receives the authentication execution request, and the authentication unit 41 performs user authentication based on the authentication information. The communication unit 42 transmits the authentication result (authentication OK, authentication NG) to the electronic device 20.

[0098] S13: If the authentication is successful, the authentication library 12 notifies the application 11 that the application can be started. The authentication library 12 associates the user who has logged in to the electronic device 20 with the user ID of the information processing system, etc., and holds them.

[0099] S14: The application 11 displays the application start screen and starts up.

[0100] S15: If the authentication is not successful, the authentication library 12 displays on the operation panel 940 a message indicating that the authentication is not successful.

[0101] S16, S17: If authentication by the information processing system 10 is not required, the authentication library 12 starts the application 11 in the same manner as in steps S13 and S14.

[0102] On the other hand, if the OS version is 6.01 or later, the authentication module 13 is present in the operation panel 940. Therefore, the authentication module 13 performs the process related to authentication.

[0103] S18: First, the authentication library 12 inquires of the authentication module 13 whether there is a token associated with the user ID logged in to the electronic device 20.

[0104] S19: The authentication library 12 acquires whether or not a token is cached from the authentication module 13. Note that if a token is associated with an application 11 other than the application 11 that the user wants to start, the authentication library 12 may use that token.

[0105] S20: If the token has been saved, authentication by the information processing system 10 is not required, and therefore the authentication library 12 notifies the application 11 that it can be started.

[0106] S21: The application 11 displays the application start screen and starts up.

[0107] S22: If the token is not stored, the authentication library 12 first requests the authentication module 13 to confirm whether the user has a license to log in to the electronic device 20.

[0108] S23, S24: The authentication module 13 inquires of the information processing system whether or not the user has a license to log in to the electronic device 20 by designating the user ID input to the electronic device 20.

[0109] S25: If the user does not have a license to log in to the electronic device 20, the operation panel 940 displays a message that the authentication module 13 cannot be started.

[0110] S26: If the user has a license to log in to the electronic device 20, since no token is stored, the authentication module 13 links the token to the user logged in to the electronic device 20 and determines whether or not the user ID of the information processing system 10 is held.

[0111] If the authentication module 13 does not hold the user ID or the like of the information processing system 10 associated with the logged-in user, the authentication library 12 displays an authentication screen on the operation panel 940.

[0112] S27: The user inputs authentication information (user ID, password, etc.) for the information processing system 10. The operation reception unit 22 receives these inputs.

[0113] S28: The authentication module 13 designates the authentication information and requests the information processing system 10 to execute authentication.

[0114] S29: The communication unit 42 of the information processing system receives the authentication execution request, and the authentication unit 41 performs user authentication based on the authentication information. The communication unit 42 transmits the authentication result (authentication OK, authentication NG) to the electronic device 20.

[0115] S30: If the authentication is successful, the authentication module 13 notifies the authentication library 12 that activation is possible.

[0116] S31: The authentication module 13 holds the user ID of the electronic device 20 and the token in association with each other. Furthermore, the authentication module 13 may hold the user ID of the electronic device 20 and the user ID of the information processing system 10 in association with each other.

[0117] S32: The authentication library 12 notifies the application 11 that it can be started.

[0118] S33: The application 11 displays the application start screen and starts up.

[0119] S34: If the authentication is not successful, the authentication module 13 displays on the operation panel 940 that the authentication is not successful.

[0120] S35: Even if the token is not saved, if the authentication module 13 holds the user ID of the information processing system 10 linked to the logged-in user, user authentication is not required. In this case, the authentication module 13 notifies the authentication library 12 that activation is possible.

[0121] S36: The authentication library 12 notifies the application 11 that it can be started.

[0122] S37: The application 11 displays the application start screen and starts up.

[0123] In this way, the authentication library 12 of the electronic device 20 switches between performing authentication or requesting authentication from the authentication module 13 depending on the OS version, so that the electronic device 20 can operate the same authentication library 12 even if the OS version is different.

[0124] <Major Effects> As described above, the electronic device 20 of this embodiment can use the authentication library 12 having the same functions regardless of the version of the platform such as the OS. Since the same authentication library 12 is sufficient, the developer of the application 11 can release the application 11 with the same binary even if the OS version changes, and it is expected that development costs and maintenance costs will be reduced. In addition, the developer of the authentication library 12 can unify the authentication library 12 that is developed or maintained regardless of the version of the platform such as the OS, and it is expected that development costs and maintenance costs will be reduced.

[0125] <Other application examples> The above describes the best mode for carrying out the present invention using examples, but the present invention is not limited to these examples in any way, and various modifications and substitutions can be made within the scope that does not deviate from the gist of the present invention.

[0126] For example, in this embodiment, the application 11 has the function of the authentication module 13, but the application 11 may have the function of the SDKService 15 in a library. In this case, the library controls whether or not to process the SDKService 15 depending on the version of the OS.

[0127] In addition, the configuration examples in Fig. 6 and the like are divided according to main functions in order to facilitate understanding of the processing by the electronic device 20 and the information processing system 10. The present invention is not limited by the manner in which the processing units are divided or the names of the processing units. The processing by the electronic device 20 and the information processing system 10 can be divided into more processing units depending on the processing content. Also, it can be divided so that one processing unit includes more processes.

[0128] Additionally, the devices described in the examples are merely illustrative of one of several computing environments for implementing the embodiments disclosed herein. In one embodiment, the information processing system 10 includes a plurality of computing devices, such as a server cluster, configured to communicate with each other via any type of communication link, including a network, shared memory, and the like, and to implement the processes disclosed herein.

[0129] Each function of the above-described embodiments can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to execute each function by software, such as a processor implemented by an electronic circuit, and a device such as an ASIC (Application Specific Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), or a conventional circuit module designed to execute each function described above. [Explanation of symbols]

[0130] 10. Information Processing Systems 11 Applications 12 Authentication Library 13 Authentication Module 20 Electronic equipment [Prior art documents] [Patent documents]

[0131] [Patent Document 1] JP 2015-056137 A

Claims

1. An electronic device that executes an application that operates on a platform, the application has a library; The library comprises: determining whether a module that cooperates with the library is installed based on version information of the platform acquired from the platform; Controlling whether to perform a process to be performed by the module as a predetermined process depending on whether the module is installed or not; 1. An electronic device comprising:

2. 2. The electronic device according to claim 1, wherein, when the module is installed, the library requests the module to execute the predetermined process.

3. 3. The electronic device according to claim 1, wherein, if the module is not installed, the library executes the predetermined process that is to be performed by the module.

4. The electronic device communicates with an information processing system via a network; 4. The electronic device according to claim 2, wherein the predetermined process is a process of authenticating a user for the information processing system.

5. When the library associates a user who is logged in to the electronic device with a user of the information processing system, The electronic device according to claim 4 , wherein the application is started without performing a user authentication process for the information processing system.

6. When the authentication process of the user for the information processing system is successful, the module stores the token transmitted from the information processing system in association with the user who is logged in to the electronic device; The electronic device according to claim 4 , wherein, if the token is stored, the application is started without performing a user authentication process on the information processing system.

7. The module, even if the token is not stored, When a user who is logged in to the electronic device is associated with a user of the information processing system, The electronic device according to claim 6 , wherein the application is started without performing a user authentication process for the information processing system.

8. A library included in an application running on a platform, The electronic device on which the application is installed A process of determining whether a module that cooperates with the library is installed based on version information of the platform acquired from the platform; A process of controlling whether or not to perform a process to be performed by the module as a predetermined process depending on whether or not the module is installed; A library characterized by executing the following:

9. A processing method performed by an electronic device that executes an application that operates on a platform, comprising: The application has a library, determining whether a module that cooperates with the library is installed based on version information of the platform acquired from the platform; Controlling whether to perform a process to be performed by the module as a predetermined process depending on whether the module is installed or not; A processing method comprising:

Citation Information

Patent Citations

  • Library sharing system

    JP1993053888A

  • Installing method, installation system, processor, computer program and recording medium

    JP2002318694A

  • Authentication system, information recording medium, authentication method, program

    JP2005190184A

  • Information processing device, information processing system, and program

    JP2013134655A

  • JP2015‐056137A