计算机软件技术研究现状与发展Word文档下载推荐.docx
《计算机软件技术研究现状与发展Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机软件技术研究现状与发展Word文档下载推荐.docx(165页珍藏版)》请在冰点文库上搜索。
![计算机软件技术研究现状与发展Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/ba0abcb5-2c90-47db-91c9-3f032645fb1c/ba0abcb5-2c90-47db-91c9-3f032645fb1c1.gif)
作为可运行的系统,软件已经形成共识的分层模型,即:
软件可以分为系统软件(操作系统、数据库等)、支撑软件(高级语言编译器、程序库、CASE工具等)和应用软件。
如下图所示:
系统软件是计算机系统中最靠近硬件层次的成分,是为了充分发挥和利用计算机硬件提供的计算能力而专门设计的软件,本质上,这类软件提供了支持应用程序开发和运行所需的共性成分,它和具体的应用领域无关,解决任何领域的问题一般都要用到系统软件。
如操作系统、数据库系统和编译程序等均被称为系统软件。
支撑软件是支撑其它软件的开发与维护的软件,如软件开发工具和软件开发环境、软件构件库等,通常支撑软件并不是应用软件运行时的必备成分。
应用软件是特定应用领域的专用软件:
如人口普查软件、飞机订票软件等。
应该指出,上述分类也并非绝对不变的,而是随技术的发展,相互有所覆盖交叉和变动,三者既有分工,又相结合,不能截然分开。
随着网络应用的逐步增多,为了解决平台异构性和互操作问题,中间件作为一种新的软件类型(或层次)开始出现。
从中间件提出的初始动因来看,是指网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,它可屏蔽实现细节,提高应用系统的易移植性。
3、软件技术研究开发现状
3.1世界各国的重大软件计划
各国政府相继启动国家级的重大软件技术计划,基础软件和软件开发方法研究都成为这些国家级计划中优先推荐或重点发展的内容。
1.中国
中国信息产业部在2001年5月发布了《信息产业“十五”计划纲要》,其中软件业的发展重点包括:
●以市场为导向,以国民经济发展需要和信息安全为出发点,实施软件产业化专项工程,建成我国软件产业体系。
重点支持自主的、安全的中文操作系统软件开发,大力支持技术开发平台、数据库管理系统、中文处理系统和网络管理系统等支撑软件的开发与生产。
大力开发嵌入式软件与系统。
●改进软件的传统开发方法和管理方式,推进以构件为基础的软件工业化生产。
有重点的支持软件园区的建设和骨干软件企业的发展。
加强对软件企业能力成熟度(CMM)的管理。
●对于应用软件,主要是创造良好的政策环境,鼓励各种所有制的企业参与应用软件的开发和社会服务。
大力支持管理信息系统软件,企业管理软件,工业控制软件,CAD/CAM软件,金融、财税、商业与保险业软件,信息服务软件,教育娱乐及多媒体软件,网络与信息安全、保密软件的开发生产。
开发系统集成软件,增强承担重大系统工程软件开发与系统集成的能力。
大力支持信息服务业的发展。
●大力鼓励软件国际化和软件出口。
积极推广具有自主知识产权和品牌的软件,扩大国产软件的市场占有份额。
2.美国
美国总统信息技术顾问委员会(PITAC)在2004财年的报告中软件的重点放在如何提高生产率和提高软件和系统的可靠性方面,具体包括:
●软件设计和生产能力
⏹复杂系统的软件
⏹自治系统的软件:
嵌入式的软件控制;
基于智能体的软件
⏹大规模传感网络
⏹软构件
⏹嵌入式软件
⏹网络化的嵌入式软件
●高可靠软件和系统
⏹NSA:
高可信计算平台(HACP);
安全管理基础设施(SMI);
主动网络防御;
安全通信;
网络安全工程
⏹DARPA的标准方法
⏹需求说明
⏹算法和协议设计
⏹程序分析
⏹NIST高可信因特网的安全问题
⏹因特网协议安全(Ipsec)
⏹活动代理的安全和侵入检测
⏹对软件故障和失效数据的分析
概言之,也即在计算机技术和网络技术飞速发展的背景下,加速研制基于网络的分布协同的软件环境;
在信息资源建设和信息应用开发的强烈需求牵引下,把提高系统的“好用性”和“可靠性”放在首位;
在对以往软件技术的实际应用效果上午分析评估下,应进一步挖掘面向对象(面向智能主体)技术的潜力,尽快突破中间件、资源聚合等的关键技术。
3.2系统软件研究开发现状
作为计算机系统中最靠近硬件层次的软件,系统软件包括操作系统,数据库管理系统,以及诸如应用服务器等的中间件,下面将分别对各类系统软件的研究发展现状予以阐述。
3.2.1操作系统研究开发现状
操作系统是管理硬件资源(处理器、存储器、显示器、打印机等)、控制应用软件运行、改善人机界面并为应用软件提供支持的软件。
操作系统向高层应用软件提供编程接口,为用户方便地开发应用系统提供了基础。
操作系统的形成与发展伴随了计算机发展的历程。
第一代电子管计算机速度慢,外设少,规模小,程序的执行由程序员直接控制,那时还没有操作系统。
第二代晶体管计算机的速度有了大幅度的提高,外设也大为增加,操作员直接控制程序执行的不足逐步显现了出来。
特别是,手工操作速度慢,严重制约了计算机的执行效率:
当需要运行一个作业时,程序员首先将程序写在纸上,然后转换成穿孔卡片,再将卡片送给操作员,操作员负责控制计算机读入卡片,并进行计算过程;
计算机执行完任务后,操作员从打印机上获得计算结果,将其交给程序员。
这样,从程序员角度看,计算机的一个计算时间可能是计算机具体执行时间的2-3倍,大量的时间浪费在操作员的手工上了!
在这种背景下,操作系统于1960年前后出现了。
最早的操作系统是一种管理程序(Monitor),主要用于控制输入与输出设备(例如磁带)、接收操作员输入的命令等等。
通过将大批量的作业从卡片读取到磁带上,计算机依次读取磁带上具有一定结构与信息的作业,根据作业控制信息,加载、运行作业,并将结果输出到磁带上,从而大大提高了计算机的利用效率。
第三代集成电路计算机出现时,操作系统的功能有了明显的增加。
特别是,通过在内存中同时存放多个作业,此时的操作系统开始支持多道程序设计,开始支持分时处理方式,程序员可以通过各自的终端设备同时向一台计算机提交任务。
计算机根据它们所需要的资源,在操作系统的调度下,交替为它们服务,以最大限度地利用计算机的资源。
在这个时期,诞生了我们目前熟知的许多操作系统,例如:
IBM的MVS,DEC的VMS,以及贝尔实验室的UNIX等等。
UNIX是贝尔实验室的Thompson等人于1969年左右开发的操作系统,其显著特点是结构简洁、功能强大、移植性好、兼容性好、互操作性强。
由于UNIX最初是免费赠送的,并提供源代码,因而被认为是开放系统的代表,并有利地促进了UNIX的快速发展。
目前UNIX已经发展出了100多个版本,从而产生了UNIX之间的兼容性问题。
从1980年开始,UNIX用户组织开始进行UNIX的标准化工作,该工作已经被IEEE所采纳,这就是人们熟知的POSIX标准。
UNIX是使用广泛、影响较大的操作系统,主宰了小型机、工作站的大量市场。
在计算机硬件技术发展的第四代,个人计算机的出现促进了一大批更为流行的操作系统的产生,例如:
MS-DOS、Windows、Linux等等。
MS-DOS与Windows都是微软公司的产品,是随着个人计算机的推广、普及而逐步确立其地位的。
Windows最初是微软于1985年作为对DOS的图形化扩充而推出的。
苹果公司的Macintosh是第一个具有图形用户界面的操作系统,但Macintosh运行于非Intel体系结构的计算机之上。
由于Windows运行于Intel体系结构的个人计算机上,而基于Intel体系结构的计算机取得了巨大的成功,因此Windows后来居上,一度完全主宰了个人计算机的操作系统市场。
这一局面直到1991年的Linux出现之后才逐渐被打破。
Linux是由芬兰的一名大学生LinusTorvalds于1990年开始编写的一个新的操作系统,后来被称为Linux。
尽管Linux遵循UNIX标准,但并没有使用以前的UNIX代码,而是重新编写了每一行代码,因此通常人们并不认为Linux是一种UNIX。
Torvalds在1991年完成了Linux的第一个版本后,将它放到了因特网上,供全世界的同行使用。
这个特殊的发展模式取得了令人难以置信的成功:
目前1/3的网站服务器运行Linux,而且Linux受到了很多国家政府的热情支持。
Linux的成功一方面源自Torvalds对Linux的设计目标:
实用、简洁、目标渐进,另一方面则源自因特网的开放、创新、共享。
随着计算机网络等技术的发展,近年来操作系统在网络化、并行化、智能化等方面将会取得更加显著的发展。
3.2.1.1商业桌面与服务器操作系统研究开发现状(暂缺)
Windows操作系统是世界上最流行的桌面操作系统,从Windows95,Windows98到Windows2000和WindowsXP,微软几乎占据了90%的桌面市场。
此外,Linux和Macintosh以及FreeBSD、OpenBDS等免费UNIX版本也在桌面操作系统占有一席之地。
而在服务器端,占主导地位的仍是NetWare及各大主流厂商的UNIX版本,包括AIX,Solaris,DigitalUNIX,HP-UX等,以及免费的UNIX版本:
FreeBSD、OpenBDS、GNUHurd、NetBSD、LINUX。
此外WindowsNT,Windows2000Server等低端产品。
3.2.1.2商业嵌入式操作系统研究开发现状
随着嵌入式系统应用需求的不断增多,对嵌入式操作系统的要求也随之高涨。
嵌入式操作系统及其开发调试环境可以广泛应用于下述嵌入式产品中:
移动计算平台(如PDA)、家庭信息环境(如机顶盒,数字电视)、通讯计算平台(如媒体手机)、车载计算平台(如导航器)、工业、商业控制(如智能工控设备,POS/ATM机)、电子商务平台(如智能卡应用,安全管理)等装置上,还可应用于与Internet相联接的一切接入设备。
根据国外资料,近年来,全世界每年生产的微处理器(微控制器)芯片数量达10亿只以上,其中只有10-20%的芯片用在台式计算机或其它计算机上,绝大数微处理器(微控制器)芯片用在了嵌入式系统中。
而且全球每年推出的嵌入式系统的新产品达上万种。
根据Gartner的数据调查,2002年全球有1.08亿以上的员工经常在传统的办公室以外工作。
他们都需要使用各种嵌入式系统产品支持其工作。
这些嵌入式系统产品需要使用嵌入式操作系统作为核心软件。
国内对嵌入式操作系统的需求仅在无线手机产品市场上,每年的需求是20亿元人民币。
掌上电脑预计未来几年在我国的年销售量为百万台,并将高速发展,对嵌入式操作系统的需求也是一个年达1亿元的市场。
另外,我国家用电器如彩电、冰箱、空调、音响产品等等正在向数字化、信息家电的方向发展。
每年将有千万台的信息家电产量,其市场规模将达到200亿元人民币。
如果其中嵌入式操作系统价格仍按10%计,那么信息家电将为嵌入式操作系统另外创造至少每年20亿元人民币的市场。
面对巨大的嵌入式软件市场,国内外许多公司已于几年前开始了研制开发,到目前已有几十种操作系统面世。
从事嵌入式操作系统的主要厂商包括:
●Chorus:
Sun公司拥有,采用微内核,正在成为基于JAVA嵌入式平台;
●Diba:
Sun公司拥有,提供浏览器应用软件;
●Navio:
ORACLE公司拥有,主要用于发展网络计算机;
●OS-9
:
MICROWAVE公司拥有,目前开发出服务于VOD的家用信息机产品;
●PSOS:
ISL公司拥有,目前国内开发商普遍采用的产品;
●QNX:
QSSL公司拥有,限于X86平台,提供集成化开发环境;
●WindowsCE:
Microsoft公司拥有,主要用于PDA,1999年3月宣布进入中国的机顶盒市场;
●Tornado/VxWorks:
Windriver公司拥有,开发环境和调试工具。
在国内,中科院北京软件工程研制中心1992年就开始关注嵌入式仍旧的发展,1994年决定研制开发嵌入式操作系统。
目前其已研制出HOPEN操作系统已能在Motorola、Philips、HITACHI等多种芯片上运行,并即将用于PDA(或HPC)、机顶盒市场。
由于信息电器的广泛前景,国内已有三十多家企业开始与中科院北京软件工程研制中心合作。
应用软件方面,联想、长城、海信等厂家做了大量工作,正在或已经将开发的应用软件用于自己的产品中。
3.2.1.2分布式网络化操作系统研究现状
随着越来越多的计算机通过网络的互连,急需开发分布式软件以便用户能使用分布式资源。
然而,习惯于传统集中式计算环境的用户在分布式系统中开发软件和管理系统时遇到很大困难。
因此,怎样使分布式系统易于使用是分布式系统研究的原动力所在。
分布式操作系统DOS的设计目标之一就是直接在硬件核心而不是在现有OS上,构造一个全新的分布式系统以便获得更好的系统结构和更佳的系统性能。
运行在各站点上的DOS相互配合给用户提供一个单一的虚拟系统。
大多数DOS采用了微内核技术。
在这样的系统中,每台计算机一个DOS的微内核拷贝。
DOS通过微内核互连而成,如下图所示。
微内核仅提供支持系统运行的最基本的功能,包括进程间通信、低级网络通信、进程调度和中断处理等。
系统的其余功能由微内核之外的进程(称为系统服务进程)实现。
用户进程通过操作系统与这些系统服务进程交互,如读写文件、启动或删除进程等。
微内核结构隐藏了硬件的异构性,提供了统一的内核接口。
DOS能适应各种不同的硬件结构。
微内核极大地缩小了系统代码的规模,使DOS更轻巧。
一个站点只需运行内核以及必要的服务进程。
具有微内核DOS系统结构图
一个DOS由一个内核和一组类似于集中式DOS所提供的系统服务器(进程)组成。
系统服务器管理系统资源,为用户提供服务。
系统服务器主要有文件服务器、目录服务器和进程服务器等。
DOS要为用户提供一个单一的、全局的、让每个用户看起来是相同的文件系统。
DOS中的文件系统实现与传统分时系统类似的功能:
管理磁盘空间、提供文件服务等。
文件服务器可以运行在一个配有大容量磁盘的专用服务器上。
当客户程序需要访问一个文件时,它向服务器发出请求并得到返回结果。
允许系统中有多个服务器,它们之间需要协调才能为用户提供单一逻辑文件系统的面貌。
物理文件服务器的数目和其位置对用户透明。
为了提高性能和可靠性,DOS中的文件系统自动实现文件重复存放和文件迁移,而这对用户是透明的。
目录服务器作为提供文件服务不可缺少的部分实现对象命名和定位操作。
它将用户所使用的符号名映射为内部标识,文件服务器使用该标识找到相应对象的物理位置。
DOS中的目录服务器被用于查找系统中所有命名过的对象,如文件和进程。
因为对象分布在整个系统,所以让用户在DOS中使用位置透明的命名机制来标识对象是十分重要的。
对象的名字独立于节点的物理地址。
目录服务器是实现系统级位置透明的关键。
在DOS中,用户并不清楚哪个结点正在运行他的作业。
为了最佳利用系统资源,可以在任何结点创建一个进程。
DOS中的进程服务器管理处理机资源,实施进程创建、终止和迁移等操作。
有二种处理机管理模型:
处理机池模型和本地结点模型。
Amoeba和*Plan采用了处理机池模型,其中进程服务器管理一个处理机池供全局使用。
它保存着系统中各处理机的负载信息,当一个新作业到达时,它根据系统中的负载情况,为该作业分配处理机。
其设计重点是强调提高静态负载平衡的有效性。
由Mach和Chorus系统所采用的本地结点模型基于这样的思想:
用户大多数时候是登录到本地机,因此总是隐含地将用户进程放到本地机运行。
在该模型中,通常要实现进程迁移机制。
当一个结点负载过重或发生故障时,进程服务器从该结点将进程迁移到负载较轻或更可靠的结点。
在这二种模型中,负载平衡和进程迁移对用户都是透明的。
为了降低应用编程的难度,DOS提供包括并行透明性、位置透明性和故障透明性在内的网络透明性。
DOS提供了完全的并行透明性。
在某些DOS中,系统中的处理机以集中方式由一个服务器管理。
也可以有多个分散的处理机管理服务器,它们互相配合共同完成处理机分配。
无论哪种方式,为用户作业分配处理机的主要目的都是为了获得最大的并行性。
用户无须知道其作业到底在哪个处理机上运行或有多少处理机在运行他的作业。
位置透明性隐藏了分布式系统中对象(如文件、服务器等)的物理位置。
一个用户访问一个对象时,他只需指出对象的符号名,而无须知道对象到底在哪个结点,因此,对象可以在结点之间自由搬移而不影响应用程序。
DOS为用户提供了统一的命名机制。
它有一个全局目录结构,对象的路径名并不反映对象的物理位置。
无论用户从哪个结点登录到系统,用户看到的是相同的命名树。
对象的迁移和复制对用户透明,由系统自动实现。
故障透明性与资源共享和位置透明性密切相关。
在DOS中,所有资源由系统中的用户共享,而用户并不属于某个具体结点。
当系统部分故障(如某几个处理机失效)时,系统仍将分配可用处理机运行用户作业,甚至能将故障处理机的进程移到非故障结点运行,此时,故障对用户是透明的。
为了赢得商业市场,DOS正朝着实用性发展,如与现存系统的互操作、让用户拥有对其物理资源的控制权等。
例如,在Amoeba之上已经构造了一个UNIX系统仿真器,用户可以在Amoeba系统中重新编译和运行大部分UNIX软件。
在UNIX和Amoeba中已经开发了许多实用程序,使得这二个系统能够实现广泛的互操作。
DOS的最终目的是获得完全的网络透明性。
结点的自治性和网络透明行始终是二个相矛盾的目标。
3.2.2数据库研究开发现状
在操作系统出现之后,随着计算机应用范围的扩大,需要处理的数据迅速膨涨。
最初,数据与程序一样,以简单的文件作为主要存储形式。
以这种方式组织的数据逻辑简单,但可扩展性差,访问这种数据的程序需要了解数据的具体组织格式。
特别地,当系统数据量大,或者用户访问量大时,应用程序还需要解决数据的完整性、一致性以及安全性等一系列问题。
因此,必须开发出一种系统软件,它应该能够像操作系统屏蔽了硬件访问复杂性那样,屏蔽数据访问的复杂性。
由此产生了数据库管理系统。
自从1969年前后以IBM公司研制的层次数据库系统IMS为代表的数据库系统问世以来,随着数据模型的不断发展,数据库经历了从层次数据库、网状数据库,到传统的关系数据库和面向对象数据库数据库系统的发展阶段。
其中以关系数据库为代表的传统数据库系统获得了巨大的成功。
随着数据库技术与其它分支学科技术的结合,出现了多种新型数据库。
例如:
与分布处理技术结合产生的分布式数据库、与并行处理技术结合产生的并行数据库、与人工智能结合产生的演绎数据库、与多媒体技术结合产生的多媒体数据库。
另外,数据库技术应用于特定的领域,出现了工程数据库、地理数据库、统计数据库、空间数据库等特定领域数据库。
随着互联网的普及,传统的数据库使用环境已经发生了巨大的变化,这种变化主要体现为XML和Java技术的大量使用、要求支持各种互联网环境下的应用服务器、极容易出现大量用户同时访问数据库、要求支持7x24小时不间断运行和高安全性等。
为解决由于这些变化所带来的新问题,数据库管理系统也要适应这种变化。
比如,对于互联网应用,由于用户数量是无法事先预测的,这就要求数据库相比以前拥有能处理更大量的数据以及为更多的用户提供服务的能力,也就是要拥有良好的可伸缩性及高可用性。
又如,互联网提供大量以XML格式数据为特征的半结构化数据,支持这种类型的数据的存储、共享、管理、检索等也是各数据库厂商的发展方向。
这种支持互联网应用的数据库系统统称为网络化的大型通用数据库管理系统。
3.2.2.1网络化的大型通用数据库管理系统
支持Internet(甚至于MobileInternet)数据库应用已经成为数据库系统的重要方面。
数据库研究学术界以及各主流数据库公司都将其作为自己重要的发展方向。
例如,Oracle公司从8版起全面支持互联网应用,微软公司更是将SQLServer作为其整个.NET计划中的一个重要的成分。
Oracle公司的Oracle9i是一个面向Internet计算环境的数据库,它改变了信息管理和访问的方式,将新的特性融入到了传统的Oracle服务器之中,从而成为一个面向Web信息管理的数据库。
Oracle9i集成了被称为OracleJserver的Java虚拟机,开发人员可以使用Java编写存储过程、数据库函数和触发器,因此它开发的应用可以很容易部署到任何支持Java的服务器上。
Oracle9i支持Web高级应用所需要的多媒体数据,支持Web繁忙站点不断增长的负载需求。
Oracle9i还包括OracleWebDB,用户可以方便地建立Oracle服务器驱动的WEB网站。
Oracle9i通过加强对数据库表和索引的管理和执行能力,来增强OLTP(On-LineTransactionProcessing)、数据市场和数据仓库应用的数据管理环境。
OracleOLAP完全集成在数据库上,提供一套完整的分析功能。
为了适应互联网应用的需要,IBM开发出了Net.Data以便将DB2通用数据库与Internet全方位的连接,Net.Data是从网上服务器接收HTML的一系列宏。
它能够动态地建立对HTML的查询,并将查询传送给DB2通用数据库。
Net.Data不仅能够支持SQL还可以支持C、Cobol语言、命令行嵌入式调用以及与非DB2数据源的通信。
DB2不仅支持Java的嵌入式SQL,还支持用Java编写UDF和存储过程以及映射Java类和SQL99类型。
MicrosoftSQLServer2000中丰富的XML功能帮助Web开发人员绕过了复杂的关系数据库编程。
他们可以使用诸如XPath、URL查询和XML更新记录的技术。
SQLServer2000可以提供关系数据的XML视图,并可将XML数据映射为关系表。
SQLSer