开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

消息代理世界中的XML
作者: BUILDER.COM
2002-05-14 09:40:19


许多机构都采用了面向消息的中间件MOM(Message Oriented Middleware)作为解决复杂集成问题的平台。MOM的关键概念之一就是消息代理(message brokering)。MOM内的数据都采用消息(有时也被称作事件)进行描述。因为这些消息在不同的应用程序之间传递,所以XML成为当今说明事件数据的事实标准。在MOM环境下采用XML时,你必须理解若干关键问题,其中就包括了消息的标识和消息大小。

标识消息

在大多数的中间件平台上,要确定新事件发生的时间是很容易的。从本质上看,事件不过表现为特定通道或者队列中的消息。不过,仅仅因为通道里有消息还并不意味着它正是应用程序正等待处理的消息。为了处理这些消息,应用程序(它等待通道上出现新事件)首先必须认出它所收到的消息的类型。通道上可能出现多种类型的消息。比方说,有包含特定应用程序有关数据的数据事件,还有影响应用程序行为的控制事件等。

确定应用程序所收到事件的类型经常采用两种方法。因为我们假定数据采用XML包装,所以第1个方法就是检查XML同时根据XML根元素决定事件的类型,比如说,假如根元素是<Customer>元素那么相应的事件就是客户事件。

第2种方法采用了中间件平台自身提供的本机类型机制。许多中间件平台支持多种事件类型,也就是封装了传递给消息总线的事件。如果在中间键内部定义事件类型,那么你就能把每一个XML事件封装为特定的事件类型甚至事件数据(通常就是XML字符串)。通过这一举措的采用就可以让应用程序只检查事件封装而不必察看XML数据。

消息大小

在消息总线上传送的消息大小也在应用程序的设计中扮演了重要的角色。消息(也就是XML文档)的体积有可能非常庞大,某些XML文档甚至能达到好几百页的文本量。发送这样大规模的文档不一定会成为什么问题,但是,从其发送的总量来说就可能引发问题了。大多数企业及中间件系统的系统资源都是有限(尤其是内存资源)的。当系统上有大型事件排队时,资源很快就会耗尽、系统的性能也会大打折扣。

在设计采用XML描述消息的解决方案时,一定要在意消息的大小和总量。如果消息太大则应该对发送消息的数量进行限制。如果总量太大,那么请把消息的体积减小。假如要发送大量的数据那么你就有必要检查下这些数据是否是基本组成部分而且还要重新设计XML schema。当XML文档的体积过大之时,发送特定的消息并不一定就要用到所有的XML数据。数据应该精选到体积更小的XML文档中来,然后作为更特殊的小型消息而非一般消息发送。

小结

在采用中间件平台集成各类应用时,XML能够提供一种不仅稳固而且灵活的消息数据描述方式。通过对事件类型或者XML根元素的检查,你就可以确认发送的消息类别。如果消息的大小没有同发送消息的数量达到平衡则很容易产生系统性能方面的问题。把大型消息分割为体积更小的消息有助于提高系统的整体性能。

责任编辑:炒饭

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号