|
|
Frequently Asked Questions
General
Q: What is RSSBus?
RSSBus is a suite of data connectors and web server products for building Simple Services from enterprise and internet information sources.
Power users can combine Simple Services to filter, move and merge information. Business users can call Simple Services directly from browsers, portals and Excel without custom client development.
The low learning curve and low cost of RSSBus Simple Services will jump-start your service oriented architecture, while the built-in SOAP support will leverage and extend any prior SOA investment.
Q: What can you do with RSSBus? / Who can use RSSBus?
Business users can:
- Use Simple Services from any client that can call URLs, including browsers, portals, Excel and office applications.
Power users can define Simple Services to:
- Generate RSS feeds, spreadsheets and web pages from any data source.
- Convert any data source to ATOM, SOAP, CSS, XLS, HTML, and more.
- Transfer data between different kinds of data sources.
- Build enterprise and internet mashups that combine data from multiple sources.
- Convert existing SOAP and REST services to Simple Services.
Programmers can also:
- Call Simple Services from any programming language.
- Call any RSSBus Simple Service or connector using SOAP.
- Create new reusable Simple Service data connectors.
- Create new Simple Service output formatters.
Q: What are Simple Services?
RSSBus Simple Services are like regular web services, but they use consistent input and output formats that are easy to parse and process.
Requests are standard URL's with query strings or post data, like this:
http://myserver/getContacts?city=Chicago
And responses are name-value item lists, like this:
Title - My Contacts
Item
Firstname - Bob
Lastname - Smith
Phone - 123-3445
City - Chicago
End Item
Item
Firstname - Suzie
Lastname - Jones
Phone - 345-5567
City - Chicago
End Item
. . .
Simple Services also accept lists as input, so it's easy to chain services together.
Q: Why is simple better?
Simpler interface standards mean simpler deployment, simpler integration, and simpler extension.
With RSSBus, you can easily
- combine output from several services into "mashups",
- pipe the output of one service to the input of another,
- call services directly from browsers, portals, and office applications,
- add new data sources to applications and mashups,
- add new data fields to services without impacting existing callers.
Q: What do you mean by "flattening the information landscape"?
The RSSBus connector library hides the complexity of backend data sources from service definers and consumers. All connectors use list input and output so all information sources look and behave the same. You can read more about data flattening in Flattening the Information Landscape.
Architecture
Q: Does RSSBus interoperate with PHP, EJB, ASP.Net, Ruby, etc?
You can invoke RSSBus Simple Services from any language or platform. Services are called with regular URLS (http://myServer.net/getcontact?name=smith) and the results come back in a choice of formats that are easy to display and parse. Programmers can optionally use RSSBus Connect (see below) to further simplify the call process, or to turn existing programs into RSSBus Simple Services.
Q: What exactly do RSSBus Simple Services return? / What is a formatter?
RSSBus Simple Services can return several standard list-based formats, including:
| RSS2.0 - |
XML list of 'items' which are name-value tables as above |
| ATOM - |
Another common format of lists of names and values |
| XLS - |
Interactive spreadsheet with embedded request and response |
| CSV - |
Comma separated values |
| JSON - |
Names and values as JavaScript variables |
| HTML - |
Data formatted into a web page, you supply the page template |
| SOAP - |
For compatibility with SOAP-based services |
Every RSSBus service can return any of these formats by appending a format specification to the end of the call URL, like this:
http://myserver/getContacts?city=Chicago&@xls
Q: What is a service definition?
A service definition is a text file that defines a Simple Service. The service definition specifies the service URL, the service inputs and their defaults, the connector configuration and call, and optional result processing. In RSSBus, the connectors (described below) implement the details of information access, and the service definitions implement your business requirements. See the RSBScript Quick Start Guide and tutorials page for examples of service definitions.
Q: What is a connector?
RSSBus provides dozens of reusable information source connectors that you can use when defining services. You don't have to write code to use these connectors; you simply configure a service definition that will invoke the ready-to-use connector for you.
There are connectors for database access, cloud computing, financial and shipping services, and more. Each connector hides the complexity of the information source behind it, so all connectors behave the same way, with a list of name-value pairs for input, and lists of name-value pairs for output. See the connector library for available connectors, and see Flattening the Information Landscape, for a whitepaper about simplified information access.
Q: How do you call Simple Services?
Calls are standard URL's with query strings or post data, like this:
http://myserver/getContacts?city=Chicago
Q: How do you combine Simple Services?
Connectors and Simple Services use consistent input and output formats so it's easy to combine them to create more advanced functions. For example a single service can call more than one data connector, and then combine, filter or pipe the results. Multiple services can call each other on the same server, or call from one server to another. Service definitions can contain loops and if statements to implement simple logic and branching. You can call Simple Services from any application, or create your own custom service processing in service definitions or custom connectors. See the RSBScript Quick Start Guide and tutorials page for examples of combining services.
Q: Why don't you just use SOAP?
We support SOAP for compatibility, but it's not the simplest format, and we're trying to be really simple.
SOAP is based on the remote procedure call model, where players agree on fixed message formats (the WSDL's), and register them in a common message repository (the UDDI). Up-front agreement sounds good in principle, but in practice this creates n-way dependencies between the applications, so extending a SOAP message for a new app can break existing apps.
Note also that SOAP requires tool support to find and read the WSDLs, and application code to assemble and parse the SOAP message envelopes. You'll need message directories, message architects, SOAP programmers, and in some cases, more patient users.
In comparison RSSBus has much lower overhead and complexity. With RSSBus the responder just sends the available data (or data allowed by security configuration) and the requestor looks through the name-value pairs for what he needs. And anyone can configure and call RSSBus services right from their browser or portal.
Q: What about REST?
Simple Services are more like REST than SOAP, but we do allow writes via GET URLs when needed. We do support all four HTTP methods (GET, POST, PUT, and DELETE) for those cases when you need to strictly enforce the REST conventions. RSSBus services can call REST-based services as well. See an example of calling REST services in the tutorials, and a REST compliant service definition in the demos/ directory that comes with the kit.
Q: What about security?
RSSBus Server builds on top of security features of IIS and ASP.NET, providing authentication and authorization at the user and group level, and full SSL encryption support. Please see the chapter on RSSBus Security in the RSSBus Server User's Guide, shipped with RSSBus Server, for more details.
Deployment
Q: How do you create a Simple Service?
First you identify the information that you want to serve and the read and write operations that you want to support. Use the RSSBus Admin Console to browse for the appropriate connector in your local connector library, or visit the RSSBus web site to download more connectors. Use the Admin Console to test and configure the connector against your information source, invoke the service definition wizard, and move the resulting definition file into place. See the RSBScript Quick Start Guide for more on this process.
Q: How well does it scale?
Response time and throughput for Simple Services is pretty much determined by the connected information source -- database, file system, remote API service, etc. RSSBus adds very little overhead itself.
For example, a Simple Service calling a local SQL db delivered 10,000 to 35,000 requests per minute, but a service making three Amazon searches delivered around one hundred requests per minute. RSSBus includes caching features that are particularly helpful for slower data sources, improving throughput for the database case by 150% and for Amazon 500%. For these tests RSSBus was running on an AMD Athlon 64 2.4 Ghz Dual Core with 3GB RAM.
Q: What is RSBScript?
RSBScript is used to define Simple Services. This XML scripting facility includes statements for setting input values and defaults, calling operations, and processing the results via an output loop. RSBScript also includes some basic flow control statements like if-else and error trapping. You can see sample RSBScripts on the tutorials page, and learn how to write them in the RSBScript Quick Start Guide.
Q: What is an RSBTemplate?
An RSBTemplate is service definition that returns a formatted HTML page instead of raw list data. You can call operations and insert the results directly into your template page, so that you can combine information access and display formatting in one step. Templates are ideal for surfacing information in browsers or portals. You can see sample templates in the RSBScript Quick Start Guide.
Q: Can I write my service definition in a language other than RSBScript?
Service definitions are implemented as script files that specify service inputs and their defaults, which connector to call, and which results to stream back. Currently definitions can be specified in Python or RSBScript, but it is not hard to incorporate other script languages using the built-in language support feature as described in the RSSBus Extensions API included with the product kits. There is a sample Python service definition at the end of the RSBScript Quick Start Guide, and there is a summary of Python support on the RSBScript Reference.
Q: What's the difference between RSSBus Server™ and RSSBus Desktop™?
Both the RSSBus Server and the RSSBus Desktop include everything you need to develop Simple Services, including the RSSBus Admin Console for testing and deploying services, a selection of connectors, full documentation, and a demo services directory. RSSBus Desktop can be called from your local machine and is intended for service development and personal service use. RSSBus Server can be called from remote computers and is designed for production use.
Q: How do I connect programs to RSSBus? / What is RSSBus Connect™?
Any client program or programming environment that can make HTTP requests can access Simple Services. Programmers will find the query string, comma-separated value and RSS formats particularly easy to parse and process.
RSSBus Connect is an optional component library for programmers who prefer a component interface. The client component provides a sophisticated tool set for configuring the HTTP connection, constructing the Simple Service requests, and processing the responses.
The server component provides everything you need to turn an existing program into a Simple Service, including a built-in Web server with event-based processing and full connection control, and utilities for parsing requests and generating responses.
Q: What are the platform requirements for RSSBus?
RSSBus Server and RSSBus Desktop target the Windows platform and require the Microsoft .NET 2.0 Framework. If you are running Windows XP and above with Windows Update, you should already have Microsoft .NET 2.0 installed on your machine. RSSBus Desktop includes a built-in Web server, while the RSSBus Server runs on a standard IIS installation.
We also have a pure Java kit in beta available on the download page. It runs on Apache Tomcat, WebSphere and other common Java platforms. It does not have as many connectors as the more mature .NET kits above.
Q: Are you going to build a connector for ...?
We build new connectors all the time. We would be interested in hearing about your connector idea and we could possibly work it into the development queue. Note that you can write new connectors yourself using Python script as documented in the RSBScript Reference, or using a .NET programming language as described in the RSSBus Extensions API, shipped with the product kits. Also remember to check the connectors library from time to time for any new connectors.
Q: Can I add new output formats?
RSSBus includes .NET programming language support for developing new output formatters. Most of the processing details are taken care of for you; you only have supply string formatting for each output item. This is described in the RSSBus Extensions API shipped with the product kits.
Other
Q: Will RSSBus work for my application?
Send us an email or give us a call, and we'll discuss your application! We love to hear your ideas. Please visit the contact page to get in touch.
Q: How can I learn more about RSSBus?
Please visit the following resources:
|