乐高玩具—作为一种设计哲学的SOA
这是最早的一个成功的比喻,传统的应用好比是普通的玩具,不可拆卸和拼接。基于SOA的应用都是由更小的服务组件组成的,如同乐高玩具的模块。用乐高玩具可以搭建各种不同的形状,好比可以实现不同的应用,乐高玩具的模块式基于标准的,而且可以重用。这个比喻的好处是很快给非技术人员建立一个头脑中的形象,在一个研讨会里面,组织者发了一些乐高玩具的模块,让客户们自己做出一些东西来。由此很快让听众明白,他们就是在做和软件开发类似的事情。
也许有人会说,SOA那么复杂,用小孩玩具来比喻是否太浅显了,这时,进入深层次探讨的机会来了。看上去,乐高玩具这么简单,似乎没什么深究的。这背后隐含了一种设计哲学,设计乐高玩具的团队都是一群拥有博士的设计专家,他们必须解决的一个矛盾是,如何把标准,松耦合,模块的功能,力学等要素在设计和规划的时候统统解决,留给使用者的,只有玩乐的乐趣。一个有趣的事实是,乐高玩具这样一个看上去如此简单的东西一直没有模仿者。软件工程师都可以用十分钟说他知道SOA是怎样一会事了,就像所有人看到乐高玩具时一样。然而,当一个人用设计者而不会玩家的角度来理解乐高和SOA类似的设计哲学时就会发现,两者的服务对象其实正是不需要关心技术的人,而且,他们都是为技术买单的人。工程师的位置,到底是个玩家,还是设计者?作为玩家,工程师懂得似乎多了一点,做为设计者,他还有太多东西要学,就像要成为乐高玩具的设计者一样。