IT168:SOA提供了一条“企业总线”,底层的应用和上层的服务请求都通过这条总线连接、转换,从而实现面向服务架构的设想。由此,规划,尤其是底层的规划就显得不是那么重要了。积累起来实际上会出现这样一种现象,底层数据结构会越来越复杂,就好像很多个蜘蛛网混杂在一起(已经有资料表明)。请问,对于这样一个现实问题,你如何看待?
东方通研发中心副总设计师刘川(以下简称刘川):我觉得这个问题不仅存在于数据层面。实际上数据对SOA是特性之一。对于服务来说,如果只是简单的把它接到企业总线上,实际上以后连服务业会变得非常复杂。这种简单的“接”是违背SOA原则的。SOA确实强调企业总线,但实际上它还会强调一些包括方法学在内的内容,比如一开始的规划等等。
SOA的本质是为了复用软件资产。因此,SOA将软件封装为服务并不只是为了封装而封装,而是为了复用。
因为SOA本身是松耦合的架构,因此在封装服务的时候并不需要考虑谁会调用我,我会需要谁,只考虑自己的业务逻辑,然后把自身和外面的借口做好就成。实际过程中,如果只考虑到SOA这方面的特性,做出来的东西很可能是非常的松耦合的,最后导致反而变得复杂了。
因此在SOA的规划时就应该考虑要怎么用,而不是为了接上总线而接上。
SOA会做很多的服务,包括数据。但是在针对一个具体业务的时候,实际上是需要一种逻辑(例如BPM)把这些服务给组装起来。那么这种业务逻辑所能组装的业务逻辑是有限的,包括要用到的数据。
因此,要解决这个问题就要首先在规划时把各种标准做好。
此外,SOA还强调要有一个资源中心,里面包括目录服务等,所有的服务包括描述都存在这里的。我们认为数据也是需要存在于资源中心,使其可查找。

IT168:你觉得传统中间件和基于SOA的中间件的最大区别是什么?
刘川:实际上现在SOA的实现,尤其是通过ESB实现的SOA,里面都会应用到传统的中间件,例如消息中间件。但是传统中间件就只做到这里,只做到两个点之间的可靠传输这个层面。SOA的中间件是在传统中间件之上,会要求标准的接口封装、接入、ESB功能的实现、路由、查找、服务质量支撑等功能。
换句话说,传统中间件作的比较专用,而SOA做的比较宽泛。SOA不是放之四海皆准的。
IT168:对于一个信息化项目来说,对于项目的管理是否成功,将直接关系到项目投资是否可靠有效、系统是否能够顺利实施等重要结果。而对于SOA这样一种新的体系架构,在项目管理方面应该注意哪些问题?与以往的软件项目的管理有何区别?
刘川:实际上SOA对信息化项目来说变得更难了,因为它要强调一个整体的规划。这是一个比较大的动作,要想企业实现整体的实现SOA,应该分步来做。
另外,企业应该成立一个专门的SOA小组,来评估企业新的SOA项目中哪些服务是已经做过的,哪些还没做。因为项目组都只关注自己的目标,对于其他的项目知之甚少。毕竟,SOA还是要满足复用的需求的,要满足企业级软件资产的复用。
从另外一方面来说,因为SOA松耦合服务和业务对应,这就使业务人员和技术人员之间原有的鸿沟消失了。SOA本身的服务就包含有业务服务的描述,这也就要求从一开始做业务规划的时候就要将一些服务定出来。这些在原来的信息化项目中是不做的。业务人员只提业务需求,真正的IT实现爱做几个模块做几个。
IT168:SOA里面在强调一点,就是把业务当作服务。同样的,BPM也在强调业务的服务化,那么是否做了SOA就不需要做BPM,或反之?两者的关系如何?
刘川:BPM和SOA是两种东西。BPM本质是在做按照用户定义的业务逻辑将服务组装起来,它只是在用这些服务。而SOA是在讲怎么把业务服务化。
BPM是SOA实现里面必不可少的服务编排所需要的一种工具。是SOA实现中很重要的功能。
一般来说,由ESB来提供BPM引擎会比较好。
| 第1页: 第1页 |