專(zhuān)利名稱(chēng):在不同于服務(wù)所期望的協(xié)議的其它協(xié)議中發(fā)起的服務(wù)請(qǐng)求的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及向用戶(hù)提供所請(qǐng)求的信息,尤其涉及利用一種與提供信息的服務(wù)所期望的協(xié)議不同的協(xié)議向用戶(hù)提供信息。
背景技術(shù):
隨著互聯(lián)網(wǎng)的逐漸普及,越來(lái)越多的人利用他們的移動(dòng)設(shè)備訪問(wèn)互聯(lián)網(wǎng)。人們通過(guò)互聯(lián)網(wǎng)訪問(wèn)的許多應(yīng)用都基于會(huì)話(huà)。會(huì)話(huà)允許多個(gè)請(qǐng)求和多個(gè)響應(yīng)來(lái)完成一項(xiàng)任務(wù)。
這就需要許多訪問(wèn)互聯(lián)網(wǎng)的移動(dòng)設(shè)備具有一個(gè)與基于Web應(yīng)用的會(huì)話(huà)進(jìn)行通信的Web瀏覽器。Web瀏覽器提供菜單和超鏈接,使得用戶(hù)可以通過(guò)Web應(yīng)用(在下文稱(chēng)作“用戶(hù)導(dǎo)航能力”)進(jìn)行導(dǎo)航。然而,許多人具有沒(méi)有Web瀏覽器的移動(dòng)設(shè)備。相反,這些移動(dòng)設(shè)備通常使用諸如電子郵件和短消息服務(wù)(SMS)這樣的異步協(xié)議。異步協(xié)議只允許給定任務(wù)的單一請(qǐng)求和對(duì)那個(gè)請(qǐng)求的單一響應(yīng)。
因此,可明顯地看到,有必要向使用大量異步協(xié)議的移動(dòng)設(shè)備提供諸如會(huì)話(huà)和用戶(hù)導(dǎo)航能力等Web能力。
發(fā)明內(nèi)容
本發(fā)明提供了用與服務(wù)所期望的協(xié)議不同的協(xié)議發(fā)起服務(wù)請(qǐng)求的技術(shù)。例如,許多人想要使用他們的移動(dòng)設(shè)備與服務(wù)交互,這要求在一次會(huì)話(huà)中擁有多個(gè)相關(guān)消息的能力。然而,他們的移動(dòng)設(shè)備沒(méi)有支持與這種服務(wù)交互的協(xié)議。本文中提供的一項(xiàng)技術(shù)是把一個(gè)中間件(intermediary)插入移動(dòng)設(shè)備和服務(wù)之間來(lái)代表移動(dòng)設(shè)備提供會(huì)話(huà)能力。
本發(fā)明參照附圖以舉例的方式而不是以限制的方式加以描述,在附圖中,同樣的參考編號(hào)指示相同的元件,其中圖1A是用于以與服務(wù)所期望的協(xié)議不同的協(xié)議發(fā)起服務(wù)請(qǐng)求的系統(tǒng)框圖;圖1B是顯示消息的框圖,其中,目標(biāo)地址對(duì)應(yīng)于一個(gè)站點(diǎn),消息內(nèi)容用于定位站點(diǎn)內(nèi)的一項(xiàng)服務(wù);圖1C是顯示消息的框圖,其中,目標(biāo)地址對(duì)應(yīng)于一特定服務(wù);圖1D是顯示消息的框圖,其中,目標(biāo)地址對(duì)應(yīng)于一特定應(yīng)用;
圖2是闡明客戶(hù)設(shè)備、中間件、和服務(wù)之間的消息流的框圖;以及圖3是闡明一計(jì)算機(jī)系統(tǒng)的框圖,在該計(jì)算機(jī)系統(tǒng)上可以實(shí)現(xiàn)根據(jù)本發(fā)明的實(shí)施例。
具體實(shí)施例方式
本發(fā)明描述了一種用于以與服務(wù)所期望的協(xié)議不同的協(xié)議發(fā)起服務(wù)請(qǐng)求的方法,出于解釋的目的,本發(fā)明提出了許多具體的細(xì)節(jié),以提供對(duì)本發(fā)明的徹底理解。然而,很顯然,沒(méi)有這些具體細(xì)節(jié)本發(fā)明仍可以實(shí)施。在其它例子中,為了避免對(duì)本發(fā)明造成不必要的模糊,已知的結(jié)構(gòu)和設(shè)備以框圖的形式顯示。
系統(tǒng)概述圖1A是用于以與服務(wù)所期望的協(xié)議不同的協(xié)議發(fā)起服務(wù)請(qǐng)求的系統(tǒng)框圖??蛻?hù)設(shè)備100用于利用消息101請(qǐng)求服務(wù)??蛻?hù)設(shè)備100使用諸如電子郵件或SMS等異步協(xié)議傳送消息101。消息101包含服務(wù)請(qǐng)求和定位服務(wù)(151、152、或153)的信息。在一個(gè)實(shí)例中,消息101中的目標(biāo)地址用于定位一特定服務(wù)。在另一個(gè)實(shí)例中,消息101中的目標(biāo)地址用于定位站點(diǎn)150,消息101的部分內(nèi)容用于定位站點(diǎn)150內(nèi)的特定服務(wù)151。
傳遞處理器(handler)120封裝有一個(gè)或多個(gè)異步協(xié)議處理器,例如電子郵件協(xié)議處理器121、SMS協(xié)議處理器122、和其它的協(xié)議處理器123。每一協(xié)議處理器(121、122、123)處理一特定類(lèi)型的異步協(xié)議。因此,傳遞處理器120能夠與客戶(hù)設(shè)備100使用的任何異步協(xié)議通信。協(xié)議處理器(121、122、或123)將消息101的內(nèi)容傳送給中間件(intermediary)140。根據(jù)一個(gè)實(shí)施例,消息101的內(nèi)容為文本格式(以下稱(chēng)作“文本格式請(qǐng)求”)。
中間件140接收來(lái)自協(xié)議處理器(121、122、或123)其中之一的消息101的內(nèi)容,把消息101的內(nèi)容轉(zhuǎn)換成服務(wù)(151、152、或153)可以理解的格式,把請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)(151、152、或153),保持會(huì)話(huà)環(huán)境,這些將更加詳細(xì)地加以描述。例如,消息101的內(nèi)容用于(1)填充web頁(yè)面的字段(域)或(2)選擇一超鏈接,這些將更加詳細(xì)地加以描述。根據(jù)一個(gè)實(shí)施例,填過(guò)的web頁(yè)面是Oracle的移動(dòng)XMLTM格式的。
服務(wù)協(xié)議處理器(handler)180提供諸如超文本傳送協(xié)議(HTTP)等web協(xié)議。根據(jù)一個(gè)實(shí)施例,服務(wù)協(xié)議處理器180由互聯(lián)網(wǎng)服務(wù)提供商(ISP)來(lái)提供。根據(jù)另一實(shí)施例,服務(wù)協(xié)議處理器180是用于登記服務(wù)(151、152、153)的Java API。服務(wù)(151、152、或153)提供響應(yīng)消息101的信息。根據(jù)一實(shí)施例,對(duì)消息101的響應(yīng)是一個(gè)web頁(yè)面。例如,對(duì)消息101的響應(yīng)可以是Oracle的移動(dòng)XMLTM格式的。服務(wù)151在站點(diǎn)150上。
應(yīng)用映射160包含將有效的目標(biāo)地址映射到應(yīng)用(130、140)的地址-到-應(yīng)用映射。應(yīng)用(130或140)通過(guò)使用傳遞處理器120登記目標(biāo)地址來(lái)監(jiān)聽(tīng)特定的目標(biāo)地址。登記目標(biāo)地址創(chuàng)建應(yīng)用映射160中的映射入口(entry)。例如,當(dāng)中間件140登記特定目標(biāo)地址時(shí),在應(yīng)用映射160中創(chuàng)建把特定的目標(biāo)地址映射到中間件140的入口。
根據(jù)一實(shí)施例,服務(wù)映射170把消息101的目標(biāo)地址映射到一特定服務(wù)。根據(jù)另一實(shí)施例,服務(wù)映射170把消息101的目標(biāo)地址和消息101的部分內(nèi)容映射到站點(diǎn)150內(nèi)的特定服務(wù)151。這些實(shí)施例在下文中更加詳細(xì)地加以描述。
操作范例一個(gè)人在客戶(hù)設(shè)備100上輸入電子郵件消息101。消息101包含指定服務(wù)152的目標(biāo)地址。消息101由傳遞處理器120截取。因?yàn)橄?01是電子郵件,電子郵件協(xié)議處理器121接收來(lái)自客戶(hù)100的消息101,使用消息101的目標(biāo)地址來(lái)定位應(yīng)用映射160中的入口,使用入口來(lái)確定把消息101轉(zhuǎn)發(fā)到哪個(gè)應(yīng)用(130或140)。假定入口映射到中間件140,則電子郵件協(xié)議處理器121把消息101轉(zhuǎn)發(fā)到中間件140。中間件140使用消息101的目標(biāo)地址或消息101的目標(biāo)地址和消息101的部分內(nèi)容定位服務(wù)映射170中的入口。服務(wù)映射170中的入口用于確定消息101的內(nèi)容轉(zhuǎn)發(fā)到哪個(gè)服務(wù)(151、152、或153)。假定服務(wù)152期望填寫(xiě)過(guò)的web頁(yè)面形式的請(qǐng)求,則中間件140使用消息101的內(nèi)容填寫(xiě)該web頁(yè)面。假定服務(wù)152期望接收使用HTTP協(xié)議的請(qǐng)求,則服務(wù)協(xié)議處理器140截取該填寫(xiě)過(guò)的web頁(yè)面,并將之使用HTTP發(fā)送給服務(wù)152。然后服務(wù)152發(fā)送響應(yīng),過(guò)程相反。
尋址考慮(ADDRES SING CONSIDERATIONS)圖1B是顯示消息的框圖,其中,目標(biāo)地址對(duì)應(yīng)于一站點(diǎn),消息內(nèi)容用于在站點(diǎn)內(nèi)定位服務(wù)。消息101指定一目標(biāo)地址102和消息體。目標(biāo)地址102是int@y.com,其中包括站點(diǎn)地址106,y.com。例如,站點(diǎn)地址106,y.com對(duì)應(yīng)于站點(diǎn),而不是對(duì)應(yīng)于特定服務(wù)。
消息體包含指令103。根據(jù)一實(shí)施例,指令103有兩個(gè)部分縮寫(xiě)名(short name)104和提示105。指令103“ST ORCL”指定由指定站點(diǎn)提供的特定服務(wù),并提供與該服務(wù)相關(guān)的參數(shù)值。特別地,“ST”指明股票報(bào)價(jià)服務(wù),“ORCL”指明股票是Oracle的。
中間件140是用來(lái)監(jiān)聽(tīng)目標(biāo)地址102int@y.com的應(yīng)用。站點(diǎn)150位于站點(diǎn)地址106y.com。服務(wù)151是站點(diǎn)150中位于地址y.com/finance/stock的股票服務(wù)。由于目標(biāo)地址102包括站點(diǎn)地址106y.com,所以縮寫(xiě)名104“ST”用于指明站點(diǎn)150內(nèi)的服務(wù)151。中間件140把提示105“ORCL”傳送給服務(wù)151。
如果站點(diǎn)尋址與SMS協(xié)議一起使用,則目標(biāo)地址是一個(gè)類(lèi)似于1234567的電話(huà)號(hào)碼。因此,電話(huà)號(hào)碼1234567可以指示站點(diǎn)150。短消息104“ST”用于指示站點(diǎn)150內(nèi)的服務(wù)151。
圖1C是顯示消息的框圖,其中目標(biāo)地址對(duì)應(yīng)于一特定服務(wù)。目標(biāo)地址102是stock@y.com。服務(wù)-級(jí)別地址107也是stock@y.com。消息體包含指令103“ORCL”,用來(lái)獲得Oracle股票的報(bào)價(jià)。根據(jù)一實(shí)施例,指令103有一個(gè)部分-提示105。中間件140監(jiān)聽(tīng)目標(biāo)地址102stock@y.com。服務(wù)151是位于stock.y.com的股票報(bào)價(jià)服務(wù)。中間件140把提示105“ORCL”傳送給服務(wù)151。
圖1D是顯示消息的框圖,其中目標(biāo)地址對(duì)應(yīng)于一特定應(yīng)用。目標(biāo)地址102是int@int.com。目標(biāo)地址102包括一應(yīng)用地址108int.com。
中間件140監(jiān)聽(tīng)目標(biāo)地址102int@int.com。中間件140位于應(yīng)用地址108int.com處。中間件140使用縮寫(xiě)名104“ST”來(lái)確定服務(wù)151的服務(wù)地址。在這個(gè)例子中,服務(wù)151由中間件使用站點(diǎn)尋址y.com/finance/stock、或服務(wù)-級(jí)別尋址stock.y.com來(lái)聯(lián)系。中間件140把提示105“ORCL”傳送給服務(wù)151。雖然這些例子描述了把提示105傳送給服務(wù)151,但是除了提示105或代替提示105,也可以傳送其它信息。
用戶(hù)導(dǎo)航能力和會(huì)話(huà)圖2是闡明客戶(hù)設(shè)備、中間件、和服務(wù)之間的消息流的框圖。根據(jù)一實(shí)施例,人們可以請(qǐng)求來(lái)自能返回web頁(yè)面的服務(wù)的信息。Web頁(yè)面可以包括菜單項(xiàng)和/或超鏈接(在下文稱(chēng)作“web格式的響應(yīng)”)。根據(jù)一實(shí)施例,菜單項(xiàng)和超鏈接被轉(zhuǎn)換成能在移動(dòng)設(shè)備上顯示的文本格式。這可通過(guò)把菜單項(xiàng)和超鏈接轉(zhuǎn)換成前面有一用戶(hù)可選擇的參考數(shù)字的描述性文本來(lái)完成。
在描述性文本前面的參考數(shù)字以菜單樹(shù)的形式連接菜單。當(dāng)用戶(hù)通過(guò)選擇參考數(shù)字穿越菜單樹(shù)時(shí),中間件140通過(guò)保存選定的參考數(shù)字保持會(huì)話(huà)環(huán)境。所以,中間件140知道用戶(hù)目前位于菜單樹(shù)中的什么位置。根據(jù)一實(shí)施例,會(huì)話(huà)環(huán)境作為狀態(tài)機(jī)(state machine)的一部分而保持。
根據(jù)一實(shí)施例,會(huì)話(huà)環(huán)境由中間件140來(lái)儲(chǔ)存和保持。當(dāng)中間件140接收到來(lái)自客戶(hù)設(shè)備100的請(qǐng)求時(shí),中間件140檢查與該請(qǐng)求關(guān)聯(lián)的設(shè)備ID。如果那個(gè)設(shè)備ID的會(huì)話(huà)環(huán)境還未存在,則中間件140創(chuàng)建會(huì)話(huà)環(huán)境。根據(jù)一實(shí)施例,會(huì)話(huà)環(huán)境包括客戶(hù)設(shè)備100的設(shè)備ID、用戶(hù)選擇的參考數(shù)字、以及web格式的響應(yīng)。當(dāng)會(huì)話(huà)結(jié)束時(shí),會(huì)話(huà)環(huán)境被釋放。
根據(jù)一實(shí)施例,當(dāng)定時(shí)器終止時(shí)會(huì)話(huà)終止。根據(jù)另一個(gè)實(shí)施例,會(huì)話(huà)環(huán)境用于確定何時(shí)終止會(huì)話(huà)。例如,當(dāng)會(huì)話(huà)環(huán)境顯示用戶(hù)已經(jīng)退出該服務(wù)時(shí),會(huì)話(huà)終止。根據(jù)第三實(shí)施例,會(huì)話(huà)環(huán)境和定時(shí)器都用于根據(jù)哪種情況最先發(fā)生確定終止會(huì)話(huà)的時(shí)間。例如,在定時(shí)器結(jié)束或用戶(hù)退出菜單樹(shù)的最早時(shí)刻,會(huì)話(huà)結(jié)束。
下面菜單204和菜單208闡明一菜單樹(shù),在菜單樹(shù)中選擇菜單204上的參考數(shù)字2導(dǎo)致菜單208顯示給用戶(hù)。例如,用戶(hù)可以通過(guò)輸入目標(biāo)地址102info@oraclemobile.com和指令103“ypeating_establishments home”(在下文稱(chēng)作“文本格式的初始請(qǐng)求201”)請(qǐng)求離用戶(hù)家最近的飲食店的地址??s寫(xiě)名“yp”代表黃頁(yè),“home”參數(shù)顯示飲食店應(yīng)該靠近用戶(hù)的家。
用戶(hù)的文本格式的初始請(qǐng)求201被傳送到服務(wù)(151、152、或153)。圖1B、1C、和1D也是文本格式的初始請(qǐng)求201的例子。中間件140截取文本格式的初始請(qǐng)求201,利用它的內(nèi)容創(chuàng)建web格式的初始請(qǐng)求202。服務(wù)地址可基于在此已經(jīng)描述的文本格式的初始請(qǐng)求201中的目標(biāo)地址102獲得。服務(wù)152利用第一web頁(yè)面203作為響應(yīng)。在這個(gè)例子中,第一web頁(yè)面203有兩個(gè)超鏈接第一個(gè)是針對(duì)好的飯店(fine restaurants),第二個(gè)是針對(duì)漢堡連鎖店(burger joints)。中間件140截取第一個(gè)web頁(yè)面203,使第一web頁(yè)面203與會(huì)話(huà)環(huán)境相關(guān)聯(lián),把第一個(gè)web頁(yè)面203轉(zhuǎn)換成文本格式的消息,菜單204,把菜單204傳送給客戶(hù)設(shè)備100。菜單204顯示在客戶(hù)設(shè)備100上,如下所示
在客戶(hù)設(shè)備100上輸入?yún)⒖紨?shù)字“2”(205)作為對(duì)用戶(hù)家附近的漢堡連鎖店名單的請(qǐng)求。中間件140在會(huì)話(huà)環(huán)境中保存參考數(shù)字“2”。中間件140把參考數(shù)字“2”轉(zhuǎn)換成服務(wù)152通過(guò)使用第一web頁(yè)面203可理解的響應(yīng)。例如,中間件140把用戶(hù)選定的參考數(shù)字“2”翻譯成對(duì)第一web頁(yè)面203中針對(duì)漢堡連鎖店的第二超鏈接的選擇。對(duì)第二超鏈接206的選擇傳送到服務(wù)152。服務(wù)152利用第二個(gè)web頁(yè)面207作為響應(yīng),第二個(gè)web頁(yè)面207是一個(gè)漢堡連鎖店列表。第二web頁(yè)面207有四個(gè)超鏈接第一個(gè)是BurgerKing,第二個(gè)是Carl’s Junior,第三個(gè)是McDonalds,第四個(gè)是Wendy’s。中間件140截取第二web頁(yè)面207,使第二web頁(yè)面207與會(huì)話(huà)環(huán)境相關(guān)聯(lián),把第二web格式的響應(yīng)翻譯成菜單208,并將菜單208傳送給客戶(hù)設(shè)備100。菜單208顯示在客戶(hù)設(shè)備100上,如下所示
在客戶(hù)設(shè)備100上輸入?yún)⒖紨?shù)字“3”(209)作為對(duì)離用戶(hù)家最近的McDonald的地址的請(qǐng)求。中間件140在會(huì)話(huà)環(huán)境中保存參考數(shù)字“3”。
中間件140把參考數(shù)字“3”(209)翻譯成服務(wù)152通過(guò)使用第二web頁(yè)面207可理解的響應(yīng)。例如,中間件140把用戶(hù)選定的參考數(shù)字“3”翻譯成對(duì)第二web頁(yè)面207中針對(duì)McDonald’s的第三超鏈接的選擇。對(duì)第三超鏈接210的選擇傳送到服務(wù)152。服務(wù)152利用web格式的McDonald’s地址211作為響應(yīng)。中間件140截取web格式的McDonald’s地址211,把web格式的McDonald’s地址211翻譯成文本格式的McDonald’s地址212,把文本格式的McDonald’s地址212發(fā)送給客戶(hù)設(shè)備100。如果服務(wù)152把McDonald’s地址以文本格式發(fā)送給中間件140,那么就沒(méi)必要進(jìn)行翻譯。文本格式的McDonald’s地址212顯示在客戶(hù)設(shè)備100上。
此時(shí),中間件140確定已經(jīng)滿(mǎn)足了用戶(hù)文本格式的初始請(qǐng)求201。用戶(hù)輸入三個(gè)請(qǐng)求文本格式的初始請(qǐng)求201、參考數(shù)字“2”(205)、和參考數(shù)字“3”(209)。用戶(hù)接收到三個(gè)響應(yīng)菜單204、菜單208、和McDonald’s地址212。完成任務(wù)需要三個(gè)請(qǐng)求和三個(gè)響應(yīng)是一個(gè)會(huì)話(huà)的例子??梢钥闯?,保持會(huì)話(huà)環(huán)境提供會(huì)話(huà)能力和用戶(hù)導(dǎo)航能力給采用異步協(xié)議進(jìn)行通信的移動(dòng)設(shè)備。
根據(jù)一實(shí)施例,用戶(hù)可以通過(guò)輸入Esc鍵(escape)在導(dǎo)航菜單樹(shù)時(shí)退出并繼續(xù)一新請(qǐng)求。例如,如果用戶(hù)在請(qǐng)求飲食店之后但在接收到飲食店地址之前決定檢查Oracle的股票價(jià)格,用戶(hù)可以輸入Esc鍵。那么用戶(hù)可以如在此已經(jīng)描述過(guò)的那樣請(qǐng)求Oracle的股票價(jià)格。
不要求連續(xù)活躍連接不像支持會(huì)話(huà)的web應(yīng)用,在“會(huì)話(huà)”持續(xù)期間不要求連續(xù)活躍連接,因?yàn)樵诳蛻?hù)設(shè)備100和中間件140之間使用異步協(xié)議。例如,當(dāng)使用移動(dòng)設(shè)備利用同步web協(xié)議進(jìn)行通信的人進(jìn)入隧道時(shí),通信中斷。為了使他能接收到被請(qǐng)求的信息,不得不重新建立連接。相反,當(dāng)使用客戶(hù)設(shè)備100利用異步協(xié)議進(jìn)行通信的人進(jìn)入隧道且通信中斷時(shí),他一旦出了隧道仍可以接收到剩余的信息。
硬件概述圖3的方框圖示出了可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)300。計(jì)算機(jī)系統(tǒng)300包括總線302和其它用于傳送信息的通信機(jī)制,與總線302連接的處理器304用于處理信息。計(jì)算機(jī)系統(tǒng)300也包括連接到總線302的諸如隨機(jī)存取存儲(chǔ)器(RAM)和其它動(dòng)態(tài)存儲(chǔ)裝置這樣的主存儲(chǔ)器306,用于儲(chǔ)存將被處理器304執(zhí)行的信息和指令。主存儲(chǔ)器306也可以用于儲(chǔ)存在將被處理器304執(zhí)行的指令的執(zhí)行過(guò)程中的暫時(shí)變量和其它中間信息。計(jì)算機(jī)系統(tǒng)300進(jìn)一步包括連接到總線302的只讀存儲(chǔ)器(ROM)308和其它靜態(tài)存儲(chǔ)裝置,用于為處理器304儲(chǔ)存靜態(tài)信息和指令。存儲(chǔ)裝置310,諸如磁盤(pán)和光盤(pán),連接到總線302用于存儲(chǔ)信息和指令。
計(jì)算機(jī)系統(tǒng)300可以經(jīng)由總線302連接到顯示屏312,諸如陰極射線管(CRT),用于把信息顯示給計(jì)算機(jī)用戶(hù)。輸入裝置314,包括字母數(shù)字鍵和其它鍵,連接到總線302,用于把信息和命令選擇傳送給處理器304。另一種類(lèi)型的用戶(hù)輸入裝置是光標(biāo)控制器316,諸如鼠標(biāo),跟蹤球,和光標(biāo)方向鍵,用于向處理器304傳送方向信息和命令選擇,和控制光標(biāo)在顯示屏312上的移動(dòng)。這種輸入裝置通常有兩個(gè)坐標(biāo)軸上的自由度,第一個(gè)坐標(biāo)軸(例如x)和第二個(gè)坐標(biāo)軸(例如y),這允許裝置在平面上指定位置。
本發(fā)明涉及用于實(shí)施本文中描述的技術(shù)的計(jì)算機(jī)系統(tǒng)300的使用。根據(jù)發(fā)明的一個(gè)實(shí)施例,響應(yīng)處理器304執(zhí)行包含在主存儲(chǔ)器306中的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列,這些技術(shù)被計(jì)算機(jī)系統(tǒng)300執(zhí)行。這些指令從例如存儲(chǔ)裝置310等的另一計(jì)算機(jī)可讀介質(zhì)讀入主存儲(chǔ)器306。執(zhí)行包含在主存儲(chǔ)器306中的指令序列將導(dǎo)致處理器304執(zhí)行下面描述的過(guò)程步驟。在另一個(gè)實(shí)施例中,硬連線電路被用于替代或結(jié)合軟件指令實(shí)現(xiàn)發(fā)明。因此,本發(fā)明的實(shí)現(xiàn)不僅限于任何硬件電路和軟件的特定組合。
此處使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”指參與提供指令到處理器304進(jìn)行執(zhí)行的任何介質(zhì)。這種介質(zhì)有許多形式,包括但不限于,非易失性介質(zhì)、易失性介質(zhì)、以及傳送介質(zhì)。舉例來(lái)說(shuō),非易失性介質(zhì)包括,光盤(pán)或磁盤(pán),例如存儲(chǔ)裝置310等。易失性介質(zhì)包括動(dòng)態(tài)存儲(chǔ)器,比如主存儲(chǔ)器306。傳送介質(zhì)包括同軸電纜、銅導(dǎo)線、以及光纖,包括組成總線302的線纜。傳送介質(zhì)還包括聲音或光波形式,比如在無(wú)線電波或紅外線數(shù)據(jù)通信中產(chǎn)生的波。
舉例來(lái)說(shuō),計(jì)算機(jī)可讀介質(zhì)的通用形式包括軟盤(pán),柔性盤(pán),硬盤(pán),磁帶,或任何其它磁介質(zhì),CD-ROM或任何其它光介質(zhì),穿孔卡片,紙帶,任何其它帶有孔圖案的物理介質(zhì),RAM,PROM,和EPROM,F(xiàn)LASH-EPROM,任何其它存儲(chǔ)芯片或磁帶,下面描述的載波,或任何其它計(jì)算機(jī)可讀的介質(zhì)。
可以將各種形式的計(jì)算機(jī)可讀介質(zhì)用于將一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列傳送給處理器304用于執(zhí)行。例如,該指令可以最初承載在遠(yuǎn)程計(jì)算機(jī)的磁盤(pán)上。該遠(yuǎn)程計(jì)算機(jī)將指令載入其動(dòng)態(tài)存儲(chǔ)器,并使用調(diào)制解調(diào)器在電話(huà)線上傳送指令。計(jì)算機(jī)系統(tǒng)300的本地調(diào)制解調(diào)器可以接收電話(huà)線上的數(shù)據(jù),并使用紅外發(fā)射器把數(shù)據(jù)轉(zhuǎn)換為紅外信號(hào)。紅外檢測(cè)器能接收在紅外信號(hào)中承載的數(shù)據(jù),適當(dāng)?shù)碾娐钒言摂?shù)據(jù)放置到總線302上??偩€302承載數(shù)據(jù)到主存儲(chǔ)器306,處理器304再?gòu)闹鞔鎯?chǔ)器306中檢索并執(zhí)行指令。在處理器304執(zhí)行之前或之后,主存儲(chǔ)器306接收的指令可選地儲(chǔ)存在存儲(chǔ)裝置310上。
計(jì)算機(jī)系統(tǒng)300還包括耦合到總線302的通信接口318。通信接口318提供了一種與連接到本地網(wǎng)絡(luò)322的網(wǎng)絡(luò)鏈路320的雙向數(shù)據(jù)通信。比如,通信接口318可以是集成服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)卡或調(diào)制解調(diào)器,用來(lái)提供數(shù)據(jù)通信連接到對(duì)應(yīng)類(lèi)型的電話(huà)線。作為另一個(gè)例子,通信接口318可以是局域網(wǎng)(LAN)卡,提供到兼容的LAN的數(shù)據(jù)通信連接。也可以實(shí)現(xiàn)無(wú)線鏈路。在任何這樣的實(shí)現(xiàn)方式中,通信接口318都能發(fā)送和接收電信號(hào)、電磁信號(hào)、或光信號(hào),這些信號(hào)承載著代表各種類(lèi)型信息的數(shù)字?jǐn)?shù)據(jù)流。
網(wǎng)絡(luò)連接320通常通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)提供數(shù)據(jù)通信到其它數(shù)據(jù)裝置。比如,網(wǎng)絡(luò)連接320可以提供通過(guò)本地網(wǎng)絡(luò)322至主計(jì)算機(jī)324或由互聯(lián)網(wǎng)服務(wù)提供商(ISP)326操作的數(shù)據(jù)裝置的連接。ISP 326又通過(guò)通常稱(chēng)為“互聯(lián)網(wǎng)”328的萬(wàn)維分組數(shù)據(jù)通信網(wǎng)絡(luò)提供數(shù)據(jù)通信服務(wù)。本地網(wǎng)絡(luò)322和互聯(lián)網(wǎng)328都使用電信號(hào)、電磁信號(hào)、或光信號(hào)承載數(shù)字?jǐn)?shù)據(jù)流。經(jīng)過(guò)各種網(wǎng)絡(luò)的信號(hào)、網(wǎng)絡(luò)鏈路320上的信號(hào)、以及經(jīng)過(guò)通信接口318的信號(hào),承載著送到和來(lái)自計(jì)算機(jī)系統(tǒng)300的數(shù)字?jǐn)?shù)據(jù),是傳輸信息的載波的示范形式。
計(jì)算機(jī)系統(tǒng)300通過(guò)網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路320、以及通信接口318發(fā)送消息和接收數(shù)據(jù),包括程序代碼。在互聯(lián)網(wǎng)實(shí)例中,服務(wù)器330通過(guò)互聯(lián)網(wǎng)328、ISP 326、本地網(wǎng)絡(luò)322、以及通信接口318發(fā)送所請(qǐng)求的應(yīng)用程序代碼。
當(dāng)接收到代碼后,接收到的代碼可以由處理器304執(zhí)行,或儲(chǔ)存在存儲(chǔ)裝置310或其他非易失性存儲(chǔ)器中用于隨后執(zhí)行。以這種方式,計(jì)算機(jī)系統(tǒng)300可以獲得載波形式的應(yīng)用代碼。
在上述說(shuō)明書(shū)中,已經(jīng)參考具體實(shí)施例說(shuō)明了本發(fā)明。然而,顯然可以對(duì)其做出各種變化和改變,而不背離本發(fā)明寬廣的精神和范圍。因此,說(shuō)明書(shū)和附圖僅用來(lái)說(shuō)明而非限定本發(fā)明。
權(quán)利要求
1.一種在設(shè)備和服務(wù)之間進(jìn)行會(huì)話(huà)的方法,包括以下計(jì)算機(jī)實(shí)施步驟在中間件處接收來(lái)自客戶(hù)設(shè)備的利用第一協(xié)議發(fā)送的第一消息;其中所述第一協(xié)議不支持會(huì)話(huà);響應(yīng)所述第一消息,所述中間件向所述服務(wù)發(fā)送第二消息;在所述中間件處接收作為所述第二消息的響應(yīng)的第三消息;響應(yīng)所述第三消息,在所述中間件處儲(chǔ)存會(huì)話(huà)信息;向所述客戶(hù)設(shè)備發(fā)送第四消息;在所述中間件處接收來(lái)自所述客戶(hù)設(shè)備的第五消息;響應(yīng)所述第五消息,定位所述會(huì)話(huà)信息;基于所述第五消息和所述會(huì)話(huà)信息的內(nèi)容產(chǎn)生第六消息;以及向所述服務(wù)發(fā)送所述第六消息。
2.根據(jù)權(quán)利要求1所述的方法,其中在所述中間件處接收所述第三消息的步驟包括在所述中間件處接收包括帶有超鏈接的菜單的所述第三消息的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其中向所述客戶(hù)設(shè)備發(fā)送所述第四消息的步驟包括向所述客戶(hù)設(shè)備發(fā)送包括帶有參考數(shù)字的菜單的所述第四消息。
4.根據(jù)權(quán)利要求1所述的方法,其中至少部分地從與所述第一消息關(guān)聯(lián)的目標(biāo)地址確定所述服務(wù)的服務(wù)地址,包括至少部分地從與所述第一消息關(guān)聯(lián)的所述目標(biāo)地址確定所述服務(wù)的所述服務(wù)地址的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中所述目標(biāo)地址包括站點(diǎn)地址,確定所述服務(wù)地址的步驟包括至少部分地基于所述站點(diǎn)地址和與所述第一消息關(guān)聯(lián)的縮寫(xiě)名確定所述服務(wù)地址。
6.根據(jù)權(quán)利要求4所述的方法,其中所述目標(biāo)地址包括服務(wù)-級(jí)別-地址,確定所述服務(wù)地址的步驟包括至少部分地基于所述服務(wù)-級(jí)別-地址確定所述服務(wù)地址。
7.根據(jù)權(quán)利要求4所述的方法,其中所述目標(biāo)地址是電話(huà)號(hào)碼,確定所述服務(wù)地址的步驟包括至少部分地基于所述電話(huà)號(hào)碼確定所述服務(wù)地址。
8.根據(jù)權(quán)利要求4所述的方法,其中保持一種應(yīng)用映射,所述應(yīng)用映射包括至少一個(gè)把所述目標(biāo)地址映射到正在監(jiān)聽(tīng)所述目標(biāo)地址的所述中間件的入口,其中所述接收所述第一消息的步驟包括在所述中間件處接收所述第一消息,使用所述應(yīng)用映射確定所述中間件的位置。
9.根據(jù)權(quán)利要求4所述的方法,其中保持服務(wù)映射,所述服務(wù)映射包括至少一個(gè)把所述目標(biāo)地址映射到所述服務(wù)的入口,所述服務(wù)地址至少部分地基于所述入口,其中發(fā)送所述第二消息的步驟包括在位于至少部分地基于所述入口的所述服務(wù)地址處向所述服務(wù)發(fā)送所述第二消息。
10.根據(jù)權(quán)利要求4所述的方法,其中保持服務(wù)映射,所述服務(wù)映射包括至少一個(gè)把所述第一消息的所述目標(biāo)地址和縮寫(xiě)名影射到所述服務(wù)的入口,所述服務(wù)地址至少部分地基于所述入口,其中發(fā)送所述第二消息的步驟包括在位于至少部分地基于所述入口的所述服務(wù)地址處向所述服務(wù)發(fā)送所述第二消息。
11.根據(jù)權(quán)利要求1所述的方法,其中所述第一消息包括指令,向所述服務(wù)發(fā)送所述第二消息的步驟包括創(chuàng)建用于指示所述指令的所述第二消息。
12.根據(jù)權(quán)利要求1所述的方法,其中接收所述第一消息的步驟由協(xié)議處理器實(shí)施,進(jìn)一步包括以下步驟從所述第一消息提取目標(biāo)地址和指令;至少部分地基于所述目標(biāo)地址確定所述中間件的地址;以及向所述中間件發(fā)送所述目標(biāo)地址和所述指令。
13.根據(jù)權(quán)利要求12所述的方法,其中所述協(xié)議處理器是電子郵件協(xié)議處理器,所述提取步驟由所述電子郵件協(xié)議處理器實(shí)施。
14.根據(jù)權(quán)利要求12所述的方法,其中所述的協(xié)議處理器是SMS協(xié)議處理器,所述提取步驟由所述SMS協(xié)議處理器實(shí)施。
15.根據(jù)權(quán)利要求1所述的方法,其中所述第二消息利用HTTP來(lái)發(fā)送。
16.根據(jù)權(quán)利要求1所述的方法,其中所述第二消息利用Java API來(lái)發(fā)送。
17.根據(jù)權(quán)利要求1所述的方法,其中向所述服務(wù)發(fā)送所述第二消息的步驟由互聯(lián)網(wǎng)服務(wù)提供商來(lái)實(shí)施。
18.根據(jù)權(quán)利要求1所述的方法,其中儲(chǔ)存會(huì)話(huà)信息的步驟包括保持包括用戶(hù)從菜單選出的參考數(shù)字的會(huì)話(huà)環(huán)境的步驟。
19.根據(jù)權(quán)利要求18所述的方法,其中所述會(huì)話(huà)環(huán)境被保持在狀態(tài)機(jī)中,所述保持步驟包括在所述狀態(tài)機(jī)中保持所述會(huì)話(huà)環(huán)境。
20.根據(jù)權(quán)利要求1所述的方法,其中所述第三消息對(duì)應(yīng)于所述會(huì)話(huà)信息,所述儲(chǔ)存步驟包括使所述第三消息與所述會(huì)話(huà)信息關(guān)聯(lián)。
21.根據(jù)權(quán)利要求1所述的方法,其中所述設(shè)備的設(shè)備ID用于確定會(huì)話(huà)開(kāi)始的時(shí)間,其中在所述中間件接收所述第一消息的步驟包括在所述中間件處第一次檢測(cè)到與所述第一消息關(guān)聯(lián)的所述設(shè)備ID時(shí)開(kāi)始所述會(huì)話(huà)。
22.根據(jù)權(quán)利要求1所述的方法,其中定時(shí)器用于確定會(huì)話(huà)結(jié)束的時(shí)間,進(jìn)一步包括在所述定時(shí)器終止時(shí)結(jié)束所述會(huì)話(huà)的步驟。
23.根據(jù)權(quán)利要求1所述的方法,其中會(huì)話(huà)在定時(shí)器終止或用戶(hù)退出菜單樹(shù)的最早時(shí)刻結(jié)束,進(jìn)一步包括在所述定時(shí)器終止或所述用戶(hù)退出所述菜單樹(shù)的最早時(shí)刻結(jié)束所述會(huì)話(huà)的步驟。
24.根據(jù)權(quán)利要求1所述的方法,其中在所述中間件處接收所述第三消息的步驟包括在所述中間件處接收Oracle的移動(dòng)XMLTM格式的所述第三消息。
25.一種計(jì)算機(jī)可讀介質(zhì),用于儲(chǔ)存一個(gè)或多個(gè)指令序列來(lái)在設(shè)備和服務(wù)之間進(jìn)行會(huì)話(huà),其中一個(gè)或多個(gè)指令序列由一個(gè)或多個(gè)處理器執(zhí)行導(dǎo)致一個(gè)或多個(gè)處理器實(shí)施以下步驟在中間件處接收來(lái)自客戶(hù)設(shè)備利用第一協(xié)議發(fā)送的第一消息;其中所述第一協(xié)議不支持會(huì)話(huà);響應(yīng)所述第一消息,所述中間件向所述服務(wù)發(fā)送第二消息;在所述中間件處接收作為所述第二消息的響應(yīng)的第三消息;響應(yīng)所述第三個(gè)消息,在所述中間件處儲(chǔ)存會(huì)話(huà)信息;向所述客戶(hù)設(shè)備發(fā)送第四消息;在所述中間件處接收來(lái)自所述客戶(hù)設(shè)備的第五消息;為響應(yīng)所述第五消息,定位所述會(huì)話(huà)信息;基于所述第五消息的內(nèi)容和所述會(huì)話(huà)信息產(chǎn)生第六消息;以及向所述服務(wù)發(fā)送所述第六消息。
26.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中在所述中間件處接收所述第三消息的步驟包括在所述中間件處接收包括一個(gè)帶有超鏈接的菜單的所述第三消息。
27.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中向所述客戶(hù)設(shè)備發(fā)送所述第四消息的步驟包括向所述客戶(hù)設(shè)備發(fā)送包括一帶有參考數(shù)字的菜單的所述第四消息。
28.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)的服務(wù)地址至少部分地從與所述第一消息關(guān)聯(lián)的目標(biāo)地址確定,包括至少部分地從與所述第一消息關(guān)聯(lián)的所述目標(biāo)地址確定所述服務(wù)的所述服務(wù)地址的步驟。
29.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中所述目標(biāo)地址包括站點(diǎn)地址,確定所述服務(wù)地址的步驟包括至少部分地基于所述站點(diǎn)地址以及與所述第一消息關(guān)聯(lián)的縮寫(xiě)名確定所述服務(wù)地址。
30.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中所述目標(biāo)地址包括服務(wù)-級(jí)別-地址,確定所述服務(wù)地址的步驟包括至少部分地基于所述服務(wù)-級(jí)別-地址確定所述服務(wù)地址。
31.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中所述目標(biāo)地址是一個(gè)電話(huà)號(hào)碼,確定所述服務(wù)地址的步驟包括至少部分地基于所述電話(huà)號(hào)碼確定所述服務(wù)地址。
32.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中保持應(yīng)用映射,所述應(yīng)用映射包括至少一個(gè)把所述目標(biāo)地址映射到正在監(jiān)聽(tīng)所述目標(biāo)地址的所述中間件的入口,其中接收所述第一消息的步驟包括在所述中間件處接收使用所述應(yīng)用映射確定所述中間件位置的所述第一消息。
33.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中保持服務(wù)映射,所述服務(wù)映射包括至少一個(gè)把所述目標(biāo)地址映射到所述服務(wù)的入口,所述服務(wù)地址至少部分地基于所述入口,其中發(fā)送所述第二消息的步驟包括向位于所述服務(wù)地址處的至少部分地基于所述入口的所述服務(wù)發(fā)送所述第二消息。
34.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中保持服務(wù)映射,所述服務(wù)映射包括至少一個(gè)把所述第一消息的所述目標(biāo)地址和縮寫(xiě)名影射到所述服務(wù)的入口,所述服務(wù)地址至少部分地基于所述入口,其中發(fā)送所述第二消息的步驟包括向位于所述服務(wù)地址的至少部分地基于所述入口的所述服務(wù)發(fā)送所述第二消息。
35.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述第一消息包括指令,向所述服務(wù)發(fā)送所述第二消息的步驟包括創(chuàng)建指示所述指令的所述第二消息。
36.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中接收所述第一消息的步驟由協(xié)議處理器實(shí)施,進(jìn)一步包括以下步驟從所述第一消息提取目標(biāo)地址和指令;至少部分地基于所述目標(biāo)地址確定所述中間件的地址;以及向所述中間件發(fā)送所述目標(biāo)地址和所述指令。
37.根據(jù)權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其中所述協(xié)議處理器是電子郵件協(xié)議處理器,所述提取步驟由所述電子郵件協(xié)議處理器實(shí)施。
38.根據(jù)權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其中所述協(xié)議處理器是SMS協(xié)議處理器,所述提取步驟由所述SMS協(xié)議處理器實(shí)施。
39.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述第二消息利用HTTP發(fā)送。
40.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述第二消息利用Java API來(lái)發(fā)送。
41.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中向所述服務(wù)發(fā)送所述第二消息的步驟由互聯(lián)網(wǎng)服務(wù)提供商實(shí)施。
42.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)可讀介質(zhì)進(jìn)一步包括保持包括用戶(hù)從菜單選出的參考數(shù)字的會(huì)話(huà)環(huán)境的步驟。
43.根據(jù)權(quán)利要求42所述的計(jì)算機(jī)可讀介質(zhì),其中所述會(huì)話(huà)環(huán)境被保持在狀態(tài)機(jī)中,所述保持步驟包括在所述狀態(tài)機(jī)中保持所述會(huì)話(huà)環(huán)境。
44.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述第三消息與所述會(huì)話(huà)信息關(guān)聯(lián),所述儲(chǔ)存步驟包括使所述第三消息與所述會(huì)話(huà)信息關(guān)聯(lián)。
45.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中所述設(shè)備的設(shè)備ID用于確定會(huì)話(huà)開(kāi)始的時(shí)間,其中在所述中間件處接收所述第一消息的步驟包括在所述中間件處第一次檢測(cè)到與所述第一消息關(guān)聯(lián)的所述設(shè)備ID時(shí)開(kāi)始所述會(huì)話(huà)。
46.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中定時(shí)器用于確定會(huì)話(huà)結(jié)束的時(shí)間,進(jìn)一步包括在所述定時(shí)器終止時(shí)結(jié)束所述會(huì)話(huà)的步驟。
47.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中會(huì)話(huà)在定時(shí)器終止或用戶(hù)退出菜單樹(shù)的最早時(shí)刻結(jié)束,進(jìn)一步包括在所述定時(shí)器終止或所述用戶(hù)退出所述菜單樹(shù)的最早時(shí)刻結(jié)束所述會(huì)話(huà)的步驟。
48.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中在所述中間件處接收所述第三消息的步驟包括在所述中間件處接收Oracle的移動(dòng)XMLTM格式的所述第三消息。
全文摘要
本發(fā)明提供了用于在不同于服務(wù)所期望的諸如HTTP和JavaAPI這樣的協(xié)議的其它諸如SMS和電子郵件這樣的協(xié)議中發(fā)起服務(wù)請(qǐng)求的技術(shù)。例如,許多人想要使用他們的移動(dòng)設(shè)備與要求在一次會(huì)話(huà)中擁有多個(gè)相關(guān)消息的能力的服務(wù)交互。然而,他們的移動(dòng)設(shè)備并沒(méi)有支持與這種服務(wù)交互的協(xié)議。本發(fā)明提供的一項(xiàng)技術(shù)是把一個(gè)能代表移動(dòng)設(shè)備提供會(huì)話(huà)能力的中間件插在移動(dòng)設(shè)備和服務(wù)之間。在一個(gè)實(shí)施例中,一個(gè)服務(wù)返回包括菜單項(xiàng)和/或超鏈接在內(nèi)的web頁(yè)面。菜單項(xiàng)和超鏈接被翻譯成描述性文本,在描述性文本之前有一個(gè)可供用戶(hù)選擇的參考數(shù)字。中間件通過(guò)保存選定的參考數(shù)字保持會(huì)話(huà)環(huán)境。
文檔編號(hào)G06F13/00GK1650592SQ02823833
公開(kāi)日2005年8月3日 申請(qǐng)日期2002年11月27日 優(yōu)先權(quán)日2001年11月30日
發(fā)明者葉舟, 王建中 申請(qǐng)人:甲骨文國(guó)際公司