Architecture styles
As an architect you design for the present, with an awareness of the past, for a future which is essentially unknown
An architectural style is a set of principles and an architecture style is a family of architectures that share certain characteristics. For example, N-tier is a common architecture style. More recently, microservice architectures have started to gain favor. Architecture styles don't require the use of particular technologies, but some technologies are well-suited for certain architectures.
An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. Architectural styles provide several benefits. The most important of these benefits is that they provide a common language.
Another benefit is that they provide a way to have a conversation that is technology-agnostic.
This allows you to facilitate a higher level of conversation that is inclusive of patterns and principles, without getting into the specifics. For example, by using architecture styles, you can talk about client-server versus N-Tier
Key Architectural Styles in SE
The following table lists the common architectural styles described in this chapter.
- Client-Server Segregates the system into two applications, where the client makes a service request to the server.
- Component-Based Architecture Decomposes application design into reusable functional or logical components that are location-transparent and expose well-defined communication interfaces
- Layered Architecture Partitions the concerns of the application into stacked groups (layers) such as presentation layer, business layer, data layer, and services layer.
- Message-Bus A software system that can receive and send messages that are based on a set of known formats, so that systems can communicate with each other without needing to know the actual recipient.
- N-tier/3-tier Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer
- Object-Oriented An architectural style based on division of tasks for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object
- Separated Presentation Separates the logic for managing user interaction from the user interface (UI) view and from the data with which the user works
- Service-Oriented Architecture (SOA) Refers to Applications that expose and consume functionality as a service using contracts and messages.
- Some factors include the capacity of your organization for design and implementation; the capabilities and experience of developers; and the hardware and deployment scenarios available.
- The architecture styles are related, so effectively you will be choosing a mix of architecture for your scenario. For example, when choosing a layered architecture, you may also choose to use an object-oriented or component-based design.
Comments
Post a Comment