01 logo

Technology Architecture Types and related Architectural Styles

In this story, you will learn the relationship between the different types of technology architectures, architectural styles and design patterns

By Haitham RaikPublished 2 years ago Updated 2 years ago 4 min read
2

Technology Architecture Origins

Architecture, as many other terms in the computing industry, is derived from other domains, and in this case, it is a metaphor derived from the domain of building constructions and became associated with the technology (Technology Architecture) to describe the structure of any piece of technology.

Technology Architecture derived from the building construction domain

Types of Technology Architectures

As Technology was evolving over time, new specialized types of architecture have emerged into Hardware Architecture and Software Architecture which have been specialized further into more fine-grained types.

For example, Software Architecture itself has been diversified into a number of specialized architectures (e.g., Application Architecture, Integration Architecture, Data Architecture, Information Security Architecture, etc.). To learn more about Software Architecture history, please read the following story "Software Architecture History"

With more specializations, it becomes common to see large enterprises employ different roles to handle different types of architectures, which generated the need to have a role within the enterprise itself to orchestrate and govern the relationship between all of these architects. This role is known as Enterprise Architect.

Fine-grained Architectural Types

Related Architectural Styles

Each one of these Architectural types has different architectural styles addressing different types of problems. Each architectural style has its own guidelines, principles, standards, practices, and design patterns.

Most comment Architectural Styles for each Architectural Type

As any other inheritance relationship, the architectural type can extend or override the standards and principles of its parents. For example, the Don't Repeat Yourself (DRY) principle is a Software Architecture principle that applies to all of its Childs (.i.e., it can be applied to applications, integrations, data, etc.).

Related Design Patterns

As mentioned previously, each architectural style can have its own design patterns as shown below:

Architectural Styles and Design Patterns

Enterprise Application Design Patterns

To learn more about enterprise application patterns, read the book "Patterns of Enterprise Application Architecture, by Martin Fowler"

SOA Design Patterns

To learn more about SOA Design Patterns, read the book "SOA Design Patterns, for Erl"

Microservices Design Patterns

To learn more about Microservices Design Patterns, read the book "Microservices patterns, for Richardson"

Enterprise Integration Patterns

To learn more about Enterprise Integration Patterns, read the book "Enterprise Integration Patterns, for Hohpe"

It is highly recommended to read the following article, to learn more about the above styles and patterns "Books for Great Software Architects".

Don’t forget to subscribe to get notifications for my new articles and stories

Definitions

In the following, we will give a brief definition of the most important architectural types:

Technology Architecture

The fundamental and foundational aspects of physical design of some piece of technology.

SOA Design Patterns by Erl

Software Architecture

Software Architecture describes the fundamental structure of software. Software Architecture can be either Application Architecture, Integration Architecture, or Data Architecture and it can mean all of them.

Application Architecture

Application Architecture is a description of the subsystems and components of software and the relationships between them. Subsystems and components are typically detailed in different views to show the relevant functional and non-functional properties of software. For more details about the difference between Subsystem and Component, please read "Main Concepts in Software Architecture"

Note: Sometimes people say Software Architecture and they mean Application Architecture.

Enterprise Application Architecture

Enterprise Applications is a sub-type of Application Architecture that requires involvement of persistent data and it must support concurrent access through many UI screens. Enterprise Applications are also known as Information Systems.

Patterns of Enterprise Application Architecture

Enterprise Applications can be structured or distributed. A distributed application is an application whose components are located on different machines communicating with each other synchronously. For example, Client/Server architecture.

Integration Architecture

The description of two or more connected applications including whatever technologies, resources, or extensions were added to enable their integration.

Enterprise Integration Patterns by Hophe

Note: Integration Architecture is different from Distributed Application Architecture. Distributed Architecture parts are communicating with each other in a tightly coupled manner (one-tier cannot work without the other); the communication between the parts must be synchronous. In contrast, Integrated Applications are independent applications that can each run by themselves but that coordinate with each other in a loosely coupled way.

Data Architecture

Data Architecture is composed of models, policies, rules or standards that govern which data is collected, and how it is stored, arranged, integrated, and put to use in data systems and in organizations.

TOGAF® 9.1 — Phase C: Information Systems Architectures — Data Architecture

Solution / System Architecture

Solution Architecture is a description for a role that should be able to describe the Software Architecture and the Infrastructure Architecture for an entire solution.

Enterprise Architecture

Enterprise Architecture applies architecture principles and practices to guide organizations through the business, information, process, and technology changes necessary to execute their strategies. These practices utilize the various aspects of an enterprise to identify, motivate, and achieve these changes.

Federation of EA Professional Organizations, Common Perspectives on Enterprise Architecture".

history
2

About the Creator

Haitham Raik

I have 20 years of experience in Software development and Software Architecture. In this page, I will share with you topics based on my expertise related to software development and architecture

Reader insights

Be the first to share your insights about this piece.

How does it work?

Add your insights

Comments (1)

Sign in to comment
  • Nitin Khaitanabout a year ago

    Kudos for the excellent article. Below is a good read about the design pattern for the database layer: https://medium.com/towards-polyglot-architecture/design-patterns-for-the-database-layer-7b741b126036

Find us on social media

Miscellaneous links

  • Explore
  • Contact
  • Privacy Policy
  • Terms of Use
  • Support

© 2024 Creatd, Inc. All Rights Reserved.