0% found this document useful (0 votes)
2 views4 pages

3103

The document outlines various software architecture styles, including Monolithic, Layered, Microservices, and Service-Oriented Architecture, along with key concepts in system architecture such as logical, physical, development, process, and information views. It discusses the importance of data components like databases, data warehouses, and data lakes, as well as system design principles such as modularity, abstraction, and encapsulation. Additionally, it covers data exchange protocols, types of errors, and the significance of reliability in data processing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views4 pages

3103

The document outlines various software architecture styles, including Monolithic, Layered, Microservices, and Service-Oriented Architecture, along with key concepts in system architecture such as logical, physical, development, process, and information views. It discusses the importance of data components like databases, data warehouses, and data lakes, as well as system design principles such as modularity, abstraction, and encapsulation. Additionally, it covers data exchange protocols, types of errors, and the significance of reliability in data processing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Monolithic

• single-tiered software Applications

Layered

• separation of concerns through different layers(presentation, business logic, data access)

Microservices

• Small, independently deployable services

Service-Oriented Architecture

• Services as the primary component for building applications

Key Concepts in System Architecture- Views

• Logical View - Focuses on the functional elements of the system, such as components, their
relationships, and the data that flows between them.

• Physical View – Depicts the physical realization of the system, including hardware, software, and
network components.

• Development View – Shows how the system is distributed across different environments, such
as servers, networks, and devices.

• Process View – Illustrates the dynamic behavior of the system, including processes, their
interactions, and data flows.

• Information View – Focuses on the data used by the system, including data entities, attributes,
and relationships.

MCV Pattern

• Models – Database operations (CRUD) - Database

• Views – UI/Client Side (HTML, CSS, JS) - Client Side

• Controllers – Brain of the system (PHP, NodeJS) - Server Side

Characteristics of a System Component

• Functional - define what the system or component should do -- focus on the behavior of the
system in terms of the tasks it performs.

• Non-Functional - how the system performs its functions -- focus on the qualities or constraints
of the system that impact its performance, security, and user experience.
Structured Data - Organized in a predefined format, Easy to analyze and process

Unstructured Data - No predefined format, Often textual or multimedia

Data components are essential elements in any system, serving as the foundation for information
processing and decision-making.

Data components play a critical role in connecting different systems and ensuring seamless data flow.

1. Databases
• Organized collections of data that are typically structured and managed by a database
management system (DBMS).
• Databases can be:
• relational (e.g., MySQL, PostgreSQL),
• NoSQL (e.g., MongoDB, Cassandra), or
• Object-Oriented (e.g., Oracle).

2. Datawarehouse
• Centralized repositories of data from multiple sources, often used for data analysis, reporting,
and decision-making.
• Data warehouses are designed to store historical data and support complex queries.

3. Data lakes
• Unstructured repositories of raw data, often in a variety of formats.
• Data lakes are used to store large volumes of data without predefined schemas, making them
suitable for exploratory data analysis and machine learning.

4. Data marts
• Smaller, focused subsets of a data warehouse, designed to support specific business needs or
departments.

5. Data pipelines
• Automated processes that extract, transform, and load (ETL) data between different systems.

6. Data catalogs
• Centralized repositories of metadata that describe data assets, their lineage, and usage.

System design Principles

1. Modularity

• Breaking down a system into smaller, independent components for easier development,
maintenance, and scalability.
2. Abstraction

• Simplifying complex systems by focusing on essential features and hiding unnecessary


details.

3. Encapsulation

• Grouping data and the operations that act on it within a single unit to protect data
integrity and control access.

4. Information hiding

• Limiting the visibility of internal implementation of details to other components.

5. Separation of Concerns

• Dividing a system into distinct parts based on their functionality to improve


maintainability and reusability.

Scalability refers to the ability of a system to handle increased workloads or changes in demand without
significant performance degradation.

Flexibility refers to the ability of a system to adapt to changes in the environment, such as new
technologies, regulations, or business processes.

Resilience refers to the ability of a system to recover from failures or disruptions and continue to operate
as intended.

Data Exchange Protocol – a set of guidelines and rules that govern how data is formatted, transmitted,
received, and processed across systems

Why is it important, because it is efficient and scalable, reduces complexity and making it easier to scale
systems. It is also reliable since it comes with error-checking and data validation.

Core Concept:

Communication standard – understanding how data should be formatted, serialized and transmitted.

Serialization– converted to a transmittable format before sending

Deserialization - reconstructed into usable data upon receipt.

Types of data exchange:

1. Synchronous – must be available at the same time, might experience delays

Asynchronous – does not wait for the receiver to be available, more flexible and scalable

2. Text based protocol – easier to work with during development, XML and JSON
3. Binary Protocol – transfer in a compressed data, more faster and efficient
4. Custom Protocol – designed to meet specific needs

Types of Errors

1. Syntax error – incorrect messages, missing required fields


2. Semantic error – carries invalid or meaningless values
3. Communication error – related to transmission like lost packets, timeouts, interruption in
connectivity.
4. Processed Error – occur while processing received data, invalid operation or unhandled
exception

Reliability – ability of a system to consistently deliver accurate data and ensures it’s not corrupted and
lost.

You might also like