Architectural Design is a very big topic. No matter how many articles are written, it is always the tip of the iceberg, but it is more practical.
This article mainly introduces the position and role of object-oriented OO, Aspect-Oriented AOP and service-oriented SOA in architecture design.
I. Architecture Design
The architecture design has three dimensions, or the three directions we need to consider when considering the architecture. They are object-oriented, aspect-oriented, and service-oriented. These three dimensions can be considered orthogonal, but different dimensions are mutually verified and supported.
The entire architecture is as follows:
Ii. Object-oriented
Object-oriented technology was initially designed for Object-Oriented Programming. Its appearance was marked by the simula language in 1960s, in addition, the Improvement and standardization of the Smalltalk language have gained more extensions and comments on previous ideas. In the middle and late 1980s S, object-oriented programming gradually matured and was understood and accepted by the computer industry. People began to further consider the issue of object-oriented development. Until now, object-oriented has become a very popular programming method and software design architecture.
Object-Oriented development has three main objectives: reusability, flexibility, and scalability, emphasizing the "abstraction", "encapsulation", "inheritance", and "polymorphism" of objects ". It allows people to think about programs in a way closer to the real world. This can be said to be the greatest progress of Object-oriented thinking.
In the application of OO ideas, many good experiences and skills have emerged in the industry, resulting in a large number of design patterns. It can be said that object-oriented is an important aspect of system analysis and design.
3. Aspect-Oriented
The aspect orientation was initially derived from the hook technology. In essence, it is to meet the expansion requirements and allow for free expansion of functions in the program.
Aspect orientation is not only a programming technology, but also an architectural design idea. If OO is used to analyze and cut the entire system vertically, it can be considered that AOP is used to segment the system horizontally. In a simple understanding, OO and AOP provide us with the idea of an analysis system from two different perspectives. The aspect orientation can make up for the object-oriented defects. The combination of the two methods can be used to analyze the system more effectively.
We believe that OO is a way of thinking close to human understanding of nature, but it is not the case for the east. When Westerners see a complex system, there is only one way of thinking: "decomposition"-breaking the system into one piece and then researching each part. When the orients see a complex system, they will pay more attention to the relationships in the system and study the system as an organic whole.
There are no problems with these two ways of thinking. It would be better to analyze the problem and solve the problem together. The same is true for object-oriented and object-oriented aspects, which correspond to the natural ways of thinking that humans understand. However, Chinese people may have different understandings about AOP-I wrote the article "read easily [13] · chatting about traditional Chinese medicine and AOP", which provides a simple description.
4. Service-Oriented
Service orientation can be said to be a very popular concept recently. This includes the SaaS-Software as a service, Software as a service. To be accurate, service-oriented is not just a concept of the software industry. This should begin with the industrial structure of society.
There are three social industries: First-industry agriculture, second-industry, and third-Industry Service. The primary industry in the earliest society was the first industrial agriculture, with a history of nearly years. In the lower half of the 18th century, the industrial revolution started in the UK has had a fundamental impact on people's lives. The main industry of society has become the secondary industry.
It still belongs to the industrial age, or some people say "the post-industrial age ". In the post-industrial age, the social economic system must gradually transform to the tertiary industry service industry. Service-oriented is actually a migration of the focus of the socio-economic system.
Back to the software industry, the main industries in society will be transformed into services, and the natural software industry will also change accordingly, that is, the service-oriented mentioned here. In the future, service orientation will affect the Software Delivery Model and the entire software industry system.
In terms of architecture, service-oriented is a way for the system to publish functions. In addition, different systems can communicate and collaborate effectively in this way. A common implementation technology is Web Service.
V. Software Overview
Three dimensions of Software Architecture Design: Object-oriented, aspect-oriented, and service-oriented.
One of the oldest dimensions is object-oriented. It has been around for decades and is a relatively mature dimension. It solves the problem by designing the internal structure of the system.
The idea of aspect orientation can make up for the defect of object orientation. The object-oriented approach cannot separate cross-cutting concerns, but the aspect-oriented approach is designed to solve this problem. The aspect orientation is the same as the object-oriented design that addresses the internal structure of the system.
Service-oriented is more about the external aspects of the system. Simply put, the function is released. It does not focus on the implementation of the internal structure of the system. Therefore, service orientation does not conflict with object-oriented or aspect orientation.
These three dimensions are not absolutely isolated, and they affect and constrain each other. When analyzing the architecture, we need to consider these three dimensions at the same time. This helps us design a better architecture.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx? Postid = 1508029