中间件处于操作系统和应用程序之间的软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件之间必须要有一个通信中间件,即:中间件 = 平台 +通信。该定义只用于分布式系统中才能被称为中间件。
主要分类: 远程过程调用,面向消息的中间件,对象请求代理,事物处理监控。
几方面考虑自己设计中间件:
1. 远程过程调用
2. 面向消息
利用高效的消息传递机制进行平台相关的数据交流,并给予数据通信来进行分布式系统的集成,3个特点:
1) 通讯程序可以在不同时间进行
2) 通讯程序之间可以是一对多,多对一或者是上述多种方式的混合
3) 程序对消息放入消息队列并取出消息进行通讯
3.对象请求代理
提供不同形式的通讯服务包含同步、排队、订阅发布、广播等。
4.事物处理监控
1)进程监控:包括启动server进程,分配任务、监控其执行并对其负载进行平衡。
2)事务管理:保证在其监控下的事务处理的原子性、一致性、独立性和持久性。
3)通讯管理:为client和server之间提供多种通讯机制,包含请求响应、会话、排队、订阅发布和广播等。