0%

系统有下述特性:
(1)集合性。
(2)相关性。
(3)目的性。
(4)层次性。
(5)环境适应性。

一、信息系统工程的概念

系统的分类

按照系统功能划分:工业控制系统、信息管理系统、军事系统和经济系统等。
按照系统与外界的关系划分:封闭系统和开放系统。
按照系统的内部结构划分:开环系统和闭环系统等。
按照抽象程度将系统分为:概念系统(描述系统的主要特征和大致轮廓)、逻辑系统(脱离实现细节的合理系统)和物理系统 (实际存在的系统)。

信息系统信息系统一般泛指收集、存储、处理和传播各种信息的具备完整功能的集 合体。

系统工程是以研究大规模复杂系统为对象的一门交叉学科。它把自然科学和社会科学的 某些思想、理论、方法、策略和手段等根据总体协调的需要,有机地联系起来,应用定量和定性分析相结合的方法和计算机等技术工具,对系统的构成要素、组织结构、信息交换和反 馈控制等功能进行分析、设计、制造和服务,从而达到最优设计、最优控制和最优管理的目的。

信息系统一般泛指收集、存储、处理和传播各种信息的具备完整功能的集 合体。人们常说的信息系统大多数支持各部门和机构的管理和决策的信息系统,当前信息系 统重要的特征是计算机和互联网技术的应用。

随着网络的普及,计算机信息系统已经从管理信 息系统发展成为更强调支持企业高层领导决策的决策支持系统,即 DSS 阶段。

二、信息系统工程的内容

1.信息系统工程的体系构成

(1)信息网络系统

信息网络系统是指以信息技术为主要手段建立的信息处理、传输、交换和分发的计算机网络系统。

(2)信息资源系统

信息资源系统是指以信息技术为主要技术手段建立的信息资源采集、存储、处理的资源系统。

(3)信息应用系统

信息应用系统是指以信息技术为主要手段建立的各类业务管理的应用系统。

2.信息系统工程的技术构成

信息系统工程首要的任务是实施软件工程和信息工程。信息系统工程还应包括组织中的业务流程等内容。

软件工程是开发、运行、维护和修复软件的系统方法。

“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据的集合。

信息工程的主要焦点是用计算机来存储和维护数据,而信息则是从这些数据提炼出来,来满足人们的某种需要的数据。

信息工程方法的主要特点:
一是以数据为中心,进一步的工作是建立主题数据库;
二是将工程的实施划分为对业务系统的实施和对技术系统的实施。

3.组织流程管理

有效的组织保障包括:
(1)建立流程管理机构,这一机构可归入管理流程之中。
(2)配备强有力的领导来负责内部的流程管理工作。
(3)制定各流程之间的动态关系规则。通过实施流程管理模式,传统组织中的组织图将不复存在,取代它的是流程管理图。

4.信息系统工程的管理信息

在具体实施过程中,项目管理一般包含了以下几个方面的内容:
(1)任务划分。任务划分是把整个开发工作定义成一组任务的集合,这组任务又可以进一步划分成若干个子任务,进而形成具有层次结构的任务群。
(2)计划安排。依据划分完毕的任务即可制定出整个开发及项目管理计划,并产生完成任务的计划表。
(3)经费管理。经费管理在整个开发项目管理中处于重要的地位。项目经理可以运用经济杠杆来控制整个开发工作。
(4)审计控制。按照所采用的开发方法,应针对每一类开发人员制定出工作过程中的责任、义务、完成任务的质量标准等,按照计划对每项任务进行审计。
(5)风险管理。如何有效地管理和控制风险是保证系统实施成功的重要环节之一。特别是信息系统工程项目,风险管理更是重中之重。
(6)质量保证。质量管理应贯穿于整个项目始终。在项目规划阶段,就应该建立系统质量的度量模型和相应的机制,对项目质量提出总体的要求;在系统分析和设计阶段应对质量管理不断细化,按自顶向下的方式将总体要求划分成若干易于考核和度量的质量单元。

三、信息系统工程的总体规划

已经建成或正在建设的系统仍然存在一系列问题,主要如下:

系统建设与组织发展的目标和战略不匹配。
已建成的系统解决问题的有效性低,即系统建成后对管理并无显著改善。
不能适应环境变化和组织变革的需要。
组织结构陈旧,管理落后。
系统使用人员的素质较低。
系统开发环境落后,技术方案不合理。
系统开发及运行维护的标准、规范混乱。
资源短缺,投入太少,而对系统的期望又过高。

总体规划的主要任务:

制定信息系统工程的发展战略。主要是使信息系统工程的战略与整个组织的战略和目标协调一致。
确定组织的主要信息需求,形成信息系统工程的总体结构方案,安排项目开发计划。
制定系统建设的资源分配计划,即制定为实现开发计划而需要的硬软件资源、数据通信设备、人员、技术、服务和资金等计划,提出整个系统的建设概算。

总体规划的主要步骤:

1 对当前系统进行初步的调查。

初步调查主要由两部分构成:
①一般调查。一般调查包括组织的概括,企业的目标,现行系统运行情况,简单历史,企业的 产品,产量,利税,体制及改革情况,人员基本情况,面临的问题,企业的中长期计划及主 要困难等,使系统分析师对企业有一个初步轮廓。
②信息需求初步调查。信息需求初步调查是整个初步调查的主要内容。通过调查组织系统的工作职责及活动来了解各职能机构所要处理的数据,估计各机构发生的数据量及频度。信息需求初步调查还应调查环境信息,包括内部环境和外部环境的信息。

2 分析和确定系统目标。

这实际上可以由总经理和信息系统工程开发的领导小组确定, 应包括服务的质量和范围、政策、组织及人员等。它不仅包括信息系统工程的目标,而且应 有整个企业的目标。

3 分析子系统的组成及基本功能。

从上到下对系统进行划分,并且详细说明各个子系 统应该实现的功能。

4 拟定系统的实施方案。

可以对子系统的优先级进行设定,以便确定子系统的开发顺序。

5 进行系统的可行性研究。

6 编写可行性报告。

信息系统工程总体规划的目标信息

两个原则:
一是从组织的战略出发,而不是从系统的需求出发,这样就可以避免脱离组织宗旨和战略目标,走入为建设而建设的困境;
二是从业务的变革出发,而不是从技术的变革出发,这样有利于充分利用组织的现有资源来满足关键需求,从而避免信息系统工程无法有效地支持组织决策。

信息系统工程规划的主要目的是根据企业总体目标规划好统一的、既有集中式又有分布 式、分期逐步实现的数据平台和应用平台的建设。

总体规划目标的分析过程

总体规划目标的分析过程包括,确定组织的总体目标确定信息系统工程规划的总体目标两个步骤。

1 确定组织的总体目标。

它的分析的步骤是:
根据系统调查的结果,进行分析,归纳出现行系统中的关键问题,做出问题表。
根据问题表,构造目标的层次结构,即目标树。在目标树中,最上层是总目标,以下各层是 分目标或子目标,最下层是为实现目标而采取的具体措施,它是用来衡量目标是否切合实际 的标准。
对目标树中的各项分目标进行分析。分析各项分目标之间的关系,确定解决目标冲突的方法, 指出各项措施的考核指标。
将目标树按各层分目标在系统中所起的作用重新绘制。

2 确定信息系统工程规划的总体目标。

信息系统工程应该在下面几个方面发挥作用。
1、信息系统工程的辅助决策功能。
2、信息系统工程的辅助管理功能。
3、企业资源管理。

信息系统工程的总体规划包括,总体规划的层次、总体规划的任务、信息系统工程的功能范围、确定功能范围的步骤、系统总体结构分解、投资概算和总体规划的成果等内容。

总体规划的层次分为:信息战略规划、信息资源规划、信息系统工程建设规划和企业资源计划(ERP)。

总体规划的任务

明确组织远景和使命。
确立组织发展战略和目标。
明晰组织业务及管理变革策略。
识别组织关键成功因素、分析关键性能指标、抽取信息需求。
建立总体信息工程框架。
提出可行性报告和总体规划方案。

确定系统的功能范围的步骤如下:

1 绘制出系统的总数据流程图。
2 根据系统方案的规定和用户的要求,结合现行系统的环境,确定系统的边界范围,并在总信息流程图上圈出。
3 有关人员协商讨论。
4 确定系统范围,并做出分析说明。

信息系统工程总体规划应当包括投资概算,它包括以下 4 个方面内容。

1 计算机系统软、硬件设备投资。
2 系统开发费。
3 系统安装和维护费用。
4 人员培训费。

四、总体规划的方法论

制定信息系统工程总体规划需要有效的方法论支持,其方法多种多样,在此主要介绍较为著名的三种:业务系统规划法、关键成功因素法、战略目标集合转化法。

1.业务系统规划法(Business Systems Planning,BSP)

BSP的概念

1 信息系统的战略应当表达出企业的各个管理层次的需求。
战略计划层:是决定组织目标、达到这些目标所需用的资源,以及获取、分配这些资源的策略的过程;
管理控制层:通过这一过程,管理者确认资源的获取及组织的目标是否有效地使用了这些资源;
操作控制层:保证有效率地完成具体的任务。

2 信息系统应该向整个企业提供一致的信息。
3 信息系统应该适应组织机构和管理体制的改变。
4 信息系统的战略规划,应当从总体信息系统结构中的子系统开始实现。

BSP 的目标

BSP 的目标主要是提供信息系统规划,用以支持企业短期的和长期的信息需要。

归纳如下:
为管理者提供一种形式化的、客观的方法,明确建立信息系统的优先顺序,而不考虑部门的 狭隘利益,并避免主观性。
为具有较长生命周期系统的建设和投资提供保障。由于系统是基于业务过程的,因而不因机 构变化而失效。
为了以最高效率支持企业目标,BSP 提供数据处理和资源管理。
增加负责人的信心,使其坚信高效的信息系统能够被实施。
通过提供信息系统对用户需求的快速响应,从而改善信息系统管理部门和用户之间的关系。

BSP 方法的真正价值在于提供了下面的机会:
一是创造一种环境和提出初步行动计划,使企 业能依此对未来的系统和优先次序的改变做出反应,不致造成设计的重大失误。
二是定义信息系统的职能,并不断完善。

BSP 方法实施步骤:
1 确立项目。
2 工作准备。
3 主要活动。
开始。
定义业务过程。
定义数据类。
分析现存系统支持能力。
确定管理部门对系统的要求。
提出判断和结论。
定义信息总体结构。
确定总体结构中的优先顺序。
评价信息资源管理工作。
制定建议书和开发计划。
工作成果报告。

2.关键成功因素法(Critical Success Factors,CSF)

该方法能够帮助组织找到影响系统成功的关键因 素,进行分析以确定组织的信息需求,从而为管理部门控制信息技术及其处理过程提供实施 指南。

CSF 的确定关键成功因素的特征如下。
内部 CSF:针对机构的内部活动,如改善产品质量、提高工效等。
外部 CSF:与机构的对外活动有关,如,满足客户企业的进入标准、获得对方的信贷。
监控型 CSF:对现有业务流程等进行监控,如监测零件缺陷百分比。
建设型 CSF:适应组织未来变化的有关活动,如改善产品组合。

CSF 共分 4 层:行业的 CSF、组织的 CSF、部门的 CSF、管理者的 CSF,它们依次相互影响。

CSF 实施步骤:
第一步:了解组织的战略目标。
第二步:识别所有成功因素。
第三步:确定关键成功因素。
第四步:识别绩效指标和标准,以及测量绩效的数据。

CSF 的优缺点:

缺点是:
数据的汇总和数据分析过程比较随意,缺乏一种专门严格的方法将众多个人的关键成功因素汇总成一个明确的整个组织的成功因素;
由于个人和组织的成功因素往往并不一致,两者之间的界限容易被混淆,从而容易使组织的成功因素具有个人倾向性;
由于环境和管理经常迅速变化,信息系统也必须做出相应调整,而用 CSF 法开发的系统可能无法适应变化了的环境;
CSF 在应用于较低层的管理时,由于不容易找到相应目标的关键成功因子及其关键指标,效率可能会比较低。

3.战略目标集合转化法(Strategy Set Transformation,SST)

战略目标集合转化法(Strategy Set Transformation,SST)将组织的战略看成一个“信息 集合”,包括使命、目标、战略和其他战略变量,如管理水平、发展趋势以及重要的环境约 束等。战略性系统规划就是把组织的战略集合转化为信息系统的战略集合,而后者由信息系 统的系统目标、环境约束和战略规划组成。

该方法的步骤如下。

第一步:识别和阐明组织的战略集合。

(1)描绘出组织各类人员结构,如卖主、经理、雇员、供应商、顾客、贷款人、政府代理人、地区社团及竞争者等。
(2)识别每类人员的目标。
(3)对于每类人员识别其使命及战略。

第二步:将组织的战略集合转化为信息系统战略集合。

J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范。这组应用编 程接口确定了 Web 应用与驻留它们的服务器之间的通信方式。J2EE 注重两件事,一是建 立标准,使 Web 应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他资 源,以便能够处理扩展、并发、事务处理管理和安全性问题。

J2EE 规范定义了以下几种构件:应用客户端构件、EJB 构件、Servlets 和 JSP、Applet 构 件。

J2EE 采用的是多层分布式应用模型,意味着应用逻辑将根据功能分成几个部分, 用户 可以在相同或不同的服务器上安装不同应用构件组成的 J2EE 应用。

一、表示层

J2EE 客户端可以基于 Web,也可以基于 Java。

分布式企业应用可以同时包括多种客户端,并且这些客户端都可以访问相同的业务逻辑。

二、应用服务层

一般情况下,应用服务层包含表示层请求的表示逻辑和业务逻辑。

表示层由显示 HTML 页面的 JSP 页面和 Servlets 实现。
业务逻辑通过 RMI 对象和 EJB 实现。EJB 依靠容器来 实现事务处理、生命周期和状态管理、资源池、安全等问题,容器是 EJB 运行的环境。

1.Servlet

Java Servlets 是指可以扩展 Web 服务器功能的程序。Servlet 从客户端接受请求,动态 生成响应,然后将包含 HTML 或 XML 文档的请求发送给客户端。

2.JSP

JSP 页面是基于文本的 Servlet 开发方式。JSP 页面具有 Servlet 的所有优点,如果与 JavaBeans 类结合在一起,可以容易地将内容和显示逻辑分开。这使得无须了解 Java 代码 就能更新页面的外观,更新 Java Beans 类的人也无须深入了解 Web 页面的设计。

3.EJB

EJB 构件用于封装业务逻辑,使开发人员无须再担心数据访问、事务处理支持、安全性、 高速缓存和迸发等琐碎任务的编程。在 EJB 规范中,它们由 EJB 容器负责。EJB 包含接口 和类。

EJB 共有三种类型:EntityBean(实体 Bean)、Session Bean(会话 Bean)和 Message Driven Bean(消息驱动 Bean)

4.JMS

JMS 是支持 Java 程序之间信息交换的 J2EE 机制。

5.JNDI

由于 J2EE 应用的构件可以独立运行,而且是在不同的设备上运行,因此客户端和应用服务器层代码必须以某种方式查找和参考其他代码和资源。客户端和应用代码使用 JNDI (Java Naming and Directory Interface,Java 命名和目录接口)查找用户定义对象(如 EJB) 和环境实体(Environment Entities)。在 JDBC2.0 中,数据源可以绑定到 JNDI 上,并允许 应用程序访问。

6.事务处理

J2EE 事务处理模型可以在部署过程中定义组成一个事务处理的方法之间的联系,以便 事务处理中的所有方法可以作为一个整体存在。

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。

中间件处在操作系统、网络和数据库之上,应用软件的下层(如图 15-1 所示),也有人认为它应该属于操作系统中的一部分。

中间件的概念

中间件发展迅速,但在技术上还处于成长阶段,没有统一的标准和模型。

中间件要涉及软件的所有标准、规范和技术,它有更多的内涵,因为它包括平台功能,自身具有自治性、自主性、隔离性、社会化、激发性、主动性、并发性、认识能力等特性,是近似于 Agent(代理)的结构。

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件 在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网 络通信。这些服务程序或软件具有标准的程序接口和协议。针对不同的操作系统和硬件平台, 它们可以有符合接口和协议规范的多种实现。中间件为处于其上层的应用软件提供运行与开 发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

中间件应具有如下的一些特 点:

满足大量应用的需要;
运行于多种硬件和 OS 平台;
支持分布计算,提供跨网络、硬件和 OS 平台的透明性的应用或服务的交互;
支持标准的协议;
支持标准的接口。

中间件的十大优越性:

缩短应用的开发周期;
节约应用的开发成本;
减少系统初期的建设成本;
降低应用开发的失败率;
保护已有的投资;
简化应用集成;
减少维护费用;
提高应用的开发质量;
保证技术进步的连续性;
增强应用的生命力。

中间件的分类

(1)通信处理(消息)中间件

在分布式系统中,人们要建网和制定出通信协议,以保 证系统能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输, 这类中间件称为消息中间件。

(2)事务处理(交易)中间件

在分布式事务处理系统中, 经常要处理大量事务,特别是 OLTP 中,每项事务常常要多台服务器上的程序按顺序协调完 成,一旦中间发生某种故障,不但要完成恢复工作,而且要自动切换系统,达到系统永不停 机,实现高可靠性运行。要使大量事务在多台应用服务器上能实时并发运行,并进行负载平 衡的调度,实现与昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求 中间件系统具有监视和调度整个系统的功能。

(3)数据存取管理中间件

在分布式系统中,重要的数据都集中存放在数据服务器中, 它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩 存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

(4)Web 服务器中间件

浏览器图形用户界面已成为公认规范,然而它的会话能力差、 不擅长做数据写入、受 HTTP 协议的限制等,就必须进行修改和扩充,形成了 Web 服务器 中间件。

(5)安全中间件

如防火墙、加密、认证等。
产生不安全因素是由操作系统引起的,但必须要用中间件去解决,以适应灵活多变的要求。

(6)跨平台和架构的中间件

在分布式系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产 生了架构中间件。

(7)专用平台中间件

为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。

(8)网络中间件

它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。

Web 应用开发大致经历了三个阶段。

在第一阶段,大家都使用 Web 服务器提供的服 务器扩展接口,使用 C 或者 Perl 等语言进行开发,例如 CGI、API 等。这种方式可以让开 发者自由地处理各种不同的 Web 请求,动态地产生响应页面,实现各种复杂的 Web 系统 要求。但是,这种开发方式的主要问题是对开发者的素质要求很高,往往需要懂得底层的编 程方法,了解 HTTP 协议,此外,这种系统的调试也相当困难。

在第二阶段,大家开始使用一些服务器端的脚本语言进行开发,主要包括 ASP、PHP、 Livewire 等。其实现方法实质上是在 Web 服务器端放入一个通用的脚本语言解释器,负责 解释各种不同的脚本语言文件。

第三阶段应用服务器的方式。目前,应用服务器已经成为电子商务应用中一种非常关键的中间件技术。如今,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础,如 IBM 的 Websphere,Oracle 的 Internet 应用服务器,Sybase 的 Enterprise 应用服务器等。本节将阐述应用服务器的概念、 相关技术及发展方向,并就目前主流的应用服务器产品进行简单的介绍。

应用服务器的概念

在分布式、多层结构及基于构件和服务器端程序设计的企业级应用开发 中,它提供的是一个开发、部署、运行和管理、维护的平台。它可以提供软件“集群” 的 功能,因而可以让多个不同的、异构服务器协同工作、相互备份,以满足企业级应用所需要 的可用性、高性能、可靠性和可伸缩性等。

应用服务 器可以帮助企业快速架构一个基 Internet 的电子商务系统,而且拥有极高的稳定性、可扩展 性和安全性。

它能够:
(1)更合理地分工企业级应用开发,加快应用的开发速度,减少应用的开发量。
(2)应用设计、开发、部署、运行、管理、维护的平台。
设计:应用服务器完成底层通信、服务,并屏蔽掉复杂的底层技术细节,向用户提供结 构简单、功能完善的编程接口,让用户可以专心于商务逻辑的设计。
开发:应用服务器提供了完全开放的编程语言和应用接口,用户可以用任何自己习惯的 开发工具来工作。另外应用服务器自己也提供快速开发的工具和手段,帮助用户提高开发效 率。
部署:应用服务器可以部署在任何硬件平台、任何操作系统上,而且可以分布在异构网 络中,应用服务器帮助用户在复杂的网络环境中配置系统参数,使系统发挥最大的性能,拥 有最好的稳定可靠性。
运行:应用服务器采用的是开放技术标准,它提供了一个完整的标准实现,即提供了系 统的运行环境,任何基于同样标准的系统都能很好地运行于这个环境中。在运行中提供应用 系统的名字解析、路由选择、负载平衡、事务控制等服务,并提供系统容错、修复、迁移、 升级扩展等功能。
管理:应用服务器让用户通过图形化的界面方便地管理自己的资源,而且在系统运行时 也能动态监控和管理。
(3)使得应用与底层平台无关,便于商业逻辑的实现与扩展。
(4)为企业应用提供现成的、稳定而强健的、灵活的、成熟的基础架构。

应用服务器通过分布式体系来保障这一点,表现为:
当系统处理能力不够时,可以通过简单地增加硬件来解决;
动态调整不同主机间的负载可以最大地利用系统资源,同时提高单机的稳定性;
当系统中的某台机器出现故障时,它的工作可由其他机器来承担,不会影响系统整体的运行, 即无单点故障。

主要的应用服务器

1.BEA WebLogic

2.IBM WebSphere

3.SUN iPlanet

4.Oracle Internet ApplicationServer

5.Sybase Enterprise ApplicationServer

MVC 模式是一种目前广泛流行的软件设计模式,随着 J2EE 的成熟,它正成为 J2EE 平 台上推荐的一种设计模型,将业务处理与显示分离,将应用分为模型、视图及控制层,增加 了应用的可扩展性。MVC 模式为搭建具有可伸缩性、灵活性、易维护性的 Web 系统提供 了良好的机制。

轻量 级 Web 架构不仅保持了 J2EE 的优势, 还简化了 Web 的开发。目前主流的轻量级架构是把 Struts、Spring 和 Hibernate 这三种在 业内比较推崇的开源技术基于 MVC 模式相结合,这样在项目开发中不管是从效率上,费用 上,还是易维护上都能达到很好的效果。

一、Struts 框架

Struts 是一个基于 SUN J2EE 平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实 现的。在 Struts 框架中,模型由实现业务逻辑的 JavaBean 或 EJB 构件构成,控制器由 ActionServlet 和 Action 来实现,视图由一组 JSP 文件构成

Struts 把 Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利 用其进行开发时不用自己再编码实现全套 MVC 模式,极大地节省了时间。

Struts 的工作流程为:
首先,JSPview 发起一个以.do 表示的请求;
ActionForm 封装用 户请求数据,同时提供验证数据的功能;
ActionServlet 根据 struts-config.xml 文件来得到处 理这个请求的 Action 对象,并将请求发送给这个 Action 对象;
Action 对象调用 model 去 处理这个请求,将结果返回给 ActionServlet;
ActionServlet 决定将结果返回给对应的 view;
view 得到结果,并将它显示给用户。

二、Spring 框架

Spring Framework是轻量级的 J2EE 应用程序框架,旨在简化 J2EE 的开发,降低 J2EE 项目实施的难度。

框架包括声 明性事务管理,通过 RMI 或 web services 远程访问业务逻辑,mail 支持工具,以及对于 数据和数据库之间持久层的各种配置的支持。Spring 允许自由选择和组装各部分功能,还 提供和其他软件集成的接口,如与 Hibernate、Struts 的集成。

Spring 核心本身是个容器,管理物件的生命周期、物件的组态、相依注入等,并可以控 制物件在创建时是以原型(Pro-totype)或单例子(Singleton)的方式来创立。

Spring 的核心概念是控制反转(Inversionof Control,IoC),更具体而易懂的名词是依赖 注入(Depen-dency Injection),使用 Spring,不必自己在程序码中维护物件的依赖关系,只 需在构件中加以设定,Spring 核心容器会自动根据构件将依赖注入指定的物件。

Spring 的 目标是实现一个全方位的整合框架,在 Spring 框架下实现多个子框架的组合,这些子框架 之间可以彼此独立,也可以使用其他的框架方案加以替代,Spring 成为企业级应用程序一 站式的解决方案。

Spring 的核心要点是支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。 Spring 的 IoC 控件主要服务于利用类、对象和服务去组成一个企业级应用,通过规范的方 式,将各种不同的控件整合成一个完整的应用。

三、Hibernate 框架

Hibernate 是一种对象和关系之间映射的框架,是 Java 应用和关系数据库之间的桥梁。可以将数据库资源映射为一个或者多个 POJO。

四、基于 Struts、Spring 和 Hibernate 的轻量级架构

(1)表示层。

由 Struts 实现,主要完成如下任务:
管理用户请求和响应;
提供一个控 制器代理以调用业务逻辑和各层的处理;
处理从其他层抛给 StrutsAction 的异常;
为显示提 供数据模型;
借助 Struts Validator 框架帮助完成 Web 层的验证工作。

(2)持久层。

由 Hibernate 实现。它通过一个面向对象的查询语言(Hibernate Query Language,HQL)或正则表达式的 API 来检索对象的相关信息。HQL 类似于 SQL,只是把 SQL 里的表和列用对象和它的字段代替。Hibernate 还负责存储、更新、删除数据库记录。同时 Hibernate 支持大部分主流数据库,且支持父表/子表关系、事务处理、继承和多态。

(3)业务层。

由 Spring 来实现。使用 Spring 的优点是:
利用延时注入思想组装代码, 提高了系统扩展性和灵活性,实现插件式编程。
利用 AOP 思想,集中处理业务逻辑,减少 重复代码,构建了较理想的解决方案。
利用其对 Hibernate 的会话工厂(Session Factory)、 事务管理的封装,可以更简洁地应用 Hibernate。

五、轻量级架构和重量级架构的探讨

重量级的开发倒并不是指 EJB 或者是 JNDI,很大意义上,重量级的开发都是需要依赖 一个非常庞大的容器系统进行开发,在 EJB 的开发中,所有开发的内容基本都需要放置在 一个容器系统中进行运行这些容器,因为基本针对大型企业应用,所以体积庞大,占用资源过 多,在开发的过程中效率很低。因为使用大型容器作为开发环境的话,很大一部分时间都用 在了配置、运行这样的过程上,有时候改动一个小小的部分,需要等很长的时间才能看到结 果。

轻量级框架的优势很大程度上是因为加速了开发的速度,不用部署一个很庞大的容器系 统就可以实现以前需要容器才能实现的功能,可以使用 Spring 代替 EJB 中的无状态的会话 Bean,可以使用 Hibernate 代替 EJB 中的实体 Bean,而且可以直接写一个应用程序运行已 经完成的系统,马上可以看到结果,做单元测试非常简单,不需要做太多的工作就可以构建 系统,这些特性对于开发人员来说非常有吸引力。

重 量级框架在大规模运行的时候会表现出非常优异的性能,劣势主要是开发效率较低,轻量级 框架正好相反,开发的时候非常迅速,但是在大规模运行的时候,性能与重量级框架相比还 是有差异的。

不管是轻量级还是重量级框 架,基本解决的是两个问题,一个是事务控制,另一个是持久化控制。

持久化的开发可以和任何框架没有关系,直接使用 JPA 的标准注解即可,所以开发持久化部分的时候可以使用 JPA 进行注解,开发时期用 Hibernate 作为 JPA 的实现进行开发测试,需要上线运行的时候就可以直接部署到 EJB 的实体 Bean 上,在 EJB 3.0 之后,已经很好进行移植部署了。关于事务控制,现在所有的实现方式都比 较简单,针对方法进行注解事务类型即可,开发的时候可以用一个转换器将这些注解转化为 Spring 的映射,快速地进行开发,在上线运行的时候,直接使用 EJB 的会话 Bean 进行部 署就可以解决,这些方式实现起来并不困难,可以很好地解决“重量级”和“轻量级”之间 的矛盾。

许多企业的信息系统在最初设计时没有考虑多个系统“协同工作”的需要。

企业信息化建设缺乏一个整体规划。

企业的信息化往往是从单项业务系统开始的,不同系统的开发方式及对于 开发规范的遵从程度都有所不同,这使得系统间存在很强的孤立性,再加上对企业外部的信 息未予以足够的重视,致使各部门开发出的信息系统最终成为一个个信息孤岛,一个系统很 难与其他系统交换信息。

EAI(Enterprise ApplicationIntegration,企业应用集成),可以在一定程度上帮助人们解决这一问题。

EAI 是指通过将业务流程,应用软件、硬件和各种标准联合起来,对企业中完 成不同业务功能的应用系统进行无缝集成,使它们像一个整体一样进行业务处理和信息共享, 从而提高企业效率,为客户提供灵活的业务服务。

EAI 可以通过中间件技术来连接企业级各种应用,使异构应用系统之间能够相互“交流” 与“协作”

1.应用集成

应用层次的集成主要为两个以上的应用中的数据和函数提供接近实时的集成。

应 用层次的集成一般来说是通过处理多个应用系统之间的消息交换,实现系统间的集成

2.业务过程集成

业务过程集成需要处理企业范围内的业务过程和把企业存在的应用系统整合到这些业 务过程中。它是一个完全的企业应用集成实现策略,因为它使企业内的一个个分离系统变成 了一个支持业务过程的连续系统,从而满足企业的整个业务过程需求。

3.数据集成

要完成应用集成和业务过程集成,必须首先解决数据和数据库的集成问题。

一、企业信息化概述

1.企业信息化的目的

企业信息化的目的就是要建立一个整体上相当于
人的神经系统的数字神经系统。使得企业具有平稳和有效的运作能力, 对紧急情况和商机做出快速反应,为企业内外部用户提供有价值的信息,以提高企业的核心 竞争力。

2.企业信息化的规划

首先,企业战略的层面。在规划中必须对企业目前的业务策略和未来的发展方向作深入 分析。
其次,业务运作层面。针对企业所确定的业务战略,通过分析获得实现这些目标的关键 业务驱动力和实现这些目标的关键流程。
再次,管理运作层面。虽然这一层面从价值链的角度上来说,属于辅助流程,但它对企 业日常管理的科学性、高效性是非常重要的。

3.企业信息化的方法

几种常用的企业信息化方法。

(1)业务流程重构方法。

企业业务流程重构的中心思想 是,在信息技术和网络技术迅猛发展的时代,企业必须重新审视企业的生产经营过程,利用 信息技术和网络技术,对企业的组织结构和工作方法进行“彻底的、根本性的”重新设计, 以适应当今市场发展和信息社会的需求。

(2)核心业务应用方法。

(3)信息系统建设方法。

(4)主题数据库方法。

主题数据库就是面向企业业务主题的数据库,也就是面向企业的核心业务的数据库。

(5)资源管理方法。

资源是企业生存发展的根本保证,一个企业如果离开了资源,那 它是无法生存的。
流行的企业信息化的资源管理方法有很多,最常见的有 ERP、 SCM 等。

(6)人力资本投资方法。

人力资本的概念是经济学理论发展的产物。人力资本与人力 资源的主要区别是人力资本理论把一部分企业的优秀员工看作一种资本,能够取得投资收益。 人力资本投资方法特别适用于那些依靠智力和知识而生存的企业,例如,各种咨询服务、软 件开发等企业。

二、企业资源规划(ERP)

ERP 是一种融合了企业最佳实践和先进信息技术的新型管理工具。 它扩充了 MIS、MRPII(Manufacturing Resources Planning,制造资源计划)的管理范围, 将供应商和企业内部的采购、生产、销售及客户紧密联系起来,可对供应链上的所有环节进 行有效管理,实现对企业的动态控制和各种资源的集成和优化,提升基础管理水平,追求企 业资源的合理高效利用。

ERP 被认为是顾客驱动的、基于时间的、面向 整个供应链管理的制造资源计划。

“企业资源”是指支持企业业务运作和战略运作的事物,既包括人们常说的人、财、物,也包括 人们没有特别关注的信息资源;同时,不仅包括企业的内部资源,还包括企业的各种外部资源。

ERP 就是一个有效地组织、计划和实施企业的内外部资源的管理系统,它依靠 IT 的技术和手段以保证其信息的集成性、实时性和统一性。

1.ERP 的结构

(1)ERP 的管理思想

基本思想是将企业的业务流程看作一个紧密连接的供应链, 将企业内部划分成几个相互协同作业的支持子系统,如财务、市场营销、生产制造、质量控 制、服务维护、工程技术等。

ERP 可以说是 MRPII的一个扩展。
第一,它将系统的管理核心从“在正确的时间制造和销售正确的产品” 转移到了“在最佳的时间和地点,获得企业的最大增值”;
第二,基于管理核心的转移,其 管理范围和领域也从制造业扩展到了其他行业和企业;
第三,在功能和业务集成性方面,都 有了很大加强,特别是商业智能的引入使得以往简单的事务处理系统变成了真正智能化的管 理控制系统。

(2)软件产品

现在,ERP 产品则发展到比较高的阶段。大多 数 ERP 产品供应商都在模块化的基础上,把软件产品和软件服务进行集成,实现软件产品 的技术先进性和个性化设计,为用户提供一体化的解决方案。

(3)管理系统

ERP 是一个集成的信息系统,ERP 承诺建立跨越企业各个部门、各种生产要素和环境的 单一应用原则下处理所有的事务,即意味着集成。这种集成应该包括人力资源、财务、销售、 制造、任务分派和企业供应链等的各项管理业务。

具体而言,ERP 管理系统主要由六大功能目标组成:
一是支持企业整体发展战略经营系统。
二是实现全球大市场营销战略与集成化市场营销
三是完善企业成本管理机制。
四是研究开发管理系统
五是建立敏捷的后勤管理系统
六是实施准时生产方式

2.ERP 的主要功能

一是支持决策的功能
二是为处于不同行业的企业提供有针对性的 IT 解决方案
三是从企业内部的供应链发展为全行业和跨行业的供应链

3.ERP 的主要功能模块

物流、资金流、信息流

三、客户关系管理(CRM)

CRM 在坚持以客户为中心的理念的基础上,重构包括市场营销和客户服务等业务流程。 CRM 的目标不仅要使这些业务流程自动化,而且要确保前台应用系统能够改进客户满意度、 增加客户忠诚度,以达到使企业获利的最终目标。

1.CRM 的概念

CRM 集成了信息系统和办公系统等的一整套应用系统,从而确保了客户满意度的提高,以及通过对业务流程的全面管理来降低企业成本。

2.CRM 的背景

CRM 的出现体现了两个重要的管理趋势的转变。
首先是企业从以产品为中心的模式向以客户为中心的模式的转变。
其次,CRM 的出 现还表明了企业管理的视角从“内视型”向“外视型”的转变。

仅仅依靠 ERP 的“内视型”的管理模式已难以适应激烈的竞争,企业必须转换自己的视角,在向“外向型”转变的过程中整合自己的资源。

3.CRM 的内容

(1)客户服务。
(2)市场营销。
(3)共享的客户资料库。
(4)分析能力。

4.CRM 的解决方案和实施过程

CRM 的根本要求就是与客户建立起一种互相学习的关系,即从与客户的接触中了解他 们在使用产品中遇到的问题,以及对产品的意见和建议,并帮助他们加以解决。

一般说来 CRM 由两部分构成,即触发中心和挖掘中心,前者指客户和 CRM 通过电话、 传真、Web、E-mail 等多种方式“触发”进行沟通;挖掘中心则是指对 CRM 记录交流沟通 的信息进行智能分析。

一个有效的 CRM 解决方案应该具备以下要素:
(1)畅通有效的客户交流渠道(触发中心)。
(2)对所获信息进行有效分析(挖掘中心)。
(3)CRM 必须能与 ERP 很好地集成。

5.CRM 的价值

CRM 之所以受欢迎是因为好的客户关系管理对客户和企业都有益。CRM 用户从不断加 强的客户关系管理中明显获益。好的服务不但令人愉快,更能带来巨大价值。带有客户服务 的产品的总价值明显高于产品自身。
从另一方面看,企业实施 CRM 并非出于利他原则,而是认识到客户是其真正的财富。

较高的满意度,使得企业能够保留老客户,并不断增加新客户;
识别利润贡献度最高的客户并给以相应的优厚对待;
通过有效目标市场定位,来降低营销成本;
引导潜在消费至适当的销售渠道;
提供正确的产品来增加销售(交叉销售/纵向销售);
简化部门工作流程来缩短销售周期;
通过集中共同活动以减少多余运作;
减少由于多个不协调的客户交互点而产生的差错,节省费用;
利用客户喜欢的沟通渠道来增加对客户需求的了解;
参照与其他客户的联络记录和经验,与目前的客户进行沟通;
根据对以前绩效的分析评估未来的销售、营销和客户服务活动;

四、产品数据管理(PDM)

1.PDM 简介

PDM 是一门用来管理所有与产品相关信息(包括零件信息、配置、文档、计算机辅助设计 文件、结构、权限信息等)和所有与产品相关过程(包括过程定义和管理)的技术。

PDM 是为企业设计和生产构筑一个并行产品开发环境(由供应、工程设计、制造、采购、 销售与市场、客户构成)的关键技术。一个成熟的 PDM 系统能够使所有参与创建、交流、 维护设计意图的人在整个信息生命周期中自由共享和传递与产品相关的所有异构数据。

PDM 系统是一种软件框架,利用这个框架可以帮助企业实现对与企业产品相关的数据、开 发过程,以及帮助使用者进行集成与管理,可以实现对设计、制造和生产过程中需要的大量 数据进行跟踪和支持。

PDM 能够跨越时间和操作环境,实现数据的无缝连接和移动,保证 正确的数据、在正确的时间、以正确的格式、出现在正确的位置,进而推动产品尽快地投入 市场并能有效地平衡生产能力。

PDM 系统的用户主要有三类:
一是信息的使用者,他们要求最简单的用户界面;
二是数据的创造者,如机械工程师和电子工程师等,他们希望 PDM 系统能够很好地融入到产品设计应用中;
三是系统管理员,他们面对的是最复杂的用户界面。

2.企业对 PDM 的需求

一是在企业内部建立起完整的、统一的、共享的数据模型,保证各部门的产品信息一致。
二是缩短产品的上市时间。在需要数据的时候立即得到这些数据,加快任务的完成; 支持并行工程;允许授权小组的成员随时访问最新的版本的相关数据。
三是适应多品种小批量生产方式。通过产品结构和配置管理为用户提供了系列产品的有效管理方法,并可以快速地响应市场的需求,实现“面向订单”的生产方式。
四是提高设计效率和提高生产效率,降低产品成本。
五是提高设计与制造的准确性,提高产品质量。
六是保护数据完整性。PDM 系统提供权限控制和变更管理确保产品数据的准确和安全。
七是更好地控制项目。项目管理功能提供用户对项目的进展情况进行实施监控,确保项目顺利进行和如期完成。
八是实现全面的质量管理。PDM 系统可以建立适应 ISO9000 系列验证和全面质量管理
的环境,通过在产品全生命周期内的工作流程管理确保了产品的最终质量。
九是建立起企业 级的协同工作平台,为最终实现企业的电子商务打下坚实的基础。

3.PDM 的发展过程

(1)配合 CAD(Computer Aided Design,计算机辅助设计)使用的早期简单的 PDM 系统。
(2)产品数据管理。
(3)产品协同商务(Collaborative Product Commerce,CPC)或 PDM 标准化。

4.PDM 主要功能模块和内容

(1)数据基库
(2)产品配置管理
(3)工作流管理
(4)分类及检索功能
(5)项目管理

五、企业门户

1.企业门户的功能

(1)能够将一个机构现有的互联网址和服务完全合并而且相互兼容。
(2)能够支持开放标准和应用编程接口,让平台得以轻易容纳新的应用程序。
(3)能够接入一个由支持企业门户网站架构的伙伴和专业服务公司所组成的网络。
(4)能够多渠道接入网站,如互联网至公司内联网、话音网络、无线网络等。
(5)能够以统一的服务作为企业门户网站各种服务的基础,让用户享有多种便利,如一次登入、个人化接口等。当用户进入门户网站的不同部分时,系统可以记住用户的身份以 提供合适的信息。

2.企业门户的分类

信息门户、知识门户和应用门户。

3.企业门户的要素

建立互联网服务时应考虑的基本要素:
(1)战略性思维
(2)为用户所需要的不同类型门户网站建立一个门户网站架构。
(3)寻找合适的技术供货商——既能够支持各主要标准,并能够将其基本门户网站架 构与其他供货商的应用程序整合起来。
(4)确定所要建立的门户网站类型
(5)首先小规模地试办项目,确保有一个可行的工作环境。

六、企业应用集成(EAI)

EAI 技术将进程、软件、 标准和硬件联合起来,在两个或更多的企业信息系统之间实现无缝集成,使它们就像一个整 体一样。

1.EAI 的简要历史

2.EAI 的内容

(1)企业内的集成

1 界面集成
2 平台集成
3 数据集成
4 应用集成
5 过程集成

(2)企业间应用集成

EAI 使得应用集成架构里的客户和业务伙伴,都可以通过集成供应链内的所有应用和数据库实现信息共享。

3.集成技术的发展

面向信息的集成技术、面向过程的集成技术和面向服务的集成技术。

信息集成采用的主要数据处理技术有数据复制、数据聚合和接口集成等。其中,接口集成仍然是一种主流技术。

基于 SOA 和 Web 服务技术的应用集成是业务集成技术上的一次重要的变化,被认为是新一代的应用集成技术。

七、供应链管理(Supply Chain Management,SCM)

1.供应链管理的定义

SCM 的核心是供应链。供应链是指一个整体的网络,用来传送产品和服务,从原材料 开始一直到最终客户(消费者),它凭借一个设计好的信息流、物流和现金流来完成。

现代 意义的供应链是利用计算机网络技术全面规划供应链中的商流、物流、信息流、资金流等并 进行计划、组织、协调和控制。

供应链有两层含义,一层含义是任何一个企业内部都有一条或几条供应链,包括从生产 到发货的各个环节;另一层含义是一个企业必定处于市场更长的供应链之中,包括从供应商 的供应商到顾客的顾客的每一个环节。

供应链是企业赖以生存的商业循环系统,是企业电子 商务中最重要的课题。

供应链管理至少包括以下六大应用功能:
需求管理(预测和协作工具)、
供应链计划(多工厂计划)、
生产计划、
生产调度、
配送计划、
运输计划。

2.供应链与物流

供应链与物流的关系极为密切,而且不可分割。供应链管理是一种管理方法或思想,而 物流是在现实经营活动中的物质运动,供应链管理思想是从物流管理的实践中提取出来的, 管理的对象是物流;物流分为采购物流、生产物流、销售物流,而供应链管理将这些全部纳 入到一个管理体系之中,在供应商、分销商、零销商之间搭建起一个流畅的通道,建立起一 个信息共享的机制,从而优化整个供应链,达到降低成本、提高效率等目的。

3.供应链管理是一种管理思想

供应链管理一个重要的前提是信息共享,而各种版本 SCM 产品,其 核心功能其实是信息传递。

4.供应链管理的运作模式

供应链中的信息流覆盖了从供应商、制造商到分销商,再到零售商等供应链中的所有环节。其信息流分为需求信息流和供应信息流,这是两个不同流向的信息流。

5.供应链管理的技术支持体系

供应链信息系统的建立需要大量信息技术来支持,这是因为供应链管理涉及众多的领域: 产品(服务)设计、生产、市场营销(销售)、客户服务、物流供应等。它是以同步化、集成 化生产计划为指导,通过采用各种不同信息技术来提高这些领域的运作绩效。

信息技术对供应链的支撑可分为两个层面。
第一个层面是由标识代码技术、自动识别与数据采集技术、电子数据交换技术、互联网 技术等基础信息技术构成。
第二层面是基于信息技术而开发的支持企业生产。

八、电子商务概述

电子商务是一项涉及全球的全新业务和全新服务,是网络化的新型经济活动,它不仅仅 是基于互联网的新型交易或流通方式,还是基于互联网、广播电视网和电信网络等电子信息 网络的生产、流通和消费活动。

1.什么是电子商务

电子商务(Electronic Commerce,EC)是指买卖双方利用现代开放的 Internet,按照一 定的标准所进行的各类商业活动。

电子商务分三个方面:即电子商情广告、电子选购和交易及电子交易凭证的交换、电子 支付与结算以及网上售后服务等。

参与电子商务的实体有四类:顾客(个人消费者或集团购买)、商户(包括销售商、制 造商、储运商)、银行(包括发卡行、收单行)及认证中心。

2.电子商务的类型

(1)企业与消费者之间的电子商务(Business to Customer,B2C)
(2)企业与企业之间的电子商务(Business to Business,B2B)
(3)消费者与消费者之间的电子商务(Customer to Customer,C2C)
(4)O2O 即 Online To Offline(在线离线/线上到线下)

一、软件视图的分类

现代软件系统非常复杂,通常在某个具体的时间内只需将注意力集中在某几个结构上,结构是元素本身的集合,而视图则是捕获和表达结构(文档描述),虽然它 们有区别,但在实际使用时则不严格区分,即从系统体系的角度说是结构,从文档角度说是 视图。

架构的优势也在于使用视图:每个视图强调系统的某一个方面,同时忽视系统的其他方 面,以便有助于处理或理解当前问题,描述完整的系统架构必须具备完整的视图集,“4+1” 方法就是一类完备视图集。

软件视图通常分为三种类型:
(1)模块视图类型:为系统的主要模块实现单元编档。
(2)构件和连接件视图类型:为系统的构件和连接件执行单元编档。
(3)分配视图类型:为软件的开发和执行环境之间的关系编档。

组别 架构风格 说明 应用于
模块视图类型 分解 大模块分解为小模块,小到容易理解 资源分配、项目结构化和规划;信息隐蔽、封装;配置控制
使用 一个单元的正确性依赖于另一个单元的正确性(如版本) 设计子集;设计扩展(增量开发)
分层 上层使用下层的服务;实现隐藏细节的抽象 增量式开发;基于“虚拟机”上的可移植性
类或泛化 “继承自”或“是一个实例”;共享访问方法 面向对象的设计(使用公共模板)
构件-连接器视图类型 客户机-服务器 构件是客户机和服务器,连接件是协议及共享信息 分布式操作:关注点分离(支持可修改性);负载均衡
进程或通信进程 通过通信、同步或排除操作形成进程或线程之间的关联 调度分析:性能分析
并发 在相同的“逻辑线程”上运行 确定资源挣用;分析线程
共享数据 运行时产生数据、使用数据(共享数据储存库) 性能;数据完整性;可修改性
分配视图类型 部署 软件功能分配给软件(进程)、硬件(处理器)和通信路径 性能、可能性、安全性说明。尤其在分布式或并行系统中
实现 模块映射到开发活动中 配置控制、集成、测试活动
工作分配 将责任分配到适当得开发小组,特别是公共部分不是每个人趋势线 项目管理、管理通用性,最好的专业技术安排

二、模块视图类型及其风格

模块将遵循某种方式将软件系统分解成可管理的功能单元。架构模块视图是通过文档来枚举系统的主要实现单元或模块,及这些单元之间的关系。

完整的架构文档必须包含有模块视图,它为源代码提供蓝图。

(1)分解风格能展示向模块分配责任的方式。

(2)使用风格能展示模块相互依赖的方式。

(3)分层风格能将系统分割成一组虚拟机,通过“允许使用”关系相互关联,分层风 格能帮助实现可移植性和可修改性。

(4)泛化风格能展示一个模块如何成为另一个模块的泛化或特化,从而使模块之间产 生关联。

它广泛应用于面向对象的系统,能展示继承性,并能用来使用模块之间的共性。

三、C&C视图类型及其风格

C&C 视图能定义由具有某种运行时存在的元素模型,这些元素包括进程、对象、客户 机、服务器及数据存储器等。此外,它还包含作为元素的交互路径,如通信链路和协议、信 息流及共享存储器访问。通常,可利用复杂的基础结构(如中间件框架、分布式通信信道和 进程调度)来执行这些交互操作。

(1)管道和过滤器风格中的交互模式表现出数据流连续变换的特征。

数据抵达过滤器 并经过转换后由管理传送给下一个过滤器。

(2)共享数据风格通过保留持久数据来支配交互模式,持久数据由多个数据存取器和 至少一个储存库保留。

(3)发布-订阅风格用于向一组未知接受者发送事件和消息。

可在不修改生产者的情况 下添加新的接受者(订阅者)。在发布-订阅风格中,构件通过事件发布进行交互。构件可订 阅一组事件。

(4)客户机-服务器风格能展示构件通过请求其他构件的服务进行交互的过程,将功能 划分成客户机和服务器后即可基于运行时准则把它们单独分配给各个级。

(5)对等连接系统能通过构件之间的直接交换支持服务交换。它是一种调用/返回风格。

(6)通信-进程风格的特征表现在通过各种连接件机制并发执行构件的交互,如通过同 步、消息传递、数据交换、启动和停止等进行交互。

四、分配视图类型及其风格

硬件、文件系统和团队结构都会与软件架构进行交互,将软件架构映射到其环境的一般
形式称为“分配视图类型”。

分配视图类型的三种常见风格为:
部置风格:能描述构件和连接件对硬件的映射,硬件是软件执行的场所。
实现风格:能描述模块对包含它们的文件系统的映射。
工作任务风格:能描述模块对承担模块开发任务的人员、团队或小组的映射。

(1)部置风格体现为 C&C 风格(如通信-进程风格)的元素被分配到执行平台。

(2)实现风格能将模块视图类型中的模块映射到开发基础结构。

实现一个模块总会产 生许多独立文件,必须对这些文件进行组织,以免失去对系统的控制及系统的完整性。通常 利用配置管理技术进行文件管理。

(3)软件项目的时间和预算估计取决于工作分解结构(WBS),而工作分解结构则取决 于软件架构。

工作任务风格将软件架构映射到由人组成的团队之中,实现这一项目管理的目 的。

工作任务风格与模块分解风格关系密切,它能将模块分解风格用作其分配映射的基础。 这种风格能通过添加与开发工具、测试工具和配置管理系统等对应的模块分解进行扩展。工 作任务风格还通常与其他风格联合使用,例如,团队工作任务可以是模块分解风格中的模块, 可以是分层图中的层,也可以是多进程系统中的任务或进程。

五、各视图类型间的映射关系

为了完整地描述一个架构,必须使用多个视图,这些视图必须遵守一定的映射关系。

(1)模块视图类型中的视图通常会映射到构件和连接件视图类型中的视图。模块实现 单元将映射到运行时构件。

(2)系统的构件和连接件视图和模块视图之间的关系可能会非常复杂。同样的代码模 块可由 C&C 视图的许多元素执行。反之,C&C 视图的单一构件可执行由许多模块定义的代 码。同样,C&C 构件可能会拥有许多与环境进行交互的点,每个交互点由同一模块接口定 义。

(3)分配视图类型是为有效地实现软件架构的辅助性视图,它将其他视图类型中的软 件元素映射到软件环境中,即反映其他视图与软件环境之间的关系。

记录软件架构的活动就是架构编档过程,也就是架构的文档化。它包含两个方面:一是 过程,编档过程能促使架构设计师进一步思考,使得架构更加完善;二是结果,描述架构的 文档将作为架构开发的成果,供项目关系人使用。

1.架构文档的使用者

架构文档的使用者是架构的项目关系人。编写技术文档(尤其是软件架构文档)最基本 的原则之一是要从读者的角度来编写,易于编写但很难阅读的文档是不受欢迎的。

架构的主要用途是充当项目关系人之间进行交流的工具,文档则促进了这种交流—— 架 构项目关系人希望从架构文档中获得自己所关心的架构信息。

2.编档规则

合理的编档规则编写架构文档和编写其他文档一样,必须遵守一些基本规则,这里 将任何软件编档(包括软件架构编档)的规则归纳为 7 条:

(1)从读者的角度编写文档。
(2)避免出现不必要的重复。
(3)避免歧义。
(4)使用标准结构。
(5)记录基本原理。
(6)使文档保持更新,但更新频率不要过高。
(7)针对目标的适宜性对文档进行评审。

3.视图编档

视图的 概念为架构设计师提供了进行软件架构编档的基本原则。架构文档化就是将相关视图编成文 档,并补充多个视图的关联关系。

(1)视图概述:对系统进行概括性的描述,包含视图的主要元素和元素间的关系。
主要表示可用多个形式:图形、表 格、文本,通常用图形形式,使用 UML 语言来描述。

(2)元素目录:对主要表示中所描述的元素及其关系进行详细描述,包括:元素及其 属 性、关系及其属性、元素接口、元素行为。
对元素及其协同工作的行为进行编档,如用 UML 的顺序图和状态图描述行为;
对接口进行编档如题

(3)上下文图:用图形展示系统如何与其环境相关。

(4)可变性指南:描述架构的可变化点,如在软件产品线中,产品线架构通过变化, 适用于多个系统,因此,文档中应包含这些变化点,如各系统要做出选择的选项、做出选择 的时间。

(5)架构背景:为架构的合理性提供足够的、令人信服的论据。包括:基本原理、分 析结果及设计中所反映的假定。

(6)术语表:对文档中每个术语进行简要说明。

(7)其他信息:描述不属于架构方面的必要信息,如管理信息(创作者、配置控制数 据及变更历史)。

4.跨视图文档

软件架构由多个视图文档来反映,按前面所述的要求完成每个视图的文档后,需要对这 些文档进行一个整体的“打包”工作,这就是跨视图文档。它包括如下内容:
(1)文档有哪些内容,它们是如何组织的:视图目录(含哪些视图);视图模板(即前 面描述的视图文档,企业可以通过规范化来定义统一的、公共的视图模板)。
(2)架构概述:它描述系统的目的、视图之间的关联、元素表及索引、项目词汇。
(3)为什么架构是这样的(基本原理):跨视图基本原理解释了整体架构实际上是其需 求的一个解决方案。即解释了做出决策的原因、方案的限制、改变决策时的影响及意义。

5.使用 UML

UML 已经成为对软件架构进行文档化的事实上的标准表示法。在视图文档的组织结构 中,UML 主要用于表示元素或元素组的行为。

6.软件架构重构

前面已论述了架构编档,即在架构设计时完成编档工作。但是还有另外一种情况:系统
已经存在,但不知其架构,即架构没有通过文档很好地保留下来(文档的缺失/失效)。如何 维护这样的系统并管理其演变?其关键就是要找到软件架构,软件架构重构就是研究解决这 一问题的方法,它是反向工程之一。

软件架构重构由以下活动组成,这些活动以迭代方式进行。

(1)信息提取(View Extraction)。可以使用各种工具进行信息提取,如解析器、语法 分析器等;可以利用 build 和 makefile 文件中关于模块的依赖关系;可以从源代码、编译 时制品和设计制品中提取静态信息;可以使用分析工具提取动态信息。

(2)数据库构造(Database Construction):将提取的信息转化为标准的形式,并置于 数据库中。

(3)视图融合(View Fusion):将数据库中的信息组合在一起,生成该架构的一个内聚 的视图。

(4)重构(Reconstruction):构建数据抽象和各种表示以生成架构表示,主要由两个活动组成:可视化和交互、模式定义和识别。最后生成需要的架构文档(Documentation)。