Embodiments of the invention relate generally to electronic communication systems, and more specifically, to an integrated communication platform for asynchronous and synchronous messaging protocols.
Text-based communication capabilities have become built-in to a wide variety of different computing devices, such as desktop computers, portable or notebook computers, Personal Digital Assistance (PDA) devices, wireless telephones, cellular phones, network kiosks, and the like. The advent of global computer networks, such as the Internet, has facilitated the establishment of a variety of communication systems that are available to users of such computing devices. These include electronic mail (“e-mail), instant messaging (IM), Internet Chat, and other modes of communication that can be accessed through a variety of web-based, desktop software-based, or embedded applications.
Present communication methods typically involve the use of various different services, protocols and devices. For example, a person might use a workstation or portable computer for e-mail exchange and a cell phone, or other type of mobile communication device, for voice or text message type communication. The increased computing power available in mobile computing devices and the increased multimedia capability of portable computers has led to the availability of many different communication interfaces on virtually all popular electronic devices. These communication interfaces and protocols, however, remain unorganized and separate. In order to effectively communicate with others, a user may need to launch two or three different communication applications, such as e-mail and IM applications in the same or different devices. Even within the same type of communication method, such as IM, different protocols may be used by different vendors, thus making communication among different service users quite difficult.
Most communication services can be divided into asynchronous services, such as e-mail, in which send and reply sequences in a communication session may occur at different times, or synchronous services, such as IM, in which the send and reply sequences occur in real-time or near real-time. In terms of functionality and interface standards, there is a degree of overlap among different communication services, even between synchronous and asynchronous services. However, these services typically run on separate applications and often on separate device platforms, which leaves little opportunity for integration between them. This lack of integration requires users to run multiple separate communication applications, and even use different devices. It also requires users to establish and maintain separate accounts with possibly several different vendors. This results in an unorganized and potentially confusing experience with regard to deployment and use of communication applications, and also introduces vulnerabilities with regard to user privacy and security.
Although some service providers and vendors have attempted to bridge the gap between asynchronous and synchronous services, present integration solutions are incomplete and inefficient because they are typically limited to single protocols or systems available from one or only a few vendors. What is needed, therefore, is a comprehensive communication integration system that allows for cross-protocol and cross-vendor communication using a single application that requires minimal or no client-side application installation.
Embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Each publication, patent, and/or patent application mentioned in this specification, including U.S. Provisional Patent Application No. 60/828,971 filed Oct. 10, 2006 is herein incorporated by reference in its entirety to the same extent as if each individual publication and/or patent application was specifically and individually indicated to be incorporated by reference.
Embodiments of a system for integrating electronic mail and instant messaging applications in a comprehensive communication interface are described. In the following description, numerous specific details are introduced to provide a thorough understanding of, and enabling description for, embodiments of the integrated communication interface. The integrated communication system includes an interface that is embodied as a web-based communication portal that allows users from a single application and log-in session to download all of their e-mail messages and IM messages from different e-mail and messaging accounts, as well as access other communication related services. In one embodiment, the communication interface is a web-based application that eliminates the need for any dedicated application software to be installed on the client computer. The interface functionality is provided on as a web-server application and is configured to recognize and leverage overlapping functionality between different communication services to provide a comprehensive communication portal for the user through their client computer or other client device. One skilled in the relevant art will recognize that these embodiments can be practiced without one or more of the specific details, or with other components, systems, and so on. In other instances, well-known structures or operations are not shown, or are not described in detail, to avoid obscuring aspects of the disclosed embodiments.
Aspects of the one or more embodiments described herein may be implemented on one or more computers executing software instructions. The computers may be networked in a client-server arrangement, or similar distributed computer network.
The communication links shown between the network 110 and the various client and server computers shown in
Client computer 102 may access network 110 in different ways. First, client computer 102 may directly access network 110, for example, by using a modem to access a public telephone network (e.g., a public switched telephone network (PSTN)) that is coupled to network 110. Client computers may be any class of computing device, such as personal computer, workstation, and so on. Another class of client computers is represented by mobile client 118. Mobile client (wireless device ) 118 can be a mobile computing or communication device, such as a notebook computer, personal digital assistant (PDA), mobile phone, game console, or any similar class of mobile computing device with sufficient processing and communication capability that is capable of communicating with other devices via a wireless connection. Mobile client 118 can be coupled to network 110 through a separate network 111, which can be a cellular network in the case where mobile device 118 is a cellular phone. Network 110 may be any type of data communication network using any communication protocol. Further, network 110 may include one or more sub-networks (not shown) which are interconnected with one another. In one embodiment, network 110 comprises the Internet, and may include one or more Wide Area Networks (WAN), Local Area Networks (LAN), or any combination thereof.
In one embodiment, the one or more of the server computers function as a World-Wide Web (WWW) server that stores data in the form of web pages and transmits these pages as Hypertext Markup Language (HTML) files over the Internet 110 to the client computer 102. For this embodiment, the client computer 102 typically runs a web browser program 114 to access the web pages served by server computers and any available content provider or supplemental server. For this embodiment, client computer 102 may access the Internet 110 through an Internet Service Provider (ISP).
As shown in
Each of the processes 122 and 124 may represent one or more executable programs modules that are stored within integrated interface server 104 and executed locally within the server. Alternatively, the server-side processes may be stored on a remote storage 120 or processing device coupled to server 104 or network 110 and accessed by server 104 to be locally executed. In a further alternative embodiment, these processes may be implemented in a plurality of different program modules, each of which may be executed by two or more distributed server computers coupled to each other, or to network 110 separately. Data for any of the applications contained within or associated with messaging applications used by the client computer 102 may be provided by a data store 120 that is closely or loosely coupled to any of the server and/or client computers.
One or more of the server computers also execute a web server process 123, which allows access to users of client computer 102 to access the integrated communication system through a web-based interface. The processing components of the system are thus available for execution on servers 104 and in most circumstances, no executable code need be installed on the client computer 102. In certain cases, client side modules or applications 115 may be installed on the client computer for local execution, depending upon implementation requirements.
Each of the client and server computers shown in
For purposes of illustration, programs and other executable program components are illustrated herein as discrete blocks, although it is understood that such programs and components reside at various times in different storage components of the computer, and are executed by the computer's processor. For this purpose, the terms “components,” “modules,” “programming blocks,” and so on are used interchangeably to refer to software or firmware programs, or hardware or firmware logic circuits that are configured to execute specific computer-implemented processes. Thus, the systems and procedures described herein can be implemented in hardware or a combination of hardware, software, and/or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out the systems and procedures described herein.
In one embodiment, the integrated communication system 112 functionally couples e-mail and instant messaging server computers in a web-based application for a user computer.
The e-mail system 212 is a standard store and forward system that allows users to compose, send, store, and receive text or graphic based messages over network 230. For the Internet embodiment shown in
As shown in
As shown in
Each of the IM systems 218 of
The integration of IM gateways 214 and e-mail system 212 in system 202 allows for the comprehensive integration of many different types of messaging systems among different users in an e-mail application accessed by the user through a single web-based protocol through web server cluster 206. This system allows a user to receive an e-mail message from a user, detect whether the user is online through any one of a number of IM systems, participate in an IM or chat session with that user, and append the text of the IM or chat session with the e-mail message. The IM gateways 208 contain the necessary interface code to adapt or integrate IM messages from the native format of the external IM systems 218 to the e-mail system 212. In general, an IM system has two main control functions, one is to manage the presence information for the users, and the second is to manage the message content. In one embodiment, each of the IM gateways 208 adapts the relevant parameters related to these functions for each external IM system to the standards of system 202. Examples of such parameters include defining groups, managing contact lists, adding/deleting contacts, formatting messages, defining user privileges/characteristics, and so on. Each gateway is specifically tailored for its respective external IM system based on these and any other appropriate parameters. The external IM systems 218 illustrated in
System 202 of
The integration of synchronous (IM or chat) messages with e-mail (asynchronous) communication is provided to the user in a comprehensive and efficient web interface. When an e-mail message is received by a user, the online/offline presence of the e-mail sender relative to the user is automatically detected by the system, and an icon of the appropriate messaging protocol representing the sender is displayed in the display area of the e-mail or other messaging window of the user. This allows the receiver to initiate an IM session with the sender. In one embodiment, the online/offline presence of senders in the system is only displayed if a sender is a recognized friend of the user for privacy and security reasons. This can be accomplished by validating the sender against a buddy or friend list of the user, or any similar validation method. Once a validated sender is detected, the user can send an instant message to the sender from within the communication application. This prevents the need for the user to relaunch the actual IM or other messaging application used by the sender.
In one embodiment, the communication integration system allows e-mail and IM or chat sessions to be displayed concurrently or in an overlapped fashion in the web page of the e-mail system.
Other types of synchronous communication protocols can also be utilized within the integrated communication system. One such example is an online chat protocol.
In one embodiment, the communication interface process 122 includes processing components that recognize IM messaging protocols and conventions implemented by a variety of different IM vendors. These protocol definitions can be manually input into a database maintained by a server 104 or they can be at least partially automated through intelligent processes that detect known patterns and datatypes. As shown in
With reference to
As shown in
The process automatically calculates a hash value for the password, block 704. In one embodiment, a Message-Digest 5 (MD5) hashing algorithm is used. This is a 128-bit hash value that is employed in a wide variety of security and file integrity applications. An MD5 hash is typically expressed as a 32-character hexadecimal number. Alternatively, any similar type of hash algorithm can be used. The user name and hashed value of the password is then stored in a database maintained by the account management process 124, block 706. The process then obtains the user name and passwords for any other e-mail and IM accounts of the user, block 708. The process then encrypts the passwords of all of these accounts using an encryption algorithm that employs the password hash value as the key, block 710. In one embodiment, the encryption algorithm comprises the Advanced Encryption Standard (AES), which is a block cipher. AES is a symmetric key cryptography system that supports a block size of 128 bits and key sizes of 128, 192, and 256 bits. The user names and encrypted passwords of the user e-mail and IM accounts are then stored in the database in a User-Info, or similar table, block 712. It should be noted that encryption algorithms other than AES can also be used.
As shown in
The web page can also include a “Link” command button. This button causes the process to display the list of all saved and open e-mail, IM, and chat conversations. The IM or chat conversations are appended at the end of a selected conversation once the IM window or chat room window is closed.
In one embodiment, saved IM or chat conversations, or any other synchronous type of message can be transmitted to another user using the e-mail or other asynchronous application. The chat system allows a user to invite other users to a chat room regardless of the e-mail or IM system.
After the headers are inserted, the name of the temporary file is converted to conform to a MailDir, or similar format, block 808. The file is then saved in the user account in the file system, block 810. In block 812 it is determined whether the buddy replies by IM. If not, the process ends; otherwise, the system e-mails a copy of the conversation to the buddy, block 814. The contents of the chat session can be transcribed to text and linked with any previously saved e-mail or IM message. This may done by a link or attach command that allows a user to search and find previous e-mail messages to associate with the chat session.
In one embodiment, the integrated communication system allows user to create and participate in multiple public or private chat rooms. Each chat room is assigned its own URL (Uniform Resource Locator). This allows each user to access the chat room without having a system account or logging in. If a participant of a chat room is logged in to the system, and thus to one or more of their e-mail and IM accounts, the user may invite other contacts to that chat room through e-mail or IM. Once the user selects the “Invite” command button, a form appears allowing the user to send an e-mail invitation from one of their registered e-mail accounts. The user is also presented with a list of online buddies on their registered IM accounts, and can select buddies from the list to send an IM invitation to the chat room. The user can then compose and send a custom message that contains the URL of the chat room. This can be sent via e-mail if e-mail addresses are given, or an IM if buddies are selected. When the invitee clicks on the URL, he or she is then taken to the chat room in the browser window.
The integrated communication interface provides a platform that consolidates multiple different synchronous and asynchronous communication applications into a single web-based application allowing them to run simultaneously and as a single application. Any number of different IM systems can be used in conjunction with the e-mail system to provide a mechanism for users to open and participate in IM or chat sessions during e-mail exchanges. Contact lists for the users are analyzed and the online/offline presence of users is automatically detected to provide a convenient mechanism for integrated communication in a manner that maintains the privacy of existing user accounts. This overall system provides the user with faster. access to his or her communication services and accounts and provides a more efficient means of communication with other users. Users can switch between e-mail and IM type communication within the same application depending on their preference, without the need to switch applications on their client computers. Through the integrated communication interface, disparate communication services and modes of communication are effectively packaged as a single service, yet maintain the inherent advantages of their native protocols.
Aspects of the integrated communication system and interface described herein may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (“PLDs”), such as field programmable gate arrays (“FPGAs”), programmable array logic (“PAL”) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects of the integrated communication system include: microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, etc. Furthermore, aspects of the described method may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (“MOSFET”) technologies like complementary metal-oxide semiconductor (“CMOS”), bipolar technologies like emitter-coupled logic (“ECL”), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, and so on.
It should also be noted that the various functions disclosed herein may be described using any number of combinations of hardware, firmware, and/or as data and/or instructions embodied in various machine-readable or computer-readable media, in terms of their behavioral, register transfer, logic component, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, and so on).
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “hereunder,” “above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word “or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
The above description of illustrated embodiments of the integrated communication system and interface is not intended to be exhaustive or to limit the embodiments to the precise form or instructions disclosed. While specific embodiments of, and examples for, the system are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the described embodiments, as those skilled in the relevant art will recognize.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the application integration system in light of the above detailed description.
In general, in any following claims, the terms used should not be construed to limit the described system to the specific embodiments disclosed in the specification and the claims, but should be construed to include all operations or processes that operate under the claims. Accordingly, the described system is not limited by the disclosure, but instead the scope of the recited method is to be determined entirely by the claims.
While certain aspects of the integrated communication system are presented below in certain claim forms, the inventors contemplate the various aspects of the methodology in any number of claim forms. For example, while only one aspect of the system is recited as embodied in machine-readable medium, other aspects may likewise be embodied in machine-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the described systems and methods.
This application is claims the benefit of U.S. Provisional Patent Application No. 60/828,971 entitled “Integrated Communication System,” and filed on Oct. 10, 2006.
| Number | Date | Country | |
|---|---|---|---|
| 60828971 | Oct 2006 | US |