国产精品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>

      作為分散化操作系統(tǒng)中的服務(wù)的設(shè)備的制作方法

      文檔序號(hào):6441760閱讀:138來源:國知局
      專利名稱:作為分散化操作系統(tǒng)中的服務(wù)的設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及作為計(jì)算機(jī)系統(tǒng)子系統(tǒng)的設(shè)備,尤其涉及在其中設(shè)備被表示為在分散化操作系統(tǒng)中的服務(wù)的基礎(chǔ)設(shè)計(jì)結(jié)構(gòu)。
      背景技術(shù)
      什么是使個(gè)人計(jì)算機(jī)用戶膽戰(zhàn)心驚的明亮的藍(lán)色?這就是可怕的藍(lán)屏,它總是由編程錯(cuò)誤引發(fā)。設(shè)備驅(qū)動(dòng)程序是這些錯(cuò)誤的公共來源。設(shè)備驅(qū)動(dòng)程序是準(zhǔn)許計(jì)算機(jī)系統(tǒng)與設(shè)備進(jìn)行通信的軟件組件。如果未在系統(tǒng)中安裝正確的驅(qū)動(dòng)程序,則無法使用設(shè)備,因?yàn)樵诖蠖鄶?shù)情況下,驅(qū)動(dòng)程序僅是理解如何操縱用于與設(shè)備進(jìn)行通信的硬件的軟件片段。由于設(shè)備和設(shè)備驅(qū)動(dòng)程序的大量增長,編程錯(cuò)誤呈指數(shù)地爆發(fā)。實(shí)際上程序員不可能使設(shè)備和計(jì)算機(jī)之間的所有交互可視化,或確定可與其互連計(jì)算機(jī)的每一其它設(shè)備的交互的結(jié)果。圖1示出了更詳細(xì)說明這些問題和其它問題的系統(tǒng)100。
      圖1示出了一個(gè)集中式操作系統(tǒng)Linux操作系統(tǒng)101。Linux操作系統(tǒng)101為各種用戶控制并協(xié)調(diào)諸如如輸入/輸出設(shè)備114等硬件在應(yīng)用程序106之間的使用。Linux操作系統(tǒng)101通過采用類似于其它UNIX操作系統(tǒng)變異的三個(gè)緊密耦合的代碼段來集中控制并協(xié)調(diào)內(nèi)核102、系統(tǒng)庫104和系統(tǒng)實(shí)用程序(端口監(jiān)控程序)108。內(nèi)核102形成Linux操作系統(tǒng)101的核心。內(nèi)核102提供運(yùn)行進(jìn)程所需的所有功能,并提供對(duì)諸如輸入/輸出設(shè)備114等硬件資源的受保護(hù)的訪問。系統(tǒng)庫104指定一組標(biāo)準(zhǔn)的功能和應(yīng)用編程接口,應(yīng)用程序可通過它們與內(nèi)核102交互,并且它們可實(shí)現(xiàn)Linux操作系統(tǒng)101的大部分。UNIX操作系統(tǒng)變異的一個(gè)出發(fā)點(diǎn)在于Linux操作系統(tǒng)101的操作系統(tǒng)接口,它不由內(nèi)核102直接維護(hù)。相反,應(yīng)用程序106作出對(duì)系統(tǒng)庫104的調(diào)用,它進(jìn)而如所需地調(diào)用內(nèi)核102的操作系統(tǒng)功能。系統(tǒng)實(shí)用程序(端口監(jiān)控程序)108是執(zhí)行個(gè)別的、專用的管理任務(wù)的程序,例如響應(yīng)進(jìn)入的網(wǎng)絡(luò)連接、家務(wù)管理或不需要調(diào)用用戶命令的維護(hù)實(shí)用程序。內(nèi)核102被創(chuàng)建為單獨(dú)、單塊的體系結(jié)構(gòu)(展現(xiàn)了Linux操作系統(tǒng)101的UNIX血統(tǒng))。單個(gè)二元的主要原因是通過集中資源的能力、權(quán)限、控制和協(xié)調(diào)來提高Linux操作系統(tǒng)101的總體性能。每樣?xùn)|西都緊密地與內(nèi)核102耦合,如內(nèi)核代碼和數(shù)據(jù)結(jié)構(gòu)。每樣?xùn)|西都保存在單獨(dú)的地址空間中,并由此,當(dāng)進(jìn)程調(diào)用操作系統(tǒng)功能或當(dāng)傳遞硬件中斷時(shí),不需要昂貴的上下文切換。不僅是核心調(diào)度和虛擬存儲(chǔ)器代碼占據(jù)了該地址空間,而且所有的內(nèi)核代碼,包括所有的設(shè)備驅(qū)動(dòng)程序110、文件系統(tǒng)和網(wǎng)絡(luò)代碼,都在同一單個(gè)地址空間中存在。
      這一緊密耦合的設(shè)計(jì)的一個(gè)問題是它是脆弱的。由于在單個(gè)地址空間中揭露了設(shè)備驅(qū)動(dòng)程序110,這些設(shè)備驅(qū)動(dòng)程序可擔(dān)當(dāng)收藏可死鎖Linux操作系統(tǒng)101的不可靠代碼的特洛伊木馬。在幾乎所有的情況下,應(yīng)用程序106與輸入/輸出設(shè)備114的唯一的通信方式是通過內(nèi)核模式中的設(shè)備驅(qū)動(dòng)程序。內(nèi)核模式是Linux操作系統(tǒng)101的最有特權(quán)的執(zhí)行模式。有特權(quán)意味著Linux操作系統(tǒng)101無法監(jiān)控設(shè)備驅(qū)動(dòng)程序110的運(yùn)行代碼或防止存儲(chǔ)器被訪問。由此,錯(cuò)誤的內(nèi)核模式設(shè)備驅(qū)動(dòng)程序110可做它們想做的任何事情,而不受Linux操作系統(tǒng)101的監(jiān)督。一個(gè)示例是處理硬件中斷生成的問題。由于硬件中斷的異步特性,中斷處理器中的僅僅一個(gè)編程錯(cuò)誤就可以病態(tài)的、幾乎無法再現(xiàn)的方式死鎖系統(tǒng)或破壞數(shù)據(jù)。
      近年來的設(shè)備看上去是穩(wěn)定的,因?yàn)樗鼈償?shù)量較少,且它們對(duì)計(jì)算機(jī)的互連是簡單的?,F(xiàn)在的設(shè)備得益于用戶而大量增長,然而這一大量增長伴隨著提供應(yīng)用程序106和輸入/輸出設(shè)備114之間的鏈接所需的設(shè)備驅(qū)動(dòng)程序的數(shù)量的顯著增加。如果沒有提高未定的設(shè)備驅(qū)動(dòng)程序可靠性的解決方案,用戶最終將不再信任系統(tǒng)100來提供期望的計(jì)算經(jīng)驗(yàn),導(dǎo)致對(duì)系統(tǒng)100的需求在市場上的減少。由此,需要一種用于將設(shè)備表示為服務(wù),而同時(shí)避免或減少與現(xiàn)有系統(tǒng)相關(guān)聯(lián)的上述和其它問題的方法和系統(tǒng)。

      發(fā)明內(nèi)容
      依照本發(fā)明,提供了一種用于將設(shè)備表示為服務(wù)的系統(tǒng)、方法和計(jì)算機(jī)可讀媒質(zhì)。本發(fā)明的系統(tǒng)形式包括在網(wǎng)絡(luò)化系統(tǒng)中作為計(jì)算機(jī)子系統(tǒng)的設(shè)備。該設(shè)備包括在設(shè)備中執(zhí)行的一個(gè)或多個(gè)服務(wù)。每一服務(wù)包括可由標(biāo)識(shí)符來標(biāo)識(shí)的端口,該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述該設(shè)備的一個(gè)或多個(gè)行為的契約。
      本發(fā)明的另一系統(tǒng)形式包括網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)中的終端服務(wù)。該終端服務(wù)包括具有可由標(biāo)識(shí)符來標(biāo)識(shí)的端口的顯示服務(wù),該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述顯示服務(wù)的一個(gè)或多個(gè)行為的契約。該終端服務(wù)還包括具有可由標(biāo)識(shí)符標(biāo)識(shí)的端口的鍵盤服務(wù),該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述鍵盤服務(wù)的一個(gè)或多個(gè)行為的契約。該終端服務(wù)還包括具有可由標(biāo)識(shí)符標(biāo)識(shí)的端口的鼠標(biāo)服務(wù),該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述鼠標(biāo)服務(wù)的一個(gè)或多個(gè)行為的契約。
      本發(fā)明的方法形式包括用于由作為服務(wù)的設(shè)備處理輸入/輸出事件的計(jì)算機(jī)實(shí)現(xiàn)的方法。該方法包括向表示設(shè)備的服務(wù)請(qǐng)求輸入/輸出事件。該服務(wù)包括可由標(biāo)識(shí)符標(biāo)識(shí)的端口,該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述該服務(wù)的一個(gè)或多個(gè)行為的契約。該方法還包括接收包含該輸入/輸出事件的可定制的、基于標(biāo)簽的消息。該方法還包括請(qǐng)求該服務(wù)移除輸入/輸出事件。
      本發(fā)明的計(jì)算機(jī)可讀形式包括具有用于實(shí)現(xiàn)用于由作為服務(wù)的設(shè)備處理輸入/輸出事件的計(jì)算機(jī)實(shí)現(xiàn)的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒質(zhì)。該方法包括向表示設(shè)備的服務(wù)請(qǐng)求輸入/輸出事件。該服務(wù)包括可由標(biāo)識(shí)符標(biāo)識(shí)的端口,該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述該服務(wù)的一個(gè)或多個(gè)行為的契約。該方法還包括接收包含該輸入/輸出事件的可定制的、基于標(biāo)簽的消息。該方法還包括請(qǐng)求該服務(wù)移除該輸入/輸出事件。
      本發(fā)明的另一系統(tǒng)形式包括在網(wǎng)絡(luò)化系統(tǒng)中作為計(jì)算機(jī)子系統(tǒng)的設(shè)備。該設(shè)備包括在該設(shè)備內(nèi)執(zhí)行的一個(gè)或多個(gè)服務(wù)。每一服務(wù)包括可由標(biāo)識(shí)符標(biāo)識(shí)的端口,該標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符。該設(shè)備能夠耦合至網(wǎng)絡(luò)化系統(tǒng)以交換可定制的、基于標(biāo)簽的消息。


      當(dāng)結(jié)合附圖閱讀以下詳細(xì)描述時(shí),可以更好地理解本發(fā)明的上述方面和許多附加優(yōu)點(diǎn),從而可以更容易地了解這些方面和優(yōu)點(diǎn),附圖中圖1所示是常規(guī)計(jì)算系統(tǒng)和輸入/輸出設(shè)備、設(shè)備驅(qū)動(dòng)程序和操作系統(tǒng)之間的關(guān)系的框圖;圖2A所示是示例性服務(wù)的框圖;圖2B-2C所示是圖2A所示的服務(wù)的示例性單邊契約的結(jié)構(gòu)化圖表;圖2D所示是作為分散化操作系統(tǒng)中的服務(wù)的設(shè)備的框圖;圖2E所示是用于表示終結(jié)點(diǎn)的示例性組合服務(wù)的框圖;圖2F-2G所示是用于圖2E所示的組合服務(wù)的示例性可定制的、基于標(biāo)簽的文檔的結(jié)構(gòu)化圖表;
      圖2H所示是示例性鼠標(biāo)服務(wù)的框圖;圖2I-2J所示是涉及圖2H所示的鼠標(biāo)服務(wù)的可定制的、基于標(biāo)簽的文檔的結(jié)構(gòu)化圖表;圖2K所示是示例性鍵盤服務(wù)的框圖;圖2L-2M所示是涉及圖2K所示的鍵盤服務(wù)的可定制的、基于標(biāo)簽的文檔的結(jié)構(gòu)化圖表;圖2N所示是在顯示屏上畫出窗口的示例性顯示的框圖;圖2O所示是示例性顯示服務(wù)的框圖;圖2P-2T所示是涉及圖2O所示的示例性顯示服務(wù)的可定制的、基于標(biāo)簽的文檔的結(jié)構(gòu)化框圖;圖3A-3E所示是用于由作為分散操作系統(tǒng)中的服務(wù)的設(shè)備處理I/O事件的方法的過程圖。
      具體實(shí)施例方式
      本發(fā)明的各種實(shí)施例將設(shè)備轉(zhuǎn)換成能夠與諸如個(gè)人計(jì)算機(jī)等其它設(shè)備通信的web服務(wù)或?qū)S梅?wù)器。本發(fā)明的各種實(shí)施例允許設(shè)備驅(qū)動(dòng)程序的各個(gè)底層方面駐留在設(shè)備中,因此消除了對(duì)設(shè)備驅(qū)動(dòng)程序與合法規(guī)范兼容的要求。本發(fā)明的各種實(shí)施例允許各種設(shè)備在其中已內(nèi)置了底層軟件的情況下從工廠發(fā)貨,使得用戶不需要處理安裝和升級(jí)設(shè)備驅(qū)動(dòng)程序的經(jīng)驗(yàn)。在本發(fā)明的各種實(shí)施例中,每一設(shè)備較佳地為可由統(tǒng)一資源標(biāo)識(shí)符(URI)表示的網(wǎng)絡(luò)節(jié)點(diǎn)。后文和上文使用的術(shù)語“服務(wù)”意味著包括松散耦合的服務(wù)。
      圖2A示出了兩個(gè)操作系統(tǒng)服務(wù)210A、210B,其每一個(gè)都具有可由構(gòu)成操作系統(tǒng)服務(wù)或另一服務(wù)的唯一指定的URI210A-1、210B-1標(biāo)識(shí)的端口,以及單邊契約210A-2、210B-2。設(shè)備可被表示為服務(wù),如服務(wù)210A、210B。服務(wù)的端口被賦予行為類型,由單邊契約指定。設(shè)備的較佳通信機(jī)制是通過程序上連線的端口。如果一個(gè)端口的行為類型與另一端口的行為類型兼容,則連線端口是可能的。當(dāng)端口在程序上被彼此連線時(shí)(可由URI 210A-1、210B-1標(biāo)識(shí)),服務(wù)210A、210B通過向?qū)Ψ桨l(fā)送消息來進(jìn)行通信。簡單地解釋,單邊契約210A-2、210B-2以指定流出或流進(jìn)服務(wù)210A、210B的消息的順序的語言來表達(dá)。
      可以與資源行為兼容的方式通過交互來共享資源。資源行為(由服務(wù)表示)在單邊契約中表達(dá)。服務(wù)可由單邊契約調(diào)節(jié)。由此,可通過單邊契約給文件以附加行為條件來支配訪問控制。圖2B示出了單邊契約210A-2的一部分。行210A-3包含關(guān)鍵詞UNILATERALCONTRACT,其后跟隨的是指示符“PDA”以及用于對(duì)單邊契約210A-2的定義定界的一對(duì)打開和關(guān)閉花括號(hào)“{}”。行210A-4聲明了OPEN操作的特征,它采用文件名“FILENAME”作為參數(shù)。為使用操作系統(tǒng)服務(wù)210A,外部服務(wù)指定要通過OPEN操作打開的文件的名字。由此,OPEN操作應(yīng)當(dāng)是由其它服務(wù)為每一會(huì)話調(diào)用的第一個(gè)操作。PLAY操作在行210A-5中聲明。PLAY操作采用另一服務(wù)的端口作為參數(shù)。當(dāng)由其它服務(wù)調(diào)用PLAY操作時(shí),操作系統(tǒng)服務(wù)210A從打開的文件讀取數(shù)據(jù)流,并將讀取的數(shù)據(jù)發(fā)送到給定的服務(wù)端口。其它服務(wù),如操作系統(tǒng)服務(wù)210B也可通過RECORD操作記錄打開的文件的信息,該操作在行210A-6中聲明。RECORD操作采用數(shù)據(jù)作為參數(shù)。該數(shù)據(jù)由RECORD操作寫入打開的文件中。當(dāng)在打開的文件上實(shí)現(xiàn)了所有期望的操作之后,可通過CLOSE操作關(guān)閉所打開的文件,該操作在行210A-7中聲明。CLOSE操作采用文件名“FILENAME”作為自變量,使得CLOSE操作知道要關(guān)閉哪一文件。
      行210A-8-210A-9包含操作系統(tǒng)服務(wù)210A的行為。行210A-8包含行為語句B=OPEN.BPR,其中,B是行為規(guī)則;OPEN表示OPEN操作是使用操作系統(tǒng)服務(wù)210A時(shí)要調(diào)用的第一個(gè)操作;句點(diǎn)“.”表示另外的操作跟隨在OPEN操作的調(diào)用之后;BPR涉及在行210A-9中進(jìn)一步定義的第二行為語句。行210A-9包含以下行為語句BPR=PLAY.BPR+RECORD.BPR+CLOSE,其中,BPR表示第二行為;PLAY.BPR表示PLAY操作的調(diào)用,其后再次跟隨第二行為(遞歸);RECORD.BPR表示RECORD操作的調(diào)用,其后遞歸地跟隨第二行為;CLOSE表示CLOSE操作的調(diào)用;加號(hào)“+”表示諸如操作系統(tǒng)服務(wù)210B等其它服務(wù)可作出的選擇,以在PLAY操作、RECORD操作或CLOSE操作之間調(diào)用。
      圖2C示出了單邊契約210B-2的一部分。行210B-3包含關(guān)鍵字UNILATERALCONTRACT,其后跟隨指示符“SPEAKER”,以及用于對(duì)單邊契約210B-2的該部分的定義定界的一對(duì)打開和關(guān)閉的花括號(hào)“{}”。行210B-4聲明了OPEN操作的特征,它采用文件名“FILENAME”作為參數(shù)。REPRODUCE操作在行210B-5中聲明。REPRODUCE操作采用另一服務(wù)的端口作為參數(shù)。CLISE操作在行210B-6中聲明,它采用文件名“FILENAME”作為自變量,使得CLOSE操作知道要關(guān)閉哪一文件。
      行210B-7-210B-8包含操作系統(tǒng)服務(wù)210B的行為。行210B-7包含行為語句B=OPEN.BP,其中B是行為規(guī)則;OPEN表示OPEN操作是與操作系統(tǒng)服務(wù)210B的會(huì)話中要調(diào)用的第一個(gè)操作;句點(diǎn)“.”表示另外的行為跟隨在OPEN操作的調(diào)用之后;BP涉及行210B-8中進(jìn)一步定義的第二行為語句。行210B-8包含以下行為語句BP=REPRODUCE.BP+CLOSE,其中,BP表示第二行為;REPRODUCE.BP表示REPRODUCE操作的調(diào)用,其后再次跟隨第二行為(遞歸);CLOSE表示CLOSE操作的調(diào)用;加號(hào)“+”表示諸如操作系統(tǒng)服務(wù)210A等外部服務(wù)可作出的選擇,以在REPRODUCE操作和CLOSE操作之間調(diào)用。
      當(dāng)單邊契約210A-2被服務(wù)210B接受時(shí),并且當(dāng)單邊契約210B-2被服務(wù)210A接受時(shí),它們創(chuàng)建服務(wù)210A和服務(wù)210B之間的通信的一個(gè)實(shí)例。每一單邊契約210A-2、210B-2可僅通過執(zhí)行允諾來被服務(wù)210A、210B接受,但是較佳地,通過依照單邊契約中所表達(dá)的行為執(zhí)行單邊契約210A-2、210B-2來接受。由此,如果服務(wù)210B遵照并執(zhí)行單邊契約210A-2的行為語句210A-8、210A-9所表達(dá)的行為,則服務(wù)210B一定要提供所允諾的服務(wù)。例如,如果通過首先調(diào)用行為語句210A-8所指定的OPEN操作,然后行210A-9所示的行為語句指定的PLAY操作、RECORD操作或CLOSE操作,而執(zhí)行了操作系統(tǒng)服務(wù)210B,則操作系統(tǒng)服務(wù)210A遵照請(qǐng)求的調(diào)用以提供期望的服務(wù),如打開文件、播放文件內(nèi)容、將內(nèi)容記錄到文件或關(guān)閉文件。
      圖2D示出了其每一個(gè)都具有可由標(biāo)識(shí)符(如URI)212B-220B標(biāo)識(shí)的端口的作為服務(wù)212-220的設(shè)備,以及單邊契約212A-220A。顯示器服務(wù)212表示作為計(jì)算機(jī)的可視輸出設(shè)備的顯示器,它通常是基于CRT的視頻顯示器,但是越來越多地包括基于LCD或基于氣等離子的平板顯示器。鼠標(biāo)服務(wù)214表示機(jī)械鼠標(biāo),通常為定位設(shè)備。機(jī)械鼠標(biāo)的基本特征是被設(shè)計(jì)成可由一只手抓緊的平底外殼;頂端的一個(gè)或多個(gè)按鈕;底部的多方向檢測設(shè)備(通常是球和某些軸編碼器);以及將鼠標(biāo)連接到計(jì)算機(jī)的電纜。通過在表面(如,桌面)上移動(dòng)鼠標(biāo),用戶通??刂破聊簧系墓鈽?biāo)。鼠標(biāo)是一種相對(duì)定位設(shè)備,因?yàn)闆]有對(duì)鼠標(biāo)的移動(dòng)的確定限制,并且因?yàn)槠湓诒砻嫔系姆胖貌恢苯佑成涞骄唧w的屏幕位置。為在屏幕上選擇項(xiàng)目或選擇命令,用戶按下鼠標(biāo)按鈕之一,產(chǎn)生“鼠標(biāo)點(diǎn)擊”。鍵盤服務(wù)216表示鍵盤,它是類似于打字機(jī)鍵盤的具有一組轉(zhuǎn)換器的硬件單元,并從用戶向計(jì)算機(jī)或數(shù)據(jù)通信電路傳送信息。PDA服務(wù)218表示個(gè)人數(shù)字助理,它是被設(shè)計(jì)成提供諸如個(gè)人組織(日歷、筆記記錄、數(shù)據(jù)庫、計(jì)算器等等)的具體功能以及通信的輕量計(jì)算機(jī)。(PDA服務(wù)218的一個(gè)示例性單邊契約包括單邊契約210A-2。)更高級(jí)的個(gè)人數(shù)字助理還提供多媒體特征,如音樂播放。許多個(gè)人數(shù)字助理依賴于筆或其它定位設(shè)備而非鍵盤或鼠標(biāo)來輸入,盡管某些提供了鍵盤,但它們對(duì)觸摸輸入太小,以至于無法結(jié)合筆或定位設(shè)備來使用。對(duì)于數(shù)據(jù)存儲(chǔ),個(gè)人數(shù)據(jù)助理依賴于閃存而非功耗大的盤驅(qū)動(dòng)器。揚(yáng)聲器服務(wù)220表示揚(yáng)聲器,它們是接受包含聲音的數(shù)字編碼的可定制的、基于標(biāo)簽的消息的設(shè)備,并將消息的內(nèi)容轉(zhuǎn)換成足夠響以使用戶能夠聽見的聲音。(揚(yáng)聲器服務(wù)220的一個(gè)示例性單邊契約220A包括單邊契約210B-2)。
      然而,常規(guī)地,每一設(shè)備-由顯示器服務(wù)212、鼠標(biāo)服務(wù)214、鍵盤服務(wù)216、PDA服務(wù)218和揚(yáng)聲器服務(wù)220表示-需要單獨(dú)的設(shè)備驅(qū)動(dòng)程序,本發(fā)明的各種實(shí)施例免除了用于由服務(wù)212-220之一表示的每一設(shè)備的專用設(shè)備驅(qū)動(dòng)程序。對(duì)各種服務(wù)212-220僅需要一個(gè)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序222來與分散操作系統(tǒng)224進(jìn)行通信,并且最終與由可由標(biāo)識(shí)符(如URI)226B和單邊契約226A標(biāo)識(shí)的應(yīng)用程序服務(wù)226表示的應(yīng)用程序進(jìn)行通信。
      圖2E示出了具有可由標(biāo)識(shí)符(如URI)228B和單邊契約228A標(biāo)識(shí)的端口的組合服務(wù)228。組合服務(wù)228由鼠標(biāo)服務(wù)214、鍵盤服務(wù)216和顯示器服務(wù)212形成。通常,顯示器、鼠標(biāo)和鍵盤作為一個(gè)組來操作。組合服務(wù)228預(yù)訂鍵盤服務(wù)216中的變化、當(dāng)由鍵盤服務(wù)216生成鍵盤事件時(shí)消耗它們、并生成對(duì)應(yīng)的鍵盤事件。記下每一鍵盤事件中的修正鍵的狀態(tài),使得修正鍵可被附加到鼠標(biāo)事件。組合服務(wù)228預(yù)訂鼠標(biāo)服務(wù)214中的變化、當(dāng)生成鼠標(biāo)事件時(shí)消耗它們、將相對(duì)鼠標(biāo)運(yùn)動(dòng)(對(duì)鼠標(biāo)事件)轉(zhuǎn)換成絕對(duì)鼠標(biāo)運(yùn)動(dòng)、更新屏幕上光標(biāo)的絕對(duì)位置、并生成對(duì)應(yīng)的絕對(duì)鼠標(biāo)事件。記下每一鍵盤事件中的修正鍵的狀態(tài),使得修正鍵可被附加到鼠標(biāo)事件。
      圖2F示出了可定制的、基于標(biāo)簽的文檔254,它保留組合服務(wù)228的狀態(tài),包括顯示器服務(wù)212、鼠標(biāo)服務(wù)214和鍵盤服務(wù)216的狀態(tài)。可定制的、基于標(biāo)簽的文檔254可由組合服務(wù)228的信息服務(wù)(未示出)生成??啥ㄖ频?、基于標(biāo)簽的文檔包括在起始標(biāo)簽254A&lt;C:INFO&gt;及其成對(duì)的結(jié)束標(biāo)簽254L&lt;/C:INFO&gt;之間定義的信息元素。在標(biāo)簽254A、254L之間的是定義包含到鍵盤服務(wù)216的數(shù)據(jù)服務(wù)的URI的標(biāo)簽&lt;C:KEYBOARDDATAURI&gt;的行254B。在標(biāo)簽254A、254L之間的是定義包含到鼠標(biāo)服務(wù)214的數(shù)據(jù)服務(wù)的URI的標(biāo)簽&lt;C:MOUSEDATAURI&gt;的行254C。行254D定義了包含到顯示器服務(wù)212的光標(biāo)位置服務(wù)的URI的標(biāo)簽&lt;C:DISPLAYCURSORPOSITIONURI&gt;。行254E定義了包含由顯示器服務(wù)212標(biāo)識(shí)的顯示器的寬度的標(biāo)簽&lt;C:DISPLAYWIDTH&gt;。行254F定義了包含由顯示器服務(wù)212標(biāo)識(shí)的顯示器的高度的標(biāo)簽&lt;C:DISPLAYHEIGHT&gt;。在標(biāo)簽254A、254L中嵌入的還有標(biāo)簽254H&lt;C:MOUSEPOSITION&gt;及其成對(duì)的結(jié)束標(biāo)簽254K&lt;C:MOUSEPOSITON&gt;之間的鼠標(biāo)位置元素。在標(biāo)簽254H、254K之間的是用于定義表示鼠標(biāo)的水平位置的標(biāo)簽&lt;C:H&gt;的行254I。行254J定義了表示鼠標(biāo)的垂直位置的標(biāo)簽&lt;C:V&gt;。
      圖2G示出了可由組合服務(wù)228的數(shù)據(jù)服務(wù)(未示出)再現(xiàn)的可定制的、基于標(biāo)簽的文檔232??啥ㄖ频?、基于標(biāo)簽的文檔232保留由鼠標(biāo)服務(wù)214和鍵盤服務(wù)216生成的,但尚未由應(yīng)用程序服務(wù)226消耗的鍵盤事件和鼠標(biāo)事件。應(yīng)用程序服務(wù)226通常預(yù)訂數(shù)據(jù)服務(wù)的變化,使得當(dāng)新事件生成并在組合服務(wù)228的數(shù)據(jù)服務(wù)中出現(xiàn)時(shí)可通知應(yīng)用程序服務(wù)226??啥ㄖ频摹⒒跇?biāo)簽的文檔232包括在標(biāo)簽232A&lt;C:DATA&gt;及其成對(duì)的結(jié)束標(biāo)簽232AA&lt;/C:INFO&gt;之間定義的數(shù)據(jù)元素。標(biāo)簽232A包括用于定義名字空間并可在地址“HTTP://SCHEMAS.COM/COORDINATOR”上找到的屬性XMLNS:C。包含在標(biāo)簽232A、232AA之間的是用于捕捉由鍵盤服務(wù)216生成的鍵盤事件或由鼠標(biāo)服務(wù)214生成的鼠標(biāo)事件的零個(gè)或多個(gè)數(shù)據(jù)項(xiàng)目元素。一個(gè)示例性鍵盤事件在標(biāo)簽232B&lt;C:DATAITEM&gt;及其成對(duì)的結(jié)束標(biāo)簽&lt;/C:DATAITEM&gt;232L之間定義。時(shí)間元素在行232D由標(biāo)簽&lt;C:TIME&gt;定義。時(shí)間元素使用系統(tǒng)全局時(shí)間指定了生成數(shù)據(jù)項(xiàng)目元素的時(shí)間。時(shí)間元素允許容易地理解事件發(fā)生的順序。即使事件之間的時(shí)間很小(如,鼠標(biāo)點(diǎn)擊),或者事件在不同的設(shè)備上出現(xiàn)(如,控制點(diǎn)擊),行232E-232G都能捕捉由鍵盤服務(wù)216表示的鍵盤的修正鍵的狀態(tài)。行232E通過標(biāo)簽&lt;C:CTRLKEY&gt;包含CONTROL按鍵的狀態(tài)。行232F包含ALT按鍵的狀態(tài),由標(biāo)簽&lt;C:ALTKEY&gt;定義。行232G通過標(biāo)簽&lt;C:SHIFTKEY&gt;包含SHIFT按鍵的狀態(tài)。
      鍵盤上激勵(lì)的按鍵由標(biāo)簽232H&lt;C:KEYSTROKE&gt;及其成對(duì)的結(jié)束標(biāo)簽232K&lt;/C:KEYSROKE&gt;之間定義的按鍵敲擊元素捕捉。包含在標(biāo)簽232H、232K之間的是由行232I上的標(biāo)簽&lt;C:EXTENDED&gt;定義的元素,如果由下文描述的&lt;C:CODE&gt;元素表示的代碼是擴(kuò)展代碼,如功能鍵時(shí),則它包含TRUE值。行232J定義了包含從鍵盤上的按鍵激勵(lì)生成的字符代碼的標(biāo)簽&lt;C:CODE&gt;。
      可定制的、基于標(biāo)簽的文檔232包括零個(gè)或多個(gè)鼠標(biāo)事件。一個(gè)示例性鼠標(biāo)事件由標(biāo)簽232M&lt;C:DATAITEM&gt;及其成對(duì)的結(jié)束標(biāo)簽232Z&lt;/C:DATAITEM&gt;之間定義的數(shù)據(jù)項(xiàng)目元素捕捉。時(shí)間元素在行232O上由標(biāo)簽&lt;C:TIME&gt;定義。時(shí)間元素指定了生成時(shí)間項(xiàng)目元素的時(shí)間。行232P-232R包括用于捕捉由鍵盤服務(wù)216表示的鍵盤上的修正鍵的狀態(tài)的標(biāo)簽&lt;C:CTRLKEY&gt;、&lt;C:ALTKEY&gt;和&lt;C:SHIFTKEY&gt;。SHIFT按鍵的狀態(tài)在行232R上由標(biāo)簽&lt;C:SHIFTKEY&gt;捕捉。鼠標(biāo)事件在標(biāo)簽232S&lt;C:MOUSE&gt;及其成對(duì)的結(jié)束標(biāo)簽232Y&lt;/C:MOUSE&gt;之間捕捉。如果激勵(lì)了鼠標(biāo)按鈕,則行232T上的標(biāo)簽&lt;C:BUTT0ONS&gt;捕捉按鈕代碼。標(biāo)簽232U&lt;C:POSITOIN&gt;及其成對(duì)的結(jié)束標(biāo)簽232X&lt;/C:POSITION&gt;包含涉及鼠標(biāo)位置的信息。行2132V描述了表示鼠標(biāo)的水平位置的標(biāo)簽&lt;C:H&gt;。行232W包括表示鼠標(biāo)的垂直位置的標(biāo)簽&lt;C:V&gt;。
      圖2H將鼠標(biāo)服務(wù)214作為服務(wù)表示,它包括具有可由標(biāo)識(shí)符(如URI)214C-1和單邊契約214C-2標(biāo)識(shí)的端口的信息服務(wù)214C;以及具有可由標(biāo)識(shí)符(如URI)214D-1和單邊契約214D-2標(biāo)識(shí)的端口的數(shù)據(jù)服務(wù)214D。鼠標(biāo)服務(wù)214提供到鼠標(biāo)的接口。當(dāng)鼠標(biāo)的物理狀態(tài)改變時(shí),如鼠標(biāo)被移動(dòng)或鼠標(biāo)按鈕被按下或釋放,則由鼠標(biāo)服務(wù)214將一鼠標(biāo)事件插入到數(shù)據(jù)服務(wù)214D中。盡管諸如應(yīng)用程序服務(wù)226等的應(yīng)用程序服務(wù)可通過輪詢數(shù)據(jù)服務(wù)214D來直接讀取鼠標(biāo)事件,然而應(yīng)用程序服務(wù)226可通過允許數(shù)據(jù)服務(wù)214D只要在有變化時(shí)就通知應(yīng)用程序服務(wù)226來避免這一手動(dòng)讀取。較佳地,被報(bào)告為任何單元中的相對(duì)變化通常由鼠標(biāo)內(nèi)的編碼器生成??蓪⒂邢迶?shù)量的鼠標(biāo)事件插入到數(shù)據(jù)服務(wù)214D中。如果數(shù)據(jù)服務(wù)214D已包含數(shù)據(jù)服務(wù)214可處理的一樣多的事件,則較佳地丟棄新鼠標(biāo)事件。
      圖2I示出了可由信息服務(wù)214C在請(qǐng)求之后生成的可定制的、基于標(biāo)簽的文檔234。信息服務(wù)214C保留鼠標(biāo)服務(wù)214所表示的鼠標(biāo)的屬性的概要。標(biāo)簽234A&lt;M:INFO&gt;包括用于定義鼠標(biāo)服務(wù)214的名字空間的屬性XMLNS:M。定義該屬性XMLNS:M以包括地址“HTTP://SCHEMAS.COM/M/I”。行234B定義標(biāo)簽&lt;M:BUTTONCOUNT&gt;,它表明由鼠標(biāo)服務(wù)214表示的鼠標(biāo)上的按鈕的數(shù)量。應(yīng)用程序服務(wù)226可使用標(biāo)簽&lt;M:BUTTONCOUNT&gt;來配置其用戶接口。行234C定義了標(biāo)簽&lt;M:MOTIONSCALE&gt;,它表明較佳地在每一合適的線性度量單位的軸編碼器單元中的鼠標(biāo)運(yùn)動(dòng)事件的尺度。一個(gè)合適的線性度量單位包括英寸,但也可使用其它度量單位。
      圖2J示出了可由數(shù)據(jù)服務(wù)214D管理用于保留尚未由應(yīng)用程序服務(wù)226消耗的鼠標(biāo)事件的可定制的、基于標(biāo)簽的文檔236。標(biāo)簽236A&lt;M:EVENTS&gt;及其成對(duì)的結(jié)束標(biāo)簽236J&lt;/M:EVENTS&gt;定義了事件元素。包含在標(biāo)簽236A、236J之間的是零個(gè)或多個(gè)事件元素。一個(gè)示例性事件元素在標(biāo)簽236B&lt;M:EVENT&gt;及其成對(duì)的結(jié)束標(biāo)簽&lt;/M:EVENT&gt;236I之間定義。由236C行上的標(biāo)簽&lt;M:TIME&gt;定義的時(shí)間元素使用系統(tǒng)全局時(shí)間指定了生成事件元素的時(shí)間。時(shí)間元素允許容易地理解事件發(fā)生的順序。行236D定義了標(biāo)簽&lt;M:BUTTONS&gt;,它較佳地為一無符號(hào)整數(shù),其各位被解釋為指定了鼠標(biāo)按鈕的狀態(tài)。較佳地,左按鈕被標(biāo)識(shí)為十進(jìn)制數(shù)字的數(shù)字4。中間的按鈕被標(biāo)識(shí)為十進(jìn)制數(shù)字的數(shù)字2,右按鈕被標(biāo)識(shí)為十進(jìn)制數(shù)字的數(shù)字1。如果缺少由標(biāo)簽&lt;M:BUTTONS&gt;定義的按鈕元素,則應(yīng)用程序服務(wù)226可解釋自從最后一次鼠標(biāo)事件以來鼠標(biāo)按鈕的狀態(tài)未改變。如果由標(biāo)簽&lt;M:BUTTONS&gt;定義的按鈕元素存在,則應(yīng)用程序服務(wù)226可解釋自從最后一次鼠標(biāo)事件以來鼠標(biāo)按鈕的狀態(tài)已改變。標(biāo)簽236E&lt;M:MOTION&gt;及其成對(duì)的結(jié)束標(biāo)簽236H&lt;/M:MOTION&gt;指定了自從最后一次鼠標(biāo)事件以來在軸編碼器單元方面鼠標(biāo)移動(dòng)了多少。如果由標(biāo)簽236E定義的運(yùn)動(dòng)元素不存在,則應(yīng)用程序服務(wù)226可解釋自從最后一次鼠標(biāo)事件以來鼠標(biāo)未移動(dòng)。在標(biāo)簽236E、236H之間的是標(biāo)簽236F&lt;M:DH&gt;,用于指示鼠標(biāo)的水平運(yùn)動(dòng)中的增量變化。標(biāo)簽236G&lt;M:DV&gt;指示鼠標(biāo)的垂直運(yùn)動(dòng)中的增量變化。
      作為組合服務(wù)的鍵盤服務(wù)216從具有可由標(biāo)識(shí)符(如URI)216C-1和單邊契約216C-2標(biāo)識(shí)的端口的信息服務(wù)216C形成;以及具有可由標(biāo)識(shí)符URI216D-1和單邊契約216D-2標(biāo)識(shí)的端口的數(shù)據(jù)服務(wù)216D形成。見圖2K。鍵盤服務(wù)216提供了到標(biāo)準(zhǔn)鍵盤的接口。當(dāng)激勵(lì)按鍵或按下或釋放修正鍵時(shí),鍵盤事件被自插入到數(shù)據(jù)服務(wù)216D中。應(yīng)用程序服務(wù)226可從數(shù)據(jù)服務(wù)216D直接請(qǐng)求生成的事件,或應(yīng)用程序服務(wù)226可要求數(shù)據(jù)服務(wù)216D自動(dòng)向應(yīng)用程序服務(wù)226通知其事件存儲(chǔ)中的任何變化。普通按鍵激勵(lì)較佳地生成為統(tǒng)一代碼字符。為允許由實(shí)際上不是鍵盤的東西(如,顯示屏上的虛擬鍵盤)生成鍵盤事件,較佳地不報(bào)告普通按鍵的釋放??稍跀?shù)據(jù)服務(wù)216D中插入有限數(shù)量的按鍵事件。如果已包含了最大數(shù)量的事件,則數(shù)據(jù)服務(wù)216D較佳地丟棄新鍵盤事件。
      圖2L示出了擔(dān)當(dāng)數(shù)據(jù)服務(wù)216D的事件存儲(chǔ)的可定制的、基于標(biāo)簽的文檔238。標(biāo)簽238A&lt;K:EVENTS&gt;及其成對(duì)的結(jié)束標(biāo)簽238M&lt;/K:EVENTS&gt;事件元素,它定義了包含零個(gè)或多個(gè)涉及鍵盤事件的事件元素。標(biāo)簽238A包括用于為鍵盤服務(wù)216定義名字空間的屬性XMLNS:K。屬性XMLNS:K包含地址“HTTP://SCHEMAS.COM/K/D”。示例性事件元素在標(biāo)簽238B&lt;K:EVENT&gt;及其成對(duì)的結(jié)束標(biāo)簽238L&lt;/K:EVENT&gt;之間定義。時(shí)間元素由標(biāo)簽238C&lt;K:TIME&gt;定義,用于較佳地使用系統(tǒng)全局時(shí)間指定生成事件元素的時(shí)間。時(shí)間元素允許應(yīng)用程序服務(wù)266理解事件發(fā)生的順序。標(biāo)簽238D&lt;K:CTRLKEY&gt;表明了鍵盤上CONTROL鍵的狀態(tài)。標(biāo)簽238E&lt;K:ALTKEY&gt;表示鍵盤上ALT鍵的狀態(tài),它結(jié)合另一按鍵使用以產(chǎn)生某些特殊的特征或功能,并通常用字母ALT標(biāo)記。標(biāo)簽238F定義另一修正鍵&lt;K:SHIFTKEY&gt;,它表示(當(dāng)組合另一按鍵按下時(shí))給予一個(gè)按鍵替換意義的鍵盤按鍵;例如,當(dāng)按下字母鍵時(shí),產(chǎn)生大寫字符。標(biāo)簽238G&lt;K:WINDOWKEY&gt;包含WINDOWS按鍵的狀態(tài)。標(biāo)簽238B、238L之間定義的事件元素中標(biāo)簽238D-238G的出現(xiàn)是可任選的。如果標(biāo)簽238D-238G不存在,則應(yīng)用程序服務(wù)226可推斷自從最后一次鍵盤時(shí)事件以來修正鍵的狀態(tài)未改變。如果修正標(biāo)簽238D-238G之一存在,則應(yīng)用程序服務(wù)226可推斷自從最后一次鍵盤事件以來修正鍵之一的狀態(tài)已改變。標(biāo)簽238H&lt;K:KEY&gt;及其成對(duì)的結(jié)束標(biāo)簽238K&lt;/K:KEY&gt;定義了按鍵敲擊的狀態(tài)。在標(biāo)簽238H、238K之間是標(biāo)簽238I&lt;K:SPECIALCODE&gt;。如果它包含默認(rèn)的FALSE值,則標(biāo)簽238J&lt;K:CODE&gt;包含統(tǒng)一代碼字符。反之,標(biāo)簽238I包含TRUE值,標(biāo)簽238J&lt;K:CODE&gt;包含特殊鍵代碼。諸如TAB和ENTER等按鍵被報(bào)告為特殊鍵代碼(標(biāo)簽238I&lt;K:SPECIALCODE&gt;設(shè)為TRUE),使得能夠說出諸如TAB和“CTRL+I”之間的差別。
      圖2M示出了由信息服務(wù)216C在請(qǐng)求之后產(chǎn)生的可定制的、基于標(biāo)簽的文檔240。標(biāo)簽240A&lt;K:INFO&gt;及其成對(duì)的結(jié)束標(biāo)簽240F&lt;/K:INFO&gt;定義了信息元素。信息元素包括用于定義鍵盤服務(wù)216的名字空間的屬性。該屬性為包含地址“HTTP://SCHEMAS.COM/K/I”的XMLNS:K。包含在標(biāo)簽240A、240F之間的是標(biāo)簽240B&lt;K:HASFUNCTIONKEYS&gt;,如果鍵盤具有功能鍵,如標(biāo)記為F1到F12的按鍵,則它具有值TRUE。如果鍵盤具有導(dǎo)航鍵,如四個(gè)箭頭鍵、INSERT鍵、DELETE鍵、HOME鍵、END鍵以及PAGE UP鍵和PAGE DOWN鍵,則標(biāo)簽240C&lt;K:HASNAVIGATIONKEYS&gt;被設(shè)為TRUE。如果鍵盤具有數(shù)字小鍵盤,則標(biāo)簽240D&lt;K:HASNUMERICPADKEYS&gt;被設(shè)為TRUE。NUMLOCK鍵的狀態(tài)變化不向應(yīng)用程序服務(wù)226報(bào)告。相反,NUMLOCK鍵修改數(shù)字小鍵盤中其它按鍵發(fā)送的代碼,它完全由鍵盤服務(wù)216處理。如果鍵盤具有WINDOWS鍵,則標(biāo)簽240E被設(shè)為TRUE。
      圖2N示出了包括彼此重疊的窗口242A和窗口242B的顯示器242。每一窗口242A、242B具有其自己的邊界,并可包含不同的文檔或同一文檔的不同視圖。屏幕上光標(biāo)242C是一個(gè)特殊的指示符,如稍微向左方傾斜的箭頭,它標(biāo)記鼠標(biāo)所移動(dòng)的位置。顯示器242是一種輸出設(shè)備,并較佳地由顯示器服務(wù)212表示,該服務(wù)是從服務(wù)212C-212H形成的組合服務(wù)。顯示器服務(wù)212提供了到顯示器242的接口。屏幕上的所有繪圖較佳地在窗口內(nèi)執(zhí)行,如窗口242A、242B,它們是顯示器242的矩形區(qū)域。每一窗口較佳地具有其自己的唯一的URI組,并且每一個(gè)都保留可以各種方式指定的一組像素。應(yīng)用程序服務(wù)226通過向顯示器服務(wù)212發(fā)送可定制的、基于標(biāo)簽的消息來創(chuàng)建并修改窗口242A、242B的屬性。
      顯示器服務(wù)212包括具有可由URI 212C-1和單邊契約121C-2標(biāo)識(shí)的端口的信息服務(wù)212C。見圖2O。信息服務(wù)212C包括可定制的、基于標(biāo)簽的文檔244。見圖2P。標(biāo)簽244A&lt;D:IINFO&gt;及其成對(duì)的結(jié)束標(biāo)簽244E&lt;/D:INFO&gt;定義了保留顯示器242的屬性的概要的信息元素。標(biāo)簽244B&lt;D:W&gt;包含以像素表示的顯示器242的屏幕寬度。標(biāo)簽244C&lt;D:H&gt;以像素描述了顯示器242的屏幕高度。標(biāo)簽244D&lt;D:FORMAT&gt;描述了顯示器242的屏幕的本機(jī)像素格式。
      顯示器服務(wù)212包括具有可由標(biāo)識(shí)符(如URI)232D-1和單邊契約212D-2標(biāo)識(shí)的端口的光標(biāo)形狀服務(wù)212D。見圖20,光標(biāo)形狀服務(wù)212D描述了屏幕上光標(biāo)242C的當(dāng)前形狀。形狀由可定制的、基于標(biāo)簽的文檔246描述。見圖2Q。標(biāo)簽246A&lt;D:SHAPE&gt;及其成對(duì)的結(jié)束標(biāo)簽246G&lt;/D:SHAPE&gt;定義了屏幕上光標(biāo)242C的形狀元素。標(biāo)簽246B&lt;D:IMAGE&gt;較佳地包含128字節(jié)的圖像數(shù)據(jù)塊(使用基-64符號(hào)表示法編碼),它標(biāo)識(shí)32×32的兩層位圖。數(shù)據(jù)較佳地以網(wǎng)絡(luò)字節(jié)順序,使得字節(jié)0的最高位對(duì)應(yīng)于位圖的位置(0,0),字節(jié)127的最低位對(duì)應(yīng)于位圖的位置(31,31)。標(biāo)簽246C&lt;D:MASK&gt;也保留128字節(jié)的數(shù)據(jù)塊(用基-64符號(hào)表示法編碼),它表示32×32的兩層位圖。再次,由標(biāo)簽246C定義的掩模元素的數(shù)據(jù)較佳地以網(wǎng)絡(luò)字節(jié)的順序,使得字節(jié)0的最高位對(duì)應(yīng)于位圖的位置(0,0),而字節(jié)127的最低位對(duì)應(yīng)于位圖的位置(31,31)。掩模元素的位圖指定了哪些像素的確是屏幕上光標(biāo)242的部分(1指像素有效)。圖像元素的位圖指定了實(shí)際像素(0指黑,1指白)。屏幕上光標(biāo)242C可通過指定其所有位都是0的掩模元素的位圖來隱藏。標(biāo)簽246D&lt;D:HOTSPOT&gt;及其成對(duì)的結(jié)束標(biāo)簽246H&lt;/D:HOTSPOT&gt;指定了光標(biāo)熱點(diǎn)(實(shí)際耦合至鼠標(biāo)的當(dāng)前位置的位置)與光標(biāo)位圖的位置(0,0)之間的偏移。較佳地,這是光標(biāo)位圖內(nèi)的位置,然而偏移可以是有符號(hào)的,因此熱點(diǎn)可以在位圖外的任何方向上。在標(biāo)簽246D、246H之間的是用于定義水平偏移的標(biāo)簽246E&lt;D:DH&gt;。標(biāo)簽246F&lt;D:DV&gt;定義了熱點(diǎn)元素的垂直偏移。
      顯示器服務(wù)212包括具有可由標(biāo)識(shí)符(如URI)212E-1和單邊契約212E-2標(biāo)識(shí)的端口的光標(biāo)位置服務(wù)212E。見圖2O??啥ㄖ频?、基于標(biāo)簽的文檔248描述了屏幕上光標(biāo)242C的當(dāng)前位置,較佳地為絕對(duì)位置。見圖2R。標(biāo)簽248A&lt;D:POSITOIN&gt;及其成對(duì)的結(jié)束標(biāo)簽248D&lt;/D:POSITION&gt;定義了位置元素。在標(biāo)簽248A、248D之間的是用于定義屏幕上光標(biāo)242C的水平位置的標(biāo)簽248B&lt;D:H&gt;。屏幕上光標(biāo)242C的垂直位置由標(biāo)簽248C&lt;D:V&gt;定義。標(biāo)簽248A包括屬性XMLNS:D,它被定義為包含地址“HTTP://SCHEMAS.COM/P/P”。
      顯示器服務(wù)212包括具有可由標(biāo)識(shí)符(如URI)212F-1和單邊契約212F-2標(biāo)識(shí)的端口的一個(gè)或多個(gè)窗口服務(wù)212F。見圖2O。窗口服務(wù)212F的每一例示表示每一對(duì)應(yīng)的窗口242A、242B。窗口服務(wù)212F包括用于描述它所表示的窗口242A、242B的可定制的、基于標(biāo)簽的文檔250。見圖2S。標(biāo)簽250A&lt;D:WINDOW&gt;及其成對(duì)的結(jié)束標(biāo)簽250H&lt;/D:WINDOW&gt;定義了窗口元素。標(biāo)簽250A包括用于定義窗口元素的名字空間的屬性XMLNS:D。屬性XMLNS:D等同于地址“HTTP://SCHEMAS.COM/D/W”。在標(biāo)簽250A、250H之間的是包含顯示器242的信息服務(wù)URI 212C-1的標(biāo)簽250B&lt;D:URI&gt;,在顯示器上顯示了由窗口服務(wù)212F表示的窗口242A、242B。標(biāo)簽250C&lt;D:T&gt;及標(biāo)簽250D&lt;D:L&gt;描述了顯示器242的屏幕上的窗口242A、242B的左上角的坐標(biāo)。窗口242A、242B的左上角較佳地在顯示器的屏幕上。標(biāo)簽250E&lt;D:W&gt;和標(biāo)簽250F&lt;D:H&gt;描述了窗口242A、242B的大小。如果標(biāo)簽250E或標(biāo)簽250F的任一個(gè)包含零值,則窗口242A、242B不覆蓋顯示器242的屏幕上的任何像素,為不可見的。標(biāo)簽250G&lt;D:DROPTIOME&gt;描述了窗口242A、242B的自動(dòng)放置時(shí)間。如果由標(biāo)簽250G定義的放置時(shí)間元素值為非零,則如果放置時(shí)間元素值小于當(dāng)前系統(tǒng)全局時(shí)間,窗口242A、242B將被自動(dòng)刪除。
      顯示器服務(wù)212包括具有可由標(biāo)識(shí)符(如URI)212G-1和單邊契約212G-2標(biāo)識(shí)的端口的窗口列表服務(wù)212G。見圖2O。窗口列表212G用于維護(hù)窗口242A、242B的列表,它們實(shí)際上在顯示器242的屏幕上以窗口棧順序顯示。窗口列表服務(wù)212G包括用于描述窗口242A、242B的演示順序的可定制的、基于標(biāo)簽的文檔252。見圖2T。標(biāo)簽252A&lt;D:WINDOWS&gt;及其成對(duì)的結(jié)束標(biāo)簽252D&lt;/D:WINDOWS&gt;定義了窗口元素。一個(gè)或多個(gè)標(biāo)簽&lt;D:URI&gt;252B、252C包含窗口服務(wù)的URI,如窗口服務(wù)URI 212F-1。標(biāo)簽252B、252C定義了兩個(gè)URI元素。URI元素的順序定義了顯示器242上的窗口棧順序。列表中的第一URI元素表明該窗口在棧的前方,列表中的最后一個(gè)URI表明該窗口在棧的最后方。
      顯示器服務(wù)212包括具有可由標(biāo)識(shí)符(如URI)212H-1和單邊契約212H-2標(biāo)識(shí)的端口的一個(gè)或多個(gè)窗口更新服務(wù)212H。見圖2P。應(yīng)用程序服務(wù)226通過創(chuàng)建具有適當(dāng)?shù)膯芜吰跫s212H-2的窗口更新服務(wù)212H、將窗口更新服務(wù)212H與窗口242A、242B相關(guān)聯(lián),并向窗口更新服務(wù)212H發(fā)送刷新或重畫窗口242A、242B的更新請(qǐng)求來改變與窗口242A、242B相關(guān)聯(lián)的像素。較佳地,來自應(yīng)用程序服務(wù)226的數(shù)據(jù)的每一格式具有其自己的窗口更新服務(wù)212H的類型,每一個(gè)都具有其自己的單邊契約212H-2。較佳地,改變與窗口242A、242B相關(guān)聯(lián)的像素所需要的所有參數(shù)是窗口更新服務(wù)212H的狀態(tài)的一部分。
      圖3A-3E示出了用于由作為服務(wù)的設(shè)備處理I/O事件的方法300。為清晰性目的,以下方法300的描述參考結(jié)合鼠標(biāo)服務(wù)214(圖2I)、鍵盤服務(wù)216(圖2L)和顯示器服務(wù)212(圖2P)所示的各種元素。從開始?jí)K,方法300前進(jìn)到在延續(xù)終結(jié)點(diǎn)(“終結(jié)點(diǎn)A”)和退出終結(jié)點(diǎn)(“終結(jié)點(diǎn)B”)之間定義的一組方法步驟302。該組方法步驟302描述了鍵盤服務(wù)用于處理鍵盤事件的過程(見圖3B)。
      從終結(jié)點(diǎn)A(圖3B),方法300前進(jìn)到判別塊308,作出測試以確定鍵盤上的按鍵是否被激勵(lì)。如果答復(fù)是“否”,則方法300循環(huán)回判別塊308,并重復(fù)上述處理步驟。反之,如果判別塊308的答復(fù)是“是”,則方法300前進(jìn)到塊310,將鍵盤事件自插入到數(shù)據(jù)服務(wù)216D中。在塊312,向應(yīng)用程序服務(wù)226通知鍵盤事件的插入。應(yīng)用程序服務(wù)226以時(shí)間順序處理每一鍵盤事件。見塊314。方法300前進(jìn)到塊316,應(yīng)用程序服務(wù)226向數(shù)據(jù)服務(wù)216D發(fā)送消息以刪除已被處理的鍵盤事件。在塊318,鍵盤服務(wù)216的數(shù)據(jù)服務(wù)216D移除已被處理的鍵盤事件。方法300然后進(jìn)入退出終結(jié)點(diǎn)B。
      從退出終結(jié)點(diǎn)B(圖3A),方法300前進(jìn)到在延續(xù)終結(jié)點(diǎn)(“終結(jié)點(diǎn)C”)和退出終結(jié)點(diǎn)(“終結(jié)點(diǎn)D”)之間定義的一組方法步驟304。該組方法步驟304描述鼠標(biāo)服務(wù)214用于處理鼠標(biāo)事件的過程(見圖3C)。
      從終結(jié)點(diǎn)C(圖3C),方法300前進(jìn)到判別塊320,作出測試以確定是否激勵(lì)了鼠標(biāo)。如果判別塊320的測試的答復(fù)是“否”,則方法300循環(huán)回判別塊320,并重復(fù)上述處理步驟。反之,判別塊320的測試的答復(fù)是“是”,方法300前進(jìn)到塊322,將鼠標(biāo)事件自插入到數(shù)據(jù)服務(wù)214D中。在塊324,向應(yīng)用程序服務(wù)226通知鼠標(biāo)事件的插入。應(yīng)用程序服務(wù)226以時(shí)間順序處理每一鼠標(biāo)事件。見塊326。方法300前進(jìn)到塊328,應(yīng)用程序服務(wù)326向數(shù)據(jù)服務(wù)214D發(fā)送消息以刪除所處理的鼠標(biāo)事件。在塊330,鼠標(biāo)服務(wù)214的數(shù)據(jù)服務(wù)214D移除所處理的鼠標(biāo)事件。方法300繼續(xù)到退出終結(jié)點(diǎn)D。
      從退出終結(jié)點(diǎn)D(圖3A),方法300前進(jìn)到延續(xù)終結(jié)點(diǎn)(“終結(jié)點(diǎn)E”)和退出終結(jié)點(diǎn)(“終結(jié)點(diǎn)F”)之間定義的一組方法步驟306。該組方法步驟306描述了顯示器服務(wù)212用于處理顯示器事件的過程(見圖3D-3E)。
      從終結(jié)點(diǎn)E(圖3D),方法300前進(jìn)到判別塊332,作出測試以確定是否創(chuàng)建窗口。如果判別塊332的測試的答復(fù)是“是”,則方法300前進(jìn)到塊334,用標(biāo)識(shí)窗口服務(wù)212F的URI 212F-1創(chuàng)建窗口服務(wù)212F。在塊336,由應(yīng)用程序服務(wù)226將創(chuàng)建的窗口服務(wù)212F插入到窗口列表服務(wù)212G中,并由此控制顯示器242的屏幕上窗口242A、242B的堆棧順序。如果判別塊332的測試的答復(fù)是“否”,則方法300前進(jìn)到另一判別塊338。從塊336,方法300也繼續(xù)到判別塊338。在判別塊338,作出測試以確定窗口242A、242B是否需要用新像素來更新。如果答復(fù)是“是”,則應(yīng)用程序服務(wù)226向窗口更新服務(wù)212H發(fā)送期望的更新,并且窗口更新服務(wù)212H用新像素重畫對(duì)應(yīng)的窗口242A、242B。見塊340,如果判別塊338的測試的答復(fù)是“否”,則方法前進(jìn)到另一延續(xù)終結(jié)點(diǎn)(“終結(jié)點(diǎn)E1”)。
      從終結(jié)點(diǎn)E1(圖3E),方法300前進(jìn)到判別塊342,作出測試以確定是否有新的鼠標(biāo)形狀。如果答復(fù)是“是”,則用新圖像來更新光標(biāo)形狀服務(wù)212D。在塊346,用新掩碼更新光標(biāo)形狀服務(wù)212D。從塊346,方法300前進(jìn)到另一判別塊348。如果判別塊342的答復(fù)是“否”,則方法300也繼續(xù)到判別塊348。在判別塊348,作出測試以確定是否有鼠標(biāo)事件。如果判別塊348的測試的答復(fù)是“是”,則更新屏幕上光標(biāo)242C的位置。見塊350。如果判別塊348的測試的答復(fù)是“否”,則方法繼續(xù)到另一延續(xù)終結(jié)點(diǎn)(“終結(jié)點(diǎn)E2”)。從塊350,方法300也繼續(xù)到退出終結(jié)點(diǎn)F。從終結(jié)點(diǎn)F(圖3A),方法300終止執(zhí)行。
      盡管展示并描述了本發(fā)明的較佳實(shí)施例,然而可以理解,可以在不脫離本發(fā)明的精神和范圍的情況下作出各種改變。
      權(quán)利要求
      1.網(wǎng)絡(luò)化系統(tǒng)中,一種作為計(jì)算機(jī)子系統(tǒng)的設(shè)備,其特征在于,它包括一個(gè)或多個(gè)在所述設(shè)備中執(zhí)行的服務(wù),每一服務(wù)包括可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述服務(wù)的一個(gè)或多個(gè)行為的契約。
      2.如權(quán)利要求1所述的設(shè)備,其特征在于,所述一個(gè)或多個(gè)服務(wù)包括一信息服務(wù),所述信息服務(wù)能夠產(chǎn)生一用于描述所述設(shè)備的能力的可定制的、基于標(biāo)簽的文檔。
      3.如權(quán)利要求1所述的設(shè)備,其特征在于,所述一個(gè)或多個(gè)服務(wù)包括一數(shù)據(jù)服務(wù),所述數(shù)據(jù)服務(wù)能夠儲(chǔ)存由所述設(shè)備生成的輸入/輸出事件、并還能夠響應(yīng)關(guān)于所述輸入/輸出事件的查詢。
      4.如權(quán)利要求1所述的設(shè)備,其特征在于,它包括一網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序。
      5.如權(quán)利要求1所述的設(shè)備,其特征在于,它還包括一在其上執(zhí)行所述一個(gè)或多個(gè)服務(wù)的分散化操作系統(tǒng)。
      6.網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)中一種終端服務(wù),其特征在于,它包括一具有可由標(biāo)識(shí)符標(biāo)識(shí)的端口的顯示器服務(wù),所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述顯示器服務(wù)的一個(gè)或多個(gè)行為的契約。
      7.如權(quán)利要求6所述的終端服務(wù),其特征在于,所述顯示器服務(wù)包括一用于描述屏幕上光標(biāo)的形狀的光標(biāo)形狀服務(wù),所述光標(biāo)形狀服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述光標(biāo)形狀服務(wù)的一個(gè)或多個(gè)行為的契約。
      8.如權(quán)利要求6所述的終端服務(wù),其特征在于,所述顯示器服務(wù)包括一用于描述屏幕上光標(biāo)的位置的光標(biāo)位置服務(wù),所述光標(biāo)位置服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述光標(biāo)位置服務(wù)的一個(gè)或多個(gè)行為的契約。
      9.如權(quán)利要求6所述的終端服務(wù),其特征在于,所述顯示器服務(wù)包括一用于描述窗口的窗口服務(wù),所述窗口服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述窗口服務(wù)的一個(gè)或多個(gè)行為的契約。
      10.如權(quán)利要求9所述的終端服務(wù),其特征在于,所述顯示器服務(wù)包括一用于包含出現(xiàn)在顯示器上的窗口服務(wù)列表的窗口列表服務(wù),所述窗口列表服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述窗口列表服務(wù)的一個(gè)或多個(gè)行為的契約。
      11.如權(quán)利要求10所述的終端服務(wù),其特征在于,所述顯示器服務(wù)包括一用于刷新由窗口服務(wù)表示的窗口的窗口更新服務(wù),所述窗口更新服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述窗口更新服務(wù)的一個(gè)或多個(gè)行為的契約。
      12.如權(quán)利要求6所述的終端服務(wù),其特征在于,它還包括一具有一可由標(biāo)識(shí)符標(biāo)識(shí)的端口的鍵盤服務(wù),所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述鍵盤服務(wù)的一個(gè)或多個(gè)行為的契約。
      13.如權(quán)利要求12所述的終端服務(wù),其特征在于,所述鍵盤服務(wù)包括一用于包含由鍵盤生成的鍵盤事件的數(shù)據(jù)服務(wù),所述數(shù)據(jù)服務(wù)能夠響應(yīng)對(duì)移除用于處理的鍵盤事件的查詢。
      14.如權(quán)利要求6所述的終端服務(wù),其特征在于,它還包括一鼠標(biāo)服務(wù),所述鼠標(biāo)服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述鼠標(biāo)服務(wù)的一個(gè)或多個(gè)行為的契約。
      15.如權(quán)利要求14所述的終端服務(wù),其特征在于,所述鼠標(biāo)服務(wù)包括一用于包含由鼠標(biāo)生成的鼠標(biāo)事件的數(shù)據(jù)服務(wù),所述數(shù)據(jù)服務(wù)能夠響應(yīng)對(duì)移除用于處理的鼠標(biāo)事件的查詢。
      16.一種用于由作為服務(wù)的設(shè)備處理輸入/輸出事件的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法包括向表示設(shè)備的服務(wù)請(qǐng)求輸入/輸出事件,所述服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述服務(wù)的一個(gè)或多個(gè)行為的契約;接收包含所述輸入/輸出事件的可定制的、基于標(biāo)簽的消息;以及請(qǐng)求所述服務(wù)移除所述輸入/輸出事件。
      17.如權(quán)利要求16所述的方法,其特征在于,它還包括請(qǐng)求所述服務(wù)創(chuàng)建窗口,所述創(chuàng)建窗口的動(dòng)作創(chuàng)建一具有一可由標(biāo)識(shí)符標(biāo)識(shí)的端口的窗口服務(wù),所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述窗口服務(wù)的一個(gè)或多個(gè)行為的契約。
      18.如權(quán)利要求17所述的方法,其特征在于,它還包括請(qǐng)求所述服務(wù)刷新所述窗口,所述請(qǐng)求動(dòng)作調(diào)用一重畫所述窗口的窗口更新服務(wù)。
      19.如權(quán)利要求16所述的方法,其特征在于,它還包括請(qǐng)求所述服務(wù)改變光標(biāo)形狀,所述請(qǐng)求動(dòng)作調(diào)用一改變所述光標(biāo)形狀的光標(biāo)形狀服務(wù)。
      20.如權(quán)利要求16所述的方法,其特征在于,它還包括請(qǐng)求所述服務(wù)改變光標(biāo)位置,所述請(qǐng)求動(dòng)作調(diào)用一改變所述光標(biāo)位置的光標(biāo)位置服務(wù)。
      21.一種具有用于實(shí)現(xiàn)由作為服務(wù)的設(shè)備處理輸入/輸出事件的計(jì)算機(jī)實(shí)現(xiàn)的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述方法包括向表示設(shè)備的服務(wù)請(qǐng)求輸入/輸出事件,所述服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述服務(wù)的一個(gè)或多個(gè)行為的契約;接收一包含所述輸入/輸出事件的可定制的、基于標(biāo)簽的消息;以及請(qǐng)求所述服務(wù)移除所述輸入/輸出事件。
      22.如權(quán)利要求21所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括請(qǐng)求所述服務(wù)創(chuàng)建窗口,所述創(chuàng)建窗口的動(dòng)作創(chuàng)建一具有可由標(biāo)識(shí)符標(biāo)識(shí)的端口的窗口服務(wù),所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符和一用于描述所述窗口服務(wù)的一個(gè)或多個(gè)行為的契約。
      23.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括請(qǐng)求所述服務(wù)刷新所述窗口,所述刷新動(dòng)作調(diào)用一重畫所述窗口的窗口更新服務(wù)。
      24.如權(quán)利要求21所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括請(qǐng)求所述服務(wù)改變光標(biāo)形狀,所述請(qǐng)求動(dòng)作調(diào)用一改變所述光標(biāo)形狀的光標(biāo)形狀服務(wù)。
      25.如權(quán)利要求21所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括請(qǐng)求所述服務(wù)改變光標(biāo)位置,所述請(qǐng)求動(dòng)作調(diào)用一改變所述光標(biāo)位置的光標(biāo)位置服務(wù)。
      26.網(wǎng)絡(luò)化系統(tǒng)中一種作為計(jì)算機(jī)子系統(tǒng)的設(shè)備,其特征在于,它包括一個(gè)或多個(gè)在所述設(shè)備中執(zhí)行的服務(wù),每一服務(wù)包括一可由標(biāo)識(shí)符標(biāo)識(shí)的端口,所述標(biāo)識(shí)符包括一統(tǒng)一資源標(biāo)識(shí)符,所述設(shè)備能夠耦合至所述網(wǎng)絡(luò)化系統(tǒng)以交換可定制的、基于標(biāo)簽的消息。
      全文摘要
      本發(fā)明的各種實(shí)施例將設(shè)備轉(zhuǎn)換成能夠與個(gè)人計(jì)算機(jī)通信的web服務(wù)或?qū)S梅?wù)器。本發(fā)明的各種實(shí)施例允許設(shè)備驅(qū)動(dòng)程序的各個(gè)底層方面駐留在設(shè)備中,從而消除了對(duì)設(shè)備與合法規(guī)范兼容的需求。本發(fā)明的各種實(shí)施例允許各種設(shè)備在已內(nèi)置了底層軟件的情況下從工廠發(fā)貨,使得用戶從處理安裝和更新設(shè)備驅(qū)動(dòng)程序的經(jīng)驗(yàn)中解放。在本發(fā)明的各種實(shí)施例中,每一設(shè)備較佳地是可由統(tǒng)一資源標(biāo)識(shí)符(URI)標(biāo)識(shí)的網(wǎng)絡(luò)節(jié)點(diǎn)。
      文檔編號(hào)G06F9/46GK1624671SQ20041009569
      公開日2005年6月8日 申請(qǐng)日期2004年11月22日 優(yōu)先權(quán)日2003年11月20日
      發(fā)明者D·G·康羅伊, G·克里杉薩科寶羅斯, H·F·尼爾森 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1