`

NET 应用架构指导 V2 学习笔记(五) 软件架构的模式和风格

阅读更多

  n-tier/3-tier architecture style

  n层/3层架构风格

  n-tier和3-tier是一种描述架构部署风格的,用来将功能分为不同的部分,有点像分层架构模式,但是一个部分可以部署到不同的物理机器。

  n-tier应用架构分解应用的功能,服务组件,分布式部署,提供改进的扩展性,可管理性。每一层都独立于其它层,除非他们是上下层关系。第n层只需要指导如何处理来自n+1层的请求,如何处理请求的结果。层之间的通信是典型的异步,可以支持更好的扩展性。

  n-tier通常至少有三个分离的逻辑层,每一层分布在不同的物理服务器。每一层都具有特殊的功能。

  n-tier和3-tier的典型应用是web应用,其他的安全特别重要。业务逻辑层要部署在防火墙的后面,表现层被部署在边缘服务器上。另外一个典型应用是富客户端应用,表现层部署在客户端机器上,业务层和数据访问层部署在一个或者多个服务器上。

  n-tier和3-tier的好处包括:

  •   可维护性。因为每一层都是独立的,更新和修改都不影响其他部分。
  •   可伸缩型。因为层建立在部署的基础上,应用的缩放比例可以控制。
  •   灵活性。因为每一层独立的管理,灵活性就增加了。

  Object-oriented architecture style

  面向对象架构风格

  面向对象的架构是建立在分离职责之上的,将系统分为独立的、可重用的高效对象。例如包含数据和操作的对象。面向对象设计将系统看做是一系列相互协作对象。对象是分离的,独立的,松散耦合的。他们通过接口相互通信,通过调用其他对象的方法,或者访问属性,来发送和接收消息。面向对象的关键原则是:

  •   抽象性。
  •   组合性。对象可以通过其他对象进行组合,对其他对象隐藏内部实现,只是暴露接口。
  •   继承性。
  •   封装性。
  •   多态性。
  •   解耦性。

  常用的面向对象风格包括定义对象模型,包括复杂的操作,定义代表真实世界的业务对象(例如客户和订单)。

  面向对象的好处:

  •   容易理解。和真实世界进行映射,使得它更容易理解。
  •   可重用。通过多态和抽象提高可重用性。
  •   测试性。通过封装提高了可测试性。
  •   扩展性。
  •   高内聚。

  Service-oriented architecture style面向服务的架构风格

  SOA的原则:

  •   服务的原子性。
  •   服务是可分布的。服务可以部署在网络的任何地方,本地或者是远程,只要网络支持必要的通信协议。
  •   服务是松散耦合的。每一个服务都是独立的,可以在不破坏应用的情况下,进行替换和更新,只要不改变接口。
  •   服务共享结构和契约,而不是类。服务在通信的时候共享契约和接口,而不是内部的类。
  • 策略的一致性。

 

  未完待续。。。。。。。。。。。。。。。。。。。

  P37

分享到:
评论

相关推荐

    AADL 学习笔记_V2_aadl_

    在“AADL学习笔记.docx”文档中,读者可以期待找到对这些概念的详细解释、实例演示以及如何将它们应用到实际项目中的指导。这份笔记对于正在学习AADL或准备采用AADL进行系统设计的人来说是一份宝贵的资源。

    SNMP学习笔记

    ### SNMP学习笔记 #### SNMP架构概述 简单网络管理协议(Simple Network Management Protocol,简称SNMP)是一种用于收集和组织有关网络设备的信息,并更改该设备配置的互联网标准协议。SNMP在许多网络管理系统的...

    PTN原理学习笔记

    本文档的内容摘录自中兴资料《Unitrans ZXCTN 9008(V2[1].08.31)分组传送产品产品描述.pdf》中。 2.1. PTN的定义 分组传送网(PTN)是指这样一种传送网络架构和具体技术:  在IP业务和底层光传输媒质之间设置了一...

    51单片机RFID射频IC卡板子资料V2

    51单片机是微控制器的一种,因其8位CPU和相对简单的架构而广泛应用于各种嵌入式系统中,包括RFID系统。这个资料包的亮点在于它结合了51单片机和RFID技术,使用户能够实现射频识别功能。 资料包中包含的元素如下: ...

    车联网学习笔记.pptx

    介绍车联网相关内容,包括自动驾驶感知、决策相关技术、C-V2X相关技术、架构、厂家,适合快速了解车路协同领域

    redis学习笔记

    ### Redis 学习笔记知识点梳理 #### 一、Redis 关机命令及检查启动状态方法 在使用 Redis 过程中,我们可能会遇到需要重启或关闭 Redis 的情况。以下是几种常用的 Redis 关机命令: 1. **halt**: 立刻关机。 2. *...

    Linux平台开发资源.rar_Linux平台开发资源链接汇总_V2J_linux 平台

    在IT行业中,Linux平台开发是一项至关重要的技能,尤其对于嵌入式系统和服务器端软件的构建。本资源压缩包“Linux平台开发资源.rar”提供了一个综合性的学习和工作辅助资料库,特别适合那些想要深入理解或者提升...

    7.2024年大唐杯学习知识点_思维导图.zip

    例如,5G在智能交通中的应用,包括车联网(V2X)通信,可以实现车与车、车与路的实时交互,提高交通安全和效率。在智能制造中,5G低延迟特性有助于实现远程操控和自动化生产。 此外,5G网络的安全性也是重要一环。5G...

    20个精典微信小程序源码

    每个源码都有其特定的功能和应用场景,让我们逐一探讨。 1. **AppleMusic**:模仿Apple Music设计的小程序,展示了音乐播放、歌曲推荐和用户界面设计,可以学习到如何实现音乐播放功能以及UI设计技巧。 2. **TCP,...

    分布式系统原理与范型 V2 (2008)

    这种设计模式允许扩展性、容错性和高性能。 2. **分布式系统的核心特性**: - **透明性**:用户应感觉不到系统的分布性,如位置透明性、复制透明性等。 - **并发控制**:处理多个节点同时操作同一资源的情况。 -...

    红茶三杯技术文档.rar

    红茶三杯技术,源于网络技术领域中的路由协议学习,是一种形象化的术语,通常用来指代Cisco IOS中的三种基本路由协议:静态路由、RIP(Routing Information Protocol)和OSPF(Open Shortest Path First)。...

    展讯的相关资料

    "SC6600L软件平台介绍.pdf"则专门介绍了SC6600L这款芯片的软件平台,包括其架构、功能特性、软件开发工具和流程等,对于理解这款芯片的性能和优化代码有极大的帮助。 "Mocor平台MMI开发指南_V1[1].0.0.pdf"可能是一...

    基于MSP432的智能小车代码

    "TI-RSLK基础版资料v2"可能指的是TI推出的Robot Systems Learning Kit(RSLK)的基础版本的第二版教程资料,这个套件通常包含一系列实验和教学资源,帮助学习者了解如何利用MSP432来构建和编程智能小车。 在这些...

    stm32f4编程资料

    这个“stm32f4编程资料”压缩包显然包含了与STM32F4开发相关的多个资源,包括固件库使用、学习笔记和简介等内容,为开发者提供了深入理解并应用STM32F4处理器的基础。 1. **STM32F4固件库使用**:STM32F4固件库是由...

    STM32教程总结学习资源(2)

    这是一份针对具体型号STM32F103C8T6的学习笔记,包括了硬件连接、初始化、外设使用等实战经验,对于新手上手STM32开发板非常实用。 7. **STM32选型指南.pdf**: 选型指南提供了选择STM32微控制器的依据和建议,...

    Hawkboard Using Code Composer Studio V4 & XDS100V2 Emulator

    本应用笔记旨在指导初学者如何在Hawkboard平台上利用Code Composer Studio V4(CCS)及XDS100V2仿真器构建并运行一个简单的基于裸机的程序。此项目特别适用于那些希望了解如何在ARM架构处理器上编写基本代码的人群。...

    最全STM8例程+工具

    压缩包可能还包括用户手册、参考手册、应用笔记和开发板文档,这些文档是理解STM8特性和应用的关键。开发者可以从中学习如何配置寄存器、如何编写中断服务程序、如何优化代码等。 5. 应用场景: STM8适用于各种领域...

Global site tag (gtag.js) - Google Analytics