1. 概论
1.1 网络计算的基本概念
网络计算: 网络计算是以网络环境为中心的计算模式,它通过网络将地理上分散的、异构的计算机系统连接起来,充分发挥各个自治系统的计算能力,以实现资源共享、协同工作和联合计算,为用户提供各种基于网络的服务。
计算模式: 计算模式是人们用计算机来进行信息计算和处理的方式. 至今走过了三个阶段, 分别是: 集中式计算模式, 以文件服务器为中心的模式, 基于网络的分布式模式
网络计算的四个模式: 企业计算, 网格计算, 对等计算, 普适计算
企业计算: 企业计算是以实现大型组织内部和组织之间的信息共享和协同工作为主要需求而形成的网络计算技术. 其中面向对象中间件技术曾是企业计算的主流
网格计算: 通过利用大量异构计算机(通常为台式机)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。
对等计算: 简称P2P,又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
普适计算: 普适计算是一個强调和环境融为一体的计算概念,而计算机本身则从人们的视线裡消失。在普适计算的模式下,人们能够在任何时间、任何地点、以任何方式进行信息的获取与处理。
最终目标: 以上四类网络计算虽然侧重点不同, 但是最终的目标是一致的: 广泛共享, 有效聚合, 充分释放
1.2 远程过程调用RPC
RPC: 使远程的过程调用像在本地调用一样
套接字: 两个主机中的进程通过各自的套接字发送和接受消息来进行通信. 套接字是单台主机内应用层和传输层之间的接口.
客户端与服务端: 主动请求通信的应用成为客户, 被动等地啊通信, 提供服务的应用成为服务器.
如何识别接受进程: 发送进程识别接受进程的消息有两个:
- 接受主机的主机名或主机地址
- 在接受主机内部识别接受进程的标识符
Binder:
Binder程序,用于服务器的登记注册。
- 服务器首先向Binder发送消息,登记服务器的名字、版本、唯一标识以及定位句柄。
- 客户存根发现尚未与服务器绑定,向Binder发送消息,提供要求服务的名称和版本号, Binder根据是否存在该接口决定定位成败。
- 若存在合适的服务器进程, Binder就将句柄和唯一标识符发送给客户方。
1.3 C/S计算模式
什么是C/S: 在Client/Server结构的系统中,应用程序分为客户端和服务器端两大部分。客户端部分为每个用户所专有,而服务器端部分则由多个用户共享其信息与功能。
C/S模式原理:
C/S优点:
- 优化网络利用率,减少了网络流量。
- 响应时间短。
- 充分利用客户和服务器的能力。
- 相对的数据独立性。
- 支持更多用户
- 客户端硬件软件要求降低
C/S缺点:
- Client与Server直接连接,没有中间结构来处理请求;
- Server定位通常需要网络细节;
- Server必须是活动的;
- 客户端的应用程序严格依赖于服务器端数据存储和组织方式;
- 应用接口的异构性严重影响系统间互操作;
- 许多相同的功能块被多次重复开发,代码的复用很困难。
1.4 B/S计算模式
什么是B/S:
浏览器-服务器(Browser/Server)结构,简称B/S结构,与C/S结构不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器通过Web服务器与数据库进行交互,可以方便的在不同平台下工作
B/S模式原理:
B/S优点:
- 开放的标准。
- 较低的应用开发及管理成本。
- 对信息及应用系统的自由访问。通过Web浏览器几乎所有的客户均可以自由、主动地访问信息和系统。
- 由于用户只需在一种界面上就可以访问所有类型的信息,因此无论从用户培训上还是从系统升级上都相对容易得多。
1.5 三层计算模式
三层C/S:
三层C/S的优点:
- 客户端人机界面部分的程序开发工作得以简化。
- 随业务的变化在客户层和数据服务层所做的改动较小,适合于快速开发。
- 数据服务层主要提供对数据库进行各种操作的方法。
- 系统的安全性得以提高。
- 便于进行事务管理。
三层C/S的困难:
- 延长了开发周期。
- 增加了开发任务的复杂性。
- 提高了对开发人员的素质要求。
- 增加了对应用程序的维护工作量。
- 增加了实现共享的难度。
中间件: 在操作系统与应用软件之间增加一个独立的软件层,来避免应用程序与操作系统和硬件的紧耦合。并通过这一软件层实现分布式系统的资源整合,将系统的功能逻辑与资源透明访问的实现相隔离。中间件 = 中间件 = 平台 + 通信. 这个定义限定了只有用于分布式系统中才能称为中间件.
中间件的特点:
- 支持标准的协议比如TCP/IP
- 支持标准的应用程序接口
- 满足大量的企业应用需求
- 有运行于多个平台的实现
- 支持分布对象, 屏蔽网络和系统分布的复杂性
中间件的作用:
- 提供独立于平台的API,使应用系统能在多种平台上运行;
- 提供一些高级服务,将网络和分布式系统中的大部分复杂性屏蔽掉;
- 将一些常用功能组合成独立的部件,使之能在跨平台的软件环境上共享。