您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 9--通用体系结构.
软件建模技术南昌航空大学计算机学院主讲教师:段喜龙第二十二章通用体系结构3南昌航空大学计算机学院本章导读系统的总体体系结构1子系统之间的通信和耦合2UML表示法——包图3模型-视图分离模式4示例——WebService6出版-订阅模式54南昌航空大学计算机学院22.1经典的三层体系结构表示层(Presentation):窗口、报表应用逻辑(ApplicationLogic):管理业务过程的任务和规则存储层(Storage):持久化存储机构5南昌航空大学计算机学院三层体系结构视图应用逻辑层记录销售信息支付授权表示层数据库存储层6南昌航空大学计算机学院22.2面向对象的多层体系结构一个被推荐采用的面向对象信息系统的多层体系结构包括职责的分离,这种分离和经典的三层体系结构的功能分离类似。7南昌航空大学计算机学院应用逻辑层的分解以软件类为基本组织结构领域对象(DomainObject)层——代表领域概念的类。例如一个Sale。服务(Service)层——提供数据库交互、打印报表、安全性等功能的服务对象。8南昌航空大学计算机学院超过三层——多层体系结构表示层应用逻辑层存储层PostFormPaymentSale数据库接口报告生成器数据库领域概念服务9南昌航空大学计算机学院部署可能需要对逻辑上的三层体系结构进行各种各样的物理部署,这些部署包括下列情况:表示层和应用逻辑层位于客户端机器上,存储层位于服务器端机器上表示层在客户端机器上,应用逻辑层在应用服务器上并且存储层在另一个单独的数据服务器上10南昌航空大学计算机学院多层体系结构的动机构件可以得到最大限度的重用改善系统性能、支持信息共享和协调有效利用开发人员的特长、提高并行开发能力11南昌航空大学计算机学院22.3体系结构UML表示法UML提供了包(Package)的机制来说明元素组或者子系统。一个包可以是任何种类的一组模型元素,例如一组类、一组用例、一组协作图或者其他的包。12南昌航空大学计算机学院包的UML表示法领域概念核心元素Sales13南昌航空大学计算机学院体系结构包图表示领域服务数据库表示层应用逻辑层存储层14南昌航空大学计算机学院体系结构细节领域表示关系数据库通信应用程序框架&支持库报告生成15南昌航空大学计算机学院22.4包的识别按照下列原则将元素组织成包:将提供服务(或者一组相关服务集)的元素组织成一个包,这些元素之间具有高耦合度和密切的协作关系。包在某种程度上应该被视为具有高聚合度——它所承担的职责相互之间密切关联。相比下,不同包中的元素之间的耦合和合作关系应该比较松散。16南昌航空大学计算机学院22.5层的划分领域核心元素SalesProducts服务关系数据库接口通信报告生成垂直方向上的层水平方向上的划分17南昌航空大学计算机学院22.6两个包中类的可见性访问领域包的可见性——(表示包)可以看到领域包内多个代表领域概念的类访问服务包的可见性——(领域包、表示包)只能见到每个服务包中的一个或者几个类访问表示包的可见性——没有其他的包可以直接看到表示层18南昌航空大学计算机学院22.7服务包接口——虚包模式问题提出:我们需要与一组不同的接口之间建立一个公共的、一致的接口,该怎么做?解决方案:在子系统定义一个类,这个类对外具有一致的接口,并负责与该子系统相互合作,提供对外服务。优点:低耦合度19南昌航空大学计算机学院22.8模型——视图分离模式提出问题:应该将领域(模型)对象同窗口(视图)对象分开,来支持领域对象的重用,并且使领域对象的接口变更所带来的影响最小化。解决方案:定义领域(模型)类的时候,注意不要使这些类可以直接看见窗口类,并在领域类中维护应用性数据和功能,而不要在窗口类内维护它们。20南昌航空大学计算机学院模型-视图分离的意义支持聚合度更高的模型定义允许将模型和用户界面的开发分别进行使用户对界面的需求变化对领域层所造成的影响最小允许新建立一个新视图,而不影响领域层允许一个模型同时对应多个视图允许模型层独立于用户界面运行可以方便地定义模型层到其他用户界面框架的接口21南昌航空大学计算机学院模型-视图分离和间接通信轮询(Polling)上拉式(pull-from-above)下推式(push-from-below)22南昌航空大学计算机学院22.9一个系统中的间接通信出版-订阅模式问题提出:一个事件的发出者(出版者)的一个内部状态发生一次变化,同时其他对象依赖于这个事件或者对这个事件感兴趣(订阅了这个事件)。然而,出版者不能直接了解订阅者的信息,两者之间的通信应该怎么处理?解决方案:定义一个事件通知系统,让出版者能够间接通知订阅者。EventManager(纯虚构、中介者、独身)、SignalEvent23南昌航空大学计算机学院24南昌航空大学计算机学院回调当需要传递一个带参数的消息和可能的消息接受者给EventManager,这个消息和接收者的信息可以被封装在一个回调(Callback)类中。然后传递一个回调实例给EventManager,这个回调实例一旦接收到一个事件信号就开始执行(Execute)。使用回调对象的优点是隐藏了接收者和消息的细节,并且简化了回调的使用者的职责。25南昌航空大学计算机学院事件通知系统消息的发送者和接收者之间不直接耦合一个事件可以被广播给任意数量的订阅者对事件所采取的反映可以在回调对象中被概括每个回调各自在自己的线程下执行,并发性相对比较容易实现26南昌航空大学计算机学院多层体系结构举例——WebServiceWebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。WebService是建立可互操作的分布式应用程序的新平台。WebService的主要目标是跨平台的可互操作性。27南昌航空大学计算机学院示例:SOASOA(Service-OrientedArchitecture)是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。信息孤岛集成测试的重要性29南昌航空大学计算机学院WebServiceStack
本文标题:9--通用体系结构.
链接地址:https://www.777doc.com/doc-2893354 .html