Information processing system for ending a first program when a second program ends

An information processing system includes a detection unit configured to detect an end of a second application program that cooperates with a first application program operated by a user; a report unit configured to report the end to the first application program, and end the first application program; and a request unit configured to request a third application program to display information relevant to the end of the second application program.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing system, an information processing method, and an information processing terminal.

2. Description of the Related Art

There is a system format in which two or more application programs (hereinafter, “applications”) cooperate with each other in providing services to users. For example, in a client/server system, a service is provided by the cooperation of the application on the client side and the application on the server side. Furthermore, there are cases where a service is provided by the cooperation of an application that assumes the role of an interface such as GUI (Graphical User Interface) and an application that assumes the role of a business logic. Basically, one of the applications that cooperate with each other (hereinafter, “UI application”) is directly operated by the user, and the other one of the applications (hereinafter, “logic application”) executes a process in the background.

In the above system format, there are cases where the logic application abnormally ends due to some reason. In this case, the UI application loses the cooperation partner, and can no longer continue to perform normal processing, and is thus ended (terminated). However, an inconvenience arises when the UI application suddenly ends.

SUMMARY OF THE INVENTION

The present invention provides an information processing system, an information processing method, and an information processing terminal, in which one or more of the above-described disadvantages are eliminated.

According to an aspect of the present invention, there is provided an information processing system including a detection unit configured to detect an end of a second application program that cooperates with a first application program operated by a user; a report unit configured to report the end to the first application program, and end the first application program; and a request unit configured to request a third application program to display information relevant to the end of the second application program.

According to an aspect of the present invention, there is provided an information processing method executed by an information processing system, the information processing method including detecting an end of a second application program that cooperates with a first application program operated by a user; reporting the end to the first application program, and ending the first application program; and requesting a third application program to display information relevant to the end of the second application program.

According to an aspect of the present invention, there is provided an information processing terminal including a detection unit configured to detect an end of a second application program that cooperates with a first application program operated by a user; a report unit configured to report the end to the first application program, and end the first application program; and a request unit configured to request a third application program to display information relevant to the end of the second application program.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A description is given, with reference to the accompanying drawings, of embodiments of the present invention.FIG. 1illustrates a configuration example of an information processing system according to an embodiment of the present invention. In an information processing system1illustrated inFIG. 1, a device20is communicably connected to an information processing device10. Communication between the device20and the information processing device10is performed via USB (Universal Serial Bus), or a network such as Near Field Communication, and LAN (wired or wireless).

The device20is a device having an operation panel, such as an image forming apparatus, a projector, a TV conference system, a digital camera, etc.

The information processing device10is an electronic device that can execute complete image processing by itself, such as a smartphone and a tablet terminal. In the present embodiment, the information processing device10functions as an operation unit (operation panel) of the device20. For example, the information processing device10is provided by being fixed to a predetermined position of the device20(for example, a position where the operation panel is arranged). Therefore, the information processing device10and the device20may be recognized as a single device. Furthermore, the information processing device10may be detachable (separable) from the device20. In a state where the information processing device10is detached, the information processing device10may function as an operation unit of the device20via wireless communication, etc.

FIG. 2illustrates a hardware configuration example of an information processing device according to an embodiment of the present invention. InFIG. 2, the information processing device10includes a CPU101, a memory102, a secondary storage device103, a touch panel104, a wireless communication device105, and a device interface106.

The secondary storage device103stores programs, etc., installed in the information processing device10. The memory102reads a program from the secondary storage device103and stores the program, when an instruction to activate the program is given. The CPU101realizes functions relevant to the information processing device10according to programs stored in the memory102.

The touch panel104is an electronic component including both an input function and a display function, and displays information and receives input from a user. The touch panel104includes a display device111and an input device112.

The display device111is a liquid crystal display, etc., and assumes the role of a display function of the touch panel104. The input device112is an electronic component including a sensor for detecting the touch of an object touching the display device111. The method of detecting the touch of a touching object may be any known method such as an electrostatic method, a resistance film method, or an optical method. Note that a touch object is an object that touches the contact surface (front surface) of the touch panel104. Examples of such an object are the user's finger, an exclusive-use pen, and a general pen.

The wireless communication device105is an electronic component such as an antenna, which is needed for performing communication in a wireless LAN (Local Area Network) or a mobile communication network. The device interface106is an interface for communicating with the device20.

FIG. 3illustrates a software configuration example of the information processing system1according to an embodiment of the present invention. InFIG. 3, the device20includes a device platform21and one or more device applications22that operate on the device platform21. These elements are programs for causing a CPU of the device20to execute predetermined processes.

The device platform21provides an environment for executing the device application22. The device platform21implements control of activating and stopping the device application22, and executes a function common to a plurality of device applications22. For example, the common function is used from the device applications22via an API (Application Program Interface) included in the device platform21. An example of the device platform21is an OS (Operating System). Furthermore, a device application22platform such as an OS and a Java (registered trademark) virtual machine may constitute the device platform21.

The device application22is an application program for controlling the device20and causing the device20to execute a job (hereinafter, simply referred to as an “application”). InFIG. 3, the device application22A and the device application22B are illustrated as examples of the device application22. In the present embodiment, the functions of the device application22A and the device application22B are not limited to particular functions.

Meanwhile, the information processing device10includes a panel platform11and a plurality of applications that operate on the panel platform11. These elements are programs for causing the CPU101to execute predetermined processes.

The panel platform11provides an environment for executing applications. The panel platform11implements control of activating and stopping an application, and executes a function common to a plurality of applications. For example, the common function is used from the applications via an API included in the panel platform11. Furthermore, the panel platform11may control the login of the user to the information processing device10. Note that an example of the panel platform11is an OS (Operating System). Furthermore, application platforms such as an OS and a Java (registered trademark) virtual machine may constitute the panel platform11.

In the present embodiment, the applications of the information processing device10are classified into UI applications12and service applications13according to its role. The UI application12is an application that assumes the responsibility of cooperating with the device application22and providing a user interface such as a screen relevant to the device application22of the cooperation partner. That is to say, the UI application12is an application that is directly used by the user. InFIG. 3, the UI application12A and the UI application12B are illustrated as examples of the UI application12. In the present embodiment, the UI application12and the device application22are associated with each other in a one-on-one manner. The UI application12A is the UI application12for cooperating with the device application22A. The UI application12B is the UI application12for cooperating with the device application22B.

The service application13is an application for providing services that are commonly used by the UI application12. InFIG. 3, a common screen application13aand an error control application13bare illustrated as examples of the service application13. The common screen application13ais the service application13that executes the displaying of a common screen (hereinafter, “common screen”) to the UI applications12. An example of such a common screen is a screen for displaying information relevant to abnormalities on the side of the device application22. Functions of the error control application13bare described below.

Detailed descriptions are given of the UI applications12and the error control application13b.FIG. 4illustrates a functional configuration example of the UI applications12and the error control application13b.

As illustrated inFIG. 4, the UI applications12such as the UI application12A and the UI application12B include a main part121and an application template122. The main part121is the part on which a process unique to the UI application12has been executed. That is to say, the main part121is the part for realizing the essential function of the corresponding UI application12.

The application template122is a part common to the UI applications12, and a part that is implemented as a template created in advance. For example, to the developer of the UI application12, the source code of the application template122may be distributed, or an object code in which the source code is compiled may be distributed. When a source code is distributed, the information processing device10is preferably provided with a mechanism for checking whether the source code has been altered.

The application template122includes a fixed part1221and a change part1222. The fixed part1221includes an interface that can be called from outside (for example, the service application13) and a fixed implementation with respect to the interface, which are to be included in the UI application12. A fixed implementation is an implementation that is prohibited from being overwritten. Therefore, the fixed part1221is an implementation common to a plurality of UI applications12. In the present embodiment, the fixed part1221includes an interface for receiving a report indicating the end of the device application22that is the cooperation partner, and an implementation of an ending (terminating) process in response to the report. The change part1222is a part for providing a mechanism for customizing part of the fixed part1221. Therefore, at the change part1222, it is possible to make a change unique to each UI application12, with respect to the ending process executed by the fixed part1221. However, the range in which customization is possible is limited according to the change part1222. For example, among the processes implemented in the fixed part1221, it is not possible to remove, from the change part1222, a process that is a prerequisite for the UI application12to execute, among the processes implemented in the fixed part1221. Basically, in the fixed part1221, a new process is added, with respect to the ending process executed by the fixed part1221. For example, an example of customization in the change part1222is a process deleting an operation file unique to a particular UI application12.

When object-oriented programming is used for implementing the UI application12, the change part1222may be a sub class of the fixed part1221. In this case, in the sub class, customization of the ending process is performed. Alternatively, the change part1222may be a predetermined function that the fixed part1221is scheduled to call at a predetermined timing. In this case, in the predetermined function, a customization process of a screen displayed by the fixed part1221is performed. Alternatively, the change part1222may be a script file that the fixed part1221reads at a predetermined timing. In this case, in the script file, a script is described, which indicates the customization process of the screen displayed by the fixed part1221. The fixed part1221interprets the script, and executes the process defined in the script at the time of the ending process. Alternatively, the change part1222may be a setting file that the fixed part1221reads. In this case, in the setting file, for example, the fixed part1221, in which a list of file names to be deleted is set, executes the deleting of files relevant to the file names described in the setting file.

Meanwhile, the error control application13bincludes a detection unit131, a report unit132, and a request unit133. The detection unit131detects the end of the device application22. The detection target may be limited to an ending caused by an abnormality. The report unit132reports the end of the device application22to the UI application12that cooperates with or corresponds to the device application22whose end is detected by the detection unit131. The association relationship between the device application22and the UI application12can be identified by referring to an association information storage unit14. The association information storage unit14stores, in association with each other, the identification information of the device application22and the identification information of the UI application12that cooperate with each other. For example, the association information storage unit14may be realized with the use of the secondary storage device103or the memory102. Note that the identification information of the device application22and the identification information of the UI application12are hereinafter referred to as an “application ID”. The request unit133requests the common screen application13ato display a screen indicating information relevant to the end of the device application22, in response to the detection unit131detecting the end of the device application22.

In the following, a description is given of processing procedures executed in the information processing system1.FIG. 5is a sequence diagram for describing a first example of processing procedures executed by the information processing system1. The initial state ofFIG. 5is assumed to be a state in which the device application22A and the UI application12A are respectively activated, and by the cooperation of the device application22A and the UI application12A, execution of a process requested by a user has started.

During the execution of the process, when an abnormality occurs and the device application22A ends (terminates) (step S101), the device platform21specifies the application ID of the device application22A, and sends a report of the abnormal ending of the device application22A, to the error control application13b(step S102). In response to the report, the detection unit131of the error control application13bdetects the end of the device application22A. Note that the report may include information indicating the factor of the abnormal ending (for example, an error code). Furthermore, the report of the abnormal ending may be sent from the device platform21to the panel platform11, and then the panel platform11may transmit the report to the error control application13b.

Next, the report unit132of the error control application13brefers to the association information storage unit14and identifies the application ID of the UI application12corresponding to the application ID specified in the report of the abnormality ending (step S103). Here, the application ID of the UI application12A is identified. Then, the report unit132sends the report of the abnormal ending of the device application22A, to the UI application12A (step S104). The communication between the applications may be realized by using a known technology such as inter-process communication, events, or signals.

The fixed part1221of the UI application12A starts the ending process in response to the report. In the process of performing the ending process, the fixed part1221uses the change part1222to execute a customization process (step S105). A customization process is an ending process unique to the UI application12A. When the customization process ends (step S106), the fixed part1221ends the process or the thread of the UI application12A (step S107).

When the end event of the UI application12A is detected by the error control application13b(step S108), the request unit133of the error control application13brequests the common screen application13ato output the error information indicating the abnormal ending of the device application22(step S109). This request may include information indicating the factor of the abnormal ending, included in the report of the abnormal ending.

The common screen application13adisplays an error screen indicating error information in response to the request (step S110). The error screen may display that the device application22A has abnormally ended, and may display the factor of the abnormal ending.

The processing procedures described with reference toFIG. 5may be replaced with the processing procedures as illustrated inFIG. 6.FIG. 6is a sequence diagram for describing a second example of processing procedures executed by the information processing system1. InFIG. 6, the same steps as those ofFIG. 5are denoted by the same step numbers, and descriptions thereof are appropriately omitted.

InFIG. 6, the request unit133of the error control application13brequests the common screen application13ato output error information without waiting for the UI application12A to end, which is the point that is different fromFIG. 5. That is to say, the ending of the UI application12A and the output of the error information are executed without being in synchronization with each other. In these procedures also, it is possible to report, to the user, the end of the device application22A, which is the factor causing the end of the UI application12A.

As described above, according to the present embodiment, when the device application22has ended, the displaying of the screen indicating the ending is performed in an integrated manner by the common screen application13a. Therefore, in each UI application12, it is possible to reduce the need of performing the implementation for displaying the screen, and uniformity of the screens can be expected. Furthermore, in a part such as the panel platform11on which a plurality of programs depend, it is possible to reduce the need of performing the implementation for displaying the screen. Furthermore, compared to the case where the process of displaying the screen is implemented at the UI application12, the usage amount of the memory can be expected to decrease.

Furthermore, when the device application22ends, the process to be executed by the UI application12that is cooperating with the device application22is implemented in advance in the fixed part1221of the application template122. Therefore, the man-hours for developing the UI application12can be expected to decrease. Furthermore, the operations of the UI application12can be expected to be uniform, when the device application22ends.

Note that the fixed part1221of the UI application12does not necessarily need to be distributed in the format of the application template122. For example, an interface to be implemented in the UI application12may be defined, and implementation of the part corresponding to the fixed part1221may be transferred to the developer of each UI application12. In this case, the degree of freedom increases in the implementation with respect to the interface, and therefore the change part1222need not be provided.

Furthermore, the present embodiment may be applied to a system including an application operating in one of the computers and an application which cooperates with the application and which operates in another computer, in computers connected to each other via a network.

In the present embodiment, the UI application12is an example of a first application program, the device application22is an example of a second application program, a screen display application is an example of a third application program, the fixed part1221is an example of a common part, and the change part1222is an example of a unique part.

In the conventional system format, there are cases where the logic application abnormally ends due to some reason. In this case, the UI application loses the cooperation partner, and can no longer continue to perform normal processing, and is thus ended (terminated). However, an inconvenience arises when the UI application suddenly ends.

One approach to overcome the inconvenience is to display a screen indicating that an abnormality has occurred in the logic application. Such a screen is common to a plurality of UI applications, and therefore if the screen is displayed by a system providing an execution environment for the application such as an OS (Operating System) and an application platform, it is possible to reduce the man-hours for developing the application.

However, the system is depended on by a plurality of applications and other programs, etc., and therefore modification of the system generally has an impact on a wide range. Thus, a conventional mechanism, which demands the modification of the system in accordance with the addition of a new screen, is not a desirable mechanism.

Meanwhile, when a conventional screen as described above needs to be implemented for each application, various problems may arise, such as the increase in the man-hours for developing the application, the lack of uniformity of the screens, and a delay in providing a screen operated by the user.

According to one embodiment of the present invention, an information processing system, an information processing method, and an information processing terminal are provided, which are capable of providing a new display mechanism relevant to a screen common to a plurality of applications.

The information processing system, the information processing method, and the information processing terminal are not limited to the specific embodiments described herein, and variations and modifications may be made without departing from the spirit and scope of the present invention.

The present application is based on and claims the benefit of priority of Japanese Priority Patent Application No. 2013-116700, filed on Jun. 3, 2013, the entire contents of which are hereby incorporated herein by reference.