导读:“大数据”火热之后,一些经典的数据建模、数据库/数据仓库、数据分析方面内容,包括骨灰级的商业智能 (BI)、知识管理 (KM) 等概念,也常被贴上这个标签。虽有蹭热度之嫌,但也是有相关知识与技术自然的、逻辑上的关联。这甚至包括一些“传统”的未决问题,比如“数据孤岛”或“应用筒仓”等。前文探讨的信息系统途径与功能性应用软件途径的区别与关系问题,在大数据时代同样存在;其背后还隐藏着个“程序与数据分离”问题——这个沉寂已久的话题最近又开始浮出,且与当前诸多热点有关:首先是大数据,然后是人工智能,还有云计算、新计算架构以及一些区块链发展相关的课题等。本文和稍早重发的若干文章讨论的内容与上述问题密切关联;这些问题从未真正解决,甚至更加严重。这里将以前的一些讨论重发作为参考,以备在新的基础上进一步探讨。(编者,2019-01-28)
摘要:理想的综合信息系统需要同时解决业务功能和信息资源管理两种典型需求,传统的开发方式在这两个目的的结合上存在困惑。模型驱动原理、企业架构 (EA)、参考模型等方面的发展,昭示了解决上述问题的新策略:面向数据库、综合建模、模型驱动,用模型驱动机制统一、控制整个开发、应用周期,进而直接形成模型驱动的新一代信息系统。
关键词:信息系统,开发途径,策略,模型驱动
1 引言
Flyingrobot (2007b) 对综合信息系统的开发,归纳了两种典型途径。其一是“功能系统开发途径”,从确定用户功能需求出发,精确设计能够实现目标功能的程序。通常的“应用”或“应用系统”开发方式都属于此列。按照这种途径开发的系统,信息管理与维护通常是在基本功能实现同时自然或辅助实现的次要功能。与此对应,另一种是“信息资源开发途径”,这一途径强调信息本身的实体性、独立性,从信息本身相对独立的生命周期着手,针对信息实体建立其整个生命周期上的支持、管理,首先形成汇集、维护、提供信息的基本功能,在此基础上再进一步建构更多的应用。这一思路与通常所说的“信息管理”或“信息资源管理”(Information Management or Infomation Resource Management) 一致。这两种开发途径,各有其优缺点和不同的适合领域,但并非相互独立。如何结合,则是一个现实的课题,尤其是其中涉及的数据互相重叠时,不能很好的结合,不仅带来数据资源搜集、管理上的重复工作,更重要的是大大增加了因数据不一致可能带来的隐患。对于希望覆盖或支持应用主体大部分业务和基本信息的综合信息系统而言,根据现有的理论和方法,对信息资源开发途径似乎有更多的选择理由。但在实践中,却难以与功能开发实现结合,并未取得预期的效果。本文围绕综合信息系统,对功能系统和信息资源开发两种开发途径进行讨论,并试图结合企业建模与企业工程等领域的一些进展,提出面向未来的、适合我军转型发展方向的新一代综合信息系统开发的策略。
2 综合信息系统及其目标
本文的讨论针对所谓“综合信息系统”,笼统地看,对此可能有两类基本的理解,一种是指基于计算机实现、具有特定业务功能的系统,例如自动控制系统,库存管理系统,计划控制系统等;一种是基于计算机实现、“汇集、储存和提供信息”的系统,也可称为数据库或信息资源管理系统(这两种典型的系统对应着两种典型开发的途径,在后面会进一步讨论)。应该留意,后者提供数据的对象是人,所提供的数据则既可以包括高度结构化的数据(以适合人类阅读的方式),也常常包括非结构化/半结构化数据(例如数字化的图形、语音、文本甚至包含文字的扫描图片)。要充分地发挥计算机的威力,其中一个方面就要努力提高数据的结构化与规范化程度,即计算机可处理的程度。例如,对于文字文档的扫描图片,其内容基本上不能为计算机直接“处理”;即使将其内容转化为计算机字符编码,如果是自然语言文本,目前也基本不能被计算机程序正确处理(但已经可以做一些处理,譬如关键字搜索)。同样是计算机字符编码文本,如果是严格依照某种编程语法编制的脚本(比如对一组业务规则的表达),就直接可以被计算机精确执行或处理,但其内容或意义,又可能不能被一般业务人员直接理解;更理想的状况是,这一组规则既可以展现为普通业务人员可以理解的方式,又能够被计算机自动地执行。当前高速发展中的“业务建模”技术,就具有这种能力。这正是我们努力的方向之一:让更多的数据既易于被人所理解和使用,同时也可以被计算机系统自动处理或使用,从而让计算机做更多的事,为人提供更多的支持。这就需要更好地结合功能和资源两个方面的要求。
本文对“综合信息系统”设定这样一种目标或范围:为最终应用主体(例如企业)的业务提供具有整体性、综合性的信息技术解决方案。与特定的(较为专门的)功能或业务系统相比,它的覆盖面更广泛,也更依赖于综合的业务信息。在更深一层的理解上,这里还隐含着这样一种认识:适合在计算机及网络支撑下完成的大部分“业务”,实质上(至少在计算机中)都体现为某种信息处理的过程。符合上述理解的综合信息系统的基本目标可概括为两个方面:
- 汇集、提供运作与管理中所需要的尽可能完整、一致的信息;
- 实现、支持基于上述信息(或与上述信息相关)的各种操作或功能。
从综合信息系统角度着手,建立基于信息技术的企业整体性解决方案,是应用主体企业在较高信息化水平下的课题。我们并不假设一个综合系统可以覆盖所有的需求,但可以预期这样的综合系统的发展,会“覆盖”越来越多的特殊功能系统,从而减少对独立的、孤岛式应用解决方案的依赖。从现实的状况看,这一类系统或解决方案远非成熟。
这种系统的基础,是统一的综合信息库——动态储存大量、有意义的数据——习惯上称之为“数据库”。实现应用数据库所需的基础设施——数据库管理系统 (DBMS),从理论到产品,都是相对成熟的,近半个多世纪,人们构造了大量的基于DBMS的应用,是典型企业应用的基本形态。与DBMS比,综合信息系统本身更不成熟,有很大的改进空间。在这方面,余彤鹰 (1999) 提出的新一代企业信息系统构思,是实现综合信息系统目标的一种有代表性的创新思路,曾给予国内一些企业应用开发者很大影响或启发。经过近八年时间的考验,其中提出的关键特征如企业建模、模型驱动,目前已经成为IT业普遍关注的热点,或公认的技术方向,在市场上也已经有了初步成功地案例。以互联网试验室2002年9月提出的《业务系统基础架构平台研究报告》(ChinaLabs, 2002) 为标志,国内兴起了一股影响至今的企业应用平台化的浪潮,兴起和领先这个潮流的关键之一,正是将企业建模和模型驱动技术引入综合信息系统应用。
3 功能系统开发途径
在过去几十年里,企业信息技术应用中最广泛和成功的例子,大多属于特定的功能系统,例如销售点系统 (POS)、财务系统、制造资源规划系统 (MRP II) 和各种特定业务的处理或支持系统、办公系统等等。流行的ERP(企业资源规划)概念,也常被看作是综合信息系统的代名词,但市场上大多数ERP系统始终和更加中性的“综合信息系统”(例如管理信息系统)有所区别。
这些系统开发方法与技术虽然可以有很大差别,但大都可归纳为功能系统开发途径。在典型的功能系统开发中,数据被看作是系统附属或私有的,由不同的开发企业在各自选择的运行环境中,按照各自的需要和技术风格加以解决,不大可能联合起来统一它们的数据规划或数据库。另外,为实现特定的功能,只需覆盖有限的数据,无需(也很难)去覆盖与本系统功能无关的数据,即使那些数据有紧密的逻辑关系。开发者的必须确保功能的实现和效果,是否能在数据层面上与其它系统整合,是第二位的。
这样,对于最终用户,使用多种不同应用系统的结果就无可避免地形成信息断层、孤岛、和冗余,它们制约了企业对信息的有效使用它们制约了应用主体对信息的有效使用,以及更高级、整体性功能的实现。这是IT应用领域悬而未决的主要问题之一,正因为如此,系统间集成、遗留系统/数据再利用等,已经成为当今信息技术应用领域的主要课题。近期IT界青睐的面向服务架构 (SOA),可以把不同系统的功能更好地衔接起来,但这种在功能上的集成,仍然无法解决或绕开功能背后的信息断层与孤岛等问题 (Flyingrobot, 2007a, b)。
4 信息资源开发途径
信息资源开发途径主要体现在一些特殊的领域或项目上,这种项目通常包括大量数据,其功能主要表现为对这些数据的直接使用——检索、查询、提取(阅读或输出),例如文献资源管理,一些公共信息共享、管理系统等。在各种企业应用的发展线索中,早期的“管理信息系统”(MIS)和相关线索上的“决策支持系统”(DSS)、“专家系统”(ES) 和“知识管理”(KM) 等,都是更接近综合信息系统的概念,但在实践中,它们发育得并不好 (参见余彤鹰, 2007a)。
道理上,从信息资源分析与建立上入手,先建立完整、规范的数据环境,在此基础上开发各种功能,可以最大限度地避免信息断层或孤岛等问题。但信息的稳定性是相对的,无论是它的内容、结构还是范围都不是静止的、固定的;而且基于同样数据的功能,也不是能够一次性弄清的,已有的功能可能需要改变,新的功能随时可能提出,而功能演进的本身依然会不可避免地带来对信息的特定要求,即使基本的信息已经预先加以建立——至少从经验上看,特定功能所要求的特定信息/结构,与通用的信息/结构之间,常常没有足够明晰的界限。
换一个角度说,信息资源管理开发途径强调在保持数据本身的稳定性、一致性的前提下开发功能,这就需要将功能实现与数据结构解耦,或者在开发新的功能的时候严格遵照事先建立的信息规划,从实践的经验看,面对复杂的业务功能需求,这两项要求迄今仍然难以达成,其中既有纯技术的困难,也有商业性运作的困难。当前的应用开发技术,在多数情况下,功能实现的方式与数据结构是高度耦合的,特定的功能系统,总是基于自身独立、独特的数据规划。即使对同样功能的实现,不同的应用开发供应商,有不同的技术、商业立场,要它们交换或共享系统中数据的完整结构,或者完全遵循一套通用的结构(假设它们存在),即使技术上没有问题,也会遇到复杂的商业策略问题。这些问题的存在,使得信息资源开发途径始终限于本节最初所说的少数情形。(Flyingrobot, 2007b)
当开发目标覆盖应用主体(例如商业企业、政府机构)大部分业务和基本信息时,对信息资源开发途径似乎有更多的选择理由。从信息资源建立的角度入手,从长远、整体的角度看,是更加合理的,但是,必须找到与深入、高级的功能无缝衔接(同时又不造成高度耦合)的方法。
5 信息工程与信息资源管理
实际上,前面提出的综合信息系统的基本目标,并非新的想法。管理信息系统 (MIS) 就是类似的经典概念。在过往对综合信息系统开发的探索中,上世纪八十年代,James Martin, Clive Finkelstein 等倡导的信息工程 (IE) 最有代表性。信息工程 (IE) 的基本思路是以数据为中心,在严格的数据模型和规范基础上建立“主题数据库”(subject data bases),分离数据结构与处理过程,把数据库看作是“应用”的环境 (即数据环境,data environment),在此基础上就可以逐步建立应用体系 (Martin & Finkelstein, 1981)。从系统架构的角度,信息工程也强调以数据库管理系统 (DBMS) 为基础,适合或最终导致面向数据库的应用架构。实际上,即使是功能导向的企业应用系统 (例如前面提到的MRP/ERP,POS等等),同样是以DBMS为基础的,以数据库为中心,或面向数据库,是多数企业应用体系结构的一个基本特征。将这一点,与近年来企业体系结构演化的趋势,包括应用中间层的兴起(中间件或应用服务器)、对SOA的重视等加以比较,是意味深长的 (Flyingrobot, 2007a)。
信息工程的目标,与我们所讨论的综合信息系统的目标基本一致,而它以数据(信息)为中心,强调总体数据规划与数据环境建设的思路,则可看作是信息资源开发途径的典型代表。国内也有学者将“信息资源管理”与信息工程结合,提出了“信息资源规划”,并在实践中取得了一定的效果 (参见:高复先, 2002)。
在信息工程或信息资源管理背后都有这样一个基本认识:信息是属于用户(相对于系统开发者而言)的一种资源,是具有特定的结构与属性的独立实体,与对它们的“使用”(包括储存、处置、检索或分析等等)是相对分离的。这个思路,强调数据(信息)整个生命周期上各个环节的管理,从基础数据环境(数据库)的建立开始构建综合信息系统,但对于在此基础上如何实现各种可能功能(应用),并没有给出更有力的答案。
信息工程充分继承了“数据库”最初提出时的基本想法,即强调数据处理与数据结构分离,但迄今为止,实现基于数据库的功能的计算机软件基本都是与数据结构高度耦合的程序。这意味着基于数据环境的企业信息系统开发者必须严格遵循和使用“甲方”提供的数据规划及数据库,应用只能以定制(或自行开发)方式实现。同时,由于这些定制程序与信息结构的高度耦合,它的维护将成为越来越繁琐,无法摆脱的艰巨任务。信息结构的相对稳定在此时并不如想象的那么重要,甚至是非实质性的:因为只需微小的变化,就足以破坏构造于其上的应用程序,仅此一点就足以制约信息工程方法的成功(余彤鹰, 2004a)。从经验看,最终用户(甲方)自主或定制开发整体性信息系统解决方案的计划,在大多数情况下都无法取得预期的成功。
信息工程最初单纯从信息规划的角度提出建立计算机化的企业,这明显是不够的,因此信息工程的提出、倡导者 Janmes Martin 转向和发展了企业工程 (Enterprise Engineering),并将其看作对信息工程的进一步扩展,其它的信息工程倡导者,也都有类似的发展(余彤鹰, 2001)。企业工程/业务工程 (参见余彤鹰1999, 2001等),拟补了信息工程的不足,是全面建设新一代综合信息系统的重要基础。
6 企业建模、架构、框架与参考模型
信息工程与信息资源规划的基本着眼点是数据结构。另外一些研究和实践者,直接将目光放在企业或业务本身,并试图将其与信息系统架构直接联系起来。有一系列相关的概念:企业架构 (Enterprise Architecture)、企业框架 (Enterprise Framework)、企业建模 (Enterprise Modeling) 与企业参考模型 (Enterprise Refrence Model)。这里的“企业”一词也常被换成更具体的“业务”(business),但在本文讨论的话题上,可以暂时忽略这种区别,并留意,这里的“企业”(enterprise) 是广义的,不限于商业企业,政府、军队、学校、民间组织等都可以理解为广义的企业。
承接上面的讨论,值得特别指出,这些工作在逻辑上可以看作是信息工程 (IE) 的扩展与延续——从数据建模扩展到企业/业务的全方位建模,其结果不仅包括企业的数据模型,也包括了业务模型、功能模型、过程模型,甚至信息系统本身的技术架构(模型)。企业建模与所谓“信息建模”本来就是密切关联的。从形式上,企业模型就是一种信息模型;从内容上,企业模型用数据(信息)构成对企业本身的表达。而基于体系结构和企业框架,对整个企业进行整体规划与设计,这个思路实际上和信息工程或本文中的“信息资源开发途径”吻合。与传统的信息工程内容相比,这些领域上的发展,至少在几个方面有所超越:
- 在对象与范围上,更明确地强调了企业、业务本身,不限于但包括数据(信息)建模;
- 在方法上,有更丰富的理论、方法学,从架构到框架,再到参考模型的建立与运用,以及一批在实际应用中得到验证的方法或体系;
- 在工具与技术上,出现了许多专用或辅助的建模工具,并且在模型管理、分析与模拟等方面具备越来越强的能力,远远超出了数据(信息)建模的范畴;
- 在应用上,在诸如政府、国防体系、军队这样的复杂、大型应用领域,得到了有效的应用或验证。
虽然有所发展,但在如何运用模型上,始终存在一种基本的困惑。余彤鹰 (1999, 2004b, 2005, 2007b等) 从原理和方法等角度,对此给出了一些回答,并且提出了“模型驱动机制”(Model-Driven Mechanism),阐明模型在开发过程和应用系统中的作用原理,以具有模型驱动等基本特征的“新一代企业信息系统”为纲,将企业建模、企业信息系统与企业工程等有机地联系了起来。
7 综合信息系统开发策略
在余彤鹰 (1999) 开始的一系列工作中,提出了新一代企业息系统开发的策略、方法、技术等许多方面的基本要点,今天看来,基本方向和关键要点,都代表或符合迄今相关领域理论和实践的进展。结合这些工作,综合前面的分析,从新一代综合信息系统开发策略的角度,我们归纳出以下几个要点:
1)面向数据库
综合信息系统综合信息系统的基本架构是面向数据库的。这一点直接继承了信息工程的思想,也符合信息资源管理的思路。虽然现实中企业所应用的面向功能开发的系统大都是基于数据库的,但许多开发者对数据库的基础作用理解得并不足够。强调面向数据库,会给软件架构设计和功能实现方式带来不同的思路和要求。另一方面,面向数据库的架构并不排斥其它架构风格(比如模型驱动架构和面向服务架构),可以很好地结合。从信息资源管理的角度,除了适合以关系数据库表达的结构化数据外,还需要处理/支持半结构或非结构的数据,这些数据同样应该被“嫁接”到结构化的数据之上(例如,形成基于关系模型扩展的多媒体数据库)。
2)综合建模
新一代的综合信息系统的整个开发工作,都体现为建模或基于适当的基于模型的方法,“业务”到信息(数据),从功能(过程)到系统架构。近年,在的企业建模(体系结构、企业框架、企业参考模型)、业务(过程)建模、信息系统建模、软件架构、软件功能建模,甚至软件的部署模型方面,都有长足的进步,建模技术与方法、工具,是IT领域的热点,但上述不同领域上的建模,逐步成为需要关注和突破的关键。新一代综合信息系统开发,应该努力将它们有机地结合起来。这种综合应用,不仅仅是对具体领域上进行建模,尤其包括不同模型之间的衔接、结合或运用方式,以及不同的方法论的综合运用。“模型驱动”也为建模提出了更明确的方向和要求。
3)模型驱动
余彤鹰 (2005) 提出了模型驱动机制,以此解释模型驱动的方式和实质。通过模型驱动机制,可以更清楚地把握模型运用的可能模式,引导我们选择、建立更适当的建模方法和应用体系,更充分有效地发挥模型的作用。它既可以用于应用系统本身,也可以用于开发系统的系统——应用系统的开发过程。前者是模型应用的高级形式,后者是相对初级的形式。在上一个要点中我们强调的综合建模,这个工作的输出——模型——须结合模型驱动原理加以运用,根据模型驱动的原理,可以有两个不同的层面:初级的“模型驱动开发过程”,和高级的“模型驱动系统”。
在初级层面上,模型驱动开发在整个开发过程中,充分运用建模与模型,软件领域在模型驱动架构 (MDA) 的基础上,已经提出了完整的“模型驱动开发”(MDD) 方法。已经在实践中广泛运用的企业架构/框架 (EA/EF),也应该按照这个原理,充分发挥和强化建模与模型的作用。
在更高的层面上,我们希望直接开发“模型驱动的信息系统”(MDIS),这是一种理想的境界,将使建模的过程和成果(模型)实时、动态地运用到实际使用中的应用系统。应用系统的架构可以是多种多样的,但综合信息系统可能是最适合采用模型驱动的系统形式之一。模型驱动系统是复杂系统的一种基本形式,并非新的系统构思,即使在以往的软件实现中,也包含着相当多的例子 (余彤鹰, 2007b)。实现模型驱动系统的障碍主要在于观念转变而不是软件技术。
8 小结
通过分析,我们可以看到,对综合信息系统,应用开发的两种典型途径“功能系统开发”与“信息资源开发”各有长短。后者,尤其继承了信息工程的理念与方法,似乎更适合于综合信息系统,但这种判断却没有充分体现在实践中。近年发展迅速,得到更多关注的各种建模方法和理论,实际上也是对信息工程或信息规划的一种扩展。要想让建模的结果——模型充分发挥作用,就应当按照模型驱动的基本原理——模型驱动机制去构造整个建模和运用模型的体系。由此,我们提出,以面向数据库、综合建模、模型驱动三个要点,作为新的综合信息系统开发的基本策略。这三项基本策略中的核心,是模型驱动机制,即用模型驱动机制控制、统一整个开发、应用周期,进而直接形成模型驱动的新一代综合信息系统综合信息系统。而面向数据库,是结合应用架构与技术架构的关键特征,它常常容易(或已经)被人们忽略。
要在实践中充分运用上述策略,应该对信息系统的原理、架构、开发与实现技术与方法、生命周期、模型理论、信息化与企业工程等等进行全方位的综合研究 (余彤鹰, 2004b),这里结合当前的实际,特别提出以下几项工作:
- 通用体系结构与建模框架的开发研究。在充分借鉴国外现有理论与实践的基础上,基于模型驱动理论,综合创新。虽然建模领域的许多工作都已经有几十年的历史,近年也有不少发展和普及,但囿于建模目的和运用方法等方面的局限,现有的建模(尤其企业、信息系统建模)仍然未臻成熟,存在较大的创新、改进空间,同时这也是确保有效地形成模型驱动机制从而发挥最大作用的关键。
- 建模体系的综合研究。对当前非常丰富的建模方法进行系统地鉴别、整理,根据特定的工作目标,整合、形成特定的工作体系。
- 模型驱动的信息系统开发过程与整个生命周期的研究。
- 模型驱动系统(软件)的研究与开发。国内商业领域已经有了初步的成果,但还远没有达到预期的成功。
- 面向数据库的软件体系架构研究。结合最新的软件架构发展和数据库平台当前面临的特殊问题进行研究。
- 从操作系统平台到数据库的国产或中性化、开源解决方案。这一点,是结合现在国内IT应用的实际状况,和IT相关领域的趋势提出的。非微软系,基于开源的解决方案体系的构建,已经具备了相当好的基础,在产品架构发生重大变化的时候,正是在这方面做出改变或重新选择契机。
上述策略,是建立同时符合本文最初提出的两方面目标的综合信息系统的关键。功能系统为主的应用开发格局短期内不会改变,单纯的信息资源管理仍然不会得到真正的发展,尤其无法取代前者,但我相信,基于模型的新一代综合信息系统能够在功能和信息资源两个方面覆盖越来越多的需求。
9 参考文献
- ChinaLabs (2002):业务系统基础架构平台研究报告,北京:互联网实验室,2002年9月
- Flyingrobot(2007a):以数据库为中心的应用与面向数据库. 企业应用探索日志, 2007年9月.
http://blog.vsharing.com/flyingrobot/A610947.html
- Flyingrobot(2007b):功能还是资源——信息系统的两种开发途径, 企业应用探索日志, 2007年10月.
http://blog.vsharing.com/flyingrobot/A612135.html
- Martin, James & Finkelstein, Clive(1981):Information Engineering. Prentice-Hall, 1981
- Martin, James(1995):The Creat Transition: Using the Seven Disciplines of Enterprise Engineering to Align People, Technology, and Strategy. AMACOM, 1995
- 高复先(2002):信息资源规划:信息化建设基础工程. 清华大学出版社, 2002年4月
- 余彤鹰(1999):迈向21世纪的企业信息技术应用. 企业工程论坛, 1999年1月,
http://www.ee-forum.org/pub/1998-2009/eitsd0.html
- 余彤鹰(2001):显现中的企业工程. 2001北京企业工程研讨会, 2001年12月,
(http://www.ee-forum.org/pub/1998-2009/eee/
- 余彤鹰(2004a):探讨一下信息资源管理(IRM)与信息工程(IE).企业工程论坛, 2004年8月.
http://www.ee-forum.org/bbs/bbsview2.asp?type=4&id=63
- 余彤鹰(2004b):余彤鹰. 新一代企业信息系统研究与开发纲要. 企业工程论坛, 2004年11月.
http://www.ee-forum.org/pub/1998-2009/neis11.htm
- 余彤鹰(2005):新一代企业信息系统——从实质性需求分析与研究到模型驱动系统. 企业工程论坛, 2005年8月.
http://www.ee-forum.org/pub/1998-2009/downloads/YU_MDEIS2005_050816a_CH.pdf
- 余彤鹰(2007a):企业应用发展线索分析. 企业工程论坛, 2007年7月.
http://www.ee-forum.org/pub/1998-2009/ty_070701a.html
- 余彤鹰(2007b):企业工程、模型与信息系统. 暨南大学管理学院, 2007年9月.
http://www.ee-forum.org/bbs/bbsview2.asp?type=6&id=180
初次公布:企业工程论坛,2008-04-11,
http://www.ee-forum.org/pub/1998-2009/bbs/type=6&id=272.html
作者印记:c8cc97
本文及所提及(链接到)的企业工程论坛的文章收录在两本文集中,下载地址如下(有重发的在参考文献部分补充了新的网址链接):