# IT:AD:DDD:Components/App.AppHost # * [[../|(UP)]] * See also: * [[IT/AD/Patterns/DDD/Components/3Tier/App.AppHost/]] * [[IT/AD/Patterns/DDD/Components/4Tier/App.Back.AppHost/]] ## Summary ## The separation of the [[IT/AD/Patterns/DDD/Components/4Tier/App.Front.Presentation|App.Front.Presentation]] from [[IT/AD/Patterns/DDD/Components/4Tier/App.Back.Application|App.Back.Application]] across two `Tiers` implies the following: * The Front Tier is to be considered `thing`, as its application logic is practically non-existent (it concerns itself with Presentation only). * The Back Tier’s [[IT/AD/Patterns/DDD/Components/4Tier/App.Back.Application|App.Back.Application]]’s Services are exposed -- via [[IT/AD/Patterns/DDD/Components/4Tier/App.Back.Application.Facade|App.Back.Application.Facade]] -- to the Front Tier’s [[IT/AD/Patterns/DDD/Components/4Tier/App.Front.Infra.Services.Agents|App.Front.Infra.Services.Agents]]. * For performance reasons, operations across the tiers are to be Chunky, not Chatty, and the results Cached in the Presentation Tier whenever reasonable. * Requests between the Front Tier and Back Tier can be Load Balanced as required. When the Presentation Layer requires data, it (where appropriate) invokes a Service within [[IT/AD/Patterns/DDD/Components/4Tier/App.Front.Infra.Services|App.Front.Infra.Services]] which first checks for valid cached data within the Front Tier, and if none found creates a new `Service Agent` to communicate with the Back Tier’s [[IT/AD/Patterns/DDD/Components/4Tier/App.Back.Application.Facade|App.Back.Application.Facade]]. The Service Agents deserialize the returned streams into proxy entities defined in [[IT/AD/Patterns/DDD/Components/4Tier/App.Front.Domain.Entities|App.Front.Domain.Entities]]. In some cases the proxy entities are cached using a Front Tier defined implementation of `App.Infra.Services.ICachingService`.