1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,精选,*,基于事件的隐式调用,精选,基于事件的隐式调用,构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其它构件的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。一个事件的触发导致了另一个模块中过程的调用。,精选,event-based,implicit invocation,1 设计词汇表?,模块(过程或事件的集合)过程的隐式或显式调用,2 构件和连接件的类型?,构件:模块,既可以是一些过程,也可以是一些事 件的集合,连接件:过程的隐式或显式调用,3 可容
2、许的结构模式?,精选,event-based,implicit invocation,精选,event-based,implicit invocation,4 基本的计算模型?,构件可以声明或广播一个或多个事件,或者向系统注册它希望响应的一个或多个事件,5 风格的基本不变性?,过程向特定事件注册,构件发布事件,当某些事件发布时,向其注册的过程被隐式调用。调用的次序是不确定的。,6 其使用的常见例子?,开发工具中调试过程中的变量监视刷新变量值,数据库中的一致性约束,精选,debugger,精选,MVC,精选,event-based,implicit invocation,7 优缺点?,优点:,(
3、1)为软件重用提供了强大的支持,,当需要将一个构件加入到现有系统中时,只需要将它注册到系统的事件中。,(2)为改进系统带来了方便。,当用一个构件代替另一个构件中时,不会影响到其他构件的接口。,(3)支持隐式调用,,无需事先设定调用次序,(4)异步执行,,无需等待同步执行的结果,(5)健壮性,,一个构件出错,并不会影响其他构件,精选,event-based,implicit invocation,缺点:,(1),构件放弃了对系统计算机的控制。,一个构件触发一个事件时,不能确定其他构件是否会影响它。而且即使它知道事件注册了那些构件的构成,它也不能保证这些过程被调用的顺序。,(2),数据交换的问题。
4、有时数据可被一个事件传送,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。,(3)既然过程的的语义必须依赖于被触发事件的上下文,,关于正确性的推理存在问题。,(4)系统的验证和调试变得困难,精选,分层系统,精选,分层系统,在层次系统中,系统被组织成若干层次,每个层次由一系列的构件组成,下层构件为上层构件服务,上层构件被看成下层构件的客户,精选,分层系统,1 设计词汇表?,实现在层结构中的虚拟机 层与层之间交互的协议,2 构件和连接件的类型?,构件:实现在层结构中的虚拟机,连接件:层与层之间交互的协议,3 可容许的结构模式?,精选,分层
5、系统,精选,分层系统,4 基本的计算模型?,每一层提供一个抽象的功能,并作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。,5 风格的基本不变性?,每一层向其上层提供服务,并利用下层的服务。层与层之间通过协议交互。,6 常见例子?,操作系统(OS),计算机网络协议组,如TCP/IP,广泛应用在分层通讯协议中,如OSI/ISO分层通讯模型,精选,Unix 操作系统,精选,OSI,国际标准组织,(,ISO,),制定了OSI模型。这个模型把网络通信的工作分为7层,精选,分层系统,7 优缺点?,优点:,(1),支持基于抽象程度递增的系统设计,(2),支持功能增强,。因为功能的
6、改变最多影响相邻的上下层。,(3),支持重用。,只要提供的的服务接口定义不变,同一层的不同实现可以交换使用。,精选,分层系统,缺点:,(1)并不是每个系统都可以很容易地划分为,分层,的模式。,(2)很难找到一个合适的、正确的,层次抽象方法。,精选,C2风格,精选,C2风格,C2风格由,构件和连接件,两种元素组成。构件和连接件都由顶部和底部组成。,构件与构件之间只能通过连接件连接。连接件之间可以直接相连。构件的顶部、底部分别与连接件的底部、顶部相连。,构件间发送的消息有两种,,向上级发送的请求(request),和,向下级构件指示状态的改变(notification),。而连接件负责消息的过滤、
7、路由和广播等通信及相关处理。,精选,C2风格,1 设计词汇表?,C2构件,C2连接件,异步消息交换,2 构件和连接件的类型?,构件:C2构件(有自己的状态、控制线程,必须包括顶层域和底层域),连接件:C2连接件(负责把C2构件绑定在一起),3 可容许的结构模式?,精选,C2风格,精选,C2风格,4 基本的计算模型?,C2构件的顶层域规定了该构件所能响应的通知消息集,以及它能向上产生的请求消息集,底层域规定了该构件所能向下产生的通知消息集,以及它能响应的来自下层的请求消息集。,5 风格的基本不变性?,所有构件之间的通信是通过以连接件为中介的异步消息交换机制来实现的。,6 常见例子?,用户界面软件领域中的C2构件,精选,C2风格,7 优缺点?,(1),构件是相互独立的,,构件之间依赖性很少。,(2),基于消息的通信。,构件之间所有的通信只能通过消息进行。,(3),多线程。,这是异步处理的特性。,(4)系统中的构件可,实现应用需求,,并能将任意复杂的功能封装在一起。,精选,