SOA Product Review: Get Rich Applications with WorcsNet IAB Studio

This review has been sponsored by SYS-CON and initially published inĀ SOA World Magazine, November 2006.

By Paul Kaiser

IAB Studio…
Its feature set is too rich to let a few glitches stop you from trying it out

IAB Studio is a tightly integrated set of development and runtime tools you can use to easily create browser-based applications, reports, and workflows with rich user interface controls. It makes liberal use of client-side event processing and AJAX-based communication to a J2EE server to provide a more responsive user experience with lighter server loads.

In Addition…
IAB Studio is also an execution environment and as such provides basic security and entitlement management functions. It supports user authentication and role-based authorization. Access to pages is granted to roles.

And if you’d rather develop in your favorite IDE, IAB Studio comes with an Eclipse plug-in so you can develop your IAB objects in familiar surroundings.

Workflow Builder
The Workflow Suite is a workflow model builder and execution engine included with IAB Studio. It lets you create a model of a workflow by connecting various types of tasks together in a flow. All tasks are implemented via a Java class. While IAB provides default implementations, they do nothing; you must provide an implementation to do anything.

There are tasks to execute your logic synchronously or asynchronously to the workflow. Other tasks provide classic flow control (if, loop), synchronization, HTTP URL retrieval, e-mail, FTP transfers, a simple delay, and user activity. Each kind of task defines parameters specific to it.

Concerns
While IAB Studio has a lot of great features, there are a few things about it that concern me.

I encountered a few minor glitches with the Web IDE. One time I had a pane pop up, seemingly out of nowhere. I had to log out to close it and couldn’t reproduce it. The report designer shows three nested scrollbars; which makes navigation a bit challenging. You have to deal with scroll bars on the browser window, scroll bars on the page, and scroll bars on the report control. Finally, there are mislabeled and duplicate buttons. Worcsnet is aware of the last two items and is planning to address them.

IAB doesn’t connect to any external source code repository, though it has an internal versioning scheme. Since the latest version of all project artifacts are saved on the file system (under the WAB context root), it’s possible to use an SCM outside the tool. However, this means that any files the SCM tool puts in its workspace (such as CVS and Subversion) will become part of the Web application file set and must be removed as part of promoting the application out of development.

IAB Studio acts as a development tool, framework, and runtime engine for the application. It stores metadata in the database regarding the application artifacts. It’s designed to use a “develop and transplant” approach to deployment rather than the commonly used “checkout and build” approach. IAB Studio provides an export facility that’s part of a promotion process to move the application from development to QA and production. The feature wasn’t functional and the developer is expected to include the IAB metadata as part of the application database promotion scripts. A promotion/deployment model like this may also make some people question the veracity and repeatability of a CM process based on it. While this may not be an issue, it should be reviewed before committing to build an application that may be subject to SOX audits.

Conclusion
Despite these concerns, I’d recommend that developers looking to step into the rich Web application arena take a look at IAB Studio. It provides UI development features reminiscent of client/server tools like PowerBuilder and Visual Basic and includes basic workflow capabilities for your application. This feature set is too rich to let a few glitches stop you from trying it out.

IAB Studio is broken down into three components: Application Builder, Reporting Suite, and Workflow Suite. Application Builder provides all of the containers and controls you need to assemble rich user interfaces complete with data grids, entry forms, and tree-view controls. Reporting Suite adds several capabilities that greatly simplify report and chart production. Workflow Suite lets you use a graphical UI to create workflow models using a variety of tasks types. It executes these models in its own engine.

Application Builder
The terms “rich client” and “rich user interface” have been used for several years to refer to software that make use of a set of controls that exhibit robust behavior (e.g., drag-and-drop) and/or provide more control properties than HTML to construct a UI. These include tree-view controls, tab pages, and multi-page editable data grids. The important difference between rich controls and the standard HTML controls is the degree of interaction the user can have with it and the amount of application state that can be represented with one instance of the control.

WorcsNet uses the term “Rich Internet Application” or RIA to refer to an application built with a rich user interface that runs in a Web browser. Application Builder is the primary tool used in constructing these applications.

The WAB Web App
The Application Builder tool is itself a Web application. It runs as a standard J2EE Web application and is compatible with a variety of relational databases including Oracle, MS SQL Server, Sybase SQL Server, Sybase SQL Anywhere, MySQL, and SAP DB. You can download a copy from Worcsnet (www.worcsnet.com). There are three installation methods you can use. I chose the simplest: the bundle consisting of a single ZIP file with IAB Studio, JBoss, and MySQL already set up and ready to go. Just expand the ZIP, point JBoss to your Java home, and start them up.

Workspace
Once you have Application Builder running, point your browser to (link removed) to get started. Follow the instructions to log in as the admin user. The sample project includes several pages demonstrating the various types of controls available. It was nice to realize that the controls used to construct the Application Builder IDE are the same ones available to build your own.

Projects
Projects are simple hierarchical structures that you use to organize the artifacts you create with IAB Studio. At the top level, you can create instances of any object type. These include folders, pages, URL references, data-entry wizard objects, reports, workflows, and files. Folders can contain any of the object types too including other folders. Pages, as you might expect, are the primary container object.

To create your own project, click on User Projects in the left-hand navigation panel, and click the New Item button at the top. Enter a name and description of your project.

Pages
IAB pages let you bring together the set of user interface controls you need to create the user experience desired. Pages are synonymous with JSP (as they are implemented with JSP technology) and can contain any number of controls. Figure 1 shows one of the sample pages open in the workspace. Besides the controls you’d find supported in HTML, Application Builder provides tree-views, paginating data grids, combo boxes, tab controls, RTF editor, menus, toolbars, and special controls for data management.

Create a new page by selecting the New Item button at the top of the Navigator panel on the left. Complete the pop-up form and the page is added as a JSP to the WAB web application. Adding controls is very simple: click on the control-type button along the top of the page in the workspace then click inside the body of the page where you want the control. Positioning and sizing are done in absolute terms so there should be no surprises.

Data Entry Wizard
The Data Entry Wizard (DEW) lets you quickly create a sequence of data-entry forms that will be presented to the user. The DEW control handles generating SQL statements and interacting with the database. The wizard is functionally complete (client, J2EE server, and database interactions are managed) without any client- or server-side coding, although you can write event handlers if needed. Certain validation rules are available for selection as you assemble each form in the wizard. You can add as many forms as the user experience requires. When finished, the DEW object is saved then referenced on a page by adding a DEW control to the page and selecting the DEW object.

Data Presentation Control
The Data Presentation Control (DPC) is another powerful control that makes it easy to present and manipulate data in a page. The DPC is added directly to a page and configured in place. It uses a grid display style. You select the table and columns you want to show in the grid. For each column selected, you can control whether the column is visible, updatable, can be sorted, and which are the key columns. You also specify the column heading. Without any other work, the DPC can now be used to retrieve and view the specified data.

Data Transformation Control
The Data Transformation Control (DTC) is a non-visual control that lets client-side code interact with the database via the J2EE server. Since the control is non-visual, you simply write JavaScript to instantiate the DTC (also called DataStore), set query properties, and call the LoadData method to execute the query. You specify a callback function to the LoadData method to receive the data. Your method can do whatever you need to modify the DOM with the data.

Reports
Reports are very easy to set up. They are created as project artifacts in a folder. Once created, open the report up in the workspace. You must chose the report style.

Posted in Articles, Products, ATMIC Products
Tags: , , , , , , , , , ,

Leave a Reply

chat atmicgroup