Challenges in Distributed System Development (CDSD)



AVAILABLE:    5

Issues, Challenges & Problems in Distributed System Development. Several trends in the computing industry include distribution, cost reduction, and high-volume product expansion. Additionally, software development positively impacts organizational growth by centralizing activities. The advent of multiprocessing and multicomputing has drastically improved computing system performance. This paper reviews the issues, challenges, problems, market, and solutions for Distributed Software Systems.

1. Introduction

Internet technology and distributed software systems are increasingly popular and crucial in industry, where there’s a strong focus on Distributed Software System (DSS) constraints and limitations. The goal is to eliminate or at least minimize DSS limitations and constraints. Software engineering practitioners acknowledge that developing DSS is highly challenging, with complex design and programming demands due to parallel processes and the potential for independent variable updates. General programming languages may not accommodate the unique issues of DSS.

Distributed systems [Figure 1] can be categorized as:

  • Only hardware and software distributed
  • Only users distributed
  • Both hardware, software, and users distributed

Some definitions of Distributed Systems include:

  • Hardware or software components within a communication network that coordinate actions solely through messages [Coulouris].
  • A collection of independent computers presented to users as a single system [Tanenbaum].

Examples of distributed systems on the web include resource sharing, clusters, workstation networks, distributed manufacturing systems (like automated assembly lines), institutional computer networks, information systems for order processing (such as online marketplaces and ticketing systems), and embedded system networks.

2. Related Work

Many authors have identified various distributed system issues.

  • Sudipto Ghosh and Aditya P. Mathur [1] discuss testing component issues in distributed systems related to concurrency, scalability, heterogeneous platforms, and communication protocols.
  • Nessett [2] focuses on large-scale distributed system design and challenges.
  • Ahmed Khoumsi [3] explores temporal approaches to testing distributed systems.
  • Hiroshi Tamura, Futoshi Tasaki, Masakazu Sengoku, and Shoji Shinoda [4] examine scheduling issues in parallel distributed systems.
  • Eric Koskinen and Maurice Herlihy [5] focus on deadlock, particularly efficient deadlock detection.
  • Ajay Kshemkalyani and Mukesh Singhal [6] describe principles, algorithms, and systems of distributed computing.
  • S. Kartik and C. Siva Ram Murthy [7] focus on task allocation algorithms to maximize redundancy reliability in distributed computing systems.
  • Veljko Milutinovic, Jakov Crnkovic, and Catherine Houstis [8] study simulation procedures for distributed task allocation.
  • Ian Sommerville [9] describes distributed software engineering.
  • Issa Traore and Isaac Woungang [10] focus on UML-based distributed software performance modeling.
  • Masoud Mansouri-Samani and Morris Sloman [11] present distributed system monitoring.

3. Distributed Software System Issues

  • Scalability: Scaling is a primary issue, encompassing dimensions like communication capacity. Systems must be designed for increased capacity with growing demand.
  • Heterogeneity: Communication infrastructure varies, and end-systems show diverse presentation techniques.
  • Object Representation & Translation: Selecting the best programming model for distributed objects, such as CORBA, Java, etc.
  • Resource Management: Distributed systems include resources located in different places. Routing and resource management issues span network and application layers.
  • Security & Privacy: With sensitive data involved, strong security is essential to protect distributed system assets.
  • Transparency: Distributed systems should appear as a single system to users.
  • Openness: Systems should use standard protocols for interoperability, enabling future updates or subsystem replacements.
  • Quality of Service: Reflects performance, availability, and reliability standards.
  • Failure Management: Ensuring errors are detected and resolved.
  • Synchronization: Distributed computing faces challenges in managing thousands of components.
  • Resource Identification: Effective naming schemes ensure distributed resources are referenced accurately.
  • Communication: Internet advancements enhance distributed systems' effectiveness, though specific requirements are necessary.
  • Software Architecture: Choosing an appropriate architecture supports better quality of service.
  • Performance Analysis: Evaluating speed, fault tolerance, and cost-effectiveness for better future service.
  • Test Data Generation: Testing for all paths in distributed systems, especially with significant path increases.
  • Component Selection for Testing: Distributed component testing requires coordination to avoid deadlock and race conditions.
  • Testing Sequence: Components need to be tested in integration with others, following an appropriate sequence.
  • Testing for Scalability and Performance: Threading enhances performance but brings its own challenges in testing.
  • Redundant Testing: Components undergo retesting when the whole system is tested.
  • Source Code Availability: Software may be developed in-house or sourced, with testing dependent on code availability.
  • Language, Platform, and Architecture Diversity: Components may use different programming languages and platforms.
  • Control and Monitoring Mechanisms: Important for debugging and as a part of the application itself.
  • Event Reproducibility: A challenge in distributed environments with concurrent and asynchronous processes.
  • Deadlocks & Race Conditions: Urgent issues, particularly in shared memory environments.
  • Deadlock Detection and Resolution: Includes maintaining and searching the Wait For Graph for cycles.
  • Fault Tolerance Testing: Essential in applications like nuclear, space missions, and medical devices.
  • Distributed System Scheduling: Ensures parallel distributed systems function effectively.
  • Controllability & Observability: Essential for testing the system’s implementation accuracy.
  • Task Allocation in Distributed Systems: Optimizing task allocation for the best performance.

4. Distributed Software System Challenges

  • Performance Improvement: The demand for parallel and distributed processing impacts real-world performance and cost.
  • Scalability: Systems should remain effective even with significant increases in resources or users.
  • Security: Ensuring data confidentiality and integrity is essential.
  • Design Challenges: Distributed systems should be responsive, high-throughput, and balanced.
  • Concurrency: Ensuring access to resources when needed.
  • Openness & Extensibility: Interfaces should allow for component additions or upgrades.
  • Migration & Load Balancing: Tasks must shift between systems without disrupting users or applications.

5. Distributed Software System Problems and Solutions

Performance is a key issue in distributed systems, aiming to minimize constraints and provide solutions. Task scheduling algorithms in distributed systems need constant evaluation to align with specific parameters, such as task graphs representing DSS features. Optimizing algorithms minimizes DSS challenges.

Failures are analyzed by injecting errors into DSS to observe algorithm performance. Communication failures are network-based, while computation failures may stem from hardware issues.

6. Conclusion

Distributed systems are crucial in research and industry, yet complex to develop and maintain. They are also susceptible to various errors.

References:

  • Kamal Sheel Mishra, Anil Kumar Tripathi, 2014. "Some Issues, Challenges and Problems of Distributed Software System." Department of Computer Science & Engineering, Indian Institute of Technology (Banaras Hindu University), Varanasi, India.
img by: aa4cc.dce.fel.cvut.cz

Post a Comment

Previous Next

نموذج الاتصال