專利名稱:用于提供客戶應用和Web服務之間的接口的方法和系統的制作方法
技術領域:
本發明涉及用于無線普及設備的web服務。
背景技術:
近年來,在基于web服務技術的應用的部署和集成方面已有很大提高。這些服務應該可以被在平臺上托管的多種客戶應用所訪問,所述平臺的范圍可以從高端服務器到普及設備(諸如移動電話和個人數字助理(PDA))。在超文本傳輸協議(HTML)和可擴展標記語言(XML)數據模型上部署web服務以便交換消息,從而使得服務語言和平臺獨立,并可被在不同平臺上托管的多種客戶應用所訪問。除了語言獨立性之外,XML數據模型還提供基于文檔的交互,其使得群集和復雜的數據結構能夠在單次交互中在服務和客戶應用之間交換。盡管服務供應商可以提供一般化服務響應以迎合多種不同的客戶應用的需要,但是從服務響應中提取與客戶應用有關的數據是客戶應用的責任。
例如,考慮一種提供給定zip和國家代碼附近的ATM地點的地址的web服務。對于所請求的zip代碼“134”,web服務可提供諸如圖1中示出的響應,包括關于接受AMX、VISAA、MASTCARD和DNERCARD卡(對應于American ExpressTM、VisaTM、MastercardTM和Diners ClubTM卡)的ATM的地點的信息。不過,進行請求的客戶應用可能僅對接受AMX卡的ATM地點感興趣,并因此可能僅需要所述響應的有限子集。圖2示出客戶應用感興趣的web服務響應的子集,即,僅和AMX卡有關的信息。
部署于使能網絡的普及設備上的應用可訪問web服務并與web服務交換數據,以隨需向終端用戶提供期望信息。不過,由于由這些一般化服務提供的過量數據的連網和解析,導致普及設備可能經歷過度的廣播時間和功耗。盡管已經開發了允許服務器應用在提供其響應時對設備性能敏感的若干技術,但是這些技術關注于轉換顯示單元從而使得響應與客戶設備的顯示性能相兼容(即,T.Kwok等人的“An efficient and systematic methodto generate xslt stylesheets for different wireless pervasive devices”,WWW,ACM Press,美國紐約,2004年,頁218-219;IBM WebSphereTranscoding Publisher Version 1.1Extending Web Applications to thePervasive World,IBM Redbook,2000年;A.Pashtan、S.Kollipara、M.Pearce的“Adaptive Content for Wireless Web Services”,IEEE InternetComputing,2003年,頁79-85)。
作為商用的、基于收費的web服務顯現,用戶將要求更加普及的應用訪問這些服務以得到信息或事務,而不會受到無線設備資源的拖累。從大型服務響應中進行信息提取可創建普及應用的性能開銷,例如下述的情形。
1.大型響應被傳送到具有有限網絡帶寬的普及設備,并從而消耗大量的設備廣播時間和電力。
2.響應XML可具有復雜和深度嵌套的方案,并從而由于無線設備的有限存儲器和處理器速度而使得相關信息提取緩慢。
3.web服務導致的最嚴重的開銷是,提供的響應對于普及設備來說太大,以至于由于普及設備的有限存儲器而導致無法處理。這樣的服務將首先消耗廣播時間,并蒙受服務費,而最終將由于存儲器錯誤而導致應用出現故障。
存在對于使得客戶設備的資源能夠在與web服務交互時進行高效利用的方法的持續性需要。
發明內容
提供了對服務的核心事務邏輯透明并在其外部的對web服務的擴展,以使得服務能夠高效地與普及應用相交互,并最優地使用普及設備的有限資源。擴展web服務允許普及應用將某些計算任務“移動”(或卸下)到服務,以減小響應大小,并因此減小廣播時間和功耗,并允許普及應用僅服務于來自服務的與應用有關的數據。
根據本發明的一方面,提供了一種用于提供客戶應用和web服務之間的接口的計算機實現的方法。所述方法包括以下步驟從所述客戶應用接收第一請求。所述第一請求關聯于指定用于對客戶應用進行響應的格式的響應方案。根據所述第一請求發送服務請求到所述web服務。響應于所述服務請求從所述web服務獲得輸出,并且其中所述輸出采用關聯于所述web服務的預定義的輸出格式。轉換所述輸出以遵循所述響應方案。將所述已轉換的輸出提供給所述客戶應用。
根據本發明的其它方面,提供了一種用于提供客戶應用和web服務之間的接口的計算機系統、裝置和計算機程序產品。
現在將參考附圖描述本發明的一個或多個實施例,在附圖中圖1是典型的web服務響應的示例;圖2是可與無線設備有關的圖1的響應的子集;圖3是普及設備能夠從一個或多個服務器訪問web服務的系統的示意性框圖;圖4是示出了客戶應用在訪問web服務時執行的步驟的流程圖;圖5是示出了客戶應用在獲得圖2的響應時執行的步驟的示例的流程圖;圖6是示出了客戶應用與擴展web服務的交互的流程圖;圖7是可被用于過濾和處理在圖6的擴展web服務中的web服務響應的可擴展樣式表語言(XSL)的示范;圖8是已轉換的服務響應的示例;以及圖9是可在圖3的系統中使用的通用計算機系統的示例。
具體實施例方式
在以下描述的安排中,擴展web服務允許在普及設備上運行的應用將某些計算任務卸下給web服務。所述卸下可減小從web服務接收的響應的大小,從而減小普及設備的廣播時間和功耗。擴展web服務的可用性允許在普及設備上托管的每個應用具有相關聯的優勢分析策略,以在基礎和擴展web服務之間進行選擇。
web服務環境圖3示出了web服務系統1的示意性框圖。出于幫助理解的目的,系統1被簡化。提供了第一普及無線設備(WD1)10,諸如PDA或蜂窩式移動電話。還示出了第二無線設備(WD2)30。當然,在系統1內可以存在許多這樣的普及無線設備。設備WD1 10和WD2 30與蜂窩站(cell sight)(CS)40進行無線通信,在它們之間傳遞射頻信息。CS 40與網絡50通信。無線普及設備10、30托管連接于運行在遠程服務器(諸如服務器70、80、90、100)上的web服務的應用,用于多種使用,諸如信息檢索和數據處理。使用web服務的這些應用的典型示例是提供給定zip代碼的ATM、醫院或加油站的地點/地址。
普及設備的示例是雙向尋呼機、個人數字助理(PDA)、蜂窩式電話、用于永久安裝在車輛中的主設備和智能設備的智能儀器。典型地,與比較難于移動的計算設備(諸如臺式計算機)相比,普及設備具有有限的處理器速度、存儲器容量和通信帶寬。頻繁存在對于使便攜式普及設備的相對短暫的電池壽命最大化的需要,所述短暫的電池壽命限制了向普及設備增加存儲器容量或處理器能力。
與未被設計成到處攜帶的計算設備相比,普及設備10、30典型地具有有限的處理能力和存儲器。一般而言,普及設備具有內置電源,諸如電池。因此,功耗是設計用于普及設備10、30的應用時的顧慮,因為不想讓可用電力太快被耗盡。普及設備10、30的功耗在待機操作和廣播時間情況下不同。廣播時間是在此期間設備10、30被用于數據交換和會話的時間。待機時間是普及設備10、30準備接收或傳送數據但實際上未在通話中使用的時間。
設備WD1 10和WD2 30充當客戶-服務器上下文中的“客戶”。由組合服務器(CS1)60構成服務器,其將所請求的web服務提供給客戶,并且也與網絡50通信。CS1 60提供中間功能,其連接于多個專用web服務服務器WS1 70、WS2 80和WS3 90。另一專用web服務服務器(WS4)100也與網絡50通信。
圖9是適于執行用于提供web服務的軟件的類型的計算機系統300的示意性表示。計算機軟件在安裝于計算機系統300上的適當的操作系統中執行,并可被認為包括用于實現特定步驟的各種軟件代碼工具。計算機系統300可被用作服務器60-100中任一個。通過以下描述的修改,計算機系統300的結構還可被用在普及設備10、30中。
計算機系統300的組件包括計算機320、鍵盤310和鼠標315、以及顯示器390。計算機320包括處理器340、存儲器350、輸入/輸出(I/O)接口360、365、視頻接口345以及存儲設備355。
處理器340是執行操作系統和在操作系統中執行的計算機軟件的中央處理單元(CPU)。存儲器350可包括隨機存取存儲器(RAM)和只讀存儲器(ROM),并在處理器340的指導下被使用。
視頻接口345連接于顯示器390,并提供用于在顯示器390上顯示的信號。例如從鍵盤310和鼠標315提供了操作計算機320的用戶輸入。也可使用其它類型的輸入,諸如麥克風。也可使用一個或多個揚聲器(未示出)將信號有聲地輸出。存儲設備355可包括盤驅動器或任何其它適當的存儲媒體。
計算機320的每個組件都連接于包括數據、地址和控制總線的內部總線330,以允許計算機320的組件經由總線330相互通信。
計算機系統300可使用到網絡(在圖9中示為因特網380)的通信信道385經由輸入/輸出(I/O)接口365連接于一個或多個類似計算機。
計算機軟件可被記錄在便攜式存儲媒體上,在此情形中由計算機系統300從存儲設備355訪問計算機軟件程序。可替換地,計算機軟件可由計算機320直接從因特網380訪問。在任一情形中,用戶可使用例如鍵盤310和鼠標315與計算機系統300交互,以操作在計算機320上執行的經編程的計算機軟件。
其它配置或類型的計算機系統可以同樣很好地被用于執行協助實現此處描述的技術的計算機軟件。此外,定制設備和專用硬件(諸如數字信號處理器)可被用于所述技術的實現。
手持普及設備10、30可具有與圖9所示類似的計算結構。顯示器390和鍵盤在普及設備10內部構成,普及設備10典型地沒有鼠標315。設備10中的I/O接口365可以是用于經由蜂窩式網絡發送和接收信號的收發器,而設備10還包括麥克風和揚聲器來處理有聲輸入和輸出。
在無線普及設備10、30上托管的應用通過由普及設備的操作系統和軟件和網絡服務供應商提供的HTTP和/或HTTPS協議而連接到web服務。一旦設備10、30被連接于托管web服務的服務器,應用就可以通過引用服務名稱并將所需的輸入參數傳遞到web服務而調用web服務。典型地,web服務提供XML數據格式來指定請求和響應。因此,普及應用傳遞用XML編碼的、按照web服務指定的語法的請求參數。一旦接收到參數,web服務就執行請求并準備預定義的XML語法的形式的響應。響應經由網絡50被傳送回應用。web服務可以被實現來同步或異步執行請求。如果web服務是同步的,則應用進行“等待”,直到web服務執行請求并準備響應之時。一旦接收到響應,應用就解析XML數據并提取所需信息,以便進一步處理數據或者將結果呈現給終端用戶。圖4示出基礎的流序列,而圖5示出應用和web服務之間的示例性應用和web服務序列圖。
圖4示出了在普及設備10上運行的客戶應用401在訪問web服務402時執行的基礎(或未擴展)方法400。web服務402具有明確定義的請求和響應方案,以允許任何外部第三方應用透明地與web服務402交互。由于詳細公布了響應方案,對應用來說就可以容易地進行編程來解析和提取來自響應方案的信息。如果所開發的服務是迎合跨廠商的不同應用的需要,則服務響應可能需要數據過濾,以在客戶端10提取相關信息。這可創建普及應用的性能開銷。
在步驟404,客戶應用401編寫web服務402所需格式的請求。在步驟406,應用401調用web服務402,并接收由web服務方案指定的格式的響應。接著,在步驟408,客戶應用從接收自web服務402的響應XML中提取相關數據。在步驟410,客戶應用401處理所提取的數據,并準備用于對普及設備10的用戶顯示的響應。
圖5示出了出于說明性目的使用ATM地點示例的請求web服務的基礎(或未擴展)方法500的流程圖。在服務器上運行的web服務是“ListATMWS”502。在初始步驟506,在普及設備10上運行的客戶應用506向web服務發送對于指定位置附近的ATM的列表的請求。所述請求具有格式為“listATMNearZip(String)String”。接下來,在步驟508,執行服務器上的軟件,以提供例如可以具有圖1所示形式的響應。由普及設備10接收響應,接著普及設備10必須執行進一步的處理510、512、514來提取信息中想要的關于AMX卡的子集。步驟510“extractATMForAMX()”提取關于接受AMX卡的ATM的信息。接著步驟512“sortATMByTxFee”根據相應的交易費對ATM地點排序。最后,步驟514“selectFirstThreeATM()”從列表頭部選擇三個ATM用于在普及設備10上顯示。得到的輸出可以是圖2所示的輸出。
擴展web服務典型地,盡管部署了web服務,但是服務開發者明確地定義和公布了服務的請求和響應規范(方案),以允許任何外部第三方應用透明地與web服務交互。目錄服務器被用于注冊請求和響應規范。由于詳細公布了響應方案,對應用來說就可以容易地進行編程來解析和提取來自響應方案的信息。如果所開發的服務是迎合跨廠商的不同應用的需要,則服務響應可能需要數據過濾,以在客戶端10提取相關信息。這可創建普及應用的性能開銷。在圖4和5中示出并在上面描述了使用這種方案在應用和服務之間的交互。
為了使普及設備10、30受益,web服務的服務接口以下述方式被擴展,所述方式允許在普及設備上運行的應用動態指定響應XML的方案(語法)。擴展接口將響應方案作為除了“基礎”服務接口所需的輸入參數之外所增加的輸入。該擴展接口也被部署為與原始服務(又名基礎服務)進行耦合的web服務。這允許在普及設備上運行的應用通過獲得被轉換為不但易于解析而且與應用有關的方案的響應,而將它們“數據解析”開銷的一部分“卸下”給服務供應商,由此在普及設備10、30上節省廣播時間和響應處理時間。
擴展接口還可進一步通過允許應用將它們“數據處理”任務的一部分卸下給服務,而協助提高性能。這允許應用將用于響應XML的某些處理后指令傳遞給服務供應商。這些指令將在普及設備設備自身上被另外處理。處理后指令還允許過濾響應,以使得響應與應用更加相關。當前的XSL(//www.w3.org/Style/xsl)、XPath(//www.w3.org/TR/xpath)和XQuery(//www.w3.org/TR/xquery)技術提供轉換方案中的某些估計和計算功能。所述功能允許應用向web服務指定某些數據處理指令。
在圖6的第一情況600中示出了此響應轉換。客戶應用604在普及設備10上運行,而web服務“ListATMWS”502連同擴展接口“ExtendedListATMWS”606一起在服務器60-100中的一個或多個上運行。在初始步驟,客戶應用604發送對于ATM信息的請求連同想要的XML方案。請求格式是“listATMNearZipWithXSL(String,String)String”,而請求被發送到擴展服務接口606。隨后,在步驟610,擴展接口606使用web服務所期待的方案(這里是“listATMNearZip(String)String”)將請求610發送到web服務。
在步驟508,web服務提取所請求的信息(例如圖1中所見的結果),并將結果返回擴展接口606。在步驟612,擴展接口606根據指定XSL方案“transformResponse(string response,String XSL)String”來轉換響應。步驟612的輸出被發送到普及設備10,普及設備10執行步驟614“extractATMAndDisplay()”,其提取ATM信息并將它對用戶顯示。因此,盡管對用戶的最終輸出相同,但是方法600比方法500需要普及設備10中的更少的存儲器使用和數據處理。
如果服務請求參數方案很復雜,并由于XML數據模型的層級特性導致對于普及應用來說對其進行編寫要集中資源,則web服務接口還可被擴展以有益于普及應用。數據轉換的概念可被應用于允許應用發送下述格式(方案)的請求XML參數,所述格式(方案)對于普及應用來說易于構建和編寫,即使簡單方案可能不遵循服務請求參數方案。擴展服務接口允許應用發送與請求XML參數相關聯的XSL(可擴展樣式表語言),其可以將對應用特定的請求XML翻譯成與服務供應商節點上的web服務規范相兼容的XML。這允許應用將“數據編寫”開銷卸下,以使與服務交互所需的復雜請求參數公式化。
圖6中示出第二情況602,其中擴展服務接口606轉換請求和響應二者。在第一步驟620,在普及設備10上運行的客戶應用604發送服務請求到擴展服務接口606“ExtendedListATMWS”。該請求具有以下格式“listATMNearZipWithReqREsXSL(String,String,String)String”。
在步驟622,擴展服務接口606轉換請求,以匹配web服務502“ListATMWS”所需的方案。步驟622可具有格式“transformRequest(String request,String reqXSL)String”。所轉換的請求被發送到web服務502,并且在步驟508,web服務502發出所請求的信息,例如圖1中示出的響應。接下來,在步驟626(“transformResponse(String response,String XSL)String”),擴展服務接口606將響應轉換為客戶應用604所需的形式。所轉換的響應帶有作為屬性的已處理的XML單元,從而使得普及應用604可以容易和快速地解析響應。最后,在步驟628,客戶應用604提取和顯示ATM信息。
所述方法允許應用604與web服務502高效地交換對于應用604來說高效的格式的請求和響應XML數據。XSL可替換地也可以作為請求頭部被傳遞到web服務。
擴展web服務606提供基礎web服務502之上的包裝,并可用于接受對基礎web服務502有意義的請求。擴展web服務606的接口與基礎服務502的接口相同,但具有額外的兩個XSL參數,以便
a.轉換基礎web服務502的響應;以及b.使用客戶應用604提供的請求參數來編寫對基礎web服務502的請求。
擴展web服務606是正面,應用604與其連接以調用基礎web服務502。應用604與擴展web服務606之間的交互類似于與基礎web服務502的交互,如上所述。被傳遞給擴展服務606的額外的XSL參數被用于轉換和編寫數據,從而將數據解析、數據處理、數據編寫任務轉移給服務器。
在上述情況中,擴展web服務606在運行時從客戶應用604接收XSL。可替換地,擴展web服務606使用的方案可從本地或遠程數據庫中檢索。例如,在已標識出哪個客戶應用604或普及設備10正在尋求使用web服務502時,擴展web服務606可從數據庫中檢索適當的XSL。在另外的可替換情形中,方案可被擴展web服務606基于普及設備10的運行時環境特性和應用需求而動態地生成。
在用來示出所提出的服務擴展的優點的示例中,web服務502提供給定zip和國家代碼附近的ATM的列表。不同應用可消費響應的不同部分,以將某些事務或信息值提供給終端用戶。由AMX公司提供的一個這樣的應用可使用該服務來向卡持有者列出給定zip和國家代碼附近的接受AMX卡的ATM。所述應用可提供下述方案,其允許服務供應商過濾掉不接受AMX卡的ATM,并進一步將響應轉換成較少層級并易于由應用所解析和消費的語法。如果接受AMX卡的ATM收取交易費,則AMX應用過濾結果,以按照交易費的升序示出三個ATM地點。這需要在設備端進行數據排序。不過,通過使用現有的XSL和XPath標準,應用可以將這些數據處理任務卸下給擴展服務606。在此情形中,例如,XSL可被指定為首先選擇接受AMX卡的ATM(使用xslfor-each element of XSL),并接著按照交易費的升序對列表排序(使用xslsort element ofXSL),并接著從排序后的列表中構建具有前三個ATM單元的響應(使用xslif elementand position method of XSL)。因此XSL允許將應用邏輯的一部分卸下給服務,以提高服務響應時間和資源使用。此方法還消除了之前描述的服務響應的大小太大以致普及設備10、30由于普及設備10、30的有限存儲器容量導致的無法接收或解析響應的開銷。在圖7中示出了可將所述處理卸下的XSL,而在圖8中示出了由擴展服務使用XSL產生的響應。新的響應被轉換成帶有作為屬性的已處理的XML單元,從而使得普及應用可以容易和快速地解析響應。
將數據過濾和處理任務從應用604卸下給服務606所需的支持需要來自服務供應商的額外計算和資源。在提供收費服務的商業設置中,有益于客戶的擴展部署可能要求基礎服務之外的額外費用。使用擴展服務的額外成本將由使用該服務的終端用戶負擔。擁有具有充足資源的設備的終端用戶可能沒看到足以支付額外費用來使用擴展服務的優勢,直到當他們的設備缺少可用資源的時候。這導致下述需求,即允許普及應用執行優勢分析來動態地在基礎服務502和擴展服務606之間進行選擇,以優化與服務相交互所花費的資源使用和量。使用擴展服務606可減少用戶從web服務獲得響應所需的時間。所減少的處理時間可降低普及設備10在獲得想要的信息時消耗的電力。
例如,擴展服務606的開發可被實現為IBMTMWebSphere StudioApplication Developer(WSAD)IDE(IBM、DB2和WebSphere是國際商業機器公司的商標)的插件。該插件添加了新的命令以擴展web服務502,并使用XSLT庫來生成用于擴展服務606的XML轉換所需的代碼。該命令可提出創建兩個擴展服務。第一擴展服務允許應用604傳遞用于響應轉換的響應XSL,而第二擴展服務允許應用604傳遞分別用于轉換請求和響應的請求和響應XSL。
權利要求
1.一種用于提供客戶應用和web服務之間的接口的計算機實現的方法,所述方法包括以下步驟從所述客戶應用接收第一請求,所述第一請求關聯于指定用于對所述客戶應用進行響應的格式的響應方案;根據所述第一請求發送服務請求到所述web服務;響應于所述服務請求從所述web服務獲得輸出,其中所述輸出采用關聯于所述web服務的預定義的輸出格式;轉換所述輸出以遵循所述響應方案;以及將所述已轉換的輸出提供給所述客戶應用。
2.根據權利要求1所述的方法,其中預定義的輸入格式與所述web服務相關聯,所述方法還包括從所述第一請求中生成所述服務請求的步驟,所述生成的服務請求遵循所述預定義的輸入格式。
3.根據權利要求1所述的方法,其中所述第一請求指定一個或多個處理任務,并且所述方法還包括在所述提供步驟之前對所述輸出執行所述處理任務的步驟。
4.根據權利要求3所述的方法,其中所述執行步驟根據在所述第一請求中指定的至少一個標準來過濾從所述web服務接收的數據。
5.根據權利要求3所述的方法,其中所述執行步驟減小被提供給所述客戶應用的所述輸出的大小。
6.根據權利要求1所述的方法,其中所述響應方案由所述客戶應用在運行時提供。
7.根據權利要求1所述的方法,還包括從數據庫獲得所述響應方案的步驟。
8.根據權利要求1所述的方法,還包括根據所述客戶應用在其上運行的普及設備的運行時特性而生成所述響應方案的步驟。
9.一種計算機系統,包括用于執行軟件指令的處理器;用于存儲軟件指令的存儲器;耦合于所述存儲器和所述處理器的系統總線;以及記錄軟件指令的存儲媒體,所述軟件指令可被加載到所述存儲器用于實現以下步驟從所述客戶應用接收第一請求,所述第一請求關聯于指定用于對所述客戶應用進行響應的格式的響應方案;根據所述第一請求發送服務請求到所述web服務;響應于所述服務請求從所述web服務獲得輸出,其中所述輸出采用關聯于所述web服務的預定義的輸出格式;轉換所述輸出以遵循所述響應方案;以及將所述已轉換的輸出提供給所述客戶應用。
10.一種用于提供客戶應用和web服務之間的接口的裝置,所述裝置包括用于從所述客戶應用接收第一請求的裝置,所述第一請求關聯于指定用于對所述客戶應用進行響應的格式的響應方案;用于根據所述第一請求發送服務請求到所述web服務的裝置;用于響應于所述服務請求從所述web服務獲得輸出的裝置,其中所述輸出采用關聯于所述web服務的預定義的輸出格式;用于轉換所述輸出以遵循所述響應方案的裝置;以及用于將所述已轉換的輸出提供給所述客戶應用的裝置。
全文摘要
公開了一種用于提供客戶應用和web服務之間的接口的計算機實現的方法、裝置和計算機程序產品。從所述客戶應用接收第一請求。所述第一請求關聯于指定用于對所述客戶應用進行響應的格式的響應方案。根據所述第一請求發送服務請求到所述web服務。響應于所述服務請求從所述web服務獲得輸出。所述輸出采用關聯于所述web服務的預定義的輸出格式。轉換所述輸出以遵循所述響應方案。將所述已轉換的輸出提供給所述客戶應用。
文檔編號H04L29/06GK101039320SQ200610147068
公開日2007年9月19日 申請日期2006年11月14日 優先權日2005年12月29日
發明者V·S·巴特拉, N·巴特拉 申請人:國際商業機器公司