Ingo,

I cannot say what is best, but I can tell you how I have done things and how
I have seen it done in other places.

The quick answer to your question is that I think you should have both:
- a facade
and
- a business delegate

Let me provide an example from the Apache AXIS web services code generation
framework to support this decision.

One of the objectives of the axis architecture is to be able to implement a
WEB services client that has absolutely no compile time dependencies upon
the SOAP technology.  The way that axis accomplishes this is that it
generates an object called a service locator object.

The service locator object is essientially a factory that has the job of
creating the correct business delegate implemenation object for the
particular method call invocation technology.  For example: the factory
object can create a business delegate object that accesses the remote
services via SOAP (the typical web services transport mechanism) or it could
create an business delegate that accesses the remote services of an
EJSession Bean object via RMI or it could use objects that exist within the
same JVM.

Therefore I would recommend an architecture with the following pieces:
- a Business Delegate interface that represents some set of remote services
- a Session Bean that implements the remote services
- a Business Delegate implementation which calls your Session Bean
- a Business Delegate Factory that manufactures Business Delegate objects

The initial implementation of that factory would manufactures the business
delegate object that knows how to use EJSession Bean technology.

If you follow the above pattern then the same client code can function from
any side of a firewall, or can use any variety of transports such as SOAP or
RMI. That is the approach we use to implement the services at the web site:
http://www.nextbus.com. We interact with our partners to get our vehicle
location data use a variety of network method invocation technologies (SOAP,
RMI, raw UDP, ...).

The apache WSIF project promotes a similar idea.  See:
 http://ws.apache.org/wsif/

I hope that answers your question.

Tony Mowers




> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Ingo
> Bruell
> Sent: Thursday, October 16, 2003 11:52 AM
> To: [EMAIL PROTECTED]
> Subject: [Andromda-user] Design question
>
>
> Hi,
>
> i am writing my own cardridges and have a question about generating
> session facades to hide the entities.
>
> I have modeled a class FooFacade with the stereotype <<Facade>>. This
> class has associations to the Entity classes (<<EntityRef>>) which
> should be accessed via this facade. So i generate this facade with some
> createing, accessing (vo's) and removeing functions for each
> association. Additional functions could be added throu the model.
>
> I want to generate the Delegation class at the client side similar.
>
> Do you think this is a good way or is it better to generate a facade for
> each bean like xdoclet does ?
>
>
> --
> best regards
>
> Ingo Bruell
>
> --
> <[EMAIL PROTECTED]>
> <ICQ# 40377720>
> Oldenburg  PGP-Fingerprint: CB01 AE12 B359 87C4 BF1C  953C 8FE7
> C648 169E E5FC
> Germany    PGP-Public-Key available at pgpkeys.mit.edu
>



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
_______________________________________________
Andromda-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-user

Reply via email to