The present invention relates to the provision of services and/or applications to various devices. More particularly, the present invention relates to the provision of services and/or applications that utilize a communication mechanism to pass information between devices or terminals.
Currently, applications that are to be used in mobile terminals such as cellular telephones, personal digital assistants, and other devices are installed before the terminals are shipped to the customer. As a result of this phenomena, it is likely that all terminals, at least of a certain model, have the same set of applications when they are initially shipped.
In recent years, however, certain applications have begun to be provided by third parties. It is further anticipated that, in the future, more and more applications will be provided by third parties. These applications are typically developed using either native application program interfaces (APIs) provided by the terminal (for example, Symbian APIs) or Java APIs which can be made available regardless of the underlying operating system. As third party applications become more common, a likely result is that many applications will not installed onto all terminals that are otherwise similar and compatible.
As described above, third party application development can result in a situation where many applications are installed and developed after the terminal products have been shipped to customers. This may cause a number of complications when all terminals do not have same set of applications. This is a very undesirable situation because, in this situation, many communication attempts with other terminals will fail when the recipient terminal does not possess or support a required application. For example, if a transmitting terminal has a game program, and an attempt is made to transmit information to a recipient terminal using that game, if the recipient terminal does not have the game program installed, the game request will fail. Similar issues can result with other types of programs, including but not necessarily limited to gaming and messaging applications.
Currently some applications, particularly Java-based applications can be distributed using Over The Air (OTA) systems. In this arrangement, a terminal can fetch the Java application after it has learned the destination (URL) of the application. However, there is no standard mechanism for a terminal to distribute the application location information and ask other terminals to install a required application.
The present invention provides a solution to above-identified problem by providing a system and a method for permitting required applications to be distributed to any parties that require the application. The present invention involves the use of a system where, if an application that is installed on a transmitting terminal attempts to communicate with a receiving terminal that does not support the application, the transmitting terminal transmits a request to the receiving terminal to “fetch” the application and related information from a designated site.
The present invention provides users of both the transmitting terminal and the receiving terminal with a number of distinct advantages. In particular, the present invention provides a convenient mechanism for distributing third party applications using standard protocols. This ultimately reduces the occurrences of a transmitting terminal being unable to transmit information to a receiving terminal due to the receiving terminal's lack of support of a given application. The present invention also provides the benefit of enabling the rapid and easy dissemination of application to a number of devices after the devices have been shipped to customers, providing third party developers with the ability to ensure that new applications can be quickly, easily and widely distributed.
One exemplary embodiment of the invention relates to a method of automatically installing an application on a receiving terminal. The method includes transmitting an invitation from a transmitting terminal to a receiving terminal, having the receiving terminal inform the transmitting terminal if the receiving terminal does not possess an installed application for processing the invitation, and transmitting a reference address from the transmitting terminal to the receiving terminal. The method further includes having the receiving terminal access a device located at the reference address, having the application downloaded from the device to the receiving terminal, and having the application installed on the receiving terminal.
Another exemplary embodiment relates to a computer program product for automatically installing an application on a receiving terminal. The computer program product includes computer code for receiving an invitation from a transmitting terminal, computer code for informing the transmitting terminal if the receiving terminal does not possess an installed application for processing the invitation, and computer code for receiving a reference address from the transmitting terminal. The computer code product also includes computer code for accessing a device located at the reference address in response to receiving the reference address from the transmitting terminal, computer code for downloading the application from the device, and computer code for installing the application.
Another exemplary embodiment relates to a computer program product for automatically providing an application to a receiving terminal. The computer code product includes computer code for transmitting an invitation from a transmitting terminal to the receiving terminal, computer code for having the transmitting terminal receive information that the receiving terminal does not possess an installed application for processing the invitation, and computer code for, in response to receiving the information, transmitting a reference address from the transmitting terminal to the receiving terminal, wherein the reference address corresponds to a device containing the application.
Another exemplary embodiment relates to a system for automatically installing an application. The system comprises a transmitting terminal including the application installed therein and a reference addressed stored therein, a receiving terminal configured for communication with the transmitting terminal, and a device corresponding to the reference address and containing the application for download therefrom. When the transmitting terminal transmits an invitation to the receiving terminal and the receiving terminal does not have the application installed for processing the invitation, the transmitting terminal transmits the reference address to the receiving terminal, and wherein upon receiving the reference address, the receiving terminal downloads the application from the device and installs the application.
Still another exemplary embodiment relates to an apparatus for automatically installing an application. The apparatus comprises a communication link and a memory unit operatively connected to the communication link. The memory unit can include computer code for receiving an invitation from a transmitting terminal, computer code for informing the transmitting terminal if the apparatus does not possess an installed application for processing the invitation, and computer code for receiving a reference address from the transmitting terminal. The memory unit can also include computer code for accessing a device located at the reference address in response to receiving the reference address from the transmitting terminal, computer code for downloading the application from the device, and computer code for installing the application.
Another exemplary embodiment relates to An apparatus for automatically installing an application. The apparatus comprises a communication link and a memory unit operatively connected to the communication link. The memory unit can include computer code for transmitting an invitation to a receiving terminal, computer code for receiving information that the receiving terminal does not posses an installed application for processing the invitation and computer code for transmitting a reference address corresponding to a device containing the application to the receiving terminal in response to receiving the information.
These and other objects, advantages and features of the invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein like elements have like numerals throughout the several drawings described below.
As is shown in
According to one embodiment of the invention, an application which is installed onto the transmitting terminal 15 attempts to communicate with the receiving terminal 25. This step is represented at 10 in
In response to this failure notification, the transmitting terminal 15 instructs or requests that the receiving terminal 25 to fetch and install the correct application. In one embodiment of the invention, the transmitting terminal 15 can send a request to the receiving terminal 25 to fetch the application, as well as any related information that may be required or desired. The request can also contain a HTTP URL that can be used to locate and fetch the application. This operation can be performed by using a SIP REFER instruction, represented at step 30. In this situation, the referred-URL is the location of the application and could be in the form of “Refer-To: header”. As represented in
In another embodiment of the invention and as depicted in
The SIP REFER request or instruction can be used to inform the receiving terminal 25 that REFER is used to distribute the link to the new application. The REFER request or instruction can contain a body, which can be used for this purpose, or the REFER request or instruction can contain an “Accept-Contact: header” which contains this information (for example, “Accept-Contact: *;type=“application/install””.
If the receiving terminal 25 accepts the REFER request or instruction, the receiving terminal, in one embodiment of the invention, transmits a “202 Accepted” or “200 OK” response to the transmitting terminal 15, as represented at 40 in
Once the required application has been downloaded, the receiving terminal 25 can automatically install the application at step 55. During the installation process, an application installer can inform the receiving terminal's SIP stack that all SIP messages having a certain application identifier should be dispatched to this new application.
After the installation is completed, the receiving terminal 25, sends a NOTIFY request to the transmitting terminal 15 at step 60, notifying the transmitting terminal 15 that the application has been installed. This is then acknowledged at step 70 by the transmitting terminal 15. Because the receiving terminal 25 now has the correct application, the initial invitation is capable of being successfully received. The transmitting terminal 15 then resends the initial invitation as shown at step 80. The receiving terminal answers the invitation by sending “200 OK” at step 90. Finally at step 95, the transmitting terminal 15 sends an acknowledgement message, “ACK”, to the receiving terminal 25 to confirm the reception of the final response.
Regarding the implementation of the present invention, the system for accomplishing the tasks described above can be included as part of the application when it is originally installed on the transmitting terminal 15. For example, the application software itself can contain the required code for transmitting and receiving the various messages described above and represented in
On the side of the receiving terminal 25, in one embodiment of the invention the functionality is implemented so that it can be integrated with the SIP protocol stack and all available run time environments, including but not limited to Symbian and Java. Additionally, the system can instead be implemented on the receiving terminal 25 as a software middleware component. In this arrangement, the software middleware component must be able to handle SIP REFER requests, as well as be capable of transmitting required SIP NOTIFY requests. The software middleware component must also be able to fetch the application from the address which has been provided in the REFER request. Furthermore, the software middleware component must be able to initialize the application installation, as well as be capable of asking permission to perform these operations from the user of the receiving terminal 25.
With reference to
The exemplary communication devices of system 100 may include, but are not limited to, a cellular telephone 120, a combination PDA and cellular telephone 140, a PDA 160, an IMD 180, a desktop computer 200, and a notebook computer 220. The communication devices may be stationary or mobile as when carried by an individual who is moving. The communication devices may also be located in a mode of transportation including, but not limited to, an automobile, a truck, a taxi, a bus, a boat, an airplane, a bicycle, a motorcycle, etc. Some or all of the communication devices may send and receive calls and messages and communicate with service providers through a wireless connection 250 to a base station 240. The base station 240 may be connected to a network server 260 that allows communication between the cellular telephone network 110 and the Internet 280. The system 100 may include additional communication devices and communication devices of different types.
The communication devices may communicate using various transmission technologies including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. A communication device may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like.
One possible implementation of the present invention is as part of a communication device (such as a mobile communication device like a cellular telephone, or a network device like a base station, router, repeater, etc.), which can constitute the transmitting terminal 15 and/or the receiving terminal 25. A communication device 300, as shown in
While preferred embodiments have been shown and described herein, it should be understood that changes and modifications can be made to the invention without departing from the invention in its broader aspects. For example, but without limitation, the particular messages that are transmitted between the transmitting terminal 15 and the receiving terminal 25 can take a variety of forms, depending upon the particular requirements of the respective systems. It is also possible that certain steps in the process described herein could be varied, eliminated and/or combined depending upon the particular system characteristics. Furthermore, the present invention can be used with virtually any application where devices are in communication with each other, regardless of the content involved. Various features of the invention are defined in the following Claims.