1. Field of the Invention
The present invention relates generally to data transfer. More particularly, the present invention relates to the controlled transfer of data between client-side software applications.
2. Background Art
Even the most technology indifferent mobile telephone user is now likely to recognize that, their handset may be nifty, but the applications software, or “apps,” are where the fun is. There are now applications for social networking, applications for gaming, applications for managing music content, even applications for navigating content provided by local public broadcasters, and the list goes on and on. Although software applications for use on mobile devices are presently very popular, they represent only a portion of the applications that most consumers now use routinely, often without any direct awareness of their functionality, on such devices as personal computers, gaming systems, and optical media presentation devices such as Blu-ray players.
As software applications have become more complex and sophisticated in their ability to generate and manage data, so too have they become increasingly focused in their user implementations. In other words, just as social forces tend to encourage specialization of human effort in advanced societies, market forces have encouraged specialization of expertise in the rapidly evolving and highly competitive area of information management. As a result, different types of applications are increasingly likely to process, e.g., obtain, store, maintain, and coordinate certain types of information more efficiently than others, and this may be especially true for applications mediating user interaction over a communications network. For example, a social networking application may serve as a comprehensive and user friendly resource for managing and sharing personal information on the web, but the specialized features developed to provide those advantages may be less well suited to support an alternative network functionality, such as hosting a real-time Internet based gaming environment.
Despite the increasing specialization of software applications, however, some data may be useful across a spectrum of different application functionalities. In particular, for applications running on a shared computing platform, data such as login information, screen names, session data, and the like, may be needed or useful for more than one application. In the past, when applications were simpler and less specialized, a single applications provider was frequently the source of many of the applications utilized on a shared platform, so that data would typically be exchanged among those commonly owned or commonly sourced applications.
Increasingly, however, specialization of expertise in software functionality now extends to the producers and vendors of the applications delivering that functionality, as well to the software products themselves. Consequently, it is now often the case that software applications populating the same computing platform are designed and produced by independent commercial entities, each with their own propriety interests to protect. As a result, those separately owned or sourced applications may be effectively independent, and may not be configured to share data cooperatively.
One possible solution for providing more than one software application, for example two applications, with data that is commonly useful to both, is to permit one or both applications to access data held by the other. As mentioned, however, for proprietary and/or security reasons, that is no longer an attractive option for software application developers. Another possible solution is for each application to obtain the data independently. Although this latter solution successfully avoids any security risks or proprietary associated with sharing information between applications, it introduces significant disadvantages of its own.
One disadvantage associated with having each application obtain commonly needed data for itself is that this solution fails to make use of the distinct information management efficiencies of the different applications. For example, requiring a gaming application to obtain personal login information or a friends list for group gaming, independently of a social networking application already in possession of that information and better suited to manage it, is redundant and inefficient. Perhaps even more importantly, the duplicative request for data previously entered into the system can cause the user considerable frustration and delay in accessing and enjoying a group gaming experience. Extending that user experience to multiple applications requiring similar data, this approach quickly becomes impracticable. Moreover, in some instances, data may not be available without some cooperation between the applications. For example, there may be advantages to having state or session data handed off from one application to another, to support a seamless user experience in transitioning between independent applications.
Accordingly, there is a need to overcome the drawbacks and deficiencies in the art by providing a solution enabling controlled transfer of data, such as state, session, or user data, for example, between independent software applications running on a shared platform.
There are provided systems and methods for managing data transfer, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
The features and advantages of the present invention will become more readily apparent to those ordinarily skilled in the art after reviewing the following detailed description and accompanying drawings, wherein:
The present application is directed to a system and method for managing data transfer via independent client-side software applications. The following description contains specific information pertaining to the implementation of the present invention. One skilled in the art will recognize that the present invention may be implemented in a manner different from that specifically discussed in the present application. Moreover, some of the specific details of the invention are not discussed in order not to obscure the invention. The specific details not described in the present application are within the knowledge of a person of ordinary skill in the art. The drawings in the present application and their accompanying detailed description are directed to merely exemplary embodiments of the invention. To maintain brevity, other embodiments of the invention, which use the principles of the present invention, are not specifically described in the present application and are not specifically illustrated by the present drawings. It should be borne in mind that, unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals.
As shown in
It may be apparent from
As shown in
Turning now to
Media playback device 230, application server 210 hosting server-side application 211a, and application server 220 hosting server-side application 221a, in
As shown in
Client-side application 211b corresponding to server-side application 211a, and/or client-side application 221b corresponding to server-side application 221a may be loaded into memory 232 from a computer-readable medium utilized by media playback device 230. For example, where media playback device 230 is an optical disc player, such as a Blu-ray player, for example, client-side applications 211a and/or 221b may be acquired from the Blu-ray disc. Alternatively, in some embodiments, one or both client-side application 211b and client-side application 221b may be transferred from a networked source via network communication links 202, such as through download from application server 210 or 220, for example.
Processor 236 may be the central processing unit for media playback device 230, for example, in which role processor 236 runs the media playback device firmware and/or operating system, manages exemplary user data 234, and facilitates execution of client-side applications 211b and 221b. In addition, processor 236 is configured to execute operations corresponding to method steps for managing transfer of commonly useful data, such as user data 234, from client-side application 211b to client-side application 221b, or vice versa. Moreover, in one embodiment, processor 236 is configured to perform that transfer between mutually independent client-side applications 211b and 221b via media playback device 230, without there being direct transfer of data between corresponding respective server-side applications 211a and 211b. As a result, media playback device 230 advantageously enables controlled data transfer between the client-side applications while preserving data security and proprietary controls for the client-side and server-side applications.
The functionality and advantages attributable to systems 100 and 200 will now be further described in conjunction with
Turning to step 310 of flowchart 300 and referring to
As previously mentioned, client-side application 211b corresponds to server-side application 211a, and client side application 221b corresponds to server-side application 221a. Server side-applications 211a and 221a may represent any two independent network based applications, and client-side applications 211b and 221b their respective clients, for example. In one embodiment, server-side application 211a or 221a may comprise a social network, so that respective client-side application 211b or 221b can be a client-side social networking application mediating user interaction with the social network. In another embodiment, server-side application 211a or 221a may comprise a network based game, such as a multi-player Internet trivia game, for example. In that latter embodiment, respective client-side application 211b or 221b can be a client-side gaming application mediating user participation in the multi-player Internet game.
Continuing with step 320 of flowchart 300, and also continuing to refer to
Step 330 of flowchart 300 comprises transferring the first data, such as user data 234, to the server-side application corresponding to client-side application 211b, e.g., server-side application 211a. Step 330 may be controlled by processor 236, and include transfer of user data 234 by client-side application 211b over network link 202, for example. In step 340, user data 234 is stored in memory 232, as shown in
The method of flowchart 300 continues with step 350, which comprises receiving an input requesting launch of the second client-side application, e.g., client-side application 221b. Step 350 may correspond to receipt of a user input by processor 236, resulting from interaction of the user with client-side application 211b, for example.
Moving now to step 360 of flowchart 300, step 360 comprises launching the second client-side application. In system 200 of
Continuing with step 370 of flowchart 300 and also continuing to refer to
As one specific example of the first data identified in step 370, consider the situation in which client-side application 211b corresponds to a first online game, and client-side application 221b corresponds to a second online game that uses a player's past performance in the first game as a guide to configure, or personalize, the second game to the player's skill level. In that specific instance, the first data may comprise a code representing the user's performance rating with respect to the first game. Alternatively, where configuration of the second game is enhanced by user progress through a series of challenges in the first game, the first data may correspond to state data indicating the extent to which the user has advanced through the first game before transitioning to the second game. As another alternative, the client-side application 211b might correspond to a social network from which the user elects to launch client-side application 221b corresponding to an online multi-player game. In that latter instance, the first data may comprise, for example, user data such as login data, a screen name of the user, a friends list of the user for initiation of a group gaming session, or a graphical image such as an avatar associated with a network persona of the user.
In yet other embodiments, the first data may comprise a content filtering data associated with the user. For example, where the user is a minor for whom parental controls have been assigned, the first data may comprise a code informing client-side application 221b of content access restrictions associated with the user. In the gaming or entertainment context, for example, identification of such a first data may be used to protect the user from exposure to unsuitable adult content by the second client-side application. The first data may also comprise session data, so that transition from client-side application 211b to client-side application 222b is transparent to the user. That is to say, the media playback device 230 is able, through transfer of session data, to produce a front-end experience in which the user perceives client-side application 211b and client-side application 221b as participating cooperatively in a single seamless user session, despite those client-side applications being independent of one another.
Continuing with step 380 of flowchart 300, step 380 comprises reading the first data from memory into the second client-side application. Once again, step 380 may be performed by processor 236. In the embodiment of
In embodiments in which client-side application 211b is stopped prior to termination of client-side application 221b, the method of flowchart 300 may further comprise resuming client-side application 211b at that time. In some embodiments, the present method may further comprise transferring the first data to the second server-side application. Such a step might be performed by the second client-side application, e.g., client-side application 221b, under the control of processor 236, for example. In the embodiment of
Moreover, in some embodiments, the present method may further comprise transferring a second data from the second client-side application, e.g., client-side application 221b, to the first client-side application, e.g., client-side application 211b. That additional controlled data transfer may be performed by processor 236 through execution of steps analogous to steps 310 through 380 and further advantageously proceeds without direct data transfer between server-side applications 221a and 211a.
Thus, the present application discloses a system and method for managing data transfer. From the above description of the invention it is manifest that various techniques can be used for implementing the concepts of the present invention without departing from its scope. Moreover, while the invention has been described with specific reference to certain embodiments, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the spirit and the scope of the invention. It should also be understood that the invention is not limited to the particular embodiments described herein, but is capable of many rearrangements, modifications, and substitutions without departing from the scope of the invention.