摘 要: 數(shù)據(jù)的轉(zhuǎn)換與傳輸技術(shù)是DMB EPG前端系統(tǒng)的核心技術(shù)。通過深入研究DMB EPG的協(xié)議、技術(shù)背景和工作原理,探討了DMB EPG前端系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換技術(shù),并設(shè)計(jì)實(shí)現(xiàn)了基于XML的DMB EPG數(shù)據(jù)轉(zhuǎn)換技術(shù),即提出了一種基于Schema模式的數(shù)據(jù)轉(zhuǎn)換方法。
關(guān)鍵詞: 數(shù)字多媒體廣播;電子節(jié)目指南;多媒體對(duì)象傳輸
采用XML格式來描述EPG(Electronical Program Guide)的數(shù)據(jù)理由有:(1)標(biāo)準(zhǔn)問題。XML是描述結(jié)構(gòu)化數(shù)據(jù)的一個(gè)非常好的標(biāo)準(zhǔn)。(2)擴(kuò)展性。由于EPG數(shù)據(jù)類型隨著廣播電視的發(fā)展必然會(huì)有新的數(shù)據(jù)類型出現(xiàn),而XML非常有利于未來擴(kuò)展向后兼容。(3)隨著XML技術(shù)的不斷發(fā)展成熟,關(guān)于XML技術(shù)的相關(guān)開發(fā)工具日益豐富,為以后從事EPG相關(guān)開發(fā)及功能擴(kuò)展提供了便利。
為此,引出本文所涉及的一般數(shù)據(jù)轉(zhuǎn)換為XML格式數(shù)據(jù)的問題,這里的一般數(shù)據(jù)指無結(jié)構(gòu)數(shù)據(jù)或關(guān)系數(shù)據(jù)庫中的結(jié)構(gòu)數(shù)據(jù)。在研究了已有的數(shù)據(jù)轉(zhuǎn)換模式的基礎(chǔ)上,本文提出了一種基于Schema模式的將一般數(shù)據(jù)轉(zhuǎn)換為XML文檔的方法。
1 DMB EPG系統(tǒng)
數(shù)字多媒體廣播DMB(Digital Multimedia Broadcasting)是在DAB(Digital Audio Broadcasting)基礎(chǔ)上發(fā)展起來的,DMB充分地利用了DAB能在高速移動(dòng)環(huán)境下可靠接收信號(hào)的技術(shù)優(yōu)勢(shì),在功能上將原來傳輸單一的音頻信息擴(kuò)展為數(shù)據(jù)、文字、圖形與視頻等多種載體,即多媒體對(duì)象傳輸MOT(Multimedia Object Transmitting)。DMB將數(shù)字化了的音頻、視頻信號(hào)及各種數(shù)據(jù)業(yè)務(wù)信號(hào),在數(shù)字狀態(tài)下進(jìn)行壓縮、編碼、調(diào)制、傳輸?shù)忍幚?,可?shí)現(xiàn)高質(zhì)量傳輸、很高的功率效率和頻譜效率,同時(shí)兼具多媒體特性,提供容量大、效率高、可靠性強(qiáng)的數(shù)據(jù)信息傳送。從DAB到DMB,意味著從數(shù)字音頻廣播到數(shù)字多媒體廣播的跨越,使任何數(shù)字信息都可以用一個(gè)數(shù)字化的平臺(tái)系統(tǒng)來傳遞,其系統(tǒng)可以為用戶提供包括音頻、視頻在內(nèi)的綜合視聽信息服務(wù)和娛樂享受[1]。
電子節(jié)目指南EPG用來提供包括音頻和數(shù)據(jù)業(yè)務(wù)在內(nèi)的節(jié)目列表信息,也是一種用戶選擇業(yè)務(wù)、節(jié)目及其相關(guān)內(nèi)容的機(jī)制。DMB EPG系統(tǒng)可以分為前端系統(tǒng)和后端系統(tǒng),前端系統(tǒng)就是通過廣電網(wǎng)絡(luò)發(fā)送EPG信息的發(fā)送端,后端系統(tǒng)指接收EPG信息的接收終端,主要是移動(dòng)手機(jī)。EPG系統(tǒng)的關(guān)鍵是數(shù)據(jù)格式規(guī)范,通過規(guī)范化的數(shù)據(jù)格式協(xié)議,使所有不同種類支持該協(xié)議的接收終端都能正確接收并展示信息。
2 DMB EPG系統(tǒng)的數(shù)據(jù)規(guī)范解析
DMB EPG系統(tǒng)的數(shù)據(jù)規(guī)范也就是其定義的數(shù)據(jù)類型的結(jié)構(gòu)規(guī)范,它有一套專門的標(biāo)準(zhǔn),全稱是Digital Audio Broadcasting XML Specification for DAB Electronical Programme Guide[2],它是ETSI(European Telecommunications Standard Institute)的技術(shù)規(guī)范。由于DMB是在DAB的基礎(chǔ)上發(fā)展起來的,所以其EPG標(biāo)準(zhǔn)目前仍采用DAB EPG數(shù)據(jù)規(guī)范,文中的DMB EPG也可稱為DAB EPG。
DMB EPG的數(shù)據(jù)可以分為3個(gè)主要組成部分,分別是業(yè)務(wù)數(shù)據(jù)(Service Information)、節(jié)目數(shù)據(jù)(Schedule Information)和節(jié)目的分組信息(Group Information)。一個(gè)Service Information下可以有多個(gè)ensemble,一個(gè)ensemble下可以有多個(gè)在其上播送的Service。一個(gè)Schedule information下面可以有多個(gè)節(jié)目表Schedule(描述一個(gè)或多個(gè)Service下的節(jié)目信息),一個(gè)Schedule描述多個(gè)節(jié)目,每個(gè)節(jié)目又可以包含多個(gè)節(jié)目事件(Event)。一個(gè)Group Information包含多個(gè)Group,一個(gè)Group下又可以出現(xiàn)多個(gè)Group,而且可以出現(xiàn)多層Group。這更像一個(gè)網(wǎng)狀結(jié)構(gòu),每個(gè)Group子節(jié)點(diǎn)可以隸屬于多個(gè)Group父節(jié)點(diǎn),最底層的節(jié)點(diǎn)是節(jié)目Programme。
EPG的數(shù)據(jù)是以XML文件格式存放的,它的數(shù)據(jù)結(jié)構(gòu)采用XML Schema格式定義,EPG的XML文檔模式主要有3個(gè):Common data types:epgDataTypes_11.xsd,Schedules:epgSchedule_11.xsd,Service Information:epgSI_11.xsd。
3 一般數(shù)據(jù)轉(zhuǎn)換為XML文檔的方法
3.1 基于模板的數(shù)據(jù)轉(zhuǎn)換方法
基于模板的轉(zhuǎn)換方法并非事先定義好XML文檔與其他文檔之間的映射關(guān)系,而是在XML文檔中嵌入一些可執(zhí)行的命令。這些指令在轉(zhuǎn)換過程中被系統(tǒng)識(shí)別和執(zhí)行,執(zhí)行的結(jié)果被替換到指令所在的位置,從而生成目標(biāo)XML文檔?;谀0娴臄?shù)據(jù)轉(zhuǎn)換方法的架構(gòu)圖如圖1所示。以關(guān)系數(shù)據(jù)庫數(shù)據(jù)為例,為了從數(shù)據(jù)庫中獲取節(jié)目信息,并將節(jié)目信息用XML文檔表示出來,可以定義以下的一個(gè)模板:
<? xml version=”1.0”>
<ProgrammeGroup>
<Programme>
<SelectStmt>
SELECT shortName,mediumName,longName,KeyWords From Programme
</ SelectStmt >
</Programme>
<ProgrammeGroup>
如果生成XML文檔時(shí),系統(tǒng)掃描這個(gè)模板,當(dāng)遇到<SelectStmt>指令的時(shí)候,系統(tǒng)識(shí)別出這是一個(gè)可執(zhí)行指令,于是調(diào)用指令執(zhí)行程序執(zhí)行該指令。指令執(zhí)行后的結(jié)果為:
<?xml version=”1.0”>
<ProgrammeGroup>
<Programme>
<shortName>Apple Pie</shortName>
<mediumName>Apple Pie version 2</mediumName>
<longName>Apple Pie version 2 From America</ longName>
<Keywords> Apple</Keywords>
</Programme>
</ProgrammeGroup>
3.2 基于模型的數(shù)據(jù)轉(zhuǎn)換方法
基于模型的數(shù)據(jù)轉(zhuǎn)換方法用事先定義好的數(shù)據(jù)模型來映射XML文檔結(jié)構(gòu)與其他格式數(shù)據(jù)的結(jié)構(gòu)之間的關(guān)系。以數(shù)據(jù)庫為例,一個(gè)最為簡(jiǎn)單的模型就是將文檔結(jié)構(gòu)定義為如下的模型:
<database>
<table>
<row>
<columnl>...</columnl>
<column2>...<lcolumn2>
</table>
</database>
把數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換成XML文檔時(shí),只要把一個(gè)表或一個(gè)查詢結(jié)果的數(shù)據(jù)插入到相應(yīng)位置即可;而把XML文檔數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫數(shù)據(jù)時(shí),只要把內(nèi)容插入到相應(yīng)的表中即可。另一種常用的模型是將XML文檔的結(jié)構(gòu)定義為一棵數(shù)據(jù)對(duì)象樹,根據(jù)規(guī)則將文檔的層次結(jié)構(gòu)轉(zhuǎn)換為樹狀結(jié)構(gòu)(通常是把文檔中的元素定義為樹的節(jié)點(diǎn))。這種模型對(duì)于XML文檔與面向?qū)ο髷?shù)據(jù)庫和層次數(shù)據(jù)庫之間的轉(zhuǎn)換是非常方便的。當(dāng)與關(guān)系數(shù)據(jù)庫進(jìn)行轉(zhuǎn)換時(shí),可以利用傳統(tǒng)的“對(duì)象-關(guān)系”映射技術(shù)來實(shí)現(xiàn)。圖2為基于模型的轉(zhuǎn)換方法的架構(gòu)圖。
3.3 基于Schema模式的數(shù)據(jù)轉(zhuǎn)換方法
基于模板的轉(zhuǎn)換方法的好處在于轉(zhuǎn)換的步驟比較簡(jiǎn)單,只要給出模板,就可以快速地生成相應(yīng)的XML文檔,如圖2所示。不足之處在于,它只適合將其他類型的數(shù)據(jù)轉(zhuǎn)換為XML文檔,對(duì)于反向的轉(zhuǎn)換就無能為力了。此外,基于模板的轉(zhuǎn)換方法關(guān)鍵是要生成大量合理的模板,為此,系統(tǒng)需要為用戶提供一套生成模板的工具以及相應(yīng)的指令執(zhí)行程序。對(duì)于數(shù)據(jù)庫數(shù)據(jù),可以借用數(shù)據(jù)庫管理系統(tǒng)方便地生成指令執(zhí)行程序;而文本數(shù)據(jù)和OCR數(shù)據(jù)指令執(zhí)行程序的編寫則需要大量的工作[3]。
基于模型的轉(zhuǎn)換方法由于有數(shù)據(jù)模型的支持,轉(zhuǎn)換工作相對(duì)比較簡(jiǎn)單,并且可以完成XML數(shù)據(jù)與其他格式數(shù)據(jù)之間的雙向轉(zhuǎn)換。但是模型的引入使得XML文檔的結(jié)構(gòu)受到了一些限制,即一個(gè)XML文檔必須符合模型所規(guī)定的結(jié)構(gòu),才能將XML文檔轉(zhuǎn)換成其他類型的數(shù)據(jù),而從其他類型數(shù)據(jù)轉(zhuǎn)換得到的XML文檔也具有某種結(jié)構(gòu)特點(diǎn)。所以,基于模型的轉(zhuǎn)換方法的關(guān)鍵是設(shè)計(jì)一個(gè)靈活的映射模型,使得對(duì)XML文檔結(jié)構(gòu)的限制盡量地少[3]。
由于DMB EPG的XML規(guī)范是基于Schema模式的,為此,本文在已有的數(shù)據(jù)轉(zhuǎn)換模式的基礎(chǔ)上[3-5],提出一種基于Schema模式的數(shù)據(jù)轉(zhuǎn)換方法,它本質(zhì)上也是一種基于模型的數(shù)據(jù)轉(zhuǎn)換方法,只是其文檔結(jié)構(gòu)是根據(jù)Schema模式文件來確定的?;赟chema模式的數(shù)據(jù)轉(zhuǎn)換方法的過程如下:
(1)首先根據(jù)Schema模式文件生成一棵元素節(jié)點(diǎn)樹,樹的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)Schema模式文件中每一個(gè)元素,樹的根節(jié)點(diǎn)對(duì)應(yīng)模式文件的根元素,每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)包含屬性集、子元素集以及節(jié)點(diǎn)值CDATA,這三部分都可能為空。每個(gè)屬性包含屬性名、屬性類型、屬性值,其中,Schema模式文件定義了屬性名和屬性類型。每個(gè)子元素的結(jié)構(gòu)都由模式文件定義,其中每個(gè)子節(jié)點(diǎn)的出現(xiàn)次數(shù)也都由Schema模式文件定義。復(fù)雜數(shù)據(jù)類型的節(jié)點(diǎn)一般不存在CDATA部分。
(2)利用Schema解析工具(如開源的xmlBeans)生成的原始的、模糊的元素節(jié)點(diǎn)樹,之所以稱為原始模糊樹,是因?yàn)闃涞木唧w結(jié)構(gòu)還沒有確定,只是一個(gè)樹的模糊框架。主要由以下幾個(gè)方面構(gòu)成其不確定性:
①元素出現(xiàn)的次數(shù)引起的不確定性。例如,規(guī)定出現(xiàn)0次或1次,那么該元素是否出現(xiàn)則在后面的數(shù)據(jù)插入轉(zhuǎn)換過程中確定。
?、趲讉€(gè)元素只能有一個(gè)出現(xiàn),也就是Schema中Choice選項(xiàng),最終哪個(gè)元素出現(xiàn)也由后面的數(shù)據(jù)插入轉(zhuǎn)換過程中確定。
(3)數(shù)據(jù)映射。數(shù)據(jù)的轉(zhuǎn)換必須要有相應(yīng)的數(shù)據(jù)源,這就要確定XML文檔的元素節(jié)點(diǎn)與數(shù)據(jù)源之間的映射關(guān)系。
①對(duì)于非結(jié)構(gòu)化的數(shù)據(jù),需要建立一個(gè)相應(yīng)的數(shù)據(jù)源數(shù)據(jù)與樹節(jié)點(diǎn)的映射表。
?、趯?duì)于結(jié)構(gòu)化的數(shù)據(jù)源,如關(guān)系數(shù)據(jù)庫,可以建立如下的數(shù)據(jù)映射關(guān)系:
一棵元素節(jié)點(diǎn)樹就是一個(gè)Schema所包含的元素之間的關(guān)系樹,它的構(gòu)成如下:
·元素樹的每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)Schema中的一個(gè)元素。
·每個(gè)節(jié)點(diǎn)包含以下主要信息:屬性列表、子元素列表和其他信息。
·屬性列表包含了該元素的所有屬性,每個(gè)屬性是一個(gè)三元組(屬性名、屬性值、屬性類型)。
·子元素列表包含了該元素的所有子元素,每個(gè)子元素對(duì)應(yīng)一個(gè)新的節(jié)點(diǎn)。
·除了表節(jié)點(diǎn)和內(nèi)容模式節(jié)點(diǎn)以外的節(jié)點(diǎn)稱為字段節(jié)點(diǎn),它只對(duì)應(yīng)父節(jié)點(diǎn)所對(duì)應(yīng)的表中的一個(gè)字段。
·內(nèi)容模式節(jié)點(diǎn)不對(duì)應(yīng)數(shù)據(jù)庫中的任何對(duì)象。
在實(shí)際應(yīng)用中,數(shù)據(jù)庫的相應(yīng)表結(jié)構(gòu)正是根據(jù)Schema模式文件來設(shè)計(jì)的。這也就建立了相應(yīng)的映射關(guān)系,在數(shù)據(jù)轉(zhuǎn)換過程中,只要找到數(shù)據(jù)庫數(shù)據(jù)表與樹節(jié)點(diǎn)的映射關(guān)系即可。
(4)數(shù)據(jù)轉(zhuǎn)換,XML文檔樹生成。前面已經(jīng)提過,最初的元素節(jié)點(diǎn)樹是原始的模糊樹,而最終的數(shù)據(jù)轉(zhuǎn)換過程正是XML文檔樹的生成確定過程。數(shù)據(jù)轉(zhuǎn)換在基于前面原始模糊樹的基礎(chǔ)上,根據(jù)映射關(guān)系表找到每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)表,并通過查詢獲取數(shù)據(jù)。然后將該節(jié)點(diǎn)的相應(yīng)屬性賦值,并確定子節(jié)點(diǎn)及每個(gè)子節(jié)點(diǎn)出現(xiàn)的次數(shù)。
基于Schema模式的數(shù)據(jù)轉(zhuǎn)換方法的框架如圖3所示。
4 基于Schema模式的EPG XML文檔轉(zhuǎn)換實(shí)現(xiàn)
DMB EPG 系統(tǒng)需要生成三類XML文檔,分別表示業(yè)務(wù)信息SI、節(jié)目信息PI以及組信息GI。規(guī)范這三類信息的Schema模式文件共有三個(gè),分別是epgSchedule_11.xsd、ServiceInformation_11.xsd和epgDataTypes.xsd。其中,epgSchedule_11.xsd規(guī)范了PI和GI的樹結(jié)構(gòu),ServiceInformation_11.xsd規(guī)范了SI的樹結(jié)構(gòu),而epgDataTypes.xsd定義了一些基本的數(shù)據(jù)類型。下面以生成SI的一個(gè)XML文檔為例,描述業(yè)務(wù)信息的XML文檔的轉(zhuǎn)換過程。
首先,利用XML Schema解析工具(如XMLBeans等)解析Schema模式文件ServiceInformation_11.xsd,得到一棵業(yè)務(wù)信息SI的XML文檔框架樹。根據(jù)這棵生成Schema模式樹,建立如下的數(shù)據(jù)庫表結(jié)構(gòu),建立表的過程的同時(shí)確定模式樹與數(shù)據(jù)庫數(shù)據(jù)的映射關(guān)系。圖4中的每個(gè)表對(duì)應(yīng)元素節(jié)點(diǎn)樹的每個(gè)復(fù)雜節(jié)點(diǎn),表中每個(gè)除了主鍵及部分用來關(guān)聯(lián)的外鍵外的字段對(duì)應(yīng)該節(jié)點(diǎn)的屬性或簡(jiǎn)單類型子節(jié)點(diǎn)外,在建立數(shù)據(jù)庫表的過程中,重點(diǎn)解決以下幾個(gè)問題:
(1)一種類型的節(jié)點(diǎn)可能有多種類型的父節(jié)點(diǎn),如Link類型的父節(jié)點(diǎn)有ensemble、service、CA等類型,則在對(duì)應(yīng)的數(shù)據(jù)庫表table_link中增加一個(gè)belongtoType字段標(biāo)識(shí)對(duì)應(yīng)的父節(jié)點(diǎn)的類型,增加fKey字段作為外鍵關(guān)聯(lián)其父節(jié)點(diǎn)的主鍵。
(2)一個(gè)復(fù)雜類型節(jié)點(diǎn)A的某個(gè)子節(jié)點(diǎn)B可能存在或不存在,如果該子節(jié)點(diǎn)B是簡(jiǎn)單類型,則用一個(gè)字段標(biāo)識(shí),該字段可為空,如果記錄值為空,則說明對(duì)應(yīng)文檔樹該節(jié)點(diǎn)不存在;如果該子節(jié)點(diǎn)B是復(fù)雜類型,則在數(shù)據(jù)庫對(duì)應(yīng)表中增加一個(gè)字段表示該子節(jié)點(diǎn)是否存在。并創(chuàng)建子節(jié)點(diǎn)對(duì)應(yīng)的子表,子表中設(shè)置外鍵關(guān)聯(lián)節(jié)點(diǎn)A對(duì)應(yīng)得父表的主鍵。
在完成數(shù)據(jù)庫表與模式樹節(jié)點(diǎn)的映射后,便可以訪問數(shù)據(jù)庫記錄,逐層確定各層節(jié)點(diǎn)的出現(xiàn)次數(shù),將模糊樹的框架變清晰;同時(shí)根據(jù)樹節(jié)點(diǎn)與關(guān)系數(shù)據(jù)庫表的映射,查詢對(duì)應(yīng)的數(shù)據(jù)庫表獲得數(shù)據(jù),并用數(shù)據(jù)給對(duì)應(yīng)樹節(jié)點(diǎn)屬性或CDATA賦值。文檔轉(zhuǎn)換如下:
(1)由于協(xié)議規(guī)定一個(gè)SI XML文檔只描述一個(gè)ensemble的業(yè)務(wù)信息,所以該框架樹的ensemble節(jié)點(diǎn)僅出現(xiàn)一次。每個(gè)ensemble有個(gè)ensembleKey主鍵,根據(jù)ensembleKey查詢ensemble表。關(guān)系數(shù)據(jù)向XML文檔的轉(zhuǎn)換過程是按照XML模式樹的層序進(jìn)行的,即從頂層根節(jié)點(diǎn)到底層的順序?qū)有虮闅v。
(2)對(duì)于復(fù)雜類型Type1節(jié)點(diǎn)N1,根據(jù)主鍵Key1查詢對(duì)應(yīng)的表T1,將查詢到的記錄L1的字段值賦值給模式樹對(duì)應(yīng)節(jié)點(diǎn)N1的相關(guān)屬性和簡(jiǎn)單類型子節(jié)點(diǎn),這里一個(gè)主鍵Key對(duì)應(yīng)唯一一條記錄L。然后依次查詢?cè)摫韺?duì)應(yīng)的一系列子表的外鍵。如查詢子表T2對(duì)應(yīng)節(jié)點(diǎn)類型Type2,則表T2外鍵值等于父表T1主鍵Key1的記錄L2(集合)的個(gè)數(shù)對(duì)應(yīng)節(jié)點(diǎn)N1的Type2類型子節(jié)點(diǎn)出現(xiàn)的個(gè)數(shù),然后記錄下記錄集每條記錄的主鍵。
(3)循環(huán)執(zhí)行步驟(2),直到所有的模式樹節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)庫表記錄均賦值給節(jié)點(diǎn)屬性和簡(jiǎn)單類型子節(jié)點(diǎn)或CDATA部分。便完成了關(guān)系數(shù)據(jù)庫數(shù)據(jù)向XML文檔的轉(zhuǎn)換。
在總結(jié)了一般無結(jié)構(gòu)數(shù)據(jù)或關(guān)系數(shù)據(jù)轉(zhuǎn)換為XML文檔的EPG數(shù)據(jù)轉(zhuǎn)換技術(shù)的基礎(chǔ)上,針對(duì)EPG數(shù)據(jù)規(guī)范提出了一種基于Schema模式的XML數(shù)據(jù)轉(zhuǎn)換技術(shù)。由于轉(zhuǎn)換后的XML文件根據(jù)協(xié)議需要分級(jí)成兩個(gè)XML文件,所以今后的研究就是提出一種合理的EPG XML文檔分級(jí)重構(gòu)方案。
參考文獻(xiàn)
[1] 許曉鶴.手機(jī)電視三大技術(shù)之爭(zhēng),中國(guó)市場(chǎng)該怎樣走?http://www.dvbcn.com/zhuanti/sjdsdfpl/11_01_22_61.html,2011-14.
[2] ETSI TS 102 818(2005-01) XML Specification for DAB EPG. http://www.worlddab.org/irc.aspx?sub=10,2011-04-06.
[3] 羅思群.基于XML技術(shù)的數(shù)據(jù)轉(zhuǎn)換[M].北京:中國(guó)科學(xué)院軟件研究所,2001:22-29.
[4] 王海波,耿暉,姜吉發(fā),等.基于XML的數(shù)據(jù)交換的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2001,21(4):1-2.
[5] 王勝清,何丁山,李曉明,等.一個(gè)從關(guān)系數(shù)據(jù)模型到XML文檔的翻譯器設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2001,21(7):1-4.