MashupsWeb應用程序新成員_第1頁
MashupsWeb應用程序新成員_第2頁
MashupsWeb應用程序新成員_第3頁
MashupsWeb應用程序新成員_第4頁
MashupsWeb應用程序新成員_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Mashups Web 應用程序新成員Mashups:Web應用程序新成員2010-04-25 23:45Mashup是一種令人興奮的交互式Web應用程序,它利用了從外部數據源檢索到的內容來創(chuàng)建全新的創(chuàng)新服務。它們具有第二代Web應用程序的特點,也稱為Web 2.0。這篇簡介性的文章對mashup是什么、目前流行的不同種類的mashup以及mashup開發(fā)人員用于創(chuàng)建自己的應用程序的支持技術進行了探索。另外,您還將看到mashup開發(fā)人員面臨的一些新的技術和社會挑戰(zhàn)。一種新型的基于Web的數據集成應用程序正在Internet上逐漸興起。通常用術語mashup表示,它們的流行萌芽于對交互式用戶參

2、與和集成第三方數據的類似于科學怪人方式的重視。我們使用萌芽一詞是有一定原因的;mashup Web站點的特點就表現(xiàn)為它正在Web上扎根發(fā)芽,它們利用了從組織邊界之外的數據源獲取的內容和功能。mashup這種隱晦的數據集成定義當然不是非常嚴格。要深入了解什么是mashup,就應該了解一下這個單詞的起源:它源于流行音樂,mashup是從兩首不同的歌曲(通常屬于不同的流派)中混合演唱和樂器的音軌而構成的一首新歌。與那些bastard pop歌曲類似,mashup也是內容的一種不常見的創(chuàng)新組合(通常都源自于無關的數據源),這都是人工進行合成的(而不是通過計算機來合成的)。在本節(jié)中,我們將簡要介紹對出名

3、的mashup類型進行的一些調查。在這個階段的信息技術中,人們搜集大量有關事物和行為的數據,二者都常常具有位置注釋信息。所有這些包含位置數據的不同數據集均可利用地圖通過令人驚奇的圖形化方式呈現(xiàn)出來。mashup蓬勃發(fā)展的一種主要動力就是Google公開了自己的Google Maps API。這仿佛打開了一道大門,讓Web開發(fā)人員(包括愛好者、修補程序開發(fā)人員和其他一些人)可以在地圖中包含所有類型的數據(從原子彈災難到波士頓的CowParade奶牛都可以)。為了不落于人后,Microsoft(Virtual Earth)、Yahoo(Yahoo Maps)和AOL(MapQuest)也很快相繼公

4、開了自己的API。圖像主機和社交網絡站點(例如Flickr使用自己的API來共享圖像)的興起導致出現(xiàn)了很多有趣的mashup。由于內容提供者擁有與其保存的圖像相關的元數據(例如誰拍的照片,照片的內容是什么,在何時何地拍攝的等等),mashup的設計者可以將這些照片和其他與元數據相關的信息放到一起。例如,mashup可以對歌曲或詩詞進行分析,從而將相關照片拼接在一起,或者基于相同的照片元數據(標題、時間戳或其他元數據)顯示社交網絡圖。另外一個例子可能以一個Web站點(例如CNN之類的新聞站點)作為輸入,并在新聞中通過照片匹配而將照片中的內容以文字的形式呈現(xiàn)出來。搜索和購物mashup在mashu

5、p這個術語出現(xiàn)之前就已經存在很長時間了。在Web API出現(xiàn)之前,有相當多的購物工具,例如BizRate、PriceGrabber、MySimon和Google的Froogle,都使用了B2B技術或屏幕抓取的方式來累計相關的價格數據。為了促進mashup和其他有趣的Web應用程序的發(fā)展,諸如eBay和Amazon之類的消費網站已經為通過編程訪問自己的內容而發(fā)布了自己的API。mashup程序從架構上是由3個不同的部分組成的,它們在邏輯上和物理上都是相互脫離的(可能由網絡和組織邊界分隔):API/內容提供者、mashup站點和客戶機的Web瀏覽器。通常,mashup都使用服務器和客戶機端邏輯的組

6、合來實現(xiàn)自己的數據集成。很多mashup應用程序都使用了直接由用戶提供的數據,(至少)使一個數據集是本地的。另外,對多數據源的數據執(zhí)行復雜查詢(例如請顯示在Kevin Bacon的電影中出演角色的男演員所購買的房產的平均價格)所需要的計算是不可能在客戶機的Web瀏覽器中執(zhí)行的。客戶機的Web瀏覽器。這是以圖形化的方式呈現(xiàn)應用程序的地方,也是用戶交互發(fā)生的地方。正如上面介紹的一樣,mashup通常都使用客戶機端的邏輯來構建合成內容。關于Ajax究竟是否是一個縮寫詞(有人認為它表示Asynchronous JavaScript+XML)還存在爭論。不論如何,Ajax都是一個Web應用模型,而不是一

7、種特定的技術。它包括幾種關注內容的異步加載和呈現(xiàn)的技術:XHTML和用于確定呈現(xiàn)風格的CSS瀏覽器為動態(tài)顯示和交互所提供的文檔對象模型(DOM)API異步數據交換,通常是XML數據瀏覽器端的腳本,主要是JavaScript將這些技術結合在一起使用時,它們的目標是通過與內容服務器交換少量的數據為用戶創(chuàng)造平滑、良好的Web體驗,而不用在用戶執(zhí)行某些操作之后重新加載并重新呈現(xiàn)整個頁面。我們可以使用各種Ajax工具包和庫(例如Sajax或Zimbra)為mashup構建Ajax引擎,這通常是使用JavaScript實現(xiàn)的。Google Maps API包括一個專用的Ajax引擎,它對用戶體驗的影響著實

8、強大:它的工作方式類似于一個真正的本地應用程序,其中沒有滾動條可以操作,也沒有移動按鈕強制頁面重新加載。SOAP和REST都是與遠程服務進行通信所使用的與平臺無關的協(xié)議。作為面向服務的架構范式的一部分,客戶機使用SOAP和REST與遠程服務進行交互,而不用了解它們底層的平臺實現(xiàn):服務的功能完全是由它請求和收到的顯影消息描述來實現(xiàn)的。SOAP是Web服務范式中的一種基本技術。最初它是Simple Object Access Protocol的縮寫,現(xiàn)在代表Services-Oriented Access Protocol(或直接縮寫為SOAP),這是因為它的重點已經從基于對象的系統(tǒng)轉向消息交換的

9、交互操作。SOAP規(guī)范中有兩個關鍵組件。第一個組件是使用XML消息格式進行平臺無關的編碼,第二個組件消息結構,包括消息頭和消息體。消息頭用來交換非特定于應用負載(消息體)的相關信息,例如認證信息。SOAP消息體封裝了應用程序特有的負載。Web服務的SOAP API是由WSDL文檔來描述的,它們本身都描述了一個服務對外提供哪些操作,它可以接受的消息格式(使用XML Schema),以及如何對其進行尋址。SOAP消息通常都是通過HTTP協(xié)議傳送的,不過也可以通過其他方式傳送(例如JMS或e-mail)。REST是Representational State Transfer的縮寫,這是一種只使用H

10、TTP和XML進行基于Web通信的技術。它的簡單性和缺少嚴格配置文件的特性使它與SOAP很好地隔離開來,并且吸引了大家廣泛的興趣。與我們在現(xiàn)代變成語言中可以找到的典型基于動詞的接口不同(它們構成了各種方法,例如getEmployee()、addEmployee()、listEmployees()等)不同,REST從根本上來說只支持幾個操作(即POST、GET、PUT、DELETE),這些操作適用于所有的消息。REST強調信息本身,稱為資源。例如,一個員工的資源記錄是由URI標識的,這可以通過一個GET方法獲得,并使用一個PUT操作進行更新,等等。使用這種方法,REST就與文檔文本風格的SOAP

11、服務非常類似。正如前面介紹的一樣,缺乏內容提供者提供的API通常會強制要求mashup開發(fā)人員采取屏幕抓取的方式來提取自己希望集成的信息。抓取(Scraping)是使用軟件工具處理并分析最初為人們閱讀而編寫的內容,從而從中提取出可以通過編程進行使用和操作的信息的語義數據結構表示。有些mashup使用屏幕抓取技術來獲取數據,特別是從公用領域提取數據。例如,房地產地圖mashup就可以在制圖供應商提供的地圖上顯示售價和租價,這些數據可能是從當地的記錄辦公室抓取來的comp數據。另外一個抓取數據的mashup項目是XMLTV,這是一組匯聚了各地電視節(jié)目清單的工具集。屏幕抓取通常被認為是一個不雅的解決

12、方案,這是有一定的原因的。它有兩個主要的固有缺點。第一個缺點在于,與使用接口的API不同,抓取在內容提供者和內容消費者之間沒有明確的聯(lián)系。抓取者必須圍繞一個源內容模型設計自己的工具,并且希望提供者一直采用這種模型來呈現(xiàn)內容。Web站點傾向于周期性地更新外觀,以保持新穎和時髦,對于抓取者來說,這是一項非常頭痛的維護任務,因為工具很可能會失效。第二個問題是缺少成熟的可重用屏幕抓取工具包軟件,通俗地說就稱為scrAPI。此類API和工具包的消亡很大程度上是由于每種抓取工具都有極為特定于應用程序的需求。這為開發(fā)人員帶來了過多的開發(fā)工作,他們必須對內容進行反向工程處理、開發(fā)數據模型、分析并從提供者站點上

13、匯集原始數據。屏幕抓取不好的一面直接源自于一個事實:為閱讀而創(chuàng)建的內容并不太適合機器自動處理。這促進了語義Web的誕生,它是現(xiàn)有Web的增強版本,在為人們設計的內容中增加了足夠多的可供機器閱讀的信息。在語義Web環(huán)境中,信息這個術語與數據有所差異;數據只有在傳達了自己的含義(即數據可被理解)之后才會變成信息。語義Web的目標是創(chuàng)建Web基礎設施,使用元數據對數據進行增強,從而使數據變得有意義,最終使數據變得適合進行自動化、集成、推理和重用。被稱為資源描述框架(RDF)的W3C系列規(guī)范就是服務于這個目的的技術,它用來建立描述數據的語義結構。XML本身并不足以實現(xiàn)這種功能;它太過隨意,我們可以使用

14、很多方法進行編碼來對相同的數據進行描述。RDF-Schema補充了RDF的能力,提供了以機器可讀的方式編碼概念的功能。一旦可通過一種數據模型描述數據對象,RDF就提供了通過主語-謂語-對象三元組(主語S與對象O具有關系R)在數據對象之間構建關系的能力。數據模型與關系圖之間的區(qū)別讓我們可以進行存在式的構建,這是可以進行搜索和形式化推理的知識的層次化結構。例如,我們可以定義這樣一個模型:肉食動物是動物的一個子類,條件是它吃其他動物;并創(chuàng)建兩個實例:一個實例是印度豹和北極熊,并提供它們的生存環(huán)境;另外一個是瞪羚和企鵝,并提供它們的生存環(huán)境。假設我們將這些單獨的模型實例集成在一起,就可以推論說印度豹可

15、能會以瞪羚為食,但卻不會吃企鵝。RDF數據在很多領域中都迅速得到了應用,包括社交網絡應用程序(例如FOAF-Friend of aFriend)和聯(lián)合(例如RSS,接下來就會介紹)。另外,RDF軟件技術和組件都正在成熟到一定規(guī)模,尤其是在RDF查詢語言(例如RDQL和SPARQL)、編程框架和推理引擎(例如Jena和Redland)領域。RSS是一系列基于XML的聯(lián)合格式。在這種情況中,聯(lián)合(syndication)是指一個發(fā)布內容的Web站點可以創(chuàng)建RSS文檔并在RSS發(fā)布系統(tǒng)中注冊自己的文檔。支持RSS的客戶機可以查看新內容,并通過適當的方式連接到這些內容上。RSS已經被用來聯(lián)合廣泛的內容

16、,從新聞到頭條、CVS或WIKI頁面的修改日志、項目更新甚至諸如無線電節(jié)目之類的視聽數據。版本1.0基于RDF,但最新的2.0版本不以RDF為基礎。Atom是一種更新但非常類似的聯(lián)合協(xié)議。它是Internet Engineering Task Force(IETF)提出的一項草案標準,人們希望通過Atom提供比RSS更好的元數據維護;提供更好、更為全面的文檔,并結合構建通用數據表示的概念。這些聯(lián)合技術對于集成基于事件或更新驅動內容的mashup來說都非常有用,例如新聞和weblog聚集程序。與其他數據集成領域一樣,mashup開發(fā)也充斥著許多亟待解決的技術挑戰(zhàn),隨著mashup應用程序特性和功

17、能的進一步豐富,這種挑戰(zhàn)也變得更加嚴峻。本節(jié)簡單介紹了一些挑戰(zhàn),其中有些挑戰(zhàn)目前已經能夠解決或緩解,而其他問題依然沒有解決。品質調查顯示,當今的企業(yè)IT首要關注的問題就是是企業(yè)虛擬組織中的數據集成。(在這種情況中,我們使用了虛擬組織(virtual organization)這個術語表示很多聯(lián)合業(yè)務單元的組合,每個業(yè)務單元都包含在自己的管理域中。)與很多發(fā)現(xiàn)自己忙于集成傳統(tǒng)數據源的企業(yè)IT管理人員一樣(例如,創(chuàng)建可以反映當前業(yè)務狀況的企業(yè)儀表板),mashup開發(fā)人員需要面對類似源自于在異構數據集之間共享語義的挑戰(zhàn)。因此,要了解mashup開發(fā)人員是如何為此作出準備,只需了解企業(yè)IT所面臨的集

18、成挑戰(zhàn)。例如,我們必須設計數據模型之間的轉換系統(tǒng)。在將數據轉換成通用的格式時、在映射不完整時(例如,一個數據源可能有一個模型,其中一個地址類型包含了一個國家字段,而另外一個模型中沒有這個字段),我們必須進行一些合理的假設。盡管已經面臨這些挑戰(zhàn),但是mashup開發(fā)人員可能并不是源數據模型領域的專家,因為這些模型可能是第三方的產品,這些合理的假設可能并不直觀清晰,這更加劇了挑戰(zhàn)的嚴峻性。除了缺少數據和映射不完整之外,mashup設計者可能會發(fā)現(xiàn)他們希望集成的數據并不適合進行機器自動化處理;這將帶來很多凈化工作。例如,執(zhí)法逮捕記錄可能不一致:記錄中可能為名字使用了常用的縮寫形式(例如,一條記錄中使

19、用的是mkt sqr,另外一條記錄中使用的是Market Square),這使得關于等同性的自動推理變得非常困難,即使采用很好的啟發(fā)式規(guī)則也很難實現(xiàn)。語義建模技術,例如RDF,可以幫助簡化對不同數據集之間自動進行推理所面臨的問題,這些數據集是內嵌在數據存儲介質中的。對于傳統(tǒng)的數據源來說,通常需要投入大量人力物力,進行分析和數據凈化工作,然后才能將其用于語義建模技術。mashup開發(fā)人員可能還必須面對IT集成管理人員不需要面對的一些問題,其中一個問題是數據污染。作為應用程序設計的一部分,很多mashup都要求公共用戶提供輸入。wiki應用程序領域的研究表明,這是一把雙刃劍:它可能非常強大,因為可

20、以提供開放的貢獻和最佳的數據革新,但這又會導致不一致、不正確或容易產生誤導的數據項。后者可能會危及數據的可信度,最終降低mashup帶來的價值。mashup開發(fā)人員需要面對的另外一種集成問題是由于獲取數據必須采用屏幕抓取技術而引起的。正如上一節(jié)所討論的一樣,分析和獲取工具以及數據模型都需要大量與反向工程相關的工作。在最理想的情況下,可以創(chuàng)建這些工具和模型,但依然存在一個問題:源站點如何呈現(xiàn)自己的內容,這可能會破壞集成過程,并導致mashup應用程序出錯。盡管Web開發(fā)的Ajax模型可以比傳統(tǒng)的整個頁面刷新技術提供更為豐富而且更加無縫的用戶體驗,但是也帶來了一些難題。作為基礎來說,Ajax要求將

21、瀏覽器的客戶端腳本功能與自己的DOM配合使用,實現(xiàn)一種內容交付方法,這完全是由瀏覽器設計者所設想的。(可能Ajax類似于黑客的特性增加了它的吸引力。)然而,這使基于Ajax的應用程序具有相同的瀏覽器兼容問題,這些問題從微軟開發(fā)Internet Explorer以來就一直困擾著Web開發(fā)人員。例如,Ajax引擎利用了一個XMLHttpRequst對象來與遠程服務器異步交換數據。在Internet Explorer 6中,這個對象是使用ActiveX實現(xiàn)的,而不是使用本地JavaScript實現(xiàn)的,這要求必須啟用ActiveX。更加基本的一個需求是Ajax要求必須在用戶的瀏覽器上啟用JavaScr

22、ipt。這對于大部分人來說可能是一個合理的假設,但是對于某些特定的用戶,他們的瀏覽器或自動化工具可能不支持JavaScript,也可能沒有啟用對JavaScript的支持。這種工具有robot、spider和為Internet和Intranet搜索引擎搜集信息的Web爬行榜。如果沒有功能方面的讓步,基于Ajax的mashup應用程序也可能會發(fā)現(xiàn)自己失去了部分用戶群,搜索引擎的吸引力也會降低。使用JavaScript來異步更新頁面中的內容還會產生用戶界面的問題。由于內容不再需要鏈接到瀏覽器地址欄中的URL上,用戶可能無法體驗到正常使用瀏覽器的BACK按鈕或書簽時的功能。另外,盡管Ajax可以通過

23、請求增量內容更新來減少延時,但不好的設計可能會對用戶體驗造成負面影響,例如當更新粒度非常小時,所更新的數量和負載會占據所有的可用資源。另外,在加載界面或更新內容時,我們還需要關心如何為用戶提供支持(例如,使用諸如進度條之類的可視化反饋技術)。與任何分布式交叉領域的應用程序一樣,mashup開發(fā)人員和內容提供者同樣也需要解決一些安全性問題。身份的概念可能會成為一個棘手的主題,傳統(tǒng)Web主要是為匿名訪問而構建的。單點登錄是一種令人滿意的特性,但在這方面存在多種彼此競爭的技術(從Microsoft Passport到Liberty Alliance),因此可能會導致產生雜亂的身份命名空間,我們必須對

24、之進行集成。內容供應商可能會在自己的API中采用身份驗證和授權模式(這需要安全身份或安全確認屬性的概念)來強制采用涉及付費訂閱或敏感數據的業(yè)務模型。敏感數據也可能要求一定的機密性(即加密),我們必須要清楚何時將它們與其他資源集成在一起,而不會帶來風險。身份對于審計和法規(guī)遵從性來說也非常重要。另外,由于數據集成是在服務器和客戶端同時發(fā)生的,因此從用戶到mashup服務進行的身份和證書委托也可能會成為一個需求。除了上一節(jié)介紹的技術挑戰(zhàn)之外,隨著mashup的進一步普及,也出現(xiàn)了(或即將出現(xiàn))一些社會問題。mashup開發(fā)人員需要面對的一個最嚴重的社會問題就是:在知識產權的保護和消費者的私密性與公用化以及信息的自由流動之間達成一種平衡。不知情的內容提供者(屏幕抓取的目標)、提供API來幫助數據檢索的內容提供者都可能需要確定其內容是否正在被他人以未獲得自己批準的方式使用。有關Web聚合和規(guī)則的介紹。mashup Web應用程序仍然處于萌芽階段,只是有一些開發(fā)愛好者在業(yè)余時間編寫mashup。這些開發(fā)人員可能并沒有意識到(或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論