Please Scroll down for Article Enterprise Information Systems Architectural Design for Resilience Architectural Design for Resilience

Resilience has become a new nonfunctional requirement for information systems. Many design decisions have to be made at the architectural level in order to deliver an information system with the resilience property. This paper discusses the relationships between resilience and other architectural properties such as scalability, reliability, and consistency. A corollary is derived from the CAP theorem, and states that it is impossible for a system to have all three properties of consistency, resilience and partition-tolerance. We present seven architectural constraints for resilience. The constraints are elicited from good architectural practices for developing reliable and fault-tolerant systems and the state-of-the-art technologies in distributed computing. These constraints provide a comprehensive reference for architectural design towards resilience.

[1]  Edward A. Luke Defining and measuring scalability , 1993, Proceedings of Scalable Parallel Libraries Conference.

[2]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[3]  Andre B. Bondi,et al.  Characteristics of scalability and their impact on performance , 2000, WOSP '00.

[4]  Don Box A Guide to Developing and Running Connected Systems with Indigo , 2004 .

[5]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[6]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[7]  Roy T. Fielding,et al.  Uniform Resource Identifiers (URI): Generic Syntax , 1998, RFC.

[8]  Henrik Loeser,et al.  "One Size Fits All": An Idea Whose Time Has Come and Gone? , 2011, BTW.

[9]  Steve Vinoski,et al.  Convenience Over Correctness , 2008, IEEE Internet Computing.

[10]  Roy T. Fielding,et al.  Uniform Resource Identifier (URI): Generic Syntax , 2005, RFC.

[11]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[12]  Philippe Krutchen,et al.  Architectural blueprints--the '4+1' view model of software architecture , 1995 .

[13]  Suzanne Robertson,et al.  Mastering the Requirements Process (2nd Edition) , 2006 .

[14]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[15]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

[16]  David Greschler,et al.  Networking lessons in delivering ‘Software as a Service’—part I , 2002, Int. J. Netw. Manag..

[17]  David Greschler,et al.  Networking lessons in delivering Software as a Service - Part II , 2002, Int. J. Netw. Manag..

[18]  C. S. Holling,et al.  Resilience, Adaptability and Transformability in Social–ecological Systems , 2004 .

[19]  Changzhou Wang,et al.  Integrated quality of service (QoS) management in service-oriented enterprise architectures , 2004, Proceedings. Eighth IEEE International Enterprise Distributed Object Computing Conference, 2004. EDOC 2004..

[20]  Liming Chen,et al.  N-VERSION PROGRAMMINC: A FAULT-TOLERANCE APPROACH TO RELlABlLlTY OF SOFTWARE OPERATlON , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing, 1995, ' Highlights from Twenty-Five Years'..

[21]  Asit Dan,et al.  Web services on demand: WSLA-driven automated management , 2004, IBM Syst. J..

[22]  Kevin Seitz,et al.  Centralized versus decentralized control , 2012 .

[23]  John J. Bartholdi,et al.  Centralized versus decentralized control in manufacturing: lessons from social insects , 2000 .

[24]  Francis G. McCabe,et al.  Reference Architecture for Service Oriented Architecture Version 1.0 , 2008 .

[25]  Randy H. Katz,et al.  Above the Clouds: A Berkeley View of Cloud Computing , 2009 .

[26]  Donald F. Towsley,et al.  Modeling TCP throughput: a simple model and its empirical validation , 1998, SIGCOMM '98.

[27]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

[28]  Mark D. Hill,et al.  What is scalability? , 1990, CARN.

[29]  D Manyu,et al.  Hypertext transfer protocol , 2009 .

[30]  Jim Gray,et al.  The Transaction Concept: Virtues and Limitations (Invited Paper) , 1981, VLDB.

[31]  Michael M. Gorlick,et al.  From representations to computations: the evolution of web architectures , 2007, ESEC-FSE '07.

[32]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[33]  Vladimir Tosic,et al.  Extending Web Service Offerings Infrastructure (WSOI) for Management of Mobile/Embedded XML Web Services , 2006, The 8th IEEE International Conference on E-Commerce Technology and The 3rd IEEE International Conference on Enterprise Computing, E-Commerce, and E-Services (CEC/EEE'06).

[34]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[35]  Daniel Gross,et al.  From Non-Functional Requirements to Design through Patterns , 2001, Requirements Engineering.

[36]  Nicolas Guelfi,et al.  A metadata-based architectural model for dynamically resilient systems , 2007, SAC '07.

[37]  Adnan Ahmed,et al.  Meta-Model of Resilient information System , 2007 .

[38]  Eric A. Brewer,et al.  Towards robust distributed systems (abstract) , 2000, PODC '00.

[39]  Akhil Sahai,et al.  Towards Automated SLA Management for Web Services , 2002 .

[40]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[41]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[42]  D. P. Siemwiorek Architecture of fault-tolerant computers: an historical perspective , 1991 .

[43]  Joe Armstrong,et al.  Making reliable distributed systems in the presence of software errors , 2003 .

[44]  Meilir Page-Jones,et al.  The practical guide to structured systems design: 2nd edition , 1988 .

[45]  Martin L. Shooman,et al.  Reliability of Computer Systems and Networks: Fault Tolerance,Analysis,and Design , 2002 .

[46]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[47]  Joseph P. Cavano,et al.  A framework for the measurement of software quality , 1978, SIGMETRICS Perform. Evaluation Rev..

[48]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[49]  T. C. Schneirla,et al.  Army ants;: A study in social organization , 1971 .

[50]  J. Rupe Reliability of Computer Systems and Networks Fault Tolerance, Analysis, and Design , 2003 .

[51]  Francis G. McCabe,et al.  Reference Model for Service Oriented Architecture 1.0 , 2006 .

[52]  Suzanne Robertson,et al.  Mastering the Requirements Process , 1999 .

[53]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[54]  Jim Gray,et al.  The Transaction Concept: Virtues and Limitations (Invited Paper) , 1981, VLDB.

[55]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[56]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[57]  Salim Hariri,et al.  Tools and Environments for Parallel and Distributed Computing , 2004 .

[58]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[59]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[60]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.1 , 1997, RFC.

[61]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[62]  Doug Kaye,et al.  Loosely Coupled: The Missing Pieces of Web Services , 2003 .

[63]  Steve Vinoski Serendipitous Reuse , 2008, IEEE Internet Computing.

[64]  Tim Kindberg,et al.  Distributed Systems: Concepts and Design (4th Edition) (International Computer Science) , 2005 .

[65]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[66]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[67]  Doug Johnson,et al.  Computing in the Clouds. , 2010 .

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

[69]  Sam Ruby,et al.  RESTful Web Services , 2007 .