網路城邦
上一篇 回創作列表 下一篇  字體:
計算機界的靈異象限
2010/11/04 12:01:08瀏覽752|回應1|推薦2
靈異象限/td>

漫談異質平台之間的整合技術        民國 91 年 9 月 6 日

最近有一部由梅爾吉勃遜所主演的電影,名叫『靈異象限』故事內容,大致上描述美國賓州巴克郡的農田裡,出現了一個面積超過五百平方英尺的巨型神秘圖騰,並且自從神秘圖騰出現在男主角海斯家的農田當中,海斯家也開始發生許多不可思議的事。然而更令人害怕的是,隨著神秘圖騰風湧而至的媒體與圍觀群眾,讓海斯一家充滿恐懼。在這部片子當中,筆者並不打算討論劇情是如何驚悚!?而是身為一個資訊人,對於影片中所傳達的一個訊息十分感興趣,那就是,人類對於未知的力量不管是對於人類是否構成威脅,總是抱持著恐懼大過於好奇的態度。而至於影片所謂的『靈』與『異』大凡指的是在我們身處的世界中,很少出現或者是根本不曾存在的東西,而這些東西一旦出現,通常會帶給我們一些震撼與恐懼。而造成這樣的結果筆者認為,主要是因為人類無法對於這些事與物進行溝通瞭解所造成的,所以千萬年來,人類一直追尋各種自然界現象解答的動力,其中不但是要滿足人類的好奇,更主要是要使得人類免於生活在恐懼之中。所以在上圖中的圖騰,我們為何要用『符號(Signs)』這個字眼,就是表示我們對它是一種文字,還是一種圖像,仍然還是一無所知的緣故。然而這部片子與我們的計算機界有什麼關係呢!?難道計算機界也有外星人入侵嗎??其實不是,筆者只是想要藉由這部影片來帶入本文的主題『漫談異質平台之間的整合技術』而已。


從上文中我們可以作一個小小的定義,那就是如果不同世界相互介入的話,那麼便會產生所謂『靈異』,然後發生一些干格不入的現象(排斥或者是傷害)。但是如果兩個不同的世界可以進行溝通的話,那麼所謂的靈異便不會存在。換言之如果上圖中的圖騰可以證實是某種外星人所為,並且被理解成是表達某種善意的話,那麼!?我們不但可以與外星人進行溝通,甚至可以進行某些合作。然而這些在計算機的世界裡也有相同情形,例如我們 Windows 的環境之下 AP 與 AP 之間的溝通是十分容易的,不管是參數的傳遞也好,或者是共用記憶體區塊、暫存資料庫、註冊表、共用交換檔、介面的呼叫甚至於訊息的直接交換等,都是簡單容易的技術,因為這些 AP 都是存在於同一個世界(系統)當中。但是,如果一個位於 Windows 世界(系統)的 AP,想要與其他如 Unix 或者 Linux 等世界(系統)的 AP 來進行溝通,事情便沒那麼容易了(註 1.)。因為 Windows 與 Unix 等世界(作業系統)之間,不但是使用的語言(編碼方式)不同,就連所使用的器物(API)也有所不同。所以兩個 AP 之間的溝通就必須靠著特殊的方式才能進行。

通常兩個不同世界的溝通,我們可以利用下面的方式來進行。例如生活在陽世的寧采臣想要與生活在陰間的聶小倩進行通話,並且獲得這期樂透彩號碼的話?直接口語上的傳達是不行的,必須透過所謂的『靈媒』來進行轉譯的工作,要不采臣就將心中想問的事情,寫在一張紙上燒給小倩,然後小倩再用托夢的方式將結果告訴采臣。請注意上述的兩種方式,在計算機界也是一模一樣的。例如伺服器端與客戶端的架構下,前端的 Windows AP 想要與後端的 Unix 資料庫 AP 進行溝通,首先就必須找一個中繼軟體(Middleware)(註 4.)也就是所謂的靈媒,來進行溝通。要不就是兩個作業系統之間,互相提供一個共同都認識的資料格式來進行,不過這必須經過一道資料交互轉換的手續,就像采臣燒紙給小倩的動作是一樣的。所以我們在此可以得到一個小小的結論,那就是如右邊的兩張圖中所示,異質平台之間的溝通,必須是透過雙方都認得的通訊協定,而異質平台的資料交換,則是需要透過雙方都認得的介質才可以進行。不過這些動作在這個地方說起來似乎很容易,但是在實作上卻得花上許多的功夫。(關於異質平台之間的通訊細節,讀者可以參考一下筆者所撰的『從通訊角度看 DCOM』一文)

從上面的描述過程中,相信讀者已經清楚,如何進行不同的異質平台之間的整合工作,有了初步概念,但是在現行實際的狀況又是怎樣的呢?我們是否要設計一個通用的中繼軟體,或者制訂一個通用的介質呢??很幸運的,在最近的技術裡已經可以幫我們解決到這個問題了!!那就是 XML(註 2.)與 SOAP(註 3.)。怎麼說呢?我們從 XML 使用標籤定義欄位的特性,以及它屬於標準 ASCII 的文字檔型態,然後以目前每一種平台都支援 ASCII 文字檔的情況下來看待此事,XML 的確適合當作異質平台之間的溝通介質。而在這同時,每一種平台也都支援 HTTP 作為存取協定的 Web Service,所以在這個條件下 SOAP 也非常適合當作異質平台之間溝通的通訊協定。那麼討論到這裡,相信一定有許多人會問,像類似 CORBA 等中繼軟體,難道就不能用作整合異質平台的中繼軟體嗎?答案是,不是不能,而是不太適合而已!!而筆者主要持有的理由是 CORBA 等協定,並不是在各作業系統之中,都作為預設支援的功能,因此負責整合的工程人員,必須在異質平台中各自安裝 CORBA 的軟體,然後再各自開發符合 CORBA 規格的 AP。這樣的作法就像是兩個不同語系的國家,使用第三種語系進行溝通是一樣的,而使用 SOAP 的 Web Service 方式,則是像兩個雙語系的國家,選擇使用共同語言進行溝通是相同的。而這其中的差別,則是在於工程人員所需要花費的功夫多寡而已,所以儘管 SOAP 在目前不管在功能定義或者是執行效率上,不是很完備,但是相信已經可以滿足大多數的需求了。至於選擇 XML 作為共同介質的理由,則是除了前述的理由之外,更考量到 SOAP 是採用它作為資訊,或訊息傳遞的工具,如註 3. 的描述。同時考量到在 XML的存取工具上,各大平台之間,也幾乎都支援 XML 語法解析器(Parser)的機制(著名的如 DOM 等)。所以不管是就系統整合的角度,或者是程式設計的角度而言,XML 應該都算是一個上上之選。

現在筆者要作一個小小的結論了。那就是,由於新技術的產生,使得原本十分困難的異質平台整合工作,不但變得十分可能達成,也同時變的容易起來,而我們也可以據此推論計算機界的靈異象現,將因此逐漸的消失。但是歷史告訴我們,當技術不斷翻新的同時,一些新的需求,也將會隨之不斷的出現。(例如,未來我們可能需要去整合外星人的資訊系統,並且順便破解一下麥田圖騰的秘密,等等諸如此類的。)所以我們可以說,科技這條路是不會就此終止,它永遠還是很漫長的,等待著我們繼續加油吧!!

後記

雖然本文以漫談的態度來撰寫,也沒談到太多的技術的東西,但是卻讓筆者想起,在今年年初的時候,曾經跟一位專門作醫療資訊系統的顧問前輩,報告異質平台整合的可能性時,那位顧問卻不屑一顧地斷悍然中斷筆者的報告,理由是他認為我在唬爛。所以如果那位前輩有機會能看見本文的話,相信可以讓他改變一下觀念吧!!

註 1

在很多的實際應用的案例中,都是採用不同的系統之間的 AP 來進行協同合作的,以達成所謂『完整解決方案』(Total Solution),例如:後端採用 Unix 加上 Oracle 等大型資料庫,而前端則採用 Windows 加 AP 的方式。這樣的架構,除了是基於成本效益上的考量外,更主要的是,考慮到資料安全性的問題。但無論如何,在這種架構下執行於 Windows 之上的 AP,就得需與 Unix 之上的資料庫 AP,進行特殊溝通工作才行。

註 2

XML 英文全名為 "eXtensible Markup Language",中文可譯為「可擴充標記語言」,簡言之,XML 讓文件裏可以加上標記,因此使電腦與人都容易了解文件的內容,使文件方便在網路上傳遞、交換和使用。XML 本身沒有定義特定的標記(Markup),僅規定如何加註標記的語法,但允許各個應用領域定義自己所需的標記,因而形成各種的 XML 語彙(XML Vocabulary)。 在標記語言中最為人們所熟知的一種,大概就屬 HTML 了,由於它簡單實用,創造了 World Wide Web 的廣大市場,但 HTML 發展至今,己顯然無法滿足網路上的需求(HTML 的三項弱點)。有鑑於此,XML 1.0 規範於 1998 年 02 月通過 W3C 的審核和推薦,從此應運而生,它的文本結構嚴謹、具有擴充性、內容與呈現分開,彌補了 HTML 的缺陷。

註 3

SOAP 簡易物件存取協定(Simple Object Access Protocol) SOAP 和 WSDL、 UDDI 三者,是用以實現網路服務(Web services)並以 XML 為基礎的協定。SOAP 主要作用是將訊息或資訊,以 XML 包覆起來,並以 HTTP 將之傳送。SOAP 定義了如何製作出 HTTP Header 以及 XML 檔案,以便一部電腦裏的程式可以呼叫另一部電腦上的程式,並且用以傳輸資料。它也定義了被呼叫的程式,要如何回應。由於目前主要平台如 Windows、 Linux、 Unix 及 J2EE 平台都支援這些協定,使訊息可以跨平台傳輸並穿過防火牆成為可能。 過去也有分散式物件通訊協定(distributed object protocols) 提供遠端程式間的溝通,如微軟的 Distributed Component Object Model (DCOM)、 CORBA 中的 Internet Inter-ORB Protocol (IIOP)等,後者和 SOAP 很類似。另外,昇陽的 Remote Method Invocation (RMI),是用以 Java 寫成的 client/server 程式間呼叫的協定。

註 4

所謂中繼軟體(Middleware)主要是指負責平台之間 AP 溝通的軟體,通常這些中繼軟體都是構築在 TCP/IP 的通訊協定上,不過也有例外的。至於我們比較熟悉的如 ODBC、 ADO、 BDE 等則是專屬於資料庫連結的中繼軟體,而 DCOM、 CORBA、 SOAP 等,則屬於 AP 與 AP 之間連結的中繼軟體,只是 DCOM 是專屬 Microsoft Windows 平台的,而 SOAP 則是屬於 Web Service 方式的中繼軟體罷了。

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=mhwu1&aid=4565162

 回應文章

中州楚佩
等級:7
留言加入好友
您还说自己不是搞软件的?
2010/11/05 12:02
写这个文章的总不能是律师吧
大隻熊(mhwu1) 於 2010-11-05 15:00 回覆:
我沒說,我不是啊!
最近在整理舊文章,想不到你會來!? 有空常來逛逛,順便給點意見!