專利名稱:統(tǒng)一導航的系統(tǒng)和方法
背景技術(shù):
事實上所有的web應用都由一組頁面構(gòu)成。web應用開發(fā)者的主要關(guān)注之一是管理這些頁面之間的導航。導航模型是網(wǎng)頁的較復雜部分之一??缬啥鄠€頁面構(gòu)成的整個網(wǎng)站管理導航會是個困難任務。
以前已提供了用于創(chuàng)建和管理網(wǎng)站導航的一些方法。這些方法中的一些包括創(chuàng)作導航和將它直接嵌入網(wǎng)頁本身,提供獨立于內(nèi)容針對導航的外部結(jié)構(gòu)或者具有從網(wǎng)站的結(jié)構(gòu)導出的導航結(jié)構(gòu)。
創(chuàng)作導航允許導航結(jié)構(gòu)的定制并允許網(wǎng)站開發(fā)者在創(chuàng)建和管理web站點的導航方面的高度靈活性。但是,隨著web站點的大小增加,保持這些創(chuàng)作的導航同步所需的工作量也急劇增加。相反,按照層次結(jié)構(gòu)構(gòu)造導航使得隨著網(wǎng)站增長而管理更容易,但失去了大量定制功能。需要一種解決方案,使得網(wǎng)站的導航結(jié)構(gòu)可隨其增長而始終如一地管理,并仍為網(wǎng)站的創(chuàng)作者提供設計他們自己的導航的能力。
發(fā)明內(nèi)容
本發(fā)明的實施例涉及統(tǒng)一導航的系統(tǒng)和方法,其中導航結(jié)構(gòu)按照層次結(jié)構(gòu)控制,同時仍允許在整個導航結(jié)構(gòu)中創(chuàng)作特定的導航。對應于站點導航結(jié)構(gòu)的數(shù)據(jù)被高速緩存。高速緩存的數(shù)據(jù)對應于表示站點導航的層次結(jié)構(gòu)的分層樹結(jié)構(gòu)。管理分層樹結(jié)構(gòu)允許站點按照其結(jié)構(gòu)組織。此外,創(chuàng)作的導航或鏈接在整個導航結(jié)構(gòu)中得到支持。
按照本發(fā)明的一個方面,站點的導航結(jié)構(gòu)在運行時間生成并由被呈現(xiàn)的當前頁面上的欄位表示。鏈接按照全局導航欄位和節(jié)導航欄位組織。全局導航欄位通常包括到站點的主要區(qū)域的鏈接,而節(jié)導航欄位包括目標為特定區(qū)域的鏈接。對應于導航結(jié)構(gòu)的數(shù)據(jù)因此對每個頁面都相似,帶有關(guān)聯(lián)于每個頁面的全局導航欄位的鏈接表和節(jié)導航欄位的鏈接表。
按照本發(fā)明的另一方面,某個創(chuàng)作的鏈接允許導航結(jié)構(gòu)的一節(jié)“移植”到導航結(jié)構(gòu)的另一節(jié)。移植指生成移植鏈接,使得容器的子對象或所鏈接的頁面從導航站點的用戶角度被視為導航結(jié)構(gòu)的另一節(jié)的子對象。
按照本發(fā)明的另一方面,元數(shù)據(jù)對應于每個頁面被高速緩存。元數(shù)據(jù)包括如何處理導航到頁面的參數(shù)。例如,頁面可具有一個相關(guān)聯(lián)的時間安排參數(shù)。時間安排參數(shù)防止內(nèi)容發(fā)布,直至到達指定的日期或時間。也可包括其它參數(shù),將在下面更詳細地描述。
按照本發(fā)明的又一方面,創(chuàng)建導航對象,它對應于與網(wǎng)絡站點相關(guān)聯(lián)的導航鏈接。導航結(jié)構(gòu)從導航對象生成。導航結(jié)構(gòu)按照關(guān)聯(lián)于導航鏈接的層次結(jié)構(gòu)組織。當網(wǎng)絡站點包括創(chuàng)作的導航鏈接時,創(chuàng)作的導航對象被包括在導航結(jié)構(gòu)內(nèi)。然后呈現(xiàn)站點的頁面,其中頁面包括對應于導航結(jié)構(gòu)的欄位。
圖1例示一個示例性計算設備,它可用于本發(fā)明的一個示例性實施例。
圖2例示按照本發(fā)明的站點內(nèi)一個典型頁面的示例性屏幕快照。
圖3例示按照本發(fā)明包括樹內(nèi)鏈接的頁面的示例性樹導航結(jié)構(gòu)。
圖4例示按照本發(fā)明包括到另一站點的跨樹鏈接的示例性樹導航結(jié)構(gòu)。
圖5例示按照本發(fā)明對應于導航結(jié)構(gòu)的一個節(jié)點的一組示例性數(shù)據(jù)的方框圖。
圖6例示按照本發(fā)明高速緩存和產(chǎn)生導航結(jié)構(gòu)的示例性系統(tǒng)。
圖7例示按照本發(fā)明包括用于關(guān)聯(lián)于頁面的導航在頁編輯的示例性頁面屏幕快照。
圖8例示按照本發(fā)明用于關(guān)聯(lián)于站點頁面的導航鏈接的編輯的示例性用戶界面。
圖9例示按照本發(fā)明用于將新導航鏈接添加到站點頁面的示例性用戶界面。
圖10例示按照本發(fā)明表示新鏈接拖放的示例性頁面屏幕快照。
圖11例示按照本發(fā)明用于排序關(guān)聯(lián)于站點頁面的導航鏈接順序的示例性用戶界面。
圖12例示按照本發(fā)明用于選擇在站點導航內(nèi)頁面內(nèi)容并排序站點頁面的示例性用戶界面。
圖13例示按照本發(fā)明用于選擇關(guān)聯(lián)于站點頁面的繼承屬性的示例性用戶界面。
詳細說明現(xiàn)在將在下面參考附圖更全面地描述本發(fā)明,附圖組成其一部分,并且作為說明示出了實施本發(fā)明的特定示例性實施例。但是,本發(fā)明可具體化為許多不同形式并不應解釋為限制于這里所提出的實施例;而且,提供了這些實施例,從而對于本領(lǐng)域的技術(shù)人員而言本公開將是徹底而完全的,并將全面覆蓋本發(fā)明的范圍。尤其是本發(fā)明可具體化為方法或設備。相應地,本發(fā)明可采用全硬件實施例、全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。因此,以下詳細說明不作為限制理解。
示例操作環(huán)境參考圖1,實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計算設備,諸如計算設備100。計算設備100可配置為客戶機、服務器、移動設備或任意其它計算設備。在非?;镜呐渲弥校嬎阍O備一般至少包括一個處理單元102和系統(tǒng)存儲器104。根據(jù)計算設備的準確配置和類型,系統(tǒng)存儲器104可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或二者的某種結(jié)合。系統(tǒng)存儲器104一般包括操作系統(tǒng)105、一或多個應用程序106,并可包括程序數(shù)據(jù)107。在一個實施例中,應用程序106包括統(tǒng)一導航應用程序120,用于實現(xiàn)本發(fā)明的功能。這個基本配置通過虛線108內(nèi)的那些組件示于圖1。
計算設備100可具有附加特征和功能。例如,計算設備100還可包括附加的數(shù)據(jù)存儲設備(可移動和/或不可移動的),諸如,例如,磁盤、光盤或磁帶。這類附加的存儲器由可移動存儲器109和不可移動存儲器110示于圖1。計算機存儲介質(zhì)可包括以用于諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的存儲的任意方法和技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動的介質(zhì)。系統(tǒng)存儲器104、可移動存儲器109和不可移動存儲器110都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光存儲器、磁盒、磁帶、磁盤存儲器或其它磁存儲設備或任意其它可用于存儲所需信息并能被計算設備100訪問的介質(zhì)。任意這類計算機存儲介質(zhì)都可以是設備100的一部分。計算設備100還可具有輸入設備112,諸如鍵盤、鼠標、筆、聲音輸入設備、觸摸輸入設備等。也可包括諸如顯示器、揚聲器、打印機等輸出設備114。
計算設備100還包含通信連接116,使得設備能夠與其它計算設備118通信,諸如經(jīng)由網(wǎng)絡。通信連接116是通信介質(zhì)的一個示例。通信介質(zhì)一般可包含諸如載波或其它傳輸機制的調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任意信息傳輸介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”指具有以編碼信號中信息的方式設置或改變的其一或多個的特性的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接線纜連接的有線介質(zhì)和諸如聲波、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。這里所用的術(shù)語計算機可讀介質(zhì)包括存儲介質(zhì)和通信介質(zhì)兩種。
統(tǒng)一導航貫穿本說明書和權(quán)利要求書,術(shù)語“頁面(page)”或“網(wǎng)頁(web page)”指網(wǎng)絡(例如,萬維網(wǎng))上由唯一的URL(統(tǒng)一資源定位符)標識的文檔。術(shù)語“站點(site)”或“網(wǎng)站(web site)”指網(wǎng)絡(例如,萬維網(wǎng))上包括一或多個頁面(例如,主頁)的位置。術(shù)語“根頁面(root page)”通常指站點導航結(jié)構(gòu)中頂端的頁面,這與術(shù)語根目錄指文件系統(tǒng)中頂端的目錄幾乎是一樣的。
術(shù)語“頂端導航(top navigation)”或“全局導航(globalnavigation)”通常指一般由根的主要子區(qū)域組成的大多數(shù)頁面的頂端上的水平條,并且經(jīng)常還包括指向站點中其它頁面的一些鏈接。也存在子站點可有其自己的全局導航用于整個區(qū)域集合的情況。全局導航欄位的外觀可呈現(xiàn)如站點作者所選擇的多種風格(例如,堆疊式工作表)(參見圖2的210)。
術(shù)語“節(jié)導航(section navigation)”通常指從區(qū)域到區(qū)域改變但在一個單一區(qū)域內(nèi)保持一致的導航欄位。節(jié)導航可包括站點的子區(qū)域或頁面。有時節(jié)導航中鏈接的底層層次結(jié)構(gòu)是通過使用飛出(flyout)或靜態(tài)嵌套鏈接顯示的。節(jié)導航可具有到站點的其它區(qū)域的鏈接或節(jié)導航中的“外部鏈接”。節(jié)導航欄位的外觀也可呈現(xiàn)多種風格,帶有一些示于頁面左邊的典型節(jié)導航欄位(參見圖2的220)。
本發(fā)明的實施例涉及允許站點作者將站點的導航與站點的層次結(jié)構(gòu)分離,同時還提供貫穿導航結(jié)構(gòu)插入的改變或?qū)iT創(chuàng)作的鏈接。站點的導航結(jié)構(gòu)表示為樹,帶有對應于容器的節(jié)點和對應于鏈接本身的項和分支(參見圖3和4)。按照本發(fā)明,可添加創(chuàng)作的鏈接,它們在樹內(nèi)(即,在同一站點內(nèi))或跨樹(即,在不同的站點)鏈接節(jié)點。以前,樹內(nèi)或跨樹鏈接要求專門創(chuàng)作每個新鏈接,因為它們與站點的層次結(jié)構(gòu)沖突。這樣一個問題在鏈接的節(jié)點對應于一個包括大量子節(jié)點(例如在層次化結(jié)構(gòu)中的低層節(jié)點)的容器時變得非常難。這些子節(jié)點的每一個還要求專門創(chuàng)作到該節(jié)點的新鏈接。此外,這些新鏈接是在其它站點或站點的其它位置中的鏈接的復制品,不僅浪費時間精力而且還浪費空間。而且,在其它位置或其它站點內(nèi)的改變將不會在這些新創(chuàng)作的復制鏈接中反映出來。
本發(fā)明通過允許將這些樹內(nèi)或跨樹鏈接創(chuàng)作為“虛擬鏈接(virtuallink)”使得這些鏈接與一個或多個站點的層次結(jié)構(gòu)分離來解決所有這些問題。這允許作者規(guī)定他們想要從站點的另一個位置或者從另一個站點“移植(graft)”多少項或容器。這些項和容器隨后作為對應于所創(chuàng)作的鏈接節(jié)點的子節(jié)點,而不必創(chuàng)作對應于這些項或容器的每個鏈接。
圖2例示按照本發(fā)明在一個站點內(nèi)的一個典型頁面的示例性屏幕快照。頁面200包括全局導航欄位210和節(jié)導航欄位220。通常,全局導航和節(jié)導航是站點的導航結(jié)構(gòu)的呈現(xiàn)表示。頁面的其余部分或者是頁面的內(nèi)容,或者是由瀏覽器提供的內(nèi)容和功能用于與頁面交互(例如,file(文件)下拉菜單)。
全局導航欄位210提供鏈接到站點的高層區(qū)域或子站點。在另一個實施例中,全局導航欄位210也可包括到其它站點的鏈接。在本發(fā)明的一個實施例中,包括在全局導航欄位210中的鏈接對應于導航結(jié)構(gòu)的根節(jié)點的直接子節(jié)點。然而,其它節(jié)點可通過設置節(jié)點的元數(shù)據(jù)參數(shù)來作為有效的根節(jié)點操作。設置元數(shù)據(jù)參數(shù)導致節(jié)點的全局導航鏈接被用于該節(jié)點的子節(jié)點而不是用于與最頂端的節(jié)點相關(guān)聯(lián)的那些節(jié)點。
節(jié)導航欄位220提供鏈接到站點的特定區(qū)域。在一個頁面上包括節(jié)導航欄位220呈現(xiàn)一個區(qū)域的低層鏈接。包括低層鏈接允許全局導航欄位210集中于高層鏈接,同時使水平滾動(這在全局導航欄位210用這些鏈接填充時發(fā)生)最少。
從本發(fā)明的描述可理解,節(jié)導航和全局導航欄位提供一個可實施本發(fā)明的框架。然而,本發(fā)明同樣可應用于不遵守這個模型的站點(例如,沒有全局導航欄位或者使用獨立風格的導航欄位)。
圖3例示按照本發(fā)明一個包括一個樹內(nèi)鏈接的頁面的示例性樹導航結(jié)構(gòu)。用其構(gòu)造樹結(jié)構(gòu)310的元數(shù)據(jù)存儲在服務器302的高速緩存304中。下面參考圖5和6更詳細地描述元數(shù)據(jù)的高速緩存。樹結(jié)構(gòu)310可在運行時間生成以產(chǎn)生站點的整個導航層次結(jié)構(gòu)。
樹結(jié)構(gòu)310包括節(jié)點(例如,312和314)和節(jié)點之間的鏈接(例如,316和318)。通常,樹結(jié)構(gòu)310是按照站點的層次結(jié)構(gòu)構(gòu)造的,其中站點在根節(jié)點312處起源并且向下繼續(xù)至較低的導航鏈接(例如,節(jié)鏈接330)。在一個實施例中,在層次結(jié)構(gòu)中緊接在根節(jié)點312之下的節(jié)點對應于在當前頁面314上呈現(xiàn)的全局鏈接320。
樹結(jié)構(gòu)310基于站點的層次結(jié)構(gòu),然而本發(fā)明還提供創(chuàng)作的鏈接諸如樹內(nèi)鏈接318。樹內(nèi)鏈接318不遵循站點的層次結(jié)構(gòu),但代之以提供一個節(jié)鏈接到站點的另一個節(jié)中另一個節(jié)點。
可將樹內(nèi)鏈接318的目的節(jié)點“移植”到當前頁面314之下的樹結(jié)構(gòu)310之中。移植在兩個區(qū)域提供一個不同于簡單的URL(統(tǒng)一資源定位符)引用的不同鏈接。實際上,移植一個區(qū)域使被移植區(qū)域的根移到導航結(jié)構(gòu)的目標區(qū)域之中,好象它是目標區(qū)域的一個子區(qū)域。因此,當通過目標區(qū)域遍歷導航結(jié)構(gòu)時,可到達被移植區(qū)域的子節(jié)點。在一個頁面的欄位中目標區(qū)域的子節(jié)點的顯示因此與目標區(qū)域的一個普通子節(jié)點一樣工作。移植樹內(nèi)鏈接318的目的節(jié)點創(chuàng)建被移植的鏈接,它在沒有在層次結(jié)構(gòu)中物理地定位的情況下使目的節(jié)點成為當前頁面314之下的邏輯層次結(jié)構(gòu)的一部分。移植的優(yōu)點是對導航結(jié)構(gòu)的被移植部分的更新反映在整個導航結(jié)構(gòu)中。
結(jié)合本發(fā)明的樹結(jié)構(gòu)310可啟動許多操作。這些操作包括取當前節(jié)點(getcurrent),取父節(jié)點(getparent),取根節(jié)點(getroot)和取子節(jié)點(getchildren)。這些操作的每一個在運行時間生成樹結(jié)構(gòu)310時使用。在其它實施例中,這些操作可在不脫離本發(fā)明的精神和范圍的情況下用其它名字而不是在這里描述的那些名字來表示。
取當前節(jié)點(getcurrent)操作返回對應于在站點內(nèi)當前導航的頁面的當前節(jié)點。取父節(jié)點(getparent)操作取當前節(jié)點并且返回當前節(jié)點的直接父節(jié)點。
對于取根節(jié)點(getroot)操作,使用一系列的取父節(jié)點(getparent)來爬樹結(jié)構(gòu),直到到達具有一個規(guī)定節(jié)點是其自己的父節(jié)點為止。這允許不是最頂端的節(jié)點用作導航結(jié)構(gòu)內(nèi)的根節(jié)點。當用作根節(jié)點時,節(jié)點能夠定義它自己的全局導航鏈接集合,它們可應用于層次結(jié)構(gòu)中在該節(jié)點之下的頁面。
對于取子節(jié)點(getchildren)操作,傳入一個要求子節(jié)點信息的節(jié)點。隨后找出該節(jié)點的子節(jié)點。在返回子節(jié)點之前,子節(jié)點的列表可按照伴隨每個節(jié)點的元數(shù)據(jù)來剪裁。例如,將指定為不包括在導航中的、不具有讓當前用戶訪問許可的或者當前未被安排為發(fā)布的子節(jié)點從由取子節(jié)點(getchildren)操作返回的子節(jié)點中剪裁掉。在另一個實施例中,對于一個到由同一實體管理的站點的創(chuàng)作的鏈接,檢查“包括在導航中”的參數(shù)是不必要的。因為鏈接是明確地創(chuàng)作的,假定它應當在取子節(jié)點(getchildren)操作中被包括在子節(jié)點之中。
圖4例示出了按照本發(fā)明的一個示例性樹導航結(jié)構(gòu),它包括一個跨樹鏈接到另一個站點。第一個站點由第一個樹結(jié)構(gòu)410表示。樹結(jié)構(gòu)410對應于存儲在定位在服務器402上的高速緩存404中的元數(shù)據(jù)。第二個站點是由存儲在第二個服務器(服務器430)上的第二個高速緩存(高速緩存432)中的元數(shù)據(jù)來表示。
與圖3相似,每個樹結(jié)構(gòu)(410,440)包括由鏈接(例如,416,418,420)連接的節(jié)點(例如,412,414)。還包括其它創(chuàng)作的鏈接(跨樹鏈接420)。跨樹鏈接420表示從在定位在一個服務器上的站點的頁面到定位在另一個服務器上的另一個站點的頁面的鏈接。在另一個實施例中,可在同一服務器上而不是所示的兩個獨立的服務器上的兩個獨立的站點之間形成跨樹鏈接420。
當一個跨樹鏈接諸如跨樹鏈接420鏈接到由與當前站點相同的實體管理的另一個站點時,則與樹內(nèi)鏈接418相似,將來自另一個站點的項和容器可被“移植”到當前站點。移植指建立一個被移植的鏈接,如上在圖3的討論中描述的。
另一種類型的跨樹鏈接是外部鏈接,即到由不同于當前站點的實體管理的另一個站點的鏈接。外部鏈接不象虛擬鏈接那樣容易使用,因為關(guān)于目的地的層次結(jié)構(gòu)的信息是未知的。因此,詢問一個特定的容器和子節(jié)點是無效的,因為目的站點不會為這樣一個請求而被結(jié)構(gòu)化。然而,在另一個實施例中,可請求關(guān)于目的站點的結(jié)構(gòu)的信息,使得可創(chuàng)建一個虛擬層次結(jié)構(gòu)鏈接。
圖5例示按照本發(fā)明對應于導航結(jié)構(gòu)的節(jié)點的示例性數(shù)據(jù)集合的方框圖。每個節(jié)點具有相關(guān)聯(lián)的節(jié)點數(shù)據(jù)500,而節(jié)點數(shù)據(jù)500包括元數(shù)據(jù)510、全局導航520和節(jié)導航530。全局導航530包括普通子節(jié)點表522和編輯的鏈接表524。同樣,節(jié)導航530包括普通子節(jié)點表532和編輯的鏈接表534。
元數(shù)據(jù)510包括與節(jié)點數(shù)據(jù)500相關(guān)聯(lián)的特定節(jié)點的參數(shù)。元數(shù)據(jù)510可包括一或多個包含參數(shù),安排參數(shù),和安全參數(shù)。一個包含參數(shù)當它被設置時使與該參數(shù)的相關(guān)聯(lián)的節(jié)點“被包括在導航中”。安排參數(shù)允許網(wǎng)站的內(nèi)容按照一個時間安排表發(fā)布。具有一個不是當前的時間安排參數(shù)的頁面被阻止發(fā)布。安全參數(shù)可用于阻止未經(jīng)授權(quán)的用戶訪問被禁止的頁。使用元數(shù)據(jù)允許站點被“剪裁”,或者讓頁面被刪除,按照元數(shù)據(jù)510包括的參數(shù)設置。
全局導航250包括包含在相關(guān)聯(lián)的頁面的全局導航欄位中的鏈接。在當前的實施例中,依照站點的層次結(jié)構(gòu)生成的全局鏈接包括在普通子節(jié)點表522中,而創(chuàng)作的全局鏈接包括在創(chuàng)作的鏈接表524中。創(chuàng)作的鏈接包括樹內(nèi)鏈接、跨樹鏈接以及由站點開發(fā)者創(chuàng)作的與依照站點結(jié)構(gòu)所生成的那些鏈接相反的外部鏈接。在另一實施例中,鏈接不依照其欄位來分離。
節(jié)導航530包括包含在相關(guān)聯(lián)的頁面的節(jié)導航欄位中的鏈接。類似于全局導航520,依照站點的層次結(jié)構(gòu)生成的節(jié)鏈接包括在普通子節(jié)點表532中,而創(chuàng)作的節(jié)鏈接包括在創(chuàng)作的鏈接表中。
在一個實施例中,在元數(shù)據(jù)510中的安全參數(shù)用于控制用戶導航到具有限制訪問權(quán)限資源的能力。當從站點的層次結(jié)構(gòu)生成導航結(jié)構(gòu)時,可將某些頁面從站點中剪裁掉或者基于用戶的身份使之對于訪問站點的用戶不可訪問。某些用戶可能無權(quán)訪問所選擇的頁面或者站點的其它資源。對于另一個站點的被移植部分,可應用一組不同的權(quán)限。有權(quán)訪問當前站點的用戶可基于它們的身份而沒有訪問站點的被移植部分的權(quán)限。在一個實施例中,本發(fā)明在移植其它站點的部分時遷移其它站點的安全設置以維護資源的安全。
在另一個實施例中,與呈現(xiàn)節(jié)導航欄位和全局導航欄位時使用的其它數(shù)據(jù)分離地高速緩存節(jié)點數(shù)據(jù)500。
圖6例示按照本發(fā)明的一個高速緩存和產(chǎn)生導航結(jié)構(gòu)的示例性系統(tǒng)。系統(tǒng)600包括站點地圖提供者602、區(qū)域接口604、頁面接口606、外部鏈接接口608和對象工廠610。
站點地圖提供者602使用先前描述的取當前節(jié)點(getcurrent)、取父節(jié)點(getparent)、取根節(jié)點(getroot)以及取子節(jié)點(getchildren)操作來生成分層導航結(jié)構(gòu)。與直接訪問主存服務的各部分來獲取這一信息相反,對來自站點地圖提供者602的請求的響應使用諸如區(qū)域接口604、頁面接口606和外部鏈接接口608等接口來返回。這些接口是由對象工廠610生成的對象。
對象工廠610提供與站點呈現(xiàn)服務的實際交互并通過各種操作(例如,取鏈接(getlink))取數(shù)據(jù)。對象工廠隨后將數(shù)據(jù)寫到接口之一并將它返回給站點地圖提供者602。接口由對象工廠610高速緩存。接口對應于導航對象,它們包括用于導航結(jié)構(gòu)的節(jié)點的元數(shù)據(jù)和鏈接數(shù)據(jù)。通過使用與站點地圖提供者602通信的接口,導航結(jié)構(gòu)的構(gòu)造和管理可與站點的呈現(xiàn)分離,或者遠程地設置在一個獨立的計算設備上。在另一個實施例中,不使用接口并且站點地圖提供者602將它的請求直接提供給站點呈現(xiàn)服務。
在一個實施例中,系統(tǒng)600也用于高速緩存與導航結(jié)構(gòu)的節(jié)點相關(guān)聯(lián)的安全參數(shù)。在一個例子中,一個參數(shù)表示一個節(jié)點是否具有相同的權(quán)限,還是與其父節(jié)點相似地可由一個用戶訪問。本發(fā)明存儲用于整個導航結(jié)構(gòu)的這個信息,因而在呈現(xiàn)對應于節(jié)點的頁面時減少重復的安全檢查。
在另一個實施例中,站點地圖提供者具有其自己的參數(shù)集合用于控制導航結(jié)構(gòu)的生成。例如,一個忽略繼承根參數(shù)(ignore inherit root parameter)使站點地圖提供者602忽略一個中間節(jié)點是否用作根節(jié)點。在忽略中間根節(jié)點的情況下,為操作爬導航結(jié)構(gòu)的整個高度。
在又一個實施例中,來自站點地圖提供者602的請求(例如,取子節(jié)點(getchildren))的結(jié)果可被排序。結(jié)果可人工排序,其中開發(fā)者選擇結(jié)果的順序(例如,選擇要在節(jié)導航欄位中顯示的子節(jié)點的順序),或者自動地按照與每個結(jié)果相關(guān)聯(lián)的元數(shù)據(jù)排序。另外,在結(jié)果中返回的項的類型(例如,頁面,授權(quán)的鏈接等)可不同地排序,或者按照不同的元數(shù)據(jù)。
圖7例示按照本發(fā)明的一個頁面的示例性屏幕快照,該頁面包括用于與頁面相關(guān)聯(lián)導航的頁面上編輯(on-page editing)。頁面700與圖2相似,包括全局導航欄位710和節(jié)導航欄位720。然而,頁面700還包括在頁編輯元素730和740。在頁編輯元素730和740的圖標和選擇允許用戶在觀看頁面同時編輯與頁面相關(guān)聯(lián)的導航。在另一個實施例中,在頁編輯元素730和740向用戶傳送特定的用戶界面用于編輯與頁面相關(guān)聯(lián)的導航(見下面的圖8和9)。
圖8例示按照本發(fā)明的一個用于編輯與站點的頁面相關(guān)聯(lián)的導航鏈接的示例性用戶界面。用戶界面800是基于web的UI,它允許開發(fā)者編輯導航鏈接。導航鏈接按照它們的標題、URL(統(tǒng)一資源定位符)、它們是否是創(chuàng)作的鏈接、它們的描述和它們的類型列表。其它實施例可按照不同的類別列出導航鏈接。用戶界面可用于添加新鏈接、新鏈接類別或者改變與頁面相關(guān)聯(lián)的鏈接的順序。
圖9例示按照本發(fā)明的一個用于添加新導航鏈接到站點的頁面的示例性用戶界面。用戶界面900提供欄位用于在頁面上建立一個新導航鏈接。這些欄位包括標題欄位、說明、類型選擇欄位、鏈接是外部還是內(nèi)部的和用于它的URL的輸入欄位,以及是否應當結(jié)合導航鏈接示出飛出。除用戶界面900所示的欄位以外的不同欄位可用于其它實施例。
圖10例示按照本發(fā)明的一個表示新鏈接的拖放的頁面的示例性屏幕快照。頁面1000與圖2相似,包括全局導航欄位1010和節(jié)導航欄位1020。然而頁面1010還包括拖放操作1030的描繪。拖放操作1030例示了結(jié)合本發(fā)明提供的在頁編輯的能力。拖放操作1030對應于直接將一個鏈接的動態(tài)插入頁面,同時在先前建立的頁面鏈接之中排序該鏈接。其它實施例還包括刪除鏈接和其它操作的在頁編輯的能力。
圖11例示按照本發(fā)明的一個用于排與站點的頁面相關(guān)聯(lián)的導航鏈接順序的示例性用戶界面。用戶界面1100按照一個編號方案提供欄位用于排序與站點相關(guān)聯(lián)的導航鏈接。以表示的順序提供導航鏈接。鏈接的順序通過改變與一個特定鏈接相關(guān)聯(lián)的編號并且更新用戶界面來提供。
圖12例示按照本發(fā)明的一個用于選擇在站點的導航內(nèi)頁面內(nèi)容并且排序站點的頁面的示例性用戶界面。用戶界面1200提供將一個區(qū)域或頁面包括在站點的導航內(nèi)的選擇。使用這個選擇允許頁面和其它資源添加到導航或者從導航刪除而不用實際刪除資源。用戶界面1200還用人工或自動排序選項兩者提供對站點資源的排序。資源的顯示順序也是可選擇的。其它實施例包括用于排序站點資源的其它欄位。
圖13例示按照本發(fā)明的一個用于選擇與站點的頁面相關(guān)聯(lián)的繼承屬性的示例性用戶界面。用戶界面1300包括一個用于站點的全局導航和節(jié)導航的繼承屬性的選擇。繼承屬性規(guī)定父站點到一個頁面的相同導航鏈接也應當用于該頁面。在沒有選擇繼承屬性的情況下,一個頁面可使用它自己的與其父無關(guān)的唯一一組導航鏈接。
上面的描述、例子和數(shù)據(jù)提供了本發(fā)明組成的制造和使用的完整描述。由于可以在不脫離本發(fā)明的精神和范圍的情況下作出本發(fā)明的許多實施例,因此本發(fā)明駐留在本文所附的權(quán)利要求書中。
權(quán)利要求
1.一種用于管理網(wǎng)絡站點的導航的計算機實現(xiàn)的方法,其特征在于,包括創(chuàng)建導航對象,它對應于與所述網(wǎng)絡站點相關(guān)聯(lián)的導航鏈接;從所述導航對象生成一個導航結(jié)構(gòu),其中,所述導航結(jié)構(gòu)按照關(guān)聯(lián)于所述導航鏈接的層次結(jié)構(gòu)組織;當所述網(wǎng)絡站點包括一個創(chuàng)作的導航鏈接時,在所述導航結(jié)構(gòu)內(nèi)包括一個創(chuàng)作的導航對象;以及呈現(xiàn)所述站點的頁面,其中,所述頁面包括一個對應于所述導航結(jié)構(gòu)的欄位。
2.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述欄位是一個全局導航欄位,它包括所述導航結(jié)構(gòu)內(nèi)根頁面的子導航對象。
3.如權(quán)利要求2所述的計算機實現(xiàn)的方法,其特征在于,所述根頁面對應于所述導航結(jié)構(gòu)的一個中間節(jié)點,所述中間節(jié)點具有一個指示所述中間節(jié)點是隨后的子節(jié)點的根節(jié)點的參數(shù)。
4.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述欄位是一個包括所述頁面的子導航對象的節(jié)導航欄位。
5.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括檢查一組關(guān)聯(lián)于所述頁面的元數(shù)據(jù),以確定哪個導航對象包括在所述欄位內(nèi)。
6.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,在所述元數(shù)據(jù)包括設置為表示導航對象不應包括在所述導航中的參數(shù)時,從所述欄位的包含內(nèi)容中刪除所述導航對象。
7.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,在關(guān)聯(lián)于為其呈現(xiàn)所述頁面的用戶的身份表示導航對象對所述用戶是禁止的時候,從所述欄位的包含內(nèi)容中刪除所述導航對象。
8.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,在所述元數(shù)據(jù)包括設置為表示還未到達對應于發(fā)布根據(jù)導航對象的內(nèi)容的預定時間的參數(shù)時,從所述欄位的包含內(nèi)容中刪除所述導航對象。
9.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,在所述結(jié)構(gòu)中包括所述創(chuàng)作的導航對象還包括將所述創(chuàng)作的導航對象移植到所述導航結(jié)構(gòu)的目標區(qū)域,使得所述創(chuàng)作的導航對象可視為所述區(qū)域的子對象。
10.如權(quán)利要求9所述的計算機實現(xiàn)的方法,其特征在于,所述創(chuàng)作的導航對象對應于鏈接所述導航結(jié)構(gòu)的兩個獨立部分的樹內(nèi)鏈接。
11.如權(quán)利要求9所述的計算機實現(xiàn)的方法,其特征在于,所述創(chuàng)作的導航對象對應于將另一個網(wǎng)絡站點的一部分與所述導航結(jié)構(gòu)鏈接的跨樹鏈接。
12.一種用于管理網(wǎng)絡站點的導航的系統(tǒng),其特征在于,包括一高速緩存;一對象工廠,它被配置成在所述高速緩存中創(chuàng)建和存儲導航對象,其中,所述導航對象對應于所述網(wǎng)絡站點的導航鏈接;以及一站點地圖提供者,其中,所述站點地圖提供者被配置成向所述對象工廠請求所述導航對象;從所述導航對象生成一個導航結(jié)構(gòu),其中,所述導航結(jié)構(gòu)按照關(guān)聯(lián)于所述導航鏈接的層次結(jié)構(gòu)組織;當所述網(wǎng)絡站點包括創(chuàng)作的導航鏈接時,支持所述導航結(jié)構(gòu)內(nèi)創(chuàng)作的導航對象;以及轉(zhuǎn)發(fā)所述導航結(jié)構(gòu),用于呈現(xiàn)所述站點的頁面。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述頁面包括全局導航欄位和節(jié)導航欄位的至少之一,所述全局導航欄位包括在所述導航結(jié)構(gòu)內(nèi)的一個根頁面的子導航對象,而所述節(jié)導航欄位包括所述頁面的子導航對象。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述根頁面對應于所述導航結(jié)構(gòu)的中間節(jié)點,所述中間節(jié)點具有表示所述中間節(jié)點是隨后的子節(jié)點的根節(jié)點的參數(shù)。
15.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括檢查關(guān)聯(lián)于所述頁面的一組元數(shù)據(jù),以確定哪個所述導航對象包括在所述欄位內(nèi)。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,在所述元數(shù)據(jù)包括設置為表示導航對象不應包括在所述導航中的參數(shù)時,從所述欄位的包含內(nèi)容中刪除所述導航對象。
17.如權(quán)利要求12所述的系統(tǒng),其特征在于,在所述結(jié)構(gòu)中包括所述創(chuàng)作的導航對象還包括將所述創(chuàng)作的導航對象移植到所述導航結(jié)構(gòu)的一個目標區(qū)域,使得所述創(chuàng)作的導航對象被視為所述區(qū)域的子對象。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述創(chuàng)作的導航對象對應于樹內(nèi)鏈接和跨樹鏈接的至少之一,所述樹內(nèi)鏈接鏈接所述導航結(jié)構(gòu)的兩個獨立部分,而所述跨樹鏈接將另一個網(wǎng)絡站點的一部分與所述導航結(jié)構(gòu)鏈接。
19.一種計算機可讀介質(zhì),包括用于管理網(wǎng)絡站點導航的計算機可執(zhí)行指令,其特征在于,所述指令包括創(chuàng)建導航對象,它對應于與所述站點相關(guān)聯(lián)的導航鏈接;從所述導航對象生成一個導航結(jié)構(gòu),其中,所述導航結(jié)構(gòu)按照關(guān)聯(lián)于所述導航鏈接的層次結(jié)構(gòu)組織;當所述網(wǎng)絡站點包括一個創(chuàng)作的導航鏈接時,在所述導航結(jié)構(gòu)內(nèi)包括一個創(chuàng)作的導航對象;從所述導航結(jié)構(gòu)剪裁掉所選擇的導航對象,其中,所選擇的導航對象是按照對應于每個導航對象的元數(shù)據(jù)選擇的;以及呈現(xiàn)所述站點的頁面,其中,所述頁面包括一個對應于所述選擇的導航對象在被剪裁掉之后的導航結(jié)構(gòu)的欄位。
20.如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,在當所述元數(shù)據(jù)包括設置為表示導航對象不應包括在所述導航中的參數(shù)時,剪裁掉所述導航對象。
21.如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,在關(guān)聯(lián)于為其呈現(xiàn)所述頁面的用戶的身份表示導航對象對所述用戶是禁止的時候,剪裁掉所述導航對象。
22.如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,當所述元數(shù)據(jù)包括設置為表示還未到達對應于發(fā)布根據(jù)導航對象的內(nèi)容的預定時間的參數(shù)時,剪裁掉所述導航對象。
23.如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,在所述結(jié)構(gòu)中包括所述創(chuàng)作的導航對象還包括將所述創(chuàng)作的導航對象移植到所述導航結(jié)構(gòu)的目標區(qū)域,使得所述創(chuàng)作的導航對象被視為所述區(qū)域的子對象。
全文摘要
在運行時間根據(jù)站點的層次結(jié)構(gòu)生成導航結(jié)構(gòu)。導航結(jié)構(gòu)包括遍及該結(jié)構(gòu)創(chuàng)作特定鏈接的能力。這些特定鏈接或子對象使得導航結(jié)構(gòu)能夠被定制,同時維護按照層次結(jié)構(gòu)的站點組織。
文檔編號G06F17/30GK1755675SQ20051007546
公開日2006年4月5日 申請日期2005年5月31日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者P·C·米勒, R·R·斯托克爾, S·G·卡伍德 申請人:微軟公司