首页> 全部小说> 小说推荐> 系统集成项目管理工程师教程完整文集
系统集成项目管理工程师教程完整文集
全国计算机与软件专业技术资格著本文标签:全国计算机与软件专业技术资格全国计算机与软件专业技术资格小说推荐
全国计算机与软件专业技术资格全国计算机与软件专业技术资格是小说推荐《系统集成项目管理工程师教程》中的主要人物,梗概:本书是全国计算机专业技术资格考试办公室组织编写的考试指定用书。本书根据系统集成项目管理工程师考试大纲编写,对信息系统集成项目经理岗位所要求的主要基础知识以及应用技术做了阐述。本书内容包括信息化基础知识、信息系统服务管理、信息系统集成专业技术、项目的立项管理、整体管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、合同管理、采购管理、信息(文档)与配置管理、变更管理、安全管理、风险管理、收尾管理等,还包括知识产权管理、有关的法律法则和标准规范、系统集成项目管理工程师职业道德规范以及一些实际的项目管理案例。本书是系统集成项目管理工程师考试应试者必读教材,也可以作为各类信息系统培训和辅导教材,还可作为大专院校信息管理专业的教学和参考用书。...
来源:cd 主角: 全国计算机与软件专业技术资格全国计算机与软件专业技术资格 更新: 2023-11-01 23:03:03
【扫一扫】手机随心读
- 读书简介
无广告版本的小说推荐《系统集成项目管理工程师教程》,综合评价五颗星,主人公有全国计算机与软件专业技术资格全国计算机与软件专业技术资格,是作者“全国计算机与软件专业技术资格”独家出品的,小说简介:第3章信息系统集成专业技术知识3.1信息系统集成简述1.信息系统集成概念信息系统集成是近年来国际信息服务业中发展势头最猛的服务方式和行业之一系统集成是指将计算机软件、硬件、网络通信等技术和产品集成为能够满足用户特定需求的信息系统,包括总体策划、设计、开发、实施、服务及保障信息系统集成有以下几个显著特点(1)信息系统集成要以满足用户需求为根本出发点(2)信息系统集成不只是设备选择和供应,...
第7章
迷人的人物设定,《系统集成项目管理工程师教程》中每位角色都独具特色,他们的存在为故事增添了许多精彩绝伦的元素,并使全国计算机与软件专业技术资格的故事更加引人入胜。这本小说已连载至最新章节,总字数已超过45.2万字,一定会让喜欢教育、成人教育且对教育、题材感兴趣的读者沉迷其中!
书友评论
作者大大的书籍还在推荐中,读者很喜欢这本书,但是还没有评价哦!章节推荐
第5章 立 项 管 理
第6章 项目整体管理
第7章 项目范围管理
第8章 项目进度管理
第9章 项目成本管理
作品阅读
信息系统集成专业技术知识
3.1 信息系统集成简述
1.信息系统集成概念
信息系统集成是近年来国际信息服务业中发展势头最猛的服务方式和行业之一。系统集成是指将计算机软件、硬件、网络通信等技术和产品集成为能够满足用户特定需求的信息系统,包括总体策划、设计、开发、实施、服务及保障。
信息系统集成有以下几个显著特点。
(1)信息系统集成要以满足用户需求为根本出发点。
(2)信息系统集成不只是设备选择和供应,更重要的,它是具有高技术含量的工程过程,要面向用户需求提供全面解决方案,其核心是软件。
(3)系统集成的最终交付物是一个完整的系统而不是一个分立的产品。
(4)系统集成包括技术、管理和商务等各项工作,是一项综合性的系统工程。技术是系统集成工作的核心,管理和商务活动是系统集成项目成功实施的保障。
2.信息系统集成分类
系统集成主要包括设备系统集成和应用系统集成。
1)设备系统集成
设备系统集成,也可称为硬件系统集成,在大多数场合简称系统集成,或称为弱电系统集成,以区分于机电设备安装类的强电集成。设备系统集成也可分为智能建筑系统集成、计算机网络系统集成、安防系统集成等。
(1)智能建筑系统集成(Intelligent Building System Integration),指以搭建建筑主体内的建筑智能化管理系统为目的,利用综合布线技术、楼宇自控技术、通信技术、网络互联技术、多媒体应用技术、安全防范技术等将相关设备、软件进行集成设计、界面定制开发、安装调试和应用支持。智能建筑系统集成实施的子系统包括综合布线、楼宇自控、电话交换机、机房工程、监控系统、防盗报警、公共广播、门禁系统、楼宇对讲、一卡通、停车管理、消防系统、多媒体显示系统、远程会议系统等。对于功能近似、统一管理的多幢住宅楼的智能建筑系统集成,又称为智能小区系统集成。
(2)计算机网络系统集成(Computer Network System Integration),指通过结构化的综合布线系统和计算机网络技术,将各个分离的设备(如个人电脑等)、功能和信息等集成到相互关联、统一协调的系统之中,使资源达到充分共享,实现集中、高效、便利的管理。系统集成应采用功能集成、网络集成、软件集成等多种集成技术,其实现的关键在于解决系统之间的互连和互操作问题,通常采用多厂商、多协议和面向各种应用的架构,需要解决各类设备、子系统间的接口、协议、系统平台、应用软件等与子系统、建筑环境、施工配合、组织管理和人员配备相关的一切面向集成的问题。
(3)安防系统集成(Security System Integration),以搭建组织机构内的安全防范管理平台为目的。安防系统集成实施的子系统包括门禁系统、楼宇对讲系统、监控系统、防盗报警、一卡通、停车管理、消防系统、多媒体显示系统、远程会议系统。安防系统集成既可作为一个独立的系统集成项目,也可作为一个子系统包含在智能建筑系统集成中。
2)应用系统集成
应用系统集成(Application System Integration),从系统的高度提供符合客户需求的应用系统模式并实现该系统模式的具体技术解决方案和运维方案,即为用户提供一个全面的系统解决方案。应用系统集成又称为行业信息化解决方案集成,已经深入到用户具体业务和应用层面。应用系统集成可以说是系统集成的高级阶段,独立的应用软件供应商成为其中的核心。
3.2 信息系统建设
3.2.1 信息系统的生命周期
信息系统的生命周期可以分为4个阶段:立项、开发、运维、消亡。
1.立项阶段
即其概念阶段或需求阶段,这一阶段分为两个过程:一是概念的形成过程,根据用户单位业务发展和经营管理的需要,提出建设信息系统的初步构想;二是需求分析过程,即对企业信息系统的需求进行深入调研和分析,形成《需求规范说明书》,经评审、批准后立项。
2.开发阶段
该阶段又可分为以下阶段。
(1)总体规划阶段:是系统开发的起始阶段,以立项阶段所做的需求分析为基础,明确信息系统在企业经营战略中的作用和地位,指导信息系统的开发,优化配置并利用各种资源,包括内部资源和外部资源,通过规划过程规范或完善用户单位的业务流程。一个比较完整的总体规划应当包括信息系统的开发目标、总体结构、组织结构、管理流程、实施计划、技术规范。
(2)系统分析阶段:目标是为系统设计阶段提供系统的逻辑模型,内容包括组织结构及功能分析、业务流程分析、数据和数据流程分析及系统初步方案。
(3)系统设计阶段:根据系统分析的结果设计出信息系统的实施方案,主要内容包括系统架构设计、数据库设计、处理流程设计、功能模块设计、安全控制方案设计、系统组织和队伍设计及系统管理流程设计。
(4)系统实施阶段:是将设计阶段的成果在计算机和网络上具体实现,即将设计文本变成能在计算机上运行的软件系统。由于系统实施阶段是对以前全部工作的检验,因此用户的参与特别重要。
(5)系统验收阶段:通过试运行,系统性能的优劣及其他各种问题都会暴露在用户面前,即进入了系统验收阶段。
3.运维阶段
信息系统通过验收,正式移交给用户以后,就进入运维阶段,系统长时间的有效运行是检验系统质量的试金石。
要保障系统正常运行,系统维护是不可缺少的工作。维护可分为4种类型:排错性维护、适应性维护、完善性维护、预防性维护。
4.消亡阶段
开发一个信息系统并希望它一劳永逸地运行下去是不现实的。企业的信息系统经常不可避免地会遇到系统更新改造、功能扩展,甚至报废重建等情况。对此,用户单位应当在信息系统建设的初期就注意系统消亡条件和时机,以及由此而花费的成本。
3.2.2 信息系统开发方法
信息系统的开发是一项艰巨的工作,需要大量的人力、物力、财力和时间的投入。为实现系统开发在效率、质量、成本等方面的要求及达到用户满意,除了技术、管理等因素外,系统开发方法也起着很重要的作用。
常用的开发方法有:结构化方法、原型法、面向对象方法。
1.结构化方法
结构化方法是应用最为广泛的一种开发方法。
按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步地依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。每个阶段和主要步骤都有明确详尽的文档编制要求,各个阶段和各个步骤的向下转移都是通过建立各自的软件文档和对关键阶段、步骤进行审核和控制实现的。
结构化方法具有如下特点。
(1)遵循用户至上原则。
(2)严格区分工作阶段,每个阶段有明确的任务和取得的成果。
(3)强调系统开发过程的整体性和全局性。
(4)系统开发过程工程化,文档资料标准化。
该方法的优点是:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。
该方法的缺点是:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的信息需求,充分预料各种可能发生的变化,但这并不十分现实;若用户参与系统开发的积极性没有充分调动,造成系统交接过程不平稳,系统运行与维护管理难度加大。
2.原型法
原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。
原型应当具备的特点如下。
(1)实际可行。
(2)具有最终系统的基本特征。
(3)构造方便、快速,造价低。
原型法的特点在于原型法对用户的需求是动态响应、逐步纳入的,系统分析、设计与实现都是随着对一个工作模型的不断修改而同时完成的,相互之间并无明显界限,也没有明确分工。系统开发计划就是一个反复修改的过程。适于用户需求开始时定义不清、管理决策方法结构化程度不高的系统开发,开发方法更宜被用户接受;但如果用户配合不好,盲目修改,就会拖延开发过程。
可以将原型分类如下。
(1)抛弃型原型(Throw-It-Away Prototype),此类原型在系统真正实现以后就放弃不用了。
(2)进化型原型(Evolutionary Prototype),此类原型的构造从目标系统的一个或几个基本需求出发,通过修改和追加功能的过程逐渐丰富,演化成最终系统。
3.面向对象方法(Object Oriented,OO)
随着应用系统日益复杂庞大和面向对象程序设计语言的日益成熟,面向对象的系统开发方法以其直观、方便的优点获得广泛应用。
面向对象方法的基本思想如下。
(1)客观事物是由对象组成的,对象是在原事物基础上抽象的结果。
(2)对象是由属性和操作组成的,其属性反映了对象的数据信息特征,而操作则用来定义改变对象属性状态的各种操作方式。
(3)对象之间的联系通过消息传递机制来实现,而消息传递的方式是通过消息传递模式和方法所定义的操作过程来完成的。
(4)对象可以按其属性来归类,借助类的层次结构,子类可以通过继承机制获得其父类的特性。
(5)对象具有封装的特性,一个对象就构成一个严格模块化的实体,在系统开发中可被共享和重复引用,达到软件(程序和模块)复用的目的。
面向对象的信息系统开发,其关键点是能否建立一个全面、合理、统一的模型,它既能反映问题域,也能被计算机系统求解域所接受。
面向对象开发方法主要有分析、设计和实现三个阶段。面向对象方法在整个开发过程中使用的是同一套工具,整个开发过程实际上都是对面向对象三种模型的建立、补充完善和表达验证。因此,面向对象开发方法中分析、设计和实现三个阶段的界限并非十分明确,但对信息系统的开发划分阶段还是十分必要的。
在系统开发的实际工作中,往往根据需要将多种开发方法进行组合应用,最终完成系统开发的全部任务。具体的组合形式可以分为如下几种。
(1)结构化方法与原型法的组合应用。
(2)结构化方法与面向对象方法的组合应用。
(3)原型法与面向对象方法的组合应用。
3.3 软件工程
20世纪60年代末至20世纪70年代初,在计算机软件的开发和维护过程中遇到了一系列严重问题,使人们普遍认识到了“软件危机”的存在。软件危机使软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等。产生这些问题的主要原因在于:所开发软件的规模越来越大、复杂度越来越高,与此同时,用户需求并不十分明确,且缺乏软件开发方法学和工具方面的支持。这使得人们开始用工程的方法进行软件的开发、管理和维护,即“软件工程”。软件工程在软件开发方法、工具、管理等方面的应用在很大程度上解决了软件危机所引发的问题。
本节从软件需求开始,介绍软件工程师的若干要项。
3.3.1 软件需求分析与定义
软件需求是一个为解决特定问题而必须由被开发或被修改的软件展示的特性。这个问题可能是使用软件的某人的任务中的一个自动化部分,或是支持委托开发软件的组织的业务流程,或修正当前软件的缺点,或是控制一个设备等。用户、业务流程和设备的功能通常很复杂,因此,特定软件的需求在外延上通常是来自一个组织不同层次的不同人员的需求和来自软件将要在其中运行的环境的需求的复杂组合。
所有软件需求的一个基本特性就是可验证性。验证某些软件需求可能很困难或者成本很高。软件需求和软件质保人员都必须保证,在现有的资源约束下,需求可以被验证。
除了其表达的行为特性外,需求还有其他特性,如优先级,以便在资源有限时进行权衡。通常,要唯一地标识软件需求,才能在整个软件生命周期中,进行软件配置控制和管理。
需求分析涉及分析需求的过程,其目的如下。
(1)检测和解决需求之间的冲突。
(2)发现软件的边界,以及软件与其环境如何交互。
(3)详细描述系统需求,以导出软件需求。
描述需求时必须仔细,应该精确到能确认需求,验证需求的实现,估算需求的成本。
开发真实世界问题的模型是软件需求分析的关键,模型的目的是帮助理解问题,而不是启动方案的设计。因此,概念模型由来自问题域的实体模型组成,实体模型反映了它们在真实世界的联系和依赖。可以开发的模型包括数据和控制流、状态模型、事件追踪、用户交互、对象模型、数据模型,以及其他模型。
架构设计是需求过程与软件或系统设计重叠进行的,将二者截然分开是不可能的。其工作是需求分配,即将满足需求的职责分配到组件上。
需求协商的另一个普遍使用的术语是“解决冲突”。这涉及需求冲突的问题,冲突发生在两个不兼容的需求之间,或者发生在需求与资源之间,或者在功能与非功能需求之间。
3.3.2 软件设计、测试与维护
1.软件设计
软件设计是“定义一个系统或组件的架构、组件、接口和其他特征的过程”,并得到“这个过程的结果”。作为过程看待时,软件设计是一种软件生命周期活动,在这个活动中,要分析软件需求,以产生一个软件内部结构的描述,并将其作为软件构造的基础。更精确地说,软件设计必须描述软件架构和这些组件之间的接口,也必须在详细的层次上描述组件,以便能构造这些组件。
软件设计在软件开发中起着重要作用,通过它形成要实现的各种不同模型。分析和评价这些模型,以确定它们能否实现各种不同的需求,在各种不同的候选方案中进行权衡,确定最终方案。最后,将其作为构造和测试的输入和起始点,并用来规划后续的开发活动。
软件设计由两个处于软件需求和软件构造之间的活动组成。
● 软件架构设计(有时叫做高层设计):描述软件的结构和组织,标识各种不同的组件。
● 软件详细设计:详细地描述各个组件,使之能被构造。
软件架构是“一个描述软件系统的子系统和组件,以及它们之间相互关系的学科”。架构试图定义软件的内部结构。通过视图可以从不同角度描述软件结构,主要包括逻辑视图(满足功能需求)、过程视图(并发问题)、组件视图(实现问题)、部署视图(分布问题)。
模式提供了架构设计的某些方法。模式是“给定上下文中普遍问题的普遍解决方案”,主要涉及设计模式(微观架构模式)和架构模式(宏观架构)。
2.软件测试
测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
软件测试是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为,需要选取适当的测试用例。
测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分。
测试不仅是检查预防措施是否有效的主要手段,而且是识别由于某种原因预防措施无效而产生的错误的主要手段。需要注意的是,在广泛的测试活动成功完成后,软件可能仍包含错误,交付后出现的软件失效的补救措施是由软件维护达成的。
软件测试随开发和维护过程,通常在不同的级别上进行,可以在概念上区分三个大的测试阶段:单元测试、集成测试和系统测试。
3.软件维护
软件开发工作的结果是交付满足用户需求的软件产品。相应地,软件产品必然存在变更和演化。一旦投入运行,就可能发现缺陷,运行环境可能会变化,用户会提出新的需求。软件维护是生命周期的一个完整部分。
可以将软件维护定义为需要提供软件支持的全部活动。这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划等。交付后的活动包括软件修改、培训、帮助资料等。
软件维护包括如下类型。
(1)更正性维护:软件产品交付后进行的修改,以更正发现的问题。
(2)适应性维护:软件产品交付后进行的修改,以保持软件产品能在变化后或变化中的环境中可以继续使用。
(3)完善性维护:软件产品交付后进行的修改,以改进性能和可维护性。
(4)预防性维护:软件产品交付后进行的修改,以在软件产品中的潜在错误成为实际错误前,检测和更正它们。
3.3.3 软件复用
软件复用是指利用已有软件的各种有关知识构造新的软件,以缩减软件开发和维护的费用。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决策、架构、需求、设计、代码和文档等一切有关方面。
软件复用是一种计算机软件工程方法和理论。20世纪60年代的“软件危机”使程序设计人员明白难于维护的软件的成本是极其高昂的,当软件的规模不断扩大时,这种软件的综合成本可以说是没有人能负担的,并且即使投入了高昂的资金也难以得到可靠的产品,而软件重用是解决这一问题的有效方法。
软件复用的主要思想是,将软件看成是由不同功能的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具,这样,如果完成各种工作的组件被建立起来以后,编写某一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
软件制品的复用,按抽象程度的高低,可以划分为如下复用级别:代码的复用、设计的复用、分析的复用、测试信息的复用等。
支持软件复用是人们对面向对象方法寄托的主要希望之一,也是这种方法受到广泛重视的主要原因之一。面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。
面向对象的软件开发和软件复用之间的关系是相辅相成的。一方面,面向对象的方法的基本概念、原则与技术提供了实现软件复用的有利条件;另一方面,软件复用技术也对面向对象的软件开发提供了有力的支持。
3.3.4 软件质量保证及质量评价
1999年,软件“产品评价”国际标准ISO14598给出的“软件质量”的定义是:软件特性的总合,软件满足规定或潜在用户需求的能力。也就是说,质量就是遵从用户需求,达到用户满意。
2001 年,软件“产品质量”国际标准 ISO9126 定义的软件质量包括“内部质量”、“外部质量”和“使用质量”三部分。也就是说,“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。
软件需求定义了软件质量特性,并影响评价这些特性的度量方法和接收准则。
应在软件过程、产品和资源的各个方面进行软件质量管理,软件质量管理过程由许多活动组成,一些活动可直接发现缺陷,其他活动则指出深入的检查是否有价值,前者也称为直接缺陷发现活动,许多活动都可以达到这两个目的。
软件质量管理过程包括:质量保证过程、验证过程、确认过程、评审过程、审计过程等。
1.软件质量保证
软件质量保证过程通过计划制订、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。
软件质量保证计划定义了用于保证为特定产品开发的软件满足用户需求并在项目的约束内具有最高的质量的手段。
2.验证与确认
验证与确认过程使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。
验证与确认过程确定某一开发和维护活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求。验证过程试图确保活动的输出产品已经被正确制造,即活动的输出产品满足前面活动施加的规范说明;确认过程则试图确保建造了正确的产品,即产品满足其特定的目的。
3.评审与审计
评审与审计过程包括:管理评审、技术评审、检查、走查、审计等。
管理评审的目的是监控进展,决定计划和进度的状态,确认需求及其系统分配,或评价用于达到目标适应性的管理方法的有效性。它们支持有关软件项目期间需求的变更和其他变更活动。
技术评审的目的是评价软件产品,以确定其对使用意图的适合性,目标是识别规范说明和标准的差异,并向管理提供证据,以表明产品是否满足规范说明并遵从标准,而且可以控制变更。
检查的目的是检测和识别软件产品异常。一次检查通常针对产品的一个相对小的部分。发现的任何异常都要记录到文档中,并提交。
走查的目的是评价软件产品,走查也可以用于培训软件产品的听众,主要目标是:发现异常、改进软件产品、考虑其他实现、评价是否遵从标准和规范说明。走查类似于检查,但通常不那么正式。走查通常主要由同事评审其工作,以作为一种保障技术。
软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是正式组织的活动,识别违例情况,并产生一个报告,采取更正性行动。
3.3.5 软件配置管理
软件配置管理是有益于项目管理、开发和维护活动。软件配置管理与软件质量保证活动密切相关,软件配置管理活动可以帮助达成软件质量保证目标。
软件配置管理活动有:软件配置管理过程的管理和计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付。
1.软件配置管理过程的管理和计划
软件配置管理通过标识产品的元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的进化和完整性。为了给项目的软件配置管理制订计划,有必要理解组织结构上下文环境和组织的元素之间的联系。软件配置管理在记录管理和非遵从项(non-conforming)等问题上,可能与组织的质量保证活动交互。软件配置管理也许与软件开发和维护组织的联系最紧密。正是在这个上下文环境中,需要进行许多软件配置控制任务。通常,同样的工具可以支持开发、维护和软件配置管理。
2.软件配置标识
软件配置标识活动标识要控制的项,为这些项及其版本建立标识模式,安装获取和管理受控项时使用的工具。这些活动为其他软件配置管理活动提供了基础。控制变更的第一步就是标识要控制的软件项,这涉及理解在系统配置上下文环境中的软件配置、选择软件配置项、开发为软件项加标签并描述它们之间关系的策略、标识要使用的基线以及获取基线的项的流程。
3.软件配置控制
软件配置控制关注管理软件生命周期中的变更,它覆盖确定要作什么样的变更的过程、批准某些变更的权力职权、支持这些变更的实现,以及与项目需求偏离和放弃这些偏离的概念。
4.软件配置状态记录
软件配置状态记录要记录和报告进行有效的软件配置管理需要的信息。软件配置状态记录活动为在生命周期中捕获和报告必要的信息设计和运行一个系统,同任何信息系统一样,必须标识、收集和维持为进化中的配置要管理的配置状态信息。
5.软件配置审计
软件审计是独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程而进行的活动。审计是根据由不同的审计规则和责任而定义的过程进行的。软件功能配置审计的目的是保证被审计的软件实现与其相关的规范说明一致。
6.软件发布管理和交付
当软件项的不同版本可以用于交付时,如不同平台的版本,通常有必要重新创建特定的版本,并将交付版本的正确材料打包。完成发布和交付任务时,软件库是关键的元素。
3.3.6 软件开发环境
软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。通常可以设计并实现工具来支持特定的软件工程方法,减少手工方式管理的负担。与软件工程方法一样,它们试图让软件工程更加系统化,工具的种类包括支持单个任务的工具及囊括整个生命周期的工具。
1.软件需求工具
软件需求工具包括需求建模工具和需求追踪工具。
2.软件设计工具
软件设计工具用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。
3.软件构造工具
软件构造工具包括程序编辑器、编译器和代码生成器、解释器、调试器等。
4.软件测试工具
软件测试工具包括测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
5.软件维护工具
软件维护工具包括理解工具(如可视化工具)和再造工具(如重构工具)。
6.软件配置管理工具
软件配置管理工具包括追踪工具、版本管理工具和发布工具。
7.软件工程管理工具
软件工程管理工具包括项目计划与追踪工具、风险管理工具和度量工具。
8.软件工程过程工具
软件工程过程工具包括建模工具、管理工具、软件开发环境。
9.软件质量工具
软件质量工具包括检查工具和分析工具。
3.3.7 软件过程管理
软件工程管理集成了过程管理和项目管理,包括以下6个方面。
1.启动和范围定义
进行启动软件工程项目的活动并作出决定。通过各种方法来有效地确定软件需求,并从不同的角度评估项目的可行性。一旦可行性建立后,余下的任务就是需求验证和变更流程的规范说明。
2.软件项目计划
从管理的角度,进行为成功的软件工程作准备而要采取的活动。使用迭代方式制订计划。要点在于评价并确定适当的软件生命周期过程,并完成相关的工作。
3.软件项目实施
进行软件工程过程中发生的各种软件工程管理活动。实施项目计划,最重要的是遵循计划,并完成相关的工作。
4.评审和评价
进行确认软件是否得到满足的验证活动。
5.关闭
进行软件工程项目完成后的活动。在这一阶段,重新审查项目成功的准则。一旦关闭成立,进行归档、事后分析和过程改进活动。
6.软件工程度量
进行在软件工程组织中有效地开发和实现度量的程序。
3.4 面向对象系统分析与设计
3.4.1 面向对象的基本概念
面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口、消息、组件、模式和复用等。
1.对象
对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个封装,是构成系统的基本单位,采用计算机语言描述,对象是由一组属性和对这组属性进行操作的一组服务构成。
对象包含三个基本要素,分别是对象标识、对象状态和对象行为。
每一个对象必须有一个名字以区别于其他对象,这就是对象标识;状态用来描述对象的某些特征;对象行为用来封装对象所拥有的业务操作。
举例说明,对于教师Joe而言,包含性别、年龄、职位等个人状态信息,同时还具有授课的行为特征,那么Joe就是封装后的一个典型对象。
2.类
类是现实世界中实体的形式化描述,类将该实体的数据和函数封装在一起。类的数据也叫属性、状态或特征,它表现类静态的一面。类的函数也叫功能、操作或服务,它表现类动态的一面。
Joe 是一名教师,也就拥有了教师的特征,这个特征就是教师这个类所特有的,具体而言,共同的状态通过属性表现出来,共同的行为通过操作表现出来,如图3-1所示。
图3-1 类的构成
3.类和对象的关系
对象是类的实际例子。如果将对象比作房子,那么类就是房子的设计图纸。
例如,银行里所有储户的账户,可以抽象为账户类。用自然语言描述账户类如下:
用计算机语言表示账户类,命名账户类为ACCOUNT:
账户类的对象,可以是一个个具体的储户如张三工行的账户、张三建行的账户、李四工行的账户。用计算机语言描述如下:
Class ACCOUNT ZhangSan_ICBCAccount;ZhangSan_CBCAccount;LiSi_ICBCAccount;
类和对象的关系可以总结为:
(1)每一个对象都是某一个类的实例。
(2)每一个类在某一时刻都有零或更多的实例。
(3)类是静态的,它们的存在、语义和关系在程序执行前就已经定义好了,对象是动态的,它们在程序执行时可以被创建和删除。
(4)类是生成对象的模板。
4.抽象
抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性。
5.封装
封装是将相关的概念组成一个单元,然后通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。
对于银行账户类而言,有取款和存款的行为特征,但实现细节对于客户而言并不可见,所以在进行 ATM 提款交易的过程中,我们并不知道交易如何进行,对应账户是如何保存状态的,这就体现了对象的封装。
6.继承
继承表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的特征(attributes)和能力(operations),继承又可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承,Java是单继承的语言,而C++允许多继承。
假设类B继承类A,即类B中的对象具有类A 的一切特征(包括属性和操作)。类A称为基类或父类或超类,类B称为类A的派生类或子类,类B在类A的基础上还可以有一些扩展。
如图3-2所示,Dog和Cat类都是从Mammal继承而来,具有父类的eyeColor属性特征,因此在子类中就不用重复指定eyeColor这个属性。
图3-2 类的继承
7.多态
多态性是一种方法,这种方法使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态性使得一个属性或变量在不同的时期可以表示不同类的对象。
如图3-3所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea()的操作。但显而易见,Rectangle和Circle的getArea()方法的实现是完全不一样的,这就体现了多态的特征。
图3-3 多态
8.接口
所谓接口就是对操作规范的说明。接口只是说明操作应该做什么(What),但没有定义操作如何做(How)。接口可以理解成为类的一个特例,它只规定实现此接口的类的操作方法,而把真正的实现细节交由实现该接口的类去完成。
接口在面向对象分析和设计过程中起到了至关重要的桥梁作用,系统分析员通常先把有待实现的功能封装并定义成接口,而后期程序员依据此接口进行编码实现。
9.消息
消息(Message)是对象间的交互手段,其形式如下:
Message:[dest,op,para]
其中dest指目标对象Destination Object,op指操作Operation,para指操作需要的参数Parameters。
10.组件
组件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。可以认为组件是一个封装的代码模块或大粒度的运行时的模块,也可将组件理解为具有一定功能、能够独立工作或同其他组件组合起来协调工作的对象。
对于组件,应当按可复用的要求进行设计、实现、打包、编写文档。组件应当是内聚的,并具有相当稳定的公开的接口。
为了使组件更切合实际、更有效地被复用,组件应当具备“可变性”(variability),以提高其通用性。组件应向复用者提供一些公共“特性”,另一方面还要提供可变的“特性”。针对不同的应用系统,只需对其可变部分进行适当的调节,复用者要根据复用的具体需要,改造组件的可变“特性”,即“客户化”。
11.模式
模式是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题的解决方案。这样就能一次又一次地使用该方案而不必做重复劳动。
将设计模式引入软件设计和开发过程的目的在于充分利用已有的软件开发经验,这是因为设计模式通常是对于某一类软件设计问题的可重用的解决方案。
设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而能够帮助设计者更快更好地完成系统设计。
12.复用
软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。
3.4.2 可视化建模与统一建模语言
1.统一建模语言
1)统一建模语言的概念
统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,它是面向对象分析和设计的一种标准化表示,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。它记录了对所构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML标准包括相关概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被可视化建模工具所支持,这些工具提供了代码生成器和报表生成器等。UML 标准并没有定义一种标准的开发过程,但它比较适用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
UML 描述了系统的静态结构和动态行为,它将系统描述为一些独立的相互作用的对象,构成为外界提供一定功能的模型结构,静态结构定义了系统中重要对象的属性和服务,以及这些对象之间的相互关系,动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。
2)统一建模语言的特征
UML具有如下的语言特征。
(1)不是一种可视化的程序设计语言,而是一种可视化的建模语言。
(2)是一种建模语言规范说明,是面向对象分析与设计的一种标准表示。
(3)不是过程,也不是方法,但允许任何一种过程和方法使用它。
(4)简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改。
(5)为面向对象的设计与开发中涌现出的高级概念(如协作、框架、模式和组件)提供支持,强调在软件开发中,对架构、框架、模式和组件的重用。
(6)与最好的软件工程实践经验集成。
3)UML的发展历史
面向对象技术和UML的发展过程经历了长期的过程。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。至今,UML已发展至2.X版本。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
2.UML的设计目标
首先,最重要的目标是使 UML 成为一个通用的建模语言,可供所有建模者使用。它并非某人专有,而是建立在计算机界普遍认同的基础上,即它包括了各种主要的方法并可作为它们的建模语言。其次,UML应能够很好地支持设计工作,像封装、划分等记录模型构造思路。此外,UML 应该能够准确表达当前软件开发中的热点问题,比如软件规模、分布、并发、方式和团队开发等。
UML并不试图成为一个完整的开发方法,它不包括一步一步的开发过程。UML和使用UML的软件开发过程是两回事。UML可以支持很多的,至少是目前现有的大部分软件开发过程。UML包含了完整的概念,这些概念对于支持基于一个健壮的架构来解决用例驱动的迭代式开发过程是必要的。
UML的最终目标是在尽可能简单的同时能够对应用系统的各个方面建模。UML需要有足够的表达能力以便可以处理现代软件系统中出现的所有概念,如并发和分布,以及软件工程中使用的技巧,如封装和组件。它必须是一个通用语言,像任何一种通用程序设计语言一样,这就意味着 UML 必将十分庞大,它比先前的建模语言更复杂、更全面。
3.UML视图
UML 中的各种组件和概念之间没有明显的划分界限,但为方便起见,用视图来划分这些概念和组件。视图只是表达系统某一方面特征的 UML 建模组件的子集。在每一类视图中使用一种或多种特定的图来可视化地表示视图中的各种概念。
在最上一层,视图被划分成三个视图域:结构、动态行为和模型管理。
结构描述了系统中的结构成员及其相互关系。模型元素包括类、用例、构件和节点。模型元素为研究系统动态行为奠定了基础。结构视图包括静态视图、用例视图和实现视图。
动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的瞬间值的变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。
模型管理说明了模型的分层组织结构。包是模型的基本组织单元,特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。
UML 还包括多种具有扩展能力的组件,这些扩展能力有限但很有用。这些组件包括约束、构造型和标记值,它们适用于所有的视图元素。
在 UML 中,使用各种不同的符号元素,根据需求调研的结果,再由符号画成图形以表示待建系统的结构和行为。
UML提供了如下9种主要的图来对待建系统进行建模。
● 用例图(Use Case Diagram)
● 类图(Class Diagram)
● 对象图(Object Diagram)
● 构件图(Component Diagram)
● 部署图(Deployment Diagram)
● 状态图(State Diagram)
● 序列图(Sequence Diagram)
● 协作图(Collaboration Diagram)
● 活动图(Activity Diagram)
表3-1列出了UML的视图和视图所包括的图以及与每种图有关的主要概念。
3.4.3 使用面向对象技术进行软件开发的最佳实践——RUP
RUP 是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算的前提下,确保满足最终用户需求的高质量产品。
RUP是 Rational 公司开发和维护的过程产品。RUP 的开发团队与顾客、合作伙伴、Rational 产品小组及顾问公司共同协作,确保开发过程持续地更新和提高以反映新的经验和不断演化的实践经验。
RUP提高了团队生产力。对于所有的关键开发活动,它为每个团队成员提供了使用准则、模板、工具指导来进行访问的知识基础。而通过对相同知识基础的理解,无论是进行需求分析、设计、测试项目管理或配置管理,均能确保全体成员共享相同的知识、过程和开发软件的视图。
RUP能对大部分开发过程提供自动化的工具支持。它们被用来创建和维护软件开发过程(可视化建模、编程、测试等)的各种各样的产物——特别是模型。另外在每个迭代过程的变更管理和配置管理相关的文档工作支持方面也是非常有价值的。
RUP是可配置的过程。RUP 既适用小的开发团队也适合大型开发组织。RUP 建立简洁和清晰的过程结构为开发过程提供通用性。并且,它可以变更以容纳不同的情况。它还包含了开发工具包,为配置适应特定组织机构的开发过程提供了支持。
RUP以适合于大范围项目和机构的方式捕捉了许多现代软件开发过程的最佳实践。使用RUP作为指南,给开发团队提供了大量的关键优势。
RUP的6个基本最佳实践经验如下。
(1)迭代式开发。
(2)需求管理。
(3)使用以组件为中心的软件架构。
(4)可视化软件建模。
(5)验证软件质量。
(6)控制软件变更。
RUP的开发过程可以用二维结构或沿着两个坐标轴来表达,如图3-4所示。
软件生命周期被分解为周期,每一个周期都工作在产品的一个新版本上。RUP将周期又划分为4个连续的阶段,即初始阶段、细化阶段、构造阶段和交付阶段。每个阶段终结于良好定义的里程碑——某些关键决策必须做出的时间点,因此关键的目标必须被达到。
3.4.4 面向对象系统分析
面向对象的系统分析阶段将运用面向对象的方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。
图3-4 RUP的二维结构
1.面向对象的分析模型
面向对象的分析模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。
1)用例模型
一个用例模型可由若干幅用例图组成。用例描述了用户和系统之间的交互,其重点是系统为用户做什么。用例模型描述全部的系统功能行为。
2)类-对象模型
类-对象模型,描述系统所涉及的全部类以及对象。每个类和对象都通过属性、操作和调研者来进行进一步描述。
3)对象-关系模型
对象-关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者。对象-关系模型包括类图和对象图。
4)对象-行为模型
对象-行为模型,描述了系统的动态行为。对象-行为模型包括状态图、顺序图、协作图和活动图。
2.面向对象的分析方法
面向对象分析的主要目标如下。
(1)描述用户需要。
(2)建立创建软件设计的基础。
(3)定义软件完成后可被确认的一组需求。
3.面向对象的分析的步骤
(1)发现角色/参与者。
(2)发现用例。
(3)建立用例模型(use case model)。
(4)进行领域分析。
(5)建立对象-关系模型。
(6)建立对象-行为模型。
(7)建立功能模型。
3.4.5 面向对象系统设计
面向对象的系统设计阶段对分析阶段给出的问题域模型,用面向对象方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。设计阶段主要包括用例设计、类设计和子系统设计等。
1.用例设计
用例设计的主要目的如下。
(1)利用交互改进用例实现。
(2)调整对设计类的操作需求。
(3)调整对子系统和(或)它们的接口的操作需求。
(4)调整对封装体的操作需求。
一个系统的行为可以用许多方法来说明,包括协作或者交互的方法。用例设计通常使用交互(特别是序列图)来说明系统的行为。当系统或者子系统的行为主要通过同步消息传递来说明时,序列图非常有用。由于消息序列通常没有严格的定义,因此,尤其是在事件驱动系统中,异步消息传递更容易利用状态机和协作来进行说明。
2.类设计
类是设计工作的核心,系统的实际工作其实也是由类执行的。子系统、包、封装体以及协作关系等其他设计元素只是说明了类的组合方式或协同操作方式。
类设计的主要目的如下。
(1)确保类可为用例实现提供必需的行为。
(2)确保提供充足的信息来明确无误地实施类。
(3)处理和类有关的非功能性需求。
(4)包含用于类的设计机制。
3.子系统设计
子系统是一种模型元素,它具有包(可包含其他模型元素)和类(具有行为)的语义。子系统的行为由它所包含的类或其他子系统提供。子系统实现一个或多个接口,这些接口定义子系统可以执行的行为。子系统设计的主要目的如下。
(1)用所包含类的协作来定义在子系统接口中指定的行为。
(2)记录子系统的内部结构。
(3)定义子系统接口和包含类之间的实现关系。
(4)确定对其他子系统的依赖关系。
子系统的外部行为是通过它所实现的接口定义的。子系统实现了某个接口时,就意味着它支持该接口定义的每一个操作。
3.5 软件架构
3.5.1 软件架构定义
在软件工程发展的初期,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构设计和规范说明显得越来越重要,人们逐步认识到了软件架构的重要性。
软件总是有架构的,不存在没有架构的软件。将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现系统的全部特性,就是系统的架构。通常将一些经过实践证明的、可重复使用的软件架构设计策略总结成架构模式,以便与他人交流、供他人学习。软件架构借鉴了计算机架构和网络架构的许多思想和方法,近年来得到了极大的发展。
对于软件架构这一概念,迄今为止还没有一个公认的定义,可将其简单理解为:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,并由构成系统的元素的描述及元素的相互作用、元素集成的模式以及这些模式的约束组成。软件架构不仅确定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的各元素之间的对应关系,提供了一些设计决策的基本原则。需要注意如下几点。
(1)软件架构是一个程序或系统的构件的结构、构件间的关系以及控制构件设计演化的原则和方针。
(2)一个系统的软件架构由一组构件、构件间的连接件、构件和连接件的配置以及如何结合在一起的约束限制的描述组成。
(3)在计算的算法和数据结构之外,设计并确定系统整体结构成了新的问题。结构问题包括总体组织结构和全局控制结构、通信、同步和数据访问的协议、设计元素的功能分配、物理分布、设计元素的组成、可扩展性与性能、备选设计的选择等。
(4)软件架构所关心的是软件构件及软件构件间的组织结构、约束和关系,是对系统的组成、系统结构及系统如何工作的较为宏观的描述。
3.5.2 典型架构
软件架构设计的一个核心问题是能否使用重复的架构模式,即能否达到架构级的软件重用。也就是说,能否在不同的软件系统中,使用同一种架构。
软件架构模式描述了某一特定应用领域中系统的组织方式。它反映了领域中众多系统所共有的结构和语义特性,描述了如何将各个模块和子系统有效地组织成一个完整的系统。使用一些经过实践证实的解决方案(模式)可以有效地解决更多的软件开发问题。
几种常见的架构模式如下。
1.管道/过滤器模式
在管道/过滤器架构模式中,每个构件都有一组输入/输出,构件读取输入的数据流,经过内部处理后,产生输出数据流,该过程主要完成输入流的变换及增量计算。通常,将这里的构件称为过滤器,其中的连接器就像是数据流传输的管道,将一个过滤器的输出传送到另一过滤器的输入。管道/过滤器输出的正确性并不依赖于过滤器进行增量计算过程的顺序。
图3-5是管道/过滤器模式的示意图。
图3-5 管道/过滤器模式
管道/过滤器模式的优点如下。
(1)体现了各功能模块的“黑盒”特性及高内聚、低耦合的特点。
(2)可以将整个系统的输入/输出行为看成是多个过滤器行为的简单合成。
(3)支持软件功能模块的重用。
(4)便于系统维护:新的过滤器可以添加到现有系统中来,旧的可以由改进的过滤器替换。
(5)支持某些特定的分析,如吞吐量计算、死锁检测等。
(6)支持并行操作,每个过滤器可以作为一个单独的任务完成。
管道/过滤器模式的缺点如下。
(1)通常导致系统处理过程的成批操作。
(2)需要设计者协调两个相对独立但又存在关系的数据流。
(3)可能需要每个过滤器自己完成数据解析和合成工作(如加密和解密),从而导致系统性能下降,并增加了过滤器具体实现的复杂性。
2.面向对象模式
抽象数据类型概念对软件系统有着重要作用,面向对象模式建立在数据抽象和面向对象的基础上,将数据的表示方法及其相应操作封装在一个抽象数据类型或对象中。
面向对象模式的典型应用是基于构件的软件开发(Component-Based Development,CBD)。
图3-6是面向对象模式的示意图。
图3-6 面向对象模式
面向对象模式的优点如下。
(1)高度模块化。
(2)封装功能实现了数据隐藏。
(3)继承性提供了一种实现代码共享的手段。
(4)提供了系统的灵活性,便于维护及扩充。
面向对象系统的缺点在于:对象之间的调用需要知道所调用对象的标识。如果对象的标识发生改变,就必须通知所有调用该对象的对象。否则系统将可能无法正常运行。
3.事件驱动模式
事件驱动模式的基本原理是构件并不直接调用过程,而是触发一个或多个事件。系统中的其他构件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的构件过程,即触发事件会导致另一构件中过程的调用。
事件驱动模式的主要特点是事件的触发者并不知道哪些构件会受到事件的影响,且不能假定构件的处理顺序,甚至不知道会调用哪些过程,使用事件驱动模式的典型系统包括各种图形界面工具。
事件驱动模式的优点如下。
(1)支持软件重用,容易实现并发处理。
(2)具有良好的可扩展性,通过注册可引入新的构件,而不影响现有构件。
(3)可以简化客户代码。
事件驱动模式的缺点如下。
(1)构件削弱了自身对系统的控制能力。一个构件触发事件时,并不能确定响应该事件的其他构件及各构件的执行顺序。
(2)不能很好地解决数据交换问题。
(3)使系统中各构件的逻辑关系变得更加复杂。
4.分层模式
分层模式采用层次化的组织方式,每一层都是为上一层提供服务,并使用下一层提供的功能。这种模式允许将一个复杂问题逐步分层实现。层次模式中的每一层最多只影响两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。
分层模式的典型应用是分层通信协议,如ISO/OSI的七层网络模型。
图3-7是分层模式的示意图。
图3-7 分层模式
分层模式的优点如下。
(1)有助把复杂的问题按功能分解,使整体设计更为清晰。
(2)支持系统设计的逐级抽象。
(3)具有较好的可扩展性。
(4)支持复用。
分层模式的缺点如下。
(1)并不是每个系统都可以很容易地划分出层次来;同时,各层功能的划分也没有一个统一的、正确的抽象方法。
(2)层次的个数过多,系统性能可能会下降。
5.知识库模式
知识库模式采用两种不同的构件:中央数据结构构件说明当前状态,独立构件在中央数据存储上执行,中央数据构件与独立的外部构件间的相互作用是系统中的主要问题。
知识库模式有两种不同的控制策略:如果输入流触发进程执行的选择,则为基于传统数据库型的知识库模式;如果中央数据结构的当前状态触发进程执行的选择,则为基于黑板系统的知识库模式。
图3-8是黑板系统的示意图。黑板系统的典型应用是信号处理领域,如语音和模式识别。
图3-8 黑板系统的组成
黑板系统主要由以下三部分组成。
(1)知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。
(2)黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
(3)控制:完全由黑板的状态驱动,黑板状态的改变决定了需要使用的特定知识。
6.客户机/服务器模式
客户机/服务器(Client/Server,C/S)模式是基于资源不对等,为实现共享而提出的。C/S 模式将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。C/S 模式具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
图3-9是客户机/服务器模式的示意图,由两部分构成:前端是客户机,通常是PC;后端是服务器,运行数据库管理系统,提供数据库的查询和管理。
图3-9 客户机/服务器模式
C/S模式的优点如下。
(1)客户机与服务器分离,允许网络分布操作;二者的开发也可分开同时进行。
(2)一个服务器可以服务于多个客户机。
随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层C/S模式的缺点日益突出。
(1)客户机与服务器的通讯依赖于网络,可能成为整个系统运作的瓶颈;客户机的负荷过重,难以管理大量的客户机,系统的性能受到很大影响。
(2)如果服务器及其界面定义有改变,则客户机也要做相应改变。
(3)二层C/S模式采用单一服务器且以局域网为中心,难以扩展至广域网或Internet。
(4)数据安全性不好。客户端程序可以直接访问数据库服务器,使数据库的安全性受到威胁。
C/S模式适用于分布式系统,得到了广泛的应用。为了解决C/S模式中客户端的问题,发展形成了浏览器/服务器(Browser/Server,B/S)模式;为了解决C/S模式中服务器端的问题,发展形成了三层(多层)C/S模式,即多层应用架构。
软件架构模式为粗粒度的软件重用提供了可能。但是,由于考虑问题的角度不同,对于架构模式的选择会有很大的不同。为系统选择或设计架构时,需要根据特定项目的具体特点,进行分析比较后再确定。同时应注意:各种架构模式并不是互斥的,某些应用系统中可以综合使用多种架构模式。
3.5.3 软件架构设计方法
软件架构设计是动态的,设计的初期并不能完全确定下来,这与建筑设计不同。由于架构设计伴随着整个项目进行,因此在整个过程中一定要把握架构设计的目标。软件架构设计的总体目标可以概括如下。
(1)最大化复用:复用包括构件的复用和设计模式的使用等多个方面。
(2)复杂问题简单化:这也是中间件或多层技术的根本目标。在设计过程中,如果需要多个类协调完成某些功能时,应能正确使用适当的设计模式。
(3)灵活的扩展性:具备灵活的扩展性使得用户可以在架构上进行二次开发或更加具体的开发。
软件架构是软件系统中的核心元素,是系统中不易改变、比较稳定的部分,也是构建软件系统中其他部分的基础,因此系统架构的好坏从根本上决定了基于该架构所构建的软件系统的质量。系统的各个组成部分正是通过架构所描绘的方式协同工作共同完成系统的功能,从而得到一个完整的系统。由于系统的本质是不易改变的,所以如果一个架构能够真实地反映出系统的本质,那么就可以使基于该架构建立的系统具有比较长的生命力,否则该系统的质量就会逐步降级,直至崩溃。系统架构的构建一直是软件开发过程中的一项重要工作,同时也是一项很困难的工作,即便对于很有经验的系统架构师也是如此。模式的应用则给出了一条构建系统架构的有效途径。
要建立一个正确的架构,首先要分析系统中的一些抽象概念(相对稳定的部分)。针对问题领域中的概念进行分类,把看上去不同但本质上属于同一类的概念用一个抽象的概念表示出来,然后基于这些抽象概念创建架构,确定各抽象概念之间的关系。在创建架构过程中,需要考虑重用性、通用性等问题,使用适当的模式作为指导原则设计解决方案。
很多模式本身就是针对系统架构提出的,例如模型-视图-控制器(Model-View-Controller,MVC)是专门针对交互系统提出的。如果要构建一个交互系统,可以直接应用 MVC 模式,然后在该模式的场景下去发现模型、视图及控制器;同时,在这个大场景的指导下根据其他需求构建一些小场景(可以使用其他模式)对系统进行有效的细化。
模式和系统架构有很大的相似性,都是处理一些抽象概念间的关系,但是二者有很大的不同。模式是领域无关的,解决某些抽象问题;而系统架构则针对所要解决的实际问题,是领域相关的。可以通过对问题领域的分析、分解,找到与解决问题相匹配的模式,把各种模式结合在一起构建整个系统架构。
3.5.4 软件架构分析与评估
对于目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题。
(1)关系数据库与对象数据库的选择问题:应尽量采用关系数据库。关系数据库系统自身已经较为成熟,并且有很好的第三方厂商工具的支持。对象数据库系统没有关系数据库系统成熟,其设计出的系统可移植性差。尽管对象数据库更适合于面向对象系统,但对第三方厂商提供的工具,如报表系统、数据仓库系统等,并没有提供很好的支持。
(2)用户界面选择使用HTML:HTML界面的开发和维护比其他图形界面应用程序更容易。此外,HTML使用的HTTP(S)协议可以穿越防火墙,解决了Internet应用中的一个重要问题。
(3)灵活性和性能的考虑:在开发系统之前,需要权衡独立于厂商抽象定义所提供的灵活性和特定厂商产品带来的性能。一般情况下,特定厂商产品的执行性能会比独立于厂商的抽象定义好,但是其灵活性会大打折扣,客户一旦选择了特定厂商开发的产品,用户选择其他产品的余地会受到很大的限制。
(4)技术的选择:选择成熟的技术可以规避项目风险。掌握技术不仅需要理解技术是什么及如何运用,还需要理解技术的适用范围和局限性。
(5)聘请经验丰富的架构设计师:可以有效地保证项目的成功。
3.5.5 软件中间件
1.中间件简述
随着计算机软硬技术的迅速发展,越来越多的应用程序需要运行在网络环境的异构平台上。在分布的异构环境中,通常存在多种硬件系统平台(如PC、工作站、小型机等),而这些硬件平台上又存在各种软件(如不同的操作系统、数据库、用户界面等)。为了解决分布系统的异构问题,人们提出了中间件(Middleware)概念。
中间件是位于硬件、操作系统等平台和应用之间的通用服务,如图3-10所示,这些服务具有标准的程序接口和协议。不同的硬件及操作系统平台,可以有符合接口和协议规范的多种实现。
图3-10 中间件的应用结构
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源,它位于客户机/服务器的操作系统之上,管理计算机资源和网络通信。其主要目的是实现应用与平台的无关性。满足大量应用的需要、运行于多种硬件和操作系统平台、支持分布计算、提供跨网络/硬件/操作系统平台的应用或服务的透明交互、支持标准的协议、支持标准的接口,这些都是任何一类中间件所具备的特点。
中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制满足不同领域的应用需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。但是,中间件服务所应遵循的原则离实际还有很大距离。多数流行的中间件使用专有的API和专有的协议,使应用只能构建在单一厂家的产品之上,来自不同厂家的实现很难互操作。有些中间件只提供某些平台的实现,限制了应用在异构系统之间的移植。开发人员在这些中间件之上建立自己的应用还要承担相当大的风险,往往要面临许多设计选择,同时随着技术的发展还可能需要重写系统。
中间件包括的范围十分广泛,针对不同的应用需求有各种不同的中间件产品。从不同的角度对中间件的分类也会有所不同。通常将中间件分为数据库访问中间件、远程过程调用中间件、面向消息中间件、事务中间件、分布式对象中间件等几类。
2.几种主要的中间件
1)数据库访问中间件
数据库访问中间件通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型的技术如Windows平台的ODBC和Java平台的JDBC等。
2)远程过程调用
远程过程调用(Remote Procedure Call,RPC)是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:服务器和客户机。服务器提供一个或多个远程过程;客户机向服务器发出远程调用。服务器和客户机可以位于同一台计算机,也可以位于不同的计算机,甚至可以运行在不同的操作系统之上。客户机和服务器之间的网络通讯和数据转换通过代理程序(stub与skeleton)完成,从而屏蔽了不同的操作系统和网络协议。RPC 为客户机/服务器的分布计算提供了有力的支持。但是,RPC所提供的是基于过程的服务访问,客户机与服务器进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。
3)面向消息中间件
面向消息中间件(Message-Oriented Middleware,MOM)利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息排队模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。典型的产品如IBM的MQSeries。
通过使用MOM,通信双方的程序(称其为消息客户程序)可以在不同的时间运行,程序不在网络上直接通话,而是间接地将消息放入MOM服务器的消息机制中。因为程序间没有直接的联系,所以它们不必同时运行:消息放入适当的队列时,目标程序不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
消息客户程序之间通过将消息放入消息队列或从消息队列中取出消息来进行通讯。客户程序不直接与其他程序通信,避免了网络通讯的复杂性。消息队列和网络通信的维护工作由MOM完成。
4)分布式对象中间件
随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,并发展成为当今软件技术的主流方向。典型的产品如OMG的CORBA、Sun的RMI/EJB、Microsoft的DCOM等。
OMG提出的对象请求代理(Object Request Broker,ORB)模型提供了一个通信框架,可以在异构分布计算环境中透明地传递对象请求。ORB是一种对象总线,定义了异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间客户机/服务器关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地机器也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。客户对象并不知道同服务器对象通讯、激活或存储服务器对象的机制,也不必知道服务器对象位于何处、使用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统组成部分。
5)事务中间件
事务中间件,也称事务处理监控器(Transaction Processing Monitor,TPM)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理也提出了需求。事务处理监控程序位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提高系统的整体性能。典型产品如BEA的Tuxedo。随着对象技术与事务技术的结合,近年还出现了一类新产品,即对象事务监控器(Object Transaction Monitor,OTM),可以保证分布式对象的事务完整性,支持EJB的J2EE应用服务器就属于该类产品。
事务处理监控器在操作系统之上提供了一组服务,可以对客户请求进行管理并为其分配相应的服务进程,使服务器在有限的系统资源下能够高效地为大量客户提供服务。
3.6 典型应用集成技术
3.6.1 数据库与数据仓库技术
传统的数据库技术以单一的数据资源即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要有操作型处理和分析型处理两类。操作型处理也称事务处理,指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改,主要为企业的特定应用服务,强调处理的响应时间、数据的安全性和完整性等;分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。传统数据库系统主要强调的是优化企业的日常事务处理工作,难以实现对数据分析处理要求,无法满足数据处理多样化的要求。操作型处理和分析型处理的分离成为必然。
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。可以从两个层次理解数据仓库:首先,数据仓库用于决策支持,面向分析型数据处理,不同于企业现有的操作型数据库;其次,数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。
与操作型数据库相比,数据仓库的主要特点如下。
(1)面向主题:操作型数据库的数据面向事务处理,各个业务系统之间各自分离,而数据仓库中的数据按主题进行组织。主题指的是用户使用数据仓库进行决策时所关心的某些方面,一个主题通常与多个操作型系统相关。
(2)集成:面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,消除了源数据中的不一致性,保证数据仓库内的信息是整个企业的一致性的全局信息。
(3)相对稳定:操作型数据库中的数据通常是实时更新的,数据根据需要及时发生变化。而数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,只有少量的修改和删除操作,通常只需定期加载、刷新。
(4)反映历史变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时刻到当前各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础的。数据仓库不是静态的概念,只有将信息及时地提供给需要这些信息的使用者,供其做出改善自身业务经营的决策,信息才能发挥作用,信息才有意义。将信息加以整理归纳和重组,并及时地提供给相应的管理决策人员,是数据仓库的根本任务。数据仓库系统的结构通常包含4个层次,如图3-11所示。
图3-11 数据仓库系统结构
在数据仓库的结构中,数据源是数据仓库系统的基础,通常包括企业内部信息和外部信息。内部信息包括存放于数据库中的各种业务处理数据和各类文档数据;外部信息包括各类法律法规、市场信息和竞争对手的信息等。
数据的存储与管理是整个数据仓库系统的核心。数据仓库的组织管理方式决定了其对外部数据的表现形式。需要根据数据仓库的特点决定所采用的产品和技术,并针对现有各业务系统的数据,进行抽取、清理及有效集成,按主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)两种。
OLAP服务器对分析需要的数据进行有效集成,按多维模型组织,以便进行多角度、多层次的分析,并发现趋势。具体实现可以分为ROLAP、MOLAP和HOLAP。ROLAP的基本数据和聚合数据均存放在关系数据库中;MOLAP 的基本数据和聚合数据均存放在多维数据库中;HOLAP 的基本数据存放在关系数据库中,聚合数据存放在多维数据库中。
前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
3.6.2 Web Services技术
随着Internet应用逐渐成为一个B2B应用平台,应用集成所面临的问题也日益突出:各种构件之间的“战争”、各种编程语言之间的“战争”、防火墙的阻挡、互操作协议的不一致等。Web 服务(Web Services)定义了一种松散的、粗粒度的分布计算模式,使用标准的HTTP(S)协议传送XML表示及封装的内容。Web服务的典型技术包括:用于传递信息的简单对象访问协议(Simple Object Access Protocol,SOAP)、用于描述服务的Web服务描述语言(Web Services Description Language,WSDL)、用于Web服务的注册的统一描述、发现及集成(Universal Description Discovery and Integration,UDDI)、用于数据交换的XML。
Web服务的主要目标是跨平台的互操作性,适合使用Web Services的情况如下。
(1)跨越防火墙:对于成千上万且分布在世界各地的用户来讲,应用程序的客户端和服务器之间的通信是一个棘手的问题。客户端和服务器之间通常都会有防火墙或者代理服务器。用户通过Web服务访问服务器端逻辑和数据可以规避防火墙的阻挡。
(2)应用程序集成:企业需要将不同语言编写的在不同平台上运行的各种程序集成起来时,Web服务可以用标准的方法提供功能和数据,供其他应用程序使用。
(3)B2B 集成:在跨公司业务集成(B2B 集成)中,通过 Web 服务可以将关键的商务应用提供给指定的合作伙伴和客户。用Web服务实现B2B集成可以很容易地解决互操作问题。
(4)软件重用:Web服务允许在重用代码的同时,重用代码后面的数据。通过直接调用远端的Web服务,可以动态地获得当前的数据信息。用Web服务集成各种应用中的功能,为用户提供一个统一的界面,是另一种软件重用方式。
在某些情况下,Web服务也可能会降低应用程序的性能。不适合使用Web服务的情况如下。
(1)单机应用程序:只与运行在本地机器上的其他程序进行通信的桌面应用程序最好不使用Web服务,只用本地的API即可。
(2)局域网上的同构应用程序:使用同一种语言开发的在相同平台的同一个局域网中运行的应用程序直接通过TCP等协议调用,会更有效。
3.6.3 J2EE架构、.NET架构
1.J2EE架构
J2EE(Java 2 Platform Enterprise Edition)是由Sun公司主导、各厂商共同制定并得到广泛认可的工业标准。业界各主要中间件厂商如IBM、Oracle都在积极地促进该标准的推广和应用。
J2EE应用将开发工作分成两类:业务逻辑开发和表示逻辑开发,其余的系统资源则由应用服务器自动处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期、有效地保护企业的投资。
完整的J2EE技术规范由如下4个部分组成。
(1)J2EE平台:运行J2EE应用的环境标准,由一组J2EE规范组成。
(2)J2EE 应用编程模型:用于开发多层瘦客户应用程序的标准设计模型,由 Sun提供应用蓝图(BluePrints)。
(3)J2EE兼容测试套件:用来检测产品是否同J2EE平台兼容。
(4)J2EE参考实现:与平台规范同时提供的、实现J2EE平台基本功能的J2EE服务器运行环境。
J2EE应用服务器运行环境包括构件(Component)、容器(Container)及服务(Services)三部分。构件是表示应用逻辑的代码;容器是构件的运行环境;服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。
J2EE规范包含了一系列构件及服务技术规范。
(1)JNDI:Java命名和目录服务,提供了统一、无缝的标准化名字服务。
(2)Servlet:Java Servlet是运行在服务器上的一个小程序,用于提供以构件为基础、独立于平台的Web应用。
(3)JSP:Java Servlet的一种扩展,使创建静态模板和动态内容相结合的HTML和XML页面更加容易。
(4)EJB:实现应用中关键的业务逻辑,创建基于构件的企业级应用程序。EJB 在应用服务器的EJB容器内运行,由容器提供所有基本的中间层服务,如事务管理、安全、远程客户连接、生命周期管理和数据库连接缓冲等。
(5)JCA:J2EE连接器架构,提供一种连接不同企业信息平台的标准接口。
(6)JDBC:Java数据库连接技术,提供访问数据库的标准接口。
(7)JMS:Java消息服务,提供企业级消息服务的标准接口。
(8)JTA:Java事务编程接口,提供分布事务的高级管理规范。
(9)JavaMail:提供与邮件系统的接口。
(10)RMI-IIOP:提供应用程序的通信接口。
2..NET架构
微软的.NET 是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。.NET开发框架如图3-12所示。
图3-12.NET开发框架
通用语言运行环境(Common Language Runtime)处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理,等等。
基础类库(Base Class Library)给开发人员提供了一个统一的、面向对象的、层次化的、可扩展的编程接口,使开发人员能够高效、快速地构建基于下一代互联网的网络应用。
ADO.NET 技术用于访问数据库,提供了一组用来连接到数据库、运行命令、返回记录集的类库。ADO.NET提供了对XML的强大支持,为XML成为.NET中数据交换的统一格式提供了基础。同时,ADO.NET引入了DataSet的概念,在内存数据缓冲区中提供数据的关系视图,使得不论数据来自于关系数据库,还是来自于一个 XML 文档,都可以用一个统一的编程模型来创建和使用,提高了程序的交互性和可扩展性,尤其适合于分布式的应用场合。
ASP.NET 是.NET 中的网络编程结构,可以方便、高效地构建、运行和发布网络应用。ASP.NET网络表单使开发人员能够非常容易地创建网络表单,它将快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。ASP.NET中还引入服务器端控件,该控件是可扩展的,开发人员可以构建自己的服务器端控件。ASP.NET还支持Web服务(Web Services)。在.NET 中,ASP.NET应用不再是解释脚本,而采用编译运行,再加上灵活的缓冲技术,从根本上提高了性能。
传统的基于 Windows 的应用(Win Forms),仍然是.NET 中不可或缺的一部分。在.NET中开发传统的基于Windows的应用程序时,除了可以利用现有的技术(如ActiveX控件以及丰富的 Windows 接口)外,还可以基于通用语言运行环境开发,可以使用ADO.NET、Web服务等。
.NET支持使用多种语言进行开发,目前已经支持VB、C++、C#和JScript等语言以及它们之间的深层次交互。.NET还支持第三方的.NET编译器和开发工具,这意味着几乎所有市场上的编程语言都有可能应用于微软的.NET开发框架。
Visual Studio.NET作为微软的下一代开发工具,和.NET开发框架紧密结合,提供了一个统一的集成开发环境和工具,可以极大地提高开发效率。
J2EE与.NET都可以用来设计、开发企业级应用。J2EE平台是业界标准,有超过50家厂商实现了这些标准(工具、应用服务器等)。.NET是微软自己的产品系列,而非业界标准。这使二者在实现技术及应用等各方面均有很多不同之处。
3.6.4 工作流技术
工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流管理系统(Workflow Management System,WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。
3.6.5 构件及其在系统集成项目中的重要性
构件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节。这个封装体就常常地被称作构件。在这一封装过程中,为了完成某一规则的封装,可以用任何支持构件编写的工具来完成,而最终完成的构件则与语言本身已经没有了任何的关系,甚至可以实现跨平台。对我们而言,它就是实现了某些功能的、有输入输出接口的黑匣子。
构件封装了系统运行的各种规则甚至运行环境,而构件对象(构件的集合),要考虑到构件对象中的各个构件的协调功能。构件有其自身的规则实现,而规则的实现又具体到了接口的实现,构件对象本身也是一个构件,也有业务逻辑规则需要处理,要起到相关构件的协调作用。
3.6.6 常用构件标准
1.COM/DCOM/COM+
COM是个开放的组件标准,它有很强的扩充和扩展能力。COM把组件的概念融入到Windows应用中。DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM成为一个完整的组件架构。COM+将COM、DCOM和MTS形成一个全新的、功能强大的组件架构。
DCOM是基于客户机和服务器模型的,客户程序和构件程序是相对的,进行功能请求调用的是客户程序而响应该请求的是构件程序。构件程序也可以作为客户程序去调用其他的构件程序,正是这种角色的转换和相互调用关系使构件程序最终构成一个软件系统。
COM+并不是COM的新版本,我们可以把它理解为COM的新发展,或者为COM更高层次上的应用。COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。COM+倡导了一种新的概念,它把 COM 组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统。
COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现,已经成为Microsoft系统平台策略和软件发展策略的一部分。COM+继承了COM几乎全部的优势,同时又避免了 COM 实现方面的一些不足。COM+紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。
2.CORBA
CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是由OMG组织制订的一种标准的面向对象的应用程序体系规范。或者说 CORBA架构是对象管理组织(Object Management Group,OMG)为解决分布式处理环境(Distributed Computing Environment,DCE)中硬件和软件系统的互连而提出的一种解决方案。
OMG 组织成立后不久就制订了对象管理架构(Object Management Architecture,OMA)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理(Object Request Broker,ORB)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明地发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
CORBA标准由OMG设立并进行控制。CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA 标准主要分为三个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。
3.EJB
EJB 用于封装业务,而业务可分为业务实体和业务过程。在 J2EE 模型当中,中间层的业务功能通过EJB构件实现,使用JSP实现业务逻辑处理结果的动态发布,构成动态的HTML页面,中间层也可以使用Servlet实现更为灵活的动态页面。
EJB 组件存活在 EJB 容器中,客户应用程序通过其业务和主接口访问它们。主接口封装构件的生命周期方法(创建、破坏、查找)。业务口定义了业务方法,客户使用EJB组件的主接口来获取对EJB组件的业务接口的引用;实现类是真正的分布式对象,在运行时被实例化,客户端对业务接口的调用实际是对实现类的访问。
3.7 计算机网络知识
3.7.1 网络技术标准与协议
网络中不同的工作站、服务器之间能传输数据,源于协议的存在。随着网络的发展,不同的开发商开发了不同的通信方式。为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言。因而必须开发严格的标准以定义主机之间的每个包中每个字中的每一位。这些标准来自于多个组织的努力,约定好通用的通信方式,即协议。
已经开发了许多协议,但是只有少数被保留下来。当今局域网中最常见的三个协议是微软的NETBEUI、NOVELL的IPX/SPX和跨平台TCP/IP。
1.NETBEUI
NETBEUI是为IBM开发的非路由协议,用于携带NETBIOS通信。NETBEUI缺乏路由和网络层寻址功能,既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网络层头尾,所以很快并很有效且适用于只有单个网络或整个环境都桥接起来的小工作组环境。
因为不支持路由,所以 NETBEUI 永远不会成为企业网络的主要协议。NETBEUI帧中唯一的地址是数据链路层介质访问控制(Medium Access Control,MAC)地址,该地址标识了网卡但没有标识网络。路由器靠网络地址将帧转发到最终目的地,而NETBEUI帧完全缺乏该信息。
2.IPX/SPX
IPX是NOVELL用于NETWARE客户端/服务器的协议群组,避免了NETBEUI的弱点,但是,带来了新的弱点。IPX 具有完全的路由能力,可用于大型企业网。它包括32位网络地址,在单个环境中允许有许多路由网络。
IPX 的可扩展性受到其高层广播通信和高开销的限制。服务广告协议(Service Advertising Protocol,SAP)将路由网络中的主机数限制为几千。尽管 SAP 的局限性已经被智能路由器和服务器配置所克服,但是,大规模 IPX 网络的管理仍是非常困难的工作。
3.TCP/IP
TCP/IP允许与Internet完全的连接。TCP/IP同时具备了可扩展性和可靠性的需求;但其牺牲了速度和效率。
Internet的普遍使用是TCP/IP至今广泛使用的原因。该网络协议在全球应用最广。
3.7.2 Internet技术及应用
Internet 并非是完美计划的结果,Internet 的创始人也绝不会想到它能发展成目前的规模和影响。在 Internet 面世之初,没有人能想到它会进入千家万户,也没有人能想到它的商业用途。1983年,ARPA和美国国防部通信局研制成功了用于异构网络的TCP/IP协议,美国加利福尼亚伯克利分校把该协议作为其BSD UNIX的一部分,使得该协议得以在社会上流行起来,从而诞生了真正的Internet。
近十年来,随着社会科技、文化和经济的发展,特别是计算机网络技术和通信技术的大发展,随着人类社会从工业社会向信息社会过渡的趋势越来越明显,人们对信息的意识,对开发和使用信息资源的重视越来越强,这些都强烈刺激了 ARPAnet 和 NSFnet的发展,使联入这两个网络的主机和用户数目急剧增加。
今天的 Internet 已不再是计算机人员和军事部门进行科研的领域,而是变成了一个开发和使用信息资源的覆盖全球的信息海洋。在 Internet 上,按从事的业务分类包括了广告公司、航空公司、农业生产公司、艺术、导航设备、书店、化工、通信、计算机、咨询、娱乐、财贸、各类商店以及旅馆等100多类,覆盖了社会生活的方方面面,构成了一个信息社会的缩影。1995年,Internet开始大规模应用在商业领域。
由于商业应用产生的巨大需求,从调制解调器到诸如Web服务器和浏览器的Internet应用市场都分外红火。在Internet蓬勃发展的同时,其本身随着用户的需求的转移也发生着产品结构上的变化。Internet 已成为目前规模最大的国际性计算机网络。Internet 的应用也渗透到了各个领域,从学术研究到股票交易,从学校教育到娱乐游戏,从联机信息检索到在线居家购物等,都有长足的进步。
从目前的情况来看,Internet市场仍具有巨大的发展潜力,未来其应用将涵盖从办公室共享信息到市场营销、服务等广泛领域。另外,Internet带来的电子贸易正改变着现今商业活动的传统模式,其提供的方便而广泛的互连必将对未来社会生活的各个方面带来影响。
然而Internet也有自身的烦恼,例如,安全性问题就是困扰Internet用户发展的一个重要因素。虽然现在已有不少的方案和协议来确保 Internet 网上的联机商业交易的可靠进行,但真正适用并将主宰市场的技术和产品目前尚不明确。
3.7.3 网络分类
网络分类标准有两种:分布范围和网络拓扑结构。
1.按照分布范围分布
1)局域网
局域网(Local Area Network,LAN)是最常见并且应用最广泛的一种网络。局域网一般位于一个建筑物或一个单位内,不存在寻径问题,不包括网络层的应用。这种网络的特点是连接范围窄,用户数少,配置容易,并且连接速率高。IEEE的802标准委员会定义了多种主要的局域网,即Ethernet(以太网)、Token King(令牌环网)、FDDI(光纤分布式接口网络)、ATM(异步传输模式网)以及WLAN(无线局域网)。
2)城域网
城域网采用的是IEEE802.6 标准。它是一种最大可覆盖城市及其郊区范围、提供丰富业务和支持多种通信协议的公用网,实际是一种带有某些广域网特点的本地应用型公用网络。可以说城域网的关键特征是公用多业务网。一个完整的城域网在垂直方向上由城域传送网、城域承载网、城域业务/应用网及支撑网(如信令网、同步网、管理及用户支撑系统)组成。城域传送网和城域分组承载网共同构成了整个城域网的基础承载平台。城域业务/应用网是整个城域网各种业务和应用的提供平台,由具体的业务与应用系统组成,如城域会议电视网、城域IP电话网、城域远程教育网等。目前大家经常提及的城域网通常指由城域传送网和城域分组承载网共同构成的基础承载平台。
目前城域网应用比较多的模式有以下几种。
(1)SDH多业务平台。SDH发展为多业务传送平台MSTP,增加了提供以太网业务和IP承载的能力。MSTP的技术基础是SDH,但提供多种业务接口以支持以太网与ATM等数据类业务才是MSTP的关键价值所在。MSTP的引入不但可以充分利用现有丰富的SDH网络资源,借鉴SDH的网络运维和管理经验,完全兼容目前还在大量应用的TDM业务,还可以实现以太网、ATM等多种业务的综合传送和接入,满足日益增长的数据业务需求。所以对于已经拥有丰富SDH网络和大量TDM业务的传统运营商,MSTP是最直接有效的城域传送网解决方案。
(2)弹性分组环多业务平台。IEEE 802.17弹性分组环(RPR)是一种改进的以太网解决方案,属于中间层增强技术。它采用一种新的共享接入方式,将IP包通过新的MAC层送入底层数据帧内或裸光纤上,无需进行包的拆分重组,提高了交换处理能力,改进了网络性能和灵活性。RPR 既可以工作在 SDH 和千兆以太网上,也可以直接工作在裸光纤上作为路由器的线路接口板。早期的独立RPR设备架构在以太网上,后来发展成架构在SDH上,成为新一代MSTP的内嵌功能,从而充分利用二者的优势。
(3)电信级以太网多业务平台。随着网络中IP/以太网业务量的日益增加以及基于以太网技术的新型解决方案的不断出现,电信级以太网多业务平台在城域网中的 DWDM/CWDM 将在城域/接入网中发挥越来越大的作用。众所周知,密集波分复用(Dense Wavelength Division Multiplexing,DWDM)已经在干线网中普遍采用,它也将在城域网中发挥重要作用。具有业务透明,连接灵活,功耗低,体积小,价格低等一系列优点的稀疏波分复用(Coarse Wavelength Division Multiplexing,CWDM)将在城域/接入网,特别是在未来的接入网中,发挥巨大的作用。
3)广域网(WAN)
广域网(Wide Area Network,WAN)也称为“远程网”,所覆盖的范围比城域网更广。它一般连接不同城市之间的LAN或者MAN网络。地理范围可以从几百千米到几千千米。因为距离较远,信息衰减比较严重,所以这种网络一般要租用专线。通过接口信息处理(Interface Message Processing,IMP)协议和线路连接起来构成网状结构,解决寻径问题。这种网络因为所连接的用户多,总出口带宽有限,所以用户的终端速率一般都很低。
4)因特网
无论从地理范围还是从网络规模来看,它都是最大的一种网络。这种网络的最大特点就是不定性——整个网络中的计算机每时每刻都在不断变化;其优点也非常明显——信息量大,并且传播广。
2.按网络拓扑结构分类
网络拓扑结构是网络中的通信线路、计算机以及其他构件的物理布局。它主要影响网络设备的类型和性能、网络的扩张潜力,以及网络的管理模式等。按网络拓扑结构分类,通常分为总线型拓扑、星型拓扑、环型拓扑以及它们的混合型拓扑。
1)总线型拓扑结构
总线型拓扑结构是指使用同一媒体或电缆连接所有端用户的方式,其传输介质是单根传输线,通过相应的硬件接口将所有的站点直接连接到干线电缆即总线上。任意时刻只有一台机器是主站,可向其他站点发送信息。其传递方向总是从发送信息的节点开始向两端扩散,因此称为“广播式计算机网络”。
使用这种结构必须解决的一个问题就是要确保两台或更多台机器同时发送信息时不出现冲突。这就需要引入一种仲裁机制来进行判决。例如当两个或更多的分组发生冲突时,计算机就等待一段时间,然后尝试发送。该机制可以采用分布式的,也可以是集中式的。IEEE802.3(即通常说的以太网)采用分布式控制,速率为10Mb/s或100Mb/s。
总线型拓扑的优点有结构简单、易于扩充、控制简单、便于组网、造价成本低,以及某个站点的故障一般不会影响整个网络等;缺点是可靠性较低,以及查找分支故障困难等。
2)星型拓扑结构
星型拓扑结构是指各工作站以星型方式连接成网,网络的中央节点和其他节点直接相连。这种结构以中央节点为中心,因此又称为“集中式网络”。
3)环型拓扑结构
环型网络将计算机连成一个环。在环型网络中,每台计算机按位置不同有一个顺序编号,信号按计算机编号顺序以“接力”方式传输。
3.7.4 网络管理
规划网络发展和组建网络、新增或升级网络设备,都是网络管理的具体内容;一般的网络维护则包括网络故障检测和维修(包括硬件和软件)以及保障网络安全。另外,网站中主页的制作与更新、BBS站台的建设与管理等也可纳入网络管理的内容。
简单地说,网络管理的工作主要包含4个方面:网络设备的管理、服务器的管理、资源的管理和用户的管理。
1.网络设备的管理
网络设备的管理是网管工作中的重点。要管理网络设备,就必须知道网络在物理上是如何连接起来的,网络中的终端如何与另一终端实现互访与通信,如何处理速率与带宽的差别等。要解决这些问题,就要首先了解路由器、交换机、网关等设备。网络系统由特定类型的传输介质和网络适配器(亦称网卡)互连在一起,并由网络操作系统监控和管理。网络管理员对网络设备的管理主要是对路由器、交换机及线路的管理。
2.服务器的管理
服务器是一种特殊的计算机,它是网络中为端计算机提供各种服务的高性能计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及专用通信设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。
一般来说在一个网络中需要建立多个服务器方能提供不同的服务需求,一般网络需要的服务器主要有下面几种:Web服务器、E-mail服务器、FTP服务器、DNS服务器、Proxy(代理服务)器和数据库服务器等。
3.资源的管理
网络中的资源很多,如IP地址资源、域名资源和磁盘资源等,只有管理好这些资源才能够让网络为用户提供更好的服务。
4.用户的管理
对用户的管理包括添加或删除用户,授予用户一定的访问权限,分配不限级别的资源给不同的用户,并保证网络的安全。
在OSI网络管理标准中定义了网络管理的五大功能:配置管理、性能管理、故障管理、安全管理和计费管理,这五大功能是网络管理最基本的功能。另外需要一提的是现在比较流行的桌面管理,事实上,网络管理还应该包括其他一些功能,例如网络规划、网络操作人员的管理等。
1)配置管理
自动发现网络拓扑结构,构造和维护网络系统的配置。监测网络被管对象的状态,完成网络关键设备配置的语法检查,配置自动生成和自动配置备份系统,对于配置的一致性进行严格的检验。
2)故障管理
过滤、归并网络事件,有效地发现、定位网络故障,给出排错建议与排错工具,形成整套的故障发现、告警与处理机制。
3)性能管理
采集、分析网络对象的性能数据,监测网络对象的性能,对网络线路质量进行分析。同时,统计网络运行状态信息,对网络的使用发展作出评测、估计,为网络进一步规划与调整提供依据。
4)安全管理
结合使用用户认证、访问控制、数据传输、存储的保密与完整性机制,以保障网络管理系统本身的安全。维护系统日志,使系统的使用和网络对象的修改有据可查。控制对网络资源的访问。
5)计费管理
对网际互联设备按IP地址的双向流量统计,产生多种信息统计报告及流量对比,并提供网络计费工具,以便用户根据自定义的要求实施网络计费。
6)桌面管理
主要包括如下功能。
(1)桌面资产统计:统计办公网络中所有计算机软硬件资产信息,可根据用户需求,定制开发企业的资产管理系统。
(2)根据桌面的安全漏洞下载最新补丁包,进行补丁分发、安装。
(3)可自动分发、安装商用程序,实现终端标准化。
(4)可自动对客户端进行操作系统部署,客户端无需手动安装。
(5)服务器监控软件的使用频率,统计软件资产利用率。
(6)对客户端的故障问题进行远程故障排除,降低解决问题的时间。
(7)可定制报表开发:手工定制生成资产统计报表、软件或补丁分发管理报表。
3.7.5 网络服务器
在早期的信息技术应用中,计算机设备的成本非常高,数量也有限,信息系统应用模式采用的是一台计算机主机带几十台或者上百台终端的多用户模式。终端由显示器、键盘和串行通信设备组成,所有的信息存储和处理都必须由主机完成。随着超大规模集成电路技术的发展和成本下降,小型/微型计算机增加迅猛,进而产生了计算机之间为信息共享和协同工作而组成的计算机网络。作为最重要的网络资源设备,服务器按其发展历程可分为如下几种。
1.文件服务器
计算机网络诞生初期最原始的一种基本应用模式是资源共享。其功能体现在利用服务器的海量存储和优秀的吞吐能力,为网络中连接的工作站及工作站群提供资源共享服务。包括建立共享文档库、共享程序库,以及建立在并发控制和冲突控制基础上的文件型数据库服务等。文件服务器已经拥有比较完备的磁盘设备管理和用户安全管理体系。
2.数据库服务器
分布式协同信息处理是目前计算机网络应用的核心之一,也是资源共享的延伸。谈到数据库服务,我们就要提到客户机/服务器(C/S)模式。虽然从定义上,C/S 模式是指将事务处理分解为服务端和客户端分别进行的网络系统,但绝大多数的C/S应用系统是数据库系统。服务器中操作系统的作用被淡化了,起主要作用的是大型数据库系统的服务程序,例如Oracle、SQL Server等。C/S模式是一种两层结构的系统:第一层处于客户机系统上,包括用户界面系统、业务处理程序、数据库接口、递交数据库SQL请求与结果处理等;第二层处于数据库服务器,主要用来接收和处理SQL请求并将结果返回客户端。
3.Internet/Intranet通用服务器
通用服务器的特点是异构网络环境下统一简化的客户端平台和广域网互通互连基础上的信息发布、采集、利用和高度资源共享,是现阶段用户最多的网络服务应用类型。主要包括Web(WWW)、E-mail、DNS、目录服务等服务应用。
4.应用服务器
应用服务器的其中一类是基于浏览器/服务器(B/S)结构的Web应用服务器,通过采用中间件或通用数据库接口构造和运行Web应用系统,其后端是数据库服务器,客户端则是浏览器。B/S 应用服务器的主要特点是实现了客户服务器的应用优势和统一的Internet(Web)平台的完美结合,以及客户端软件系统的零维护。
应用服务器的另一类是被称为专用服务器或是功能服务器,是按照服务器所提供的功能来划分的,如 CAD 服务器、视频点播服务器、流式媒体点播服务器、电视会议服务器、打印服务器等。专用服务器通常是在通用的服务器硬件平台上安装相应的应用服务器软件并根据特定功能进行了一定程度的优化,使其在完成特定功能的时候发挥较高的性能,而且无需进行复杂的专门配置。它在性价比、可靠性、简便性等各个方面都有了很大的提高。专用服务器具有性能好、数据处理能力强、可靠性高、用户响应时间短等特点,在架构、系统设计、软件优化、管理工具和集成特性等方面具有突出优点,能够兼容目前广泛使用的主流网络设备,在满足用户网络应用方面,具有突出的竞争优势。
3.7.6 网络交换技术
网络交换技术共经历了4个发展阶段:电路交换技术、报文交换技术、分组交换技术和ATM技术。
1.电路交换技术
公众电话网(PSTN网)和移动网(包括GSM网和CDMA网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定带宽的通信电路,通信双方在通信过程中将一直占用所分配的资源,直到通信结束,并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本较低,但同时带来的缺点是网络的带宽利用率不高,一旦电路被建立,不管通信双方是否处于通话状态,分配的电路都一直被占用。
2.分组交换技术
电路交换技术主要适用于传送与语音相关的业务,这种网络交换方式对于数据业务而言,有着很大的局限性。首先,数据通信具有很强的突发性,峰值比特率和平均比特率相差较大,如果采用电路交换技术,若按峰值比特率分配电路带宽则会造成资源的极大浪费,如果按照平均比特率分配带宽,则会造成数据的大量丢失;其次,与语音业务比较起来,数据业务对时延没有严格的要求,但需要进行无差错的传输,而语音信号可以有一定程度的失真但实时性一定要高。分组交换技术就是针对数据通信业务的特点而提出的一种交换方式,它的基本特点是面向无连接而采用存储转发的方式,将需要传送的数据按照一定的长度分割成许多小段数据,并在数据之前增加相应的用于对数据进行选路和校验等功能的头部字段,作为数据传送的基本单元即分组。采用分组交换技术,在通信之前不需要建立连接,每个节点首先将前一节点送来的分组收下并保存在缓冲区中,然后根据分组头部中的地址信息选择适当的链路将其发送至下一个节点,这样在通信过程中可以根据用户的要求和网络的能力来动态分配带宽。分组交换比电路交换的电路利用率高,但时延较大。
3.报文交换技术
报文交换技术与分组交换技术类似,也是采用存储转发机制,但报文交换是以报文作为传送单元,由于报文长度差异很大,长报文可能导致很大的时延,并且对每个节点来说缓冲区的分配也比较困难,为了满足各种长度报文的需要并且达到高效的目的,节点需要分配不同大小的缓冲区,否则就有可能造成数据传送的失败。在实际应用中,报文交换主要用于传输报文较短、实时性要求较低的通信业务,如公用电报网。报文交换比分组交换出现得要早一些,分组交换是在报文交换的基础上,将报文分割成分组进行传输,在传输时延和传输效率上进行了平衡,从而得到广泛的应用。
4.ATM技术
分组交换技术的广泛应用和发展,出现了传送话音业务的电路交换网络和传送数据业务的分组交换网络两大网络共存的局面,语音业务和数据业务的分网传送,促使人们思考一种新的技术来同时提供电路交换和分组交换的优点,并且同时向用户提供统一的服务,包括话音业务、数据业务和图像信息,由此在20世纪80年代末由原CCITT提出了宽带综合业务数字网的概念,并提出了一种全新的技术——异步传输模式(Asynch-ronous Transfer Mode,ATM)。ATM技术将面向连接机制与分组机制相结合,在通信开始之前需要根据用户的要求建立一定带宽的连接,但是该连接并不独占某个物理通道,而是和其他连接统计复用某个物理通道,同时所有的媒体信息,包括语音、数据和图像信息都被分割并封装成固定长度的分组在网络中传送和交换。ATM另一个突出的特点就是提出了保证QoS的完备机制,同时由于光纤通信提供了低误码率的传输通道,所以可以将流量控制和差错控制移到用户终端,网络只负责信息的交换和传送,从而使传输时延减少。ATM 非常适合传送高速数据业务。从技术角度来讲,ATM 几乎无懈可击,但ATM技术的复杂性导致了ATM交换机造价极为昂贵,并且在ATM技术上没有推出新的业务来驱动ATM市场,从而制约了ATM技术的发展。目前ATM交换机主要用在骨干网络中,主要利用ATM交换的高速和对QoS的保证机制,并且主要是提供半永久的连接。
5.IP电话技术
伴随着Internet的巨大成功,已使IP技术成为当前乃至未来信息网络的支柱技术,基于TCP/IP的网络技术不仅成为传送数据业务的主导技术,而且传统的电信运营商开始尝试使用IP技术来传送话音业务。现在传统的电信运营商一般都组建了自己的IP网络,除了在IP网络上提供目前利润相对较低的数据业务之外,运营商充分利用现有资源向用户提供丰富的业务,最主要的是话音业务,目前话音业务仍然属于运营上最主要的收入来源,最早出现的在分组网上传送话音业务的应用就是IP电话技术。
IP电话技术目前已经成为人们比较熟悉的业务,主要采用H.323系列协议,包括负责呼叫建立的信令协议H.225和负责建立媒体通道的H.245协议,语音业务采用RTP分组的方式在 IP 网中进行传输。IP 电话的语音质量虽然没有传统电路交换网向用户提供的语音质量高,但H.323协议被普遍认为是目前在分组网上支持话音、图像和数据业务最成熟的协议,目前在IP电话领域得到广泛应用。世界上有很多利用H.323协议组建的VoIP网络正在运营。但H.323的有些缺点也很明显。首先,H.323协议中的呼叫控制信令是以Q.931为基础的。Q.931协议是一种基于UNI接口的协议,协议本身比较简单,没有关于 NNI 接口的定义。这在专用网内实现计算机-计算机的呼叫没有问题,但要提供全国性业务及PSTN-to-PSTN连接则必须依赖NNI接口。其次,H.323网络中使用的是集中式的网关,网关要同时处理媒体流和信令流,在处理能力上也限制了H.323网络的发展。目前,ITU-T借鉴IETF相关规范的经验,在进一步扩展和修订H.323系列协议。另外,和SIP相比较,H.323协议的可扩展性较差,并且为了在H.323网络提供类似在电路交换网络上向用户提供的业务,许多厂家都对H.323协议进行了扩展,所以不同厂家的H.323设备之间的互联也是一个H.323网络发展所面临的一个重要问题。
6.软交换技术
软交换的概念最早起源于美国。当时在企业网络环境下,用户采用基于以太网的电话,通过一套基于PC服务器的呼叫控制软件(Call Manager、Call Server),实现PBX功能(IP PBX)。对于这样一套设备,系统不需单独铺设网络,而只通过与局域网共享就可实现管理与维护的统一,综合成本远低于传统的PBX。由于企业网环境对设备的可靠性、计费和管理要求不高,主要用于满足通信需求,设备门槛低,许多设备商都可提供此类解决方案,因此IP PBX应用获得了巨大成功。受到IP PBX成功的启发,为了提高网络综合运营效益,网络的发展更加趋于合理、开放,更好的服务于用户。业界提出了这样一种思想:将传统的交换设备部件化,分为呼叫控制与媒体处理,二者之间采用标准协议(MGCP、H248)且主要使用纯软件进行处理,于是,SoftSwitch(软交换)技术应运而生。
软交换的基本含义就是将呼叫控制功能从媒体网关(传输层)中分离出来,通过软件实现基本呼叫控制功能,包括呼叫选路、管理控制、连接控制(建立/拆除会话)和信令互通,从而实现呼叫传输与呼叫控制的分离,为控制、交换和软件可编程功能建立分离的平面。软交换主要提供连接控制、翻译和选路、网关管理、呼叫控制、带宽管理、信令、安全性和呼叫详细记录等功能。与此同时,软交换还将网络资源、网络能力封装起来,通过标准开放的业务接口和业务应用层相连,从而可方便地在网络上快速提供新业务。
3.7.7 网络存储技术
1.网络存储技术沿革
存储技术源于20世纪70年代的终端/主机计算模式,当时由于数据集中在主机上,因此,易管理的海量存储设备——磁带库是当时必备的设备。20世纪80年代以后,由于PC的发展,尤其是20世纪90年代应用最广的客户机/服务器模式的普及,此时网络上文件服务器和数据库服务器往往是重要数据集中的地方,而客户机上也积累了一定量的数据,数据的分布造成数据存储管理的复杂化。
Internet的发展使存储技术发生着革命性的变化。这种变化主要表现在三个方面:首先是存储容量的急剧膨胀;其次是数据就绪时间的延展;最后,数据存储的结构不同。在 Internet 和全球化电子商务的时代,数据应该是面向全世界的,数据的存取只应该受到安全机制的管理,而不应该受到地域空间的约束。
从国际上看,以美国为首的发达国家都非常重视数据存储技术,而且将其充分利用,服务器与磁带机的连接已经达到60%以上。而在国内,只有不到15%的服务器连有备份设备,这就意味着85%以上的服务器中的数据面临着随时有可能遭到全部破坏的危险。对于一个企业来说,网络数据的安全性是极为重要的,一旦重要的数据被破坏或丢失,就会对企业日常生产造成重大的影响,甚至是难以弥补的损失。
近几年来,国内网络系统的规划和设计不断推陈出新,在众多网络方案中,通常对数据的存储的重要性重视不够。可以说,网络设计方案中如果没有相应的数据存储备份解决方案,就不算是完整的网络系统方案。计算机系统不是永远可靠的。双机热备份、磁盘阵列、磁盘镜像、数据库软件的自动复制等功能均不能称为完整的数据存储备份系统,它们解决的只是系统可用性的问题,而计算机网络系统的可靠性问题需要完整的数据存储系统来解决。
2.网络存储模式
直接连接存储(Direct Attached Storage,DAS)、网络连接存储(Network Attached Storage,NAS)、存储区域网络(Storage Area Network,SAN)是现有存储的三大模式。
1)DAS
DAS是存储器与服务器的直接连接,一般通过标准接口,如小型机算计系统接口(Small Computer System Interface,SCSI)等。DAS 产品主要包括种磁盘、磁带库和光存储等产品。
2)NAS
NAS是将存储设备通过标准的网络拓扑结构(如以太网)连接到一系列计算机上。NAS是一种既有强大存储能力又有相当灵活性的存储结构,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。
NAS产品包括存储器件(如磁盘阵列、磁带库等)和集成在一起的简易服务器,可用于实现涉及文件存取及管理的所有功能。NAS 产品是真正即插即用的,NAS 设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而 NAS 设备无需改造即可用于混合UNIX/Windows NT局域网内。NAS设备的物理位置也是相当灵活,可放置在工作组内,靠近数据中心的应用服务器,也可放在其他地点,通过物理链路与网络连接起来。无需应用服务器的干预,NAS设备允许用户在网络上存取数据,这样既可减小CPU的开销,也能显著改善网络的性能。
3)SAN
SAN是采用高速的光纤通道作为传输介质的网络存储技术。它将存储系统网络化,实现了高速共享存储以及块级数据访问的目的。作为独立于服务器网络系统之外,它几乎拥有无限存储扩展能力。业界提倡的Open SAN克服了早先光纤通道仲裁环所带来的互操作和可靠性问题,提供了开放式、灵活多变的多样配置方案。总体来说,SAN拥有极度的可扩展性、简化的存储管理、优化的资源和服务共享以及高度可用性。
3.7.8 无线网络技术、光网络技术
1.无线网络技术
无线网络技术范围广泛,包括从允许用户建立远距离无线连接的全球话音和数据网络,到近距离无线连接的红外线和无线电频率技术。通常用于无线网络的设备包括便携式计算机、掌上电脑、个人数字助理(Personal Digital Assitants,PDAs)、移动电话和寻呼机等。无线网络技术有多种用途,例如,手机用户可以使用移动电话访问电子邮件;使用便携式计算机的旅客可以通过安装在机场、车站和其他公共场所的无线网络基站连接到Internet中;在家中用户可以连接桌面设备以同步数据和发送文件等。
与有线网络一样,无线网络根据数据发送的距离分为几种不同的类型:无线局域网络(Wireless Local Area Networks,WLANs)、无线广域网络(Wireless Wide Area Networks,WWANs)、无线城域网络(Wireless Matropolis Area Networks,WMANs)、无线个人网络(Wireless Personal Area Networks,WPANs)。
2.光网络技术
迈入 21 世纪,人类已经进入了一个新的时代——信息时代。信息时代的通信较之于传统工业时代的交通更为重要,Internet爆炸性增长,推动了通信技术(信息处理和传送)和网络技术的迅速发展。随着信息化程度的不断加深,人类对通信的容量、速度、质量以及服务种类的要求也越来越高。个人计算机和互联网的普及、数据业务与电子邮件通信以及各种宽带接入技术的飞速发展都向通信网络提出了革命性的要求,并给整个网络的技术模式、整体架构及业务节点的实现方式、组网形态、业务能力等诸多方面都带来了深远的影响。目前,传统的电信网正在融合各种先进的网络技术,向下一代公用通信网络演进,光网络正是实现这种演进的重要基础网络平台。
光纤是一种很好的传输媒介,其优良特性已得到公认,但需要注意的是,只有当光纤通过适当的、合理的、科学的架构互联以后才能组成真正理想的网络架构,以提供高速、宽带、高质量的业务。当电子设备逐步达到其物理极限时,波分复用、光交换技术以其独有的技术优势和多波长特性,正在向人们展示通过波长通道直接进行联网(即光网络)的巨大潜力和光辉前景。光网络技术的迅速发展为互联网日益膨胀的信息流量提供了强大的网络支持。更为重要的是,光放大器和波分复用等光通信新技术的不断进步,不仅强化了光网络的重要地位,而且将光逐渐扩大到网络边缘并显示出强大的生命力。
带宽、服务内容、盈利模式是光网络发展必须考虑的问题,要求光交换层的交换能力必须不断增强,并使之向更易于管理、更加灵活和更强劲的方向发展,同时也要求业务指配和故障恢复也能够更快地自动完成并具有智能。所有这一切都给光网络的发展提出了更加苛刻的技术挑战,而且定位了光网络未来的发展目标。针对数据业务的高效传送问题,可以说,如果缺乏对网络设备的功能潜力和限制因素的全面了解和掌握,则不可能设计出高效合理、符合实际需要的网络结构;同样,如果对所使用的光传输系统的原理以及物理约束没有深刻的认识,则开发出来的新型光网络设备同样会受到限制甚至无用。有鉴于此,目前光网络的发展已从狂热追捧回归到理性发展,逐渐集中到切实解决阻碍光网络发展普及的正确轨道上。
3.7.9 网络接入技术
1.网络接入概念
网络接入(Network Access)就是通过一定的方式和工具将用户网络设备(如PC、机顶盒、移动电话)连接到网络上。
信息高速公路已经建设了多年,应当说取得的成就是有目共睹的,高速和超高速主干光纤通信网络遍布全球。然而,用户依然抱怨不止:网络访问速度慢,价格昂贵,几乎没有享受到信息高速公路的好处。问题就出在从用户家庭连接到宽带 Internet 的通信线路依然狭窄得可怜,好比从家门到高速公路是一条泥泞不堪、坑坑洼洼的羊肠小道,再宽敞的高速公路,再好的服务,到了用户手上折扣都已经打得差不多了。计算机网络界就把这个一直困扰着广大网民、制约着家庭信息化建设的顽症形象地称为“最后一公里”问题,因为从用户家庭到最近的接入点差不多也就是一公里上下。
2.网络接入方式
现有的网络接入手段以传统的窄带或“准宽带”(2M以下)方式为主,主要有以下几种类型。
1)拨号接入方式
(1)使用56Kb/s调制解调器通过公共电话网(PSTN)拨号,通常上行和下行速率依据线路状态自动适配调整为28.8Kb/s、33.6Kb/s、45Kb/s等。
(2)使用 ISDN 终端适配器(TA)通过 ISDN(2B+D)网络拨号,如果指定使用一个B通道,则达到64Kb/s速率,如果用2B通道,可达到128Kb/s速率。
2)专线接入方式
(1)DDN专线,速率为64Kb/s~2Mb/s,其租用价格只有单位用户才能承受得起。
(2)GPRS和3G技术,是移动电话的相关技术,号称能“时刻在线”,但不太适合家庭日常使用。
3)宽带网络接入技术
(1)数字用户环路DSL(Digital Subscriber Loop)。
(2)无源光网络接入:光纤入户。
(3)Cable Modem接入。
(4)以太网接入。
(5)光纤接入,即常说的光纤到路边(FTTC),光纤到大楼(FTTB),光纤到住户(FTTH)。
(6)无线网络接入。
3.7.10 综合布线、机房工程
1.综合布线
1)综合布线系统概念及相关标准
综合布线系统(Premises Distribution System,PDS)是楼宇和园区范围内,在统一的传输介质上建立的可以连接电话、计算机、会议电视和监视电视等设备的结构化信息传输系统。
目前在综合布线领域被广泛遵循的标准是 EIA/TIA 568A,即 Commercial Building Telecommunications Wiring Standard。各布线系统器件生产厂家遵照此标准提供了自己的布线产品系列。例如,IBM的ACS、AT&T的SCS、AMP的OWS等。在EIA/TIA-568A中把综合布线系统分为6个子系统:建筑群子系统、设备间子系统、垂直干线子系统、管理子系统、水平子系统和工作区子系统,如图3-13所示。
图3-13 综合布线系统
2)综合布线系统的范围
综合布线系统的范围应根据建筑工程项目范围来定,主要有单幢建筑和建筑群体两种范围。
(1)单幢建筑中的综合布线系统工程范围,一般指在整幢建筑内部敷设的通信线路,还应包括引出建筑物的通信线路。如建筑物内敷设的管路、槽道系统、通信缆线、接续设备以及其他辅助设施(如电缆竖井和专用的房间等)。此外,各种终端设备(如电话机、传真机等)及其连接软线和插头等,在使用前随时可以连接安装,一般不需设计和施工。综合有线系统的工程设计和安装施工是单独进行的,所以,这两部分工作应该与建筑工程中的有关环节密切联系和互相配合。
(2)建筑群体因建筑幢数不一而规模不同,但综合布线系统的工程范围除包括每幢建筑内的通信线路外,还需包括各幢建筑之间相互连接的通信线路。我国颁布的通信行业标准《大楼通信综合布线系统》D/T926)的适用范围是跨越距离不超过 3000 米、建筑总面积不超过100万平方米的布线区域,区域内的人员为50~5万人。如布线区域超出上述范围时可参考使用D标准中大楼指各种商务、办公和综合性大楼等,但不包括普通住宅楼。
上述范围是从基本建设和工程管理的要求考虑的,与今后的业务管理和维护职责等的划分范围有可能不同。因此,综合布线系统的具体范围应根据网络结构、设备布置和维护办法等因素来划分。为了适应信息社会的需要,综合布线系统应能满足传输话音、资料和图像以及其他信息的要求,尤其是当今时代出现的智能化建筑和先进技术装备的建筑群体更是如此。
3)综合布线系统的适用场合和服务对象
综合布线系统的适用场合和服务对象有以下几类:商业贸易类型,如商务贸易中心(包括商业大厦)、金融机构(包括专业银行和保险公司等)、高级宾馆饭店、股票证券市场和高级商城大厦等高层建筑;综合办公类型,如政府机关、群众团体、公司总部等办公大厦以及办公、贸易和商业兼有的综合业务楼和租赁大楼等;交通运输类型,如航空港、人车站、长途汽车客运枢纽站、江海港区(包括航运客货站)、城市公共交通指挥中心、出租车调度中心、邮政、电信通信枢纽楼等公共服务建筑;新闻机构类型,如广播电台、电视台和新闻通信及报社业务楼等;其他重要建筑类型,如医院、急救中心、科学研究机构、高等院校和工业企业及气象中心的高科技业务楼等;此外,在军事基地和重要部门的建筑、高等院校中的校园建筑、高级住宅小区等也需要采用综合布线系统。
随着科学技术的发展和人们生活水平的提高,综合布线系统的应用范围和服务对象会逐步扩大和增加。在21世纪,民用的高层住宅建筑将要走向智能化,这时建筑中有必要采用相应类型级别的综合布线系统。
总之,综合布线系统具有广泛的应用前景,所以,在综合布线系统工程设计中,应留有一定的发展余地,为智能化建筑中实现传输各种信息创造有利条件。
2.机房工程
1)机房工程概念及要求
机房建设工程不仅仅是一个装饰工程,更重要的是一个集电工学、电子学、建筑装饰学、美学、暖通净化专业、计算机专业、弱电控制专业、消防专业等跨学科、跨专业领域的综合工程,并涉及到计算机网络工程,PDS工程等专业技术的工程。在设计施工中应对供配电方式、空气净化、安全防范措施以及防静电、防电磁辐射和抗干扰、防水、防雷、防火、防潮、防鼠诸多方面给予高度重视,以确保计算机系统长期正常运行工作。
一个良好的计算机机房除必须满足计算机设备对温度、湿度和空气洁净度,供电电源的质量(电压、频率、稳定性等)、接地地线、电磁场和振动等项的技术要求外,还必须满足机房工作人员对照度、流动速度、噪音等的要求。
根据用户提出的技术要求,对改建机房的建筑物进行实地勘查,依据国家有关标准和规范,结合所建计算机系统运行特点进行总体设计。总体设计方案以业务完善技术规范,安全可靠为主,确保系统安全可靠的运行。在选材投资方面根据功能及设备要求区别对待,并满足用户的特殊要求,做到投资有重点,保证计算机场地工作人员的身心健康,延长计算机系统的使用寿命。
2)机房工程设计原则
机房的设计必须满足当前的各项业务需求应用,又面向未来快速增长的发展需求,因此必须是高质量的、灵活的、开放的。我们在进行机房设计时,遵循以下设计原则。
(1)实用性和先进性。采用先进成熟的技术和设备,满足当前业务需求,兼顾未来的业务需求。尽可能采用先进的技术、设备和材料,以适应高速的数据传输需要,使整个系统在一段时期内保持技术的先进性,并具有良好的发展潜力,以适应未来业务的发展和技术升级的需要。
(2)安全可靠性。为保证各项业务应用,网络必须具有高可靠性,决不能出现单点故障。要对机房布局、结构设计、设备选型、日常维护等各个方面进行高可靠性的设计和建设。在关键设备采用硬件备份、冗余等可靠性技术的基础上,采用相关的软件技术提供较强的管理机制、控制手段和事故监控与安全保密等技术措施以提高电脑机房的安全可靠性。
(3)灵活性和可扩展性。机房必须具有良好的灵活性和可扩展性,能够根据业务不断深入发展的需要,扩大设备容量,提高可容纳的用户数量。具备支持多种网络传输、多种物理接口的能力,提供技术升级、设备更新的灵活性。
(4)标准化。在机房系统整体设计,基于国际标准和国家颁布的有关标准,包括各种建筑、机房设计标准,电力电气保障标准以及计算机局域网、广域网标准,坚持统一规范,从而为未来的业务发展和设备增容奠定基础。
(5)经济性/投资保护。应以较高的性能价格比构建机房,使资金的产出/投入比达到最大值。能以较低的成本、较少的人员投入来维持系统运转,提供高效能与高效益。尽可能保留并延长已有系统的投资,充分利用以往在资金与技术方面的投入。
(6)可管理性。机房具有一定复杂性,随着业务的不断发展,管理的任务必定会日益繁重。所以在电脑中心的设计中,必须建立一套全面、完善的机房管理和监控系统。所选用的设备应具有智能化,可管理的功能,同时采用先进的管理监控系统设备及软件,实现先进的集中管理监控,实时监控、监测整个电脑机房的运行状况,实时灯光、语音报警,实时事件记录,这样可以迅速确定故障,提高的运行性能、可靠性,简化机房管理人员的维护工作,从而为机房安全、可靠的运行提供最有力的保障。
3.7.11 网络规划、设计及实施原则
1.网络规划原则
网络规划与设计服装、设计房屋不同,要构造一个最终建设完成的网络,网络规划是要给网络建设和使用者做一个心中有数的设计结果。网络规划率先考虑的有三个原则:实用性原则、开放性原则和先进性原则。
(1)实用性原则。
网络建设应当作工程项目来完成,而不是当作研究或实验课题。网络应用和服务在整个网络建设中应置于非常重要的地位,这是因为只有应用才是网络建设的最终目的,网络基础设施是为最终应用服务的。因此,实用原则强调设计目标和设计结果能满足需求并且行之有效。
(2)开放性原则。
网络应具有良好的开放性。这种开放性靠标准化实现,使用符合这些标准的计算机系统很容易进行网络互联。为此,必须制定全网统一的网络架构,并遵循统一的通信协议标准。网络架构和通信协议应选择广泛使用的国际工业标准,使得网络成为一个完全开放式的网络计算环境。开放性原则包括采用开放标准、开放技术、开放结构、开放系统组件、开放用户接口。
(3)先进性原则。
建设网络,尽可能采用成熟先进的技术,使用具有时代先进水平的计算机系统和网络设备,这些设备应该在相当长的时间内保证其先进性。开发或选购的各种网络应用软件也尽可能先进,并有相当长时间的可用性。先进性原则包括设计思想先进、软硬件设备先进、网络结构先进、开发工具先进。
2.设计及实施原则
在方案设计实施过程中必须考虑的原则如下。
(1)可靠性原则。网络的运行是稳固的。
(2)安全性原则。包括选用安全的操作系统、设置网络防火墙、网络防杀病毒、数据加密和信息工作制度的保密。
(3)高效性原则。性能指标高,软硬件性能充分发挥。
(4)可扩展性。能够在规模和性能两个方向上进行扩展。
建设原则是网络规划和方案制定的方针,不同的原则侧重会产生不同的方案。
小说《系统集成项目管理工程师教程》试读结束,继续阅读请看下面!!!
《系统集成项目管理工程师教程完整文集》资讯列表:
为您推荐