
|
There's a trend emerging in software tools. Tool vendors are specializing, producing products that focus on building particular types of applications. These tools can often produce the targeted applications in record time. But if you try to extend beyond the intended scope, you may run into limitations. It's like choosing a cake mix, rather than just buying flour.
This trend is quite apparent in the world of application servers. Until recently, most products in this category were fairly generic. They provided glue for application components and some very horizontal functionality such as database transaction management. Today, we see an explosion of more specialized servers. SilverStream and Progress target Web applications. Even more specific are platforms for e-commerce, such as InterWorld and OpenMarket. Still more narrowly focused is Netscape's Xpert series, with separate offerings for business-to-business and business-to-consumer application development.
Why is this happening? More and more middleware functionality is being delivered as part of the operating system. This is most obvious on NT, where Microsoft's Transaction Server and the Site Server suite have assumed many of the functions usually served by third-party products. Also, time-to-market pressures are increasing. Using a specialized tool can give results faster than starting from scratch.
AlphaBlox Enlighten is another good example of the trend. AlphaBlox Enlighten is dedicated to producing analysis applications for the Web. These applications are focused on reporting, summarizing, aggregating, and navigating large amounts of information. Ted Schadler at Forrester Research ("Bridging the Data Analysis Gap," The Forrester Report on Software Strategies, April 1998) estimates that analytical applications have a potential audience 10 times that of transaction processing applications such as ERP. Furthermore, analysis requires specialized functionality not often delivered by traditional client/server tools. This category is an ideal target for a specialized tool, as shown by the success of products such as Cognos PowerPlay and Oracle Express Objects.
I tested AlphaBlox Enlighten on a Pentium II 300MHz system running Windows NT 4.0 and Internet Information Server 4.0. I connected to a database running in SQL Server 6.5 and used Internet Explorer 4.01 as the client.
The installation procedure was fairly seamless but rough around the edges. After running the automated setup, I was able to start the application server component and access the HTML/JavaScript product configuration pages with no problems. The pages let you set the various parameters required to work with your Web server and database. One confusing aspect of the setup was the different forms you use for entering the information for the first time and editing thereafter.
Database applications are picky about configuration details. When I initially tried to run the provided sample applications, I got a generic error message indicating that AlphaBlox Enlighten couldn't connect to SQL Server. Diagnosing the problem required a call to AlphaBlox and a manual edit to the JavaScript source of the application. This uncovered the root of the problem: I hadn't enabled SQL Server to talk over TCP/IP, which AlphaBlox Enlighten requires. This was easily fixed, but the lack of robust error reporting meant lots of lost time.
AlphaBlox introduces a new term to describe how Enlighten applications are built. Dynamic Application Assembly means that you put your application together using a set of predefined components. (See Figure 1.) These components, called Blox, snap together using published interfaces. Blox are large-grained components, more sophisticated than the widgets found in most application toolboxes. Each Blox serves a particular role in the information supply chain.
This plug-and-play methodology can be very powerful. It lets you create very robust applications without any coding. AlphaBlox further eases the development cycle by providing example applications and templates. These serve as a starting point and can be enhanced and modified for more custom uses.
AlphaBlox claims that Dynamic Assembly is an entirely new development paradigm, but anyone who remembers a company called Metaphor will recognize the concept. The Metaphor system suffered from a proprietary, closed architecture. AlphaBlox Enlighten avoids this pitfall. As a result, it has the potential to realize the promise of nonprocedural development tools for dramatic improvements in development productivity.
AlphaBlox Enlighten is a three-tier system written entirely in Java. The current release is based on JDK 1.02, which predates the JavaBeans component model. AlphaBlox has stated that the components in this version are "as Bean-like as they can be." The next major release will use JDK 1.1 and fully adopt the JavaBeans model.
The Blox Application Server Environment (BASE) is a thin middleware layer that connects the other components to the Web server. It will typically be installed on the database server machine or on a separate, dedicated server. Unfortunately, this module is not packaged as an NT service.
All of the available Blox run on the client as Java applets within the Web browser. Web pages talk to the Blox using JavaScript. JDBC connects to the back-end RDBMS server. It establishes database connections directly between the client Blox and the RDBMS rather than consolidating them in the application server. For deployments with a large number of simultaneous users, this architecture will limit scalability.
AlphaBlox indicated that the BASE server will be enhanced in the near future to support server-side Blox and to manage database connections. These improvements are important to allow the flexible partitioning and resource management required for enterprise-scale applications.
AlphaBlox Enlighten understands data in multidimensional form. This is typical of products in the OLAP category, as opposed to traditional OLTP applications. With a multidimensional approach, data is organized along key indices such as time, geography, and product. OLAP products make it easy and fast to navigate along any or all of these dimensions.
AlphaBlox Enlighten's approach to managing data is quite basic. SQL queries create result sets that are aggregated on the fly. There's no facility for specifying hierarchies. Instead, you can represent hierarchies by correctly placing the data fields on a data view. For example, placing year, quarter, and month fields along the top of a grid display will let the user drill down to successive levels of detail. However, it's just as easy to create nonsensical hierarchies, such as nesting year inside of month -- the product doesn't enforce any rules in this regard.
AlphaBlox Enlighten does only limited caching of data accessed from the database. This restricts the amount of aggregation and analysis that you can accomplish on the fly. The company recommends doing any serious data crunching in the database itself, creating intermediate tables to hold the results. In addition, AlphaBlox has recently announced a relationship with Arbor Software, indicating its intention to provide access from AlphaBlox Enlighten to the EssBase multidimensional server.
AlphaBlox Enlighten includes two general-purpose tools built using the product. Decider and Informer are similar in concept to tools such as Oracle Discoverer, BusinessObjects, or Cognos PowerPlay. With Decider, the user can create a multidimensional business view of relational data. Informer associates a presentation template with the data views created with Decider. The views can also be published to pure HTML. This allows access by users who lack a Java-enabled browser. The view and template definitions created with these tools are stored in a repository on the server.
AlphaBlox Enlighten includes a palette of the available Blox that you can use as a toolbox within your favorite Web page editor. I used FrontPage 98 and opened the HTML file containing the Blox palette alongside the window in which I was creating my test page. All the Blox applets in the palette showed up with the same vanilla "J" (for Java) icon, but this is a limitation of FrontPage, not of AlphaBlox Enlighten.
The process of creating an AlphaBlox Enlighten application consists of copying the appropriate Blox from the palette onto the target page. Each Blox has properties that bind it to a data source or to other Blox. The InterBlox, such as Director, provide default plumbing.
You can construct simple applications very quickly by placing Director, Data, and Grid or Chart Blox on the same page. (See Figure 2.) The Data Blox has properties that specify the data source and the query. These typically designate an RDBMS, accessed through a JDBC driver, and a corresponding SQL statement. The Data Blox executes the query, and the Director flows the data to the Grid or Chart Blox, which handle the display.
The Grid and Chart display Blox are reasonably configurable, including separate control of fonts for the header and data body. The charting facility has a limited number of chart types and options. In general, you won't find the depth of look-and-feel control in dedicated Windows design tools. To some extent, this limitation comes from the immaturity of Java and the browser.
The data viewers have built-in toolbars and selectors for navigating the multidimensional display. Rotating data elements to various parts of the display is accomplished with drag and drop. This will be familiar to users of other OLAP query tools such as PowerPlay or Brio. Unlike these tools, however, AlphaBlox Enlighten offers no exception or "stoplight" reporting, which highlights data values that fall outside of an expected range.
Also included are Form Blox, which allow the creation of a more customized user interface. The basic HTML elements are available, including text boxes, lists, dropdowns, and radio buttons. These controls all have a DataSource property that can connect them to the rest of the application.
I created the relatively simple applications on the first try. My familiarity with multidimensional data and Web tools was a big help, but this is still impressive. The applications had some startup delay because of the extensive use of Java. Once the applications were up and running, performance of the data manipulation was very good, although the data sets I used in the test were fairly small (about 2,000 to 4,000 rows).
If you want to customize your application beyond setting the properties of the Blox, you'll need to program in JavaScript. In the current release, the script interfaces to the Blox aren't documented. This limits the extensibility of the system quite a bit. AlphaBlox indicated that the next major release will let you integrate any JavaBean into an AlphaBlox Enlighten application. This extension is key to the openness and flexibility of the product.
AlphaBlox Enlighten combines high-level application assembly with robust analysis components for the Web. It has a nice set of built-in components for acquiring and presenting multidimensional data. Its tight integration with the Web server makes application development and deployment very straightforward.
If you have relatively modest requirements for customization and don't need to support a large user community, the current version of the product is definitely suitable. If AlphaBlox delivers on the improvements I noted, AlphaBlox Enlighten will be a strong competitor to the established enterprise OLAP players such as Cognos and Oracle.

Figure 1. AlphaBlox Enlighten offers a selection of large-grained components for application assembly.

Figure 2. A fully assembled AlphaBlox Enlighten application, showing the built-in Grid and Chart Blox integrated with custom user-interface elements.