<!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> </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"> wrote: </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> </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 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 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> </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> </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> </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> </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> </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> </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> </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> </DIV></BODY></HTML>