1.1.1 信息化项目衍生过程

自20世纪50年代中期开始,社会形态由工业社会发展到信息社会。信息化(“Informatization”或“Informatisation”)项目应运而生,初期阶段项目主要以计算机为载体,以信息内容、信息技术为主体,信息量不大,只要在个人计算机中记录应用即可。随着网络的发展,信息内容的增加,人们的需求也不断地增加,系统集成(System Integration,SI)成为信息化项目的主体。它通过结构化的综合布线系统和计算机网络技术,将各个分离的设备(如个人计算机)、功能和信息等集成到相互关联的、统一和协调的系统之中,使资源达到充分共享,实现集中、高效、便利的管理。随着数据量的进一步激增,以及互联网的飞速发展,大数据处理与计算成为人们要面临的课题,云应用同时成为主要研究热点。这一衍生过程宏观上可以从项目应用单位规模演进过程及数据规模演进过程来看。

1. 项目应用单位规模演进过程的特征

项目应用单位规模演进过程如图1-1所示,完成了从个人应用→办公楼内数据信息共享→城市间数据信息共享→互联网内相关人员数据信息共享的演进过程。

022-01

图1-1 项目应用单位规模演进过程

(1)个人应用:完成纸质办公到电子文档办公的演进过程。典型项目有记事本、Office、WPS应用。充分体现电子办公文档容量大、易查找、易管理的特征。

(2)办公楼内数据信息共享:完成由传统纸质文件人工办公楼内传递到局域网间信息共享的演进过程。典型项目有域的使用、文件共享。充分体现现代化办公的便捷、工作效率高的特征。

(3)城市间数据信息共享:完成传统城市间办公内容需要电话、传真或者出差期间传递到网间共享的演进过程。此时,网络会议、信息统计等成为项目热点。为企业节省成本,极大提高工作效率。

(4)互联网内相关人员数据信息共享:随着互联网走进千家万户,全民网络完成全球性信息共享目标,随地办公、随地文件查询成为可能。典型项目有网站、OA、QQ等。充分体现现代化办公的信息共享性、信息智能化的特征。

2. 数据规模演进过程的特征

随着信息化飞速发展,数据规模完成了从单台计算机→单台服务器→服务器集群→云的演进过程。完成数据量单位从原始的KB级到PB级的飞跃。十进制前缀(SI)数据量单位换算关系如表1-1所示。

表1-1 十进制前缀(SI)数据量单位换算关系

022-02

数据规模演进过程如图1-2所示。

022-03

图1-2 数据规模演进过程

(1)单台计算机:数据量小,完成KB至GB级单个或多个文件的存储与计算。单台计算机可以快速存储、查找方便、快捷。典型项目有Office、画图工具、打印机等。主要涉及技术有微机原理、应用软件的使用。

(2)单台服务器:数据量不大,完成KB至GB级单个或多个文件的存储与计算,主要通过局域网或者互联网完成数据共享,使处于不同地点的员工,可以通过客户端查找员工间需要传递及共享的数据文件。典型项目有网络文件传输、网站等。主要涉及技术有程序应用开发,关系数据库的简单应用,并行、多线程技术。

(3)服务器集群:数据量较大,完成GB至TB级甚至PB级单个或多个文件的存储与计算。在满足客户需求范围内,能处理较大规模数据量的计算。典型项目有系统集成项目、网络会议等。主要涉及技术有程序高级开发,关系数据库、数据仓库、非关系库,并行、多线程、分布式技术,数据分析、挖掘。

(4)云:数据量非常大,完成TB至PB级甚至更大级别多文件的存储与计算。使信息充分共享,用户按需去云端存取数据,能处理大规模数据的计算与存储。典型项目有淘宝、百度等。主要涉及技术有程序高级开发,关系数据库、数据仓库、非关系库,并行、多线程、分布式技术,数据分析、挖掘。

学习提示

1. 并行计算(Parallel Computing)

传统上,一般的软件设计都是串行式计算。主要体现特征:软件在一台只有一个CPU的计算机上运行;问题被分解成离散的指令序列;指令被一条接一条地执行;在任何时间,CPU上最多只有一条指令在运行。如图1-3(a)所示,一个问题可以被离散出4个小任务,然后被CPU一个接一个地执行。如图1-3(b)所示,一个问题同样被离散出4个小任务,然后被多个计算资源(多核CPU、任意数量的CPU用网络连接或者二者的结合)在不同的CPU上同时执行。

023-01

图1-3 串行计算与并行计算

综上,并行计算(也可称平行计算)可以被理解为一种一次可执行多个指令的算法,一定程度上提高了计算速度,扩大了问题求解规模及复杂程度。这种并行可被分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,空间上的并行则指用多个处理器并发地执行计算。也有人分为数据并行和任务并行。数据并行是把大的数据任务化解成若干个相同的子数据任务,处理起来比任务并行简单。并行计算的主要目的是快速解决大型且复杂的计算问题。

2. 分布式计算(Distributed Computing)

随着信息化项目中数据的飞速增长,一些大任务要求计算机能应付大量的计算工作,此时单机并行计算或多机并行计算尤其对于分散系统(分散系统是一组计算机通过计算机网络相互连接与通信后形成的系统)的计算显示出局限性。分布式计算的核心思想是把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,再上传运算结果,将结果统一合并,得出数据结论。目前较理想的处理模式如图1-4所示,它将大任务分成等大小的数据块(Block),然后将这些数据块以多副本(防止数据丢失)形式存储在计算机集群的不同机器上,每台机器计算自己分担的小任务(Map过程),计算完成后将结果通过Reduce过程进行最终结果计算,最后输出结果。

024-01

图1-4 分布式计算

与其他算法相比,分布式计算具有以下几个优点。

(1)有多个自主计算实体(Computational Entities),且各自拥有本地存储器,稀有资源可以共享。

(2)计算实体间通过消息传递进行联系。

(3)每台计算机只处理信息的一部分,但整个分布式系统需要容纳个体计算机返回的错误。

(4)通过分布式计算,可以在多台计算机上平衡计算负载。

3. 并行计算与分布式计算的异同

(1)相似点:运用并行来获得更高性能,化大任务为小任务。

(2)不同点。

① 内存分配不同。并行计算中,所有的处理器共享内存,共享的内存可以让多个处理器彼此交换信息;在分布式计算中,每个处理器都有其独享的内存,数据交换通过处理器传递信息完成。

② 工作原理不同。并行程序并行处理的任务包之间联系紧密,且每一个任务块都是必要的、需要处理的,而且计算结果相互影响,要求每个计算结果绝对正确;分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者结果处理错误,对下一个任务包的处理几乎没有什么影响。因此,分布式的实时性要求不高,而且允许存在计算错误。