Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
HBX RSS Protocol Support
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
The Higgins extension uses RSS 2.0 (well, the SSE extensions to RSS 2.0) to allow a website to synchronize the state of its profile data with the profile data managed by a hosted Higgins identity agent service.
The higgins service makes available an RSS-SSE feed to the website. Using this feed the site receives updates to the user's profile data. Since we are using the SSE extensions to RSS, only the deltas (the incremental changes) are transmitted. The external site can also make available an RSS-SSE feed of its own to allow the broker to subscribe to updates made by the site. Both the broker and the site consume these RSS-SSE feeds and merge the updates they contain into their current profile state. In this way the two states are kept synchronized.
Contents
Higgins extension processing
The Higgins extension looks for an <object> tag of type "application/rss-p", within an enclosing form tag. Here is a generic example:
<form name="rss-p-test" method="post" action="url-of-action-page"> <object type="application/rss-p" name="RSS-P"> <param name="schema" value="url-of-owl-schema"/> <param name="feedURL" value="http://mysite.com/broker/feedstore-test"/> </object> </form>
Where:
- the
url-of-action-page
is the page to which the RSS feed will be posted - the value of schema
(url-of-owl-schema)
is the URL location of an owl file that describes the set of properties that the site desires - the value of feedURL is the URL location of the site's RSS feed containing changes to the user's profile information as maintained by the site.
Note: You must not include testhostname param that you may have noticed in the HTML of the Higgins server's test pages. This is only for debugging. The effect of testhostname is to override the true value of host name above to the value of the testhostname param tag.
Some notes about the feedURL parameter
There is an important constraint on the name of the site's RSS feed. The feed must have the same name as the user ID of the Higgins service's RSS feed the first time that the Higgins extension lands on a site page containing the <form> construct described above.
For example, consider a Higgins service whose user id is "dedab43-7851-417c-9558-32bc8b28f050". If this user's browser/extension lands on a site page with RSS-P <form> and <object> tags, the site will receive the following HTTP POST notification (without the linebreak after the "="!):
http://mysite.com/rsspaction?rss-p-test= <Higgins Service URL>feedstore/site/7dedab43-7851-417c-9558-32bc8b28f050.xml
Assuming that "http://mysite.com/rsspaction
" was the value of the form's action attribute. As you can see, the user's id is appended with a trailing ".xml" to create the name of the broker's feed for the site to read. When the Higgins service needs to synchronize user's information with the site it will merge its user's profile data with the contents of the feed at:
Where "http://mysite.com/higgins/feedstore-test" is the value of feedURL param from the site's <form> and <object> constructs, and the name of the feed is the user id appended with ".xml"
Calling the Higgins service
The extension parses the form and object tags describe above and issues a SOAP request to the Higgins service to obtain the RSS feed URL to post to the site. In this request to the service it passes these parameters:
- User ID - the HBX user's account
- Schema - the value of the schema parameter found within the enclosing object tag
- FeedURL -the value of the feedURL parameter found within the enclosing object tag
- Host name - host name of the website
After the extension receives the RSS URL from the Higgins service, it it does the equivalent of what would happen if a user had submitted the form. That is, the site will receive a POST to the url-of-action-page
with an RSS-P parameter whose value is the URL of the RSS channel. (The name of the RSS-P parameter is taken from the value of the name attribute of the object tag).
Debugging tip: You can review all POST/GET requests by using the LiveHTTPHeaders Firefox extension.
Higgins demo server (broker.parityinc.net) [no longer live]
The current version of the Higgins service (broker.parityinc.net) that was live for the Berkman Conference June 19-21 2006, only works with three special hard-coded values of the schema param. In the demonstration there are three separate groups of sites that each share a common schema. The specific HTML coding for each is described below.
Pages in the Identity Mashup site group should all contain the following (where "receive-bestbuy-rss.jsp" is replaced appropriately):
<form name="rss-p-test" method="post" action="receive-bestbuy-rss.jsp"> <object type="application/rss-p" name="RSS-P"> <param name="schema" value="mashup.owl"/> <param name="feedURL" value="publish-mashup-rss-url"/> </object> </form>
Pages in the Best Buy site group should all contain the following (where "receive-bestbuy-rss.jsp" is replaced appropriately):
<form name="rss-p-test" method="post" action="receive-bestbuy-rss.jsp"> <object type="application/rss-p" name="RSS-P"> <param name="schema" value="bestbuy.owl"/> <param name="feedURL" value="publish-bestbuy-rss-url"/> </object> </form>
Pages in the Identity Mashup Camp site group should all contain the following (where "receive-mashupcamp-rss.jsp" is replaced appropriately):
<form name="rss-p-test" method="post" action="receive-mashupcamp-rss.jsp"> <object type="application/rss-p" name="RSS-P"> <param name="schema" value="mashupcamp.owl"/> <param name="feedURL" value="publish-mashupcamp-rss-url"/> </object> </form>