An enterprise application consists of various layers. Each layer is independent and fewer dependencies on the other layer that makes it more pluggable and easy to maintain. Communication with other layers can be made through interfaces that encapsulate the logic or implementation details from the calling layer. Normally, business applications are n-tiered and logically divided into the presentation layer, service layer, business layer, and data access layer. The benefits of layered architecture are as follows:
- It is a loosely coupled system
- Teams can work on different layers, in parallel, with minimal dependencies on other teams
- Changes to any layer in terms of technology or business logic have little impact on the other layers
- Testing can be done easily