Jini Service as local object reference
Francisco Dário Mourão <[email protected]> Wed, 26 Dec 2007 12:57:40 -0000
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
Hi there,
I'm trying to develop a service which can be configured to run as Jini service or to run as local object, when used by a client application.
The reason is that I want to remove the RMI overhead of a method call when, in a specific environment, I know that I'll always use the service locally.
To be more specific:
I launch an environment by launching several services. For instance: ClientService and ServerService (ClientService acting as client of ServerService).
On an environment type A: I launch a ClientService on host1 and ServerService on host2 (Both Jini services)
On an environment type B: I launch a ClientService and ServerService on host1 (Both Jini services)
What I want to do is to improve performance for type B environments, by configuring ServerService to run as a "local service", and thus eliminate the RMI overhead of ClientService to ServerService method calls and ServerService event invocations to ClientService.
When ServerService run as Jini, I'm creating a pure RMI proxy for the implementation:
serviceImplementation = new ServerServiceImpl(this);
proxy = (IService) exporter.export(serviceImplementation);
... where exporter is configured like this:
/* Exporter for the server proxy */
exporter = new BasicJeriExporter(TcpServerEndpoint.getInstance(0),
new BasicILFactory());
What should I do to have ClientService to use ServerService as if it were a local object reference?
At a first glance you could say that to accomplish what I want, I would simply have to make ServerService proxy = serviceImplementation:
serviceImplementation = new ServerServiceImpl(this);
proxy = (IService) serviceImplementation;
That was what I thought too. The problem is that my serviceImplementation is not Serializable!!!
Does anyone know how can I overcome this problem?
Should I implement a LocalProxy which implements Serializable? But how can it reference the serviceImplementation when serviceImplementation is not serializable?
Thanx for the help.
--------------------------------------------------------------------------
Getting Started: http://www.jini.org/wiki/Category:Getting_Started
Community Web Site: http://jini.org
jini-users Archive: http://archives.java.sun.com/archives/jini-users.html
Unsubscribing: email "signoff JINI-USERS" to [email protected]