1. Field of the Invention
The present invention relates to a status management system that manages and notifies status information of presentity. The status management system includes a presence server and a plurality of clients. The presence server stores the status information (hereinafter referred to as presence information) receives from any given client C1, and distributes it to other clients C2.
Presentity is a client that possesses presence information. Watcher is a destination client to which presence information of a presentity is distributed. Buddy is a presentity that provides its presence information for a watcher. Publisher is a client that updates presence information of a presentity other than itself. It does not matter whether or not a presentity allows the publisher to update its presence information.
2. Related Art
In anticipation of a coming ubiquitous society, a status management system has been proposed in which presence information of a presentity is updated by a client other than itself, namely, a publisher. In order to achieve the above mentioned system, publisher B that updates presence information of presentity A must obtain permission for updating presence information of presentity A in advance. A presence server stores, for each presentity, one or more publishers that are allowed by a presentity to update presence information thereof. Therefore, only the presence information updated by the allowed publisher B is stored as presence information of presentity A. Presence information updated by publisher C that is denied for updating by presentity A or presence information updated by publisher D that is neither allowed nor denied for updating by presentity A will not be stored as presence information of presentity A.
In a ubiquitous society, it is expected that an enormous amount of publishers transmit presence information of presentity A to the presence server. In that case, however, it is difficult for presentity A to allow or deny all the possible publishers prior to updating presence information therefrom. Thus, there will be many publishers that are neither allowed nor denied, in other words, publishers that are not recognized by a presentity.
For example, it is most likely that a newly added publisher will not be recognized by a presentity. Presence information from such unrecognized publishers will not be stored as presence information under the current status management systems. This makes it difficult to update presence information in real time and to notify it to a watcher. As a result, the watcher cannot know the difference between real presence information and the presence information that the watcher is seeing even though presence information has been already changed. This is the one of the biggest problem to be solved.
On the other hands if presence information updated by a publisher that a presentity does not recognize is stored as the presentity's presence information, the presentity's privacy might be invaded. Because presence information beyond the cognizance of the presentity is notified to a watcher while the presentity never even knows it. An object of the present invention is to manage presence update by publishers that a presentity does not recognize. Another object of the present invention is to notify presence information within the cognizance of a presentity so that the presentity's privacy is kept.
The first aspect of the present invention provides a status management device that is connected to a plurality of clients via a network and transmits presence information of each presentity to a watcher. This status management device includes the following units;
a presence storing unit for storing latest presence information of presentity;
a history storing unit for storing for each presentity history information that includes status information of each presentity;
a history update unit for receiving status information of a presentity from a publisher that is a client different from the presentity and for adding the status information to the history information;
a status notification unit for, in response to receiving the status information, transmitting a status change notification that notifies that there has been a change in status information of the presentity;
a configuration accepting unit for accepting a configuration to allow or to deny an update of status information by the publisher from the presentity and for storing the information after the notification is transmitted; and
an update unit for updating the presence information of the presentity stored in the presence storing unit based on the status information received from the publisher when a configuration to allow the update is accepted.
In the present invention, when the publisher updates status information of the presentity, it is notified to a watcher of the presentity. The presentity may allow or deny the configuration for update by the publisher after the notification is transmitted. If the update is allowed, presence information of the presentity is updated based on the status information. If the update is denied, the presence information of the presentity is not updated. Even in such a case, the watcher can understand the change of the presence information because of receiving the status change notification of the presentity. Therefore, no matter which publisher status information is from, it can be reflected in the change of status information of a presentity. At the same time, the privacy of a presentity can be kept because the notification of presence information is performed within the cognizance of the presentity.
The status management device may further include an allow list storing unit for correlating recognized publisher that have been either allowed or denied to update the presence information stored in the presence storing unit with each presentity and for storing the same. The status notification unit may determine whether or not the publisher is included in the allow list and transmits the status change notification when not included.
The publisher that is not in the allow list is not recognized by the presentity. Even when such a client updates status information, the status change notification is transmitted to the watcher. Thus, when a new publisher is introduced, status change notification of a presentity can be sent to a watcher.
The status management device may further include a buddy list storing unit for correlating a buddy with each watcher and for storing the same. The status notification unit may compare a recognized client of a buddy with a publisher and transmit the status change notification based on the result.
For example, if any given publisher has been allowed by many buddies, the status change notification may be transmitted. Conversely, if any given publisher has been denied by many buddies, the status change notification may not to transmit. Thus, unnecessary notifications may be reduced by using the buddy list.
The status management device may her include a buddy list storing unit and an inquiry unit. The buddy list storing unit correlates a buddy with each watcher and stores the same. The inquiry unit transmits an inquiry whether or not to allow an update of presence information by the publisher to the presentity. The inquiry unit compares a recognized client and the publisher and transmits the inquiry based on the result.
For example, when status information is received from a publisher allowed by many buddies, the inquiry may be transmitted to the presentity. Conversely, when status information is received from a publisher denied by many buddies, it is feasible not to transmit the inquiry to the presentity. In this way, unnecessary inquiries to a presentity may be reduced by using the buddy list.
When the configuration accepting unit accepts a configuration to allow or to deny an update of presence information for the publisher, the configuration accepting unit preferably correlates the publisher, the presentity and the response from the presentity and stores the information into the allow list storing unit.
When status information is updated by an unrecognized publisher, that publisher is preferably registered either in the allow list or in the deny list in accordance with a response from a presentity. Even if a publisher is not recognized before updating the presence information, by storing a configuration about allow/deny that is configured after the update of status information is received, it becomes possible to apply that configuration when receiving the configuration in the future.
The status management device may further include a processing rule storing unit. The processing rule storing unit correlates a processing rule for processing status information received from the publisher with the presentity and stores the rule. The status notification unit preferably generates temporary information by processing the status information received from the publisher based on the processing rule, and transmits a status change notification that includes the temporary information.
Here, processed information not the status information itself from the publisher is transmitted. In this way, a watcher can receive a status change notification of the presentity while keeping the privacy of a presentity.
When the configuration accepting unit accepts a configuration to allow an update of presence information by the publisher, the configuration accepting unit preferably deletes status information that is older than the configuration information that is correlated with the presentity from the history information.
When the status information updated by the publisher is allowed, the previous status information is deleted. In this way, the amount of the history information can be minimized and the resources of the status management device can be used effectively.
When the configuration accepting unit accepts a configuration to deny an update of presence information by the publisher, the configuration accepting unit preferably deletes the status information from the publisher from the history information.
When the status information updated by the publisher is denied, the status of the history information is rolled back to the status before that status information was added thereinto. Because it is not necessary to keep the denied status information stored, the resources of the status management device can be used effectively by deleting unnecessary information.
Another aspect of the present invention further provides a status management program executed by a computer that is connected to a plurality of clients via a network and transmits status presence information of each client to a watcher. The program causes the computer to function as:
a presence storing unit for storing latest presence information of each presentity;
a history storing unit for storing history information that includes status information of each presentity;
a history update unit for receiving status information of a presentity from a publisher and for adding the status information to the history information;
a status notification unit for, in response to receiving the status information, transmitting a status change notification that notifies that there has been a change in status information of the presentity to a watcher of the presentity;
a configuration accepting unit for accepting a configuration to allow or to deny an update of presence information by the publisher from the presentity and for storing the configuration after the status change notification is transmitted; and
an update unit for updating the presence information of the presentity stored in the presence storing unit based on the status information received from the publisher when a configuration to allow the update is accepted.
This program causes a computer terminal to function as the status management device of the first aspect of the present invention, and demonstrates effects identical to those of the first aspect of the present invention.
Another aspect of the present invention further provides a status management method executed by a computer that is connected to a plurality of clients via a network and transmits presence information of each presentity to a watcher. The method includes the following steps:
a presence storing step of storing latest presence information of each presentity;
a history storing step of storing history information that includes status information of each presentity;
a history update step of receiving status information of a presentity from a publisher and for adding the status information to the history information;
a status notification step of, in response to receiving the status information, transmitting a status change notification that notifies that there has been a change in status information of the presentity to a watcher of the presentity;
a configuration accepting step of accepting a configuration to allow or to deny an update of presence information by the publisher from the presentity and for storing the configuration after the status change notification is transmitted; and
an update step of updating the presence information of the presentity stored in the presence storing step based on the status information received from the publisher when a configuration to allow the update is accepted.
This method is executed by the status management device of the first aspect of the present invention and demonstrates effects identical to those of the first aspect of the present invention.
Another aspect of the present invention further provides a computer readable recording medium on which is recorded a status management program executed by a computer that is connected to a plurality of clients via a network and transmits status presence information of each presentity to a watcher. The program causing a computer to function as:
a presence storing unit for storing latest presence information of each presentity;
a history storing unit for storing history information that includes status information of each presentity;
a history update unit for receiving status information of a presentity from a publisher and for adding the status information to the history information;
a status notification unit for, in response to receiving the status information, transmitting a status change notification that notifies that there has been a change in status information of the presentity to a watcher;
a configuration accepting unit for accepting a configuration to allow or to deny an update of presence information by the publisher from the presentity and for storing the configuration after the status change notification is transmitted; and
an update unit for updating the presence information of the presentity stored in the presence storing unit based on the status information received from the publisher when a configuration to allow the update is accepted.
With the present invention, even if a publisher is not recognized by a presentity, a status change notification is transmitted to a watcher of the presentity. Therefore, even if status information updated by the publisher is denied by the presentity, the watcher can receive a status change notification. Therefore, no matter which publisher status information is from, it can be reflected in the change of status information of a presentity. At the same time, the privacy of a presentity can be kept because the status change notification is performed within the cognizance of the presentity.
These and other objects, features, aspects and advantages of the present invention will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, discloses a preferred embodiment of the present invention.
Outline of the Invention
If a response “allow” is received in response to the aforementioned inquiry (#5 and #6), the presence server 100 adds publisher B into an allow list 8a in an allow list DB 8 (#7). Also, the presence server 100 generates the presence information based on the status information read out from a history table 9 (#8). The generated presence information is registered in a presence management DB 2b (#9). The watcher C, who is a watcher of presentity A, is notified of the presence information by the change notify command (#10).
If a response “deny” is received in response to the aforementioned inquiry (#11), the presence server 100 adds publisher B into a deny list 8b in the allow list DB 8 (#12). Also, the presence server 100 deletes the status information received from publisher B from the history table 9.
With the aforementioned processes, the watcher C can know that there has been a change in the presence information of presentity A even when publisher B is neither allowed nor denied in advance (#3). When publisher B is subsequently allowed, the watcher C knows the new presence information of presentity A (#9). Even when publisher B is subsequently denied, the watcher C knows that there has been a change in the presence information of presentity A by the change notification. Therefore, even when there is a change in publishers that a presentity is not aware of, a change of presence information can be notified while keeping the presentity's privacy.
<<Configuration>>
Now, a functional configuration of the presence server 100 according to a first embodiment of the present invention will be explained with reference to
Database and Table
(1) Buddy List
(2) Presence Management Table
(3) Allow List DB
(3-1) Allow List
(3-2) Deny List
(4) History Table
More specifically, the history table 9 correlates “presentity ID”, “operation ID”, “publisher ID”, “inquiry needed”, “allow update”, “status information”, “status” and “previous update” and stores the information. “Presentity ID” is a client ID of a presentity. “Operation ID” specifies an entry in the history table 9. “Publisher ID” is a client ID of a publisher that updates status information. An “inquiry needed” field indicates whether or not an inquiry to the presentity is necessary as to whether or not presence information based on the status information is to be set. An “allow update” field indicates whether or not the update of presence information based on the status information is allowed by the presentity. The status information received from the publisher is stored in a “status information” field. If a “status” field indicates “setting”, it means that the entry concerned is the latest entry, i.e. a current entry. If it indicates “keeping”, it means that a status information of the entry concerned is past status information. If a “previous update” field indicates “Yes”, it means that the entry concerned had been a current entry before the latest current entry.
For example, an entry with operation ID “6” in the history table 9 shown in
(5) Processing Rule Table
Now, an example of rule for allowed publisher will be explained in detail.
Next, rule for unrecognized publisher will be explained in detail. For example, rule for unrecognized publisher “<place>” indicates that data with a tag <place> in status information is extracted. When this rule is applied, status information “<place>headquarters</place><floor>8F</floor><area>meeting room A</area>” is processed into temporary information “headquarters”. Consequently, the temporary information “headquarters” is transmitted to a watcher.
It is possible to update location information in a proprietary XML (eXtensible Markup Language) format as explained above, but the PML (Physical Markup Language) that EPCglobal, that is promoting the standardization of distribution management system using an RFID tag, has established may also be employed. Because the PML makes it possible to describe a relative location of a publisher with a specified location as a starting point using a <loc> tag, the location information can be described in a single format by utilizing the PML as the location information.
Function of Each Unit
Next, the function that each unit of the presence server 100 achieves will be explained. The function of the presence server 100 is broadly divided into (1) presence management function, (2) temporary information update function, (3) change notification function, (4) status accepting function, and (5) presence information update function.
(1) Presence Management Function
The presence server 100 accepts the update of presence information by a presentity itself. The presence server 100 also distributes the updated presence information to a watcher of the presentity. In addition, the presence server 100 accepts the registration of a buddy list.
(1-1) Update and Distribution of Presence Information
The update and distribution of presence information will be explained more in detail. When receiving a presence update command, the receiving unit 1 determines whether that presence update command is transmitted by a presentity itself or by a publisher. This determination is performed by comparing a source client ID included in the presence update command and a presentity ID that specifies a subject whose status is to be updated. When the two match, the receiving unit 1 determines that the presence update command is transmitted by the presentity itself. The received status information and client ID are passed to the presence management unit 2. The presence management unit 2 updates presence information based on the received status information, and the presence notification unit 3 distributes the new presence information to a watcher. The new presence information is notified by a presence notify command. At this time, the presence management unit 2 can refer to the processing rule table 10 and process the received status information into the presence information. A rule for allowed publisher can be used as a processing rule.
(1-2) Registration of Buddy List
Adding a buddy to a buddy list will be explained more in detail. When receiving a subscribe command from a client via the receiving unit 1, the presence management unit 2 updates the buddy list 2a and the presence management table 2b based on this subscribe command. Included in the subscribe command are a watcher ID, a buddy ID and a display name. These are correlated and registered in the buddy list 2a and the presence management table 2b. In addition, the presence management unit 2 makes an inquiry to a buddy whether or not the presence information is to be distributed, and stores a response to this inquiry in the presence management table 2b. In this way, the distribution of the presence information against the intention of the buddy whose presence information will be subscribed can be prevented.
(2) Temporary Update Function
When receiving status information from a publisher, the presence server 100 adds it to the history table 9. The presence server 100 may also determine by referring to the buddy list 2a whether or not to transmit a change notification or whether or not to transmit an inquiry to the presentity (hereinafter referred to as temporary update). In this case, the presence server 100 updates the history table 9 in accordance with the determination.
(2-1) Registration of Status Information
At first, adding of status information to the history table is explained in detail. When the receiving unit 1 determines that the received status update command is from a publisher, the received status update command is passed to the history management unit 4. At this time, a publisher ID, a presentity ID and status information are included in the status update command. The history management unit 4 adds the status information to the history table 9 when the publisher ID and the presentity ID are not correlated either in the allow list 8a or in the deny list 8b. In other words, the status information is added to the history table 9 when the publisher is not recognized by the presentity. The history table in
On the other hand, there may be a case where the publisher ID and the presentity ID are correlated and registered in the allow list 8a. In other words, this is a case where the update of presence information by the publisher is already allowed by the presentity. In this case, the history management unit 4 adds status information to the history table 9 and passes the status information to the presence management unit 2. The status information is processed into presence information in accordance with a rule for allowed publisher, added in the presence management table 2b and notified to a watcher
Conversely, there may be a case where the publisher ID and the presentity ID are correlated and registered in the deny list 8b. In other words, this is a case where the update of presence information by the publisher is already denied by the presentity. In this case, the history management unit 4 discards status information and waits for the next status update command.
(2-2) Temporary Update
Next, the temporary update will be explained in detail. The temporary update determination unit 5 filters publishers before a change notification and an inquiry are made, which will be discussed later. In other words, the temporary update determination unit 5 determines whether or not a change notification or an inquiry as to whether or not the update of presence information is allowed should be transmitted. This determination is made because transmitting a change notification and an inquiry in response to every status information will result in an increased load on the presence server 100 and the network, as well as resulting in transmitting unnecessary information to a watcher and a presentity. This determination can be made based, for example, on the allow list 8a and the deny list 8b of buddies of a presentity. For example, if any given publisher is denied by more than a predetermined percentage of the buddies of a presentity, it can be determined that a temporary update is not possible. In this case, a change notification and an inquiry are not transmitted. Conversely, if any given publisher is allowed by more than a predetermined percentage of the buddies of a presentity, it can be determined that a temporary update is possible. In this case, a change notification and an inquiry are transmitted.
(3) Change Notification Function
The presence server 100 transmits a change notification when status information from a publisher that is unrecognized by a presentity is received. Specifically, the presence notification unit 3 transmits a change notification indicating that there has been a change in status information of a presentity to a watcher thereof. In the present embodiment, when the temporary update determination unit 5 determines that a temporary update is possible, the temporary information is set in the presence management table 2b. Temporary information is presence information that is temporarily set, and is generated from status information by the processing unit 7 using a rule for unrecognized publisher in the processing rule table 10. The presence notification unit 3 transmits a change notify command to a watcher because presence information is changed. In the present embodiment, a change notify command that notifies temporary information is called a change notification in order to distinguish it from a normal presence notify command.
A change notification includes information indicating that status information of a presentity is changed. Temporary information of the present embodiment is information that includes a part of status information. However, temporary information does not always have to be a part of status information. For example, temporary information may be a predetermined value or message. By notifying information different from status information itself as a change notification to a watcher, it becomes possible to notify the watcher that some kind of status change has occurred to a presentity. Moreover, it becomes possible to prevent status information of a presentity from being known by a watcher beyond the cognizance of the presentity and to keep the presentity's privacy.
(4) Update Accepting Function
The presence server 100 accepts from a presentity a configuration as to whether or not to allow a publisher to update its presence information, and stores it in the allow list DB 8.
(4-1) Inquiry
In the present embodiment, the inquiry unit 6 transmits to a presentity an inquiry as to whether or not to allow a publisher to update its presence information. When a response to the inquiry is received from the presentity, the inquiry unit 6 performs a process according to the response. The inquiry includes, for example, a publisher ID and detailed information regarding a publisher. Detailed information regarding a publisher may include a location where the publisher is placed and a name of a manager of a publisher.
In the figure, “Sensor 4” is displayed. A location of the sensor, i.e. the publisher in this example is displayed in the publisher detail field 92. The presentity selects a processing content, i.e. “allow”, “deny” or “neither” using the processing content selection radio buttons 93 based on the publisher ID and the detailed information regarding the publisher. Also in this example, a time condition such as an allowed time period and a denied time period can be set using the time input field 95. When the set button 96 is pressed after the aforementioned configuration is set, a response is transmitted to the presence server 100. This response includes the publisher ID, the selected processing content and the selected condition. The time condition may also be included if it has been set.
(4-2) Process After Response
If a response “allow” is received, the inquiry unit 6 deletes an entry made before the current entry from the history table 9. In other words, only the latest status information updated by the status update command from the publisher is made to remain in the history table 9 with respect to the presentity concerned. The history table 9 in
If a response “deny” is received, the inquiry unit 6 deletes the current entry in the history table 9. In other words, the entry that includes the status information from the denied publisher is deleted, and the previous current entry is set back to the current entry again. Also, presence information is generated based on the status information of the previous current entry and is stored in the presence management table 2b.
(5) Presence Information Update Function
The presence server 100 updates presence information of a presentity in accordance with a response from the presentity. More specifically, the processing unit 7 generates new presence information based on status information from an allowed publisher, and stores it in the presence management table 2b. A rule for allowed publisher in the processing rule table 10 is used for generating the presence information. The new presence information is notified to a watcher as a presence notify command by the presence notification unit 3. Therefore, when a publisher is allowed, a watcher receives a change notification first and then receives new presence information. Conversely, when a publisher is denied, a watcher receives a change notification and presence information that had been set immediately before.
<<Processing>>
(1) Main Routine
Step S1: The presence server 100 waits for the receipt of a status update command, and the presence server 100 proceeds to Step S2 when receiving it.
Step S2: The presence server 100 determines whether or not a publisher that transmitted the status update command is already denied by a presentity. This determination is made based on whether or not a publisher ID of the publisher and a presentity ID of the presentity whose presence information is set are correlated and stored in the deny list 8b. If the publisher is already denied by the presentity, the process ends. The process ends here because it can be assumed that it complies with the presentity's wishes not to transmit even a change notification, let alone to update the presence information based on status information from the publisher.
Step S3: The presence server 100 stores the received status information in the history table 9.
Step S4: The presence server 100 determines whether or not the publisher that transmitted the status update command is already allowed by the presentity. This determination is made based on whether or not the publisher ID of the publisher and the presentity ID of the presentity whose presence information is set are correlated and stored in the allow list 8a. If the publisher is already allowed, the presence server 100 proceeds to Step S5. If the publisher is not allowed, the presence server 100 proceeds to Step S7 which will be discussed later.
Step S5-S6: The presence server 100 deletes from the history table 9 an entry that is older than an entry that includes the status information from the current allowed publisher (S5). With reference to
Step S7: The presence server 100 determines whether or not a temporary update is to be performed. As discussed earlier, this determination can be made based on whether or not many of the buddies of the presentity have allowed the publisher concerned. When it is determined that the temporary update is not to be performed, the presence server 100 terminates the process. When it is determined that the temporary update is to be performed, the presence server 100 proceeds to Step S8.
Step S8: The presence server 100 changes the entry of the status information in the history table 9 to a current entry. In other words, a value of the “status” field for the new entry is changed to “setting”. Also, a value of the “status” field for the other old entry is changed to “keeping”, and a value of the “previous update” field for the original current entry is changed to “Yes”. In this way, even when the publisher is denied, entry that should be revived as a current entry can be determined.
Step S9: The presence server 100 transmits to the presentity an inquiry as to whether or not the update of presence information by the publisher is allowed.
Step S10-S11: When the status information is received from the unrecognized publisher (S4 and S7-S9), the presence server 100 generates presence information from the status information based on the rule for unrecognized publisher (S10). The generated presence information is correlated with the presentity ID and stored in the presence management table 2b (S11). If the publisher is denied by the presentity, this presence information might be set back to the value of the previous presence information. The presence server 100 further transmits the new presence information as a change notification to the watcher.
When the status information is received from the allowed publisher (S4-S6), the presence server 100 generates presence information from the status information based on the rule for allowed publisher (S10). The generated presence information is correlated with the presentity ID and stored in the presence management table 2b (S11). Further, the presence server 100 transmits a presence notify command in which the new presence information is described to the watcher.
(2) Response Process
Step S101-S102: The presence server 100 waits for a response from the presentity (S101) and the presence server 100 proceeds to Step S103 if the response is “allow” (S102). If the response is “deny”, the presence server 100 proceeds to Step S106 which will be discussed later.
Step S103-S105: The presence server 100 deletes an entry older than the entry that includes the status information from a newly allowed publisher with respect to the presentity (S103). With reference to
Step S106: The presence server 100 deletes the entry that includes the status information from a denied publisher from the history table (S106). With reference to
With the aforementioned processes (1) and (2), even when a status update command is received from a publisher that a presentity does not recognize, it is possible to notify a watcher that there has been some kind of change in the presentity's status. Also, because a change notification and an inquiry whether or not the update is allowed are transmitted in response to a part of the status update commands, it is possible to reduce the burden on a watcher and a presentity as well as the load on the presence server. Moreover, when a presentity denies a publisher, latest status information of the presentity can be set back to the status before the publisher was denied.
The presence server 100 in the first embodiment transmits an inquiry to a presentity every time a status update command is received from a publisher. A presence server 100′ in the present embodiment, on the other hand, an inquiry as to whether or not to allow or to deny a plurality of status update commands is collectively transmitted to the presentity.
<<Configuration>>
(1) Inquiry Condition Table
For example, “Default” is set for presentity “User 1”. Therefore, an inquiry is transmitted to presentity “User 1” every time a status update command is received for this presentity for a predetermined number of times that the presence server 100′ has set. Also for example, “5” is set for presentity “User 2” as the number of times before a collective notification is made. Therefore, an inquiry is transmitted to presentity “User 2” every five times that a status update commend is received for this presentity.
(2) History Table
(2-1) Configuration of History Table
For example, in an entry with operation ID “6” in the history table 9′ in
Also for example, in an entry with operation ID “7” in the history table 9′ in
(2-2) Change in History Table and Inquiry Unit
Next, the function of the inquiry unit 6′ and the change in the history table 9′ will be explained. In order to facilitate the explanation, the inquiry condition table 11 is in the state shown in
(i)
(ii)
(iii)
(iv)
(v)
(vi)
(vii)
(viii)
<<Processing>>
(1) Main Routine
Step S21: The presence server 100′ waits for the receipt of a status update command, and the presence server 100′ proceeds to Step S22 when receiving it.
Step S22: The presence server 100′ determines whether or not a publisher that has transmitted the status update command is already denied by a presentity described therein by referring to the deny list 8b. If the publisher is already denied by the presentity, the presence server 100′ ends the process.
Step S23: The presence server 100 then stores the received status information in the history table 9′.
Step S24: The presence server 100′ determines whether or not the publisher that has transmitted the status update command is already allowed by the presentity. This determination is made based on whether or not a publisher ID of the publisher and a presentity ID of the presentity to which the presence information is set are correlated and stored in the allow list 8a. If the publisher is already allowed, the presence server 100′ proceeds to Step S25. If the publisher is not allowed, the presence server 100′ proceeds to Step S27 which will be discussed later.
Step S25-S26: The presence server 100′ deletes from the history table 9′ any entry that is older than an entry that includes the status information from the current allowed publisher (S25). The presence server 100′ sets the entry that includes the status information from the current allowed publisher as a current entry (S26).
Step S27: The presence server 100′ determines whether or not the temporary update is to be performed, for example, by referring to publishers that presentities have allowed or denied. When it is determined that the temporary update is not to be performed, the presence server 100′ ends the process. When the temporary update is to be performed, the presence server 100′ proceeds to Step S28.
Step S28: The presence server 100′ changes the entry of the status information stored in the history table 9′ to a current entry. In other words, a value of the “status” field for the new entry is changed to “setting”. Also, a value of the “status” field for the entry that had previously been a current entry is changed to “keeping”, and a value of the “previous update” field therefore is changed to “Yes” (see
Step S29: The presence server 100′ determines by referring to the history table 9′ whether or not an inquiry condition for the presentity in the status update command received in the Step S21 is satisfied. If the inquiry condition is satisfied, the presence server 100′ proceeds to Step S30. Taking the aforementioned presentity “User 2” as an example, the inquiry condition is satisfied when a status update command is received five times. If the inquiry condition is not satisfied, the presence server 100′ returns to Step S21 and waits for the next status update command.
Step S30: The presence server 100′ transmits an inquiry as to whether or not the update of presence information by the publisher is allowed to the presentity.
Step S31-S32: When the status information is received from the unrecognized publisher (S24 and S27-S28), the presence server 100′ generates presence information from the status information based on the rule for unrecognized publisher (S31). The generated presence information is correlated with the presentity ID and stored in the presence management table 2b (S32). If the publisher is denied by the presentity, this presence information might be set back to the value of the previous presence information. The presence server 100′ further transmits the new presence information as a change notification to the watcher.
When the status information is received from the publisher that is already allowed (S25-S26), the presence server 100′ generates presence information from the status information based on the rule for allowed publisher (S31). The generated presence information is correlated with the presentity ID and stored in the presence management table 2b (S32). Further, the presence server 100′ transmits a presence notify command that notifies the new presence information to the watcher.
(2) Response Process
Step S201: The presence server 100′ waits for a response from the presentity and the presence server 100 proceeds to Step S202 if the response is received.
Step S202-S203: When there is an entry that includes status information from a publisher that the presentity has allowed, the presence server 100′ deletes from the history table 9′ any entry that is older than the allowed entry (S202). In addition, “Yes” is set in the “allow update” field of the allowed entry (S203).
Step S204: The presence server 100′ deletes from the history table 9′ an entry that includes status information from a publisher that the presentity has denied.
Step S205: The presence server 100′ sets “setting” in the “status” field of the latest allowed entry among the entries remaining in the history table 9′ and sets this entry as a current entry. “Keeping” is set for the “status” field of the other entries. The presence server 100′ also generates presence information based on the status information of the current entry and stores it in the presence management table 7b.
Step S206: The presence server 100′ updates the allow list 8a and the deny list 8b in the allow list DB 8 in accordance with the response.
With the aforementioned processes, a presentity is able to collectively allow or deny status update commands from a plurality of publishers that the presentity does not recognize in one configuration. Therefore, the burden on a presentity is advantageously reduced in this way compared to the case where the configuration is set every time a status update command is received. The load on the network is also reduced because inquiries from the presence server 100′ become less frequent.
(A) In the first and second embodiment, an inquiry is transmitted to a presentity as to whether or not the update of presence information by a publisher is allowed.
However, an inquiry does not necessarily have to be transmitted. For example, it is possible to accept the information as to allow/deny at an arbitrary timing from a presentity. In this case, the inquiry unit 6 transmits the information for screen shot shown in
(B) The present invention includes a computer program for causing a computer to execute the above method, and a computer readable recording medium on which such a program is recorded Examples of a computer readable recording medium include flexible disk, hard disk, CD-ROM, MO, DVD-ROM, DVD-RAM, BD (Blu-ray Disc), and semiconductor memory.
The computer program is not limited to a program recorded on the recording medium, and may also include programs transmitted across telecommunication lines, wireless or wired communication lines, or the Internet and other networks.
The present invention is widely applicable to a status management system.
While only selected embodiments have been chosen to illustrate the present invention, it will be apparent to those skilled in the art from this disclosure that various changes and modifications can be made herein without departing from the scope of the invention defined in depended claims. Furthermore, the detailed descriptions of the embodiments according to the present invention provided for illustration only, and not for the purpose of limiting the invention as defined by the present claims and specifications.
Number | Date | Country | Kind |
---|---|---|---|
2006-321283 | Nov 2006 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20020049751 | Chen et al. | Apr 2002 | A1 |
20030229687 | Ohno et al. | Dec 2003 | A1 |
20030233537 | Wohlgemuth et al. | Dec 2003 | A1 |
20040044738 | Ohno et al. | Mar 2004 | A1 |
20050021750 | Abrams | Jan 2005 | A1 |
20050216848 | Thompson et al. | Sep 2005 | A1 |
20080162510 | Baio et al. | Jul 2008 | A1 |
Number | Date | Country |
---|---|---|
2003296259 | Oct 2003 | JP |
2003316707 | Nov 2003 | JP |
200413824 | Jan 2004 | JP |
2005157603 | Jun 2005 | JP |
2005309500 | Nov 2005 | JP |
Number | Date | Country | |
---|---|---|---|
20080126360 A1 | May 2008 | US |