建立SOA架构中的事件驱动服务 (1)
[ 来源:互网络 | 更新日期:2007-09-06 04:30:52 | 浏览次数:15814]
简介:及时响应实时的变化和事件成为了企业级架构的最重要需求。这篇文章讨论面向服务框架的技术和机制,这些技术使得该框架高效发送、接受那些跨越层级结构的同步和异步事件,而不需要知道产生这些事件的系统方面的细节
及时响应实时的变化和事件成为了企业级架构的最重要需求。这篇文章讨论面向服务框架的技术和机制,这些技术使得该框架高效发送、接受那些跨越层级结构的同步和异步事件,而不需要知道产生这些事件的系统方面的细节
Internet事务,B2B系统,P2P程序,和实时工作流,这些系统有着非常高的动态性,复杂的系统处理,用传统的面向过程的处理方法不能有效地实现。
一个面向服务的框架代表了一个动态的运行时环境,在那里服务提供者和服务消费者松散耦合、更灵活的组件交互。建立一个具备所有这些优势的交互模型,成为软件开发中最优先考虑的。一个事件驱动的交互模型,比通常的请求/响应机制对实时变化和激励有着更好的应答效率。
面向服务的架构和事件驱动的架构天生就有着对分布式系统的适应性,这些架构都有着模块性、松散耦合,和适应性等特性。
在这篇文章里,讨论使用Mule实现一个高效的事件驱动和面向服务的平台,一个轻量级的事件-消息架构,企业信息总线(ESB)模式。组件和程序可以使用Mule通过公共的JMS或其他的消息处理技术去实现通信。
面向服务架构概述
“面向服务”这个术语已经演变成一个架构,在那里服务作为一个软件组件嵌入在企业业务逻辑和特新的核心中,特性如下:
? 松散耦合:服务部与其它组件有着根深蒂固的关系
? 协议独立:多种协议透明访问
? 位置不可知:一个服务执行一组业务逻辑,针对这次调用返回一个结果
? 粗粒度:不论在什么位置均可访问该服务。
? 维护无用户状态
服务是典型地专注于解决业务领域的问题。
通常,服务使用端根据配置数据,注册项和软件工厂去决定给服务的位置,协议和公共接口。
应用程序通常被表述成他们有什么功能,而不强调这个应用程序是什么东西,包含什么。基于这个院应,更多直接描述一个应用程序通过使用动词(服务)而不是用名词(应用主体)。因为,一个名词(应用主体)是定义了了一个事务,而不是动作,当强制把一个组件有什么功能作为一个组件是什么来定义,那就会出现误解。在SOA领域,一个应用程序能很自然的被描述,因为每个应用程序的业务逻辑操作能被描述成为一个服务的执行选择。因此,SOA解决了这种误解,它允许应用程序和组件去访问一个服务所能实现的功能,例如,他们执行什么动作。依次,应用程序开发者能更容易匹配他们的需要与适当的服务,因为服务接口的描述更完整地说清了他们要解决的问题。
事件驱动架构概述
一个事件驱动框架(EDA)定义了一个设计和实现一个应用系统得方法学,在这个系统里事件可传输于松散耦合的软件组件和服务之间。一个事件驱动系统典型地由事件消费者和事件产生者组成。事件消费者向事件管理器订阅事件,事件产生者向事件管理器发布事件。当事件管理器从事件产生者那接收到一个事件时,事件管理把这个事件转送给相应的事件消费者。如果这个事件消费者是不可用的,事件管理这将保留这个事件,一段间隔之后再次转送该事件消费者。这种事件传送方法在基于消息的系统里就是:储存(store)和转送(forward)。
构建一个包含事件驱动构架的应用程序和系统,这样就使得这些应用程序和系统响应更灵敏,因为事件驱动的系统更适合应用在不可预知的和异步的环境里。
事件驱动设计和开发的优势:
事件驱动设计和开发所提供的优势如下:
? 可以更容易开发和维护


您的位置:
