SOA short for Service Oriented Architecture,其实是以Service(服务)为最小粒度的网络上的一组具有松散关系的服务的集合(a collection of Services)--------他们之间能够互相交流。
服务,作为其最基本单位,免除了其他人去关注于服务的实现,在这个层面上讲,就比OO要高------OO仅仅达到方法级的不关心,服务则是把一些列相关的方法和对象串联起来,组成服务.
可以这样打个比方,你要向北京的某个人发送快件,你不回去亲自去送这个快件-----你有更重要事情要做,那么你给快递公司打电话,然后他们派人来拿走信件并记录相关信息----当然你要付钱.接下来的事情你就不用管了,不出很大的意外(比如战争,大规模瘟疫),这个快件会按时到达.
在上面的事例里,送快件这就是一个服务,打电话就是得到服务的方法,
快递公司派去的人就是服务的接口,-----这里有两个很重要的地方,一是如何得到服务?二就是服务的接口.现在你拿到了服务的接口了,然后你向接口里放上参数---快件,钱,等相关信息.然后整个过程就不用关心了,直接关心结果---送到快件.
再比如,订饭.饭是如何做,是如何送?这些都不用关注,关注的只是返回值------他们送来的饭,然后付钱.如果如何送如何做都要关心,是不是得不偿失呢?
上面是简单的举例--你在不同的位置上面的情况可能不一样.
如果你更高级,你的服务也会更高级---查询具体的服务的事情就不用你来做,你的秘书能够完成,那么你的任务就更轻松了-----直接找到秘书这个接口,剩下的都不用再管.
经过对SOA的思考,我认为技术会将走向人性化,人在社会中的某些思想或发展都会在技术中出现.从编成的无序化到过程化,在到oo,到so,这些都在人类的发展中能够体现到,-----随着社会的发展,由原来的简单的采集食物,到猎取食物,再到人自己种地养动物,在到一部份人种地养动物其他人做另外的事情,社会的分工更明晰,产生了某些专门行业,这些行业提供专门的服务.
难道IT 的技术发展不也是经历了类似的过程?
可以推测,如果人类的生活方式的再次变化,必定能在技术领域带来飞跃!
所以,我有一个大胆的想法:任何领域,任何行业,都最终能抽象到一起,能和人类社会的发展达到一致.