Patent Description:
Recently, communication technologies for networks including the Internet have progressed rapidly, and so-called cloud service, in which users are provided with various applications via a network, has been realized. By using the cloud service, even when a user does not possess an application program, the user can use the application. A previously proposed arrangement is disclosed in <CIT>.

In a cloud game, operation information input to a client terminal is transmitted to a server system. The server system performs arithmetic processing of a game program using the operation information, and thereafter performs streaming distribution of a rendered game image and game sound to the client terminal. In such a cloud computing system, it is desirable to be able to provide a convenient cloud service to users.

In addition, when the cloud game is realized, one user can not only execute a game program having a certain title on the client terminal but also execute a game program having the same title on a cloud server. When such a usage scene is assumed, it is desirable to provide an environment in which a user can efficiently start and operate a game.

It is accordingly an object of the present invention to realize the environment of a convenient information processing system.

<FIG> illustrates a game system <NUM> according to an embodiment of the present invention. The game system <NUM> is illustrated as one mode of an information processing system that processes an application and which suitably manages save data. The information processing system in the present invention may be configured to have a function of processing not only a game but also other kinds of applications.

The game system <NUM> includes a client terminal <NUM> as a user terminal, a server system <NUM>, a first storage system <NUM>, and a second storage system <NUM>. <FIG> illustrates an example in which the client terminal <NUM> is installed within a house. An access point (hereinafter referred to as an "AP") <NUM> within the house has functions of a wireless access point and a router. The client terminal <NUM> is connected to the AP <NUM> via radio or wire to be communicatably connected to the server system <NUM>, the first storage system <NUM>, and the second storage system <NUM> on a network <NUM>. Incidentally, the second storage system <NUM> may be connected to the network <NUM> via the server system <NUM>. While the server system <NUM> may be constituted of a plurality of servers as illustrated in the figure, the server system <NUM> may be constituted of a single server.

An auxiliary storage device <NUM> is a mass storage device such as an HDD (hard disk drive), a flash memory, or the like. The auxiliary storage device <NUM> may be an external storage device connected to the client terminal <NUM> by USB (Universal Serial Bus) or the like, or may be an internal storage device. The auxiliary storage device <NUM> is a local storage device of the client terminal <NUM>. The auxiliary storage device <NUM> can store the save data of an application processed by the client terminal <NUM> and the like.

An output device <NUM> may be a television set including a display that outputs an image and a speaker that outputs sound, or may be a computer display. A camera <NUM> as an imaging device is provided in the vicinity of the output device <NUM> to image a space around the output device <NUM>. The client terminal <NUM> is connected to an input device <NUM> operated by a user by radio or by wire. The input device <NUM> outputs operation information indicating a result of operation of the user to the client terminal <NUM>.

The input device <NUM> may be a game controller having a plurality of input sections such as a plurality of push type operating buttons, an analog stick enabling an analog quantity to be input, a rotary button, and the like. However, the input device <NUM> may be an input interface device such as a keyboard, a mouse, a touch pad, or the like.

When the client terminal <NUM> receives operation information from the input device <NUM>, the client terminal <NUM> reflects the operation information in the processing of an OS (system software) or an application, and outputs a result of the processing from the output device <NUM>. In this sense, the client terminal <NUM> functions as an information processing device capable of processing an application singly. For example, the client terminal <NUM> may be a stationary game device.

Incidentally, the game system <NUM> in the present embodiment is a client server system, and is, in particular, configured as a cloud computing system (cloud gaming system). An application such as a game or the like is processed in the server system <NUM> in response to a request from the user. The client terminal <NUM> transmits operation information from the input device <NUM> to the server system <NUM>. In addition, the client terminal <NUM> receives a result of processing of the application from the server system <NUM>, and outputs the processing result from the output device <NUM>.

The server system <NUM> includes: a store server <NUM> that gives the user a license as a right to execute an application; and a cloud server <NUM> that processes the application and which performs streaming distribution of an application image and/or application sound as a result of the processing to the client terminal <NUM>. A database <NUM> retains the disk images of a plurality of applications. The cloud server <NUM> reads a disk image from the database <NUM> and executes the disk image in response to a request from the client terminal <NUM>. The cloud server <NUM> has a plurality of processing units having a function of performing arithmetic processing of an application, assigns one processing unit to one user, and thus provides the application to the user. For example, when the cloud server <NUM> has <NUM> processing units, <NUM> users can access the cloud server <NUM>, and be provided with the application.

Such a game system <NUM> provides game processing service to a plurality of users on demand via the network <NUM>. The user of the client terminal <NUM> provided with the service from the cloud server <NUM> operates a game image displayed on the output device <NUM> using the input device <NUM>. When the user requests save data to be stored, the cloud server <NUM> stores the save data of the cloud game in the second storage system <NUM>.

As described above, the client terminal <NUM> has calculation resources such as a CPU (Central Processing Unit) or the like, and inherently has a function of executing an application in a local environment of the client terminal <NUM>. Therefore, in a case where the user plays a certain game on the cloud server <NUM> (a mode in which the user plays a game processed by the cloud server <NUM> may hereinafter be referred to as "cloud play"), the user may install the same game onto the client terminal <NUM>, and play the game in the local environment (a mode in which the user plays a game processed by the client terminal <NUM> may hereinafter be referred to as "local play"). At this time, the user can desirably play the game using save data stored in the second storage system <NUM>.

Accordingly, the game system <NUM> according to the present embodiment provides the user with an environment in which save data is managed efficiently. The game system <NUM> includes, as a save data storage function, the auxiliary storage device <NUM> as a local storage device and the first storage system <NUM> and the second storage system <NUM>. Incidentally, it suffices to provide at least the auxiliary storage device <NUM> and the second storage system <NUM> as a save data storage function in the game system <NUM>. However, a storage function further enhancing the convenience of the user can be realized by providing the first storage system <NUM>. In this case, the first storage system <NUM> is configured as a backup storage for the auxiliary storage device <NUM>. The user can upload the save data of a game which save data is stored in the auxiliary storage device <NUM> to the first storage system <NUM>. Consequently, even when a malfunction of the auxiliary storage device <NUM> causes a trouble in accessing the save data, the user can suitably use the save data backed up to the first storage system <NUM>.

On the other hand, the second storage system <NUM> is connected to the server system <NUM> via the network <NUM> or another local network to store save data generated in the server system <NUM>. The second storage system <NUM> may be configured to synchronize the stored save data with the save data of the auxiliary storage device <NUM> on the client terminal <NUM> side. Thus, whether the user executes a game application of a same title on the client terminal <NUM> or on the server system <NUM>, the user can use the latest save data. Incidentally, the save data stored in the second storage system <NUM> may be uploaded to the first storage system <NUM> via the client terminal <NUM> so that the first storage system <NUM> performs backup storage of the save data. The game system <NUM> can thus realize suitable management of save data by making efficient use of the first storage system <NUM> and the second storage system <NUM>.

Description will next be made of a button configuration of the input device <NUM>.

<FIG> illustrates an external constitution of an upper surface of the input device. The user operates the input device <NUM> while holding a left grip portion 78b with a left hand and holding a right grip portion 78a with a right hand. The upper surface of a casing of the input device <NUM> is provided with a direction key <NUM>, analog sticks 77a and 77b, and four kinds of operating buttons <NUM> as input sections. The four kinds of buttons <NUM> to <NUM> are marked with different figures of different colors so as to be distinguished from one another. Specifically, the circle button <NUM> is marked with a red circle, the cross button <NUM> is marked with a blue cross, the square button <NUM> is marked with a purple square, and the triangle button <NUM> is marked with a green triangle. A touch pad <NUM> is provided in a flat region between the direction key <NUM> and the operating buttons <NUM> on the upper surface of the casing. The touch pad <NUM> also functions as a depression type button that sinks downward when pressed by the user and which returns to an original position when released by the user.

A home button <NUM> is provided between the two analog sticks 77a and 77b. The home button <NUM> is used to turn on power to the input device <NUM> and simultaneously activate a communication function that connects the input device <NUM> and the client terminal <NUM> to each other. Incidentally, when the home button <NUM> is depressed in a case where the main power supply of the client terminal <NUM> is off, the client terminal <NUM> receives a connection request transmitted from the input device <NUM> also as an instruction to turn on the main power supply. The main power supply of the client terminal <NUM> is thereby turned on. After the input device <NUM> is connected to the client terminal <NUM>, the home button <NUM> is also used to display a home screen on the client terminal <NUM>.

A SHARE button <NUM> is provided between the touch pad <NUM> and the direction key <NUM>. The SHARE button <NUM> is used to input an instruction from the user to the OS or system software in the client terminal <NUM>. In addition, an OPTIONS button <NUM> is provided between the touch pad <NUM> and the operating buttons <NUM>. The OPTIONS button <NUM> is used to input an instruction from the user to an application (game) executed in the client terminal <NUM>. The SHARE button <NUM> and the OPTIONS button <NUM> may each be formed as a push type button.

<FIG> illustrates an external constitution of a side surface on the back side of the input device. On the upper side of the side surface on the back side of the casing of the input device <NUM>, the touch pad <NUM> is extended from the upper surface of the casing. A horizontally long light emitting portion <NUM> is provided on the lower side of the side surface on the back side of the casing. The light emitting portion <NUM> has a red (R) LED, a green (G) LED, and a blue (B) LED. The light emitting portion <NUM> illuminates according to light emission color information transmitted from the client terminal <NUM>. On the side surface on the back side of the casing, an upper side button 83a, a lower side button 84a, an upper side button 83b, and a lower side button 84b are disposed at left and right positions symmetric in a longitudinal direction. The upper side button 83a and the lower side button 84a are operated by the index finger and the middle finger, respectively, of the right hand of the user. The upper side button 83b and the lower side button 84b are operated by the index finger and the middle finger, respectively, of the left hand of the user. As illustrated in the figure, the light emitting portion <NUM> is disposed between the line of the upper side button 83a and the lower side button 84a on the right side and the line of the upper side button 83b and the lower side button 84b on the left side. Therefore the light emitting portion <NUM> is not hidden by the index fingers or the middle fingers operating the respective buttons. The camera <NUM> can thus image the illuminating light emitting portion <NUM> ideally. The upper side button <NUM> may be configured as a push type button. The lower side button <NUM> may be configured as a rotatably supported trigger type button.

<FIG> illustrates a functional block diagram of the client terminal <NUM>. The client terminal <NUM> includes a main power button <NUM>, a power-on LED <NUM>, a standby LED <NUM>, a system controller <NUM>, a clock <NUM>, a device controller <NUM>, a media drive <NUM>, a USB module <NUM>, a flash memory <NUM>, a wireless communication module <NUM>, a wire communication module <NUM>, a subsystem <NUM>, and a main system <NUM>.

The main system <NUM> includes a main CPU (Central Processing Unit), a memory as a main storage device and a memory controller, a GPU (Graphics Processing Unit), and the like. The GPU is used mainly for arithmetic processing of a game program. These functions may be configured as a system on chip, and formed on one chip. The main CPU has a function of starting the OS and executing an application installed in the auxiliary storage device <NUM> under an environment provided by the OS. In addition, in the game system <NUM> configured as a cloud computing system, the main CPU has another function of outputting, from the output device <NUM>, an application image and application sound provided from the server system <NUM>.

The subsystem <NUM> includes a sub-CPU, a memory as a main storage device and a memory controller, and the like. The subsystem <NUM> does not include a GPU. The number of circuit gates of the sub-CPU is smaller than the number of circuit gates of the main CPU. The power consumption in operation of the sub-CPU is lower than the power consumption in operation of the main CPU. As described above, the sub-CPU operates while the main CPU is in a standby state. The processing functions of the sub-CPU are limited to reduce the power consumption of the sub-CPU. Incidentally, the sub-CPU and the memory may be formed on separate chips.

The main power button <NUM> is an input section to which an operating input from the user is performed. The main power button <NUM> is provided to a front surface of a casing of the client terminal <NUM>. The main power button <NUM> is operated to turn on or off the supply of power to the main system <NUM> of the client terminal <NUM>. An on state of the main power supply will hereinafter mean that the main system <NUM> is in an active state. An off state of the main power supply will hereinafter mean that the main system <NUM> is in a standby state. The power-on LED <NUM> is lit when the main power button <NUM> is turned on. The standby LED <NUM> is lit when the main power button <NUM> is turned off.

The system controller <NUM> detects the depression of the main power button <NUM> by the user. When the main power button <NUM> is depressed while the main power supply is in an off state, the system controller <NUM> obtains the depressing operation as a "turn-on instruction. " When the main power button <NUM> is depressed while the main power supply is in an on state, on the other hand, the system controller <NUM> obtains the depressing operation as a "turn-off instruction.

The main CPU has a function of executing a game program installed in the auxiliary storage device <NUM> or on a ROM medium <NUM>, whereas the sub-CPU does not have such a function. However, the sub-CPU has a function of accessing the auxiliary storage device <NUM>. The sub-CPU is configured to have only such limited processing functions, and is therefore able to operate with lower power consumption than the main CPU. These functions of the sub-CPU are performed when the main CPU is in a standby state. Because the subsystem <NUM> is operating during the standby period of the main system <NUM>, the client terminal <NUM> according to the present embodiment always maintains a state of signing in to the network service.

The clock <NUM> is a real-time clock. The clock <NUM> generates present date and time information, and supplies the present date and time information to the system controller <NUM>, the subsystem <NUM>, and the main system <NUM>.

The device controller <NUM> is configured as an LSI (Large-Scale Integrated Circuit) that transfers information between devices like a Southbridge. As illustrated in the figure, the device controller <NUM> is connected with devices such as the system controller <NUM>, the media drive <NUM>, the USB module <NUM>, the flash memory <NUM>, the wireless communication module <NUM>, the wire communication module <NUM>, the subsystem <NUM>, the main system <NUM>, and the like. The device controller <NUM> accommodates differences between electrical characteristics of the respective devices and differences between data transfer rates, and controls data transfer timing.

The media drive <NUM> is a drive device that is loaded with a ROM medium <NUM> on which software such as a game application or the like and license information are recorded, drives the ROM medium <NUM>, and reads a program, data, and the like from the ROM medium <NUM>. The ROM medium <NUM> is a read-only recording medium such as an optical disk, a magnetooptical disk, a Blu-ray disk, or the like.

The USB module <NUM> is a module connected to an external device by a USB cable. The USB module <NUM> may be connected to the auxiliary storage device <NUM> and the camera <NUM> by a USB cable. The flash memory <NUM> is an auxiliary storage device forming an internal storage. The wireless communication module <NUM> performs wireless communication with the input device <NUM>, for example, under a communication protocol such as a Bluetooth (registered trademark) protocol, an IEEE <NUM> protocol, or the like. Incidentally, the wireless communication module <NUM> may support a third-generation (3rd Generation) digital mobile telephone system compliant with an IMT-<NUM> (International Mobile Telecommunication <NUM>) standard defined by the ITU (International Telecommunication Union), or may further support a digital mobile telephone system of another generation. The wire communication module <NUM> performs wire communication with an external device. The wire communication module <NUM> is connected to the network <NUM> via the AP <NUM>, for example.

A configuration of the client terminal <NUM> will first be described. <FIG> illustrates a configuration of the client terminal <NUM>. The client terminal <NUM> includes a processing unit <NUM> and a communicating unit <NUM>. The processing unit <NUM> includes a receiving section <NUM>, a transmitting section <NUM>, an obtaining section <NUM>, an icon display section <NUM>, a notifying section <NUM>, an application executing section <NUM>, an output processing section <NUM>, a monitoring section <NUM>, and a save data managing section <NUM>. The transmitting section <NUM> includes a request transmitting block <NUM>, an operation information transmitting block <NUM>, and a wait canceling information transmitting block <NUM>. The communicating unit <NUM> is represented as a configuration combining the functions of the wireless communication module <NUM> and the wire communication module <NUM> illustrated in <FIG>.

The elements described as functional blocks performing various processing in <FIG> can be configured by a circuit block, a memory, or another LSI in terms of hardware, and are implemented by a program loaded in a memory or the like in terms of software. Hence, it is to be understood by those skilled in the art that these functional blocks can be implemented in various forms by only hardware, only software, or combinations of hardware and software, and are not limited to any one of the forms.

The receiving section <NUM> receives operation information of the input device <NUM> via the communicating unit <NUM>. When a cloud game is to be started, the receiving section <NUM> receives a request to execute an application in the server system <NUM>. The transmitting section <NUM> transmits the application execution request, the operation information of the input device <NUM>, and the like to the server system <NUM> via the communicating unit <NUM>. The obtaining section <NUM> obtains a result of processing of the application, various kinds of information, and various kinds of data from the server system <NUM> via the communicating unit <NUM>. The icon display section <NUM> displays the icon images of applications side by side on a home screen. The notifying section <NUM> displays a notification related to a game, particularly a notification related to a cloud game which notification is transmitted from the server system <NUM>. Incidentally, the notifying section <NUM> may perform audio output of a notification related to a game. The application executing section <NUM> has a function of executing an application program retained in the auxiliary storage device <NUM> or an application program recorded on the ROM medium <NUM>. The application executing section <NUM> in this case is represented as including functions realized by the application program. The output processing section <NUM> outputs an application image and application sound to the output device <NUM>. The monitoring section <NUM> monitors the operating conditions of the client terminal <NUM>, or specifically monitors the presence or absence of an input in the input device <NUM>. The monitoring section <NUM> has a function of measuring a period during which there is no input from the input device <NUM> (non-operation period). The save data managing section <NUM> has a save data managing function that uploads or downloads save data to or from the first storage system <NUM> and/or the second storage system <NUM>.

A configuration of the cloud server <NUM> will next be described.

<FIG> illustrates a configuration of the cloud server <NUM>.

Incidentally, in the present embodiment, description will be made supposing that the server system <NUM> includes the store server <NUM> and the cloud server <NUM>. However, the store server <NUM> and the cloud server <NUM> may be configured as a single server into which respective functions are integrated. Hence, the store server <NUM> may include part or the whole of the configuration of the cloud server <NUM> illustrated in <FIG>, and the cloud server <NUM> may include part or the whole of the configuration of the store server <NUM> not illustrated in the figure. Hereinafter, for the convenience of description, suppose that the store server <NUM> has the role of an entrance for the user to play a cloud game, and that the cloud server <NUM> has the role of providing the cloud game to the user. However, it suffices for the configuration of the cloud server <NUM>, which configuration will be described in the following, to be provided at least to the server system <NUM>. The following description is not intended to clearly distinguish the functions of the store server <NUM> from the functions of the cloud server <NUM>.

The cloud server <NUM> includes a managing unit <NUM>, a communicating unit <NUM>, and a plurality of processing units 204a, 204b,. , and 204z (which may hereinafter be referred to collectively as "processing units <NUM>"). The plurality of processing units <NUM> have a function of reading the disk image of an application stored in the database <NUM>, and executing the application program. The cloud server <NUM> for example has <NUM> processing units <NUM>, and has a function of assigning the processing units <NUM> to the client terminals <NUM> of <NUM> users. The processing units <NUM> process a game application, and generate a game image and game sound as a result of the processing. The communicating unit <NUM> transmits and receives data to and from the communicating unit <NUM> of the client terminal <NUM> via the network <NUM>.

The managing unit <NUM> includes an operation monitoring section <NUM>, an assignment processing section <NUM>, an obtaining section <NUM>, an operation information providing section <NUM>, a transmitting section <NUM>, and a save data managing section <NUM>. The obtaining section <NUM> includes a request obtaining block <NUM> and an operation information obtaining block <NUM>. The transmitting section <NUM> includes a processing result transmitting block <NUM>, a wait information transmitting block <NUM>, a processing possible information transmitting block <NUM>, a time-out information transmitting block <NUM>, and a metadata transmitting block <NUM>.

The elements described as functional blocks performing various processing in <FIG> can be configured by a circuit block, a memory, or another LSI in terms of hardware, and are implemented by a program loaded in a memory or the like in terms of software. Hence, it is to be understood by those skilled in the art that these functional blocks can be implemented in various forms by only hardware, only software, or combinations of hardware and software, and are not limited to any one of the forms. Incidentally, as already described, it suffices for the configuration illustrated in <FIG> to be provided in the server system <NUM>. The store server <NUM> may therefore have the configuration illustrated in <FIG>.

The operation monitoring section <NUM> monitors the operating conditions of the plurality of processing units <NUM> and the operating conditions of client terminals <NUM> to which processing units <NUM> are assigned. By monitoring the operating conditions of the plurality of processing units <NUM>, the operation monitoring section <NUM> grasps whether or not there is a processing unit <NUM> that can be assigned to a user who desires to be provided with a cloud service, that is, a processing unit <NUM> usable by the user. The operation monitoring section <NUM> also monitors whether or not operation information is transmitted from the client terminal <NUM> of the user provided with the cloud service. This is because the number of processing units <NUM> is limited and it is desirable to free a processing unit <NUM> assigned to a client terminal <NUM> to which no operation information has been input for a predetermined time and to assign the processing unit <NUM> to another waiting user. The operation monitoring section <NUM> thus monitors the presence or absence of an unassigned processing unit <NUM> and the non-operation periods of the client terminals <NUM>, and thereby effectively assists in the operation of the assignment processing section <NUM> that assigns processing units <NUM> to users. Incidentally, the operating conditions of a client terminal <NUM> may be monitored by the monitoring section <NUM> on the client terminal <NUM> side.

The assignment processing section <NUM> assigns a processing unit <NUM> to a client terminal <NUM>. For example, the assignment processing section <NUM> may associate the identifying information (ID) of the processing unit <NUM> with the identifying information of the client terminal <NUM> (or the user) to which the processing unit <NUM> is assigned, and manages the identifying information in a table format. In addition, when there is no processing unit <NUM> that can be assigned to the user, the assignment processing section <NUM> makes the client terminal <NUM> wait for a start of processing of an application, and manages the user as a waiting user. When an assignable processing unit <NUM> appears, the assignment processing section <NUM> receives a notification to that effect from the operation monitoring section <NUM>. According to this notification, the assignment processing section <NUM> assigns the assignable processing unit <NUM> to the client terminal <NUM> of the waiting user.

The obtaining section <NUM> obtains a request to execute an application or operation information of the input device <NUM> from the client terminal <NUM> via the communicating unit <NUM>. When the request obtaining block <NUM> obtains a request to execute an application from the user, and there is an assignable processing unit <NUM> on the basis of the monitoring of the operation monitoring section <NUM>, the assignment processing section <NUM> assigns the processing unit <NUM> so that the user uses the processing unit <NUM>, and makes the processing unit <NUM> execute the requested application. When there is no assignable processing unit <NUM> on the basis of the monitoring of the operation monitoring section <NUM>, on the other hand, the assignment processing section <NUM> puts the user as a waiting user in a queue, and thus manages the user as a waiting user. The operation information obtaining block <NUM> obtains operation information from the user to whom the processing unit <NUM> is assigned. The operation information providing section <NUM> provides the processing unit <NUM> with the operation information of the input device <NUM> which operation information is transmitted from the client terminal <NUM>. The processing unit <NUM> thus generates a processing result such that the operation information is reflected in the progress of the application.

The transmitting section <NUM> transmits a game image and game sound generated by the processing unit <NUM>, various kinds of information, and various kinds of data to the client terminal <NUM>. The save data managing section <NUM> has a function of managing save data between the client terminal <NUM> and the cloud server <NUM>.

A UI (user interface) displayed on the client terminal <NUM> will be described in the following on the basis of a display screen. When a user "TARO" logs in to the client terminal <NUM>, a home screen is displayed.

<FIG> illustrates an example of a home screen generated by system software of the client terminal <NUM>.

On the home screen, the icon display section <NUM> displays the icon images of a plurality of applications side by side in an icon row <NUM>. On the home screen illustrated in <FIG>, the icon images of applications processable by the application executing section <NUM> are displayed side by side. A focus frame <NUM> is provided at the head (that is, the left end) of the icon row <NUM>. An icon image disposed in the focus frame <NUM> is displayed so as to be larger than the other icon images. In this case, the icon image of a game "play golf" is disposed in the focus frame <NUM>. When the user places the icon image of the application desired to be executed in the focus frame <NUM>, and operates the determining button (for example the circle button <NUM>) of the input device <NUM>, the program of the game "play golf" associated with the icon image is read from the auxiliary storage device <NUM> or the ROM medium <NUM> to be started.

In addition, the home screen displays a plurality of function icons <NUM> representing system functions provided by the client terminal <NUM>. In the example of <FIG>, the icon display section <NUM> displays a store icon 306a, a notification icon 306b, a friend icon 306c, a profile icon 306f, and a trophy icon <NUM>. When the user selects the store icon 306a and performs a determining operation on the home screen illustrated in <FIG>, the system software displays a function screen related to the store icon 306a on the output device <NUM>.

<FIG> illustrates an example of the function screen to which a transition is made from the home screen.

On the function screen, the icon display section <NUM> arranges a plurality of function icons <NUM> side by side. The following are displayed in this case: the store icon 306a, the notification icon 306b, the friend icon 306c, a group message icon 306d, a party icon 306e, the profile icon 306f, the trophy icon <NUM>, a setting icon <NUM>, and a power icon 306i. The system software sequentially changes a function icon <NUM> on which focus is placed in response to an operating input of a horizontal direction (a left key or a right key of the direction key <NUM>) on the input device <NUM> by the user, and displays the focus icon in a highlighted mode (in a large size, a different color, or the like). <FIG> illustrates a state in which the store icon 306a is selected, with focus placed thereon, and is displayed in a more highlighted manner than the other icons.

When the user performs a determining operation of the store icon 306a on which focus is placed on the function screen, the client terminal <NUM> accesses the store server <NUM>, and a store screen is displayed on the output device <NUM>. On this store screen, the user can select various contents such as a game to be downloaded and processed by the client terminal <NUM> (download game), a game processed in the cloud server <NUM> (cloud game), and the like. When the user selects a cloud game on the store screen, a rental screen of the game is displayed on the output device <NUM>.

<FIG> illustrates an example of a rental screen. This rental screen is a screen serving as an entrance for the user to rent a cloud game "WARSHIP2" for a predetermined period and access the cloud server <NUM>. The game system <NUM> according to the present embodiment has a mechanism constructed such that by thus renting the cloud game for a predetermined period (for example one month) at the store server <NUM>, the user can obtain a license for one month and thus play the cloud game during the period. Incidentally, this is an example of a form of providing the cloud game. The user may obtain a permanent license by purchasing the cloud game in a form of outright purchase at the store server <NUM>.

When the user sets a focus frame <NUM> to a "RENT AND START" button on the rental screen, and operates the determining button of the input device <NUM>, the store server <NUM> gives a license to play "WARSHIP2" to the user, and transmits the metadata of the application such as the title name, the icon image, the parental control information, and the like of "WARSHIP2" to the client terminal <NUM>. Incidentally, as will be described later, the metadata may be transmitted from the cloud server <NUM> to the client terminal <NUM>, and the store server <NUM> may transmit only part of the title name, the icon image, and the parental control information to the client terminal <NUM>.

When the user depresses the "RENT AND START" button on the rental screen, the store server <NUM> notifies the cloud server <NUM> that the user has the license for "WARSHIP2," and transmits a request to execute "WARSHIP2" to the cloud server <NUM>. When the request obtaining block <NUM> obtains the execution request in the cloud server <NUM>, the metadata transmitting block <NUM> transmits the metadata of the application such as the title name, the icon image, the parental control information, and the like of "WARSHIP2" to the client terminal <NUM>. These pieces of metadata are transmitted to be displayed on the home screen of the client terminal <NUM>, and are obtained by the obtaining section <NUM> in the client terminal <NUM>. Thereafter, the cloud server <NUM> checks whether the user has a proper license, and checks a communication environment between the client terminal <NUM> and the cloud server <NUM>. Incidentally, the store server <NUM> may proceed to make these checks.

Incidentally, when the user depresses the "RENT AND START" button, a dedicated application for playing the cloud game (which application may also hereinafter be referred to as a "player app") may be started automatically in the client terminal <NUM>. The player app may for example implement a function of the monitoring section <NUM>, and measure the non-operation period of the client terminal <NUM>.

<FIG> illustrates an example of a notifying screen displayed during user authentication by the cloud server <NUM>. While the notifying screen illustrated in <FIG> is displayed on the output device <NUM>, the cloud server <NUM> checks whether or not the user has the license information of "WARSHIP2.

<FIG> illustrates an example of a notifying screen displayed during the checking of the communication environment by the cloud server <NUM>. While the notifying screen illustrated in <FIG> is displayed on the output device <NUM>, the cloud server <NUM> checks the communication environment between the client terminal <NUM> of the user and the cloud server <NUM>. Here, the cloud server <NUM> checks a communication bandwidth and latency, and thereby checks whether or not the cloud game can be executed in the communication environment.

Incidentally, as illustrated in the figure, the notifying screen displays information indicating that the cloud game will be ended automatically when there is a non-operation period of five minutes.

This is based on a policy for efficiently operating limited calculation resources (processing units <NUM>). An upper limit of the non-operation period is not limited to five minutes. The cloud server <NUM> notifies the user of the description related to the non-operation period while checking the connection.

Description in the following will be made of the UI in a case where no problem is found as a result of these checks.

Returning to <FIG>, in the cloud server <NUM>, when the request obtaining block <NUM> receives the execution request from the store server <NUM> via the communicating unit <NUM>, the assignment processing section <NUM> assigns one processing unit <NUM> to the user. The operation monitoring section <NUM> monitors the operating conditions of the plurality of processing units <NUM>. The operation monitoring section <NUM> therefore grasps whether or not there is an unassigned processing unit <NUM>, that is, whether or not there is an assignable processing unit <NUM>. When there is an assignable processing unit <NUM>, as already described, the assignment processing section <NUM> assigns the processing unit <NUM> to the user, and transmits the request to execute the application (game "WARSHIP2" in this case) to the processing unit <NUM>. The processing unit <NUM> reads the disk image of the application from the database <NUM>, and starts the application.

In the client terminal <NUM>, the output processing section <NUM> obtains a result of processing of the processing unit <NUM> via the communicating unit <NUM>, and outputs, for reproduction, the result of processing of the processing unit <NUM> to the output device <NUM>. When the user operates the input device <NUM>, operation information is received by the receiving section <NUM>. The operation information transmitting block <NUM> transmits the operation information to the cloud server <NUM> via the communicating unit <NUM>. In the cloud server <NUM>, the operation information obtaining block <NUM> obtains the operation information, and the operation information providing section <NUM> provides the operation information to the processing unit <NUM> assigned to the user. The processing unit <NUM> executes the game program on the basis of the provided operation information. The processing result transmitting block <NUM> encodes a resultant processing result, and transmits the processing result to the client terminal <NUM>. Thus, in the game system <NUM> according to the present embodiment, the application is processed by the calculation resources (processing unit <NUM>) of the cloud server <NUM>, and the processing result is provided to the client terminal <NUM>. Therefore the user can enjoy the application even when the client terminal <NUM> does not retain the application program.

On the other hand, at the point in time that the request obtaining block <NUM> receives the request to execute the application from the store server <NUM> via the communicating unit <NUM>, a result of monitoring of the operating conditions of the plurality of processing units <NUM> by the operation monitoring section <NUM> may indicate that there is no assignable processing unit <NUM>. For example, when the cloud server <NUM> has <NUM> processing units <NUM>, and all of the <NUM> processing units <NUM> have already been assigned to users and are being used, the operation monitoring section <NUM> grasps that there is no assignable processing unit <NUM>. Even if there is an unassigned processing unit <NUM>, when the processing unit <NUM> is to be assigned to a specific user (for example a premium user), and the user "TARO" who desires to play "WARSH1P2" is not a premium user, the operation monitoring section <NUM> knows that there is no processing unit <NUM> usable by the user.

When there is no assignable processing unit <NUM>, the user is in a waiting state until a processing unit <NUM> usable by the user is freed, the processing unit <NUM> is assigned to the user, and the application is started. The assignment processing section <NUM> manages the user in the waiting state together with the position of the user in order of waiting. Specifically, the assignment processing section <NUM> stores information (user ID) identifying the user and the position in the order of waiting in association with each other. The wait information transmitting block <NUM> transmits information indicating the number of people waiting at the point in time to the client terminal <NUM>.

<FIG> illustrates an example of the notifying screen notifying the number of waiting people. The notifying screen makes a notification that there are two users waiting before the user. The wait information transmitting block <NUM> receives the number of already waiting users from the assignment processing section <NUM>, and transmits the number of already waiting users as wait information to the client terminal <NUM>. In the client terminal <NUM>, the notifying section <NUM> displays the transmitted number of waiting people on the output device <NUM>. When the user sets a focus frame <NUM> to "OK," and operates the determining button of the output device <NUM>, the request transmitting block <NUM> transmits information indicating consent to wait (waiting request) to the cloud server <NUM>. When the request obtaining block <NUM> obtains the waiting request, the assignment processing section <NUM> manages the user ID of the user and the position (third in the present example) in the waiting order in association with each other.

Incidentally, while the above description has been made of a case where the wait information transmitting block <NUM> transmits the number of waiting people as the wait information, the assignment processing section <NUM> may for example estimate a time taken before the user "TARO" can play the game from the number of waiting people, and the wait information transmitting block <NUM> may transmit the estimated waiting time as the wait information to the client terminal <NUM>. In this case, the client terminal <NUM> displays the estimated waiting time on the notifying screen. Thus, the wait information transmitting block <NUM> can transmit the information on the wait for application processing to the client terminal <NUM>, and the client terminal <NUM> can display the transmitted information on the wait on the output device <NUM>.

When the user presses an "OK" button on the notifying screen illustrated in <FIG>, a return is made to the rental screen. <FIG> illustrates the rental screen to which the return is made from the notifying screen illustrated in <FIG>. The rental screen in this case indicates that the user "TARO" is "waiting," and that the position in the order of waiting is "third. " This rental screen is provided from the store server <NUM>. In the server system <NUM>, information indicating that the user is waiting and that the user is at the third waiting position is notified from the cloud server <NUM> to the store server <NUM>. The position in the order of waiting is thus also displayed on the rental screen. Incidentally, when the functions of the operation monitoring section <NUM> and the assignment processing section <NUM> are provided to the store server <NUM>, the store server <NUM> manages the waiting of the user "TARO," and therefore the store server <NUM> does not need to receive the waiting notification from the cloud server <NUM>. When the user operates the home button <NUM> of the input device <NUM> in the state in which the rental screen is displayed on the output device <NUM>, the home screen is displayed on the output device <NUM>.

<FIG> illustrates another example of the home screen. On the home screen, the icon display section <NUM> displays the icon images of a plurality of applications side by side in the icon row <NUM>. The icon image displayed in the focus frame <NUM> in this case is the icon image of the cloud game for which the user has obtained the license at the store server <NUM> (cloud game icon <NUM>). The game program corresponding to this cloud game icon <NUM> is not retained in the client terminal <NUM>. Hence, the cloud game icon <NUM> is used, as it were, as a shortcut for being provided with the cloud game in the cloud server <NUM>.

The icon display section <NUM> thus displays the icon image (cloud game icon <NUM>) of the application processable by the server system <NUM> side by side with the icon images of applications processable by the application executing section <NUM>. The user can therefore check the games processed by the client terminal <NUM> and the game processed by the cloud server <NUM> within one home screen.

The icon display section <NUM> displays a cloud category icon <NUM> indicating a cloud game and title information <NUM> in association with the cloud game icon <NUM>. The display of the cloud category icon <NUM> enables the user to recognize that the game in question is a cloud game.

In addition, the icon display section <NUM> adds and displays information on the wait, specifically a wait indicator <NUM> indicating that a present status is a waiting status and order information <NUM> indicating the position of the user in the order of waiting, in association with the cloud game icon <NUM> waiting for a start of processing. The user can thereby recognize that the user is currently waiting and that the position in the waiting order is the third.

In <FIG>, while the user is waiting for the cloud game, the icon display section <NUM> displays the wait information in association with the cloud game icon <NUM>. The icon display section <NUM> adds various information to the cloud game icon <NUM> also during other than the waiting period. Other examples of information displayed in association with the cloud game icon <NUM> will be illustrated in the following.

<FIG> illustrates an example of display of the cloud game icon <NUM> used as a shortcut. The cloud category icon <NUM> is displayed in association with the cloud game icon <NUM>. When the user operates the determining button of the input device <NUM> in a state in which the cloud game icon <NUM> is disposed in the focus frame <NUM>, the receiving section <NUM> receives an application execution request, and the request transmitting block <NUM> transmits the execution request to the server system <NUM>. The execution request may be obtained by the store server <NUM>, and transferred to the cloud server <NUM>. However, the execution request may be directly obtained by the cloud server <NUM>. When the request obtaining block <NUM> receives the application execution request in the cloud server <NUM>, as already described, the cloud server <NUM> checks whether the user has a proper license, and checks the communication environment between the client terminal <NUM> and the cloud server <NUM>. Thereafter, when there is an assignable processing unit <NUM>, the processing unit <NUM> processes the application, and the processing result transmitting block <NUM> transmits a result of the processing to the client terminal <NUM>. Thus, the cloud game icon <NUM> illustrated in <FIG> can be used as a shortcut for the cloud game.

<FIG> illustrates another example of display of the cloud game icon <NUM>. Together with the cloud category icon <NUM>, an execution indicator <NUM> indicating that the application is being executed is displayed in association with the cloud game icon <NUM>. The execution indicator <NUM> is added to the cloud game icon <NUM> and displayed when the user returns to the home screen while provided with the application processing result from the cloud server <NUM>. The user can therefore confirm that the cloud game is being played. Incidentally, by performing a determining operation of the cloud game icon <NUM> to which the execution indicator <NUM> is added, the user can directly return to the game screen provided from the cloud server <NUM>.

<FIG> illustrates another example of display of the cloud game icon <NUM>. Instead of the cloud category icon <NUM>, a key icon <NUM> indicating that the cloud game cannot be played at present is displayed in association with the cloud game icon <NUM>. This key icon <NUM> is displayed for example when the license has expired or when the use of the application is limited by parental control information.

When the license has expired, and the user performs an operation of selecting the cloud game icon <NUM>, the store server <NUM> provides a license purchase screen. By obtaining the license, the user can be provided with the cloud game service.

The client terminal <NUM> according to the present embodiment has a function of executing a plurality of applications simultaneously. After display of the home screen illustrated in <FIG> on the output device <NUM> during the wait for the cloud game service, the user can enjoy one or more applications arranged in the icon row <NUM>.

When the user moves the icon row <NUM> by one step to the left on the home screen illustrated in <FIG>, the icon row <NUM> illustrated in <FIG> is displayed. When the user operates the determining button of the input device <NUM> in the state in which the icon image of the game "play golf" is disposed in the focus frame <NUM>, the application executing section <NUM> in the client terminal <NUM> starts the processing of the game "play golf. " This game is installed in the auxiliary storage device <NUM>. The application executing section <NUM> reads the program from the auxiliary storage device <NUM>, and starts "play golf. " Incidentally, the game program may be read from the ROM medium <NUM>.

<FIG> illustrates an example of a local application execution screen. The receiving section <NUM> receives an input of the user by the input device <NUM>, that is, operation information. The application executing section <NUM> reflects the operation information in the processing of the application, and generates an application screen and application sound. The output processing section <NUM> outputs the generated screen and the generated sound from the output device <NUM>. The application executing section <NUM> can thus start the processing of another application in the state of waiting for a start of processing of the cloud game in the server system <NUM>. Incidentally, another application in this case refers to a specific kind of application, for example a game application, and does not include a player application or the like. The user can therefore enjoy a game retained in the client terminal <NUM>, instead of merely waiting for the turn of the user during the wait.

In the cloud server <NUM>, the assignment processing section <NUM> manages the user IDs of users waiting for the cloud service and the positions of the users in waiting order. The operation monitoring section <NUM> monitors the operating conditions of the processing units <NUM>. When a processing unit <NUM> is freed, and at least one processing unit <NUM> becomes assignable to a waiting user, the ID (unit ID) of the assignable processing unit <NUM> is notified to the assignment processing section <NUM>. Cases where a processing unit <NUM> is freed include cases where a game is ended, that is, cases where a user playing the game voluntarily ends the game and cases where a game is forcibly ended when the non-operation period of the user has exceeded a predetermined time, as will be described later. When a processing unit <NUM> becomes assignable, the assignment processing section <NUM> assigns the processing unit to a first user in the waiting order. The assignment processing section <NUM> thus manages the assignment of processing units <NUM> to users.

In the example described above, there are two users already waiting before the user "TARO. " Hence, at a point in time that the waiting request is transmitted to the cloud server <NUM>, the user "TARO" is managed as a third waiting user in the assignment processing section <NUM>. When the assignment processing section <NUM> assigns the processing unit <NUM> to the first waiting user, the wait information transmitting block <NUM> is notified from the assignment processing section <NUM> that the position of the user "TARO" in the waiting order has become a second position, and transmits information to that effect to the client terminal <NUM>. Thus, when the home screen is displayed on the output device <NUM>, the information indicating that the position in the waiting order is the second is displayed in association with the cloud game icon <NUM>. In addition, when another processing unit <NUM> becomes assignable, the assignment processing section <NUM> assigns the processing unit to the first user in the waiting order. At this time, the turn of the user "TARO" comes next. The wait information transmitting block <NUM> transmits information indicating that the turn of the user "TARO" comes next to the user "TARO" who has become the first in the waiting order.

<FIG> illustrates advance notice information displayed on the local application processing screen. The notifying section <NUM> displays the advance notice information <NUM> indicating that the turn will come soon in a state of being superimposed on the application screen. Seeing this advance notice information <NUM>, the user recognizes that the user will be able to play the cloud game soon.

When yet another processing unit <NUM> becomes usable in the cloud server <NUM>, and the processing unit <NUM> becomes assignable to the user "TARO," the processing possible information transmitting block <NUM> transmits information indicating that the processing of the application can be started to the client terminal <NUM>. In the client terminal <NUM>, when the obtaining section <NUM> obtains the information indicating that the processing of the application can be started from the cloud server <NUM>, the notifying section <NUM> notifies the user that the processing of the application will be started.

<FIG> illustrates start notifying information notifying a start of the application in the cloud server <NUM>. The notifying section <NUM> displays the start notifying information <NUM> indicating that the turn of the user has come in a state of being superimposed on the application screen. Seeing this start notifying information <NUM>, the user recognizes that the turn of the user has come. In this case, when the user operates the home button <NUM> of the input device <NUM>, or after <NUM> seconds has passed after the display of the start notifying information <NUM>, a cloud game start screen is displayed on the output device <NUM>.

<FIG> illustrates an example of the cloud game start screen. This start screen displays options for inquiring whether to start the processing of the application in the server system <NUM>. Specifically, when the obtaining section <NUM> obtains the information indicating that the processing of the cloud game can be started from the cloud server <NUM>, the notifying section <NUM> displays the start notifying information <NUM> on the application screen, and thereafter displays the start screen inquiring whether or not to start the processing of the cloud game on the output device <NUM>. As will be described later, this start screen is displayed when a predetermined kind of application such as a game application or the like is being processed in the application executing section <NUM>. When the predetermined kind of application is being processed, the notifying section <NUM> displays the start screen on the output device <NUM>. Incidentally, the notifying section <NUM> may instruct the cloud server <NUM> to wait for a start of the cloud game until a request to start the game is generated on the start screen. The start screen illustrated in <FIG> displays two buttons "START GAME" and "CANCEL. " The user selects one of the buttons by moving a focus frame <NUM>.

When the user is to start the cloud game, the user sets the focus frame <NUM> to "START GAME," and operates the determining button of the input device <NUM> (circle button <NUM>). The receiving section <NUM> receives this button operation as a request to start the cloud game. The request transmitting block <NUM> transmits the start request to the cloud server <NUM>. Incidentally, when a start of the cloud game in the server system <NUM> is selected in the case where the application executing section <NUM> is processing an application, the processing by the application executing section <NUM> is suspended. Hence, in this case, the notifying section <NUM> notifies the user that the predetermined application being executed will be suspended.

<FIG> illustrates an example of a screen notifying the suspension of the application being executed. The notifying screen displays the title of the application to be suspended as the cloud game is started. In the above-described example, the application executing section <NUM> is processing the game "play golf. " A notification is therefore made which indicates that this game will be suspended. After display of the notifying screen, the notifying section <NUM> displays a notification indicating that the cloud game will be started. In the cloud server <NUM>, when the request obtaining block <NUM> obtains the game start request, the assignment processing section <NUM> assigns a processing unit <NUM> to the user "TARO," and makes the processing unit <NUM> start processing of the game application identified by the execution request. The processing unit <NUM> assigned to the user "TARO" reads the program of the game "WARSHIP2" from the database <NUM>, and starts the processing.

<FIG> illustrates an example of a game image generated by the processing unit <NUM>. When the processing unit <NUM> processes the application, the processing result transmitting block <NUM> encodes a result of the processing, and performs streaming distribution of the result of the processing to the client terminal <NUM>. The output processing section <NUM> in the client terminal <NUM> outputs the game image generated by the processing unit <NUM> from the output device <NUM>.

Incidentally, in the above example, description has been made of a case where the turn of the user comes while the application executing section <NUM> is processing an application. However, the turn of the user may come in a case where application processing by the application executing section <NUM> is not performed. For example, there is a case where the home screen is displayed on the output device <NUM> without the user executing an application. In this case, when the obtaining section <NUM> obtains information indicating a start of processing of an application from the cloud server <NUM>, the notifying section <NUM> may display the start notifying information <NUM> illustrated in <FIG> on the home screen, and thereafter the cloud game may be started immediately without the cloud game start screen being displayed. In a case where a predetermined kind of application processing by the application executing section <NUM> is not performed, the notifying section <NUM> does not instruct the cloud server <NUM> to wait for a start of the cloud game until the game start request is generated. Therefore the cloud server <NUM> automatically starts the cloud game without waiting for the start request from the user. When the application executing section <NUM> is thus not processing the predetermined application, there is no application to be suspended. It is thus desirable that the assignment processing section <NUM> immediately instruct the processing unit <NUM> to start processing the game application and thus make the processing unit <NUM> start processing the game application. Therefore, even when an application such for example as a browser or the like other than the predetermined kind of application has been started in the client terminal <NUM>, the cloud server <NUM> may automatically start the cloud game without the browser being suspended.

<FIG> illustrates an example of the cloud game start screen. A difference from <FIG> lies in that the focus frame <NUM> is disposed on "CANCEL. " When the user does not start the cloud game, but continues the application being executed locally, the user sets the focus frame <NUM> to "CANCEL," and operates the determining button of the input device <NUM> (circle button <NUM>). The request transmitting block <NUM> transmits the operation information as a cancellation request to the cloud server <NUM>. When the request obtaining block <NUM> in the cloud server <NUM> obtains the cancellation request, the assignment processing section <NUM> cancels the waiting state of the user "TARO," and ends the processing of assigning a processing unit <NUM>. Thus, the assignment processing section <NUM> ends the processing of assigning a processing unit <NUM> to the user "TARO," and starts processing of assigning a processing unit <NUM> to another user waiting at a position following that of TARO in the waiting order. Incidentally, when the request obtaining block <NUM> obtains the cancellation request, the assignment processing section <NUM> may for example move back the user "TARO" to a predetermined position (for example a fifth position) in the waiting order and maintain the waiting state, rather than canceling the waiting state.

<FIG> illustrates an example of a notifying screen notifying the cancellation of the wait for the cloud game. When the user operates the determining button of the input device <NUM> on the notifying screen, the output processing section <NUM> outputs a result of processing by the application executing section <NUM>, that is, the game image of "play golf" from the output device <NUM>. Incidentally, at this time, the waiting state of the user "TARO" in the cloud server <NUM> is canceled. Thus, when the user desires to play the cloud game again, the user needs to select the cloud game icon <NUM> (see <FIG>) on the home screen and be queued in the cloud server <NUM> again.

Incidentally, at a point in time that the notifying section <NUM> displays the start notifying information <NUM> on the output device <NUM> after the processing possible information transmitting block <NUM> transmits the processing possible information to the client terminal <NUM>, the assignment processing section <NUM> has assigned a processing unit <NUM> to the user "TARO" (has reserved a processing unit <NUM>, to be exact). Hence, during the display of the start screen illustrated in <FIG> or <FIG> after an end of display of the start notifying information <NUM> by the notifying section <NUM>, the assignment processing section <NUM> cannot assign the processing unit <NUM> assigned to the user "TARO" to another user. Therefore, when the user "TARO" does not indicate an intention as to whether or not to start the cloud game on the start screen illustrated in <FIG> or <FIG>, the state of the processing unit <NUM> being assigned to the user "TARO" is continued.

However, continuing the assignment of the processing unit <NUM> to the user when the user does not indicate an intention to start the cloud game or an intention to cancel the cloud game constitutes unnecessary use of the processing unit <NUM>, and is therefore undesirable. Accordingly, when the operation monitoring section <NUM> monitors operation information from the client terminal <NUM>, and determines that no operation information has been transmitted for a predetermined time, the assignment processing section <NUM> cancels the assignment of the processing unit <NUM> to the client terminal <NUM>.

Accordingly, on the start screen (inquiry screen) illustrated in <FIG> or <FIG>, when the operation monitoring section <NUM> monitors the arrival of operation information from the user "TARO," and determines that operation information (start request) indicating a start of processing of the application has not been input for a predetermined time, for example five minutes, the assignment processing section <NUM> cancels the waiting state of the user "TARO. " At this time, the time-out information transmitting block <NUM> transmits time-out information indicating that the waiting state is canceled to the client terminal <NUM>. When the obtaining section <NUM> in the client terminal <NUM> obtains the time-out information, the notifying section <NUM> displays a notifying screen illustrated in <FIG> on the output device <NUM> to make a notification that the waiting state of the user has been canceled. Time-out processing in the cloud server <NUM> is similar to processing when the user selects "CANCEL" on the start screen illustrated in <FIG>. The assignment processing section <NUM> cancels the waiting state of the user "TARO," and ends the processing of assigning the processing unit <NUM>. The assignment processing section <NUM> thereby starts processing of assigning the processing unit <NUM> to another user waiting at a position following that of TARO in the waiting order without assigning the processing unit <NUM> to the user "TARO.

Incidentally, when the operation monitoring section <NUM> determines that operation information (start request) indicating a start of processing of the application has not been input for a predetermined time, for example five minutes, the assignment processing section <NUM> may for example move back the user "TARO" to a predetermined position (for example a fifth position) in the waiting order and maintain the waiting state, rather than canceling the waiting state of the user "TARO.

This time-out processing is performed also after the start of the cloud game.

During the processing of the cloud game by the processing unit <NUM>, the operation monitoring section <NUM> monitors the arrival of operation information from the user "TARO. " When the operation monitoring section <NUM> determines that no operation information has been input for a predetermined time (for example five minutes), the assignment processing section <NUM> cancels the assignment of the processing unit <NUM> to the user.

For example, when the operation monitoring section <NUM> determines that a non-operation period has reached four minutes, for example, before the predetermined time passes, the time-out information transmitting block <NUM> transmits information indicating that there is one minute remaining before the time-out processing to the client terminal <NUM>. The output processing section <NUM> ends the display of the application screen on the output device <NUM>, and the notifying section <NUM> displays a countdown timer on the output device <NUM>.

<FIG> illustrates an example of countdown display. When viewing the countdown display, the user recognizes that the user needs to operate the input device <NUM>. In this case, when the user operates one of the buttons of the input device <NUM> before an end of the countdown, the countdown of the non-operation period is stopped, and the output processing section <NUM> displays the application screen on the output device <NUM>, so that the user can return to the game.

<FIG> illustrates an example of a notifying screen making a notification that the non-operation period has expired and that the cloud game is ended. When the operation monitoring section <NUM> determines that the non-operation period has expired, the assignment processing section <NUM> ends the assignment of the processing unit <NUM> to the user, and the time-out information transmitting block <NUM> transmits the time-out information indicating that the assigned state is canceled to the client terminal <NUM>. When the obtaining section <NUM> in the client terminal <NUM> obtains the time-out information, the notifying section <NUM> displays the notifying screen illustrated in <FIG> on the output device <NUM> to make a notification that the provision of the service of the cloud game is ended. This notification enables the user to know that the cloud game is ended. The assignment processing section <NUM> frees the processing unit <NUM> assigned to the user "TARO. " Thereby the assignment processing section <NUM> performs processing of assigning the processing unit <NUM> to another waiting user.

An example has been illustrated above in which the operation monitoring section <NUM> in the cloud server <NUM> monitors the operating conditions of the client terminal <NUM>. In a modification, the monitoring section <NUM> in the client terminal <NUM> may monitor the operating conditions of the client terminal <NUM>, or the presence or absence of input from the input device <NUM> in this case. The monitoring section <NUM> may be a function of the player app, for example.

The monitoring section <NUM> measures a period during which the receiving section <NUM> does not receive any input from the input device <NUM> (non-operation period). After the monitoring section <NUM> determines that the receiving section <NUM> does not receive operation information from the input device <NUM> during the predetermined time, for example five minutes, the waiting state of the user is forcibly canceled. At this time, the wait canceling information transmitting block <NUM> may transmit wait canceling information indicating cancellation of the waiting state of the user to the cloud server <NUM>. The request obtaining block <NUM> may obtain the wait canceling information as a wait canceling request. The assignment processing section <NUM> may cancel the waiting state of the user. Incidentally, after the monitoring section <NUM> determines that the non-operation period has reached five minutes, the client terminal <NUM> may be disconnected from the cloud server <NUM>, and thereby the waiting state of the user may be forcibly canceled. When the waiting state is canceled, the notifying section <NUM> displays the notifying screen illustrated in <FIG> on the output device <NUM> to make a notification that the waiting state of the user is canceled.

The monitoring section <NUM> monitors the input of the input device <NUM> during the processing of the cloud game by the processing unit <NUM>. When the monitoring section <NUM> determines that no operation information has been input for a predetermined time (for example five minutes), the assignment processing section <NUM> cancels the assignment of the processing unit <NUM> to the user. After the monitoring section <NUM> determines that the non-operation period has reached five minutes, the transmitting section <NUM> may transmit an assignment canceling request to the cloud server <NUM>. In response to this, the assignment processing section <NUM> may cancel the assignment of the processing unit <NUM> to the user. Incidentally, when the non-operation period has reached four minutes, the notifying section <NUM> may display the countdown timer illustrated in <FIG> on the output device <NUM>.

During the execution of the cloud game, a function for displaying a plurality of menus is assigned to the home button <NUM>. One of the menu items is "display of the home screen. " By selecting this item, the user can display the home screen on the output device <NUM>. Incidentally, in addition to the home screen illustrated in <FIG>, a menu item for displaying a home screen generated by the cloud server <NUM> as a home screen may be prepared. Another menu item is "ending the game. " By selecting this item, the user can end the cloud game. Incidentally, when the user saves the game at a time of the ending or during the game, the save data managing section <NUM> stores save data in the second storage system <NUM>.

Description in the following will be made of handling of save data in the game system <NUM>.

<FIG> schematically illustrates relation between the storages in the game system <NUM>. In the game system <NUM>, the client terminal <NUM> and the first storage system <NUM> are connected via the network <NUM>, and the first storage system <NUM> transmits or receives save data to or from the client terminal <NUM>. In addition, the client terminal <NUM> and the second storage system <NUM> are connected via the network <NUM>, and the second storage system <NUM> transmits or receives save data to or from the client terminal <NUM>. In the embodiment, the first storage system <NUM> and the second storage system <NUM> are not directly connected to each other.

The second storage system <NUM> stores save data generated in the cloud server <NUM>. The cloud server <NUM> can use save data stored in the second storage system <NUM>. In the game system <NUM>, the second storage system <NUM> has a role of an auxiliary storage device for the cloud server <NUM>. An application executed by the cloud server <NUM> has an upper limit to the storage capacity of save data. Thus, the storage capacity of save data assigned to the user in the second storage system <NUM> depends on the application, that is, is set within the upper limit for each application.

On the other hand, the first storage system <NUM> has a role of a backup storage for the client terminal <NUM>. Hence, save data stored in the auxiliary storage device <NUM> is uploaded to the first storage system <NUM>. The first storage system <NUM> thus has a role of a backup storage. The save data stored in the first storage system <NUM> is not directly accessed by an application executed by the client terminal <NUM> or the cloud server <NUM>. Thus, the storage capacity assigned to the user in the first storage system <NUM> does not depend on the application. Hence, the user can freely upload save data to the first storage system <NUM>. As required, the client terminal <NUM> can download the save data from the first storage system <NUM>, and use the save data for the processing of the application.

The cloud game executed by the cloud server <NUM> accesses save data stored in the second storage system <NUM>. Thus, basically, as long as the user is executing the cloud game, the save data stored in the second storage system <NUM> does not need to be downloaded to the auxiliary storage device <NUM>. However, in a case where the user plays the cloud game, and thereafter the user downloads a game having the same title from the store server <NUM> and executes the game on the client terminal <NUM>, the save data stored in the second storage system <NUM> is desired to be used. It is therefore desirable to construct a mechanism that enables save data stored in the second storage system <NUM> to be downloaded to the auxiliary storage device <NUM>. Conversely, a case is also assumed in which after the user downloads a game application from the store server <NUM> to the auxiliary storage device <NUM> and executes the game application on the client terminal <NUM>, the user makes a game having the same title executed by the cloud server <NUM>. When the cloud game is played, a portable client terminal such for example as a smart phone or the like can be used, so that the user can freely enjoy the game even outdoors. In that case, a mechanism is desirably constructed in which save data stored in the auxiliary storage device <NUM> is uploaded to the second storage system <NUM> so that the cloud game can use the save data of the local game. In addition, when the user returns home, and executes the game application on the client terminal <NUM>, it is desirable to be able to use, also on the client terminal <NUM>, the save data stored in the second storage system <NUM> in the cloud game.

Accordingly, in the game system <NUM>, the save data managing section <NUM> of the client terminal <NUM> and the save data managing section <NUM> of the cloud server <NUM> can cooperate with each other to share save data. For example, when the user has license information for a game in the client terminal <NUM>, and the user has license information for the same game in the cloud server <NUM>, the save data managing section <NUM> can obtain save data stored in the second storage system <NUM> and store the save data in the auxiliary storage device <NUM>, and the save data managing section <NUM> controls the second storage system <NUM> so that the second storage system <NUM> obtains save data stored in the auxiliary storage device <NUM> and stores the save data. The cloud server <NUM> can thereby process the cloud game using the save data obtained from the auxiliary storage device <NUM> and stored in the second storage system <NUM>. The save data managing section <NUM> and the save data managing section <NUM> may operate so as to synchronize the save data of the game. That is, the second storage system <NUM> may have a function of synchronizing save data between the second storage system <NUM> and the auxiliary storage device <NUM>, and the auxiliary storage device <NUM> may have a function of synchronizing save data between the auxiliary storage device <NUM> and the second storage system <NUM>. Consequently, when the user plays the game, the user can use latest save data regardless of whether the user plays the game locally (that is, whether the client terminal <NUM> executes the game) or whether the user plays the game in the cloud (that is, whether the cloud server <NUM> executes the game).

Incidentally, the save data managing section <NUM> and the save data managing section <NUM> may not automatically synchronize save data. However, when the user performs local play, for example, a message indicating that save data can be downloaded from the second storage system <NUM> may be notified, and when the user performs cloud play, a message indicating that save data can be uploaded from the auxiliary storage device <NUM> to the second storage system <NUM> may be notified. For example, when the user performs local play or cloud play, the save data managing section <NUM> inquires of the save data managing section <NUM> about date and time information of save data. In the case of local play, the save data managing section <NUM> may check whether or not new save data not retained in the auxiliary storage device <NUM> is present in the second storage system <NUM>. In the case of cloud play, on the other hand, the save data managing section <NUM> checks whether or not new save data not retained in the second storage system <NUM> is present in the auxiliary storage device <NUM>. When there is new save data, a message as described above may be notified. This facilitates the user using the new save data at a time of game play.

The save data managing section <NUM> manages save data as follows.

In the following, a second directory represents a subdirectory of a first directory, and a third directory represents a subdirectory of the second directory.

The following description will be made of a procedure for manually uploading save data in the auxiliary storage device <NUM> which save data is stored in the second directory.

<FIG> illustrates a save data selecting screen when the user uploads save data of the auxiliary storage device <NUM>. The user selects save data to be uploaded on this selecting screen.

<FIG> illustrates an upload destination selecting screen. The user can select one of the storages as a save data storage destination, and upload the selected save data to the save data storage destination.

When the user uploads save data to the first storage system <NUM>, the user can perform backup storage of the save data. In addition, when the user uploads save data to the second storage system <NUM>, the cloud server <NUM> can use the save data. When the user thus properly uses the first storage system <NUM> and the second storage system <NUM> as upload destinations as appropriate, appropriate management of save data is realized.

The present invention has been described above on the basis of embodiments. The embodiments are illustrative, and it is to be understood by those skilled in the art that combinations of constituent elements and processing processes of the embodiments are susceptible of various modifications, and that such modifications also fall within the scope of the present invention. In the embodiments, the game system <NUM> that processes game applications as one mode of the information processing system according to the present invention has been taken as an example. However, the information processing system may have a function of processing applications other than games.

In the embodiments, description has been made of a case where a screen such as the home screen or the like is generated by the system software of the client terminal <NUM>. However, a screen such as the home screen or the like may be generated by the cloud server <NUM> and output from the output device <NUM>.

In the game system <NUM>, when the client terminal <NUM> is a game dedicated machine of a newest generation, the cloud server <NUM> may provide a game of a previous generation to the client terminal <NUM>. In such a case, the client terminal <NUM> can execute a game having the same title as in the cloud server <NUM> by using an emulator that generates an environment of a game dedicated machine of the previous generation. When the client terminal <NUM> retains save data of the game of the previous generation, and uploads the save data to the second storage system <NUM>, the user can play the cloud game using the save data in the cloud server <NUM>. Incidentally, the user can enjoy the game even when the user is not at home, by being provided with the cloud service by the cloud server <NUM>. Thus, synchronizing save data between the auxiliary storage device <NUM> and the second storage system <NUM> has a great advantage.

Incidentally, the present embodiments assume that the first storage system <NUM> and the second storage system <NUM> are not directly connected to each other via the network <NUM>. However, the first storage system <NUM> and the second storage system <NUM> may be connected to each other via the network <NUM>. Incidentally, in this case, save data may be synchronized between the first storage system <NUM> and the second storage system <NUM>. For example, the synchronization of save data may be performed periodically, performed when the save data is updated, or performed according to an instruction from the user.

Game system, <NUM>. Auxiliary storage device, <NUM>. Network, <NUM>. Output device, <NUM>. Server system, <NUM>. Input device, <NUM>. Client terminal, <NUM>. Store server, <NUM>. Cloud server, <NUM>. Database, <NUM>. First storage system, <NUM>. Second storage system, <NUM>. Processing unit, <NUM>. Communicating unit, <NUM>. Receiving section, <NUM>. Transmitting section, <NUM>. Request transmitting block, <NUM>. Operation information transmitting block, <NUM>. Wait canceling information transmitting block, <NUM>. Obtaining section, <NUM>. Icon display section, <NUM>. Notifying section, <NUM>. Application executing section, <NUM>. Output processing section, <NUM>. Monitoring section, <NUM>. Save data managing section, <NUM>. Managing unit, <NUM>. Communicating unit, <NUM>. Processing unit, <NUM>. Operation monitoring section, <NUM>. Assignment processing section, <NUM>. Obtaining section, <NUM>. Request obtaining block, <NUM>. Operation information obtaining block, <NUM>. Operation information providing section, <NUM>. Transmitting section, <NUM>. Processing result transmitting block, <NUM>. Wait information transmitting block, <NUM>. Processing possible information transmitting block, <NUM>. Time-out information transmitting block, <NUM>. Metadata transmitting block, <NUM>. Save data managing section.

Claim 1:
An information processing device comprising:
a receiving section (<NUM>) adapted to receive a request to execute an application;
an obtaining section (<NUM>) adapted to obtain information on a wait for processing of the application from a server system (<NUM>) when there is no assignable processing unit in the server system on which to execute the application, wherein the server system includes a store server (<NUM>) providing an entrance for a user to play a cloud game via the application, and the server system includes a cloud server (<NUM>) facilitating the cloud game to the user;
a notifying section (<NUM>) adapted to display an inquiry screen inquiring whether to start the processing of the application, while in a state of waiting for a start of the processing of the application on the server system and when the obtaining section obtains information indicating that the processing of the application can be started from the server system; and
a monitoring section (<NUM>) adapted to monitor user input from an input device,
wherein the state of waiting is cancelled when the monitoring section determines that over a predetermined period of time there has been no user input from the input device in response to the inquiry screen, and
wherein the predetermined period of time is displayed to the user on the inquiry screen via a countdown timer.