Peer-to-Peer Driven Software Engineering Considering Security, Reliability, and Performance
Kristian Beckers, Stephan Faßbender · 2012
Internet-scale applications require scalability that peer-to-peer (P2P) architectures provide. Traditional software engineering processes start with requirements and move onto architectures, software design, implementation, and testing. Choosing a P2P architecture, however, has significant constraints on the requirements of a given software engineering process in terms of security, reliability and performance. In addition, requirements for P2P architectures have to be expressed in notions of network engineering, because these architectures rank from the application layer to the IP networklayer. Thus, engineering P2P systems is a cross-disciplinary task between software and network engineers. We explain the ramifications P2P applications have on requirements of a given software engineering problem. A structured method supports software engineers in understanding the constraints of different kinds of P2P architectures and protocols on requirements. In addition, we present patterns of how the requirements have to be expressed, so that they contain all required information for network engineers that implementthe P2P architectures.