SOA之二——程序設計語言的發展歷程

       計算機程序設計語言的發展,經歷了從機器語言、彙編語言到高級語言的歷程。 彙編語言源程序必須經過彙編,生成目標文件,然後執行。高級語言源程序可以用解釋、編譯兩種方式執行。

      在高級語言的程序設計中,我們又可以分爲幾個階段:面向過程的編程、面向對象的編程、面向組件的編程以及標準化的Web Service的編程。

      1.面向過程的編程

  面向過程的語言可以說是最早出現的大衆化的編程語言,結構化程序設計是程序設計發展史中一個比較重要思想C語言是最典型的代表,是一種緊密耦合的軟件語言技術,用C語言編寫的應用程序完成一大堆函數的編寫,整個應用程序依賴於一些預先定義的全局變量。函數的可重用性很差。面向過程的最小抽象單位的“函數”。

  2.面向對象的編程

  面向對象編程的縮寫是OOP。如C++、Java、C#等,將面向過程的相關的函數封裝起來,消除全局變量,形成能夠獨立調用的對象。相對於面向過程的含有全局變量的編程,其耦合性已經降低。對象可以重用,可以繼承和擴展。基於對象的各種設計模式也隨之產生。然而對象之間還有相互調用的現象。還存在一定的耦合性。這些對象只能本地調用,不能遠程調用。OO的是以對象作爲基本的抽象單位,一個對象可以有自己的數據和職責。

  3.面向組件的編程

  面向組件編程的縮寫是COP。COP是對OOP的補充,幫助實現更加優秀的軟件結構。將面前對象的程序進行封裝,定義一些接口讓外部調用。如J2EE(EJB)CORBA、DCOM等。組件的粒度可大可小,需要取決於具體的應用。

      COP是對一種組織代碼的思路,尤其是服務和組件這兩個概念。比如Spring框架中,就採用了COP的思路,將系統看作一個個的組件,通過定義組件之間的協作關係(通過服務)來完成系統的構建。這樣做的好處是能夠隔離變化,合理的劃分系統。而框架的意義就在於定義一個組織組件的方式。      

  COP最初的動機是爲了實現遠程分佈式的調用。它有接口類,另外專門有實現方法類,因爲它要事先定義接口類,客戶端調用的也是接口類。接口類和接口實現類之間實現了一定程度的解耦。也就是說,客戶端調用接口類時,不需要知道接口類是如何具體實現的,不需要引用服務器端的實現類。

      在COP中有幾個重要的概念:
      服務:服務(Service)是一組接口,供客戶端程序使用。例如,驗證和授權服務,任務調度服務。服務是系統中各個部件相互調用的接口;

      組件:組件(Component)實現了一組服務,此外,組件必須符合容器訂立的規範,例如,初始化,配置、銷燬。組件不是一個新的概念,Java中的javaBean規範和EJB規範都是典型的組件。組件的特點在於它定義了一種通用的處理方式。例如,JavaBean擁有內視的特性,這樣就可以通過工具來實現JavaBean的可視化。而EJB規範定義了企業服務中的一些特性,使得EJB容器能夠爲符合EJB規範的代碼增添企業計算所需要的能力,例如事務、持久化、池等。

      所以,組件比起對象來的進步就在於通用的規範的引入。通用規範往往能夠爲組件添加新的能力(就像上面所討論的),但也給組件添加了限制,例如你需要實現EJB的一些接口。以下我們將討論組件的一些相關問題:

      組件的粒度:組件的粒度是和系統的架構息息相關的。組件的粒度確定了,系統的架構也就確定了。在小規模的軟件中,可能組件的粒度很小,僅相當於普通的對象,但是對於大規模的系統來說,一個組件可能包括幾十,甚至上百個對象。

                
  面向組件編程需要和特定的程序實現語言綁定。傳輸協議也是非標準化的,傳輸協議的不一致,導致各種不同組件之間無法互相調用,例如J2EE和DCOM無法互相調用。

     

      4.面向服務的編程

  面向服務的編程,英文簡寫爲SOP,主要是面向Web Service的編程。面向Web Service的編程採用標準化的SOAP傳輸協議,不同廠商實現的Web Service之間可以相互調用。如J2EE所提供的Web Service服務可以被.NET來調用。反過來,.NET也可以調用J2EE所提供的Web Service服務。

  作爲Web Service,客戶端不需要知道服務器端是如何實現的,服務器端所用的是什麼樣的程序語言,客戶端也不需要安裝特定的Stub程序。

  從上面可以看到,IT程序語言發展的過程實際上是一個逐步降低耦合性的過程,也是一個接口和接口實現之間逐漸分離的過程。

  但是Web Service的SOAP傳輸協議儘管是一種標準的傳輸協議,但是它畢竟還是一種特殊的傳輸協議,一種特定的技術。Web Service並不支持其他的傳輸協議,如RMI等。所以說Web Servcie還是和特定的SOAP技術綁定在一起的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章