As I mentioned previously, I have been looking for an open source BizTalk like product and one of the solutions I wanted to evaluate was the Business Integration Engine from the Brunswick Corporation.
I finally got around to downloading and installing BIE and wanted to write about the experience so far. The main function I would like this product to provide for us is for it to manage the receipt and exchange of files from our trading partners. The promise of tools like this is for the tool to present a documented view of the file exchanges and file formats being used and prevent one from having to write a new parser each time a new trading partner comes on board with their own custom file format (or changes their format).
So far after a little bit of tinkering, I’m pretty impressed. The product is built on top of JBoss and the installation is very straightforward. Download the latest install from the SourceForge project page, extract and install.
After installation you may start the BIE service via the start menu menu item. You can then browse to the product dashboard on localhost:5803
From here one of the shortcoming shows up. The product does not come with any documentation. The company that originally wrote BIE offers documentation for a small fee (couple hundred bucks), but it would be nice to have a little bit more information to get a feel for the product (that’s where I come in I suppose).
BIE breaks processes into WorkFlows. A WorkFlow is a set of actions that can be triggered, such as parsing a file into XML, mapping that XML into a different format, and then updating a database with the resulting data.
When parsing a file into XML it does this via a MessageFormat. You can define various message formats for your files. They come in different flavors such as (MS Excel, Comma Delimited, Fixed Width, XML, etc). You enter the criteria for your file and save it with an identifiable name. For example, with a fixed width file, you enter what row the data starts on (in case there are header rows), enter a comma delimited list of the field names, and then a comma delimited list of the length of each field and save it. That is all that is required to teach it how to parse a new fixed width file. Pretty spiffy, no code required.
WorkFlows can be triggered by a variety of listeners. The built in set of listeners includes a JMS listener, a directory watcher, an FTP directory watcher, a mailbox watcher, and a scheduled listener that can execute workflows on a periodic basis.
The listener that interests me the most is the directory watcher. When receiving a file from a trading partner, they push the file to us. The directory watcher scans a directory and takes action when a file appears.
When a file is found, BIE looks at the filename and reads everything in the filename up to a period (.) or underscore (_) character. Then it takes that text and looks for a WorkFlow by the same name.
You construct WorkFlows using a graphical editor that allows one to drag and drop and connect various actions together to perform your process. These can consist of logging operations, database operations, XML translations, XSLT transformations, sending Email, File operations, etc, etc, etc.
Enough for now, next time I’ll post some screen shots and go into more nuts a bolts of stringing a WorkFlow together.
Here are some links that were extremely useful (once I found them all that is):
BIE SourceForge Project Page
Brunswick WDI BIE Page
BIE SourceForge Mailing List Page
BIE FAQ through Adaptive Dynamics
Brunswick WDI BIE Discussion Forum