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

Difference between revisions of "HBX RSS Protocol Support"

m (HBX RSS-P Protocol Support moved to HBX RSS Protocol Support)
Line 1: Line 1:
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 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 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.
+
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.
  
 
+
===Higgins extension processing===
==Higgins extension processing==
+
Using a browser with the Higgins extension (aka HBX) installed, the Higgins extension looks for an <object> tag of type "application/rss-p", within an enclosing form tag. Here is a generic example:
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">
 
     <form name="rss-p-test" method="post" action="url-of-action-page">
Line 13: Line 12:
 
       </object>
 
       </object>
 
     </form>  
 
     </form>  
 
  
 
Where:
 
Where:
Line 23: Line 21:
  
  
==The RSS-P feed at ''feedURL''==
+
===The RSS 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.
+
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 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 "="!):
+
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=
+
      http://broker.parityinc.net/pip/feedstore/site/7dedab43-7851-417c-9558-32bc8b28f050.xml
+
  
Assuming that "<code>http://mysite.com/rsspaction</code>" 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/rsspaction?rss-p-test=
 +
      <Higgins Service URL>feedstore/site/7dedab43-7851-417c-9558-32bc8b28f050.xml
  
:<code>http://mysite.com/broker/feedstore-test/7dedab43-7851-417c-9558-32bc8b28f050.xml</code>
+
Assuming that "<code>http://mysite.com/rsspaction</code>" 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/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"
+
:<code>http://mysite.com/higgins/feedstore-test/7dedab43-7851-417c-9558-32bc8b28f050.xml</code>
  
 +
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"
  
==The Higgins extension and the broker==
+
===The Higgins extension and the Higgins service===
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:
+
The Higgins extension parses the form and object tags and then issues a SOAP request to the Higgins service to obtain the RSS-P feed URL to post to the site. In this request it passes these parameters:
  
 
# User ID - the HBX user's account
 
# User ID - the HBX user's account
 
# Schema - the value of the ''schema'' parameter found within the enclosing object tag
 
# 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
 
# FeedURL -the value of the ''feedURL'' parameter found within the enclosing object tag
# Host name - host name of the Relying Party Agent site
+
# Host name - host name of the website
  
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 <code>url-of-action-page</code> 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).
+
After the Higgins extension receives the RSS 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 <code>url-of-action-page</code> 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 [http://livehttpheaders.mozdev.org/ LiveHTTPHeaders] Firefox extension.
 
''Debugging tip:'' You can review all POST/GET requests by using the [http://livehttpheaders.mozdev.org/ LiveHTTPHeaders] Firefox extension.
  
  
==Higgins i-card broker demo server (broker.parityinc.net)==
+
==Higgins 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.
+
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):
 
Pages in the '''Identity Mashup''' site group should all contain the following (where "receive-bestbuy-rss.jsp" is replaced appropriately):

Revision as of 13:03, 10 February 2007

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.

Higgins extension processing

Using a browser with the Higgins extension (aka HBX) installed, 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 feed at feedURL

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:

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

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"

The Higgins extension and the Higgins service

The Higgins extension parses the form and object tags and then issues a SOAP request to the Higgins service 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 website

After the Higgins extension receives the RSS 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 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)

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>

Back to the top