soa是英文service-oriented architecture,即面向服務架構的縮寫。本質上說,soa體現的是一種新的系統架構。在基於soa架構的系統中,具體應用程式的功能是由一些松耦合並且具有統一介面定義方式的元件(也就是service)組合構建起來的。可以說soa的出現,將為整個企業級軟體架構設計帶來巨大的影響。
有人說是四年,soa這個詞成為公眾術語差不多有四年了。
有人說是十年。iiop,rmi,corba,com ,算起來有十多年了。
但我覺得,應該從五十年前算起。那時,有了子程式。
子程式的出現帶來了如下變化:
(1)程式有了層次結構。乙個程式可以由一系列功能模組構成,功能模組又可以由下一層的功能模組構成。
(2)程式有了規範化介面。在任意層次,程式與子程式之間通過規範化介面進行資料傳遞。fortran、c等等,都有自己的規範。
(3)程式設計師的有了工作分工的自然邊界。企業內部是如此,企業之間也是如此。人們可以買到通訊庫函式,影象庫函式,統計分析庫函式,等等。呼叫這些庫函式不需要知道它們內部是怎麼實現的,只需要介面就行了。
(4)對函式的功能都有描述。一般包括每乙個參量的資料格式,數值意義,輸入狀態,輸出狀態,整個子程式的行為狀態。當然,那時沒有用xml,沒有用wsdl,而是用表達力更強,效率高得多的工具——自然語言。
所有這些,都是今天的soa標榜的,但早就存在了。
當二十年前我開始寫程式的時候,呼叫自己程式之外由別人寫的service 已經是司空見慣的了,不過那時侷限於「系統服務」。這些服務還可以被替換。我自己的程式一啟動,就把ibm pc上的int 9、int 16換了。
在過了幾年出現了dll,又有了更多的soa元素。
com、corba等等的出現,將這一程序擴充套件到網際網路上。規模達到整個網際網路的soa已經完全成為可能。
從這裡,我們看到,今天的soa只是幾十年來的自然程序的乙個階段,沒有什麼特殊的。
SOA與水果蛋糕的前世今生
現在也許有乙個你預料不到的問題。在最近有關預算 人員整合和soa是否真有價值等問題的討論中,人們提出的 soa將採取水果蛋糕的發展方式嗎?的問題也許乍看起來像辦公室舞會中的乙個快樂的玩笑。然而,通過更仔細地觀察,soa確實在像水果蛋糕一樣發展。那麼,soa到底與水果蛋糕有什麼關係?如果你跟蹤soa和...
LinkedList前世今生
1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...
前世今生 STL
嘛,string就是乙個用於字串處理的標準類庫,但是需要注意的是其速度可能會比直接操縱char陣列要慢一些。reverse這個方法是我一直都想找到但是沒有找到的,在判斷回文的時候格外好用。string s abcdef string ss s ss abcdef reverse ss.begin s...