|
|
|
|||||
|
Best practices: using ICE with object containers
This relates to my last question regarding ICE and EJBs.
I am wondering if there are any best practices for how one should expose existing container managed objects (like EJBs or Spring beans, or objects managed by some IoC container) through an ICE API. It seems that with ICE favouring one approach to concurrency control and life-cycle management, and the container having its own ideas about the same issues, there is some mismatch that seems hard to resolve. Are there some special techniques that are helpful? Karl |
|
|||||
|
Quote:
For instance, if the application server receives a call for an object (EJB), it gets (or instantiates) the object from the container (factory) and dispatches the call to it. I don't see how ICE comes into the picture, as it would have to do what the application server does. Obviously I can write a separate ICE process that calls into the application server as a client (through remoting), but that adds a level of complexity. EJB containers support calling EJBs through IIOP without such a proxy server. So, I assume proper ICE support would have to be built into the application server itself. Now, given a framework like Spring, which does not necessarily require an application server, things look more hopeful, as ICE can assume the role of the server. But is still more cumbersome compared to the built-in Spring remoting which allows for declaratively exposing a bean as a remote service. See for instance here: Chapter 17. Remoting and web services using Spring Just trying to find an elegant way to get ICE inserted. Karl |
|
|||||
|
Our initial implementation of the OMERO server was a Spring context within a JBoss server. We currently support both a JBoss and an Ice-based server, which was relatively straight-forward using Ice's tie classes and the Spring interceptors which were already in place within JBoss.
If you have JBoss with Spring, I can explain how to go about this. If not, keep things simple. Using Ice and Spring together is really no issue at all. The only way to get Ice and JBoss to work together short of significant work on the JBoss remoting library is to have the Ice thread pool active "symbiotically" within JBoss. This works and we've done it, but it's not really sensible. |
|
|||||
|
Thank you for your feedback.
Quote:
Quote:
Just curious, If you have an ICE-based OMERO server, why do you also offer a JBOSS based version? Karl |
|
|||||
|
Quote:
As for your architecture, if I were in your position I'd suggest coming up with a stable Ice server, using Spring internally. When it comes time for web services, you can either:
Hope that's of some use. ~Josh. |
|
|||||
|
Quote:
Thank you very much, Karl |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| HA-icestorm and icestormmigrate tool best practices | dhogan | Help Center | 1 | 04-23-2008 06:38 PM |
| Object* add(Object servant, Identity id),can the servant be static object? | russule | Help Center | 2 | 06-23-2007 07:19 AM |
| About Ice Best Practices:What is the best way to client locating the servant? | sgsoft | Help Center | 2 | 06-04-2007 01:54 AM |
| How to pass complex C++ containers in ICE? | jvme | Help Center | 1 | 08-04-2005 05:30 PM |
| Object Factories and object initialisation | Nis Baggesen | Help Center | 1 | 09-30-2004 07:40 AM |