分布式系统及云计算概论考试重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式计算:把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。
分布式目标:资源可访问性;透明性;开放性;可扩展性
透明性:分布式系统是一个整体,而不是独立组件的组合,系统对用户和应用程序屏蔽其组件的分离性。
类型:访问透明性;位置透明性;并发;复制;故障;移动;性能;伸缩。
可扩展性:如果资源数量和用户数量激增,系统仍能保持有效性
云计算:是分布计算、集群计算、网格计算、公用计算等各种技术发展融合产物
集群和网格计算比较:集群资源位于单个的管理区中由单个实体进行管理;而网格中,资源分布在不同管理区中。
每个管理区都有策略和目标;另外在于应用程序的调度安排的不同。
云计算优缺点:优点:数据的可移动性;易维护个人应用程序和文件;对计算机要求低;为多人协作带来机会;节省电能降低成本。
缺点:对网络高依赖性;数据安全问题;数据存活问题。
分布式系统:一组自治的计算机的集合,通过通信网络相互连接,实现资源共享和协同工作,而呈现给用户的是单个完整的计算机系统。
分布式与集中式:分布式同步机制不易实现,而集中式易实现;分布式系统故障互相不会影响整体,而集中式会影响整体运作;分布式系统的异构性;分布式系统平均响应时间短;分布式系统有可扩充性。
分布式与计算机网络:分布式的各个计算机之间相互通信,无主从关系;网络有主从关系;分布式系统资源为所有用户共享,网络有限制共享;分布式中若干个计算机协同工作,网络不行。
分布式层次结构:对等体系结构;中间件
中间件:分布式应用软件借助中间件在不同技术之间共享资源,它位于客户机服务器的操作系统之上,管理计算资源和网络通信。
对等体系结构:所有活动进程都是相同角色,对等交互协作,不区分客户和服务器运行计算机。
分布式系统分类:分布式计算系统;分布式信息系统;分布式普适系统。
分布式软硬件:软件:分布式操作系统(隐藏硬件细节,管理硬件资源);网络操作系统(提供各种交换信息和资源共享);中间件系统(平台交互服务,起到中间层作用)。
硬件:基于总线的多处理机;基于交换的多处理机;基于总线的多计算机;基于交换的多计算机。
分布式系统主要特征:容错性;安全性。
客户—服务器模式:一个物理上分布的逻辑整体,是由客户机、服务器和连接支持部分组成。
C/S优点:有利于实现资源共享;利于进程通信的同步;实现管理科学化和专业化;可快速进行信息处理。
面向连接服务和无连接服务区别:面向:实时通信;可靠信息流;信息回复确认;占用同信道。
无连接恰好相反。
C/S双层和三层比较:双层特点:缺乏安全性;客户端负荷重;服务器端效率低;易造成网络阻塞。
三层:安全性;稳定性;易维护性;快速响应;系统扩展灵活。
并发服务器和迭代服务器的比较:并发:系统资源要求高;可处理多个客户的请求;从服务器不依赖主服务器而独立处理请求;不同的从服务器可处理不同请求;系统实时性好;适于面向连接的服务类型。
迭代:资源要求不高;处理客户的服务请求数量受限制;可有效控制请求处理时间;适于无连接。
OSI参考模型:物理层(最底层,协同发送接收网络介质信息);数据链路层(控制网络层与物理层之间的通信,功能是如何在不可靠的物理线路上进行数据的可靠传输);网络层(通过路由选择算法,为分组通过互联网络选择适当的路径);传输层(向用户提供可靠地端到端服务);会话层(负责维护两节点之间会话的建立和管理终止);表示层(处理两个通信系统的信息表示方式);应用层(为应用程序提供网络服务)
移动代码和移动代理的区别:移动代码只能从PC机之间下载代码;而移动代理是PC机之间进行网络访问资源。
分布式对象:将接口放在一台计算机上,对象本身却驻留在另外一台计算机上。
远程对象特征:状态不是分布的,驻留在单个计算机上,只有该对象实现的接口可以再其他计算机上使用。
分布式对象的基本模型:远程对象;分布式共享对象。
远程过程调用:调用方通过参数来把信息发送给被调用方,然后被调用方就传回调用方需要的信息。
客户存根:将得到的参数打包成消息,然后将消息发送给服务器存根,还负责接收服务器方的操作系统返回结果,再把结果返回给调用过程。
分布式计算环境:使用者可在现有的计算机上安装分布式计算环境软件(DCE),然后即可运行分布式应用程序,并且不会影响现有的应用程序。
远程方法调用的两种方式:服务器端;客户端
将客户绑定到对象方式:隐式绑定;显式绑定
java远程方法调用的优点:面向对象;可移动性;设计方式;安全;便于编写和使用;编写一次,到处运行;分布式垃圾收集;并行计算。
公共对象请求代理体系结构(CORBA):是由对象管理组(OMG)提出的分布式系统规范,它允许不同应用进程彼此进行通信,而不考虑各种环境。
CORBA核心:是对象请求代理(ORB),客户通过ORB调用远程对象上的方法。
1.IDL模块:
Module china{
Module ruc{ //no definition here};
};
映射结果:
Package chian.ruc;
2.IDL常量
Module CoustIDL {coust long mycoustam 123};
映射结果
packageCoustIDL
Public interface myconstant{public static final
Int value(int)(123:)}
3.IDL结构体类型
Module structmodule{
Struct person{string name;short age;};};
生成
Package structmodule;
Public final class person implements
org.omg.CORBA.portable.IDLEntity{
Public string name null;
Public person(){}
Public
Person(string name,short age){name_name;age_age;}
}
4.IDL序列和数组
Module arraymodule{
Striuct somestructure{
Long longarray[15];
Sequence<boolean>unboundedchars;
Sequence<char,15>boundedchars;
};
}; 数组和序列定义如下Java代码
Public int jougarray[]=null;
Public boolean unboundedbools[]=null;
Public char unboundedbools[]=null;
5.IDL异常
Module exceptionmodule{
Exception yikeserror{string info;};
};
Yikeserror异常代码
Package exceptionmodule;
Public final class yikeserror extends
erException{
Public final class info null;
Public
Yikeserror(){suoer(yikeserrorhehelper.id());}
Public
Yikeserror(super info){suoer(yikeserrorhelper.id():info)}
Public yikeserror(string$reason string info ){
Super(yikeserrorhelper.id().$reason):info info;
}
}
IDL接口:银行系统
打开账户;关闭账户;显示余额等
利用IDL定义接口:
Module bank{
Interface account;
Interface control;
{
Exception accountNotExist{};
Account openAccount(in string acct,in string password)
Raises(accountNotExist);
}void closeAccount(in string accct);
Interface account
{
Readonly attribute unsigned long balance;
Unsigned long deposit(in unsigned long account);
Unsigned long withdraw(in unsigned long account);
}
}
1.Java IDL映射:
①IDL模块:(嵌套定义的IDL模块)
Module china{module ruc{//no definition here};};
IDL接口编译器将对上述代码映射到Java的代码如下:
Package china.ruc;
②IDL常量:(下面定义了一个long型常量)
Module ConstIDL{const long myconstant=123;};
上述IDL描述将产生如下Java代码:
Package ConstIDL;
Public interface myConstant{public static final int value=(int)(123);}
③IDL结构体类型:
Module structmodule{
Struct person{string name;short age;};
};
④IDL序列和数组:(下段代码包含一个数组、定长序列和不定长序列。
) Module ArrayModule{
Struct SomeStructure{
Long longArray[15];
Sequence<boolean>unboundedbools;
Sequence<char,15>boundedchars;
};};
数组和序列定义为如下java代码:
Public int longArray[]=null;
Public boolean unboundedBools[]=null;
Public char boundedChars[]=null;
⑤IDL异常:
Module ExceptionModule{
Exception YikesError {string info;};
};
⑥IDL属性:
Module AttributeModule{
Interface Person{
Attribute string name;
Readonly attribute short age;};};
2.Java Corba实例(HelloWorld的IDL接口描述):
Module HelloCORBA{interface HelloWorld{
String sayHello();oneway void shutdown();};};
3.银行banking的IDL接口描述:
Module banking{
Enum AccountType{checking,savings};
Struct AccountInfo{string id;string password;AccountType which;}; Exception InvalidAccountException{AccountInfo account;};
Exception InsufficientFundsException{//undo};
Interface Banking{
Long getBalance(in AccountInfo account)
raises (InvalidAccountException);
V oid withdraw(in AccountInfo account,in long amount)
Raises(InvalidAccountException,InsufficientFundsException);
V oid deposit(in AccountInfo account,in long amount)
Raises(InvalidAccountException);
V oid transfer(in AccountInfo from,in AccountInfo to, in long amount) Raises(InvalidAccountException,InsufficientFundsException);
};
};
采用Java语言编程实现一个CORBA系统:
Module Bank{
Interface Account;
Interface Control{
Exception AccountNotExist{};
Account OpenAccount(in string acct,in string Deissual)}
Raises(AccountNot Exist);
V oid closeAccount(in string acct);
};
Interface Account{
Readonly attribute unsigned long balance;
unsigned long Deposit(in unsigned long amount);
unsigned long withdraw (in unsigned long amount);
}。