Decomposing Distributed Software Architectures for the Determination and Incorporation of Security and Other Non-functional Requirements

Non-functional requirements (NFRs) such as security, reliability and performance play a crucial role in the development of modern distributed systems. The burden of incorporating NFRs into a system's architecture, as well the determination of new design-level NFRs, can be greatly eased by the use of a structured approach providing guidance to developers. Such structured approaches, however, require equally structured system characterisations. This is especially important for distributed systems, which are inherently complex and multi-faceted. In this paper we propose a form of characterisation which we term architectural decomposition, and present a multi-level conceptual framework for decomposing distributed software architectures. Using the framework for decomposing architectures can help guide the incorporation and, via complementary analysis processes, the determination of NFRs at the architectural level. We describe each of the levels of the framework in turn, propose a complementary analysis process for security based on threat modelling, as well as a process for using the framework itself, and demonstrate the utility of our approach via an example derived from a real-life distributed architecture.

[1]  Karl Aberer,et al.  The essence of P2P: a reference architecture for overlay networks , 2005, Fifth IEEE International Conference on Peer-to-Peer Computing (P2P'05).

[2]  Willy Picard Modeling Structured Non-Monolithic Collaboration Processes , 2005, PRO-VE.

[3]  Hany H. Ammar,et al.  A Methodology for Architecture-Level Reliability Risk Analysis , 2002, IEEE Trans. Software Eng..

[4]  J. Hogg Web service security : scenarios, patterns, and implementation guidance for Web services enhancements (WSE) 3.0 , 2005 .

[5]  Teresa Tung Defining a Cloud Reference Model , 2011, 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[6]  José Alves Marques,et al.  Development of distributed applications with separation of concerns , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

[7]  Hannah K. Lee Unraveling decentralized authorization for multi-domain collaborations , 2007, 2007 International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom 2007).

[8]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[9]  Bruce E. Martin,et al.  An object-based taxonomy for distributed computing systems , 1991, Computer.

[10]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[11]  Richard W. Watson Distibuted System Architecture Model , 1980, Advanced Course: Distributed Systems.

[12]  William Yurcik,et al.  Threat Modeling as a Basis for Security Requirements , 2005 .

[13]  Butler W. Lampson,et al.  Distributed Systems - Architecture and Implementation, An Advanced Course , 1981, Advanced Course: Distributed Systems.

[14]  Peter Sommerlad,et al.  Security Patterns: Integrating Security and Systems Engineering , 2006 .

[15]  Shihong Huang,et al.  Defining Security Requirements Through Misuse Actions , 2006, IFIP Workshop on Advanced Software Engineering.

[16]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[17]  Stephen T. Kent,et al.  Security Mechanisms in High-Level Network Protocols , 1983, CSUR.

[18]  Neil B. Harrison,et al.  How do architecture patterns and tactics interact? A model and annotation , 2010, J. Syst. Softw..

[19]  Eduardo B. Fernández,et al.  Securing distributed systems using patterns: A survey , 2012, Comput. Secur..

[20]  Danny Dhillon,et al.  Developer-Driven Threat Modeling: Lessons Learned in the Trenches , 2011, IEEE Security & Privacy.

[21]  Jeffrey A. Ingalsbe,et al.  Threat Modeling: Diving into the Deep End , 2008, IEEE Software.

[22]  Frank Swiderski,et al.  Threat Modeling , 2018, Hacking Connected Cars.

[23]  Miguel Antunes,et al.  Naming: design pattern and framework , 1998, Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241).

[24]  Douglas C. Schmidt,et al.  A pattern language for distributed computing , 2007 .

[25]  D. M. Hutton,et al.  Process Patterns: Building Large‐Scale Systems Using Object Technology , 1999 .

[26]  Eduardo B. Fernández,et al.  Engineering Security into Distributed Systems: A Survey of Methodologies , 2012, J. Univers. Comput. Sci..

[27]  Klaus Renzel,et al.  A pattern language , 2011 .

[28]  Jameela Al-Jaroodi,et al.  Distributed systems middleware architecture from a software engineering perspective , 2003, Proceedings Fifth IEEE Workshop on Mobile Computing Systems and Applications.

[29]  Wouter Joosen,et al.  On the secure software development process: CLASP, SDL and Touchpoints compared , 2009, Inf. Softw. Technol..

[30]  Holger Schmidt A pattern- and component-based method to develop secure software , 2010 .

[31]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[32]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[33]  Robert B. France,et al.  Formal specification of real-time dependable systems , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[34]  Peter Torr,et al.  Demystifying the threat modeling process , 2005, IEEE Security & Privacy Magazine.

[35]  Ruth Breu,et al.  Model-Driven Security Engineering of Service Oriented Systems , 2008, UNISCON.