1 总结及其企业计算
1.1 描述企业的IT鸿沟
、信息孤岛
、和包含EAI
企业级应用基本架构
1.1.1 如何描述IT鸿沟
?

??IT差距是指当业务不断发展时,现有的IT支持平台
不能满足业务
需要,IT支持平台发展到可以支持业务需求的时候,业务有了新的需求和发展。IT支持之间的持续差距称为IT鸿沟。
1.1.2 什么是信息孤岛?
?
??存在IT差距的一个重要原因是企业信息孤岛
问题、以及和计算机应用系统。
1.1.3 IT鸿沟的解决方法是什么
?
??IT解决鸿沟的方法是EAI
(企业应用集成)。是一套完整的EAI层次系统包括应用接口层、应用集成层、流程集成层和用户交互层。EAI企业的许多信息系统都有一个原因中间件
底层基础平台连接,各种应用孤岛
”,“信息孤岛
通过各自的适配器
链接到总线,然后通过消息队列实现各应用之间的交流。
1.1.4 EAI具体的层是什么?
?
??EAI技术水平的底层是应用接口层
,它要解决的使应用集成服务器与被集成系统之间的连接
和数据接口
的问题。 ??向上第二层是应用整合层
,它需要解决集成系统的问题数据转换
不同系统之间的信息转换是通过简历统一的数据模型来实现的。 ??第三层是流程整合层
,它使用不同的应用系统连接在一起,协同工作
,并提供业务流程管理
业务流程的管理包括流程设计、监控和规划。 ??最后一层用户交互层
,它为用户提供了一个统一的信息服务功能入口,通过内部和外部相对分散和独立的信息形成一个统一的整体,确保用户可以从统一的渠道访问所需的信息,也可以根据每个用户的要求设置和提供个性化的服务。
1.1.5 什么是中间件?
?
??中间件(Middleware)
在这里,是一种软件系统软件
(操作系统和网络软件)与应用软件
在此之间,它可以实现应用层中各应用组件之间的跨网络协作(即相互操作),使运行各应用软件下涉及的系统结构、操作系统、通信协议、数据库等应用服务可以有所不同。 ??主流中间件有:DNA(微软)、CORBA、J2EE
1.2 C/S架构和B/S架构
1.2.1 什么是C/S架构和B/S架构
?
??C/S架构是典型的两层架构,全称是Client/Server
,即客户端/服务端
架构,其客户端包含一个或多个在用户计算机上运行的程序,而服务器端有两是数据库服务器端
,客户端通过数据库连接到服务器端的数据。另一个是Socket服务器端
,通过客户端程序Socket与服务器端通信。 ??C/S架构也可视为是胖客户端
架构。因为客户端需要实现绝大多数的业务逻辑和界面显示。在这种架构中,作为客户端的一部分,它需要承受巨大的压力,因为实际逻辑和事务处理包含在与数据库的交互中(通常是SQL或实现存储过程)实现持久数据,以满足实际项目的需要。
??B/S 架构的全称是 Browser/Server
,即浏览器/服务器
架构。Browser 指的是 Web 浏览器,前端只实现少数事务逻辑,服务器端实现主要事务逻辑,Browser 客户端,WebApp 服务器端和 DB 端构成所谓的三层架构。B/S 架构系统不需要特别安装,只有 Web 浏览器。
1.2.2 二层C/S的优缺点
:
优点
: ??(1)C/S系统结构强大数据操作
能力和事务处理
能力,模型简单,易于理解和接受。 ??(2)系统的客户应用程序和服务器组件分别在不同的计算机上运行,系统中的每个服务器都能满足各部件的要求,对硬件和软件的变化具有很大的适应性和灵活性,容易扩展和缩小系统。 ??(3)在C/S在系统结构中,系统中的功能部件被完全隔离,客户应用程序正在开发中 集中于 显示和分析数据
,而数据库服务器端开发则 集中于 数据的管理
,每一个新的都没必要 在应用程序中,一个对一的DBMS继续编码。通过网络链接将大型应用程序处理任务分配到许多低成本计算机上,以节省大量成本。
缺点
: ??(1)开发成本高 ??(2)客户端程序设计复杂 ??(3)单一的信息内容和形式 ??(4)用户界面风格单一,使用复杂,不利于推广使用 ??(5)软件移植困难 ??(6)软件维护升级困难
1.2.3 三层C/S的优缺点
:
优点
: ??(1)允许合理划分三层结构的功能逻辑上保持相对独立
,可以改进系统和软件可维护性
和可扩展性
。 ??(2)允许更灵活有效地选择相应的平台和硬件系统,使其在处理负荷能力和处理特性上分别适应结构清晰的三层;而且这些平台和组件可以升级开发得很好。 ??(3)应用的每一层都可以并行开发,选择最合适的开发语言。 ??(4)利用功能层
有效隔离表示层
与数据层
,未经授权的用户很难使用数据库工具或黑客手段绕过功能层非法访问数据层,这是严格的安全
管理奠定了坚实的基础。
缺点
: ??(1)三层 C/S 各层结构如果通信效率不高
,即使分配给各层的硬件能力很强,作为一个整体,它也不能满足所需的性能。 ??(2)设计时必须仔细考虑三层之间的通信方法、通信频率和数据量。这和提高各层的独立性是一样的 C/S 结构的关键问题。
1.2.4 B/S的优缺点
:
优点
: ??(1)基于 B/S 软件的系统结构,系统安装、修改和维护
全在服务器端
解决方案。用户在使用系统时,只需要一个浏览器就可以运行所有模块,真正达到零客户端
在运行过程中,功能很容易自动升级。 ??(2)B/S 系统结构还为异种机、异种网、异种应用服务提供在线、联网、统一服务和开放基础。
缺点
: ??(1)B/S 体系结构缺乏对动态页面的支持
,没有集成有效的数据库处理功能。 ??(2)B/S 系统结构系统扩展能力差,安全性难以控制。 ??(3)采用 B/S 系统结构的应用系统在数据查询等响应速度上远低于 C/S 体系结构。 ??(4)B/S 系统结构的数据提交通常基于页面和数据动态交互性不强
,不利于在线事务处理应用。
2 网格计算
2.1 网格计算概念
2.1.1 什么是网格计算?
?
??网格计算是在中间部件安装在每台计算机上
互相连接,然后在互联网上使用计算机 CPU 闲置资源处理能力是解决大规模计算问题的一种方法。网格整合了网络上分布的资源,建立了计算和数据处理的一般系统支持平台,实现了资源共享和联合工作。
??网格计算的结构
由 构成
2.1.2 什么要出现网格计算
?
??由于所有数据的操作都集中在服务器上,严重影响了操作效率。此外,应用程序服务器运行的数据负较重,一旦服务器崩溃等问题,后果不堪设想。因此,许多单位都有数据库存储务器,以防万一。这就需要将服务器中的数据进行分布式存储,并通过在多台服务器上进行计算来提高运算效率。网格计算在这样的需求中诞生了。
2.1.3 网格计算的优点有什么
?
提供高效的资源共享
服务,平衡多台计算机上的负载,可把程序放到最适合的位置上,从而进行高性能的计算。
网格系统一共有两种个体系架构:一个是五层沙漏模型,一个是OGSA。
2.2 五层沙漏模型
2.2.1 五层沙漏模型的基本思想
(1)共享
:深层次、广泛、动态、具有多种形式的有条件受控的共享。 (2)互操作性
:共享关系可以跨域不同的
平台、语言和编程环境,跨越不同的组织边界、使用策略和资源类型。 (3)协议
:为了实现特定的操作而定义的分布式系统元素之间交互的方式以及交互过程中交换的信息结构。 (4)服务
:由所使用的协议和所实现的行为来定义,服务抽象掉了与资源相关的信息。 中心思想
:采用以协议
为中心的分层结构。
2.2.2 五层沙漏模型的构成
五层沙漏模型从下到上由 构造层,连接层,资源层,汇聚层和应用层构成: (1)构造层
:提供网格服务的基础硬件,包括:计算、存储、网络等 (2)连接层
:将硬件连接起来,并能方便地查找和使用及为保证使用安全 (3)资源层
:将硬件转换成资源,并为资源提供管理和维护功能。有限的资源构成瓶颈 (4)汇集层
:将所有单个的资源形成一个网络 (5)应用层
:使用资源的用户应用程序
2.3 OGSA
基本思想:和5层不同的使,OGSA是以服务
为中心的模型。
五层沙漏结构试图实现的是资源的共享,OGSA实现的将是对服务的共享。OGSA将一切都看做是网格服务。OGSA在五层沙漏结构基础上,对Web Services进行了扩展,提出动态服务(即网格服务)的概念。
3 云计算
3.1 云计算与网格技术的差别、Map-Reduce、Hadoop 基本原理、数据一致性理论
3.1.1 云计算与网格技术的差别是什么
?
网格计算的思路是聚合分布资源,支持虚拟组织,提供高层次的服务。云计算的资源相对集中
,主要以数据中心的形式提供底层资源的使用。 网格计算用聚合资源来支持挑战应用,把要分散的资源聚合起来,后来逐渐强调适应普遍的信息化应用。云计算从一开始就支持广泛企业计算、Web 应用,普适性更强。 网格计算用中间件屏蔽异构系
统,力图使用户面向同样的环境,把困难留在中间件,让中间件完成任务。云计算实际上承认异构
,用镜像执行或者提供服务的机制来解决异构性的问题。 网格计算用执行作业形式使用,在一个阶段内完成作用产生数据。云计算支持持久服务,用户可以利用云计算作为其部分 IT 基础设施,实现业务的托管和外包。 网格计算更多地面向科研应用,商业模型不清晰
。而云计算从诞生开始就是针对企业商业应用,商业模型比较清晰
。 云计算是以相对集中
的资源,运行分散的应用。网格计算则是聚合分散的资源,支持大型集中式应用。 但从根本上来说,从应对 Internet 的应用的特征特点来说,他们是一致的,为了完成在 Internet 情况下支持应用,解决异构型、资源共享等等问题。
3.1.2 云计算不可或缺的技术,MapReduce的原理
?
目标
:Map-Reduce 的目标是用于大规模数据集(大于 1 TB)的并行运算
,在面对节点失效的情况时能够保证大量的文件和数据依然可用。初始化时数据被分割成许多分块的小数据,这些数据都是以 <key, value>
的形式存储。用户程序会分配一个 Master 进程和许多 Worker 进程
。
任务分配
:任务开始时,Master 将用户程序的工作分为两种类型的任务(Map 任务和 Reduce 任务),并将这些任务分配给相应的 Workers。
Master 的责任
:Master 的责任是给 Map Workers 和 Reduce Workers 分配相应的任务,检测是否有 Workers 进程死掉,将 Map 任务处理后的结果通知给 Reduce 任务。
Map worker 的责任
:Map Worker 在得到 Master 的 Map 工作任务的指令后,Map Workers 开始工作。Map Workers 从 input 中获取分块的数据,并通过其中数据存储的方式对数据进行处理,并将处理的中间结果(<key, value>
形成的链表)存放在本地磁盘中。
Reduce worker 的责任
:在得到 Master 的有关 Map 处理结果的通知后,Reduce 任务开始工作。Reduce 工人把每个 Map Workers 的本地磁盘中的内容进行整合,形成有序的最终结果,并将结果写入到输出文件中。
假如一个 Workers 进程失败了,该 Workers 的任务就被分配给其他的 Workers 进程。如果一个 Master 进程失败了,那么整个 Map-Reduce 任务就会终止。
3.1.3 Hadoop 基本原理
Hadoop 是一个分布式系统基础架构。用户可以充分利用集群的威力进行高速运算和存储。Hadoop 的框架核心的设计就是:HDFS
和 Map Reduce
。HDFS 为海量的数据提供了存储
,则 Map Reduce 为海量的数据提供了计算
。 Hadoop 实现了一个分布式文件系统(HDFS)。HDFS 有高容错的特点,部署在低廉硬件上,提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。
3.1.4 数据一致性理论
CAP理论
: 强一致性(C):系统在执行某项操作后仍然处于一致状态。在分布式系统中,更新操作执行成功后所有用户都应该读取到最新的值,这样的系统被认为具有强一致性。
可用性(A):每一个操作总是能够在一定的时间内返回结果。
分区容错性(P):分区容错性可以理解为系统在存在网络分区的情况下仍然可以接受请求。
CAP 理论是在分布式环境
中设计和部署系统时需要考虑的三个重要的系统需求。根据 CAP 理论,数据共享系统只能满足这三个特性中的两个,而不能同时满足三个条件。
- 放弃 C:放弃数据的强一致性,而保留数据的最终一致性。
- 放弃 A:一旦遇到分区容错故障,那么受到影响的服务需要等待数据一致,因此等待期间系统无法对外提供服务。
- 放弃 P:将数据放在一台机器上,则不会遇到分区带来的负面影响,但会严重影响系统的可扩展性。
4 P2P网络
4.1 P2P概念
P2P对等网络是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源获取者(Client)。
有三种架构:C/S 架构、纯 Peer 架构、离散哈希表(重点)
P2P 网络的核心机制,是在应用层建立逻辑上的覆盖网络(overlay network),屏蔽下三层的工作细节
: (1)提高网络工作效率 (2)充分利用网络带宽 (3)开发了每个网络节点的潜力 (4)具有高可扩展性 (5)良好的容错性
第二代相比第一代,使用了 DHT 技术,有较好的可伸缩性和查询效率。
4.2 DHT概念
DHT(Distributed Hash Table,分布式哈希表),把网络上资源的存取像 Hash Table
一样,可以简单而快速地进行 put、get
,该思想的诞生主要是受第一代 P2P(Napster)网络的影响。DHT 更强调的是资源的存取,而不管资源是否是一致的。
:Hash 函数可以根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要(MD,Message Digest),一般用于消息的完整性检验。
4.3 Chord算法
:是一个分布式的非集中式的 P2P 查询服务,存储对。给定一个关键字(key),将关键字映射到某个节点。如果给对等网络应用的每个数据都分配一个 key,那么对等网络中的数据查找问题就可以用 Chord 很容易地解决了。
: (1)采用唤醒拓扑结构(Chord环) (2)其核心思想就是要解决在P2P应用中遇到的基本问题:如何在P2P网络中找到存有特定数据的节点。
: (1)Hash算法:SHA-1 (2)把节点的IP地址表示为m位的节点ID(即Node ID, NID) (3)把内容关键字表示为m位的K(即Key ID,KID) (4)节点按ID从小到大顺序排列在一个逻辑环上 (5)内容,即KID,存储在数值比它大的下一个节点上,例如,K10存储在N11上,或者K20存储在N23上。
:
(1)每个节点仅仅维护其后继结点ID、IP地址等信息 (2)查询消息通过后继结点指针在圆环上传递 (3)直到查询消息中包含的K落在某节点ID和它的后继节点ID之间 (4)速度太慢,O(N),N为网络中节点数
:
Chord中每个节点上都有一张局部的指针表,表中存放 log 2 n \log_2n log2n个节点信息。
:假设当前节点是 Nc \text{Nc} Nc,要查找 Ko \text{Ko} Ko (1)查找当前节点是否有要查找的 Ko \text{Ko} Ko (2)在指针表里面查找 Ko \text{Ko} Ko 的位置 (3)如果找到,即 Nc + 2 i = Ko , i ∈ [ 0 , m − 1 ] \text{Nc} + 2^i = \text{Ko}, i \in [0, m-1] Nc+2i=Ko,i∈[0,m−1],则直接转到对应节点 Nc + 2 i \text{Nc}+2^i Nc+2i (4)若没有找到,则查找临界节点 (5)若 Nc + 2 i < Ko < Nc + 2 i + 1 , i ∈ [ 0 , m − 1 ] \text{Nc} + 2^i < \text{Ko} < \text{Nc} + 2^{i+1}, i \in [0, m-1] Nc+2i<Ko<Nc+2i+1,i∈[0,m−1],转到 Nc + 2 i \text{Nc} + 2^i Nc+2i 对应的节点处继续查找 (6)若 Ko > Nc + 2 m − 1 \text{Ko} > \text{Nc} + 2^{m-1} Ko>Nc+2m−1,即最后一项的 ID < Ko \text{ID} < \text{Ko} ID<Ko,则在 Nc + 2 m − 1 \text{Nc} + 2^{m-1} Nc+2m−1 对应节点继续查找,并重复查找当前节点是否有要查找的 Ko \text{Ko} Ko
: (1)新节点 N N N 事先直到某个或者某些节点,并且通过这些节点初始化自己的指针表,也就是说,新节点 N N N 将要求已知的系统中某节点为它查找指针表中的各个表项 (2)在其他节点运行探测协议后,新节点 N N N 将被反映到相关节点的指针表和后继节点指针中 (3)新节点 N N N 的第一个后继节点将其维护的小于 N N N 节点的 ID 的所有 K 交给该节点维护
: (1)算法简单 (2)负载平衡:所有的节点以同等的概率分担系统负荷,从而避免某些节点负载过大 (3)可扩展:查询过程的通信开销和节点维护的状态随着系统总结点数增加成对数关系( O ( log N ) \mathbf{O}(\log N) O(logN) 数量级) (4)可用性:要求节点根据网络变化动态更新查询表,能够及时恢复路由关系,使查询可靠地进行
:拓扑失配 (1)每一跳可能跨越多个自治域,甚至是多个国家的网络。 (2)重叠网络与物理网络脱节 (3)实际的寻路延时大 可以提取物理网络的拓扑信息改造 Chord 环(测量 RTT)来改进。
4.4 Pastry算法
- 特点:
- 考虑网络的本地性,解决物理网络和逻辑网络的拓扑失配问题,即基于应用层定义的邻近性度量,例如 IP 路由跳数、地理距离、往返延时等
- 节点 ID 分布采用环形结构
- 每个节点维护一个状态表
- 路由表,m/b 行,b 的选择反应了路由表大小和路由效率之间的折衷,表中的每项包含节点的 ID、IP 地址等
- 邻居节点集,存放真实网络中与当前节点最近的 M M M 个节点的信息
- 叶子节点集,存放键值空间中与当前节点最近的 L L L 个节点的信息,路由时,首先检查叶子结点集
- 算法
- Hash 算法:SHA-1
- 把节点的 IP 地址用哈希表示位 m 位节点 ID(即 Node ID,NID)
- 将内容关键字哈希为 m 位的 K(即 Key ID,KID)
- NID 和 KID 是以 2b 为基的数,共有 m/b 个数位
- 键值对存储在离它最接近的节点上
- 每个节点维护一个状态表:路由表、邻居节点集、叶子结点集
- 逻辑跳数为 O ( log 2 b N ) \mathbf{O}({\log_2 b} N) O(log2bN)
6 CDN网络
6.1 什么是CDN网络
?
内容分发网络的目的通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决 Internet 网络拥挤的状况,提供用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站的响应速度慢的根本原因。
内容路由的实现机制就是CDN 内容路由,为了保证它负载均衡问题,包括 IP anycast 和 DNS 重定向两个技术。
6.2 主流的CDN网络技术
:Akaimai 和Lime Light
Akamai 主要使用 DNS 重定向
,Lime Light 使用 IP Anycast
技术
Akamai 在全球建立部署了几千个节点,以物理节点距离用户最近而著称;通过对各节点间的路由优化,实现信息的分发;主要提供 WEB、下载、流媒体等加速服务;
Lime Light 通过在全球最重要的城市建立“超级节点”,且所有“超级节点”间采用自有光纤直连,实现全球多运营商网络的互联互通;如同在全世界建立了一个自有的、具有互联互通的“BGP”网络;Lime Light 在每个“超级节点”部署了成千上万的服务器、存储、网络设备。形成了分布式的全球“信息”存储中心;通过“超级节点”网络结构的使用,Lime Light 能够更好地满足和支持富媒体全球分布式分发,特别适合于为大资料库、大文件、海量观众提供高效率分发服务。
对比项 | Akamai | Lime Light | |
---|---|---|---|
基础建设 | 节点数目 | 号称 5000 多个 | 22 个 |
布点级别 | 二三级节点 | 超核心节点 | |
覆盖策略 | 小节点分布覆盖 | 大节点集中覆盖 | |
节点使用属性 | 租用 | 自建 | |
边缘节点与源站的距离 | 较远 | 较近 | |
边缘节点与用户的距离 | 较近 | 较远 | |
数据分发 | 小文件分发能力 | 可实现,但受限于各节点之间网络 | 可实现 |
大文件分发能力 | 可基本实现,但全网分发时间较长 | 可实现,分发时间较快 | |
分发成本 | 较高 | 低 | |
数据存储 | 海量数据存储能力 | 可实现,但受限于存储成本,具有海量存储的节点不多 | 可实现 |
WEB 数据存储能力 | 可实现 | 可实现 |
6.3 DNS重定向技术原理步骤
:
- 用户向域名解析器发送域名解析请求,请求解析某域名,以获取内容服务器的 IP 地址
- 域名解析请求中包含了域名解析器的 IP 地址,并被发送到该域名的域名服务器
- 该域名的域名服务器通过返回一个 CNAME 类的 DNS 记录,将此域名解析请求重定向到 CDN 网络的域名服务器
- CDN 网络的域名服务器对该域名解析请求进行智能解析,根据域名解析器的 IP 地址、网络的拥塞状况、各 CDN 网络边缘节点服务器的负载情况等,将最合适的 CDN 网络边缘节点服务器的 IP 地址返回给域名解析器,域名解析器再转发给用户
- 用户直接访问 CDN 边缘节点
7 物联网
7.1 什么是物联网
?
物联网是一个未来发展的愿景,等同于“未来的互联网”,能够实现人在任何时间,地点,使用任何网络与任何人与物的信息交换,以及物与物之间的信息交换。
物联网的案例
有:牲畜溯源,精准农业,机场防入侵,智能电网,医疗保健。
7.2 物联网五层体系结构阐述
:
感知层
:感知层由各种传感器以及传感器网关构成,是物联网获识物体、采集信息的来源,主要功能是识别物体、采集信息。
接入层
:用来读取识别到的物体的信息并将读到的内容连到 Internet。
网络层
:由各种私有网络、互联网、有线和无线通信网、网络管理系统和云计算平台等组成,负责传递和处理感知层获取的信息。
中间件层
:用来管理物联网上的资源和网络通讯,连接多个独立应用程序或独立系统,使它们之间能交换信息。
应用层
:是物联网和用户(包括人、组织和其他信息)的接口,它与行业需求结合,实现物联网的智能应用。