About TIBCO StreamBase Studio

This topic provides a high-level overview of using TIBCO StreamBase Studio™.

If you are familiar with TIBCO StreamBase Studio™ from previous StreamBase releases, skip ahead to Maven Introduction to learn about the important Studio changes for StreamBase 10.

Studio Introduction

TIBCO StreamBase Studio™ is a platform for developing and testing TIBCO StreamBase® and TIBCO® Live Datamart applications. StreamBase Studio is based on Eclipse, which is familiar to many Java developers as an integrated development environment.

StreamBase Studio provides a graphical drag and drop editing environment to create and edit StreamBase EventFlow modules. You select components from the Palette view, drag them onto the editing canvas, then connect the newly dropped component to others on the canvas with directional lines called arcs. Select any individual component on the canvas to edit its properties in its Properties view.

On the Studio canvas, tuples flow left to right. In general, a component such as Aggregate in the image below that is on the right side of a component such as Filter is said to be downstream from Filter. A component such as Map that is on the left side of the Filter component is said to be upstream from Filter.

Each component's input port has a schema. A component's input schema is defined by default by the schema emitted by the previous upstream component's output port. This allows a stream to flow unimpeded from left to right with the assurance that the data is in a known tuple format throughout. There are also components that can add or subtract fields from the incoming schema as part of its operation, and that modified schema is then emitted to pass downstream.

Running and Debugging Your Modules

Studio allows you to install and run your EventFlow module in a StreamBase runtime deployment node hosted by Studio. Studio provides mechanisms that let you send data to your module's Input Streams and examine tuples emitted from its output streams.

You can also run your module with Studio's EventFlow Debugger, which lets you set breakpoints and step through your EventFlow module in graphical form.

Typechecking

Typechecking is StreamBase's term for testing the validity of your EventFlow modules. Typechecking ensures that tuples output by one component in a module have the schema required to be processed by the next components downstream. Typechecking also refers to validating the underlying EventFlow XML against of the module against its XML schemas. An EventFlow module with an incomplete or unbalanced XML element is said to fail typechecking.

Maven Introduction

StreamBase Studio uses the Maven project format provided by Eclipse. Maven is a software build and management system aimed primarily at Java developers.

StreamBase Studio projects are in Maven project format, and all projects are built and run under Maven control. The Run As context menu includes several Maven commands and goals.

Using Maven provides a well-known, thoroughly documented, and standard way to specify project dependencies, both within and external to the project. Maven automatically configures search paths for code in specified dependencies, and also manages resource search paths automatically.

The Maven system assumes that each product produces an artifact as the output of its build. The artifact produced by a standard Java project is usually a JAR file. The artifact produced by a StreamBase EventFlow project is an EventFlow fragment archive. This is a .zip file that contains your EventFlow modules and resources in runnable format.

Likewise, the artifact produced by a LiveView project is a LiveView fragment archive.

When Maven is run, it follows the directions in the project's Project Object Model, which is defined in an XML file at the root of each project folder named pom.xml. The StreamBase POM files can be run both in Studio and at the command prompt with the mvn command, if your system has a recent installation of command-line Maven installed.

The Maven POM defines a fixed lifecycle for the stages of building an EventFlow project. You can specify any stage as a goal when you run Maven. This automatically runs all defined stages prior to the specified goal. For a project in good shape, you only need to specify the two goals clean install, which runs all the stages of cleaning your project folder, then runs all the stages of compiling, packaging, verifying, and unit-testing your project before running the install stage.

For StreamBase projects, the install goal means that an EventFlow fragment archive for your project is generated and copied into your project's target folder. The goal goes on to copy that file to your local Maven repository. Likewise for LiveView projects, the install goal means to generate a LiveView fragment archive file in the target folder, and to then copy the archive file to the local Maven repository.

By default, the local Maven repository is the .m2 folder in your home directory on your local machine. Your site might prefer to configure a central local repository.

StreamBase documentation does not attempt to describe Maven beyond this simple summary. See the official Maven documentation at maven.apache.org, or one of many fine books on the subject.

Maven Project Format

Each StreamBase EventFlow fragment project in Studio has a project structure defined by Maven standards. When you create a new project with FileNewStreamBase ProjectStreamBase EventFlow Fragment, Studio generates a project format much like following:

If you create LiveView project with FileNewStreamBase ProjectLiveView Fragment, the new project contains an additional folder, src/main/liveview.

The folders at the top of the project are convenience links to actual file system objects. The only folders actually created on the file system are the src and target folders and the pom.xml file.

See What Goes Where to determine where to place different file types in your Maven-format Studio project folders.