分布对象技术知识点总结.docx
《分布对象技术知识点总结.docx》由会员分享,可在线阅读,更多相关《分布对象技术知识点总结.docx(19页珍藏版)》请在冰豆网上搜索。
分布对象技术知识点总结
第一章:
软件构件与中间件
1.分布式软件的基本概念:
分布式软件指运行在网络环境中的软件系统,而网络环境是一群通过网络互相连接的处理系统,每个处理节点由处理机硬件、操作系统及基本通信软件等组成。
(1)三层结构相对于两层结构的改进:
两层结构的缺点:
客户端的负担仍然比较重:
客户端仍要处理复杂的数据。
客户端的可移植性不好:
处理复杂必然牵涉更多的移植性问题;每个客户端上都要安装数据库驱动程序。
系统的可维护性不好:
客户端包含过多的商业逻辑;商业逻辑与人机交互界面交织在一起。
数据的安全性不好。
三层结构的优势:
更好的性能和可伸缩性。
大量的中间层中间件平台提供丰富的系统级服务,使得开发人员可以以更少的工作量开发出更复杂、可靠、高效的软件系统。
剩下的内容是对两层结构缺点的改进。
2.软件构件的基本概念:
构件指系统中可以明确辨识的构成成分;软件构件指软件系统中具有一定意义的、相对独立的构成成分,是可以被重用的软件实体。
3.中间件的基本概念:
在操作系统与应用系统之间的一层软件,为分布式应用的开发、部署、运行与管理提供支持。
(1)典型集成中间件为软件开发提供的三种基本支撑:
提供构件运行环境
管理构件的生命周期
管理构件的实例
管理构件的元信息等
提供互操作机制
集成中间件都提供了很强的高层通信协议以屏蔽节点的物理特性以及各节点在处理器、操作系统等方面的异构性;
基于中间件的互操作支持,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码。
共同特征就是帮助应用程序完成编组与解组等跨越网络通信的底层工作,实现远程过程/方法调用中间件的功能。
提供公共服务
公共服务又称为系统级服务,指由中间件(应用服务器)实现的、应用程序使用的软件系统中共性程度高的功能成分。
由中间件而非应用程序实现
应用程序中通常会调用其实现的共性功能
中间件提供的主要公共服务包括:
命名服务
事务服务
安全服务
持久性服务、消息服务、分布式垃圾回收服务、资源管理服务等
3.互操作的基本原理与实例
(1)桩/框架结构
第二章:
CORBA的基本原理
1.对象管理体系结构
(1)OMA参考模型(CORBA中的公共服务)
OMA是CORBA所基于的概念框架,它描述了一个较高层次的分布式计算环境。
2.ORB结构
ORB是OMA参考模型的核心,它提供了分布式对象之间透明的地发送请求或接收响应的基本机制,独立于实现对象的特定平台与技术。
(1)桩/框架结构
3.CORBA对于可互操作的支持
(1)不同平台与语言之间的互操作性
IDL标准和IDL到程序设计语言的映射
使得使用同一厂商的ORB产品开发的客户程序与服务程序可以交互。
(2)不同厂商的ORB产品之间的互操作性
CORBA2.0引入了GIOP和IIOP
(3)不同体系结构中的组件的互操作性
如一个CORBA对象如何操作一个DCOM对象。
ESIOP可以解决一部分问题。
还有许多工作要做。
第3章:
基于CORBA的开发过程
设计基于CORBA的分布式系统时,一般应考虑如下几个问题:
运行平台:
……
网络传输:
多样化的网络传输选择;设计CORBA应用时确保ORB能使用必要
的网络传输
消息传递:
同步方式;异步方式(延迟同步方式);单向方式
资源优化:
分布式环境下,跨网络的通信开销是相当可观的,占用相当多的系统资源;避免频繁的跨网络(尤其是广域网)通信
其它:
安全性、可靠性、事务处理、并发控制;错误处理
1.基本开发过程
自动生成的桩和框架是按照标准提供了底层通信等公共服务的接口
接口定义是独立于程序设计语言的,只要能够实现IDL到程序设计语言的映射,CORBA可以支持任何程序设计语言
第四章:
编写对象接口(CORBA)
1.OMGIDL的语法与语义
两点说明:
OMGIDL是独立于程序设计语言的。
(一般IDL的特性);是一种说明性语言
语法规则:
采用类似ANSIC++的词法规则和预处理特性(如编译指令#include)。
IDL文件本身采用ASCII字符集,但字符与字符串文字常量则采用Unicode。
关键字是大小写敏感的,但标识符却是大小写无关的
模块:
模块用于限制标识符的作用域。
一个IDL模块被映射为一个同名的Java程序包,该模块中的所有IDL类型被映射到相应程序包中的Java类或接口。
不包含在任何模块之中的IDL声明被映射到一个无名的Java全局作用域程序包
类型:
用来说明在客户和服务对象之间要交换的数据的类型(如参数和返回值的类型)
常量:
用来说明在客户和服务对象之间要交换的常量数据
异常:
异常声明用来说明在接口中包含的操作可能会引发的异常
接口:
接口声明是IDL规格说明的核心内容,用来说明分布式对象所提供的服务。
接口映射到Java语言的接口
值:
属性不应看作对象的状态数据,最好将它们理解为一种特殊的操作。
同方法声明一样,属性也映射到Java语言接口中的方法
2.使用值类型(valuetype)
值类型是一类特殊的类型声明。
值类型主要用于在网络中传递对象的状态信息,相当于提供了一种和程序设计语言无关的声明类的方式。
值类型有两种典型用法:
一是在按值调用的参数传递方式中创建对象副本(即参数类型是值类型),二是在远程操作返回一个对象时创建对象副本(即返回值类型是值类型)。
(1)对象副本的状态变化不会影响原来的对象
(2)如何正确使用
3.编写对象接口的准则
1:
一个IDL接口应该与现实世界中的业务系统中的某个工作实体相对应
2:
开发人员在设计分布式对象接口时必须始终贯彻这样的指导思想,即随时注意到同一进程中对象的接口与分布式对象的接口通常存在很大的区别,忽视这种区别会给分布式对象系统的可靠性、可伸缩性、可重用性等质量因素带来危害。
3:
区别会话型接口与实体型接口有利于设计人员组织众多的分布式对象。
4:
事务处理在许多分布式数据处理系统中也是必须考虑的重要问题之一
第五章:
编写服务端程序(CORBA)
1.POA体系架构
2.设计POA策略
线程策略;生存期策略;活动对象保持策略;对象查找策略
3.使用POA
4.伺服对象管理器
(1)伺服对象激活器(如何管理大量服务端对象):
真正提供完成客户程序请求的操作,通常由程序设计语言对象实现,可以进行实例化并访问其提供的成员方法;通过CORBA对象提供服务
(2)伺服对象定位器
伺服对象管理器帮助POA管理服务端未激活对象,实现对象查找、激活和冻结
n伺服对象管理器使程序员可以按照多种方式控制并使用对象,但必须注册到POA才能被使用;伺服对象管理器的功能可以进一步扩充,只要满足CORBA标准中声明的接口定义
5.适配器激活器
如果一个服务程序在启动时就创建了它所需的全部POA,那么就无需使用或提供任何适配器激活器。
仅当需要在处理请求的过程中自动创建新的POA时,才需要用到适配器激活器
第六章:
J2EE体系架构
1.J2EE构件:
由开发人员实现,构成应用系统,运行在J2EE平台上
客户端构件
–Applets
–ApplicationClients
服务端构件
–Web构件(Servlets,JSPs)
–EJBs
2.J2EE公共服务:
J2EE应用构件所使用的功能,由J2EE平台提供商实现
(1)ServiceAPI(开发时使用)
(2)运行时服务
3.通信支持:
支持协作构件之间的通信;由Container提供。
4.J2EE应用程序
5.基于角色的开发
将构建整个软件系统的任务划分到不同的角色
明确的划分任务与责任
不同的阶段有不同的关注重点,这种划分使得每个角色仅关注他所要完成的工作
实现了开发与部署的分离
第七章:
EJB技术基础
1.EJB体系结构
(1)EJB与javaBean对比
构件模型定义了开发可重用构件的方式
EJB与Javabeans都是基于java语言的构件模型
开发应用时,可以选择EJB模型,也可以选择JavaBeans模型
EJB用于服务端应用开发
JavaBeans用于客户端应用开发
也可以使用JavaBeans进行服务端应用开发,但JavaBeans模型没有提供服务框架,当应用需要使用系统级服务(如事务管理)时,不适合。
EJB构件是可部署的
EJB构件可以作为独立的单元被部署到EJB应用服务器上,是应用构件(applicationcomponents)。
JavaBeans构件是不可部署的
JavaBeans构件是开发构件,不能被部署为独立的单元。
EJB构件是部署时可定制的
使用部署描述符可以在部署EJB时对其运行时配置进行定制
JavaBeans构件在部署时不能进行定制
JavaBeans构件的定制仅发生在开发阶段
只能利用开发工具创建并组装JavaBeans构件,部署时不能定制
EJB构件是分布式对象
可以被客户应用或者其它EJB构件进行远程访问
JavaBeans构件不是分布式对象
JavaBeans构件只能在其构成的应用中使用
不能提供远程访问能力
EJB构件对终端用户不可见
运行在服务端,没有人机交互界面
部分JavaBeans构件对终端用户可见
如GUI应用中使用的按钮构件
(2)EJB体系结构中的构件(两个接口+一个类)
EJB体系结构由6种构件组成
EnterpriseBean
HomeInterface
RemoteInterface
EJBContainer
EJBServer
EJBClient
EnterpriseBean
包含商业逻辑代码的Java类
提供商业方法供调用
被部署到EJB应用服务器上
可以被组装形成大型的EJB应用
EJB体系结构中的另一类构件是HomeInterface
HomeInterface包含enterprisebean生命周期管理的相关方法
客户程序使用HomeInterface创建或删除enterprisebean的实例
EJB体系结构中的另一类构件是RemoteInterface
RemoteInterface包含enterprisebean实现的商业方法的定义
定义了enterprisebean提供的服务
客户程序只能通过remoteinterface访问enterprisebean实现的商业方法,不能直接调用。
2.EJB设计原则
理解作用,了解对应关系
第八章:
EJB构件开发过程
1.无状态会话构件开发与使用
(1)生命周期特征
包含两个状态:
MethodReadystate和Nostate
No状态表明EBJ容器不存在无状态会话bean实例
1.实例的创建和删除是有容器自动来控制的,并不是由Home接口中的Create或Remove创建或删除。
2.会话bean只能有无参数的create或ebjCreate方法创建,所以别人初始化的EBJ实例也可以使用
从No状态->就绪态:
调用enterprise类中的setSessionContext和ebjCreate
就绪态->No状态:
调用ebjRemove方法
(2)为什么会设计为无状态会话构件
平台无关性
(3)客户端(对构建生命周期的影响)
只要EBJ认为实例池中需要更多的实例为客户端服务,就会创建新的实例,实例从No状态到就绪态。
同理,如果不需要更多实例,则根据某种策略删除某些实例,删除的某些实例从就绪态到No状态
2.有状态会话构件开发与使用(ZD)
(1)生命周期特征
(2)为什么会设计为有状态会话构件
(3)客户端(对构建生命周期的影响)
只要有新的客户端请求就会创造新的新的实例,这时新创建的实例从No状态到就绪态
如果客户端不需要使用实例或者客户程序超时,容器会删除该实例,因此从就绪态到No状态
因为每个客户端需要一个专门的有状态会话bean为其服务,当bean过多时,容器只保存刚被使用或者正在使用的bean,其他移动到持久存储介质上,此时被转移到持久存储介质上就是Passivated状态
当客服端再次使用Passivated状态时恢复到内存,变为就绪态
3.实体构件的开发与使用
第九章:
EJB高级特性
1.环境条目
(1)动因
(2)效果
2.事务控制(ZD)
(1)事务控制的基本要求
事务相关的一系列操作的原子性
(2)CMT系统级异常
程序员在bean的源程序中没有事务边界控制的代码
再部署描述符中指定事物属性,有容器控制事务的边界
容器维护的事务是方法级的
(3)BMT(事务结束)
程序员在bean的源程序中控制事务边界
再部署描述符中指定由bean控制边界
3.安全性控制
(1)安全性控制的两个级别
认证和授权
(2)配置的主要内容(定义角色、选择认证方式、配置WEB模块授权规则、配置EJB模块授权规则、将角色映射到实际安全域)
定义角色:
Supervisor和Normaluser
选择认证方式:
basic:
系统弹出对话框,用户输入用户名和密码
ClientCertificate:
电子证书方式
FormBasic:
程序员用户登录界面
配置WEB模块授权规则:
设置认证方式
设置授权方式
配置EJB模块授权规则:
设置代理身份
设置方法访问授权
将角色映射到实际安全域:
Normaluser映射到AccountManagerBean,可以访问getbalance但是不能CreeateAccount
Supervisor映射到AccountManagerBean,可以访问CreeateAccount
第十章:
WEBService概述
1.WEB服务体系结构
(1)SOA架构(三个参与者、三个基本操作、基本工作过程)
三个参与者:
⏹服务提供者(ServiceProvider)
⏹服务请求者(ServiceRequester)
⏹服务代理(ServiceBroker)
三个基本操作
⏹发布(Publish)
⏹查找(Find)
⏹绑定/调用(Bind/Invoke)
工作过程
⏹服务提供者将所提供的服务发布到服务代理的一个目录上
⏹服务请求者首先到服务代理提供的目录上搜索服务,得到如何调用该服务的信息
⏹根据得到的信息调用服务提供者提供的服务
(2)使用的协议(基本作用)
⏹WSDL(WebServiceDescriptionLanguage)
⏹用来描述服务
⏹UDDI(UniversalDescription,DiscoveryandIntegration)
⏹用来发布、查找服务
⏹SOAP(SimpleObjectAccessProtocol)
⏹用来执行服务调用
⏹WSFL(WebServiceFlowLanguage)
⏹将分散的、功能单一的Web服务组织成一个复杂的有机应用
(3)应用方向
⏹电子商务应用
⏹传统电子商务——〉动态电子商务
⏹集成企业原有系统
⏹利用WebService的高度可集成特性
⏹将企业运作的各个环节有效的联系起来,组成一个协同工作的整体,从而使得企业的所有业务都真正“自动化”起来
⏹目前存在问题
⏹效率问题
⏹安全性、事务特性等高级特性的支持