A pattern depends not only on the smaller pattern it contains, but also on the larger pattern that contains it. It is a systematic approach to describing complex software.
The goal of this chapter is to let us know the following questions:
1.How to identify the relationship between patterns and patterns
2, how to organize patterns into a collection of patterns
3, how to use different levels of abstraction to divide the pattern
4.How to use the pattern to solve all aspects involved in the system
5. How to describe the solution with a pattern
Patterns and Patterns
Patterns can describe relationships. The object-oriented design software is composed of classes, if the relationship between classes and classes are thrown away, the pattern will not solve any problem. A pattern organizes a set of classes into manageable pattern collections.
When we design the system, we find that we use more patterns than we use, so how do we understand the role of the pattern? The key issue is understanding the relationship between projects. Patterns are closely related to patterns, so organizational patterns are organized according to relationships.
Pattern Cluster
It 's easy to switch from one mode to another, but we don't yet know how to use these patterns in the system , or what patterns we should learn. So this leads to another concept, which is the pattern cluster. A pattern cluster is a collection of patterns that involve a particular topic. With a pattern cluster, we can see how patterns and patterns are combined and how to build enterprise-class solutions. The pattern cluster is divided into 5 categories, namely:
Cluster Type the problem solved
Web representation to create a dynamic Web site
Distributed Systems resolve issues that communicate between different computers or processes
Deployment to resolve tiered applications deployed on tiered hardware
Performance and Security provides a reliable guarantee for certain important specific operations
Service Use external services and provide services externally
Different levels of abstraction
divide patterns into clusters for easy management, such as building The Web front end is as long as you start with a Web cluster. But different people in different stages of the project, the direction of interest is also different. Developers like the Page Control mode, while the system designer prefers layered (layer) mode. So we classify patterns from an abstraction level so that different people find the direction they're interested in. Traditionally, the pattern was divided into 3 classes using the abstract level , namely:
Architecture Pattern: The main description of the software infrastructure, in advance to set up the subsystem or the formation of the relationship, guidelines, behavior and functions. For example, layer mode
design pattern: Optimize the relationship between a subsystem or a build. The main solution is the recurring problem in the top and bottom. such as MVC design mode, single-piece (Singleton) mode
implementation pattern: A design pattern specific to a language or platform, such as Microsoft.NET Page Control mode
Viewpoint
The code does not fully respond to all aspects of the solution, such as hardware, network, and deployment, and therefore requires a name corresponding to the design pattern, thus introducing the concept of a viewpoint. Viewpoints do not describe hierarchies, but rather provide different ways of looking at things. From the software system is generally divided into four viewpoints, namely:
1. Database viewpoint: is a persistent layer of software for storing data
2. Application Viewpoint: Is the executable part of the solution, including domain model, class, assembly, process, etc.
3. Basic structure Viewpoint
4. Deployment Viewpoint
Schema framework
As reference points and navigation assistants provide a description of each individual pattern, along with a collection of various meaningful subcategories that organize the pattern. The schema framework has the following specific:
1, online things processing : Management transaction processing of the database subsystem, for business processing to provide atomic operations
2. Object-oriented
3. Layered Applications
4. graded distribution system
Using patterns to describe a solution
The constrained schema framework and the patterns it contains provide enough data points to begin using patterns to describe the entire solution. In fact, the quotation examples in Chapter 1 can be described in terms of patterns. Recall that a WEB-based quote application was specified in its requirements . Users who describe the solution architecture may make the following representations:
Let's take a look at this quote application at an abstract architectural level. From the application viewpoint, the quote application is an object-oriented application that logically constructs the three-layered Services application. (Layer three service application). From the database viewpoint, the application is based on the OLTP processing model. From an infrastructure perspective, hardware and network architectures are based on four-tiered distribution(level four distribution), which requires a different physical level of Web server functionality and application server functionality. Finally, from the deployment viewpoint, the team has created a Deployment plan (deployment plan) based on a complex WEB application tomap components to the server.
This outlines the architecture of the solution from all four viewpoints to the reader who is familiar with the reference pattern. Continue to move down an abstraction level and you might see the author describe the system design like this:
from the application viewpoint, let's consider separately each layer of the Three-layered Services application (three-tier service application).
the presentation layer is based around Model-view-controller (MVC) is constructed by the WEB representation framework. Although MVC separates the business layer from the presentation logic layer, each page contains a large amount of public logic. To eliminate this redundancy, we use the Page Controller to render common header and endnote information and to set a friendly display name for the user.
The business layer contains customers, quotations, orders, series items, and Inventory Field objects. Because development speed is an important requirement, these domain objects are implemented using the table module. Complex Web application Deployment model (deployment model) requires Web -level and application-level separation. Therefore, this level two is communicated through an agent program. The business entity Acts as the data Transfer Objects toencapsulate the information transmitted between these two levels.
Data Layer Usage The data Table Gateway accesses the OLTP database subsystem and uses a large number of data access components to support the persistence requirements of domain objects.
from the infrastructure perspective: to meet the operational requirements of the business, we add load-balanced Cluster (load Balancing cluster) and failovercluster(failover clustering) are based on basic four-tiered distribution (four-level distribution) model building. To meet the requirements of high-level concurrent users, we have added load balancing capabilities at the Web level. To meet availability requirements, we added a cluster at the database level.
You can continue to describe data and deployment viewpoints at the same level of abstraction. To do this, move down one level of abstraction, and you might see an implementation of the solution described by the author:
let's look at the solution from the application viewpoint. The solution is to useMicrosoft. NETtechnology to build. The presentation layer is based onaspin the built -inWebrepresents a frame. aspuse the built-in code-behind page functionality to simplifyModel-view-controllerthe implementation. We useaspin the built -inPage Controllermechanism to implement the presentation logic. The domain objects in the business layer are. NETThe managed object. Because the presentation and business tiers are deployed at different levels, we use server-activated objects to. NET RemotingImplementBroker. Finally, the data layer is based on. NET Frameworkin theadoclass to provide database access. Table Modules(table modules) and business entities are usedadothe data set component of the. The remainder of the data access component is determined by theMicrosoft application Blocks for. NETbuilding blocks are provided.
from the infrastructure perspective: Microsoft SQL Server? run in a failover cluster for OLTP Database subsystem. The Microsoft Network Load Balancing cluster provides load balancing between Web servers.
All these sessions are often referenced in various modes. Initially, this may be a bit daunting, but when you understand the pattern you're using, you'll realize that even a short description will give you a detailed understanding of how the system works. Note that you don't have to scroll through a large number of documents or step through endless lines of code to get an idea of this. Imagine the work involved in describing a solution without using patterns, and it is not difficult to know the communication benefits of the pattern.
This article is from "Tian Jian" blog, please make sure to keep this source http://lijianfeng10223.blog.51cto.com/3397166/1628992
Using the Micrisoft.net design Scheme Chapter II Organizational model