aspose file tools*
The moose likes EJB and other Java EE Technologies and the fly likes A service that hides Local/Remote EJB Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "A service that hides Local/Remote EJB" Watch "A service that hides Local/Remote EJB" New topic
Author

A service that hides Local/Remote EJB

SU Lingam
Greenhorn

Joined: Feb 09, 2005
Posts: 6
I'm looking for developing a prototype that would do the following.This service by default would go and fetch the local EJB if it exists by default else it woould go for a Remote access of the bean.The client is unaware whether he calling a Local or a Remote EJB.This prototype is like a decorator.

Is this do-able/worth a shot.

What do you think?

Thanks
Jesus Angeles
Ranch Hand

Joined: Feb 26, 2005
Posts: 2046
At some level of the system you are architecting, that layer wouldnt know if the ejb that is eventually servicing it is being accessed locally or remotely.

However, usually, in the industry, a layer close to the ejb, knows exactly if the ejb has local and/or remote interfaces, for overall efficiency reasons.
Valentin Tanase
Ranch Hand

Joined: Feb 17, 2005
Posts: 704
Hi SU,


The client is unaware whether he calling a Local or a Remote EJB.This prototype is like a decorator.

Is this do-able/worth a shot.

First you might take a look at the Service Locator design pattern:

http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html

There are slightly differences between the way the ServiceLocator returns local vs remote home references, as well as the way the initial context is created. In your design you can use either one ServiceLocator that can cache both local and remote interfaces, or you can use two distinct service locator instances. However the choice, in order to fully abstract the clients from your ejbs you need to provide one more layer of indirection: the business delegates.

http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html

This new layer will locate the service, invoke business methods, catch specific exceptions, etc. The business delegates will fully decouple your clients from the business services.
Regards.


I think, therefore I exist -- Rene Descartes
Ajith Kallambella
Sheriff

Joined: Mar 17, 2000
Posts: 5782
Su,

I hope that you are aware of the effect of local/remote ejb invocations on the arguments passed to method calls. If your locator is assumed to return either a local or a remote ejb reference, you should also make sure that the internal states of the objects passed are consistent and predictable across the two scenarios.


Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).
SU Lingam
Greenhorn

Joined: Feb 09, 2005
Posts: 6
Thanks for sharing your thoughts...
Karthik Guru
Ranch Hand

Joined: Mar 06, 2001
Posts: 1209
I think you should look at this..
Spring & EJB..
NikhilN Kumar
Greenhorn

Joined: Jun 30, 2003
Posts: 9
The point still is, shouldn't the Service Locator encapsulate the invoker from the nature of the service? And how is the invoker to know which to use? Shouldn't the lookup be encapsulated, and a setting be made available, so that in a sticky situation with the service and the service requestor being local you can call the service while being unaware that a local lookup is being used, and when the application becomes distributed, equally unimpacted by that change as the Service Locator does what it says, i.e. finds the service.

From a responsibilities perspective, who should be aware if the interface is local or remote - the Business delegate or the Service Locator?

Looking for input as I am implementing this right now....
NikhilN Kumar
Greenhorn

Joined: Jun 30, 2003
Posts: 9
Also, to add to my earlier request, I noticed that IBM and I am sure other companies are recommending that we dont use caching in Service locators, after J2EE 1.3 (or is this just a WebSphere feature)...

http://www-128.ibm.com/developerworks/websphere/techjournal/0410_woolf/0410_woolf.html
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: A service that hides Local/Remote EJB
 
Similar Threads
Local session bean call from a client in a different jar
Stateless bean also exposed as web service?
WSIF Question
SLB-local, home, endpoint interface
Locating Local vs Remote Home interfaces