赞
踩
有许多不同类型的应用程序,并且每种都有各自独立的体系结构。格雷迪布奇(Grady Booch)在他的网站上列出了大量不同系统的体系结构。但是,许多这些单独的体系结构都是更通用的,特定于应用程序的体系结构模式的实例。其中的一些已在第6章中进行了讨论,但我在此处给出了3种其他应用程序架构模式的示例:
企业依靠数据处理系统来支持其业务的许多方面,例如支付薪水,计算和打印发票,维护帐户以及为保险单签发续签。顾名思义,这些系统专注于数据,它们所依赖的数据库通常比系统本身大几个数量级。数据处理系统是批处理系统,其中从文件或数据库中批量输入和输出数据,而不是从用户终端输入和输出数据。这些系统从输入记录中选择数据,并根据记录中字段的值执行程序中指定的某些操作。然后,他们可以将计算结果写回到数据库,并格式化输入和计算出的输出以进行打印。
批处理系统的体系结构具有三个主要组件,如图1所示。输入组件收集来自一个或多个源的输入;输入组件从一个或多个源收集输入。处理组件使用这些输入进行计算;输出组件生成输出,将其写回到数据库并打印。例如,电话计费系统从交换交换机获取客户记录和电话仪表读数(输入),计算每个客户的成本(过程),然后为每个客户打印账单(输出)。
输入,处理和输出组件本身可以进一步分解为输入过程输出结构。例如:
数据处理系统的性质是,记录或事务被串行处理,而无需维护事务之间的状态,这意味着这些系统自然是面向功能的,而不是面向对象的。函数是不维护一次调用到另一次调用的内部状态信息的组件。数据流程图是描述业务数据处理系统的体系结构的好方法。
数据流图是表示面向功能的系统的一种方式,其中数据流中的每个圆角矩形表示一个实现某些数据转换的函数,每个箭头表示一个由该函数处理的数据项。文件或数据存储区表示为矩形。数据流程图的优点是它们显示了端到端处理。也就是说,您可以看到在数据通过系统各个阶段时对数据起作用的所有功能。基本的数据流结构包括一个输入函数,该函数将数据传递给处理函数,然后传递给输出函数。
图2说明了如何使用数据流程图来显示数据处理系统的体系结构的更详细的视图。该图显示了工资支付系统的设计。在此系统中,有关组织中员工的信息被读入系统,计算月薪和扣除额,并进行付款。您可以看到该系统如何遵循基本的输入过程输出结构:
数据处理程序的体系结构模型相对简单。但是,在那些系统中,应用程序的复杂性通常反映在正在处理的数据中。因此,设计系统架构需要考虑数据架构(Bracket,1994)以及程序架构。数据体系结构的设计超出了本书的范围。
资源分配系统是一种信息系统,具有与第6章中讨论的相同的四层通用结构。资源分配系统管理一定数量的某些给定资源,例如音乐会或橄榄球赛的门票,必须分配这些资源向要求供应商提供该资源的用户。票务系统是资源分配系统的一个明显示例,但是实际上许多不同的程序实际上也是资源分配系统。此类系统的一些示例是:
资源分配系统是应用非常广泛的一类。如果我们详细研究它们的体系结构,我们可以看到它如何与图6.X所示的信息系统模型保持一致。资源分配系统的组件(如图1所示)包括:
这种分层架构可以通过多种方式实现。可以:
事件处理系统响应系统环境或用户界面中的事件。事件处理系统的关键特征是事件的时间安排是不可预测的,并且当这些事件发生时,系统必须能够应对这些事件。
我们所有人都在自己的计算机上使用了此类基于事件的系统-文字处理器,演示系统和游戏都由用户界面中的事件驱动。系统检测并解释事件。用户界面事件表示系统的隐式命令,系统将采取一些措施来遵守该命令。例如,如果您使用文字处理程序,并且双击一个单词,则双击事件表示“选择该单词”。
响应某些外部刺激而“实时”采取行动的实时系统也是基于事件的处理系统。但是,对于实时系统,事件通常不是用户界面事件,而是与系统中的服务器或执行器相关的事件。由于需要对不可预测的事件进行实时响应,因此通常将这些实时系统组织为一组协作过程。我将在第20章介绍实时系统的通用体系结构。
在本节中,我将重点介绍编辑系统的通用体系结构。编辑系统是在PC或工作站上运行的程序,允许用户编辑文档,例如文本文档,图表或图像。
编辑系统具有许多与其他类型的系统区分开来并影响其体系结构设计的特征:
编辑系统的通用体系结构在图1中显示为一组交互对象。系统中的对象是活动对象,可以同时并自主运行。本质上,屏幕事件被处理并解释为命令。这将更新数据结构,然后将其重新显示在屏幕上。
图1所示的体系结构组件的职责是:
由于需要快速响应用户命令,因此编辑系统没有用于调用组件以执行操作的中央控制器。而是,系统中的关键组件可以同时执行并可以直接通信(例如,事件处理器可以与编辑器数据结构直接通信),从而可以实现更快的性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。