今天看到一个soa的片子,关于其中为了说明soa的business value,引用的一幅图片,个人看过太多的这类片子,觉得这种比较方法都没说到根上,很容易让读者云里雾里,似懂非懂,然后拿去用来满载唾沫星子的又去忽悠别人。
这个比较方法,没写过程序的人肯定容易看明白了,没准会发现新大陆般大呼小叫,SOA正是我想要的,对这种也不能说是SB的人,我不想多说。
我这里只想提醒一下写过程序的人,别太过死钻牛角尖,花费时间去仔细对比这个所谓的nb service到底和十年前C程序中的function(service)有啥不一样,soa到底“先进”在哪里,其实这个service根本就不是个什么新玩意,无法考证八辈祖宗时代是否就存在这种思考方法,但至少是我爷爷还没死那个时代的程序设计早已经采用的方法了。
要整明白这个问题,只需心中谨记一点:这是两个不同世界的东西,在soa里的世界里,讲的是business language,在传统的编程世界里,讲的programming language。而且,讲business language的,通常不会局限于一个系统中,需要开放的环境,提供系统间交互的能力。
soa推崇者认为传统IT解决方案中,技术实现开放程度不够(其实个人认为主要是缺乏统一的标准),成为不同系统相互间联通的障碍。(个人认为在单一系统设计上,传统IT解决方案远不乏SOA的影子,但放之于internet世界中,语言障碍凸显,因此soa主要解决了互联互通的问题, 因为可以互联互通了,就可以重用了,系统就不再仅仅是为自己活着了)
另外,稍扯远点,虽然一点看似不大的变化,但soa摇身一变,业务价值(business value)凸显,从业务的敏捷程度,业务部署速度,减低IT成本等诸多方面成为确实为企业带来不可估量的意义,当之无愧成为未来的主流架构方法。
强调一下,SOA中,无论是“业务流程”还是“服务”,都必须强调的是可管理性,即流程和服务都是可管理单元,而且这个可管理单元应该是业务层面而非技术层面的。