企業(yè)混搭應用 讓用戶來體驗SOA
企業(yè)混搭應用是一個隨著Web 2.0潮流而產(chǎn)生的新興事物。本文從概念出發(fā),結(jié)合實際,介紹了企業(yè)混搭應用。通過與相關(guān)概念的對比,以及實際工作和日常生活中的體會,對可能推動企業(yè)業(yè)務發(fā)展的混搭應用作了列舉和展望。
一. 企業(yè)混搭應用的概念
企業(yè)混搭應用,又叫Enterprise Mashups Application。Mashup是什么?企業(yè)業(yè)務混搭從哪里來?它與SOA又有什么關(guān)系呢?我們從概念開始。
什么是混搭
混搭(Mashup)是一種新型的基于Web的數(shù)據(jù)集成應用程序。傳統(tǒng)上,Mashup源于流行音樂,是一種音樂類型,也被稱為bastard pop,指的是藝術(shù)家組合或者混合兩首不同的歌曲(通常屬于不同的流派)的音樂和歌詞來創(chuàng)作新的歌曲。它擁有三個特征:天生的創(chuàng)新性,人們的經(jīng)驗性和結(jié)果的和諧性。
特征一:天生的創(chuàng)新性。從起源上看,Mashup是一種內(nèi)容上的創(chuàng)新組合。這里重點是創(chuàng)新,雖然組合的元素通常都源自于本來無關(guān)但非常常見的東西,但這和任何創(chuàng)新活動類似,一旦組合便會產(chǎn)生一種具有新意的新生事物。
特征二:人們的經(jīng)驗性。這些組合都是人工進行合成的,而不是通過計算算法來合成的,人們的經(jīng)驗和思維在Mashup過程中起到了決定性作用。
特征三:結(jié)果的和諧性。無獨有偶,在現(xiàn)實社會中Mashup風潮也影響著服裝時尚界,設計師們把街頭朋克元素引入到傳統(tǒng)的英格蘭服飾,用運動T恤混搭具有少女風情的篷篷裙,產(chǎn)生了意想不到的匹配效果。時尚界也稱Mix & Match風格,從字面上理解,Mix是混合,Match是匹配,合起來翻譯成混搭。指將不同風格,不同材質(zhì),不同身價的東西按照個人口味拼湊在一起,從而混合搭配出完全個人化的風格。Mix就是混合兩個或多個元素,來展現(xiàn)新的用戶體驗。Match是指一種和諧相配的有機組合,否則就是“瞎搭”了。這就是特征三,混搭結(jié)果必須和諧匹配,具有這種既混且搭的東西,現(xiàn)實生活中除了音樂和服裝,還有中國火鍋,多元文化,多元的收藏,裝飾和建筑風格等等,人們的情緒可以說也是一種混搭的表現(xiàn)。
企業(yè)混搭應用
把概念引申到計算機應用,先看看維基百科的說法:Mashup:網(wǎng)絡混搭是一種聚合應用,有一個或者多個信息源整合起來的網(wǎng)站或者網(wǎng)絡應用。由此可見,Mashup是合并多個源的信息和服務的網(wǎng)頁或網(wǎng)站。一個熟知的Mashup典型范例是housingmaps.com,該網(wǎng)站合并了Google的地圖服務和Craigslist.com的公寓租售信息,包括與住宅購買數(shù)據(jù)相結(jié)合,創(chuàng)建了一種交互式的房屋搜索工具。
對企業(yè)應用來說,就如同創(chuàng)造新音樂,新服裝那樣,它能讓業(yè)務人員創(chuàng)造針對特定的業(yè)務需求的業(yè)務混搭應用。這里強調(diào)業(yè)務需求,這是企業(yè)混搭應用的目標。根據(jù)業(yè)務需求,企業(yè)可以開發(fā)和部署不同構(gòu)架層次的Mashup應用,在特定的Mashup編輯環(huán)境中,關(guān)聯(lián)并且組合不同的Mashup組件,從而自己定制出符合企業(yè)需求的應用。我個人認為,Mashup層次、組件和環(huán)境構(gòu)成了Mashup應用的三要素,這在后文還有詳細的描述。
這種Mashup新技術(shù)也叫組合應用(Composite Application)或者叫場景應用(Situational Application)。在企業(yè)中,業(yè)務人員往往需要扮演特定的角色去完成一個特定的任務。特別在決策過程中,更需要多角度多方位的數(shù)據(jù)支持。不僅在內(nèi)容上,在界面上用戶也希望獲得更好的用戶體驗。傳統(tǒng)的企業(yè)應用局限于是由軟件開發(fā)商預先定制的,并不能滿足這種基于特定場景的不斷變化的需求,而Mashup技術(shù)卻能夠讓業(yè)務人員根據(jù)其在不同場合下的需求Situational Need,在新的頁面上放置、移動、更換、關(guān)聯(lián)不同的業(yè)務組件(Mashup組件)。新的頁面中顯示的數(shù)據(jù)不僅可以來自企業(yè)內(nèi)部,也可以來自外部服務。比如說用一個業(yè)務組件顯示企業(yè)系統(tǒng)中的采購合同列表,而列表中可能的供應商信息卻來自外部公網(wǎng)組件。這樣,每個業(yè)務人員都擁有了更加便捷的方式“參與”到企業(yè)業(yè)務流程的創(chuàng)作活動中來,而創(chuàng)作的結(jié)果又能以最佳業(yè)務實踐的形式保存下來。在這種模式下既降低了系統(tǒng)的整體擁有成本,又能共享最佳業(yè)務實踐,使之經(jīng)過迭代后就能逐步更新完善,從中我們可以隱約看到SOA的概念。
Enterprise Mashups與SOA
混搭與SOA的關(guān)系則要從用戶需求談起。SOA在概念上一般被認為是一種以用例為中心,以模型為驅(qū)動的可迭代的構(gòu)架。SOA構(gòu)架通常基于Web Service來實現(xiàn)。那為什么要采用這種構(gòu)架呢?Sandy Carter在《新商業(yè)語言》一書中用Flex-ponsive來形容SOA最為淺顯易懂,這個詞其實就是Flexible和Responsive的組合。企業(yè)為了適應市場的變化,自身就要不斷調(diào)整策略,這樣就產(chǎn)生了對企業(yè)應用需求的不斷變化。SOA構(gòu)架的目標就是提供能適應企業(yè)需求不斷變化的底層基礎(chǔ)構(gòu)架,要做到具有靈活的可適應性和快速應對變化的能力。
但SOA注重在后臺架構(gòu)上,講究服務、組件和流程。企業(yè)用戶往往看不見,摸不著,所以比較難把握。而企業(yè)混搭應用則在用戶表現(xiàn)層,講究豐富的用戶體驗、創(chuàng)建并且部署特定應用,能讓用戶來體驗到SOA。Enterprise Mashup是SOA平臺的展現(xiàn),它在發(fā)布應用程序的同時,不僅可以集成企業(yè)內(nèi)部服務,還可以利用外部Web 服務,RSS提要和其他方式部署Mashup組件,然后將Mashup組件組合成新的應用程序。可以這么說,Enterprise Mashup是需要基于SOA構(gòu)架的。
回過頭再來看看我們的目標:根據(jù)業(yè)務目標調(diào)整系統(tǒng)應用。在以前,即使有了SOA,企業(yè)內(nèi)部IT人員和業(yè)務人員還可能各自為政,企業(yè)外部供應商的咨詢?nèi)藛T和開發(fā)人員也會有不同分歧。企業(yè)混搭應用就是希望使業(yè)務人員也有能力開發(fā)和部署自己的應用,從而拉近需求定義和開發(fā)部署的距離,消除分歧。業(yè)務人員也正是通過了混搭應用,固化了業(yè)務流程,適應了需求變化,體驗了SOA所帶來的價值。
二. 企業(yè)混搭應用的三要素
雖然非技術(shù)人員可以通過Mashup來開發(fā)和部署自己的應用,但是該技術(shù)本生不是萬能的,也不能覆蓋系統(tǒng)應用的方方面面。我們必須給Mashup一個清晰的定位,讓它在相應適應的需求上發(fā)揮作用。這里所介紹的Mashup三要素分別指的是:混搭構(gòu)架層次,混搭組件和混搭開發(fā)部署環(huán)境。在理解三要素的基礎(chǔ)上,就能對Mashup能為企業(yè)做什么有個大致的把握。
混搭構(gòu)架層次(Mashup Level)
一般來說,有3種類型的混搭應用:表現(xiàn)型、數(shù)據(jù)型和邏輯型。如果從企業(yè)用戶角度來定位混搭,這3種類型就對應著3種不同的混搭構(gòu)架層次。表現(xiàn)型混搭最簡單,企業(yè)門戶就是一種具體體現(xiàn)。這種混搭應用停留在用戶界面層次,通過調(diào)用UI組件或者嵌入式UI組件來豐富企業(yè)應用。當然通過手工方式實現(xiàn)該功能也不難,但混搭應用避免了剪切、粘貼和在多個瀏覽器窗口里切換等操作,從而大幅提高了工作效率。
較為常見的企業(yè)應用有:為了豐富像客戶,經(jīng)銷商,采購商這樣的主數(shù)據(jù),組合并集成外部的地圖/位置服務,黃頁信息服務,商業(yè)網(wǎng)站的公司資料服務,商務網(wǎng)站的公司股價服務,財務信息服務,產(chǎn)品信息服務和公司RSS新聞服務。為了對比采購報價單的同類產(chǎn)品價格,組合并集成外部B2B網(wǎng)站的同類產(chǎn)品價格信息等。
如果這種集成的服務能提供有用的輸入信息,這類Mashup就顯得更有意義了。比如利用集成的地址驗證組件服務,郵編查詢組件服務,信用額度查詢組件服務,就能對企業(yè)數(shù)據(jù)進行有效的檢驗。數(shù)據(jù)型混搭收集來自多個數(shù)據(jù)源的信息,為方便比較而把他們都聚合在一起。這種混搭應用用于信息聚合以及人員協(xié)同。這里典型的例子是把新聞組件,討論組Blog組件或著Wiki組件,顯示項目進度的甘特圖組件,任務分配組件,投票決議組件,財務報表組件等等,加上一些通用的像文本編輯,網(wǎng)頁編輯,公共事件日歷,導入導出,消息收發(fā)等基礎(chǔ)組件混合起來,由用戶來決定它們的組合和使用方式。
邏輯性混搭通常最復雜,這往往需要進行與2個或更多應用交互的混搭工作,有時候可能也需要技術(shù)人員的參與。這種混搭應用用于企業(yè)業(yè)務流程的集成,包括對第三方服務的集成。比如把企業(yè)內(nèi)部銷售數(shù)據(jù)與市場研究公司的競爭對手數(shù)據(jù)集成,把企業(yè)內(nèi)部工資與ADP所得稅計算方案集成,把物流信息與UPS或者Fedex的物流信息服務集成,把企業(yè)內(nèi)部的支持中心與外部知識庫集成等。混搭能夠把這類集成體現(xiàn)在用戶界面上,可以想象,業(yè)務人員完全有可能定制組合這樣的頁面,在該頁面上,他可以查詢某個配送訂單,用地圖來查看UPS具體配送貨品的地理位置,同時用其他服務來計算成本等。
有了不同層次的混搭,就可以實現(xiàn)基于SOA的企業(yè)應用網(wǎng)絡化。在企業(yè)內(nèi)部,適應變化的需求,實現(xiàn)快速定制業(yè)務組件。在企業(yè)外部,通過與服務合作伙伴的合作,實現(xiàn)和內(nèi)部數(shù)據(jù)的協(xié)同。這就是SOA的理想目標,Mashup正是SOA在用戶體驗上的體現(xiàn)。
混搭組件(Mashup Component)
Mashup的核心在于定義符合業(yè)務需求的數(shù)據(jù)或信息組件。其重要性使得我們有時候稱這些軟件應用為“訊件” (infoware)而不僅僅是軟件。通常概念上的Mashup組件分為地圖組件,視頻和圖像組件,搜索組件,購物組件和新聞組件。而其中地圖組件尤為典型,將物理地址同信息關(guān)聯(lián)起來的任何應用都可作為地圖Mashup。除了housingmaps的案例以外,最初廣泛流行起來的另一個Web 站點將芝加哥警局在線數(shù)據(jù)庫中的犯罪記錄與Google Maps上的地圖復合在一起用戶可以與Mashup站點進行交互,例如告訴它在圖形界面上顯示一個包含圖釘?shù)牡貓D,圖釘展示南加州最近所有入室搶劫案件的詳細信息。這種概念和呈現(xiàn)方式非常簡單,犯罪和地圖數(shù)據(jù)復合之后提供的可視化的功能非常強大。
如果把概念移植到企業(yè)業(yè)務應用上,也許我們會得出一些有用的企業(yè)用例。把某區(qū)域的道路交通流量顯示在地圖上,用戶可以直接可視地查看道路堵塞情況。把銷售代表一天的拜訪路線,或者服務工程師按訂單的服務路線顯示在地圖上,用戶就可以看到圖形化的路線圖。如何找到和定制那些對業(yè)務有用的企業(yè)混搭組件呢?也許可以從日本雨傘的發(fā)明得到啟發(fā)。日本人把雨傘設計成不同的品種,比如雨傘加手電筒,就形成了具有夜視功能的雨傘;還有比如雨傘加支架,就形成了可以站立的雨傘;另外比如雨傘加帽子就是可以直接套在頭上的雨傘;最近還聽說日本學生把雨傘加攝像頭,發(fā)明了既可以拍照上網(wǎng)又可以看照片的雨傘。
從這個例子可以看出,對企業(yè)應用,我們需要找到像雨傘那樣的核心業(yè)務,并加以組件化,這些是企業(yè)內(nèi)部業(yè)務組件的來源。企業(yè)外部Mashup組件就如同手電筒,支架那樣,需要找到合適的外部服務。另外還要指出的是,Mashup并不是特指2種組件的組合,事實上,一些復雜的業(yè)務必須混合好幾種類型的組件才能滿足特定要求。
混搭開發(fā)部署環(huán)境(Mashup Environment)
說到混搭的環(huán)境,大體分為業(yè)務(咨詢)人員Mashup環(huán)境和開發(fā)人員Mashup環(huán)境。對于業(yè)務人員來說,他們了解業(yè)務流程,需要企業(yè)級的拖放式開發(fā)環(huán)境。他們可以在這個環(huán)境下定義Mashup頁面,選擇相適應的Mashup組件,設置Mashup組件的顯示數(shù)據(jù)以及組件間的數(shù)據(jù)輸入/輸出的關(guān)聯(lián)關(guān)系。這種環(huán)境強調(diào)集中化管理以及與其他SOA工具的整合。所有操作都應該符合安全合規(guī)要求并可以進行集中式監(jiān)控跟蹤。
對于開發(fā)人員來說,他們是企業(yè)IT人員或者是軟件供應商的合作伙伴,他們可以獨立地定制開發(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è)務內(nèi)容被封裝成具有業(yè)務邏輯的業(yè)務對象BO(Business Object),而把一些語義相關(guān)的業(yè)務對象組裝起來成為過程組件PC(Process Component),實現(xiàn)一定的業(yè)務過程。對于其他基于服務的業(yè)務,SAP通過A2X服務(A2X Service)來集成混合服務(Compound Service)。如果把過程組件和A2X服務用適當?shù)腢I界面展現(xiàn)出來,就是企業(yè)內(nèi)部的Mashup組件了。
過程組件和A2X服務形成了一類Mashup組件基礎(chǔ),它們被統(tǒng)一注冊在企業(yè)服務庫中ESR(Enterprise Service Repository),這樣用戶就可以按需來選擇定制企業(yè)服務了,這就是所要描述的組合(Composition)概念。近一步,為了滿足新的業(yè)務需求,可以創(chuàng)建出新的業(yè)務對象和過程組件。這類Mashup組件即是像雨傘那樣的企業(yè)業(yè)務的核心組件。
另外一類Mashup組件則通過UDDI(Universal Description Discovery and Integration)把外部的服務集成起來。從技術(shù)上來說,整個構(gòu)架中有一個Mashup組件庫(Mashup Component Repository)來統(tǒng)一管理Mashup組件,它分別與ESR和外部的UDDI通信,注冊并管理著所有可用的Mashup組件。
企業(yè)混搭應用是基于內(nèi)部ESR和外部UDDI服務的,是Composition在用戶應用層面的體現(xiàn)。在SAP產(chǎn)品中,用戶可以在CE(Composition Environment)來開發(fā)和部署混搭應用,選擇并且混搭Mashup組件。最后,從SAP ByDesign產(chǎn)品功能來看混搭層次(Mashup Level),表現(xiàn)型混搭就是把外部服務集成在目前ByDesign應用的UI界面中,數(shù)據(jù)型混搭則是Workspace組件,邏輯型混搭可以認為是Page Mashups,它的目標是構(gòu)建基于工作流的按需協(xié)同應用。
三. 企業(yè)混搭應用的展望
展望未來,企業(yè)混搭應用需要基于大量業(yè)務組件的標準化,從而像宜家用戶DIY模式那樣進行大規(guī)模按需裝配。這種業(yè)務組件化的發(fā)展,將形成以業(yè)務為核心的中間件市場,使得專有業(yè)務組件開發(fā)團隊化,社區(qū)化,網(wǎng)絡化。企業(yè)混搭的技術(shù)也要依賴于輕量型編程模型,不過出于對企業(yè)應用的安全性能考慮,輕量型編程模型需要提供比目前更強大的安全技術(shù)保障。




















