The present invention relates generally to asynchronous eventing and more particularly to asynchronous eventing over the Internet.
Mechanisms for asynchronous eventing in the home networking middleware such as UPnP (Universal Plug-in and Play) are designed for CE (Consumer Electronics) devices. However, such mechanisms only allow devices to communicate through a local area network (LAN). There are no provisions for such devices to communicate events across the Internet. As a result, it is not possible to use these mechanisms to send/receive events to/from devices behind firewalls.
Asynchronous eventing has been in existence since the dawn of computers. The pervasiveness of the Internet has ignited a new wave of research and development on asynchronous eventing across the Internet, e.g. Microsoft Herald, SIENA from University of Colorado and Gnutella. However these prior art methods are targeted at applications running general-purpose computers. As a result, they require large amounts of storage, computation, and/or communication resources and are not suitable for CE devices which must be low cost. In addition to the complexity and high cost of these systems, another drawback of these general purpose eventing systems is that require change of existing Internet infrastructure to add overlay network.
Most home devices are behind firewalls, invisible to devices/systems on the Internet. Being able to deliver notifications to devices behind firewalls from anywhere on the Internet is critical to smart home applications where devices can roam from one network to another while communicating with devices at home; however that has not been the concern of the above prior art.
Instant messaging (IM) systems, such as AIM, MS Messenger, and Yahoo Messenger, are provider specific, i.e. one provider's IM cannot talk to the other providers' IM. Although recently messaging systems such as AOL/ICQ and Yahoo/Trillion enables IM systems from different providers to communicate with each other, using IM still requires keeping connections to the Internet always open. For resource limited CE devices, keeping a connection open is a heavy resource consumption task. In addition, since CE devices can roam from one network to another, without IP infrastructure change (e.g., Mobile IP), keeping an always-on connection for a roaming CE device involves complex schemes in the network and may not be possible in many circumstances.
Email is increasingly becoming a popular venue to deliver messages over the Internet. However, email can not guarantee timely delivery.
SMS/MMS (Simple Messaging System/Multimedia Messaging System) is another popular message delivery mechanism in the cellular networks. However, SMS/MMS has serveral limitations. First, SMS has message size constraints such that long messages are truncated. MMS has the similar limitation with bigger sizes. Second, SMS/MMS can only be used between cell phones, and from applications to cell phones. To receive the message, a CE device must subscribe to a cellular provider.
In one embodiment the present invention provides an eventing method and system that enables resource-constrained CE devices, at home, away from home, on-the-go, behind a firewall, etc., to communicate through asynchronous events with each other and/or with other type electronic devices, at home, on the Internet, etc. Further, a scalable distributed system is provided that supports asynchronous eventing over the Internet efficiently and at low-cost.
In one implementation, the present invention provides a method for asynchronous eventing between a client and a server in a network, comprising the steps of: in a subscription phase, the client sending a subscription request to the server to express interest in receiving notifications associated with one or more particular events that may asynchronously occur on the server; and after a successful subscription, in a notification phase, the server notifying each client that has subscribed for a particular type of event.
The network can further includes multiple clients, such that: the subscription phase further includes the steps of each client sending a subscription request to the server to express interest in receiving notifications associated with particular events that may asynchronously occur on the server; and the notification phase further includes the steps of, after successful subscription, the server notifying each client that has subscribed for a particular type of event.
The network can further include multiple servers, such that: the subscription phase further includes the steps of the client sending a subscription request to each server to express interest in receiving notifications associated with particular events that may asynchronously occur on that server; and the notification phase further includes the steps of, after successful subscription, each server notifying each client that has subscribed for a particular type of event.
When an asynchronous event occurs, the steps of notification further include the steps of the server publishing the event and sending a notification directly to the client. In another case, when an asynchronous event occurs, the steps of notification further include the steps of the client polls for notifications directly from the server. In another case, when an asynchronous event occurs, the step of notification further include the steps of the server publishing the event on a notification center in the network, wherein the notification center sends a notification to the client. Yet, in another case, when an asynchronous event occurs, the steps of notification further include the steps of the server publishing the event on a notification center in the network, wherein the client polls the notification center for the notification. Further, in one version, the server notifies the client via a direct communication link between the client and the server.
In another implementation of the eventing method of the present invention, the network further includes a notification center, such that: the subscription phase further includes the steps of: the client sending a subscription request to the notification center to request notifications for one or more events from one or more servers; and the notification phase further includes the steps of: after a successful subscription, the client polling the notification center for notification. Alternatively, in the notification phase, the notification center pushes the notification to the client.
The eventing method can include the steps of: each server sending a subscription request to the notification center for permission to publish events on the notification center; after a successful server subscription, the server publishing events on the notification center as they occur on the server; and the notification center notifying each client of published notifications that the client subscribed for with the notification center. The notification center can notify each client of published notifications that the client subscribed for, as the event is published by the server.
In one case, the client and server use direct communication. In another case, the server and the client use indirect communication. The network can include the Internet such that the client and server are connected to the Internet. The network can also include a local area network (LAN) such that the client and the server are connected to the LAN.
In another aspect, an embodiment of an asynchronous eventing system according to the present invention comprises: a client and server, wherein the client sends a request to a server to request subscription to event notification for one or more particular events that may asynchronously occur on the server, the request including request ID that identifies the requested event type, and listener information that identifies a listener for the server to send a reply to the request; if the subscription is successful, the server maintains the request ID and the listener information and sends a subscription reply including the request ID to the client to indicate whether the subscription is successful, wherein if the subscription is successful, thereafter when an event corresponding to the request ID occurs on the server, for each and every listener that has subscribed to the event, the server establishes a connection to the listener and sends a notification together with the request ID to the listener.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.
Almost all smart-home applications in the areas of sharing digital assets among relatives and friends, and monitoring and/or controlling home CE devices for home security, entertainment, automation, and healthcare, depend on the devices being able to send/receive asynchronous events (also known as eventing) to/from each other, and/or to/from other digital devices such as servers of an ISP (Internet Service Provider) or ASP (Application Service Provider). Eventing is a core communication mechanism of these applications.
Asynchronous eventing among electronic devices over the Internet is a necessary mechanism to enable applications such as sharing digital assets among relatives and friends, and monitoring and/or controlling home consumer electronic (CE) devices for home security, entertainment, automation, and healthcare. Supporting the eventing efficiently and at low cost is critical for the success of CE devices at the market place in an era of digital homes.
In one embodiment, the present invention provides an eventing method that enables resource-constrained CE devices, at home, away from home, on-the-go, behind a firewall, etc., to communicate through asynchronous events with each other and/or with other type electronic devices, at home, on the Internet, etc. Further, the present invention provides a scalable distributed system that supports asynchronous eventing over the Internet efficiently and at low cost.
In one version, the present invention enables CE devices to communicate events at low cost over the Internet and through firewalls. The commonly assigned patent application, titled “An authentication method and system for asynchronous eventing over the Internet”, attorney docket SAM2A.PAU.21 (incorporated herein by reference), describes an example authentication mechanisms that ensures the security of event communication over the Internet. Together these support secure event communication involving CE devices over the Internet and through firewalls.
This description uses certain terminology to describe eventing. Eventing in the simplest case involves a source which generates events and a client which wants to be informed when the events occur. In the context of this description, source, server and publisher are interchangeably used to denote a source device/application; client, destination and subscriber are used interchangeably to denote a client device/application, and notification represents a message sent to notify a client about the occurrence of an event.
In some configurations, a third type of device/system is involved in eventing. These systems, called notification centers, are to manage event posting/publishing and notification. A notification center can be a standalone system or software on a multipurpose server such as a home gateway. From a notification center, a server asks for permission to publish events, and a client subscribes for receiving notifications for specified types of events from specified servers.
When an event occurs on the server, there are four example ways for the client to receive a notification: (1) the server publishes the event and sends a notification directly to the client, (2) the client polls for notifications directly from the server, (3) the server publishes the event on the notification center which sends a notification to the client, and (4) the server publishes the event on the notification center and the client polls the notification center for the notification.
According to an embodiment of the present invention, eventing is performed in two disjoint phases: a subscription phase followed by a notification phase. In cases where notification server and client directly communicate with each other, eventing between them proceeds as follows: In a subscription phase, a client (e.g., an application running on a home device that connects to the Internet directly) sends a subscription request to a server (e.g., a web site server or a device on the Internet) in an attempt to express its interest in receiving notifications associated with some events that may asynchronously occur on the server. After a successful subscription, the notification phase starts. In the notification phase, the server sends a notification to each and every client that has subscribed for a particular type of event.
In cases where a notification center is involved, eventing process proceeds according to the following steps. A client sends a subscription request to the notification center to ask for notifications for one or more events from one or more servers. After a successful subscription, the client polls the center for notification or the center pushes the notification to the client. Meanwhile, independently, a server sends a subscription request to ask for permission to publish events on the center. After a successful subscription, the server can then publish the events on the center as they occur. The center then makes sure that the clients that have subscribed for the notification will all receive a notification when a new event is published.
Eventing Schemes
As generally described, in one embodiment the present invention uses two types of methods for event communication: a direct method and an indirect method. The direct method uses a direct link between communicating parties. A TCP/IP link, an HTTP link are examples of direct links. In the following description, the term “direct link” represents such type of connection. Using a direct link requires a sender to know the receiver's address. For example, to use an HTTP link the sender must know the receiver's URL; to use a TCP link, the sender must know the IP address and the port number of the receiver (referred as the listener of the receiver). In the following description, the term “direct link address” represents such type of network addresses. The indirect method uses indirect links such as email. Using email requires the sender to know the receiver's email address. In the following, the term “email” represents indirect connection and addressing.
For ease of understanding, basic implementations of the eventing schemes according to the present invention are described herein. However, as those skilled in the art will recognize, such schemes are applicable also to any cases that involve more than one instance of any of the participating parties including servers, homes, devices, gateways, etc. Although in the description and figures the client device and server device are depicted separately for clarity, as those skilled in the art will recognize, such devices can be physically integrated in a single system, i.e. a system can behave as a client when it receives notification, and meanwhile it can behave as a server when it publishes event occurrences.
Scheme 1
Referring to the example system 100 in
This scheme uses direct links for notification. As shown in example system 200 of
In this scheme, a notification center is involved in eventing, and all communicating parties use direct links for subscription, publication, and notification. As shown in the example system 300 in
The set for subscribers, i.e. for clients interested in receiving notifications: (Note: if step 4 specifies the publisher information, all the other steps must also include the publisher information. As such, in this sense, adding publisher information is a variation of embodiment.)
As shown in the example system 400 in
This scheme uses a direct link for subscription and an indirect link for notification. As shown by the example system 500 in
This scheme uses indirect links (email) for both subscription and notification. As shown by the example system 600 in
Accordingly, an example eventing method (and system) according to the present for eventing over the Internet: (1) does not require any changes in the existing Internet infrastructure, which makes it easier to be deployed, (2) includes mechanisms to deliver notification to devices behind firewalls from anywhere on the Internet, (3) uses only widely accepted standards and does not depend on any particular service providers solutions, (4) enhances scalability by allowing a home gateway to be configured to host a notification center on behalf of all devices that belong to the home, (5) performs best-effort timely delivery for notification. This is accomplished by first classifying the events according to their urgency and delivering them accordingly. Urgent notifications are delivered using direct links between senders and receivers of a notification whenever possible, while non-urgent events are delivered using slower vehicles, such as email. The mechanism can be included in any forwarding intermediary devices such as home gateways and notification centers, as well as event source devices in order to ensure end-to-end direct link delivery when possible.
While the present invention has been described herein by example using the terminology of client-server, as those skilled in the art will recognize, the present invention is equally applicable in client-server, peer-to-peer, and other architectures. As such, the term “client” as used herein, can be replaced by “a first entity”, “event receiver”, “event destination”, “first node”, etc. Similarly, the term “server” as used herein, can be replaced by “a second entity”, “event sender”, “event source”, “second node”, etc. As such, the present invention is not limited to the example embodiments described herein.
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
Priority is claimed from U.S. provisional patent application Ser. No. 60/711,155 filed on Aug. 24, 2005, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60711155 | Aug 2005 | US |