大概在一年前也就是研一的时候,开始大概了解了WebService;一个外出和一个PM聊天(那次有超级上当的感觉)时,聊到了SOA,他问我SOA和WebService什么关系时,我回答了SOA比较大主要是大集成的思想,WebService也是。
当时那位 PM 给更正了一下, SOA 是一个规范体系, WebService 是 SOA 的一种具体技术体现。这句话虽然不很精确,但是也给我一种启示,那就是一定要知其然更要知其所以然。
他问及我的关于 Webservice 服务的粒度,让我在那次谈话后更加关注了 WebService 和 SOA 。
那段时间唯一的感觉就是对于 SOA 概念大家包括业界的各家都是仁者见仁,没有统一的说法。大概追逐了几个月的时间,便没有再跟踪。昨天小组讨论时,才发现我对 SOA 的定位却有些滞后;本来就是一种思想,这种滞后或许也根由于仁者见仁。
大概描述一下我的理解:
一个应用可以分为开发与集成两大部分。开发部分大概囊括需求、业务分析、实现、系统间各模块的集成、测试;集成更多的是与别的应用的集成,而不是系统间各模块的集成。换句话说,开发侧重的是应用系统的内部,耦合性更紧密;集成侧重于应用之间,讲究的是灵活性。
在 SOA 提出之前,集成更多的重任落在了 EAI 的肩上。介于对 EAI 理解不够,暂时不展开分析以及与一些同样目的的技术进行比较,如 WebService 。
SOA 就是一种思想 --- 大集成的思想,集成不能各家一词百花齐放,为了秩序,必须需要一个大家都能接受的统一的规范,这个秩序,更确切的说,更好的保证了可集成性。如同人类社会需要法律,法律要求人们遵守,法律反过来更好的保障了人类社会的秩序一样。而从这个意义上理解, WebService 就是 SOA 的一种具体实现,而非团队小组成员理解的 SOA 包括 WebService( 到目前我依然坚持 EAI 和 WebService 实现的是并列的技术,都是为了集成,都是 SOA 思想的一种实现技术 ) 。
SOA 的另一影响,就是对软件开发模式的影响,它把业务设计开发与技术设计开发分离开来,形成了与服务为主导的模式,业务人员更多的关注于业务流程,技术人员更好的承接这些模型与需求,以服务拼装的方式快速的实现出来。
说了这么多,下一篇将更多的从 SOA 的起源上说一下我的理解。
我对 SOA 的认识(二) http://www.blogjava.net/crazycy/archive/2006/05/24/47799.html