The following is a very quick overview of the RSSBus concepts and architecture. For a more detailed discussion
of the subject, please refer to the RSSBus Whitepaper.
RSSBus is a Really Simple Service Bus that uses the RSS protocol as the main interchange
mechanism. RSS is an extensible protocol used to exchange Feeds of Items. Normally these are news items or blog postings,
but they don't have to be: RSS Feeds may be augmented through standard RSS extensions to exchange any type of data.
RSSBus is a collection of tools and services that simplify the process of creating RSS Feeds with rich data extensions.
Feeds are generated from RSSBus Connectors, reusable code modules that convert data into feeds.
They do so by communicating with RSSBus over defined interfaces (the User Guide has details on building custom connectors).
RSSBus provides an infrastructure for generating, maintaining, combining, manipulating, and visualizing Feeds. Items and Feeds
are orchestrated by the RSSBus Engine and together help create a loosely integrated application architecture which we like to refer to as
RSS Web.
Items & Feeds
RSS Items are simple collections of attribute-value pairs. Some of them, like title and description, are
defined by the RSS namespace.
Other attributes can be added through RSS extensions and associated with other
namespaces.
<item>
<title>A record for John Doe</title>
<custom:name>John Doe</custom:name>
<custom:address>100 Main St.</custom:address>
...
</item>
A list of items constitutes a feed, which is just the storage and transport construct for a collection of items. The items
can have the same structure, similar structures, or different structures (with the first option being the most prevalent one and
the easiest to compute with).
<rss>
...
<item>
<custom:name>John Doe</custom:name>
<custom:address>100 Main St.</custom:address>
...
</item>
<item>
<custom:name>Jane Doe</custom:name>
<custom:address>100 Main St.</custom:address>
...
</item>
</rss>
The important thing to note here is that the feed structure is simple: it is a just a list of items. RSSBus defines
an architecture based on Operations that take Items as input, and produce Feeds as output.
RSSBus Connectors
RSSBus Connectors are libraries that implement one or more related RSSBus Operations. Operations are sources of Feeds that convert data of various formats into Feeds.
RSSBus comes prepackaged with an extensible set of connector
libraries , and the programming interface is simple and fully open so you can easily
add your own custom connectors.
The input to an operation is an Item, represented as a set of parameters, or attributes, normally
provided through standard HTTP mechanisms such as the URL query string and/or form
(www-urlencoded) POST data. The operation generates a Feed based on values provided in the input Item.
Each operation is configured to receive input at one or more web locations (HTTP
endpoints). The RSSBus Engine is responsible for reading the HTTP input, converting
it into a form suitable for operation input, passing the input to the operation,
invoking the operation logic, and then formatting (or serializing) the result as a Feed.
The connectors that come installed with RSSBus can be called as is,
or combined with your own logic (using a script) to produce feeds.
Scripts
The data from RSSBus Connectors is exposed on the web as a service using RSBScripts.
RSBScripts in their simplest form access RSSBus Connectors and present their output through a well defined URL. In addition they
have the ability to wire data from different sources, applications, and platforms; thus enabling processing,
extraction, and publication of the desired information from a wide variety of sources.
More specifically, RSBScript is a simple XML-based (easily accessible to a wide variety of tools) scripting language (no compilation)
with high level constructs (more accessible to non-programmers)
designed to work with RSS Items and Feeds. It has constructs, called keywords, that allow you to fetch (rsb:call),
modify (rsb:set) and publish (rsb:push) feeds.
Templates
RSS feeds serve as an excellent mechanism to exchange data in a form readable by machines. But, they fall short
at the last step where a person is the final consumer. There are solutions such as feature rich feed readers, XSLT transform,
CSS, etc. which are great tools that partly address this problem.
But what we offer is something more broad: the ability to transform feed data into a variety of formats such as Word document,
Excel spreadsheet, HTML page or a source code file (we actually do this internally), or other formats that we aren't even aware of.
This is the need fulfilled by RSBTemplates.