Hides the calling client from looking up distributed components. It calls the business methods from the ServiceLayer? and propagates any remote exceptions as application exceptions.
How is this different from ProxyPattern / AdapterPattern / DecoratorPattern?
The term is in use and it is good to have a definition. A business delegate is not exactly like a proxy as the delegate can make changes to the interface, as long as the sematics of the business logic are preserved. For example, the method signatures could have network specific exceptions mapped. A Business Delegate in a CORBA system might hide CORBA specific types and map them to C++ STL types. It is also different from a facade, as a facade can make substantial changes to the semantics of the interface. -- RichardHome.
The core notion of a BusinessDelegate is to hide obtaining the reference to a distributed object inside a standard Java class, thus making the programming model look like the standard Java programming model. This notion is also captured in the older idiom on Wiki EncapsulateObtainingReferences.
Where I work people will tell you we have a SessionFacade layer and a BusinessDelegate layer. The goals and responsibilities given for each was confusing and a bit overlapping. SessionFacade has a good description here at c2 but this one seems a bit cursory. Could someone expand a bit on the differences between these two or perhaps just flesh this one out a tad? Thanks. --Jeff
I second this last request, for the same reason: the two patterns of Facade and BusinessDelegate seem one-in-the-same. RichardHome's description does not clarify the distinction between the two, unless his intent was to indicate that the only distinction lies in the extent to which the delegate and facade modify the interfaces that they are abstracting. -- chb