WO2008006115A2 - A method and system for embedded personalized communication - Google Patents

A method and system for embedded personalized communication Download PDF

Info

Publication number
WO2008006115A2
WO2008006115A2 PCT/US2007/073081 US2007073081W WO2008006115A2 WO 2008006115 A2 WO2008006115 A2 WO 2008006115A2 US 2007073081 W US2007073081 W US 2007073081W WO 2008006115 A2 WO2008006115 A2 WO 2008006115A2
Authority
WO
WIPO (PCT)
Prior art keywords
computer
user
server
instant messaging
user interface
Prior art date
Application number
PCT/US2007/073081
Other languages
French (fr)
Other versions
WO2008006115A3 (en
WO2008006115A9 (en
Inventor
Elaine Wherry
Sandy Jen
Seth Sternberg
Jian Shen
Original Assignee
Meebo, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meebo, Inc. filed Critical Meebo, Inc.
Priority to BRPI0714017-7A priority Critical patent/BRPI0714017A2/en
Priority to DE112007001516T priority patent/DE112007001516T5/en
Priority to GB0901904A priority patent/GB2454825A/en
Publication of WO2008006115A2 publication Critical patent/WO2008006115A2/en
Publication of WO2008006115A9 publication Critical patent/WO2008006115A9/en
Publication of WO2008006115A3 publication Critical patent/WO2008006115A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Definitions

  • the field of the invention relates generally to computer systems and more particularly relates to a method and system for embedded personalized communication.
  • Instant Messaging (sometimes referred to as IM) enables users to easily see whether a chosen buddy (e.g., a friend, colleague, co-worker or the like) is connected to the Internet and, if so, to exchange messages with them.
  • Instant Messaging differs from common e-mail in the immediacy of the message exchange.
  • IM exchanges are text-only.
  • some services e.g., AOL Instant Messaging
  • voice messaging and file sharing In IM, both users need to subscribe to the service (e.g., and have certain software on their user devices), and need to be online at the same time. In addition, the intended recipient needs to be willing to accept instant messages.
  • IM can be truly or virtually instantaneous (with, e.g., delays of usually less than a number of seconds), such that it is typically possible for two people to have a real-time online "conversation" by sending IMs to each other.
  • IM users typically use a networked computer and IM client software to exchange messages with one another in conversational style.
  • An IM client provides an interface for users to compose, send, receive, and read text messages. Examples of IM clients that are popular today include IBM's SAMETIME, MSN MESSENGER, YAHOO! INSTANT MESSENGER, and AOL INSTANT MESSENGER.
  • an IM client provides windows through which a user can compose and read messages.
  • IM clients provide users the ability to manage lists of contacts, particularly other IM users. These lists are referred to as "buddy lists.” Users may organize buddy lists into groups of related users, where the IM client displays the various groups in a hierarchical tree that can be collapsed and expanded as the user desires.
  • a computer-implemented method comprises providing software code to be embedded in a webpage.
  • the webpage is loaded including the embedded software code.
  • a configuration file is fetched from a configuration server in response to the loading or activation of the embedded software code.
  • an initial instant messaging user interface is rendered on the webpage.
  • the software code sends a request to a web- based instant messaging server to initiate a session. Once communication is established and the session is initiated, the instant messaging user interface is updated.
  • events and messages can be exchanged between the software code and the instant messaging server until the session is closed. Input from a visitor of the webpage can be facilitated through the embedded software code's instant messaging user interface rendered on the webpage.
  • Figure 1 illustrates a block diagram of an exemplary peer-to-peer messaging system with embedded personalized communication, according to one embodiment
  • Figure 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment
  • Figure 3 illustrates a flow diagram of an exemplary process for embedded personalized communication, according to one embodiment.
  • Figure 4 illustrates a flow diagram of an exemplary process to create embedded code, according to one embodiment.
  • a computer-implemented method comprises providing software code to be embedded in a webpage.
  • the webpage is loaded including the embedded software code.
  • a configuration file is fetched from a configuration server in response to the loading or activation of the embedded software code.
  • an initial messaging user interface is rendered on the webpage.
  • the software code sends a request to a web- based instant messaging server to initiate a session.
  • the instant messaging session user interface is updated. Events and messages can be exchanged between the software code and the instant messaging server until the session is closed. Input from a visitor of the webpage can be facilitated through the embedded software code's instant messaging user interface rendered on the webpage.
  • the present invention also relates to apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories, random access memories, EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • FIG. 1 illustrates a block diagram of an exemplary system 100 for embedded personalized communication, according to one embodiment.
  • Embedded personalized communication refers to any messaging capability that allows communication between an origin server and a software module replicated or embedded on multiple servers (or websites).
  • System 100 also allows for the determination of a user's web presence, that is identifying the website that a user is visiting on the web and/or the activities, behavior, or other information related to that user while the user is on that site.
  • Embedded communications system 100 is divided into a client side and a server side.
  • the client side includes webpage A.COM that may be accessible through a web browser.
  • Webpage A.COM includes embedded code to allow an instant messaging interface 1 1 1 to be replicated within the webpage A.COM 1 10.
  • Instant messaging interface 1 1 1 can be a replica or variation of instant message user interface 121 hosted on a webpage for web based IM 120. It is important to note that instant messaging interface 1 1 1 1 allows users visiting webpage A.COM to instant message, receive presence information, or exchange other similar information with a user of web based IM client 120 in real time.
  • webpage A.COM 1 10 may be user A's profile on MYSPACE.COM.
  • User A's profile is typically rendered by a browser in HTML format which contains the embedded code that links webpage A.
  • COM of client 1 10 to his/her instant messaging account as viewed on webpage for web based IM of client 120 (for example, on MEEBO.COM). Through this link, a user on visiting webpage A.COM 1 10 can initiate, receive, and maintain a one-on-one chat session with the user on web based IM webpage client 120.
  • Instant message user interface 1 1 1 is only a replica of instant message user interface 121 in that the communications between both interfaces are synchronized and dynamically updated in real-time. Each interface may have its own look and feel, design, etc.
  • the server side of embedded communications system 100 communicates with webpage A.COM on client 1 10 and webpage web-based IM on client 120.
  • web server 130 is a LightTPD web server.
  • LightTPD is a web server which is designed to be secure, fast, standards-compliant, and flexible while being optimized for speed-critical environments. Its low memory footprint (compared to other web servers), light CPU load and its speed goals make LightTPD suitable for servers that are suffering load problems, or for serving static media separately from dynamic content.
  • LightTPD is free software / open source, and runs on GNU/Linux and other Unix-like operating systems and Microsoft Windows.
  • Web server 130 includes a Jabber module that communicates with a guest server 140.
  • Jabber is an instant messaging and presence technology that utilizes the Extensible Messaging and Presence Protocol (XMPP).
  • web server 130 communicates with a Jabber guest server 140.
  • Jabber guest server 140 can be instantiated on the same physical server at web server 130, or a separate one altogether.
  • Jabber guest server 140 maintains a database of active IM clients and includes the capability of offering anonymous subscriptions when requested by web server 130. Jabber guest server 140 may also be queried for presence information of subscribed users.
  • a non-guest Jabber server 150 communicates with Jabber guest server 140.
  • Jabber non-guest server 150 facilitates instant messaging communication when users are not anonymous.
  • Jabber non-guest server 150 communicates with web based IM server 160 that maintains databases of registered users that have instant messaging accounts, such as the webpage for web based IM client 120.
  • the functionality ascribed to Jabber guest server 140 can also live on Jabber non-guest server 150 and vice versa.
  • anonymous and registered users could both communicate with the same Jabber server. Communication between anonymous and registered users occurs between the different instantiations on the same server.
  • Web based IM server 160 allows clients to log in to multiple accounts on multiple instant messaging (IM) networks simultaneously. This means that one can be chatting with friends on AOL Instant Messenger, talking to a friend on Yahoo Messenger, and sitting in an IRC channel all at the same time, and through a common web interface.
  • IM instant messaging
  • IM server 160 all registered users of IM server 160 are also logged into Jabber non-guest server 150.
  • server 160 initiates an IM session with Jabber non-guest server 150, using credentials stored in the database system controlled by IM system 160.
  • web server 160 attempts to keep the user logged into Jabber non-guest server 150. On a potential disconnection, the user is automatically re-connected.
  • a configuration server 170 stores configuration files that are used to instantiate properties of instant message user interface 1 1 1 , eg. rendering, communication details, server-specific information, etc., as well as to uniquely identify or categorize instances of the instant message user interface 1 1 1 embedded on multiple webpages 1 10.
  • the HTML code for the instant message user interface 1 1 1 specifies which configuration file to load from the configuration server 170. That configuration file stores an identifier chosen by the creator of the embedded instant message user interface 1 1 1 so that when a new message is received, the user can immediately recognize the origin of the visitor. This organization of conversations is done through the user's buddylist where specific conversation instances are listed under their respective identifiers or "groups" that were chosen during creation.
  • System 100 is interconnected by the Internet (not shown), alternatively, the network may be a Wide Area Network (WAN), a Local Area Network (LAN), or any other system of interconnections enabling two or more devices to exchange information. Further, the network may include a wireless network, such that one or more of clients 1 10 or 120 may be wireless devices. [0027] One or more of clients 1 10 or 120 may allow network access via a web browser such as Microsoft's Internet Explorer, Netscape Browser, Mozilla, Firefox, or the Safari browsers that support HTML and JavaScript.
  • a web browser such as Microsoft's Internet Explorer, Netscape Browser, Mozilla, Firefox, or the Safari browsers that support HTML and JavaScript.
  • clients 1 10 or 120 may be mobile devices, such as videophones, laptops, smart phones, mobile phones, PDAs, game devices such as the PSP manufactured by Sony Electronics, multimedia devices such as iPods and iPhones manufactured by Apple Computers of Cupertino, California, or similar devices.
  • mobile devices such as videophones, laptops, smart phones, mobile phones, PDAs, game devices such as the PSP manufactured by Sony Electronics, multimedia devices such as iPods and iPhones manufactured by Apple Computers of Cupertino, California, or similar devices.
  • server 160 may be a Gaim server such as an open-source GTK2-based instant messenger application (under GPL). It supports multiple protocols via modules, including AIM, ICQ, Yahoo!, MSN, Jabber, IRC, Napster, Gadu-Gadu and Zephyr.
  • GPL open-source GTK2-based instant messenger application
  • Servers 130-170 run on a number of platforms, including Windows, Linux, and Qtopia (Sharp, Zaurus and iPaq).
  • Gaim server 160 is not endorsed by or affiliated with AOL TimeWarner, Microsoft, or Yahoo. Although Gaim server 160 is described, any multi-protocol server may be used including Pidgin (open source) or Trillian created by Cerulean Studio. According to one embodiment, Gaim server 160 does not include the GTK visual software in order to be optimized as a web server application. In one embodiment, the Gaim server 160 is comprised mostly of back- end functionality and no graphical user interface. Different systems may set limits on how many instant messaging services may be connected, or may be active on one screen.
  • Clients 1 10, and 120 may be mobile devices or fixed devices such as set top boxes, desktop computers, media recorders such as those manufactured by TiVo, Inc. of Alviso, California, game devices such as the XBox manufactured by Microsoft, Corp. of Redmond, Washington or similar devices.
  • Web based IM server 160 enables a web based instant messaging service for clients 1 10, and 120 that does not require IM software to be installed on clients 1 10, and 120.
  • the instant messaging application is web- based and communication between clients 1 10, 120 and servers 130-170 take the form of XmlHttpRequests.
  • Servers 130-170 are web servers that use any one of a number of protocols and/or applications including HyperText Transfer Protocol (HTTP), File Transfer Protocol (FTP), Internet Relay Chat (IRC), etc., via a TCP/IP connection (not shown in this view) or other similar connection protocols.
  • the operating system may be Windows®, LINUX, SUN Solaris®, Mac OS, Tiger, or other similar operating system.
  • the servers 130-170 are dedicated servers. It uses processing logic, tools and databases and is built using a combination of technologies such as those from Apache Software (www.apache.org) such as Tomcat servers; Java based technologies such as J2EE, EJB, JBOSS, JDBC; and/or databases such as MySQL.
  • Apache Software www.apache.org
  • Java based technologies such as J2EE, EJB, JBOSS, JDBC
  • MySQL MySQL
  • System 100 may also include other supporting computing software and hardware, for example, additional website servers, databases, computers, and user interface servers.
  • FIG. 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment.
  • Computer architecture 200 can be used to implement a client 1 10, 120, or a server 130-170 of Figure 1.
  • One embodiment of architecture 200 comprises a system bus 220 for communicating information, and a processor 210 coupled to bus 220 for processing information.
  • Architecture 200 further comprises a random access memory (RAM) or other dynamic storage device 225 (referred to herein as main memory), coupled to bus 220 for storing information and instructions to be executed by processor 210.
  • Main memory 225 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 210.
  • Architecture 200 also may include a read only memory (ROM) and/or other static storage device 226 coupled to bus 220 for storing static information and instructions used by processor 210.
  • ROM read only memory
  • a data storage device 227 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 200 for storing information and instructions.
  • Architecture 200 can also be coupled to a second I/O bus 250 via an I/O interface 230.
  • a plurality of I/O devices may be coupled to I/O bus 250, including a display device 243, an input device (e.g., an alphanumeric input device 242 and/or a cursor control device 241 ). For example, web pages rendered by MMSW server 130 and related information may be presented to the user on the display device 243.
  • the communication device 240 allows for access to other computers (servers or clients) via a network.
  • the communication device 240 may comprise a modem, a network interface card, a wireless network interface or other well known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
  • FIG. 3 illustrates a flow diagram of an exemplary process 300 for embedded personalized communications, according to one embodiment.
  • the software module embedded on the webpage (the widget) is loaded.
  • the widget can be automatically loaded when the webpage is loaded or the visitor of the webpage must activate it. Activation can be accomplished by clicking on the rendering of the widget on the webpage 1 10, scrolling to the webpage so that the widget comes into physical view, etc.
  • the widget instructs the client 1 10 to fetch a configuration file from the configuration server 170. (310)
  • the configuration file identifies the user associated with the widget and ostensibly A.
  • an instant messenger user interface 1 1 1 is rendered on A.COM 1 10 having a particular title, color scheme, and a presence or status element indicating information about the owner of the widget (set to offline as a default).
  • Client 1 10 connects to the Jabber module of web server 130.
  • the user of client 1 10 requests that a session be initiated from server 130 as an anonymous guest.
  • Server 130 logs in the anonymous guest to Jabber guest server 140.
  • Jabber guest server 140 initiates an IM session and communicates back to web server 130 that the anonymous guest is online.
  • A.COM web server's Jabber module 130 appears to Jabber guest server 140 as a guest Jabber user, e.g. a client of Jabber guest server 140.
  • Instant message user interface 1 1 1 sends a subscription request message through A.COM web server 130 to Jabber guest server 140, to request permission to receive the presence information of the user associated with the A.COM webpage.
  • a decision is made to determine if the user of IM user interface 121 is available.
  • the IM session associated with that user on web server 160 automatically accepts the subscription request.
  • Web server 160 then responds with an identical subscription request for the guest Jabber user's presence information on Jabber guest server 140.
  • a decision is made to determine if the user of IM user interface 1 1 1 is available.
  • the Jabber module on web server 130 also automatically accepts the request on behalf of the user on A. COM. (350) Thusly, both ends of the communication scheme can now receive presence (and related) information about each other. The IM session has now been established and the interfaces update to reflect the connected state. (365) Both users can initiate instant message communications. (370).
  • the user on interface 121 can receive a prompt to add the user of interface 1 1 1 to an instant messaging session and, thus be subscribed to presence information.
  • the user on interface 121 may also be asked to add the user on interface 1 1 1 to his/her buddy list.
  • Servers 130 and 160 update their respective user interfaces 1 1 1 , 121 to indicate that the users are both available. Real time status of each user is maintained. For example, if the user on interface 121 sets his status as "away” and includes a custom away message, user interface 1 1 1 is updated to show the "away" status and the associated message.
  • User interface 121 also indicates that the other user is using the widget associated with a particular identity. This identity can be a category (eg. "Social networking widget") as specified by data read in from the configuration file. The identity could also indicate the webpage (eg. A. COM) where the widget is embedded. This could be done using the configuration file, running a CGI script located on another web server that responds with the containing web page, or another implementation that accurately returns the embedded webpage.
  • COM may still send a message.
  • This message can include the initial subscription request.
  • the message will be stored on the Jabber non-guest server 150 and then served to the user once he/she logs in. (360)
  • IM server 160 still automatically accepts the request once the user is logged into interface 121 .
  • the visitor on user interface 1 1 1 sees the widget owner as offline; once the subscription handshake (described above) is completed, the interface 1 1 1 is updated to reflect the widget owner's new status.
  • the delayed message is in the form of an instant message, the user on interface 121 can respond if the Jabber user on interface 1 1 1 is still available and present on the webpage 1 10.
  • messages sent from the registered Jabber user on web server 160 using interface 121 to the guest Jabber user on interface 1 1 1 are discarded if the guest user has terminated the session before the message is received.
  • the user of the widget may terminate the connection at any time by clicking on a disconnection IM user interface 1 1 1.
  • the other party appears offline.
  • the widget remembers the visitor's preference for that instance so that repeated returns to the web page 1 10 containing the widget 1 1 1 1 will remain disabled or enabled based on the visitor's last preference with the disconnect button.
  • the visitor's preference can apply to all widgets 1 1 1 on all web pages 1 10 and not a specific instance. This preference is stored on the client side in a cookie.
  • the widget at client 1 10 may also track the time that a user is visiting webpage A. COM and send that information to the user on IM user interface 121.
  • the session length and similar information may be stored at server 160 for analysis and generation of metrics (including advertising metrics).
  • a cookie may be stored on client 1 10 to track the frequency with which client 1 10 logs into A.COM.
  • the cookie may also be used to store an alias for the user using client 1 10.
  • a hash algorithm may also be used to assign a unique identifier to the client 1 10 that is stored on web based IM server 160. Additionally, if a user opens additional browsing panes or windows, IM sessions that have been established are not dropped.
  • the owner of the widget using the web based IM webpage 120 has the ability to see all connected widgets from the buddy list and, in one action, has the ability to broadcast a message to all users connected to widgets in real time via a simple input on the IM user interface 121. Those broadcast messages are interpreted by the widget of webpage 1 10 and reflected in the user interface 1 1 1.
  • the reflections in the user interface 1 1 1 of the widget are not limited to purely text content but can be a change in the visual layout of the interface 1 1 1 such as a picture or icon denoting the person's current status or the playing of a sound file to alert the visitor of a change.
  • the user on A.COM may voluntary close the session using interface 1 1 1 , thus terminating the IM session.
  • the status of the guest Jabber user is then updated in user interface 121 . If the web page is not reloaded and the guest user establishes a new session, the same guest account is used by web server 130 (and Jabber guest server 140) and therefore the user interface 121 treats the presence information as coming from the same user.
  • the same temporary guest Jabber user account is used despite page movement or reloading by the visitor to A.COM 1 10.
  • Users of interface 1 1 1 can browse sub-pages of a webpage 1 10 while maintaining their connection to web server 130.
  • the user interface 121 of the widget owner on Jabber non-guest server 140 might display information about their browsing behavior or other related information.
  • One way this could be achieved is by storing the visitor's configuration credentials in a cookie or another browser storage related method.
  • Another embodiment might involve communication with the servers of A.COM to store session information.
  • Figure 4 illustrates a flow diagram of an exemplary process 400 to create embedded code, according to one embodiment.
  • Creation process 400 allows an owner of a webpage (such as webpage of A.COM 1 10) to insert embedded code within the webpage to enable IM user interface 1 1 1.
  • a user is prompted to select design parameters for the IM user interface 1 1 1 , such as a title, alias, user interface location, and skin. (410) The user is then prompted to choose an existing or create a new user account on web based IM server 160.
  • Web based IM server 160 stores the user provided design parameters, as well as any user profile information. Those parameters necessary for the instantiation of interface 1 1 1 are stored in a configuration file on a configuration server 170, which can be separate from web server 160.
  • Web based IM server 160 automatically generates code that is embedded within the HTML code for generating A.COM webpage 1 10, such that IM user interface 1 1 1 is generated with the A.COM webpage 1 10 when A.COM is loaded.
  • the embedded code points to a configuration file stored in configuration server 170, where the configuration file stores the design parameters selected by the owner. These configuration parameters may be modified using user interface 121 or some other web page associated with the user account that designed the embedded code.
  • the software code may be an embedded Flash, JavaScript, a browser plug-in, or a Java routine.
  • One such Flash embodiment includes using the LocalConnection Objects in Flash to interact between SWF files.
  • the LocalConnection class allows sending and receiving of data from one SWF to another across sites. Cross-domain communication is enabled through commands such as
  • a JavaScript embodiment includes dynamically embedding a script tag on a page. By dynamically inserting a script tag on a page, the JavaScript is run immediately. The script tag references scripts on other sites. To facilitate communication between the dynamically embedded script and the other domain, the included script outputs a JSON (or any other predetermined format) response to the data contained in the URL of the script tag.
  • a third embodiment includes a downloaded and installed software application, like a browser plug-in, where the installed application affords a greater range of functionality than a stand-alone browser normally allows.
  • the application is an installed extension of the browser like a Mozilla Add-on, or a separate application altogether. Once a user installs such a plug-in or similar application, the installed software has the ability to detect what website a user is browsing and communicate that and similar information to back-end server 150 via a protocol like HTTP or a connection using another type of Internet protocol.
  • Another embodiment involves embedding a small program, perhaps in Java, called an applet onto pages served by website server 170 using the ⁇ applet> tag.
  • the applet is downloaded every time the user visits the page and the code is executed by software on the user's computer, which can be the Java Virtual Machine, etc.
  • the applet is able to garner pertinent information which can then be communicated back to back-end server 150 via HTTP or another Internet protocol.
  • the user of A.COM's webpage may have his/her presence known in many ways. For example, an icon for a popular website may appear next to the user's name on user of IM user interface 121 , such as a "Y! for "Yahoo.” It may also show the name of a website in its usually known name, such as "Yahoo," or by a hyperlink www.yahoo.com which may appear when a mouse pointer moves over an icon.
  • the user of IM user interface 121 may receive an e-mail, instant message, text message or other method of notification of user of IM user interface 1 1 1 's web presence. A user may choose one or more ways to notify another user his/her web presence. A user may choose one or more ways to be notified of another user's web presence.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A method and system for embedded personalized communication have been disclosed. According to one embodiment, a computer-implemented method comprises providing software code to be embedded in a webpage. The webpage is loaded including the software code. A configuration file is fetched from a configuration server in response to the software code. A first instant messaging user interface is rendered on the webpage. A request is sent to a web-based instant messaging server, the request initiating an instant messaging session with a second instant messaging user interface.

Description

A METHOD AND SYSTEM FOR EMBEDDED PERSONALIZED COMMUNICATION
TECHNICAL FIELD
[0001] The field of the invention relates generally to computer systems and more particularly relates to a method and system for embedded personalized communication.
BACKGROUND
[0002] Instant Messaging (sometimes referred to as IM) enables users to easily see whether a chosen buddy (e.g., a friend, colleague, co-worker or the like) is connected to the Internet and, if so, to exchange messages with them. Instant Messaging differs from common e-mail in the immediacy of the message exchange. Typically, IM exchanges are text-only. However, some services (e.g., AOL Instant Messaging) enable voice messaging and file sharing. In IM, both users need to subscribe to the service (e.g., and have certain software on their user devices), and need to be online at the same time. In addition, the intended recipient needs to be willing to accept instant messages. If one tries to send an IM to someone who is not online, or who is not willing to accept an Instant Message, a notification is typically provided that the transmission cannot be completed. If the recipient's online software is set to accept Instant Messages, it typically alerts the recipient with a distinctive sound and displays a Pop-Up window that indicates that an IM has arrived, and that enables the recipient to accept or reject it, or displays a Pop-up window containing the incoming message. In general, IM can be truly or virtually instantaneous (with, e.g., delays of usually less than a number of seconds), such that it is typically possible for two people to have a real-time online "conversation" by sending IMs to each other.
[0003] IM users typically use a networked computer and IM client software to exchange messages with one another in conversational style. An IM client provides an interface for users to compose, send, receive, and read text messages. Examples of IM clients that are popular today include IBM's SAMETIME, MSN MESSENGER, YAHOO! INSTANT MESSENGER, and AOL INSTANT MESSENGER. [0004] In a graphical display, an IM client provides windows through which a user can compose and read messages. IM clients provide users the ability to manage lists of contacts, particularly other IM users. These lists are referred to as "buddy lists." Users may organize buddy lists into groups of related users, where the IM client displays the various groups in a hierarchical tree that can be collapsed and expanded as the user desires.
SUMMARY
[0005] A method and system for embedded personalized communication are disclosed. According to one embodiment, a computer-implemented method comprises providing software code to be embedded in a webpage. The webpage is loaded including the embedded software code. A configuration file is fetched from a configuration server in response to the loading or activation of the embedded software code. Using the configuration file contents, an initial instant messaging user interface is rendered on the webpage. The software code sends a request to a web- based instant messaging server to initiate a session. Once communication is established and the session is initiated, the instant messaging user interface is updated. Using an event-based communication system, events and messages can be exchanged between the software code and the instant messaging server until the session is closed. Input from a visitor of the webpage can be facilitated through the embedded software code's instant messaging user interface rendered on the webpage.
[0006] The above and other preferred features, including various novel details of implementation and combination of elements, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular methods and systems described herein are shown by way of illustration only and not as limitations. As will be understood by those skilled in the art, the principles and features described herein may be employed in various and numerous embodiments without departing from the scope of the teachings herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The accompanying drawings, which are included as part of the present specification, illustrate the presently preferred embodiment of the present invention and together with the general description given above and the detailed description of the preferred embodiment given below serve to explain and teach the principles of the present invention. [0008] Figure 1 illustrates a block diagram of an exemplary peer-to-peer messaging system with embedded personalized communication, according to one embodiment;
[0009] Figure 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment;
[0010] Figure 3 illustrates a flow diagram of an exemplary process for embedded personalized communication, according to one embodiment; and
[001 1] Figure 4 illustrates a flow diagram of an exemplary process to create embedded code, according to one embodiment.
DETAILED DESCRIPTION
[0012] A method and system for embedded personalized communication are disclosed. According to one embodiment, a computer-implemented method comprises providing software code to be embedded in a webpage. The webpage is loaded including the embedded software code. A configuration file is fetched from a configuration server in response to the loading or activation of the embedded software code. Using the configuration file contents, an initial messaging user interface is rendered on the webpage. The software code sends a request to a web- based instant messaging server to initiate a session. Once communication is established and the session is initiated, the instant messaging session user interface is updated. Events and messages can be exchanged between the software code and the instant messaging server until the session is closed. Input from a visitor of the webpage can be facilitated through the embedded software code's instant messaging user interface rendered on the webpage.
[0013] In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the various inventive concepts disclosed herein. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the various inventive concepts disclosed herein.
[0014] The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories, random access memories, EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
[0015] The methods presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
[0016] Figure 1 illustrates a block diagram of an exemplary system 100 for embedded personalized communication, according to one embodiment. Embedded personalized communication refers to any messaging capability that allows communication between an origin server and a software module replicated or embedded on multiple servers (or websites). System 100 also allows for the determination of a user's web presence, that is identifying the website that a user is visiting on the web and/or the activities, behavior, or other information related to that user while the user is on that site.
[0017] Embedded communications system 100 is divided into a client side and a server side. The client side includes webpage A.COM that may be accessible through a web browser. Webpage A.COM includes embedded code to allow an instant messaging interface 1 1 1 to be replicated within the webpage A.COM 1 10. Instant messaging interface 1 1 1 can be a replica or variation of instant message user interface 121 hosted on a webpage for web based IM 120. It is important to note that instant messaging interface 1 1 1 allows users visiting webpage A.COM to instant message, receive presence information, or exchange other similar information with a user of web based IM client 120 in real time. For example, webpage A.COM 1 10 may be user A's profile on MYSPACE.COM. User A's profile is typically rendered by a browser in HTML format which contains the embedded code that links webpage A. COM of client 1 10 to his/her instant messaging account as viewed on webpage for web based IM of client 120 (for example, on MEEBO.COM). Through this link, a user on visiting webpage A.COM 1 10 can initiate, receive, and maintain a one-on-one chat session with the user on web based IM webpage client 120.
[0018] Instant message user interface 1 1 1 is only a replica of instant message user interface 121 in that the communications between both interfaces are synchronized and dynamically updated in real-time. Each interface may have its own look and feel, design, etc.
[0019] The server side of embedded communications system 100 communicates with webpage A.COM on client 1 10 and webpage web-based IM on client 120. According to one embodiment, web server 130 is a LightTPD web server. LightTPD is a web server which is designed to be secure, fast, standards-compliant, and flexible while being optimized for speed-critical environments. Its low memory footprint (compared to other web servers), light CPU load and its speed goals make LightTPD suitable for servers that are suffering load problems, or for serving static media separately from dynamic content. LightTPD is free software / open source, and runs on GNU/Linux and other Unix-like operating systems and Microsoft Windows.
[0020] Web server 130 includes a Jabber module that communicates with a guest server 140. Jabber is an instant messaging and presence technology that utilizes the Extensible Messaging and Presence Protocol (XMPP). In one embodiment, web server 130 communicates with a Jabber guest server 140. Jabber guest server 140 can be instantiated on the same physical server at web server 130, or a separate one altogether. Jabber guest server 140 maintains a database of active IM clients and includes the capability of offering anonymous subscriptions when requested by web server 130. Jabber guest server 140 may also be queried for presence information of subscribed users.
[0021] A non-guest Jabber server 150 communicates with Jabber guest server 140. Jabber non-guest server 150 facilitates instant messaging communication when users are not anonymous. In other words, Jabber non-guest server 150 communicates with web based IM server 160 that maintains databases of registered users that have instant messaging accounts, such as the webpage for web based IM client 120. [0022] The functionality ascribed to Jabber guest server 140 can also live on Jabber non-guest server 150 and vice versa. In another embodiment, anonymous and registered users could both communicate with the same Jabber server. Communication between anonymous and registered users occurs between the different instantiations on the same server.
[0023] Web based IM server 160 allows clients to log in to multiple accounts on multiple instant messaging (IM) networks simultaneously. This means that one can be chatting with friends on AOL Instant Messenger, talking to a friend on Yahoo Messenger, and sitting in an IRC channel all at the same time, and through a common web interface.
[0024] In this embodiment, all registered users of IM server 160 are also logged into Jabber non-guest server 150. When a registered user logs into their account on web server 160, server 160 initiates an IM session with Jabber non-guest server 150, using credentials stored in the database system controlled by IM system 160. For the life of the session on IM user interface 121 , web server 160 attempts to keep the user logged into Jabber non-guest server 150. On a potential disconnection, the user is automatically re-connected.
[0025] A configuration server 170 stores configuration files that are used to instantiate properties of instant message user interface 1 1 1 , eg. rendering, communication details, server-specific information, etc., as well as to uniquely identify or categorize instances of the instant message user interface 1 1 1 embedded on multiple webpages 1 10. The HTML code for the instant message user interface 1 1 1 specifies which configuration file to load from the configuration server 170. That configuration file stores an identifier chosen by the creator of the embedded instant message user interface 1 1 1 so that when a new message is received, the user can immediately recognize the origin of the visitor. This organization of conversations is done through the user's buddylist where specific conversation instances are listed under their respective identifiers or "groups" that were chosen during creation.
[0026] System 100 is interconnected by the Internet (not shown), alternatively, the network may be a Wide Area Network (WAN), a Local Area Network (LAN), or any other system of interconnections enabling two or more devices to exchange information. Further, the network may include a wireless network, such that one or more of clients 1 10 or 120 may be wireless devices. [0027] One or more of clients 1 10 or 120 may allow network access via a web browser such as Microsoft's Internet Explorer, Netscape Browser, Mozilla, Firefox, or the Safari browsers that support HTML and JavaScript. Additionally, clients 1 10 or 120 may be mobile devices, such as videophones, laptops, smart phones, mobile phones, PDAs, game devices such as the PSP manufactured by Sony Electronics, multimedia devices such as iPods and iPhones manufactured by Apple Computers of Cupertino, California, or similar devices.
[0028] According to one embodiment, server 160 may be a Gaim server such as an open-source GTK2-based instant messenger application (under GPL). It supports multiple protocols via modules, including AIM, ICQ, Yahoo!, MSN, Jabber, IRC, Napster, Gadu-Gadu and Zephyr.
[0029] Servers 130-170 run on a number of platforms, including Windows, Linux, and Qtopia (Sharp, Zaurus and iPaq). Gaim server 160 is not endorsed by or affiliated with AOL TimeWarner, Microsoft, or Yahoo. Although Gaim server 160 is described, any multi-protocol server may be used including Pidgin (open source) or Trillian created by Cerulean Studios. According to one embodiment, Gaim server 160 does not include the GTK visual software in order to be optimized as a web server application. In one embodiment, the Gaim server 160 is comprised mostly of back- end functionality and no graphical user interface. Different systems may set limits on how many instant messaging services may be connected, or may be active on one screen.
[0030] The processes executed within system 100 may be implemented in software or hardware, or utilizing a device that is, or can be, connected to a common network, such as the Internet. Clients 1 10, and 120 may be mobile devices or fixed devices such as set top boxes, desktop computers, media recorders such as those manufactured by TiVo, Inc. of Alviso, California, game devices such as the XBox manufactured by Microsoft, Corp. of Redmond, Washington or similar devices.
[0031] Web based IM server 160 enables a web based instant messaging service for clients 1 10, and 120 that does not require IM software to be installed on clients 1 10, and 120. According to one embodiment, the instant messaging application is web- based and communication between clients 1 10, 120 and servers 130-170 take the form of XmlHttpRequests. [0032] Servers 130-170 are web servers that use any one of a number of protocols and/or applications including HyperText Transfer Protocol (HTTP), File Transfer Protocol (FTP), Internet Relay Chat (IRC), etc., via a TCP/IP connection (not shown in this view) or other similar connection protocols. The operating system may be Windows®, LINUX, SUN Solaris®, Mac OS, Tiger, or other similar operating system. In one embodiment, the servers 130-170 are dedicated servers. It uses processing logic, tools and databases and is built using a combination of technologies such as those from Apache Software (www.apache.org) such as Tomcat servers; Java based technologies such as J2EE, EJB, JBOSS, JDBC; and/or databases such as MySQL.
[0033] System 100 may also include other supporting computing software and hardware, for example, additional website servers, databases, computers, and user interface servers.
[0034] Figure 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment. Computer architecture 200 can be used to implement a client 1 10, 120, or a server 130-170 of Figure 1. One embodiment of architecture 200 comprises a system bus 220 for communicating information, and a processor 210 coupled to bus 220 for processing information. Architecture 200 further comprises a random access memory (RAM) or other dynamic storage device 225 (referred to herein as main memory), coupled to bus 220 for storing information and instructions to be executed by processor 210. Main memory 225 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 210. Architecture 200 also may include a read only memory (ROM) and/or other static storage device 226 coupled to bus 220 for storing static information and instructions used by processor 210.
[0035] A data storage device 227 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 200 for storing information and instructions. Architecture 200 can also be coupled to a second I/O bus 250 via an I/O interface 230. A plurality of I/O devices may be coupled to I/O bus 250, including a display device 243, an input device (e.g., an alphanumeric input device 242 and/or a cursor control device 241 ). For example, web pages rendered by MMSW server 130 and related information may be presented to the user on the display device 243. [0036] The communication device 240 allows for access to other computers (servers or clients) via a network. The communication device 240 may comprise a modem, a network interface card, a wireless network interface or other well known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
[0037] Figure 3 illustrates a flow diagram of an exemplary process 300 for embedded personalized communications, according to one embodiment. When a user visits the webpage A. COM on client 1 10, the software module embedded on the webpage (the widget) is loaded. (305) Depending on the user's browser, the widget can be automatically loaded when the webpage is loaded or the visitor of the webpage must activate it. Activation can be accomplished by clicking on the rendering of the widget on the webpage 1 10, scrolling to the webpage so that the widget comes into physical view, etc. The widget instructs the client 1 10 to fetch a configuration file from the configuration server 170. (310) The configuration file identifies the user associated with the widget and ostensibly A. COM (for example, the user whose profile is on MYSPACE.COM is most likely the same user who placed the embedded widget code on A.COM), visual preferences for the user, title, alias, and other information that the widget might need for instantiation. With the information read from the configuration file, an instant messenger user interface 1 1 1 is rendered on A.COM 1 10 having a particular title, color scheme, and a presence or status element indicating information about the owner of the widget (set to offline as a default). (315)
[0038] Client 1 10 connects to the Jabber module of web server 130. (320) The user of client 1 10 requests that a session be initiated from server 130 as an anonymous guest. Server 130 logs in the anonymous guest to Jabber guest server 140. Jabber guest server 140 initiates an IM session and communicates back to web server 130 that the anonymous guest is online. A.COM web server's Jabber module 130 appears to Jabber guest server 140 as a guest Jabber user, e.g. a client of Jabber guest server 140.
[0039] Instant message user interface 1 1 1 sends a subscription request message through A.COM web server 130 to Jabber guest server 140, to request permission to receive the presence information of the user associated with the A.COM webpage. (325) A decision is made to determine if the user of IM user interface 121 is available. (330) If the user is available on instant message user interface 121 , the IM session associated with that user on web server 160 automatically accepts the subscription request. (335) Web server 160 then responds with an identical subscription request for the guest Jabber user's presence information on Jabber guest server 140. (340) A decision is made to determine if the user of IM user interface 1 1 1 is available. (345) The Jabber module on web server 130 also automatically accepts the request on behalf of the user on A. COM. (350) Thusly, both ends of the communication scheme can now receive presence (and related) information about each other. The IM session has now been established and the interfaces update to reflect the connected state. (365) Both users can initiate instant message communications. (370).
[0040] In another embodiment, if the user is available on instant message user interface 121 , instead of automatically accepting subscription requests, the user on interface 121 can receive a prompt to add the user of interface 1 1 1 to an instant messaging session and, thus be subscribed to presence information. The user on interface 121 may also be asked to add the user on interface 1 1 1 to his/her buddy list.
[0041] Servers 130 and 160 update their respective user interfaces 1 1 1 , 121 to indicate that the users are both available. Real time status of each user is maintained. For example, if the user on interface 121 sets his status as "away" and includes a custom away message, user interface 1 1 1 is updated to show the "away" status and the associated message. (360) User interface 121 also indicates that the other user is using the widget associated with a particular identity. This identity can be a category (eg. "Social networking widget") as specified by data read in from the configuration file. The identity could also indicate the webpage (eg. A. COM) where the widget is embedded. This could be done using the configuration file, running a CGI script located on another web server that responds with the containing web page, or another implementation that accurately returns the embedded webpage.
[0042] If the user on webpage A.COM leaves the instant message session without explicitly closing the session (eg. close the browser, leave the webpage, etc), after a pre-set timeout (eg. 45 seconds in one embodiment), the server 130 assumes the connection to client 1 10 is lost. The connection can be reestablished as described above. If the webpage on A.COM 1 10 is reloaded, if an instant message session was already established, it will be terminated and restarted, according to process 300.
[0043] If the user on webpage A. COM attempts to contact user of IM user interface 121 , but the user of IM user interface 121 is not logged in, the user on webpage A. COM may still send a message. This message can include the initial subscription request. The message will be stored on the Jabber non-guest server 150 and then served to the user once he/she logs in. (360) In the case of a cached and delayed subscription request, IM server 160 still automatically accepts the request once the user is logged into interface 121 . Before this occurs, the visitor on user interface 1 1 1 sees the widget owner as offline; once the subscription handshake (described above) is completed, the interface 1 1 1 is updated to reflect the widget owner's new status. If the delayed message is in the form of an instant message, the user on interface 121 can respond if the Jabber user on interface 1 1 1 is still available and present on the webpage 1 10.
[0044] In one embodiment, messages sent from the registered Jabber user on web server 160 using interface 121 to the guest Jabber user on interface 1 1 1 are discarded if the guest user has terminated the session before the message is received. (355)
[0045] The user of the widget may terminate the connection at any time by clicking on a disconnection IM user interface 1 1 1. This effectively removes all presence subscriptions from both sides and close the network connection thus ending the conversation and terminating future notifications of presence on both sides. To both parties, the other party appears offline. This allows visitors to a web page 1 10 the ability to ignore the owner of the widget in the event of unwanted conversation or a desire to browse the page anonymously. The widget remembers the visitor's preference for that instance so that repeated returns to the web page 1 10 containing the widget 1 1 1 will remain disabled or enabled based on the visitor's last preference with the disconnect button.
[0046] In one embodiment, the visitor's preference can apply to all widgets 1 1 1 on all web pages 1 10 and not a specific instance. This preference is stored on the client side in a cookie. [0047] The widget at client 1 10 may also track the time that a user is visiting webpage A. COM and send that information to the user on IM user interface 121. The session length and similar information may be stored at server 160 for analysis and generation of metrics (including advertising metrics).
[0048] A cookie may be stored on client 1 10 to track the frequency with which client 1 10 logs into A.COM. The cookie may also be used to store an alias for the user using client 1 10. A hash algorithm may also be used to assign a unique identifier to the client 1 10 that is stored on web based IM server 160. Additionally, if a user opens additional browsing panes or windows, IM sessions that have been established are not dropped.
[0049] The owner of the widget using the web based IM webpage 120 has the ability to see all connected widgets from the buddy list and, in one action, has the ability to broadcast a message to all users connected to widgets in real time via a simple input on the IM user interface 121. Those broadcast messages are interpreted by the widget of webpage 1 10 and reflected in the user interface 1 1 1. The reflections in the user interface 1 1 1 of the widget are not limited to purely text content but can be a change in the visual layout of the interface 1 1 1 such as a picture or icon denoting the person's current status or the playing of a sound file to alert the visitor of a change.
[0050] In one embodiment, the user on A.COM may voluntary close the session using interface 1 1 1 , thus terminating the IM session. The status of the guest Jabber user is then updated in user interface 121 . If the web page is not reloaded and the guest user establishes a new session, the same guest account is used by web server 130 (and Jabber guest server 140) and therefore the user interface 121 treats the presence information as coming from the same user.
[0051] In another embodiment, the same temporary guest Jabber user account is used despite page movement or reloading by the visitor to A.COM 1 10. Users of interface 1 1 1 can browse sub-pages of a webpage 1 10 while maintaining their connection to web server 130. The user interface 121 of the widget owner on Jabber non-guest server 140 might display information about their browsing behavior or other related information. One way this could be achieved is by storing the visitor's configuration credentials in a cookie or another browser storage related method. Another embodiment might involve communication with the servers of A.COM to store session information. [0052] Figure 4 illustrates a flow diagram of an exemplary process 400 to create embedded code, according to one embodiment. Creation process 400 allows an owner of a webpage (such as webpage of A.COM 1 10) to insert embedded code within the webpage to enable IM user interface 1 1 1. Through web based IM server 160, a user is prompted to select design parameters for the IM user interface 1 1 1 , such as a title, alias, user interface location, and skin. (410) The user is then prompted to choose an existing or create a new user account on web based IM server 160. (420) Web based IM server 160 stores the user provided design parameters, as well as any user profile information. Those parameters necessary for the instantiation of interface 1 1 1 are stored in a configuration file on a configuration server 170, which can be separate from web server 160. (430) Web based IM server 160 automatically generates code that is embedded within the HTML code for generating A.COM webpage 1 10, such that IM user interface 1 1 1 is generated with the A.COM webpage 1 10 when A.COM is loaded. (440) The embedded code points to a configuration file stored in configuration server 170, where the configuration file stores the design parameters selected by the owner. These configuration parameters may be modified using user interface 121 or some other web page associated with the user account that designed the embedded code.
[0053] The software code may be an embedded Flash, JavaScript, a browser plug-in, or a Java routine. One such Flash embodiment includes using the LocalConnection Objects in Flash to interact between SWF files. The LocalConnection class allows sending and receiving of data from one SWF to another across sites. Cross-domain communication is enabled through commands such as
LocalConnection. allowDomain(). Sites that include this Flash script communicates with the intended domain to transfer information.
[0054] A JavaScript embodiment includes dynamically embedding a script tag on a page. By dynamically inserting a script tag on a page, the JavaScript is run immediately. The script tag references scripts on other sites. To facilitate communication between the dynamically embedded script and the other domain, the included script outputs a JSON (or any other predetermined format) response to the data contained in the URL of the script tag.
[0055] A third embodiment includes a downloaded and installed software application, like a browser plug-in, where the installed application affords a greater range of functionality than a stand-alone browser normally allows. The application is an installed extension of the browser like a Mozilla Add-on, or a separate application altogether. Once a user installs such a plug-in or similar application, the installed software has the ability to detect what website a user is browsing and communicate that and similar information to back-end server 150 via a protocol like HTTP or a connection using another type of Internet protocol.
[0056] Another embodiment involves embedding a small program, perhaps in Java, called an applet onto pages served by website server 170 using the <applet> tag. The applet is downloaded every time the user visits the page and the code is executed by software on the user's computer, which can be the Java Virtual Machine, etc. When the code is executed, the applet is able to garner pertinent information which can then be communicated back to back-end server 150 via HTTP or another Internet protocol.
[0057] The user of A.COM's webpage may have his/her presence known in many ways. For example, an icon for a popular website may appear next to the user's name on user of IM user interface 121 , such as a "Y!" for "Yahoo." It may also show the name of a website in its usually known name, such as "Yahoo," or by a hyperlink www.yahoo.com which may appear when a mouse pointer moves over an icon. The user of IM user interface 121 may receive an e-mail, instant message, text message or other method of notification of user of IM user interface 1 1 1 's web presence. A user may choose one or more ways to notify another user his/her web presence. A user may choose one or more ways to be notified of another user's web presence.
[0058] A method and system for embedded personalized communication have been described. It is understood that the embodiments described herein are for the purpose of elucidation and should not be considered limiting the subject matter of the present patent. Various modifications, uses, substitutions, combinations, improvements, methods of productions without departing from the scope or spirit of the present invention would be evident to a person skilled in the art.

Claims

CLAIMS:We claim:
1. A computer-implemented method, comprising:
providing software code to be embedded in a webpage;
loading the webpage including the software code;
fetching a configuration file from a configuration server in response to the software code;
rendering a first instant messaging user interface on the webpage; and
sending a request to a web-based instant messaging server, the request initiating an instant messaging session with a second instant messaging user interface.
2. The computer-implemented method of claim 1 , further comprising allowing communications between the first instant messaging user interface and a first server having a Jabber module.
3. The computer-implemented method of claim 2, further comprising sending first instructions from the first server to a second server, the first instructions establishing an anonymous instant messenger account for a first user using the first instant messaging user interface.
4. The computer-implemented method of claim 3, further comprising determining if a second user is using a second instant messaging user interface.
5. The computer-implemented method of claim 4, further comprising prompting the second user to respond to the request.
6. The computer-implemented method of claim 5, wherein the first server and the second server communicate to maintain a real-time instant messaging session between the first user and the second user.
7. The computer-implemented method of claim 6, wherein status information for the first user and the second user is dynamically updated.
8. The computer-implemented method of claim 4, wherein the first instant messaging user interface is designed by the second user.
9. The computer-implemented method of claim 6, wherein the second user interface indicates a location of the first user interface on a network.
10. The computer-implemented method of claim 4, wherein the software code is automatically generated in response to design parameters provided by the second user.
1 1. A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions when executed by a computer, cause said computer to perform:
providing software code to be embedded in a webpage;
loading the webpage including the software code;
fetching a configuration file from a configuration server in response to the software code;
rendering a first instant messaging user interface on the webpage; and
sending a request to a web-based instant messaging server, the request initiating an instant messaging session with a second instant messaging user interface.
12. The computer-readable medium of claim 1 1 , having stored thereon- additional instructions, said additional instructions when executed by a computer, cause said computer to further perform allowing communications between the first instant messaging user interface and a first server having a Jabber module.
13. The computer-readable medium of claim 12, having stored thereon- additional instructions, said additional instructions when executed by a computer, cause said computer to further perform sending first instructions from the first server to a second server, the first instructions establishing an anonymous instant messenger account for a first user using the first instant messaging user interface.
14. The computer-readable medium of claim 13, having stored thereon- additional instructions, said additional instructions when executed by a computer, cause said computer to further perform determining if a second user is using a second instant messaging user interface.
15. The computer-readable medium of claim 14, having stored thereon- additional instructions, said additional instructions when executed by a computer, cause said computer to further perform prompting the second user to respond to the request.
16. The computer-readable medium of claim 15, wherein the first server and the second server communicate to maintain a real-time instant messaging session between the first user and the second user.
17. The computer-readable medium of claim 16, wherein status information for the first user and the second user is dynamically updated.
18. The computer-readable medium of claim 14, wherein the first instant messaging user interface is designed by the second user.
19. The computer-readable medium of claim 16, wherein the second user interface indicates a location of the first user interface on a network.
20. The computer-readable medium of claim 14, wherein the software code is automatically generated in response to design parameters provided by the second user.
PCT/US2007/073081 2006-07-07 2007-07-09 A method and system for embedded personalized communication WO2008006115A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
BRPI0714017-7A BRPI0714017A2 (en) 2006-07-07 2007-07-09 Method and System for Embedded Custom Communication
DE112007001516T DE112007001516T5 (en) 2006-07-07 2007-07-09 Method and system for embedded personalized communication
GB0901904A GB2454825A (en) 2006-07-07 2007-07-09 A method and system for embedded personalized communication

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81944106P 2006-07-07 2006-07-07
US60/819,441 2006-07-07

Publications (3)

Publication Number Publication Date
WO2008006115A2 true WO2008006115A2 (en) 2008-01-10
WO2008006115A9 WO2008006115A9 (en) 2008-05-08
WO2008006115A3 WO2008006115A3 (en) 2008-08-21

Family

ID=38895528

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/073081 WO2008006115A2 (en) 2006-07-07 2007-07-09 A method and system for embedded personalized communication

Country Status (4)

Country Link
CN (1) CN101548276A (en)
DE (1) DE112007001516T5 (en)
GB (1) GB2454825A (en)
WO (1) WO2008006115A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360072B (en) * 2008-09-25 2011-07-06 腾讯科技(深圳)有限公司 Mobile terminal advertisement releasing system based on IM and method thereof
US8788949B2 (en) 2008-10-28 2014-07-22 Google Inc. Provisioning instant communications for a community of users

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888607A (en) * 2010-07-15 2010-11-17 中兴通讯股份有限公司 Method for realizing mobile phone chats based on widget and mobile phone
US8898766B2 (en) 2012-04-10 2014-11-25 Spotify Ab Systems and methods for controlling a local application through a web page
KR101654261B1 (en) * 2015-06-25 2016-09-05 주식회사 카카오 Message service providing method for providing message service through open chatting room corrensponding link and message server and device for performing the method
CN107819794A (en) * 2016-09-12 2018-03-20 厦门雅迅网络股份有限公司 Car-mounted terminal programme upgrade method and its system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172456A1 (en) * 2002-11-18 2004-09-02 Green Mitchell Chapin Enhanced buddy list interface
US20050188076A1 (en) * 2004-02-05 2005-08-25 York International Corporation Transport of encapsulated serial data via instant messaging communication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172456A1 (en) * 2002-11-18 2004-09-02 Green Mitchell Chapin Enhanced buddy list interface
US20050188076A1 (en) * 2004-02-05 2005-08-25 York International Corporation Transport of encapsulated serial data via instant messaging communication

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360072B (en) * 2008-09-25 2011-07-06 腾讯科技(深圳)有限公司 Mobile terminal advertisement releasing system based on IM and method thereof
US8788949B2 (en) 2008-10-28 2014-07-22 Google Inc. Provisioning instant communications for a community of users
US9544359B1 (en) 2008-10-28 2017-01-10 Google Inc. Provisioning instant communications for a community of users

Also Published As

Publication number Publication date
GB0901904D0 (en) 2009-03-11
WO2008006115A3 (en) 2008-08-21
CN101548276A (en) 2009-09-30
DE112007001516T5 (en) 2009-05-07
GB2454825A (en) 2009-05-20
WO2008006115A9 (en) 2008-05-08

Similar Documents

Publication Publication Date Title
US10740277B2 (en) Method and system for embedded personalized communication
AU2020203752B2 (en) Authentication of service requests initiated from a social networking site
US8595295B2 (en) Method and system for determining and sharing a user&#39;s web presence
EP3734914B1 (en) Authentication of service requests
US8990340B1 (en) Aggregation system
US8458256B2 (en) Television Aggregator
US20150172228A1 (en) Method and system for communicating information over a network
US20080034040A1 (en) Method and system for embedded group communication
WO2009149466A1 (en) System and method for sharing content in an instant messaging application
US20130086699A1 (en) Aggregation system
WO2008006115A9 (en) A method and system for embedded personalized communication
BRPI0714017A2 (en) Method and System for Embedded Custom Communication

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780025732.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07799420

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 1120070015160

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 193/KOLNP/2009

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 0901904

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20070709

WWE Wipo information: entry into national phase

Ref document number: 0901904.3

Country of ref document: GB

NENP Non-entry into the national phase

Ref country code: RU

RET De translation (de og part 6b)

Ref document number: 112007001516

Country of ref document: DE

Date of ref document: 20090507

Kind code of ref document: P

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607

122 Ep: pct application non-entry in european phase

Ref document number: 07799420

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: PI0714017

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20090105