通路美科技
公司簡介|最新消息|技術與服務| 解決方案 | 資訊區 | 聯絡我們|菁英招募|網站導覽| 回首頁
資訊區

產品新訊
訓練課程
活動&其他
技術論壇
成功案例


服務導向架構(SOA)

無標題文件

SOA 革命性 軟體開發方案或是邏輯 漸進的 解決方案

多年來,商業應用軟體的發展日益龐大而且複雜,相對地,系統維護成本也變高。同時,現今瞬息萬變的商業環境不斷地考驗這些應用軟體的生命週期,在持續改變的商業市場中,新興的技術觀念以及設計模式也促使軟體開發的規模變的越來越大也更複雜。服務導向架構 (SOA) 就是其中的一個新興的技術,到底 SOA 是什麼 ? 從那裡來的 ? 它對於 IT 產業會造成什麼影響,以及傳統的軟體系統該扮演什麼角色 ? 這篇文章將摘要的介紹 SOA 領導開發市場的技術趨勢與簡單的描述 SOA 可供參考的開發選項。

過去的趨勢

在 1980 年初,結構化程式設計在當時是受到大家所歡迎的軟體作業方式,它提供的邏輯步驟讓本來巨大的應用軟體切割成可各別管理的副程式及功能模組。

程式開發語言如 COBOL 、 FORTRAN 、 Pascal 、 PL/I 以及 C 語言都是過去用來開發結構化應用程式的軟體。然而程式開發的技術一直到了對於應用軟體規模的以有計劃的增加 ( 而不是毫無意義的變大 ) 及程式碼可再使用的需求成為目標時有了改變。在結構化程式設計模式中程式碼的再使用牽涉到在一個軟體程式中多次數的簡單複製與貼上共用功能,由於局限的再使用性與軟體複雜度提高的雙重因素使得程式碼的維護困難且成本很高。

在 1990 年時,結構化程式設計為物件導向的程式設計所取代 (OOP) ,它是被設計用以克服一些結構化程式設計的限制事項。 OOP 引進了封存它內部功能與資料 ( 變數 ) 之自我包含 (self-contained) 物件的觀念。物件能夠被單獨地執行。這樣的設計方式所產生的結果是程式開發彈性高以及增加了程式碼的可再用性。每一個物件提供一個簡單的公共界面,而其內部運作是隱藏在其他的物件中, OOP 的承諾是使程式開發人員能夠開發 ” 物件組合 ” 的軟體系統,將他們的應用軟體建構成兼具客製化開發與有效的商業物件, IT 組織斷言 OOP 可望使程式的開發更容易而且能管理大型的軟體系統並且降低整體開發的時間。

不過 OOP 主要的缺點在於 它是全新的設計方式 ,而沒有漸進性的步驟。如果一個企業組織想採用 OOP的設計方案,那麼所有的事情將重頭開始,開發人員必須學習及使用新的OOP語言,例如像C++。另外,此種系統運作的環境如通用物件需求仲介架構(CORBA),也許需要直接去管理及使用這些物件。運作所需的物件界面是必須由程式設計人員自行處理的,並且也沒有可供依循的標準,想要作到互用功能是相當不容易地,再者傳統的軟體系統及語言缺乏物件導向功能而OOP廠商所提供的互用(interoperability)設計的選擇也不多。

今日的開發方案

當  IT企業組織的規模發展的越來越大時,他們的軟體系統資產也同樣的需要作一些改變。有些公司會加強他們既有的系統以符合變動的商業需求,或者經由公司之間的合併、收購的情況下將其他商業應用系統也併入原先的系統中,在此期間,IT部門面臨不同系統之間整合的迫切需求,然而他們的心裡也知道想替換掉傳統的應用系統的是極其困難的。這些既有的系統不但負責核心商務作業的處理而且也儲存了大量有價值的企業資源以及所有的智慧結晶。採用框架(Framework)模式來整合既有系統與企業的其他軟體系統應該可以使商務作業流程更有效率也能夠減少重複的工作及資料而且能改善整體商業的能見度。

1990年末期,SOA的出現儼然成為新一代軟體開發的方法論,藉由標準的界面來處理企業系統的整合。SOA從結構化與物件導向的程式開發中擷取兩者的優點而提供簡單的設計原則,透過漸進式的步驟使得IT部門能繼續保留並再使用既有的程式碼。

SOP提出三個基本觀念:服務(Service)、服務使用者(Service consumer)以及公用目錄(public directory)。服務是一種既小且自我包含(self-contained)及自我描述(self-described)的軟體商務元件,每一個元件都具有完整定義的界面來指定所須的輸出與輸入。服務被發佈及公告在公共目錄中,有時候我們會稱其為服務仲介(Service Broker)。服務使用者為客戶端軟體或者其他能經由完整定義的界面來使用服務的服務服務使用者或者要求者利用公用目錄來找到所須的服務,SOA能被接受的主要原因來自於其他關鍵技術的及時出現、Web Service以及定義完整的標準。

  • Web Service Description Language(WSDL) 是管理服務界面定義的標準。
  • SOAP (過去將它定義為 Simple Object Access Protocol )是使服務使用者能方便存取服務的訊息協定。
  • Universal Description, Discovery, and Integration(UDDI) 是描述公用目錄服務架構的標準

1

SOA提供IT部門一個非常具有彈性且最新技術的軟體開發方法。SOA的基本原則優點在於它的非侵入式(non-intrusive)的商業功能再使用,如此不但能保留有價值的傳統資產也能使公司靈活運用屬於他們自己的人力資源的知識。

未來的遠景

IT部門藉由傳統軟體系統的生命週期延續而能不斷地能達到投資報酬(ROI)的效益,因為 SOA提供了一種合乎邏輯的漸進步驟來開發複雜的軟體系統,各種不同的傳統開發工具將能夠廣泛地支援SOA的開發,這些工具包括傳統的資料萃取(Mining)、模組化(modeling)、現代化(modernization)、包裝(wrapping)、開發(development)等。傳統軟體結合SOA的現代化對IT部門人員而言是相當具有吸引力的,這樣的開發方式使的他們不僅能保留既存有價值的軟體資產(及硬體資產)而且避免浪費更多的時間來重寫軟體專案,SOA基於良好的基礎架構能符合不同軟體系統之間的整合作業,也因此能支援現今隨時在改變的商務運作及技術需求。