分布式计算是研究把一个需要非常巨大的计算能力解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把各部分的计算结果合并起来得到的最终成果(分而治之)。
优点:
1、低廉的计算机价格和网络访问的可用性
2、资源共享
3、可伸缩性
4、容错性
缺点:
1、多点故障
2、安全性低
1、单机计算:利用单台计算机进行计算,此时计算机不与任何网络连接,因而只能使用本计算机系统内可被即时访问的所有资源。
2、并行计算:采用多个处理器来执行单个指令。并行计算是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。
3、网络计算:网络计算的概念较宽泛。网络计算的核心思想是,把网络连接起来的各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类综合性服务。
4、网格计算:利用互联网把地理上广泛分布的各类资源(计算、存储、宽带、软件、数据、信息、知识等)连成一个逻辑整体,就像超级计算机,为用户提供一体化信息和应用服务(计算、存储、访问)。
5、云计算:这个概念是由Google公司提出。云计算是一种资源交付方式,使用虚拟化技术为核心。云计算的主要形式包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。
www是目前为止最大的分布式系统。它是由许多个相互链接的超文本组成的系统,通过互联网访问。它不等同于互联网,www只是互联网所提供的服务之一,是靠互联网运行的一项服务。www是建立在客户机/服务器(C/S)模型之上的。
(除了www之外,还有很多其他的分布式计算项目——SETI@home、BOINC)
1、可靠性
2、可用性
3、可扩展性
4、高效性
5、CAP理论:任何分布式系统在可用性、一致性、分区容错性方面不能兼得,最多只能得其二。因此,任何分布式系统大的设计只能在三者中有不同的取舍。
分布式计算的核心是进程间通信(IPC),相互独立的进程间通信及共同完成某项任务的能力。
IPC机制:两个运行在不同计算机上的独立进程(进程A和进程B),通过互联网交换数据,其中进程A是发送者,进程B是接收者。
在分布式计算中,两个或多个进程按约定的某种协议进行IPC,数据通信各参与进程必须遵守的一组规则。操作系统为IPC提供了相应的设施,我们称之为系统级IPC设施,如消息队列、共享内存等。
客户/服务器范型是网络应用中使用最多的一种分布式计算范型,该模式将非对称角色分配给两个协作进程。其中,服务器进程扮演服务器提供者角色,被动地等待请求的到达,客户进程向服务器发起请求,并等待服务器响应。
P2P网络是无中心服务器, 依赖用户群交换的互联网体系。与客户/服务器结构的系统不同,在P2P网络中,每个用户端既是一个结点,又有服务器的功能,任何一个结点无法直接找到其他结点,必须依靠其 用户群进行信息交流。 在P2P的范型中,各参与进程的地位是平等的,具有相同的性能和责任。每个参与者(进程) 都可以向另一个参与者发起请求和接收响应。在一个基于P2P范型的分布式应用中,每一个 参与的进程往往既承担服务器进程的角色,又承担客户进程的角色。
消息系统范型或面向对象的中间伯(MOM)是在基本的消息传递范型的基本上扩展而来的。 在这种范型中,消息系统充当一些相当独立的进程之间的中介。不同的进程以非耦合的方式,通过消息系统异步地交换消息。消息发送者在发送消息时,将一条消息放入消息系统 中,后者接着将该消息转发到与各个接收者相应的消息接收队列时,一旦消息发送出去, 发送者即可执行其它任务了。
消息系统范型进一步划分为两种子类型:点对点消息范型和发布/订阅消息范型
对于基本的网络协议和基本的网络应用程序来说,消息传递范型是适用的。但是,随着应 用程序变得越来越复杂,需要为网络编程提供进一步的抽象。最好有一种范型能使开发人 员可以像编写在单处理器上运行的传统应用程序一样,编写分布式软件系统。远程过程调 用(RPC)范型就是提供了这种抽象。利用这一抽象,可以采用与本地过程调用类似的思 想与概念,以进行进程间通信。
远程方法调用: 远程方法调用(RMI)是面向对象版本的PRC。在该范型中,进程可以调用对象方法,而该对象可驻留于某远程主机中。与RPC一样,参数可随方法调用传递,也可提供返回值
对象请求代理:对象请求代理范型由对象请求者,对象提供者和对象请求代理范型中,进程向对象请 求(ORB)组成。
网络服务范型由服务请求者,服务提供者(对象)和目录服务三者组成。网络服务范型的 工作原理为:服务提供者将自身注册到网络上的目录服务器上;当服务请求者(进程)需 访问服务时,则在运行时与目录服务器联系;然后,如果请求的服务可用,则目录服务器 将向目录服务进程提供一个有关该服务的引用;最后,进程利用该引用来与所需的服务进行交互。
移动代理一种可移动的程序或对象。在移动代理范型中,一个代理从源主机出发,然后根据其自身携带的执行路线,自动地在网上主机间移动。在每一个主机上,代理访问所需的 资源或服务,并执行必要的任务来完成其使命。 一个移动代理的典型应用系统实例为Agent Tcl。
云计算的三种服务模型: 基础设施即服务(IaaS) 平台即用力(PaaS) 软件即服务(SaaS)
www是到目前为止最著名的分布式应用。它具有强大的信息连接功能www是一种基于HTTP的客户/服务器应用系统,属于客户/服务器范型的分布式计算应用。
TCP/IP传输控制协议)是Internet最基本的协议和Internet国际互联网络的基础。TCP/IP有网络接口层、网络层、传输层、应用层组成。其中HTTP是应用层的重要协议之一。
HTTP是面向连接(基于TCP)、无状态的请求应答协议,也是一个客户端和服务端请求和应答的标准。通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个HTTP请求到服务器的指定端口,网络服务的默认端口为80,也可以指定为其它为占用的端口。web浏览器向web服务器发送请求,web服务器处理请求并返回适当的应答。
在一次完整的HTTP的通信过程中,web浏览器与web服务器之间将完成7个步骤:
1、建立TCP连接
2、web浏览器向web服务器发送请求命令。
3、web浏览器发送请求头消息
4、web服务器应答
5、web服务器发送应答头消息
6、web服务器向浏览器发送数据
7、web服务器关闭TCP连接
当浏览器向web服务器发出请求时,它向服务器传递了一个数据块,即请求信息,HTTP请求信息由3个部分组成:
1、请求方法URI协议/版本:HTTP请求可以使用多种请求方法。例如HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。在Internet中最常用的方法是GET和POST。
2、请求头:包含许多有关客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言、请求正文的长度等。
3、请求正文:请求头和请求正文之间是一个空行,这个空行非常重要,它表示请求头已经结束,接下来是请求正文。