天天看點

面向函數->面向對象->面向SOA

70年代-80年代,自頂向下分析方法,核心是可以複用的函數,比如C語言的200多個函數庫。

80年代-90年代,出現了OO的分析和設計,核心是對象,是可以複用的元件。比如Struts這個架構,我們隻需在這個架構上搭載一些自己的 Action,就可以體會到真正的MVC模式,而不是每個項目大家都去創造一個自己的FrameWork, 這就是元件複用的好處。

90年代後,OO方法逐漸不能滿足使用者需求變更加速和老系統內建的需求,是以出現了SOA,SOA的核心是服務。自頂向下分析方法以函數為中心,OO以對象為中心,SOA 以服務為中心。

服務合元件的概念還是不一樣的。元件以功能複用為核心,而服務以實際的企業應用為一個單元劃分。比如訂單管理(OrderManager)可以是一個可以複用的元件,它僅僅提供自己的API,而訂單管理服務則是一個完整的企業行為單元,可能包括 采購訂單--〉訂單稽核生效--〉進貨這樣一個業務流程。脫離了BPM純粹從技術上讨論SOA是空洞的。

SOA主要目的是分布式和減少服務和服務之間的耦合。這種耦合性減少和以對象和對象之間關系的耦合性減少是不一樣的,對象和對象之間關系的耦合性減少我們用IOC就可以很好的解決了。SOA耦合性的減少是服務和服務之間的耦合性減少。

也就是說,70年代-80年代,我們采用自頂向下分析方法做項目,80年代-90年代,我們用OO的分析和設計做項目,而現在,到了以服務為核心的分析和設計方法作項目。SOA僅僅是OO 思想的一種發展和擴充。

利用SOA思想做概要分析和概要設計,OO思想做詳細設計,這就是我對SOA的了解

繼續閱讀