close

 SOA中常聽到的相關技術

 

如果您是一位對下述技術名詞了解的人,建議跳過該章,因為我並不打算花一大篇來解釋這些技術細節,事實上,很多技術細節我也是看過就忘了

 

再一次強調,SOA並不是一項或數項技術的集合,而是一種系統架構,但由於SOA可以採用標準的技術定義,而這些技術定義被許多產品所廣泛的支援,所以當我們提到SOA時很難不去談到這些技術基礎,但也不代表您非用它們不可。

 

(1)    XML

幾乎是下述技術的一切根本,我可以簡單的透過文字編輯器就產生出XML文件了,例如

<USER>

          <NAME>王小明</NAME>

          <AGE>20</NAME>

                               

</USER>

 

不過,問題來了,這裡提到的<USER>(俗稱為Tag)是指使用者,還是客戶,還是。所以,對於每一個Tag的定義需要有被詮釋的必要性,所以,有許多組織正在定義相關的Tag定義,以求能夠順利的在系統間溝通,如果有配合特定的組織,其定義就要多注意了,這部份就了解聯合國也在進行統一,可以在網路上自行查閱”Core Component”就有一些已定義的資料了。

 

(2)    DTDXML Schema

一般說來,在發出或收到訊息後,都會進行資料正確性的檢查。而不同的傳遞格式就有不同的檢查方式,DTDXML Schema就是用於檢查XML格式之用,所不同的是,DTD是比較舊的技術標準,現在比較新的標準為XML Schema(又稱為XSD),相較於DTD它支援如Namespace等更多的功能,不過,就了解此兩項標準並不相容,而目前國內 行政院共通作業平台所定義的是採用XSD做為採用標準,要特別留意。

 

(3)    XSL

剛剛提到,XML格式由一堆Tag(及其屬性)、內文所組成,所以理論上,如果我要在不同的系統間傳遞資料,但其資料定義不一樣,我們就需要花時間去寫程式進行轉換了。很不幸的,這樣情況,在SOA情況中將會非常的多也非常的不方便,所以,就定義了XSL這樣的技術標準,它是一種類似文檔的方式,定義該如何進行XML間的資料轉換,避免了開發程式的時間,也大大的提升了SOA的可行性。

 

(4)    WSDL

技術上屬於分散式系統處理的範圍內,簡單的說,當要進行跨系統溝通時,不同的系統有不同連接方式,例如,微軟採用.net Remoting的技術,Java則是RMI,若同一個陣營那還好說話,如果是不同的陣營該怎麼辦? 當然就是透過國際語言來溝通了,那麼WSDL就是這樣的東西。它決定了雙方資料互拋的介面,用雙方都看的懂的方式來決定資料內容。

 

(5)    SOAP

這樣解釋會比較簡單,如同玩拋球遊戲一樣,我用手套去接棒球,而非拿來接保齡球。WSDL就是大家談好的介面,如同手套,那麼拋出的資料,就必需是棒球,否則另一方將接不住資料,而這個在網路上跑的球(資料)就是SOAPSOAP是一種標準,格式大約如下(簡化過)

 

<SOAP>

          <Header>

                  <Title Header>Title</Title Header>

                  ….

</Header>

          <BODY>

                  傳遞資料放置處

                 

          </BODY>

</SOAP>

 

要傳遞的資料通常是存放在<Body>內,至於相關控制資訊則是放在<Header>中了。

 

(6)    UDDI

簡單的說,就是網路上的Yellow Book,當我們有很多服務在網路上使用時,我們怎麼知道它們在那裡,怎麼知道如何去用? UDDI就是為了解決此問題而產生的標準,它告訴他們在那裡以及如何去使用。

 

不過,就我個人有限的經驗,覺得在整合企業流程上,我不覺得UDDI是很重要的東西,就如同系統的API介接一樣,就算跟你說該怎麼接了,到了介接測試的時候問題還是一大堆,光靠UDDI就能一次接成功,運作良好我態度很保留,最後,還是要花人力進行介接測試,工也不會省,那多做UDDI實在通常會建議客戶端不要胡思亂想了。

 

其他相關技術

(1)   Portlet

現在很火紅的技術,活躍於Java陣營中,其技術基礎是一種叫Web Services for Remote Portlets(WSRP)的公開標準,您開發的網路服務只要遵守此標準,就可以被其他人在網路上所使用。它克服了舊一代網路服務的問題,就是只接收訊息,而畫面必需重新製作的窘境。目前已經被大量運用在iGoogle中,那些您在iGoogle中設定的小服務就是採用類似的技術。在微軟陣營中也有類似的技術,稱為web Part,不過,有一個問題我一直沒找到答案,就是雖然Portlet是國際標準,但到底微軟的Web Part有沒有遵守WSRP的標準,這在微軟的技術網站上我個人始終沒看到答案。

 

例外,就是剛剛提到的UDDI,在前文中我提到,在實務上我個人認為uddi對系統介接沒有幫助,不過,就我了解,最新的UDDI標準有支援Portlet的網路服務註冊與發佈,由於Portlet的使用不需另開發畫面,也就沒有了類似API介接的問題了,可能對UDDI有正面的幫助,只是在實務上,我沒有看過結合UDDIPortlet的應用就是了。

 

arrow
arrow
    全站熱搜

    miin1130 發表在 痞客邦 留言(0) 人氣()