【正文】
o w 11R o w 22. . .nR o w NR a n g e :0C e l l 11C e l l 22. . .nC e l l NC e l l s :W o r k s h e e tR o wW o r k s h e e t W o r k s h e e tR o w R o w. . .. . .圖 Excel 文檔映射成樹狀線性結構如圖 所示,在這個樹狀線性結構中,根節(jié)點是工作表對象,其中含有一個工作簿對象的線性序列,而每一個工作簿對象中含有多個線性序列,分別為表格行序列,圖形序列和圖標序列等。在操作系統(tǒng)底層 API 的支持下,我們可以采用諸多手段來截獲用戶對特定應用程序的輸入事件,例如鼠標點擊,鼠標移動,鍵盤操作等等。所謂有效操作就是指在協(xié)同應用程序中,由用戶產生的那些對數(shù)據(jù)的狀態(tài)進行改變的操作。以 Excel 為例,任何對文檔數(shù)據(jù)有影響的操作都被封裝成為有效操作,假若共有 個不同的有效操作,那么由于這些操作的對象之間可能具有相互關聯(lián)性,我們至多N會需要 個方法來處理這些有效操作的一致性問題。例如 參數(shù)僅僅objSeq表示一個對象序列,而這個對象序列可能是單元格,圖形,或者任何對象; 參數(shù)也可以表ky示任何一種對象的屬性,如顏色,大小,位置等等;而 和 參數(shù)可以表示任何一個屬性ovalnl的值。為了合理有效地截獲用戶與應用程序的交互,我們仍需要引入底層操作系統(tǒng)提供的截獲方法。我們通過這樣一個事件來監(jiān)視當前被選中單元格的變化。我們主要來討論幾個主要的事件在截獲用戶輸入中的作用。由上述幾點問題,歸結起來,我們所需要實現(xiàn)的實際上是兩個適配層:1. 有效操作和元操作間的適配層,用于有效操作和元操作間的互相轉化;2. 應用程序和有效操作間的適配層,用于生成有效操作和有效操作的重現(xiàn)。在這里,我們再引入一個新的概念: 元操作 。一方面,經(jīng)過封裝的有效操作以攜帶數(shù)據(jù)的形式可以被方便地發(fā)送到參與協(xié)同的各個站點,另一方面,經(jīng)過過濾的這些有效操作具有明顯的語義信息,能夠被操作轉換技術所識別,進而進行一致性控制。舉個例子說,某些操作,例如應用程序窗口的移動,最大化,最小化等操作,對于數(shù)據(jù)一致性而言并沒有切實意義,將這些操作廣播到每個客戶端將不起任何作用?;谕该鬟m配方法的互聯(lián)網(wǎng)協(xié)同軟件第 21 頁 共 65 頁┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊4 操作層面的適配技術 封裝和過濾用戶操作 概述在協(xié)同應用程序中,用戶對應用程序的操作體現(xiàn)了用戶對共享數(shù)據(jù)的操作,我們需要對這些操作進行一致性控制,即保證任意時間每個用戶都能夠及時準確地收到其他用戶的操作信息,并能夠保證這些操作在每個用戶處均具有相同的順序。綜上所述,實現(xiàn)單元格內部字符級別數(shù)據(jù)一致性所要付出巨大的代價,而實現(xiàn)這種一致性所帶來的好處卻極為有限。單元格對象內部數(shù)據(jù)實質上是一個帶格式的字符串序列,那么基于上述理由,我們應該可以使用操作轉換技術來實現(xiàn)單元格內部字符的數(shù)據(jù)一致性。由此,在繪圖區(qū)中,這些不同的對象序列均為一維線性結構,且可以用索引形式來引用其中的對象,則操作轉換技術可以順利地應用在這些對象序列上,以保證數(shù)據(jù)的一致性。 工作表內部對象的映射一個 Excel 工作表中仍然具有較為復雜的數(shù)據(jù)結構,但本文所關心的范圍主要有兩個部分:表格區(qū)和繪圖區(qū)。一種是按照名字查找,另一種則是根據(jù)工作表的序號進行查找。綜上所述,我們可以發(fā)現(xiàn),在整個 Excel 組件對象模型中,各個對象均是從上層對象中獲基于透明適配方法的互聯(lián)網(wǎng)協(xié)同軟件第 17 頁 共 65 頁┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊取而來,且每個對象中均有指向下層對象的集合。正如圖 所示,當前打開的工作簿內含有三個工作表:Sheet1,Sheet2 和 Sheet3。在這眾多的接口和對象中,僅有一部分是比較重要或是我們需要用到的,我們用一個示意圖來表示這些對象間的相互關系:工作簿對象基于透明適配方法的互聯(lián)網(wǎng)協(xié)同軟件第 16 頁 共 65 頁┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊應用程序對象A p p l i c a t i o n工作簿對象W o r k b o o k工作簿對象W o r k b o o k. . .調用 G e t W o r k b o o k 方法工作表對象W o r k s h e e t工作表對象W o r k s h e e t. . .. . .調用 G e t W o r k s h e e t 方法單元格對象R a n g e圖形對象S h a p e圖表對象C h a r t調用 G e t S h a p e 方法 調用 G e t C h a r t 方法調用 G e t R a n g e 方法. . . . . . . . ....圖 Excel 組件對象模型示意圖由上圖,Excel 組件對象模型的基本類型層次結構以樹型結構出現(xiàn),最頂層的 Application對象代表了一個 Excel 應用程序本身,它含有大量關于運行時應用程序的屬性,用戶和對象信息,其主要作用在于控制 Excel 應用程序的一般狀態(tài),顯示屬性,以及通過此對象來獲取其他對象。一個工作表內含有一張以行列方式表示的表,表內的每個單元格中具有相關的文本。若上述情況均不滿足,則返回 false,即兩者的目n標域不獨立。nnn4. 若 =4,即操作 4 先于操作 發(fā)生,雖然操作 4 與操作 具有同一個父域,但是二者x n的目標域不同,操作 4 不可能影響到操作 所在域的地址,因此不需要對操作 做轉換。我們用一個例子來說明這一問題。 擴展后的操作轉換技術為了使操作轉換技術能應用于復雜的文件數(shù)據(jù),我們需要將操作操作轉換技術擴展到具有樹狀線性結構特征的文件數(shù)據(jù)上。特別需要提出的是,當一個對象沒有子節(jié)點,即對象中不具有下一級結構時,我們認為其為終結對象,反之我們認為它為中間對象,即對象中仍有指向下一級對象的鏈接。在上述基本操作轉換技術中,數(shù)據(jù)模型即為一個線性的地址空間,所有的對象都按照順序排列在這個地址空間中供用戶操作;而操作模型則由兩個元操作組成:插入操作和刪除操作。用戶 1 向文件起始位置插入一個新字符“x” ,那么該操作可以被描述成用戶 1 在“0”這個位置插入了字符“x” 。而作為研究者,我們可以提出一套標準,將一般單用戶軟件和操作系統(tǒng)的接口進行規(guī)范化,甚至能夠實現(xiàn)一種無侵入性或低侵入性的架構(Framework) ,將主流單用戶軟件納入其中,完美地實現(xiàn)對多用戶實時協(xié)同工作的支持,而這些都具有巨大的應用前景和市場價值。而信息資源共享正在成為一種趨勢,正在逐漸融入社會生活的方方面面。由于這一方法對單用戶應用程序完全透明,基于透明適配的協(xié)同應用程序支持并發(fā)工作、具有好的響應能力和松散的 WYSIWIS,同時可以避免復制共享系統(tǒng)所面臨的大多數(shù)問題[1] [13] [14]。這種結構的精髓在于組件替換的思想,即利用應用程序級別的語義信息,在運行時將單用戶應用程序的接口自動地替換成多用戶協(xié)同應用的接口。但與此同時,這樣的系統(tǒng)存在著嚴格的 WYSIWIS(What You See Is What I See)要求[1] [7]、響應能力差以及不能有效地使用網(wǎng)絡資源等多方面的問題。現(xiàn)有的大多數(shù)商業(yè)應用都是設計成單用戶的,而未來的應用設計很可能仍將以單用戶為中心。有效的信息共享機制可以消除信息孤島,提高信息化效率,減少不必要的重復投資和建設。作者簽名: 日期: 年 月 日導師簽名: 日期: 年 月 日基于透明適配方法的互聯(lián)網(wǎng)協(xié)同軟件第 4 頁 共 65 頁┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊目錄1 引言 ...........................................................................4 研究背景 .................................................................4 概述 ...............................................................4 已有成果 ...........................................................4 新的方法和技術 ......................................................5 研究和設計目標 ...........................................................5 研究價值與應用價值 .......................................................62 數(shù)據(jù)層面的適配技術 .............................................................7 基本的操作轉換技術 .......................................................7 樹狀線性結構 .............................................................7 定義和性質 .........................................................7 尋址方式 ...........................................................8 擴展后的操作轉換技術 .....................................................8 操作間的關系判斷策略 ...............................................9 根據(jù)地址對判斷操作間的關系 ........................................103 應用層面的適配技術 ............................................................12 Microsoft Excel 工作簿的數(shù)據(jù)結構 .........................................12 概述 ..............................................................12 從用戶角度看 Excel 工作表 ..........................................12 從編程接口角度看 Excel 工作表 ......................................13 樹狀線性結構的映射 ......................................................14 概述 ..............................................................14 工作表(Worksheet)對象序列的映射 .................................15 工作表內部對象的映射 ..............................................15 對象內部數(shù)據(jù)的映射 ................................................16 總結 ..............................................................174 操作層面的適配技術 ............................................................18 封裝和過濾用戶操作 ......................................................18 概述 ..............................................................18 有效操作 ..........................................................18 元操作 ...........................................