Product Map
Generate, manage, orchestrate, and pipeline RSS Feeds.

RSSBus Feed Server

RSSBus Desktop

RSSBus Connectors


Developer Tools
Produce and consume data feeds from any application? For .NET, Java / J2EE, COM, C++, etc.:

 RSSTools Components



Categories
 
 
 


RSS 2.0 | Send mail to the author(s)

Thursday, March 27, 2008

We are excited to announce that RSSBus Feed Server has been nominated for the 2008 Great Indian Developer Awards in the Web Development category.  The RSSBus team is honored to be nominated for this award, and we are excited to be recognized across the globe for facilitating feed generation and enabling connected systems through simple services.

This nomination "highlights product excellence, research and innovation, corporate achievements, the strongest individual efforts, and the most compelling community efforts among the entire IT developer fraternity in India."  For complete details visit the 2008 Great Indian Developer Summit website - http://www.developersummit.com/awards.html

#   
Monday, March 10, 2008

Amazon recently released their new data service, known as SimpleDB, which allows one to store data in the cloud.

SimpleDB is a very simple database system which works on the basis of domain (a table), item (a row), and attributes (columns in a row).  These are very closely related to an RSSBus feed which also contains a table (the feed itself), a row (the item), and columns (attributes).

The similarity of SimpleDB and RSSBus means two things:  Feeds can be easily stored in a SimpleDB domain, and a SimpleDB domain can easily be represented as a feed.

We have created scripts illustrating both of the previously mentioned scenarios, and both of these scripts in their entirety are included as demos when you download the new SimpleDB connector.

Store a feed in a SimpleDB domain:

<!-- Retrieve the feed -->

<rsb:call op="feedGet?feed=[feedurl]" out="myout">

  <!-- Enumerate through each attribute in the feed -->

   <rsb:enum item="myout">

      <!-- Set the attribute name to be stored in the SimpleDB Database -->

         <rsb:set attr="myin.attrs:[ _attr ]" value="[ _value ]" />

   </rsb:enum>

 

  <!-- Use the GUID as the ItemName so it is always unique -->

   <rsb:set attr="myin.itemname" value="[ rss:guid ]" />

  <!-- Push the item to SimpleDB -->

   <rsb:call op="simpledbPutItem" in="myin" />

</rsb:call>


The script to create a feed from a SimpleDB domain is even easier:

<!-- Setting fetchattributes to True will automatically retrieve the attributes for each ItemName -->

<rsb:set attr="myin.fetchattributes"   value="True" />

 

<!-- Iterate through all of the items in the domain -->

<rsb:call op="simpledbGetItems" in="myin" out="myout">

  <!-- Push each Item as an RSS Item -->

  <rsb:push item="myout" />

</rsb:call>


The new SimpleDB connector makes interacting with SimpleDB incredibly easy.  Aside from the two scripts mentioned above, the new connector also has the ability to perform any and all operations on a SimpleDB, such as creating a domain, deleting a domain, adding and deleting rows, and adding and deleting attributes.

#   
Friday, March 07, 2008

We are proud to announce that RSSBus Feed Server has received the Jolt Productivity Award in the ‘Web Development Tools’ category at the 18th Annual Jolt Product Excellence Awards (www.joltawards.com).  

Jolt Awards are presented annually to products, books, and websites that have "jolted" the industry over the past year, helping create faster, easier and more efficient software.  The Jolt Product Awards recognize only the most innovative, trend-making, and ahead-of-the-curve software solutions.  Winners are selected by an esteemed panel of judges consisting of industry insiders, columnists, and technology leaders.

For more information about the 2008 Jolt Awards - http://www.joltawards.com/press/030608.htm

#   
Friday, February 01, 2008

RSSBus Feed Server is primarily an infrastructure to host simple web services. It allows one to quickly write scripts that take HTTP requests as input and produce simple feeds as a response. The extensive number of Connectors already available makes it possible to access data from many different sources. Today we will share our thoughts on some of the features that simplify the creation of service oriented architectures based on RSSBus.

Before we delve deeper into various options, let us remind ourselves of some guiding principles. We would like the solution to be simple, quick to implement, and benefit from the core promises of service oriented architectures. In doing so our solution should maintain:

  • loose coupling: making sure that a service does not depend on implementation details of another service,
  • reusability: consistent use of simple and extensible modules, patterns and formats, and
  • composability: ability to create new services by assembling composite services.  

RSSBus Connectors

RSSBus Connectors are .NET assemblies (modules) that are dynamically discovered by the RSSBus Engine upon installation. They take advantage of the .NET Framework and are extremely flexible in their capabilities. Each Connector is composed of one or more operations for accessing data from a specific data source.  Operations include only two functions, an Info function that describes the allowed inputs and outputs, and an Exec function that does the work.  The RSSBus API also allows an operation to call another operation, facilitating composability. Partitioning data access and business logic into individual operations and formally defining their service contract can help you implement new Connectors quickly in a predictable, extensible way.  RSSBus Feed Server ships with 70 Connectors to common Internet and Enterprise Data Sources, and you can easily create new Connectors using a simple API and .NET development tools (see the example in the White Paper).

RSBScript

The operations included in RSSBus Connectors are written to accept a variety of HTTP requests and host configuration inputs (for example the name of a SQL table to access or the username of a POP mailbox to read) and they can produce a rich variety of response output.  RSSBus makes it easy to configure operation inputs and outputs by wrapping those calls inside RSBScript.  Besides manipulating input and output, the script can be used to define user and role based security, manipulate response headers and data format, enhance performance with built-in caching, and more.  RSBScript allows invocation of one or more local or remote operations, and also has a number of simple control logic features.  RSBscript makes it easy for an administrator publishing the services to make the deployment decisions, while relying on developers to build core data access functionality within the Connectors.

RSBScript can also call other programming languages for implementation of more extensive business logic. RSSBus currently supports Python, Tcl, VBscript, Jscript and PowerShell, through an extensible API that allows easy creation of plug-ins for other languages.

RSSTools and Client Side Processing

Though RSS feeds can be consumed by RSS readers, email clients, and browsers; feeds generated with RSSBus also have data points that other programs can use. The format of data feeds generated by RSSBus is very simple, and most programming languages with basic XML libraries can easily work with them. To make this even easier we supply a set of tools for common development technologies. The ability to compute with feeds on the client side makes it possible to publish services that are suitable for a broader audience.

In addition to facilitating client side processing of feeds, RSSBus can alter the service response using RSSBus Feed Formatters. It is a simple matter to present the response of a service as HTML, CSV (comma-separated values), ATOM, JSON, etc, using existing feed formatters.  These formatters can be used by supplying parameters like (@json, @html, @csv) in the HTTP request. Moreover, extensibility via the Feed Formatter API makes it possible to expand the existing set of response formats.

To summarize: what we have laid out in this post are some of the options RSSBus offers to move towards a more service oriented architecture. The benefits of SOA are well known, and we hope we can help reduce the costs and accelerating uptake of SOA.  There will be more details in future posts.

#   
Friday, January 11, 2008

The API's on the web have simplified in the recent past. There are more REST-centric APIs in the public domain than ever before. Various services from Google and Amazon are a good example. Apart from being RESTful these services have a simple XML based response format. The xmlHttp operation, included in XmlOps, makes it easy to access such services and represent their results as RSS, HTML, an Excel spreadsheet, or any other output format supported by RSSBus.

Today we show an example of using xmlHttp to access the Amazon ECS service. The XmlOps connector includes this script as a demo.

<!-- Amazon Books Feed -->
<
rsb:info title="Amazon Book Search"
 
description="Use the Amazon web-services API to search for a book.">
  <
input name="query" req="true" desc="The search text." 
       
default="Harry Potter" />
</
rsb:info>
   

<!--
Create the input URL -->
<
rsb:set attr="in.url" value="http://webservices.amazon.com/onca/xml"/>
<
rsb:set attr="in.url" value="[in.url]?Service=AWSECommerceService"/>
<
rsb:set attr="in.url" value="[in.url]&SubscriptionId=0E8MHMPRK05NWG9AJ8G2"/>
<
rsb:set attr="in.url" value="[in.url]&Operation=ItemSearch"/>
<
rsb:set attr="in.url" value="[in.url]&SearchIndex=Books"/>
<
rsb:set attr="in.url" value="[in.url]&ResponseGroup=Large"/>
<
rsb:set attr="in.url" value="[in.url]&Title=[query | urlencode ]"/>
      
<!--
  Specify the item XPath. An item is pushed each time this path is

  encountered in the XML response.

-->

<
rsb:set attr="in.item" value="/ItemSearchResponse/Items/Item"/>
   
<!-- Specify the XPath of the attributes to be pushed in an item. -->
<
rsb:set attr="in.attr#" value="ASIN"/>
<
rsb:set attr="in.attr#" value="DetailPageURL"/>
<
rsb:set attr="in.attr#" value="MediumImage/URL"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/Title"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/Author"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/NumberOfPages"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/ISBN"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/PublicationDate"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/Publisher"/>
<
rsb:set attr="in.attr#" value="ItemAttributes/ReadingLevel"/>
<
rsb:set attr="in.attr#"
       
value="ItemAttributes/ListPrice/FormattedPrice"/>
      

<!--
Use xmlHttp to get the results  -->
<
rsb:call op="xmlHttp" in="in" out="output" >
  <
rsb:set attr="rss:link" value="[DetailPageURL]"/>
  <
rsb:set attr="rss:guid" value="[ASIN]"/>
  <
rsb:push title="[Title]">
    <
a href="[DetailPageURL]">
      <
img src="[URL]" alt="[Title]"/>
    </
a> <br/>
    Author: [Author | implode(',') ]
<br/>
    Pages: [NumberOfPages | def('Unknown')]
<br/>
    Price: [FormattedPrice | def('Unknown')]
<br/>
    ISBN: [ISBN | def('Unknown')]
<br/>
    Publication Date: [PublicationDate | def('Unknown')]
<br/>
    Publisher: [Publisher | def('Unknown')]
<br/>
    Reading Level: [ReadingLevel | def('Unknown')]
<br/>
    <
hr>
    </
rsb:push>
</
rsb:call>

In this template we use xmlHttp to call the Amazon ECS service and parse the response. We first create the request URL by appending query string parameters, and then specify the "item" and "attr#" parameters to parse the response. XmlHttp uses the Xpath notation to specify locations of interest in the response XML. The "item" xpath specifies the xpath for an item (an item is produced in the resulting feed each time this xpath is seen), and the "attr#" specify the attributes that should be present in the items of the resulting feed. The names of the attributes in the item are the same as the name of the XML elements in the response. This can be changed by using the map input parameter. The xmlHttp operation also allows you to specify the HTTP method (GET, PUT, POST and DELETE), pick a file to post, and specify HTTP headers, among other things needed to use simple XML API's.


Downloads: XmlOps

#   
Friday, January 04, 2008

jolt.jpgWe are proud to announce that RSSBus Feed Server has been nominated as a finalist for the upcoming 18th Annual Jolt Product Excellence Awards (www.joltawards.com) in the ‘Web Development Tools’ category.   The Jolt awards is widely considered the “Oscar's of the software industry”, recognizing only the most innovative, trend-making, and ahead-of-the-curve software solutions.  The entire RSSBus team feels honored to be considered for this highly prestigious industry award.
 
Stay tuned, winners will be announced March 5 at SDWest in Santa Clara, CA.

#   
Thursday, December 20, 2007

The RSSBus Admin Console makes it easy to browse through connectors, try available operations, and create feeds using operations. It has a wizard that walks you through the process of creating and publishing a feed from an operation in just a few clicks. While the wizard helps you create a basic feed, it doesn't come close to harnessing the capabilities of RSBScript. Using RSBScript you can customize and change every aspect of the feed declaratively. In this article, will discuss a few popular customizations.

Changing the title and description of the feed:

The title and description of a feed are derived from the title and description defined in the operation's metadata and can be easily modified in script. For example, the following snippet would change the title and description in the channel of the feed.

<rsb:info title="Customer List" desc="List of new customers">

Adding other attributes to the channel:

The channel of a feed is represented by the _meta item. To add an attribute to the channel, simply add the attribute to _meta item of the feed. For this to be effective, you need to add the attribute to _meta before the first item is pushed.

<rsb:set attr="_meta.rss:webmaster" value="me@my.com"/>
<
rsb:call op="fileListDir">
  <
rsb:push/>
</
rsb:call>

Changing the title and description of the feed items:

The title and description of each item in a feed can be modified by using the <rsb:push> keyword. The title can be modified by changing the title parameter of the push keyword, and the description can be modified by changing its contents. Note that you can freely use template substitution to compose the description of each item.

<rsb:push title="[message]">
  [paypal:payername] made a purchase for the amount of [paypal:netamount]
  Content produced by <a href="http://www.nsoftware.com">RSSBus</a>.
</
rsb:push>

Removing an attribute from the feed items:

Normally, a feed generated by the Feed Creation Wizard will push all the attributes produced by the underlying operation to the output stream. To remove attributes from the feed simply unset them. For example, the following snippet removes the file:mtime and file:atime from a file listing.

<rsb:call op="fileListDir">
  <
rsb:unset attr="_.file:mtime"/>
  <
rsb:unset attr="_.file:atime"/>
  <
rsb:push/>
</
rsb:call>

Adding an attribute to the feed items:

To add an attribute to all the items of a feed simply add it to the item being worked on. For example, the following snippet adds an author attribute to each item.

<rsb:call op="sqliteQuery">
  <
rsb:set attr="_.author" value="me@my.com"/>
  <
rsb:push/>
</
rsb:call>

Pushing items that satisfy a certain criterion:

To filter items produced by an operation you can use any of the conditional keywords (rsb:select, rsb:check, rsb:equals etc.) in RSBScript. For example, the following snippet will create a feed containing just the directories and no files.

<rsb:call op="fileListDir">
  <
rsb:equals attr="file:isdir" value="true">
    <
rsb:push />
  </
rsb:equals>
</
rsb:call>


While we have shown some of the more common customizations, there is more that can be done using RSBScript. Please look at the Scripting section of the user's guide for more details.

#   
Tuesday, December 18, 2007

We are happy to announce that RSSBus Desktop V1 has received the official 'thumbs-up' from our QA team and is now available for download.  RSSBus Desktop is a FREE, full-featured version of RSSBus designed for individual Desktop use.

RSSBus Desktop enables users to harness the integration potential of RSSBus Connectors directly from the Windows desktop.  With RSSBus Desktop, users can create and configure local RSS feeds for individual consumption, aggregate and manipulate external feeds, process and pipeline items, and much more.  In addition, RSSBus Desktop provides an excellent platform for testing and configuring feeds before deployment to RSSBus Feed Server.

Once again we would like to thank the countless testers who have provided us with their valuable feedback throughout the RSSBus Desktop Betas. 

To download the RSSBus Desktop V1 release, go to - http://www.rssbus.com/download/

#