系统架构设计框架简介

  • 格式:pdf
  • 大小:389.97 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于组件的架构

应用可以按组件划分,不用组件实现不同功能和逻辑,组件之间的接口规范有很好的定义。某些组件可以重用。

如果

有若干现成组件,比如以前系统的ActiveX组件或者.net的组件

应用程序足够简单而不需要分层的架构,通过调用这些组件就可完成大部分工作

不同语言开发的组件需要结合在一起,如需要调用VB写的COM+的组件

应用程序需要支持插件技术,可以动态切换组件,例如用.net反射技术实现的插件技术

那么我们可以选择基于组件的架构。

分层Layered的架构

应用被划分成了堆叠在一起的若干层,每一层完成特定的服务和功能,与其上下层接口,各层之间是调用被调用的关系。在最上面的层只有调用下面的一层,在中间的层则兼有调用和被调用。在最下面的层则是仅供上面的层调用。通常划分成UI层,商务逻辑层,数据层等,并且通常多个层都部署在同一台服务器上。

如果

应用程序比较复杂,不同的功能需要不同的层来各司其职,如数据访问,商务逻辑,表现等。有比较复杂的商务逻辑和流程。

那么我们可以选择分层的架构。

Model,View,Controller(MVC)架构

用户交互的处理与UI显示分离

用户交互的处理和UI显示与数据分离

如果

要获得分离的UI视图和处理逻辑

要UI视图和处理逻辑与数据存储分离

3Tier/N Tier的架构

Tier可以译成排。以与Layer(层)有所区别。将应用程序划分成一系列的服务,包括UI, Business(商业逻辑),数据等服务。各Tier可部署在不同的服务器上。类似于分层(layer)的架构。通常分层(layer)不跨机器的边界,也即所有层(layer)都部署在一台服务器上。Tier 是要跨机器的边界。各Tier之间用预定义的通信协议来通信,如WCF,Web service,或者TCP/IP等。分层(layer)的各层(layer)之间的通信都是通过该编程语言的引用和调用来实现的。所以是有区别的。

如果

应用全部在内部网里

应用在互联网上,同时商务逻辑需要暴露给公众使用

商务逻辑足够复杂,需要专门的服务器来提供商务逻辑服务。

应用程序比较复杂,不同的功能分布在不同的服务器上,每一种功能,都可能是由一组服务器来提供。

那么我们可以选择3Tier/N Tier架构

面向对象的架构

应用可以划分成自给自足的可重用的对象集合,对象包含了数据和行为。各对象之间有消息交互。

如果

相关商业领域有足够多的现实对象(这些对象通常是相关商务人员口中的名词),并且这些对象之间有交互

应用比较复杂,需要更多的抽象

对象的数据和行为都需要封装以利重用

有足够的资源来做深入的面向对象分析,如时间,人力等。

面向服务的架构

应用使用一个功能是通过调用一个服务。在服务提供者和调用者之间有通信合同和消息,通信合同定义了消息的格式和通信的方式。消息则包含通信的内容。面向服务的架构是“请求-响应”的工作模式。应用程序是以一种服务提供的,调用者需要向服务发送预定义好的请求消息,服务才做出响应。

如果

应用需要支持平台无关性

多个应用程序的功能放进一个单一的界面来提供

采用请求-响应模式运行

需要开发软件加服务(Software plus service),软件即服务(Software as a service)类型的应用,或者基于云计算的应用

那么我们可以选择面向服务的架构。