What is the architecture of the software system (architecture)?

Source: Internet
Author: User

What is the architecture of the software System (architecture). Generally speaking, the architecture has two elements:

• It is a software system from the overall to the part of the highest level of division.

A system is usually made up of components, and how these elements form and interact with each other is an important information about the structure of the system itself.

In detail, you want to include the schema component (architecture Component), the linker (Connector), the task flow (Task-flow). The so-called architectural elements, that is, the core of the system composed of "bricks and mortar", and the linker describes the communication between these components of the path, communication mechanism, the expected results of communication, task flow describes how the system to use these components and connectors to achieve a certain requirement.

• Building a system that makes the highest level, difficult to change, commercial, and technical decisions.

There are a number of important decisions that need to be made prior to building a system, and once the system has begun to design and even build, these decisions are difficult to change or even change. Clearly, such a decision must be the most important decision on the success or failure of system design, and it has to undergo very careful research and investigation.

The history of computer software began in the 50 's, the history is very short, and in contrast, construction began from the Stone Age, human in the thousands of years of architectural design practice accumulated a lot of experience and lessons. The architectural design basically contains two points, one is the architectural style, the second is the architectural pattern. Unique architectural style and proper choice of architectural patterns can make a unique one.

The following photos show the ancient Mayan architecture of Central America, the Great Pyramid of Chichen-itza, nine huge stone piled up, 91 steps (symbolizing the number of days of the Four Seasons) Shang out, the temple of the top of the tower in the sky. All the figures are as rigorous as the calendar and the style is forceful. It's hard to imagine that this is a stone Age building.


Fig. 1, an ancient Mayan building located in Chichen-itza, Mexico (in Mayan, where Chi means the mouth Chen means well). (Photography: Author)


The relationship between software and human is the core problem that the architect must face, and it is the problem that has arisen since the software entered the stage of history. Similarly, since the construction, the relationship between architecture and human has been the core problem that architects must face. British Prime Minister Winston Churchill said that we construct buildings and then construct our buildings (we shape our buildings, and afterwards our buildings shape us). The Chamber of Commons in Britain is narrower than that of all MPs in the same direction and must be seated on both sides. Churchill thought that when they were seated, they would naturally choose to sit at the same time as their political counterparts, which was the origin of the British political party system. The original meaning of the party is "Fang" and "face". The key to the origins of political parties is the influence of buildings on people.

There have been many people in the software design community who think that function is the most important, form must obey the function. Similarly, in architectural circles, one of the pioneers of modernist architecture, Louis Sullivan, also believes that form should be subject to function (forms follows function).

Almost all software design concepts can find far more distant historical echoes in the myriad architectural histories. The most famous, of course, is pattern theory and XP theory.

   What is the goal of the architecture

Just as the software itself has a goal to achieve, what is the goal of architecture design to achieve? In general, software architecture is designed to achieve the following objectives:

• Reliability (reliable). Software systems are extremely important for the business and management of users, so software systems must be very reliable.

• Safe Line (secure). The business value of the transaction that the software system undertakes is very high, the security of the system is very important.

• Scalability (scalable). The software must be able to maintain reasonable performance when the user's usage rate and the number of users increase rapidly. Only in this way, can adapt to the user's market expansion possibilities.

• Customizable (customizable). The same set of software can be adjusted according to the different customer base and the change of market demand.

• Scalability (extensible). In the advent of new technologies, a software system should allow the introduction of new technologies to extend the functionality and performance of existing systems

• maintainability (maintainable). The maintenance of the software system includes two aspects, one is to eliminate the existing errors, and the other is to reflect the new software requirements to the existing system. An easy to maintain system can effectively reduce the cost of technical support

• Customer experience (experience). Software systems must be easy to use.

• Market timing (Time to Market). Software users face competition from the same industry, and software providers also face competition from peers. It is very important to compete for the market with the fastest speed.

   Types of schemas

Depending on the perspective we focus on, you can divide the architecture into three different kinds:

• Logic architecture, the relationship between components in software systems, such as user interface, database, External System interface, business logic components, and so on.

For example, the following is the author personally experienced a software system of the logical architecture diagram


Figure 2, an example of a logical architecture


As can be seen from the above picture, this system is divided into three logical levels, namely, representation level, business level and data persistence level. Each level contains multiple logical components. For example, the Web server hierarchy has HTML service components, session service components, Security Service components, System management components and so on.

• How the physical architecture and software components are placed on the hardware.

For example, the following physical architecture diagram describes the physical architecture of a distributed system distributed in Beijing and Shanghai, all of which are physical devices, including network splitter, proxy server, Web server, Application server, Report server, consolidated server, storage server, host, and so on.


Figure 3, an example of a physical architecture


• System architecture, non-functional features of the system, such as scalability, reliability, robustness, flexibility, performance, and so on. The design of the

System architecture requires that the architect have the knowledge of the functionality and performance of the software and hardware, which is undoubtedly the most difficult work in the architectural design effort.

In addition, from each perspective, you can see the two elements of the architecture: component partitioning and design decisions.

First, the components in a software system are first logical components. How these logical components are placed on the hardware and how these components contribute to the scalability, reliability, robustness, flexibility, performance, etc. of the entire system are important information.

Second, the decisions that need to be made for software design necessarily include logical structures, physical structures, and how they affect all non-functional features of the system. Many of these decisions will be difficult to change once they are made.

According to the author's experience, a database based system architecture, how many data tables there are, how many pages of the schema design document. For example, a medium database application system usually contains about 100 data tables, such a system design usually requires 100 pages of architectural design documents.

Architect

There are some highly skilled and experienced people in software designers who need to take on the architectural design of the system, that is, how to design the components of the systems, how the components interact, As well as the logical, physical, and systematic and important decisions made in the system. A person like

is a so-called architect (Architect). In many companies, architects are not a specialized and formal job. Typically in a development team, the most experienced programmers are responsible for some architectural work. In one department, the most experienced project managers will be responsible for some architectural aspects of the work.

However, an increasing number of organizations recognize the importance of architectural work and set up specialized architect positions at different organizational levels, which are responsible for the design, configuration, maintenance, and so on at different levels of logical architecture, physical architecture, and system architecture.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.