# Patent

## Title
System and methods for multi-tasking in a clientless mobile phone

## Abstract

A method for supporting execution of a plurality of applications over a clientless mobile phone is disclosed. The method comprises displaying over a display of the mobile phone a menu of at least one application of a plurality of applications executed by a clientless mobile interaction (CMI) server, wherein the CMI server communicates the menu of the plurality of applications to the mobile phone using a USSD protocol; receiving an input responsive of a selection of one application of the at least one application displayed in the menu; communicating the selected application to the CMI server using the USSD protocol; receiving contents of the selected application from the CMI server using the USSD protocol; and displaying the received contents over the display of the mobile phone.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 13/709,108 filed Dec. 10, 2012, now U.S. Pat. No. 8,472,928 issued Jun. 25, 2013, which is a continuation application of International Application No. PCT/US11/49386 filed Aug. 26, 2011, which claims the benefit of U.S. provisional application No. 61/377,958 filed on Aug. 29, 2010, the contents of which are incorporated herein by reference.


TECHNICAL FIELD
The invention generally relates to mobile phones, and more particularly to the execution of mobile applications on clientless mobile phones.
BACKGROUND
It has become commonplace in modern smart phones to support the execution of applications (also known as “mobile applications”, “native applications”, or “apps”). The applications are downloaded from different sources.
The operation of such applications is typically performed in a client-server mode where the application is executed as a client on the smart phone. This requires the smart phone to be able to execute an operating system to support such applications. In some cases, a smart phone, such as some of the iPhone® models from Apple Computers®, can execute only a single application at a time. In other cases, no application can be executed on the phone due to the fact that the phone is of an older type and does not include an operating system that supports the download of applications to operate in a client mode.
It would therefore be advantageous to provide a solution that overcomes the deficiencies of the prior art and that enables multi-tasking of applications by a mobile phone.
SUMMARY
Certain embodiments of the invention including a method for supporting execution of a plurality of applications over a clientless mobile phone are disclosed. The method comprises displaying over a display of the mobile phone a menu of at least one application of a plurality of applications executed by a clientless mobile interaction (CMI) server, wherein the CMI server communicates the menu of the plurality of applications to the mobile phone using a USSD protocol; receiving an input responsive of a selection of one application of the at least one application displayed in the menu; communicating the selected application to the CMI server using the USSD protocol; receiving contents of the selected application from the CMI server using the USSD protocol; and displaying the received contents over the display of the mobile phone.



BRIEF DESCRIPTION OF THE DRAWINGS
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
FIG. 1 is a system for providing a clientless application access for mobile phones in accordance with an embodiment of the invention.
FIG. 2 is a communication diagram of the operation of the system in accordance with an embodiment of the invention.
FIG. 3 is a schematic diagram of a mobile phone using a USSD interface to switch between applications executed on remote servers in accordance with an embodiment of the invention.



DETAILED DESCRIPTION
It is important to note that the embodiments disclosed by the invention are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
For many mobile phones and operating systems running on these phones it is impossible for the user to access two different applications at the same time. Certain exemplary embodiments of the invention allow a user access from the mobile phone to multiple applications regardless of the type of phone or the operating system used. This multi-tasking operation is done on a clientless mobile phone over the network. The user can switch between the available applications using presentation layer protocols, such as the unstructured supplementary service data (USSD) protocol.
The disclosed invention addresses the problem of multi-tasking applications provided for mobile phones where the mobile phones are incapable of multi-tasking or, the number of tasks performed in parallel is limited to a number that is less than what is desired by the user. For example, a user of a mobile phone may wish to run in parallel many applications. Such applications include, without limitations, social network applications, such as, but not limited to, mobile Twitter®, mobile Facebook®, mobile e-mail, and mobile Skype®, and other kinds of applications such as a mobile private branch exchange (PBX), address book, camera operation whether video or still, and more. A mobile phone, incapable of multi-tasking, would, for example but not by way of limitation, cease reception of e-mail when a call is received, or otherwise, not accept such a call. By contrast, according to certain embodiments of the invention, the applications are emulated on another server, and thus can be held active for the user until such time that the application can be handled again.
FIG. 1 depicts an exemplary and non-limiting system 100 for providing clientless application access for mobile phones in accordance with an embodiment of the invention. A network 110 communicatively connects between the various elements of the system 100. The network 110 can comprise a local area network (LAN), a metro area network (MAN), a wide area network (WAN), be it wired or wireless, and any combinations thereof. To the network there are connected one or more application servers 120, for example, application servers 120-1 through 120-n (where ‘n’ is an integer greater than 1), each providing access to one or more applications, such as mobile applications (apps), native applications, or any applications that traditionally can be executed on a smart phone. Typically, according to prior art solutions, a smart phone requires an upload, installation, and execution of the application on the smart phone.
The system 100 is used to provide a multi-tasking access to one or more mobile phones 150, depicted as mobile phone 150-1 through 150-m (‘m’ is an integer number greater than 1), each of which typically has a graphics display but being incapable of running a plurality of applications in a multi-tasking fashion. It should be further noted that while some smart phones (e.g., one or more of mobile phones 150-1, . . . , 150-n) may be capable of running applications in multi-tasking mode, it is possible that the number of tasks is limited and when reaching close to capacity may hinder the operation of the phones.
To overcome the shortcomings of running a limited number of applications in a multi-tasking execution mode, a clientless mobile (CMI) application server 130 is communicatively connected to the network 110. The CMI application server 130 is designed to communicate with one or more application servers 120-1 through 120-n and is capable of running a plurality of such applications and instantiations thereof on the server 130. In one embodiment of the invention, one or more CMI application servers may be added to the system 100 to enable support of an ever increasing number of mobile phones 150 needing the multi-tasking services.
It should be appreciated that the teachings disclosed herein are applicable also when having a single application that is executed on a CMI application server 130. However, it should be further appreciated that in the case of operational limitation of a client based mobile phone, for example, when having a limited capability to run a plurality of applications in a client-based mode, the CMI application server 130 may be used to reduce the load from the mobile phone and its operating system. This may be of a particular benefit when the battery is low and it is advantageous to maintain the ability to multi-task. In this case, the mobile phone may access the applications without executing them in practice, thereby drawing less energy off of the battery.
The execution of the application, while seemingly performed on a mobile phone, e.g., mobile phone 150-i (where i=1, . . . , m), is in fact emulated on the CMI application server 130 as far as the applications servers 120-1 through 120-n are concerned. Furthermore, from the perspective of a mobile phone 150, for example, a mobile phone 150-i, the multi-tasking is handled outside of the phone if the phone is incapable of multi-tasking different applications, or moved to the server when the number of tasks is larger than the phone can handle. As a result, a mobile phone 150-i that would otherwise be incapable of multi-tasking, or having a limitation on the number of tasks it runs in parallel, may appear as being capable of practically endless depths of multi-tasking, i.e., appear to be executing many applications in parallel without losing connections to any one of them, even though, as a matter of fact, such applications are not executed on the mobile phone itself. In one embodiment of the invention, the decision of when to take over certain applications for execution on the CMI application server 130 is performed by the server 130 in a seamless manner.
According to an embodiment of the invention, when an application is executed for a mobile phone 150-i on the CMI application server 130, the communication with the mobile phone 150-i to send and receive instructions and responses is performed using a presentation layer protocol, such as an unstructured supplementary services data (USSD) protocol. Communication with the mobile devices 150-1 through 150-m is performed using a presentation layer protocol gateway, for example, through a USSD gateway 140. The USSD protocol is supported by practically all mobile phones, and hence the discussion herein is with respect of the USSD protocol, but as would be understood by those who are of ordinary skill in the art, other presentation layer protocols may be equally used.
By means of creating menus on a mobile phone 150-i, the user can further interact with and switch from one application to another without losing the connectivity of the application that continues to execute on the server 130.
FIG. 2 shows an exemplary and non-limiting communication diagram 200 of the operation for providing a clientless application access for mobile phones in accordance with an embodiment of the invention. The diagram 200 provides one example of an application communication from which those of ordinary skill in the art can easily create other communication schemes based on this description to enable other operations of one or more application servers 120, each running one or more applications versus a mobile phone 150-i and vice versa.
An application on an application server 120 may send a message, for example, message 210-1 to the CMI application server 130. The CMI application server 130 interprets the message 210-1 and sends a message 220 to the USSD gateway 140 respective of the received message 210-1. The USSD gateway 140, using the USSD protocol, communicates with the target mobile phone 150-i by sending at least a message 230 and as may be applicable, receives at least a message 240, all using the USSD protocol. The response message 240 sent to the USSD gateway (GW) 140 is then transferred to the CMI application (Appl.) server 130 by means of a message 250. When applicable a message 260-1, . . . , 260-l, that corresponds to the same application on the same application server 120, is sent from the CMI application server 130 to the appropriate application server 120.
It should be understood that the CMI application server 130 operates as an aggregator of applications, each sending its own message 260-1 through 260-l, for a mobile phone 150-i, through the use of the USSD protocol, and in accordance to an embodiment of the invention, the user of the mobile phone 150-i may enable different applications all running on or through the CMI application server 130. User menus, generated by means of the USSD protocol, on the mobile phone 150-i, represent a single application or a combination of two or more applications that are in fact executing on or through the CMI application server 130 on behalf of the mobile phone 150-i. 
The CMI application server 130 renders inputs or functions for all available applications into a single menu thus creating for the user the appearance, usability and control of multiple applications at the same time despite the lack of multi-tasking capabilities, or sufficient resources for that. Similarly, a response message 240 sent from the mobile phone 150-i is received by the USSD gateway 140 and sent by means of a message 250 to the CMI applications server 130. The CMI application server 130 directs the received message to the appropriate application and application server 120 by means of one of a plurality of messages 260-1 through 260-l corresponding to the appropriate application.
It should be further understood that the CMI application server 130 may aggregate several messages 210-i, 210-j, etc., where i and j are integers between 1 and k, from the same or different applications, from the same or different application servers 120, into a single message 220. Similarly, the CMI application server 130 may split a message 250 to message 260-i, 260-j, etc., where i and j are integers between 1 and l, targeted at one or more applications executing on one or more application servers 120-1 through 120-n. 
In accordance with an embodiment the invention, menus displayed on a mobile phone 150-i can be modified to fit the state of the user within each of the applications. This can be performed, in real-time, using the USSD protocol as the means of communication. Hence, the same menu could, for example and not by way of limitation, have options like send e-mail, read Twitter, delete message, and more, all based on the previous action or actions taken with respect of each application the user keeps “alive” on the CMI application server 130.
FIG. 3 depicts an exemplary and non-limiting schematic diagram 300 of a mobile phone 150 using a USSD interface to switch between applications executing on remote servers according to an embodiment of the invention. Initially, using a USSD protocol, a menu 320 is displayed on the phone which includes a message for selection of one of three applications App1 320-1, App2 320-2 and App3 320-3, each of which is associated in this case with a numeral, 1 through 3 respectively. Upon the user selecting one of the three, for example, selecting 2, App2 is displayed, over display 330 of mobile phone 150, together with a return indication, for example ‘*’ on the phone's keypad. App2 is actually executed over an application server 120 that communicates as described with respect of FIG. 2 above, to display content from App2 in the display area 330. When a user wants to switch to another application the user can hit ‘*’ and return to the menu 320. From the mobile phone 150 perspective the applications App1, App2 and App3 are always available and are multi-tasked even though the mobile phone 150 may not provide any multi-tasking capabilities or has limited capabilities to perform same.
It should be noted that one or more of the applications may be converted to support the operation according to the techniques disclosed herein, and such converted applications may reside on the CMI application server 130. The server 130 enables such converted applications to operate under the USSD protocol requirements and capabilities.
In one embodiment of the invention, a menu that lists the applications currently being executed on the CMI application server 130 is displayed on the user's mobile phone 150-i. Such a list may include items such as Gmail®, Twitter, and Facebook. From the main menu, the mobile phone 150-i can be routed to menus that relate to a specific application. For example, but not by way of limitation, the user is tweeting and there are three open states in Gmail, call control and presence.
According to another embodiment of the invention, the user of the mobile phone 150-i may, at any time, switch to another application by entering, for example ‘000’ or ‘*’ which brings up that menu. From there the user can select to return to the current state of another selected application. For example, if a call control is selected, then the menu will reflect the current call control state that the CMI application server 130 has maintained on the network. The menu selections are conveyed using messages transferred from the mobile phone 150 to the CMI application server 130 through the USSD gateway 140, e.g., using messages 240 and 250. The new menus generated in response to the selections are conveyed using messages transferred from the server 130 through the mobile phone 150 through the USSD gateway 140, e.g., messages 220 and 230. Those of ordinary skill in the art will appreciate that other menu combinations and application switching are possible according to the principles of the invention and without departing from the spirit of the invention. All of these are specifically included as part of the invention.
In yet another embodiment of the invention the CMI application server 130 is used with respect of a smart mobile phone that can be operated in a multi-tasking mode, i.e., executing a plurality of applications. However, there are cases where it is advantageous to off load execution of an application from the mobile phone to the CMI application server 130. For example, when the battery of the mobile phone is drained, then, in accordance with certain embodiments of the invention, it is possible to move one or more of the applications currently executed on the mobile phone to the CMI application server 130, thereby reducing the power consumption of the mobile phone. In addition, or alternatively, if there is an attempt to overload the processor of the mobile phone with too many applications executed in parallel, the CMI application server 130 may be used to offload one or more applications currently executed on the mobile phone to the CMI application server 130. This way reasonable performance for the applications executing on the mobile phone is maintained without loss of operability of a large number of applications for that mobile phone.
In an embodiment of the invention, the CMI application server 130 includes an interface to the network to communicate with a plurality of application servers, the USSD gateway, and a plurality of mobile phones. The CMI application server 130 may include a processor for execution of computer executable code preferably implemented as an application program tangibly embodied on a program storage unit or non-transitory computer readable medium consisting of parts, or of certain devices and/or a combination of devices. A non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal. The computer executable code may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a random access memory (“RAM”), and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.
The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing appropriate software, specifically various integrations of an application server 120, a CMI application server 130 and a USSD gateway, in any combination. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor hardware, ROM, RAM, and non-volatile storage. Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the embodiments of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
It will be appreciated that although various aspects of the invention have been described with respect to specific embodiments, alternatives and modifications will be apparent from the present disclosure, which are within the spirit and scope of the present invention as set forth in the following claims.

## Claims

1. A system for off-loading execution of applications from a mobile phone, comprising:
at least a clientless mobile interaction (CMI) application server communicatively connected to a network;
at least an application server communicatively connected to the network, the at least an application server having at least a first application executable on the CMI application server and a second application executable on the CMI application server; and
a presentation layer gateway communicatively connected to the network, wherein the CMI application server enables the mobile phone communicatively connected to the presentation layer gateway by at least a presentation layer protocol to access at least the first application executed on the CMI application server while presenting a menu on the mobile phone for seamless switching between the first application executed on the CMI application server and the second application executed on the mobile phone, responsive to an indication that the mobile phone requests to off-load execution of the at least first application by moving the execution of the at least the first application to the CMI application server.