<docbook><section><title>VirtODSPubSubHub</title><para> </para>
<title> Setting up PubSubHub in ODS</title> Setting up PubSubHub in ODS
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Introduction</bridgehead>
<para>PubSubHub (PSH) setup consists of two steps:</para>
<orderedlist spacing="compact"><listitem>Set up the ODS server.
</listitem>
<listitem>Configure applications to publish to hub.</listitem>
</orderedlist><para>These steps are detailed below.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2">Prerequisites</bridgehead>
<para>The following packages should be installed:</para>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="https://virtuoso.openlinksw.com/download/">ods_framework_dav.vad</ulink> </listitem>
<listitem><ulink url="https://virtuoso.openlinksw.com/download/">pubsubhub_dav.vad</ulink> </listitem>
<listitem><ulink url="https://virtuoso.openlinksw.com/download/">ods_blog_dav.vad</ulink> </listitem>
<listitem><ulink url="https://virtuoso.openlinksw.com/download/">ods_feedmanager_dav.vad</ulink></listitem>
</itemizedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2"> Set up the ODS server</bridgehead>
<para>PSH setup on the ODS Server takes two steps, performed while logged in as the dav WebDAV System Administrator user, through the <emphasis>Site Settings</emphasis> link of ODS UI:</para>
<orderedlist spacing="compact"><listitem>In the <emphasis>Feed Instances with Admin Rights</emphasis> section , specify the PSH endpoint.
 This setting tells applications what to report for PSH auto-discovery: <figure><graphic fileref="VirtODSPubSubHub/step1.png" /></figure> </listitem>
<listitem>The <emphasis>Notification Services</emphasis> UI is used to set up the PSH publish service endpoint, to which ODS users can point their applications: <figure><graphic fileref="VirtODSPubSubHub/step2.png" /></figure> <itemizedlist mark="bullet" spacing="compact"><listitem>Enter for Endpoint: <emphasis>http://&lt;host&gt;:&lt;port&gt;/psh/</emphasis> (modified for your instance, e.g., <emphasis>http://myhost.example.com:8889/psh/</emphasis>) </listitem>
<listitem>Enter for Notification Service: <emphasis>PubSubHub</emphasis> </listitem>
<listitem>Select Protocol: <emphasis>PubSubHub</emphasis></listitem>
</itemizedlist></listitem>
</orderedlist><para> ODS applications can now be configured to publish messages to the PSH endpoint.</para>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Configure an ODS application to publish via PSH</bridgehead>
<orderedlist spacing="compact"><listitem>Log in as the <emphasis>dav</emphasis> user.
</listitem>
<listitem>Go to <emphasis>ODS</emphasis> -&gt; <emphasis>Application Settings</emphasis> -&gt; <emphasis>Application Notifications</emphasis> </listitem>
<listitem>Select the default &#39;dav&#39; blog from the top menu, and highlight the <emphasis><ulink url="PubSubHub">PubSubHub</ulink></emphasis> Notification Service.
 (You may command-click to select multiple notification targets.) <figure><graphic fileref="VirtODSPubSubHub/step3.png" /></figure> </listitem>
<listitem>Click <emphasis>Add</emphasis> to make your setting take effect.</listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2"> Test the setup using ODS-Feed Manager and basic PSH Subscription UI</bridgehead>
<para>For our test, we use ODS-Weblog as publisher and ODS-Feed Manager as subscriber.</para>
<para>First, in ODS-Feed Manager we subscribe to the rss feed: </para>
<orderedlist spacing="compact"><listitem>Log in as a normal user, e.g., <emphasis>demo</emphasis> </listitem>
<listitem>Go to the Feed Manager application.
</listitem>
<listitem>Go to <emphasis>Administration</emphasis> -&gt; <emphasis>Feeds</emphasis> and click <emphasis>Subscribe</emphasis>.
<figure><graphic fileref="VirtODSPubSubHub/p1.png" /></figure> </listitem>
<listitem>Select <emphasis>From URL...</emphasis> and click <emphasis>Next</emphasis>.
</listitem>
<listitem>In <emphasis>From URL (RSS/Atom/OPML/OCS/SIOC ...)</emphasis> field, enter the Weblog Feed URL, e.g., <programlisting>http://myhost.example.com/weblog/dav/dav-blog-0/gems/rss.xml
</programlisting><figure><graphic fileref="VirtODSPubSubHub/p2.png" /></figure> </listitem>
<listitem>Click <emphasis>Subscribe</emphasis> <figure><graphic fileref="VirtODSPubSubHub/p3.png" /></figure> </listitem>
<listitem>The PSH Server value will be shown, and <emphasis><ulink url="PubSubHub">PubSubHub</ulink> Enable</emphasis> will be checked.
 Click <emphasis>Subscribe</emphasis> again.
<figure><graphic fileref="VirtODSPubSubHub/p4.png" /></figure></listitem>
</orderedlist><para>Now, we publish something on the &#39;dav&#39; weblog: <figure><graphic fileref="VirtODSPubSubHub/p5.png" /></figure></para>
<para>Notification is made to the PSH endpoint, and the Feed Manager is notified to update its subscription content.
<figure><graphic fileref="VirtODSPubSubHub/p6.png" /></figure></para>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="VirtPubSubHub">PubSubHubbub Demo Client Example</ulink> </listitem>
<listitem><ulink url="VirtFeedPubSubHub">Example feed subscription via PubSubHub Protocol</ulink> </listitem>
<listitem><ulink url="VirtPubSubHubACL">Setting Up PubSubHub to use WebID Protocol- or IP-based control lists</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLEndpointProtection">Safeguarding your Virtuoso-hosted SPARQL Endpoint</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuideSPARQLEndpointProtection">SPARQL Endpoint Protection Methods Collection</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/">Virtuoso documentation</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpoint">SPARQL Service Endpoint</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri">Service Endpoint Security</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#sparqwebservicetbl">Managing a SPARQL Web Service Endpoint</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html">SPARQL</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuide">Virtuoso Tips and Tricks Collection</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLDET">SPARQL Endpoint DET Configuration Guide</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSecurityWebID">WebID Protocol &amp; SPARQL Endpoint ACLs Tutorial</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtOAuthSPARQL">SPARQL OAuth Tutorial</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuideSPARQLEndpoints">Securing SPARQL endpoints</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="OdsSPARQLAuth">SPARUL over SPARQL using the http://cname:port/sparql-auth endpoint</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAuthServerUI">Virtuoso Authentication Server UI</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSSL">Manage a SPARQL-WebID based Endpoint</ulink> </listitem>
<listitem><ulink url="VirtODSSecurityWebID">WebID Protocol Support in OpenLink Data Spaces</ulink>.
</listitem>
<listitem>Manage ODS Datadspaces Objects <ulink url="WebID">WebID</ulink> Access Control Lists (ACLs): <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBriefcaseWebID">ODS Briefcase WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBriefcaseWebIDPerson">Person Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="ODSBriefcaseWebIDGroup">Group Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="ODSBriefcaseWebIDPublic">Public WebID based ACL Guide</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSFeedManagerWebIDACL">ODS Feed Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSFeedManagerWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSFeedManagerWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSFeedManagerWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSCalendarWebIDACL">ODS Calendar WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSCalendarWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSCalendarWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSCalendarWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSBookmarksWebIDACL">ODS Bookmark Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBookmarksWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSBookmarksWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSBookmarksWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSAddressBookWebIDACL">ODS Addressbook  WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSAddressBookWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSAddressBookWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSAddressBookWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSPkiSetup">Guide for Set up a X.509 certificate issuer and HTTPS listener and generate ODS user certificates</ulink> </listitem>
<listitem><ulink url="ODSSetupSSL">Configure Virtuoso+ODS instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSetupSSL">Configure Virtuoso instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem>
<listitem><ulink url="OdsKeyImport">CA Keys Import using Conductor</ulink> </listitem>
<listitem><ulink url="ODSGenerateX509Certificate">Generate an X.509 Certificate hosted WebID Guide</ulink> </listitem>
<listitem><ulink url="ODSGenerateWebIDX509CertOSKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by host operating system keystore</ulink> </listitem>
<listitem><ulink url="ODSGenerateWebIDX509CertBrsKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by a browser-based keystore</ulink> </listitem>
<listitem><ulink url="ODSWebIDIdP">Using Virtuoso&#39;s WebID Verification Proxy Service with a WebID-bearing X.509 certificate</ulink> </listitem>
<listitem><ulink url="ODSWebIDIdpProxy">Using Virtuoso&#39;s WebID Identity Provider (IdP) Proxy Service with an X.509 certificate</ulink> </listitem>
<listitem><ulink url="ODSBriefcaseWebIDShareFile">ODS Briefcase WebID Protocol Share File Guide</ulink> </listitem>
<listitem><ulink url="http://esw.w3.org/topic/foaf+ssl">WebID Protocol Specification</ulink> </listitem>
<listitem><ulink url="https://foaf.me/simpleLogin.php">Test WebID Protocol Certificate page</ulink> </listitem>
<listitem><ulink url="http://test.foafssl.org/cert/">WebID Protocol Certificate Generation page</ulink> </listitem>
</itemizedlist></section></docbook>