A key determiner in selecting or designing software is that software's reliance on accepted standards. XML has come into its promise as a recognized standard for use in designing software. This article looks at how use of XML benefits an application designer. We use the example of Ariba, Inc., which has based its software on XML and why this architectural design has given them an
advantage.
Ariba, Inc., is a B2B e-commerce corporation that has ridden the wave of Internet adoption by becoming very good at "spend management" software: enterprise-wide software that enforces the control of costs. Ariba computer scientists have worked in Internet standards bodies to create XML standards, such as ebXML ("electronic business XML," described at
http://www.ebxml.org/). Early on, Ariba recognized the fundamental benefits of XML and made it the core of their software architecture and infrastructure. In the history of XML development, Ariba's XML is called "Ariba Meta Language," or AML.
Key features of AML include:
Ariba continues to build on its fundamental market-win with XML. For instance, when Ariba launched its Ariba Analysis product (an On Line Analytical Processing or analytics tool for spotting spending trends), the database structure of the OLAP application was engineered into the product with a new "MD-AML" or "multi-dimensional Ariba Meta Language," officially called "Ariba Analysis metadata
XML." In keeping with XML, for "MD-AML" Ariba created a Document Type Definition (DTD) that defines the relationships of the database structures of the OLAP application. These DTD definitions are associated with Java classes that instantiate the structures in the database. In OLAP applications, these database structures are called a star schema. A star schema is like a map table in a relational
database, but with central tables called "facts" and ancillary tables that relate to those facts by holding data that is a "dimension" of the facts. A dimension table is similar to the relationship table or map of a normal database.
Defining a star schema is a complex database task. Fact tables represent the key data that is being investigated, for example, purchase order transactions. Hung off the fact tables are dimension tables that relate a purchase order to all its facets: person who ordered, parts, suppliers (or vendors), and more. Dimensions also have hierarchies: the organization structure to which the person
ordering a part belongs, the corporate structure of a supplier, the categories to which a part belongs. See the diagram of a simple star schema.
However, there are many facts that a company needs to investigate to control costs: requisitions, invoices, supplier evaluation projects, and more. The interrelations can easily become bewildering.
How does Ariba Analysis metadata XML help a programmer create and maintain a star schema? It completely hides the database mechanics, allowing her to focus on the design of the schema at the symbolic level of XML. Without XML, a programmer would first have to design the star schema (a daunting enough task) and then translate that schema into SQL so that the schema can be instantiated in the database.
Consider the brain sweat in formulating a large number of SQL statements, like the following pseudo SQL. I purposefully make this simplistic and syntactically incorrect so you can read it more easily:
// Make the fact
CREATE _purchase_order id_number, date, requester, part, supplier, gl_account, project;
// Make the dimensions
CREATE _supplier id_number name, address, category, expertise;
CREATE _part id_number, description, used_in;
CREATE _requester id_number, name, dept;
// Make the indexes that relate dimensions to facts
CREATE INDEX on _purchase_order(part) _part(id_number);
CREATE INDEX on _purchase_order(requester) _requester(id_number);
CREATE INDEX on __purchase_order(supplier) _supplier(id_number);
And so on .
Now consider this somewhat simplified symbolic Ariba Analysis metadata XML representation of the same schema:
<fact name="PO" class="ariba.analytics.fact">
<dimension name="supplier" class="ariba.analytics.dimension">
<dimension name="parts" class="ariba.analytics.dimension">
<dimension name="requester" class="ariba.analytics.dimension">
The class attribute names an Ariba-supplied Java class that takes care of the database mechanics associated with creating and maintaining OLAP data structures like facts and dimensions You decide: which is easier to work with, raw SQL or XML? The key idea in this software architecture is to symbolically represent the database structures and take care of those mechanics as much as possible.
Such an architecture, with XML designed right in, allows application developers to focus on more critical aspects of an application, such as the design itself or subtleties of extending the architecture to represent business models specific to a particular company. Leave the mechanics to the computer and let the humans focus on what they do best.
Alex Lange, former senior technical writer for Ariba Analysis, can be reached at Alex@Lange.org
Alex Lange