邏輯性混搭通常最復(fù)雜,這往往需要進行與2個或更多應(yīng)用交互的混搭工作,有時候可能也需要技術(shù)人員的參與。這種混搭應(yīng)用用于企業(yè)業(yè)務(wù)流程的集成,包括對第三方服務(wù)的集成。比如把企業(yè)內(nèi)部銷售數(shù)據(jù)與市場研究公司的競爭對手?jǐn)?shù)據(jù)集成,把企業(yè)內(nèi)部工資與ADP所得稅計算方案集成,把物流信息與UPS或者Fedex的物流信息服務(wù)集成,把企業(yè)內(nèi)部的支持中心與外部知識庫集成等?;齑钅軌虬堰@類集成體現(xiàn)在用戶界面上,可以想象,業(yè)務(wù)人員完全有可能定制組合這樣的頁面,在該頁面上,他可以查詢某個配送訂單,用地圖來查看UPS具體配送貨品的地理位置,同時用其他服務(wù)來計算成本等。
有了不同層次的混搭,就可以實現(xiàn)基于SOA的企業(yè)應(yīng)用網(wǎng)絡(luò)化。在企業(yè)內(nèi)部,適應(yīng)變化的需求,實現(xiàn)快速定制業(yè)務(wù)組件。在企業(yè)外部,通過與服務(wù)合作伙伴的合作,實現(xiàn)和內(nèi)部數(shù)據(jù)的協(xié)同。這就是SOA的理想目標(biāo),Mashup正是SOA在用戶體驗上的體現(xiàn)。
混搭組件(Mashup Component)
Mashup的核心在于定義符合業(yè)務(wù)需求的數(shù)據(jù)或信息組件。其重要性使得我們有時候稱這些軟件應(yīng)用為“訊件” (infoware)而不僅僅是軟件。通常概念上的Mashup組件分為地圖組件,視頻和圖像組件,搜索組件,購物組件和新聞組件。
而其中地圖組件尤為典型,將物理地址同信息關(guān)聯(lián)起來的任何應(yīng)用都可作為地圖Mashup。除了housingmaps的案例以外,最初廣泛流行起來的另一個Web 站點將芝加哥警局在線數(shù)據(jù)庫中的犯罪記錄與Google Maps上的地圖復(fù)合在一起用戶可以與Mashup站點進行交互,例如告訴它在圖形界面上顯示一個包含圖釘?shù)牡貓D,圖釘展示南加州最近所有入室搶劫案件的詳細(xì)信息。這種概念和呈現(xiàn)方式非常簡單,犯罪和地圖數(shù)據(jù)復(fù)合之后提供的可視化的功能非常強大。
如果把概念移植到企業(yè)業(yè)務(wù)應(yīng)用上,也許我們會得出一些有用的企業(yè)用例。把某區(qū)域的道路交通流量顯示在地圖上,用戶可以直接可視地查看道路堵塞情況。把銷售代表一天的拜訪路線,或者服務(wù)工程師按訂單的服務(wù)路線顯示在地圖上,用戶就可以看到圖形化的路線圖。
如何找到和定制那些對業(yè)務(wù)有用的企業(yè)混搭組件呢?也許可以從日本雨傘的發(fā)明得到啟發(fā)。日本人把雨傘設(shè)計成不同的品種,比如雨傘加手電筒,就形成了具有夜視功能的雨傘;還有比如雨傘加支架,就形成了可以站立的雨傘;另外比如雨傘加帽子就是可以直接套在頭上的雨傘;最近還聽說日本學(xué)生把雨傘加攝像頭,發(fā)明了既可以拍照上網(wǎng)又可以看照片的雨傘。
從這個例子可以看出,對企業(yè)應(yīng)用,我們需要找到像雨傘那樣的核心業(yè)務(wù),并加以組件化,這些是企業(yè)內(nèi)部業(yè)務(wù)組件的來源。企業(yè)外部Mashup組件就如同手電筒,支架那樣,需要找到合適的外部服務(wù)。另外還要指出的是,Mashup并不是特指2種組件的組合,事實上,一些復(fù)雜的業(yè)務(wù)必須混合好幾種類型的組件才能滿足特定要求。
混搭開發(fā)部署環(huán)境(Mashup Environment)
說到混搭的環(huán)境,大體分為業(yè)務(wù)(咨詢)人員Mashup環(huán)境和開發(fā)人員Mashup環(huán)境。
對于業(yè)務(wù)人員來說,他們了解業(yè)務(wù)流程,需要企業(yè)級的拖放式開發(fā)環(huán)境。他們可以在這個環(huán)境下定義Mashup頁面,選擇相適應(yīng)的Mashup組件,設(shè)置Mashup組件的顯示數(shù)據(jù)以及組件間的數(shù)據(jù)輸入/輸出的關(guān)聯(lián)關(guān)系。這種環(huán)境強調(diào)集中化管理以及與其他SOA工具的整合。所有操作都應(yīng)該符合安全合規(guī)要求并可以進行集中式監(jiān)控跟蹤。
對于開發(fā)人員來說,他們是企業(yè)IT人員或者是軟件供應(yīng)商的合作伙伴,他們可以獨立地定制開發(fā)Mashup組件。目前平臺有微軟的ASP.Net,Adobe的Flex,以及Google的免費網(wǎng)頁開發(fā)工具包(Web Toolkit),也有開源Ajax框架Ruby on Rails。
SAP產(chǎn)品中的企業(yè)混搭介紹
SAP面向中小企業(yè)解決方案Business ByDesign產(chǎn)品是基于SOA的按需定制的軟件套件,它的企業(yè)SOA軟件構(gòu)架平臺稱為BPP(Business Process Platform)。每個業(yè)務(wù)內(nèi)容被封裝成具有業(yè)務(wù)邏輯的業(yè)務(wù)對象BO(Business Object),而把一些語義相關(guān)的業(yè)務(wù)對象組裝起來成為過程組件PC(Process Component),實現(xiàn)一定的業(yè)務(wù)過程。對于其他基于服務(wù)的業(yè)務(wù),SAP通過A2X服務(wù)(A2X Service)來集成混合服務(wù)(Compound Service)。如果把過程組件和A2X服務(wù)用適當(dāng)?shù)腢I界面展現(xiàn)出來,就是企業(yè)內(nèi)部的Mashup組件了。
過程組件和A2X服務(wù)形成了一類Mashup組件基礎(chǔ),它們被統(tǒng)一注冊在企業(yè)服務(wù)庫中ESR(Enterprise Service Repository),這樣用戶就可以按需來選擇定制企業(yè)服務(wù)了,這就是所要描述的組合(Composition)概念。近一步,為了滿足新的業(yè)務(wù)需求,可以創(chuàng)建出新的業(yè)務(wù)對象和過程組件。這類Mashup組件即是像雨傘那樣的企業(yè)業(yè)務(wù)的核心組件。
另外一類Mashup組件則通過UDDI(Universal Description Discovery and Integration)把外部的服務(wù)集成起來。從技術(shù)上來說,整個構(gòu)架中有一個Mashup組件庫(Mashup Component Repository)來統(tǒng)一管理Mashup組件,它分別與ESR和外部的UDDI通信,注冊并管理著所有可用的Mashup組件。
企業(yè)混搭應(yīng)用是基于內(nèi)部ESR和外部UDDI服務(wù)的,是Composition在用戶應(yīng)用層面的體現(xiàn)。在SAP產(chǎn)品中,用戶可以在CE(Composition Environment)來開發(fā)和部署混搭應(yīng)用,選擇并且混搭Mashup組件。
最后,從SAP ByDesign產(chǎn)品功能來看混搭層次(Mashup Level),表現(xiàn)型混搭就是把外部服務(wù)集成在目前ByDesign應(yīng)用的UI界面中,數(shù)據(jù)型混搭則是Workspace組件,邏輯型混搭可以認(rèn)為是Page Mashups,它的目標(biāo)是構(gòu)建基于工作流的按需協(xié)同應(yīng)用。
三. 企業(yè)混搭應(yīng)用的展望
展望未來,企業(yè)混搭應(yīng)用需要基于大量業(yè)務(wù)組件的標(biāo)準(zhǔn)化,從而像宜家用戶DIY模式那樣進行大規(guī)模按需裝配。這種業(yè)務(wù)組件化的發(fā)展,將形成以業(yè)務(wù)為核心的中間件市場,使得專有業(yè)務(wù)組件開發(fā)團隊化,社區(qū)化,網(wǎng)絡(luò)化。
企業(yè)混搭的技術(shù)也要依賴于輕量型編程模型,不過出于對企業(yè)應(yīng)用的安全性能考慮,輕量型編程模型需要提供比目前更強大的安全技術(shù)保障。