Syndication architecture

Syndication

One of Ontoserver's key features is support for content syndication.

The Syndication Interface is based on the Atom Publishing Protocol and Atom Syndication Format specifications. The NCTS Conformant Server Applications specification’s Syndication Feed section describes the elements in the feed.

In the case where a FHIR Resoure feed entry is particularly large and is known to be valid, the namespaced (xmlns:onto="http://ontoserver.csiro.au/syndication/") attribute onto:validated=true can be added to the link element along with the ncts:sha256Hash attribute and validation will be skipped when the entry is added (SHA256 validation is still performed).

Ontoserver instances can be configured to point to any number of upstream syndication feeds. Using the Syndication API, Ontoserver can then find and download supported FHIR Resource types as well as SNOMED CT and LOINC code systems.

Since Ontoserver 6.2, FHIR Packages are supported as a content type. When Ontoserver imports a FHIR Package, it imports all the supported FHIR Resources in the top-level /package folder that are not already present. This approach follows the intent of the FHIR package format.

Preload

Ontoserver also supports preload syndication feeds, where the content of one or more syndication feeds is imported when the server is started or restarted. While one use-case is to support starting with a pre-defined content-set, it is also the mechanism used to populate a read-only Ontoserver instance.

Multiple preload URLs can be specified with the atom.preload.feedLocation property, and when the preload process is triggered Ontoserver will import the union of entries in the feeds. If the instance already contains items in the feed they will be skipped.

This process may also be triggered on a running Ontoserver instance without a restart. This is particularly useful if the preload feed content has changed, so that new content can be pulled into the Ontoserver instance without interruptions.

Preload configuration details can be found here.

Scheduled preload

Preloading can be scheduled using a cron syntax to specify the schedule on the atom.preload.schedule.cron property. This is useful if a read-only Ontoserver instance is connected to a read/write Ontoserver instance using a continuous delivery model. The read-only Ontoserver instance can be configured to regularly pull newly available content from the read/write server’s syndication feed which can have content promoted to it as it becomes available.