背景
領(lǐng)域
所描述的諸方面涉及交互式工作空間和遍在式計(jì)算。更具體地,本發(fā)明涉及使群體的全異計(jì)算平臺(tái)能容易地與位于分布式系統(tǒng)中的服務(wù)對(duì)象接口以獲得持久個(gè)人消息收發(fā)的基礎(chǔ)設(shè)施。
背景
諸如但并不限于因特網(wǎng)之類的分布式計(jì)算機(jī)系統(tǒng)的特征在于同時(shí)在大批不相似的且地理上多樣化的處理器上執(zhí)行的許多不相似的進(jìn)程之間快速、實(shí)時(shí)的互換。分布式計(jì)算機(jī)系統(tǒng)的資源通常在空間上是分開的,并且其應(yīng)用的執(zhí)行往往涉及可能在時(shí)間上分開很廣的多個(gè)執(zhí)行線程。
客戶機(jī)設(shè)備的用戶群體的運(yùn)營(yíng)商在競(jìng)爭(zhēng)性的演進(jìn)的通信市場(chǎng)中競(jìng)爭(zhēng)。很難滿足用戶對(duì)各種服務(wù)的期望,尤其在分布式計(jì)算機(jī)系統(tǒng)上更是如此。用戶的期望往往彼此有所分歧,因?yàn)橹T如搜索之類有不同的優(yōu)選服務(wù)供應(yīng)商。另外,某些類型的內(nèi)容可能被隔離在分布式網(wǎng)絡(luò)的具有專有接口的不同節(jié)點(diǎn)中,這使得對(duì)這些服務(wù)的訪問受挫。
以通信能力為其主要目的或者具有無線通信能力以擴(kuò)展連通性的客戶機(jī)設(shè)備的移動(dòng)性日益增長(zhǎng)。最終用戶希望用這些移動(dòng)通信設(shè)備來訪問服務(wù),而這先前本是終端、工作站和通用計(jì)算機(jī)的領(lǐng)域。旨在用于通用計(jì)算的后面這些設(shè)備已具有趨于標(biāo)準(zhǔn)化或者至少容適廣大范圍的使用環(huán)境的趨勢(shì)。相比之下,移動(dòng)通信設(shè)備是傾向于優(yōu)先考慮經(jīng)濟(jì)的制造、小尺寸和延長(zhǎng)的電池服務(wù)壽命地進(jìn)展的,其中性能的焦點(diǎn)在無線通信上而不是處理能力上。另外,廣播頻帶和協(xié)議的演進(jìn)已趨于鼓勵(lì)通信芯片組的激增。由此,對(duì)移動(dòng)通信設(shè)備用戶的各種服務(wù)供應(yīng)已受到限制,與通用計(jì)算機(jī)用戶較大的當(dāng)前市場(chǎng)相比尤甚。
數(shù)個(gè)障礙阻礙解決向移動(dòng)通信設(shè)備部署如對(duì)于通用計(jì)算機(jī)而言常規(guī)的服務(wù)的挑戰(zhàn)。與給通用計(jì)算機(jī)的寬帶信道相比,給移動(dòng)通信設(shè)備的通信帶寬往往是受約束的,從而阻礙為各種服務(wù)恰當(dāng)?shù)嘏渲靡苿?dòng)通信設(shè)備的接口軟件的下載。通常,移動(dòng)通信設(shè)備的用戶接口在大小上受到嚴(yán)格約束,從而限制了可給出的顯示器大小和控制按鈕數(shù)目,進(jìn)一步使此類配置變得復(fù)雜。不僅如此,許多用戶往往是在不適于此類焦點(diǎn)所在的交互的境況(例如,旅游)中使用移動(dòng)通信設(shè)備。
因移動(dòng)設(shè)備的獨(dú)特約束和使用模式而變得復(fù)雜的一種此類功能是即時(shí)消息收發(fā)。通常,人們將使用因特網(wǎng)消息收發(fā)客戶機(jī)的若干不同實(shí)例,諸如在工作中是在臺(tái)式個(gè)人計(jì)算機(jī)(PC)上、在家中是在膝上型PC上,還有在移動(dòng)設(shè)備上。一個(gè)問題在于,在使用這些不同設(shè)備之間沒有連續(xù)性。一旦用戶切換到臺(tái)式設(shè)備或移動(dòng)設(shè)備,在運(yùn)行于PC上的客戶機(jī)上開始的與單人或群的對(duì)話就會(huì)中斷并丟失。
概述
以下給出了簡(jiǎn)化概述,以提供對(duì)本公開的某些方面的基本理解。此概述不是詳盡縱覽,且既非旨在指認(rèn)出關(guān)鍵性或決定性要素,也非旨在界定此類方面的范圍。其目的是以簡(jiǎn)化的形式給出所描述的方面的一些概念,以作為后面給出的更加詳細(xì)的描述的前序。
根據(jù)一個(gè)或更多個(gè)方面及其相應(yīng)的公開,結(jié)合使用諸如移動(dòng)通信設(shè)備之類的客戶機(jī)設(shè)備經(jīng)由松耦合的分布式網(wǎng)絡(luò)來訪問諸服務(wù)來描述各種特征,其中該松耦合的分布式網(wǎng)絡(luò)有利地在能容易地從各種各樣的計(jì)算平臺(tái)訪問的元組空間中維護(hù)即時(shí)消息收發(fā)通信的連續(xù)性,從而向各種遠(yuǎn)程客戶機(jī)提供無縫的可訪問性。
在一個(gè)方面,提供一種用于向連接至分布式網(wǎng)絡(luò)的客戶機(jī)設(shè)備群體提供持久消息收發(fā)服務(wù)的方法。為從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信的用戶放置用戶元組到元組空間中。定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組。向該客戶機(jī)設(shè)備發(fā)送從該消息元組推導(dǎo)出的歷史消息。
在另一方面,提供用于向連接至分布式網(wǎng)絡(luò)的客戶機(jī)設(shè)備群體提供持久消息收發(fā)服務(wù)的至少一個(gè)處理器。第一模塊為從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信的用戶放置用戶元組到元組空間中。第二模塊定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組。第三模塊向該客戶機(jī)設(shè)備發(fā)送從該消息元組推導(dǎo)出的歷史消息。
在一附加方面,提供一種用于向連接至分布式網(wǎng)絡(luò)的客戶機(jī)設(shè)備群體提供持久消息收發(fā)服務(wù)的計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)可讀介質(zhì)包括使計(jì)算機(jī)執(zhí)行以下動(dòng)作的代碼集:為從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信的用戶放置用戶元組到元組空間中,定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組,以及向該客戶機(jī)設(shè)備發(fā)送從該消息元組推導(dǎo)出的歷史消息。
在另一方面,提供一種用于向連接至分布式網(wǎng)絡(luò)的客戶機(jī)設(shè)備群體提供持久消息收發(fā)服務(wù)的設(shè)備,該設(shè)備具有用于為從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信的用戶放置用戶元組到元組空間中的裝置,用于定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組,以及用于向該客戶機(jī)設(shè)備發(fā)送從該消息元組推導(dǎo)出的歷史消息的裝置。
在又一方面,提供一種用于向連接至分布式網(wǎng)絡(luò)的客戶機(jī)設(shè)備群體提供持久消息收發(fā)服務(wù)的裝置。計(jì)算平臺(tái)主存執(zhí)行持久消息收發(fā)服務(wù)的元組空間。消息收發(fā)網(wǎng)關(guān)為經(jīng)由通信網(wǎng)絡(luò)發(fā)起客戶機(jī)設(shè)備與該消息收發(fā)網(wǎng)關(guān)之間的活躍通信的用戶放置用戶元組到該元組空間中。該消息收發(fā)網(wǎng)關(guān)進(jìn)一步定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組,并且經(jīng)由該通信網(wǎng)絡(luò)向該客戶機(jī)設(shè)備發(fā)送從該消息元組推導(dǎo)出的歷史消息。
在又一附加方面,提供一種用于從分布式網(wǎng)絡(luò)接收持久消息收發(fā)服務(wù)的方法。從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信導(dǎo)致為用戶放置用戶元組到元組空間中。該發(fā)起進(jìn)一步導(dǎo)致定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組。隨后,可以接收從該消息元組推導(dǎo)出的歷史消息。
在又一方面,提供用于從分布式網(wǎng)絡(luò)接收持久消息收發(fā)服務(wù)的至少一個(gè)處理器。第一模塊從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信,以導(dǎo)致為用戶放置用戶元組到元組空間中,并且導(dǎo)致定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組。第二模塊把從該消息元組推導(dǎo)出的歷史消息接收到該客戶機(jī)設(shè)備。
在又一附加方面,提供一種用于從分布式網(wǎng)絡(luò)接收持久消息收發(fā)服務(wù)的計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)可讀介質(zhì)包括使計(jì)算機(jī)執(zhí)行以下動(dòng)作的代碼集:從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信以導(dǎo)致為用戶放置用戶元組到元組空間中,并且導(dǎo)致定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組,以及把從該消息元組推導(dǎo)出的歷史消息接收到該客戶機(jī)設(shè)備。
在又一附加方面,提供一種用于從分布式網(wǎng)絡(luò)接收持久消息收發(fā)服務(wù)的設(shè)備,該設(shè)備具有用于從客戶機(jī)設(shè)備發(fā)起與持久消息收發(fā)服務(wù)的活躍通信以導(dǎo)致為用戶放置用戶元組到元組空間中并且導(dǎo)致定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組的裝置,并且具有用于把從該消息元組推導(dǎo)出的歷史消息接收到該客戶機(jī)設(shè)備的裝置。
在另一附加方面,提供一種用于從分布式網(wǎng)絡(luò)接收持久消息收發(fā)服務(wù)的裝置。通信模塊控制發(fā)射機(jī)和接收機(jī)以在通信網(wǎng)絡(luò)上向網(wǎng)關(guān)通信,該網(wǎng)關(guān)起作用地與執(zhí)行持久消息收發(fā)服務(wù)的元組空間交互。用戶接口經(jīng)由該通信模塊來發(fā)起與持久消息收發(fā)服務(wù)的活躍通信,以導(dǎo)致為用戶放置用戶元組到該元組空間中,并且導(dǎo)致定位到存儲(chǔ)在該元組空間中的與該用戶元組相匹配的關(guān)于先前消息收發(fā)會(huì)話的消息元組。該用戶接口經(jīng)由該通信模塊和接收機(jī)來接收從該消息元組推導(dǎo)出的歷史消息。
為能達(dá)成前述及相關(guān)目的,一個(gè)或更多個(gè)方面包括在下文中充分描述并在所附權(quán)利要求中特別指出的特征。以下描述和附圖詳細(xì)闡述了某些解說性方面并僅僅是指示了可采用這些方面和版本的原理的各種方式中的若干種。結(jié)合附圖考慮下面的詳細(xì)描述,則其他優(yōu)點(diǎn)和新穎特征將變得清楚,并且所公開的版本旨在包括所有此類方面及其等效技術(shù)方案。
附圖簡(jiǎn)述
圖1是用于經(jīng)由分布式網(wǎng)絡(luò)服務(wù)來進(jìn)行經(jīng)由多個(gè)客戶機(jī)設(shè)備的持久個(gè)人消息收發(fā)的系統(tǒng)的一個(gè)方面的示意圖;
圖2是能與圖1的系統(tǒng)一起工作的通信網(wǎng)絡(luò)的一個(gè)方面的示意圖。
圖3是根據(jù)一個(gè)方面的顯示了經(jīng)優(yōu)化的評(píng)級(jí)后搜索結(jié)果的解說性客戶機(jī)設(shè)備的圖示。
圖4-5是根據(jù)一個(gè)方面的用于持久個(gè)人消息收發(fā)和超群的方法體系的時(shí)序圖。
詳細(xì)描述
持久個(gè)人消息收發(fā)系統(tǒng)提供支持用戶即使在松耦合的分布式持久個(gè)人消息收發(fā)系統(tǒng)內(nèi)亦能在多個(gè)客戶機(jī)設(shè)備之間調(diào)換的元組空間功能性。用戶(無論他們正在使用哪個(gè)消息收發(fā)客戶機(jī))登錄到該系統(tǒng)上。登錄的動(dòng)作將代表該用戶的元組放置在元組空間中?!奥?lián)系人”服務(wù)代理找到好友以及該用戶所屬的群并向其他用戶通知該用戶已登錄。在給定其他用戶和群的在線狀態(tài)的前提下,“歷史”服務(wù)代理將從該元組空間檢索構(gòu)成了該用戶與諸用戶和群的對(duì)話的先前消息,就好像該用戶從未注銷或切換設(shè)備那樣。當(dāng)用戶向任何對(duì)話添加新消息時(shí),該消息作為元組被添加至該元組空間。因?yàn)樵M具有租約,所以能使對(duì)話中的舊消息在預(yù)定時(shí)段之后自動(dòng)到期(或者在外部持續(xù))。由于元組空間的本質(zhì),跨元組空間搜尋用戶和群之中的共性以創(chuàng)建虛擬超群也是可能的。能使特定的消息以超群為目標(biāo)。例如,可以由“呼喊”服務(wù)代理來把包含所有對(duì)足球感興趣的當(dāng)前用戶和群的超群作為目標(biāo),其中該“呼喊”服務(wù)代理將把最新近的足球結(jié)果注入他們的對(duì)話中。
如在本申請(qǐng)中所使用的,術(shù)語(yǔ)“組件”、“模塊”、“系統(tǒng)”及類似術(shù)語(yǔ)旨在指示計(jì)算機(jī)相關(guān)實(shí)體,任其是硬件、軟硬件組合、軟件,還是執(zhí)行中的軟件。例如,組件可以是但不被限定于在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行件、執(zhí)行的線程、程序、和/或計(jì)算機(jī)。作為解說,運(yùn)行在服務(wù)器上的應(yīng)用和該服務(wù)器兩者都可以是組件。一個(gè)或更多個(gè)組件可駐留在進(jìn)程和/或執(zhí)行的線程內(nèi),并且組件可局部化在一臺(tái)計(jì)算機(jī)上和/或分布在兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。
措辭“示例性”在本文中用于表示用作示例、實(shí)例、或解說。本文中描述為“示例性”的任何方面或設(shè)計(jì)不必被解釋為優(yōu)于或勝過其他方面或設(shè)計(jì)。
另外,該一個(gè)或更多個(gè)方面可以通過使用標(biāo)準(zhǔn)編程和/或工程學(xué)技術(shù)產(chǎn)生軟件、固件、硬件、或其任何組合以控制計(jì)算機(jī)實(shí)現(xiàn)所公開的方面來實(shí)現(xiàn)為方法、裝置或制造品。本文中所使用的術(shù)語(yǔ)“制造品”(或替換地,“計(jì)算機(jī)程序產(chǎn)品”)旨在涵蓋可從任何計(jì)算機(jī)可讀設(shè)備、載體、或介質(zhì)訪問的計(jì)算機(jī)程序。例如,計(jì)算機(jī)可讀介質(zhì)可包括,但不限于,磁性存儲(chǔ)設(shè)備(例如,硬盤、軟盤、磁條等)、光盤(例如,壓縮盤(CD)、數(shù)字多用盤(DVD)等)、智能卡、以及閃存設(shè)備(例如,記憶卡、記憶棒等)。另外應(yīng)該領(lǐng)會(huì),可以采用載波來攜帶計(jì)算機(jī)可讀電子數(shù)據(jù),諸如那些用于傳送和接收電子郵件或用于訪問如因特網(wǎng)或局域網(wǎng)(LAN)之類的網(wǎng)絡(luò)的數(shù)據(jù)。當(dāng)然,本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,可以對(duì)這種配置進(jìn)行許多修改而不會(huì)脫離所公開的方面的范圍。
各種方面將以可包括數(shù)個(gè)組件、模塊及類似物的系統(tǒng)的形式來呈現(xiàn)。將理解和領(lǐng)會(huì),各種系統(tǒng)可包括外加的組件、模塊等,和/或可以并不完全包括結(jié)合這些附圖所討論的組件、模塊等。也可以使用這些辦法的組合。本文中所公開的各種方面可以在包括利用觸摸屏顯示技術(shù)和/或鼠標(biāo)鍵盤型接口的設(shè)備的電子設(shè)備上執(zhí)行。此類設(shè)備的示例包括(臺(tái)式和移動(dòng))計(jì)算機(jī),智能電話、個(gè)人數(shù)字助理(PDA)、以及其他有線和無線的電子設(shè)備。
在圖1中,分布式系統(tǒng)100允許諸如移動(dòng)通信設(shè)備之類的客戶機(jī)設(shè)備101檢查在計(jì)算平臺(tái)102上工作的元組空間104以找到諸如消息收發(fā)接口服務(wù)元組106之類的消息收發(fā)服務(wù)。在解說性描繪中,被描繪為來自服務(wù)元組143的用戶接口代碼108的恰適屬性可以隨后作為搜索接口109被加載到客戶機(jī)設(shè)備101上并在其上執(zhí)行。由此,用戶110便能經(jīng)由客戶機(jī)設(shè)備101的通信模塊113來與持久消息收發(fā)服務(wù)112交互以維持與用戶110經(jīng)由另一客戶機(jī)設(shè)備101'從事的先前消息收發(fā)對(duì)話的連續(xù)性。
在解說性描繪中,持久消息收發(fā)系統(tǒng)112包括與用戶元組116交互的狀態(tài)服務(wù)元組114。歷史服務(wù)元組118與歷史元組120交互。聯(lián)系人服務(wù)元組122與用戶元組116交互。消息收發(fā)服務(wù)元組124與消息元組126交互,該消息元組126進(jìn)而可以與歷史元組120交互。呼喊服務(wù)元組128和廣告服務(wù)元組130各自與用戶元組116的興趣屬性132交互。
諸如經(jīng)由無線電接入網(wǎng)的數(shù)字服務(wù)或是數(shù)字蜂窩服務(wù)的承運(yùn)商之類的運(yùn)營(yíng)商134可以在客戶機(jī)102與元組空間104之間提供網(wǎng)關(guān)136。具體地,消息收發(fā)組件138通過通信網(wǎng)絡(luò)140向如由訂戶服務(wù)組件142驗(yàn)證的多個(gè)客戶機(jī)設(shè)備102中繼個(gè)人消息收發(fā)。
元組空間104是全局共享的、組織成元組群的關(guān)聯(lián)尋址的存儲(chǔ)器空間?!霸M”是元組空間系統(tǒng)的基本元素。在類似Linda之類的基于元組空間的協(xié)調(diào)語(yǔ)言的上下文中,元組是具有某些類型的字段或值的向量。在更寬泛的意義上,“元組”是信息存儲(chǔ)系統(tǒng)中的條目。例如,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的行可被稱為元組。
在類似于Linda的語(yǔ)言中,稱為“模板”的構(gòu)造被用來經(jīng)由匹配技術(shù)來關(guān)聯(lián)尋址諸元組。如果模板和元組具有相等數(shù)目個(gè)字段并且如果每個(gè)模板字段匹配于相應(yīng)的元組字段,那么該模板匹配于該元組。
基于元組空間的協(xié)調(diào)語(yǔ)言提供簡(jiǎn)單而強(qiáng)大的用于進(jìn)程間通信和同步的機(jī)制,該機(jī)制是并行和分布式編程的關(guān)鍵所在。有數(shù)據(jù)要共享的進(jìn)程生成元組并將該元組放置在元組空間中。需要數(shù)據(jù)的進(jìn)程簡(jiǎn)單地向元組空間請(qǐng)求元組。元組空間程序可以出于數(shù)個(gè)原因而較易于編寫和維護(hù),包括以下原因:
(1)目的地解耦(全匿名通信)——元組的創(chuàng)建者不需要知道該元組的未來使用或其目的地。
(2)空間解耦——因?yàn)樵M是使用關(guān)聯(lián)尋址方案來檢索的,所以多個(gè)地址空間不相交的進(jìn)程能按相同的方式來訪問元組。
(3)時(shí)間解耦——元組具有其自己的壽限,而與生成它們的進(jìn)程或者任何可讀取它們的進(jìn)程無關(guān)。這使得時(shí)間不相交的進(jìn)程能夠無縫地通信。
元組空間的實(shí)現(xiàn)可以是“閉式”的或者“開式”的。閉式實(shí)現(xiàn)使用編譯時(shí)對(duì)象和源代碼分析來提供極為高效的閉型程序。開式實(shí)現(xiàn)允許進(jìn)程、代理和程序通過元組空間來協(xié)調(diào),而運(yùn)行時(shí)系統(tǒng)無需任何先驗(yàn)知識(shí)。實(shí)質(zhì)上,開式實(shí)現(xiàn)提供持久數(shù)據(jù)存儲(chǔ)。
Linda語(yǔ)言使用三種標(biāo)準(zhǔn)指令或原語(yǔ)。它們(用其非正式的語(yǔ)義而言)是:
(1)out(元組)將元組插入元組空間中。
(2)in(模板)如果存在匹配于該模板的元組,那么移除該元組并將其返回給執(zhí)行該in的代理。如果沒有匹配的元組可用,那么該原語(yǔ)阻塞直至有匹配的元組可用。
(3)rd(模板)如果存在匹配于該模板的元組,那么將該元組的副本返回給執(zhí)行該rd的代理。如果沒有匹配的元組,那么該原語(yǔ)阻塞直至有匹配的元組可用。
元組空間104包括數(shù)據(jù)貯,并且放置在元組空間104中的服務(wù)元組143和數(shù)據(jù)元組144各自包括具有有序數(shù)據(jù)集的對(duì)象,其中該數(shù)據(jù)包括元組類型146和元組屬性148。另外,元組屬性148可以取決于元組類型146而變動(dòng)。元組空間104包括能作用于接收例如元組144之類的數(shù)據(jù)對(duì)象的抽象空間,并包括能在該空間內(nèi)執(zhí)行的預(yù)定操作集。例如,預(yù)定函數(shù)集可包括“in”函數(shù)和“rd函數(shù),這兩者均取輸入?yún)?shù),并且通過將輸入?yún)?shù)(在給出的場(chǎng)合)與存在于元組空間內(nèi)的那些值相匹配的方式來允許選擇該空間中的特定元組。”另外,“in”和“rd”函數(shù)兩者均可具有非阻塞等效函數(shù)(inp和rdp)。在一些方面,預(yù)定函數(shù)集可包括諸如JAVA方法之類的可對(duì)元組空間104和元組144兩者執(zhí)行的操作集。
另外,在具體示例中,每個(gè)元組144是com.qualcomm.qspaces.linda.Tuple類或子類的實(shí)例,并且是用由在元組被構(gòu)造時(shí)指定的對(duì)象數(shù)組定義的屬性集148來創(chuàng)建的。該數(shù)組可以是零長(zhǎng)度的,然而在一些方面,該數(shù)組可以不為空。另外,在一些方面,該數(shù)組中沒有任何個(gè)體屬性對(duì)象可以為空。
在一些方面,當(dāng)元組144最初被構(gòu)造時(shí)并且每當(dāng)從各個(gè)元組檢索各個(gè)屬性148時(shí),可以使用非常快速形式的存儲(chǔ)器內(nèi)串行化來防御性地復(fù)制該對(duì)象數(shù)組。此過程允許元組144成為不可變的,并且因此確保元組144所駐留的元組空間104的完好性。
在上述這些方面,元組相等性遵守任何JAVA對(duì)象的相同的相等性原則,包括聲明若t1.equals(t2)則t2.equals(t1)的對(duì)稱規(guī)則。
具體地,一元組等于另一元組,例如t1.equals(t2)——若稱為模板的t2滿足以下準(zhǔn)則:
1)模板t2的類120是與元組t1相同的類120。
2)模板t2的屬性122等于元組t1的屬性122,這意味著t2的屬性122與t1的屬性122相同,而無論它們的次序如何。
在其他方面,一元組匹配于另一元組,例如t1.matches(t2)——若稱為模板的t2滿足以下準(zhǔn)則:
1)模板t2的類120是與元組t1相同的類120或元組t1的超類。
2)模板t2的屬性122匹配于元組t1的屬性122,這意味著t2的屬性122是與t1的屬性122相同的集合或其子集,而無論它們的次序如何。
當(dāng)將一個(gè)元組與另一元組相匹配時(shí),該對(duì)稱規(guī)則不適用,所以t1.matches(t2)未必等于t2.matches(t1)。
在一些方面,一個(gè)集合的元組屬性148與另一集合的元組屬性的比較使用常規(guī)的對(duì)象相等性規(guī)則,所以任何被用作元組屬性148的對(duì)象都能實(shí)現(xiàn)object.equals(Object obj)和object.hashcode()方法。
元組144帶租約150地被添加至元組空間104。租約150是例如以毫秒為單位來指定的時(shí)段,該時(shí)段定義該元組將逗留在相應(yīng)元組空間104中多久。例如,具有零值的租約150可以指示相應(yīng)元組從不到期。一旦相應(yīng)元組的租約150已到期,那么該元組就從元組空間104被自動(dòng)地移除。
服務(wù)元組143代表與元組空間104的諸如客戶機(jī)設(shè)備101之類的客戶機(jī)交互的服務(wù)。另外,服務(wù)元組143憑其本身也是自主的“活”JAVA對(duì)象,這些對(duì)象也可以與元組空間104以及該空間中的其他元組交互??梢园磁c其他元組相同的方式,例如通過匹配元組的類和屬性148等,來發(fā)現(xiàn)服務(wù)元組143。在一些方面,可以不按此方式來使用服務(wù)元組143,而是通過將諸如數(shù)據(jù)元組144之類的其他元組放置在元組空間104中的方式來間接地與服務(wù)元組143交互。
例如,諸如相應(yīng)客戶機(jī)設(shè)備101之類的客戶機(jī)可以創(chuàng)建類A的具有屬性“abc”和“123”的數(shù)據(jù)元組144,并將該元組放置在元組空間104中。由此,可以使用以下注記來描述數(shù)據(jù)元組144:
(A,“abc”,123)。
服務(wù)元組143是能按與客戶機(jī)應(yīng)用相同的方式來與元組空間104交互的活對(duì)象。由此,在此示例中,服務(wù)元組143已被實(shí)例化并正阻塞在要從元組空間104讀任何具有關(guān)于類“A”的匹配模板和任何屬性的元組上。此類匹配準(zhǔn)則可以如下來描述:
(A,?s,?x)
其中?s和?x意味著串s和整數(shù)x的任何值都將匹配得上。因此,元組空間104匹配來自服務(wù)元組106的模板,并且將隨后從元組空間104讀取元組A。以此方式,所描述的方面向服務(wù)傳遞元組形式的參數(shù)。
另外,在系統(tǒng)100中,將代表用戶接口108的對(duì)象嵌入服務(wù)對(duì)象本身中是可能的??紤]以下用戶接口服務(wù)元組:
(A,[Java],[Flash],[uiOne])
例如,服務(wù)元組143可包含三個(gè)用戶接口對(duì)象,諸如用戶接口A屬性(例如,在JAVATM中定義)、用戶接口B屬性(例如,在ADOBE FLASH中定義)和用戶接口C(例如,在加利福尼亞州圣地亞哥的QUALCOMM公司的uiOneTM技術(shù)中定義)。在移動(dòng)性的上下文中,本發(fā)明的這些方面使得能夠跨各種各樣的無線設(shè)備來供應(yīng)服務(wù),其中每個(gè)無線設(shè)備具有其自己專門的要求,無論是在對(duì)諸如Java、Flash或uniOne之類的不同技術(shù)的支持、還是甚至在單種技術(shù)的多個(gè)變體的意義上,其中該多個(gè)變體可任選地包括針對(duì)屏幕大小或其他因設(shè)備而異的性質(zhì)的優(yōu)化。各客戶機(jī)設(shè)備(和相應(yīng)的應(yīng)用)101和/或系統(tǒng)100的任何其他方由此能夠定位到用戶接口服務(wù)對(duì)象并隨后從其加載用戶接口組件。
可以直接由諸如無線設(shè)備之類的相應(yīng)客戶機(jī)設(shè)備101,或者替換地由運(yùn)營(yíng)商網(wǎng)關(guān)136之類的數(shù)據(jù)源(作為客戶機(jī)設(shè)備101與之交互的服務(wù)、或者連接至與客戶機(jī)設(shè)備101交互的服務(wù)的服務(wù))來將數(shù)據(jù)元組144放置在元組空間104中。例如,客戶機(jī)設(shè)備101可以是任何類型的計(jì)算機(jī)化的無線設(shè)備,諸如蜂窩電話、衛(wèi)星電話、PDA、膝上型計(jì)算機(jī)、等等。
參照?qǐng)D2,例如,通信網(wǎng)絡(luò)300包括一個(gè)或多個(gè)客戶機(jī)設(shè)備302,在本例中為無線電話設(shè)備,其利用無線網(wǎng)絡(luò)304來與具有網(wǎng)絡(luò)設(shè)備或服務(wù)器308和/或存儲(chǔ)設(shè)備310和/或數(shù)據(jù)源312的有線網(wǎng)絡(luò)306(例如,局域網(wǎng)LAN等)通信。網(wǎng)絡(luò)設(shè)備/服務(wù)器308和/或存儲(chǔ)設(shè)備310中的一者或其兩者可包括元組空間104、以及系統(tǒng)100的以上所討論的組件中的一些部分。進(jìn)一步,數(shù)據(jù)源312可包括處理器和與該處理器處于通信的存儲(chǔ)器,其中該存儲(chǔ)器包括具有元組生成邏輯的元組生成模塊,該元組生成邏輯能作用于從任何能作用于容易地與諸如基于web的交易服務(wù)之類的未知服務(wù)接口的數(shù)據(jù)源來生成多個(gè)數(shù)據(jù)元組。具體地,無線設(shè)備101包括計(jì)算機(jī)平臺(tái)314,該計(jì)算機(jī)平臺(tái)314具有諸如經(jīng)由應(yīng)用編程接口(API)320來與處理器318處于通信的存儲(chǔ)器316,該API 320使得能夠與諸如位于元組空間104中的客戶機(jī)標(biāo)識(shí)組件322和搜索服務(wù)接口324之類的任何駐留應(yīng)用交互。
另外,網(wǎng)絡(luò)設(shè)備或服務(wù)器308和/或存儲(chǔ)設(shè)備310和/或數(shù)據(jù)源312可包括處理器和與該處理器處于通信的存儲(chǔ)器,以及存儲(chǔ)在該存儲(chǔ)器中且可由該處理器執(zhí)行的接口、搜索和評(píng)級(jí)模塊(未描繪),其中該接口、搜索和評(píng)級(jí)模塊包括如以上所描述的元組空間104、服務(wù)元組143和評(píng)級(jí)服務(wù)元組118。無線網(wǎng)絡(luò)304經(jīng)由承運(yùn)商網(wǎng)絡(luò)326連接至有線網(wǎng)絡(luò)306。網(wǎng)絡(luò)設(shè)備或服務(wù)器308和/或存儲(chǔ)設(shè)備310和/或數(shù)據(jù)源312可以存在于具有提供社區(qū)管理能力和/或蜂窩電信服務(wù)所希望有的任何其他網(wǎng)絡(luò)組件的通信網(wǎng)絡(luò)300上。網(wǎng)絡(luò)設(shè)備或服務(wù)器308和/或存儲(chǔ)設(shè)備310和/或數(shù)據(jù)源312可以通過數(shù)據(jù)鏈路328和330與承運(yùn)商網(wǎng)絡(luò)326通信,數(shù)據(jù)鏈路328和330可以是諸如因特網(wǎng)、安全LAN、WAN或其他網(wǎng)絡(luò)之類的數(shù)據(jù)鏈路。承運(yùn)商網(wǎng)絡(luò)326控制向移動(dòng)交換中心(MSC)332發(fā)送的消息(一般為數(shù)據(jù)分組)。另外,承運(yùn)商網(wǎng)絡(luò)326藉由諸如因特網(wǎng)和/或POTS(普通老式電話業(yè)務(wù))之類的網(wǎng)絡(luò)330來與MSC 332通信。例如,在網(wǎng)絡(luò)330中,網(wǎng)絡(luò)、或因特網(wǎng)部分傳輸數(shù)據(jù)并且POTS部分傳輸話音信息。MSC 332可以由諸如用于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)網(wǎng)絡(luò)和/或因特網(wǎng)部分、以及用于話音信息的POTS部分之類的另一網(wǎng)絡(luò)336連接至多個(gè)基站(BTS)334。BTS 334最終例如分別使用諸如碼分多址(CDMA)和短消息服務(wù)(SMS)之類的預(yù)定話音和/或數(shù)據(jù)分組服務(wù)、或者任何其他越空方法來無線地向無線通信設(shè)備302廣播消息。由此,通信網(wǎng)絡(luò)300結(jié)合系統(tǒng)100(圖1)允許基于在元組空間中的數(shù)據(jù)對(duì)象之間所發(fā)現(xiàn)的關(guān)系來發(fā)現(xiàn)、創(chuàng)建和管理電子或在線用戶媒體接入。
應(yīng)當(dāng)注意,圖5是更全面地解說無線通信網(wǎng)絡(luò)的組件和本系統(tǒng)的一個(gè)方面的元件的相互關(guān)系的代表圖。通信網(wǎng)絡(luò)300僅是示例性的并可包括任何系統(tǒng),諸如無線通信設(shè)備302之類的遠(yuǎn)程模塊藉由該系統(tǒng)在彼此之間及之中和/或在包括但不限于無線網(wǎng)絡(luò)承運(yùn)商和/或服務(wù)器的無線和/或有線網(wǎng)絡(luò)的其他組件之間及之中越空地通信。
在圖3中,解說性移動(dòng)通信設(shè)備400可用作用于經(jīng)由圖形用戶界面(GUI)402來遠(yuǎn)程地接入和控制持久消息收發(fā)服務(wù)的客戶機(jī)設(shè)備,該GUI 402可包括諸如帶有四個(gè)光標(biāo)鍵406和選擇按鈕408以及左、中和右菜單按鈕410、412和414的撥號(hào)音多功能(DTMF)按鍵板404之類的物理控件。替換地或補(bǔ)充地,GUI 402可以是觸摸屏。GUI 402可包括如所描繪的顯示器416。替換地,具有觸摸屏能力的顯示器也可被用來提供軟輸入控件(未示出)。顯示器416可以描繪在消息收發(fā)選項(xiàng)卡420、播放器選項(xiàng)卡422、尋找選項(xiàng)卡424和鏈接選項(xiàng)卡426的選項(xiàng)卡階層下組織的動(dòng)態(tài)消息收發(fā)接口418。接口418可包括由用戶從不同設(shè)備(未示出)作出的歷史對(duì)話線程428。這些線程可以分別經(jīng)由菜單選項(xiàng)428、430和432來定位、選擇、保存。
GUI 402還可提供設(shè)置個(gè)人興趣的機(jī)會(huì),如434處所描繪的那樣??梢曰诩{入到用戶元組116(圖1)中的由“選擇興趣”控件434來設(shè)置的興趣132來接收廣告條幅436,廣告條幅436可以是交互式的。類似地,可以基于納入到用戶元組116(圖1)中的由“選擇興趣”控件434來設(shè)置的興趣132來呈現(xiàn)呼喊消息138。
鑒于以上描述的示例性系統(tǒng),已參照若干流程圖來描述可以根據(jù)所公開的主題內(nèi)容來實(shí)現(xiàn)的方法體系。盡管為使解釋簡(jiǎn)單化將這些方法體系圖示并描述為一系列框,但是應(yīng)當(dāng)理解并領(lǐng)會(huì)所要求保護(hù)的主題內(nèi)容不受框的次序所限,因?yàn)橐恍┛蚩砂床煌涡虬l(fā)生和/或與來自本文中描繪和描述的其他框并發(fā)地發(fā)生。不僅如此,實(shí)現(xiàn)本文中描述的方法體系不一定需要所解說的框的全體。另外還應(yīng)該領(lǐng)會(huì),本文中所公開的這些方法體系能夠被存儲(chǔ)在制造品上,以便于把此類方法體系輸送和傳遞給計(jì)算機(jī)。如本文中使用的術(shù)語(yǔ)制造品旨在涵蓋可以從任何計(jì)算機(jī)可讀設(shè)備、載體、或介質(zhì)訪問的計(jì)算機(jī)程序。
在圖4-5中,描繪了由用戶“A”702、用戶“B”704、用戶“C”706和第三方708經(jīng)由即時(shí)消息收發(fā)網(wǎng)關(guān)710與主存元組空間714的服務(wù)器712交互的解說性方法體系700。由元組空間714提供的持久消息收發(fā)服務(wù)716向訂戶群體718提供個(gè)人、群、呼喊、和廣告持久消息收發(fā)服務(wù)。
首先參照?qǐng)D4,如在720處所描繪的,用戶A 710通過向即時(shí)消息收發(fā)網(wǎng)關(guān)710傳送的方式來登錄持久消息收發(fā)服務(wù)。如在722處所描繪的,網(wǎng)關(guān)710使?fàn)顟B(tài)服務(wù)元組將用戶元組添加至元組空間714,并且如在724處所描繪的,使聯(lián)系人服務(wù)元組找到用戶A的伙伴。如在726處所描繪的,匹配的用戶元組由元組空間714返回給即時(shí)消息收發(fā)網(wǎng)關(guān)710,該即時(shí)消息收發(fā)網(wǎng)關(guān)710進(jìn)而如在728處所描繪的那樣向用戶B 704并且如在730處所描繪的那樣向用戶C706通知用戶A在線。如在732處所描繪的,由網(wǎng)關(guān)710放置的歷史服務(wù)元組找到用戶A 702的近期的消息元組,這些消息元組如在734處所描繪的那樣由元組空間714返回。
如在736處所描繪的,網(wǎng)關(guān)710向用戶A 702返回近期的用戶/群對(duì)話線程。為繼續(xù)進(jìn)行對(duì)話,用戶A 702如在738處所描繪的那樣向網(wǎng)關(guān)710發(fā)送旨在送給用戶B 704的消息。網(wǎng)關(guān)710如在740處所描繪的那樣使消息服務(wù)為此消息添加消息元組到元組空間714中并且如在742處所描繪的那樣向用戶B704中繼該消息。
如在744處所描繪的,用戶A還可以通過向網(wǎng)關(guān)710發(fā)送旨在送給包括用戶B 704和用戶C 706的群Z的消息來繼續(xù)群Z的群對(duì)話。網(wǎng)關(guān)710如在746處所描繪的那樣使消息服務(wù)為此群消息添加消息元組到元組空間714中并且如在748處所描繪的那樣向用戶B 704和如在750處所描繪的那樣向用戶C706中繼該群消息。
除了個(gè)人消息和群消息之外,持久消息收發(fā)服務(wù)還可以支持對(duì)那些共享興趣而并非是定義的群的一部分的用戶的呼喊消息。如在752處所描繪的,第三方向網(wǎng)關(guān)710發(fā)送呼喊消息,網(wǎng)關(guān)710如在754處所描繪的那樣使呼喊服務(wù)元組找到具有匹配的興趣的用戶元組。
繼而參照?qǐng)D5,元組空間714如在756處所描繪的那樣向網(wǎng)關(guān)710返回匹配的用戶元組。網(wǎng)關(guān)710進(jìn)而向那些標(biāo)識(shí)出的用戶,如分別在758處和760處所描繪的那樣向用戶A 702和用戶C 706中繼散置在用戶對(duì)話中的有目標(biāo)的(呼喊)消息。
除了個(gè)人、群、和呼喊持久消息收發(fā)之外,如在762處所描繪的,第三方708還可以向網(wǎng)關(guān)710發(fā)送有目標(biāo)的廣告(“廣告”)。作為響應(yīng),網(wǎng)關(guān)710如在764處所描繪的那樣使呼喊服務(wù)在元組空間714中找到具有匹配的興趣的用戶元組,該元組空間714進(jìn)而如在766處所描繪的那樣返回匹配的用戶元組。網(wǎng)關(guān)710向標(biāo)識(shí)出的用戶,如分別在768和770處所描繪的那樣向用戶A 702和用戶B 704散布這些有目標(biāo)的消息(廣告)。
當(dāng)用戶A如在780處所描繪的那樣使注銷指示去往網(wǎng)關(guān)710時(shí),網(wǎng)關(guān)710如在782處所描繪的那樣使?fàn)顟B(tài)服務(wù)元組將該用戶元組從元組空間714移除。網(wǎng)關(guān)710如在784處所描繪的那樣使聯(lián)系人服務(wù)元組在元組空間714中找到用戶A 702的伙伴。進(jìn)而,元組空間714如在786處所描繪的那樣向網(wǎng)關(guān)710返回匹配的用戶元組。網(wǎng)關(guān)710如分別在788和790處所描繪的那樣使用這些標(biāo)識(shí)出的伙伴來向用戶B 704和用戶C 706發(fā)送用戶A 702離線的消息。
結(jié)合本文中公開的方面描述的各種解說性邏輯、邏輯板塊、模塊、以及電路可用通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設(shè)計(jì)成執(zhí)行本文中描述的功能的任何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)作的一個(gè)或更多個(gè)微處理器、或任何其他此類配置。此外,至少一個(gè)處理器可包括能作用于執(zhí)行以上所描述的步驟和/或動(dòng)作中的一個(gè)或更多個(gè)步驟和/或動(dòng)作的一個(gè)或更多個(gè)模塊。
此外,結(jié)合本文中公開的方面描述的方法或算法的步驟和/或動(dòng)作可直接在硬件中、在由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中實(shí)施。軟件模塊可駐留在RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)盤、CD-ROM、或本領(lǐng)域中所知的任何其他形式的存儲(chǔ)介質(zhì)中。示例性存儲(chǔ)介質(zhì)可被耦合到處理器以使得該處理器能從/向該存儲(chǔ)介質(zhì)讀寫信息。在替換方案中,存儲(chǔ)介質(zhì)可以被整合到處理器。另外,在一些方面,處理器和存儲(chǔ)介質(zhì)可駐留在ASIC中。另外,ASIC可駐留在用戶終端中。在替換方案中,處理器和存儲(chǔ)介質(zhì)可作為分立組件駐留在用戶終端中。另外,在一些方面,方法或算法的步驟和/或動(dòng)作可作為一條代碼和/或指令或代碼和/或指令的任何組合或集合駐留在可被納入計(jì)算機(jī)程序產(chǎn)品中的機(jī)器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上。
盡管前面的公開討論了解說性方面和/或版本,但是應(yīng)注意,可在其中作出各種變更和改動(dòng)而不會(huì)脫離所描述的方面和/或如所附權(quán)利要求定義的方面的范圍。此外,盡管所描述的方面和/或形態(tài)的要素可能是以單數(shù)來描述或主張權(quán)利的,但是復(fù)數(shù)也是已構(gòu)想了的,除非顯式地聲明了限定于單數(shù)。另外,任何方面和/或形態(tài)的全部或部分可與任何其他方面和/或形態(tài)的全部或部分聯(lián)用,除非另外聲明。
應(yīng)當(dāng)領(lǐng)會(huì),被宣稱通過引用而納入本文的任何專利、出版物、或其他公開素材的全部或部分僅被納入到使所納入的素材不與在本公開中所闡述的存在的定義、語(yǔ)句、或其他公開素材相沖突的程度。因此,并且在必要的程度上,在本文中顯性地闡述的公開內(nèi)容取代通過引用而納入本文的任何沖突的素材。被宣稱通過引用而納入本文的但與在本文中所闡述的存在的定義、語(yǔ)句、或其他公開素材相沖突的任何素材或其部分僅被納入到在所納入的素材與存在的公開素材之間不發(fā)生沖突的程度。