中间件
2017-11-07 15:18 争-qiang 阅读(463) 评论(0) 编辑 收藏 举报
中间件: 中间件就是硬件和操作系统(包括操作系统的软件,比如DB)和应用程序之间一个平台,通过它来解耦,屏蔽操作系统或语言的异构性。
用途:中间件为了解决分布异构的问题,中过中间件来抹平异构系统或语言的差异,在复杂的系统中这样的差异无法避免。中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外接口定义不变,应用软件几乎不需要任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
特点:
1.语言透明性 :使用中间件的程序应能够与另一个用不同语言编写的程序通信。如果用一种不同的语言重写一个程序,其他程序应不受影响。
2.硬件的透明性:用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用程序能够比较平滑地运行于不同平台上。
*3.底层操作的透明性:中间件屏蔽了底层操作的复杂性
常见的中间件:
1.tomcat,weblogic等应用服务器是典型的应用服务器中间件,tomcat做为容器可以运行在不同的硬件和操作系统上。
2.消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。
发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。
消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
Activemq是消息中间件的实现。
3.远程过程调用中间件,比如HESSION. HESSION的序列化可以解耦不同的开发语言,比如客户端使用PHP,服务端使用JAVA,HESSION可以保证二者之间的通信。做到与语言无关。
4.hibernate这样的ormapping工具也是中间件。它是应用程序持久化数据的中间件。它对DB透明
5.Spring可以看做是一个中间件的平台。框架和中间件的一个共同特点就是让用户尽量关注业务逻辑。有些时候二者是一致的。
6.hadoop是分布式存储和计算的框架,由于屏蔽了底层的分布式计算或存储的细节,有人也称为中间件。
7.nosql角色象是组件或规范,有点类似JMS,JNDI这样的规范,相应的实现比如memcached,redis。如果存在一个跨越多个nosql存储的实现,可以称为nosql的中间件。
附:java系与php的比较:
java系比php强在中间件。
php强在web层的开发效率上,使用java的一些框架,基于mvc三层结构(比如view层使用velocity),而不是没有清晰分层的jsp,并不逊色于php。
php5才引入了面向对象的概念。
php与java系的结合:如果在web层使用php,service层使用java,推荐使用hession的rmi实现。hession可以做到序列化与语言无关。