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.
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 | + | 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 | + | 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 | + | |
<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 | + | ===The RSS feed at ''feedURL''=== |
− | There is an important constraint on the name of the site's RSS | + | 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 | + | 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 "<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: | |
− | + | :<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 | + | ===The Higgins extension and the Higgins service=== |
− | The Higgins extension parses the form and object tags and then issues a SOAP request to the | + | 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 | + | # Host name - host name of the website |
− | After the Higgins extension receives the RSS | + | 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 | + | ==Higgins demo server (broker.parityinc.net)== |
− | The current version of the Higgins | + | 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.
Contents
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:
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:
- 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 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>