不知道Service Identification标准的翻译是什么,看见有的文章翻译成服务鉴别,觉得不是很贴切。这里还是使用英文术语。
SOA在技术层面要实现分布式系统异构接口的互联互通,具有异构接口的服务彼此之间可以方便的互联;在设计层面则要将整个系统划分为粒度合适,高复用性的服务的集合。其实后一个意图一直存在于软件程序发展的过程中,类似于我们做程序设计时,如何设计粒度合适,高复用性的函数。SOA在技术层面解决的问题和EAI的功用类似,即能够以统一的接口连接异构的系统,当然SOA的异构接口互联技术更彻底更灵活,但主要的功能对比EAI的确没有多大的变革;在设计层面更是个老问题,一个老的不会有最终答案的问题。SOA的相关规范SCA,SDO和BPEL也都是针对技术层面的规范,对于服务的划分和定义则没有什么规范来统一大家对于SOA的认识。所以很多人说SOA没有什么新东西,属于新瓶装旧酒,也有一定的道理。
事实上技术层面异构接口的互联互通并不是难度很大的问题,而是个很复杂的问题,呵呵属于技术体力活。目前各大中间件厂商正在推出的SOA平台就是做这个干活的。而SOA的关键所在是如何更好地将系统划分为粒度合适,复用性好的服务。当新的业务需求出现的时候,能方便快捷地复用已有的服务构建完成新的业务功能。Service Identification应该就是指系统的分层,服务的划分和定义,服务封装,服务依赖关系分析等工作。