Bluestone Software's XML Suite: Promising App, Rough Around the Edges
August 18, 1999
XML Suite 1.1
Bluestone Software's XML Suite shows promise but unfortunately suffers from some rough edges that stem from a lack of vendor quality control. The good news is that Bluestone says it will, in a future version, remedy the shortcomings our tests revealed.
XML Suite 1.1 consists of two components, XML Server and Visual-XML. XML Server, running in the background on a central computer, generates XML by interfacing with database-oriented document handler components that you create. In the opposite direction, document handlers can also turn incoming XML into database updates. XML Server's interfaces include HTTP, SSL, FTP, e-mail and JavaBean. Future versions, the vendor claims, will support DCOM, database triggers, message queues, RMI, IIOP, EJB, JMS, scheduling and MTS.
XML Server is a subset of Bluestone’s Sapphire/Web application server product specially tailored to publishing XML documents. Not surprisingly, Bluestone recommends upgrading to Sapphire/Web if you need to process more than a low volume of XML applications. The other component, Visual-XML, is a design tool for creating XML Server document handlers as well as editing XML, Java and DTD files.
Test: Passing Book Data in XML
We tested XML Suite 1.1 on a dual-processor 333-MHz Gateway NS-8000 server running NT Server 4.0 and Java 1.2.1. Clients were also Windows NT machines. Our test environment simulated a bi-directional exchange of business information between a book publisher and book stores. Over the Internet, the book publisher sent bookstores an XML-based notification of available titles. In the other direction, book stores sent the publisher XML-based lists of books sold. We looked for correct XML creation and handling, quick performance and easy administration with little or no programming expertise required.
Using Visual-XML's Data Publish Wizard to select book title database tables and columns and create an XML document handler was simple and painless. However, we first had to manually edit the large and rather obscure SAJAVA.INI file to specify our database connectivity options (such as the Oracle JDBC driver and URL). Clicking a test button caused our document handler to pour through the database and turn table rows into pure XML, which Visual-XML displayed to us. It also automatically produced the DTD shown in Figure 1.
<!-- ================================= --> <!-- DTD for Table: titles --> <!-- Document Type: AutoGenQuery_titles --> <!-- Generated by Bluestone Visual-XML --> <!-- ================================= --> <!ELEMENT titles (title_id, title, type, pub_id, price, notes, pubdate)> <!ELEMENT title_id (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT type (#PCDATA)> <!ELEMENT pub_id (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ELEMENT notes (#PCDATA)> <!ELEMENT pubdate (#PCDATA)> <!ELEMENT AutoGenQuery_titles (titles+)>
Figure 1. DTD emitted by the Data Publish Wizard.
However, executing our document handler outside the Visual-XML IDE proved troublesome. A few hours of telephone technical support with one of XML-Server's developers revealed the XML Suite installation program had placed the wrong files in the wrong locations, as well as a few other issues. After some fussing with JAR files, the generated document handler eventually emitted an XML version of our database contents.
Figure 2. Database contents automatically rendered as XML by XML Suite.
Simulating a book store’s processing of the incoming XML via the Process XML Wizard was more complicated than using the Data Publish Wizard. While publishing XML was as simple as choosing tables and columns in a database and clicking a button to generate a Java document handler, developing the XML-to-database document handler involved selecting ambiguously-labeled text icons, dragging and dropping the icons onto a graphically-represented database table and either picking a simple database insert method to process the text element or writing Java custom code. In our tests, we had to inspect the generated Java program to determine whether we had selected the correct text icon for each database column, make changes and rerun the Process XML Wizard. Moreover, we encountered the same setup and configuration problems with turning the XML document into database updates as we had with publishing the XML.
Our tests showed that XML Server, itself written in Java, performed slowly. To gauge how slowly, we developed a small standalone JDBC-based server application that exported in XML format the same columns of our database and used the same rows for content as the wizard-generated document handler. As we increased the number of running instances of both the document handler and the standalone Java program, we found that, until the Java program exhausted the supply of JDBC connections, the XML server and generated document handler took 50 percent more time to produce the same output. To its credit, the XML server pooled its use of JDBC connections and thus was able to manage many more concurrent instances of the generated document handler.
Visual-XML also has editor components for creating XML documents, DTDs and Java files, but these components are little more than Java-based text editors.
If it’s to be used by non-programmers, Visual-XML desperately needs a wizard-like configuration module for the SAJAVA.INI file. Furthermore, XML Server should immediately be able to work with the class files generated by the Data Publish Wizard and the Process XML Wizard. When Bluestone adds these features, XML Suite will be a valuable, worthwhile business tool in the exchange of information among businesses.