從流水程式到SOA

2021-05-24 09:39:49 字數 1801 閱讀 2150

從流水程式到soa

咱就從函式**開始談起,更史前的goto和彙編**咱就不談了。

函式和變數寫多了,自然也就發現有些函式和變數互相粘在一起很高耦合,而與其它的一些卻沒多達關係,於是為了顯性化讓其他的開發人員知道哪些函式和變數確實關聯性很緊密,於是創造了類。物件導向在80年代的國外**開發界頗為流行。

但介面思想的風潮在90年代颳起了。起鬧的原因就是類被濫用,子類不斷繼承,發現隨著企業業務發展變化,父類中實現的功能已經無法適合新時代業務了,現今業務和過去業務差異很大。而因為萬丈高樓不能動父類中的方法功能了,否則子類就都癱瘓了。為了避免這個問題,就不讓父類負責功能了。所以大量出現虛方法的父類,只有乙個空的函式申明,函式裡什麼也沒有。到最後發現只需要申明一下就可以,連函式這個空殼也不需要了,於是正式提出介面。

到了90年代中期,it軟體開發公司越來越專業了,大量企業it部門不再自己開發軟體而轉為購買專業軟體公司的軟體。這樣企業it部門的it人員對程式設計對技術越來越遠,漸漸偏向了業務。企業it部門談業務流程和業務輸入輸出,it公司談物件,這就接不上去。於是it開發公司發明了面向元件的業務分析方法、設計方法、開發方法。不要談物件識別、物件分解、物件繼承、物件呼叫關係,只談你需要什麼功能。功能用介面來表明能幹什麼,但這些介面是在內部被哪些類實現的,類之間的關係到底怎麼回事,都不用解釋給企業it部門。這是企業it部門和專業軟體公司第一次以業務視角來談軟體。

到了2023年以後,網際網路興起。xml從html中脫胎而出,html專門發展成為視覺化介面展示技術,xml走向純粹資料表示,但都是文字型,便於通過http在網際網路上傳輸。it人員為了程式更靈活,於是讓介面申明也不用**表示了,直接用xml表示了。介面中需要的引數,如傳入乙個訂單需要修改,那麼這個訂單資料也被xml表示。另外,這些介面方法怎麼串聯在一起執行乙個完整的業務流程,也用xml表示了。至於xml怎麼和**動態繫結在一起,那就讓底層技術去想吧。於是,it公司和企業it部門只要一起談某個業務的處理流程、每步處理方法、處理的輸入和輸出就ok。把這些談好的畫出來,儲存的時候儲存成xml格式就ok,就如同咱們office2007就可以把excel另存為xml格式一樣。從這樣來看,現在的it軟體開發公司和企業it部門已經越來越一致的以業務來談,而不是以技術來談。一致面向業務來談、xml式定義與動態繫結而不用去管用什麼具體技術來實現這些功能,這是最關鍵的特徵進步。這就是soa。

從一步步來看,軟體公司的開發人員的需求分析方式、軟體設計方式、**開發實現方式都已經變化很多了。面向業務流程和業務資料來談,介面定義,內部實現具體編碼類就ok。底層框架真正負責這些xml介面定義和具體元件的繫結、建立、銷毀、記憶體**、併發、池化、序列化、訪問安全、事務保證。這個底層就是中介軟體。過去有ejb中介軟體伺服器、com+中介軟體伺服器(mts)、corba中介軟體伺服器。現在加入了功能介面、業務資料的動態xml繫結以及業務流程的動態解釋執行,就被公升級命名為esb,意思就是希望通過xml定義和傳遞,來達到不同技術的元件(ejb、com+、corba)都能互通。這和xp公升級到vista或win7一樣的,都是繼承性發展過來的。但就是叫不同的名字,就要把win6叫做vista,就要把win5叫做xp。

在10年前,很多人問過我:「你的軟體是三層的嗎?你的軟體是面向元件的嗎?」。好像意味著面向元件就可以靈活組裝軟體。現在又有人問我:「你的軟體是面向soa的嗎?」。我在想,我的軟體ui介面是xml描述的、report是xml描述的、功能函式是xml申明的、業務處理流程也是xml定義的,資料也是xml定義的,而且也是工具來畫出來儲存成xml而無需手工直接編寫xml。但就是這樣也不是普通人員能夠搞的,幾千個業務資料定義、幾千個功能函式、複雜的業務處理流程,不是熟練手天天搞是很難直接下手修改並且除錯確保正確的。從本質來說,xml不就是把寫死的**換成有固定規格的文字了麼?在程式設計師眼裡,源**也是abcd的文字,xml也是abcd的文字。

從SOA到雲計算

曾經有過世界性的 計算機將來是否可以超越人的智力,機械人是否可以反過來統治人類,當人把自己的感情能力也賦予給計算機,計算機也有了 生命 那 麼機械人也可以擁有人的權利嗎?計算機作為人類的輔助工具,而且越來越深入到人類生活 工作的各個角落,那麼計算機比人究竟擅長的是什麼?計算機技術飛速 發展,形態也花...

從問題到程式

面對乙個問題,你必須要先找到解決這個問題的方法,然後才有可能寫出相應的程式。寫程式前先構想好程式的結構。1.沒有想好解決方案,不要急於動手寫程式。2.有了解決方案以後,可以按照 先粗後細 先抽象後具體 的辦法,先有程式的輪廓,如有必要可以借助 建模工具 畫一些圖,而後再動手寫程式 3.寫程式時,可以...

從應用伺服器到SOA核心

還記得在20世紀90年代初,人們開始初步嘗試使用網際網路,不過在那個時候使用網際網路絕對沒有像今天這麼方便。當時,為了幫助人們更好地應用網際網路,ibm開始了在這方面的投入和研究。十年前,也就是1998年,以 颶風 hurricane 為代號的websphere應用伺服器的出現為網際網路應用的敏捷 ...