Use the Business Delegate pattern to shield your web tier controllers from the fact that some of your app’s model components are remote.
Business Delegate features
Acts as a proxy, implementing the remote service’s interface.
Initiates communications with a remote service.
Handles communication details and exceptions.
Receives requests from a controller component.
Translates the request and forwards it to the business service (via the stub).
Translates the response and returns it to the controller component.
By handling the details of remote component lookup and communications, allows controllers to be more cohesive.
Business Delegate principles
The Business delegate is based on:
hiding complexity
coding to interfaces
loose coupling
separation of concerns
Minimizes the impact on the web tier when changes occur on the business tier.
Reduces coupling between tiers.
Adds a layer to the app, which increases complexity.
Method calls to the Business Delegate should be coarse-grained to reduce network traffic.