SOA技术论坛问答

对话嘉宾

  IBM软件集团企业解决方案部大中华及北亚地区首席架构师毛新生

  上海航空信息部总工程师李福娟(博士)

  金蝶资深架构师胡锦敏(博士)

  金蝶资深架构师彭璐

  金蝶BOS开发部经理宋凯

  主持

  金蝶BOS产品经理向雷

  精彩话题

  主持人:

  金蝶BOS在这几年发展壮大的时间里,获得了越来越多的企业客户的信赖与认可。而众所周知的一个新产品,在从构想到走向成熟直至现在的获得如此多的成功应用,都会经历一个非常艰辛的过程,特别是技术型产品刚从实验室走出来,要和企业的实际应用具体结合的时候,会碰到很多意向不到的困难,下面我们请BOS产品开发负责人宋凯,就这方面的内容与大家交流一下心得与体会。

  宋凯:

  谢谢大家!在复杂的企业应用中,流程的复杂度和业务量都超出我们最初的设计目标,BOS平台的确遇到了我们开始没有意料到的困难。但是在克服这个困难过程中提高了我们产品的程度,也成为了我们宝贵的财富。

  我们西北有一个能源企业的客户,在他现在运行的系统里面,一个月的在跑的业务流程有两三百万条,任务数有两三万条,这样的数据量最开始给我们流程的引擎带来了非常大的压力。

  我们南方有一个电力客户,有预算控制流程。在国有企业里面经常有上级往下级下发预算,下级往上级上报预算,不停的有往复的下发、上报情况出现。最终流程中,审批的节点非常多,上报和下发流程数就有上百个,而且流程的参与人要求非常灵活:当A部门副科长审了,副局长就要审计;B部门可能科长审了,局长审批。每个部门有不同的参与人规则的选择,企业中的工作场景给我们的工作流建模的动态灵活也带来了很大的挑战。

  经过多项的技术公关,最终我们BOS平台的工作流都很好的满足了客户的应用需求。

  另外一个一直困扰我们的技术难点就是升级问题。

  BOS平台的核心指导思想是模型驱动架构(MDA),这种开发方式非常有效的提高了开发效率。EAS的开发团队基于BOS平台构建的一套信息模型,客户拿我们产品进行二次开发的时候也是基于BOS平台进行,标准产品和用户的二次开发产品无缝的融合在一起。效率的提升带来了我们标准产品在不断升级和推出新功能,用户也不断的基于BOS平台进行二次开发的拓展。这时候我们就面对了时间多分支管理,还有模型多层次、多视角差异问题。这些问题逐步解决,使我们结构化模型驱动、升级、模型语义转换方面有很大的提升。

  举个例子:现在我们标准产品发了一个新的版本EAS5系版本,而用户在EAS4系开发了一个二次开发产品,这是很一个典型的三级升级模型,也是模型驱动开发的难点。但基于BOS平台不仅可以平滑的把用户开发的产品从4.0升级到5.0,还可以把有机的与5.0开发的产品融合。通过我们的模型升级引擎,可以实现自然的转换过程,不需要用户重新在产品上做二次开发。

  最棘手的问题就是系统集成的问题了。

  在大型企业应用中,企业结构非常复杂,有很多历史遗留的业务系统,比如说SCM、OA等等,这些系统都不是在统一的架构下进行开发的。我们开发了BOS集成平台,使异构的系统很好的集成起来。并且在这个集成平台上我们提供了很多非常诱人的特性,比如在北京的某个EAS集团客户,下属有200多家分公司,每天都要集成它的业务数据,集成数据量非常大,每天需要路由与传输的数据量都在百万级。有赖于BOS平台良好的架构设计,对这样的海量数据,我们仍然能够稳定的支持。

  我们在集成过程中还遇到了很多流程集成、集成业务语义问题,我们也逐渐在面对客户业务实践中得到解决。这是我们的业务发展,逐渐提高了业务的集成度。

  主持人:

  宋凯提到集成的问题,肯定是在座各位关心的问题,我们说SOA,是一个敏捷性同时可以提升系统集成性的架构,而SOA在有效解决集成问题时就需要使用服务总线。那相信很多客户都会有这样的疑问,是不是用了服务总线,就可以实现企业基于SOA的集成?有了SOA总线,我们在SOA集成方面还要重点考虑什么内容?

  彭璐:

  这个问题比较复杂。我从技术上进行阐述。SOA是基础件,但是它并不能完全解决业务问题。刚才宋凯也提到客户业务中,有的客户有几百家分公司业务量。EAS可以很好处理转换一致。现在我们涉及到数据的语法问题。举一个例子,是两个系统的集成,但是会出现同一家公司在两个系统中的名称是不一样的,比如说有的称为“金蝶公司”,有的叫做“金蝶软件”,有的叫“金蝶软件(中国)”。名称不一样的时候,系统就会理解为三个数据。这时候通常在架构中引入主数据管理,主数据集中、主数据协同、主数据对照实现数据的语义一致。这是我们平常遇到的难办的问题。

  集成过程中也会遇到业务逻辑和规则。集成并不是简单地从一个数据库挪移到另一个数据库就行了。在一个企业集团中有从低向下发送的数据,这些数据在地下业务系统中是不可更改的,这是逻辑数据。当应用系统进行转换发生改变怎么办?系统集成中的逻辑和业务规则控制中,ESB(Enterprise Service Bus,企业服务总线)可以很好地解决数据集成中的规则问题。但实际上集成的业务逻辑可以有模式的,引入这些业务逻辑模式解决问题会更简单。刚才说到的ES我认为是基础件。如果有更好的业务中间件解决这个问题,我想对集成会更有帮助。

  主持人:

  这里有一个对毛老师的问题。信息部门做IT预算的时候,抓的钱肯定越多越好,SOA则要提高部署效率降低信息化总体成本。如此看来这仿佛变成了一个矛盾体,从您的经验来看,这样的矛盾应该如何解决?

  毛新生:

  从短期来讲,高收益会需要高投入的。有一个经典曲线,一般来说,按传统的方法做IT投资,要买那么多中间件,没准硬件还得买的性能更高一些,请的顾问级别要更高一些,投入更高一些。但是从传统角度来讲就不一样了,传统项目初期投入会低一些,少一些,但是维护成本,尤其你把他们放在一起总体成本就未必最低了。有什么新的需求的时候,不是花钱的问题,而是火急火燎也做不了的事情。

  有一个经典的IT行业调查,大多数企业经过长时间的IT化以后,像美国已经IT这么多年了,各个部门该自动化就自动化了,要做的就是集成。中国相当多的企业已经进入这个阶段,十几年IT耗资很大,大的企业这部分的压力更大。集成在企业IT成本中的支出是很大的,运维支出也很高。但作为最终、长期的结果来讲,SOA是一定可以帮你减少成本的。

  观众提问:

  各位专家好,我们公司在前面有三个分公司,分别用了金蝶的产品,分公司都是独立法人的,这三个公司开始用的资料都是一样的,但到最后就变了,包括基础资料、基础设置。比如说A原材料,三个分公司都不知道A原材料是什么东西了。请问怎样能解决这个问题。

   胡锦敏:

  你是说你上面几个分公司用K/3,但是发现数据已经不一致了?一个是升级的EAS,这是大集中,有复杂架构的产品,会在EAS里面集中起来,这个困扰就没有了。第二,可以通过集成平台实现这个功能,有几种方式,这是基于我们平台支持的,假如说你们的物料很多,并且是宝贵资源。IBM还有一个新产品叫Web sphere主数据管理,你可以用这个产品把你所关心的主数据统一,让其他应用系统获得一致的数据。

   观众提问:

  今天听专家讲了一天的专业问题,我提一个不怎么专业的问题。请问李博士,因为信息化是现代企业的特征是毫无质疑的,CEO有自己的企业理想。CIO有自己的技术理想。当两者碰撞的时候,是CEO选择CIO,还是CEO选择CIO?

   李福娟:

  一般来说,CEO选择CIO,因为毕竟CEO的权力相对CIO是比较大的。CIO的IT战略和整个规划要符合业务的整个战略,不能说CIO能力很强,在技术、管理很强,但是不能符合我业务战略,肯定不会选择你。即便你能力再强,不能适应业务环境也很难待下去的。这是相互适应的过程,CIO也会通过自己的思想对CEO做一些改变,现在企业都是崇尚学习型企业,我相信很多CEO也可以从CIO身上学习到很多的东西。

   观众提问:

  我们公司在IT战略上遇到大的瓶颈,以前财务系统用的是金蝶的K/3,有自己开发的,也有针对我们行业进行开发的外包,这些系统是比较零散,孤立的,有两条路给我们走,一条路是把原来的路全部推翻,做一个整体的构架、系统出来,相对投入比较大一些。请问各位专家在实际和方法上给我们一些建议。第二,如果这个投入比较大的话,不能马上决定上的话,做流程处理过程中,能不能穿透应用,到底层去抓住数据做流程?

   彭璐:

  这个问题还是投入产出比的问题,如果把企业所有IT换掉之后还是要付出成本的,你可以看一下IT业务系统复杂符不符合你的发展需求,还要继续运行多少年,每年付出的成本是多少。还可以计算企业集成方法,把系统集成起来,大概费用是多少。这涉及到投资比例的问题。到CIO那里,他肯定会要你交出报表和预算,这是比较理性化的问题。

  观众提问:

  有没有比较好的经验提供给我们借鉴,怎么找到这个点?

   彭璐:

  做IT规划需要平衡,需要数字和实际情况做预计,很难给出“是”或“否”的答案。

  李福娟:

  你这种情况我相信在很多大型企业都发生过,在你企业信息化发展过程中都会遇到这样的问题。一开始大家做信息化的时候,对大部分企业来说可能是先上财务系统,再上HR,然后做内部业务部门管理,之后做流程,是逐步的过程。90年代的时候,大家都没有整体的规划,考虑整体的架构和发展,只是需要什么建什么。对于大部分企业来说,可能已经得到了信息化给自己带来的益处,但是信息化发展到一定程度,我到底是换一个系统,推翻重来,还是缝缝补补好几年。你要做评估。

  我建议有两种方法:第一,你有能力做,可以请你们的财务人员、IT人员做这样的分析。你觉得做得没有说服力可以请咨询顾问,比如说IBM、金蝶这样的服务咨询商,帮你们做决策,根据他们的想法做出自己的评估,我到底怎么样做是合适的。企业必须要算这笔帐,对这个应用系统需要维护几年,投入成本是多少,推翻的话,系统更新投入是多少。要算这笔帐,否则脑子里面总是一团浆糊不知道怎么做,算完了之后要知道怎么做,要怎么做,如何适应我以后的规划发展,项目应该怎么做,技术架构怎么走。先算帐再规划,再一步步实施。这样总会做好。

  观众提问:

  如果我们把现在的数据库推翻,金蝶现有工作流的处理能不能穿透应用,直接到底层做处理?

  彭璐:

  理论上可以。要有一个前提,所有数据预先做好规划,它们相互之间是可以理解的,事实中基本很难达到。从你刚才的介绍来看,很多数据是孤立的,连格式都比较孤立。仅仅从数据上解决问题,有可能实现数据的一致,这需要服务构建起来。我认为,在现有信息格式表达上基本不可能。

  毛新生:

  你让我想起我跟客户聊天说起,说中国IT是屡破屡立,屡立屡破。这个话不好,还是屡破屡建,你遇到的问题不是你独有的问题,世界上跟你一样处境的人非常多。怎么办?

  有几种情况,第一,功能不够用,性能不好,业务人员用起来不满意。第二,用得情况挺好,想穿新衣服,把它跟别人集成起来。要看怎么处理,前一种情况比较好办,大家认为它就是破罐子,摔就摔了,大家认为挺破就可以摔。到新的系统上做,都是容易做起来的。后一种情况是要和别的东西整合起来,变成流程,这时候就变成非常有趣、传统的话题。你除了应用时跟屏幕打交道之外没有别的办法,数据没有,协议没有,唯一有一个协议就是屏幕。怎么办?你其实有办法。

  举一个例子,韩国有一个航空公司的东西挺古老,就是TPF,它是非常古老的实时操作系统,全球订票就使用它。它是用汇编语言写的应用,数据也存在主机上。我们一种做法,拿着汇编的代码进行修改。另外一种做法是搭了一个桥,做了屏幕模拟协议,再用MQ给它引出来,要增加的就在J2EE上增加,然后把数据、协议引出来,变成服务。国内客户有很多J2EE应用,开始除了用浏览器什么也看不了,但是也有数据库。我们用老的部门去应用它,但是在数据库上包出Web服务来,把数据拿出来,然后再把系统进行整合。这是可以的,虽然有一些局限性,但是处理得当就没有问题。他说我不光要数据,还要系统里面的功能。怎么办?还是一样,做屏幕模拟,点浏览器可以做模拟的,拿这个浏览器可以做安全、会话管理及用户操作,可以模拟做出规划管理。