SOA架构中的事件驱动服务

豆豆网   技术应用频道   2008年01月22日  【字号: 收藏本文

内容摘要:讨论使用Mule实现一个高效的事件驱动和面向服务的平台,一个轻量级的事件-消息架构,企业信息总线(ESB)模式。组件和程序可以使用Mule通过公共的JMS或其他的消息处理技术去实现通信。

  图2:Mule上层架构

  Mule事件对象

  Mule事件对象对象包含事件数据和被组件所感知和操控的属性。属性是任意的,在事件创建之后任何时间可被设置。

  org.mule.umo.UMOEvent类代表了一个在Mule环境中出现的时间。所有在组件之间发送或接收的数据都是org.mule.umo.UMOEvent的一个实体。可以访问一个原始的或被转换的Mule事件对象中的数据能。一个Mule事件对象使用一个与提供者管理的提供者转换数据,提供者收到数据后把事件中的有效载荷转换成当前组件所识别的格式。

  一个Mule事件对象的有效有效载荷能通过org.mule.umo.UMOMessage接口访问,一个org.mule.umo.UMOMessage实例由有效载荷和它的属性组成。这个接口是不同技术实现的消息对象的一个抽象。

  org.mule.extras.client.MuleClient类定义了一个简单的借口,允许Mule客户端从Mule服务器接收和发送事件数据。在大多数Mule应用程序里,时间是被一些外部的并发行为所触发,例如一个主题上接收到消息或在目录里一个文件被删除。

  下面演示了如何去发送一个同步事件到另外的Mule组件:

String componentName = "MyReceiver"; // The name of the receiving component.
String transformers = null; // A comma-separated list of transformers
              // to apply to the result message.
String payload = "A test event"; // The payload of the event.
java.util.Map messageProperties = null; // Any properties to be associated
                    // with the payload.
MuleClient client = new MuleClient();
UMOMessage message = client.sendDirect(componentName,
                    transformers,
                    payload,
                    messageProperties);
System.out.println("Event result: " + message.getPayloadAsString());

责编:豆豆技术应用

正在加载评论...