网络环境:一群通过网络互相连接的处理系统,每个处理节点由处理机硬件、操作系统及基本通信软件等组成
分布式软件:运行在网络环境中的软件系统
2层结构:客户机——服务器结构
缺陷:客户端的负担比较重,系统的可移植性、可维护性不好,数据的安全性不好
3层结构:客户机——中间层——服务器结构
将业务逻辑代码与用户层分离;减轻了客户端负担,增强了系统的可移植性、可维护性,提高了安全性
构件:系统中可以明确辨构的构成成分
软件构件:是指软件系统中具有一定意义,相对独立的构成成分,是可以被重用的软件实体
中间件:在操作系统与应用程序之间的一层软件,为分布式应用的开发、部署、运行与管理提供支持
典型集成中间件为开发提供的三种支持:提供构件运行环境,提供互操作机制,提供公共服务
提供构件运行环境:中间件一般通过构件容器为构件提供基本的运行环境
提供互操作机制:集成中间件都提供了很强的高层通信协议,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码
提供公共服务:现有集成中间件将早期各种中间件中针对分布式软件的通用支持集成于一身以公共服务的形式提供给应用程序
Stub/Skeleton结构,Stub负责替客户端完成底层通信相关工作,Skeleton负责替服务端完成底层通信相关工作
OMA参考模型
对象服务:对整个生存期的对象管理任务标准化,是关于对象服务的一组规范
公共设施:可用于大多数应用领域,面向终端用户的设施;文档设施,打印设施等
领域接口:与应用领域有关的接口,如金融医疗制造业电信电子商务
应用程序接口:为终端用户执行特定的任务,不是OMG标准化的内容,而是构成整个OMA参考模型的最上层
不需自己实现,可以直接使用的功能有领域接口、公共设施和对象服务
可互操作性
ORB可以支持同一厂商ORB上的客户端与服务端方便地交互
1、不同平台与语言之间的互操作性
2、不同厂商的ORB产品之间的互操作性
3、不同体系结构中的组件的互操作性
CORBA提供一个工业标准而不是一个软件产品
CORBA的最大特点是提供了在异类分布式环境中对象之间高度的可互操作性,从而保证了建立在不同CORBA产品之上的分布式对象可互相通信
CORBA对于服务端程序的编写提供了灵活的模型,给开发人员更多的控制力
时间延迟、随机时序、死锁、负载均衡等
IDL(Interface description language)文件:可以定义模块、类型、常量、异常、接口和值,其核心内容为接口Interface
值类型(valuetype):对象副本的状态变化不会影响原来的对象
因此即使进行了deposit方法调用,在第三步输出的结果还是500,副本的状态变化不会影响原对象
CORBA应用开发过程中编写的服务程序:初始化ORB→创建一个对象适配器POA→创建提供服务的伺服对象→激活伺服对象→激活POA管理器→等待客户程序发来请求
该服务程序的作用是:服务程序利用POA激活伺服对象供客户程序使用,服务程序通常是一个循环的过程,不断监听客户程序请求并为之服务
POA策略是一个对象,负责控制相关POA的行为以及这些POA所管理的对象,使用POA前应仔细考虑应用程序所需的策略集
POA管理器是一个对象,为其所管理的POA提供通用的操作集合
客户端构件:Applets
服务端构件:Servlets,JSPS,EJBS
Service API:JNDI,用于在网络中查找/定位组件或资源;JDBC,提供数据库连接;JTA,事务管理支持可靠的服务端计算,这在很多关键系统中都是必需的;
事务控制的基本要求:原子性,一致性,隔离性,持久性
分布式对象技术是EJB采用的第一种构件技术,支持客户应用访问分布式对象
服务端构件技术( Server-side Component Technology)是EJB采用的另一种构件技术
CTM(Component Transaction Monitor)技术是EJB使用的又一种构件技术
服务框架
EJB将实现商业对象所使用的服务框架的任务划分给了EJB应用服务器,使得应用开发者可以关注于应用商业逻辑的实现,大大提高了开发效率,缩短了应用的开发周期
平台独立性
应用的平台独立性一方面得益于EJB沿袭了Java技术的平台无关性,另一方面,EJB/J2EE规范的开放性使得构成EJB应用的商业对象,可以移植到任何符合EJB规范的应用服务器上
封装特性
EJB的封装特性可以使应用服务器厂商节省IT投资
可定制性
EJB的另一特性就是EJB应用可以在不修改源代码的基础上进行定制化
协议无关性
支持客户程序使用任何通信协议访问EJB应用, 协议无关性使得EJB支持多种类型的客户端
通用性
支持不同规模的应用系统,可以在任何时间增加客户系统,通用性导致系统资源的可伸缩性
Enterprise Bean
Enterprise Bean包含三种类型之一的Session Bean
有状态会话构件:要跨方法调用保存会话状态;同时只处理一个客户应用的请求
无状态会话构件:在方法调用中间不维护任何状态;同时可以处理多个客户应用的请求
Entity Bean,第二类的Enterprise Bean
Local Interface与LocalHome Interface