<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

圖結構的xml處理方法及裝置的制作方法

文檔序號:6373749閱讀:196來源:國知局
專利名稱:圖結構的xml處理方法及裝置的制作方法
技術領域
本發明涉及網絡安全領域,更為具體地,涉及對用于表示網絡攻擊關系的圖結構進行XML處理的方法和裝置。
背景技術
由于網絡的飛速發展,有關網絡的攻擊手段也層出不窮,現代的網絡攻擊關系非常復雜,采用有向結構(以下簡稱“圖結構”)來表示一個完整的網絡攻擊關系成為現有技術的主流。根據圖論的定義,圖G由兩個集合V和E組成,記為G = (V,E)。其中,V是節點的有限非空集合,E是節點的二元組集合,節點二元組成為邊。節點的度是與該節點鄰接的邊數。在有向圖中,節點的度分為入度和出度。有向圖G的節點V的入度被定義為指向節點 V的邊數,出度被定義為從節點V發出的邊數。比較常用圖結構存儲方法采用數據結構,該數據結構包括鄰接矩陣、鄰接表、十字鄰接表、鄰接多重表。圖I是以鄰接表為例的圖結構和其對應的數據結構的示圖。如圖I所示,節點I與節點4通過有向邊相連,節點I的出度為1,入度為O。節點2與節點4和節點5通過有向邊相連,節點2的出度為2,入度為O。節點3與節點5通過有向邊相連,節點3的出度為1,入度為O。節點4的出度為0,入度為2。節點5的出度為0,入度為2。圖結構是最廣泛使用的數學結構,比如可以廣泛用于電路分析、最短路徑、工程規劃、化合物分類、統計力學、自動化、語言學、社會科學、網絡攻擊等等。然而,目前圖結構在實際應用時,具有如下的缺陷首先,由于圖結構基于數據結構存儲,當圖結構發生變化時(由于網絡攻擊關系會經常變化,因此導致圖結構也需對應變化),需要維護圖結構對應的數據結構,而數據結構的維護技術難度較大,由此導致圖結構的修改難度較大。其次,由于圖結構沒有校驗機制,對應的數據結構也沒有校驗機制,導致在圖結構出錯時,系統通常無法自動校驗,可用性不高。另外,在現有的數據結構中,很難描述圖結構中的與同一節點相關聯的(由該節點發出或者到達該節點)的多條邊之間的關系,比如這些邊之間是“與”關系還是“或”關系,而這種關系是描述網絡攻擊關系所必須的部分。圖2示出了一個蠕蟲攻擊的過程。在圖2中,每個方塊可以被認為是一個節點,反向箭頭被認為是連接節點的邊。這里,節點表示網絡攻擊中的一個環節,而邊表示攻擊的順序。舉個例子,攻擊場景可以分五個階段表示,信息探測、嘗試攻擊、權限提升、深入攻擊、拒絕服務。其中每個階段可以用一個節點來表示,后一個階段要等前一個階段發生過,才可以觸發,即階段有先后關系,這種先后關系就是邊。如圖2所示,與節點“至少存儲10次”相關聯的四條邊之間的關系是或關系,整個圖結構表示的含義為,60秒內防火墻和入侵檢測系統報出相同目的IP的報警至少10次,報警有四種類型,其中IP欺騙、拒絕連接、非法登錄來自于防火墻,資源不足導致拒絕服務來自于入侵檢測系統。而這在圖I的右圖示出的數據結構中無法描述。
此外,在現有的圖結構描述方式中,很難描述圖結構中的節點的坐標位置和節點的大小,從而不利于圖結構的圖形顯示。而且,在現有的圖結構描述方式中,比如在利用鄰接矩陣描述時,需要計算圖中存在多少條邊,或確定圖中節點是否連通,計算時間復雜度大,通常為0(n2),其中η是節點個數。另外,在利用鄰接表描述時,入度計算復雜,需要頻繁獲取每個節點相鄰的所有節點,或需要反向鄰接表。而且,在使用反向鄰接表時,如果需要修改圖結構時,則還需要再次生成反向鄰接表。十字鄰接表是鄰接表的一種變種,將圖結構的鄰接表和反向鄰接表結合起來形成的一種鏈表,在利用十字鄰接表描述時,操作復雜,尤其是圖結構中節點和邊比較多時,表現能力較差。鄰接多重表是鄰接表的一種變種,只能表示無向圖結構。因此,利用鄰接多重表無法描述有向結構。

發明內容
鑒于上述,本發明的目的在于提供一種基于XML的圖結構存儲方法及裝置,該方法及裝置可以在圖結構發生改變時,直接修改XML文件中的屬性信息,從而使得圖結構的修改難度大大降低。本發明的另一目的在于提供一種基于XML文件的圖結構繪制方法及裝置。根據本發明的一個方面,提供了一種基于XML的圖結構存儲方法,包括獲取所繪制的圖結構信息、以及所述圖結構中的各圖形元素及其圖形元素信息,其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素;所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息;基于預先定義的XML限定規則,利用所述圖結構信息和所述各圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件;以及將所生成的XML文件存儲在存儲裝置中,其中,所述圖結構信息包括圖結構編號;所述節點信息中的屬性信息包括節點編號、節 點類型、節點位置、節點大小和節點樣式,所述節點信息中的元素信息包括條件元素和邊引用;所述邊信息中的屬性信息包括邊編號、該邊的后續節點和邊樣式;以及所述條件元素是節點的子元素,并且所述條件元素信息中的屬性信息包括條件元素類型、條件元素位置、條件元素大小和條件元素樣式,所述條件元素信息中的元素信息包括邊引用或條件元素。在上述方面的一個或多個示例中,所述預先定義的XML限定規則可以包括文檔類型定義(DTD )或XML模式定義(XSD )。在上述方面的一個或多個示例中,一旦獲取圖結構中的各圖形元素及其圖形元素信息,就生成XML文件中的與該圖形元素對應的部分,或者在獲取圖結構的所有圖形元素及其圖形元素信息后,才生成XML文件。根據本發明的另一方面,提供了一種基于XML的圖結構存儲裝置,包括信息獲取單元,用于獲取所繪制的圖結構信息、以及所述圖結構中的各圖形元素及其圖形元素信息,其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素;所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息;XML文件生成單元,用于基于預先定義的XML限定規則,利用所述圖結構信息和所述各圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件;以及存儲單元,用于將所生成的XML文件存儲在存儲裝置中,其中,所述圖結構信息包括圖結構編號;所述節點信息中的屬性信息包括節點編號、節點類型、節點位置、節點大小和節點樣式,所述節點信息中的元素信息包括條件元素和邊引用;所述邊信息中的屬性信息包括邊編號、該邊的后續節點和邊樣式;以及所述條件元素是節點的子元素,并且所述條件元素信息中的屬性信息包括條件元素類型、條件元素位置、條件元素大小和條件元素樣式,所述條件元素信息中的元素信息包括邊弓I用或條件元素。根據本發明的另一方面,提供了一種基于XML文件的圖結構繪制方法,其中,所述XML文件如上所述生成,所述圖結構繪制方法包括對XML文件中的與各個節點和邊相關的部分進行解析;基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示;基于對各個邊部分進行解析后得到的屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表示;以及按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。在上述方面的一個或多個示例中,基于對各個節點部分進行解析后得到的屬性信 息和元素信息,繪制各個節點的圖形表示包括對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示;以及對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。在上述方面的一個或多個示例中,如果非頭節點的元素信息中包括條件元素,則從該非頭節點中抽取出條件元素的屬性信息和元素信息;基于條件元素的屬性信息和元素信息,繪制該條件元素;以及將該條件元素的圖形表示連接到該非頭節點的圖形表示。在上述方面的一個或多個示例中,如果非頭節點中多種嵌套有條件元素,則對于每層嵌套,從條件元素中抽取出被嵌套的另一條件元素的屬性信息和元素信息;基于該另一條件元素的屬性信息和元素信息,繪制該另一條件元素;以及將該另一條件元素的圖形表示與該條件元素的圖形表示連接。根據本發明的另一方面,提供了一種基于XML文件的圖結構繪制裝置,其中,所述XML文件如上所述生成,所述圖結構繪制裝置包括解析單元,用于對XML文件中的與各個節點和邊相關的部分進行解析;節點繪制單元,用于基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示;連接關系繪制單元,用于基于對各個邊部分進行解析后得到的屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表示;以及重合處理單元,用于按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。在上述方面的一個或多個示例中,所述節點繪制單元可以包括頭節點繪制模塊,用于對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示;以及非頭節點繪制模塊,用于對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。此外,如果非頭節點的元素信息中包括條件元素,則所述非頭節點繪制模塊還可以包括抽取模塊,用于從該非頭節點中抽取出條件元素的屬性信息和元素信息;條件元素繪制模塊,用于基于條件元素的屬性信息和元素信息,繪制該條件元素;以及連接模塊,用于將該條件元素的圖形表示連接到該非頭節點的圖形表示。利用上述基于XML的圖結構存儲方法,可以很方便地得知各個節點在圖中展示的位置、大小和樣式,并且能夠支持直接修改XML,達到調整節點在圖中展示的位置、大小和樣式,由此使得圖結構的修改難度大大降低,易于維護。此外,在上述圖結構存儲方法中,由于采用了 XML限定規則,從而使得系統可以自動進行圖結構校驗,系統可用性更高。而且,利用上述圖結構存儲方法,可以描述到達同一節點的多條邊之間的關聯關系(比如與關系、或關系),從而使得圖結構能夠適用于更廣的場景。此外,利用上述圖結構存儲方法,可以大大降低計算復雜度。為了實現上述以及相關目的,本發明的一個或多個方面包括后面將詳細說明并在權利要求中特別指出的特征。下面的說明以及附圖詳細說明了本發明的某些示例性方面。然而,這些方面指示的僅僅是可使用本發明的原理的各種方式中的一些方式。此外,本發明 旨在包括所有這些方面以及它們的等同物。


根據下述參照附圖進行的詳細描述,本發明的上述和其他目的、特征和優點將變得更加顯而易見。在附圖中圖I示出了現有技術中的有向結構以及用于存儲圖結構的數據結構的示圖;圖2示出了螺蟲攻擊過程的示例的示意圖;圖3A示出了根據本發明的一個示例的基于XML限定規則的圖結構的XSD的示圖;圖3B示出了根據本發明的一個示例的基于XML限定規則的圖結構中的節點的結構的示圖;圖3C示出了根據本發明的一個示例的基于XML限定規則的圖結構中的邊的結構的示圖;圖3D示出了根據本發明的一個示例的基于XML限定規則的條件元素的結構的示圖;圖3E示出了根據本發明的一個示例的基于XML限定規則的邊引用的結構的示圖;圖4示出了根據本發明的實施例的基于XML的圖結構存儲方法的流程圖;圖5示出了根據本發明的基于XML文件繪制出的一個場景的圖結構的一個示例的示圖;圖6示出了根據本發明的實施例的基于XML限定規則的圖結構存儲裝置的方框示意圖;圖7示出了三層結構關系;圖8示出了根據本發明的實施例的基于XML文件的圖結構繪制方法的流程圖;圖9A和9B示出了根據本發明的基于XML文件的圖結構繪制過程的一個示例的示圖;圖10示出了根據本發明的實施例的基于XML文件的圖結構繪制裝置的方框示意圖11示出了圖10中的節點繪制單元的方框示意圖;和圖12示出了圖11中非頭節點繪制模塊的方框示意圖。在所有附圖中相同的標號指示相似或相應的特征或功能。
具體實施例方式下面描述本公開的各個方面。應該明白的是,本文的教導可以以多種多樣形式具體體現,并且在本文中公開的任何具體結構、功能或兩者僅僅是代表性的。基于本文的教導,本領域技術人員應該明白的是,本文所公開的一個方面可以獨立于任何其它方面實現,并且這些方面中的兩個或多個方面可以按照各種方式組合。例如,可以使用本文所闡述的任何數目的方面,實現裝置或實踐方法。另外,可以使用其它結構、功能、或除了本文所闡述的一個或多個方面之外或不是本文所闡述的一個或多個方面的結構和功能,實現這種裝置或實踐這種方法。此外,本文所描述的任何方面可以包括權利要求的至少一個元素。

XML (Extensible Markup Language,可擴展標記語言)通常用來描述樹形結構,顯示節點和節點之間的關系,即父節點與子節點的關系。本發明是對XML進行了功能擴展,并利用功能擴展后的XML來描述圖結構,S卩,使用XML來描述節點與邊、邊與節點、邊與邊的關系,并且生成圖結構。下面將參照附圖描述本發明的各個實施例。在進行基于XML的圖結構描述過程之前,首先,定義一套完整的XML限定規則,用于清楚地描述節點與邊、邊與節點、邊與邊的關系,以及圖的起始點(可以多個XXML文件必須按照該限定規則進行描述和存儲,描述的內容包括圖結構中包含的所有節點、所有邊、節點是否為開始節點、邊的走向、邊與邊的關系、節點上的匹配條件、邊上的匹配條件以及一些擴展屬性和擴展元素。該限定規則的語法可以使用現有的DTD或XSD來實現。圖3A-3E示出了根據本發明的XML限定規則的一個示例。圖3A示出了根據本發明的一個示例的基于XML限定規則的圖結構的XSD的示圖。如圖3A所述,在該不例中,圖結構具有兩個屬性和兩個兀素。屬性id用于表不圖的唯一編號。屬性name表不圖的名稱,用于區分各圖。兀素node用于表不圖的節點,以及兀素side表示邊。從圖中可以看出,節點為一到多個,邊為零到多條。也就是說,在圖結構的元素中,必須具有節點,而在某些情況下,可以不具有元素邊。圖3B示出了根據本發明的一個示例的基于XML限定規則的圖結構中的節點的結構的示圖。如圖3B所示,在該示例中,節點具有七個屬性和兩個元素。屬性id用于表示節點的唯一編號。屬性root表示節點類型,S卩,該節點是否為入口節點(入口節點可以有多個),換言之,該節點是否是頭節點(入度為O的節點)。屬性X和y表示圖標的X坐標位置和y坐標位置。屬性width和height表示圖標的大小。屬性tag表示圖標的樣式,是預先定義好的圖片集合,例如包括圖標的形狀、顏色、透明度等。元素condition用于表示到該節點的邊之間的關聯關系,例如與(AND)關系、或(OR)關系等。兀素side-ref表不該節點的連接下面節點的邊(即,邊引用)。從圖中可以看出,condition可以為零或一個,以及side-ref也可以為零到多條。圖3C示出了根據本發明的一個示例的基于XML限定規則的圖結構中的邊的結構的示圖。如圖3C所示,在該示例中,邊具有三個屬性和零個元素。屬性id表示邊的唯一編號。屬性node-ref表示該邊所連接到的節點。屬性tag表示邊的樣式。圖3D示出了根據本發明的一個示例的基于XML限定規則的條件元素的結構的示圖。如圖3D所示,在該示例中,條件元素具有五個屬性和兩個元素。屬性type用于表示邊與邊之間的關聯關系,常用的關系有AND (與)、0R (或)等。屬性X和y表不圖標的X坐標位置和y坐標位置。屬性width和height表示圖標的大小。屬性tag表示圖標的樣式。元素condition用于表不到該節點的邊之間的關聯關系,例如與(AND)關系、或(OR)關系等。元素side-ref表示該節點的連接下面節點的邊(即,邊引用)。從圖3D中可以看出,上述兩個元素是一個選擇關系,即condition和side-ref中只能選擇一個,而不能并存。這種選擇關系可以重復多次,用來表示一個復雜的關系組合。從圖中可以看出,一個節點包含了到達該節點的零到多個邊之間的邏輯關系,換言之,描述了圖中的邊與邊的關聯關系。圖3E示出了根據本發明的一個示例的基于XML限定規則的邊引用的結構的示圖。如圖3E所示,邊引用具有一個屬性,即屬性id,用于表示所引用的邊的唯一編號。這里要說明的是,圖3A-3E中的定義的屬性和元素是可擴展的。 在預先定義XML限定規則后,進行根據本發明的基于XML的圖結構存儲過程。圖4示出了根據本發明的實施例的基于XML的圖結構存儲方法的流程圖。如圖4所示,首先,在步驟S410,獲取所繪制的圖結構信息以及圖結構中的各圖形元素及其圖形元素信息。其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素。所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息。這里,在本發明的一個示例中,圖結構信息包括屬性信息id。在本發明的另一示例中,圖結構信息也可以包括元素信息,比如元素node和元素side。節點信息中的屬性信息包括屬性id, root, X和y, width和height,以及tag。節點信息中的元素信息包括元素condition和side-ref。邊信息中的屬性信息包括屬性id,node_ref和tag。條件元素是節點的子元素,并且條件元素信息中的屬性信息包括屬性type, X和y、width和height,以及tag。條件元素信息中的元素信息包括元素condition或side-ref。在另一示例中,所述圖結構信息中的屬性信息還可以包括圖結構名稱,即屬性name,用于對各個圖結構進行區分。在如上獲取圖結構的信息和圖結構中的各圖形元素及其圖形元素信息后,在步驟S420,基于該預先定義的XML限定規則,利用所獲取的圖結構信息和各個圖形元素及其圖形元素信息后,生成用于描述所繪制的圖結構的XML文件。下面以一個場景為例來進行說明。圖5示出了根據本發明的基于XML文件繪制出的一個場景的圖結構的一個示例的示圖。如圖5所示,在該場景中,節點I、節點2和節點3表示頭節點,即入口節點。節點I和節點2同時滿足后,作為一個判定與節點3做“或”的關系,即該判定與節點3有一個滿足,可以激活節點4。節點I又和節點2做“或”關系,滿足后作為一個判定與節點3做“與”的關系,即該判定和節點3同時滿足,可以激活節點5。上述的場景通過如上的XML限定,可以得如下所示的XML文件,該XML文件描述了節點與邊的關系(元素node),邊與節點的關系(元素side),邊與邊的關系(condition元素)。< xml version="I.Om encoding=,fUTF-8" >
<graph id-' I" name=1' demo_graph">
〈node id=’T root=ntrue"y=”10n width=”2(T height=”2(T tag=”r>
<side-ref id=,,l,,/>
<side-ref id=”2” />
</node>
<node id=”2” root=fftraeH x-n 110" y-,!10rf width=,f20M height=,’20,,tag=,T,>
<side-ref id=rf3rf />
<side-ref id二Mn />
</noclc>
<nodc id="3" rool="tnic”y-tIO" width="20M height=f'20M tag=ftrf>
<side-ref id=,,5,,/>
<side-rcf id=”6” />
</node>
<node id=”4” root=fffalsen x=,,60” y-n300ff width="20n height=,’20” tag="2"> 〈condition type=fORrf x=”60” y=”100” width=,,20M height=M20M tag=,3,,>
<condilion Iype=nAND" x=’’6(),,y=”200’’ width=M20M hciglu="20’’ iag=M4M><side-refid=T />
〈side-refidW />
〈/condition〉
<side-ref id=ff5” />
〈/condition〉
</nodc>
<node id="5" root=nfalse” x=n160" y=”30(T width=r,20" height="20” tag=”2”>
〈condition type=,,AND” x=”160,,y=n100n width=,,20" height=fi20,, tag=,r4">
〈condition type=”OR,,x=”160ff y=”200” width=n20M height=”20n tag=uT>
<side-ref id=”2” />
<side-ref id=”4” />
〈/condition〉
<side-ref id=”6n />
</condition>
</node>
<side id-'I" node-ref=f,4f,x/side>
<side id-'2n node-ref 5"></side>
〈side id=”3” node-ref=,,4,,x/side>
<side id=”4” node-ref^"5,,x/side>
〈side id=” 5” node-ref,,4,,x/side>
<side id=”6” node-ref=,,5,,x/side>
</graph>這里要說明的是,XML文件的生成可以是一旦獲取圖結構中的各圖形元素及其圖形元素信息(即,圖結構的部分信息),就生成XML文件中的與該元素對應的部分。例如,如上的XML文件中,如果繪制出節點NI的形狀,就生成〈node id="l"root="true"x="10"y="10"width="20"height="20"tag="l">
〈/node〉如果繪制出邊SI和S2,則將其加入上述節點I的部分中,即,
〈node id="I" root="true" x="10" y="10" wi她="20,, height="20" tag="l"> <sidc-rcrid="l"/>
<sidc-rcrid="2"/>
</node>其它節點和邊的XML文件部分可以按照上述方式同樣進行。此外,XML文件的生成也可以是在獲取圖結構的所有圖形元素及其圖形元素信息 后,才生成XML文件。即,獲取所有信息后,一次生成如上的XML文件。在如上生成XML文件后,在步驟S430,將所生成的XML文件存儲在存儲裝置中。所述存儲裝置可以是任何通用的存儲裝置,包括但不限于任何易失性存儲裝置和非易失性存儲裝置。與易失性存儲裝置相比,非易失性存儲裝置更為優選。圖6示出了根據本發明的實施例的基于XML限定規則的圖結構存儲裝置600的方框示意圖。如圖6所示,圖結構存儲裝置600包括信息獲取單元610、XML文件生成單元620和存儲單元630。信息獲取單元610用于獲取所繪制的圖結構信息以及圖結構中的各圖形元素及其圖形元素信息,其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素,所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息。此外,所述圖結構信息包括圖結構編號(其是屬性信息)。另外,圖結構信息也可以包括元素信息,比如節點和邊。所述節點信息中的屬性信息包括節點編號、節點類型、節點位置、節點大小和節點樣式,元素信息包括條件元素和邊引用;所述邊信息中的屬性信息包括邊編號、該邊的后續節點和邊樣式;以及所述條件元素是節點的子元素,并且所述條件元素信息中的屬性信息包括條件元素類型、條件元素位置、條件元素大小和條件元素樣式,元素信息包括邊引用或條件元素。XML文件生成單元620用于基于預先定義的XML限定規則,利用所獲取的圖結構信息和各個圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件。存儲單元630用于將所生成的XML文件存儲在存儲裝置中。本發明支持三層的結構,即展示界面-XML-內存中的圖結構的關系。第一層為展示界面,用戶可以通過界面看到圖結構。包括node所處畫布的位置、大小和樣式。從condition所處畫布的位置、大小和樣式。side用于連接node與node、node與condition、condition與condition,由于以上兀素已經指定位置,所以side的位置相對固定,不需要單獨指定,只需要指定樣式即可。第二層為XML存儲,用于保存第一層的圖結構,第一層和第二層可以互相轉換,即,編輯第一層的圖結構,然后生成第二層的XML。也可以編輯第二層的XML,然后生成第一層的圖結構。第三層為內存中的圖結構,也是圖的數據結構,使用程序實現與第一層同型。圖7示出了三層結構關系。從圖7中可以看出,可以有兩種方式進行編輯圖結構,一種方法是,用戶通過圖形界面進行編輯,編輯后轉換成為XML,并保存(位置、大小和樣式作為元素的屬性)。保存后的XML再生成內存中的數據結構。另一種方法是,用戶直接編輯XML (包括節點與邊、邊與節點、節點與節點的關系,元素的位置、大小和樣式),保存后轉換成為可以在圖形界面上展示的圖形,并生成內存中的數據結構。下面參照圖8到圖12來對基于所保存的XML文件繪制圖結構的過程進行說明。圖8示出了根據本發明的實施例的基于XML文件的圖結構繪制方法的流程圖。如圖8所示,首先,在步驟S810,對XML文件中的與各個節點和邊相關的部分進行解析。通過對各個節點和邊部分進行解析,可以得到各個節點和邊部分的屬性信息和元素信息。接著,在步驟S820,基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示。同時或隨后,在步驟S830,基于對各個邊部分進行解析后得到的 屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表示。具體地,在基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示時,對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示。對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。 此外,如果非頭節點的元素信息中包括條件元素,則從該非頭節點中抽取出條件元素的屬性信息和元素信息;基于條件元素的屬性信息和元素信息,繪制該條件元素;以及將該條件元素的圖形表示連接到該非頭節點的圖形表示。此外,如果非頭節點中多重嵌套有條件元素,則對于每層嵌套,從條件元素中抽取出被嵌套的另一條件元素的屬性信息和元素信息;基于該另一條件元素的屬性信息和元素信息,繪制該另一條件元素;以及將該另一條件元素的圖形表示與該條件元素的圖形表示連接。圖9A和9B示出了根據本發明的基于XML文件的各個節點和邊與后續節點之間的連接關系的繪制過程的一個示例的示圖。從圖9A和9B中看出,它們針對非頭節點中多重嵌套有條件元素的情形。然后,在步驟S840,按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。這里,重合的規律是,如果節點與邊可以關系重合,則進行重合,如果不能,則將邊與節點重合,如圖9B所示,節點與邊都能與關系重合,從而形成圖7所示的圖結構。此外,在進行圖結構繪制時,可以加入一些業務邏輯校驗條件,根據使用的實際情況酌情選擇,如兩個節點之間不能有重復的邊,不能出現自循環、死循環,不能出現孤島(沒有入度,也沒有出度)。圖10示出了根據本發明的實施例的基于XML文件的圖結構繪制裝置1000的方框示意圖。如圖10所示,圖結構繪制裝置1000包括解析單元1010、節點繪制單元1020、連接關系繪制單元1030和重合處理單元1040。解析單元1010用于對XML文件中的與各個節點和邊相關的部分進行解析。節點繪制單元1020用于基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示。連接關系繪制單元1030用于基于對各個邊部分進行解析后得到的屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表示。重合處理單元1040用于按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。圖11示出了圖10中的節點繪制單元的一個示例的方框示意圖。在該示例中,所述節點繪制單元1020可以包括頭節點繪制模塊1021,用于對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示;以及非頭節點繪制模塊1023,用于對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。如果非頭節點的元素信息中包括條件元素,則如圖12中所示,所述非頭節點繪制模塊1023還包括抽取模塊1025,用于從該非頭節點中抽取出條件元素的屬性信息和元素信息;條件元素繪制模塊1027,用于基于條件元素的屬性信息和元素信息,繪制該條件元素;以及連接模塊1029,用于將該條件元素的圖形表示連接到該非頭節點的圖形表示。在根據本發明的基于XML的圖結構存儲中,由于XML是常用的描述性語言,從而使 得圖結構的修改難度大大降低,易于維護。此外,由于本發明采用XML限定規則,系統可以自動進行圖結構校驗,由此導致系統可用性更高。此外,在根據本發明的基于XML的圖結構存儲中,可以利用XML描述到達同一節點的多條邊之間的關聯關系(比如與關系、或關系),從而使得圖結構能夠描述更廣的場景。而且,由于本發明采用XML存儲,可以很方便的得知各個節點在圖中展示的位置、大小和樣式。此外,本發明還支持直接修改XML,達到調整節點在圖中展示的位置、大小和樣式。另外,本發明優化了利用數據結構存儲圖結構時所存在的缺陷。與鄰接矩陣相比,在計算圖中有多少條邊或確定圖中節點是否連通時,性能得到大幅度提升。鄰接矩陣方案中的計算時間復雜度為0(n2),而本發明的計算時間復雜度為0(n)。此外,與鄰接表相比,計算入度時的空間復雜度降低,并且時間復雜度不變,入度和出度的復雜度同為O (η)。與十字鏈接表相比,本發明操作簡單,節點和邊的顯示非常清楚。以上以模塊單元的形式對根據本發明的網絡采集數據處理系統進行了描述。但是,本領域技術人員要理解的是,本文中描述的各個模塊可以利用控制單元來實現。所述控制單元通過執行用于實現上述功能的指令或程序來實現上述各個模塊的功能。此外,根據本發明的方法還可以被實現為由CPU執行的計算機程序。在該計算機程序被CPU執行時,執行本發明的方法中限定的上述功能。本領域技術人員還將明白的是,結合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現為電子硬件、計算機軟件或兩者的組合。為了清楚地說明硬件和軟件的這種可互換性,已經就各種示意性組件、方塊、模塊、電路和步驟的功能對其進行了一般性的描述。這種功能是被實現為軟件還是被實現為硬件取決于具體應用以及施加給整個系統的設計約束。本領域技術人員可以針對每種具體應用以各種方式來實現所述的功能,但是這種實現決定不應被解釋為導致脫離本發明的范圍。結合這里的公開所描述的各種示例性邏輯塊、模塊和電路可以利用被設計成用于執行這里所述功能的下列部件來實現或執行通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或晶體管邏輯、分立的硬件組件或者這些部件的任何組合。通用處理器可以是微處理器,但是可替換地,處理器可以是任何傳統處理器、控制器、微控制器或狀態機。處理器也可以被實現為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器結合DSP核、或任何其它這種配置。結合這里的公開所描述的方法或算法的步驟可以直接包含在硬件中、由處理器執行的軟件模塊中或這兩者的組合中。軟件模塊可以駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領域已知的任何其它形式的存儲介質中。示例性的存儲介質被耦合到處理器,使得處理器能夠從該存儲介質中讀取信息或向該存儲介質寫入信息。在一個替換方案中,所述存儲介質可以與處理器集成在一起。處理器和存儲介質可以駐留在ASIC中。ASIC可以駐留在用戶終端中。在一個替換方案中,處理器和存儲介質可以作為分立組件駐留在用戶終端中。在一個或多個示例性設計中,所述功能可以在硬件、軟件、固件或其任意組合中實現。如果在軟件中實現,則可以將所述功能作為一個或多個指令或代碼存儲在計算機可讀介質上或通過計算機可讀介質來傳送。計算機可讀介質包括計算機存儲介質和通信介質,該通信介質包括有助于將計算機程序從一個位置傳送到另一個位置的任何介質。存儲介質 可以是能夠被通用或專用計算機訪問的任何可用介質。作為例子而非限制性的,該計算機可讀介質可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲設備、磁盤存儲設備或其它磁性存儲設備,或者是可以用于攜帶或存儲形式為指令或數據結構的所需程序代碼并且能夠被通用或專用計算機或者通用或專用處理器訪問的任何其它介質。此外,任何連接都可以適當地稱為計算機可讀介質。例如,如果使用同軸線纜、光纖線纜、雙絞線、數字用戶線路(DSL)或諸如紅外線、無線電和微波的無線技術來從網站、服務器或其它遠程源發送軟件,則上述同軸線纜、光纖線纜、雙絞線、DSL或諸如紅外先、無線電和微波的無線技術均包括在介質的定義。如這里所使用的,磁盤和光盤包括壓縮盤(CD)、激光盤、光盤、數字多功能盤(DVD)、軟盤、藍光盤,其中磁盤通常磁性地再現數據,而光盤利用激光光學地再現數據。上述內容的組合也應當包括在計算機可讀介質的范圍內。盡管前面公開的內容示出了本發明的示例性實施例,但是應當注意,在不背離權利要求限定的本發明的范圍的前提下,可以進行多種改變和修改。根據這里描述的發明實施例的方法權利要求的功能、步驟和/或動作不需以任何特定順序執行。此外,盡管本發明的元素可以以個體形式描述或要求,但是也可以設想多個,除非明確限制為單數。雖然如上參照圖描述了根據本發明的各個實施例進行了描述,但是本領域技術人員應當理解,對上述本發明所提出的各個實施例,還可以在不脫離本發明內容的基礎上做出各種改進。因此,本發明的保護范圍應當由所附的權利要求書的內容確定。
權利要求
1.一種基于XML的圖結構存儲方法,包括 獲取所繪制的圖結構信息、以及所述圖結構中的各圖形元素及其圖形元素信息,其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素;所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息; 基于預先定義的XML限定規則,利用所述圖結構信息和所述各圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件;以及 將所生成的XML文件存儲在存儲裝置中, 其中,所述圖結構信息包括圖結構編號;所述節點信息中的屬性信息包括節點編號、節點類型、節點位置、節點大小和節點樣式,所述節點信息中的元素信息包括條件元素和邊引用;所述邊信息中的屬性信息包括邊編號、該邊的后續節點和邊樣式;以及所述條件元素是節點的子元素,并且所述條件元素信息中的屬性信息包括條件元素類型、條件元素位置、條件元素大小和條件元素樣式,所述條件元素信息中的元素信息包括邊引用或條件元素。
2.如權利要求I所述的圖結構存儲方法,其中,所述預先定義的XML限定規則包括文檔類型定義(DTD)或XML模式定義(XSD)。
3.如權利要求I所述的圖結構存儲方法,其中,一旦獲取圖結構中的各圖形元素及其圖形元素信息,就生成XML文件中的與該圖形元素對應的部分,或者在獲取圖結構的所有圖形元素及其圖形元素信息后,才生成XML文件。
4.一種基于XML的圖結構存儲裝置,包括 信息獲取單元,用于獲取所繪制的圖結構信息、以及所述圖結構中的各圖形元素及其圖形元素信息,其中,所述圖形元素包括節點、邊以及用于表示邊與邊之間的關聯關系的條件元素;所述節點信息包括屬性信息和元素信息,所述邊信息包括屬性信息,以及所述條件元素信息包括屬性信息和元素信息; XML文件生成單元,用于基于預先定義的XML限定規則,利用所述圖結構信息和所述各圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件;以及 存儲單元,用于將所生成的XML文件存儲在存儲裝置中, 其中,所述圖結構信息包括圖結構編號;所述節點信息中的屬性信息包括節點編號、節點類型、節點位置、節點大小和節點樣式,所述節點信息中的元素信息包括條件元素和邊引用;所述邊信息中的屬性信息包括邊編號、該邊的后續節點和邊樣式;以及所述條件元素是節點的子元素,并且所述條件元素信息中的屬性信息包括條件元素類型、條件元素位置、條件元素大小和條件元素樣式,所述條件元素信息中的元素信息包括邊引用或條件元素。
5.一種基于XML文件的圖結構繪制方法,其中,所述XML文件如權利要求I所述生成,所述圖結構繪制方法包括 對XML文件中的與各個節點和邊相關的部分進行解析; 基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示; 基于對各個邊部分進行解析后得到的屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表不;以及 按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。
6.如權利要求5所述的圖結構繪制方法,其中,基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示包括 對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示;以及 對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。
7.如權利要求6所述的圖結構繪制方法,其中,如果非頭節點的元素信息中包括條件元素,則 從該非頭節點中抽取出條件元素的屬性信息和元素信息; 基于條件元素的屬性信息和元素信息,繪制該條件元素;以及 將該條件元素的圖形表示連接到該非頭節點的圖形表示。
8.如權利要求7所述的圖結構繪制方法,其中,如果非頭節點中多重嵌套有條件元素,則對于每層嵌套, 從條件元素中抽取出被嵌套的另一條件元素的屬性信息和元素信息; 基于該另一條件元素的屬性信息和元素信息,繪制該另一條件元素;以及 將該另一條件元素的圖形表示與該條件元素的圖形表示連接。
9.一種基于XML文件的圖結構繪制裝置,其中,所述XML文件如權利要求I所述生成,所述圖結構繪制裝置包括 解析單元,用于對XML文件中的與各個節點和邊相關的部分進行解析; 節點繪制單元,用于基于對各個節點部分進行解析后得到的屬性信息和元素信息,繪制各個節點的圖形表示; 連接關系繪制單元,用于基于對各個邊部分進行解析后得到的屬性信息,繪制邊與該邊的后續節點之間的連接關系的圖形表示;以及 重合處理單元,用于按照邊與邊引用進行重合的方式,對所繪制出的節點的圖形表示以及所繪制出的邊與該邊的后續節點之間的連接關系的圖形表示進行重合處理,以得到圖結構的圖形表示。
10.如權利要求9所述的圖結構繪制裝置,其中,所述節點繪制單元包括 頭節點繪制模塊,用于對于頭節點,根據該節點的節點編號、節點位置、節點大小、節點樣式以及邊引用,繪制該節點以及由該節點發出的有向邊的圖形表示;以及 非頭節點繪制模塊,用于對于非頭節點,則根據該節點的節點編號、節點位置、節點大小、節點樣式,繪制該非頭節點的圖形表示。
其中,如果非頭節點的元素信息中包括條件元素,則所述非頭節點繪制模塊還包括 抽取模塊,用于從該非頭節點中抽取出條件元素的屬性信息和元素信息; 條件元素繪制模塊,用于基于條件元素的屬性信息和元素信息,繪制該條件元素;以及 連接模塊,用于將該條件元素的圖形表示連接到該非頭節點的圖形表示。
全文摘要
本發明提供了一種基于XML的圖結構存儲方法,包括獲取所繪制的圖結構信息以及圖結構中的各圖形元素及其圖形元素信息;基于預先定義的XML限定規則,利用所獲取的圖結構信息和各圖形元素及其圖形元素信息,生成用于描述所繪制的圖結構的XML文件;以及將所生成的XML文件存儲在存儲裝置中。利用上述圖結構存儲方法,可以描述到達同一節點的多條邊之間的關聯關系,從而使得圖結構能夠適用于更廣的場景。此外,還可以支持直接修改XML,由此使得圖結構的修改難度大大降低,易于維護。
文檔編號G06F17/30GK102831167SQ20121025831
公開日2012年12月19日 申請日期2012年7月24日 優先權日2012年7月24日
發明者王承志 申請人:東軟集團股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影