The invention relates generally to a method and arrangement for providing notifications for terminal users in a communication network.
Multimedia services are becoming increasingly popular amongst terminal users in communication networks today. A particular example of emerging services is the so-called “presence” services which basically make data related to a specific client available to other clients over a communication network. In presence services, presence data of a client is collected and stored in a presence server and can then be delivered to clients subscribing to that presence data. The presence data may refer to a multitude of different parameters and characteristics of the clients, including information relating to, e.g., terminal status, capabilities, selections and settings, as well as information relating to the current situation of the client such as geographic location, physical environment and more personal client information, e.g. current interests and needs, personal characteristics, moods, and so forth.
This type of information is thus collected and stored on a continuous basis in presence servers based on publications received from the clients or from their access networks whenever any presence data for a client is introduced, updated, changed or deleted. A client may thus subscribe for selected presence data of one or more other clients. In this description, the term “watcher” generally represents a terminal user that subscribes to presence data of one or more other terminal users, while a “presentity” generally represents a terminal user that publishes presence data to be available for any authorised watchers.
The well-known protocol SIP (Session Initiation Protocol) is typically used as a framework for providing the above subscription, publication and delivery of presence data over the communication network. The SIP message called “SIP PUBLISH” is used to send presence data to the presence server for publication. Another SIP message called “SIP SUBSCRIBE” is used by watchers to subscribe for presence data of presentities. Yet another SIP message called “SIP NOSY” is used by presence servers to provide updated presence data to watchers.
A watcher often subscribes for presence data of a substantial number of presentities. In order to reduce the amount of subscriptions and the notification traffic to a particular watcher, an information delivery server has been developed called the “RLS” (Resource list Server), collecting notifications of presentities from their respective presence servers by means of so-called “back-end subscriptions”, and sends a common notification to the watcher for all its presentities. In this way, the watcher does not have to establish subscriptions with multiple presence servers and it is also possible to reduce the messaging traffic and the number of required subscriptions since the RLS is used to as a single point to basically represent the presence servers involved.
Then, a further action 1:3 illustrates that presence data of the presentities B1-B3 is published and stored in the presence server 100, which is performed on a continuous basis and may well have started before actions 1:1 and 1:2. According to conventional solutions, the presence server 100 sends a notification message to the RLS 102, as shown in an action 1:4, basically each time a publication is made as of action 1:3, although solutions have been devised where the presence server accumulates an amount of published data for a particular watcher before sending it in a notification message directed to that watcher. The RLS 102 then duly sends the received notifications to respective watchers A1-A3, shown in another action 1:5. More presence servers 104 may likewise send notifications to the RLS 102 with published presence data relating to their associated presentities, as shown by further schematic arrows.
Given the great diversity of the presence data, it can be readily understood that the amount of notifications being sent from the presence sewers 100, 104 to the RLS 102 can be huge, according to various ongoing back-end subscriptions on behalf of different watchers, imposing great load on the network for transmitting and handling these presence notifications. Moreover, the presence notifications of action 1:4 may be sent across two different operator domains and each notification basically requires establishment of a separate communication session between server 100 and RLS 102. The latter problem can be at least partly overcome by establishing a so-called “SIP tunnel” in which multiple presence notifications can be sent through the same session, as described in the document WO 2008/004962.
It is an object of the invention to address at least some of the problems and issues outlined above. It is possible to achieve these objects and others by using a method and an arrangement as defined in the attached independent claims.
According to one aspect, a method is provided in a first notification service manager operating for at least one notification server for providing notification data referring to a plurality of presentities and directed to a plurality of watchers in a communication network. In this method, as published notification data of the presentities is received, the first notification service manager buffers multiple individual watcher specific notifications with the received notification data. At some point, the first notification service manager creates a joint notification for the watchers from the buffered watcher specific notifications, and sends the joint notification towards the watchers.
According to another aspect, an arrangement is provided in the first notification service manager operative for at least one notification server and configured to provide notification data referring to a plurality of presentities and directed to a plurality of watchers in a communication network. The first notification service manager comprises a receiving module adapted to receive published notification data of the presentities. The first notification service manager also comprises a notification module adapted to buffer multiple individual watcher specific notifications with the received notification data in at least one notification buffer, and to create a joint notification for the watchers from the buffered watcher specific notifications. The first notification service manager also comprises a sending module adapted to send the joint notification towards the watchers.
According to another aspect, a method is provided in a second notification service manager operating to provide notification data referring to a plurality of presentities and directed to a plurality of watchers in a communication network. In this method, the second notification service manager receives a joint notification comprising multiple individual watcher specific notifications with notification data of the presentities and directed to the watchers. The second notification service manager then splits the joint notification into the watcher specific notifications, and provides the watcher specific notifications individually for distribution to the respective watchers.
According to another aspect, an arrangement is provided in the second notification service manager configured to provide notification data referring to a plurality of presentities and directed to a plurality of watchers in a communication network. The second notification service manager comprises a receiving module adapted to receive a joint notification comprising multiple individual watcher specific notifications with notification data of the presentities and directed to the watchers. The second notification service manager also comprises a notification module adapted to split the joint notification into the watcher specific notifications, and a providing module adapted to provide the watcher specific notifications individually for distribution to the respective watchers.
The invention according to any of the above aspects can thereby provide the benefits of reducing the amount of subscriptions and notifications required and thus save bandwidth and processing resources.
The above methods and arrangement may be configured and implemented according to different embodiment. In one embodiment, the first notification service manager compresses the buffered watcher specific notifications to reduce the size of the joint notification and thus further save bandwidth and processing resources, which may be done in different ways. For example, the joint notification can be sent in a SIP message with a single SIP header while the different watcher specific notifications are included in the SIP message as separate entities in a multi-part document In another example, the joint notification includes multiple XML-type documents with different watcher specific notifications using a common schema. The notification information in the joint notification may also be compressed according to a shared library known to the first and second notification service managers.
In further embodiment, the first notification service manager creates and sends the joint notification when a predefined trigger condition is fulfilled, which could be when a preset time period expires and/or when the amount of buffered watcher specific notifications has exceeded a preset limit. Thereby, the notifications can be kept up-to-date and/or the buffer will not be over-filled.
The first notification service manager may buffer the watcher specific notifications in separate notification buffers for plural RLS entities and send a separate joint notification with buffered watcher specific notifications to each RLS entity. The first notification service manager may operate for a plurality of notification servers in one operator domain to provide a single point of contact towards an opposite operator domain. Likewise, the second notification service manager may operate for a plurality of RLS entities in one operator domain to provide a single point of contact towards an opposite operator domain.
Further possible features and benefits of this solution will become apparent from the detailed description below.
The invention will now be described in more detail by means of exemplary embodiments and with reference to the accompanying drawings, in which:
Briefly described, the invention can be used to avoid transmission of numerous individual notifications from one or more notification sewers to one or more RLS entities by buffering multiple watcher specific notifications in a managing entity operating for a notification sewer, and then sending a single joint notification containing the buffered watcher specific notifications to another managing entity operating for an RLS entity. The latter managing entity is then able to split the joint notification into the original multiple watcher specific notifications, and provide them individually to an RLS entity for further propagation to respective watchers.
In this description, these managing entities will be referred to as the first and second “notification service managers”, respectively. In practice, the notification service may be the above-described presence service and the following examples and embodiments often refer to a presence service although the invention is not limited thereto. The term “presence data” when used here can thus be understood as being equivalent with “notification data”. Further, the term RLS will be used for short to represent any sewer or entity that operates according to this solution to deliver information on any kind of notification data to subscribing watchers and the invention is not limited to using any particular type of information delivery sewer or entity on the watcher side. For example, the RLS entity described here could actually be a presence sewer, depending on the implementation.
The various notifications in the following examples may be communicated by means of the SIP protocol, e.g. in SIP NOTIFY messages and based on established subscriptions for notification data. Alternatively, the described notifications may be communicated without using SIP-based subscriptions, and the individual “subscriptions” for notification data of presentities for watchers in the following examples should be understood as any suitable agreements for delivering such notifications towards the watchers.
A first action 3:1 illustrates that the RLS 302, in a conventional manner, establishes individual back-end subscriptions with presence server 300 for presence data of presentities B1-B3 on behalf of watchers A1-A3, e.g. as described in actions 1:1 and 1:2 above. The presentities B1-B3 also likewise publish their presence data to the presence server 300 in a conventional manner, in action 3:2, which again could be a more or less continuous process throughout, resulting in corresponding individual watcher specific notifications to be conveyed to the RLS 302 for further propagation to the watchers A1-A3.
During this process, the first notification service manager 300a in presence server 300 duly creates these individual watcher specific notifications with the received presence data and buffers the watcher specific notifications in a buffer associated to the RLS 302, illustrated by a further action 3:3. The first notification service manager 300a may supply presence data in notifications to more than one RLS and in that case a notification buffer is maintained for each RLS, which will be described in more detail later below.
At some point, manager 300a creates a single notification comprising all the buffered watcher specific notifications, as shown by a next action 3:4, in this description called a “joint notification”. The joint notification thus includes all the individual notifications that have been created for specific watchers and buffered for delivery from the presence server 300 to the watcher side, e.g. to the RLS 302. The joint notification is then sent as a single message over to the second notification service manager 302a, in a following action 3:5. Thereby, much processing and bandwidth can be saved by sending the sole joint notification message in a single session instead of sending the individual notifications in multiple separate messages and/ or sessions in the conventional manner, particularly when sending the message across two operator domains. Using this solution, it is also possible to compress the joint notification in different ways to further save bandwidth and processing resources, which will be described in more detail later below.
The sending of the joint notification can be triggered when a predefined trigger condition is fulfilled, such as when a preset time period has expired, or when the amount of buffered watcher specific notifications has exceeded a preset limit, i.e. when the buffer is “full”. Depending on the implementation, the trigger condition may comprise only one or both of these conditions such that the joint notification is sent as soon as either of them is fulfilled. For example, the buffer may sometimes become full very fast and before the preset time period has expired, or vice versa. The triggering time period may be set to ensure that the presence data in the individual notifications has not become “out-of-date” in some respect before delivery, yet gaining sufficient or desirable benefits of sending the single joint notification message instead of sending the individual notifications in separate messages and/or sessions in the conventional manner.
When receiving the joint notification, the second notification service manager 302a splits it by extracting the watcher specific notifications therefrom, in an action 3:6, and creates multiple separate watcher specific notification messages which are basically provided to the RLS 302 which finally propagates them individually to the watchers A1-A3, as illustrated in a last shown action 3:7. Alternatively, the second notification service manager 302a may distribute the watcher specific notifications directly to the respective watchers, i.e. without involving any RLS entity. The process of buffering watcher specific notifications from received publications in the first notification service manager 300a and sending a joint notification to the second notification service manager 302a may continue as long as the back-end subscriptions are valid. The collection of watchers addressed in the individual watcher specific notifications in the joint notifications may thus change over time as new back-end subscriptions are introduced and old ones expire.
Although no action for establishing back-end subscriptions between RLS entities 402 and presence sewers 400 is shown in this figure, it is assumed that this has been done in a conventional manner. Thus, it is assumed that each RLS 402 has established individual back-end subscriptions with one or more of the presence servers 400 for presence data of presentities on behalf of various watchers, basically as described for both
In this example, each one of the presence sewers 400 creates multiple individual watcher specific notifications with the received presence data, according to the above back-end subscriptions, and sends them to the first notification service manager 400a, illustrated a first action 4:1, which could likewise go on in a continuous manner as long as presence data is being published. In the meantime, manager 400a buffers the received watcher specific notifications in different notification buffers maintained for respective RLS entities 402, illustrated by a further action 4:2. It should be noted that in this scenario a specific presence sewer may have back-end subscriptions with several RLS entities, and vice versa.
In due course, the first notification service manager 400a creates and sends joint notifications, each containing buffered watcher specific notifications, to the second notification service manager 402a, in a further action 4:3, which may be triggered when a suitable trigger condition is fulfilled as described above. Thus, each joint notification is directed to a specific RLS and contains watcher specific notifications accumulated in the notification buffer specifically maintained for that RLS in the first notification service manager 400a. As shown in the figure, joint notification “1” is addressed to RLS “1”, joint notification “2” is addressed to RLS “2”, and so forth.
In this way, only one notification message can be sent with watcher specific notifications from plural presence sewers to each RLS entity. Effectively, the shared first and second notification service managers 400a act to “concatenate” multiple individual watcher specific notifications communicated across the operator domains A and B. The first notification service manager 400a thus operates for a plurality of presence servers 400 in operator domain B and provides a single point of contact towards the opposite operator domain A for communicating presence notifications. Likewise, the second notification service manager 402a operates for a plurality of RLS entities 402 in operator domain A and provides a single point of contact towards the opposite operator domain B for receiving the presence notifications.
It is also possible that a shared notification service manager 400a, 402a is employed at only one side such that the first notification service manager 400a sends joint notifications directly to the RLS entities 402, or the second notification service manager 402a receives joint notifications directly from the presence sewers 400. In either way, much bandwidth and processing resources can be saved, e.g. as compared to the situation described for
The second notification service manager 402a then splits each received joint notification 1, 2, 3, . . . into multiple individual watcher specific notifications in an action 4:4, and provides the watcher specific notifications individually to the respective RLS entities 402, in a final shown action 4:5. The RLS entities 402 can then further propagate the watcher specific notifications to respective watchers in a conventional manner, as schematically illustrated by the arrows pointing away from respective presence RLS entities 402. Splitting the received joint notifications 1, 2, 3, . . . is made separately for each joint notification since they typically arrive at different point in time, and actions 4:3-4:5 should be seen as a procedure for each joint notification.
The presence sewers 300 and 400 in the examples above could be any type of notification servers handling any notification service. As mentioned above, creating the joint notification in the first notification service manager 300a or 400a may include compressing the buffered watcher specific notifications, which could be done according to different embodiment. In one embodiment, the first notification service manager sends the joint notification in a SIP message with a single SIP header while the different watcher specific notifications are included in the SIP message as separate entities in a multi-part document. In another embodiment, the joint notification includes multiple XML-type documents with different watcher specific notifications using a common schema with information that is the same and valid for all the XML document.
In yet another embodiment, e.g. when a joint notification is sent across different operator domains or within the same operator domain, the presence information in the joint notification is compressed according to a shared predefined “library” which is known to both notification service managers. This library thus provides translations of specific data into abbreviated “codes” or the like. Examples of compression methods that can be used are “gzip” and “deflate”. Further, the joint notification may be encrypted by the first notification service manager 300a or 400a and sent in encrypted form, to be decrypted by the second notification service manager 302a or 402a when received.
A procedure executed by a first notification service manager, will now be described with reference to the flow chart of
In a next action 502, various published notification data of the presentities is received, basically corresponding to action 3:2 in
It is then checked in a further action 506 if a predefined trigger condition for making a joint notification for the watchers, e.g. served by a specific RLS, is fulfilled. The predefined trigger condition may be that a preset time period has expired, and/or that the amount of buffered data has exceeded a preset limit, as described above. If the trigger condition is not fulfilled in action 506, the procedure returns to actions 502 and 504 of receiving further notification data and buffering further watcher specific notifications, respectively. On the other hand, if the trigger condition is found to be fulfilled in action 506, the first notification service manager creates a joint notification for the watchers from the buffered watcher specific notifications, in a next action 508.
The joint notification is then finally sent towards the watchers, e.g. to a corresponding RLS, in a final shown action 510. The procedure may then be repeated from action 502, as indicated by the dashed arrow. It should be noted that the procedure shown in
A procedure executed by a second notification service manager, will now be described with reference to the flow chart of
In a first action 600, the second notification service manager receives a joint notification comprising multiple individual watcher specific notifications with notification data of the presentities and directed to the watchers, e.g. a joint notification sent from the first notification service manager according to action 510 above. The joint notification may be directed to one of the RLS entities as described above. The second notification service manager then splits the received joint notification into the watcher specific notifications in a further action 602, and provides the watcher specific notifications individually for distribution to respective watchers, in a final shown action 604. As described for the examples of
In
The first notification service manager 700 is configured to provide notification data referring to a plurality of presentities B1, B2, B3 . . . and directed to a plurality of watchers, not shown, in a communication network. The first notification service manager 700 may comprise an optional subscription module 700a adapted to establish individual subscriptions S1, S2 . . . with at least one RLS 702 for notification data of the presentities for the watchers. Alternatively, the subscriptions for notification data may be created by another node serving the watchers, different from the first notification service manager 700, depending on the implementation. The manager 700 further comprises a receiving module 700b adapted to receive published notification data of the presentities, e.g. as supplied in notification messages from the at least one notification server, not shown.
The manager 700 also comprises a notification module 300c adapted to buffer multiple individual watcher specific notifications with the received notification data in at least one notification buffer 700d, and to create a joint notification from the buffered watcher specific notifications. The manager 700 also comprises a sending module 700e adapted to send the joint notification towards the watchers, e.g. to an RLS entity serving the watchers.
The different modules in the first notification service manager 700 may be configured and adapted to provide further optional features and embodiments. In one exemplary embodiment, the notification module 700c is further adapted to create the joint notification by compressing the buffered watcher specific notifications. This compression can be made in different ways. For example, the sending module 700e may send the joint notification in a SIP message with a single SIP header, where the different watcher specific notifications are included in the SIP message as separate entities in a multi-part document Another possibility is that the notification module 700c is further adapted to compress the information in the joint notification according to a shared library known to the first and second notification service managers, as described above. The above compression may be employed both when the joint notification is sent across different operator domains and within the same operator domain.
The notification module 700c may also be adapted to create the joint notification when a predefined trigger condition is fulfilled, which may include that a preset time period has expired and/or the amount of buffered watcher specific notifications has exceeded a preset limit.
In another embodiment, the subscription module 700a is further adapted to establish back-end subscriptions for watchers with plural RLS entities 702. In that case, the notification module 700c is further adapted to buffer the watcher specific notifications in separate notification buffers 700d maintained for respective RLS entities such that one notification buffer is created for RLS1, another notification buffer is created for RLS2, and so forth. In this scenario, the sending module 700e is further adapted to send a separate joint notification N1, N2 . . . with buffered watcher specific notifications towards each RLS entity RLS1, RLS2 . . . , respectively. When several notification buffers 700d are employed for respective RLS entities, each joint notification N1, N2 . . . is handled independent of the other joint notification(s).
In
The second notification service manager 800 comprises a receiving module 800a adapted to receive a joint notification, N1 or N2, comprising multiple individual watcher specific notifications with notification data of the presentities directed to the watchers. The joint notification N1 or N2 may be received from a notification sewer 802 or from a first notification service manager, not shown, operating for at least one notification server 802.
Manager 800 further comprises a notification module 800b adapted to split the received joint notification into the above watcher specific notifications, e.g. basically as described for actions 3:6 and 4:4 above. Manager 800 also comprises a providing module 800c adapted to provide the watcher specific notifications individually for distribution to the respective watchers.
The different modules in the second notification service manager 800 may be configured and adapted to provide further optional features and embodiments. In one exemplary embodiment, if the joint notification has been created by compressing the buffered watcher specific notifications, the notification module 800b is further adapted to decompress the watcher specific notifications, which can be made in different ways. For example, the joint notification may be received in a SIP message with a single SIP header and a multi-part document where the different watcher specific notifications are included as separate entities. Alternatively, the joint notification may include multiple XML-type documents with different watcher specific notifications using a common schema with information valid for all the XML documents which is thus not duplicated unnecessarily. The notification module 800b may be further adapted to decompress the notification information in the joint notification according to a shared library, as described above. The above decompression may be employed both when the joint notification is sent across different operator domains and within the same operator domain.
Various functional entities in the first and second notification service managers 700 and 800 are called “modules” in this description, although they could also be seen as units, blocks, elements, components, or the like. It should be noted that
The functional modules 700a-e and 800a-c described above can be implemented as modules of computer programs, each comprising code means which when run by processors in the managers 700 and 800 cause the managers 700 and 800 to perform the above-described functions and actions. The computer programs may be carried by computer program product each comprising a computer readable medium on which the computer program is stored. For example, each computer program product may be a flash memory, ROM (Read-Only Memory) or an EEPROM (Electrically Erasable Programmable ROM), and the computer program modules described above could be distributed on different computer program products in the form of memories within the managers 700 and 800.
While the invention has been described with reference to specific exemplary embodiments, the description is generally only intended to illustrate the inventive concept and should not be taken as limiting the scope of the invention. The invention is defined by the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/SE10/50703 | 6/21/2010 | WO | 00 | 12/5/2012 |