3103
3103
Layered
Microservices
Service-Oriented Architecture
• 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
• 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
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.
1. Modularity
• Breaking down a system into smaller, independent components for easier development,
maintenance, and scalability.
2. Abstraction
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
5. Separation of Concerns
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.
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
Reliability – ability of a system to consistently deliver accurate data and ensures it’s not corrupted and
lost.