大家都了解,在IT世界里面,是数据稳定,还是应用稳定?数据更稳定,是不是这样。应用相对来讲要容易变化,流程又要容易变化一些,再往上用户界面的东西变化太多了。所以你一个极其重要的世界里面,就是有一些切分,就是企业应用当中数据和应用的切分,如果切分的好就会做一些数据库,这些数据库其实都是多个应用共享的数据。所以我们了解说,数据和应用首先要做一个粗粒度的切分。因此我们讲在SOA做法里面,大家千万不要忘了,我们所讲的数据服务,数据服务很多人都不理解,数据就是数据,看到服务也想不到数据的事。VS跟数据有没有什么关系?一想到就是Web Service处理,所以我们一般把Web Service当做是操作数据的,后面真正我们考虑数据服务的时候,更多的是DO的方式出来。另外一个层面数据服务会影响其他功能性的东西,如果我们跑来跑去的XML的文档,跟整个数据服务有关系,如果你说没有关系,就表明这个服务做的很有问题。也就是Web Service接口的消息。
我们将它各种各样的实景拿出来,有点像ER图,但是我们更多站在使用的角度去看,所以我们有一些相关的东西,把它放在相关的场景里面,看怎么利用这些数据进行访问。我们有这些访问的Web Service数据,比如说每一次相关的数据,这个BO很大的,不是一两个参数,最大的时候可以达到10M。想想这件事情就知道了,为什么讲SOA是在粗粒度上工作。很多时候有些同学或者是朋友跟我说,老毛,我这个Web Service不就是一个Java的接口,然后分布用起来呢?这就是很有问题了,这个绝对是一个误导。
我们事实上给它做了一个调整,在这个基础上覆盖了一层标准层,其实到现在为止,我还是觉得利用文件,利用目录,利用数据库还是有意义的。但是对于业务层面上,我们已经定义出有价值的东西,还是用分布式计算的东西。
这个是一个标准的搞法,你可以有自己的搞法,基本思路是一样的。这些是新开发的,我们 新开发的一些EDI业务服务,包括原有的系统,杂七杂八的系统,我们可以把他们的东西做出来,把这东西挂在ESP上面,然后挂起来。因为他跟很多客户打交道,我们做了这个东西可以让更多的客户参与这里面的。我们只是用一个视图,转化为J2EE的视图,跟过去并没有什么大的区别。
这是部署,包括高可用性,事实上做完这件事情以后,带来的效果还是比较好的,过去来讲,它在世界各地增加一个新的港口,过去它是那种方法做,大概好几个人干好几个月,换成新方式,基本上是业务人员和IT人员配合,用几天的时间就可以了。这是很好的例子。另外增加一个新报文,业务层面的意思就是说好几周好几个人,现在也是一两个人一两天就可以了,收效是非常明显的。
通常来讲,做SOA我们谈到了,SOA其实是一个企业级范围的东西,所以跟单个应用的开发是两回事。所以多少会牵涉到企业的IT战略和业务战略相关的东西。
我们看看我们是怎么处理的,实际上它整体IT困难都很好,这是一个小的例子,这是一个空的集装箱从一个港口回来的时候,会有一系列的流程。那个空集装箱考虑什么时候有货,什么时候可以带回去,它是有成本的。这是一步一步在走,所以跑完了这么多的系统,跑了这么多步,这里面都是很关键的。因为它跑到一个数据文件里面,掉了都不知道。
当然我们还是很希望它往一个服务生态系统去走,首先它核心的系统怎么样开放业务和数据,怎么样根据企业的整体信息结构,来建立企业信息模型,提供数据访问服务,信息唾手可得。他的系统不管是用什么平台开发的,都可以互动。然后这些服务中间件串起来,从而可以借助业务流程的整合来将这些东西很好的串起来做一个水平的整合。另外是一些访问等等。
这是我们当时讨论的整体转型的要点,整体要点还是以Service的弹性,可以灵活应变的事件。我们用动画的方式展示出来,提供以一种面向企业服务的方式。
它有一些EDI并不见得是业务部门的,这个东西都是在ESB里面弄的,清爽一些,意思是这样。
这是我们整体在COSCON里面做的,这个我就不说了,大家知道就行。
主持人:
感谢毛先生的精彩演讲,毛先生从理论到实践跟大家分享了,相信大家很有收获。
下面看看大家有没有问题,提问给毛先生的。
提问:
你的PPT资料里面讲到了SOA治理,你演讲当中并没有讲,请您给我们讲一下。
毛新生:
SOA治理,我没有讲,是因为很多技术人员很少想这个事。作为一个大公司的CTO、CIO的时候,你需要考虑战略层面的事情,你发现整个SOA一上来就谈业务的事情,企业范围,而不是一个部门,一个应用。所以它跟业务战略和 IT战略有天然密切的联系。正是因为这样的一个高度联系,使得治理本身变得很重要,因为在业务世界里面都是公司治理,假如你是一个上市公司,你公布任何信息都是经得起检验的。公司治理有一套做法,然后我们IT治理都是遵循ITIO标准,在这两者之间有一个SOA治理,因为SOA治理跟业务有点东西,跟技术有点关系,它跟业务实践也有密切的关系。
SOA治理最主要的内容是这样,牵涉到整个服务生命周期治理的框架,它解决的问题很简单,为什么我要开发这个服务,如果我开发这个服务,请问谁来付这笔钱?这个服务在运营期间所带来的利润谁来分,谁获益。我提供的服务分享给你用,你这个部门出多少钱给我,出了问题谁来负责,谁来决定这个应用的开启和废止。谁出钱,谁得到钱,等等这些事情都是SOA最核心的问题,这个问题放在企业环境里面,具有非常大的现实意义。
事实上这里面有更多的内容谈到这个部分,因为我在这里面增加了一个例子,是一个国内做的非常非常好的SOA实例。首先这个CIO有一个战略思考,我的IT架构怎样适应业务流程的变化,如何集成异构系统的数据一体化,如何广域集成异构实时数据库和关系数据库。如何构建统一系统支持平台,不再走系统集成老路,所有这些问题,包括安全的问题,都是他特别希望解决的,这是CIO想的问题。他想的很明显就是企业的问题,而不是想企业应用的问题,J2EE应用的问题,如果他一上来就想这个问题,就不要搞了。
所以他希望大家的目标是什么,就是支持灵活的企业目标和业务模型,适应快速变化的电力市场,面向灵活、开放的工业标准等等,这些目标怎么实现?就是架构高层战略决定。他说我今天要用虚拟化的技术把业务集成起来,形成高效用的平台,然后以XML为基础,形成一个主体数据库,XML数据库是非常靠前的。我估计大家还没有尝试XML数据库。XML的重要目标是用自描述,自完备的方式去描述业务的数据,那是一个最重要的目标。他说我用一个广域异构数据库整合,在这个基础提供数据服务,我觉得他走的非常靠前,非常了不起。
他说我有这些服务了,用Web服务点对点后端应用整合,用Portlet服务的门户前端整合。他们的UI都是业务人员定制的,他不开发,很了不起。
事实上你发现这个人还有很多的思考,我跟他的交流,很受启发,一方面不只是突破,不仅有数据服务,还有整合数据,这样在流程整合的时候,不仅仅只有功能应用,还有一些数据的。
他得到的东西就是非常完整的端到端的流程。但是还是有相当多有趣的思考,比如说信件和遗留系统一样的SOA策略,实际上他制订了自己的策略,新系统怎么搞,遗留系统怎么搞,怎么实施,他也有自己的标准和要求。对业务人员的要求也有全面的计划。我觉得这是非常有心的人。
1