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.

Description:
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&#39;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&#39;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.