Architect Practice Guidelines third in line - Refined Architecture (preview)

What is Architecture Refined
Refined Architecture Conceptual Architecture relative terms, corresponding to the "conceptual level" solution and the "Statute of the class" solutions. Refined Architecture (refined architecture) belongs to the architecture, not to be confused with the Detailed Design (detailed design).
The field of architecture like most multi-view method for multi-view method of architectural design and software architecture design analogy.
The actual meaning of
the value of multi-view approach:
1. conducive to thinking
2. facilitate the exchange
Practice essentials
5 view showing a method
Total FIG: each view, an angle of thinking
5 view method comprising the several views:
logical view.
Development view.
Run view.
Physical view.
Data View.

 

 

 
5 view their "thinking footing":
segregation of duties (logical view).
Program organization units (development view).
Flow control tissue (Runs view).
Arrangement physical nodes (physical view).
Design persistent (view).
Detail: each view, a set of technical concerns
5 view showing a method carding numerous technical concerns:

 

 


Logical architecture
three kinds of sub-division strategy than with
hierarchical refinement
stratification is the most common architectural patterns. 3 or 4 layer architecture supports parallel development team is not enough, need to "hierarchical refinement" (more layers).

 

 


The introduction of the partition
in order to support iterative development, logical architecture design partition must be introduced. The partition is a unit which is located inside had a particle size smaller than the layer.
Once the architect partition design for each layer, iterative development "depth-first" style is very natural.

The extraction mechanism
mechanism definition: the software system mechanisms, refers to pre-defined, to complete the desired objectives, role-based collaborative abstract way. Not only mechanism includes a collaborative relationship, but also includes collaborative process.
For the object-oriented approach, the "cooperation" may be defined as "a plurality of objects interact to accomplish certain objectives for the" distinguished "cooperative" and "mechanism" may be summarized as follows: based on the interface (and abstract classes) the collaboration is the mechanism, the mechanism is based on cooperation not really specific class.
Hierarchical refinement, the introduction of mechanisms to extract partition 4 universal design principles behind these three strategies:
different responsibilities units under the different subsystems.
Versatility of different cells under the different subsystems.
It requires different skills development unit under the different subsystems.
Taking into account the relatively balanced workload, much further segmentation subsystem.
Holistic thinking routine logic architecture design
points:
questioning drive.
Structural design and conduct design phase separation.
Architecture design is not easy. Demand has "driven" role, the design of the intermediate results of the architectural design -> questioned intermediate outcomes -> continuously being refined middle refine the results -> continue to question -> continue to improve ...
More Experience

Physical infrastructure
Why do we need the physical structure of the design
is sometimes increase the hardware may not be able to solve the problem;
software not only actual service capacity constrained "Hardware Resources", but also by "data gaps" and "data contention" constraints.
= Additional hardware to increase computational power is not equal to the actual service capacity enhancement software
physical structure of software systems focus on how to meet the reliability, scalability requirements, continuous availability, performance, security, and so on.
Work contents of the physical architecture design of
the physical architecture of the three main tasks:
hardware selection and physical topology.
Software to hardware mapping relationship.
Optimization program.
Physical architecture design thinking
from the results of the design level, the decision revolves around nothing more than the contents of the physical nodes, networks, software elements, such as data unit.

Run architecture
Why do I need to run architecture
when the system does not introduce any parallel or concurrent processing, and did not give SDK, API and other infrastructure software, custom development, it does not need to run the design architecture.
If the system in order to deal with complex business logic or complex interoperability logic (including hardware interaction), or in order to optimize the efficiency of the use of critical resources, but must rely upon a number of parallel or concurrent execution control flow, we need to run the design architecture.
Run architecture design work content
to run architecture may differ depending on the circumstances, including the contents of the following work:
to determine which control flow is introduced.
Determine each control task flow.
Deal with related issues: control the flow of creation, destruction, and other communication mechanisms.
Further consideration: the relationship between the flow control synchronization, resource contention, even if the introduction of the locking mechanism.
FIG flow control is critical. Architecture design work seems to run many and complex, in fact, so long as a single "control flow graph", it will be able to carry out a brief outline other relevant design.
3 common means to achieve control of the flow of
three kinds of methods most often used for flow control:
processes, threads, interrupt service routine.
Development framework
Why develop architecture is a must
parallel the development of the required "program unit", "the source directory structure" and so on, is the basis of different programs teams to carry out specific tasks.
Detailed design of parallel support.
Let the program managers to participate in the work of architecture practice, eliminating the workload of a large number of "simple architecture of communication", leaving programmers have "a sense of accomplishment."
Content development architecture design work
is generally complete:
1. "logic function" mapped "program unit":
To write independent source
of reusable libraries, frameworks
in other ways (such as shell scripts, configuration files under the platform support)
2. The development of technology selection
development language
development tools
3. The relationship between the "program unit"
Project division of
Project directory structure
compile dependencies
Test reuse is the key to
solve the problem year after year fix similar problems
fundamentally reduce maintenance costs
Data Distribution
6 kinds of data distribution policy
1. The independent Schema
when a large plurality of small systems by the associated system components, and different systems have mutually different small Schema definition database, a condition called "independent Schema."
If this should be the preferred architect distribution strategy to reduce unnecessary mutual influence between systems, to avoid artificially complicate matters.
2. Centralized (Centralized)
refers to a large-scale system must support access from different locations, or if the system consists of several small related system components, and persistent data storage centralized centralized, unified format.
Features: centralized storage, distribution access
3. partition (Partitioned)
partitioning mode comprises a horizontal partition and a vertical partition.
When the system to be as "geographical distribution of a wide range of users" to provide "same service", often using horizontal partitioning. Features: two identical, two different - the same application, different applications deployed instances, the same type of data, different data values.
Generally small vertical partitioning effect. Features: Schema differences have different data nodes "part of the field" in.
4. Copy (Replicated)
throughout the distributed system, multiple copies of stored data, and to a mechanism (real-time or snapshot) maintain data consistency between multiple copies of data.
Features: The data "localization", improved data access performance; special copy of the data will help focus your optimization; special copy of the data, improve manageability, strengthen security controls.
The subset (Subset)
"subset" is a special mode of "Copy" is a function of the node or functional considerations due to a relatively fixed saved subset of the entire data.
Subsets relative replication features (advantages): the cross-machine reduces the overhead of data transfer; reduce data redundancy and save storage costs.
6. The recombinant (Reorganized)
different data nodes because they have to support different functions, but with different Schema save data - but the data is essentially homologous. Data is not copied directly, but passed to "reorganize" format or save.
Data Distribution Strategy bigger picture

Guess you like

Origin www.cnblogs.com/zql98/p/12652629.html