AOP:
对于AOP我认为他最大的意义是开始了一个新的软件集成方向,从编程转变为组装,从此开始用户有机会在完全脱离程序的情况下组件一个符合自己需要的业务过程。
在配置的过程中修改的是系统组成配置而非一个程序的执行选项,这样的任务更适合由一个领域专家而非程序员来完成。在充足组件的支持下一个领域专家有机会为他的客户配置出一个专有的业务过程,而在这个过程中并不需要一个程序员的支持。
现有的AOP方式还不足以支撑这样的方式他的思维高度还不够,但软件应该是在这个方向上发展的,软件只是一个基础应用为王。
SOA:
SOA的视觉高度是在AOP之上的他在思考服务的提供方式,服务必然是一种整合可以是一个或者一系列业务过程的整合结果。
但是他有一个前提条案件那就是旗下的业务过程“可以被整合”,只有一个能够真切的描述实际业务需要的“过程”才能够被良好的整合起来(这时候就不再关心这种描述方法本身了)。这个“过程”在实现的时候可能不会是直指整体的业务整合需求,但是他的设计者必然能够从更高的视角来看待自己需要实现的内容,只有从整体的角度上进行的局部设计才有可能被完美的融合到整体中。
SOA的实现过程可能是自底向上的,但是其中内在的自然过程必然是自顶向下的,把一个大脚车的轮胎装到一辆F1车身上显然除了娱乐没有更现实的意义。所以在比赛中每一个被安装到f1车身上的轮胎必然是从设计开始就在思考“我如何服务于F1的比赛过程”,其中的内涵已经远远超过了通常对于轮胎的行驶要求。
AOP是在封装操作过程,SOA是在封装业务过程,他们都是对于操作方法的指导。