Hi all,
I'm developing a client server application, with a structure similar
to riena. In my case I'm using a spring based application (started by
tomcat) and spring + eclipse rcp on the client, so the main difference
with riena is the lack of OSGi technologies on the server (so no
automatic service discovery and so on), and the availability of the
dependency injection pattern in the client even for UI components.
I've been reading all the discussions about network transparency and
the client/server communication protocol. I'm using spring remoting for
c/s communications, so I can switch from RMI to Hessian or to other
protocols with no changes to the system infrastructure. Our client
interface doesn't block on remote calls, since all remote method
invocations are explicitly handled inside Jobs. The user can check which
jobs are in progress using the standard eclipse progress manager and we
handle uncatched exceptions with a global exception handler.
In the current Riena code I've seen some boilerplate code to register
and track the available remote services, which in case of spring are
automatically handled through dependency injection.
With regard to security we are using jaas to handle the login/logout
process and acegi security to enforce the security policy on the server.
Acegi plays well with spring and it makes the user security context
seamlessly available on the server even with the RMI protocol. With
Acegi we also handle security on the client, exploiting the eclipse
activities/capabilities apis to hide UI components from the user.
Spring is now shipping in a OSGi bundle form which works well in as an
eclipse plugin.
Have you ever considered the use of spring within Riena?