当前位置:网站首页>Architecture introduction
Architecture introduction
2022-07-04 10:16:00 【JoesonChan】
Translated from :https://tianpan.co/notes/145-introduction-to-architecture
Architecture is the shape of a software system . Think of it as a panoramic view of a physical building .
- Examples are bricks .
- The design principle is room .
- Components are buildings .
Together they are used for specific purposes , For example, hospitals are used to cure patients , Schools are used to educate students .
Why do we need architecture ?
Behavior and structure
Each software system provides stakeholders with two different values : Behavior and structure . It is the responsibility of software developers to ensure that these two values are high .
With its job description , Software architects focus more on the structure of the system , Instead of functions and features .
ultimate objective - Save the cost of human resources for each function
Architecture serves the whole life cycle of software system , To make it easy to understand , Development , test , Deployment and operation . The goal is to minimize the human resource cost of each business use case .
mark · Richards (Mark Richards) Written O'Reilly Work 《 Software architecture pattern 》 It is a simple and effective introduction to these five basic architectures .
1. Layered architecture
Layered architecture is the most common in adoption , It is well known among developers , Therefore, it is the actual standard of application . If you don't know which architecture to use , Please use it .

Example
- TCP / IP Model : Application layer > Transport layer > The Internet layer > Network access layer
- Facebook TAO:Web layer > Cache layer ( followers + The leader )> Database layer
Pros and cons
- advantage
- Easy to use
- Separation of responsibilities
- Testability
- shortcoming
- monolithic
- Difficult to adjust , Expand or update . You must make changes to all layers .
- monolithic
2. Event driven architecture
A state change will send an event to the system . All components communicate with each other through events .

A simple project can put a mediator , Event queues and channels are combined . Then we get a simplified architecture :

Example
- QT: Signals and slots
- Payment infrastructure : Bank gateways usually have high latency , Therefore, they adopt asynchronous technology in the architecture design .
3. Microkernel architecture ( Also known as plug-in architecture )
The responsibilities of the software are divided into “ The core ” And multiple “ plug-in unit ”. The core contains minimal functionality . Plug ins are independent of each other , And implement shared interfaces to achieve different goals .

Example
- Visual Studio Code,Eclipse
- MINIX operating system
4. Microservice architecture
Large systems are decoupled from multiple microservices , Each microservice is a separately deployed unit , They use RPC Mutual communication .

Example
- Uber: see also Design Uber
- Cleverly
5. Space based architecture
The name of this pattern comes from “ Tuple space ”, namely “ Distributed shared memory ”, No database or synchronous database access , Therefore, there is no database bottleneck , All processing units share replication application data in memory . Elastic start and close .

Example : see also Wikipedia
- Most often Java Users use : for example JavaSpaces
边栏推荐
- Batch distribution of SSH keys and batch execution of ansible
- Exercise 7-3 store the numbers in the array in reverse order (20 points)
- Basic principle of servlet and application of common API methods
- 2020-03-28
- PHP code audit 3 - system reload vulnerability
- Hands on deep learning (32) -- fully connected convolutional neural network FCN
- System. Currenttimemillis() and system Nanotime (), which is faster? Don't use it wrong!
- Work order management system OTRs
- 5g/4g wireless networking scheme for brand chain stores
- Doris / Clickhouse / Hudi, a phased summary in June
猜你喜欢

Safety reinforcement learning based on linear function approximation safe RL with linear function approximation translation 1

Machine learning -- neural network (IV): BP neural network

Pcl:: fromrosmsg alarm failed to find match for field 'intensity'

Basic principle of servlet and application of common API methods

Hands on deep learning (42) -- bi-directional recurrent neural network (BI RNN)

品牌连锁店5G/4G无线组网方案

The future education examination system cannot answer questions, and there is no response after clicking on the options, and the answers will not be recorded

Hands on deep learning (34) -- sequence model

C语言指针面试题——第二弹

【Day1】 deep-learning-basics
随机推荐
有老师知道 继承RichSourceFunction自定义读mysql怎么做增量吗?
Check 15 developer tools of Alibaba
C # use gdi+ to add text with center rotation (arbitrary angle)
入职中国平安三周年的一些总结
Hands on deep learning (III) -- Torch Operation (sorting out documents in detail)
Advanced technology management - how to design and follow up the performance of students at different levels
用数据告诉你高考最难的省份是哪里!
今日睡眠质量记录78分
Golang type comparison
Hands on deep learning (35) -- text preprocessing (NLP)
按键精灵跑商学习-商品数量、价格提醒、判断背包
IIS configure FTP website
华为联机对战如何提升玩家匹配成功几率
Tables in the thesis of latex learning
System.currentTimeMillis() 和 System.nanoTime() 哪个更快?别用错了!
Button wizard business running learning - commodity quantity, price reminder, judgment Backpack
Hands on deep learning (34) -- sequence model
Hands on deep learning (36) -- language model and data set
AUTOSAR from getting started to mastering 100 lectures (106) - SOA in domain controllers
Vanishing numbers