常听到中间件这个词,但是一直不了解它的含义,今天在看C++ Network Programming Volume1 --Mastering Complexity with ACE and Patterns,序里面的一段解释很精彩,摘抄下来。
中间件相当于一种基础设施软件(infrastructure software),之所以成为中间件,是因为它就像是“沙漏的腰”(waist in the hourglass),位于操作系统和网络之上、应用系统之下。中间件具有多种形态(shapes),规模(sizes),和能力(capability):从J2EE应用服务器,异步信息处理系统,CORBA ORB,到小型嵌入式系统中的Socket监控软件。
说道基础设施,有这样一个具有讽刺意味的事实:建设好基础设施,这本身已经非常之难;但更难的是只有让用户与感觉不到它的存在,人们才会认为它越成功。
作者举了个阿尔卑斯山的交通系统例子作为类比。
中间件必须具有可伸缩性和灵活性,但是做到这一点非常不容易。