文章:
不可否認,應用軟件的開發正在經歷一次巨變——將最終增強開發人員的生產力並開啟一道通向全新概念的應用程序的大門。
新型的開發模式正逐漸被推廣,將分發軟件演變成一種服務還有待於所有開發人員的共同努力,而互聯網卻將徹底改變應用程序的開發模式和配置方式。
傳統上,軟件開發人員通過集成本地系統服務的方式開發應用程序。這種模型使開發人員有權使用一整套豐富的開發資源,精確控制應用程序的性能。
如今,開發人員在很大程度上已掙脫了這種模式的束縛,致力於構建具有復雜結構的n層系統,這種系統能將網絡中各處的眾多的應用程序進行集成,並大大提升應用程序的價值。這樣,開發人員便可集中精力挖掘軟件獨特的商業價值,而不必日夜為如何構建基本結構傷腦筋了。令人欣喜的局面將應運而生:軟件投放市場的時間大大縮短、開發人員的編程效率明顯提高,最為根本的是開發出質量上乘的軟件。
我們正在進入計算機發展的下一個階段——基於Internet的階段,特別是基於Internet核心技術——XML擴充標記語言。盡管多層應用程序開發將焦點集中在建造大型企業級應用程序上,但現在XML使得能夠創建可用於任何人、任何場所的大型應用程序。它擴大了應用程序的使用范圍。這樣,軟件就不是只能從CD上安裝的某種東西,而是一種服務——就像呼叫服務或者計費電視一樣,可以通過通信媒體來預訂。
這一切,是通過將緊密聯接的、高效的n層計算技術與面向消息的、松散聯接的Web概念相結合來實現的。我們將這種計算風格稱為Web Service(Web服務),它的出現標志著人類已經邁入應用程序開發技術的新紀元。Web服務是一種應用程序,它可以使用標准的互聯網協議,像超文本傳輸協議(HTTP)和XML,將功能綱領性地體現在互聯網和企業內部網上。
我們也可將Web服務視作Web上的組件編程。
從理論上講,開發人員通過調用Web應用編程接口(API),將Web服務集成進他們的應用程序,就像調用本地服務一樣。兩者區別在於前者能夠通過Internet發送到某個遠程系統的服務上。例如,像微軟護照(Microsoft Passport)這樣的服務,可以給開發人員提供應用程序身份確認的功能。通過對護照服務編程,開發人員就可以利用護照服務的基礎體系,實現維護用戶數據庫,確信服務開啟和運行以及正確地備份等等功能。
■松散聯接
跨越網絡的分布應用程序邏輯的概念並不是一個新名詞,但跨越Web的分布和集成應用程序邏輯的概念卻是。
此前,像微軟的DCOM (Distributed Component Object Model )、Object Management Group公司的CORBA (Common Object Request Broker Architecture )以及Sun公司的RMI(Remote Method Invocation )這些分布式對象模型被稱為分布應用程序邏輯。運用這些系統結構,雖然服務放在遠程系統上,開發人員仍然可以像原來本機編程那樣維護和豐富應用程序的功能。
但這種系統的問題是不能擴展到Internet。因為該體系的基礎是服務器上的客戶端和服務器的緊密聯結。這意味著兩者必須是同質的基礎體系,但也就常常意味著這種系統是非常脆弱的,如果有任何一端接口發生變化,另一端程序必然就會被中斷。舉個例子,如果服務器應用程序的接口改變了,那麼客戶端也將會失效。
開發中要求有一個緊密聯接的系統這本身沒有錯,而且許多應用程序也一直就是建立在這些系統上的。但最終,隨著時間的流逝,這種模型是不會擴展的。因為眾多公司企業要求相互溝通,這很難保證會有一個統一的系統,同樣也很難保證,你的客戶的服務器會有你所需要的完全一致的系統,你甚至都不可能猜想到它所用的是什麼操作系統、什麼對象模型和什麼編程語言。
相反,Web服務的聯接非常松散。這就意味者你可以在聯接的任何一端任意改變接口,而應用程序可以不受影響地照常工作。從技術上說,這主要是由於使用了擁有穩固性能的基於消息的異步技術,如像HTTP、SMTP等Web標准協議。