Jump to content

Integrate StreamBase with REST


Avishek RC

Recommended Posts

Hi,

If you want a StreamBase application to process RESTful requests, use the Web Server Input and Output Adapters. There is a sample included with the product installation.

If you want a StreamBase application to be able to invoke and receive results from RESTful invocations to RESTful web services elsewhere, use theWeb Reader Input Adapter. There is a sample included with the product installation.

If you "need the SB process to start on receiving a REST request," that's not functionality that's explicitly included with the StreamBase 10 product itself at this time, but I suppose you could create your own Web Service using any web service technology (including StreamBase itself), that invokes something that starts up some StreamBase node or whatever you want. StreamBase has an External Process Operator* if you wanted to invoke an arbitrary epadmin command line. Or you could build yourself a Java operator plugin that invokes the relevant administrative DTM Management Java APIs.**

*Look in the StreamBase Authoring Guide > Using Global Java Operators > External Process Operator

**Look inhttp://devzone.tibco.com/sites/streambase/latest/sb/sb-product/documenta... and its subclasses

Link to comment
Share on other sites

Hi Sbarber,

 

 Thanks for the info. The solution worked spectacularly.

 

BTW, can you npoint me towards if it is possible to Display the SB Output stream data for Insightful Visualisation (say for Business Team- Graph, Chart etc).

 

Any help will bw highly appreciated.

Link to comment
Share on other sites

  • 2 years later...

An updated answer to this Question: as of StreamBase 10.3, there is an additional set of adapters -- the Web Input and Web Input Response adapters -- that I think most people would prefer to the Web Server Request/Response adapter pair for implementing RESTful web services using StreamBase.

The Web Server Request and Web Server Response adapters provide a relatively low-level interface to receiving and responding to HTTP requests, and leave it up to the application author to layer RESTful semantics in the application code.

By contrast, the Web Input and Input Response adapters will create a REST endpoint automatically based on the defined schema for the Web Input adapter, and expect the payload of the request to be in JSON and correspond to the schema.

Thus the Web Input adapter pair allows the application author to work at a higher and probably more convenient level of abstraction, at the cost of some flexibility in request/response content processing compared to the Web Server Request/Response adapter pair.

So, there are options. Have a look at the doc pages and sample applications, and choose well!

Link to comment
Share on other sites

Updating the second part of the original question about being able to start a StreamBase process via a REST API, as of TIBCO Streaming 10.5.0, there is a REST API for the TIBCO Streaming administrative operations.

 

Therefore, it should be possible to start a node that contains StreamBase engines using this REST API.

There are limitations to be aware of: this StreamBase Admin REST API is a service provided by a StreamBase cluster node, and thus there has to already be a node installed and started on a machine in order to be able to access the API at all. You should be able to install and start other nodes on the same machine using the Admin REST API, though I have not personally tried this as of today. (There is no (easy reasonable) way to use the Admin REST API to install a node on another machine, since access to the local file system is needed to install a node -- there's no remoteable version of the install node action, though start node can be done remotely.)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...