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