异步消息机制一直是众多企业级业务应用的核心,然而不幸的是,.NET 的开发者常被强迫做出艰难的选择去违反这样的约定。这意味着他们不得不使用自有的消息传送服务或者使用微软的消息队列(Message Queues)来完成异步消息传送这样的工作,与此同时,失去了与 Java 语言的互操作能力。
TIBCO 软件公司的企业消息传送服务提供了针对解决上述问题的有效途径,这个企业消息传送服务平台,不但提供了与 Java/JMS 异步消息传送机制的绑定,还提供了与.NET 平台、.NET 移动开发框架、C 语言甚至是商业数据处理语言 COBOL 的绑定实现。
在这方面,在西雅图 Tideworks Technology 公司工作的软件工程师 Roger Voss,已经给出了将 JMS 技术应用于分布式软件开发的解决方案。除了行之有效的互操作实例之外,JMS 还提供了更加丰富的功能,其中之一就是 JMS 提供了被称作 Topics 的一对多主题队列。与通常只发送到单个客户端队列不同的是,JMS 的主题队列可以保证每个客户端都会得到一份消息的拷贝,通过这样的方法,消除了消息轮流检测或发送同一消息给多个队列的情况。
Roger Voss 还提到 JMS 的另一个有趣特性,这是关于 JMS 创建链接规则方面的内容。
链接规则遵循统一的 JMS 语法表达式,为服务端存在于消息传送和主题队列之间的消息,来指定传送路径。用户可以在服务端创建消息的链接规则,并且可以通过管理工具,将消息从创建位置拷贝到重新定向的消息消费地址。 如果实际应用面向主题队列发布消息,同时告知另一个已存在的应用可以开始消费队列中的消息,并从消息创建位置拷贝消息到所需位置进行消费。在上述过程中,添加链接规则将变得异常简单。如果需要成为消息的订阅者,不必记录应用消费情况来建立 JMS 消息会话,与之相反,开发者仅仅需要为新的消息类型添加消息句柄代码后提供给消息消费者,从而完成上述的全部工作。(事实上,在 C# .NET 或 Java 语言中,消息句柄可以当作插件模块被添加进来,所以不需要进行繁琐的工作,就可以创建整个应用架构。)
查看英文原文: Distributed Software Development for Java and .NET - - - - - -
译者简介:高昂,IEEE-CS、CCF 会员,关注开源软件发展与进步,Java GIS 开源项目 uDIG 参与者。目前在资源与环境信息系统国家重点实验室从事网格 GIS、空间数据库研究工作。个人站点为开源网格GIS 试验田。与InfoQ 中文站分享内容,请邮件至 china-editorial@infoq.com 。
评论