SOA的服务级别划分

SOA架构是有一系列服务之间相互交互构建成应用网络的架构体系。它的目标是松散耦合,基本单元是服务。
无论是新系统或者是遗留系统都要逐步改造成服务的形式进行发布。但如何将这些系统包装成服务,或者说包装成多大的服务,that's a question。
从面对对象到SOA,粒度问题始终是一门艺术。艺术不仅仅依靠逻辑,而且依靠经验和感觉,也就是sense。但是sense的来源,按照很多牛人的认识,来自于哲学观,这也是和我们从小接受正确人生观,世界观和审美情趣教育的思维是一致的。
SOA的哲学我认为和UNIX的哲学相类似,就是任何应用(服务)只做一件事情,但是要把事情做好,应用之间通过管道等机制结合成更为复杂的应用。从这个角度出发,SOA的服务就可以分为三个档次,basic service, composed service 和 process service。
basic service就如同UNIX下的grep等命令一样,是一个功能单一,具备ACID性质的基础服务。依靠他不可能完成什么复杂的应用,但是很多应用都要使用它,它是SOA的细胞。
composed service则相当于UNIX下 ls | grep 这样的命令行,它使用了几个basic service构成更为复杂的功能。而且这种功能最后也可以实现ACID性质。至于ACID的性质怎么实现,有的用二阶段提交(好熟悉的名字,不过最近好像没有什么人提了),有的就用人工挽回的方式。
process service则相当于UNIX下的shell脚本了,他可以完成一系列预定程序的操作。在SOA中,process service通常还有一个process engine的参与,用于协调各个service之间的交互,实现真正的应用功能。
做好服务级别的划分,有助于在进行SOA规划中掌握好service的粒度控制,从而使SOA的实施更加灵活。

你可能感兴趣的:(SOA的服务级别划分)