|• Can be used in almost any kind of development environment.|
|• Blox are robust, well-documented and generally easy to implement.|
|• Supports major platforms (Windows, Unix, Linux).|
|• Adaptability is a benefit, but it would be helpful if it were specifically tailored and optimized for rapid development in at least one environment.|
|• Lacks explicit support for creating Web services with Blox.|
IBM DB2 Alphablox 8.3 is an incremental advancement of a product that lives between the possibility of enabling nonprogrammers to build online analytical processing applications and the vastly more difficult developer's slog of building such programs from scratch. The key word is build, not buy. Alphablox represents the best use of current technology for building customized OLAP applications.
A bit of context: Ever since businesses began to amass megadatabases with years of information, IT has been trying to figure out how to make use of them. The difficult parts have been massaging the data so something useful can be extracted (usually requiring data and/or domain experts) and presenting the information so it can be understood by the people who need it (typically those who aren't tech-oriented). Organizations often use several products to attack difficulties with data warehouses, data-mining software, decision-support systems, multidimensional databases, and so on.
What is a Blox?
It's much easier to answer the question "What is a Blox?" from a developer's perspective than to explain it conceptually. A Blox is a Java software component in the form of a Java 2 Enterprise Edition (J2EE) bean. Each Blox in the Alphablox library has a function, usually indicated by its name (Data Blox, Grid Blox or Member Security Blox, for instance), and has properties, events and methods to expose this functionality. Creating an Alphablox analytical application usually means referencing and configuring Blox components with tags in JSP pages, integrating with the relevant J2EE/Web running environment and deploying to a J2EE application server.
Because Alphablox builds Web applications, it uses Web advantages, such as universal access and ease of deployment. It also overcomes some Web disadvantages, such as clunky user interfaces and complex data handling. To do this, Alphablox draws heavily on the resources of an application server, database servers and Web browsers.
Alphablox needs an application server to provide session control, some business logic and certain elements of security, plus to run the software. IBM likes to point to its WebSphere Application Server — certainly an easy connection-but Alphablox also runs on other J2EE — standard application servers. The relationship to the application server is crucial and can be tricky to configure.
Because job one is to take mountains of data and turn them into molehills of useful information, connecting to data is a key part of Alphablox. Although obviously at home with IBM DB2 and DB2 Cube Views data management, the product fully supports MDX for Microsoft Analysis Services, Report Script for DB2 OLAP Server and Essbase, and JDBC for relational databases. In general, Alphablox relies on the database servers to do the deep massaging — reducing terabytes to megabytes — though it has some built-in OLAP data-management capability. The Blox that handle data (Data Blox, Stored Procedures Blox and MDB Query Blox) are flexible, but need an experienced liaison to translate what users want into working queries and data delivered at the Blox.
Three Ways To Build
An Alphablox highlight is rapid assembly of Blox — in marketing speak called a FastForward Framework. Essentially this means using a template, for example, to build a typical reporting and pivot-table analysis, which IBM dubs a "self-service application." This makes it sound like nonprogrammers might use the framework to construct off-the-cuff analytic applications. Not really: Someone familiar with Alphablox must organize and create applications, and an Alphablox expert is needed to pick up the pieces if an application goes awry. This isn't a flaw in the approach. So far, no product builds flexible analytic programs without the work of both domain and programming people. As these things go, the Alphablox FastForward approach has its uses.
On a meat-and-potatoes level, Alphablox is at home within a J2EE-integrated development environment, IBM WebSphere Studio Application Developer being an obvious example. Here the Blox look like big-but-normal enterprise JavaBeans and application development looks like a familiar Web, three-tier J2EE application. As should be expected of an eighth version, the Blox are robust and well-documented. With this version, IBM introduces the Alphablox Information Center, a well-organized hub and repository for all things Alphablox.
Using an IDE and a fair amount of Java savvy, Blox can be extended — directly or by linking to user-created beans. This might be critical where customization must be very specialized. An IDE also provides the tools for testing and debugging, which can be a complicated task in the application server environment. Given that Blox can be hauled out of the library with abandon (especially where the FastForward Framework or customized Blox are in use), some form of version control seems mandatory.
With this release, there is a third way to build an Alphablox application — using the IBM/Rational Rapid Application Development platform. This too is an IDE, but one explicitly designed to expedite development using ready-made components such as Alphablox. This seems like a natural fit; however, I was unable to test it.
In addition to those for data and user interface, there are Blox for administering and managing an Alphablox application: Member Security Blox (hides data members), Time Schema Blox (supports dynamic time series), Repository Blox (stores personalized information), Bookmarks Blox (for accessing and manipulating bookmarks) and Comments Blox (for storing user comments at all levels of an application). Other elements of security and user management are handled through the application server. Alphablox has collaborative features such as bookmarking, e-mail and PDF generation, though nothing that specifically ties with IBM Lotus Notes.
Online Analytics is a Tough Job
Producing good custom analytical applications may be difficult, but it must be done. The companies that succeed in finding gold in their mountains of data, or that simply get a better handle on what they're doing through real-time OLAP, have a big advantage. The OLAP vendors (in their many forms) know how big the payoff can be.
IBM DB2 Alphablox has plenty of competition from off-the-shelf OLAP software from SAS, Cognos, SPSS and the like. Microsoft and others are hunting for the same developers who can cobble together OLAP software using their tools. Still, from the developer's point of view, Alphablox is hard to beat. The Blox are stable, work together well and plug into most IDEs nicely. Even for developers who don't know much about business analytics, the Blox approach makes it easy to work with domain experts and end users to produce good — even great — custom OLAP applications.
• Alphablox 8.3, $45,000. Supports Windows 2000 Server (SP2+), Windows 2003 Server (SP1), Sun Solaris 9, Sun Solaris 8, Sun Solaris 7, AIX 5L 5.2, Red Hat Linux 4 and 3, SuSE Linux Enterprise Server 9. IBM, www.ibm.com
Nelson King is a 25-year veteran of the coding wars. He has written nine books on application development, and his tool evaluations are widely published.