当前位置:网站首页>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 .

 

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

 

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

 

 

 

 

原网站

版权声明
本文为[JoesonChan]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202141422236384.html