国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      客戶(hù)端-服務(wù)器輸入法編輯器體系結(jié)構(gòu)的制作方法

      文檔序號(hào):6351866閱讀:163來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):客戶(hù)端-服務(wù)器輸入法編輯器體系結(jié)構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本公開(kāi)涉及輸入法編輯器。
      背景技術(shù)
      使用語(yǔ)標(biāo)文字(script)的語(yǔ)言,其中一個(gè)或兩個(gè)字符大致上對(duì)應(yīng)于一個(gè)詞或含義,具有比諸如計(jì)算機(jī)鍵盤(pán)或移動(dòng)設(shè)備鍵區(qū)的標(biāo)準(zhǔn)輸入設(shè)備上的鍵多的字符。例如,日語(yǔ)在片假名和平假名兩者中包含數(shù)百個(gè)字符。這些潛在多對(duì)一關(guān)聯(lián)的映射可以由便于在輸入設(shè) 備上未找到的字符和符號(hào)的輸入的輸入法編輯器來(lái)實(shí)現(xiàn)。因此,可以使用西式鍵盤(pán)來(lái)輸入日語(yǔ)字符。同樣地,可以使用用于以下的輸入法使用西式鍵盤(pán)或一些其他輸入設(shè)備來(lái)輸入包括表意符號(hào)的許多其他語(yǔ)目,諸如中文、韓語(yǔ)和其他語(yǔ)目。為了實(shí)現(xiàn)輸入法,用戶(hù)典型地必須安裝客戶(hù)端軟件應(yīng)用程序和庫(kù)。然而,當(dāng)用戶(hù)正在不屬于該用戶(hù)的計(jì)算機(jī)設(shè)備——例如公共計(jì)算機(jī)設(shè)備或工作環(huán)境中的第二計(jì)算機(jī)等——上工作時(shí),這樣的安裝可能是不方便的。此外,客戶(hù)端軟件應(yīng)用程序可能是存儲(chǔ)器和處理器密集的,因此對(duì)客戶(hù)端來(lái)說(shuō)是累贅的,以及可能是依賴(lài)于語(yǔ)言的,對(duì)于每一個(gè)期望的語(yǔ)言都需要應(yīng)用程序。

      發(fā)明內(nèi)容
      本說(shuō)明書(shū)描述了與輸入法編輯器,以及尤其具有客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的輸入法編輯器有關(guān)的技術(shù)。總的來(lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的一個(gè)有創(chuàng)新性的方面可以在包括以下動(dòng)作的方法中具體化接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,IME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求ME服務(wù)器被實(shí)例化,IME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中ME服務(wù)器是存儲(chǔ)在ME服務(wù)器和ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;基于一個(gè)或多個(gè)令牌來(lái)確定IME服務(wù)器可以在限制環(huán)境中被實(shí)例化;以及在限制環(huán)境中實(shí)例化ME服務(wù)器。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序??偟膩?lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,IME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求頂E服務(wù)器被實(shí)例化,IME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中頂E服務(wù)器是存儲(chǔ)在ME服務(wù)器和ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;對(duì)一個(gè)或多個(gè)令牌進(jìn)行處理;基于該處理來(lái)確定ME服務(wù)器可以被實(shí)例化;在限制環(huán)境中實(shí)例化ME服務(wù)器,限制環(huán)境限制ME服務(wù)器的功能;確定ME服務(wù)器沒(méi)有正在限制環(huán)境中執(zhí)行;以及響應(yīng)于該確定而停止ME服務(wù)器。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。總的來(lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化建立在第一輸入法編輯器αΜΕ)客戶(hù)端和第一 ME服務(wù)器之間的第一會(huì)話(huà);請(qǐng)求在第二 ME客戶(hù)端和第一服務(wù)器之間的第二會(huì)話(huà);確定第一 ME服務(wù)器的版本不同于第二IME客戶(hù)端的版本;響應(yīng)于確定第一 ME服務(wù)器的版本不同于第二 ME客戶(hù)端的版本,停止第一服務(wù)器;以及實(shí)例化第二 IME服務(wù)器,第二 IME服務(wù)器具有與第二客戶(hù)端的版本相同的版本。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。總的來(lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化建立在第一輸入法編輯器αΜΕ)客戶(hù)端和第一 ME服務(wù)器之間的第一會(huì)話(huà);請(qǐng)求在第二 ME客戶(hù)端和第一 ME服務(wù)器之間的第二會(huì)話(huà);確定第一 ME服務(wù)器的版本與第二 IME客戶(hù)端的版本相同;響應(yīng)于該確定,建立在第二 ME客戶(hù)端和第一 ME服務(wù)器之間的第二會(huì)話(huà);以及執(zhí)行第一會(huì)話(huà)和第二會(huì)話(huà)。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。 總的來(lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,IME服務(wù)器請(qǐng)求由第一 ME客戶(hù)端傳送;基于該頂E服務(wù)器請(qǐng)求來(lái)實(shí)例化第一 ME服務(wù)器;建立在第一 ME客戶(hù)端和第一 ME服務(wù)器之間的第一會(huì)話(huà);請(qǐng)求在第二 ME客戶(hù)端和第一 ME服務(wù)器之間的第二會(huì)話(huà);確定第一 ME服務(wù)器的版本不同于第二 IME客戶(hù)端的版本;響應(yīng)于確定第一 IME服務(wù)器的版本不同于第二 ME客戶(hù)端的版本,停止第一 ME服務(wù)器;實(shí)例化第二頂E服務(wù)器,第二 ME服務(wù)器具有與第二 ME客戶(hù)端的版本相同的版本;以及建立在第二 ME客戶(hù)端和第二 ME服務(wù)器之間的第二會(huì)話(huà)。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。總的來(lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化在輸入法編輯器αΜΕ)服務(wù)器處,接收從與該ME服務(wù)器通信的ME客戶(hù)端傳送給該頂E服務(wù)器的鍵事件,其中ME服務(wù)器是存儲(chǔ)在ME服務(wù)器和ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器,以及IME客戶(hù)端是基于鍵事件向IME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)頂E客戶(hù)端;通過(guò)ME服務(wù)器基于鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符;通過(guò)ME服務(wù)器生成與該一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及將該呈現(xiàn)信息從ME服務(wù)器傳送給IME客戶(hù)端,以顯示該一個(gè)或多個(gè)語(yǔ)標(biāo)字符。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序??偟膩?lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化從是無(wú)狀態(tài)的輸入法編輯器(IME)客戶(hù)端接收請(qǐng)求;基于該請(qǐng)求來(lái)實(shí)例化IME服務(wù)器,該ME服務(wù)器是有狀態(tài)的;生成在ME客戶(hù)端和ME服務(wù)器之間的通信路徑,該通信路徑具有對(duì)應(yīng)的路徑名;將該路徑名提供給IME客戶(hù)端;在IME服務(wù)器處接收鍵事件,該鍵事件通過(guò)通信路徑從ME客戶(hù)端被傳送給ME服務(wù)器;基于該鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符;生成與該一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及將該呈現(xiàn)信息從ME服務(wù)器傳送給IME客戶(hù)端,以顯示該一個(gè)或多個(gè)語(yǔ)標(biāo)字符。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序??偟膩?lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化在輸入法編輯器αΜΕ)客戶(hù)端處生成鍵事件,該ME客戶(hù)端是僅存儲(chǔ)它向ME服務(wù)器發(fā)出的請(qǐng)求以及為每一個(gè)鍵事件向ME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)ME客戶(hù)端;通過(guò)ME客戶(hù)端將該鍵事件記錄在鍵事件序列中,鍵事件序列存儲(chǔ)該鍵事件和先前被傳送給ME服務(wù)器的至少一個(gè)或多個(gè)先前鍵事件;將該鍵事件傳送給與ME客戶(hù)端通信的ME服務(wù)器,IME服務(wù)器是存儲(chǔ)在ME服務(wù)器和ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;在ME客戶(hù)端處,確定ME服務(wù)器已停止了運(yùn)作;響應(yīng)于ME服務(wù)器已停止了運(yùn)作的確定,建立與第二頂E服務(wù)器的會(huì)話(huà),第二 ME服務(wù)器是有狀態(tài)服務(wù)器;在建立該會(huì)話(huà)之后,將所記錄的鍵事件序列傳送給第二服務(wù)器。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序??偟膩?lái)說(shuō),在本說(shuō)明書(shū)中描述的主題的另一個(gè)方面可以在包括以下動(dòng)作的方法中具體化在設(shè)備上實(shí)例化輸入法編輯器αΜΕ)客戶(hù)端,該ME客戶(hù)端是無(wú)狀態(tài)ME客戶(hù)端;接收到設(shè)備的用戶(hù)輸入;基于該用戶(hù)輸入來(lái)生成鍵事件,鍵事件由該ME客戶(hù)端生成;將鍵 事件記錄在存儲(chǔ)在設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的鍵事件序列中;將該鍵事件傳送給與該IME客戶(hù)端通信并且是有狀態(tài)ME服務(wù)器的ME服務(wù)器;確定該ME服務(wù)器已停止了運(yùn)作;響應(yīng)于該確定來(lái)實(shí)例化第二頂E服務(wù)器,第二 ME服務(wù)器是有狀態(tài)ME服務(wù)器;建立在ME客戶(hù)端和第二 ME服務(wù)器之間的會(huì)話(huà);以及在建立該會(huì)話(huà)之后,將鍵事件序列傳送給第二ME服務(wù)器。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。在附圖和下面的描述中闡述了在本說(shuō)明書(shū)中描述的主題的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。主題的其他特征、方面和優(yōu)勢(shì)從描述、附圖和權(quán)利要求將變得顯而易見(jiàn)。此外,在本說(shuō)明書(shū)中描述的主題的方面,包括上述方面,可以被組合成一個(gè)或多個(gè)組合。


      圖I是圖示輸入法編輯器(IME)的一般客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的框圖。圖2是圖示示例客戶(hù)端-服務(wù)器IME體系結(jié)構(gòu)的框圖。圖3是圖示另一個(gè)示例客戶(hù)端-服務(wù)器IME體系結(jié)構(gòu)的框圖。圖4是圖示服務(wù)器的服務(wù)器體系結(jié)構(gòu)的功能框圖。圖5Α是圖示示例文本轉(zhuǎn)換的表。圖5Β是圖示與圖5Α的示例文本轉(zhuǎn)換相對(duì)應(yīng)的示例規(guī)則的示例圖。圖6Α圖示示例文本字符串轉(zhuǎn)換。圖6Β圖示示例字格陣(lattice)。圖7是圖示用于建立客戶(hù)端-服務(wù)器ME會(huì)話(huà)的示例過(guò)程的流程圖。圖8是圖示用于使用客戶(hù)端-服務(wù)器IME會(huì)話(huà)的文本和文本字符串轉(zhuǎn)換的示例過(guò)程的流程圖。圖9是圖示版本和協(xié)議檢查的框圖。圖10是圖示用于提供版本和協(xié)議檢查的示例過(guò)程的流程圖。圖11是圖示用于重建客戶(hù)端-服務(wù)器ME會(huì)話(huà)的示例過(guò)程的流程圖。
      在各附圖中相同的參考符號(hào)指示相同的元素。
      具體實(shí)施例方式I L O 概沭本說(shuō)明書(shū)描述了與包括客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的輸入法編輯器(IME)有關(guān)的技術(shù)。盡管將在日語(yǔ)的示例語(yǔ)境下描述示例實(shí)施例,但是,本公開(kāi)很容易適用于使用語(yǔ)標(biāo)文字的其他語(yǔ)目,包括中文、韓語(yǔ)和/或印度語(yǔ)??蛻?hù)端-服務(wù)器體系結(jié)構(gòu)的實(shí)施例包括與有狀態(tài)服務(wù)器對(duì)接的無(wú)狀態(tài)客戶(hù)端。如在本文中所使用的,術(shù)語(yǔ)“客戶(hù)端”是指訪問(wèn)服務(wù)提供商提供的服務(wù)的應(yīng)用程序或系統(tǒng)。術(shù)語(yǔ)“服務(wù)器”是指向客戶(hù)端提供服務(wù)的服務(wù)提供商。術(shù)語(yǔ)客戶(hù)端和服務(wù)器不一定是指獨(dú)立的計(jì)算機(jī)設(shè)備,因?yàn)榭蛻?hù)端和服務(wù)器,當(dāng)那些術(shù)語(yǔ)在本文中被使用時(shí),可以在單個(gè)計(jì)算機(jī)設(shè)備上實(shí)現(xiàn)。在服務(wù)器能夠存儲(chǔ)在服務(wù)器和客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的意義上,服務(wù)器是有狀態(tài)的。以這種方式,服務(wù)器知道對(duì)于特定會(huì)話(huà)在客戶(hù)端和服務(wù)器之間的通 信的完整歷史。在客戶(hù)端能夠存儲(chǔ)向服務(wù)器發(fā)出的請(qǐng)求,但是不存儲(chǔ)服務(wù)器響應(yīng)的意義上,客戶(hù)端是無(wú)狀態(tài)的。因此,客戶(hù)端不存儲(chǔ)對(duì)于特定會(huì)話(huà)在客戶(hù)端和服務(wù)器之間的通信的完整歷史。依據(jù)在本文中提供的客戶(hù)端-服務(wù)器ME體系結(jié)構(gòu)的方面,在客戶(hù)端和服務(wù)器之間建立會(huì)話(huà)。會(huì)話(huà)是在頂E客戶(hù)端和ME服務(wù)器之間的半永久性信息交換。信息交換是半永久性的,因?yàn)樗ㄟ^(guò)在會(huì)話(huà)的壽命期間能夠被打開(kāi)或關(guān)閉的一個(gè)或多個(gè)連接來(lái)實(shí)現(xiàn)。簡(jiǎn)而言之,會(huì)話(huà)的壽命長(zhǎng)于在該會(huì)話(huà)期間發(fā)生的連接的壽命。服務(wù)器能夠協(xié)調(diào)與多個(gè)客戶(hù)端的并發(fā)會(huì)話(huà)。然而,服務(wù)器每次僅能夠與一個(gè)客戶(hù)端進(jìn)行通信。因此,在客戶(hù)端和服務(wù)器之間的連接被打開(kāi),以使得能夠進(jìn)行信息交換,隨后,被關(guān)閉,以使另一個(gè)客戶(hù)端能夠與服務(wù)器進(jìn)行通信??蛻?hù)端接收用戶(hù)輸入,服務(wù)器基于用戶(hù)輸入來(lái)執(zhí)行功能并且基于其來(lái)生成呈現(xiàn)信息,以及客戶(hù)端基于呈現(xiàn)信息來(lái)呈現(xiàn)或顯示字符。使用無(wú)狀態(tài)客戶(hù)端和有狀態(tài)服務(wù)器,客戶(hù)端-服務(wù)器體系結(jié)構(gòu)提供能夠跨任何各種操作系統(tǒng)或平臺(tái)實(shí)現(xiàn)的可移植和獨(dú)立于語(yǔ)言的解決方案??蛻?hù)端-服務(wù)器體系結(jié)構(gòu)的實(shí)施例包括在限制服務(wù)器的功能的限制環(huán)境或沙盒中執(zhí)行的服務(wù)器。以這種方式,以某種方式建立與服務(wù)器的會(huì)話(huà)的惡意客戶(hù)端或用戶(hù)不能通過(guò)服務(wù)器訪問(wèn)敏感信息。客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的實(shí)施例使客戶(hù)端和/或服務(wù)器以及在客戶(hù)端和服務(wù)器之間的通信協(xié)議能夠在不需要它們正在其上執(zhí)行的系統(tǒng)被重啟的情況下被更新(例如,從當(dāng)前版本到新版本)。當(dāng)IME客戶(hù)端和IME服務(wù)器的不同版本具有兼容協(xié)議時(shí),維持在IME客戶(hù)端和ME服務(wù)器之間的連接。僅當(dāng)ME客戶(hù)端是比ME服務(wù)器舊的版本,并且協(xié)議是不兼容的時(shí),連接才停止。客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的實(shí)施例還使會(huì)話(huà)能夠在有狀態(tài)服務(wù)器崩潰、中止、凍結(jié)或另外恰當(dāng)?shù)亟K止運(yùn)作,并且新的服務(wù)器被實(shí)例化的情況下被恢復(fù)。例如,IME客戶(hù)端在輸入鍵事件發(fā)生時(shí)將每一個(gè)輸入鍵事件發(fā)送給ME服務(wù)器,并且維護(hù)會(huì)話(huà)的每一個(gè)輸入鍵事件。當(dāng)ME服務(wù)器被重啟(例如,由于崩潰、更新等)時(shí),ME客戶(hù)端將向ME服務(wù)器發(fā)送鍵事件的整個(gè)輸入序列??梢詫⑸鲜鎏卣鹘M合成各種組合。例如,可以將沙盒化特征與使客戶(hù)端和/或服務(wù)器以及在客戶(hù)端和服務(wù)器之間的通信協(xié)議能夠在沒(méi)有重啟的情況下被更新的特征進(jìn)行組合。同樣地,這些特征可以單獨(dú)地或結(jié)合使會(huì)話(huà)能夠在有狀態(tài)服務(wù)器崩潰、中止、凍結(jié)或另外恰當(dāng)?shù)亟K止運(yùn)作的情況下被恢復(fù)的特征被組合??蛻?hù)端提供用戶(hù)接口和呈現(xiàn)器,而服務(wù)器執(zhí)行核心ME功能。該核心ME功能包括文本組成和從第一音節(jié)文字(例如,平假名)到第二音節(jié)文字(例如,日本漢字)的文本轉(zhuǎn)
      換的管理??蛻?hù)端使用客戶(hù)端在其上執(zhí)行的設(shè)備的特定操作系統(tǒng)所提供的ME框架來(lái)實(shí)現(xiàn)。客戶(hù)端的功能包括接收用戶(hù)輸入(例如,用戶(hù)輸入“a”);基于用戶(hù)輸入來(lái)生成鍵事件;將鍵事件傳送給服務(wù)器;接收服務(wù)器提供的呈現(xiàn)信息;以及提供呈現(xiàn)信息以向用戶(hù)顯示。如在下面進(jìn)一步詳細(xì)論述的,可以顯示基于鍵事件的對(duì)應(yīng)字符(例如,響應(yīng)于“a”鍵事件的 “ * ”),和/或可以展示候選字符列表,從該候選字符列表,用戶(hù)可以選擇適當(dāng)?shù)暮蜻x者??蛻?hù)端可以使用用于顯示列表的任何實(shí)施方式。在web瀏覽器的示例情況下,可以使用Ajax和 javascript。客戶(hù)端可以作為在設(shè)備上執(zhí)行的應(yīng)用程序被提供,以及一個(gè)或多個(gè)客戶(hù)端可以與特定服務(wù)器通信。這樣的應(yīng)用程序從輸入設(shè)備(例如,鼠標(biāo)、鍵盤(pán)、觸摸板)接收文本輸入,并且可以包括但不限于web瀏覽器、呈現(xiàn)程序、字處理器和/或電子表格程序。與服務(wù)器不同,客戶(hù)端不管理任何狀態(tài)。因?yàn)榭蛻?hù)端的角色是無(wú)狀態(tài)的,所以對(duì)特定操作系統(tǒng)的ME框架的依賴(lài)性比傳統(tǒng)ME的那些小得多。在一些實(shí)施例中,可以使用進(jìn)程間通信(IPC)來(lái)建立在客戶(hù)端和服務(wù)器之間的通信。IPC提供用于在一個(gè)或多個(gè)進(jìn)程(例如,客戶(hù)端進(jìn)程和服務(wù)器進(jìn)程)中的多個(gè)線(xiàn)程之中進(jìn)行數(shù)據(jù)交換的一組技術(shù)。在一些實(shí)施例中,這些進(jìn)程可能正運(yùn)行于一個(gè)設(shè)備上。在其他實(shí)施例中,這些進(jìn)程可能正運(yùn)行于由網(wǎng)絡(luò)連接的多個(gè)設(shè)備上。IPC方法技術(shù)可以包括遠(yuǎn)程程序調(diào)用(RPC)。RPC使子程序或程序(例如,服務(wù)器)能夠在與調(diào)用程序應(yīng)用(例如,客戶(hù)端)的地址空間不同的另一個(gè)地址空間中執(zhí)行。在一些實(shí)施例中,服務(wù)器不必使用對(duì)應(yīng)操作系統(tǒng)的ME框架被實(shí)例化。這使服務(wù)器進(jìn)程平臺(tái)獨(dú)立并且可移植。例如,運(yùn)行于不同平臺(tái)上的不同ME可以連接到同一服務(wù)器。服務(wù)器對(duì)從客戶(hù)端接收的所有鍵事件進(jìn)行處理、生成呈現(xiàn)信息并且將呈現(xiàn)信息傳送給客戶(hù)端。呈現(xiàn)信息包括待在客戶(hù)端應(yīng)用上顯示的當(dāng)前和/或部分轉(zhuǎn)換的文本,以及用于任何候選窗口的內(nèi)容?!?. O客戶(hù)端-服務(wù)器體系結(jié)構(gòu)圖I是圖示輸入法編輯器(ME)的一般客戶(hù)端-服務(wù)器體系結(jié)構(gòu)10的框圖。客戶(hù)端-服務(wù)器體系結(jié)構(gòu)10包括無(wú)狀態(tài)客戶(hù)端12、有狀態(tài)服務(wù)器14和在它們間的通信會(huì)話(huà)16。通信會(huì)話(huà)16包括導(dǎo)致請(qǐng)求18從客戶(hù)端12被傳送以由服務(wù)器14接收的鍵事件,以及在從服務(wù)器14傳送以由客戶(hù)端12接收的響應(yīng)20中提供的呈現(xiàn)信息。核心ME功能被寫(xiě)成盡可能可移植的,并且由服務(wù)器14執(zhí)行。如在本文中所使用的,術(shù)語(yǔ)“可移植”指示服務(wù)器14在各種操作系統(tǒng)上運(yùn)行的能力,所述操作系統(tǒng)包括但不限于Windows、Mac、Linux和/或Google Chrome0簡(jiǎn)而言之,服務(wù)器14不知道操作系統(tǒng)功能,并且提供它可能需要的任何所需的功能。客戶(hù)端12封裝服務(wù)器的接口,并且處理用于每一個(gè)操作系統(tǒng)的ME應(yīng)用程序接口(API)。如上所述,一個(gè)或多個(gè)客戶(hù)端12可以與服務(wù)器14通信。在客戶(hù)端12和服務(wù)器14在共同設(shè)備上被執(zhí)行的情況下,在下面進(jìn)一步詳細(xì)論述的,用戶(hù)典型地每次僅與一個(gè)客戶(hù)端12對(duì)接。然而,用戶(hù)可以在客戶(hù)端之間快速切換,即使在與一個(gè)客戶(hù)端對(duì)接的中間時(shí)。例如,將文本輸入到第一客戶(hù)端(例如,為特定設(shè)備上的字處理器應(yīng)用實(shí)例化的客戶(hù)端)的用戶(hù)可以在將文本鍵入到第一客戶(hù)端的中間時(shí),將其注意力切換到第二客戶(hù)端(例如,為該特定設(shè)備上的web-瀏覽器應(yīng)用實(shí)例化的客戶(hù)端)。因此,與字處理器應(yīng)用相關(guān)聯(lián)的客戶(hù)端12的輸入狀態(tài)需要被保留。如在下面進(jìn)一步詳細(xì)論述的,服務(wù)器14可以通過(guò)建立與每一個(gè)客戶(hù)端12的特有會(huì)話(huà),接受并保持跟蹤來(lái)自不同客戶(hù)端12的鍵事件。在會(huì)話(huà)期間,可以打開(kāi)及關(guān)閉在客戶(hù)端12和服務(wù)器14之間的多個(gè)連接。即使在客戶(hù)端12和服務(wù)器14之間的連接已被關(guān)閉時(shí),會(huì)話(huà)可以仍然是活動(dòng)的。例如,可以打開(kāi)連接以使鍵事件從客戶(hù)端12被傳送給服務(wù)器14、或使呈現(xiàn)信息從服務(wù)器14被傳送給客戶(hù)端 12。然而,各連接可能具有在會(huì)話(huà)時(shí)間幀內(nèi)的較短生命期。換句話(huà)說(shuō),連接的生命期短于其相關(guān)聯(lián)的會(huì)話(huà)的生命期。例如,客戶(hù)端12打開(kāi)到服務(wù)器14的連接、將鍵事件發(fā)送給服務(wù)器12、從服務(wù)器12接收響應(yīng),然后連接被關(guān)閉。因此,每一個(gè)傳送的鍵事件附有會(huì)話(huà)標(biāo)識(shí)(SID)0 SID使服務(wù)器14能夠?qū)哪男┛蛻?hù)端12接收了哪些鍵事件保持跟蹤。更具體地,與在一個(gè)客戶(hù)端12和服務(wù)器14之間的會(huì)話(huà)相對(duì)應(yīng)的SID對(duì)與在另一個(gè)客戶(hù)端12和服務(wù)器14之間的會(huì)話(huà)相對(duì)應(yīng)的SID來(lái)說(shuō)是唯一的。一個(gè)例外是客戶(hù)端12傳送來(lái)創(chuàng)建會(huì)話(huà)的命令(例如,“CreateSession”)。當(dāng)客戶(hù)端12在沒(méi)有SID的情況下調(diào)用該命令時(shí),服務(wù)器14創(chuàng)建會(huì)話(huà)、生成對(duì)應(yīng)SID并且將該SID傳送給客戶(hù)端12。在下面提供了該過(guò)程的示例。如上面介紹的,客戶(hù)端12使用特定于操作系統(tǒng)或特定于平臺(tái)的ME框架來(lái)實(shí)現(xiàn)。示例ME框架可以包括用于微軟Windows的文本服務(wù)框架(TSF)或IMM32。ME框架是使得能夠進(jìn)行高級(jí)、獨(dú)立于源的文本輸入的應(yīng)用編程接口(API)??梢酝ㄟ^(guò)使能包括西塞羅無(wú)感知應(yīng)用支持(CUAS)的無(wú)感知應(yīng)用支持(UAS),來(lái)支持不知道特定ME框架(例如,是ME框架中立的)的應(yīng)用。作為非限制性示例,將描述使用TSF的實(shí)施例。在TSF環(huán)境中,“ImeTextService”處理會(huì)話(huà)請(qǐng)求、經(jīng)由用戶(hù)的鍵輸入以及來(lái)自服務(wù)器14的響應(yīng)。當(dāng)ME在客戶(hù)端12處被最初激活時(shí),客戶(hù)端12以“ImeTextService: :Activate”打開(kāi)ME用戶(hù)接口(ME-UI)、建立到服務(wù)器14的連接并且開(kāi)始會(huì)話(huà)。ME-UI可以作為入口、或在當(dāng)前應(yīng)用內(nèi)的窗口(例如,在字處理應(yīng)用中彈出的ME-UI窗口)被提供。每次用戶(hù)輸入字符(例如,利用每一個(gè)鍵事件),“ImeTextService: :OnTestKeyDown”就被調(diào)用。發(fā)送給服務(wù)器14的客戶(hù)端12鍵事件包括鍵代碼和修飾符,以及作為響應(yīng),客戶(hù)端12從服務(wù)器14接收呈現(xiàn)信息。當(dāng)服務(wù)器14前進(jìn)到對(duì)鍵輸入進(jìn)行處理時(shí),“ImeTextService: :HandleKey”被調(diào)用。將發(fā)送自服務(wù)器14的呈現(xiàn)信息應(yīng)用到客戶(hù)端應(yīng)用中的ME-UI。更具體地,客戶(hù)端繪制預(yù)編輯文本并且將段屬性添加到文本,如果適當(dāng)?shù)脑?huà)。如果來(lái)自服務(wù)器14的響應(yīng)包括多個(gè)候選者,則客戶(hù)端12在ME-UI中以候選者列表顯示候選者。調(diào)用“ImeCandidateWindow”來(lái)呈現(xiàn)候選數(shù)據(jù)??蛻?hù)端12可以通過(guò)語(yǔ)言欄提供若干功能。這樣的功能可以包括但不限于配置、顯示輸入狀態(tài)以及示出幫助文檔。以“ImeButtonMenu”實(shí)現(xiàn)這些功能。
      服務(wù)器14可以作為組件對(duì)象模型(COM)進(jìn)程外服務(wù)器被執(zhí)行。使用COM接口來(lái)調(diào)用服務(wù)器14的方法,以及發(fā)送和接收數(shù)據(jù)。“ConverterSession”是實(shí)現(xiàn)從客戶(hù)端12調(diào)用的函數(shù)的類(lèi)。如果尚未存在,貝的COM實(shí)例,并且客戶(hù)端12通過(guò)該實(shí)例建立與服務(wù)器14的連接。服務(wù)器14實(shí)現(xiàn)方法,所述方法包括但不限于“ConverterSession: :CreateSession() ”,其請(qǐng)求新會(huì)話(huà)被創(chuàng)建;“ConverterSession: :DeleteSession O ”,其結(jié)束會(huì)話(huà);以及 “ConverterSession: : SendKey (ULONG key_code, ULONGkey_modif iers, VARIANT*response) ”,其將鍵事件從客戶(hù)端12發(fā)送給服務(wù)器14,并且從服務(wù)器14接收呈現(xiàn)信息。盡管已在Windows操作系統(tǒng)的語(yǔ)境下提供了上述實(shí)施例,然而,客戶(hù)端-服務(wù)器IME體系結(jié)構(gòu)很容易適用于其他操作系統(tǒng)。例如,客戶(hù)端-服務(wù)器ME體系結(jié)構(gòu)可以使用用于Leopard操作系統(tǒng)的IMKit來(lái)實(shí)現(xiàn)。§ 2. I示例客戶(hù)端-服務(wù)器體系結(jié)構(gòu)實(shí)施方式可以使用各種類(lèi)型的體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)圖I的系統(tǒng),在圖2和3中示出了體系結(jié)構(gòu) 的示例。圖2是圖示示例客戶(hù)端-服務(wù)器IME體系結(jié)構(gòu)的框圖。在圖2的客戶(hù)端-服務(wù)器ME體系結(jié)構(gòu)中,客戶(hù)端12和服務(wù)器14在同一設(shè)備上被執(zhí)行。如在本文中所使用的,術(shù)語(yǔ)設(shè)備是指處理或計(jì)算機(jī)設(shè)備,其可以包括但不限于臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、服務(wù)器系統(tǒng)、個(gè)人數(shù)字助理(PDA)和/或移動(dòng)電話(huà)。客戶(hù)端12作為應(yīng)用程序APP1、APP2、. . . APPn被提供,其每一個(gè)包括ME動(dòng)態(tài)鏈接庫(kù)(DLL) 30和對(duì)應(yīng)的ME-UI 32。為對(duì)應(yīng)的用戶(hù)程序?qū)嵗恳粋€(gè)客戶(hù)端12,例如,可以已為字處理程序、瀏覽器程序和電子郵件程序分別實(shí)例化了所示的三個(gè)客戶(hù)端12。服務(wù)器14包括有狀態(tài)會(huì)話(huà)管理器34、轉(zhuǎn)換引擎核心36和資源38。在一些實(shí)施例中,服務(wù)器14可以在沙盒40內(nèi)被執(zhí)行。有狀態(tài)會(huì)話(huà)管理器34協(xié)調(diào)來(lái)自多個(gè)客戶(hù)端12 (例如,電子郵件應(yīng)用和web瀏覽器應(yīng)用)的多個(gè)連接。圖3是圖示另一個(gè)示例客戶(hù)端-服務(wù)器IME體系結(jié)構(gòu)的框圖??蛻?hù)端12或多個(gè)客戶(hù)端12在一個(gè)或多個(gè)客戶(hù)端設(shè)備12上被執(zhí)行,以及服務(wù)器14在獨(dú)立設(shè)備44上被執(zhí)行??蛻?hù)端設(shè)備42通過(guò)網(wǎng)絡(luò)46與服務(wù)器進(jìn)行通信,網(wǎng)絡(luò)46可以包括但不限于局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)(例如,因特網(wǎng))??蛻?hù)端-服務(wù)器體系結(jié)構(gòu)可以使用諸如IPC的單線(xiàn)程和單連接模型來(lái)實(shí)現(xiàn)。服務(wù)器14僅打開(kāi)一個(gè)端口,并且對(duì)來(lái)自客戶(hù)端12的多個(gè)連接進(jìn)行處理。單線(xiàn)程和單連接模型提供簡(jiǎn)單性和可移植性。幾乎所有平臺(tái)都支持單線(xiàn)程和單連接IPC。如上所述,客戶(hù)端12藉每個(gè)鍵事件(例如,按下[A]按鈕)連接到服務(wù)器14,并且從服務(wù)器14獲取對(duì)應(yīng)于鍵事件的呈現(xiàn)信息(例如,[A]應(yīng)當(dāng)被顯示為日語(yǔ)[A ])。連接是無(wú)狀態(tài)的,因?yàn)槠錄](méi)有保持活動(dòng),并且獨(dú)立于在客戶(hù)端12和服務(wù)器14之間的任何其他連接??偟膩?lái)說(shuō),每一個(gè)IPC連接的壽命非常短。例如,在服務(wù)器將呈現(xiàn)信息傳送給客戶(hù)端12之后,它立即關(guān)閉連接并且等待其他連接。在一些情況下,如果例如惡意用戶(hù)連接到服務(wù)器并且什么都沒(méi)做,則服務(wù)器14可能被阻止。在其他情況下,如果例如惡意服務(wù)器沒(méi)有向客戶(hù)端12發(fā)送任何響應(yīng),則客戶(hù)端12可能被阻止。為了防止這樣的情況,為每一個(gè)連接實(shí)現(xiàn)超時(shí)。更具體地,如果客戶(hù)端12或服務(wù)器14沒(méi)有在預(yù)先確定的時(shí)間段(例如,500兆秒)內(nèi)發(fā)送消息,則關(guān)閉當(dāng)前連接。一旦服務(wù)器已被實(shí)例化,服務(wù)器就為在客戶(hù)端和服務(wù)器之間的通信生成連接路徑名。一些實(shí)施例例如利用命名的管道路徑名,其關(guān)于用于其他會(huì)話(huà)的命名的管道路徑名是唯一的。通過(guò)使用唯一的命名的管道路徑名,阻止惡意用戶(hù)在有效服務(wù)器被實(shí)例化之前生成假冒命名的管線(xiàn)服務(wù)器。因此,通過(guò)生成隨機(jī)、多位路徑名(例如,128位隨機(jī)生成的路徑名)來(lái)提供路徑名。服務(wù)器將路徑名存儲(chǔ)在用戶(hù)簡(jiǎn)檔目錄中。在服務(wù)器被實(shí)例化之后,但是在發(fā)送第一鍵事件之前,客戶(hù)端從用戶(hù)簡(jiǎn)檔目錄檢索路徑名,并且使用檢索到的路徑名來(lái)傳送鍵事件。當(dāng)惡意應(yīng)用在服務(wù)器啟動(dòng)之前(S卩,在服務(wù)器能夠?qū)?shí)際路徑名保存到用戶(hù)簡(jiǎn)檔之前)將假冒路徑名保存在用戶(hù)簡(jiǎn)檔中時(shí),另一個(gè)行為(exploit)可以發(fā)生。在這樣的情況下,以及如果客戶(hù)端使用了該假冒路徑名來(lái)連接,則客戶(hù)端可能連接到惡意或假冒的服務(wù)器。例如,惡意應(yīng)用將路徑名保存到用戶(hù)簡(jiǎn)檔,該路徑名將導(dǎo)致客戶(hù)端將鍵事件信息發(fā)送給惡意服務(wù)器,而不是預(yù)期的服務(wù)器。然而,客戶(hù)端-服務(wù)器體系結(jié)構(gòu)10可以實(shí)現(xiàn)使客戶(hù)端能夠知道其正連接到有效服務(wù)器的技術(shù)。一個(gè)示例技術(shù)可以包括服務(wù)器鎖定保留路徑名的文件。其他示例技術(shù)可以包括操作系統(tǒng)提供路徑的對(duì)等的進(jìn)程ID (PID)、提供知道對(duì)等的PID的API和/或經(jīng)由連接 發(fā)送PID。此外,路徑名應(yīng)當(dāng)僅是有效用戶(hù)可訪問(wèn)的。因此,可以將有效安全令牌提供給對(duì)應(yīng)API。安全令牌使本地系統(tǒng)、管理員和當(dāng)前用戶(hù)能夠進(jìn)行訪問(wèn)。拒絕其他用戶(hù)訪問(wèn)。PID是操作系統(tǒng)分配給每一個(gè)進(jìn)程的特有ID。服務(wù)器或客戶(hù)端可以通過(guò)使用操作系統(tǒng)提供的API來(lái)識(shí)別其對(duì)等的ID。一旦進(jìn)程確定了其對(duì)等的PID,該進(jìn)程就知道與該P(yáng)ID有關(guān)的各種信息,包括對(duì)應(yīng)于該P(yáng)ID的所有者(例如,用戶(hù)名)。通過(guò)檢查所有者,服務(wù)器或客戶(hù)端進(jìn)程可以知道其對(duì)等的用戶(hù)ID。如果用戶(hù)名不同于預(yù)期的用戶(hù)名,則服務(wù)器或客戶(hù)端進(jìn)程可以拒絕連接。如上所述,服務(wù)器14可以在沙盒內(nèi)被執(zhí)行。沙盒是程序在其中運(yùn)行的限制環(huán)境,以及其典型地由使諸如服務(wù)器進(jìn)程的進(jìn)程能夠在限制環(huán)境內(nèi)執(zhí)行的庫(kù)進(jìn)行幫助。當(dāng)被沙盒化時(shí),服務(wù)器進(jìn)程具有有限制的功能。在一些實(shí)施例中,服務(wù)器進(jìn)程僅可以訪問(wèn)CPU周期和存儲(chǔ)器。例如,在這樣的實(shí)施例中,沙盒化服務(wù)器進(jìn)程不能寫(xiě)入盤(pán)或顯示其自身窗口。服務(wù)器進(jìn)程的允許的功能由明確政策調(diào)控。沙盒庫(kù)被包括在服務(wù)器進(jìn)程代碼中。在一些實(shí)施例中,代碼不在虛擬機(jī)內(nèi)部執(zhí)行,因此,服務(wù)器進(jìn)程以原生速度操作并且可直接訪問(wèn)操作系統(tǒng)API。沙盒利用特定操作系統(tǒng)提供來(lái)允許不會(huì)對(duì)計(jì)算機(jī)作出持久改變的代碼執(zhí)行或訪問(wèn)是置信的信息的安全性。沙盒提供的體系結(jié)構(gòu)和確切保證取決于操作系統(tǒng)。例如,在Windows中,代碼在沒(méi)有發(fā)起系統(tǒng)調(diào)用的情況下不能執(zhí)行任何形式的I/O。在大部分系統(tǒng)調(diào)用中,Windows執(zhí)行安全檢查。沙盒確保安全檢查因如在對(duì)應(yīng)政策中定義的禁止服務(wù)器進(jìn)程執(zhí)行的特定動(dòng)作而失敗。在一些實(shí)施例中,沙盒依賴(lài)于操作系統(tǒng)機(jī)制提供的保護(hù),操作系統(tǒng)機(jī)制可以包括但不限于令牌、對(duì)象和/或完整性級(jí)別。這些示例機(jī)制在保護(hù)操作系統(tǒng)、其配置和用戶(hù)數(shù)據(jù)方面是高度有效的。實(shí)際限制由政策配置,政策是可以被調(diào)用來(lái)定義服務(wù)器進(jìn)程的限制和許可的編程接口。在一些實(shí)施例中,控制限制的示例機(jī)制包括主令牌、模擬令牌和工作令牌。一些實(shí)施例進(jìn)一步包括完整性級(jí)別(例如,包括Windows VistaTM操作系統(tǒng)的實(shí)施例)。一旦服務(wù)器已被實(shí)例化,就可以執(zhí)行一系列檢查來(lái)確保服務(wù)器沒(méi)有正作為正常進(jìn)程(即,非沙盒化進(jìn)程)被執(zhí)行。這些檢查可以包括檢查客戶(hù)端設(shè)置的一個(gè)或多個(gè)令牌的值。服務(wù)器可以對(duì)該一個(gè)或多個(gè)令牌進(jìn)行處理,并且可以將作為結(jié)果的值與預(yù)期值進(jìn)行比較。如果作為結(jié)果的值不等于預(yù)期值,則服務(wù)器不被沙盒化,并且服務(wù)器被停止。另一個(gè)檢查可以包括將操作系統(tǒng)提供的標(biāo)識(shí)與預(yù)期標(biāo)識(shí)進(jìn)行比較。如果所提供的標(biāo)識(shí)等同于預(yù)期標(biāo)識(shí),則服務(wù)器被沙盒化,并且客戶(hù)端-服務(wù)器連接被執(zhí)行,如在本文中所提供的?!?.1.1示例服務(wù)器體系結(jié)構(gòu)和實(shí)施方式圖4是圖示服務(wù)器12的服務(wù)器體系結(jié)構(gòu)的功能框圖。服務(wù)器12包括會(huì)話(huà)層50、轉(zhuǎn)換器層52和存儲(chǔ)層54。會(huì)話(huà)層50包括解釋器模塊56、有狀態(tài)會(huì)話(huà)管理器34、鍵映射模塊58、鍵映射表60、轉(zhuǎn)換器模塊62和轉(zhuǎn)換器表64。轉(zhuǎn)換器層52提供轉(zhuǎn)換引擎核心36,并且包括轉(zhuǎn)換器功用模塊66、轉(zhuǎn)換器模塊68、一個(gè)或多個(gè)重寫(xiě)器模塊70和用戶(hù)歷史記錄72。存儲(chǔ)層包括詞典模塊74和資源38,資源38可以包括用戶(hù)詞典76和系統(tǒng)詞典78。鍵映射表60和轉(zhuǎn)換器表64是數(shù)據(jù)表,以及鍵映射模塊58和轉(zhuǎn)換器模塊62是訪問(wèn)存儲(chǔ)在相應(yīng)數(shù)據(jù)表中的數(shù)據(jù)的模塊。鍵映射表60提供用于從對(duì)轉(zhuǎn)換到命令的數(shù)據(jù)。每一 對(duì)包括輸入狀態(tài)和輸入事件(例如,鍵盤(pán)事件)。例如,“composition (組分)”狀態(tài)和[space(空格)]鍵事件對(duì)被約束到“StartConversion”命令,“conversion (轉(zhuǎn)換)”和[space]對(duì)被約束到“SelectNextCandidate”命令,以及“conversion”和[enter (回車(chē))]對(duì)被約束至IJ“CommitCurrentCandidate”命令。鍵映射58模塊基于鍵映射表60來(lái)執(zhí)行這樣的轉(zhuǎn)換。轉(zhuǎn)換器表64是用于例如羅馬字到平假名(例如,[a]到[A ]、[ka]到[々])的轉(zhuǎn)換的表。在下面參考圖5A論述了不例轉(zhuǎn)換器表64。轉(zhuǎn)換器62模塊基于轉(zhuǎn)換器表64來(lái)執(zhí)行這樣的轉(zhuǎn)換。會(huì)話(huà)層50對(duì)所有有狀態(tài)任務(wù)進(jìn)行處理,并且對(duì)所接收到的鍵事件進(jìn)行解釋。更具體地,會(huì)話(huà)層50從用戶(hù)接收所有鍵事件,并且將它們解釋成命令。將日語(yǔ)用作示例語(yǔ)言,與用戶(hù)輸入[a]相對(duì)應(yīng)的鍵事件被翻譯成[h ],和/或同樣,與用戶(hù)按下空格鍵[space]相對(duì)應(yīng)的鍵事件被翻譯成轉(zhuǎn)換命令。轉(zhuǎn)換器層52負(fù)責(zé)所有轉(zhuǎn)換,并且執(zhí)行ME的核心功能。轉(zhuǎn)換器模塊68提供用于將查詢(xún)字符串轉(zhuǎn)換成候選字符串的格陣的轉(zhuǎn)換功能。例如,當(dāng)查詢(xún)是[A P Q ) t ] (ainouta)時(shí),候選字符串的格陣可以被提供為[愛(ài)^歌、愛(ài)^詩(shī)、……](參見(jiàn)圖6B)。存儲(chǔ)層54管理詞典訪問(wèn)。存儲(chǔ)層54是底層,以及管理各種類(lèi)型的詞典數(shù)據(jù),并且是不可改變的。系統(tǒng)詞典78包括平假名鍵、日語(yǔ)詞值、詞性等的集合。系統(tǒng)詞典78所提供的示例集合可以包括{ (ai),愛(ài)(ai/love),noun}、{ O (no), ^ (no),particle}、{々于:(uta),歌(uta/S0ng),n0un}。用戶(hù)詞典76也提供這樣的集合,但是是易變的且用戶(hù)可修改的。如在下面進(jìn)一步詳細(xì)論述的,在會(huì)話(huà)層50中實(shí)現(xiàn)的示例過(guò)程可以包括服務(wù)器層從客戶(hù)端UI接收鍵事件;將該事件解釋成命令;向轉(zhuǎn)換器層52發(fā)送查詢(xún),如果必要的話(huà);從轉(zhuǎn)換器層52接收該查詢(xún)的結(jié)果;基于結(jié)果來(lái)生成呈現(xiàn)信息;以及將該呈現(xiàn)信息發(fā)送給客戶(hù)端Π。例如,并且將日語(yǔ)用作示例語(yǔ)言,解釋器模塊56可以將鍵事件解釋為插入字符(InsertCharacter)命令,以插入日語(yǔ)平假名字符(例如,[h ]),替代對(duì)應(yīng)的羅馬字字符(例如,[a])。特別參考圖5A和5B,會(huì)話(huà)層50可以對(duì)來(lái)自鍵事件的平假名字符串進(jìn)行組合。該字符串被稱(chēng)為預(yù)編輯。如在下面進(jìn)一步詳細(xì)論述的,預(yù)編輯作為被處理來(lái)提供轉(zhuǎn)換的查詢(xún)被提供給轉(zhuǎn)換器層52。該轉(zhuǎn)換可以由確定性有限自動(dòng)機(jī)(DFA)和規(guī)則來(lái)描述。圖5A圖示了以羅馬字到平假名轉(zhuǎn)換器表的形式的DFA 80的示例摘錄,以及圖5B圖示了其對(duì)應(yīng)的規(guī)則82。圖5A的示例轉(zhuǎn)換器表支持羅馬字到平假名轉(zhuǎn)換。例如,如果[a]被按下,則[A ]被插入。規(guī)則[kk]包括未決字段。更具體地,當(dāng)呈現(xiàn)信息被輸出到客戶(hù)端時(shí),DFA狀態(tài)被重置。然而,當(dāng)未決被指定時(shí),則當(dāng)前DFA狀態(tài)與未決狀態(tài)一起被寫(xiě)。例如,如果用戶(hù)輸入[kk],則[ο I被首先提供給客戶(hù)端,并且在那之后,ME假設(shè)[k]被輸入。如果用戶(hù)鍵入[kki],則輸出變成[9務(wù)]。現(xiàn)參考圖6A和6B,轉(zhuǎn)換器層52提供本公開(kāi)的客戶(hù)端-服務(wù)器ME的核心功能。如果解釋器模塊56將隨后的鍵事件解釋為轉(zhuǎn)換(Convert)命令以將預(yù)編輯(例如,[A^])轉(zhuǎn)換成一個(gè)或多個(gè)對(duì)應(yīng)的日語(yǔ)漢字字符([愛(ài)]),則該預(yù)編輯在會(huì)話(huà)層50被生成并且作為查詢(xún)被提供給轉(zhuǎn)換器層52。轉(zhuǎn)換器層50對(duì)該預(yù)編輯進(jìn)行處理,并且生成包括詞段的多個(gè)結(jié)果中的一個(gè)。每一個(gè)詞段被提供為候選者集,其每一個(gè)包括詞序列。每一個(gè)候選者包括相關(guān)聯(lián)的分值,以及基于分值的順序?qū)⒑蜻x者列出在候選者列表中。 圖6A圖示了示例文本字符串轉(zhuǎn)換(即,作為平假名文本字符串被提供的“My nameis Nakano (我的名字是中野)”)、包括多個(gè)詞段(例如,段O、段I、段2)的對(duì)應(yīng)的轉(zhuǎn)換輸出以及對(duì)應(yīng)于每一個(gè)詞段的候選者列表。每一個(gè)候選者列表包括可以被用戶(hù)選擇的一個(gè)或多個(gè)轉(zhuǎn)換候選者。詞段從內(nèi)部生成的詞格陣來(lái)生成,參考圖6B詳細(xì)論述了詞格陣的示例。轉(zhuǎn)換器層52基于語(yǔ)言模型從字符串查詢(xún)生成該格陣。圖6B圖示了對(duì)應(yīng)于[A P Q ) & ]的示例詞格陣,其是對(duì)應(yīng)于羅馬字文本字符串[ainouta]或英語(yǔ)的情歌的平假名文本字符串。轉(zhuǎn)換器層52生成圖6B的示例詞格陣,其包括句子的開(kāi)始(BOS)和句子的結(jié)束(EOS)指示符以及平假名字符的候選轉(zhuǎn)換。如上所述,格陣基于語(yǔ)言模型來(lái)生成。示例語(yǔ)言模型可以從可以作為文本數(shù)據(jù)被提供的聚集的web數(shù)據(jù)來(lái)構(gòu)建。如上所述,轉(zhuǎn)換器層52包括一個(gè)或多個(gè)重寫(xiě)器模塊70。重寫(xiě)器模塊70執(zhí)行補(bǔ)充處理,其可以包括基于(例如,從用戶(hù)歷史記錄72確定的)用戶(hù)的歷史來(lái)對(duì)候選者進(jìn)行重新排名。重寫(xiě)器在主轉(zhuǎn)換過(guò)程之后以及在用戶(hù)已提交了結(jié)果之后被調(diào)用。重寫(xiě)器模塊70可以對(duì)主轉(zhuǎn)換器的結(jié)果進(jìn)行調(diào)整,以及可以記錄用戶(hù)所選擇的候選者。示例重寫(xiě)器例程可以包括但不限于用戶(hù)歷史學(xué)習(xí)(例如,對(duì)段邊界進(jìn)行調(diào)整以及對(duì)候選者進(jìn)行重新排名)、單個(gè)曰本漢字詞典(例如,將單個(gè)日本漢字字符添加到候選者)、符號(hào)詞典(例如,將符號(hào)字符添加到候選者)、日期(例如,將日期字符串添加到候選者)、搭配詞典(例如,基于詞搭配來(lái)對(duì)候選者進(jìn)行重新排名)、以及數(shù)量(例如,擴(kuò)展候選者數(shù)量)。用戶(hù)歷史學(xué)習(xí)是特別有用的重寫(xiě)器例程,因?yàn)槠浠谌鐝挠脩?hù)歷史記錄72確定的用戶(hù)的輸入歷史來(lái)對(duì)轉(zhuǎn)換器結(jié)果進(jìn)行調(diào)整。當(dāng)用戶(hù)伴隨段邊界修改和段的候選者中的任一或兩者提交結(jié)果時(shí),用戶(hù)歷史學(xué)習(xí)重寫(xiě)器記錄包括查詢(xún)和用戶(hù)的修改的對(duì)。下一次用戶(hù)輸入所記錄的查詢(xún)時(shí),重寫(xiě)器基于所記錄的對(duì)來(lái)修改默認(rèn)邊界和候選者的順序。用戶(hù)歷史學(xué)習(xí)重寫(xiě)器使用緩存算法來(lái)記錄用戶(hù)的歷史。緩存算法可以包括但不限于最近最少使用(LRU)。存儲(chǔ)層54是底層,并且管理各種類(lèi)型的不可改變的詞典數(shù)據(jù)。存儲(chǔ)層54提供多個(gè)詞典查找,其包括共有前綴匹配(例如,鍵abc=>結(jié)果{a,ab, abc})、精確匹配(例如,鍵abc=>結(jié)果{abc})、以及預(yù)測(cè)性匹配(例如,鍵abc=>結(jié)果{abc, abed, abcef, ...})。共有前綴匹配用于普通轉(zhuǎn)換。預(yù)測(cè)性匹配即用于預(yù)測(cè)和建議,以及精確匹配用于調(diào)試。存儲(chǔ)層54支持多個(gè)詞典類(lèi)型,其可以包括但不限于TX、Darts和用戶(hù)。TX詞典作為主詞典被提供,并且可以通過(guò)TX使用層序一元階度序列(LOUDS)庫(kù)來(lái)構(gòu)造。用戶(hù)詞典76作為用戶(hù)注冊(cè)的純文本詞典被提供。本公開(kāi)的實(shí)施例可以將LOUDS用于主詞典的數(shù)據(jù)結(jié)構(gòu)。LOUDS是利用TRIE的數(shù)據(jù)結(jié)構(gòu)算法,TRIE是排序的樹(shù)數(shù)據(jù)結(jié)構(gòu),其用于存儲(chǔ)具有作為字符串被提供的鍵的關(guān)聯(lián)數(shù)組。使用LOUDS數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)被存儲(chǔ)為位序列,其使數(shù)據(jù)大小非常緊湊。主詞典包括LOUDS中的鍵索引、數(shù)組中的詞屬性以及LOUDS中的詞值。鍵索引指向詞屬性,以及每一個(gè)詞屬性指向詞值的對(duì)應(yīng)葉子,或詞屬性具有特殊的音譯位?!?3. O示例討稈
      現(xiàn)參考圖7,圖示了用于建立客戶(hù)端-服務(wù)器ME會(huì)話(huà)的示例過(guò)程801。過(guò)程801可以例如在單個(gè)計(jì)算機(jī)設(shè)備中使用上面的客戶(hù)端-服務(wù)器體系結(jié)構(gòu)10來(lái)實(shí)現(xiàn),其中步驟可以由操作系統(tǒng)執(zhí)行,步驟可以在客戶(hù)端上執(zhí)行,以及步驟可以在服務(wù)器端上執(zhí)行。過(guò)程801確定客戶(hù)端-服務(wù)器會(huì)話(huà)是否被請(qǐng)求(800)。例如,操作系統(tǒng)可以從客戶(hù)端接收會(huì)話(huà)請(qǐng)求,并且確定客戶(hù)端-服務(wù)器會(huì)話(huà)已被請(qǐng)求。如上所述,請(qǐng)求可以在客戶(hù)端應(yīng)用內(nèi)實(shí)例化頂E (例如,在web瀏覽器應(yīng)用內(nèi)實(shí)例化ME)時(shí)被自動(dòng)生成并且發(fā)出。如果會(huì)話(huà)尚未被請(qǐng)求,則過(guò)程801往回循環(huán)。如果會(huì)話(huà)已被請(qǐng)求,則可以發(fā)起服務(wù)器可執(zhí)行程序(例如,MEserver. exe),并且服務(wù)器可執(zhí)行程序引用(802)—個(gè)或多個(gè)令牌。例如,請(qǐng)求可以包括一個(gè)或多個(gè)令牌,以及服務(wù)器可執(zhí)行程序可以引用令牌。過(guò)程801基于所引用的令牌來(lái)確定服務(wù)器是否可以在沙盒內(nèi)被實(shí)例化(804)。例如,服務(wù)器可執(zhí)行程序可以對(duì)令牌進(jìn)行處理,以及如果令牌期望授權(quán)值,則可以在沙盒內(nèi)被實(shí)例化。如果服務(wù)器不能在沙盒內(nèi)被實(shí)例化,則該過(guò)程發(fā)出錯(cuò)誤(806),然后結(jié)束。相反,如果服務(wù)器可以在沙盒內(nèi)被實(shí)例化,則該過(guò)程實(shí)例化服務(wù)器(808)。例如,操作系統(tǒng)繼續(xù)執(zhí)行服務(wù)器可執(zhí)行程序以完全實(shí)例化服務(wù)器。過(guò)程801確定實(shí)例化的服務(wù)器是否被實(shí)際沙盒化(810)。作為非限制性示例,月艮務(wù)器可以執(zhí)行下面檢查中的一個(gè)或多個(gè)檢查客戶(hù)端設(shè)置的一個(gè)或多個(gè)令牌的值,以及如果所述值不等于預(yù)期值,則服務(wù)器不被沙盒化;將操作系統(tǒng)提供的標(biāo)識(shí)與預(yù)期標(biāo)識(shí)進(jìn)行比較,以及如果所提供的標(biāo)識(shí)等同于預(yù)期標(biāo)識(shí),則服務(wù)器被沙盒化。如果服務(wù)器沒(méi)有被沙盒化(即,服務(wù)器正作為正常進(jìn)程操作),則過(guò)程801發(fā)出錯(cuò)誤(806),然后結(jié)束。例如,操作系統(tǒng)可以基于對(duì)檢查的服務(wù)器響應(yīng)來(lái)發(fā)出錯(cuò)誤。如果服務(wù)器被沙盒化,則過(guò)程801確定與發(fā)出請(qǐng)求的應(yīng)用相關(guān)聯(lián)的用戶(hù)的用戶(hù)ID(812)。作為非限制性示例,可以將用戶(hù)ID與會(huì)話(huà)請(qǐng)求一起提供。過(guò)程801為在客戶(hù)端和服務(wù)器之間的通信信道生成路徑名(814)。例如,服務(wù)器生成路徑名作為隨機(jī)生成的128位路徑名。過(guò)程801將路徑名存儲(chǔ)到對(duì)應(yīng)于用戶(hù)ID的用戶(hù)簡(jiǎn)檔(816)。例如,服務(wù)器可以將路徑名存儲(chǔ)到在本地存儲(chǔ)器中的用戶(hù)簡(jiǎn)檔。在這樣的情況下,盡管服務(wù)器可以被沙盒化,然而,政策允許服務(wù)器寫(xiě)入本地存儲(chǔ)器。以這種方式,客戶(hù)端可以隨后訪問(wèn)用戶(hù)簡(jiǎn)檔來(lái)確定服務(wù)器所生成的路徑名。過(guò)程801為當(dāng)前會(huì)話(huà)發(fā)放會(huì)話(huà)ID(SID)(818),并且將該SID傳送給客戶(hù)端(820)。例如,服務(wù)器為與特定服務(wù)器的會(huì)話(huà)發(fā)放特有SID,并且使用基于所生成的路徑名來(lái)建立的連接將該SID傳送給服務(wù)器。執(zhí)行會(huì)話(huà)(822)。在下面參考圖8進(jìn)一步詳細(xì)描述了可以作為會(huì)話(huà)執(zhí)行的一部分被執(zhí)行的示例過(guò)程。該過(guò)程確定會(huì)話(huà)是否待被結(jié)束(824)。例如,如果用戶(hù)關(guān)閉客戶(hù)端應(yīng)用和/或在應(yīng)用內(nèi)的ME-UI,則可以在客戶(hù)端上生成結(jié)束會(huì)話(huà)請(qǐng)求。在一些實(shí)施方式中,服務(wù)器接收結(jié)束會(huì)話(huà)請(qǐng)求、刪除為特定會(huì)話(huà)分配的所有資源和/或?qū)ο?,并且?huì)話(huà)結(jié)束。如果會(huì)話(huà)沒(méi)有待被結(jié)束,則過(guò)程801往回循環(huán)到步驟822。如果會(huì)話(huà)待被結(jié)束,則會(huì)話(huà)被終止,并且過(guò)程801結(jié)束。圖8是圖示用于使用客戶(hù)端-服務(wù)器IME會(huì)話(huà)的文本和文本字符串轉(zhuǎn)換的示例過(guò)程901的流程圖。示例過(guò)程901可以在執(zhí)行會(huì)話(huà)(例如,圖7的822)期間被執(zhí)行。如下所述,過(guò)程910的部分在客戶(hù)端中被執(zhí)行,以及該過(guò)程的其他部分在服務(wù)器中被執(zhí)行。
      過(guò)程901確定用戶(hù)輸入是否已被檢測(cè)到(900)。例如,客戶(hù)端監(jiān)視用戶(hù)輸入(例如,按鍵、鼠標(biāo)點(diǎn)擊、屏幕觸摸)。如果用戶(hù)輸入尚未被檢測(cè)到,則過(guò)程901往回循環(huán)。如果用戶(hù)輸入已被檢測(cè)到,則過(guò)程901生成對(duì)應(yīng)的鍵事件(902),并且將該鍵事件和SID發(fā)送給服務(wù)器(904)。例如,客戶(hù)端基于用戶(hù)輸入來(lái)生成鍵事件,并且將該鍵事件和SID發(fā)送給服務(wù)器。在服務(wù)器處,過(guò)程901解釋鍵事件(906)并且確定鍵事件是否對(duì)應(yīng)于字符插入命令(908)。如果鍵事件不對(duì)應(yīng)于字符插入命令,則過(guò)程901在910處繼續(xù)。如果鍵事件對(duì)應(yīng)于字符插入命令,則過(guò)程901在912處繼續(xù)。如果鍵事件對(duì)應(yīng)于字符插入命令,則過(guò)程901基于鍵事件來(lái)確定對(duì)應(yīng)的字符(912)并且生成呈現(xiàn)信息(914)。例如,服務(wù)器基于鍵事件來(lái)確定對(duì)應(yīng)的字符并且生成呈現(xiàn)信息。過(guò)程901將呈現(xiàn)信息發(fā)送給客戶(hù)端(916)。例如,服務(wù)器通過(guò)連接將呈現(xiàn)信息發(fā)送給客戶(hù)端??蛻?hù)端12響應(yīng)于接收呈現(xiàn)信息,在客戶(hù)端顯示器上或在諸如字處理程序的與客戶(hù)端12相關(guān)聯(lián)的環(huán)境中顯示對(duì)應(yīng)的字符(918),然后結(jié)束。在服務(wù)器14處,如果鍵事件不對(duì)應(yīng)于字符插入命令,則過(guò)程901確定鍵事件是否對(duì)應(yīng)于轉(zhuǎn)換命令(910)。如果鍵事件對(duì)應(yīng)于轉(zhuǎn)換命令,則過(guò)程901在920處繼續(xù)。如果鍵事件不對(duì)應(yīng)于轉(zhuǎn)換命令,則過(guò)程901在930處繼續(xù)。在920處,過(guò)程901基于自從上一個(gè)轉(zhuǎn)換執(zhí)行之后從客戶(hù)端設(shè)備接收到的鍵事件來(lái)確定預(yù)編輯(920)。由于服務(wù)器是有狀態(tài)的,所以服務(wù)器知道關(guān)于特定會(huì)話(huà)的鍵事件和命令。過(guò)程901將預(yù)編輯作為查詢(xún)提供以進(jìn)行轉(zhuǎn)換(922)、生成對(duì)應(yīng)的呈現(xiàn)信息(924)、將呈現(xiàn)信息發(fā)送給客戶(hù)端(926)??蛻?hù)端12響應(yīng)于接收呈現(xiàn)信息,在客戶(hù)端顯示器上或在諸如字處理程序的與客戶(hù)端12相關(guān)聯(lián)的環(huán)境中顯示對(duì)應(yīng)的字符(928),然后結(jié)束。在930處,如果鍵事件不對(duì)應(yīng)于字符插入命令,則另一個(gè)命令被指示。其他命令可以包括移動(dòng)光標(biāo)命令和文本選擇命令。過(guò)程901在服務(wù)器處對(duì)所指示的命令進(jìn)行處理(930)。過(guò)程901生成呈現(xiàn)信息(932)、將呈現(xiàn)信息發(fā)送給客戶(hù)端(934)??蛻?hù)端12響應(yīng)于接收呈現(xiàn)信息,在客戶(hù)端顯示器上或在諸如字處理程序的與客戶(hù)端12相關(guān)聯(lián)的環(huán)境中顯示對(duì)應(yīng)的字符(936),然后結(jié)束?,F(xiàn)將描述示例客戶(hù)端-服務(wù)器會(huì)話(huà)。該示例客戶(hù)端-服務(wù)器會(huì)話(huà)作為本公開(kāi)的實(shí)施例的非限制性說(shuō)明被提供。示例客戶(hù)端-服務(wù)器會(huì)話(huà)包括下面的鍵序列[a]、[i]、[space]、[space]和[enter]。更具體地,客戶(hù)端接收指示[a]已被輸入(例如,[a]鍵已在鍵盤(pán)上被按下)的輸入(參見(jiàn)圖8的900)??蛻?hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層將該鍵事件解釋成InsertCharacter命令(參見(jiàn)圖8的906和908),并且將該命令與[a] —起發(fā)送給預(yù)編輯。預(yù)編輯將[a](日語(yǔ)羅馬字)轉(zhuǎn)換成[A ](日語(yǔ)平假名)。預(yù)編輯將結(jié)果“ A (a)”返回給會(huì)話(huà)層。對(duì)應(yīng)的呈現(xiàn)信息被生成并且被傳送給客戶(hù)端(參見(jiàn)圖8的912、914和916),并且客戶(hù)端向用戶(hù)顯示[A ](參見(jiàn)圖8的918)??蛻?hù)端從用戶(hù)接收指示[i]已被輸入(例如,[i]鍵已在鍵盤(pán)上被按下)的輸入,并且確定鍵輸入被檢測(cè)到(參見(jiàn)圖8的900)??蛻?hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層將該鍵事件解釋成InsertCharacter命令(參見(jiàn)圖8的906和908),并且將該命令與[i] 一起發(fā)送給預(yù)編輯。 預(yù)編輯將[i](日語(yǔ)羅馬字)轉(zhuǎn)換成[P ](日語(yǔ)平假名)。由于服務(wù)器是有狀態(tài)的,所以其知道先前的轉(zhuǎn)換包括了 [a]到[A ]。因此,預(yù)編輯現(xiàn)將結(jié)果“ A P (ai)”返回給會(huì)話(huà)層。對(duì)應(yīng)的呈現(xiàn)信息被生成并且被傳送給客戶(hù)端(參見(jiàn)圖8的912、914和916),并且客戶(hù)端向用戶(hù)顯示[A P ](參見(jiàn)圖8的918)??蛻?hù)端然后從用戶(hù)接收指示[space]已被輸入(例如,空格鍵已在鍵盤(pán)上被按下)的輸入(參見(jiàn)圖8的900)??蛻?hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層將該鍵事件解釋成Convert命令(參見(jiàn)圖8的906和910)。由于服務(wù)器是有狀態(tài)的,所以服務(wù)器知道先前的字符序列是“ A P (ai)”,并且將該命令與“A P (ai)”一起發(fā)送給轉(zhuǎn)換器。轉(zhuǎn)換器將[A P ](日語(yǔ)平假名)轉(zhuǎn)換成[愛(ài)](日語(yǔ)漢字)。轉(zhuǎn)換器將結(jié)果“愛(ài)”返回給會(huì)話(huà)層(參見(jiàn)圖8的920和922)。對(duì)應(yīng)的呈現(xiàn)信息被生成并且被傳送給客戶(hù)端(參見(jiàn)圖8的924和926),并且客戶(hù)端向用戶(hù)顯示[愛(ài)](參見(jiàn)圖8的928)??蛻?hù)端然后從用戶(hù)接收指示[space]已被再次輸入(例如,空格鍵已在鍵盤(pán)上被按下)的輸入(參見(jiàn)圖8的900)??蛻?hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層將該鍵事件解釋成Convert命令(參見(jiàn)圖8的906和910)。由于服務(wù)器是有狀態(tài)的,所以服務(wù)器知道從[A P ](日語(yǔ)平假名)到[愛(ài)](日語(yǔ)漢字)的先前轉(zhuǎn)換。該信息被提供給轉(zhuǎn)換器,其確定從“ A P”(日語(yǔ)平假名)到日語(yǔ)片假名的一個(gè)或多個(gè)候選轉(zhuǎn)換。更具體地,候選者列表被生成并且包括對(duì)應(yīng)于
      P”的一個(gè)或多個(gè)日語(yǔ)片假名候選者。在該示例中,候選者列表可以包括[愛(ài)、合、A P、相、……](日語(yǔ)漢字、片假名或平假名)。將候選者列表返回給會(huì)話(huà)層,并且基于其來(lái)生成呈現(xiàn)信息(參見(jiàn)圖8的920、922和924)。將呈現(xiàn)信息傳送給客戶(hù)端(參見(jiàn)圖8的926),并且客戶(hù)端向用戶(hù)顯示候選者列表[愛(ài)、合、A P、相、……],其中第一候選者[愛(ài)]被高亮或另外被指示為當(dāng)前選擇的候選者(參見(jiàn)圖8的928)。為了從候選者列表選擇不同的候選者,用戶(hù)可以輸入鍵事件(例如,按壓下“丨”向下鍵)。響應(yīng)于用戶(hù)輸入,客戶(hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層將該鍵事件解釋為SelectNextCandidate命令并且對(duì)該命令進(jìn)行處理(參見(jiàn)圖8的906和930)。對(duì)應(yīng)的呈現(xiàn)信息被生成并且被傳送給客戶(hù)端(參見(jiàn)圖8的932和934)??蛻?hù)端向用戶(hù)顯示候選者列表[愛(ài)、合、A P、相、……],其中第二候選者[合]被高亮或另外被指示為當(dāng)前選擇的候選者(參見(jiàn)圖8的936)。為了從候選者列表選擇當(dāng)前選擇的候選者,用戶(hù)提供對(duì)應(yīng)的輸入(例如,按下[enter])。響應(yīng)于用戶(hù)輸入,客戶(hù)端生成鍵事件并且將該鍵事件和SID傳送給服務(wù)器(參見(jiàn)圖8的902和904)。當(dāng)接收了鍵事件時(shí),會(huì)話(huà)層生成用于將所選擇的候選者(例如,[合])提交給客戶(hù)端的對(duì)應(yīng)的響應(yīng)。響應(yīng)由客戶(hù)端接收,客戶(hù)端在應(yīng)用中展示所選擇的候選者(例如,[合])。如果沒(méi)有進(jìn)一步文本待被輸入或轉(zhuǎn)換,則客戶(hù)端可以將取消會(huì)話(huà)消息與SID —起發(fā)送給服務(wù)器。作為響應(yīng),服務(wù)器結(jié)束客戶(hù)端的會(huì)話(huà)?,F(xiàn)參考圖9和10,客戶(hù)端-服務(wù)器體系結(jié)構(gòu)的實(shí)施例使服務(wù)器能夠在沒(méi)有重啟客戶(hù)端的情況下被更新。例如,服務(wù)器可以在不必關(guān)閉和重啟可能正與該服務(wù)器進(jìn)行通信的客戶(hù)端應(yīng)用程序的情況下被更新。更具體地,當(dāng)新近連接的客戶(hù)端具有與當(dāng)前服務(wù)器兼容的通信協(xié)議時(shí),更新可以被沉默地(即,在沒(méi)有警示用戶(hù)的情況下)執(zhí)行。作為更新的結(jié)果,當(dāng)前服務(wù)器被停止,并且新的服務(wù)器被實(shí)例化。在客戶(hù)端的通信協(xié)議的版本與新的服務(wù)器 的通信協(xié)議的版本不兼容的情況下,該情況被檢測(cè)到,并且用戶(hù)被提示。圖9是圖示版本和協(xié)議檢查的框圖。會(huì)話(huà)在時(shí)間段h在當(dāng)前客戶(hù)端1002和當(dāng)前服務(wù)器1004之間正在進(jìn)行。在時(shí)間段h,新的客戶(hù)端1006試圖建立與當(dāng)前服務(wù)器1004的會(huì)話(huà)。盡管在圖9中未圖示,然而,如果新的客戶(hù)端1006和當(dāng)前服務(wù)器1004是同一版本的,則該會(huì)話(huà)被建立,并且當(dāng)前客戶(hù)端1002和新的客戶(hù)端1006兩者都與當(dāng)前服務(wù)器1004進(jìn)行交互。在圖9的框圖中,在時(shí)間段tl,確定新的客戶(hù)端的版本比當(dāng)前服務(wù)器1004的版本新。由于新的客戶(hù)端的版本比當(dāng)前服務(wù)器的版本新,所以當(dāng)前服務(wù)器1004被終止,并且新的服務(wù)器1008被實(shí)例化。在新的客戶(hù)端1006和新的服務(wù)器1008之間建立會(huì)話(huà)1010。因此,當(dāng)前會(huì)話(huà)1000被暫時(shí)掛起。不向與當(dāng)前客戶(hù)端1002對(duì)接的用戶(hù)警示該暫時(shí)掛起。新的服務(wù)器1008由自動(dòng)更新進(jìn)程安裝,其是檢查最新服務(wù)器版本并且自動(dòng)安裝它的進(jìn)程??梢蕴峁┗A(chǔ)設(shè)施來(lái)執(zhí)行該功能,該基礎(chǔ)設(shè)施包括用來(lái)安裝請(qǐng)求的軟件并且保持其最新的程序。例如,更新服務(wù)可以在計(jì)算機(jī)設(shè)備上實(shí)現(xiàn)并且可以通過(guò)因特網(wǎng)連接向遠(yuǎn)程ME支持服務(wù)器請(qǐng)求必要的更新。該程序可以重寫(xiě)當(dāng)前服務(wù)器可執(zhí)行文件。在一些實(shí)施例中,該程序可以將當(dāng)前服務(wù)器可執(zhí)行文件重命名成臨時(shí)文件,并且將新的服務(wù)器二進(jìn)制安裝到默認(rèn)的服務(wù)器路徑。在這種情況下,當(dāng)前服務(wù)器正在運(yùn)行,而可執(zhí)行文件已用新的文件替換。在時(shí)間段丨2,確定當(dāng)前客戶(hù)端1002和新的服務(wù)器1008的通信協(xié)議是否是兼容的。更具體地,協(xié)議包括用于存儲(chǔ)協(xié)議版本值的特殊字段。當(dāng)新的服務(wù)器1008被初始化時(shí),該服務(wù)器的協(xié)議版本值被存儲(chǔ)到本地文件。當(dāng)前客戶(hù)端1002上載該文件,并且檢查該服務(wù)器的協(xié)議版本與客戶(hù)端的協(xié)議版本是否相同。在一些實(shí)施例中,兼容協(xié)議表可以被提供并且可以被實(shí)現(xiàn)為確定服務(wù)器的協(xié)議版本與客戶(hù)端的協(xié)議版本是否相同。如果通信協(xié)議是兼容的,則在當(dāng)前客戶(hù)端1002和新的服務(wù)器1008之間建立會(huì)話(huà)1012。在這種情況下,當(dāng)前客戶(hù)端1002的服務(wù)器版本比新的服務(wù)器1008的服務(wù)器版本舊。因此,新的服務(wù)器版本可以與舊的服務(wù)器版本向后兼容。如果通信協(xié)議不兼容,則在當(dāng)前客戶(hù)端1002和新的服務(wù)器1008之間的會(huì)話(huà)仍然是關(guān)閉的,并且向用戶(hù)警示在客戶(hù)端上的錯(cuò)誤。例如,可以生成指示用戶(hù)重啟特定客戶(hù)端應(yīng)用的警示。
      特別參考圖10,圖示了用于提供版本和協(xié)議檢查的示例過(guò)程1101。圖10的過(guò)程1101假定當(dāng)前客戶(hù)端和當(dāng)前服務(wù)器正通過(guò)當(dāng)前會(huì)話(huà)進(jìn)行通信。過(guò)程1101確定會(huì)話(huà)是否已從新的客戶(hù)端被請(qǐng)求(1100)。例如,操作系統(tǒng)可以確定客戶(hù)端是否已生成了會(huì)話(huà)請(qǐng)求。如果會(huì)話(huà)尚未從新的客戶(hù)端被請(qǐng)求,則過(guò)程1101往回循環(huán)。如果會(huì)話(huà)已為新的客戶(hù)端被請(qǐng)求,則該過(guò)程確定當(dāng)前服務(wù)器版本是否比新的客戶(hù)端版本舊(1102)。更具體地,提供用于存儲(chǔ)服務(wù)器版本值的特殊字段。當(dāng)當(dāng)前服務(wù)器被初始化時(shí),該服務(wù)器的版本值也被存儲(chǔ)到本地文件。如果當(dāng)前服務(wù)器版本不比新的客戶(hù)端版本舊,則過(guò)程1101在1104處繼續(xù)。例如,操作系統(tǒng)可以對(duì)服務(wù)器版本值進(jìn)行比較。如果當(dāng)前服務(wù)器版本比新的客戶(hù)端版本舊,則過(guò)程1101停止當(dāng)前服務(wù)器(1106)并且與當(dāng)前客戶(hù)端的當(dāng)前會(huì)話(huà)結(jié)束。例如,操作系統(tǒng)可以停止當(dāng)前服務(wù)器。過(guò)程1101實(shí)例化新的服務(wù)器(1108)。過(guò)程1101連接新的服務(wù)器和新的客戶(hù)端(1110)。過(guò)程1101確定當(dāng) 前客戶(hù)端協(xié)議與新的服務(wù)器協(xié)議是否兼容(1112)。例如,操作系統(tǒng)可以確定協(xié)議是否是兼容的。如果當(dāng)前客戶(hù)端協(xié)議與新的服務(wù)器協(xié)議兼容,則過(guò)程1101在1114處繼續(xù)。過(guò)程1101將當(dāng)前客戶(hù)端連接到新的服務(wù)器,并且會(huì)話(huà)在其之間被建立(1114)。例如,服務(wù)器生成路徑名,并且向當(dāng)前客戶(hù)端發(fā)放SID。過(guò)程1101使用新的服務(wù)器來(lái)對(duì)當(dāng)前客戶(hù)端和新的客戶(hù)端事件進(jìn)行處理(1118 ),然后結(jié)束。返回到1112,如果當(dāng)前客戶(hù)端協(xié)議與新的服務(wù)器協(xié)議不兼容,則過(guò)程1101使用新的服務(wù)器來(lái)僅對(duì)新的客戶(hù)端事件進(jìn)行處理(1116)。過(guò)程1101在當(dāng)前客戶(hù)端處生成錯(cuò)誤(1120),然后結(jié)束。例如,操作系統(tǒng)可以在當(dāng)前客戶(hù)端處生成指示用戶(hù)重啟客戶(hù)端的錯(cuò)誤。返回到1104,過(guò)程1101確定新的客戶(hù)端協(xié)議與當(dāng)前服務(wù)器協(xié)議是否兼容(1104)。例如,操作系統(tǒng)可以對(duì)協(xié)議進(jìn)行比較。如果新的客戶(hù)端協(xié)議與當(dāng)前服務(wù)器協(xié)議兼容,則使用當(dāng)前服務(wù)器來(lái)對(duì)當(dāng)前客戶(hù)端事件和新的客戶(hù)端事件進(jìn)行處理(1122),然后該過(guò)程結(jié)束。如果新的客戶(hù)端協(xié)議與當(dāng)前服務(wù)器協(xié)議不兼容,則在新的客戶(hù)端處發(fā)出錯(cuò)誤(1124)。使用當(dāng)前服務(wù)器來(lái)對(duì)當(dāng)前客戶(hù)端事件進(jìn)行處理(1126),然后該過(guò)程結(jié)束。如在上面詳細(xì)論述的,客戶(hù)端-服務(wù)器ME體系結(jié)構(gòu)10包括無(wú)狀態(tài)客戶(hù)端,其將每一個(gè)鍵事件發(fā)送給服務(wù)器并且從服務(wù)器接收呈現(xiàn)信息。如果在輸入會(huì)話(huà)期間,服務(wù)器被終止并重啟,則可能向客戶(hù)端提供非預(yù)期的呈現(xiàn)信息。為了處理這樣的情況,本公開(kāi)的客戶(hù)端-服務(wù)器ME提供重啟終止的服務(wù)器、檢測(cè)服務(wù)器的重啟、以及將記錄的鍵事件序列發(fā)送給服務(wù)器以帶來(lái)當(dāng)前新的會(huì)話(huà)。鍵事件序列可以被存儲(chǔ)較短時(shí)段。例如,鍵事件序列可以被存儲(chǔ)當(dāng)前會(huì)話(huà)的生命期,然后在結(jié)束該會(huì)話(huà)時(shí)被清除。作為另一個(gè)示例,鍵事件序列可以被存儲(chǔ)在當(dāng)前會(huì)話(huà)內(nèi)的連接的生命期。如上所述,連接可以在服務(wù)器已將與最后鍵事件序列相對(duì)應(yīng)的呈現(xiàn)信息傳送給客戶(hù)端之后被終止。發(fā)送鍵事件序列引起客戶(hù)端-服務(wù)器ME體系結(jié)構(gòu)IO無(wú)限循環(huán),其可以使服務(wù)器重復(fù)崩潰,并且使這樣的崩潰鍵事件序列能夠被識(shí)別并記錄。例如,由于特定鍵事件序列,可以引起服務(wù)器崩潰。當(dāng)重啟服務(wù)器時(shí),為了將當(dāng)前新的服務(wù)器的狀態(tài)帶到先前會(huì)話(huà),可以將該相同鍵事件序列傳送回新近實(shí)例化的服務(wù)器。然而,并且由于特定鍵事件序列可能是錯(cuò)誤的鍵事件序列,也可能引起新的服務(wù)器崩潰?,F(xiàn)參考圖11,圖示了用于重建客戶(hù)端-服務(wù)器ME會(huì)話(huà)的示例過(guò)程1201。過(guò)程1201確定在客戶(hù)端處是否生成了事件(1200)。例如,客戶(hù)端12可以基于用戶(hù)輸入來(lái)監(jiān)視鍵事件。如果在客戶(hù)端處沒(méi)有生成事件,則過(guò)程1201往回循環(huán)。如果在客戶(hù)端處生成了事件,則過(guò)程1201將該事件記錄在事件序列中(1202)。更具體地,客戶(hù)端可以將事件存儲(chǔ)在客戶(hù)端進(jìn)程在其上執(zhí)行的設(shè)備的本地存儲(chǔ)器中的事件序列中。將該事件傳送給服務(wù)器(1204),以及過(guò)程1201確定服務(wù)器是否終止(1206)。例如,客戶(hù)端12、ME支持框架或計(jì)算機(jī)操作系統(tǒng)可以確定服務(wù)器14是否已停止了運(yùn)作。如果服務(wù)器沒(méi)有終止,則過(guò)程在1208處繼續(xù),其中在客戶(hù)端處從服務(wù)器接收對(duì)應(yīng)于該事件的呈現(xiàn)信息(1208)。過(guò)程1201確定會(huì)話(huà)是否待被結(jié)束(1212)。如果會(huì)話(huà)沒(méi)有待被結(jié)束,則過(guò)程1201往回循環(huán)到1200。如果會(huì)話(huà)待被結(jié)束,則過(guò)程1201結(jié)束。返回到1206,如果服務(wù)器終止(1206),則過(guò)程1201確定該終止是否是連續(xù)終止(例如,第二、第三或第四連續(xù)終止)(1207 )。例如,在每一個(gè)服務(wù)器終止之后,IME客戶(hù)端12、ME支持框架或操作系統(tǒng)可以使計(jì)數(shù)器遞增。如果終止是連續(xù)終止,則生成錯(cuò)誤(1211),并 且過(guò)程1201結(jié)束。錯(cuò)誤可以在客戶(hù)端處被生成,并且可以向用戶(hù)顯示。錯(cuò)誤禁止了服務(wù)器實(shí)例化和終止的無(wú)限循環(huán)。如果終止不是連續(xù)終止,則過(guò)程1201實(shí)例化新的服務(wù)器(1210)。更具體地,如在上面詳細(xì)論述的,操作系統(tǒng)可以實(shí)例化新的服務(wù)器??蛻?hù)端連接到新的服務(wù)器,并且過(guò)程1201建立新的會(huì)話(huà)(1214)。將記錄的事件序列從客戶(hù)端傳送到新的服務(wù)器(1216)。使用事件序列,服務(wù)器14可以實(shí)例化客戶(hù)端12的會(huì)話(huà),其處于與在服務(wù)器14終止時(shí)客戶(hù)端12的先前會(huì)話(huà)相同的狀態(tài)。過(guò)程1201然后往回循環(huán)到1206。在本說(shuō)明書(shū)中描述的本公開(kāi)和所有功能操作的實(shí)施例可以以數(shù)字電子電路、或者以計(jì)算機(jī)軟件、固件或硬件,包括在本說(shuō)明書(shū)中公開(kāi)的結(jié)構(gòu)以及其結(jié)構(gòu)等同物、或者以以上的一個(gè)或多個(gè)的組合來(lái)實(shí)現(xiàn)??梢詫⒈竟_(kāi)的實(shí)施例實(shí)現(xiàn)為一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品,即一個(gè)或多個(gè)計(jì)算機(jī)程序指令模塊,其被編碼在計(jì)算機(jī)可讀介質(zhì)上、由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置的操作。計(jì)算機(jī)可讀介質(zhì)可以是機(jī)器可讀存儲(chǔ)設(shè)備、機(jī)器可讀存儲(chǔ)基片、存儲(chǔ)器設(shè)備、形成機(jī)器可讀傳播信號(hào)的物質(zhì)成分、或以上的一個(gè)或多個(gè)的組合。術(shù)語(yǔ)“數(shù)據(jù)處理裝置”包含用于處理數(shù)據(jù)的所有裝置、設(shè)備以及機(jī)器,包括作為示例可編程處理器、計(jì)算機(jī)、或多個(gè)處理器或計(jì)算機(jī)。除硬件外,裝置可以包括為討論中的計(jì)算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議堆棧、數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)、或以上一個(gè)或多個(gè)的組合的代碼。傳播信號(hào)是非自然生成的信號(hào),例如機(jī)器生成的電的、光的或電磁的信號(hào),其被生成來(lái)編碼信息以傳送給適當(dāng)?shù)慕邮掌餮b置。計(jì)算機(jī)程序(也稱(chēng)作程序、軟件、軟件應(yīng)用、腳本或代碼)可以以任何形式的編程語(yǔ)言編寫(xiě),包括編譯或解釋語(yǔ)言,并且其可以以任何形式部署,包括作為獨(dú)立程序或作為模塊、組件、子程序、或適于在計(jì)算環(huán)境中使用的其他單元。計(jì)算機(jī)程序不必對(duì)應(yīng)于文件系統(tǒng)中的文件??梢詫⒊绦虼鎯?chǔ)在保留其他程序或數(shù)據(jù)的文件(例如,存儲(chǔ)在標(biāo)記語(yǔ)言文檔中的一個(gè)或多個(gè)腳本)的一部分、專(zhuān)用于討論中的程序的單個(gè)文件或者多個(gè)協(xié)調(diào)文件(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子程序或部分代碼的文件)中。可以將計(jì)算機(jī)程序部署為在一個(gè)計(jì)算機(jī)上或者在位于一個(gè)地點(diǎn)或跨多個(gè)地點(diǎn)分布并且由通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。在本說(shuō)明書(shū)中描述的過(guò)程和邏輯流可以由執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序的一個(gè)或多個(gè)可編程處理器執(zhí)行以通過(guò)操作輸入數(shù)據(jù)并且生成輸出來(lái)執(zhí)行功能。所述過(guò)程和邏輯流還可以由專(zhuān)用邏輯電路執(zhí)行,以及裝置還可以被實(shí)現(xiàn)為專(zhuān)用邏輯電路,專(zhuān)用邏輯電路例如FPGA (現(xiàn)場(chǎng)可編程門(mén)陣列)或ASIC (專(zhuān)用集成電路)。適于執(zhí)行計(jì)算機(jī)程序的處理器包括,作為示例,通用和專(zhuān)用微處理器兩者,以及任何類(lèi)型的數(shù)字計(jì)算機(jī)的任何一個(gè)或多個(gè)處理器。通常,處理器將從只讀存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器或兩者接收指令和數(shù)據(jù)。計(jì)算機(jī)的主要元件是用于執(zhí)行指令的處理器和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。通常,計(jì)算機(jī)還將包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)海量存儲(chǔ)設(shè)備,例如磁的、磁光盤(pán)或光盤(pán),或可操作地耦接以從所述一個(gè)或多個(gè)海量存儲(chǔ)設(shè)備接收數(shù)據(jù)或向所述一個(gè)或多個(gè)海量存儲(chǔ)設(shè)備傳送數(shù)據(jù),或兩者。然而,計(jì)算機(jī)不必具有這樣的設(shè)備。此外,可以將計(jì)算機(jī)嵌入另一個(gè)設(shè)備中,所述設(shè)備例如移動(dòng)電話(huà)、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻播放器、全球定位系統(tǒng)(GPS)接收器,僅列出一些。適于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備,包括作為示例半導(dǎo)體存儲(chǔ)器設(shè)備,例如EPROM、EEPROM和閃存設(shè)備;磁盤(pán),例如內(nèi)部硬盤(pán)或可移動(dòng)盤(pán);磁光盤(pán);以及⑶-ROM和DVD-ROM盤(pán)。處理器和存儲(chǔ)器可以由專(zhuān)用邏輯電路補(bǔ)充,或合并入專(zhuān)用邏輯電路。為了提供與用戶(hù)的交互,本公開(kāi)的實(shí)施例可以在具有下述的計(jì)算機(jī)上實(shí)現(xiàn)用于向用戶(hù)顯示信息的顯示設(shè)備,例如CRT (陰極射線(xiàn)管)或LCD (液晶顯示)監(jiān)視器;以及用戶(hù)通過(guò)其可以向計(jì)算機(jī)提供輸入的鍵盤(pán)和指示設(shè)備,例如鼠標(biāo)或跟蹤球。也可以使用其他類(lèi)型的設(shè)備來(lái)提供與用戶(hù)的交互;例如,提供給用戶(hù)的反饋可以是任何形式的感知反饋,例如視覺(jué)反饋、聽(tīng)覺(jué)反饋或觸覺(jué)反饋;以及可以以任何形式接收來(lái)自用戶(hù)的輸入,包括聲學(xué)的、話(huà)音或觸覺(jué)的輸入。本公開(kāi)的實(shí)施例可以在包括下述的計(jì)算系統(tǒng)中實(shí)現(xiàn)后端組件,例如作為數(shù)據(jù)服務(wù)器;或者中間件組件,例如應(yīng)用服務(wù)器;或者前端組件,例如具有用戶(hù)通過(guò)其可以與本公開(kāi)的實(shí)施例交互的圖形用戶(hù)界面或Web瀏覽器的客戶(hù)端計(jì)算機(jī);或者一個(gè)或多個(gè)這樣的后端、中間件或前端組件的任何組合。系統(tǒng)的組件可以通過(guò)例如通信網(wǎng)絡(luò)的任何形式或介質(zhì) 的數(shù)字?jǐn)?shù)據(jù)通信互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)和廣域網(wǎng)(“WAN”),例如因特網(wǎng)。計(jì)算系統(tǒng)可以包括客戶(hù)端和服務(wù)器。客戶(hù)端和服務(wù)器通常彼此遠(yuǎn)離并且典型地通過(guò)通信網(wǎng)絡(luò)交互。客戶(hù)端和服務(wù)器的關(guān)系依靠在各個(gè)計(jì)算機(jī)上運(yùn)行并且彼此具有客戶(hù)端-服務(wù)器關(guān)系的計(jì)算機(jī)程序產(chǎn)生。雖然本說(shuō)明書(shū)包含許多細(xì)節(jié),但是這些細(xì)節(jié)不應(yīng)當(dāng)被解釋為對(duì)本公開(kāi)或可以主張的內(nèi)容的范圍的限制,而應(yīng)當(dāng)被解釋為對(duì)具體到本公開(kāi)的特定實(shí)施例的特征的描述。還可以將在本說(shuō)明書(shū)中在分離的實(shí)施例的情境中描述的某些特征組合在單個(gè)實(shí)施例中實(shí)現(xiàn)。相反地,也可以將在單個(gè)實(shí)施例的情境中描述的各種特征分離地在多個(gè)實(shí)施例中實(shí)現(xiàn)或在任何適當(dāng)?shù)淖咏M合中實(shí)現(xiàn)。此外,盡管可能在上面將特征描述為在某些組合中起作用,甚至最初主張如此,但是在一些情況下,可以將來(lái)自所主張的組合的一個(gè)或多個(gè)特征從組合中刪去,并且可以將所主張的組合指向子組合或者子組合的變體。類(lèi)似地,雖然在附圖中以特定順序描繪了操作,但是不應(yīng)當(dāng)將這理解為需要以所示的特定順序或者以連續(xù)順序執(zhí)行這樣的操作、或者需要執(zhí)行所有圖示的操作,才能達(dá)到期望的結(jié)果。在某些情況下,多任務(wù)以及并行處理可以是有利的。此外,不應(yīng)當(dāng)將在上述實(shí)施例中的各種系統(tǒng)組件的分離理解為在所有實(shí)施例中均需要這樣的分離,而應(yīng)當(dāng)理解的是,通常可以將所描述的程序組分和系統(tǒng)集成到一起成為單個(gè)軟件產(chǎn)品或封裝成多個(gè)軟件
      女口
      廣叩O
      已經(jīng)描述了本公開(kāi)的多個(gè)實(shí)施例。然而,應(yīng)當(dāng)理解的是,可以在不背離本公開(kāi)的精神和范圍的情況下,進(jìn)行各種修改。因此,其他實(shí)施例在所附權(quán)利要求的范圍內(nèi)。
      權(quán)利要求
      1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求ME服務(wù)器被實(shí)例化,所述ME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器; 基于所述一個(gè)或多個(gè)令牌來(lái)確定所述IME服務(wù)器能夠在限制環(huán)境中被實(shí)例化;以及 在所述限制環(huán)境中實(shí)例化所述IME服務(wù)器。
      2.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 執(zhí)行驗(yàn)證所述ME服務(wù)器在所述限制環(huán)境中被實(shí)例化的一個(gè)或多個(gè)檢查; 基于所述一個(gè)或多個(gè)檢查來(lái)確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行;以及 響應(yīng)于確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行,停止所述ME服務(wù)器。
      3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述一個(gè)或多個(gè)檢查包括以下中的至少一個(gè)將令牌值與預(yù)期值進(jìn)行比較;將所述ME服務(wù)器的會(huì)話(huà)標(biāo)識(shí)與預(yù)期標(biāo)識(shí)進(jìn)行比較;確定所述IME服務(wù)器具有系統(tǒng)權(quán)限;以及確定恢復(fù)函數(shù)的結(jié)果。
      4.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 執(zhí)行驗(yàn)證所述ME服務(wù)器在所述限制環(huán)境中被實(shí)例化的一個(gè)或多個(gè)檢查;以及 基于所述一個(gè)或多個(gè)檢查來(lái)確定所述ME服務(wù)器正在所述限制環(huán)境中執(zhí)行。
      5.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述限制環(huán)境限制所述IME服務(wù)器能夠?qū)懭氪鎯?chǔ)器的數(shù)據(jù)的類(lèi)型。
      6.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述IME服務(wù)器請(qǐng)求由所述IME客戶(hù)端生成,以及所述頂E客戶(hù)端是僅存儲(chǔ)其向所述ME服務(wù)器發(fā)出的請(qǐng)求的無(wú)狀態(tài)ME客戶(hù)端。
      7.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 基于第一令牌來(lái)實(shí)例化所述限制環(huán)境以提供所述限制環(huán)境的第一限制級(jí)別; 以所述第一限制級(jí)別在所述限制環(huán)境內(nèi)執(zhí)行所述IME服務(wù)器; 調(diào)用函數(shù); 響應(yīng)于所述函數(shù),基于第二令牌來(lái)重新實(shí)例化所述限制環(huán)境以提供第二限制級(jí)別。
      8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述第一限制級(jí)別不同于所述第二限制級(jí)別。
      9.根據(jù)權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述IME客戶(hù)端和所述IME服務(wù)器在共同設(shè)備上被執(zhí)行。
      10.一種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求ME服務(wù)器被實(shí)例化,所述ME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;基于所述一個(gè)或多個(gè)令牌來(lái)確定所述IME服務(wù)器能夠在限制環(huán)境中被實(shí)例化;以及 在所述限制環(huán)境中實(shí)例化所述IME服務(wù)器。
      11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述操作進(jìn)一步包括 執(zhí)行一個(gè)或多個(gè)檢查; 基于所述一個(gè)或多個(gè)檢查來(lái)確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行;以及 響應(yīng)于確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行,停止所述ME服務(wù)器。
      12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述一個(gè)或多個(gè)檢查包括以下中的至少一個(gè)將令牌值與預(yù)期值進(jìn)行比較;將所述ME服務(wù)器的會(huì)話(huà)標(biāo)識(shí)與預(yù)期標(biāo)識(shí)進(jìn)行比較;確定所述IME服務(wù)器具有系統(tǒng)權(quán)限;以及確定恢復(fù)函數(shù)的結(jié)果。
      13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述操作進(jìn)一步包括 執(zhí)行驗(yàn)證所述ME服務(wù)器在所述限制環(huán)境中被實(shí)例化的一個(gè)或多個(gè)檢查;以及 基于所述一個(gè)或多個(gè)檢查來(lái)確定所述ME服務(wù)器正在所述限制環(huán)境中執(zhí)行。
      14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述限制環(huán)境限制所述IME服務(wù)器能夠?qū)懭氪鎯?chǔ)器的數(shù)據(jù)的類(lèi)型。
      15.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述ME服務(wù)器請(qǐng)求由所述ME客戶(hù)端生成,以及所述IME客戶(hù)端是僅存儲(chǔ)其向所述IME服務(wù)器發(fā)出的請(qǐng)求的無(wú)狀態(tài)IME客戶(hù)端。
      16.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述操作進(jìn)一步包括 基于第一令牌來(lái)實(shí)例化所述限制環(huán)境以提供所述限制環(huán)境的第一限制級(jí)別; 以所述第一限制級(jí)別在所述限制環(huán)境內(nèi)執(zhí)行所述IME服務(wù)器; 調(diào)用函數(shù); 響應(yīng)于所述函數(shù),基于第二令牌來(lái)重新實(shí)例化所述限制環(huán)境以提供第二限制級(jí)別。
      17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述第一限制級(jí)別不同于所述第二限制級(jí)別。
      18.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 接收輸入法編輯器(ME)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求ME服務(wù)器被實(shí)例化,所述ME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器; 對(duì)所述一個(gè)或多個(gè)令牌進(jìn)行處理; 基于所述處理來(lái)確定所述ME服務(wù)器能夠被實(shí)例化; 在限制環(huán)境中實(shí)例化所述IME服務(wù)器,所述限制環(huán)境限制所述IME服務(wù)器的功能; 確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行;以及 響應(yīng)于所述確定而停止所述ME服務(wù)器。
      19.一種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求ME服務(wù)器被實(shí)例化,所述ME服務(wù)器基于發(fā)送自ME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)ME功能,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器; 對(duì)所述一個(gè)或多個(gè)令牌進(jìn)行處理; 基于所述處理來(lái)確定所述ME服務(wù)器能夠被實(shí)例化; 在限制環(huán)境中實(shí)例化所述IME服務(wù)器,所述限制環(huán)境限制所述IME服務(wù)器的功能; 確定所述ME服務(wù)器沒(méi)有正在所述限制環(huán)境中執(zhí)行;以及 響應(yīng)于所述確定而停止所述ME服務(wù)器。
      20.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 建立在第一輸入法編輯器(IME)客戶(hù)端和第一 IME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 IME客戶(hù)端和所述第一服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本不同于所述第二 IME客戶(hù)端的版本; 響應(yīng)于確定所述第一 IME服務(wù)器的所述版本不同于所述第二 IME客戶(hù)端的所述版本,停止所述第一服務(wù)器;以及 實(shí)例化第二 IME服務(wù)器,所述第二 IME服務(wù)器具有與所述第二客戶(hù)端的所述版本相同的版本。
      21.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括建立在所述第二ME客戶(hù)端和所述第二 ME服務(wù)器之間的第二會(huì)話(huà)。
      22.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括停止所述第一會(huì)話(huà)。
      23.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 停止所述第一會(huì)話(huà); 確定所述第一 IME客戶(hù)端的協(xié)議版本與所述第二 IME服務(wù)器的協(xié)議版本兼容;以及響應(yīng)于確定所述第一 IME客戶(hù)端的所述協(xié)議版本與所述第二 IME服務(wù)器的所述協(xié)議版本兼容,建立在所述第一 ME客戶(hù)端和所述第二 ME服務(wù)器之間的第三會(huì)話(huà)。
      24.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括執(zhí)行所述第二會(huì)話(huà)和所述第三會(huì)話(huà)。
      25.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 停止所述第一會(huì)話(huà); 確定所述第一 IME客戶(hù)端的協(xié)議版本與所述第二 IME服務(wù)器的協(xié)議版本不兼容;以及響應(yīng)于確定所述第一 IME客戶(hù)端的所述協(xié)議版本與所述第二 IME服務(wù)器的所述協(xié)議版本不兼容,在所述第一 ME客戶(hù)端處生成錯(cuò)誤。
      26.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述第一IME客戶(hù)端、所述第二IME客戶(hù)端、所述第一 ME服務(wù)器以及所述第二 ME服務(wù)器在共同設(shè)備上被執(zhí)行。
      27.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中確定所述第一IME服務(wù)器的版本不同于所述第二 ME客戶(hù)端的版本包括確定所述第一 ME服務(wù)器的所述版本比所述第二ME客戶(hù)端的所述版本舊。
      28.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 建立在第一輸入法編輯器(IME)客戶(hù)端和第一 IME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本與所述第二 IME客戶(hù)端的版本相同; 響應(yīng)于所述確定,建立在所述第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà);以及 執(zhí)行所述第一會(huì)話(huà)和所述第二會(huì)話(huà)。
      29.—種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 建立在第一輸入法編輯器(IME)客戶(hù)端和第一 IME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 IME客戶(hù)端和所述第一服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本不同于所述第二 IME客戶(hù)端的版本; 響應(yīng)于確定所述第一 IME服務(wù)器的所述版本不同于所述第二 IME客戶(hù)端的所述版本,停止所述第一服務(wù)器;以及 實(shí)例化第二 IME服務(wù)器,所述第二 IME服務(wù)器具有與所述第二客戶(hù)端的所述版本相同的版本。
      30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述操作進(jìn)一步包括建立在所述第二ME客戶(hù)端和所述第二 ME服務(wù)器之間的第二會(huì)話(huà)。
      31.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述操作進(jìn)一步包括停止所述第一會(huì)話(huà)。
      32.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述操作進(jìn)一步包括 確定所述第一 IME客戶(hù)端的協(xié)議版本與所述第二 IME服務(wù)器的協(xié)議版本兼容;以及響應(yīng)于確定所述第一 IME客戶(hù)端的所述協(xié)議版本與所述第二 IME服務(wù)器的所述協(xié)議版本兼容,建立在所述第一 ME客戶(hù)端和所述第二 ME服務(wù)器之間的第三會(huì)話(huà)。
      33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中所述操作進(jìn)一步包括執(zhí)行所述第二會(huì)話(huà)和所述第三會(huì)話(huà)。
      34.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述操作進(jìn)一步包括 確定所述第一 IME客戶(hù)端的協(xié)議版本與所述第二 IME客戶(hù)端的協(xié)議版本不兼容;以及響應(yīng)于確定所述第一 IME客戶(hù)端的所述協(xié)議版本與所述第二 IME服務(wù)器的所述協(xié)議版本不兼容,在所述第一 ME客戶(hù)端處生成錯(cuò)誤。
      35.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述第一IME客戶(hù)端、所述第二 IME客戶(hù)端、所述第一 ME服務(wù)器以及所述第二 ME服務(wù)器在共同設(shè)備上被執(zhí)行。
      36.根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述第一ME客戶(hù)端和所述第二 ME客戶(hù)端包括在共同設(shè)備上被執(zhí)行的應(yīng)用程序。
      37.一種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 建立在第一輸入法編輯器(IME)客戶(hù)端和第一 IME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本與所述第二 IME客戶(hù)端的版本相同; 響應(yīng)于所述確定,建立在所述第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà);以及執(zhí)行所述第一會(huì)話(huà)和所述第二會(huì)話(huà)。
      38.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求由第一 ME客戶(hù)端傳送; 基于所述ME服務(wù)器請(qǐng)求來(lái)實(shí)例化第一 ME服務(wù)器; 建立在所述第一 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本不同于所述第二 IME客戶(hù)端的版本; 響應(yīng)于確定所述第一 ME服務(wù)器的版本不同于所述第二 ME客戶(hù)端的版本,停止所述第一 IME服務(wù)器; 實(shí)例化第二 IME服務(wù)器,所述第二 IME服務(wù)器具有與所述第二 IME客戶(hù)端的所述版本相同的版本;以及 建立在所述第二 ME客戶(hù)端和所述第二 ME服務(wù)器之間的第二會(huì)話(huà)。
      39.一種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 接收輸入法編輯器αΜΕ)服務(wù)器請(qǐng)求,所述ME服務(wù)器請(qǐng)求由第一 ME客戶(hù)端傳送; 基于所述ME服務(wù)器請(qǐng)求來(lái)實(shí)例化第一 ME服務(wù)器; 建立在所述第一 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第一會(huì)話(huà); 請(qǐng)求在第二 ME客戶(hù)端和所述第一 ME服務(wù)器之間的第二會(huì)話(huà); 確定所述第一 IME服務(wù)器的版本不同于所述第二 IME客戶(hù)端的版本; 響應(yīng)于確定所述第一 ME服務(wù)器的版本不同于所述第二 ME客戶(hù)端的版本,停止所述第一 IME服務(wù)器; 實(shí)例化第二 IME服務(wù)器,所述第二 IME服務(wù)器具有與所述第二 IME客戶(hù)端的所述版本相同的版本;以及 建立在所述第二 ME客戶(hù)端和所述第二 ME服務(wù)器之間的第二會(huì)話(huà)。
      40.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 在輸入法編輯器αΜΕ)服務(wù)器處,接收從與所述ME服務(wù)器通信的ME客戶(hù)端傳送給所述ME服務(wù)器的鍵事件,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器,以及所述IME客戶(hù)端是基于所述鍵事件向所述IME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)IME客戶(hù)端; 通過(guò)所述IME服務(wù)器基于鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符; 通過(guò)所述ME服務(wù)器生成與所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及將所述呈現(xiàn)信息從所述ME服務(wù)器傳送給所述ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符。
      41.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 從所述ME客戶(hù)端接收會(huì)話(huà)請(qǐng)求; 基于所述會(huì)話(huà)請(qǐng)求來(lái)建立在所述ME客戶(hù)端和所述ME服務(wù)器之間的會(huì)話(huà); 通過(guò)所述ME服務(wù)器生成會(huì)話(huà)標(biāo)識(shí)符;將所述會(huì)話(huà)標(biāo)識(shí)符傳送給所述IME客戶(hù)端; 將所述會(huì)話(huà)標(biāo)識(shí)符與每一個(gè)隨后的鍵事件一起從所述IME客戶(hù)端傳送;以及 在所述IME服務(wù)器處,在 接收所述鍵事件時(shí),接收所述會(huì)話(huà)標(biāo)識(shí)符。
      42.根據(jù)權(quán)利要求41所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 接收多個(gè)IME客戶(hù)端的會(huì)話(huà)標(biāo)識(shí)符; 將關(guān)于每一個(gè)會(huì)話(huà)標(biāo)識(shí)符的特有會(huì)話(huà)數(shù)據(jù)與該會(huì)話(huà)標(biāo)識(shí)符進(jìn)行關(guān)聯(lián); 對(duì)于所接收的每一個(gè)鍵事件,在與和所述鍵事件一起被傳送的所述會(huì)話(huà)標(biāo)識(shí)符相關(guān)聯(lián)的所述特有會(huì)話(huà)數(shù)據(jù)的情景下,對(duì)所述鍵事件進(jìn)行處理。
      43.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 從所述ME客戶(hù)端接收會(huì)話(huà)請(qǐng)求; 響應(yīng)于所述會(huì)話(huà)請(qǐng)求,實(shí)例化所述IME服務(wù)器; 為在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信生成路徑名;以及 存儲(chǔ)所述路徑名以由所述IME客戶(hù)端訪問(wèn)。
      44.根據(jù)權(quán)利要求43所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中存儲(chǔ)所述路徑名包括將所述路徑名存儲(chǔ)到與所述IME客戶(hù)端的用戶(hù)相關(guān)聯(lián)的用戶(hù)簡(jiǎn)檔。
      45.根據(jù)權(quán)利要求43所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 基于所述會(huì)話(huà)請(qǐng)求來(lái)確定用戶(hù)標(biāo)識(shí); 識(shí)別與所述用戶(hù)標(biāo)識(shí)相關(guān)聯(lián)的用戶(hù)簡(jiǎn)檔;以及 將所述路徑名存儲(chǔ)到所述用戶(hù)簡(jiǎn)檔。
      46.根據(jù)權(quán)利要求43所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述路徑名包括隨機(jī)生成的路徑名和統(tǒng)一資源定位符(URL)中的一個(gè)。
      47.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 建立在所述ME客戶(hù)端和所述ME服務(wù)器之間的會(huì)話(huà),所述會(huì)話(huà)包括在所述ME客戶(hù)端和所述ME服務(wù)器之間的能夠被打開(kāi)和關(guān)閉的一個(gè)或多個(gè)連接; 打開(kāi)連接; 當(dāng)所述連接被打開(kāi)時(shí),監(jiān)視在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信;以及 如果鍵事件和呈現(xiàn)信息中的一個(gè)在預(yù)先確定的時(shí)間段內(nèi)未被傳送,則關(guān)閉所述連接。
      48.根據(jù)權(quán)利要求47所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述鍵事件在所述連接被打開(kāi)之后被傳送給所述ME服務(wù)器,以及進(jìn)一步包括響應(yīng)于將所述呈現(xiàn)信息傳送給所述ME客戶(hù)端,關(guān)閉所述連接。
      49.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括在所述ME服務(wù)器處對(duì)所述鍵事件進(jìn)行解釋以提供對(duì)應(yīng)的命令,所述呈現(xiàn)信息基于所述命令被生成。
      50.根據(jù)權(quán)利要求49所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述命令包括插入字符命令和轉(zhuǎn)換命令中的一個(gè)。
      51.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在所述ME服務(wù)器處接收第二鍵事件,所述第二鍵事件從與所述ME服務(wù)器通信并且是無(wú)狀態(tài)的第二 ME客戶(hù)端傳送給所述ME服務(wù)器; 基于所述鍵事件來(lái)識(shí)別一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符; 基于所述一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符來(lái)生成第二呈現(xiàn)信息;以及將所述第二呈現(xiàn)信息從所述ME服務(wù)器傳送給所述第二 ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符。
      52.根據(jù)權(quán)利要求51所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述IME客戶(hù)端和所述第二IME客戶(hù)端包括在共同設(shè)備上被執(zhí)行的應(yīng)用程序。
      53.—種系統(tǒng),包括 其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì); 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所述指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 在輸入法編輯器αΜΕ)服務(wù)器處,接收從與所述ME服務(wù)器通信的ME客戶(hù)端傳送給所述ME服務(wù)器的鍵事件,其中所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器,以及所述IME客戶(hù)端是基于所述鍵事件向所述IME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)IME客戶(hù)端; 通過(guò)所述IME服務(wù)器基于鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符; 通過(guò)所述ME服務(wù)器生成與所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及將所述呈現(xiàn)信息從所述ME服務(wù)器傳送給所述ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符。
      54.根據(jù)權(quán)利要求53所述的系統(tǒng),其中所述操作進(jìn)一步包括 從所述ME客戶(hù)端接收會(huì)話(huà)請(qǐng)求; 基于所述會(huì)話(huà)請(qǐng)求來(lái)建立在所述ME客戶(hù)端和所述ME服務(wù)器之間的會(huì)話(huà); 通過(guò)所述ME服務(wù)器生成會(huì)話(huà)標(biāo)識(shí)符; 將所述會(huì)話(huà)標(biāo)識(shí)符傳送給所述IME客戶(hù)端; 將所述會(huì)話(huà)標(biāo)識(shí)符與每一個(gè)隨后的鍵事件一起從所述IME客戶(hù)端傳送;以及 在所述IME服務(wù)器處,在接收所述鍵事件時(shí),接收所述會(huì)話(huà)標(biāo)識(shí)符。
      55.根據(jù)權(quán)利要求54所述的系統(tǒng),其中所述操作進(jìn)一步包括 接收多個(gè)IME客戶(hù)端的會(huì)話(huà)標(biāo)識(shí)符; 將關(guān)于每一個(gè)會(huì)話(huà)標(biāo)識(shí)符的特有會(huì)話(huà)數(shù)據(jù)與該會(huì)話(huà)標(biāo)識(shí)符進(jìn)行關(guān)聯(lián); 對(duì)于所接收的每一個(gè)鍵事件,在與和所述鍵事件一起被傳送的所述會(huì)話(huà)標(biāo)識(shí)符相關(guān)聯(lián)的所述特有會(huì)話(huà)數(shù)據(jù)的情景下,對(duì)所述鍵事件進(jìn)行處理。
      56.根據(jù)權(quán)利要求53所述的系統(tǒng),其中所述操作進(jìn)一步包括 從所述ME客戶(hù)端接收會(huì)話(huà)請(qǐng)求; 響應(yīng)于所述會(huì)話(huà)請(qǐng)求,實(shí)例化所述IME服務(wù)器; 為在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信生成路徑名;以及 存儲(chǔ)所述路徑名以由所述IME客戶(hù)端訪問(wèn)。
      57.根據(jù)權(quán)利要求56所述的系統(tǒng),其中存儲(chǔ)所述路徑名包括將所述路徑名存儲(chǔ)到與所述IME客戶(hù)端的用戶(hù)相關(guān)聯(lián)的用戶(hù)簡(jiǎn)檔。
      58.根據(jù)權(quán)利要求56所述的系統(tǒng),其中所述操作進(jìn)一步包括 基于所述會(huì)話(huà)請(qǐng)求來(lái)確定用戶(hù)標(biāo)識(shí); 識(shí)別與所述用戶(hù)標(biāo)識(shí)相關(guān)聯(lián)的用戶(hù)簡(jiǎn)檔;以及 將所述路徑名存儲(chǔ)到所述用戶(hù)簡(jiǎn)檔。
      59.根據(jù)權(quán)利要求56所述的系統(tǒng),其中所述路徑名包括隨機(jī)生成的路徑名和統(tǒng)一資源定位符(URL)中的一個(gè)。
      60.根據(jù)權(quán)利要求53所述的系統(tǒng),其中所述操作進(jìn)一步包括 建立在所述ME客戶(hù)端和所述ME服務(wù)器之間的會(huì)話(huà),所述會(huì)話(huà)包括在所述ME客戶(hù)端和所述ME服務(wù)器之間的能夠被打開(kāi)和關(guān)閉的一個(gè)或多個(gè)連接; 打開(kāi)連接; 當(dāng)所述連接被打開(kāi)時(shí),監(jiān)視在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信;以及 如果鍵事件和呈現(xiàn)信息中的一個(gè)在預(yù)先確定的時(shí)間段內(nèi)未被傳送,則關(guān)閉所述連接。
      61.根據(jù)權(quán)利要求60所述的系統(tǒng),其中所述鍵事件在所述連接被打開(kāi)之后被傳送給所述ME服務(wù)器,以及進(jìn)一步包括響應(yīng)于將所述呈現(xiàn)信息傳送給所述ME客戶(hù)端,關(guān)閉所述連接。
      62.根據(jù)權(quán)利要求53所述的系統(tǒng),其中所述操作進(jìn)一步包括在所述IME服務(wù)器處對(duì)所述鍵事件進(jìn)行解釋以提供對(duì)應(yīng)的命令,所述呈現(xiàn)信息基于所述命令被生成。
      63.根據(jù)權(quán)利要求62所述的系統(tǒng),其中所述命令包括插入字符命令和轉(zhuǎn)換命令中的一個(gè)。
      64.根據(jù)權(quán)利要求53所述的系統(tǒng),其中所述操作進(jìn)一步包括 在所述ME服務(wù)器處接收第二鍵事件,所述第二鍵事件從與所述ME服務(wù)器通信并且是無(wú)狀態(tài)的第二 ME客戶(hù)端傳送給所述ME服務(wù)器; 基于所述鍵事件來(lái)識(shí)別一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符; 基于所述一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符來(lái)生成第二呈現(xiàn)信息;以及將所述第二呈現(xiàn)信息從所述ME服務(wù)器傳送給所述第二 ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)第二語(yǔ)標(biāo)字符。
      65.根據(jù)權(quán)利要求64所述的系統(tǒng),其中所述ME客戶(hù)端和所述第二ME客戶(hù)端包括在所述設(shè)備上被執(zhí)行的應(yīng)用程序。
      66.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 從是無(wú)狀態(tài)的輸入法編輯器(IME)客戶(hù)端接收請(qǐng)求; 基于所述請(qǐng)求來(lái)實(shí)例化IME服務(wù)器,所述IME服務(wù)器是有狀態(tài)的; 生成在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信路徑,所述通信路徑具有對(duì)應(yīng)的路徑名; 將所述路徑名提供給所述IME客戶(hù)端; 在所述ME服務(wù)器處接收鍵事件,所述鍵事件通過(guò)所述通信路徑從所述ME客戶(hù)端被傳送給所述ME服務(wù)器; 基于所述鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符; 生成與所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及 將所述呈現(xiàn)信息從所述ME服務(wù)器傳送給所述ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符。
      67.—種系統(tǒng),包括 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì); 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 從是無(wú)狀態(tài)的輸入法編輯器(IME)客戶(hù)端接收請(qǐng)求; 基于所述請(qǐng)求來(lái)實(shí)例化IME服務(wù)器,所述IME服務(wù)器是有狀態(tài)的; 生成在所述ME客戶(hù)端和所述ME服務(wù)器之間的通信路徑,所述通信路徑具有對(duì)應(yīng)的路徑名; 將所述路徑名提供給所述IME客戶(hù)端; 在所述ME服務(wù)器處接收鍵事件,所述鍵事件通過(guò)所述通信路徑從所述ME客戶(hù)端被傳送給所述ME服務(wù)器; 基于所述鍵事件來(lái)識(shí)別一個(gè)或多個(gè)語(yǔ)標(biāo)字符; 生成與所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符相對(duì)應(yīng)的呈現(xiàn)信息;以及 將所述呈現(xiàn)信息從所述ME服務(wù)器傳送給所述ME客戶(hù)端,以顯示所述一個(gè)或多個(gè)語(yǔ)標(biāo)字符。
      68.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 在輸入法編輯器αΜΕ)客戶(hù)端處生成鍵事件,所述ME客戶(hù)端是僅存儲(chǔ)其向ME服務(wù)器發(fā)出的請(qǐng)求以及為每一個(gè)鍵事件向IME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)IME客戶(hù)端; 通過(guò)所述ME客戶(hù)端將所述鍵事件記錄在鍵事件序列中,所述鍵事件序列存儲(chǔ)所述鍵事件和先前被傳送給所述頂E服務(wù)器的至少一個(gè)或多個(gè)先前鍵事件; 將所述鍵事件傳送給與所述ME客戶(hù)端通信的ME服務(wù)器,所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;在所述ME客戶(hù)端處,確定所述ME服務(wù)器已停止了運(yùn)作; 響應(yīng)于確定所述ME服務(wù)器已停止了運(yùn)作,建立與第二 ME服務(wù)器的會(huì)話(huà),所述第二IME服務(wù)器是有狀態(tài)服務(wù)器;以及 在建立所述會(huì)話(huà)之后,將所記錄的鍵事件序列傳送給所述第二服務(wù)器。
      69.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 從所述第二 ME服務(wù)器接收呈現(xiàn)信息,所述呈現(xiàn)信息在所述第二 ME服務(wù)器處基于所述鍵事件序列被生成;以及 在所述ME客戶(hù)端處,基于所述呈現(xiàn)信息來(lái)顯示一個(gè)或多個(gè)字符。
      70.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 確定所述第二 ME服務(wù)器已停止了運(yùn)作;以及 在所述ME客戶(hù)端處,生成錯(cuò)誤消息。
      71.根據(jù)權(quán)利要求70所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 將所述鍵事件序列識(shí)別為所述ME服務(wù)器和所述第二 ME服務(wù)器不運(yùn)作的原因; 基于所述鍵事件序列來(lái)生成錯(cuò)誤報(bào)告;以及 響應(yīng)于所述錯(cuò)誤報(bào)告,阻止來(lái)自所述IME客戶(hù)端的所述鍵事件序列的進(jìn)一步傳送。
      72.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括周期性刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      73.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 確定在所述ME客戶(hù)端和所述第二 ME服務(wù)器之間的連接是關(guān)閉的連接;以及 響應(yīng)于所述關(guān)閉的連接,刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      74.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 從所述第二 ME服務(wù)器接收呈現(xiàn)信息,所述呈現(xiàn)信息在所述第二 ME服務(wù)器處基于所述鍵事件序列被生成;以及 響應(yīng)于接收所述呈現(xiàn)信息,刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      75.根據(jù)權(quán)利要求74所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 生成第二鍵事件; 將所述第二鍵事件記錄在所述鍵事件序列中;以及 將所述第二鍵事件傳送給所述第二 ME服務(wù)器。
      76.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述IME客戶(hù)端、所述IME服務(wù)器和所述第二 ME服務(wù)器在一個(gè)設(shè)備上被執(zhí)行。
      77.根據(jù)權(quán)利要求68所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述ME客戶(hù)端在第一設(shè)備上被執(zhí)行,以及所述ME服務(wù)器和所述第二 ME服務(wù)器在與所述第一設(shè)備通信的第二設(shè)備上被執(zhí)行。
      78.—種系統(tǒng),包括 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì); 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 在輸入法編輯器(ME)客戶(hù)端處生成鍵事件,所述ME客戶(hù)端是僅存儲(chǔ)其向ME服務(wù)器發(fā)出的請(qǐng)求以及為每一個(gè)鍵事件向IME服務(wù)器發(fā)出請(qǐng)求的無(wú)狀態(tài)IME客戶(hù)端; 通過(guò)所述ME客戶(hù)端將所述鍵事件記錄在鍵事件序列中,所述鍵事件序列存儲(chǔ)所述鍵事件和先前被傳送給所述頂E服務(wù)器的至少一個(gè)或多個(gè)先前鍵事件; 將所述鍵事件傳送給與所述ME客戶(hù)端通信的ME服務(wù)器,所述ME服務(wù)器是存儲(chǔ)在所述ME服務(wù)器和所述ME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;在所述ME客戶(hù)端處,確定所述ME服務(wù)器已停止了運(yùn)作; 響應(yīng)于確定所述ME服務(wù)器已停止了運(yùn)作,建立與第二 ME服務(wù)器的會(huì)話(huà),所述第二IME服務(wù)器是有狀態(tài)服務(wù)器;以及 在建立所述會(huì)話(huà)之后,將所記錄的鍵事件序列傳送給所述第二服務(wù)器。
      79.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述操作進(jìn)一步包括 從所述第二 ME服務(wù)器接收呈現(xiàn)信息,所述呈現(xiàn)信息在所述第二 ME服務(wù)器處基于所述鍵事件序列被生成;以及 在所述ME客戶(hù)端處,基于所述呈現(xiàn)信息來(lái)顯示一個(gè)或多個(gè)字符。
      80.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述操作進(jìn)一步包括 確定所述第二 ME服務(wù)器已停止了運(yùn)作;以及 在所述ME客戶(hù)端處,生成錯(cuò)誤消息。
      81.根據(jù)權(quán)利要求80所述的系統(tǒng),其中所述操作進(jìn)一步包括 將所述鍵事件序列識(shí)別為所述ME服務(wù)器和所述第二 ME服務(wù)器不運(yùn)作的原因; 基于所述鍵事件序列來(lái)生成錯(cuò)誤報(bào)告;以及 響應(yīng)于所述錯(cuò)誤報(bào)告,阻止來(lái)自所述IME客戶(hù)端的所述鍵事件序列的進(jìn)一步傳送。
      82.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述操作進(jìn)一步包括周期性刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      83.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述操作進(jìn)一步包括 確定在所述ME客戶(hù)端和所述第二 ME服務(wù)器之間的連接是關(guān)閉的連接;以及 響應(yīng)于所述關(guān)閉的連接,刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      84.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述操作進(jìn)一步包括 從所述第二 ME服務(wù)器接收呈現(xiàn)信息,所述呈現(xiàn)信息在所述第二 ME服務(wù)器處基于所述鍵事件序列被生成;以及 響應(yīng)于接收所述呈現(xiàn)信息,刪除存儲(chǔ)在所述鍵事件序列中的鍵事件信息。
      85.根據(jù)權(quán)利要求84所述的系統(tǒng),其中所述操作進(jìn)一步包括 生成第二鍵事件; 將所述第二鍵事件記錄在所述鍵事件序列中;以及 將所述第二鍵事件傳送給所述第二 ME服務(wù)器。
      86.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述IME客戶(hù)端、所述IME服務(wù)器和所述第二IME服務(wù)器在所述設(shè)備上被執(zhí)行。
      87.根據(jù)權(quán)利要求78所述的系統(tǒng),其中所述ME客戶(hù)端在所述設(shè)備上被執(zhí)行,以及所述IME服務(wù)器和所述第二 ME服務(wù)器在與所述設(shè)備通信的第二設(shè)備上被執(zhí)行。
      88.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 在設(shè)備上實(shí)例化輸入法編輯器(ME)客戶(hù)端,所述ME客戶(hù)端是無(wú)狀態(tài)ME客戶(hù)端; 接收到所述設(shè)備的用戶(hù)輸入; 基于所述用戶(hù)輸入來(lái)生成鍵事件,所述鍵事件由所述ME客戶(hù)端生成; 將所述鍵事件記錄在存儲(chǔ)在所述設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的鍵事件序列中; 將所述鍵事件傳送給與所述ME客戶(hù)端通信并且是有狀態(tài)ME服務(wù)器的ME服務(wù)器; 確定所述ME服務(wù)器已停止了運(yùn)作; 響應(yīng)于所述確定來(lái)實(shí)例化第二 ME服務(wù)器,所述第二 ME服務(wù)器是有狀態(tài)ME服務(wù)器; 建立在所述ME客戶(hù)端和所述第二 ME服務(wù)器之間的會(huì)話(huà);以及 在建立所述會(huì)話(huà)之后,將所述鍵事件序列傳送給所述第二 ME服務(wù)器。
      89.—種系統(tǒng),包括 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì); 包括一個(gè)或多個(gè)數(shù)據(jù)處理裝置的設(shè)備,所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行指令來(lái)促使所述一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 在所述設(shè)備上實(shí)例化輸入法編輯器(ME)客戶(hù)端,所述ME客戶(hù)端是無(wú)狀態(tài)ME客戶(hù)端; 接收到所述設(shè)備的用戶(hù)輸入; 基于所述用戶(hù)輸入來(lái)生成鍵事件,所述鍵事件由所述ME客戶(hù)端生成; 將所述鍵事件記錄在存儲(chǔ)在所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的鍵事件序列中; 將所述鍵事件傳送給與所述ME客戶(hù)端通信并且是有狀態(tài)ME服務(wù)器的ME服務(wù)器; 確定所述ME服務(wù)器已停止了運(yùn)作; 響應(yīng)于所述確定來(lái)實(shí)例化第二 ME服務(wù)器,所述第二 ME服務(wù)器是有狀態(tài)ME服務(wù)器; 建立在所述ME客戶(hù)端和所述第二 ME服務(wù)器之間的會(huì)話(huà);以及在建立所述會(huì)話(huà)之后,將所述鍵事件序列傳送給所述第二 ME服務(wù)器。
      全文摘要
      一般地,在本說(shuō)明書(shū)中描述的主題的一個(gè)有創(chuàng)新性的方面可以在包括以下動(dòng)作的方法中具體化接收輸入法編輯器(IME)服務(wù)器請(qǐng)求,IME服務(wù)器請(qǐng)求包括一個(gè)或多個(gè)令牌并且請(qǐng)求IME服務(wù)器被實(shí)例化,IME服務(wù)器基于發(fā)送自IME客戶(hù)端的鍵事件來(lái)執(zhí)行一個(gè)或多個(gè)IME功能,其中IME服務(wù)器是存儲(chǔ)在IME服務(wù)器和IME客戶(hù)端之間的通信會(huì)話(huà)的請(qǐng)求和響應(yīng)兩者的有狀態(tài)服務(wù)器;基于一個(gè)或多個(gè)令牌來(lái)確定IME服務(wù)器可以在限制環(huán)境中被實(shí)例化;以及在限制環(huán)境中實(shí)例化IME服務(wù)器。本方面的其他實(shí)施例包括被配置成執(zhí)行該方法的動(dòng)作、編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的對(duì)應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序。
      文檔編號(hào)G06F15/17GK102834819SQ201080062456
      公開(kāi)日2012年12月19日 申請(qǐng)日期2010年11月24日 優(yōu)先權(quán)日2009年11月27日
      發(fā)明者波村大悟, 小松弘幸, 向井淳, 工藤拓, 及川卓也, 花岡俊行, 松田靖廣, 湯川洋平, 田畑悠介 申請(qǐng)人:谷歌公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1