Upload 5
Upload 5
NO
DICKSON CHERUIYOT BIT/010/2021
Interoperability:
o SOA promotes interoperability by using standardized communication protocols.
This allows different applications, even those built with diverse technologies, to
exchange data and functionality seamlessly.
Loose Coupling:
o Services in an SOA are designed to be loosely coupled, meaning they have
minimal dependencies on each other.
o This reduces the impact of changes in one service on other parts of the system,
making it more flexible and maintainable.
Reusability:
o SOA encourages the development of reusable services. This avoids redundant
development efforts and speeds up application development.
Scalability:
o SOA facilitates scalability by allowing individual services to be scaled
independently.
Flexibility and Agility:
o SOA enables organizations to adapt quickly to changing business requirements by
easily composing and recomposing services.
Abstraction:
o SOA abstracts the underlying implementation details of services, allowing
consumers to focus on the service's functionality rather than its technical
complexities.
2. Explain the factors you will consider when setting up a distributed system
1. Communication:
2. Data Management:
Data Consistency: Decide on the level of consistency required (e.g., strong, eventual).
Data Partitioning: Determine how to partition data across multiple nodes.
3. Scalability:
Horizontal Scaling: Design the system to scale horizontally by adding more nodes.
Load Balancing: Implement load balancing to distribute traffic evenly across nodes.
4. Fault Tolerance:
5. Security:
Distributed Transactions:
o Coordinating transactions across multiple nodes can be complex and expensive.
Latency and Network Partitions:
o Network latency and partitions can make it difficult to maintain consistency and
prevent conflicts.
Deadlocks:
o Deadlocks can occur when multiple transactions are waiting for each other to
release locks .and Detecting and resolving deadlocks in a distributed environment
is challenging.
Distributed Locking:
o Implementing distributed locking mechanisms that are both efficient and reliable
is challenging.
Concurrency Anomalies:
o Concurrency anomalies can occur if concurrency control mechanisms are not
implemented correctly and These anomalies can lead to data corruption and
inconsistent application behavior.
Scalability and Performance:
o Implementing concurrency control mechanisms that scale well and maintain
performance is challenging.
Clock Synchronization:
o Distributed systems often rely on synchronized clocks to maintain consistency.