午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

將抽象句法表示法1數(shù)據(jù)模型化成對象模型的方法及系統(tǒng)的制作方法

文檔序號:6573148閱讀:267來源:國知局
專利名稱:將抽象句法表示法1數(shù)據(jù)模型化成對象模型的方法及系統(tǒng)的制作方法
技術領域
本發(fā)明一般涉及計算機軟件開發(fā)。更具體地,本發(fā)明涉及將ASN.1(抽象句法表示法1)編碼的數(shù)據(jù)動態(tài)映射到對象模型以產(chǎn)生ASN.1數(shù)據(jù)結構的方法。
背景技術
抽象句法表示法1(ASN.1)是一種定義相互可操作性的抽象數(shù)據(jù)和消息格式的國際標準。盡管最初ASN.1用于描述開放系統(tǒng)互聯(lián)環(huán)境中的電子郵件消息,但從那時起ASN.1已經(jīng)被更廣范圍的其他應用所采用,如應用在網(wǎng)絡管理、安全、移動(蜂窩)電話、空中交通管制以及因特網(wǎng)上的語音和視頻中。實例包括X.509認證、公鑰加密標準、Kerberos(科伯羅思)、類屬安全服務API(應用編程接口)以及認證管理協(xié)議。
ASN.1數(shù)據(jù)類型是從基本數(shù)據(jù)類型(即,整型、實型、布爾型和空)中建立的,使用三種主要的構建機制重復(SEQUENCE OF(之序列)和SETOF(之組))、選擇(CHOICE)以及字段列表(SEQUENCE(序列)和SET(組))。一旦已經(jīng)定義了ASN.1數(shù)據(jù),該ASN.1數(shù)據(jù)可以確定地用在其他ASN.1數(shù)據(jù)類型的定義中,就好象它是基本數(shù)據(jù)類型一樣。這樣的數(shù)據(jù)類型可以在使用前或在(向前引用)后定義。這種遞歸定義的數(shù)據(jù)結構可能增加,結果變得非常復雜,特別是在要求將編碼ASN.1描述編碼成特異編碼法(DER)編碼字節(jié)數(shù)組,并解碼它們的情況下。DER是編碼ASN.1數(shù)據(jù)結構以在開放系統(tǒng)互聯(lián)(OSI)的應用層和表示層之間轉送的標準編碼法。它提供了一種方法,使表示層可以可靠地與其它計算機系統(tǒng)交換任何任意數(shù)據(jù)結構,同時應用層可以將編碼的數(shù)據(jù)映射成適合終端用戶的任何類型的表示或語言。
現(xiàn)在,越來越多的企業(yè)已經(jīng)采用面向對象設計和編程,因為它具有許多優(yōu)點,諸如可復用性和易于維護等。Java是面向對象、獨立平臺和安全語言的一個例子,它已經(jīng)從新興技術變成為一種成功的安全電子商務應用的主流語言。
因此,將會需要一種工具,將ASN.1編碼的數(shù)據(jù)映射到對象模型,并能夠將ASN.1編碼的數(shù)據(jù)翻譯成原始的Java源代碼,以幫助企業(yè)有效地開發(fā)或移植到面向對象的、跨平臺的應用。

發(fā)明內容
本發(fā)明提供一種將ASN.1數(shù)據(jù)映射成對象模型的方法、程序和系統(tǒng)。本發(fā)明具體如下識別數(shù)據(jù)流的開始,并接著產(chǎn)生該數(shù)據(jù)的新對象名;然后分析(parse)數(shù)據(jù)獲得識別符和數(shù)據(jù)長度;接著分析數(shù)據(jù)的標簽(tag)類型,如果標簽類型是簡單型,則為該數(shù)據(jù)產(chǎn)生一類(class)圖,并產(chǎn)生該數(shù)據(jù)的源代碼,如果標簽類型不是簡單型,則在產(chǎn)生類圖和源代碼之前,調用子例程進一步分析該數(shù)據(jù)。


在所附的權利要求書中陳述了本發(fā)明的確有新穎性特征的特點。但是通過結合閱讀附圖,下面的對說明性實施例的詳細描述將使本發(fā)明自身以及本發(fā)明的使用優(yōu)選模式、更進一步的目的和優(yōu)點得到最好的理解。
圖1描述了可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡示圖;圖2描述了根據(jù)本發(fā)明優(yōu)選實施例的可以用做服務器的數(shù)據(jù)處理系統(tǒng)的方框圖;以及圖3描述了說明可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖;圖4描述了根據(jù)本發(fā)明的從ASN.1數(shù)據(jù)類型中產(chǎn)生的對象圖;圖5描述了說明根據(jù)本發(fā)明的分析數(shù)據(jù)流以及創(chuàng)建分類以及ASN.1數(shù)據(jù)類型的例程流程圖;圖6描述了說明根據(jù)本發(fā)明的分析數(shù)據(jù)的子例程的流程圖;圖7描述了根據(jù)本發(fā)明的輸出類別圖;圖8描述了說明根據(jù)本發(fā)明的分析子例程執(zhí)行順序的對象圖。
具體實施例方式
現(xiàn)在參照附圖,圖1描述了可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡示圖。網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100是可以實現(xiàn)本發(fā)明的計算機網(wǎng)絡。網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100包括網(wǎng)絡102,為用于在網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100中連接在一起的各種設備和計算機之間提供通信鏈路的介質。網(wǎng)絡102可以包括諸如有線、無線通信鏈路或光纜的連接。
在所述實例中,服務器104連接到網(wǎng)絡102及存儲單元106。另外,客戶機108、110和112也連接到網(wǎng)絡102。例如這些客戶機108、110和112可以是個人計算機或網(wǎng)絡計算機。在所述實例中,服務器104向客戶機108-112提供諸如引導文件、操作系統(tǒng)映像(image)以及應用程序之類的數(shù)據(jù)??蛻魴C108、110和112是服務器104的客戶機。網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100可以包括未示出的附加的服務器、客戶機和其他設備等。
在所述實例中,網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100是具有代表世界范圍的使用TCP/IP系列協(xié)議彼此進行通信的網(wǎng)絡和網(wǎng)關的集合的網(wǎng)絡102的因特網(wǎng)。在因特網(wǎng)的中心是在包括數(shù)以千計的商業(yè)、政府、教育以及傳遞數(shù)據(jù)和消息的其他計算機系統(tǒng)的主節(jié)點或主計算機之間的高速數(shù)據(jù)通信鏈路的主干。當然,網(wǎng)絡數(shù)據(jù)處理系統(tǒng)100還可以被實現(xiàn)成多個不同類型的網(wǎng)絡,例如,諸如企業(yè)內部網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)之類的網(wǎng)絡。圖1僅作為一個實例,而不是作為本發(fā)明的結構限制。
參照圖2,根據(jù)本發(fā)明優(yōu)選實施例描述了可以實現(xiàn)為一個服務器(例如圖1中的服務器104)的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200可以是包括連接到系統(tǒng)總線206上的多個處理器202和204的對稱多處理器(SMP)系統(tǒng)?;蛘?,也可以使用單個處理器系統(tǒng)。并且存儲器控制器/高速緩存器208也連接到系統(tǒng)總線206,其中提供了到本地存儲器209的接口。I/O總線橋210連接到系統(tǒng)總線206并提供到I/O總線212的接口。存儲器控制器/高速緩存器208和I/O總線橋210也可以如所述那樣集成。
連接到I/O總線212的外設部件互聯(lián)(PCI)總線橋214提供到PCI本地總線216的接口。多個調制解調器可以連接到PCI總線216。典型的PCI總線的實現(xiàn)將支持4個PCI擴展槽或附加(add-in)連接器??梢酝ㄟ^附加板連接到PCI本地總線216上的調制解調器218和網(wǎng)絡適配器220提供圖1中至網(wǎng)絡計算機108-112的通信鏈接。
附加PCI總線橋222和224為附加PCI總線226和228提供接口,從中可以支持附加調制解調器或網(wǎng)絡適配器。在這種方式中,數(shù)據(jù)處理系統(tǒng)200允許與多個網(wǎng)絡計算機的連接。正如所述的,存儲器映射圖形適配器230和硬盤232也可以直接或間接地連接到I/O總線212。
本領域普通技術人員會理解,圖2所示硬件可以改變。例如,除了使用或取代所述的硬件以外,也可以使用諸如光盤驅動器等的其它外部設備。所述實例并不意味著對本發(fā)明結構的限制。
例如圖2中描述的數(shù)據(jù)處理系統(tǒng)可以是運行著高級交互執(zhí)行體(AIX)操作系統(tǒng)的、位于紐約Armonk的國際商用機器公司的產(chǎn)品IBM RISC/System6000系統(tǒng)。
現(xiàn)在參考圖3,描述說明可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)300是客戶計算機的實例。數(shù)據(jù)處理系統(tǒng)300采用外部部件互聯(lián)(PCI)本地總線結構。盡管所描述的實例使用PCI總線,也可以使用諸如加速圖形接口(AGP)和工業(yè)標準結構(ISA)的其它的總線結構。處理器302和主存儲器304通過PCI橋308連接到PCI本地總線306上。PCI橋308也可以包括用于處理器302的集成的存儲器控制器和高速緩存器??梢酝ㄟ^直接部件互聯(lián)或通過附加板產(chǎn)生與PCI本地總線306的附加連接。在所述的實例中,局域網(wǎng)(LAN)適配器310、SCSI(小型計算機系統(tǒng)接口)主總線適配器312以及擴展總線接口314通過直接部件互聯(lián)連接到PCI本地總線306上。相反,音頻適配器316、圖形適配器318和音頻/視頻適配器319通過插入在擴展槽中的附加板連接到PCI本地總線306。擴展總線接口314提供鍵盤和鼠標適配器320、調制解調器322和附加存儲器324的連接。小型計算機系統(tǒng)接口(SCSI)主總線適配器312提供硬盤驅動器326、磁帶驅動器328以及CD-ROM驅動器330的連接。典型的PCI本地總線的實現(xiàn)將支持3至4個PCI擴展槽或附加連接器。
操作系統(tǒng)運行在處理器302上并用于協(xié)調和提供圖3中的數(shù)據(jù)處理系統(tǒng)300中的各種部件的控制。操作系統(tǒng)可以是市場可得的操作系統(tǒng),諸如可從微軟公司得到的視窗2000。諸如Java的面向對象編程系統(tǒng)可以結合操作系統(tǒng)運行,并提供從Java程序向操作系統(tǒng)的調用或在數(shù)據(jù)處理系統(tǒng)300上的執(zhí)行的應用程序?!癑ava”是太陽微系統(tǒng)公司的商標。用于操作系統(tǒng)、面向對象的操作系統(tǒng)和應用或程序的指令放置在諸如硬盤驅動器326的存儲設備上,也可以載入到用于處理器302執(zhí)行的主存儲器304中。
本領域普通技術人員會理解圖3的硬件可以根據(jù)實現(xiàn)來改變。除了使用圖3中所述的硬件以外,還可以使用諸如快閃ROM(或等價的非易失性存儲器)或光盤驅動器等之類的其它內部硬件或外部設備,或替代圖3中的硬件。并且,本發(fā)明的處理可以應用到多處理器數(shù)據(jù)處理系統(tǒng)中。
作為另一個實例,不管數(shù)據(jù)處理系統(tǒng)300是否包括某種網(wǎng)絡通信接口,數(shù)據(jù)處理系統(tǒng)300都可以是一個獨立配置可引導的系統(tǒng),而不依賴某種網(wǎng)絡通信接口。作為再一個實例,數(shù)據(jù)處理系統(tǒng)300可以是個人數(shù)字助理(PDA)設備,其中配置有ROM和/或快閃ROM以便為存儲操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)提供非易失性存儲器。
圖3中所述實例和上述實例不意味著結構限制。例如,除了采取PDA形式,數(shù)據(jù)處理系統(tǒng)300也可以是筆記本計算機或手持計算機。數(shù)據(jù)處理系統(tǒng)300還可以是信息臺(kiosk)或網(wǎng)絡(web)應用。
本發(fā)明將ASN.1數(shù)據(jù)譯成對象模型,接著產(chǎn)生源代碼,在圖形用戶接口(GUI)上顯示每一屬性值。ASN.1數(shù)據(jù)可能是用ASN.1表示編寫的一條編碼數(shù)據(jù)、一個二進制文件、一個由ASN.1表示法寫成的文本文件,或僅是從輸入設備鍵入的ASN.1表示。GUI可以在JavaBean(Java豆)中實現(xiàn)并封裝在運行于Beanbox(豆盒)或能夠插入到諸如Visual Cafe(可視室)的Java開發(fā)環(huán)境中的Java Archive(JAR)(Java檔案)文件中。
輸入數(shù)據(jù)的實例在表1中說明,表1包括以十六進制顯示的二進制編碼的數(shù)據(jù)流。
表1000000003081CD02 01010201 003081C5 302D02010000001001041841 5A4E5F50 45524D49 4E464F5F0000002041554449 544C4556 454C0030 0E3 00C020000003001010201 02040400 00000030 2B020101000000400416415A 4E5F5045 524D494E 474F5F51000000504F505F55 494E5400 300E300C 020101020000006001020404 00000000 302E0201 01041941000000705A4E5F55 45524D49 4E464F5F 5741524E00000080494E474D 4F444500 300E300C 020101020000009001020404 00000000 30370201 01042241000000A05A4E5F50 45524D49 4E464F5F 5741524E000000B0494E474D 4F444550 45524D49 54544544000000C000300E30 0C020101 02010204 04000000
從表1所示的數(shù)據(jù)流中產(chǎn)生的ASN.1數(shù)據(jù)類型如下所示<pre listing-type="program-listing">ClassA=Sequence{ attribute1 INTEGER, attribute2 INTEGER, attribute3 OCTETSTRING}ClassB=SEQUENCEOF{ attribute1 ClassA}ClassC=SEQUENCE{ attribute1 INTEGER, attribute2 OCTETSTRING, attribute3 ClassB}ClassD=SEQUENCEOF{ ClassC}ClassE=SEQUENCE{ attributel INTEGER, attribute2 INTEGER, attribute3 ClassD}</pre>現(xiàn)在參照圖4,根據(jù)本發(fā)明描述從上面說明的ASN.1數(shù)據(jù)類型中產(chǎn)生的對象圖。圖4中對象圖采用新對象模型建立技術(OMT)表示法。菱形鏈接表示聚集關系,其中一個類是由多個類組成的。用表示類別對象的方形框顯示對象模型。類名、屬性和方法列在框中,并且各類別的關系用鏈接指示。每一類具有特性表,并且對于二進制輸入,該表列出了其中的每一對象的值。
參照圖5,描述說明根據(jù)本發(fā)明的分析數(shù)據(jù)流和創(chuàng)建類及ASN.1數(shù)據(jù)類型的例程的流程圖。將DER數(shù)據(jù)用做一個實例。但是對于基本編碼法(BER)數(shù)據(jù)流來說,該步驟也是適合的。BER或DER編碼數(shù)據(jù)具有三部分識別ASN.1值標簽類型的識別符八位位組、給出作為數(shù)據(jù)內容的字節(jié)數(shù)的長度八位位組以及真實數(shù)據(jù)的內容八位位組。
使用DER法開始該例程以識別編碼數(shù)據(jù)的開始(步驟501)。編碼數(shù)據(jù)從識別符八位位組開始。通常它在輸入字節(jié)流或二進制文件的開始,但是也不是必須如此。接著,產(chǎn)生新對象名,通常是類名(步驟502)。為方便命名起見,對象名可能是諸如 “類A”或“對象A”之類的一般名字。該例程接著分析一個或多個字節(jié)數(shù)據(jù)以獲得識別符(步驟503)。在這點上,對從數(shù)據(jù)的1至127字節(jié)的任何地方進行分析以獲得數(shù)據(jù)長度(步驟504)。在步驟503和504依據(jù)BER法分析數(shù)據(jù)。
獲得識別符和數(shù)據(jù)長度之后,下面的步驟是識別數(shù)據(jù)所具有的標簽類型(步驟505)。如果標簽類型是簡單型,則產(chǎn)生類圖和ASN.1表示(步驟507)。簡單型數(shù)據(jù)具有諸如INTEGER(整型)、GENERAL STRING(通用字符串)、OCTET STRING(八位位組字符串)等之類的簡單編碼類型的標簽。在這種情況下,通過擴展編碼類型所對應的超類(superclass)來構建類,例如INTEGER對應于Java2標準編輯API中java.lang.Integer類、GENERALSTRING對應于java.lang.Integer類、OCTET STRING對應于java.lang.Integer類。在圖7中說明了輸出類圖的一個實例,并且ASN.1表示法是ClassA=GeneralString。最后的步驟是產(chǎn)生數(shù)據(jù)的源代碼(步驟508)。
如果標簽類型不是簡單型,則調用子例程分析數(shù)據(jù)內容(步驟506)。
現(xiàn)在參考圖6,描述說明根據(jù)本發(fā)明的分析數(shù)據(jù)的子例程的流程圖?!矮@得識別符”的步驟601和“獲得數(shù)據(jù)長度”的步驟602是和參考圖5描述的相同。下面的步驟是分析標簽類型(步驟603)。
如果標簽類型是簡單型,則接著子例程確定所述調用是否來自主例程(步驟608)。如果調用是來自主例程,則為進一步的引用(具有相同標簽號的類是相同的類)記錄標簽號,并且將類簡單地返回到主例程(步驟611)。如果調用不是來自主例程,則創(chuàng)建新的屬性名,記錄數(shù)據(jù)值,并且將屬性與其類相關聯(lián)(步驟609)。為方便起見,可將屬性命名為“attributeA”。如果到達數(shù)據(jù)末尾,則返回主例程(步驟611)。如果沒有到達數(shù)據(jù)末尾,子例程返回到步驟601。
如果構建了步驟603中分析的標簽,則產(chǎn)生新的類名(步驟607),并且子例程返回到步驟601,以便它能夠進一步分析所構建類型內的數(shù)據(jù)內容。子例程能夠遞歸調用以便分析在所構建類型中的所有的數(shù)據(jù)內容等。所構建的類型包括構件(component)。所構建類型的實例如SEQUENCE、SEQUENCEOF等。SEQUENCE包括一個或多個不同的類型。SEQUENCE OF包括一個或多個給定的類型。
如果在步驟603分析的標簽類型是顯性的,將直接到“獲得識別符”(步驟604)和“獲得數(shù)據(jù)長度”(步驟605),與步驟601和602相似。顯性標注的類型是來自于簡單型或通過將標簽放在基礎類型上構建的類型。因此分析顯性標注的類型以確定隱含標簽類型(underlying tag type)(步驟606)。
如果構建了隱含標簽類型,則產(chǎn)生新類名(步驟607)并再次調用子例程分析在該構建的類型中的數(shù)據(jù)內容(返回步驟601)。如果隱含標簽類型是簡單型,則在進行方便的命名之后產(chǎn)生新的屬性名(步驟610)。
如果已經(jīng)到達編碼數(shù)據(jù)的末尾,則將所創(chuàng)建的類返回到主例程(步驟611)。如果還沒有到達編碼數(shù)據(jù)的末尾,則處理返回到子例程的開始(步驟601)繼續(xù)分析數(shù)據(jù)的剩余部分。
對于文本輸入,字符串分析器和語法檢查器是和底層相關聯(lián)的。他們在數(shù)據(jù)結構上執(zhí)行遞歸檢查。對于二進制輸入,字節(jié)分析器與底層相關聯(lián),它分析字節(jié)并識別類、標簽號、數(shù)據(jù)長度和字節(jié)流中的內容。
參照圖8,描述說明根據(jù)本發(fā)明的分析子例程執(zhí)行順序的對象圖。這個流程是顯示從編碼數(shù)據(jù)流中如何產(chǎn)生類圖的一個實例。
在分析數(shù)據(jù)時創(chuàng)建類的順序如下a.開始類的創(chuàng)建(創(chuàng)建該類名);b.開始構件類1的創(chuàng)建(創(chuàng)建類名);c.開始和完成子構件類1的構建(如果是顯性標注的類型,則創(chuàng)建類名、識別屬性和相關聯(lián)的值、記錄標簽號);d.開始和完成子構件類2的構建(如果是顯性標注的類型,則創(chuàng)建類名、識別屬性和他們的相關聯(lián)的值、記錄標簽號);以及e.完成構件類1的構建(識別構件類1的構建機制。如果子構件類1和2是相同的,則重復構建機制。構件類1具有兩個為“子構件類1”和“子構件類2”類型的屬性。如果它是顯性標注的類型,則識別屬性和他們相關聯(lián)的值,記錄標簽號)。
構件類2和構件類3依照與構件類1相似的過程。最后因為識別了類的所有屬性,所以完成了類的構建。
源代碼引擎是用于產(chǎn)生在Java源代碼中Java類的“skeletal(骨架)”結構的。適當?shù)木幋a/解碼例程被插入到Java代碼中以提供功能類(functionalclass)。這些例程產(chǎn)生對包括基本數(shù)據(jù)類型的編碼和解碼方法的實用程序(utility)的調用。實用程序庫是由Java安全組開發(fā)的,作為Java公鑰加密標準產(chǎn)品包的一部分。
ASN.1和DER編碼是固有的復雜操作。一些存在的工具包提供基本DER類,但他們仍要求開發(fā)者對他們的ASN.1定義進行模型化并確定如何調用DER編碼/解碼例程。當前現(xiàn)存的工具不能幫助開發(fā)者和編程者(architect)對面向對象形式中的ASN.1定義進行模型化。本發(fā)明提供了這項關鍵功能,并且因此允許開發(fā)者和編程者專注于他們試圖解決的問題,而不是機制問題。
本發(fā)明降低了在異質類型環(huán)境中的與分析、實現(xiàn)和測試的代碼相關的時間和成本,允許軟件開發(fā)者更多關注在商業(yè)模型和結構開發(fā)上。本發(fā)明還幫助開發(fā)者和編程者分析當前結構中的數(shù)據(jù)模型并增強了基于對象表示的設計。另一優(yōu)點是幫助測試者和網(wǎng)絡管理員分析通過動態(tài)構建基于數(shù)據(jù)輸入流的對象模型和在圖形用戶接口中將其顯示來分析在網(wǎng)絡上傳輸?shù)臄?shù)據(jù)。
注意下面所述是很重要的,即雖然已經(jīng)在上文中描述了本發(fā)明的全部功能的數(shù)據(jù)處理系統(tǒng),本領域普通技術人員將理解本發(fā)明的處理能夠以指令的計算機可讀介質的形式和各種形式傳播,并且可以等價應用本發(fā)明而不論實際用于實現(xiàn)傳播的信號承載介質的具體類型。計算機可讀介質的實例包括諸如軟磁盤、硬盤驅動器、RAM、CD-ROM、DVD-ROM之類的可記錄型介質和諸如數(shù)字和模擬通信鏈路、使用例如射頻和光波傳輸?shù)膫鬏斝问降挠芯€或無線通信鏈路的傳輸型介質。對于具體數(shù)據(jù)處理系統(tǒng)中的實際使用,計算機可讀介質可以使用被解碼的編碼格式的形式。
為說明和描述的目的已經(jīng)給出了本發(fā)明的描述,但該描述不是試圖窮舉或限制本發(fā)明的公開形式。對本領域普通技術人員來說許多改進和變型是顯然的。選擇并描述實施例以最好地解釋本發(fā)明的原理、實際應用,并使被指控試圖具體使用的具有各種改進的各種實施例的本領域的其他普通技術人員能夠理解本發(fā)明。
權利要求
1.一種將ASN.1(抽象句法表示法1)數(shù)據(jù)映射成對象模型的方法,該方法包括步驟識別ASN.1數(shù)據(jù)中的各對象;識別各對象的屬性;識別各對象之間的關系;以及產(chǎn)生對象模型。
2.如權利要求1的方法,還包括步驟識別數(shù)據(jù)流的開始;產(chǎn)生該數(shù)據(jù)的新對象名;分析該數(shù)據(jù)以獲得數(shù)據(jù)識別符;分析該數(shù)據(jù)以獲得數(shù)據(jù)長度;分析該數(shù)據(jù)的標簽類型;如果標簽類型是簡單型,則為該數(shù)據(jù)產(chǎn)生一類圖;以及產(chǎn)生該數(shù)據(jù)的源代碼。
3.如權利要求2的方法,其特征在于,還包括如果標簽類型不是簡單型,執(zhí)行一子例程以進一步分析數(shù)據(jù)內容的步驟。
4.如權利要求3的方法,其特征在于,分析子例程包括步驟分析數(shù)據(jù)內容以獲得識別符;分析數(shù)據(jù)內容以獲得數(shù)據(jù)長度;以及分析標簽類型。
5.如權利要求4的方法,其特征在于,還包括步驟如果標簽類型是簡單型,確定對子例程的調用是否來自主例程;如果調用來自主例程,則為進一步引用記錄數(shù)據(jù)標簽號并將該數(shù)據(jù)返回到主例程;以及如果調用不是來自主例程,則為該數(shù)據(jù)產(chǎn)生屬性名,并且如果已經(jīng)到達數(shù)據(jù)末尾,則將該數(shù)據(jù)返回到主例程。
6.如權利要求5的方法,其特征在于,還包括如果沒有到達數(shù)據(jù)末尾則再調用分析子例程的步驟。
7.如權利要求4的方法,其特征在于,還包括步驟如果構建了標簽類型,則為該數(shù)據(jù)產(chǎn)生一新的類名;以及再調用分析子例程。
8.如權利要求4的方法,其特征在于,還包括步驟如果標簽類型是顯性的,則進一步分析數(shù)據(jù)內容以獲得數(shù)據(jù)識別符和數(shù)據(jù)長度;以及分析顯性的標簽類型以確定隱含標簽類型。
9.如權利要求8的方法,其特征在于,還包括步驟如果隱含標簽類型是簡單型,則為該數(shù)據(jù)產(chǎn)生一屬性名;以及如果已經(jīng)到達數(shù)據(jù)末尾,則將該數(shù)據(jù)返回到主例程。
10.如權利要求9的方法,其特征在于,還包括如果還沒有到達數(shù)據(jù)末尾,則再調用分析子例程的步驟。
11.如權利要求8的方法,其特征在于,還包括步驟如果構建了隱含標簽類型,則為該數(shù)據(jù)產(chǎn)生一新類名;以及再調用分析子例程。
12.一種在計算機可讀介質中用在數(shù)據(jù)處理系統(tǒng)中的計算機程序產(chǎn)品,用于將ASN.1數(shù)據(jù)映射到對象模型,該計算機程序產(chǎn)品包括用于識別ASN.1數(shù)據(jù)中的對象的指令;用于識別各對象的屬性的指令;用于識別各對象之間的關系的指令;以及用于產(chǎn)生對象模型的指令。
13.如權利要求12的計算機程序產(chǎn)品,其特征在于,還包括用于識別數(shù)據(jù)流的開始的指令;用于產(chǎn)生該數(shù)據(jù)的新對象名的指令;用于分析數(shù)據(jù)以獲得數(shù)據(jù)識別符的指令;用于分析數(shù)據(jù)以獲得數(shù)據(jù)長度的指令;用于分析數(shù)據(jù)的標簽類型的指令;用于如果標簽類型是簡單型,則為該數(shù)據(jù)產(chǎn)生一類圖的指令;以及用于產(chǎn)生該數(shù)據(jù)的源代碼的指令。
14.如權利要求13的計算機程序產(chǎn)品,其特征在于,還包括用于如果標簽類型不是簡單型,以進一步分析數(shù)據(jù)內容的子例程。
15.如權利要求14的計算機程序產(chǎn)品,其特征在于分析子例程包括用于分析數(shù)據(jù)內容以獲得識別符的指令;用于分析數(shù)據(jù)內容以獲得數(shù)據(jù)長度的指令;以及用于分析標簽類型的指令。
16.如權利要求15的計算機程序產(chǎn)品,其特征在于,還包括如果標簽類型是簡單型,用于確定子例程的調用是否來自主例程的指令;如果調用來自主例程,用于為進一步引用而記錄數(shù)據(jù)標簽號并將數(shù)據(jù)返回到主例程的指令;以及如果調用不是來自主例程,用于為該數(shù)據(jù)產(chǎn)生屬性名以及如果已經(jīng)到達數(shù)據(jù)末尾,則將該數(shù)據(jù)返回到主例程的指令。
17.如權利要求16的計算機程序產(chǎn)品,其特征在于,還包括如果沒有到達數(shù)據(jù)末尾,用于再調用分析子例程的指令。
18.如權利要求15的計算機程序產(chǎn)品,其特征在于,還包括如果構建了標簽類型,用于為該數(shù)據(jù)產(chǎn)生一新的類名的指令;以及用于再調用分析子例程的指令。
19.如權利要求15的計算機程序產(chǎn)品,其特征在于,還包括如果標簽類型是顯性的,用于進一步分析數(shù)據(jù)內容以獲得數(shù)據(jù)識別符和數(shù)據(jù)長度的指令;以及用于分析顯性的標簽類型以確定隱含標簽類型的指令。
20.如權利要求19的計算機程序產(chǎn)品,其特征在于,還包括如果隱含標簽類型是簡單型,用于為該數(shù)據(jù)產(chǎn)生一屬性名的指令;以及如果已經(jīng)到達數(shù)據(jù)末尾,用于將該數(shù)據(jù)返回到主例程的指令。
21.如權利要求20的計算機程序產(chǎn)品,其特征在于,還包括如果還沒有到達數(shù)據(jù)末尾,用于再調用分析子例程的指令。
22.如權利要求19的計算機程序產(chǎn)品,其特征在于,還包括如果構建了隱含標簽類型,用于為該數(shù)據(jù)產(chǎn)生一新類名的指令;以及用于再調用分析子例程的指令。
23.一種將ASN.1數(shù)據(jù)映射成對象模型的系統(tǒng),該系統(tǒng)包括用于識別ASN.1數(shù)據(jù)中的對象的裝置;用于識別各對象的屬性的裝置;用于識別各對象之間的關系的裝置;以及用于產(chǎn)生對象模型的裝置。
全文摘要
提供一種將ASN.1數(shù)據(jù)映射到對象模型的方法、程序和系統(tǒng)。本發(fā)明包括識別數(shù)據(jù)流的開始,并接著產(chǎn)生該數(shù)據(jù)的新對象名;然后分析數(shù)據(jù)以獲得識別符和數(shù)據(jù)長度;接著分析數(shù)據(jù)的標簽類型,如果標簽類型是簡單型,則為該數(shù)據(jù)產(chǎn)生一類圖,并產(chǎn)生該數(shù)據(jù)的源代碼,如果標簽類型不是簡單型,則在產(chǎn)生類圖和源代碼之前,調用子例程進一步分析該數(shù)據(jù)。
文檔編號G06F9/44GK1359065SQ0114362
公開日2002年7月17日 申請日期2001年12月14日 優(yōu)先權日2000年12月15日
發(fā)明者張曉燕, 蘭迪·S·漢弗萊, 西奧多·J·L·施雷德, 戴維斯·K·索珀 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1