前几天看AOP时,有这样的描述AOP不是语言而是一种方法论,如同OOP是“面向对象的编程方法”是方法论一样。
对于方法论,查了一下大概阐述如下:方法论是一套完整的实践引导体系,是指导实践的理论基础,是人们在长期社会实践中总结和摸索出来的,符合客观发展规律的,符合人们对研究对象进行科学分析与判断的社会实践进程或步骤。方法是实践的成果,如同瓜熟蒂落,实践积累达到一定程度,必然会提出方法。
阅读周爱民先生的《大道至简
—
软件工程实践者的思想》时,其对方法、方法论也有阐述,摘录如下:
3.
方法
推动这种逻辑向前发展的,是
“
方法
”
和
“
方法论
”
的出现。长期的编程实践,自然的归演与总结,必须沉淀为某种
(
软件开发
)
方法,于是
“
过程
”
出现了,于是
“
对象
”
出现了,于是相关的方法论也就出现了。
这是实践的成果。方法不是某个人或者某个组织创造的。瓜熟而蒂落,实践积累达到一定的程度,微软不提出某个方法,
IBM
也会提出这个方法。即便他们都不提出,可能你自己已经在使用这个方法了。
方法并不神秘,因为它就是你今天正在做的、从事的和实现的。正如
“
模式
”
是一种方法,而模式就是你昨天书写代码的那个行为。只不过,
GoF
归纳、抽取、提升了这些行为的内在规律。
你看不到你做事的行为,也就不能理解
“
模式
”
作为一种方法的价值。所以大师们众口一词:模式需要一定的编程经验才能理解。
同理,理解过程也需要编程经验,理解对象也需要编程经验,理解
MDA
与
SOA
还是需要编程经验。
——
这可能就发生在你去回顾你上一行代码编写的经过,或者上一个项目失败的经历的那一瞬息。经验来源于回顾、理解与分析,而不是你将要写的下一行代码。
有人在寺院扫了一辈子的落叶而得道,也有人因为一句话而得道。
同样在业界,任何一种技术或者架构的产生,都是历史潮流的产物,
SOA
概念的提出也是业界面临的新问题的解决过程,尤其表现为不同语言开发的组件的相互调用,大型系统与大型系统的连接问题。
正是伴随着软件系统发展的需求,催生了SOA的诞生。这也导致SOA的核心就是将多个系统连接和整合起来,达到大集成的目的。
这种思想的产业化,就是业界大型公司的服务解决方案,SUN通过收购推出自己的SOA服务并有开元的打算,IBM利用自己的全套软件产品全方位的提出了自己的SOA应用,类似的Oracle、Redhat等或者通过收购或者利用自己的产品线推出了自己的集成方案。WebService(WSDL、SOAP、UDDI)就是SOA体系的一个具体技术解决方案,由于产业界都有共同支持,也就成了SOA下当仁不让的红人,外加各种相关规范的辅助,偏激一点的说,SOA就是思想体系,WebService就是实现技术。
在《我对SOA的认识(一)》中,我提到过对于SOA的概念和理解仁者见仁,当然不排除受这些思想体系产业化后的影响。毕竟企业提供服务是为了更好的生存,而不是“免费的午餐”。
类似OOP、AOP一样,SOA也不是一种产品或者组件,而是一种理念,一种系统设计的理念。SOA体系下提供的是服务,服务和服务间通过端口(Port)等连接在一起,从而从一个全新的角度去观察、设计系统。
下一篇我对SOA的认识(三)完成了对一些观点的修正 http://www.blogjava.net/crazycy/archive/2006/05/26/48244.html