您的位置:首页 > 运维架构 > 网站架构

大型企业信息系统的架构设计(一)——企业信息系统特点

2010-03-14 10:45 459 查看
这是我在CSDN SD2C 2009上做的关于《大型企业信息系统架构设计》的演讲的文字整理,这次演讲内容实际上很多,单纯看PPT难以全部了解,而我又没有时间写很多篇博客文章去系统性地介绍我在这方面的观点。好在CSDN对此次讲课内容有录音,我就此想出了一个偷懒的办法:把我的演讲内容直接整理成文字,除了方便阅读而做一些字面上的调整之外,力求保持原样,因此有些地方看着并不那么顺畅,也不可能像文章那样严谨,只求把我当时所讲的内容忠实反映出来,供大家参考。
下面是第一篇,对应前三页PPT的内容:

1. 标题
今天讲的主要内容是“大型企业信息系统的架构设计”,从标题来看,这个概念主要分为三个部分:第一个是“企业信息系统”,我们首先要给这个概念做个界定;第二个呢,是核心问题,也就是我们要做“架构设计”;第三呢,我们还要强调一下“大型”系统的架构设计,看看有什么特殊的地方。

2. 内容提要
所以呢,今天的主要内容大概分四个部分,第一部分就是我刚才说的,企业信息系统有什么特点,要简单介绍一下。中间两个部分大致是讲一下架构设计的内容,包括一些方法论的介绍,也包括我们简单做一些探索性的工作。最后呢,我们回到这个“大”字上,就是系统足够大的时候,架构设计的要点到底在什么地方。现在互联网的时代来临了,大家都知道互联网系统处理的数据量一般都比较大。我们要看一看,企业信息系统“大”的时候,是不是和互联网系统有共同的特点,还是说有可能是完全不同的东西。

3. 企业信息系统特点
好,首先讲一下企业信息系统的特点,这一部分只有这一张幻灯片。企业信息系统的特点,从本质上来讲,有两个角度:首先是受限于企业的环境,其次是服务于企业的目标。从这两个宏观的角度来讲,其实互联网的系统也是一样的:互联网的系统,总也要受制于互联网这个环境,也要服务于企业在互联网上经营的目标。那么他们的区别在什么地方呢,我们来仔细看一下。
首先我们讲企业的外部环境——因为环境一般分为外部环境和内部环境——说到外部环境呢,大家知道这个么:PEST分析法,这是企业外部环境的一个重要分析法。这是四个词的缩写:政治、经济、社会和技术,也就是political、economical、social和technological。这四个方面呢,也就是一个企业在整个社会当中,以及在整个国际化的时代当中所面临的外部环境,等会儿我会举几个例子和大家说一下。外部环境应该说是对企业十分重要的,因为一个企业的发展不可能脱离它所在的外部环境。下面再说内部环境,内部环境就是企业本身内部的构成,比如说:它的制度、它的人员、它曾经的发展历史以及它现在所拥有的资源等等。这两个环境对于企业来说应该说是决定性的因素,既然如此,对于企业信息系统而言也是决定性的因素。比如说,大家有没有听说过SWOT分析法,相信有人知道,SWOT分析法是研究企业发展战略的一个重要分析手段,实际上就是从企业的外部环境和内部环境两个角度来分析企业的发展战略。等一下都我会讲到,那就是对于企业发展有决定性影响的因素,当然都是对企业的信息系统有决定性影响的因素。
现在我来举个两个简单的例子:首先,互联网的领域内大家可能都知道这个词:“敏感词过滤”。敏感词过滤可能是有一定我们中国特色的东西,因为这是受到我们国内政治环境的影响,这就是我们所讲的外部环境中的第一个——“P”。大家可能会看到,敏感词过滤也许是我们中国特色,也许西方国家不会有。我想说的是,整个互联网的环境,在他初创的时候,都是很宽松的,包括我们国内也一样,所以没有敏感词过滤的这个情况。随着互联网发展的越来越快呢,类似于敏感词过滤这种情况,也就是受到政治因素影响的这种情况,会越来越多。而作为企业的信息系统,由于很早,几十年以来就一直存在和发展,因此实际上很早就开始受到政治因素的影响,这一点我们后面还会讲到。这个例子中,如果我们构造一个搜索引擎,大家可能都知道Map-Reduce这种架构,但是如果要一个“带敏感词过滤功能的Map-Reduce架构”,应该怎么做呢?比如说你是在哪一个阶段进行敏感词过滤呢?这里就是想说明,实际上包括敏感词过滤这样的政治因素,都有可能对你的信息系统的架构产生非常直接的影响,这是一个例子。
第二个例子呢,不知道大家有没有听说过,在互联网上,“用户可以用脚投票”。也就是说你的网站、软件做的不好,用户的体验不好,他就不来用了,就去别的网站了。但是,我们想一下,在一个企业内部的信息系统会发生这种情况么?如果有一个财务软件做的不好,企业的会计人员能说我不用这个财务软件,我用自己家里拿来一个财务软件来给公司记账么?这是不可能的。那么这说明什么问题呢?我这里是要说明,“用户”这个概念,对于不同类型的信息系统而言,差别是非常大的。对于一个互联网信息系统而言,用户实际上属于这个信息系统的外部环境,也就是它的社会环境。而对于一个企业信息系统而言,用户实际上是企业内部人员这样一个内部环境。所以我们大家应该知道,当你建设一个信息系统的时候,如果你没有把这些重要的因素搞清楚,你连你的用户是内部环境还是外部环境都没有搞清楚的情况下,你设计的信息系统,肯定会出现很大的偏差。好,这些就是我们所讲的,受限于企业环境这样一个要素。
下面呢,我们是要讲“服务于企业的目标”。我们大家都知道,企业建设信息系统,无非就是那么几个目的,提高效益、降低成本、控制风险等等,其实就是这样一些目的。那么我们刚才已经说了,互联网的信息系统,它建设的目的,可能和这个就差别很大,比如说我宣传一个概念,吸引用户,然后我可以拿到VC,在创业板上市等等。这个途径,和企业建设信息系统的目标,差别是非常大的,在这种情况下,如果我们不足够了解企业建设一个信息系统的目标,我们往往会陷入一种唯技术论状况,就是把这个系统建设得很漂亮、很完美、实现了我作为架构师或者作为程序开发者自己的目标,而没有去贴近企业的目标。
我这里举两个例子,首先是对于企业信息系统而言,开发活动本身也是这个企业的目标的一个组成部分,我想这点大家很容易理解。我们刚才举的例子是说,如果我们建立一个互联网的信息系统,可能它的投资方并不是很关心你这个系统的团队怎么样建设、怎么样开发、采用的工具是什么、管理流程是什么,他只是关心你最后做出来的网站的效果,以及你吸引的用户数。但是对于企业来讲,因为开发活动对于它的目标产生重要的影响,所以他会把开发活动本身也纳入他的效益、成本、风险的考虑当中,所以就会对你的开发活动产生非常直接的控制和影响。也就是说他必须管理你的团队是什么样、你采用的开发工具是什么样、你采用的方法是什么、架构是什么。比如有人说(后面我会举个例子),现在ROR很流行,两三年、三四年了,现在应该说已经足够成熟了,那么我想用ROR来开发一个企业信息系统可不可以呢?其实首先你就问一问甲方可不可以就行了,如果他不同意,你就不要想用了。当然,后面我们还会看到,还有很多其他因素决定你可不可以用ROR来开发企业信息系统。
第二个例子我想讲一下“功能的可替代性”,这一点也是企业信息系统和互联网系统的一个很大的差别。什么叫功能的可替代性呢,就是回到我们企业的目标,我们建设一个系统无非是为了达到这些个目标。那么,这些目标是不是每一个细节都可以用程序这种东西来帮助我们实现呢?通常是不一定的,有时候我们会看到,有很多的所谓系统的需求或者功能,我们要用程序开发出来,其困难程度比我们直接定一个规则,让人采用手工的方式实现,要大得多,因为有些工作并不是很适合于用计算机来做的。这些内容如果你不分析出来的话,最后简单来说,你会把自己搞死,就是因为你一定要拿计算机去做那些不适合用计算机来做的事,因为用户会给你提出来,说这是我的需求。所以在这方面你必须进行分析,有些工作是完全可以用非信息系统的形态来实现的。这对于我们信息系统的整体架构是有非常重要的意义的,因为经常你会忽视掉这一点,在这种情况下,你会由于为了实现一个很难于实现的系统功能,而破坏了你整个的系统架构。而实际上这个功能,我们把它孤立除去,根本不用信息系统来实现,这种做法是完全可行的。互联网的信息系统普遍而言不具有这样的特点,原因就是因为——回到我们刚才说的那一点——互联网系统的用户与你之间没有任何直接的联系,他们只能通过浏览器,通过网络访问你的系统,你不可能为他们提供一个不通过你网站系统实现的功能,你提供不了,但在企业中是可以的。
所以,大家看我这一张幻灯片讲的很长(我这一部分只有这一页PPT),就是为了说明,影响企业信息系统的这些因素,我们需要认识到足够清楚,以及他们与互联网信息系统之间有什么区别。这些内容在后面我所要讲的企业信息系统架构设计当中都会有体现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: