Java 和 XML 爲何將成功

來源: http://www.host01.com/Get/jsp/00040006/0542422193920252.htm

在過去幾年中,計算的注意力已經逐漸遠離原始技術,並且最近大多數已經在確定一個總體擁有成本 (TCO) 的解決方案上。但是什麼構成 TCO 呢?本文討論了一個典型計算機系統中的互連複雜性是如何影響 TCO 的。而這種互連複雜性正是 Java 技術和 XML 能夠處理的。
x
什麼構成了總體擁有成本 (TCO) 呢?這很難說,每個人都有不同的答案。通常取決於他們找到的最方便解決問題的方法。大多數人都同意 TCO 並不只是組成系統各零件價格的總和。最初是這樣,但到最後大部分成本來自支持環境中的系統的成本。一種受歡迎的減少 TCO 的方法是嘗試集中管理獨立系統、客戶臺式機或這兩者,但這也只是答案的一部分。最好將通信量減到最小,但實際上是什麼導致需要管理呢?當然,答案是變更。但不在於它本身。孤立的變更只會影響變更本身。我們都知道變更系統的一部分會導致遍及整個系統的支持需要。

普通的計算機系統通常會導致“熵死亡”,即成本超過預期值,而有序的簡易性會變成互連複雜性。治癒這種症狀的方法可能是集中管理,實際弊病將避免具有依賴性的複雜網絡放在首要位置。Java 和 XML 通過幫助排除系統、軟件和數據之間的自動互相依賴性來避免這種情況的發生。

一個新世界
大多數支持和管理的需求來自由計算機上的軟件交織成的具有依賴性的網絡。要重新獲得簡易性,我們需要除去依賴性。依賴性都存在於何處呢?有以下幾種分類:

軟件對平臺
軟件對數據
軟件對軟件
平臺對平臺
要解除這些依賴性的束縛並不容易,但十年來逐漸發展起來的計算新世界最終日趨成熟並使之成爲可能。

讓我們首先考慮已經在忍受的計算模式。當計算處於起步階段時,很容易做出選擇。我可以獲取任意一種有限範圍的計算機,編寫在這種計算機上運行的軟件,並創建用來存儲數據的文件格式。麻煩是軟件和數據只能在這種計算機上工作,使用另一種計算機時,就必須使用另一種軟件,或者在同一種計算機上使用另一種軟件時,就不能使用相同的數據,而且必須瞭解新的用戶界面。

通過兩個標準化步驟可以解決許多問題:許多人開始使用 IBM PC,最初使用 DOS,然後使用 Microsoft Windows。一定程度的簡易性回來了。但隨着時間的流逝,卻越來越清楚地發現許多範圍的複雜性仍然悄悄地混了進來。特別是,對平臺的認可並沒有打破軟件的平臺依賴性;這恰恰意味着它完全是互相依賴的。因此當更新發生時,一切可能破裂!另外,數據世界的壟斷力量並沒有標準化。就像軟件依賴於特定級別的平臺,數據也與特定級別的特別品牌軟件相關。於是就交織成具有依賴性的複雜網,在其中任何一點所做的更改都可能導致不穩定,也許還會引起整個網絡的崩潰。

互相依賴性
計算的頭號敵人是無心造成的互相依賴性。在構建計算機解決方案時,它們都涉及到軟件、硬件、平臺以及開發工具等之間的關係。它們之間都通過看不見的具有互相依賴性的連接線索連接起來。隨着時間的推移,擁有任何解決方案的成本與所支持的各部分間的依賴性數量成正比。但因爲有了許多無心創建的互相依賴性,成本將以指數級增長,而不是線性增長。其結果就是更多的互相依賴元素所引出的附加成本可能會不成比例地增加終身成本。這種不成比例增長的起始點叫做衝刺點,而衝刺點以上的情況就叫做熵死亡。在衝刺點之前,就已經通過選擇具有互相依賴性的系統原理、系統中一部分對另一部分的無意依賴(可能是由其它元素引起的)爲熵死亡打下了堅實的基礎。最常見的無意互相依賴性存在於軟件和其宣稱的操作系統之間。

這並不是說可以或者應該避免所有互相依賴性;有一些互相依賴性是不可避免的。但在現代系統規範和設計中,應該用與其它成本驅動因素相同的方法來標識和調整它們,請注意圖 1 中不僅顯示了直接成本,還顯示了連接到具有依賴性的網絡的終身成本。通常,需要將軟件與使用它的環境隔離開。在某些情況下,使用本機接口和二進制是不可避免的,但在這些情況中本機代碼外圍的平臺無關的“封裝器”幾乎總是有價值的。

圖 1. 成本 vs. 節點數量



例如,假設一家公司使用辦公套件的宏語言作爲辦公自動化系統的基礎。一天,公司的 IT 小組安裝了另一套軟件,並無意中更新了辦公套件所使用的一個 DLL 文件。他們發現有一個宏不能使用了。經過了大量工作以後,他們設法使這個宏再次工作,但新版本要求使用電子表格程序的更新版本。爲了使用該程序,他們不得不安裝辦公套件的全新級別,而在那以後所有宏都不起作用了!接着,他們逐個調試所有宏,更新並修復它們。在這些修復所涉及的其它部分中,他們發現需要使用一個數據庫驅動程序的新版本。可悲的是,那需要使用最新版本的數據庫。於是,他們升級了數據庫,並且……,哎,您可以猜得出其餘部分。

新基礎
問題是由在將變更的影響從子系統到子系統傳送引起的。大多數系統當前使用的集成計算基礎可以充當傳輸媒體,它可以讓某一處的更改影響其它地方。

如何避開這個陷阱?最關鍵的就是切斷數據與平臺上軟件的連接,對所有這些使用基於標準的選擇,以便版本變化所帶來的影響有可能降到最低。要達到這一步,我們就將變更與傳輸媒體(底層平臺)隔離,並防止變更影響引起成本的劇烈震盪;我們添加前面提到的隔離層。那麼,理想的標準基礎是什麼呢?圖 2 中顯示的技術領域,這樣的基礎應該涵蓋的是:

將系統連接到一起並提供訪問的網絡協議
給需要的用戶帶來解決方案的傳遞模型
用來創建解決方案的編程模型
解決方案所使用的信息的數據結構模型
允許合適的用戶訪問合適的數據和解決方案的安全性模型
圖 2. 技術領域



十年來計算機界的變化主要是重新發現技術思想,並將它們制定成模型內的標準。圖 3 中顯示以下這些映射:

網絡:TCP/IP
現在 TCP/IP 的使用是如此廣泛,以至於它不再是談論的主題。
傳遞:Web 模型無狀態客戶機/服務器
無狀態客戶機/服務器計算是許多商業計算機用戶選擇的傳遞機制,且使用的用戶量不斷增長。與創建全狀態客戶機相比,它不需要昂貴的維護和支持費用,狀態並不在服務器上維護,而是將大部分狀態“貸”給了客戶機。
程序:Java 和 JavaBeans
Java 自發行以來只有 4 年,卻已經將其本身確立爲許多企業中新軟件的標準,其 JavaBeans 體系結構真正允許使用基於組件的開發。這並不是說所有代碼都要用 Java 語言編寫;取得成功的是平臺無關的 Java 字節碼二進制程序。如果這些不可行,那麼至少用來將解決方案的其餘部分與本機代碼隔離開的 Java 封裝器是必不可少的。
數據:XML 和詞彙表
XML 顯然是新出現的,它是簡化的 SGML - 80% 的功能和 20% 的複雜性。計算機界得到普遍使用就已經取得了巨大成就,而種種跡象表明未來它將在數據格式方面佔據主導地位。
安全性:公鑰
由於不必再“以明文方式”發送全部密鑰信息,基於公鑰的安全性系統已經佔據了主導地位,特別是在網上。
圖 3. 已制定成標準的技術



從技術到用戶
隨着計算新世界對標準的認可,對商業解決方案的要求也起了變化。過去,都是根據想像中提出請求的客戶來構建每個解決方案。關注的焦點在誰在使用解決方案,以及他們在哪裏,例如內部網、外部網和因特網。然而,進展已表明現在焦點更多集中在所有數據建模和定義用戶與數據的關係上。計算解決方案有一種倒置方法,焦點從技術和系統切換到信息和用戶。

今天,定義新的解決方案涉及到定義用戶與信息主體之間的關係。大多數情況下,一個給定的信息主體有多個用戶。因此,對於一家網上商店,當客戶查看信息時,通常只給他們對於某些特定數據的訪問,並且可以用適合客戶的方式來顯示數據。當供應商的客戶服務人員查看相同信息時,查看範圍和顯示方式都不同。從解決方案和用戶的角度來看,這是一種轉變,而它對當今的 IT 行業卻是最大的挑戰。用戶能夠放心地繼續使用,因爲新傳統中的所有技術都確實是成熟和經過證實的,因此轉變是重點和策略之一,而不是向未知技術的跳躍。

平行世界
能夠很好地掌握這五種基本技術可以帶來另一個好處。對於許多用戶,遷移到新的電子商務世界是進步的,但不是革命性的。他們能夠完成最重要的轉變,而不必放棄他們已經做的所有投資。因此,這個新世界實際上是一個平行世界,而不是交替世界。

那麼,Java 和 XML 究竟爲什麼會成功呢?有以下幾種原因:

已經證實的技術:新基礎的全部五個部分都基於業內最老且經過最多次證實的思想。TCP/IP、“啞終端”虛擬機、標記語言、公鑰系統 - 所有都經過數十年的使用,已得到充分的證明。
用戶驅動:在最終分析中,向新基礎移動是市場的需求和期望推動的,而不是某一個供應商或某個協會認可的。由於計算機技術的成本逐漸受到關注,而且由於更新換代所引起的熵死亡越來越明顯,因此對於新基礎的需求也就越來越強烈。
供應商支持:這五種技術幾乎構成了所有供應商的新解決方案的基礎。試圖想要使用替代方法的供應商逐漸發現市場會對他們的選擇提出疑問,並且會懷疑他們有專利鎖定的企圖。
平臺無關:這五種技術互相獨立,也獨立於它們所處的平臺。於是,只要將取決於它們的系統與互相依賴性隔離開,可以在任何地方執行它們。
供應商無關:這五種技術都不受任何一家供應商控制,投資不但免於供應商鎖定的風險,而且免於開始升級競爭的任何一家供應商的設計選擇。唯一可能的意外是 Java 和公鑰,值得花時間考慮在這樣的環境中,爲什麼這兩樣都不是問題。
Java:公共財產?
是否可以將一家供應商開發和明顯控制的技術視爲是開放的?這都取決於供應商的態度和行動。如果這五個域都依賴於這些新的計算基礎,則主動權就從始發人轉交“市場理念”控制了。例如,儘管公鑰系統的核心思想由一家公司擁有,然而由於公開該技術可以帶來的強大功能和核心專利擁有者的態度,業界希望所有加密和數字簽名建立在這種技術的基礎上。同樣,Java 也已經成爲當前受到保護的公共財產,而不是受核心技術所有者的危害,儘管向標準主體控制的轉移是正面的。而且,其所有權並不像公鑰系統那樣穩固。如果整個業界都以不同方式實現 Java,那也就沒有追索權可言了。但這種情況並沒有發生,因爲市場不會青睞那些破壞 Java 價值的公司。當然,Java 中標準化的基礎是字節碼的二進制格式而不是語言的事實是一大幫助。因此,如果我們感到將計算底層構架的關鍵部分建立在公鑰系統上是安全的,那麼感到使用 Java 安全的理由就更充分了。

結束語
我們應該考慮的關鍵問題不是“如何削減管理和支持的成本”,而應該是“如何減少必需消除的管理-支持的金額?”要反映這手邊變更的概念,並且將考慮 TCO 的觀念轉化成考慮 TCP(總體購買成本),我們也許應該用另一個詞來表達問題 - 終身擁有成本或 LCO。

本文的核心目的是新計算機系統的主要決定因素在系統的終身擁有成本:即根據 LCO 來決定 - 其範圍包括軟件、網絡、客戶機和服務器硬件,以及在生命週期內開發、部署、管理和影響的管理,還有後期遷移到替換系統。本文的主要建議是可以通過將由各種元素造成的網絡的互相依賴複雜性降的最小來控制這個因素。要實現該控制,建議改變系統原理,而不是技術的臨時變更。通過將未來的開發工作建立在一個堅固的標準基礎上,可以避免熵死亡。這也就是 Java 和 XML 可能取得成功的原因,這些技術本身可能是很酷的!

參考資料
瞭解 XML 和相關標準、技術和技巧的詳細信息。

關於作者
Simon Phipps 是 IBM 公司的首席 Java 和 XML 傳道士。1995 年他曾是向 IBM 建議接受 Java 的小組一員,自那以後他向全世界宣傳這個由 Web 和 Java 技術武裝的新世界將席捲計算機界。他的最近工作集中在研究可擴展標記語言 (XML),他負有爲 IBM 向全世界宣傳 XML 的責任。Simon 擁有 20 多年在計算機界工作的經驗,他在許多公司在各種環境下從事聯網、數據通信和操作系統有關的工作,包括與 IBM 一起開發最早的商業合作會議軟件。他在 1991 年進入 IBM 公司。他擁有電子工程的學位,並且是一名英國計算機協會的特許工程師和會員。

發佈了46 篇原創文章 · 獲贊 1 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章