????? 前幾天看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.tkk7.com/crazycy/archive/2006/05/26/48244.html