聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 计算机英语(第4版)--刘艺--课文参考译文

计算机英语(第4版)--刘艺--课文参考译文

时间:    下载该word文档
《计算机英语(第4版)》参考译文第一单元:计算机与计算机科学
课文A:计算机概览
一、引言
计算机是一种电子设备,它能接收一套指令或一个程序,然后通过对数字数据进行运算或对其他形式的信息进行处理来执行该程序。
要不是由于计算机的发展,现代的高科技世界是不可能产生的。不同类型和大小的计算机在整个社会被用于存储和处理各种数据,从保密政府文件、银行交易到私人家庭账目。计算机通过自动化技术开辟了制造业的新纪元,而且它们也增强了现代通信系统的性能。在几乎每一个研究和应用技术领域,从构建宇宙模型到产生明天的气象报告,计算机都是必要的工具,并且它们的应用本身就开辟了人们推测的新领域。数据库服务和计算机网络使各种各样的信息源可供使用。同样的先进技术也使侵犯个人隐私和商业秘密成为可能。计算机犯罪已经成为作为现代技术代价组成部分的许多风险之一。
二、历史
第一台加法机是法国科学家、数学家和哲学家布莱斯•帕斯卡于1642年设计的,它是数字计算机的先驱。这个装置使用了一系列带有10个齿的轮子,每个齿代表从09的一个数字。轮子互相连接,从而通过按照正确的齿数向前转动轮子,就可以将数字彼此相加。17世纪70年代,德国哲学家和数学家戈特弗里德•威廉•莱布尼兹对这台机器进行了改良,设计了一台也能做乘法的机器。
法国发明家约瑟夫―玛丽•雅卡尔,在设计自动织机时,使用了穿孔的薄木板来控制复杂图案的编织。在19世纪80年代期间,美国统计学家赫尔曼•何勒里斯,想出了使用类似雅卡尔的木板那样的穿孔卡片来处理数据的主意。通过使用一种将穿孔卡片从电触点上移过的系统,他得以为1890年的美国人口普查汇编统计信息。
1、分析机
也是在19世纪,英国数学家和发明家查尔斯•巴比奇,提出了现代数字计算机的原理。他构想出旨在处理复杂数学题的若干机器,如差分机。许多历史学家认为,巴比奇及其合伙

人,数学家奥古斯塔•埃达•拜伦,是现代数字计算机的真正先驱。巴比奇的设计之一,分析机,具有现代计算机的许多特征。它有一个以一叠穿孔卡片的形式存在的输入流、一个保存数据的“仓库”、一个进行算术运算的“工厂”和一个产生永久性纪录的打印机。巴比奇未能将这个想法付诸实践,尽管在那个时代它在技术上很可能是可行的。
2、早期的计算机
模拟计算机是19世纪末开始制造的。早期型号是靠转动的轴和齿轮来进行计算的。用任何其他方法都难以计算的方程近似数值,可以用这样的机器来求得。开尔文勋爵制造了一台机械潮汐预报器,这实际上就是一台专用模拟计算机。第一次和第二次世界大战期间,机械模拟计算系统,以及后来的电动模拟计算系统,在潜艇上被用作鱼雷航线预测器,在飞机上被用作轰炸瞄准具的控制器。有人还设计了另一个系统,用于预测密西西比河流域春天的洪水。
3、电子计算机
第二次世界大战期间,以伦敦北面的布莱切利公园为工作地点的一组科学家和数学家,制造了最早的全电子数字计算机之一:“巨人”。到194312月,这个包含了1500个真空管的“巨人”开始运转了。它被以艾伦•图灵为首的小组用于破译德国用恩尼格码加密的无线电报,他们的尝试大部分是成功的。
除此而外,在美国,约翰•阿塔纳索夫和克利福德•贝里早在1939年就在艾奥瓦州立学院制造了一台原型电子机。这台原型机和后来的研究工作都是悄悄完成的,而且后来因1945年电子数字积分计算机(ENIAC)的研制而显得相形见绌。ENIAC被授予了专利。但是,数十年后,在1973年,当该机被揭露吸收了在阿塔纳索夫―贝里计算机中首次使用的原理后,这项专利被废除了。


1A-1ENIAC是最早的全电子数字计算机之一。
ENIAC(见图1A-1)含有18,000个真空管,具有每分钟几百次的乘法运算速度,但是,其程序最初是通过导线传送到处理器内的,必须由人工更改。根据美籍匈牙利数学家约翰•冯•诺伊曼的想法,后来制造的机器带有一个程序存储器。指令像数据一样存储在“存储器”中,使计算机在执行过程中摆脱了纸带阅读器的速度限制,并使问题在不给计算机重新接线的情况下得以解决。
20世纪50年代末,晶体管在计算机中的应用,标志着比在真空管机器情况下体积小、速度快、用途广的逻辑元件的出现。由于晶体管使用的功率小得多,寿命也长得多,仅这项发展本身就导致了被称之为第二代计算机的改良机器的产生。元件变小了,元件的间距也变小了,而且系统的制造成本也变得低得多。
4、集成电路
20世纪60年代末,集成电路(见图1A-2)得到采用,从而有可能将许多晶体管制作在一块硅衬底上,晶体管之间用覆镀在适当位置的导线相连接。集成电路导致价格、尺寸和故障率的进一步降低。20世纪70年代中期,随着大规模集成电路和后来的超大规模集成电路(微芯片)的采用,成千上万个彼此相连的晶体管被蚀刻在一块硅衬底上,于是微处理器成为现实。


1A-2:集成电路
那么,再回过头来看看现代计算机处理开关值的能力:20世纪70年代的计算机一般一次能够处理8个开关值。也就是说,在每个循环中,它们能处理8个二进制数字或位的数据。8个位为一组,称为一个字节;每个字节包含256个开与关(或01)的可能模式。每个模式相当于一条指令、一条指令的一部分或者一个特定的数据类型,如一个数字、一个字符或一个图形符号。例如,11010010这个模式可能是二进制数据——在此情况下代表210这个十进制数字,或者它可能是一条指令,告诉计算机将存储在其交换设备中的数据与存储在存储芯片某个位置的数据进行比较。
一次能处理163264位数据的处理器的研制,提高了计算机的速度。一台计算机能够处理的全部可识别模式——操作总清单——称为其指令集。随着现代数字计算机的不断发展,这两个因素——能够同时处理的位数和指令集的大小——在继续增长。
三、硬件
不论尺寸大小,现代数字计算机在概念上都是类似的。然而,根据成本与性能,它们可分为几类:个人计算机或微型计算机,一种成本较低的机器,通常只有桌面大小(尽管“膝上型计算机”小到能够放入公文包,而“掌上型计算机”能够放入口袋);工作站,一种具有增强型图形与通信能力、从而使其对于办公室工作特别有用的微型计算机;小型计算机,一般就个人使用而言太昂贵,其性能适合于工商企业、学校或实验室;以及大型机,一种大型的昂贵机器,具有满足大规模工商企业、政府部门、科研机构或者诸如此类机构需要的能力(其中体积最大、速度最快的称为巨型计算机)
一台数字计算机不是单一的机器。确切地说,它是由5个不同的要素组成的系统:1

中央处理器;2)输入设备;3)存储设备;4)输出设备;以及(5)被称作总线的通信网络,它将系统的所有要素连接起来并将系统与外界连接起来。
四、编程
一个程序就是一系列指令,告诉计算机硬件对数据执行什么样的操作。程序可以内嵌在硬件本身里,或以软件的形式独立存在。在一些专门或“专用”计算机中,操作指令被嵌入其电路里;常见的例子有计算器、手表、汽车发动机和微波炉中的微型计算机。另一方面,通用计算机尽管含有一些内置的程序(在只读存储器中)或者指令(在处理器芯片中),但依靠外部程序来执行有用的任务。计算机一旦被编程,就只能做在任何特定时刻控制它的软件所允许它做的事情。广泛使用的软件包括一系列各种各样的应用程序——告诉计算机如何执行各种任务的指令。
五、未来的发展
计算机发展的一个持续不断的趋势是微小型化,亦即将越来越多的电路元件压缩在越来越小的芯片空间内的努力。研究人员也在设法利用超导性来提高电路的功能速度。超导性是在超低温条件下在某些材料中观察到的电阻减小现象。
计算机发展的另一个趋势是“第五代”计算机的研制工作,亦即研制可以解决复杂问题而且其解决方法用“创造性的”这个词来形容或许最终名副其实的计算机,理想的目标是真正的人工智能。正在积极探索的一条道路是并行处理计算,亦即利用许多芯片来同时执行数个不同的任务。一种重要的并行处理方法是模仿神经系统结构的神经网络。另一个持续不断的趋势是计算机联网的增加。计算机联网现在使用由卫星和电缆链路构成的世界范围的数据通信系统,来将全球的计算机连在一起。此外,大量的研究工作还投入在探索“光”计算机的可能性上——这种硬件处理的不是电脉冲而是快得多的光脉冲。


第二单元:计算机体系结构
课文A:计算机硬件
一、引言
计算机硬件是计算机运行所需要的设备,由可被物理操纵的部件组成。这些部件的功能

一般分为3个主要类别:输入、输出和存储。这些类别的部件与微处理器相连接,特别是与计算机的中央处理器相连接。中央处理器系电子线路,它通过称为总线的线路或电路来提供计算能力和对计算机进行控制。
另一方面,软件是计算机用来处理数据的一套指令,如文字处理程序或电子游戏。这些程序通常被存储起来,并由计算机硬件调入和调出中央处理器。软件也控制着硬件如何利用:例如,如何从存储设备中检索信息。输入与输出硬件的交互是由基本输入/输出系统BIOS软件控制的。
尽管微处理器在技术上仍被认为是硬件,但其部分功能也与计算机软件有关系。既然微处理器同时具有硬件与软件的特征,它们因此经常被称作固件。
二、输入硬件
输入硬件由给计算机提供信息和指令的外部设备——亦即计算机中央处理器以外的部件——组成。光笔是带有光敏端头的输入笔,用来在计算机显示屏上直接写画,或者通过按光笔上的夹子或用光笔接触屏幕来在屏幕上选择信息。这种笔含有光传感器,用于识别笔所经过的屏幕部分。鼠标是为一只手抓握而设计的指示设备。它在底部有一个检测装置(通常是一个圆球),使用户能够通过在一个平面上移动鼠标来控制屏幕上指针或光标的运动。该装置滑过平面时,光标随着在屏幕上移动。要在屏幕上选择项目或命令,用户就点击鼠标上的按钮。操纵杆是由一根杆子组成的指示设备,该杆以向多个方向移动来操纵计算机屏幕上的光标或者其他图形对象。键盘是一个像打字机的设备,它使用户得以向计算机键入文本和命令。有些键盘有特殊功能键或集成指示设备,如轨迹球或者可以让用户通过手指的移动来移动屏幕上光标的触敏区。
光扫描仪利用光感应设备将图片或文本等形式的图像转换成计算机能够处理的电子信号。例如,一张照片可以扫入一台计算机,然后包括在该计算机创建的文本文件中。两种最常见的扫描仪类型是平板扫描仪和手持式扫描仪,前者类似一台办公室用复印机,后者用手动的方式从要处理的图像上扫过。麦克风是将声音转换成可被计算机存储、处理和回放的信号的设备。语音识别模块是将话语转换成计算机能够识别和处理的信息的设备。
调制解调器代表调制器―解调器,是将计算机与电话线连接、允许信息传送给或接收自另一台计算机的设备。每台发送或接收信息的计算机都必须与调制解调器相连接。一台计算机发送的信息由调制解调器转换成音频信号,然后通过电话线传送到接收端调制解调器,由其将信号转换成接收端计算机能够理解的信息。
三、输出硬件
输出硬件由将信息从计算机中央处理器传给计算机用户的外部设备构成。视频显示器或

屏幕将计算机生成的信息转换成可视信息。显示器一般有两种形式:阴极射线管视频屏幕和液晶显示视频屏幕。基于阴极射线管的屏幕或监视器看起来就像一台电视机。从中央处理器输出的信息,使用电子束显示出来,其过程是电子束扫描荧光屏,而荧光屏则发出光并产生图像。基于液晶显示器的屏幕将可视信息显示在比基于阴极射线管的视频监视器平且小的屏幕上。液晶显示器常常用于膝上型计算机。
打印机将计算机输出的文本和图像打印在纸上。点阵打印机使用细小的金属丝打击色带,从而形成字符。激光打印机使用光束在磁鼓上画图像,然后由磁鼓吸起称为墨粉的微小黑粒。墨粉熔凝到纸上,形成图像。喷墨打印机将小墨滴喷射到纸上,形成字符和图像。
四、存储硬件
存储硬件永久性地存储信息和程序,供计算机检索。两种主要的存储设备是磁盘驱动器和存储器。磁盘驱动器有几种类型:硬盘、软盘、磁光盘和光盘。硬盘驱动器将信息存储在盘中嵌入的磁性颗粒中。硬盘驱动器通常是计算机的固定部分,能存储大量的信息并对其进行非常快速的检索。软盘驱动器也将信息存储在磁性颗粒中,但这些颗粒是嵌入可移动的盘中的,而这些盘既可能是软的也可能是硬的。软盘比硬盘存储的信息少,检索该信息的速度也慢得多。磁光盘驱动器将信息存储在对激光和磁场均敏感的可移动盘上。它们可存储的信息通常与硬盘一样多,但检索速度稍微慢一点。由反射材料制成的光盘,其表面烧蚀出凹陷区。光盘驱动器(只读光盘存储器,CD-ROM)就是将信息存储于此。存储在只读光盘存储器上的信息不能擦除或用新信息盖写。它们能够存储和硬盘驱动器差不多的信息量,但信息检索速度比其慢。
存储器指存储信息供中央处理器快速检索的计算机芯片。随机存储器(RAM)用来存储操作计算机程序的信息和指令。通常,程序由磁盘驱动器的存储区调到随机存储器中。随机存储器也称作易失性存储器,因为当计算机的电源关闭时,计算机芯片中的信息随着丢失。只读存储器(ROM)包含必须永久性可供计算机操作使用的关键信息和软件,如从开机到关机一直指挥计算机运行的操作系统。只读存储器叫做非易失性存储器,因为当计算机的电源关闭时,存储芯片中的信息不会丢失。
有些设备有不止一种用途。例如,软盘也可用作输入设备,如果它们含有计算机用户要使用和处理的信息的话。此外,它们也可用作输出设备,如果用户想将计算结果存储在它们上面的话。
五、硬件的连接
要想运转,硬件需要物理连接,使部件之间能够通信和交互。总线提供了一种常见的互连系统。它由一组导线或电路组成,在计算机的内部组成部分之间协调和移动信息。计算机

总线由两条通道组成:一条由中央处理器用来给数据定位,叫做地址总线;另一条用来将该数据送往那个地址,叫做数据总线。总线可用两个特征来描述:一次可以处理的信息量——称为总线宽度,以及传送这些数据的速度。
串行连接是一根或一组导线,用于将信息从中央处理器传送到外部设备,如鼠标、键盘、调制解调器、扫描仪和一些类型的打印机。这种连接一次只能传送一段数据,因此比较慢。使用串行连接的好处在于它能提供远距离的有效连接。
并行连接使用多组导线来同时传送数个信息块。多数扫描仪和打印机使用这种连接方式。并行连接比串行连接速度快得多,但它仅限于中央处理器和外部设备之间不到3米(10英尺)的距离。

2A-1:计算机硬件名目





第三单元:计算机语言与编程
课文A:编程语言
一、引言
在计算机科学中,编程语言是用于编写可由计算机运行的一系列指令(计算机程序)的人工语言。与英语等自然语言相类似,编程语言有词汇、语法和句法。然而,自然语言不适合为计算机编程,因为它们会引起歧义,也就是说它们的词汇和语法结构可能被用多种方式进行解释。用于计算机编程的语言必须有简单的逻辑结构,它们的语法、拼写和标点符号规则必须精确。
编程语言在复杂性和通用程度上差异很大。一些编程语言是为了处理特定类型的计算问题或为了用于特定型号的计算机系统而编写的。例如,FORTRANCOBOL等编程语言是为解决某些普遍的编程问题类型而编写的——FORTRAN是为了科学领域的应用,而COBOL为了商业领域的应用。尽管这些语言旨在处理特定类型的计算机问题,但它们具有很高的可移植性,也就是说它们可以用来为多种类型的计算机编程。其他的语言,如机器语言,是为一种特定型号的计算机系统,甚至是一台特定的计算机,在某些研究领域使用而编写的。最常用的编程语言具有很高的可移植性,可以用于有效地解决不同类型的计算问题。像CPASCALBASIC这样的语言就属于这一范畴。
二、语言类型
编程语言可分为低级语言和高级语言。低级编程语言或机器语言,是编程语言中最基础的类型,可以被计算机直接理解。机器语言视计算机制造商与型号不同而有所区别。高级语言是必须首先翻译成机器语言计算机才能理解和处理的编程语言。CC++PASCALFORTRAN都是高级语言的例子。汇编语言是中级语言,非常接近于机器语言,没有其他高级语言所表现出的语言复杂程度,但仍然得翻译成机器语言。
1、机器语言

在机器语言中,指令被写成计算机能够直接理解的10(称作位)序列。一条机器语言指令一般告诉计算机4件事:(1)到计算机主存(随机存储器)的什么位置去找一两个数字或简单的数据片;(2)要执行的简单操作,如将两个数字相加;(3)在主存的什么位置存放该简单操作的结果;(4)到什么位置去找下一条要执行的指令。尽管所有的可执行程序最终都是以机器语言的形式被计算机读入的,但它们并非都是用机器语言编写的。直接用机器语言编程极端困难,因为指令是01的序列。一条典型的机器语言指令可能写成1001011001011,意思是把存储寄存器A的内容加到存储寄存器B的内容中。
2、高级语言
高级语言是相对复杂的一系列语句,它们使用来自人类语言的词汇和句法。高级语言比汇编语言或机器语言类似于正常的人类语言,因此用高级语言来编写复杂的程序比较容易。这些编程语言可以更快地开发更大和更复杂的程序。然而,高级语言必须由称为编译器的另外一种程序翻译成机器语言,计算机才能理解它们。因为这个原因,与用汇编语言编写的程序相比较,用高级语言编写的程序可能运行时间长,占用内存多。
3、汇编语言
计算机程序员通过使用汇编语言,使机器语言程序比较容易编写。在汇编语言中,每个语句大致对应于一条机器语言指令。汇编语言的语句是借助易于记忆的命令编写的。在一个典型的汇编语言语句中,把存储寄存器A的内容加到存储寄存器B的内容中这一命令,可能写ADDB,A。汇编语言与机器语言具有某些共同的特征。例如,对特定的位进行操控,用汇编语言和机器语言都是可行的。当尽量减少程序的运行时间很重要时,程序员就使用汇编语言,因为从汇编语言到机器语言的翻译相对简单。汇编语言也用于计算机的某个部分必须被直接控制的情况,如监视器上的单个点或者单个字符向打印机的流动。
三、高级语言的分类
高级语言通常分为面向过程语言、函数式语言、面向对象语言或逻辑语言。当今最常见的高级语言是面向过程语言。在这种语言中,执行某个完整功能的一个或多个相关的语句块组成一个程序模块或过程,而且被给予诸如“过程A”一类名称。如果在程序的其他地方需要同样的操作序列,可以使用一个简单的语句调回这个过程。实质上,一个过程就是一个小型程序。一个大型程序可以通过将执行不同任务的过程组合在一起而构成。过程语言使程序变得比较短,而且比较容易被计算机读取,但要求程序员将每个过程都设计得足够通用,能用于不同的情况。
函数式语言像对待数学函数一样对待过程,并允许像处理程序中的任何其他数据一样处理它们。这就使程序构造在更高、更严密的水平上得以实现。函数式语言也允许变量——在

程序运行过程中可以被用户指定和更改的数据符号——只被赋值一次。这样,通过减少对语句执行的确切顺序给予关注的必要性,就简化了编程,因为一个变量没有必要每次在一个程序语句中用到,都重新声明或重新说明。来自函数式语言的许多思想已经成为许多现代过程语言的关键部分。
面向对象语言是函数式语言的发展结果。在面向对象语言中,用来编写程序的代码和由程序处理的数据,组合成叫做对象的单元。对象进一步组合成类,而类则定义对象必须具有的属性。类的一个简单例子就是书这个类。这个类中的对象可能是小说和短篇小说。对象还有某些与其相关的功能,称为方法。计算机通过使用一个对象的某种方法来访问该对象。方法对对象中的数据执行某种操作,然后将值返回给计算机。对象的类也可进一步组合成层,而在层中一个类的对象可继承另一个类的方法。面向对象语言提供的这种结构,使该语言对于复杂的编程任务非常有用。
逻辑语言将逻辑用作其数学基础。逻辑程序由事实组和“如果―则”规则构成,“如果―则”规则具体说明一组事实如何可以从其他事实组中推断出来,例如:
如果X语句为真,则Y语句为假。
在这样一个程序的执行过程中,一条输入语句可以按照逻辑从程序中的其他语句推断出来。许多人工智能程序使用这种语言编写。
四、语言结构与成分
编程语言使用特定类型的语句或指令,来给程序提供功能结构。程序中的一个语句是表达一个简单想法的基本句子——它的目的是给计算机一条基本指令。语句定义所允许的数据类型、数据如何处理以及过程和函数的工作方式。程序员使用语句来操控编程语言的常见成分,如变量和宏(程序中的小程序段)
数据声明语句给称为变量的那些程序元素以名称和属性。变量在程序中可以赋予不同的值。变量可以具有的属性称为类型,它们包括:变量中能保存哪些可能的值;这些值中使用何种程度的数值精度;以及一个变量可以如何以有组织结构的方式——如以表或数组的形式——表示一组比较简单的值。在许多编程语言中,一个关键的数据类型是指针。指针变量本身没有值,而是含有计算机可以用来查找某个其他变量的信息——也就是说,它们指向另一个变量。
表达式是语句的一段,用于描述要对一些程序变量执行的一系列计算操作,如X+Y/Z其中XYZ为变量,加法和除法是计算操作。赋值语句给一个变量赋予得自某个表达式的值,而条件语句则指定要被测试、然后用于选择接下来应该执行的其他语句的表达式。
过程和函数语句将某些代码块定义为以后可在程序中回调的过程或函数。这些语句也定

义程序员可选的变量和参数种类,以及当表达式访问过程或函数时代码所返回的值的类型。许多编程语言也容许叫做宏的小翻译程序。宏将那些用程序员定义的语言结构编写的代码段翻译成编程语言可以理解的语句。
五、历史
编程语言几乎可以追溯到20世纪40年代数字计算机发明之时。随着商用计算机的推出,最早的汇编语言出现于20世纪50年代末。最早的过程语言是在20世纪50年代末到60代初开发的:约翰•巴克斯创造了FORTRAN语言,接着格雷斯•霍珀创造了COBOL语言。第一种函数式语言是LISP,由约翰•麦卡锡于20世纪50年代末编写。所有这3种语言今天仍在广泛使用,但经历过大量更新。
20世纪60年代末,出现了最早的面向对象语言,如SIMULA语言。逻辑语言在2070年代中期随着PROLOG语言的推出而变得广为人知,PROLOG语言是一种用于编写人工智能软件的语言。20世纪70年代,过程语言继续发展,出现了ALGOLBASICPASCALCAda等语言。SMALLTALK语言是一种具有高度影响力的面向对象语言,它导致了面向对象语言与过程语言在C++和更近期的JAVA语言中的结合。尽管纯粹逻辑语言的流行程度已经下降,但其以关系语言形式用于现代数据库的变种却变得非常重要,如结构化查询语言。


第四单元:软件开发
课文A:计算机程序
一、引言
计算机程序是指挥计算机执行某种处理功能或功能组合的一套指令。要使指令得到执行,计算机必须执行程序,也就是说,计算机要读取程序,然后按准确的顺序实施程序中编码的步骤,直至程序结束。一个程序可多次执行,而且,取决于用户提供给计算机的选项和数据,每次执行可能产生不同的结果。
程序分为两大类:应用程序和操作系统。应用程序直接为用户执行某种功能,如处理文字或玩游戏。操作系统管理计算机以及与之相连的各种资源和设备,如随机存储器、硬盘驱动器、监视器、键盘、打印机和调制解调器,以便其他程序可以使用它们。

二、程序开发
软件设计者使用经常被称为实用程序或开发程序的专门应用程序来创建新程序。程序员使用称为文本编辑程序的另一种程序,来以称为编程语言的特殊符号编写新程序。程序员使用文本编辑程序创建一个文本文件,这个文本文件是一个有序指令表,也称为程序源文件。构成程序源文件的单个指令称为源代码。在这个时候,一种专门的应用程序将源代码翻译成机器语言或目标代码——操作系统将认作真程序并能够执行的一种格式。
将源代码翻译成目标代码的应用程序有3种:编译程序、解释程序和汇编程序。这3应用程序有不同的操作方式,对不同类型的编程语言进行操作,但是,它们都要达到将编程语言翻译成机器语言的相同目的。
编译程序将使用FORTRANCPascal等高级编程语言编写的文本文件一次性从源代码翻译成目标代码。这不同于BASIC等解释执行的语言所采取的方式。在解释执行的语言中,程序是随着每条指令的执行而逐个语句地翻译成目标代码的。解释执行的语言的优点是,它们可以立即开始执行程序,而不需要等到所有的源代码都得到编译。对程序的更改也可以相当快地进行,无需等到程序重新编译完。解释执行的语言的缺点是,它们执行起来慢,因为每次运行程序,都必须对整个程序一次一条指令地翻译。另一方面,编译执行的语言只编译一次,因此计算机执行起来可比解释执行的语言快得多。由于这个原因,编译执行的语言比解释执行的语言常用,而且,在专业和科学领域几乎总是应用编译执行的语言。
另一种翻译程序是汇编程序,它用于以汇编语言编写的程序或程序组成部分。汇编语言也是一种编程语言,但它远比其他类型的高级语言类似于机器语言。在汇编语言中,一个语句通常可以翻译成机器语言的一条指令。今天,汇编语言很少用来编写整个程序,而是最常用于程序员需要直接控制计算机某方面功能的情况下。
程序经常编写为一组较小的程序片,每片表示整个应用程序的某个方面。每片独立编译之后,一种称为连接程序的程序将所有翻译好的程序片组合成一个可执行程序。
程序罕有第一次能够正确运行的,所以一种称为调试程序的程序常被用来帮助查找称为程序错误的问题。调试程序通常在运行的程序中检测到一个事件,并将程序员指引到该事件在程序代码中的起源。
Java等最近出现的编程系统,采取多种方法相结合的方式创建和执行程序。编译程序取Java源程序,并将其翻译成中间形式。这样的中间程序随后通过因特网传送给计算机,而计算机里的解释程序接着将中间形式作为应用程序来执行。
三、程序元素
多数程序仅由少数几种步骤构成,这些步骤在整个程序中在不同的上下文和以不同的组

合方式多次重复。最常见的步骤执行某种计算,然后按程序员指定的顺序,进入程序的下一个步骤。
程序经常需要多次重复不长的一系列步骤,例如:在浏览游戏得分表并从中找出最高得分时。这种重复的代码序列称为循环。
计算机具有的使其如此有用的能力之一,是它们能够作出条件判定,并根据正在处理的数据的值执行不同的指令。if-then-else(如果-则-否则)语句执行这种功能,采用的方法是测试某个数据片,然后根据结果从两个指令序列中选择一个。这些选择对象中的指令之一可能是一个goto语句,用以指引计算机从程序的另一个部分选择下一条指令。例如,一个程序可能比较两个数,并视比较结果而分支到程序的另一个部分:
Ifxisgreaterthanythen
gotoinstruction#10elsecontinue
程序经常不止一次地使用特定的一系列步骤。这样的一系列步骤可以组合成一个子例程,而子例程根据需要可在主程序的不同部分进行调用或访问。每次调用一个子例程,计算机都会记住该调用发生时自己在程序中所处的位置,以便在运行完这个子例程后还能够回到那里。在每次调用之前,程序可以指定子例程使用不同的数据,从而允许一个通用性很强的代码片只编写一次,但以多种方式使用。
大多数程序使用几种不同的子例程。其中最常用的是函数、过程、库、系统例程以及设备驱动程序。函数是一种短的子例程,用来计算某个值,如角的计算,而该值计算机仅用一条基本指令无法计算。过程执行的是比较复杂的功能,如给一组名字排序。库是为多种不同程序使用而编写的子例程。系统例程类似于库程序,但实际上用于操作系统。它们为应用程序提供某种服务,如打印一行文字。设备驱动程序是一种系统例程,它们加到操作系统中,以使计算机能够与扫描仪、调制解调器或打印机等新设备通信。设备驱动程序常常具有可以作为应用程序直接执行的特征。这使用户得以直接控制设备。这一点很有用,例如:在彩色打印机更换墨盒后需要重新调整以达到最佳打印质量的情况下。
四、程序功能
现代计算机通常将程序存储在计算机可以随机访问的某种形式的磁性存储介质上,如固定放在计算机内的硬盘或者便携式软盘。这些磁盘上称为目录的额外信息,指明盘上各种程序的名称、它们写入盘中的时间以及它们在磁盘介质上的起始位置。用户命令计算机执行一个特定应用程序时,操作系统就浏览这些目录,找到程序,并将一个副本读入随机存储器。

操作系统然后命令中央处理器开始执行程序开头的指令。程序开头的指令为计算机处理信息作好准备,其方法是在随机存储器中找到空闲存储单元来容纳工作数据,从盘中检索用户指出的标准选项和默认值的副本,并在监视器上绘制初始显示。
应用程序通过调用系统例程来对用户输入的任何信息都要求一个副本。操作系统将如此输入的任何数据都转换成标准的内部形式。应用程序然后使用该信息决定下一步干什么,如执行某项期望的处理功能——像重新格式化一页文本或从盘上的另一个文件获取一些额外信息。两种情况无论是哪一种,都要调用其他系统例程,以事实上完成结果的显示或对盘上文件的访问。
运行结束或接到退出的提示时,应用程序进行进一步的系统调用,以确保所有需要保存的数据已写回磁盘。然后,应用程序向操作系统进行最后一次系统调用,指明它已运行结束。操作系统接下来释放随机存储器和该应用程序使用的任何设备,并等待用户的命令,以开始运行另一个程序。
五、历史
人们以程序的形式存储指令序列已经有几个世纪了。18世纪的音乐盒和19世纪末与20世纪初的自动钢琴,就可以播放音乐程序。这些程序以一系列金属针或纸孔的形式存储,每一行(针或孔)表示何时演奏一个音符,而针或孔则表明此时演奏什么音符。19世纪初,随着法国发明家约瑟夫―玛丽·雅卡尔发明由穿孔卡片控制的织机,对物理设备更精巧的控制变得常见了。在编织特定图案的过程中,织机的各个部分得进行机械定位。为了使这个过程自动化,雅卡尔使用一张纸质卡片代表织机的一个定位,用卡片上的孔来指示应该执行织机的哪种操作。整条花毯的编织可编码到一叠这样的卡片上,同样的一叠卡片每次使用都会编出相同的花毯图案。在开发和使用的程序中,有的由24,000多张卡片构成。
世界上第一台可编程的机器是由英国数学家和发明家查尔斯•巴比奇设计的,但他从未完全制造成该机器。这台叫做分析机的机器,使用和雅卡尔织机类似的穿孔卡片,来选择每个步骤应该执行的具体算术运算。插入不同的卡片组,就会改变机器执行的运算。这种机器几乎能在现代计算机中找到所有的对应物,但它是机械化的,而非电气化的。分析机的制造从未完成,因为制造它所需要的技术当时不存在。
供分析机使用的最早卡片组式程序是由诗人拜伦勋爵的女儿、英国数学家奥古斯塔•埃达•拜伦开发的。由于这个原因,她被公认为世界上第一位程序员。
现代的内部存储计算机程序概念是由美籍匈牙利数学家约翰•冯•诺伊曼于1945年首先提出来的。冯•诺伊曼的想法是,使用计算机的存储器既存储数据又存储程序。这样,程序可被视为数据,可像数据一样被其他程序处理。这一想法极大地简化了在计算机中存储与执

行程序的任务。
六、未来
由于计算机使用的增加,自20世纪50年代以来,计算机科学领域发展迅猛。作为对用户需求和技术进步的反应,计算机程序在这一时期经历了许多变化。计算领域的新思想,如并行计算、分布式计算和人工智能,从根本上改变了一度决定程序形式与功能的传统概念。
致力于并行计算领域研究的计算机科学家们,推出了许多新的程序模型。在并行计算中,多个中央处理器同时合作处理同一个问题。一个问题的组成部分由不同的处理器同时处理,这样就加快了问题的解决速度。由于并行处理计算机的极端复杂性,以及使其尽可能有效地运行所包含的困难,为这种系统设计程序的科学家和工程师面临着许多挑战。
一种称为分布式计算的并行计算,使用多个互连计算机的中央处理器来解决问题。用来在分布式计算应用环境下处理信息的计算机,常常通过因特网连接。因特网的应用正在成为分布式计算的一种特别有用的形式,尤其是在使用Java等编程语言的情况下。在这种应用中,用户登录到一个站点,并下载一个Java程序到其计算机上。该Java程序运行时,就会与其所来自的站点上的其他程序通信,也可以与不同计算机或站点上运行的其他程序通信。
人工智能研究已经带来其他几种新的编程风格。例如,逻辑程序不是由供计算机盲目执行的单个指令构成,而是由成套的规则组成:如果x发生,则执行y。一种称为推理机的特殊程序,在向其提出一个新问题时,就使用这些规则来“推理”出一个结论。逻辑程序的用途包括自动监控复杂系统和证明数学定理。
一种全然不同的计算方法称为神经网络,在这种计算中没有传统意义上的程序。神经网络是一组高度互连的简单处理单元,旨在模拟大脑。神经网络不是像传统计算机那样通过程序来指挥信息处理,而是依靠其处理单元的连接方式来处理信息。给神经网络编程的实现方法是,给其提供输入与输出数据的已知模式,并调整处理单元之间各种互连的相对重要性,直到完成所期望的模式匹配。神经网络通常在传统计算机上模拟,但是,不同于传统的计算机程序,神经网络具有经验学习的能力。



第五单元:软件过程
课文A:软件过程模型
一、引言
一个软件过程是生产出软件产品的一系列活动。这些活动可能涉及使用一种像JavaC这样的标准编程语言从零开始开发软件。然而,开发新软件越来越多地使用的方法是,扩展和修改现有系统,以及配置和集成现成软件或系统组件。
一个软件过程模型是对一个软件过程的一种抽象表示。每个过程模型都从一个特定角度表示一个过程,因此都只提供有关那个过程的部分信息。本文介绍几种非常通用的过程模型(有时称为过程范例,并从体系结构的角度描述它们。也就是说,我们看到的是过程的框架,而非具体活动的细节。
这些类属模型不是对软件过程的规定性描述。确切点说,它们是过程的抽象,可用于解释软件开发的不同方法。你可以将其视为可扩展和调整以创建更为具体软件工程过程的过程框架。
这里论述的过程模型是瀑布模型、演化开发和基于组件的软件工程。这3种类属过程模型在当前的软件工程实践中广泛使用。它们不是互不相容,而是经常一起使用,尤其是在大型系统开发的情况下。一个较大型系统内的子系统可使用不同的方法开发。因此,尽管分别讨论这些模型比较方便,但应该明白,实际上它们经常结合使用。
二、瀑布模型
最早公布的软件开发过程模型源自比较通用的系统工程过程。这种模型如图5A-1所示。由于从一个阶段到另一个阶段的瀑布状级联,该模型称为瀑布模型或软件生命周期。该模型的主要阶段映射基本的开发活动:
1需求分析与定义。系统的服务、约束和目标要经过与系统用户的磋商加以确定。然
后,它们得到详细定义并作为系统规格说明。
2系统与软件设计。系统设计过程将需求划分成需硬件或软件系统实现的部分。该过
程确立一个总的系统体系结构。软件设计涉及到确定和描述基本的软件系统抽象及其相互关系。

需求定义
系统与软件设计
实现与单元测试
集成与系统测试
运行与维护
5A-1:软件生命周期

3实现与单元测试。在这个阶段,软件设计被实现为一组程序或程序单元。单元测试
涉及到验证每个单元是否符合其规格说明。
4集成与系统测试。单个的程序单元或程序进行集成并作为一个完整系统进行测试,
以确保软件需求已得到满足。测试之后,软件系统交付客户。
5运行与维护。通常(但并非必定),这是软件生命周期最长的阶段。系统经过安装
投入实际使用。维护涉及到纠正在软件生命周期前面阶段没有发现的错误,改进系统单元的实现,并随着新需求的发现增强系统的服务。
原则上,每个阶段的结果都要形成一份或多份经过批准的文件。前一个阶段未结束,下一个阶段不应开始。实际上,这些阶段重叠并互相馈送信息。在设计期间,需求方面存在的问题得到识别;在编码期间,设计问题被发现,等等。软件过程并非一个简单的线性模型,而是涉及到一系列迭代的开发活动。
由于编制和批准文件的成本,迭代需要大笔开销,而且需要做大量重复工作。因此,经过少数迭代之后,通常应冻结开发的某些部分,如规格说明,并继续进行后面的开发阶段。存在的问题留待以后解决,置之不顾,或者通过编程绕过去。这样仓促冻结需求,可能意味着系统将难以满足用户的要求。由于使用实现技巧规避了设计问题,这也可能导致不良的系统结构。
在最后的生命周期阶段(运行与维护),软件投入使用。最初软件需求中存在的错误与疏漏被发现,程序与设计错误浮现,而且新的功能需要得到确定。因此,为保持有用性,系统必须演变。进行有关更改(软件维护)可能涉及到重复以前的过程阶段。
瀑布模型的优点在于每个阶段都编制文件,而且它与其他的工程过程模型相符合。其主

要问题在于将项目僵硬地划分成不同的阶段。在过程的一个早期阶段,必须定下决心,从而使得应对客户需求变化很困难。
因此,只有在需求得到很好理解、在系统开发期间不可能发生根本性变化的情况下,才应使用瀑布模型。然而,瀑布模型体现了在其他工程项目中所使用的过程模型类型。所以,基于这种方法的软件过程仍然用于软件开发,特别是当有关软件项目是一个较大系统工程项目的一部分时。
三、演化开发
演化开发基于这样的思想:开发一个初始的实现,让其接受用户评论,并让其经过多个版本的改进,一直到开发出能够满足需要的系统(图5A-2)。规格说明、开发及验证活动不是分开进行,而是交叉进行,各项活动之间有快速的信息反馈。
演化开发有两个基本类型:
1探索式开发。在这种类型中,过程的目标是与客户协作探索其需求,并交付一个最
终的系统。开发从业已理解的系统部分开始。随着增添客户提出的新特征,系统不断演变。
并行活动
规格说明
初始版本
描述
开发
中间
版本
验证

最终版本
5A-2:演化开发

2抛弃式原型开发。在这种类型中,演化开发过程的目标是理解客户的需求,从而为
系统开发比较好的需求定义。原型集中试验没有很好理解的客户需求。
在生产满足客户眼下需要的系统时,软件开发的演化方法常常比瀑布方法有效。基于演化方法的软件过程的优点是,规格说明可以渐进地开发。随着用户增进对其问题的理解,这种理解可以反映在软件系统中。然而,从工程和管理的角度来看,演化方法存在两个问题:
1过程缺乏可视性。管理员需要定期交付的产品来衡量进度。在快速开发系统的情况

下,编制反映每个系统版本的文件不合算。
2系统常常缺乏良好的结构。不断的更改往往会破坏软件的结构。吸收软件更改变得
越来越困难,越来越成本高昂。
对于中小型系统(上至50万行代码),演化方法或许是最佳的开发方法。对于不同小组开发系统不同部分的大型、复杂、长寿命系统,演化开发存在的问题尤为严重。使用这种方法难以建立一个稳定的系统体系结构,这使得集成各小组的贡献变得很难。
对于大型系统,建议使用一种混合过程,将瀑布模型和演化开发模型的最佳特征结合起来。这可能涉及到使用演化方法开发一个抛弃式原型,以解决系统规格说明中存在的不确定性。然后,可使用一种结构化程度比较高的方法重新实现系统。得到很好理解的系统部分可使用基于瀑布模型的过程进行规格说明和开发。事先难以进行规格说明的其他系统部分,如用户界面,无例外地应使用探索式编程方法来开发。
四、基于组件的软件工程
大多数软件项目都存在某种程度的软件复用。通常,这是非正式发生的。参加项目的人知道有现成的设计或编码类似于他们所需的设计或编码。他们寻找这些设计或编码,根据需要对其进行修改,并将其吸收进他们的系统。对于使用演化方法进行快速系统开发,复用常常是必要的。
这种非正式复用的发生是不考虑所使用的开发过程的。然而,在过去几年中,出现了一种软件开发方法,这种方法使用得越来越多,它依靠复用,被称为基于组件的软件工程。
需求
规格说明
组件分析
需求修改
带复用的系统设计
开发与集成系统验证
5A-3:基于组件的软件工程

这种面向复用的方法依靠大量的可复用软件组件,以及用于这些组件的某种集成框架。有时,这些组件本身就是可提供文本格式化或数值计算等特定功能的系统(商用现成系统)基于组件的软件工程的类属过程模型如图5A-3所示。
就最初的需求规格说明阶段和验证阶段而言,面向复用过程与其他过程相类似,但它的中间阶段与其他过程不同。这些阶段是:
1组件分析。在有需求规格说明的情况下,搜索实现该规格的组件。通常,不存在完

全相符的组件。可能被使用的组件只在某种程度上提供所要求的功能。
2需求修改。在这个阶段,使用已经发现的组件的相关信息分析需求,然后修改需求
以反映可用的组件。在无法进行修改的情况下,可能重新进入组件分析活动,以搜索可供选择的解决方案。
3带复用的系统设计。在这个阶段,设计系统框架或复用现有的框架。设计员考虑到
复用的组件,并组织安排框架使其适应复用的要求。如果得不到可复用的组件,可能得设计一些新软件。
4开发与集成。无法外部获得的软件要进行开发,组件和商用现成系统要集成以创建
新的系统。系统集成在这种模型中可能是开发过程的一部分,而非一项分开的活动。基于组件的软件工程具有减少需要开发的软件量并因此降低成本与风险的明显优点。它通常也可更快地交付软件。然而,需求方面的妥协不可避免,这可能导致系统不能满足用户的真正需要。此外,可复用组件的新版本不受其使用机构的控制,因此丧失了对系统演变的某些控制。


第六单元:数据库
课文A:数据库概览
一、引言
数据存储传统上是使用单独的没有联系的文件,这些文件有时称为平面文件。在过去,一个机构中的每个应用程序都使用自己的文件。例如,在一个大学中,每个部门都可能有其自己的文件集:档案办公室保存着关于学生信息和学生成绩的文件;经济资助办公室保存着其自己的关于需要经济资助以继续学业的学生的文件;调度办公室保存着教授的姓名和他们所教的课程;工薪发放部门保存着其自己的关于全体教职员工(包括教授)的文件,等等。然而,所有这些平面文件今天都可结合成一个实体——供整个大学使用的数据库。
虽然难以给出一个普遍接受的数据库定义,但我们使用下面常见的定义:一个数据库是被一个机构内的应用程序所使用的具有逻辑相干性的相关数据的集合。
二、数据库管理系统

数据库管理系统定义、创建和维护数据库。数据库管理系统也允许对数据库中的数据进行受控的访问。一个数据库管理系统由5个组成部分构成:硬件、软件、数据、用户和规程。
1、硬件
硬件是指允许访问数据的计算机物理系统。例如,终端、硬盘、主机和工作站被认为是数据库管理系统的硬件组成部分。
2、软件
软件是指允许用户访问、维护和更新数据的实际程序。另外,软件还控制着哪个用户可以对数据库中的哪部分数据进行访问。
3、数据
数据库中的数据存储在物理存储设备上。在一个数据库中,数据是独立于对其进行访问的软件的一个实体。这种独立使一个机构可以在不必更改物理数据及其存储方式的情况下更改软件。如果一个机构决定使用一个数据库管理系统,那么该机构所需要的所有信息都应作为一个实体保存在一起,可由数据库管理系统中的软件访问。
4、用户
在数据库管理系统中,用户这个术语有着广泛的定义。我们可以将用户分为两类:终端用户和应用程序。
终端用户是指可直接访问数据库以获取信息的人。终端用户又分为两类:数据库管理员和普通用户。数据库管理员拥有最高程度的特权,可以控制其他用户及其对数据库管理系统的访问,可以将其某些特权授予其他人并保留随时收回这些特权的能力。另一方面,普通用户只能使用数据库的一部分,只能进行有限的访问。
数据库中数据的其他用户就是应用程序。应用程序需要访问和处理数据。例如,工薪发放应用程序需要在月底访问数据库中的部分数据,来开支付工薪的支票。
5、规程
数据库管理系统的最后一个组成部分就是应该明确定义并为数据库用户所遵循的一套规程或规则。
三、数据库体系结构
美国国家标准协会标准计划与需求委员会(ANSI/SPARC)为数据库管理系统确立了一个包含3个层次的体系结构:内层、概念层和外层(图6A-1

用户视图用户视图用户视图
外层
概念
内层
硬件

6A-1:数据库体系结构
1、内层
内层决定数据在存储设备上的实际存储位置。该层涉及低级访问方法,以及字节如何传向和传自存储设备。换句话说,内层直接与硬件交互。
2、概念层
概念层定义数据的逻辑视图。数据模型在该层定义,数据库管理系统的主要功能——如查询——也在该层。数据库管理系统把数据的内部视图转化为用户需要看到的外部视图。概念层是中介层,它使得用户不必与内层打交道。
3、外层
外层直接与用户(终端用户或应用程序)交互。它将来自概念层的数据转化为用户所熟悉的格式和视图。
四、数据库模型
数据库模型定义数据的逻辑设计。它也描述数据的不同部分之间的关系。在数据库设计史上,使用过3种数据库模型:层次模型、网络模型和关系模型。
1、层次数据库模型
在层次模型中,数据被组织成一棵倒置的树。每个实体只有一个父,但可有数个子。在分层结构的顶部,有一个实体,称为根。图6A-2给出了一个层次模型例子的逻辑视图。层

次模型现在已经过时。
2、网络数据库模型
在网络模型中,实体以图的形式来组织,图中的有些实体可通过多条路径访问(图6A-3网络模型没有分层结构。这种模型现在也已经过时。
DEPARTMENTNo.
Name
COURSES
No.
Name
Unit
No.
Name
STUDENTSUnit
PROFESSORS
ID
Name

6A-2:一个表示大学的层次模型例子
DEPARTMENT
No.
Name
ID
Name
STUDENTSCourses
COURSES
No.
Name
Unit
ID
PROFESSORSName

6A-3:一个表示大学的网络模型例子
3、关系数据库模型
在关系模型中,数据被组织成称为关系的二维表。关系模型没有分层或网络结构强加于数据。然而,表或关系是相互关联的(图6A-4。关系数据库管理系统组织数据,使其外部视图呈现为关系或表的集合。这并不意味着数据以表的形式存储:数据的物理存储与数据的逻辑组织方式毫无关系。图6A-5给出了一个关系的例子。关系数据库管理系统中的关系具有以下特征:

名称。关系数据库中的每个关系都应具有一个名称,而这个名称在所有关系中是独一无二的。
DEPARTMENTNo.
Name
PROFESSORSID
Name
Dep-No
Courses

COURSES
No.
Name
Unit
STUDENTSID
Name


6A-4:一个表示大学的关系模型例子
Attributes
No.CIS15CIS17CIS19CIS51COURSES
Course-NameIntrotoCIntrotoJavaUNIXNetworking
Unit5545
Tuples

6A-5:一个关系例子
属性。关系中的每一列都称为一个属性。在图6A-5的表中,属性是列的标题。每个属性赋予存储在其下面的数据以意义。表中的每一列都必须具有一个在关系的范围内独一无二的名称。一个关系的属性总数称为该关系的度。例如,在图6A-5中,关系的度为3。注意属性名并不存储在数据库中:概念层使用属性给每一列赋予一定的意义。

元组。关系中的每一行称为一个元组。元组定义一组属性值。一个关系中的总行数称为该关系的基数。注意一个关系的基数随着元组的增加或删除而改变。这使数据库具有了动态性。
关系模型是今天使用的常见模型之一。源自关系模型的另外两种常见模型是分布式模型和面向对象模型。
4、分布式数据库模型
分布式数据库模型并非一种新模型,而是基于关系模型的。但是,数据存储在通过因特网或专用广域网通信的数台计算机上。每台计算机(或站点)保持数据库的一部分或整个数据库。换句话说,数据或者是分段存储的——每个站点存储一段,或者被每个站点复制一份。
在分段型分布式数据库中,数据是本地化的,本地使用的数据存储在相应的站点上。然而,这并不意味着一个站点不能访问存储在另一个站点上的数据,但访问大多是本地性的,偶尔是全局性的。虽然每个站点对其本地数据具有完全的控制,但也存在通过因特网或广域网的全局控制。
例如,一家制药公司可能在许多国家拥有多个站点。每个站点有一个数据库,存储着自己雇员的信息。但是,中心人事部门可以控制所有的数据库。
在复制型分布式数据库中,每个站点都有其他站点的一个完全副本。对一个站点所存储的数据进行的任何修改,都要在其他每个站点上精确地重复进行。拥有这种数据库是为了安全。如果一个站点上的系统发生故障,该站点的用户可以访问另一个站点上的数据。
5、面向对象数据库模型
关系数据库具有一个特定的数据视图,该视图基于数据库元组与属性的性质。关系数据库中最小的数据单位是一个元组与一个属性的交集。然而,有些应用程序需要将数据视为其他形式,如看作一种结构,像由字段构成的记录。
面向对象数据库试图保留关系模型的优点,同时允许应用程序访问结构化数据。在面向对象数据库中,对象及其之间的关系得到定义。此外,每个对象可以具有可表示为字段的属性。
例如,在一个机构中,可以为雇员、部门和客户定义对象类型。雇员类可以定义一个雇员对象的属性(名、姓、社会保险号码、薪水等等),以及可以如何访问它们。部门对象可以定义部门的属性,以及可以如何访问它们。此外,数据库还可以在一个雇员对象与一个部门对象之间创建一种关系,以表示该雇员在该部门工作。
五、数据库设计
任何数据库的设计都是一项冗长、复杂的任务,只能通过一个逐步的过程来完成。第一

步通常涉及对数据库潜在用户的大量访谈,以收集需要存储的信息和每个部门的访问需求。第二步是建立一个实体关系模型,该模型定义必须为之保存一些信息的实体、这些实体的属性以及这些实体之间的关系。
设计的下一步基于所要使用的数据库的类型。在关系数据库中,下一步是建立基于实体关系模型的关系,并规范化这些关系。规范化是一个过程,通过该过程一组特定的关系转化成一组具有更坚固结构的新关系。为了达到以下目的,需要规范化:允许数据库中的任何关系得到表示,允许像SQL(结构化查询语言)这样的语言使用由原子操作组成的功能强大的检索操作,消除插入、删除和更新操作中的异常,以及减少添加新的数据类型时重构数据库的必要性。


第七单元:计算机网络
课文A:网络基本原理

在不同计算机之间共享信息和资源的需要,导致了相互连接的计算机系统的产生。这种相互连接的计算机系统被称为网络。在网络中,计算机连接在一起,从而数据可以从一台计算机传输到另一台计算机。在网络中,计算机用户可以交换信息,并共享分散在整个网络系统的资源,如打印能力、软件包以及数据存储设备。支持这类应用所需的基本软件,已经从简单的实用软件包发展成一个不断扩展的网络软件系统,该系统提供了一个复杂的网络范围的基础结构。从某种意义上说,网络软件正在演变成一个网络范围的操作系统。
一、网络分类
计算机网络常常划分为局域网、城域网和广域网。局域网通常由一幢建筑物或一个建筑群中的若干计算机组成。例如,大学校园里的计算机或制造工厂中的计算机可以用局域网连接。城域网属于中型网络,如一个覆盖某一社区的网络。广域网连接地理范围更广的计算机,这些计算机或许在相邻的城市,或许在地球相反的两面。
网络分类的另一种方式是根据网络的内部运行是基于无专利权保护的设计还是基于特定实体(如个人或公司)所拥有和控制的革新。前一种类型的网络称为开放式网络,后一种类型的网络称为封闭式网络,有时也称为专有网络。

因特网属于开放式系统。尤其是,整个因特网的通信是由一组称为TCP/IP协议组的开放标准来控制的。任何人都可以自由地使用这些标准,而不需要付费或签署许可协议。相反,Novell股份有限公司这样的公司可能选择为其开发的系统保留所有权,通过出售或出租这些产品获得收入。基于这类系统的网络属于封闭式网络的例子。
还有一种网络分类方法,它基于网络的拓扑结构,即计算机相互连接的模式。总线拓扑结构、环形拓扑结构和星形拓扑结构是3种流行的拓扑结构。其中,星形网络或许是最古老的,这种网络由一台大型中央计算机服务许多用户的范式演变而来。随着这些用户所使用的简单终端本身发展成小型计算机,星形网络也就出现了。需要强调的一点是,在一个网络中,计算机之间的连接并不一定是物理连接。使用无线广播技术的无线网络正在变得相当常见。
二、协议
为了网络可靠运行,确立进行网络活动所遵循的规则很重要。这类规则称为协议。通过开发和采用协议标准,不同厂商制造的网络应用产品能够相互兼容。因此,在联网技术的开发中,协议标准的开发是一个必不可少的过程。
作为对协议概念的介绍,让我们考虑在一个网络的计算机之间协调报文传输的问题。如果没有控制这种通信的规则,所有的计算机就可能坚持同时传输报文,或者在需要传递报文时而未能传递。
解决这个问题的一种方法是令牌环协议,该协议由IBM公司20世纪70年代开发,今天在基于环形拓扑结构的网络中依然是一种很流行的协议。在这个协议里,网络中的所有计算机都只沿一个共同的方向传输报文(图7A-1。也就是说,通过网络发送的所有报文都沿一个相同的方向绕环形网络移动,依次经由各个计算机转发。一份报文到达目的地后,目的地的计算机保留一个副本并绕环形网络转发一个副本。当转发的副本到达始发计算机时,该计算机知道报文一定到达了目的地,并将其移出环形网络。当然,这种系统的运行依靠计算机之间的合作。如果一台计算机坚持不断地传输自己的报文,而不转发其他计算机的报文,那么这个系统就什么也执行不了。

报文都只沿一个方向移动。

7A-1:通过一个环形网络通信
为了解决这个问题,在环形网络中传递一个称为令牌的独特位模式。拥有令牌的计算机得到权利传输自己的报文,而没有令牌的计算机则只允许转发报文。一般来说,每台计算机只是像传递报文那样传递令牌。然而,如果收到令牌的计算机有自己的报文需要通过网络传输,它就会保存令牌,同时传输一份报文。这份报文在环形网络中环绕一周后,该计算机就将令牌传递给环形网络中的下一台计算机。同样,当下一台计算机收到令牌时,它既可以立即传递令牌,也可以先传输自己的新报文,然后将令牌传递给下一台计算机。这样,随着令牌绕着环形网络传递,网络中的每台计算机都有同等的机会传输自己的报文。

7A-2:通过一个总线网络通信
协调报文传输的另外一种协议用于基于以太网协议集的总线拓扑网络。在以太网系统中,传输报文的权利由称为带有冲突检测的载波侦听多路访问(CSMA/CD)的协议控制。

该协议规定,每一份报文必须向总线上的所有计算机广播(图7A-2。每台计算机监控所有的报文,但只保留发送给自己的那些报文。一台计算机要等到总线静默时才可以传输报文。这时,它开始传输报文,同时继续监控总线。如果另一台计算机也开始传输报文,这两台计算机都会检测到冲突,并暂停短暂而随机的一段时间,然后再尝试传输。结果是形成一种体制,这种体制类似于一小群人对话时所采用的。如果两个人同时开始说话,他们都会停下来。不同的是,人们随后可能进行这样的对话:“抱歉,您想说什么?”“不,不,您先说。”而根据CSMA/CD协议,每台计算机只是重新进行尝试。
三、进程间通信
在一个网络内不同计算机上(甚至使用分时方法在同一台计算机上)执行的各种活动(或进程)必须经常互相通信,以便协调行动,并完成指定的任务。这种进程之间的通信称为进程间通信。
进程间通信使用的一种流行规约是客户机/服务器模型。这种模型将进程扮演的基本角色或定义为向其他进程提出请求的客户机,或定义为满足客户机所提请求的服务器。
客户机/服务器模型的一种早期应用,出现在将一组办公室里的所有计算机都连接起来的网络中。在这种应用中,一台高质量的打印机被连接到网络上,供其中的所有计算机使用。在这种情况下,打印机扮演了服务器(常称为打印服务器)的角色,而其他计算机则通过程序设计而扮演了向打印服务器发送打印请求的客户机角色。
客户机/服务器模型的另外一种早期应用是为了降低磁盘存储费用,同时消除复制记录的需要。在这种情况下,网络中的某一台计算机配备了大容量存储系统(通常是磁盘),存储一个机构的所有记录。这样,网络中的其他计算机可根据需要请求访问这些记录。因此,实际含有记录的计算机扮演了服务器(称为文件服务器)的角色,而其他计算机则扮演了请求访问文件服务器上存储的文件的客户机角色。
今天,客户机/服务器模型在网络中广泛应用。不过,客户机/服务器模型并非进程间通信的唯一方式。另外一种模型是对等(peer-to-peer,常缩写为P2P)模型,其特性与客户机/服务器模型的特性形成鲜明对照。客户机/服务器模型涉及一个进程(服务器)与许多其他进程(客户机)通信,而对等模型则涉及两个进程进行对等通信(图7A-3。而且,服务器必须持续运行,以准备好随时服务于客户机,而对等模型则通常涉及两个进程临时运行。例如,对等模型的应用包括两个人通过因特网进行书面对话的即时通信,以及人们参与下国际象棋或西洋跳棋等游戏的情况。

客户机客户机
服务器
客户机客户机
a一台服务器必须准备随时服务于多台客户机。
同级设备
同级设备
b同级设备一对一地进行对等通信。

7A-3:客户机/服务器模型与对等模型的比较
对等模型还是通过因特网共享音乐录音、影片等文件的一种流行方法(其合法性有时值得怀疑)。在这种情况下,寻求特定项目的个人在因特网上发布其需求,而拥有他所感兴趣项目的人则会与他取得联系。然后,双方之间就可以使用对等模型传输这些项目。这与应用客户机/服务器模型的较早期方法截然不同,这些方法要建立一个“分发中心”(服务器)供客户机下载音乐录音(或者至少找到可以提供这些项目的地方)。然而,中心服务器证明是音乐行业可以运用版权法的一个焦点对象,结果最终导致这些音乐分发中心的解体。与此形成对照的是,对等模型缺乏一个操作中心,这使得运用版权法的努力难度增加。
你或许经常读到或听到“对等网络”这个说法,这是当技术术语被非科技界采用时可能发生术语误用的一个例子。“对等”指的是两个进程通过网络(或互联网)进行通信的一种体制,并不是网络(或互联网)的一种特性。一个进程可以通过同一个网络先是使用对等模型与另一个进程通信,然后又使用客户机/服务器模型与另一个进程通信。因此,比较准确的说法是,使用对等模型通信,而不是通过对等网络通信。



第八单元:因特网
课文A:因特网

最著名的互联网例子是因特网(Internet,注意大写的I。因特网起源于20世纪60年代初的研究项目。其目标是发展一种能力,将各种计算机网络连接起来,使它们能够作为一个不会因局部灾难而瓦解的互联系统运行。最初的工作大多是由美国政府通过国防部高级研究计划局(DARPA——读作“DAR-pa)发起的。随着岁月的推移,因特网的开发从一个国防项目转变成一个学术研究项目。如今,它在很大程度上是一个商业项目,连接着全世界的广域网、城域网和局域网,涉及数百万台计算机。
一、因特网体系结构
从概念上说,因特网可以看作是域的集合。每个域由一个网络或一个相对较小的互联网组成,由一个像大学、公司或政府机构那样的组织负责运行。每个域是一个自主系统,可根据本地管理机构的愿望进行配置。它可能由一台计算机或一个包含许多局域网、城域网、甚至广域网的复杂互联网组成。
域的建立由互联网名称与数字地址分配机构(ICANN)监管。这是一个非赢利公司,其成立的目的是协调域的命名及因特网地址的分配。要在因特网上建立一个域,该域必须首先通过一个得到ICANN授权做此工作、被称为域名注册服务商的公司进行注册。
一个域一旦注册,即可以使用一个路由器连接到现有的因特网上。这个路由器将该域中的一个网络与已经在因特网内的一个网络相连接。这个特定的路由器常被称为该域的网关,因为它相当于该域通往因特网其余部分的大门。从单个域的角度看,位于其网关外面的那部分因特网有时被称为“云”,这是指以下的事实:其网关外面的因特网结构不受其控制,而且与其本身的操作也没有什么关系。传输给该域内一个目的地的任何报文都在该域内处理,传输给该域外一个目的地的任何报文都首先送至网关,然后由网关向外发送到云里。
一个人如果“站”在一个域的网关处“向外看”云,就会发现各种结构。的确,随着各种域找到与云建立连接的点,因特网也以有点随意的方式发展着。然而,一种流行的结构是,将若干域的网关连接在一起,形成一个由网关组成的区域网络。例如,一组大学可以选择将其资源集中起来,用于构建这样一个网络。而这个区域网络接着又连接到一个更大的网络上,后者上面还连接有其他的区域网络。这样,那部分云就呈现出了层次结构(图8A-1

路由器
因特网



由网关组成的区域网络








8A-1:一种连接到因特网的典型方法
二、连接到因特网
为了简化连接到因特网上的过程,许多称为因特网服务提供商的公司允许客户通过公司的设备将他们的域连接到因特网上,或者成为公司已经建立的一个域的一部分。与因特网服务提供商最经济的连接或许是通过临时电话链路建立的连接,这种连接称为拨号连接。使用这种方法,一个人将其计算机连接到当地电话线上,然后运行一个软件包,向因特网服务提供商的一台计算机发出呼叫。这时,因特网服务提供商就为其提供因特网访问服务,持续时间为电话呼叫的时间长度。
这种临时连接模型在手机/手持式计算机领域比较流行(实际上应用得越来越多)。然而,在位置固定的应用中,临时连接快速让位于永久连接,这种连接通过数字用户线路、有线电视线路和卫星链路等带宽比较高的系统建立。这些技术大大降低了宽带(大容量)因特网访问(曾经只提供给负担得起专用因特网连接的大型机构)的费用,从而使家庭用户也可以访问今天的多媒体应用程序。
在家庭层面出现的另外一个发展是,家用计算机系统正在从单个计算机设备扩展为多个计算机的网络,这种网络通常实现为以太网总线网络。这些网络使用家里的路由器访问因特网,而该路由器通过数字用户线路、有线电视线路或卫星链路与因特网服务提供商永久连接,从而使家里的系统成为因特网服务提供商建立的一个域中的局部网。从家中路由器到家庭局部网中计算机的连接常常采用无线方式。也就是说,每台计算机使用一部作用距离大约为100

英尺的小型发射机/接收机与路由器通信。这种无线局部网在家庭之外也很流行,被用于建立热区。在这些热区的范围内,任何具有无线上网能力的计算机(膝上型或手持式计算机)均可访问因特网。热区的例子包括办公楼、网吧、公共购物广场以及整个城市。
最后,我们应该强调,因特网服务提供商远不止于提供因特网访问服务。在许多情况下,它们也是构建和维护因特网基础结构的公司。而且,它们的服务一般包括为其顾客提供一系列广泛的硬件与软件支持。事实上,因特网服务提供商还可能提供顾客所需的计算资源(如数据存储和数据处理服务)中的相当大一部分。
三、因特网编址
一个互联网必须与一个互联网范围的编址系统相联系,该系统给系统中的每台计算机分配一个标识地址。在因特网中,这些地址称为IP地址。每个IP地址是一个32位模式,但人们当前正在实施将其扩展到128位的计划。每个32位地址由两部分构成:一部分是标识计算机所在域的模式,另一部分是标识域内特定计算机的模式。地址中标识域的那部分,即网络标识符,是注册域时根据ICANN的授权分配的。因此,因特网中的每个域是通过这个注册过程才确保拥有一个独特网络标识符的。地址中标识域内特定计算机的那部分叫做主机地址。主机地址由域的本地管理机构(通常是具有网络管理员或系统管理员等职别的人)分配。
IP地址传统上是用点分十进制记数法书写的。其中,地址的各字节用圆点分隔,每个字节用一个整数来表示,而该整数是用传统的以10为底的记数法来表示的。例如,使用点分十进制记数法,5.2这个模式代表00010这个两字节位模式,其中包含字节00000101(用5表示)和其后的字节(用2表示);而17.12.25这个模式代表一个三字节位模式,其中包含字节(这是用二进制记数法书写的17、随后的字节(用二进制书写的12)以及最后的字节(用二进制书写的25。因此,位于艾迪生―韦斯利(Addison-Wesley)出版公司域内的一台计算机可能拥有192.207.177.133这个IP地址,其中前面的3个字节(192.207.177)构成网络标识符(标识Addison-Wesley这个域),最后一个字节(133)是主机地址(标识Addison-Wesley域内的一台特定计算机)
用位模式形式表示的地址(即使经过使用点分十进制记数法压缩)很少能够有助于人们理解记忆。由于这个原因,每个域还分配了一个独特的助记地址,称为域名。例如,艾迪生―韦斯利出版公司的域名是aw.com。注意这个命名系统反映了域的分类。如后缀com所示,艾迪生―韦斯利出版公司的域属于商业性的。这样的类别称为顶级域名。顶级域名为数不少,包括表示教育机构的edu、表示美国政府机构的gov、表示非赢利机构的org、表示博物馆museum表示无限制使用的info以及netnet最初打算用于表示因特网服务提供商,但现在使用的范围要广泛得多。除了这些一般的顶级域名之外,还有用于表示具体国家的两

字母顶级域名(称为国家代码顶级域名),如表示澳大利亚的au和表示加拿大的ca
一旦一个域拥有了一个助记名,其本地管理机构就可自由地扩展该助记名,从而为域内aw.comssenterprise.aw.com
应该强调的是,用于助记地址的点分表示法与用于表示IP地址的点分十进制记数法没有关系。相反,助记地址的各部分标识计算机在一个层次分类系统中的位置。具体来说,ssenterprise.aw.com这个地址表示:称为ssenterprise的计算机位于aw这个机构内,而aw则属于com这个商业性域类(或顶级域名)。在大型域的情况下,本地管理机构可能将其域分成子域。在这种情况下,域中计算机的助记地址可能比较长。例如,假设乌有大学被赋予nowhereu.edu这个域名,并选择将其域分成子域。那么,乌有大学的一台计算机就可能具有像r2d2.compsc.nowhereu.edu这样的一个地址。该地址表示:称为r2d2的计算机位于子域compsc中,而子域compsc则在nowhereu这个域中,而nowhereu这个域又属于edu这个教育性域类。
每个域的本地管理机构负责维持一个目录,里面含有该域中每台计算机的助记地址和相应的IP地址。这个目录在该域中充当服务器的一台指定计算机上实现。这个服务器叫做名称服务器,它对有关地址信息的请求作出响应。整个因特网的所有名称服务器一起构成一个因特网范围的目录系统的一部分,该系统称为域名系统,用于将助记形式的地址转换成相应的位模式形式。具体来说,当一个人请求将一份报文发送到以助记形式标识的一个目的地时,域名系统被用于将该助记地址转换成与因特网软件兼容的相应IP地址。从域名系统提取信息的过程常常被称为“域名系统查找”。一般来说,完成一个域名系统查找只需要几分之一秒。


第九单元:移动与云计算
课文A:云计算
一、引言
许多用户和设计员给云计算下了不同的定义。IBM是云计算领域的一个主要角色,该公司给云计算下的定义如下:“一个云是一个虚拟化计算机资源池。云可托管各种不同的工作

负荷,包括批处理的后端作业和交互式面向用户应用。
云计算这个概念从集群计算、网格计算和效用计算发展而来。集群计算与网格计算充分利用许多计算机的并行使用来解决任何规模的问题。公用程序与软件即服务(UtilityandSoftwareasaService)提供计算资源作为一种按使用付费的服务。云计算充分利用动态资源为终端用户提供大量服务。云计算是一种高吞吐量计算范式,基础设施借助这种范式通过一个大型数据中心或若干大型机服务器提供服务。云计算模型使用户能够通过其连接的设备随时随地分享对资源的访问。
云通过把作业执行外包给云提供商而使用户腾出时间,聚焦于用户应用程序开发和创造商业价值。在这种方案中,计算(程序)被发送到数据所在之处,而不是像传统做法那样将数据复制到无数台式机上。云计算可避免大规模的数据移动,从而使网络带宽利用效率变得高很多。此外,机器虚拟化提高了资源利用率,增加了应用灵活性,并降低了使用虚拟化数据中心资源的总成本。
云可使IT公司摆脱设置硬件(服务器)和管理系统软件这些低水平任务,从而给IT公司带来很大的好处。云计算按需动态供应硬件、软件和数据集,以此方式应用一个拥有弹性资源而且这些资源置于一处的虚拟化平台。其主要目的是通过在数据中心使用服务器集群和巨型数据库而将桌面计算转移到一个面向服务的平台。云计算充分利用其低成本与简单的特性既惠及提供商也惠及用户。云计算意在通过同时服务于许多大型或小型异构应用程序,来充分利用多任务化提高吞吐量。
二、公共云、私有云和混合云
公共云建立在因特网上,可供任何支付了服务费的用户访问。公共云由服务提供商拥有,
可通过订购来访问。图9A-1顶部的标注框显示了一个典型公共云的体系结构。许多公共云可供使用,包括GoogleAppEngine(GAEAmazonWebServices(AWSMicrosoftAzureIBMBlueCloudSalesforce.com’sForce.com。上述云的提供者是商业提供商,它们提供了一个可供公众访问的远程界面,用于在其专有基础设施内创建和管理虚拟机实例。公共云提供一套选定的事务过程。应用与基础设施服务按照灵活的按使用付费方式提供。

一个典型的公共云
云服务队列平台前端(网络服务应用程序接口
通过因特网连接用户或
其他的公共云
数据中心服务器集群(虚拟机)
云存储

Microsoft
Azure
AmazonAWS
IBMBlueCloud
因特网
GoogleAppEngine
SalesforceForce.com
混合云
公共云

私有云IBMRC2

内部网
云用户



9A-1:由具有代表性的云的功能体系结构与连接性所例示的
公共云、私有云和混合云
私有云建立在一个组织机构所拥有的内部网的范围之内。因此,私有云由用户拥有和管
理,对私有云的访问限制在拥有私有云的用户及其伙伴的范围内。部署私有云的意图不在于凭借可供公众访问的界面通过因特网出售计算能力。私有云为本地用户提供灵活敏捷的私有基础设施,用于在其管理域之内运行服务工作负荷。私有云应该提供更高效、更方便的云服务。私有云在保持较高程度的定制化与组织控制的同时,可能对云标准化产生不良影响。基于内部网的私有云与公共云相连接,以获取额外资源。
如图9A-1左下角所示,混合云既用公共云也用私有云建立。私有云也可通过用外部公共云的计算能力补充本地基础设施,来支持混合云模型。例如,“研究计算云”RC2)是IBM(国际商用机器公司)建立的一个私有云,它将分散在美国、欧洲和亚洲的8IBM研究中心的计算与IT资源互相连接起来。混合云提供对用户、伙伴网络和第三方的访问。
总而言之,公共云可促进标准化,保全资本投资,并提供应用灵活性。私有云试图实现定制化,并提高效率、弹性、安全性和保密性。混合云在中间运行,在资源共享方面有许多折中之举。
三、云设计目标
尽管围绕以数据中心或大型IT公司的集中式计算与存储服务替代桌面或桌边计算这个问

题存在争议,但云计算界在要让云计算能够被普遍接受需要做什么这个问题上已达成某种共识。以下清单突出了云计算的6个设计目标:
将计算从台式机转移到数据中心:计算机处理、存储和软件交付通过因特网从台式机和本地服务器转向数据中心。
服务提供与云经济学:提供商通过与消费者及终端用户签订服务水平协议提供云服务。就计算、存储和能耗而言,所提供的服务必须是高效的。定价基于即付即用政策。
性能的可缩放性:云平台与软件及基础设施服务必须能够随着用户量增加而提高性能。
数据保密性保护:你能放心让数据中心处理你的私人数据与记录吗?要让云成功地成为可以信赖的服务,这种关切必须得到解决。
高质量的云服务:云计算的服务质量必须标准化,以使云能够在多个提供商之间互操作。
新标准与新接口:这是指要解决与数据中心或云提供商有关的数据锁定问题。为了使虚拟化应用程序具有高度的可移植性与灵活性,需要被大家普遍接受的应用程序接口和访问协议。四、云的使能技术
云之所以能够实现,是因为表9A-1中所概括的硬件、软件和连网技术进步。
技术
快速的平台部署按需供应的虚拟集群多租户技术海量数据处理网络范围的通信分布式存储许可与开单服务
要求与好处
云资源的快速、高效、灵活部署,以给用户提供动态计算环境
为满足用户需求而供应的虚拟化的虚拟机集群,以及随着工作负荷变化而重新配置的虚拟集群
目的在于视情将软件分配给大量用户同时使用和共享资源的软件即服务
尤其为了支持个性化服务而常常需要海量数据处理的因特网搜索和网络服务
对电子商务、远程教育、远程医学、社交网络、数字政府及数字娱乐应用程序的支持
需要通过云实现分布式存储的大规模个人记录与公共档案信息存储
在效用计算中极大地惠及各种云服务的许可管理与开单服务
9A-1:硬件、软件和连网方面的云使能技术

这些技术在使云计算成为现实的过程中发挥作用。这些技术今天大多已成熟,可满足日益增长的需求。在硬件领域,多核中央处理器、存储芯片和磁盘阵列的迅速进步,使建立拥有巨量存储空间、速度较快的数据中心成为可能。资源虚拟化使迅速的云部署与灾难恢复成为可能。面向服务的体系结构也发挥了至关重要的作用。
在提供软件即服务、Web2.0标准和因特网性能方面取得的进步,都对云服务的出现做出贡献。今天的云旨在为大量租户提供海量数据服务。大规模分布式存储系统的可用性是今天的数据中心的基础。当然,云计算也极大地得益于许可管理与自动开单技术最近几年取得的进步。
五、一种通用的云体系结构
9A-2显示了一种具有安全意识的云体系结构。因特网云被设想为一个大规模的服务器集群。这些服务器按需供应,以使用数据中心的资源提供集体网络服务或分布式应用。云平台通过服务器、软件和数据库资源的供应或取消供应而动态形成。云中服务器可以是实际机器,也可以是虚拟机。用户界面用于请求服务。服务提供工具塑造出云系统,来提供所请求的服务。
数据中心

公共云
供应虚拟化计算、存储和网络资源的云平台,加上来自多个数据中心的软件与数据集,用于
满足多租户应用程序的需求
用于保护由数据中心供应的云资源的信任委托、信誉系
统及数据着色
资源供应、虚拟化、管理及用户界面
客户

服务目录
安全与性能
监控


9A-2:在提供商运行的数据中心服务器的基础上用虚拟机、存储和连网资源的
虚拟集群建立的具有安全意识的云平台
除了建立服务器集群,云平台还需要分布式存储及随伴服务。云计算资源被纳入数据中

心,而数据中心一般由第三方提供商拥有和运行。消费者不需要知道基础技术。在云中,软件成为一种服务。云要求检索自大型数据中心的海量数据具有高信任度。我们需要建立一个框架,来处理存储在存储系统的大规模数据。这就需要在数据库系统之上建立一个分布式文件系统。其他的云资源被添加到云平台之内,包括存储区域网、数据库系统、防火墙及安全设备。网络服务提供商提供使开发者能够利用因特网云的专用应用程序接口。监控与计量设备被用于跟踪所供应资源的使用与性能。
云平台的软件基础设施必须处理所有的资源管理,并自动从事大多数维护工作。软件必须检测每台加入和离开的节点服务器的状态,并相应地执行相关任务。云计算提供商,如谷歌和微软,在世界各地建立了大量数据中心。每个数据中心可能拥有成千上万的服务器。数据中心的位置选定着眼于降低电费和冷却费用。因此,数据中心常常围绕水电建立。与单纯的速度性能相比,云的物理平台建造者更加关注性能/价格比和可靠性问题。
一般来说,私有云比较容易管理,公共云比较容易访问。云的发展趋势是,混合云越来越多。这是因为许多云应用必须超越内部网的界限。一个人必须学会如何创建一个私有云,以及如何与位于开放的因特网中的公共云交互。在保护各类云的运行方面,安全成为一个关键性问题。


第十单元:计算机安全
课文A:计算机安全

一、一种计算机安全定义
美国国家标准与技术研究院的《计算机安全手册》给计算机安全下的定义如下:给自动化信息系统提供的保护,其目的是达到保持信息系统资源(包括硬件、软件、固件、信息/数据及电信设备)的完整性、可用性和机密性等适当目标。这个定义提出三个属于计算机安全核心问题的关键目标:机密性:该术语包括两个相关的概念:
数据机密性:确保私有或机密信息不为未经授权的个人所获取或不透露给未经授
权的个人。

私有性:确保个人对哪些与其有关的信息可被收集和存储,以及该信息可由谁透露和透露给谁予以控制或影响。完整性:该术语包括两个相关的概念:
数据完整性:确保信息和程序只以指定的和特许的方式改变。
系统完整性:确保一个系统以未受削弱的方式执行其预定功能,不受有意或无意的未经授权的操纵。
可用性:确保系统迅速工作,特许用户不会得不到服务。
这三个概念组成一个常被称为“CIA(机密性、完整性与可用性)三位一体”的概念。虽然用CIA三位一体的概念来界定安全目标是已经得到确认的做法,但安全领域里的有些人感觉需要添加概念,以呈现全貌。最常提到的有如下两个概念:
可靠性:指真实并可验证、可信的特性;对一次传输、一条消息或一个消息来源的有效性的相信。这意味着验证用户的身份确实如其所说,以及抵达系统的每条输入出自一个可信的来源。
可问责性:指这样的安全目标,该目标要求一个实体的行为只会追究到该实体。这支持不可否认性、威慑、故障隔离、入侵检测与预防及事后恢复与法律行动。因为真正安全的系统还不是一个可以实现的目标,所以我们必须要能够将破坏安全的行为追究到一个责任方。系统必须留有对自身活动的记录,以便事后能够进行司法分析,从而追究破坏安全的行为或为解决交易纠纷提供帮助。二、威胁与资源
一个计算机系统的资源可分类为硬件、软件、数据及通信线路与网络。我们将简短地描述这四个类别,并将其和完整性、机密性与可用性的概念联系起来。
1.硬件
对硬件的一个主要威胁是对可用性的威胁。硬件最容易受到攻击,最不易受到自动控制。威胁包括对设备的意外和有意破坏及盗窃。个人计算机和工作站的激增,以及局域网的广泛使用,增加了这个领域内遭受损失的可能性。只读光盘和数字激光视盘(DVD)被盗可能导致机密性受损。对付这些威胁,需要物理安全措施与管理上的安全措施。
2.软件
对软件的一个关键威胁是对可用性的攻击。软件,尤其是应用软件,常常易于删除。也可改动或破坏软件,使其变得无用。通过仔细的软件配置管理,包括备份最近的软件版本,可保持高度的可用性。一个比较难解决的问题是软件遭到修改,导致一个程序虽然仍然运行,但表现得与以前不同。这是一种对完整性/可靠性的威胁。计算机病毒及相关的攻击属于这

个类别。最后一个问题是针对软件盗版的保护。尽管可采取某些对策,但未经授权复制软件这个问题总的说来尚未解决。
3.数据
与数据有关的安全关切范围广泛,包括可用性、保密性和完整性。就可用性而言,安全关切在于数据文件的毁坏,这可能意外发生,也可能恶意为之。
保密性方面的关切显然在于数据文件或数据库遭到未经授权的阅读,而这个领域在计算机安全诸领域中也许一直是得到研究和投入最多的问题。对保密性的一种不那么明显的威胁涉及数据分析,这种威胁表现在对所谓的统计数据库的利用。统计数据库提供总计或合计信息。随着统计数据库使用的增加,个人信息遭到泄露的可能性在增加。例如,如果一个表记录了调查对象ABCD的收入总数,另一个表记录了ABCDE的收入总数,那么两个总数之差就是E的收入。
最后,数据完整性在大多数设施中是一个主要关切。对数据文件的修改可能导致从轻微到灾难性的后果。
4.通信线路与网络
网络安全攻击可分为被动攻击主动攻击。被动攻击试图了解或利用来自系统的信息,但不影响系统资源。主动攻击试图改变系统资源或影响其运行。
被动攻击具有窃听或监听信息传输的性质。攻击者的目的是获取正在传输的信息。被动攻击的两种类型是报文内容泄露和通信分析。
报文内容泄露容易理解。电话交谈、电子邮件和发送的文件可能含有敏感或机密信息。我们希望阻止对手了解这些信息传输的内容。
通信分析比较微妙。如果我们有加密保护,对手可能仍然能够观察报文模式。对手可确定通信主机的位置与身份,并可观察被交换报文的频率与长度。这些信息有助于推测正在进行的通信的性质。
被动攻击很难检测,因为它们不涉及对数据的任何改变。因此,对付被动攻击的重点是预防而非检测。
主动攻击涉及对数据流的某种修改或假数据流的创建。主动攻击可细分为四类:重放、伪装、修改报文和拒绝服务。
重放涉及被动地捕获一个数据单元和随后重新传输该数据单元,以产生未经授权的效果。
当一个实体假装是一个不同的实体时,伪装便发生了。伪装攻击通常包括其他的主动攻击形式之一。例如,可在一个有效验证序列发生后捕获并重放验证序列,从而使一个只拥有

少数特权的特许实体能够通过假冒一个拥有额外特权的实体而获得这些特权。
修改报文就是改变一个合法报文的某个部分,或者推迟报文或对报文进行重新排序,以产生未经授权的效果。
拒绝服务指阻止或抑制通信设施的正常使用或管理。这种攻击可能有一个具体目标;例如,一个实体可能压制发往一个特定目的地的所有报文。拒绝服务的另外一种形式是扰乱整个网络,采取的方式或者是致瘫网络,或者是使其报文过载,从而使其性能退化。
要绝对预防主动攻击很难,因为这样做需要对所有的通信设施与路径始终提供物理保护。相反,目标是检测它们,并从它们导致的任何扰乱或延迟中恢复过来。
三、计算机安全策略
一项综合安全策略涉及三个方面:
明确说明/政策:安全方案应该做到什么?实施/机制:安全方案如何做到这些?正确性/保证:安全方案真的能起作用吗?1.安全政策
在制定安全政策时,安全管理员需要考虑以下因素:所保护资源的价值系统的脆弱之处
潜在威胁及攻击的可能性。
另外,安全管理员还必须考虑以下权衡:
易用与安全:几乎所有的安全措施都会在易用性方面造成某种不利结果。例如,病毒检查软件会降低可用的处理能力,并会因为安全软件与操作系统的不适当交互而带来系统崩溃或发生故障的可能性。
安全成本与失败及恢复费用:除了易用性和性能方面的代价,还有实施和维持安全措施的直接费用。所有这些成本都必须和缺乏某些安全措施造成的安全失败及恢复费用进行权衡。2.安全实施
安全实施涉及四个互补的行动方案:
预防:有一系列广泛的威胁,预防对其是合理的目标。例如,如果使用了保密的加密算法,并且已经采取了防止未经授权接触密钥的措施,那么,就会防止对被传输数据的机密性的攻击。
检测:在很多情况下,绝对保护是不可行的,但检测安全攻击是可行的。例如,有

用于检测是否有未经授权的个人登录到系统上的入侵检测系统。
反应:如果安全机制检测到正在进行的攻击,系统或许能够以制止攻击、防止进一步破坏的方式作出反应。
恢复:恢复的一个例子是使用备份系统,在数据完整性受损的情况下,可重新装入事先复制的正确数据。3.保证与评估
那些属于计算机安全服务与机制“消费者”的人们,希望能够相信所采取的安全措施可发挥预期的作用。也就是说,安全消费者希望感到他们系统的安全基础设施符合安全要求,可执行安全政策。这些考虑因素将我们导向保证与评估的概念。
保证是指一个人对安全措施,既包括技术上的也包括操作上的,可像预期的那样有效保护系统及其处理的信息,所持有的信心程度。这既包括系统设计,也包括系统实现。因此,保证涉及“安全系统设计符合要求吗?”“安全系统实现符合规格说明吗?”这两个问题。需要注意的是,保证表示为信心程度,而不是对设计或实现正确的正式证明。就现在的发展水平而言,即使不是不可能,也很难超越一定的信心程度,做到绝对的证明。
评估是指按照某些标准检查计算机产品或系统的过程。评估涉及测试,也可能涉及正式的分析或数学方法。该领域里的工作要点是制定这样的评估标准,这些标准可应用于任何安全系统(包括安全服务与机制),并在进行产品比较方面得到广泛支持。


第十一单元:计算机文化
课文A:使用电子邮件
一、引言
电子邮件是通过计算机网络收发消息及文件的一种电子系统。不过,与电话或纸质文档相比,电子邮件在工作场所中仍属于比较新的事物。这里有几条使用电子邮件时需记住的指导原则:
电子邮件越来越多地用于专业目的—不久以前,电子邮件还被视为一种次要的交流形式。那时,它自然并具有聊天式的风格,大多用于表达未加深思的意见或传递不重

要的信息。今天,电子邮件在大多数工作场所已成为一种主要的交流形式。因此,人们期待电子邮件具有专业性,不轻薄琐屑。

你会收发消息吗?你会转发文档给他人吗?你会收发附件吗?
你把电子邮件分类整理到文件夹中吗?你会把一封电子邮件发给多个人吗?你已经创建和使用签名文件了吗?你加入任何邮件讨论组(新闻组)了吗?你知道什么是在邮件讨论组中争论吗?你知道什么是垃圾邮件吗?你知道什么是网规吗?


得分得分(是)810专家级78熟练级56入门级05需要努力




11A-1:测试你的电子邮件准备就绪状态
电子邮件是一种公开的交流形式——你的读者可能把你的电子邮件有意发给或误发给数不清的其他人。所以,你不应该用电子邮件说那些你不愿公开说给主管、同事或客户听的事。
电子邮件越来越正式—过去,读者会原谅电子邮件中的打字错误、拼写错误以及过失,特别是在电子邮件刚出现并难以使用的时候。今天,读者期待电子邮件更为正式,能够显示出对其他交流形式所期待的质量。
电子邮件标准和常规还在形成中—电子邮件在工作场所应该如何使用,这一点还在探索中。关于电子邮件的适当(以及不适当)使用,人们持有相差甚远的看法。因此,你需要密切关注在你的公司和你读者的公司中电子邮件是如何使用的。如果你的公司制定有关于电子邮件使用的政策,你应该阅读并遵循该政策。
你还应该记住,法律约束对在工作场所如何使用电子邮件具有决定性作用。像任何其他的书面文档一样,电子邮件受版权法保护。因此,你得小心,不要以可能触犯版权法的任何方式使用电子邮件。例如,如果你收到一位客户的电子邮件,在没有得到该客户允许的情况下,你不能将电子邮件马上发布到你公司的网站上。
还有,律师和法庭把电子邮件视为书面通信,将其等同于备忘录或信函。例如,20世纪90年代末针对微软的反垄断案在很大程度上就是以恢复的电子邮件为根据的;在这些电子邮件中,比尔·盖茨和其他经营主管人员非正式地聊到与其他公司展开大胆有力的竞争。
从法律上讲,你通过雇主的计算机网络发送的任何电子邮件都属于雇主。因此,你的雇

主有权阅读你的电子邮件而无需你知道或得到你的允许。另外,删除的电子邮件可从公司的服务器上恢复,而且它们可用于法律案件。
骚扰和歧视案件越来越多地取决于在电子邮件中找到的证据。关于个人关系或容貌的轻率电子邮件可能被保存并在法庭案件审理中用于对付发送人。关于性别、种族或性取向缺乏慎重的议论也可能带来意想不到的后果。你发送给同事的“无恶意的”黄色笑话,最终可能被律师用于证明你在制造一个“不利的工作环境”
二、电子邮件的基本特征
电子邮件的格式编排类似于备忘录。典型的电子邮件有题头和正文。它们还有附件、签名等附加特征。
1.题头
题头有用于填写收件人和主题的行。通常,还会有允许你扩展邮件功能的其他行,如抄送、密送、附件等。
收件人行—这是你键入你向其发送电子邮件的人的电子邮件地址的地方。你可以在该行输入多个地址,允许你向多人发送邮件。
抄送和密送行—这些行用于复制邮件给次要读者,如你的主管或者对你的交谈可能感兴趣的其他人。抄送行向收件人表明,有其他人在接收邮件的副本。密送行允许你在别人不知晓的情况下将邮件复制给他人。
主题行—该行标明电子邮件的话题,通常使用简短的语句。如果该邮件是对以前邮件的回复,则电子邮件程序通常会在主题行自动插入“回复:”。如果转发邮件,则在主题行插入“转发:”。
附件行—该行标明是否有任何其他文件、图片或程序附加于电子邮件之中。你可以附加在你的文字处理软件、电子数据表程序或演示软件中创建的整个文档。附加的文档会保持其原有格式,并可直接下载到读者的计算机中。2.信息区
信息区在题头下面,是你可键入致读者的话语的地方。它应该有清楚明白的引言、正文和结尾。
引言应尽可能简短地(1)表明主题、2)说明用意并(3)阐述要点。还有,如果你想让读者做某事,你应该在最前面提出,而不是在电子邮件的结尾。正文应提供证明或支持你的电子邮件用意所需的信息。
结尾应重申要点并展望未来。大多数电子邮件读者从来不看到结尾,因此你应该在邮件中提早告诉他们任何行动项目,然后在结尾部分予以重申。

信息区可能还包括其他类型的文本:
回复文本—当你回复一封邮件时,大多数电子邮件程序允许你将原邮件的有关部分复制到你的邮件中。这些部分常常用沿着左面的页边空白向下排列的箭头>标出。链接——你还可以添加与网站的直接链接。大多数程序将自动识别一个像的网页地址,并使其成为电子邮件信息区的一个活链接。
附件——如果你给你的电子邮件附加了一个文件,你应该在信息区告诉读者邮件中附加了一个文件。不然的话,他们也许注意不到该附件。
情感符——信息区的另外一个常见特征是情感符的使用(图11A-2。如果有节制地使用,情感符可有助于你表明用书写的文本难以传达的情感。但是,如果使用过度,情感符可能使有些读者感到烦恼。在大多数工作场所的情景下,不应使用情感符。们具有嬉戏和非正式的性质,因此,确实只适用于关系密切的同事或朋友之间的电子邮件。
符号:-;-:-o:-|:-\:-(;-(:-x:'-(
意思愉快的表情使眼色的愉快表情吃惊的表情板着面孔的表情假笑的表情不愉快的表情使眼色的不愉快表情沉默的表情哭泣
11A-2:一些常用的情感符
3.签名

电子邮件程序通常允许你创建一个签名文件,该文件可在邮件结尾自动加上签名。签名文件可繁可简。它们允许你个性化你的邮件,并添加额外联系信息。通过创建签名文件,你可以避免在你写的每封邮件的结尾处打上姓名、头衔、电话号码,等等。
4.附件
与其他的交流形式相比,电子邮件的一个优势是能够收发附件。附件是读者可以下载到自己计算机上的文件、图片或程序。
发送附件——你如果想为电子邮件添加附件,那就点击你的电子邮件软件程序中的“添加文档”或“附件”按钮。大多数程序随即会打开一个文本框,允许你查找并选

择想要附加的文件。
接收附件—如果某人发给你一个附件,你的电子邮件程序会使用一个图标,来表示有文件附加于电子邮件。点击该图标,大多数电子邮件程序随即会让你将该文档保存到硬盘上。你可以再从那里打开该文件。三、电子邮件应遵守的网规
电子邮件有自己的规矩或“网规”。这里有你在工作场所可以遵循的12条网规:简洁—将邮件长度保持在一屏半以内。如果内容超过一屏半,应打电话、写备忘录或者将有关信息作为附件发送。
仅提供需要知道的信息—决定谁需要知道你要说的内容,然后仅给他们发送他们需要的信息——仅此而已。
视电子邮件中信息的安全度几近于明信片上信息的安全度——要认识到任何人都可能转发你的邮件或者用它来对付你。如果信息是秘密的或专属的,电子邮件不是一种适当的传送方式。
不要通过电子邮件说任何你不愿在会议上或对司法当局说的话—嘿,意外事件可能发生。你可能将令人难堪的东西发送给整个机构。或者,某个人可能替你这样做。千万不要立即回复令你愤怒或不安的邮件——给你自己时间冷静下来。你愤怒的时候,千万别写电子邮件,因为这些小畜生有办法反咬你一口。
避免使用过多的幽默,特别是反语或讽刺—在电子邮件中,你的诙谐俏皮话难得达到你想要的确切效果。记住你的电子邮件可能很容易被误解或断章取义。同时,美国人的幽默感经常让外国读者感到烦恼。因此,如果你的邮件是发往海外的,应尽可能少地使用幽默。
摘引或转发他人的电子邮件要格外慎重——如果其他人的邮件有丝毫的被误解的可能性,则应在你自己的邮件中解释转述,而不应将其转发或部分复制。
如果你与人面对面时不愿令人不快的话,那在电子邮件中也不要—与在车中驾驶很相像,电子邮件给人以虚假的安全感。但是,实际上,信息高速公路上的那些人都是真人,他们是有感情的。再说,他们可以保存你的谩骂性或骚扰性邮件,并将其用作对付你的证据。
千万不要发送任何可能具有专属性质的东西—有一些经典案例,在这些案例中保密信息或行业秘密通过电子邮件发送给了竞争者或媒体。如果信息是专属的,应使用传统传递途径,如普通邮件或信使。
不要在工作场所向人发送争论邮件、垃圾邮件或连锁邮件—如果你必须做这些事,

则应在家里用你的个人电脑。在工作场所,应假定这些活动最终会被用于对付你。可能被解雇。
发送网上流行的“紧急”消息应三思而后行—有很多关于计算机病毒“擦除你硬盘上数据”的恶作剧。当某些易上当的人开始向其所有朋友发送这些恶作剧消息时,们便获得了新的活力。有些病毒是真的,但大多数不是。在你向所有朋友和同事发出警告之前,应先等一两天,看看威胁是真是假。
原谅别人的语法错误,但你自己不要犯—有些人视电子邮件为非正式交流方式,此他们很少进行修改(尽管他们应该这样做)。语法错误和拼写错误不免发生,所以你可要原谅发件人。另一方面,这些错误使发件人显得愚蠢,因此,不要发出马虎的电子邮件。

第十二单元:电子商务
课文A:电子商务
一、引言
我们现在称之为电子商务的商业现象拥有有趣的历史。电子商务发端于20世纪90年代中期,当时并不显山露水,但随后发展迅猛,直到2000年出现一次大衰退。许多人看过相关的新闻报道,先是“网络公司繁荣”,继之以“网络公司不景气”或“网络炸弹”。从2003年开始,电子商务开始显示出新生的迹象。尽管繁荣岁月的快速扩张和高水平投资不可能重现,但电子商务的第二次浪潮已然来临。
二、ElectronicCommerceElectronicBusiness
对于许多人来说,electroniccommerce(电子商务)这个术语表示在称为万维网的那一部分因特网上购物。然而,electroniccommerce(或e-commerce)也包括许多其他的活动,如一个企业与其他企业的贸易,以及公司用于支持其购买、销售、招聘、计划及其他活动的内部过程。有些人从这种比较广泛的意义上谈论电子商务时,使用“electronicbusiness(或e-business)这个术语。大多数人混用“electroniccommerce”和“electronicbusiness”这两个

术语。electroniccommerce”这个术语在本文中是从最广泛的意义上使用的,包括使用电子数据传输技术进行的所有商业活动。最常用的技术是因特网和万维网,但所使用的技术也包括其他技术,如通过移动电话和个人数字助理设备进行的无线传输。
三、电子商务的类型
有些人感到根据参与交易或商业过程的实体类型对电子商务进行分类比较有用。有5一般的电子商务类型,分别是:企业对消费者电子商务、企业对企业电子商务、商业过程、消费者对消费者电子商务和企业对政府电子商务。最常用的3种类型是:
消费者在网上购物,常称为企业对消费者(或B2C)电子商务企业之间在网上进行的交易,常称为企业对企业(或B2B)电子商务公司、政府及其他机构为支持买卖活动而在因特网上采取的交易与商业过程12A-1给出了电子商务的3种主要要素。该图显示了对这些要素相对规模的粗略估计。就美元值和交易数量而言,B2B电子商务比B2C电子商务大得多。然而,支持性商业过程的数量比所有B2CB2B交易加在一起的数量还要多。图12A-1中表示支持买卖活动的商业过程的大椭圆形代表电子商务的最大要素。

支持买卖活动的
商业过程
B2B电子商务
B2C电子商务

12A-1:电子商务的要素

有些研究人员还界定了另外一种电子商务,称为消费者对消费者(或C2C)电子商务。这种电子商务指个人之间买卖物品。例如,一个人通过拍卖网站向另一个人出售一件物品便C2C电子商务。
最后,有些研究人员还界定了一种称为企业对政府(或B2G)的电子商务。这种类型的电子商务包括企业与政府机构的交易,如交税和填写规定的报表。数量越来越多的州建有帮助公司与州政府机构做生意的网站。例如,CAL-Buy网站使企业与加利福尼亚州进行在线交

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服