02. Architect the Solution Architecture (Asset)

Objectives

  • Understand reusable architectural assets.

  • Learn about architectural styles, components, and integration options.

  • Utilize assets for architecture definition.

Key Topics

  • Metamodel of Architectural Assets

  • Architecture Styles

  • Reference Architectures

  • Architectural Description

Deriving Architecture

  • Different approaches for similar vs. innovative systems:

    • Similar System: Reuse method and assets.

    • Innovative System: Use intuition.

Architectural Assets

  • Reference patterns and architectures capture past successes in system architecture.

Architecture Styles

  • Structural Styles:

    • Client-Server: Client (e.g., web browser) and server components interacting.

    • Tiered Computing: Multiple tiers providing services (e.g., 3-tier, n-tier).

  • Peer-to-Peer: Direct communication between peers without a central server.

  • Event-Based (Point to Point and Publish/Subscribe): Message passing between components.

  • Call and Return: Components execute based on control from other components.

Databases

  • SQL vs. NoSQL:

    • SQL: Fixed schema, vertical scaling, strong consistency.

    • NoSQL: Dynamic schema, horizontal scaling, variable consistency.

Brewer’s CAP Theorem

  • Only two of the three properties (Consistency, Availability, Partition tolerance) can be achieved simultaneously in shared data systems.

Architectural Description

  • IEEE 42010: Standard for describing software architecture, involves multiple views for a comprehensive understanding:

    • Logical, Development, Process, Physical, Infrastructure, Deployment, and Information Structure Views.

Reference Architectures

  • Specific to domains and include multiple architectural patterns, such as:

    • Web Architecture, SOA, Microservices, Cloud Architectures.

Summary

  • Architectural metamodel consists of reference patterns, architectures, and descriptions.

  • Choosing the right architecture based on knowledge and experience is critical for system quality.