Recently a lot of people have asked me about XML for Analysis (XMLA) and what is happening with it.  While I do not speak for Microsoft or Hyperion (now Oracle), I can give you some background to help you make sense of what is happening.  First, here is some history about XMLA:

  • In December 2000, Microsoft issued a Beta specification for XMLA
  • In April 2001, Hyperion and Microsoft jointly issued the XMLA 1.0 specification
  • In September 2001, Hyperion and Microsoft initiated the XMLA Council, of which there were ultimately about 30 member companies including my company, Simba.  Other notable companies involved in the XMLA Council were SAP AG, SAS, Business Objects, and Cognos.
  • In November 2002, the XMLA Council has their first interoperability session where the server and client vendors came together and tried to connect their various products using XMLA
  • Also in November, 2002, Microsoft and Hyperion jointly issues the XMLA 1.1 specification
  • A lot happened around XMLA in 2002 and 2003 and things look positive
  • Around 2004, the energy around the XMLA Council seemed to fizzle out and not much has happened since

Not much is happening with the XMLA Council.  What does that mean?  Well, in my opinion, that does not mean that XMLA is dead.  In fact, there seems to still be a lot of innovation around XMLA and MDX.  You just need to look for it a little bit harder.

Second, you should know that Multi-Dimensional Expressions (MDX) is the language used by XMLA and OLE DB for OLAP (ODBO).  XMLA and ODBO are the protocols generally used to make MDX queries.  For those of you familiar with ODBC and SQL, consider that MDX is like SQL, ODBO is like ODBC, and XMLA is like JDBC.  I know, the purists out there will disagree with me, but my intent here is to help you understand XMLA and so I think this analogy helps.

OK, so MDX is the query language and XMLA and ODBO are interfaces by which you make your MDX queries to a multidimensional or OLAP data source.

Now, if you read my statement above, you will understand that XMLA and ODBO are just the interfaces by which you make your MDX queries.  Therefore, when people talk about interoperability and standards, the real interoperability comes from MDX.  XMLA and ODBO are simple enough that they are not the differentiators around interoperability and standardization.  MDX is the key.

So, let’s go back to the XMLA specification.  If you read the XMLA specification, you will see that it does not give you a specification for MDX but rather it refers you to the ODBO specification.  The ODBO specification was last published by Microsoft in 1999 and it is this document that gives you a specification for MDX.  MDX is the key to interoperability and the last time an MDX specification was published was 1999.

Now, back to the question, what is happening with XMLA?  The answer is that XMLA is pretty much standardized and not a lot is likely to change.  The question you should ask is, what is happening with MDX?  The answer to that is, lots!  Microsoft has made a very large number of extensions to the MDX language, which they always said they were allowed to do.  This is the key.  If you look at the latest version of Microsoft Analysis Services (version 2005), you will see that the MDX extensions that Microsoft has made are very extensive.  I personally refer to the MDX from the last ODBO specification as MDX 1999 and the MDX from Microsoft Analysis Services 2005 as MDX 2005.  Microsoft says MDX is MDX and that the extensions that they have made are theirs.  And, of course, Microsoft has every right to innovate and I commend them for doing so.  I do want to point out that for interoperability and standardization and since Microsoft Analysis Services is such a dominant product in the marketplace, you really need to support MDX 2005 in order to be a player in this space.

Consequently, MDX is alive and well and continues to evolve.  If you are trying to understand MDX, of course read the ODBO specification and then also look at Microsoft Analysis Services 2005.