Goals of Distributed Application Design

Designing a distributed application involves making decisions about its logical and physical architecture and the technologies and infrastructure used to implement its functionality. To make these decisions effectively, you must have a sound understanding of the business processes that the application will perform (its functional requirements), and the levels of scalability, availability, security, and maintainability required (its nonfunctional, or operational, requirements).

Your goal is to design an application that:

  • Solves the business problem it is designed to address.
  • Addresses security considerations from the start, taking into consideration the appropriate authentication mechanisms, authorization logic, and secure communication.
  • Provides high performance and is optimized for common operations across deployment patterns.
  • Is available and resilient, and can be deployed in redundant, high-availability data centers.
  • Scales to meet the expected demands, and supports a large number of activities and users with minimal use of resources.
  • Is manageable, allowing operators to deploy, monitor, and troubleshoot the application as appropriate for the scenario.
  • Is maintainable. Each piece of functionality should have a predictable location and design taking into account diverse application sizes, teams with varying skill sets, and changing business and technical requirements.
  • Works in various application scenarios and deployment patterns.

I think this good article.
http://msdn.microsoft.com/practices/apptype/webapps/default.aspx?pull=/library/en-us/dnbda/html/apparchch1.asp

原文地址:https://www.cnblogs.com/george/p/386073.html