** Abstract: ** This paper describes the approach of autonomous driving network architecture design from a philosophical perspective.
The key to the autonomous driving network lies in the architecture innovation. Innovation is not a rambling, illogical and realizable fantasy, but a blind fantasy without constraints and methodology. We need to pave the way to our vision through a solid architectural design approach.
The methodology described below is both a knowledge and a skill. Through knowledge learning, architecture design skills can be better understood. But as a skill, it takes practice to master. Just like learning to swim, you can’t swim well without knowledge, but you can’t swim when you enter the water with more knowledge.
01. Start with your philosophical roots
Before we get into architectural design, let’s learn a little logic. Let me give you an example to help you understand what the concept is and what the context is. Sometimes when we discuss problems, we often get into a mess, and we can’t get together. Most of the time, it’s because we have different understandings of concepts. I want to tell you a short story. Once in my lecture, I said that managing foreigners is similar to managing Chinese people. However, many people objected that I did not understand foreigners, and then I talked about many different aspects of foreigners. When you look at foreigners from the general characteristics of people, we are all the same, we all have seven emotions and six desires, we all need vision, we all need respect, we all need guidance and we all need encouragement. How is this different from Chinese? People need to find commonality to deal with things efficiently. If you want to look for personality, then trouble, this world has exactly the same people? Were you the same yesterday as you are today?
When I say that foreigners are the same, I am obviously talking about general principles. However, when dealing with specific things, not only foreigners, in fact, each individual and each individual’s different moment should be dealt with separately. When speaking, whether it means “general principle” or “special principle”, this implicit background information is the context, which usually does not appear in the conversation, but is automatically supplemented by the communication parties according to their understanding. ** People have a very strong ability to deal with context, but sometimes there will be mistakes in context understanding, which is usually said that communication is not on the same channel.
Software development requires very clear logic, especially the architectural design of large-scale software, which requires very good abstract thinking ability. Therefore, it is important to have a deep understanding of logical methods.
Before we understand the logical method, we must first understand that the objective world is defined by three elements: entity, entity attributes and relations. Identify these three elements and things are uniquely certain. And the software world is really a reflection of the physical world, so these are the three elements. I’ve drawn a little diagram of it, and I’ll look at it, and I’ll use it later.
There are several methods of thinking, such as comparison, classification, analysis, abstraction, generalization and synthesis. In traditional philosophy, “comparison” is usually juxtaposes with other methods. In fact, comparison is the most basic thinking process and the basis of other methods such as “analysis” and “abstraction”. People can determine the boundaries of things through comparison, and then divide categories according to the boundaries, that is, “classification”. If you look at a bunch of grains you can see black beans, red beans, mung beans, job’s tears, lotus seeds, millet, rice, and so on, and the process is that you compare the images, find the edges of the images, and compare the images in your memory to determine the type of grains. However, the comparison and analysis of images are all completed with neural network in a flash. People have no psychological consciousness, and the analysis process of abstract things can be perceived. If you recall, the process of analyzing things is not the same, which is to keep comparing various situations.
Therefore, analysis is to divide things according to the comparison results through continuous comparison, and decompose various entities, entity attributes and inter-entity relations.
In philosophy, the “abstract” approach is also easy to understand. Don’t entities have many attributes, such as personality characteristics, social relations, biological attributes, and other attributes under biological attributes, such as morphology and DNA. Abstract is the process of selecting attributes according to needs, and the understanding of “needs” is sometimes the tacit understanding of both sides. If there is no tacit understanding in the estimation of communication, it is necessary to clarify the degree of abstraction. For example, when I said that foreigners are all the same at the beginning, I chose the personality attributes of foreigners and ignored the social relations attributes. The other day I said that people and dogs are the same, but I chose the commonality of the two biological attributes. If one day I say that rocks and people are the same, as long as the abstraction of protons and neutrons level on the line. I can say that I am different today and I was different yesterday, because my mind and age have changed.
Or with a pile of grains for example, through the analysis of the sieve to black beans, red beans, mung beans, pearl barley, lotus seeds, millet, rice these rice beans are separated. The abstract action is just like that you think millet and rice are not coarse grain, leaving only pearl barley, lotus seeds and various beans. But there is another abstract method, that is, I only choose the whole grain that can detoxify, that is only abstract mung beans, the other is secondary. So what is abstracted is not absolute, but according to need.
Abstraction is often associated with the word essence, by the way what is the essential property of things. Abstraction is commonly according to the need to remove the useless attributes, only the key attribute is, brief strokes in order to distinguish the pear and apple, for example, the general abstract to shape can points out, this abstraction will do the trick, but if which day to draw apple pears (really have this kind of fruit), the shape of the abstract is not line, so obviously not the essential difference between apple and pear shape. So what is the essential difference between the two, the taste obviously doesn’t work either, and we can now make it taste the same. The fundamental difference between pears and apples is their DNA. So the essential attributes of things are the least characteristic attributes that can be abstracted to classify things.
** To summarize, abstraction is the thought process of selecting properties and relationships as needed. ** How to select attributes and relationships, to what extent, mainly depends on the actual scene, this is the difficulty. Just like painting, paint, pen, paper are the same, you and Xu Beihong painting of science and engineering value is far from that. What you draw can be seen and appreciated by everyone has been very good, Xu Beihong a picture is enough for ordinary people to struggle for a lifetime, this is the difference, is it!
If the abstract object is a physical object like an apple, you can identify the drawing of the apple, and the most abstract case of the drawing is a stick figure. If you connect the abstract result with the linguistic symbol, you have the concept of the word “apple”. If the abstract object is itself abstract and complex, such as the article, then this process can be called generalization. In other words, generalization is a special kind of abstraction.
The methods just mentioned are all methods of breaking things down, so “synthesis” is the reverse process, which is the method of organizing the various parts for thinking. Synthesis is not the simple addition of parts, but a reprocessing process that produces new knowledge that cannot be generated from the parts separately. I don’t know if you have noticed that when you look at oil paintings, when you walk into them, you can’t see anything but some color blocks, but when you go a little further and see the whole picture, a lifelike painting appears. This is synthesis. At the bottom, comprehensive thinking uses two thinking methods of “comparison” and “insight”.
0 2 Business modeling methods
2.1 How to model business abstraction
Having understood the seemingly philosophical and high-minded way of thinking, we began to discuss the business modeling approach, which is essentially abstracting and refactoring the business. Let’s take a look at the modeling process, and then I’ll open it up.
2.1.1 Service abstraction and classification
The actual business modeling process can be divided into the following steps:
The first step is to stack materials, many people understand the business a little do not know how to start, in fact, it is very simple, is to collect materials everywhere, there are several types:
1. The existing framework must be referred to in previous intellectual achievements.
2. General knowledge that helps to understand the background.
3. The 7P materials in the figure below refer to a business research framework I wrote before.
Read through the material once you get it, get a general impression, and then peruse it when you need it.
The second step is to abstract the business functions and determine the biggest frame of thinking. Like what big features are needed for the autonomous driving network.
The third step is to classify under the framework. The classification dimension can be decomposed according to time, space, interpersonal and business type. This step first need not do fine, probably points, facilitate further thinking. Existing business functions are generally cross-cutting, with you in and you in. Sometimes this is caused by not thinking clearly, sometimes it is caused by changes in the environment. For example, a tomato used to be a vegetable, but the new cherry tomato is now a fruit, so technically it can no longer be called a vegetable. When there is such crossover, further subdivide dimensions, and with enough subdivide dimensions, things can always end up with MECE (independent, completely exhausted) dimensions that can be separated. Tomato classification this is relatively simple, later to children when introduced into the traditional tomatoes are vegetables and cherry tomatoes are fruit. This is the most important process, make sure you get rid of all the crosses.
The fourth step is to abstract again, removing some of the non-essential content.
These processes need to be iterated many times and refined repeatedly, and are generally clearer after this process.
2.1.2 Component Modeling
After the abstraction, the next step is to cluster the classification according to the most concise principle. Clustering should consider unifying all categories to a level, and naming the clustering is convenient for management. Finally, identify the relationship between each cluster and form a relationship diagram.
Again, grains. We start by packing the black beans, red beans, mung beans, pearl barley and lotus seeds separately. But this classification is more, when selling bad introduction. At this time feel black beans, red beans, mung beans, and then unified into a bean package, and pearl barley, lotus seed package juxtaposed, became the following situation. The merging process of black beans, red beans and mung beans is a kind of clustering. So that makes it a little bit clearer.
2.1.3 System Reconstruction
If you want to sell it, obviously you have to see if it matches the market, and if it doesn’t, you have to adjust the relationship. For example, mung beans are found to have a special function of disinfection after packaging, which can be sold for more money. At this time, it is necessary to take out the mung beans and sell them separately. This is system refactoring.
2.2 Techniques of Business Abstraction – role-playing approach
It is difficult to conduct business sorting for a very complex business. The key is that there are too many things involved. If we really need to understand from various details, the workload is unbearable, and the final effect may not be good. At this time, you can use role-playing method, which is also a universal learning method, and can master new knowledge in a field at a high speed. The specific process is that before understanding things, we don’t rush to start from reality, but design a framework according to experience, and then compare actual things according to the hypothesis framework. If the agreement is correct, we will find the reason if the disagreement is not, so that we can not only quickly understand the business, but also find the existing problems. This is a very quick way to understand things.
2.3 Service combing tool XMind
The grooming business must have a proper tool. I use XMind a lot. XMind can export all kinds of beautiful images, but the most important function of this tool is to facilitate the adjustment of attributes and relationships. It may be difficult for people to think clearly about complicated things at a time, so you can list all ideas in the tool and slowly adjust the logic, which will ensure efficiency.
3 How to Design an architecture
3.1 Architecture design process
Know what architecture is before you design IT. Many people equate architecture with software architecture, but I’m going to expand the scope of architecture a little bit to include more complex systems like IT, process, and organization, because the three are often interrelated. Unfortunately, despite all the talk of architecture, I haven’t found a good definition of it. To paraphrase the big data joke, it also applies to architecture:
Architecture is like **age sex, everybody talks about it, nobody really knows what is it
Based on the TOGAF architecture definition, this paper redefines:
** Architecture: ** is an abstract description of the organization of a complex system, including the internal components of the system, the relationship between the internal modules, and the relationship between the system and the environment.
** Architecture design: ** is to meet the business requirements of the system. Under the constraints of business value space, historical accumulation and architecture development, the architecture is constructed through business abstraction, component modeling and system reconstruction, so that the stability, flexibility, evolvability and cost of the system can be achieved with the optimal solution. The output includes three parts: design principles, architecture and evolution principles.
The requirements understanding of architectural design, the business modeling approach, was covered in the previous section. Here’s my understanding of design constraints and architect requirements.
Architecture is not out of thin air, architecture should consider whether it can be realized and the cost of realization. I just bought a smart speaker, and found that the volume adjustment logic of the speaker is very messy. I suggest the brother who makes the speaker to bind the volume adjustment to the use scene. This is the easiest way to use the interface. But should architecture do this? This is a key point for the architect to consider, because the volume of the speaker can be adjusted in different places, and how to keep the volume state consistent across the software requires low-level support. He must understand the underlying implementation capability, if is the android version before, can be difficult to implement the function, the interface works also have to give up, and how the new service architecture may support, is worth a try, have difficulty also can break through, so architecture design must be on the basis of fully understanding system capacity of a trade-off.
In addition, the architecture design must also consider the stability of the future architecture. For example, some of our large-scale software systems still adopt the traditional architecture even though servitization has become an obvious trend. After several years of work, we have to redesign the servitization design. Therefore, software architecture design should take into account the benefits of different architecture designs, historical accumulation, and the future development of architecture.
Architectural design is complex and sometimes an art that needs to be balanced. If you want to be an architect, there are several characteristics that you need. First, we should be open to the outside world and not stick to the rules. We should look at what our ancestors say about everything. We must not have our own opinions. First, we need to be insightful and know how to cut the rough and save the essence. We should not make the architecture more complicated by making a hasty decision. Business should also be proficient, to be good at learning, to knowledge, knowledge more comprehensive consideration. As an architect, you have to understand both business and software. Otherwise you can’t make a good design.
Architect is a very key role, often decide the life and death of software applications, assume such a heavy responsibility, we will have a question, that such a bull is not difficult to find? In fact, don’t worry about it at all. Architectural design is ultimately an engineering problem, unlike relativity, which no one but a genius can solve. The world is full of engineering-oriented people. It’s just a matter of how to find them and how much money to pay. Of course, there is another worry, whether the cost will be high, in fact, there is no need to worry, the number of architects is also very small, compared to the cost of the system is not high, so Apple will try to find the best talent.
3.2 Architectural design methods in the industry
The following ADM (Architecture Development Method) is The enterprise Architecture design Method of TOGAF (The Open Group Architecture Framework). It is published by The Open Group based on The information management technology architecture of The US Department of Defense. It is very complete and detailed and worth learning.
Modern knowledge search is very easy, if you know what knowledge do not know, a search to find, the key is sometimes do not know what they do not know. So all you need to know is that there’s a good way to do this, and I’m not going to talk about it, but there’s a lot of information online if you’re interested.
04 Architecture design application examples
4.1 Software architecture design
I will not talk about the specific software architecture design itself, but focus on the concept of software architecture design. From the very popular concept of domain-driven Design (DDD), in essence, business software Design is the simulation of real business with software, and the process of designing software is the process of understanding business.
DDD is first and foremost a design idea that answers big questions like “what is the nature of design and what is the main logic?” DDD emphasizes that we should think about how to design software architecture from the perspective of business. Design must know what the business looks like, what the business needs and problems are, and what the internal logic is, rather than design from the software technology itself, which is a big direction for design. Although this direction seems to be nothing to say, in practice, many software engineers tend to design from the software itself, and it is easy to take a detour when encountering business problems. Therefore, the emphasis on starting from the business is the most valuable part of this method.
5 Architecture reference design
Automatic driving network reference design, the following architecture can be compared to understand.
5.1 TOGAF EA and Frameworx
Frameworx is TMF’s NOSS framework, equivalent to the telecom version of TOGAF EA instance.
5.2 TMF Autonomous Network Architecture
Here is the AUTONOMOUS network reference architecture of TMF:
The following text is quoted from: 001-CTGMBOSS-OSS-2.5- Conceptual System Volume (final review) by China Telecom. This document is quite old, but the problem remains the same now.
“The industry’s concept description of OSS is relatively clear TMF SID’s concept description. SID’s architecture includes three main concepts: Product, Service, and Resource. The services are further subdivided into Customer Facing Service (CFS) and Resource Facing Servcie (RFS). The product can contain multiple customer-oriented services. Customer-oriented services are composed of multiple resource-oriented services, and resource-oriented services are composed of resources. The specific relationship is shown in the figure. TMF defines each concept in eTOM as follows:
Product is what an entity (supplier) offers or provides to another entity (customer). Product may include service, processed material, software or hardware or any combination thereof. A product may be tangible (e.g. goods) or intangible (e.g. concepts) or a combination thereof. However, a product ALWAYS includes a service component.
Services are developed by a Service Provider for sale within Products. The same service may be included in multiple products, packaged differently, with different pricing, etc.
Resources represent physical and non-physical components used to construct Services. They are drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, and technology components.
In the next part, I will introduce a new ISOAP (My soap) model of network operation function that I understand. Welcome to discuss.
Click to follow, the first time to learn about Huawei cloud fresh technology ~