The present invention relates generally to a data transfer and application server system. More specifically, techniques for messenger-controlled applications in instant messaging environments are disclosed.
Instant messaging has become one of the most popular applications on the Internet. Instant messaging programs generally allow users to send and receive messages. The messages are generated and displayed by an instant messaging client on each end and an instant messaging server may perform various functions to facilitate the transfer of messages for communication or conversation.
A message server 112 is also connected to the Internet. In various instant messaging systems, the message server may perform different functions such as receiving messages and transferring them, replacing certain text with symbols, or otherwise modifying or relaying messages. A second instant messenger client also creates an instant messaging window 122 that also includes a history window and a new text window. Instant messaging window 122 displays a message sent from instant messaging window 102 via message server 112. It should be noted that software intended for implementing an instruction set in an instant messaging environment may be generally referred to as an instant messenger application or IM application.
Each instant messenger client provides for various commands to enable a user to interact with the instant messenger window in various ways, and, to some extent, configure the window to the user's taste. For example, the user may select a color for the history window from among various colors available to the user. In this manner, the user configures his instant messenger window to have a desired appearance. In addition, a user may turn certain features such as ringing, on or off.
The instant messaging client may also be configured to react to certain content, in a limited fashion, received as a message by running a routine or performing some function. For example, when a ring is received, the instant messaging client may be configured to react to the ring by playing a sound, shaking, or executing some other action. The instant messaging client may also be configured not to respond to such a ring. Also, the instant messaging client may be configured to insert an image or play a sound when certain text is included in a message. Thus, a user is generally able to exercise a certain amount of control over the appearance and operation of his instant messaging client. However, users are generally unable to affect the environment or state of another user's instant messaging client or window. Moreover, users are also generally unable to implement, execute, or control instant messaging applications in another user's instant messaging environment. Conventional messaging applications are generally limited to and based upon text contained in user messages exchanged between instant messaging users.
Thus, there are numerous problems which exist with regard to conventional techniques. Conventionally, users are unable to execute applications beyond an instant messaging environment to include other users engaged in the same instant messaging session. Users are generally only able to send messages and configure their own instant messaging applications to perform certain actions limited to the instant message content. Moreover, users are generally unable to configure, execute, and control applications in an instant messaging environment between two or more users. It would be useful if a reliable system and method could be provided for instant messaging users to execute and control applications in an instant messaging environment.
A system and method for messenger-controlled applications in an instant messaging environment is disclosed. An instant messaging environment may affect the execution and operation of an application in an instant messaging session. A sending instant messaging environment can specify an instant messaging environment identifier along with an application identifier and cause a receiving instant messaging application to implement a selected environment. The selected instant messaging environment may affect the state of the instant messaging application in a number of ways. The environment may affect how user interface commands are processed as well as the appearance of the instant messaging window and the manner in which information is sent and processed.
The environment may also determine the type of instant messaging application to be executed as well as an associated mode of execution. In some embodiments, an instant messaging application may be configured to automatically, semi-automatically, or manually execute. In other embodiments, instant messaging applications may require the use of a supporting application for execution. Instant messaging environments may be downloaded from one or more central instant messaging servers so that users may obtain new environments to specify to other users. When the instant messaging application receives an environment identifier for which the instant messaging application does not have the corresponding environment, that instant messaging application may also download the environment from the central instant messaging server. Likewise, when an instant messaging environment receives an identifier for an instant messaging application, the instant messaging environment can request and retrieve the selected instant messaging application based upon the application identifier.
It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. Several inventive embodiments of the present invention are described below.
In one embodiment, a method is disclosed for selecting, at a first client, the application in the instant messaging environment, configuring an instant messaging control message for the application, including an identifier related to the application selected at the first client, sending the instant messaging control message to a second client, and executing the application in the instant messaging environment using the control message to retrieve the application from a server, unless the application has been previously called by the user.
In another embodiment, a method is disclosed for selecting a control feature in a first instant messaging environment, creating a control message based on selecting the control feature, and sending a control message from the instant messaging environment to a second instant messaging environment.
In yet another embodiment, a system is disclosed for an instant messaging environment for creating a control message and a messenger for sending or receiving the message and selecting an instant messaging environment in which to execute the application.
These and other features and advantages of the present invention will be presented in more detail in the following detailed description and the accompanying figures which illustrate by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
In
A detailed description of a preferred embodiment of the invention is provided below. While the invention is described in conjunction with that preferred embodiment, it should be understood that the invention is not limited to any one embodiment. On the contrary, the scope of the invention is limited only by the appended claims and the invention encompasses numerous alternatives, modifications and equivalents. For the purpose of example, numerous specific details are set forth in the following description in order to provide a thorough understanding of the present invention. The present invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the present invention is not unnecessarily obscured.
An instant messaging environment is a shared environment which exists between 2 or more instant messaging users.
It should be noted that the term “application” as used herein is intended to refer to any client application, server application, distributed application, self contained application or combination thereof. An application may be implemented in any appropriate manner, including being embedded in a chip or being loaded into memory or firmware.
In some embodiments, the conversation user interface includes a conventional instant messaging window as shown in
User interface commands are transferred from the instant messenger client to the conversation user interface to cause the conversation user interface to display instant messages and their corresponding environment to the user. For example, an append command is used to send a new message received from another instant messaging application to the conversation user interface. The append command may simply cause the received message to be added to a history window if a generic environment is selected. It should be noted that the phrase “user interface commands” as used herein is intended to encompass any functions, behaviors, actions, capabilities, etc. that are features of the user interface or the instant messaging window.
Other instant messaging environments may cause the append command to behave in different manners. For example, in the cartoon instant messaging environment, the append command would cause the last text bubble generated for the character corresponding to the message sender to disappear and for a new text bubble containing the current message to be created. Thus, the selected environment affects the state of the instant messaging application so that a user interface command specified by the instant messaging client may have different effects depending on the selected environment. A number of different environments may be stored in a cache 206.
In discussing the example shown, for the purpose of explanation, instant messaging client 202 will be described as sending a message to instant messaging client 212. In general, the two instant messaging clients will both send and receive messages in turn. Instant messaging client 202 sends a message that includes an environment identifier along with the message over the Internet. Throughout this specification, the Internet is referred to as a medium over which messages are sent. The disclosed system also operates over any other appropriate network or internetwork including wireless networks, proprietary networks, intranets, local area networks, or wide area networks. In one embodiment, instant messaging server 214 receives a message, processes the message and transfers the message to instant messaging client 212. In other embodiments, a peer to peer messaging system is implemented in which an instant messaging server need not necessarily become involved in transferring messages between instant messaging clients.
If a messaging server does process messages, then the messaging server may perform certain checks to determine whether the environment identifier as specified along with the message corresponds to a valid environment. In some embodiments, environments may expire as a result of a sponsorship or other type of agreement to maintain the environment lapsing.
The message along with the environment identifier is received by instant messaging client 212. Instant messaging client 212 also stores in a cache 220 various environments that it has obtained in the past. Instant messaging client 212 searches the cache for an environment that corresponds to the environment identifier received from instant messaging client 202. If a corresponding environment is found, then instant messaging client 212 changes the environment currently implemented by it.
The current environment affects how user interface commands sent from instant messaging client 212 to conversation user interface 216 are processed. In one embodiment, the instant messaging client may check whether or not an environment has expired before it implements that environment. If an environment has expired, then the instant messaging client may retrieve an updated environment from the instant messaging server or another specified source via the network.
In one embodiment, the instant messaging environment is implemented by loading into memory one or more JavaScript objects that implement methods and behaviors that override the history window's default methods and behaviors. Of course, objects may be written in any appropriate programming language or system, such as ActiveX. In another embodiment, an Iframe that is not visible to the user includes JavaScript that implements the instant messaging environment. For example, if a message is received by the instant messaging client and an append function is called to add that message to the history window, then the environment embedded in the JavaScript code alters the way the browser control processes the append function. For example, the JavaScript may include a different version of the append function that causes text to be appended in a different manner than it would normally be appended if no environment were implemented by the code in the browser control. It should be noted that loading a JavaScript object without using an Iframe is generally preferred over the Iframe implementation for the sake of speed. This description refers to both implementations and it should be noted that when one implementation is referenced, that the other implementation (or any reasonable alternative implementation) may be used in different embodiments.
Once the code in the browser control has executed the modified append function contained in the environment, the environment may either allow the normal append function to be subsequently executed or may indicate that the normal append function should not be executed, essentially replacing the normal append function with the modified version. For example, an environment may cause a sound or visual effect to occur every time a new line is appended to the history window. In such a case, the environment would cause the browser control upon receiving the append function to first execute some JavaScript that would play the sound or create the visual effect and then return to the normal append function for the text to be appended in a conventional manner. In another example, such as the one described above where the history window includes cartoon characters and text bubbles that contain the appended text, the normal append function would be replaced by the append function contained in the environment and the normal append function would not be called upon completion of the executed environment code.
Thus, implementing code in a browser control within an instant messaging window that renders an HTML allows user interface commands to be redefined. Different environments are stored simply as different sets of code. The JavaScript contained in the environment redefines certain commands or functions by executing additional commands and then either calling or not calling the original function as desired.
It is important to note that, while the above described JavaScript code implementation of instant messaging environments has significant advantages, it is by no means the only manner in which instant messaging environments are implemented. In different embodiments, instant messaging environments are implemented by using different code structures. In general, a certain set of code representing the environment is accessed by the instant messaging application. The set of code is loaded in response to the specification of an instant messaging environment identifier by another instant messaging application. The environment may also be specified by the user of the application. By way of example and without limitation, instant messaging environments may be implemented using the wireless application protocol, XML, VRML, or any other appropriate public or private standard.
The specified environment alters the response of the instant messaging application to actions performed by the user. As shown in
As a further example, another function that may be redefined is the scroll function. The user may indicate by dragging the mouse over an arrow button in the instant messaging window or by some other convenient means that he would like to scroll the history window. When such a scroll command is received, then a check is first made to determine whether or not the scroll command has been redefined by a loaded environment. For example, an environment may contain a watermark that is intended to always show up in the history window. In such a case, the scroll function would be redefined so that the watermark does not scroll within the window while the rest of the text inside the window does scroll.
As shown in
If an instant messaging application passes an environment identifier that is not accepted by the receiving instant messaging application, then the receiving instant messaging application will send back the default environment identifier and the sending instant messaging application may either change back to the default environment or maintain its own environment according to how it is configured. Thus, the instant messaging environment is either maintained or changed with each message passed back and forth containing an environment identifier.
If the sender is authorized, then control is transferred to step 404 and it is determined whether the environment is already cached by the receiving instant messaging application. If the environment is not cached by the receiving instant messaging application, then control is transferred to a step 406 where the environment is fetched. In one embodiment, the environment is loaded by accessing a website that makes environments available for download. The environment identifier may be sent to the website to identify the environment to be downloaded. In other embodiments, the environment may be obtained from the sender and an authentication code or signature may be used to verify the integrity of the environment. Once the environment is downloaded, then control is transferred to step 410. If the environment is in the cache, then control is transferred from step 404 to step 408 and it is determined whether the environment has expired.
In one embodiment, environments that are not found in a local cache are obtained from a secure source, such as a trusted website. This secure mode of distribution prevents parties from using environments for hostile purposes. Since instant messaging participants merely refer to environments and the referred to environments are separately obtained from a trusted source, participants do not intentionally or inadvertently send damaging environments to each other.
In one embodiment, whenever an environment is downloaded by an instant messaging application, an expiration date is also provided to the instant messaging application so that the instant messaging application can determine if the environment has expired. In another embodiment, the instant messaging application is required to always check with an instant messaging server to determine whether an environment has expired before that environment is implemented.
If the environment has expired, then control is transferred to step 406 and the environment is loaded. If the environment has not expired, then control is transferred to step 410 and an instant messaging window is opened if an instant messaging window is currently not open. Control is then transferred to step 412 where it is determined whether a different environment has been specified by the received environment identifier. If a different environment has not been specified, then the currently loaded environment may continue to be used and control is transferred to step 420 where the message is displayed.
If the environment is different, then control is transferred to step 414 and a clean up function is called for the old environment. Control is then transferred to step 416 and the new environment is loaded into memory. Next, in step 418, the start function is called for the new environment so that any code that should be executed when the new environment is loaded is executed. Control is then transferred to step 420 and the message is displayed. The process ends at 422.
In one embodiment, an environment is downloaded from a website by receiving a series of different types of files. The first type of file is an initialization file that contains information regarding the environment that the instant messenger application can access without actually loading the environment. The initialization file may contain items such as a display name that determines how the environment will be listed in a formatting tool bar used to select environments and an expiration that can be used by the instant messaging application to determine that the environment is invalid and initiate a download of an updated version of the environment.
The second type of file is the actual environment program file that contains, in one embodiment, encoded JavaScript that defines how the environment looks and behaves. The third type of file generally downloaded is media file such as an image file, video clip, animation, sound clip, etc. that provides images or other media that are generally used by the environment. In different embodiments, the different types of files are encrypted or compressed either together or separately and encapsulated or signed as is deemed appropriate. The files may be sent together using the .zip or the .cab or other archive or compression format, if desired. Preferably, at least the JavaScript objects are encrypted.
Requiring that the instant messaging environment be downloaded from one or more central sites enables editorial control to be exercised over the environments that are sent to users. Obscene environments or other undesirable environments can be avoided. Also, viruses and other malicious code can be excluded. In certain embodiments, users may be allowed to create environments and send them to other users, but it is an important feature that in some embodiments, there is at least one mode where environments are only downloaded from a trusted or controlled source that ensures security and, if desired, some control over content. One important use of instant messaging environments is advertising. When an instant messaging environment includes an ad, controlling the source of the environment facilitates tracking of the environment use as well as making sure that the environment is not altered.
It should be noted that when the environment is downloaded, data in the initialization file for the environment may be separately stored in a table or system registry so that information about loaded environments may be readily accessed by the instant messaging application without opening files. For example, if an expiration date is associated with the environment, then that date may be written into an expiration table so that the instant messaging application can periodically perform clean up and delete expired environments or check before an environment is accessed whether or not it has expired. Likewise, the names of various download environments may be stored in a single table used to create a list of environments for a menu that facilitates the selection of environments by a user.
Sending environment identifiers between instant messaging applications and using the environment identifiers to change the environment of a receiving application has been described. Once this capability of redefining user interface command functions, executing animations and creating event driven actions to occur in an instant messaging window has been enabled, a rich variety of environments can be defined for instant messaging applications. Some examples of instant messaging environments that may be created are provided in
The instant messaging server may track statistics about environments for various reasons. For example, if an environment has an advertisement theme associated with it, then each time the environment is specified by a user to another user that event may be counted by the server so that ad revenue can be generated. In addition, when certain functions within the environment are called as a result of events, the instant messaging server may record such occurrences as well and those events may also generate ad revenue.
If an IM message is determined above, then an IM application (i.e. movie trailer, video, etc.) is executed. If the message is not an IM message, then IM environments determine whether the message is a user message in step 1110. If the message is a user message, then the message is displayed via IM client 202 on conversation user interface 204. If the message is neither an IM message nor a user message, then error handling is invoked, in step 1114.
In
Control features such as those discussed in connection with the process flow chart of
Control of IM applications such as co-searching, co-browsing, networked games, shared videos or audio files may be implemented in an automatic, semi-automatic, or manual manner. Information related to the control of IM applications uses IM messages which, when passed between IM clients, causes particular actions/interactions to occur between two or more IM users. The IM messages enable and control IM applications, which is widely varied in terms of functionality and user interactivity. IM applications may include co-searching, co-browsing, site navigation, co-drawing, media sharing (e.g., video, music, animation, photos, etc.), games, and activities in other embodiments. The IM applications can be hosted on servers communicating with the instant messaging clients, which may be operated by a variety of entities such as a content developer, hosted service, service provider, etc.
Procedures and techniques for messenger-controlled applications in instant messaging environments have been described. A number of exemplary environments that may be created using these procedures and techniques have also been shown. In addition to being used in instant messaging environments between two users, the techniques described herein may also apply to instant messaging environments that include one, three, or more users.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. It should be noted that there are many alternative ways of implementing both the process and apparatus of the present invention. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
This application is a continuation in part of U.S. patent application Ser. No. 09/930,878 entitled “INSTANT MESSAGING ENVIRONMENTS” filed Aug. 15, 2001, now U.S. Pat. No. 7,133,900 which claims priority to U.S. Provisional Patent Application No. 60/331,331 entitled “INSTANT MESSAGING ENVIRONMENTS” filed Jul. 6, 2001, both of which are incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5220657 | Bly et al. | Jun 1993 | A |
5880731 | Liles et al. | Mar 1999 | A |
6237025 | Ludwig et al. | May 2001 | B1 |
6301609 | Aravamudan et al. | Oct 2001 | B1 |
6430602 | Kay et al. | Aug 2002 | B1 |
6487583 | Harvey et al. | Nov 2002 | B1 |
6493724 | Cusack et al. | Dec 2002 | B1 |
6539421 | Appleman et al. | Mar 2003 | B1 |
6564246 | Varma et al. | May 2003 | B1 |
6564249 | Shiigi | May 2003 | B2 |
6611814 | Lee et al. | Aug 2003 | B1 |
6651053 | Rothschild | Nov 2003 | B1 |
6677976 | Parker et al. | Jan 2004 | B2 |
6747970 | Lamb et al. | Jun 2004 | B1 |
6760580 | Robinson et al. | Jul 2004 | B2 |
6781608 | Crawford | Aug 2004 | B1 |
6807565 | Dodrill et al. | Oct 2004 | B1 |
6816884 | Summers | Nov 2004 | B1 |
6907447 | Cooperman et al. | Jun 2005 | B1 |
6980983 | Banerjee et al. | Dec 2005 | B2 |
6983370 | Eaton et al. | Jan 2006 | B2 |
7028262 | Estrada et al. | Apr 2006 | B2 |
20030041108 | Henrick et al. | Feb 2003 | A1 |
20030101235 | Zhang | May 2003 | A1 |
20030208545 | Eaton et al. | Nov 2003 | A1 |
20040117443 | Barsness | Jun 2004 | A1 |
20040215731 | Tzann-en Szeto | Oct 2004 | A1 |
20050086211 | Mayer | Apr 2005 | A1 |
Number | Date | Country | |
---|---|---|---|
20040215731 A1 | Oct 2004 | US |
Number | Date | Country | |
---|---|---|---|
60331331 | Jul 2001 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09930878 | Aug 2001 | US |
Child | 10613985 | US |