<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19048"></HEAD>
<BODY>
<DIV><FONT color=#000080 size=2 face="Lucida Sans"></FONT>&nbsp;</DIV><FONT 
color=#000080 size=2 face="Lucida Sans"></FONT><FONT color=#000080 size=2 
face="Lucida Sans"></FONT><BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #000080 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px" 
dir=ltr>
  <DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left><FONT size=2 
  face=Tahoma>Michele Rossi<SPAN class=428554917-19042011><FONT color=#000080 
  face="Lucida Sans">&nbsp; wrote:&nbsp;</FONT></SPAN></FONT><BR></DIV>
  <DIV></DIV>
  <DIV>you're right, at the moment the only open source implementation of olap4j 
  that I know of is mondrian.</DIV></BLOCKQUOTE>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">Well, there's the XMLA driver for olap4j. You can use that to 
talk to a lot of databases, including the open source OLAP database, 
Palo.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">And there is your use case: using the XMLA driver plus server 
to build a proxy. Pretty useless on its own, but you could extend it to do some 
cool architectural things: access control, routing, caching.</FONT></SPAN></DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #000080 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px" 
dir=ltr>
  <DIV>But for example we have decided to use Olap4j as API for our internal 
  proprietary system too.</DIV>
  <DIV>In the future there might be more "mondrians" out there.. unlikely but 
  who knows.</DIV></BLOCKQUOTE>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">Of course one hopes that there will be multiple 
implementations of a&nbsp;specification. But a good spec it is useful in itself; 
it saves a lot of design time if someone has already designed an API, test 
suite&nbsp;and tool set for you. That's why I would advise others building OLAP 
capabilities to implement the olap4j spec.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">Other reasons to split out the XMLA server from 
mondrian:</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">1. Mondrian is a large piece of code. It is difficult to 
maintain and especially difficult to contribute to. If we can carve it up into 
smaller modules, we get more contributions.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">2. The XMLA server was using mondrian's legacy API. We want 
to remove that API someday.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">3. The olap4j API is intentionally similar to XMLA. You'll 
find similarly named classes and attributes in both. Making the XMLA server run 
on top of the olap4j API.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">4. Modularizing the XMLA server (i.e. removing unnecessary 
dependencies on Mondrian) allows new architectural options. I had never dreamed 
that someone would want to build an XMLA proxy.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">5. Mondrian is an embeddable engine, but it doesn't quite 
have the services necessary to make it a full server. (The ability to run as a 
service, e.g. start up when the O/S starts; Authentication; Assignment of roles 
based on who is making the connection; A repository of schemas.) Mondrian's XMLA 
server had some of those services. Refactoring forced us to make those services 
explicit, and pluggable.</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr><SPAN class=428554917-19042011><FONT color=#000080 size=2 
face="Lucida Sans">Julian</FONT></SPAN></DIV>
<DIV dir=ltr><FONT color=#000080 size=2 
face="Lucida Sans"></FONT>&nbsp;</DIV></BODY></HTML>