现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布式应用上比起同步处理模型更具有吸引力。[5] 本文首先介绍了消息中间件的原理,然后介绍了目前流行的消息中间件产品和一些开源实现。最后详细分析了SUN及其伙伴公司提出的旨在统一各种消息中间件系统接口的规范(JMS)。 中间件是一种重要的软件类别,它位于操作系统、网络和数据库之间,为上层的应用软件提供运行和开发环境。中间件的主要作用在于简化应用软件的开发和集成,帮助用户更高效地构建复杂的分布式应用。根据国际数据公司(IDC)的分类,中间件可以分为六类:终端仿真/屏幕转换、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件和对象中间件。 1. 终端仿真/屏幕转换:这类中间件主要用于旧系统与新图形用户界面之间的交互,现在已经较少使用。 2. 数据访问中间件:允许在异构环境中连接不同的数据库或文件系统,实现数据资源的互操作。 3. 远程过程调用中间件:RPC中间件允许开发人员调用远程服务器上的过程,隐藏了通信细节,简化了分布式编程。 4. 交易中间件:专门设计用于联机交易系统,提供并发处理能力,遵循分布式交易处理标准,简化交易处理系统的开发。 5. 消息中间件:利用消息传递机制实现跨平台的数据交换,支持同步和异步通信。异步消息中间件,如IBM的MQSeries、BEA的MessageQ和Sun的JMS,提供了更好的容错性和可扩展性,其中发布/订阅模式已成为异步通信的标准。 6. 对象中间件:如CORBA、COM、SOM和RMI,提供了一种跨地址空间、网络和操作系统访问对象的标准框架,实现软件的互操作性。 中间件的种类繁多,可以根据其功能和应用场景划分为底层中间件(如交易中间件、应用服务器、消息中间件、数据访问中间件)和高层中间件(如企业应用集成中间件、工作流中间件、门户中间件)。高层中间件通常涉及多个应用系统的整合,而底层中间件主要服务于特定的应用或问题。 消息中间件是本文重点讨论的内容,它通过消息队列实现进程间的非阻塞通信,提高了系统的性能和可扩展性。发送者将消息发送到消息服务器,接收者在适当时间从服务器接收,这种异步处理模型对于分布式应用来说非常有益。Java消息服务(JMS)是Sun及其合作伙伴提出的一种规范,旨在统一各种消息中间件的接口,促进不同中间件产品之间的互操作性。 总结起来,中间件是分布式系统中的关键组件,它降低了系统集成的复杂性,提升了软件的复用性和可扩展性。消息中间件作为其中的一类,通过异步消息传递提供了高效率和健壮性,而JMS则为这一领域提供了标准化的解决方案。理解并熟练运用中间件,尤其是消息中间件,对于构建高效、可靠的分布式应用至关重要。
- 粉丝: 17
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助