9等的功能部1001。服務(wù)器裝置901的存儲部1010例如存儲程序 1020。服務(wù)器裝置901的控制部1000通過讀出程序1020并執(zhí)行,從而作為例如連接建立 部1011、用戶操作接收部1012、畫面更新部1013、設(shè)定部1014、畫面數(shù)據(jù)獲取部1015等的 功能部1001發(fā)揮作用。服務(wù)器裝置901的控制部1000通過讀出程序1020并執(zhí)行,從而作 為例如發(fā)送可否判定部1016、畫面信息發(fā)送部1017、調(diào)整部1018、發(fā)送部1019等的功能部 1001發(fā)揮作用。此外,發(fā)送可否判定部1016以及畫面信息發(fā)送部1017也作為發(fā)送部1019 發(fā)揮作用。這里,例如,連接建立部1011建立與客戶端裝置902之間的通信連接。用戶操 作接收部1012接收對于服務(wù)器裝置901提供的虛擬桌面環(huán)境通知在客戶端裝置902輸入 的用戶的操作的信號。畫面更新部1013根據(jù)由用戶操作接收部1012接收到的通知用戶的 操作的信號執(zhí)行處理,更新在虛擬桌面的畫面顯示的內(nèi)容。對于其他的功能部1001的詳細 內(nèi)容將在后面描述。
[0069] 圖11是例示實施方式所涉及的客戶端裝置902的功能模塊構(gòu)成的圖??蛻舳搜b 置902例如包括控制部1100以及存儲部1110??蛻舳搜b置902的控制部1100例如包括連 接建立部1111、用戶操作獲取部1112、用戶操作發(fā)送部1113、設(shè)定部1114、畫面信息接收部 1115等的功能部1101。另外,客戶端裝置902的控制部1100包括肯定響應(yīng)發(fā)送部1116、畫 面更新部1117等的功能部1101??蛻舳搜b置902的存儲部1110例如存儲程序1120???戶端裝置902的控制部1100通過讀出程序1120并執(zhí)行,從而作為例如連接建立部1111、用 戶操作獲取部1112、用戶操作發(fā)送部1113、設(shè)定部1114、畫面信息接收部1115等的功能部 1101發(fā)揮作用。另外,客戶端裝置902的控制部1100通過讀出程序1120并執(zhí)行,從而作為 例如肯定響應(yīng)發(fā)送部1116、畫面更新部1117等的功能部1101發(fā)揮作用。這里例如,連接建 立部1111建立與服務(wù)器裝置901之間的通信連接。用戶操作獲取部1112獲取對于從服務(wù) 器裝置901提供的虛擬桌面在客戶端裝置902輸入的用戶的操作。用戶操作發(fā)送部1113 將通知由用戶操作獲取部1112獲取到的用戶的操作的信號發(fā)送至服務(wù)器裝置901。對于其 他的各功能部1101的詳細內(nèi)容將在后面描述。
[0070] 圖12是例示實施方式所涉及的設(shè)定信息1200的圖。設(shè)定信息1200例如是通知服 務(wù)器裝置901以及客戶端裝置902之間的通信所利用的網(wǎng)絡(luò)環(huán)境的信息的信息。設(shè)定信息 1200例如包括頭信息、識別信息、可使用帶寬、往返延遲時間。頭信息例如儲存服務(wù)器裝置 901以及客戶端裝置902之間的通信的建立所利用的信息。頭信息例如也可以包括IP頭、 TCP頭(UDP頭)等的信息。識別信息存儲例如將設(shè)定信息1200與后述的畫面信息1300以 及肯定響應(yīng)1400識別的的信息。例如,也可以構(gòu)成為通過對設(shè)定信息1200的識別信息儲 存值"0",對畫面信息1300以及肯定響應(yīng)1400的識別信息儲存值"1",從而能夠識別這些 信息??墒褂脦捠侨缟鲜瞿菢永鐦?gòu)建遠程桌面環(huán)境的應(yīng)用程序在服務(wù)器裝置與客戶端 裝置之間的通信中可利用的帶寬寬度,儲存該帶寬寬度的信息??墒褂脦捓缬煽蛻舳?裝置902或者服務(wù)器裝置901測定。往返延遲時間是如上述那樣例如在服務(wù)器裝置與客戶 端裝置之間信息組往返所需要的時間,儲存該往返延遲時間的信息。往返延遲時間例如由 服務(wù)器裝置901或者客戶端裝置902測定。
[0071] 圖13是例示實施方式所涉及的畫面信息1300的圖。畫面信息1300例如是將服 務(wù)器裝置901捕獲到的虛擬桌面的畫面的圖像數(shù)據(jù)通知給客戶端裝置902的信息。畫面信 息1300例如包括頭信息、識別信息、畫面編號、分割編號、畫面數(shù)據(jù)。頭信息例如儲存服務(wù) 器裝置901以及客戶端裝置902之間的通信的建立所利用的信息。頭信息例如可以包括IP 頭、TCP頭(UDP頭)等的信息。識別信息例如儲存用于識別上述的設(shè)定信息1200和畫面 信息1300以及后述的肯定響應(yīng)1400的信息。例如,也可以構(gòu)成為通過對設(shè)定信息1200的 識別信息儲存值"〇",對畫面信息1300以及肯定響應(yīng)1400的識別信息儲存值"1",從而能 夠識別這些信息。畫面編號例如儲存有對于從服務(wù)器裝置901向客戶端裝置902發(fā)送的畫 面信息1300依次分配的序列號。畫面編號例如可以是對于服務(wù)器裝置901開始了對客戶 端裝置902提供遠程桌面以后發(fā)送的畫面信息1300依次分配的編號。另外,分割編號儲存 在例如將針對服務(wù)器裝置901捕獲到的一個畫面的畫面數(shù)據(jù)分割而發(fā)送到客戶端裝置902 的情況下,對于通過該分割而得到的分割畫面數(shù)據(jù)標注的編號。畫面數(shù)據(jù)例如是服務(wù)器裝 置901捕獲到的虛擬桌面的畫面的圖像數(shù)據(jù)。此外,在將畫面數(shù)據(jù)分割發(fā)送到客戶端裝置 902的情況下,畫面數(shù)據(jù)儲存有與分割編號對應(yīng)的分割畫面數(shù)據(jù)。
[0072] 圖14是例示實施方式所涉及的肯定響應(yīng)1400的圖??隙憫?yīng)1400例如是在客戶 端裝置902從服務(wù)器裝置901接收到畫面數(shù)據(jù)的情況下,用于將能夠接收到該畫面數(shù)據(jù)的 情況通知給服務(wù)器裝置901的信息??隙憫?yīng)1400例如包括頭信息、識別信息、畫面編號。 頭信息例如儲存服務(wù)器裝置901以及客戶端裝置902之間的通信的建立所利用的信息。頭 信息例如也可以包括IP頭、TCP頭(UDP頭)等的信息。識別信息例如儲存用于識別上述 的設(shè)定信息1200和畫面信息1300以及肯定響應(yīng)1400的信息。例如,也可以構(gòu)成為通過對 設(shè)定信息1200的識別信息儲存值"0",對畫面信息1300以及肯定響應(yīng)1400的識別信息儲 存值"1",從而能夠識別這些信息。畫面編號儲存有例如在客戶端裝置902能夠從服務(wù)器裝 置901正常地接收包括畫面數(shù)據(jù)的畫面信息1300的情況下,儲存于該畫面信息1300的畫 面編號的編號。
[0073] 圖15是例示在第一實施方式所涉及的提供遠程桌面的系統(tǒng)900中服務(wù)器裝置901 的控制部1000以及客戶端裝置902的控制部1100執(zhí)行的畫面數(shù)據(jù)的發(fā)送和接收處理的 圖。圖15的左側(cè)的動作流程是服務(wù)器裝置901執(zhí)行的處理,右側(cè)的動作流程是客戶端裝置 902執(zhí)行的處理。此外,為了易于識別服務(wù)器裝置901執(zhí)行的處理和客戶端裝置902執(zhí)行的 處理,而在圖15以及其說明中,對于處理的各步驟,在是服務(wù)器裝置901執(zhí)行的處理的情況 下標注"S"。另外,在是客戶端裝置902執(zhí)行的處理的情況下標注"C"。
[0074] 首先,參照圖15的左側(cè)的動作流程,對服務(wù)器裝置901的控制部1000執(zhí)行的處理 進行說明。圖15的服務(wù)器裝置901執(zhí)行的處理的動作流程例如通過服務(wù)器裝置901的控 制部1000讀出儲存于存儲部1010的程序1020并執(zhí)行而實施。在一實施方式中,在客戶端 裝置902中,執(zhí)行了構(gòu)建與服務(wù)器裝置901的遠程桌面環(huán)境的應(yīng)用程序,若建立服務(wù)器裝置 901與客戶端裝置902之間的通信,則圖15的左側(cè)的動作流程開始。
[0075] 在步驟S1501中,服務(wù)器裝置901的控制部1000從客戶端裝置902接收設(shè)定信息 1200。接著,在步驟S1502中,服務(wù)器裝置901的控制部1000使用設(shè)定信息1200所包含的 可使用帶寬、以及往返延遲時間,來通過上述公式1計算緩沖區(qū)大小的值。由公式1計算出 的緩沖區(qū)大小是為了積蓄服務(wù)器裝置901發(fā)送的畫面信息1300而設(shè)置于客戶端裝置902 的緩沖區(qū)的緩沖區(qū)大小。此外,也可以將與計算出的設(shè)置于客戶端裝置902的緩沖區(qū)的緩 沖區(qū)大小相同的大小的緩沖區(qū)設(shè)置在服務(wù)器裝置901。換言之,服務(wù)器裝置901的緩沖區(qū)也 可以以由上述公式1計算出的緩沖區(qū)大小設(shè)置。設(shè)置于服務(wù)器裝置901的緩沖區(qū)例如用于 向客戶端裝置902發(fā)送畫面信息1300。接著,服務(wù)器裝置901的控制部1000使用例如預(yù)先 儲存于存儲部1010的發(fā)送數(shù)據(jù)大小和計算出的緩沖區(qū)大小來通過上述公式2計算窗口大 小的值。并且,服務(wù)器裝置901的控制部1000使用所得到的窗口大小和往返延遲時間、或 者使用發(fā)送數(shù)據(jù)大小和可使用帶寬,來通過上述公式3計算發(fā)送間隔的值。而且,服務(wù)器裝 置901的控制部1000將以上計算出的緩沖區(qū)大小的值、窗口大小的值、以及發(fā)送間隔的值 分別設(shè)定為緩沖區(qū)大小、窗口大小、以及發(fā)送間隔。
[0076] 在步驟S1503中,服務(wù)器裝置901的控制部1000將所設(shè)定的窗口大小的值設(shè)定為 儲存窗口的空余大小的值的變量亦即N。在步驟S1504中,服務(wù)器裝置901的控制部1000 捕獲提供給所連接的客戶端裝置902的虛擬桌面的畫面,進行例如壓縮等的處理,生成用 于發(fā)送至客戶端裝置902的畫面數(shù)據(jù)。在步驟S1505中,服務(wù)器裝置901的控制部1000判 定N是否大于0。換言之,服務(wù)器裝置901的控制部1000判定窗口的空余大小是否有空余。 在N大于0即空余大小有空余的情況下(步驟S1505為是),流程前進到步驟S1506。
[0077] 在步驟S1506中,服務(wù)器裝置901的控制部1000生成包括在步驟S1504中生成的 畫面數(shù)據(jù)的畫面信息1300,并發(fā)送至客戶端裝置902。此外,在畫面信息1300的畫面編號 儲存有對于從服務(wù)器裝置901向客戶端裝置902發(fā)送的畫面信息1300依次分配的序列號。 畫面編號例如可以是對于服務(wù)器裝置901開始了對客戶端裝置902提供遠程桌面以后發(fā)送 的畫面信息1300依次分配的編號。另外,在將畫面數(shù)據(jù)分割發(fā)送的情況下,生成包括表示 被分割的分割畫面數(shù)據(jù)位于畫面數(shù)據(jù)的哪個部分的分割編號的畫面信息1300并發(fā)送。在 步驟S1507中,服務(wù)器裝置901的控制部1000為了從空余大小減去發(fā)送至客戶端裝置902 的畫面信息1300的量,而計算N=N- 1,更新空余大?。篘的值。若更新空余大?。篘的值, 則流程前進到步驟S1509。
[0078] 另一方面,在步驟S1505中N不大于0即空余大小沒有空余的情況下(步驟S1505 為否),流程前進到步驟S1508。在步驟S1508中,服務(wù)器裝置901的控制部1000將在步驟 S1504中生成的畫面數(shù)據(jù)不發(fā)送至客戶端裝置902而例如放棄,其結(jié)果,使在步驟S1504中 生成的畫面數(shù)據(jù)丟幀。在步驟S1509中,服務(wù)器裝置901的控制部1000通過等待至從在步 驟S1504中生成畫面數(shù)據(jù)后經(jīng)過在步驟S1502中設(shè)定的發(fā)送間隔的時間,來調(diào)整發(fā)送間隔。
[0079] 另外,在步驟S1509中,在從在步驟S1504中生成畫面數(shù)據(jù)后到經(jīng)過發(fā)送間隔的時 間的期間中從客戶端裝置902接收到肯定響應(yīng)1400。在該情況下,每次,服務(wù)器裝置901的 控制部1000均計算N=N+1,更新空余大?。篘的值。換言之,在接收到肯定響應(yīng)1400的情 況下,窗口的空余大小增加相應(yīng)的量,所以通過N加1,來更新空余大?。篘的值。若在步驟 S1509中,從在步驟S1504中生成畫面數(shù)據(jù)后經(jīng)過在步驟S1502中設(shè)定的發(fā)送間隔的時間, 則流程返回到步驟S1504。
[0080] 接著,參照圖15的右側(cè)的動作流程對客戶端裝置902的控制部1100執(zhí)行的處理 進行說明。圖15的客戶端裝置902執(zhí)行的處理的動作流程例如通過客戶端裝置902的控 制部1100讀出儲存于存儲部1110的程序1120并執(zhí)行而實施。在一實施方式中,在客戶端 裝置902中,若構(gòu)建與服務(wù)器裝置901的遠程桌面環(huán)境的應(yīng)用程序被執(zhí)行,建立服務(wù)器裝置 901與客戶端裝置902之間的通信,則圖15的右側(cè)的動作流程開始。
[0081] 在步驟C1501中,客戶端裝置902的控制部1100測定網(wǎng)絡(luò)環(huán)境??蛻舳搜b置902 的控制部1100例如通過測量從向服務(wù)器裝置901發(fā)送信息組到其響應(yīng)返回來的時間,來測 量與服務(wù)器裝置901之間的通信的往返延遲時間。另外,客戶端裝置902例如測量在與服務(wù) 器裝置901之間構(gòu)建遠程桌面環(huán)境的應(yīng)用程序可利用的帶寬寬度作為可使用帶寬。在步驟 C1502中客戶端裝置902的控制部1100根據(jù)所得到的往返延遲時間和可使用帶寬通過上 述公式1計算并設(shè)定用于積蓄從服務(wù)器裝置901發(fā)送來的畫面信息1300所包含的信息的 緩沖區(qū)的緩沖區(qū)大小。在步驟C1503中,客戶端裝置902的控制部1100根據(jù)在步驟C1501 中測定出的往返延遲時間和可使用帶寬生成設(shè)定信息1200,并向服務(wù)器裝置901發(fā)送。在 步驟C1504中,客戶端裝置902的控制部1100接收從服務(wù)器裝置901發(fā)送來的畫面信息 1300,并將畫面信息1300向緩沖區(qū)保存。此外,這里保存在緩沖區(qū)的信息也可以是畫面信 息1300所包含的例如畫面編號、以及畫面數(shù)據(jù)等的一部分的信息。
[0082] 在步驟C1505中,客戶端裝置902的控制部1100生成包括接收到的畫面信息1300 所包含的畫面編號的肯定響應(yīng)1400,并發(fā)送至服務(wù)器裝置901。在步驟C1506中,客戶端裝 置902的控制部1100將保存于緩沖區(qū)的畫面信息1300按畫面編號的順序重新排列。由此, 保存于緩沖區(qū)的畫面信息1300按從服務(wù)器裝置901發(fā)送來的順序重新排列。
[0083] 在步驟C1507中,客戶端裝置902的控制部1100判定在緩沖區(qū)是否有應(yīng)該顯示的 畫面信息1300。所謂應(yīng)該顯示的畫面信息1300例如是在已經(jīng)使畫面數(shù)據(jù)顯示在顯示畫面 的情況下,包括該顯示中的畫面數(shù)據(jù)的下一個畫面編號的畫面信息1300。例如,構(gòu)建遠程 桌面環(huán)境后已經(jīng)在顯示裝置905的顯示畫面顯示畫面數(shù)據(jù),該顯示中的畫面數(shù)據(jù)的畫面編 號是"20"。在該情況下,具有其下一個編號"21"的畫面編號的畫面信息1300可以是應(yīng)該 顯示的畫面信息1300。另外