status / biserver integration - HELP!

0 views
Skip to first unread message

Paul Stoellberger

unread,
Nov 29, 2009, 5:36:38 PM11/29/09
to pentahoanal...@googlegroups.com
Hello out there,

PAT is coming along pretty well.
We have recently implemented some major features like:
- drilling
- chart drilling
- query saving/load
- excel export

Now one of the big new things we plan for 1.0 is the biserver integration.
I've put some thought into this in the past few days and came up with the list below.

I'm not a full-time (GWT) Java Developer nor I know how things are supposed to work in the platform. So I can't do this alone... would be cool if one of you guys who read this could team up with me/us and help us out so we have another cool analysis tool in the platform :-)

it's our goal to create a biserver plugin that fully integrates PAT into the platform
for that we need to sort out the following things:

1. JAR-hell: 
we need to find out which libs are needed in the biserver integrated PAT, we can get rid of spring, JDBC driver etc. but the main problem with the libs is that we use different versions than the biserver (e.g olap4j). since we don't have an isolated class path etc. we need to decide which libs overrule which and how to replace that easily so we can have a nice and easy plugin install

2. get our gwt-servlets and gwt-app running in the biserver
i didn't have enough time to look into the aaron's sample plugins and see how this is supposed to work
generally i'd say this can't be that complex, but on the other hand i don't really know how to do it yet

3. PAT hibernate = biserver hibernate
currently we're using our own in-memory hsqldb instance for Hibernate. we need to merge that and use the same hibernate config as the biserver
if table names collide we could rename ours if necessary. 

4. connect / merge security
i think this is quite easy, we use spring security and so does the biserver
we haven't made much use of the security yet, so it should be easy to adapt for the integration

-------
thats the most important bit. getting PAT to work properly within the biserver. 
the next few things are important as well and need to be sorted at some point but can wait for now
------
5.  save / reload / new queries
we save our queries in hibernate, so in our new content type for the biserver we just have a few parameters we pass to a new PAT instance (same for saving)
right now we don't have much idea how our communication with the biserver's solution repository is supposed to work (for saving)

6. replace the new analysis query with PAT dialog  
we have kind of the same dialog like JPivot and Clearview for creating a new Query: List of Connections + Cubes and then choose between a mdx query or query wizard
i know that we can replace some buttons etc. in the PUC but e.g i don't know how we can load up a single PAT GWT window without loading full-PAT

7. PAT + biserver should share the same datasource (olap4j)
now we all know this is not possible right now, but for a fully integrated PAT thats needed. so we share the cache etc.

thats sort of the action plan for the biserver integration.
as soon as we know how we should deal with the stuff listed above we need to sort out our project environment for it (ideally we should be able to support standalone PAT build and biserver-plugin by just choosing a different maven goal). But i guess we can sort that out ourselves.

If anyone has some feedback / thoughts on this topic or this particular list... just reply to this mail and let us know please!

Looking forward to some inspiring discussion and/or development with you!  :-)

-paul

Pedro Alves

unread,
Nov 29, 2009, 7:23:04 PM11/29/09
to pentahoanal...@googlegroups.com


On 11/29/2009 10:36 PM, Paul Stoellberger wrote:
>
> *3. PAT hibernate = biserver hibernate*
> currently we're using our own in-memory hsqldb instance for Hibernate.
> we need to merge that and use the same hibernate config as the biserver
> if table names collide we could rename ours if necessary.
>
> *5. save / reload / new queries*
> we save our queries in hibernate, so in our new content type for the
> biserver we just have a few parameters we pass to a new PAT instance
> (same for saving)
> right now we don't have much idea how our communication with the
> biserver's solution repository is supposed to work (for saving)
>


I've done both. Ping me if/when you want.


-pedro

Aaron Phillips

unread,
Nov 30, 2009, 10:19:39 AM11/30/09
to pentahoanal...@googlegroups.com
On Sun, Nov 29, 2009 at 5:36 PM, Paul Stoellberger <paul.sto...@aschauer-edv.at> wrote:
1. JAR-hell: 
we need to find out which libs are needed in the biserver integrated PAT, we can get rid of spring, JDBC driver etc. but the main problem with the libs is that we use different versions than the biserver (e.g olap4j). since we don't have an isolated class path etc. we need to decide which libs overrule which and how to replace that easily so we can have a nice and easy plugin install
 
The good news is platform plugins have isolated classloaders and as of Sugar release, this classloader can override classes in the parent (Pentaho WebApp) classloader.  So it's actually not as complex as you might think.  If you want your conflicting version of commons-lang or whatever, just place it in your plugin lib folder and it will be used instead of the one from the WEB-INF/lib of the platform.
 
2. get our gwt-servlets and gwt-app running in the biserver
i didn't have enough time to look into the aaron's sample plugins and see how this is supposed to work
generally i'd say this can't be that complex, but on the other hand i don't really know how to do it yet
 
I can definitely help with this.  The idea is explained a bit on the plugin reference page:  http://wiki.pentaho.com/display/ServerDoc2x/Developing+Plugins#DevelopingPlugins-MoreonGWTRPCservice%28asof3.5%29

3,4,5: These things are doable.  I think Pedro has done hibernate integration as well.  Regarding the persistence of queries, you will probably want to setup a new content type, something like .xpat, into which you can store your query and retrieve and run it.  The plugin layer has mechanisms for introducing a new content type (file-type) and responding to actions on it like "run".

6. replace the new analysis query with PAT dialog  
we have kind of the same dialog like JPivot and Clearview for creating a new Query: List of Connections + Cubes and then choose between a mdx query or query wizard
i know that we can replace some buttons etc. in the PUC but e.g i don't know how we can load up a single PAT GWT window without loading full-PAT
 
Not sure I understand the issue here.  If you are concerned with cpu time loading gwt-generated javascript, I believe there is a feature of gwt-1.6/1.7 that makes lazy loading of JS possible.

Paul, I'd be more than happy to help with this effort.  As you know, I have a vested interest in platform plugins.  Interestingly, I am planning to tear JPivot out of the platform and make it a plugin, which would pair nicely with the arrival of PAT as an alternate plugin for analysis views.  I know Gretchen started a plugin for PAT a while ago.  We should probably take a look at that and see how much has changed since then.  We may be able to get some use out of it.

Cheers,
Aaron
 

Reply all
Reply to author
Forward
0 new messages