Individual_Assignment
Individual_Assignment
1 | Page
Software architecture and design individual assignment
2 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: Individual layers in the architecture can
be scaled independently to meet performance needs.
2. Flexibility: Different technologies can be used within
each layer without affecting others.
3. Maintainability: Changes in one layer do not
necessarily impact other layers, thus simplifying the
maintenance.
Disadvantages:
1. Complexity: Adding more layers to the
architecture can make the system more complex and
difficult to manage.
2. Performance Overhead: Multiple layers can
introduce latency due to additional communication
between the layers.
3 | Page
Software architecture and design individual assignment
Advantages:
1. Centralized Management: Servers can centrally
manage resources, data, and security policies, thus
simplifying the maintenance.
2. Scalability: Servers can be scaled up to handle
increased client requests.
3. Security: Security measures such as access controls,
data encryption can be implemented in a better way due
to centralized controls.
4 | Page
Software architecture and design individual assignment
Disadvantages:
1. Single Point of Failure: Due to centralized server,
if server fails clients lose access to services, leading
loss of productivity.
2. Costly: Setting up and maintaining servers can be
expensive due to hardware, software, and
administrative costs.
3. Complexity: Designing and managing a client-
server architecture can be complex.
5 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: System can scale horizontally by
adding more consumers.
2. Real-time Processing: This enables real-time
processing and immediate response to events.
3. Flexibility: New event consumers can be added
without modifying existing components.
Disadvantages:
1. Complexity: The architecture can be complex to
design, implement, and debug.
2. Complex Testing: Testing event-driven systems
can be complicated compared to synchronous
systems.
3. Reliability: Ensuring reliability requires additional
mechanisms to handle failed events.
Advantages:
1. Flexibility: New functionalities can be added easily
through plug-ins.
2. Scalability: The system can scale by adding more
plug-ins to handle more tasks.
3. Maintainability: Plug-ins are developed and tested
independently which makes maintenance easier.
7 | Page
Software architecture and design individual assignment
Disadvantages:
1. Complex Communication: Managing
communication between the core systems and plug-
ins can be complex.
2. Lack Built-in Functionalities: Due to minimalistic
design the basic functionalities are absent that are
common in monolithic architectures.
3. Complex Design: Designing the microkernel and
its communication mechanisms can be challenging.
8 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: Each service can be scaled
independently based on demand.
2. Faster Delivery: Independent services allow teams
to develop, test, and deploy features faster.
3. Easier Maintenance: Services can be updated and
maintained independently.
Disadvantages:
1. Complex Management: Managing multiple services
requires robust monitoring and management tools.
2. Network Congestion: Increased network traffic
between services can lead to congestion and overhead.
3. Security: Securing multiple services and their
communication increases the probability of attack.
9 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: The system can be easily scaled
horizontally by adding more processing units.
2. Performance: In-memory data grids reduce the data
access latency.
3. Flexibility: Modular components allow for flexible
deployment.
10 | Page
Software architecture and design individual assignment
Disadvantages:
1. Complexity: Designing and managing distributed
system is complex.
2. Cost: The infrastructure for space-based
architecture pattern requires multiple servers and
advanced middleware, which can be expensive.
3. Network Latency: Communication between
distributed components can introduce network
latency.
11 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: The system can scale horizontally by
adding more slave units to handle increased load.
2. Fault Tolerance: If slave fails, then the master can
reassign the tasks to some another slave. thus
enhancing the fault tolerance.
3. Performance: Parallel execution of tasks can
improve the performance of the system.
Disadvantages:
1. Single Point of Failure: The master component is a
single point of failure. If the master fails then the entire
system can collapse.
2. Complex Communication: The communication
overhead between master and slave can be significant
especially in large systems.
3. Latency: Systems' responsiveness can be affected by
the latency introduced by master-slave communication.
12 | Page
Software architecture and design individual assignment
Advantages:
1. Reusability: Filters can be reused in different
pipelines or applications.
2. Scalability: Additional filters can be added to extend
the functionality to the pipeline.
3. Parallelism: Filters can be executed in parallel if they
are stateless, thus improving performance.
Disadvantages:
1. Debugging Difficulty: Identifying and debugging
issues are difficult in long pipelines.
2. Data Format constraints: Filters must agree on
the data format, requiring careful design and
standardization.
13 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: Brokers support horizontal scaling by
adding more servers to handle increased load.
2. Flexibility: New servers can be added and the
existing ones can be removed or modified without
impacting the entire system.
3. Fault Tolerance: If a server fails, then broker can
route the request to another server.
14 | Page
Software architecture and design individual assignment
Disadvantages:
1. Complex Implementation: Implementing a broker
requires robust management of routing and load
balancing, thus make system more complex.
2. Single Point of Failure: If broker is not designed
with failover mechanisms, then it can become a
single point of failure.
3. Security Risks: Securing broker component is
important to prevent potential vulnerabilities.
15 | Page
Software architecture and design individual assignment
Advantages:
1. Scalability: The network can scale easily as more
peers join.
2. Fault Tolerance: As data is replicated across
multiple peers, this results in system being resilient
to failures.
3. Cost Efficiency: There is no need for centralized
servers, thus reducing the infrastructure cost.
Disadvantages:
1. Security Risks: Decentralized nature of the
architecture makes it difficult to enforce security
policies.
2. Data Consistency: Ensuring data consistency across
peers can be challenging.
3. Complex Management: Managing a decentralized
network with numerous independent peers can be
complex.
16 | Page
Software architecture and design individual assignment
Conclusion:
❖software architecture patterns
S are essential for designing software that meets specific
needs and challenges.
S are a specific, reusable solution to a common problem
or design issue in software architecture.
S are seen as commonality at higher level than design
patterns.
S are high-level strategies that concerns large-scale
components, the global properties and mechanisms
of a system.
17 | Page
Software architecture and design individual assignment
18 | Page
Software architecture and design individual assignment
19 | Page
Software architecture and design individual assignment
3. Behavioral Patterns:
o Observer: Notifies observers when a subject's
state changes.
Analogy: News channels updating subscribers on
breaking news.
Strategy: Defines interchangeable algorithms for
a task.
Analogy: Multiple routes for reaching the same
destination.
Summarized:
20 | Page
Software architecture and design individual assignment
23 | Page
Software architecture and design individual assignment
24 | Page