代码改变世界

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

2010-05-24 23:17  Virus-BeautyCode  阅读(2585)  评论(0编辑  收藏  举报

  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