User should locate XML file for resource list in the directory which 'pa' is installed at and XML file name should match with SIP URI for resource list. For example, if the SIP URI is 'yb2149-buddies@seoul.clic.cs.columbia.edu', the XML file name must be 'yb2149-buddies.xml'. For this project, there is no interface to manipulate the XML file. However, the RLS will detect the change of XML file and update the information if needed. For automatic detection, user needs to turn on 'inotify' for the XML file by typing the command 'inotify' at the command line prompt in the directory which 'pa' is installed at. (Not implemented. see Future Work)
The following is the resource list with SIP URI, 'yb2149-buddies@seoul.clic.cs.columbia.edu' which represents the XML file, 'yb2149-buddies.xml'
The following picture shows how RLSes work when a user sends a SUBSCRIBE request with resource list. The resouce list has three resources. One is in the same domain (seoul.clic.cs.columbia.edu) with the local RLS resides and two are in the different domain (vienna.clic.cs.columbia.edu and delhi.clic.cs.columbia.edu). Note that we are not using an aggregating mechanism to create body of the NOTIFY request.
The resources in the list should PUBLISH first to their RLSes respectively. The list subscriber will not be notified of any information from the resource who does not PUBLISH to its RLS. After subscribing to a resource list, local RLS can notify first of the state of the resource in the same domain. For resource in the different domain, local RLS sends the SUBSCRIBE request to another RLS in the domain which the resource belongs to. After receiving NOTIFY requests from the RLSes, local RLS can notify to the list subscriber.
If the SUBSCRIBE request to resource list has the 'Expires = 0' header field, RLS makes unsubscription for the resource list. After receiving current state of the resources in the list, the subscriber will not be notified from them and the subscriptions for the resources will be removed according to the 'Subscription-State' header field in the NOTIFY request.
The requests for test are as follows:
- One risk introduced by the ability to nest resource lists is the possibility of creating lists that ultimately contain themselves as a sub-list. Implementations of RLS that creates back-end subscriptions must implement safeguards to prevent such nestings from creating an infinite loop of subscriptions.
- Can't install 'inotify' on the clic machine. If we can install the 'inotify' on the clic machine, the functionality, automatic detection, can be easily added to the RLS
Vishal K. Singh For providing guideline of the project implementation.