Supporting Cooperative Software Processes in a Decentralized and Nomadic World

Recent advances in wireless networks enable decentralized cooperative and nomadic work scenarios where mobile users can interact in performing some tasks without being permanently online. Scenarios where connectivity is transient and the network topology may change dynamically are considered. Connectivity among nodes does not require the support offered by a permanent infrastructure but may rely on ad hoc networking facilities. In this paper, a scenario in which a nomadic group of software engineers cooperate in developing an application is investigated. The proposed solution, however, is not software process specific but holds for other cases where shared documents are developed cooperatively by a number of interacting nomadic partners. Support tools for these groups are normally based on a client-server architecture, which appears to be unsuitable in highly dynamic environments. Peer-to-peer solutions, which do not rely on services provided by centralized servers, look more promising. This paper presents a fully decentralized cooperative infrastructure centered around peer-to-peer versioning system (PeerVerSy), a configuration management tool based on a peer-to-peer architecture, which supports cooperative services even when some of the collaborating nodes are offline. Some preliminary experiences gained from its use in a teaching environment are also discussed

[1]  Bartosz Milewski Distributed Source Control System , 1997, SCM.

[2]  Antonio Carzaniga,et al.  Design and Implementation of a Distributed Versioning System , 1999 .

[3]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[4]  Carlo Ghezzi,et al.  Software processes: a retrospective and a path to the future , 1998, Software Process: Improvement and Practice.

[5]  Carlo Ghezzi,et al.  Freeing Cooperation from Servers Tyranny , 2002, NETWORKING Workshops.

[6]  Mattia Monga,et al.  A comparative assessment of peer-to-peer and server-based configuration management systems , 2004 .

[7]  Dennis Heimbigner,et al.  A Testbed for Configuration Management Policy Programming , 2002, IEEE Trans. Software Eng..

[8]  Amit P. Sheth,et al.  Processes Driving the Networked Economy , 1999, IEEE Concurr..

[9]  Enrico Gregori,et al.  Web Engineering and Peer-to-Peer Computing , 2002, Lecture Notes in Computer Science.

[10]  Gian Pietro Picco,et al.  REDS: a reconfigurable dispatching system , 2006, SEM '06.

[11]  Mattia Monga,et al.  Using a Stochastic Well-formed Net model for assessing a decentralized approach to configuration management , 2007, Perform. Evaluation.

[12]  Harald C. Gall,et al.  Architectural concerns in distributed and mobile collaborative systems , 2002, Eleventh Euromicro Conference on Parallel, Distributed and Network-Based Processing, 2003. Proceedings..

[13]  Walter F. Tichy,et al.  Configuration management , 1995 .

[14]  Jonathan Grudin,et al.  Computer-supported cooperative work: history and focus , 1994, Computer.

[15]  Leon J. Osterweil,et al.  Software processes are software too , 1987, ISPW.

[16]  Klaus R. Dittrich,et al.  Dynamic collaborative business processes within documents , 2004, SIGDOC '04.

[17]  D. Hollingsworth The workflow Reference Model , 1994 .

[18]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[19]  Jacky Estublier Software configuration management: a roadmap , 2000, ICSE '00.

[20]  Reidar Conradi,et al.  Impact of software engineering research on the practice of software configuration management , 2005, ACM Trans. Softw. Eng. Methodol..

[21]  Kees M. van Hee,et al.  Workflow Management: Models, Methods, and Systems , 2002, Cooperative information systems.

[22]  Mehdi Jazayeri,et al.  Process-centered Software Engineering Environments , 1995 .

[23]  Gerald Reif,et al.  A service architecture for mobile teamwork , 2002, SEKE '02.

[24]  Dennis Heimbigner,et al.  A generic, peer-to-peer repository for distributed configuration management , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[25]  Harald C. Gall,et al.  Architectural concerns in distributed and mobile collaborative systems , 2003, J. Syst. Archit..

[26]  Mark C. Paulk,et al.  Capability Maturity Model , 1991 .

[27]  Alexander L. Wolf,et al.  A Reusable, Distributed Repository for Configuration Management Policy Programming , 1998 .

[28]  Giovanni Chiola,et al.  GreatSPN 1.7: Graphical Editor and Analyzer for Timed and Stochastic Petri Nets , 1995, Perform. Evaluation.

[29]  Gian Pietro Picco,et al.  Peer-to-peer for collaborative applications , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[30]  Alfonso Fuggetta,et al.  Exploiting an event-based infrastructure to develop complex distributed systems , 1998, Proceedings of the 20th International Conference on Software Engineering.

[31]  A. Oram Peer-to-Peer , 2001 .

[32]  Paul V. Mockapetris,et al.  Domain names - implementation and specification , 1987, RFC.

[33]  Luciano Baresi,et al.  Ubiquitous Mobile Information and Collaboration Systems, Second CAiSE Workshop, UMICS 2004, Riga, Latvia, June 7-8, 2004, Revised Selected Papers , 2005, UMICS.

[34]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.