http://www.dbworld.com.tw/member/article/010521b.htm作者: 恆逸資訊 鄭淑芬
目前電子商務的模式,不外乎:Business To Business(商家對商家)、Business To Customer(商家對消費者)、Business-to-Employee(B2E,公司內部的採購系統,採購的物資與企業本身業務無直接關係)、Supply Chain Integration(供應鏈整合,採購與企業本身業務有直接相關的物料或資源),此外還有電子市集(e-Market Place)…等。
目前也已經有許多軟體開發廠商提供許多電子商務解決方案及套裝軟體、諮詢服務,有的產品定位在提供平台,有的是針對解決特定問題,因此就會有所謂的out-of-the-box解決套件,或是提供一組工具程式由客戶自行開發,或是以包專案的方式根據客戶需求建立專屬軟體。
從這個角度分析,BizTalk Server提供的是一個平價的平台(platform),讓企業自行開發或是由獨立軟體開發廠商(ISV, Independent Software Vendor)為客戶量身訂做解決方案,在硬體方面則結合其它的廠商,如Compaq、HP…等;IBM提供的是一次購足方案(one-stop-shopping),其中包括軟、硬體及服務,如:WebSphere,最近又加入Net.Commerce;宏道(Broadvision)主要著重在個人化及內容管理。
Microsoft BizTalk Server 2000 是微軟根據BizTalk Framework(http://www.BizTalk.org)所設計出來的一項產品,完全遵循BizTalk Framework所要求的開放架構,使用目前Internet上的標準通訊協定、支援XML及其它Internet標準的資料保全技術,提供可靠的商業文件傳送能力,協助企業內部及交易夥伴之間的應用程式,可以直接交換彼此的訂單、發票等商業訊息及工作流程的整合,確保資料安全、一致及即時的需求。
系統間的整合分為兩個層次:資料(Data)及作業程序(Process)。 兩個系統可以了解、處理對方產生的資料,這是整合的第一步。解決的方式可能是雙方使用同一種格式的資料,例如:IE可以處理自Apache web server所送出來的網頁,因為雙方都使用標準的HTML格式。或是其中的某一方要將資料轉換成另一方可以接受的資料格式。
但是在商業交易中,單純的資料交換是不夠的。雙方必須能夠了解、認同一致的交易流程、商業規則、作業程序,以確保資料依正確的程序妥善地處理,例如:買方送出付款通知給銀行之後,銀行必須回覆付款處理結果並傳送入帳通知給賣方,而當賣方收到入帳通知之後就會開立發票給買方。如此的一套程序就不只是訊息傳送,相關的系統除了具備處理訊息的能力外,還必須在接收到訊息之後做出判斷、依序回應適當的訊息。
微軟針對系統間及組織間的整合問題提出Microsoft BizTalk Server 2000,其中主要的兩項服務:BizTalk Messaging Service及BizTalk Orchestration Service,分別就資料及作業程序這兩個層次而設計。BizTalk Messaging Service是訊息閘道,透過它傳送資料、轉換訊息格式(XML、EDI、Flatfile…);BizTalk Orchestration Service掌控流程,監控商業程序的執行、回應適當的訊息或進行處理。
透過對Internet 上標準通訊協定(HTTP、HTTPS、SMTP)及COM、Message Queue技術的支援,讓Microsoft BizTalk Server 2000可以整合Windows、Unix、Linux、Mainframe等平台,並跨越區域網路的限制將訊息傳達給外部的交易夥伴或是遠端的分公司。
商業訊息閘道-BizTalk Server Messaging Service在Internet提供開放標準的同時,對程式開發人員來說卻也帶來另一個問題。以往封閉環境單純、單一的連接方式,轉換到Internet上,要面臨的可能是多樣的通訊訊定:HTTP、SMTP、FTP…,此外Internet是個公開管道,資料在傳輸的過程中為了保障商業機密,必須加上安全加密、編碼或是電子簽章。
這些處理雖然繁瑣但卻又是非做不可,然而撰寫這些底層的通訊傳輸、編碼加密指令,往往會消耗掉大量的時間及人力,嚴重影響專案進展的速度。其實,資料交換時所需的通訊服務,在目前Internet的環境中來說,可以將它視為一種基礎建設,幾乎所有整合的情況都會使用Internet上標準的通訊協定做為彼此交換資料的方式,程式開發人員應該將重點放在商業邏輯,產業本身的商業作業上,而不該花時間在撰寫這些底層、瑣碎的通訊協定上。既然如此,是否已經有任何人已經把這些Internet通訊方式包裝成一套函式庫或是服務,以便程式設計師在資料準備妥當之後,可以直接透過這個通訊的黑盒子進行傳送?
技術通透性(Transparency)為了解決在Internet上交換商業文件時可能遇到的問題,BizTalk Messaging服務扮演商業訊息閘道的角色。它的功能包括:文件格式的轉換、支援Internet標準的傳輸方式,並提供與既有應用程式的整合窗口。讓程式開發人員可以專心地解決商業邏輯問題,將資料格式的轉換工作及文件加密、傳輸動作…等交給BizTalk Server。BizTalk Server支援目前Interent上標準的通訊協定,如:HTTP、HTTPS、SMTP等,並將這些傳輸功能包裝成產品內部的通訊元件(Transport Adapter)。對使用BizTalk Server的企業來說,系統開發人員在程式中便不再需要處理底層的通訊傳輸,只要專注在商業文件中的資料、並將其以適當的文件格式表達,接下來的傳送動作可直接委託BizTalk Messaging服務進行。IT人員透過BizTalk Messaging Manager管理工具,以設定的方式委託BizTalk Messaging進行傳送,提供企業與交易夥伴間可靠、安全的商業文件交換功能。藉由精靈的協助, IT人員可以十分容易地進行設定及管理工作。BizTalk Server提供精靈引導MIS管理人員或是系統開發人員,設定企業與交易夥伴的資料傳輸方式:
文件的來源及傳送目的位址。
文件的原始及目標格式。
文件交換時所有的轉換步驟。
傳送方式,如: HTTP、HTTPS、SMTP或File(檔案複製)。
安全機制,如:Secure Multi-purpose Internet Mail Extensions (S/MIME)、公鑰加密(Public Key Encryption)、數位簽章。
編碼與否及編碼方式。
XML-Internet上的標準語言在BizTalk Framework的開放架構下,企業選擇電子商務解決方案的判斷因素就變成:廠商、軟、硬體是否支援相關的標準與規格,將應用程式、商業文件、網路傳輸與作業平台,彼此的相依程度降至最低;換句話說,企業可以根據本身的需求,自行選擇合適的解決方案組合,不必強迫接受特定廠商提出的所有解決方案。BizTalk Framework之所以可以達到如此的通透性(Transparency),相當關鍵的一項技術便是XML。
無論目前的應用程式、作業系統、網路架構如何,在企業內部透過公司政策可以強制要求或是調整使用相同的平台、系統及規格,但是到了Internet的環境,是個開放自由的環境,無法要求也無法預期交易夥伴或客戶與企業內部使用相同的資訊產品及技術。所幸目前在Internet上所有人已經取得一個共識,那便是以XML做為彼此溝通的語言。XML文件是單純的文字檔,但又可以很豐富地描述每段資料之間的相關性及結構性,因此在跨平台的各種環境中都可以處理純文字資料,而且資料中的語義及結構,在傳輸的過程中、無論在任何一種平台上都不受影響。
BizTalk Editor -XML Schema 編輯工具BizTalk Server提供兩個XML的相關工具,其中BizTalk Editor協助IT人員設計企業所需的XML文件規格,透過BizTalk Editor圖形化的介面,只要具備基本的XML Schema概念,便可進行XML Schema的編輯工作,或是修改BizTalk Editor提供的Schema範本,像是採購單、發票…等。完成之後的Schema可藉由BizTalk Editor的 WebDAV
(註1) 功能, 發佈到Internet或者是Extranet上的網站。BizTalk Editor協助企業簡單、快速地製作、編輯及管理XML Schema:
建立XML Schema。
可匯入既有的文件定義檔(DTD)。
可匯入External Data Representation (XDR) 資料結構描述。XDR是XML Structure Definitions (XSD) 規格的子集合。
匯入一份Schema並展示Schema中的定義。
驗證XML文件是否符合XML Schema的規範。
BizTalk Mapper-文件規格轉換檔設計工具企業間的文件規格就像我們所面臨的Internet環境一樣,不太可能是天下一統的局面,即使有業界標準,可能還會有版本別或是地區別之分,至於公司內的系統也可能每個系統的文件格式都不盡相同。因此,企業與企業、系統與系統之間進行溝通時,除了需要傳送訊息外還必需適時地進行「翻譯」。
BizTalk Mapper圖形化的介面,協助企業設計不同文件格式間的轉換檔。一邊是原始文件格式,一邊是目標文件格式,設計人員以滑鼠拖曳將兩邊對應的欄位連結在一起,如有需要,也可使用運算元(Functoid)做進一步的資料轉換。或是撰寫程式為目標格式中新產生的欄位設定新值。文件轉換設定完成之後, BizTalk Mapper 會自動產生XML 格式轉換檔案(XSLT, XSL Transformations)。 XSLT是W3C所制定的標準語法,用來描述如何將一份XML文件轉換成另外一種格式。XSLT檔案可以儲存在一個固定的地方(repository),每當收到一份與來源文件格式相同的資料時,BizTalk Server可以到Repository找到相關的格式轉換檔案進行轉換,將原始資料轉換為目標文件格式。
整合商業流程-BizTalk Orchestration透過Messaging Service企業的IT人員可以將心力專注於應用程式中商業邏輯的處理,不必費心學習如何進行底層的資料交換、通訊協定與文件格式轉換。但是有XML及Internet是不夠的,當MIS人員進行整合以協調橫跨多個企業間的資訊系統時,將面臨如下的挑戰:商業處理作業涵蓋多個組織、系統,並分散在不同的平台,而當作業進行時,每一個步驟可能在不同的時間、機器上,以同步或是非同步的方式處理。
前面提到的BizTalk Messaging Service只專注在處理「單次」的訊息交換,像是傳送一張訂單、回傳一張收據,而在各位的真實生活中,企業間的商業往來或是一筆交易,其實是包含了一連串的動作:提出請購要求、審核、下單、採購確認、收貨確認、入帳,不單是一個步驟就可以完成的。
然而仔細回想一下,這些動作其實都已經有固定的系統在幫我們處理,像是:採購系統、人事薪資系統、會計系統、業務系統…等,只不過這些系統都是獨立運作,彼此之間的資訊無法交流,所以往往一個業務人員下單請購的資料,必須重複地在不同的系統中輸入,每個環節的串連就由人力來進行。
這不僅造成許多人力上額外的工作負擔,人的介入往往也會伴隨著錯誤,尤其當資料量一大時,錯誤的比例勢必也會與工作量同步成長,再加上時間的因素,有時候商場上時間也是一項成本,處理時間愈短、回應速度愈快,成交的可能性就愈高,利潤可能也會因此相對地提高。微軟BizTalk Server 2000簡化分散式商業處理流程的建立及整合工作,讓企業可以更快速地反應市場需求。
BizTalk Orchestration Designer-整合商業流程的樞鈕工具先撇開技術不談,在眾多交易夥伴及異質系統的環境中,商業流程分析人員需要一個可用來模擬、設計分散式商業處理作業的工具,以便將真實世界中所有可能的商業流程,以這個工具表達出來,並進一步加以規劃及管理。透過BizTalk Orchestration Designer,商業流程分析人員可以設計、規劃各種商業流程,或是在作業處理過程中,動態地根據商業文件的內容調整的商業處理流程。
同步(Synchronization)流程與並行(Concurrency)處理當然複雜的商業流程不會只是直線式地進行,配合商業邏輯,流程可能需要進行條件判斷(Decision)、重複執行、交易(Transaction)或是並行處理(Fork)。例如:經銷商送來的一份訂單,其中採購的產品可能由數家不同的供應商提供,根據商業邏輯,處理方式便是拆單,將訂單依廠商拆成數張子訂單,流程中可以Fork分出數個步驟,同時傳送子訂單給多家供應商,這些步驟都會以並行(Concurrency)的方式處理。 為了等候所有的供應商傳回的出貨確認訊息,商業流程分析人員可以使用Join匯集每家供應商訂單的處理動作,同步(Synchronization)之後再一起進入下一個流程。以下面這個例子來說,描述的是一段倉庫出貨的商業處理流程,當點貨人員將訂單中的每一份產品都準備好之後,希望能以各種方式通知客戶所下的訂單已經進入遞送的程序,這些動作包括發送電子郵件、電話語音通知、更新Microsoft Commerce Server電子商店上的訂單處理狀態,此外公司內的ERP系統(JDEdwards)中的訂單記錄也要更新,如果這些動作在流程中都希望同時並進,可以「Fork」要求BizTalk Orchestration的執行引擎以並行(Concurrency)方式處理。之後的同步(Synchronization),可能會希望等待每個動作都完成之後,再執行下個步驟,或是只要任何一個動作完成之後就可進行下個步驟,在「Join」裡可以切換「AND」及「OR」的方式指示BizTalk Orchestration執行引擎如何在並行處理之後做同步的處理。
迴圈 (While)BizTalk Orchestration Designer左方的數種流程,搭配組合之後還可有許多的變化,像是物料詢價。如果企業正要針對某項原料進行採購,除非這個原料或是零件只有一個供應商可以提供,否則詢價或是開放給供應商競標都是企業常見的解決方式。商業流程分析人員可以在BizTalk Orchestration Designer中,使用「Action」、「While」…等簡單幾個圖示,表達企業使用Internet進行供應物料競標的商業處理流程。
動態的商業處理流程真實的商業環境就如消費者的胃口,往往是詭譎多變的,因此商業分析人員即使已絞盡腦汁考慮過所有可能的狀況,仍舊會在實行時隨時發生例外的狀況。BizTalk Orchestration Designer提供直覺、圖形化的商業流程設計介面,商業分析人員可隨時透過這個工具,動態地調整、組合公司內部的系統、流程與外部組織的互動。將商業流程的定義與實作部分分離之後,企業可以更靈活地調整底層網路架構、應用程式的撰寫技術、執行平台,而商業流程的變動也不會影響既有已經在運作的系統。有關動態商業處理流程還有另一個解釋,以之前網上物料競標為例,在競標尚未結束之前,沒有人會知道是由那一家供應商得標。因此設計商業處理流程時只能定義虛擬的供應商,在最後得標結果公佈之後,以下的流程才知道要如何繼續,像是得標結果及通知要如何送達給得標廠商,及其收件的窗口。也就是說,BizTalk Orchestration提供Content-based的文件繞送功能,可在流程執行時根據應用程式、資料內容,動態地決定下一步的處理步驟。
交易機制和撰寫程式一樣,在某些情況下,商業流程中也需要交易(Transaction)機制以確保組織或客戶的權利。例如:信用卡扣款錯誤,或是產品有瑕疵、客戶不滿意可以退貨…等,然而當這些情形發生時,該如何執行回復(Roll-back)的作業?
以往,交易都是在緊密連結的各系統或元件之間,以即時的方式進行,然而在跨平台的B2B環境中,交易機制可能要橫跨各個組織,在鬆散結構(loosely coupled)、非同步的環境中執行。在時間上,交易範圍中的每個動作可能延宕數天、數周、甚或數個月。BizTalk Server解決的方式,是在BizTalk Orchestration Designer中提供交易機制的設計功能,商業流程分析人員同樣可以滑鼠拖曳的方式,將數個商業處理步驟置於一個交易範圍中,針對每個交易,商業分析人員可決定交易的種類:限定交易執行時間(Time transaction)、即時交易(Short-lived ,DTC-style)、長時間的交易(Long running),以及是否要加入失敗時的處理手續。對於長時間的交易,當它失敗時BizTalk Orchestration便會進入事先定義好的失敗處理程序;由於流程執行時間太長,已經完成的記錄無法取消通常是以補償式的動作加以彌補。 BizTalk Orchestration服務負責執行每個流程,隨時監視流程中每個步驟的執行狀態,企業藉由BizTalk Orchestration這項在後端穩定執行的服務,便可將長期、鬆散結構的商業作業視同單一、同步、緊密結合的交易進行。
多樣化的整合技術前面討論過目前企業內部整合、供應鏈整合及異質系統間的問題,最後的結論是BizTalk Orchestration可以扮演這些獨立系統協調者的角色,讓這些原本互不相干的系統可以依照商業分析人員在BizTalk Orchestration中規劃的流程,依序地執行。下一步,如何將這些流程中的步驟(Action)仍舊需要繫結(bind)到真實運作的應用程式,例如:會計系統、電子商店、公司既有的主機系統。
BizTalk Orchestration讓程式開發人員可以熟悉的技術進行系統間的整合,透過COM、Message Queuing、以及BizTalk Messaging Service提供的Internet相關標準通訊協定…等開放的繫結架構,程式開發人員只要為既有的應用程式撰寫一個整合元件(Adapter),執行時BizTalk Orchestration便可透過這個Adapter將商業流程中的步驟與它串連起來。
事實上,整合元件的任務很單純,不是接收便是傳送。以接收訊息而言,Adapter透過財務系統提供的API或是COM介面,模擬日常人員資料輸入的動作,將BizTalk Orchestration傳送過來的訊息呼叫財務系統的API直接送入應用程式內部。當財務系統處理完畢,訊息要再回到BizTalk Orchestration中以進行下個步驟,也可再透過Adapter元件回送。
事實上,微軟目前正加緊與獨立軟體開發廠商的合作進度,協助財務軟體、客戶管理 (CRM)系統、會計軟體、企業資源規劃(ERP)及套裝軟體等廠商,開發相關的Adapter整合元件,事實上國內、外許多商用套裝軟體廠商已經開發完BizTalk的Adapter整合元件,企業可直接使用這些整合元件連結現有資訊系統,省下IT人員開發的工作。
結 論
建置電子商務整合方案就像在下一盤棋,IT人員應妥善運用企業中既有的資源,將以往投資的每套系統、應用程式及人力,安排在適當的位置,彼此之間獨立卻又協調地並行運作,其中保留一些彈性及調整空間,以便企業可隨時根據市場回應保持機動性。
系統間的整合分為兩個層次:資料(Data)及作業程序(Process)。下一次將先深入探討如何透過BizTalk Messaging Service達到電子資料交換的自動化功能,為求簡化起見,將以電子商務網站與資料庫之間的訂單資料交換為例。
(註1) : WebDAV也是Internet上的一種通訊協定,是HTTP 1.1標準的延伸,基本上WebDAV希望擴充HTTP通訊協定,將Web從唯讀的網頁伺服器,變成是一個可以讓多人共同分享、編輯文件,可讀也可寫入的一個媒體。