The invention relates generally to a method and arrangement for handling a subscription for resource data of an observed resource, such as a client, document or content service.
With the emergence of 3G mobile telephony, new packet-based communication technologies using IP (Internet Protocol) have been developed to support the usage of multimedia services, while different mobile and fixed user terminals with new functionalities for multimedia communication are emerging on the market. New services are also constantly being developed for terminal users to increase the field of usage and enhance the quality of experience when generally consuming multimedia services.
An IMS (IP Multimedia Subsystem) network can be used to enable multimedia services by initiating and controlling multimedia sessions for user terminals connected to various different access networks.
The signalling protocol called “SIP” (Session Initiation Protocol) is commonly used for handling multimedia sessions in IMS networks and other communication services networks. IMS is mentioned in this description for illustrative purposes, without limiting the invention to IMS networks exclusively. A user and his/her communication terminal is often referred to as a “client”, which term will be generally used here.
A particular example of IMS enabled services is “presence” services, involving publication of presence data of a client to make it available to other clients or applications. Presence data basically refers to the status, situation or state of the client, e.g. including the client's current geographical position, connection status, service availability and terminal capabilities, as well as any personal characteristics, preferences and settings. Presence data can be stored in a presence server in the IMS network, based on the publication of such client related information. These publications may be obtained either from the client's terminal or from the access network used by the client, whenever any presence data of the client becomes available or is updated.
A client may also subscribe to selected presence data of one or more other clients, e.g. according to a predefined list of an established or predefined client group. Presence subscriptions are typically also handled by a presence server in the IMS network and may involve various information filters, admission rules and policies. The subscribing client can then receive notifications from the presence server regarding current presence data, subject to any prevailing filters, rules or policies, either automatically or upon request.
In SIP, a message called “PUBLISH” can be used by clients to provide data to the presence server. This message is used basically to initiate new data, “refresh” data (i.e. confirming that earlier initiated data continues to be valid), modify data, and to terminate data no longer valid. Further, a message called “SUBSCRIBE” can be used by clients to subscribe to presence data of other clients, as handled by the presence server, and only authorised clients are entitled to receive such data. Another message called “NOTIFY” can be used by presence servers to present presence data to subscribing clients. Yet another message called “REGISTER” can be used by clients to log on to an IMS network or an access network.
While presence services are mostly based on the publication of client data, a client may generally subscribe to data of any resource using basically the mechanism described above, which may be, apart from another client, any object of interest such as a document, a content service or information service. For example, a notification for group or data management may refer to changes in a document such as a contact list or address book. Further, notifications for content services or information services may refer to a stock exchange, weather forecast, sports results or any other information updates. In general, a resource data notification may refer to any state changes or updates of an observed resource according to a resource data subscription.
In this description, the term “watching client” represents a client that subscribes to or requests resource data, and the term “observed resource” represents a resource for which resource data is published to be available for authorised watching clients. In the context of presence services, a watching client is referred to as the “Watcher” and an observed client is referred to as the “Presentity”. For example, a notification may also refer to a watcher request basically asking the presentity to authorize the watcher to receive certain presence information.
The SUBSCRIBE message above typically contains a time-out parameter that can be set to determine the duration of the subscription, sometimes referred to as TTL (Time To Live). If the time-out parameter in a SUBSCRIBE message is set to zero, a notification with requested presence data is obtained just once and the subscription is promptly terminated thereafter. If the time-out parameter is set to a certain time period >0, the watching client will receive notifications according to some predetermined scheme until the subscription period expires. Furthermore, the “SUBSCRIBE” message typically contains information regarding which client(s) to retrieve presence data from and which data to retrieve, etc. This information can be defined in a filter being included in the “SUBSCRIBE” message.
In a step 1:2, client A sends a SUBSCRIBE message as a subscription request for presence data of client B, in which a time-out parameter for a desired subscription time period is specified. The presence server 100 then retrieves presence data of client B in a step 1:3, and sends it to client A in an initial notification message SIP NOTIFY, as shown in a step 1:4. As indicated by the dashed arrows in step 1:4, client A may receive such notifications on further occasions during the given subscription time, either at regular intervals or whenever the presence data is changed. In order to prolong or “refresh” the subscription, client A automatically sends further SUBSCRIBE messages just before the subscription time expires, and the presence server will then continue to send notifications to client A.
A watching client may also subscribe to presence data of several observed clients, which often results in numerous notifications for updated presence data being sent to the watching client. An information delivery server called RLS (Resource List Server) can then be used to collect notifications of multiple clients and send a joint notification for all observed clients to the watching client, thereby reducing the number of notifications. This joint notification may contain considerable amounts of data.
When subscribing to resource data, the watching client may have to include parameters in each subscription request, defining which resource data to be retrieved from the observed resources, and also include parameters dictating the delivery of data to the watching client. However, these parameters typically comprise a relatively large amount of information, requiring much bandwidth. Moreover, the same parameters are often sent with plural subscription requests.
Hence, there are certain problems associated with the existing solutions outlined above. Considering the limited capacity for information transfer between the network nodes, it is a problem to design a system for handling resource data, without delaying the transferred information or causing a loss of power for the network nodes.
It is an object of the present invention to address at least some of the problems outlined above. In particular, it is an object to achieve a relatively efficient providing of resource data for one or more resources to a watching client. These objects and others may be achieved primarily by a solution according to the attached independent claims.
According to one aspect, a method in a notification server is achieved for providing resource data regarding at least one resource to a watching client. In the notification server is a subscription request received. The subscription request is sent from the watching client and comprises a reference to at least one notification rule being pre-configured in a database for the watching client. The notification server may then obtain the pre-configured notification rule(s) from the database according to the reference. Then, the notification server may apply at least one of the notification rule(s) and retrieve resource data regarding the resource(s) from at least one resource data server based on the notification rule(s). The notification server may further receive notifications comprising the resource data from the resource data servers(s). The notification server may further apply at least one of the obtained notification rule(s) for delivering notifications to the watching client based on the notification rule(s). Furthermore, the notification server may apply at least one of the obtained notification rules for either transforming the received subscription request(s) into the resource data model applied by the resource(s), or transforming the retrieved resource data into the resource data model applied by the watching client.
By supplementing the subscription requests with a reference to pre-configured notification rules regarding the observed resource(s) instead of the actual notification rules, the amount of information being transferred with plural subscription requests for a watching client may be reduced. Moreover, by transforming the subscription requests and/or notifications between the applied resource data models, the amount of information being transferred may be further reduced.
According to another aspect, a notification server is achieved for providing resource data regarding at least one resource to a watching client. The notification server comprises a first communication unit adapted to receive a subscription request to the resource data regarding the resource(s) from the watching client on a first communication link. The first communication unit is further adapted to deliver at least one notification comprising the resource data to the watching client on the first communication link. Furthermore, the notification server comprises a notification rules manager adapted to identify a reference supplied with the subscription request and obtain notification rules from a database based on the reference. The notification rules manager is further adapted to retrieve resource data from a resource data server and form at least one notification comprising at least some of the retrieved resource data.
A notification rules storage unit is comprised in the notification server and is adapted to be uploaded with the obtained notification rule(s) by the notification rules manager and further adapted to store these notification rule(s). A resource data storage unit is also comprised in the notification server and is adapted to store resource data.
The notification rules manager is further adapted to apply at least one of the obtained notification rule(s) for either performing the retrieval of resource data, or forming the notifications.
The notification server is adapted to either act also as resource data server, or retrieve resource data from an external resource data server. When the notification server acts as resource data server, the notification rules manager may be further adapted to retrieve resource data from the resource data storage unit.
When the notification server communicates with an external resource data server, the notification server manager may be further adapted to retrieve resource data through a second communication unit which may be comprised in the notification server. The second communication unit may be adapted to communicate with the resource data server on a second communication link. The notification server manager may further comprise a transformer adapted to transform the subscription request(s) and/or notifications between the resource data models applied by the watching client and the observed resource(s). The transformer may be adapted to apply at least one of the obtained notification rule(s).
The present invention will now be described in more detail by means of exemplary embodiments and with reference to the accompanying drawings, in which:
a is a block diagram illustrating a notification server for enabling subscription to resource data, in accordance with a further embodiment.
b is a block diagram illustrating a notification server for enabling subscription to resource data, in accordance with a further embodiment.
Briefly described, the present invention provides a solution where a watching client can subscribe to resource data from one or more observed resources more efficiently. Notification rules regarding one or more observed resources may be pre-configured in a database for the watching client instead of being supplemented with every subscription request. A watching client which requests resource data for one or more observed resources sends a subscription request supplemented with a reference to one or more such pre-configured notification rules regarding the observed resource(s) to a notification server. The notification server uses the reference to obtain the pre-configured notification rules from the database, and the obtained notification rule(s) is applied for retrieving resource data from the observed resource(s).
Additionally, it is also possible to provide any one of the notification server or the resource data server with a transformer for transforming resource data from one resource data model into another resource data model.
It is also possible to apply different notification rules depending on the current access network, such that the delivery of notifications with resource data to an observed client is controlled according to the applied notification rule(s). A notification rule may be defined by means of a delivery filter, e.g. only allowing delivery of notifications with a certain type of resource data, notifications not exceeding a maximum data amount, notifications of one or more specific observed resources, or notifications at certain times of day, week or season.
Throughout this description, the term “notification rule” refers to any rule defining which data to be retrieved or how the data will be presented to a watching client, etc. Such notification rules are typically supplemented to a subscription request. A “filter” denotes at least one notification rule, and different kind of filters may define different sets of notification rules. For instance, a delivery filter may comprise notification rules relating how resource data shall be delivered to a watching client, and a presence filter may denote which resource data being of interest for a watcher.
Filters, as e.g. delivery filters and presence filters may be stored as files in a database. A delivery filter may be implemented as a trigger-filter, and a presence filter may be implemented as a what-filter, according to known standards. Such a what-filter defines which resource data are of interest to a watching client. A trigger-filter, defines parameters status changes, for which a watching client shall be notified of. The following example illustrates a use of an implementation of a what-filter, according to RFC 4660/4661
However, the invention is not limited thereto; any suitable filters defining which resource data are to be retrieved or delivered to a watching client may be implemented in the manner described. For instance, in the case when a watching client and an observed resource apply different resource data models, parameters defining how one resource data model may be transformed into another resource data model may be implemented in anyone of the what-filters or the trigger-filters.
A notification rule may also include a rate limitation such that the frequency of notifications does not exceed a predefined limit, e.g. not more often than once an hour or every third hour, etc. It is also possible to control the notification delivery depending on a time-out or TTL parameter given in the subscription request, e.g. by selecting different notification rules. For example, if the TTL is set to zero, delivery of all notifications may be allowed or a delivery filter “x” may alternatively be applied, while if the time-out parameter is set to a certain time period >0, no delivery of notifications may be allowed or a delivery filter “y” may alternatively be applied, and so forth.
In this description, the term “notification server” is used to represent any server capable of providing requested resource data of one or more observed resources in notifications to authorised watching clients, e.g. a presence server or RLS node as described for
Furthermore, it is to be understood that the notification servers, resource data servers, subscribing clients, resources and databases in this description may comprise any additional conventional means providing functionality, such as e.g. various control units and memories, necessary for enabling common functions and features to operate properly. However, for simplicity reasons, any means or functionality which is not necessary for the understanding of the proposed enabling of the subscribing services has been omitted in the figures, and will not be discussed in any further detail in this description.
With respect to
With reference to
Then, in a subsequent step 3:2, the notification server 300 uses the received reference to obtain the notification rule(s) from the database 302. Obtaining the notification rule(s) may be performed as an HTTP GET operation, in accordance with the XCAP (XML Configuration Access Protocol), RFC 4825. However, the invention is not limited thereto; any other suitable protocol for obtaining notification rules may be used in the manner described.
In a subsequent step 3:3, the notification server 300 retrieves resource data from at least one resource data server 304a,b,c, . . . for the at least one observed resources B,C,D, . . . . The retrieval may be performed by so called back-end subscriptions, and may be realised by sending a subscription request from the notification server 300 to at least one of the resource data servers 304a,b,c, . . . and receiving one or more notifications there from. The subscription request may be realised as a SUBSCRIBE message. The notifications may be realised as NOTIFY messages, including the resource data which the resource agrees to be supplied to the watching client A. Typically, the obtained notification rules may be split up by the notification server 300 based on which observed resource they relate to, and only the notification rules being relevant to each respective observed resource B,C,D, . . . will be supplemented to the subscriptions requests for that observed resource B,C,D, . . . . Furthermore, in the case that one notification rule relates to more than one observed resource, it will be supplemented to the subscription requests for every observed resource B,C,D, . . . it relates to.
In a final step 3:4, the desired resource data is delivered to the watching client A in accordance with the obtained notification rule(s). Such a notification rule might define how often the watching client A would be notified regarding updates of resource data for the observed resource B,C,D, . . . and which resource data are of interest to the watching client, and another notification rule might define if the watching client A is available for receiving updates. The resource data may be included in one or more notifications, which may be implemented as NOTIFY messages or any other message suitable to the used resource data model. How the watching client should be notified, e.g. how frequently, regarding which resource data being updated, etc., may be defined as a delivery filter.
In this embodiment the notification server 300 is implemented as an RLS, the database 302 as an XDMS, and the resource data servers 304a,b,c, . . . as presence servers. However, the servers and databases may be implemented as any other suitable communication nodes. Furthermore, one or more of the servers and the database may be implemented in one and the same communication node.
With reference to
In a subsequent step 4:3, different from step 3:3 in the embodiment described with reference to
In a final step 4:4, the desired resource data is delivered to the watching client A in accordance with the obtained notification rule(s). This step is basically equal to the step 3:4 of the embodiment described with reference to
Moreover, also in this embodiment the described servers 400, 404a,b,c, . . . and database 402 may be implemented as one or more suitable communication node(s).
With reference to
The step 5:1 is basically equal to the step 3:1 in the embodiment described with reference to
In yet another step 5:4, the notification server(s) 504a,b,c, . . . retrieves the desired resource data. Correspondingly, to step 3:4, the notification servers 504a,b,c, . . . delivers the desired resource data as notifications to the watching client A in accordance with the obtained notification rule(s), in a subsequent step 5:5. However, the notifications are forwarded via the notification server 500, in another subsequent step 5:6.
In this embodiment, the notification server 500 affects neither the received subscription requests which are sent to the notification server(s) 504a,b,c, . . . , nor the notifications which are sent to the watching client A. However, it should be noted that a skilled person will be able to modify the notification server 500, e.g. to enable further notification rule(s) to be applied on the subscription request(s) or notifications by the notification server 500, or to affect the subscription request(s) and/or notifications.
With reference to
In a first step 6:1, the watching client A which subscribes to resource data initiates the subscription by sending a subscription request to a notification server 600, the subscription request being supplemented with a reference (denoted <ref> in
With reference to
In a first step 700, the notification server receives a subscription request for resource data regarding at least one observed resource. The subscription request is sent from a watching client. The subscription request comprises a reference to at least one notification rule being pre-configured in a database. The subscription request may be realised as a SUBSCRIBE message supplemented with said reference, e.g. SUBSCRIBE <ref> in accordance with the SIP (Session Initiation Protocol), i.e. SUBSCRIBE <ref>.
Then, in another step 702, the notification server obtains the pre-configured notification rules from the database according to the reference. The obtainment can be performed as an HTTP GET operation in accordance with XCAP. Furthermore, in the case where the notification server and the database are not associated with the same communication network, the obtainment can be performed over a network-to-network interface (NNI), as indicated in an embodiment above. The obtained notification rule(s) can define e.g. which resource data are desired by the watching client, which updates of resource data the watching client will receive, how often the watching client will be updated, etc. Notification rules defining which resource data are of interest to a watching client may be defined in a what-filter, or presence-filter. Notification rules defining when and/or for which resource data status changes the watching client will be updated may be defined as a trigger-filter or delivery-filter.
In a subsequent step 706, resource data regarding the observed resource(s) that are served by the resource data server are retrieved. In the case when the notification server serves at least one resource data server, the retrieval can be performed by so called back-end subscriptions. The notification server can either retrieve all resource data which the resource data server agrees to supply (described with reference to
In the case when the resource data server acts also as notification server (described above with reference to
In a final step 710, the notification server controls the delivery of notifications supplemented with the desired resource data to the watching client. The notifications are sent to the watching client in accordance with at least one of the notification rules obtained in step 702, the notifying rule(s) being intended to regulate the delivery of notifications to the watching client. Typically, such notification rules are defined in a trigger-filter.
In an optional intermediate step 704, performed between the steps 702 and 706, the subscription requests may be transferred into another resource data model, applied by the resource data server. However, step 704 is an optional step (illustrated by dashed lines in the figure), and will be performed in cases where different resource data models are applied by the watching client and the resource data server.
In another optional intermediate step 708, performed between the steps 706 and 710, the notifications may be transferred into the resource data model, applied by the watching client. According to both the additional steps 704 and 708, at least one of the notification rules obtained in step 702 may define the transformation between the different resource data models.
In an alternative embodiment, based on the embodiment above, the resource data server acts also as a notification server (described with reference to
The first communication unit 802 is adapted to receive a subscription request sent from a watching client (not shown) on a communication link 820. The subscription request comprises a reference to at least one notification rule being pre-configured in a database 850 for the watching client. The notification server manager 804, 804′ is adapted to obtain the pre-configured notification rule(s) based on the reference. The notification server manager 804, 804′ comprises a reference unit 804a adapted to handle the reference comprised in the subscription request. The reference unit 804a is adapted to identify the reference to be used for the obtainment. The obtainment can be performed by a HTTP GET operation, as described in an embodiment above. Furthermore, in the case that the database 850 is not associated with the same communication network as the notification server 800, the obtainment may be performed over a Network-to-Network Interface (NNI) (illustrated with a dashed line).
The notification rules storage unit 806 is adapted to receive the obtained notification rule(s) from the notification server manager 804, 804′ and store them. Moreover, the notification rules storage unit 806 can store notification rules of different categories, e.g. what-rules and trigger-rules, etc., as described in an embodiment above.
The notification server manager 804, 804′ is further adapted to retrieve resource data regarding the observed resource(s). The retrieval can be performed either from the internal resource data storage unit 810 (described below), or from a resource data server (not shown) over a second communication link 822. The notification server 800 is adapted to execute the methods shown in
The notification server manager 804′ may be further adapted to split up the obtained notification rule(s) and apply the notification rule(s) that are relevant for each observed resource. Alternatively, the retrieval may be performed without applying the notification rule(s). In that case (described above with reference to
In the case that the resource data will be retrieved from a resource data server (referring to
Furthermore, the notification server manager 804, 804′ is adapted to form one or more notifications comprising at least some of the stored resource data, based on any of the obtained notification rule(s) intended to regulate the delivery of notifications, e.g. a notification rule defined in a trigger filter. The first communication unit 802 is further adapted to receive the formed notification(s) and send them to the watching client on the first communication link 820.
Additionally, the notification server manager 804, 804′ may also comprise a transformer 804b, adapted to transform messages and subscriptions between two resource data models. The transformer 804b is adapted to apply at least one of the obtained notification rule(s) and transform the request(s) for resource data from the observed resource, into the resource data model applied by the resource data server. Correspondingly, the transformer 804b is also adapted to transform the resource data being received from the observed resource into the resource data model applied by the watching client. Although the transformer 804b is implemented to transform the requests to be sent to the resource data server and the notifications received from the resource data server, it should be noted that a skilled person will be able to implement the function of the transformer 804b to transform the requests received from the watching client and the notifications to be sent to the watching client instead. The functions of the transformer may be implemented in practice by any suitable hardware and/or software.
Alternatively, according to any of the embodiments described above, the subscription request(s) received by the first communication unit 802 may be received via another notification server (not shown).
Even though the messages and notifications in the described embodiments are realised as messages according to SIP, any other suitable protocol can be used instead, e.g. HTTP, TCP, SMPP, or SMTP.
Moreover, although the notification server 800, 800′ according to the embodiments described above comprises separate units for communicating, storing and managing of subscriptions to resource data, it is not limited thereto. A skilled person will be able to implement any the functions of these units in one and the same unit. For instance may the functions of the notification rules storage unit 806 and the resource data storage unit 810 be implemented in the notification rules manager 804, 804′.
In the figures illustrating the embodiments above, the notification servers and resource data servers are implemented as Resource List Servers (RLS) and Presence Servers (PS), respectively. However, a skilled person will be able to implement these functions in practice by means of any suitable hardware or software, e.g. any suitable notification server or resource data server.
By means of the present invention, an effective method for subscribing to resource data for one or more observed resources is achieved. A watching client supplements a reference to pre-configured notification rule(s) regarding the observed resource(s), to the subscribing request(s), instead of the actual notification rule(s). The amount of information being transmitted with plural subscription request(s) for a watching client will therefore be reduced. Furthermore, by transforming the resource data being transferred between the watching client and the observed resource(s) into one and the same resource data model, the amount of information can be further reduced.
The invention is generally defined by the following independent claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/SE09/50153 | 2/13/2009 | WO | 00 | 11/15/2011 |