Enhancing deployment architecture for distributed software systems with an active coordination model

Bin Gui,Yan Liu
DOI: https://doi.org/10.1109/ICSESS.2014.6933506
2014-01-01
Abstract:Lots of distributed software systems use layer-based architecture; the lower layer provides functionalities and services to upper layer via various interfaces and protocols. When the system is evolving, layers may grow or split further, each layer expands horizontally with more modules, and the overall functionalities get more complex. Software modules providing similar functionalities or services may bring more redundancy, which makes the building and deploying of distributed software systems more challenging. Traditional deployment strategy is process-centric. One server controls the whole deployment procedure sequentially, which usually fails to achieve expected efficiency. Especially when those relatively independent modules in the same layer share similar deploying strategy, the traditional way raise a lot of duplicated work with high cost. Furthermore, it's difficult to locate faults and fix errors dynamically due to the stream-based style. In this paper, we propose an automatic deployment approach using a coordination model for distributed software systems. Tasks are planned based on the overall system capabilities and dependencies between modules. The coordination node monitors and maintains the task status. Clients can actively apply for tasks from the coordination node. This approach utilizes system resources effectively and improves deployment automation. Our approach has been applied in a large web services company to deploy a mini version of a search engine. Comparing with traditional methods, this new approach achieves much better results.
What problem does this paper attempt to address?