爆大奖注册送56

点对点风格

[文章来源:爆大奖注册送56     点击率:10次    发布日期:2016-09-26]
 
基于事件的集成
 
  基于事件的集成风格也被称作隐式调用风格或者事件系统风格。通过消除了解连接器接口的标识信息的必要性,它降低了组件之间的耦合。此架构风格不是直接调用另一个组件,而是一个组件能够发布(或广播)一个或者多个事件。在某个事件发布后,系统中的其他组件能够注册对于该事件类型的兴趣,由系统本身来调用所有已注册的组件。此架构风格的范例包括:Smalltalk-80中的MVC范例,以及很多软件工程环境的集成机制,包括Field[注释]、SoftBench和Polylith。
 
  通过使得添加侦听事件的新组件更加容易(可扩展性)、鼓励使用通用的事件接口和集成机制(可重用性)、允许替换现有组件而不会影响其他组件的接口(可进化性),基于事件的集成风格为可扩展性、可重用性和可进化性提供了强有力的支持。如同管道和过滤器系统一样,将组件放在事件接口上——这一“看不见的手”需要高层次的配置架构。大多数EBI系统也将显式调用作为交互的一种补充形式。对于以数据监视为主,而不是以数据获取为主的应用,EBI通过使得轮询式交互变得不再必要,能够提高效率。
 
  EBI系统的基本形式由一个事件总线组成,所有的组件通过这个总线侦听它们所感兴趣的事件。当然,这会立即导致与以下问题相关的可伸缩性问题:通知的数量、由通知引发其他组件广播而导致的事件风暴、在通知传送系统中的单点故障。这些问题能够通过使用分层系统和事件过滤来改善,但却是以损害了简单性为代价的。
 
  EBI系统的另一个缺点是:难以预料一个动作将会产生什么样的响应(缺乏可理解性),事件通知并不适合交换大粒度的数据,而且也不支持从局部故障中恢复。
 
C2
 
  C2风格直接支持大粒度的重用,并且通过加强基层独立性,支持系统组件的灵活组合。它通过将基于事件的集成风格和分层-客户-服务器风格相结合来达到这些目标。异步通知消息向下传送,异步请求消息向上传送,这是组件之间通信的唯一方式。这个约束加强了对高层依赖的松耦合(服务请求可以被忽略),并且与底层实现了零耦合(无需知道系统使用了通知),从而既改善了对于整个系统的控制,又没有丧失EBI的大多数优点。
 
  通知是对于组件中的状态变化的公告。C2风格并不对在通知中应该包括什么内容加以限制:标志、状态的delta改变量、或者完整的状态表述都是有可能的。连接器的首要职责是消息的路由和广播;它的第二个职责是消息过滤。引入对于消息的分层过滤,解决了EBI系统的可伸缩性问题,同时也改善了可进化性和可重用性。在C2风格中,能够使用包括了监视能力的重量级连接器来改善可见性和减少局部故障所导致的可靠性问题。
 
  分布式对象
 
  分布式对象风格将系统组织为结对进行交互的组件的集合。对象是一个实体,这个实体封装了一些私有的状态信息或数据、操作数据的一组相关操作或过程、以及可能存在的控制线程,这种封装使得它们能够被整体地看作单个的单元。通常,对象的状态对于所有其他对象而言,是完全隐藏和受到保护的。检查或修改对象状态的唯一方法是对该对象的一个公共的、可访问的操作发起请求或调用。这样就为每个对象创建了一个良好定义的接口,在对象的操作实现和它的状态信息保持私有的同时,公开操作对象的规格,这样做改善了可进化性。
 
  操作可以调用位于其他对象之上的操作。这些操作也同样可以调用其他对象之上的操作,以此类推。一个相关联的调用链被称作一个动作。状态分布于对象之间,这有利于使状态尽可能保持最新,但是不利之处是难以获得系统活动的总体视图(缺乏可见性)。
 
  一个对象为了与另一个对象交互,它必须知道另一个对象的标识信息。当一个对象的标识信息改变时,必须修改所有显式调用它的其他对象。因此必须要有一些控制器对象来负责维护系统的状态,以完成应用的需求。分布式对象系统的核心问题包括:对象管理、对象交互管理和资源管理。
 
  分布式对象系统被设计用来隔离正在被处理的数据,因此该架构风格通常不支持数据流。然而,当它和移动代理风格相结合时,可以为对象提供更好的移动性。
 
  被代理的分布式对象
 
  为了降低对象标识的影响,现代分布式对象系统通常会使用一种或更多种中间架构风格来辅助通信。这包括基于事件的集成风格和被代理的客户/服务器风格。在被代理的分布式对象风格中,引入了名称解析组件——其目的是将该组件接收到的客户请求中一个通用的服务名称解析为一个能够满足该请求的对象的特定名称,并使用这个特定名称的对象来处理客户请求。尽管它改善了可重用性和可进化性,但额外的间接层要求额外的网络交互,这降低了效率和用户感知的性能。
 
  代理的分布式对象系统目前以两个规范为主导:OMG所开发的CORBA行业规范和ISO/IEC所开发的开放分布式处理(ODP)国际规范。
 
  尽管分布式对象引起了非常多的兴趣,然而与大多数其他的基于网络的架构风格相比,这样一类架构风格能够提供的优点很少,它们最适合于使用在包括了对已封装服务(例如硬件设备)的远程调用的应用中,在这些应用中,效率和网络交互的频率并不是值得关注的问题。
 
点击这里与客服在线即时交流·在线交流>>