[Mondrian] xmla over olap4j server

Paul Stoellberger p.stoellberger at gmail.com
Tue Apr 19 10:11:15 EDT 2011


there will be a oracle olap driver at some point too. luc said its on his todo list.

but i'd rather use the olap4j api directly than exposing my olap4j as xmla. this is only beneficial if you have a nice existing xmla client that you want to use for accessing system.

i think julians point with this refactoring is to hide the mondrian api and making the olap4j api the only one that matters. 
and as a nice side effect you get an xmla server for all olap4j compatible systems. 

i would expect the xmla-servlet code to move to olap4j at some point.

paul


Am 19.04.2011 um 14:56 schrieb Michele Rossi <m.rossi at iontrading.com>:

> you're right, at the moment the only open source implementation of olap4j that I know of is mondrian.
> But for example we have decided to use Olap4j as API for our internal proprietary system too.
> In the future there might be more "mondrians" out there.. unlikely but who knows.
> 
> Michele
> 
> 
> On 19 April 2011 15:44, Andy Grohe <agrohe21 at gmail.com> wrote:
> I think that states it clearly.
> 
> Now we just need more olap4j implementations that Mondrian. :)
> 
> So the xmla server requires an olap4j implementation in the engine side?
> 
> Thanks
> 
> Sent from my iPhone
> 
> On Apr 19, 2011, at 8:00 AM, Michele Rossi <m.rossi at iontrading.com> wrote:
> 
>> hi,
>> The xmla servlet is not actually being split from the mondrian codebase (at least for now).
>> However its functionality is very distinct from Mondrian and refactoring the two functional areas is a matter of clean design and separation of concerns. 
>> 
>> Having an XMLA Servlet that can rely on a standard OLAP4J driver instead of the native mondrian API will allow other OLAP engines that have an OLAP4J driver to be exposed via XMLA.
>> 
>> Another angle on this is that until now mondrian has been both a server (xmla) and an aggregation engine.
>> The idea is to split the two things. 
>> Mondrian can keep being an engine, and the XMLA Servlet allows anyone with an OLAP driver to become an OLAP Server.
>> 
>> Julian can probably put it in a better way.
>> 
>> thanks,
>> Michele
>> 
>> 
>> 
>> 
>> On 19 April 2011 14:17, Andy Grohe <agrohe21 at gmail.com> wrote:
>> What are the advantages of splitting out xmla from Mondrian to the community?  At this time, they seem linked in my mind.
>> 
>> Sent from my iPhone
>> 
>> On Apr 18, 2011, at 11:20 PM, Julian Hyde <jhyde at pentaho.com> wrote:
>> 
>>> Michele,
>>>  
>>> I have checked in your changes as change 14208. I moved things around a bit -- I moved your olap4j connection factory out of XmlaServlet into a new derived class, Olap4jXmlaServlet. And the previous functionality, to start an embedded mondrian server, is in a new subclass MondrianXmlaServlet.
>>>  
>>> I hope that I have preserved the intent of your changes.
>>>  
>>> Thanks for the contribution. It definitely moves us down the road to an XMLA server that is independent of mondrian.
>>>  
>>> Other users (including Pentaho BI server team), take note: Applications that used DefaultXmlaServlet should probably now use MondrianXmlaServlet.
>>>  
>>> Julian
>>> 
>>> From: Michele Rossi [mailto:michele.rossi at gmail.com]
>>> Sent: Friday, April 15, 2011 1:36    AM
>>> To: Mondrian developer mailing list
>>> Cc: jhyde at pentaho.com
>>> Subject: Re: [Mondrian] xmla over olap4j server
>>> 
>>> [ re sending to the whole list as requested by Julian ]
>>> 
>>> Hi Julian,
>>> I've completed the first stage of the xmla-over-olap4j work.
>>> 
>>> I still haven't found out how to create patch files - it can probably be done using the p4 client, I will look at it tomorrow.
>>> 
>>> For now I am attaching to this email the three files that I updated and an example web.xml that shows how the servlet could be deployed.
>>> You can find most of my changes easily by searching for [MROSSI].
>>> 
>>> Initially I tried to split out the servlet from the rest of the Mondrian codebase but the dependencies are many and go fairly deep.
>>> I am not sure that such an endeavour would be very valuable.
>>> After all there is nothing wrong in just using the whole mondrian jar as it is.
>>> 
>>> I've tested my code using Excel and the SimbaO2X adapter.
>>> I can successfully connect to a Foodmart olap database in the following way:
>>> 
>>> Excel-->Simba-->My Server with the modified DefaultXmlaServlet-->Olap4j Xmla Driver-->A standard mondrian installation with a standard xmla servlet.
>>> 
>>> I will need to make some more changes to handle the credentials passed by Excel in the XMLA requests.
>>> I did most of the work last year but never contributed it back.
>>> 
>>> What do you think?
>>> How do you think I should proceed from this point?
>>> 
>>> Many thanks!
>>> Michele
>>>  
>>> 
>>> 
>>> On 11 March 2011 17:56, Julian Hyde <jhyde at pentaho.com> wrote:
>>>  
>>> 
>>> From: Michele Rossi [mailto:michele.rossi at gmail.com] 
>>> Sent: Friday, March 11, 2011 1:43 AM
>>> To: mondrian at pentaho.org; jhyde at pentaho.com
>>> Subject: Re: [Mondrian] xmla over olap4j server
>>> 
>>> [re-sending from my private email address as it's not working from my work address]
>>> 
>>> 
>>> Julian,
>>> I have a few questions for you:
>>> 
>>> 1. How do I get started?
>>> Can you create an account on perforce for me with write permissions? 
>>> Please submit your changes as patches attached to jira cases. We don't give people committer privileges until they have made a few successful contributions.
>>>  2. Olap4j drillthrough
>>> The mondrian olap4j driver implements drillthrough via the "executeQuery" method which returns a java.sql.ResultSet right? 
>>> Can we not leverage that method to implement drillthrough on the xmla server? 
>>> Possibly. Depends on your requirements. Mondrian's XMLA clients expect more in the XMLA response than is currently available in the ResultSet returned by that method. Therefore the XMLA server calls a method in XmlaExtra. The default implementation of XmlaExtra calls executeQuery. Same effect, longer route.
>>>  
>>> 
>>> 3. The new project:
>>> We will need a new "olap4j xmla server" project with its separate build an dependencies.
>>> Can you think of a good name for it?
>>> Perhaps Olap4jXmlaServer could be a good candidate :) 
>>> Sounds reasonable.
>>> 4. How to build the new project: 
>>> I know that mondrian is built using Ant.
>>> 
>>> Have you ever thought about starting to use Maven?
>>> I've used Maven successfully for years and I've totally forgot how to use ant.
>>> 
>>> I think it would also be beneficial in terms of linking olap4j releases with server releases.
>>> We could then distribute both olap4j, mondrian and the xmla server on public maven repositories. 
>>> At this point I don't want to create a new project. I would like to work with the xmla server code in situ in the mondrian code base, to learn what the necessary changes are, and where would be the appropriate cut points. Then I will help you factor it into another project. But first, let's get it working in situ.
>>>  
>>> Re. maven, see below.
>>> 
>>> 5. Proposed solution
>>> I can put together a webapp project quickly using the following ingredients 
>>> 
>>> a. maven build
>>> 
>>> b. unit tests based on mondrian: 
>>> You create an in-process mondrian instance and connect to it using the mondrian olap4j driver. 
>>> Then you hit the new server using the olap4j xmla driver. 
>>> You can then compare results making assertions on the equality of metadata and values.
>>> 
>>> c. The output artifact would a standard .WAR          file 
>>> 
>>> d. Jetty launcher
>>> I propose the creation of a jetty launcher too. 
>>> I can create such launcher using maven reasonably quickly. 
>>> The result would be a tar.gz file with a number of sub-folders, one of them containing the .war file discussed above, others containing shared jetty libraries and finally the .bat and .sh launchers.
>>> 
>>> We could then have a "cfg" folder with a template .properties file where a user would have to put the details of his/her favourite olap4j driver and the connection details. 
>>> All of the above sounds fine. In due course. But please, don't make big changes as the first step. (I've found that the most successful committers are the ones who submit small patches at first.)
>>>  
>>> In this case, the patches would be whatever hacks to mondrian's xmla server are necessary to build your flavor of the server. I will learn a lot from those patches.
>>>  
>>> When time comes to create the new project, we can discuss using maven. You'd have to make a strong case, because it would be a Pentaho project (containing about 15k of mondrian source code, plus unit tests) and Pentaho projects have standardized on using an ant+ivy+subfloor infrastructure.
>>>  
>>> Julian
>>> 
>>> 
>>> _______________________________________________
>>> Mondrian mailing list
>>> Mondrian at pentaho.org
>>> http://lists.pentaho.org/mailman/listinfo/mondrian
>> 
>> _______________________________________________
>> Mondrian mailing list
>> Mondrian at pentaho.org
>> http://lists.pentaho.org/mailman/listinfo/mondrian
>> 
>> 
>> 
>> 
>> -- 
>> 
>> 
>> Michele Rossi
>> 
>> <image001.jpg>
>> 
>> Via San Martino, 52, 56125 Pisa, ITALY
>> T: +39 050 220 3894
>> m.rossi at iontrading.com
>> http://www.iontrading.com
>> 
>> 
>> _______________________________________________
>> Mondrian mailing list
>> Mondrian at pentaho.org
>> http://lists.pentaho.org/mailman/listinfo/mondrian
> 
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian
> 
> 
> 
> 
> -- 
> 
> 
> Michele Rossi
> 
> <image001.jpg>
> 
> Via San Martino, 52, 56125 Pisa, ITALY
> T: +39 050 220 3894
> m.rossi at iontrading.com
> http://www.iontrading.com
> 
> 
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20110419/8b35992b/attachment.html 


More information about the Mondrian mailing list