初次接触中间件,对概念和理解和应用还不熟悉,首先从这些基础的概念入手,慢慢的理解中间件。
我们说中间件是为分布式系统服务的,那么什么是分布式系统呢??理解中间件的含义,首先要了解什么是分布式系统,中间件和软件构件之间又是什么关系!
一、分布式系统:
1、分布式软件是指运行在网络环境中的软件系统,通常是基于客户机/服务器模型,分布式软件与传统的集中式软件相比,主要区别在于强调客户端与服务端在地里位置上的分离,这种分离方式使得分布式系统可以更好的支持平台无关性,更好的可扩展性,
2、分布式系统的三层结构:
二、软件构件:
构件指系统中可以明确辨识的构成成分,而软件构件是指软件系统中具有一定意义的相对独立的构成成分,是可以被重用的软件实体,上面提到了分布式系统,那分布式对象就是构成分布式系统的软件构件。
与一般的对象相比,软件构件具有以下的特性:
1、构件是一个严格定义的可插入单元。
2、构件将封装运用到了极限。
3、构件通常在容器中进行管理。
4、构件可以在容器中获得属性或服务。
5、构件允许对所支持的接口动态发现和调用。
下面介绍几个与构件相关的概念:
1、接口;是系统中用来定义分布式对象能力的约定。构件的接口通常是跨语言的。
2、分布式对象之间不可避免的要进行交互,而交互的最基本支撑就是要定义在分布式对象之间传输的数据类型。
3、编组与解组:编组过程将数据封装成标准的格式以便于传输,解组过程则负责打开传输来的数据。
4、对象句柄:在客户程序的编程语言或脚本环境内用来引用分布式对象的实例。
6、对象创建:分布式系统中经常使用工厂类来完成对象创建工作,工厂是一种特殊的分布式对象类型,常用来创建其他的分布式对象。
7、对象调用:分布式对象的调用一般会设计一个多放参与的跨越网络通信的过程。
三、中间件的基本概念:
这篇博客我们简单的介绍一些关于中间件的基本概念,下面的博客我们了解几种典型的集成中间件。
在百度百科上的定义,中间件处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。
下面是几种常见的中间件提供的支持:
1、终端仿真/屏幕转换中间件:用来为原有字符界面的应用程序提供图形用户界面,实现客户端图形用户接口与已有的字符接口方式的服务器应用程序的互操作。
2、数据访问中间件:该中间件为应用程序访问数据库提供支持,是对异构环境下的数据库实现联接或文件系统实现联接的中间件。
3、远程过程/方法调用中间件:为应用程序提供远程调用时的底层通信支持。
4、消息中间件:为应用程序提供发送和接收异步消息支持的中间件。
5、事务中间件:事务的基本特征是维护一系列操作的原子性,基于事务中间件,应用程序可以很方便的实现事务控制,而不必关系具体事务控制的细节。
6、构件中间件:该中间件为应用程序提供构件化支持的中间件,在分布、异构的网络环境中将各种分布对象有机的结合在一起,完成系统的快速集成,实现对象重用。
随着中间件应用越来越广泛,也出现了一个新的问题,中间件越来越多,开发中需要安装的支持环境也越来越复杂,因此也出现了一种中间件集成的需求,因此随着就出现了集成中间件,也就是应用服务器。应用最广泛的集成中间件有以下几类:
1、基于OMG(ObjectManagement Group,对象管理组织)CORBA规范的集成中间件。
2、基于SunJEE(Java Enterprise Edition,java企业版)规范的集成中间件。
3、基于微软.NET架构的集成中间件。
其中前面两种基于的规范是工业标准,而最后一种是基于微软的私有技术,因为只是在微软公司的内部应用。
现有中间件为分布式软件系统提供的基本支出与分布式软件所运行的网络环境密切相关,具体可归为以下三类:
1、提供构件运行环境:中间件一般通过构件容器为构件提供基本的运行环境,具体功能一般包括管理构件的实例及生命周期,管理构件的元信息等。
2、提供互操作机制:基于中间件的互操作支持,开发人员在咖啡与调用分布式对象时,均不需自己编写处理底层通信的代码。
3、提供公共服务:公共服务又称为系统服务,由中间件实现,应用程序使用的软件系统中共性程度高的功能成分,其两个基本的特征:由中间件实现,应用程序调用其实现的共性功能。
常见的几种公共服务为:
1)事务服务:提供事务处理机制
2)安全服务:提供分布式环境下的安全机制
3)命名服务:提供了一种定位分布式对象与其他系统资源的机制
4)持久性服务:分布式对象可以通过持久的数据存储来保存、更新和恢复状态
5)消息服务:提供了异步编程模式
6)分布式垃圾回收服务:当一个程序不再使用分布式对象时,分布式垃圾回收服务会自动释放分布式对象所占用的存储单元
7)资源管理服务:提供了支持大量的客户程序同分布式对象在短时间内进行交互的能力