A UML Profile for Software Architectures and Peer to Peer Dependable Applications Aphrodite Tsalgatidou, George Athanasopoulos, Periklis Liaskovitis * Dept. of Informatics & Telecommunications, National & Kapodistrian University of Athens (NKUA), Panepistimiopolis, Ilisia 157 84, Greece {atsalga , gathanas , pliaskov}@di.uoa.gr Abstract. Peer-to-peer (p2p) applications exhibit characteristics such as dynamic network topology and configuration, heterogeneity and scalability that make their development a complicated task. This is further aggravated due to the required satisfaction of dependability properties, i.e. security, availability, reliability, etc. Furthermore, p2p application requirements are driven by the software architecture adopted for their development while in other kinds of applications, the requirements drive the architecture. It is therefore only natural to adopt an architecture-based approach for the development of p2p dependable applications in order to ensure at the architectural level that dependability requirements are met. An essential part for the effective architecture-based development is the use of an appropriate modelling mechanism. In this paper we argue on the use of a UML profile that provides appropriate constructs and notations for modelling dependable p2p software architectures. 1. Introduction Peer-to-peer (p2p) computing is a form of networking that eliminates the need for servers and leverages computing capabilities, by enabling individual computers to share resources (applications, drive space, processing power, etc.) and to communicate with each other as peers. One of the major challenges for the wide applicability and use of p2p applications, especially in the business domain, is the satisfaction of their dependability requirements, i.e. reliability, security, survivability, responsiveness and availability. This is of paramount importance since p2p applications operate in an open environment such as the Internet where there is no control over the participating nodes or users. The nature of p2p applications is such, that their software architecture drives their requirements while in other kind of applications the requirements drive the architecture. Therefore, an architecture-based approach provides a good basis for the development of p2p applications as it can facilitate developers to predict the quality of a final p2p application before proceeding to its implementation and to ensure at the architecture level that dependability requirements are met. This requires appropriate * P. Liaskovitis is currently at the ECE Dept. of the University of California San Diego, USA, pliaskov@ucsd.edu 9 Proceedings of the CAiSE'05 Forum - O. Belo, J. Eder, J. Falcão e Cunha, O. Pastor (Eds.) © Faculdade de Engenharia da Universidade do Porto, Portugal 2005 - ISBN 972-752-078-2