東進(jìn)DN背后的故事
賀建楠 2002/12/09
痛下決心做DN
2002年4月底,國(guó)內(nèi)CTI基礎(chǔ)硬件廠商?hào)|進(jìn)技術(shù)正式對(duì)外發(fā)布了DN系列產(chǎn)品,它采用CT-Bus總線結(jié)構(gòu),提供PCI和 Compact PCI兩種接口,支持H.100標(biāo)準(zhǔn)和H.110標(biāo)準(zhǔn),具有單機(jī)支持至少480路,通過“過機(jī)卡”構(gòu)建的多機(jī)CTI系統(tǒng),可支持至4096無阻塞交換等特性。此外,該產(chǎn)品還具有全面兼容Intel
Dialogic產(chǎn)品的特點(diǎn)。
東進(jìn)技術(shù)為什么要做DN?為什么要開發(fā)NADK的軟件開發(fā)平臺(tái)?為什么產(chǎn)品目標(biāo)直指Intel Dialogic?這是許多人都關(guān)注的問題。
要完全說清楚這個(gè)問題,得從東進(jìn)技術(shù)的發(fā)展談起。
1993年,東進(jìn)技術(shù)研制出中國(guó)第一片電話語音處理卡。經(jīng)過5年的不斷發(fā)展,東進(jìn)TC系列產(chǎn)品已基本成熟,包括模擬接口卡、E1接口卡、FAX資源卡等產(chǎn)品,已被廣泛地應(yīng)用于金融、證券、電信、航空、電力、交通以及公共安全等多個(gè)領(lǐng)域,并在市場(chǎng)上取得了良好的成績(jī),品牌知名度和市場(chǎng)占有率持續(xù)上升。
從1999年開始,東進(jìn)技術(shù)正式推出了其升級(jí)換代產(chǎn)品——D系列電話語音處理卡。當(dāng)時(shí),東進(jìn)D系列產(chǎn)品,采用的硬件技術(shù)都是國(guó)際上最新、最前沿的,包括DSP等元器件、算法、生產(chǎn)工藝等。東進(jìn)D系列產(chǎn)品在硬件技術(shù)、性能上,已經(jīng)和Dialogic產(chǎn)品相當(dāng),在某些方面甚至可以說已超過了Dialogic。作為中國(guó)市場(chǎng)乃至全球CTI板卡的龍頭老大,Dialogic(現(xiàn)已被Intel收購(gòu),更名為Intel
Dialogic)的市場(chǎng)份額是最大的。因此,東進(jìn)技術(shù)上下都很興奮,認(rèn)為可以從它的市場(chǎng)份額中搶下一塊來。
但一年以后,情況并沒有發(fā)生太大的變化。經(jīng)過仔細(xì)地分析、研究和客戶回訪,東進(jìn)技術(shù)發(fā)現(xiàn)問題的根源是編程方式。東進(jìn)D系列電話語音處理卡的編程方法、函數(shù)接口延續(xù)了TC系列的方式,與其保持兼容,以方便原來東進(jìn)TC系列的用戶可以平滑地過渡到D系列產(chǎn)品上。但是,這種編程方式,對(duì)于成千上萬原有的基于Dialogic卡的開發(fā)工程師來說,卻是不熟悉的。他們?nèi)绻胍褂脰|進(jìn)D系列卡,就需要重新開發(fā)一套完全不同的系統(tǒng),新系統(tǒng)還需要經(jīng)過嚴(yán)格的測(cè)試。在投入使用后,還需要同時(shí)維護(hù)Dialogic、東進(jìn)兩套系統(tǒng)的平臺(tái)軟件。這樣就抵消了東進(jìn)產(chǎn)品在價(jià)格、性能和服務(wù)上的優(yōu)勢(shì)。
就像在桌面操作系統(tǒng)上發(fā)生過的事——在微軟的Windows已經(jīng)成了事實(shí)上的標(biāo)準(zhǔn)和市場(chǎng)占有率第一的產(chǎn)品后,IBM的OS/2 雖然在技術(shù)上領(lǐng)先Windows,但在市場(chǎng)上還是失敗了。另一個(gè)案例是Linux為了適應(yīng)原Windows用戶的習(xí)慣,不斷推出類似Windows的系統(tǒng)界面、類似Office的應(yīng)用軟件等,只有這樣,才可能吸引Windows用戶來使用Linux。
正因?yàn)槿绱耍?000年,東進(jìn)技術(shù)做出了一個(gè)大膽的戰(zhàn)略決策:開發(fā)DN系列硬件產(chǎn)品,軟件平臺(tái)全面兼容Intel Dialogic,軟件平臺(tái)命名為NADK(New
Architecture Development Kits)。該項(xiàng)目在東進(jìn)技術(shù)內(nèi)部的代號(hào)為“T項(xiàng)目”(Tomorrow)。當(dāng)時(shí)的看法是,這個(gè)項(xiàng)目將決定東進(jìn)技術(shù)的明天,是繼續(xù)保持當(dāng)前的線性增長(zhǎng),還是將能夠與Dialogic進(jìn)行競(jìng)爭(zhēng)。
“T項(xiàng)目”,在東進(jìn)技術(shù)內(nèi)部屬于重中之重的項(xiàng)目,整個(gè)公司集中了優(yōu)勢(shì)的資源,參與到了這個(gè)項(xiàng)目中去。經(jīng)過項(xiàng)目組人員的辛勤工作,2001年底,東進(jìn)DN系列產(chǎn)品和NADK軟件包的Beta版終于出來了。
與Dialogic全面兼容
2001年底,東進(jìn)DN系列產(chǎn)品的Beta版出來后,很多用戶聽到該產(chǎn)品的重要特性——全面兼容Intel Dialogic產(chǎn)品,都對(duì)此表示驚訝,第一反應(yīng)都認(rèn)為不可能。那么它是如何做到這一點(diǎn)的呢?
要真正地說清楚這一點(diǎn),需要從產(chǎn)品的硬件結(jié)構(gòu)和NADK軟件體系來談。
首先,東進(jìn)DN系列板卡的硬件結(jié)構(gòu)為兼容Dialogic板卡提供了硬件基礎(chǔ)。東進(jìn)DN系列板卡采用多片功能強(qiáng)大的數(shù)字信號(hào)處理器,處理能力達(dá)400MIPS~1000MIPS;再配合高性能的DSP算法,能確保實(shí)時(shí)、高效地處理多種資源通道(包括語音、傳真、信令、會(huì)議等)的多種任務(wù)。為了對(duì)Dialogic板卡的各項(xiàng)功能提供有力的支持,因此,東進(jìn)DN系列板卡采用了國(guó)際標(biāo)準(zhǔn)CT-Bus總線結(jié)構(gòu),支持H.100、H.110標(biāo)準(zhǔn),提供4096路交換能力,可以輕松完成Dialogic
板卡SC-BUS 1024時(shí)隙交換功能。
其次,從軟件方面看,東進(jìn)DN系列產(chǎn)品采用合理、高效和穩(wěn)定的NADK體系結(jié)構(gòu),完全運(yùn)用模塊化設(shè)計(jì)理念,全面兼容Dialogic的函數(shù)接口,支持Dialogic的7種編程接口,支持事件驅(qū)動(dòng),支持多進(jìn)程和多線程的編程方式,使開發(fā)更靈活。
NADK整個(gè)體系分應(yīng)用層、驅(qū)動(dòng)層和硬件功能等三層。
應(yīng)用層處于NADK的最上層,主要功能是為應(yīng)用程序提供函數(shù)API接口,把驅(qū)動(dòng)產(chǎn)生的事件通過SRL函數(shù)接口返回給應(yīng)用程序,管理在多個(gè)線程中的函數(shù)調(diào)用,同時(shí)與驅(qū)動(dòng)層進(jìn)行進(jìn)程間的通信,向驅(qū)動(dòng)層發(fā)送函數(shù)操作消息,接收返回結(jié)果。
驅(qū)動(dòng)層處于NADK的中間層,主要功能是統(tǒng)一管理全局的設(shè)備,建立各應(yīng)用進(jìn)程打開的設(shè)備和板卡上的邏輯設(shè)備的映射關(guān)系,將應(yīng)用進(jìn)程打開的設(shè)備標(biāo)識(shí)轉(zhuǎn)換成板卡上的邏輯設(shè)備標(biāo)識(shí),通過硬件驅(qū)動(dòng),將操作傳送到對(duì)應(yīng)板卡的嵌入系統(tǒng)中;同時(shí),將板卡產(chǎn)生的消息(如設(shè)備事件、操作結(jié)果)經(jīng)過設(shè)備映射表轉(zhuǎn)換,通過通信傳送模塊返回到指定的應(yīng)用進(jìn)程。
硬件功能層處于NADK的最底層,也是實(shí)現(xiàn)各種操作的功能層。各個(gè)功能模塊都在板卡的嵌入式系統(tǒng)中運(yùn)行,接收驅(qū)動(dòng)的指令,完成對(duì)應(yīng)操作,返回事件和結(jié)果。由于有驅(qū)動(dòng)層的全局管理的功能,硬件層完全不需知道有多少個(gè)應(yīng)用在使用它的服務(wù),只要把各邏輯設(shè)備的操作結(jié)果返回到驅(qū)動(dòng)層即可。由于主要的運(yùn)算和操作都在板卡上進(jìn)行,這樣可有效降低系統(tǒng)的CPU占用時(shí)間,提高整機(jī)的處理密度和穩(wěn)定性。
這樣,無論是在硬件的基礎(chǔ),還是軟件的體系結(jié)構(gòu)上,皆為東進(jìn)DN系列產(chǎn)品與Intel Dialogic板卡的兼容提供有力保證。
移植東進(jìn)DN的快樂之一
我已談過,基于DSP設(shè)計(jì)的硬件框架為東進(jìn)DN兼容Dialogic產(chǎn)品提供了可能性。從個(gè)人來說,作為“T項(xiàng)目”的工程師,在研發(fā)過程中,我與伙伴們都體會(huì)到了逐步實(shí)現(xiàn)既定目標(biāo)的喜悅。
系統(tǒng)移植會(huì)有快樂?是的,將東進(jìn)DN移植到為Dialogic產(chǎn)品設(shè)計(jì)的系統(tǒng)中就這樣。為什么?答案就是:簡(jiǎn)單。
東進(jìn)DN移植過程只有三步——首先,從工程中刪除Dialogic的*.lib庫文件;其次,把NADK的*.lib文件添加到工程中;最后,重新編譯應(yīng)用工程。當(dāng)然,前提是:請(qǐng)先確認(rèn)你的機(jī)器中已經(jīng)安裝了東進(jìn)DN產(chǎn)品和NADK新軟件開發(fā)包!
NADK是和Dialogic SR5.0版本相兼容的軟件開發(fā)平臺(tái),它具有:提供與Dialogic完全一致的函數(shù)接口;兼容Dialogic的各種編程模式,提供靈活的同步、異步編程模式;支持多線程和事件驅(qū)動(dòng);程序執(zhí)行效率與Dialogic相比更勝一籌;支持vox/pcm/wav等多種語音格式;支持Win2000/WinNT操作系統(tǒng)等特點(diǎn)。
NADK支持Dialogic SR5.0所支持的所有七種編程模式,包括:同步模式、異步模式、擴(kuò)展異步模式、同步SRL回調(diào)模式、異步SRL回調(diào)模式、異步windows回調(diào)模式、與Win32同步模式。最新的NADK版本已能夠支持msi_(坐席)、dx_(語音)、dt_(數(shù)字中繼)、cc_(ISDN)、fx_(傳真)、dcb_(會(huì)議)、sr_(SRL事件管理)等函數(shù)。這些函數(shù)都提供與Dialogic的函數(shù)接口一致,并且兼容的編程模式。
此外,NADK的最新版本,都會(huì)及時(shí)在東進(jìn)網(wǎng)站上發(fā)布,以供用戶更新。需要說明的是,NADK不支持Dialogic SR5.0中的部分函數(shù)。如:只支持ISDN中CTR4協(xié)議,因?yàn)槟壳皣?guó)內(nèi)ISDN只使用該協(xié)議,而與其他協(xié)議相關(guān)的函數(shù)尚未支持。
對(duì)CTI工程師來說,還有一件事需要關(guān)心:東進(jìn)DN都支持哪些語音格式?讓人高興的是,東進(jìn)DN支持包括vox、pcm、wav等在內(nèi)的多種語音格式。比如,OKI
24Kbps和32Kbps ADPCM(即:Dialogic采用的VOX格式);48Kbps 和64Kbps A律、μ律編碼的 G.711 PCM;64Kbps、48Kbps線性或A律、μ律PCM編碼的WAV格式;32Kbps、24Kbps
OKI ADPCM編碼的WAV格式等。
這樣,原來所使用的大量聲音文件,可以不做任何改變而直接在東進(jìn)DN上使用,免去了煩瑣的語音格式轉(zhuǎn)換工作,并為工程應(yīng)用提供了多種語音格式選擇。
當(dāng)然,東進(jìn)DN設(shè)計(jì)的初衷并不僅僅只是和Dialogic兼容,還希望能“青出于藍(lán)而勝于藍(lán)”,這已經(jīng)從部分指標(biāo)上體現(xiàn)出來了。如:通過測(cè)試,DN卡中國(guó)一號(hào)信令接續(xù)速度比Dialogic快20%。
從軟件層面看是這樣,應(yīng)用層面上看也同樣如此——底層的板卡和驅(qū)動(dòng),對(duì)于應(yīng)用層面來說是透明的,在硬件上不論使用Dialogic產(chǎn)品,還是東進(jìn)DN系列產(chǎn)品,對(duì)于應(yīng)用程序來說是沒有區(qū)別的。所以,CTI工程師們要完成東進(jìn)DN的移植就是一件很愉快的事情了。不但免去了熟悉另外一種卡、另外一種編程模式的痛苦,也免去了改寫程序的巨大痛苦(相信不少人都有過類似的經(jīng)歷)。對(duì)于熟悉Dialogic產(chǎn)品的工程師來說,用東進(jìn)DN系列產(chǎn)品,做編程和開發(fā)工作,就如原來一樣熟悉而簡(jiǎn)單,并且在成本、性能、技術(shù)服務(wù)等方面,還有獨(dú)特的吸引力。何樂而不為呢?
計(jì)算機(jī)世界網(wǎng)(www.ccw.com.cn)
相關(guān)鏈接: