[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.technology.riena] Re: project similar to riena

Christian Campo ha scritto:
Hi Filippo,

Always good to hear from people that are building Riena type applications.

You found boilerplate code in Riena ? I am not sure what classes you are refering
too. But I guess if its not in the samples and testcases, then this bound
to happen in a generic framework. It contains the code that you as an application
programmer don't need to write anymore.
That part should be mostly in the ServiceInjector and in the publisher packages.

Hi Christian, I was exactly referering to the ServiceInjector and publisher packages.


Have we considered using Spring OSGI instead ? That would just move the boilerplate code to Spring wouldn't it and add a bunch of bundles as a fixed dependency to Riena if I get you right.

Yes, Spring contains all the needed infrastructure for the general
application configuration, so all the dependency injection code and services lookup logic is inside it. Anyway the springframework is distributed as a single bundle (it's about 2.5mb) or as multiple bundles. In my case, I'm using the single bundle so it's just 1 fixed dependency.


There is nothing wrong with creating applications on top of Riena using Spring OSGi.
Only that we didn't want to force everybody to always have the extra bundles from Spring OSGi.

I completely agree with this line, since including Spring would mean more than including an extra bundle, but the spring "way" of handling the application.


Anyway, in order to avoid any names confusion, I'd like to clarify that with the springframework I mean the Springframework itself and not Spring OSGi (which is now called Spring Dynamic Modules for OSGi Service Platforms). The springframework is distributed as a library and it is also an OSGi bundle while Spring modules for OSGi is a spring project which helps to build OSGi bundles.

Concerning security we are also using JAAS based security for authentication and authorization only that we are more aiming at
> using equinox security once it gets
ready and rather not use a Spring-focused component like Acegi.

I agree again.

In our case, Acegi was a perfect fit, since it can seamlessly connect to several backend systems to check authentication data, and we are deploying our application in different enterprise contexts.

What are you doing about the other topics that Riena plans to adress:
- persistency

ATM, the client doesn't contain any data on startup, and all data are fetched from the server. We are already implementing the process oriented UI, so there's no concept of projects or classical workspace.


Persistency is handled server side, with hibernate (with the usual service->dao->db pattern).

Complex data are lazily loaded almost like in a web app with the opensession in view pattern, so we transfer the minimum needed amount of bytes for each serialized object and load the remaining part only when needed (for example when the user loads the object in an editor to edit/change it). You can find the code we wrote for this functionality on:

http://openutils.sourceforge.net/openutils-spring-rmibernate/source-repository.html

Again we rely on the spring presence, but the concept itself may be replicated in any context.

- objecttransactions

Do you mean db transactions or object workflows? In the first case, spring has transaction support out of the box, in the second case we have the workflow logic in the client code: for example there's an object whose editor knows about its logical workflow. This is probably not a best practise, but it has proven solid and quick to develop.


- integration of local apps

Currently we export data from tables in excel format, using custom code to format table data appropriately in the excel file. Besides this, there has been no need for tighter integration with the local office apps, since the client itself offers alot of means to analyse data (graphs, tables, metadata, etc). I'm exploring the possibility to use the SWT OLE bridges, but I wish I can avoid any platform specific features and keep the client multiplatform.


- software update

No software updates up to now. Currently we release both the complete client and server to our customers. Since the client cannot run in offline mode, and the server is not OSGi based, making the update available only for the client when you manually have to stop and redeploy the server, has no advantanges.


I think that software updates are a really cool way of handling new releases if you have both the client and the server based on the OSGi platform.

- a different UI

What do you mean by different UI?

- etc.

Any requirements or proposals from you on that ?

This mail was just a brief explanation of the general design and solutions we have adopted. I'm going to read riena specs once more, and write more considerations/requirements/proposal focusing on one feature at a time.


I'm sure we can exchange alot of interesting ideas.

Cheers,
Filippo