北邮分布式题目总结Word格式.docx
- 文档编号:16422549
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:51.80KB
北邮分布式题目总结Word格式.docx
《北邮分布式题目总结Word格式.docx》由会员分享,可在线阅读,更多相关《北邮分布式题目总结Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
它和普通的程序有什么区别和联系?
如何定义一个CORBA接口,和Java中的接口有什么区别和联系?
CORBA中如何屏蔽开发语言的不同的?
13,Browser/Server体系结构与Client/Server体系结构相比不仅具有Client/Server体系结构的优点,而且又有Client/Server体系结构所不具备的独特优势。
8
14,面向对象方法的主要特点8
15,接口引用应当具有的特征及其组成:
9
16,CORBA中动态调用的大致过程:
17,基于ORB的软件开发过程回顾10
18,构件的属性10
19,当前主流构件模型10
20,构件和对象的不同点体现在:
10
21,对象和构件概念的相同点:
11
22,CORBA,DCOM比较11
23,Sessionbean和Entitybean是否都可以存取数据库,什么时候?
24,XML和HTML比较12
25,为何需要DTD和XMLSchema?
12
26,XMLSchema比DTD的优势12
27,HTML在高级Web应用中有它固有的一些缺点:
13
28,XML的优点:
29,语义WEB的体系结构13
30,RDFSchema的作用14
31,网格计算的五层沙漏结构14
32,JDBC驱动程序分类15
33,为什么webService选择xml作为主要支撑技术?
简述XML的优点,在应用软件集成中,xml可用于解决哪类问题。
15
34,股票系统16
1,简述什么是SOAP,以及SOAP与XML之间的关系。
SOAP(SimpleObjectAccessProtocol)即简单对象访问协议,是一个简单的用在Web上交换结构信息的XML协议,没有定义应用语义和传输语义,它以一种基于XML且与平台无关的Web编程方式改进了Internet的互操作性。
SOAP消息传递协议使用HTTP承载消息,而使用XML格式化消息。
SOAP包括四个部分:
1,信封;
2,数据的编码规则;
3,RPC调用规范;
4,SOAP绑定。
SOAP与XML之间的关系是:
1,SOAP是在XML基础上定义的,所有的SOAP消息都使用XML消息格式来编码,XML是SOAP的底层技术规范;
2,对于SOAP中的简单类型,SOAP采用了在XMLSchema规范的数据类型部分定义的内嵌数据类型中所有类型,包括这些类型的值和词汇空间的定义;
;
3,SOAP完全继承了XML的开放性和描述可扩展性。
4,SOAP还具有XML的其他一些优点,如可广泛应用于web的任何地方,使得编程更加简单,便于阅读等等。
CORBA、EJB、WebService三种技术的共同点是:
1,三种技术都是为了解决分布式环境下应用集成、互操作的问题;
2,三种技术都支持Java语言作为开发语言;
3,三种技术都实现了平台无关性。
CORBA、EJB、WebService三种技术的不同点是:
1,CORBA是基于面向对象技术的,EJB是基于面向构件技术的,而WebService则是基于面向Web技术的;
2,CORBA、WebService支持不同种类语言开发的应用集成,而EJB则是以Java为中心,服务器端必须使用Java语言开发;
3,CORBA底层通信采用GIOP/IIOP,EJB则是使用RMI的JRMP进行通信,EJB要与CORBA互通则需要使用RMI-IIOP,WebService则是使用HTTP/SOAP;
4,CORBA采用IDL进行接口定义,WebService采用WSDL进行服务接口描述,而EJB没有专有的接口定义语言,若与EJB互通则是使用IDL,并且IDL类C++,而WSDL则是采用XML格式;
5,命名服务方面,CORBA采用公共服务中的命名服务或交易器完成,EJB使用JNDI,而WebService则是使用UDDI;
6,CORBA定义了公共服务,EJB则是由容器提供公共服务,而WebService没有这方面的定义;
7,在实现位置透明性时,CORBA使用对象引用,EJB通过HOME接口,而WebService则是利用URL;
8,CORBA可以与EJB集成,从而使得不同语言编写的客户端能够调用EJB提供的服务,而CORBA常常是一种居于EJB级别之下的功能技术,许多EJB服务商将EJB产品放在一个CORBA框架的顶部,使用WebService能够实现前两者开发的应用的整合。
1,构件是一个可重用的软件模块,一个预先构建的封装的代码模块,它能够与其他构件一道,很快生成定制的应用程序,构件侧重于软件重用和应用快速集成的问题。
2,容器为一个或多个更多的构件提供应用的上下文并且为构件提供管理和控制服务。
容器提供操作系统进程或者线程以使得该构件得以执行。
容器侧重于为构件提供应用上下文和公共服务。
构件和容器的关系是:
1,构件在一个称为容器的结构中运行,容器为构件提供应用的上下文和管理、控制服务;
2,容器用于存放和安排构件,实现构件间的交互;
3,构件必须符合容器要求(规范);
4,容器本身也可以作为另一个容器的构件使用。
一个WebService可以看成一个构件,这是由WebService本身的特点决定的:
1,具有完好的封装性:
使用者仅能看到WebService提供的功能列表,正如构件的使用者只需要了解构件接口描述一样;
2,具有松散耦合:
只要接口不变,其使用方法就不会改变,这也与构件的可被替换特性相一致,即一个构件可被任何一个实现相同接口的构件替换;
3,使用标准协议规范:
使用开放的标准协议进行描述、传输和交换。
4,高度可互操作性:
可以跨越平台、语音进行调用。
5,高度可集成能力:
WebService的此能力是以其使用标准协议规范和和高度可互操作性为前提的,而构件也是可集成的,是在一个已定义好的体系结构上下问中,而WebService集成特性要求其是有明确功能的。
6,动态性:
可以自动发现服务并进行调用,使用标准协议规范以及动态特性使得WebService之间接近独立,而这正是构件“接近独立”的要求,即一个构件与其他的构件不相关。
依据以上特点加上构件的定义是一个接近独立的、可以被替换的软件单元,它实现一个已经定义好的体系结构上下文中的一个明确功能,同时遵循并提供一组接口的物理实现,故判断WebService可看作构件。
如何用CORBA和EJB实现访问透明性。
访问透明性意味着客户对象在和服务器对象交互式,不用了解和实现相关的特定调用的方式和数据表示方法。
访问透明性都是通过客户端和服务器端的存根对象封装访问的细节。
在CORBA中,对象请求代理ORB(ObjectRequestBroker):
定义了异构环境下对象透明地发送请求和接收响应的基本机制。
ORB为客户隐藏:
对象位置、对象实现方式、对象执行状态、对象通信机制。
具体来说:
当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法。
当发出一个调用时,因为客户和服务器可能在不同的网络、不同的操作系统上甚至用不同的语言实现,客户端的STUB,即IDL静态存根,还要负责将调用的名字、参数等编码成标准的方式(称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),服务器端的静态Skeleton或者动态骨架接口,将参数Unmarshaling,然后传到根据对象适配器得到真正的伺服对象上(这整个过程叫重定向,Redirecting),服务器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。
在EJB中,有三个主要的构件EJBHome接口、EJBObject接口、EJB实现类。
客户程序要调用远端对象上的方法时,首先会得到远端的HOME接口对象,客户端利用HOME接口的create()方法创建一个远端的EJB,本地EJBHOME通知容器创建一个远程的EJB构件,容器向客户端返回了EJBObjectstub。
客户端调用EJBObject上的方法,调用被转发到远端的EJB完成。
通过HOME接口和stub、skeleton实现访问的透明性。
定义:
WSDL是一个用来描述Web服务和说明如何与Web服务通信的XML语言。
IDL是一种接口定义语言。
相同点:
1,WSDL和IDL都描述了服务或者构件的调用接口。
如果将WebService作为一个分布式对象来看,WSDL就是WebService的接口描述语言(IDL)。
2,两者都是与实现语言无关的语言中立的说明性语言。
不同点:
1.IDL只定义接口,不定义实现,WSDL不仅定义接口还描述实现;
2.IDL是ANSIC++进行描写的,只能在COBRA定义的范围内使用,互操作性较差。
WSDL是用XML进行描写的,可以在网络中广泛使用,不限于Webservice。
3.WSDL传输基于SOAP协议,使用文本传输;
COBRAIDL传输基于IIOP和GIOP,是二进制传输。
4.通过IDL文件可以自动生成STUB和skeleton,实现客户端和服务器端的通信透明性,WSDL是通过发布和响应来实现通信的。
答:
Grasshopper是构建于分布式计算环境之上的移动代理平台。
Grasshopper平台包括了以下重要组成部分:
Region,Agency。
与代理移动相关的构件包括:
Region和RegionRegister。
Region为分布式组件的管理提供支持;
RegionRegister用于维护本域所有关联的组件的信息。
Region为分布式组件的管理提供支持,在一个Region中可以有多个Agency。
Region中的RegionRegistries用来维护本域所有关联的组件的信息,移动代理可以在域间迁移,每次迁移将导致其当前位置信息在RegionRegistries中更新。
通过RegionRegistries,其它实体可以找到任何一个代理、Place和Agency。
具体而言,Grasshopper中MobilAgent的迁移包括如下几步:
1、开始迁移
2、Agency自动调用该Agent的beforeMove()
3、通过停止代理自身线程,中断代理的执行
4、序列化代理的状态
5、代理序列化的数据和其它一些信息被送到目的Agency
6、目的Agency创建该代理的实例并将其状态恢复为传递过来的状态数据
7、目的Agency通知源Agency代理已经成功创建,则源Agency要删除已经迁移的代理
8、目的Agency调用代理的aftermove()方法
9、目的Agency启动代理的线程
一个Agent的迁移可以通过Agent自己、其它软件实体(如Agency)或者用户进行触发。
Grasshopper使用弱迁移,即Agent的数据状态(如Agent类变量的值)可以传输到目的地,但是其执行状态,如目前Agent的执行栈的状态不能传递到目的地。
WebService定义
Web服务是描述一些操作的接口。
WebServices是自包含的、模块化的应用程序,它可以在网络(通常为Web)中被描述、发布、查找以及调用。
商业应用需求
IT对于商务如何运作和价值如何创造起着越来越重要的作用,商业应用需要IT能:
连接虚拟企业,快速适应环境,全面提供价值。
简单地来说,商务需求要求连接无所不在。
WebService的优势
WebService的目的就是在异构平台上构筑一个通用的与应用和语言无关的技术层,实现彼此的连接和集成。
WebService能够统一地封装信息、行为、数据表现以及商务流程,而无需考虑应用所在地环境使用何种系统和设备,从而充分地跨越所有系统平台。
因此WebService最大的优势就是它的实现简单、通用性强,能够最大程度地满足商业应用的需求。
具体地来说,WebService的特征包括,完好的封装性,松散耦合,使用标准协议规范,高度可互操作性,高度可集成能力和动态性。
WebService技术保障
Webservice利用HTTP+XML,是最通用的访问方式并且基于规范协议的访问接口,可支持所有平台和应用。
Web服务体系结构基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互,交互方式统一,架构平坦,交互涉及发布、查找和绑定操作。
这些角色和操作一起作用于Web服务构件:
Web服务软件模块及其描述。
要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包含每一层标准的Web服务协议栈。
协议栈从上到下依次是:
UDDI(对象界面发现)、WSDL(对象接口描述)、SOAP(对象访问)、(EJB,COM+,COBRA以及任何可以用于对象实现的技术)(对象实现),这个标准协议栈与具体实现无关,且可以在异构的网络中通信,具有良好的互通性。
①自治性(Autonomy):
一个智能代理应该是一个独立自主的计算实体,具有不同程度的自治能力,即部分或彻底地不受用户干预而自行工作。
它应能在无法事先建模、动态变化的信息环境中独立规划复杂的操作步骤,解决实际问题;
在没有用户参与的情况下,独立发现和索取符合用户需求的资源与服务。
②技术上的支持:
一个代理要具有自主运行的能力,需要将自己由一个普通的对象变为一个主动对象。
主动对象内部包含一个线程甚至多个线程,可以自动完成动作或改变状态,这个线程用于执行对它的任何方法的调用。
这样可以实现与调用者的异步调用。
而一般的被动对象只能通过被其他对象调用才有所作为。
它的实现是通过在对象中添加类似main函数这样的执行入口点,来实现主动执行的。
像在Grasshopper中使用live方法。
8,比较CORBA和EJB的异同
共同点:
1CORBA和EJB都采用了分布式系统中的面向对象技术,即通过分布式对象调用来实现分布式框架,具有很好的扩展性。
2都有封装的了通用服务的部分,在CORBA中是ORB代理,在EJB中是容器。
3CORBA和EJB都有专门的网络通信协议,CORBA中是IIOP,EJB中的是JRMP。
4都支持跨平台的调用。
EJB和CORBA之间可以相互调用,使用的协议是RMI-IIOP
5网络通信机制是相同的,都是用预生成的Stub和Skeleton进行网络通信,从而为应用程序屏蔽具体的通信细节。
6CORBA组件模型增加了CORBA的组建特性,CORBA组件非常类似于EJB组件。
1体系结构不同,EJB常常是居于EJB级别之下的功能技术,许多EJB服务厂商都将EJB产品放在一个CORBA框架的顶部。
2对语言的支持对不同,CORBA支持不同语言之间的交互而EJB仅支持Java语言。
3EJB更具体的说是面向构件的分布式计算环境,构件较CORBA的对象具有更好的封装性、复用性和可定制性。
试分别针对实体Bean的生命周期方法ejbActive和ejbPassivate,各举一个需要实现该生命周期方法的例子
1EJB技术使用简化的编程模型,让编程人员关注与业务逻辑实现,由EJB容器负责各个Bean的生命周期。
2COBRA没有标准的对象生命周期管理。
虽然COBRA对象服务定义了生命周期服务,但其使用也不是强制性的。
因此,客户需要显示的知识通过特殊的方式来管理对象的生命周期。
另外,通过对象生命周期管理对象,开发人员必须明白这个事实,并必须定义辅助接口来控制对象的生命周期。
3举例如下:
实体Bean一共有三个状态,不存在,池化和就绪。
BMP中:
当一个实体bean从池化进入到就绪状态,调用ejbActive方法;
当一个实体bean从就绪进入池化状态,调用ejbPassivate。
CMP中:
在ejbActivate()方法中获取Bean需要的资源,如一个Socket连接;
在ejbPassivate()方法中,释放该Bean占有的任何资源,如Socket连接。
CORBA和EJB作为分布式系统,都提供位置透明性:
在CORBA中位置透明性由CORBA的ORB内核来实现的,通过其命名服务可以查找说要调用的远端对象的具体位置。
在EJB中是通过继承Home接口来实现位置透明性的。
在平台无关性上,EJB要比CORBA做的好一些,因为Java本身是平台无关的。
而CORBA在目前的主流操作系统下也有相应的不同版本,可以实现平台无关性。
编程语言方面:
由于CORBA使用IDL这种与具体实现语言无关的语言定义接口,那么它的实现编程语言无关性要好一些,而EJB是基于Java语言的,一般仅能通过Java语言来实现具体的代码。
总结如下:
位置透明性平台无关性编程语言无关性
CORBA好一般好
EJB好好一般
1.访问透明性,通过EJB对象来支持。
客户端程序通过EJB对象来调用服务器端构件的方法,EJB对象类似于EJB构件的“代理”。
2.位置透明性,通过JNDI服务来支持。
客户端程序通过JNDI来定位对象的Homeinterface,并调用Homeinterface中的生成方法来建立EJB对象来实现远程接口调用。
3.持久透明性,通过EJB容器的持久性管理功能(PersistenceManagement)来支持。
4.事务透明性,通过EJB容器的事务管理功能(TransactionManagement)来支持。
P.S.这题的其他透明性是否支持不太确定,女生们再看看~
基本开发过程:
1.定义IDL。
对于系统中需要利用ORB进行交互的对象,首先应将其对外呈现的接口进行定义。
2.将IDL映射为具体语言的Stub/Skeleton.IDL是独立于具体编程语言的,而应用程序则是一定要用具体语言完成的。
因此,必须将IDL进行映射,产生由具体语言表示的接口,以供调用。
3.编写实现具体服务功能的代码。
ORB提供的仅是对象间互操作的支持,至于对象的功能,则必须由编程人员实现。
4.编译,连接,产生服务器程序。
5.编写调用具体服务功能的代码。
与(3)类似,客户如何调用服务的过程由编程人员实现。
6.编译,连接,产生客户程序。
CORBA程序和普通程序的联系:
CORBA程序在得到对象引用之后的程序开发与普通程序相同,调用远端对象的方法进行逻辑上的代码编写即可。
而对象的功能与如同普通程序一样,需要程序员自己编写。
CORBA程序和普通程序的区别:
进行CORBA程序开发,首先需要进行IDL语言的编写从而定义接口,在接口定义中只定义“对象做什么”,而不用定义具体实现。
编译IDL语言后会自动产生stub和skeleton,而ORB会提供对象间的互操作,这些部分都不用自己实现。
但是在客户端和服务器端程序中,编程人员需要初始化和调用ORB接口从而得到ORB服务,这也是与普通编程的不同之处。
如何定义CORBA接口:
利用接口定义语言IDL进行CORBA接口的定义。
在IDL语言中仅定义接口,不定义实现,即只定义对象中有哪些数据类型,哪些属性以及哪些操作,操作的参数和返回结果是什么,而具体如何实现对象在IDL语言中不作定义。
CORBA中如何屏蔽开发语言的不同:
CORBA利用接口定义语言IDL和ORB屏蔽开发语言的不同。
IDL语言支持到多种语言的映射,因此不同语言定义的对象都可以用IDL进行相应的接口定义。
编译IDL定义文件后会产生相应的stub和skeleton,stub和skeleton负责对请求参数进行封装和发送以及对返回结果的接收和解封装。
Stub和skeleton利用ORB进行通信,对象请求代理ORB定义了异构环境下对象透明地发送请求和接受响应的基本机制。
ORB隐藏了对象的位置和实现方式,从而屏蔽了开发语言的不同。
●开放的标准:
Client/Server所采用的通信协议往往是专用的。
Browser/Server所采用的标准,如HTTP、HTML等,都是开放的、非专用的,是经过标准化组织所确定的,保证了其应用的通用性和跨平台性。
●较低的开发和维护成本:
Client/Server的应用必须开发出专用的客户端软件,无论是安装、配置还是升级都需要在所有的客户机上实施,极大地浪费了人力和物力。
Browser/Server的应用只需在客户端装有通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。
●使用简单,界面友好:
Client/Server用户的界面是由客户端软件所决定的,其使用的方法和界面各不相同,每推广一个Client/Server系统都要求用户从头学起,难以使用。
Browser/Server用户的界面都统一在浏览器上,浏览器易于使用、界面友好,不须再学习使用其他的软件,一劳永逸地解决了用户的使用问题。
●客户端简单:
Client/Server的客户端具有显示与处理数据的功能,对客户端的要求很高,是一个“胖”客户机。
Browser/Server的客户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 题目 总结