Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

HBX RSS Protocol Support

The Higgins extension has support for the RSS-P protocol. RSS-P is a specific way to use RSS 2.0 (well, the SSE extensions to RSS 2.0) to allow an external site to synchronize the state of its profile data with the profile data managed by a web service called the Higgins i-card broker, or broker for short.

The broker makes available an RSS-P feed to the external site. 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-P 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-P feeds and merge the updates they contain into their current profile state. In this way the two states are kept synchronized.


Higgins extension processing

Using a browser equipped with the Higgins extension (aka HBX), 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.

WARNING: 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.


The RSS-P feed at feedURL

There is an important constraint on the name of the site's RSS-P feed. The feed must have the same name as the user ID of the broker'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 broker whose user id is "dedab43-7851-417c-9558-32bc8b28f050". If this user's browser + Higgins 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=
     http://broker.parityinc.net/pip/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 broker needs to synchronize user's information with the site it will merge its user's profile data with the contents of the feed at:

http://mysite.com/broker/feedstore-test/7dedab43-7851-417c-9558-32bc8b28f050.xml

Where "http://mysite.com/broker/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"


The Higgins extension and the broker

The Higgins extension parses the form and object tags and then issues a SOAP request to the broker to obtain the RSS-P feed URL to post to the site. In this request it passes these parameters:

  1. User ID - the HBX user's account
  2. Schema - the value of the schema parameter found within the enclosing object tag
  3. FeedURL -the value of the feedURL parameter found within the enclosing object tag
  4. Host name - host name of the Relying Party Agent site

After the Higgins extension receives the RSS-P URL from the broker, it it performs 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-P 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 i-card broker demo server (broker.parityinc.net)

The current version of the Higgins-based server (broker.parityinc.net) that will be live for the Berkman Conference June 19-21 and thereafter, 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>

Copyright © Eclipse Foundation, Inc. All Rights Reserved.