專利名稱::面向反應(yīng)的電信系統(tǒng)接口的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明通常涉及綜合不同的電信系統(tǒng)和業(yè)務(wù)的技術(shù)。特別地,本發(fā)明涉及一個標(biāo)準(zhǔn)接口,它使得在一個業(yè)務(wù)生成環(huán)境(SCE)中產(chǎn)生的電信業(yè)務(wù)應(yīng)用在許多不同的執(zhí)行環(huán)境(EE)中。電信業(yè)務(wù)可通過執(zhí)行在諸如電話網(wǎng)絡(luò)交換機(jī)和計算機(jī)的電信硬件中的機(jī)器碼來提供。執(zhí)行機(jī)器碼的電信硬件通常指執(zhí)行環(huán)境(EE)。比如說,EE可以是發(fā)送數(shù)據(jù)通信網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)信息包或引導(dǎo)電話網(wǎng)絡(luò)交換系統(tǒng)中的呼叫。一組EE可以給網(wǎng)絡(luò)用戶提供交互業(yè)務(wù),和通過網(wǎng)絡(luò),發(fā)送數(shù)據(jù)、文件及圖象。示范性的EE包括業(yè)務(wù)切換處理器(SSP),業(yè)務(wù)節(jié)點(SN),智能外設(shè)(IP)和業(yè)務(wù)控制點(SCP)。它們都可以是一個智能網(wǎng)絡(luò)(IN)體系的組成部分。關(guān)于IN更詳細(xì)的情況,比如說可在Proc.oftheInternationalCouncilforComputerCommunicationIntelligeatNetworksConference,May4-6,1992的第430-440頁,O.Miauno等人的文獻(xiàn)“ServiceSpecificationDescriptionandServicesLogicProgramGenerationforIntelligentNetworks”中發(fā)現(xiàn),該文獻(xiàn)在這里用作對比文件。當(dāng)前情況下,在每個EE中所提供的電信業(yè)務(wù)通常都是在高級編程環(huán)境中,使用特定的開發(fā)工具編程的。高級編程環(huán)境通常指業(yè)務(wù)生成環(huán)境(SCE)。示例性的開發(fā)工具包括決策圖編輯程序,擴(kuò)展卡,計算機(jī)輔助系統(tǒng)工程(CASE)工具和有限態(tài)自動機(jī)(FSM)編輯程序。一種示例性類型的FSM編輯程序使用標(biāo)準(zhǔn)CCITT業(yè)務(wù)規(guī)范描述語言(SDL),它以圖形格式表示電信業(yè)務(wù),便于業(yè)務(wù)的開發(fā)。要在每個EE中提供的業(yè)務(wù)通常是使用一個專用SCE開發(fā)的,該專用SCE在計算機(jī)工作站上運行,并且提供一套基于特定用戶規(guī)范的業(yè)務(wù)開發(fā)工具。SCE通常以由賣方開發(fā)的合適格式產(chǎn)生業(yè)務(wù)描述文件。然后,合適業(yè)務(wù)描述文件被轉(zhuǎn)換為低級碼,該低級碼適用于指導(dǎo)一個EE去提供所希望的業(yè)務(wù),因此,通常只能用相同或相關(guān)賣方的相應(yīng)的EE。當(dāng)前實際應(yīng)用中SCE和EE的深度耦合存在很多問題。一個問題是,在一個SCE開發(fā)的網(wǎng)絡(luò)業(yè)務(wù)通常只能應(yīng)用在一個相應(yīng)的EE,不能在不同的EE中再用。另一個相關(guān)問題是,一個賣方SCE和EE通常不能與其他賣方的相接口。了提供一個當(dāng)前存在的網(wǎng)絡(luò)業(yè)務(wù)和許多不同EE的接口,因此需要重新設(shè)計現(xiàn)存業(yè)務(wù)以實現(xiàn)該接口。由于這些問題,網(wǎng)絡(luò)提供者,如本地交換機(jī)公司(LEC),長途公司和國外郵政、電話和電報公司(PTT)都有困難以即時可靠的方式提供電信業(yè)務(wù)。這些問題比如在Proc.oftheInternationalCouncilforComputerCommunciationIntelligentNetworksConference,May4-6,1992第162-174頁,D.SinghandD.Garrison的文獻(xiàn)“RequirementsforSetviceCreationPlatforminanOpenSystemsEnviroment”中有描述。上述文獻(xiàn)在這里用作對比文件。幾種不同的解決SCE-EE接口問題的方法已被發(fā)現(xiàn)。一種可能的方法涉及使用一個通用的面向應(yīng)用的語言(UAOL)設(shè)計編程所有SCE中的業(yè)務(wù)。一個相關(guān)的方法涉及使用一個標(biāo)準(zhǔn)化的業(yè)務(wù)執(zhí)行處理器(SEP)。在Proc.oftheInternationalCouncilforComputerCommunicationIntelligentNetworksConference,May4-6,1992的第441-450頁,S.Esaki等人的文獻(xiàn)“ServiceLogicExecutionofINMulti-VendorEnviroment-IntroductionofSLPExecutionProcessor”中公開了一個示范性標(biāo)準(zhǔn)SEP。該文獻(xiàn)在這里用作對比文件。雖然如果電信工業(yè)最初建立在一個標(biāo)準(zhǔn)的UAOL或SEP上,上述這些方法是可施行的,但這種標(biāo)準(zhǔn)當(dāng)前并沒被廣泛使用。另外,能夠適用于多種業(yè)務(wù)應(yīng)用的UAOL通常是一個復(fù)雜的高級語言,因此不容易使用。目前要實現(xiàn)UAOL或標(biāo)準(zhǔn)SEP方法可能將需要重新設(shè)計使用非標(biāo)準(zhǔn)語言或處理器編程的網(wǎng)絡(luò)業(yè)務(wù)。另一種接口能在不同的SCE和EE之間轉(zhuǎn)換目標(biāo)碼。目標(biāo)碼的轉(zhuǎn)換通常涉及把源目標(biāo)碼轉(zhuǎn)換為通用的匯編語言,然后以匯編語言產(chǎn)生最終的目標(biāo)碼。目標(biāo)碼轉(zhuǎn)換對于業(yè)務(wù)使用者具有透明的優(yōu)點,并且具有特定EE要求的用于生成低級碼的有效裝置。但是,這種方法在應(yīng)用中不容易于改變,并且不能很好地適用于運行時解釋的程序。在現(xiàn)有技術(shù)電信系統(tǒng)接口中所使用的技術(shù)是交叉編譯。通常,交叉編譯涉及設(shè)計一個不同的編譯器,用于有每個SCE和每個EE之間轉(zhuǎn)換代碼。對于每個接口使用分離的編譯器,任何SCE中開發(fā)的業(yè)務(wù)可以在任何其它的EE上使用,因此避免了上述很多問題。但是,這種方法在應(yīng)用上非常昂貴,它包括大量的SCE和EE。編譯器開發(fā)的造價通常是SCE和EE數(shù)量的二次方。例如,如果電信系統(tǒng)包括m個SCE和n個EE,交叉編譯方法通常需要開發(fā)和支持m×n個編譯器。當(dāng)前使用在高級編程語言中的接口技術(shù)是基于公用中間語言的。這種在1961年使用的方法用以開發(fā)一種通用計算機(jī)有向語言(UNCOL)。參看1961年P(guān)roc.WesternJointComp.Conf.第371-377頁,To.Steel的文獻(xiàn)“AFirstVersionofUNCOL”。公用中間語言通常包括n個前端,每個前端把編程語言中的高級碼轉(zhuǎn)換為中間語言;它還包括m個后端,每個后端把公用中間語言的程序轉(zhuǎn)換為特定的機(jī)器語言或目標(biāo)碼。結(jié)果,只需要n+m個編譯,就可把n個SCE的每一個與m個EE的每一個連接起來,而不需要交叉編譯方法中使用的n×m編譯器。例如,參看CommunicationsoftheACM,Vol,26,No.9,September1983中,A.Tanenbaum等人的文獻(xiàn)“APracticalTodkitforMakingPortableCompilers”(后面稱“Tanenbaum”)。一個相似的方法被用在美國專利4,667,290號的文章“CompilersUsingAUnirersalIntermediateLaugnage”(后面稱“Goss”)中,該專利被授予Goss等人。但現(xiàn)存的公用中間語言存在許多突出的問題,因此,在電信業(yè)務(wù)應(yīng)用中的使用受到限制。Tanenbaum方法的一個主要問題是,當(dāng)把接口輸入碼轉(zhuǎn)換為中間語言時,將丟失原始輸入信息。原始輸入信息的丟失,是因為Tanenbaum使用了基本上是用于簡單堆棧機(jī)的匯編語言。Goss專利主要是指導(dǎo)把增強(qiáng)型的或過程型格式的高級編程語言與不同數(shù)據(jù)處理器接口起來。Goss使用帶有4個操作字段的“quad”作為中間語言的基本碼結(jié)構(gòu)。參見Goss的第6行第5欄到第38行第6欄。這種不靈活結(jié)構(gòu)不能充分地表示特定的SCE輸出,如非過程型編程碼。另外,Goss的中間語言是按照高級編程語言碼的自上而下分析而設(shè)計的。參見Goss的第34-36行的第5欄。因此,Goss方法不能很好地適用于產(chǎn)生代表典型SCE輸出碼的中間碼。例如,產(chǎn)生于SCE輸出碼的Goss中間碼不能完全地保存SCE輸出碼的全部信息,從而不能使有效中間碼最優(yōu)化。因此,Goss專利不能提出一個合適的中間語言結(jié)構(gòu)用于接口,比如電信業(yè)務(wù)的SCE和EE。從上面可知,需要一個有效且靈活的電信系統(tǒng)接口,它能使在不同SCE開發(fā)的業(yè)務(wù)應(yīng)用在不同的EE中,而不需要SCE和EE之間的分離的接口,并且沒有現(xiàn)存中間語言技術(shù)中的問題。本發(fā)明提供了在電信系統(tǒng)中接口不同SCE和EE的一種方法和裝置。本發(fā)明的方法包括如下步驟定義一組中間碼操作,該中間碼操作適于表示在選擇的SCE中開發(fā)的電信業(yè)務(wù)。分析從一個選擇的SCE中的輸出碼,用以形成一個具有多個節(jié)點的分析樹,所述分析樹表示在SCE中開發(fā)的一種電信業(yè)條。從該套中間碼操作和分析樹中產(chǎn)生表示分析樹的節(jié)點的中間碼,從而中間碼就可基本上保存包含在SCE輸出碼內(nèi)的所有信息;以及從中間碼產(chǎn)生用于每個EE的目標(biāo)碼,從而在選擇的SCE中開發(fā)的電信業(yè)務(wù)可提供給每個EE。按照本發(fā)明的一個方面,提供了一個電信系統(tǒng)接口,它包括要與多個業(yè)務(wù)EE接口的至少一個SCE;分析SCE的輸出碼,以形成分析樹的分析程序,該分析樹表示在SCE中開發(fā)的電信業(yè)務(wù),產(chǎn)生表示分析樹節(jié)點的中間碼的中間碼生成器,從而使SCE輸出碼中包含的基本上所有的信息保存在中間碼中;以及目標(biāo)碼發(fā)生器,用于從中間碼中生成用于每個EE的目標(biāo)碼,從而在SCE中開發(fā)的電信業(yè)務(wù)可以提供給每個EE。按照本發(fā)明的另一方面,通過使用一行中間碼-這里指字節(jié)組,中間碼基本上保存了包含在SCE輸出碼的所有信息,用以表示SCE輸出碼分析樹的每個節(jié)點。因此,本發(fā)明的電信系統(tǒng)接口包括一種中間語言,它能表示諸如SCE輸出碼分析樹的語句和說明節(jié)點。因此,為產(chǎn)生一個最優(yōu)化中間碼提供了足夠的信息。作為本發(fā)明的一個進(jìn)一步特征,在特定的SCE上開發(fā)的電信業(yè)務(wù)可以使用在多種不同的EE中。SCE和EE之間的深度耦合被消除,因此不再需要設(shè)計一個位于SCE和EE間的分離的接口。業(yè)務(wù)接口設(shè)計、操作和維持費只是SCE和EE數(shù)量的線性函數(shù),而不是當(dāng)前使用的交叉編譯方法的二次方函數(shù)。作為本發(fā)明的另一個特征,所提供的系統(tǒng)接口在SCE上沒有操作的限制,并且不使用特有的格式,所以SCE和EE的選擇可與賣方無關(guān)。該接口可允許賣方設(shè)計一個單一業(yè)務(wù),它能在一組不同的EE上并行使用,并且允許賣方有效地維護(hù)和更新他們的業(yè)務(wù)。作為本發(fā)明的另一個附加特征,提供一個接口可以在不同的EE上重新使用當(dāng)前存在的業(yè)務(wù),而不用重新設(shè)計或改變現(xiàn)存業(yè)務(wù)??梢栽O(shè)計中間碼以適應(yīng)多個當(dāng)前使用的SCE輸出語言。于是,業(yè)務(wù)庫可被維護(hù)。因此,比如說當(dāng)開發(fā)不同的EE時,不需重新設(shè)計業(yè)務(wù)。作為本發(fā)明的進(jìn)一步特征,提供了一個面向應(yīng)用的程序語言(AOPL),它包括能很好地表示多個不同SCE輸出碼的中間碼結(jié)構(gòu)。依照本發(fā)明的中間碼結(jié)構(gòu)是基于一個靈活A(yù)OPL碼行,這里指字節(jié)組,它有多個可變化的字段。比如說,該結(jié)構(gòu)比上面所述的通常需要4個字段的Goss四元組結(jié)構(gòu)更靈活。本發(fā)明的字節(jié)組結(jié)構(gòu)特別適于表示SCE輸出碼的分析樹,它經(jīng)常用非過程型的程序語言。本發(fā)明因此比現(xiàn)存中間語言編譯器提供了更多的優(yōu)點,比如提高了中間碼的最優(yōu)化以及在多種EE中更有效的生成目標(biāo)碼。上述特征以及附加特征和本發(fā)明的優(yōu)點,通過參照下面詳細(xì)描述以及附圖將變得更加明顯。圖1是按照本發(fā)明電信系統(tǒng)的示例性框圖。圖2是按照本發(fā)明電信系統(tǒng)接口的更詳細(xì)框圖。圖3是按照本發(fā)明的,用以說明在電信系統(tǒng)接口內(nèi)一組示例性碼處理步驟的框圖。圖4是在SDL圖形表示法中開發(fā)的部分示例性業(yè)務(wù)應(yīng)用的流程圖。圖5到圖8說明用于示例性電子表決業(yè)務(wù)應(yīng)用中的SDL圖形表示法。按照本發(fā)明,它可以與多個不同EE接口。本發(fā)明提供了一種在電信系統(tǒng)中用于把不同的SCE和EE進(jìn)行接口的方法和裝置。盡管下面的描述說明了電信系統(tǒng)接口在特定的SCE和EE中的使用,但應(yīng)明白本發(fā)明還可以應(yīng)用到更多種其它電信系統(tǒng)中。而且,盡管這里使用多個簡單的編程設(shè)計語言為例用以說明目的,但應(yīng)明白本發(fā)明特別適用于電信系統(tǒng)應(yīng)用。圖1給出了按照本發(fā)明的電信系統(tǒng)的方框圖。該示例性系統(tǒng)包括一個具有多種不同的開發(fā)工具的業(yè)務(wù)生成環(huán)境(SCE)10。在SCE10中的示例性開發(fā)工具包括一個決策圖編輯程序12,一個擴(kuò)展卡工具14和一個有限態(tài)自動機(jī)(FSM)編輯程序16。決策圖編輯程序和FSM編輯程序通常被認(rèn)為是圖形編輯程序。SCE也可以包括其它類型的開發(fā)工具,如計算機(jī)輔助系統(tǒng)工程(CASE)工具。通常,不同系統(tǒng)的賣方可以使用每一個開發(fā)工具12、14和16用以開發(fā)電信業(yè)務(wù)。使用不同的開發(fā)工具在SCE10中開發(fā)的電信業(yè)務(wù)在一組不同的執(zhí)行環(huán)境(EE)20中被執(zhí)行。在EE組20中示例性的EE包括一個業(yè)務(wù)交換處理器(SSP)22,一個業(yè)務(wù)控制處理器(SCP)24和一個信息外設(shè)(IP)26。通常,SCP24附有一個業(yè)務(wù)結(jié)點(SN)或與其組合一起來使用。IP26可以是比如一臺計算機(jī),一臺傳真機(jī),一個視頻終端或是一個文字到語音的轉(zhuǎn)換機(jī)。通常EE22,24和26被作為智能網(wǎng)絡(luò)(IN)單元。關(guān)于IN的其它詳細(xì)情況,可以在AT&TTechnicalJournal,Vol.70,Nos.3-4,Summer1991中,M.Morgan等人的“ServiceCreationTechnologiesfortheInteligentNetwork”文章和AT&TTechnicalJournal,Vol.70,No.5,Summer1991中,G.Wyatt等人的“TheEvolutionofGlobalIntelligentNetworkArchitecture”文章中發(fā)現(xiàn)。上述兩文章都在這里用作對比文獻(xiàn)。在現(xiàn)有的電信系統(tǒng)中,通常一個分離的接口用以把在SCE10中使用每個開發(fā)工具12,14和16開發(fā)的業(yè)務(wù)與每個EE22,24和26相結(jié)合在一起。例如,決策圖程序12可以設(shè)計成具有一個接口以允許該程序只用SSP22運行。在當(dāng)前系統(tǒng)接口方法中,比如說,把一個電信系統(tǒng)的賣方的決策圖程序12與另一個賣方設(shè)計的SCP24一起使用是不可能的。本發(fā)明部分通過使用一個基于面向應(yīng)用的程序語言(AOPL)的系統(tǒng)接口30,從而避免了現(xiàn)有技術(shù)的這些問題。本發(fā)明的AOPL是以這樣一種方式構(gòu)成的,它能容易地把由使用不同的SCE開發(fā)工具產(chǎn)生的業(yè)務(wù)與多種EE綜合在一起。這里所使用的術(shù)語“AOPL”是指以合適方式定義的公用中間代碼的一種類型,用以表示SCE輸出碼分析樹。圖2是本發(fā)明電信系統(tǒng)接口30的一個示例性實施例。接口30包括一個SCE側(cè)42和一個EE側(cè)44,該接口用以把一個SCE與一個或多個EE互連。SCE側(cè)42可以表示,比如說圖1所示的決策圖程序12的輸出,而EE側(cè)44可以表示SSP22的輸入。決策圖程序12還可以被當(dāng)作位于SCE側(cè)42內(nèi)的一個圖形用戶接口(GUI)。通過AOPL46定義的一個公用中間語言,接口30的SCE側(cè)42和EE側(cè)44被互連。通常,SCE側(cè)42可以根據(jù)在從一個SCE的線路48上接收的SCE輸出碼,從AOPL碼的形式生成一個業(yè)務(wù)說明文件。從SCE輸出碼到AOPL碼的轉(zhuǎn)換是在分析程序50中完成的。其中分析程序50目前處在接口30的SCE側(cè)42內(nèi)。分析程序50把決策圖程序12的高級SCE輸出碼轉(zhuǎn)換為一個合適的AOPL碼。然后,通過接口30把AOPL碼傳輸?shù)浇涌诘腅E側(cè)44。在EE側(cè)44,AOPL碼驅(qū)動碼發(fā)生器52,該碼發(fā)生器把AOPL碼轉(zhuǎn)換成一個希望的目標(biāo)碼。然后,通過連線54,把目標(biāo)碼提供給一個合適的EE。一般來說,可以使用不同的分析程序50把特定SCE的操作碼轉(zhuǎn)換為公用中間AOPL碼。同樣,可以使用不同碼發(fā)生器52來接收AOPL碼。并為每個EE產(chǎn)生一個合適的目標(biāo)碼。因此,接口30的SCE側(cè)42和EE側(cè)44可以在SCE和EE內(nèi)實現(xiàn),而不是在,例如說一個獨立的接口單元內(nèi)。但是,現(xiàn)存的SCE和EE中,希望在一個獨立的接口單元內(nèi)包括分析和碼生成功能。通過使用系統(tǒng)接口30,在SCE10中用每個開發(fā)工具12,14和16形成的業(yè)務(wù),可以與每個EE22,24和26接口起來,如圖1所示。此外,通過分析程序50,AOPL46和碼發(fā)生器52,可以把先前以高級語言SCE開發(fā)的現(xiàn)存業(yè)務(wù)轉(zhuǎn)換為特定的EE的希望目標(biāo)碼。用這種方式,在不同SCE中產(chǎn)生的電信業(yè)務(wù)就可以在多種不同的EE中被再使用,而不需要重新設(shè)計SCE?,F(xiàn)存的電信業(yè)務(wù),如那些已在特定的SCE中開發(fā),用以在電話網(wǎng)絡(luò)SSP和SCP中執(zhí)行的業(yè)務(wù),可使用一個合適的分析程序50,通過簡單地把特殊SCE的業(yè)務(wù)說明文件轉(zhuǎn)換為AOPL碼進(jìn)行重新使用。圖2所示的AOPL46將在下文中更詳細(xì)地描述。本發(fā)明的電信系統(tǒng)接口使用一個面向應(yīng)用的中間語言-AO-PL,其結(jié)構(gòu)特別適合于某些電信應(yīng)用??偟脕碚f,AOPL是有效描述SCE輸出碼分析樹的語言。在本領(lǐng)域中,分析編程碼以產(chǎn)生分析樹是已公知的。例如在Addison-Wesley,March,1988的第40-42頁,A.Aho等人的文章“Compilers,Principles,Techniques,andTools”中所描述的。上述文章在這里作為對比文件。本發(fā)明的接口使用一個中間碼結(jié)構(gòu),它表示給定的電信業(yè)務(wù)的SCE輸出碼分析樹的節(jié)點。通過表示分析樹節(jié)點,中間碼基本上保存了在SCE輸出碼內(nèi)的所有信息。SCE輸出碼中的術(shù)語“基本上所有”是指那些通常在輸出碼分析樹中所發(fā)現(xiàn)的信息,比如象SCE輸出碼的結(jié)構(gòu),說明、語句和運行等信息。對于一個給定的接口,可以選擇多種不同的SCE,然后限定一組適于代表在一個所選擇的環(huán)境中開發(fā)的電信業(yè)務(wù)的中間碼操作。大多數(shù)SCE可通過限定一組合適的中間碼操作進(jìn)行調(diào)節(jié)。下面將給出幾個中間碼操作的例子。本發(fā)明的AOPL包括一個通用語法,結(jié)構(gòu)和設(shè)計指南。盡管在給定應(yīng)用中使用的AOPL的特定實施例通常將按照被接口的SCE和EE而變化,但語言的通用結(jié)構(gòu)可以如下描述。一個示例性的AOPL文件通常包括許多不同的碼行,在這里指字節(jié)組,它代表SCE輸出碼的分析樹。每個AOPL字節(jié)組都被分號分開,并且包括許多由逗號分隔的不同字段。一個示例性的AOPL字節(jié)組包括三個字段,它們分別相應(yīng)于字節(jié)組的標(biāo)號、類型和操作。標(biāo)號字段包括除逗號和分號以外的任何可印刷的字符序列,并且提供方便的方法用以標(biāo)識特定的字節(jié)組。按照本發(fā)明的類型字段,既可以是P-node,也可以是S-node。該類型字段用以表明由特定的字節(jié)組表示的分析樹節(jié)點的類型。P-node類型字節(jié)組可以包括說明、表達(dá)式和語句,而S-node型字節(jié)組常包括較長的程序序列,比如數(shù)據(jù)結(jié)構(gòu)。AOPL字節(jié)組的操作字段包括一個操作符,它可以表明如在SCE輸出節(jié)點分析樹的一個節(jié)點的操作。操作字段還可以指示在那種操作中使用的操作數(shù)。示例性的AOPL操作符例如可以包括LEAF、VARREF、CONSTREF和SEQUENCE。一個AOPL字節(jié)組還可以包括許多附加的字段。例如,字節(jié)組可以包括在操作字段內(nèi)標(biāo)識的每個操作符的附加字段。這些附加字段這里稱為操作數(shù)字段。操作數(shù)字段可根據(jù)標(biāo)號來標(biāo)識,比如與SCE輸出碼分析樹的其它節(jié)點所對應(yīng)的不同字節(jié)組。操作數(shù)字段代表由操作符字段上規(guī)定的操作符運行的其它字節(jié)組。可在特定AOPL字節(jié)組上包括的其它附加字段是名稱和數(shù)值屬性字段。名稱屬性字段通常包括一個字符串,它對應(yīng)于SCE輸出碼的一個記號。數(shù)值屬性字段通常包括一個整數(shù)值,指示,比如在字節(jié)組中運行的數(shù)據(jù)的大小和地址。本發(fā)明的AOPL識別三個不同種類的記號。這些記號是在SCE輸出碼中具有集合意義的字符序列。由AOPL識別的記號包括標(biāo)識符、文字和分隔符。標(biāo)識符可以是字母、數(shù)字、和/或特殊符號的任意序列。標(biāo)識符的第一字符可以是除了數(shù)字以外的任何字符。在上述操作符字段內(nèi)使用的操作符被留作AOPL關(guān)鍵字,因此不能作為在SCE輸出碼中的標(biāo)識符。文字可以是兩種類型之一,即字符串(也被稱作串文字)或整(integer)文字。被本發(fā)明AOPL識別的第三類記號是分隔符。分隔符可以包括一些的字符,如“;”、“,”、“(”和“)”。AOPL以SCE的高級語言或輸出碼標(biāo)識這些記號,并且產(chǎn)生代表記號的功能性互連的分析樹。通過取出與任何特定記號相關(guān)的最長字符串,以SCE輸出碼標(biāo)識這些記號。SCE輸出碼的某些部分,稱為“白色空間”,是不作為記號的。這些白色空間包括空格、制表、換行和換頁。在下面語言模塊中總結(jié)了上面所描述的AOPL的語法。<AOPL-program>:<AOPL-node>|<AOPL-program><AOPL-node><AOPL-node>:<node-head><node-tail>;<node-head>:<label>,<node-type>,<opcode>,<node-list><label>:identifier<node-type>:P_node|S_node<opcode>:<AOPL_opcode>(integer-literal)<AOPL_opcode>:keyword<node-list>:<label>|<node-list>,<label><node-tail>:empty|<attribute-list><attribute-list>:<list-entry>|<attribute-list>,<list-entry><list-entry>:<name-attribute>|<value-attribute><name-attribute>:string-literal<value-attribute>:integer-literal在上述語言模塊中,符號“<>”包圍所示的每個示例性字節(jié)組的某些元素,并且符號“|”表示邏輯“或”操作符。本發(fā)明的AOPL使用一個簡單的C程序加以說明。但是,必須再一次強(qiáng)調(diào),AOPL結(jié)構(gòu)特別適合于電信系統(tǒng)應(yīng)用,并且這里顯示用以說明AOPL的示例性C程序主要是為了說明目的。在這個C語言程序例子中,SCE10中使用的一個開發(fā)工具提供了如下格式輸出碼main(){intX;intY;y=2;x=y*y+2;printf("%d",x);}使用如上面描述的本發(fā)明的AOPL結(jié)構(gòu),上面所示的示例性C程序可以中間AOPL碼的形式如下表示main,P_node,SEQUENCE(5),x_decl,y_decl,stm1,stm2,stm3;x_decl,P_node,INTDECL(1),x_var;x_var,P_node,VARREF(2),x_leaf,x_decl;x_leaf,P_node,LEAF(1),int,'x';y_decl,P_node,INTDECL(1),y_var;y_var,P_node,VARREF(2),y_leaf,y_decl;y_leaf,P_node,LEAF(1),int,'y';stm1,P_node,ASSIGNMENT(2),y_var,2_const;2_const,P_node,CONSTREF(1),2_leaf;2_leaf,P_node,LEAF(1),int,'2';stm2,P_node,ASSIGNMENT(2),x_var,r_stm2;r_stm2,P_node,PLUS(2),expr1,2_const;expr1,P_node,MULT(2),y_var,y_var;stm3,P_node,FUNCTION(2),printf,printf_arg;printf,P_node,LEAF(1),int,'printf';printf_arg,P_node,ARG_LIST(2),arg1,x_var;arg1,P_node,CONSTREF(1),%f_leaf;%f_leaf,P_node,LEAF(1),string,'%d';在上面的AOPL碼中,字節(jié)組“main”表示示例性C程序的分析樹的根節(jié)點。AOPL碼還包括許多不同的操作符,以大寫字母的方式顯示。一個示例性的操作符是SEQUENCE操作符。SEQUENCE操作符引導(dǎo)AOPL接口,為跟隨其后的五個示例性操作數(shù)產(chǎn)生順序碼。正象上面提到的,跟隨一個AOPL操作符的操作數(shù)還與在SCE輸出碼分析樹中的各種節(jié)點相對應(yīng)。在給出的示例性程序中,順序操作符的每個操作數(shù)或是C程序中的說明,或是語句。因此,這些操作數(shù)的每一個代表輸出碼分析樹的一個節(jié)點。每個還與在中間AOPL碼中的不同字節(jié)組或基本碼行相對應(yīng)。包括LEAF形式的操作符的字節(jié)組代表SCE輸出碼分析樹的終端節(jié)點,在AOPL語言的特定實施例中預(yù)先定義了該終端節(jié)點的操作數(shù)。在給出的示例性AOPL碼中,預(yù)先定義的操作數(shù)以斜體方式表示,并且代表象整數(shù)和字符串那樣的原始數(shù)據(jù)類型。通常,操作符和預(yù)先定義的操作數(shù)將隨著SCE的功能度和所使用的開發(fā)工具的不同而變化。上例中僅使用了P-node-type字節(jié)組。下面給出了一個具有AOPL碼表示的包括S-node-type字節(jié)組的第二示例性C程序。structdate{intday;intmonth;intyear;}due_date;下面給出了與第二C程序相應(yīng)的示范性AOPL碼。due_decl,P_node,RECDECL(1),due_var;due_var,P_node,VARREF(2),due_leaf,due_decl;due_leaf,P_node,LEAF(1),date_record,'due_date';date_record,S_node,RECORD(4),field1,field2,field3,date_leaf;field1,P_node,RECFIELD(2),day_leaf,date_record;day_leaf,P_node,LEAF(1),int,'day',4;field2,P_node,RECFIELD(2),month_leaf,date_record;month_leaf,P_node,LEAF(1),int,'month',4;field3,P_node,RECFIELD(2),year_leaf,date_record;year_leaf,P_node,LEAF(1),int,'year',4;date_leaf,P_node,LEAF(1),date_record,'date',12;在上述示例性AOPL碼中,操作符RECORD規(guī)定記錄本身的名稱和大小,而操作符RECFIELD(2)表明在記錄中的每個字段的名稱和類型。與RECORD操作符相應(yīng)的操作數(shù)確定了記錄字段。與運算符LEAF相對應(yīng)的每個終端節(jié)點包括一個數(shù)值屬性字段,該字段用以標(biāo)識終端節(jié)點的大小。為了有效地構(gòu)造如上所述的AOPL碼,本發(fā)明可以使用圖3所示的一個多級結(jié)構(gòu)??梢园严到y(tǒng)接口60分成幾個不同的碼轉(zhuǎn)換操作或傳送。每次傳送可以包括一個進(jìn)行碼轉(zhuǎn)換的獨特的操作設(shè)置。比如說,來自任意開發(fā)工具12、14和16的SCE輸出碼可被提供到線路64。在第一傳送66,把SCE輸出碼轉(zhuǎn)換為第一傳送碼,通過輸出68,把第一傳送碼提供給第二傳送70。使用第一傳送66,把來自特定SCE的SCE輸出碼轉(zhuǎn)換為能很容易地被轉(zhuǎn)換為公用中間語言的語言。因此,在第一傳送66使用的操作設(shè)置可以被限定,以使得它貼近地反映產(chǎn)生SCE輸出碼的SCE的特征。這樣,在產(chǎn)生公用中間AOPL碼之前,很容易改變接口,使得它適應(yīng)于SCE中的任何變化,并且能標(biāo)識和報告SCE碼級的錯誤。后面將給出用于電子表決業(yè)務(wù)應(yīng)用的SDL表示的一個示例性第一傳送操作設(shè)置。在第一傳送66使用的操作設(shè)置可以存放在業(yè)務(wù)生成環(huán)境其本身內(nèi)。第二傳送70接收第一傳送66產(chǎn)生的第一傳送碼,并且將用在所有的SCE中使用的公用中間語言產(chǎn)生第二傳送碼。第一傳送70通常包括比在第一傳送66中所用的操作設(shè)置更寬更一般的操作設(shè)置。因此可以在第一傳送66引入新的操作而不影響第二傳送70。第二傳送數(shù)據(jù)庫72可以包括,比如用以擴(kuò)展第一傳送碼中的一些節(jié)點的第二傳送宏指令。第二傳送70在輸出74上提供將在第三傳送中被處理的公用中間AOPL碼。第三傳送76設(shè)計成簡化每個EE的目標(biāo)碼生成。通常定義第三傳送碼的操作設(shè)置更接近于反映特定的EE屬性。在第三傳送中,存儲在第三傳送數(shù)據(jù)庫78的一組第三傳送宏指令可用于擴(kuò)展第二傳送碼的節(jié)點。通過連線80,可以把所得到的目標(biāo)碼提供給特定的EE,如在電話交換網(wǎng)絡(luò)中的SCP或SSP。盡管圖3給出了一個示例性的3級結(jié)構(gòu)用以實現(xiàn)接口60,但應(yīng)明白在一個給出的應(yīng)用中,接口可以包括更多的級用以把SCE輸出碼轉(zhuǎn)換為EE目標(biāo)碼。在圖3中所示的三次傳送可以分布在SCE和EE上,其中第一傳送碼發(fā)生器在SCE中而第一傳送碼發(fā)生器在EE內(nèi),所以SCE產(chǎn)生來源于第二傳送70的公用中間碼,并且EE接收該公用中間碼。這樣第一傳送66可在每個SCE內(nèi)進(jìn)行,而第三傳送76可在每個EE中進(jìn)行。為了產(chǎn)生公用中間碼,SCE的輸出部分使用第一傳送程序和預(yù)先定義的操作設(shè)置。在第二傳送中,中間碼發(fā)生器用于產(chǎn)生并且優(yōu)化公用中間碼。最后,EE接收該中間碼并產(chǎn)生合適的目標(biāo)碼。通常,每次傳送都涉及把先前傳送的碼轉(zhuǎn)換為一個更合適的碼。因此,圖3中的3級結(jié)構(gòu)的第一、第二和第三傳送與圖2的分析程序50、AOPL碼發(fā)生器46和目標(biāo)碼發(fā)生器52各自所執(zhí)行的操作相對應(yīng)。在有些情況,沒必要在每個傳送都執(zhí)行轉(zhuǎn)換過程。作為替代,可以使用表示象“Case”和“if”的典型程序結(jié)構(gòu)的模塊作為直接置換。于是在數(shù)據(jù)庫72和78中存儲的操作設(shè)置可以包括簡單的宏指令,用以把SCE輸出碼分析樹的節(jié)點從高級SCE輸出碼轉(zhuǎn)換為低級EE目標(biāo)碼。本發(fā)明的電信系統(tǒng)接口已應(yīng)用于多種不同的SCE和EE。圖4表示使用CCITT業(yè)務(wù)規(guī)范描述語言(SDL)的示例性業(yè)務(wù)狀態(tài)機(jī)的流程圖。當(dāng)用于圖形表示形式時,SDL語言指SDL/GR,當(dāng)用在文字、正文表示形式時,SDL語言指SDL/PR。使用常規(guī)文字編輯器可以產(chǎn)生SDL/PR格式的程序。但是,SDL/GR程序通常用,例如專為操作SDL/GR符號而設(shè)計的圖形編輯器來開發(fā)。圖4到圖8,使用了SDL/GR圖形符號。SDL/GR圖形符號通常提供以圖形符號格式表示電信業(yè)務(wù)功能的手段。例如,在CCITT藍(lán)皮書Vol.X,F(xiàn)ascicleX.1,“FoctionalSpecificationandDescriptionLanguage,”RecommendationZ.100和AnnexesA.B.C.andE,和RecommendationZ.110,1988中,將有更詳細(xì)的描述,在這里,它們構(gòu)成對比文件。SDL/GR圖形表示法通常類似于分析樹,因此它可以用字節(jié)組描述。用“起始”標(biāo)注的標(biāo)號100與用第一字節(jié)組表示的SDLSTATE符號相對應(yīng)。標(biāo)號102、104是SDL/GR圖形表示法中的INPUT符號,并且可用不同的字節(jié)組表示它們。標(biāo)號106、108也表示SDL/GR圖形表示法的STATE符號。每個STATE符號100、106、108的內(nèi)容標(biāo)識一個狀態(tài),個而每個INPUT符號102、104的內(nèi)容標(biāo)識一個事件??梢杂米止?jié)組的形式表示SDL/GR圖形表示法,從而這種表示法內(nèi)的每個標(biāo)號都可與一個唯一AOPL操作相對應(yīng),其中AOPL操作的操作數(shù)反映了與標(biāo)號的連接。STATE和EVENT操作分別表示STATE和INPUT標(biāo)號內(nèi)執(zhí)行的操作。每個操作符包括許多與每個標(biāo)號輸出相對應(yīng)的操作數(shù)。圖4所示的示例性的SDL/GR符號,第一傳送碼發(fā)生器內(nèi)被轉(zhuǎn)換為下面的第一傳送碼。state,P_node,B_STATE(2),event1,event2,'Initial';event1,P_node,B_INPUT(1),state1,'bri!terminating_call';event2,P_node,B_INPUT(1),state2,'bri!send_answer_completed';state1,P_node,B_STATE(0),'Send_Answer';state2,Pnode,BSTATE(0),'Wait_For_Vote';象上面所述,第一傳送碼可通過分析SCE輸出的高級碼產(chǎn)生。此外,在系統(tǒng)接口單元內(nèi)使用分析程序也可以產(chǎn)生第一傳送碼。使用第二傳送把上面的第一傳送碼轉(zhuǎn)換為下面能夠提供給任何不同的EE的公用中間AOPL碼。state1,P_node,STATE(2),state1_leaf,event_list1;state1_leaf,P_node,LEAF(1),state,'Initial';event_list1,P_node,SEQUENCE(2),event1,event2;event1,P_node,EVENT(2),event1_var,handler1;event1_var,P_node,VARREF(2),event1_leaf,event1_decl;event1_leaf,P_node,LEAF(1),event1_record,'bri!terminating_call';handler1,P_node,NEXTSTATE(1),state2;state2,P_node,STATE(2),state2_leaf,event_list2;state2_leaf,P_node,LEAF(1),state,'Send_Answer';event2,P_node,EVENT(2),event2_var,handler2;event2_var,P_node,VARREF(2),event2_leaf,event2_decl;event2_leaf,P_node,LEAF(1),event2_record,'bri!send_answer_completed';handler2,P_node,NEXTSTATE(1),state3;state3,P_node,STATE(2),state3_leaf,event_list3;state3_leaf,P_node,LEAF(1),state,'Wait_For_Vote';上面的第二傳送碼,或中間AOPL碼,特別適于表示用業(yè)務(wù)邏輯語言(SLL)開發(fā)的業(yè)務(wù)。SLL是開發(fā)用以按照互相關(guān)的FSM描述電信業(yè)務(wù)應(yīng)用的面向應(yīng)用的語言。圖4所示的SDL符號的不同狀態(tài)是用操作符STATE表示的。與標(biāo)號102、104相應(yīng)的事件是用操作EVENT表示的。在STATE操作符中,第一操作數(shù)標(biāo)識用以確定狀態(tài)名稱的LEAF節(jié)點,第二操作數(shù)標(biāo)識由SEQUENCE節(jié)點表示的事件處理程序清單。EVENT操作符有用以標(biāo)識VARREF節(jié)點的第一操作數(shù)和在一個事件處理程序內(nèi)標(biāo)識一個動作特殊子樹的根的第二操作數(shù)。VARREF操作符有用以標(biāo)識規(guī)定事件名稱的LEAF節(jié)點的第一操作數(shù)和標(biāo)識用于說明特殊事件的DEFEVENT節(jié)點的第二操作數(shù)。應(yīng)注意在上述AOPL碼中沒有指定標(biāo)號event-list2和event-list3,這是由于與它們相產(chǎn)的狀態(tài)只在前面提到,并沒有在本例的SCE輸出碼示例性段中定義。圖4中所示的標(biāo)號的內(nèi)容是用于說明的目的,并不與一個特定的程度語言相對應(yīng)??偟膩碚f,圖4中示例性圖形符號內(nèi)的文字可以使用任何程序語言的語法。在上面示例性的中間碼中,一些說明和記錄節(jié)點,如在event1-decl、event1-record、、event2-decl和eveat2-record中的那些假定被預(yù)先定義。從上例中可以看出,附加碼操作出現(xiàn)在第二傳送碼上。第二傳送碼更加通用,它可以描述,例如多種不同的FSM。相反,第一傳送產(chǎn)生的碼與SCE輸出碼更加相關(guān),它可以不適于表示其它SCE的碼。上面給出的中間AOPL碼可以轉(zhuǎn)換為一個希望的EE的特定的目標(biāo)碼。另外,比如說,如果目標(biāo)碼與SLL非常相似,就不需要轉(zhuǎn)換目標(biāo)碼。另外,一個用在很多SCE中的示例性開發(fā)工具是決策圖編輯程序。決策圖編輯程序如FSM編輯程序,是在業(yè)務(wù)設(shè)計和開發(fā)過程中作為輔助用以描述各種電信業(yè)務(wù)流程的一種圖形編輯程序。通常,決策圖的結(jié)構(gòu)類似于分析樹,因此,可以用一個AOPL字節(jié)組有效地表示每個決策圖。決策圖可包括各種不同的決策圖節(jié)點,它們對應(yīng)于業(yè)務(wù)操作并且由分支互連。每個操作可以包括多個子操作,如示例性操作的時間、日期和百分比。示例性操作這里稱為DECISION。在決策圖中用于百分比(percent)子操作符的第一傳送碼可以如下給出Percent-1,P-node,DECISION(2n),Val1,br1,…Valn,brn,′Percent′,其中n表示來自百分比節(jié)點的分支輸出的數(shù)目。該碼行還包括對于每個分支的一對操作數(shù),它們用以確定從分比決策圖節(jié)點到一個特定分支的分支相似性。在決策圖中,時間子操作符節(jié)點的第一傳送碼可以如下給出time-1,P-node,DECISION(2n+1),Val1,br1,…Caln,brn,value,‘time’。對于時間節(jié)點,DECISION操作符有一個附加操作數(shù)“value”,它用以確定一個時間。在這個時間后,特定決策圖節(jié)點將被連結(jié)到一個特定的分支。在第二傳送后,第一傳送碼的上述兩個示例性行被擴(kuò)展成下面所示的第二傳送碼。對于百分比子操作符,第二傳送可以產(chǎn)生下面的碼percent-2,P_code,DGNODE(2),percent_call,br_list;percent_call,P_code,FUNCTION(2),percent_leaf,arg_list;percent_leaf,P_code,LEAF(1),int,'percent';arg_list,P_code,'ARG_LIST(n),const1,...,constn;br_list,P_node,LIST(n),br1,...,brn;對于時間子操作符,第二傳送可以產(chǎn)生如下的碼time-2,P_code,DGNODE(2),time_call,br_list;time_call,P_code,FUNCTION(2),time_leaf,arg_list;time_leaf,P_code,LEAF(1),int,'time';arg_list,P_code,ARG_LIST(n+1),const1,...,constn+1;br_list,P_node,LIST(n),br1,...,brn;在本發(fā)明的另一個實施例中,系統(tǒng)接口可以產(chǎn)生由用于特定的EE的匯編語言組成的目標(biāo)代碼。為了簡化匯編碼的產(chǎn)生,可以選擇相應(yīng)的第三傳送操作,使它包括一個給定分析樹的被預(yù)先定義終端的操作數(shù)。作為一個例子,特定的EE可以包括雙地址格式的指令操作符源目的地這種格式的指令中,“操作符”是指匯編語言的操作符,“源”和“目的地”表示操作數(shù)字段。示例性的匯編語言操作符包括MOVE,MULT和ADD。因此,對于上面給出的第一示例性C程序,可以產(chǎn)生目標(biāo)碼。所得的第三傳送碼,或目標(biāo)碼,可以如下面所示label1,P_node,move(2),y_leaf,register_leaf;label2,P_node,mult(2),y_leaf,register_leaf;label3,P_node,add(2);2_leaf,register_leaf;label4,P_node,move(2),register_leaf,x_leaf;x_leaf,P_node,leaf(1),memory,'x';y_leaf,P_node,leaf(1),memory,'y';2_leaf,P_node,leaf(1),int,'2';register_leaf,P_node,leaf(1),register,'r6';在這個示例性的第三傳送碼中,操作數(shù)“memory”、“register”和“INT”假設(shè)被預(yù)先定義,并且它們分別表示儲器位置、寄存器和一個常量。本發(fā)明便于實現(xiàn)在很多不同EE中的電信業(yè)務(wù),而不需要為每個EE設(shè)計一個分離的接口。圖5到圖8給出了用于示例的“電子表決”業(yè)務(wù)的完整的SDL/GR表示法。其中電子表決業(yè)務(wù)能使選民在電信系統(tǒng)上進(jìn)行表決。例如,電子表決業(yè)務(wù)可以在電話交換系統(tǒng)上完成。但是,業(yè)務(wù)本身通常是以圖形表示法(如SDL/GR)被最先開發(fā)。通常,SL表示法包括許多不同的內(nèi)部相關(guān)符號,按照邏輯流程圖描述該業(yè)務(wù)。這些符號依一定順序或優(yōu)選級來安排,該順序確定了符號的范圍。在圖形編輯程序中,位于接近編輯屏幕的左上角的給定符號要比在這個符號下面或右面的其它符號具有更高的優(yōu)先級。例如,圖5中的DECLARATION符號500,在該例中表示全局說明,這是因為該符號位于其它象由START符號508定義的FSM的符號之上。符號508比符號506有更高的優(yōu)先級,因此,在標(biāo)號506中的說明的范圍是與START符號508相應(yīng)的FSM。在SDL/GL表示法中的每個標(biāo)號通常包括有文字。一個標(biāo)號中的文字可能對應(yīng)于,例如一個狀態(tài),事件或FSM的標(biāo)識符,一個數(shù)據(jù)說明,一個在SLL語法中的語句或一個注釋。為了適當(dāng)在一個符號內(nèi)可能容不下的長行文字,使用字符“\”指示一行的連續(xù)。比如說,當(dāng)把SDL/GR轉(zhuǎn)換為SLL用以在特定的EE內(nèi)執(zhí)行時,可以刪去行連續(xù)字符“\”。象圖4所地的這個例子中,這些符號包含了與一個SLL語法相應(yīng)的文字。當(dāng)然,所使用的該特定語言可隨著應(yīng)用的不同而變化。圖5包括在描述電子表決業(yè)務(wù)的SDL/GR中的幾個DECLARATION標(biāo)號500到506。在SDL/GR中的DECLARATION符號相當(dāng)于標(biāo)號500和506,并且被用以在SDL/GR程序內(nèi)說明和初始化數(shù)據(jù)。比如,標(biāo)號500說明一組動態(tài)變量,該動態(tài)變量對應(yīng)于該電子表決例中五個不同候選者的每一個的選擇計數(shù)器,而標(biāo)號504表明每個字符串長度為80個字符的以字符串的形式表示的五個候選者的名稱。圖5中標(biāo)號508在SDL/GR表示法中稱作一個START符號,而標(biāo)號510是一個STATE符號。START符號通常用以定義一個FSM,并且連接到一個明確規(guī)定FSM的初始狀態(tài)的STATE符號上。因此,START和STATE符號內(nèi)的文字分別規(guī)定了FSM的名稱和它的初始狀態(tài)。因為FSM的范圍是其定義的整個SDL/GR程序,所以在SDL/GR程序內(nèi),F(xiàn)SM必須是唯一的。但是,由于STATE的范圍是與它相聯(lián)的FSM,所以可以在SDL/GR程序內(nèi)復(fù)制STATE名稱。標(biāo)號508和510定義了名稱為“選舉”的FSM,其有一個“空閑”初始狀態(tài)。圖5也示出了一個缺省的STATE符號550,它定義對應(yīng)于缺省事件處理程序的一組INPUT符號552、554和556。缺省事件處理程序接收各種系統(tǒng)輸入如一個未連接指示符,并終止FSM操作如STOP符號558所示。例如,當(dāng)用戶終止一個呼叫時,缺省事個處理程序提供一種用于終止FSM處理的方法。圖6(a)表示“空閑”狀態(tài)后的處理步驟。從STATE符號602,F(xiàn)SM可以接收兩個不同輸入之一。圖6(a)的標(biāo)號604是SDL/GR表示法的一個INNPUT符號。INPUT符號內(nèi)的文字規(guī)定了對應(yīng)于事件處理程序的名稱。由于事件處理程序總是與一個狀態(tài)有關(guān),因此象標(biāo)號604的一個INPUT符號前必須有STATE符號。如果前面的狀態(tài)是缺省狀態(tài),即由一個包含星號的STATE符號來指示的,則事件處理程序就是指缺省事件處理程序。INPUT符號604指示出一個事件處理程序“bri!sendanswer-completed”接收到一個用以開始電子表決業(yè)務(wù)的一個可能輸入。圖6(a)中的標(biāo)號606是SDL/GR表示法的一個DECSION符號,可以表示“if”或“test”復(fù)合語句。在“if”復(fù)合語句情況下,標(biāo)號內(nèi)的文字包括關(guān)鍵字“if”和布爾(boolean)邏輯表達(dá)式,并且至多有兩個分支從DECISON符號分出。該標(biāo)號606是“if”型的。另外,在“test復(fù)合語句的情況下,標(biāo)號內(nèi)的文字包括關(guān)鍵字“test””和表達(dá)式,并且可從這個符號分出許多分支。圖7(c)的DECISION符號是“test”型的。圖6(a)的DECISION符號指示出當(dāng)接收到在INPUT符號604中規(guī)定類型的輸出時,根據(jù)變量“Called-dn”作出判斷。其中“Called-dn”指用戶輸入的電話號碼。如果“Calledd-dn”不等于用戶所拔的用以接收總表決計數(shù)信息的數(shù)字“Tally-No”,則進(jìn)入PROCEDURECALL符號608,并且調(diào)用過程“not-tally”。發(fā)調(diào)用的過程執(zhí)行后,F(xiàn)SM就進(jìn)入STATE符號610所示的狀態(tài)“Wait-For-Vote”。另外,如果該計數(shù)數(shù)字已被用戶調(diào)用,則調(diào)用PROCEDURECALL符號612所指示的過程“is-tally”,然后FSM進(jìn)入STATE符號614所示的狀態(tài)“Wait-for-PIN”。過程“not-tally”和“is-tally”分別示于圖7(a)和7(b)。從起始的“Idle”狀態(tài),該“選舉”FSM也可接收如INPUT符號616所示的“bir!terminating-call”輸入。如果接收到這個輸入,PROCEDURECALL符號618就將FSM引入過程“bt-call”。執(zhí)行完該過程后,F(xiàn)SM返回STATE符號620中用“-”所指示的當(dāng)前狀態(tài)。在SDL/GR表示法使用的短線是表示FSM當(dāng)前狀態(tài)的簡寫。過程“bt-call”在圖7(e)中給出。圖6(b)給出了STATE符號614所示的'Wait-For-PIN狀態(tài)后的處理步驟。INPUT符號616接收由業(yè)務(wù)用戶輸入的數(shù)字。這此數(shù)字,例如可通過使用按鍵電話的雙音多頻(DTMF)命令輸入。DECISON符號618指示所接收到的數(shù)字是否與,比如說,被授權(quán)接收關(guān)于決表決計數(shù)信息的個人識別碼(PIN)表一致。如果是,PROCEDURECALL符號620指示執(zhí)行“is-col-pin”過程,然后FSM返回到STATE符號622所指示的當(dāng)前狀態(tài)。否則,如果接收到的數(shù)字不符合一個授權(quán)的PIN,用戶則接收一個如TASK符號624所示的消息,拒絕其接收總表決計數(shù)信息的權(quán)利。SDL/GR表示法的TASK符號用以指示比如以SLL語句格式的事件處理程序的操作。然后FSM如STATE符號628所示返回當(dāng)前狀態(tài)。圖6(c)表示通過與圖6(a)的STATE符號610相應(yīng)的“Wait-For-Vote”狀態(tài)所訪問的符號。INPUT符號642指示出從STATE符號640所示的狀態(tài)“Wait-For-Vote”接收到一個輸入“Collected-digits”。該輸入可對應(yīng)于由可從電話進(jìn)入的系統(tǒng)用戶對特定候選人的選擇。比如,以DTMF命令格式的幾個數(shù)字。如果接收到該輸入,DECISION標(biāo)號644指出對照變量“Max-Cand”來檢驗數(shù)字計數(shù)器,其中“Max-Cand”對應(yīng)于大一個給定的選舉中最大可能的候選人選擇號。如果數(shù)字計數(shù)器大于“Max-Cand”,則輸入對應(yīng)一個有效的候選人選擇,而DECISION符號646表示,要進(jìn)行另一個決策看看是否輸入數(shù)字“9”。在這個例子中,數(shù)字“9”表示用戶想要達(dá)到的總表決計數(shù)信息。如果輸入數(shù)字“9”,則根據(jù)所輸入的數(shù)字,TASK符號648向用戶提供一個通知,即做出了一個不正確的選擇。然后FSM返回由DECISION符號630所表示的當(dāng)前狀態(tài)。另一方面,如果輸入了數(shù)字“9”,TNSK符號654指示出要提示用戶輸入一個PIN用以驗證,比如說,用戶被授權(quán)接收總的表決計數(shù)。在提示用戶輸入PIN后,F(xiàn)SM進(jìn)入STATE符號656所示的狀態(tài)“Wait-For-PIN”。如果所收集的數(shù)字計數(shù)器指示用戶已輸入一個有效的候選人選擇數(shù)字,那么PROCEDURECALL符號658就指示應(yīng)執(zhí)行圖7(c)所示的“it-max-cand”過程。執(zhí)行完該過程后,F(xiàn)SM返回STATE符號660所示的當(dāng)前狀態(tài)。圖7示出了更詳細(xì)的在示例性電子表決的SDL/GR表示法中所調(diào)用的過程。標(biāo)號700、716、724、740和756對應(yīng)于PROCEDURESTART符號,而標(biāo)號715、723、739、755和759對應(yīng)于PROCEDURESTOP符號。圖7(a)示出了從圖6(a)的PROCEDUCECALL符號608處調(diào)用的過程“not-tally”的處理步驟。比如,TASK符號702可以引導(dǎo)文字-語音轉(zhuǎn)換器,把消息提供給用戶。該消息用對應(yīng)于SDL/GR表示法中一個COMMENT符號的括號示于TASK符號的右邊。示例性的消息是向用戶指出他們正表決的選舉的名稱。為了標(biāo)識選舉中的5個候選人,幾個不同MACROCALL符號704到712是順序接入的。與符號704到712相應(yīng)的宏功能在圖8(a)中給出,并且引導(dǎo)用戶輸入一個合適的數(shù)字以對一個特定的候選人進(jìn)行表決,然后TASK符號714可以提示用戶輸入一個特定的數(shù)字,此例中為“9”,以進(jìn)入每個候選人的當(dāng)前的表決計數(shù)。圖7(b)示出從圖6(a)的PRROCEDURECALL符號612調(diào)用的過程“is-tally”的步驟。TASK符號720提示用戶輸入一個PIN,然后MACROCALL符號722調(diào)用圖8(b)所示的一個宏指令“tts-digits”。圖7(c)示出從圖6(c)的PROCEDURECALL符號658調(diào)用的過程“it-max-cand”的步驟。。DECISION符號726指示出,對收集的數(shù)字進(jìn)行測試以確定用戶選擇了哪一個有效的候選人。例如,通過輸入“1”,用戶可以選舉第一候選人。于是,MACRDCALL符號728到736指示出調(diào)用圖8(c)所示的一個宏指令“send(n,s)”。圖7(d)示出了從圖6(b)的PROCEDURECALL符號620調(diào)用的過程“is-col-pin”的步驟,表明用戶被授權(quán)接收總的表決計數(shù)。TASK符號702提供一個消息給用戶,即將給出每個候選人當(dāng)前的總數(shù)。大MACROCALL符號744到754,調(diào)用一個宏指令“cand-text”,以向用戶提供每個候選人的正確的總數(shù)。圖8(d)中更詳細(xì)地給出了宏指令“cand-text1”。圖7(e)表示從圖6(a)的PROCEDURECALL符號618調(diào)用的過程“bt-call”618的步驟。圖8更詳細(xì)地給出了在電子表決SDL/GR程序中調(diào)用的每個宏指令的處理步驟。圖8(a)到圖8(d)分別給出了宏指令“cand-text(s,r,n)”,“tts-digits”,“send(n,s)”和“cand-textl(s,r)”其它的詳細(xì)情況。標(biāo)號800、810、820和830對應(yīng)于MACROSTART符號。而標(biāo)號809、813、823和837對應(yīng)于MACROSTOP符號。標(biāo)號808和836相當(dāng)于出連接符,它們分別指示對應(yīng)于DDECISION符號802和832的決策操作的結(jié)束。應(yīng)注意到上述示例性電子表決的SDL/GR表示法和用于符號文字的語法可以隨著應(yīng)用的不同而改變。但是,上述電子表決示例用以說明本發(fā)明接口所提供的優(yōu)越性。象在SDL/GR圖形編輯程序中開發(fā)的諸如電子表決的業(yè)務(wù)應(yīng)用,作為這里所提供的面向應(yīng)用的接口結(jié)果,現(xiàn)在可以應(yīng)用在任何一組不同的EE中。按照本發(fā)明的圖5至圖8的電子表決業(yè)務(wù)所產(chǎn)生的一組第一傳送碼如下面所示Pls1,P_node,B_TEXT_G(1),Pls5,dynamic';Pls5,P_node,B_TEXT_G(1),NULL,rc';Pls2,P_node,B_START(2),Pls4,Pls3,'election';Pls4,P_node,B_TEXT_F(1),Pls12,access';Pls12,P_node,B_TEXT_F(1),NULL,dynamic';Pls3.Pnode,BSTATE(0),'Idle';Pls6,P_node,B_STATE(3),Pls9,Pls11,Pls7,'*';Pls9,P_node,B_INPUT(1),Pls17,completed';Pls11,P_node,B_INPUT(1),Pls17,'bri!disconnected';Pls7,P_node,B_INPUT(1),Pls17,'collect_failed';Pls17,P_node,B_STOP(0),'';P2s1,P_node,B_STATE(2),P2s6,P2s2,'Idle';P2s6,P_node,B_INPUT(1),P2s13,answer_completed';P2s2,P_node,B_INPUT(1),P2s4,terminating_call';P2s13,P_node,B_DECISION(4),P2s14,P2s13T1,P2s16,P2s13T2,Tally_No';P2s13T2,P_node,B_TEXT(0),'false';P2s13T1,P_node,B_TEXT(0),'true';P2s4,P_node,B_P_CALL(1),P2s5,'bt_call';P2s5,P_node,B_STATE(0),'-';P2s16,P_node,B_P_CALL(1),P2s17,'not_tally';P2s14,P_node,B_P_CALL(1),P2s15,'is_tally';P2s17,P_node,B_STATE(0),'Wait_For_Vote';P2s15,P_node,B_STATE(0),'Wait_For_PIN';P3s1,P_node,B_STATE(1),P3s2,'Wait_For_PIN';P3s2,P_node,B_INPUT(1),P3s3,'collected_digits';P3s3,P_node,B_DECISION(4),P3s4,P3s3T3,P3s7,P3s3T4,COL_PIN';P3s3T3,P_node,B_TEXT(0),'true';P3s3T4,P_node,B_TEXT(0),'false';P3s7,P_node,B_TASK(1),P3s6,'tts!send(port=port_num,text="Sorry,noauthorization.")';P3s4,P_node,B_P_CALL(1),P3s5,'is_col_pin';P3s5,P_node,B_STATE(0),'-'P3s6,P_node,B_STATE(0),'-'P4s1,P_node,B_STATE(1),P4s2,'Wait_for_Vote';P4s2,P_node,B_INPUT(1),P4s3,'collected_digits';P4s3,P_node,B_DECISION(4),P4s6,P4s3T7,P4s9,P4s3T8,Max_Cand';P4s3T8,P_node,B_TEXT(0),'true';P4s3T7,P_node,B_TEXT(0),'false';P4s6,P_node,B_DECISION(4),P4s4,P4s6T5,P4s7,P4s6T6,"9"';P4s6T6,P_node,B_TEXT(0),'false';P4s6T5,P_node,B_TEXT(0),'true';P4s9,P_node,B_P_CALL(1),P4s10,'lt_max_cand';P4s10,P_node,B_STATE(0),'-';P4s7,P_node,B_TASK(1),P4s8,'tts!send(port=Port_num,text="Sorry,incorrectchoice.")';P4s4,P_node,B_TASK(1),P4s5,port=Port_num,prompt=speech_text,max_digits=4)';P4s5,P_node,B_STATE(0),'Wait_For_Pin';P4s8,P_node,B_STATE(0),'-';P5s14,P_node,B_M_START(1),P5s15,'cand_text(s,r,n)';P5s8,P_node,B_M_START(1),P5s9,'tts_digits(a,b,c,d)';P5s25,P_node,B_M_START(1),P5s26,'cand_text1(s,r)';P5s15,P_node,B_DECISION(2),P5s16,P5s15T9,"-"';P5s9,P_node,B_TASK(1),P5s13,'tts!collect_digits(port=a,dialing_terminator=b,prompt=c,max_digits=4);P5s15T9,P_node,B_TEXT(0),'true';P5s16,P_node,B_TASK(1),P5s20,","."';P5s26,P_node,B_DECISION(2),P5s27,P5s26T10,"-"';P5s26T10,P_node,B_TEXT(0),'true';P5s13,P_node,B_M_STOP(0),'';P5s27,P_node,B_TASK(1),P5s29,string(r)';P5s20,P_node,B_TASK(1),P5s23,n';P5s1,P_node,B_P_START(1),P5s3,'is_tally';P5s29,P_node,B_LABEL(1),P5s30,'*';P5s23,P_node,B_LABEL(1),P5s24,'*';P5s30,P_node,B_M_STOP(0),'';P5s3,P_node,B_TASK(1),P5s5,PIN"';P5s24,P_node,B_M_STOP(0),'';P5s49,P_node,B_P_START(1),P5s50,'bt_call';P5s5,P_node,B_M_CALL(1),P5s7,(Port_num,"#",speech_text,4)';P5s50,P_node,B_TASK(1),P5s51,bri!send_answer(port=Port_num)';P5s7,P_node,B_P_STOP(0),'';P5s51,P_node,B_P_STOP(0),;P6s1,P_node,B_P_START(1),r''G'ly;P6s3,P_node,B_TEXT_EXP(0),":';P6s2,P_node,B_TASK(3),P6s5,P6s3,P6s4,';P6s4,P_node,B_TEXT_EXP(0),election."';P6s5,P_node,B_M_CALL(1),P6s6,(E_Cand1,"1",1)';P6s6,P_node,B_M_CALL(1),P6s8,(E_Cand2,"2",2)';P6s8,P_node,B_M_CALL(1),P6s9,(E_Cand3,"3",3)';P6s9,P_node,B_M_CALL(1),P6s10,(E_Cand4,"4",4)';P6s11,P_node,B_TASK(1),P6s12,tts!collect_digits\'J'J1'_=r'J1'_11U1')1')1=',111C1X._U1y11'P6s10,P_node,B_M_CALL(1),P6s11,(E_Cand5,"5",5);P6s12,P_node,B_P_STOP(0),'';P7s12,P_node,B_P_START(1),P7s13,'is_col_pin';P7s13,P_node,B_TASK(1),P7s16,are,"';P7s16,P_node,B_M_CALL(1),P7s23,(E_Cand1,Election_Counter1);P7s23,P_node,B_M_CALL(1),P7s24,(E_Cand2,Election_Counter2);P7s24,P_node,B_M_CALL(1),P7s25,(E_Cand3,Election_Counter3);P7s25,P_node,B_M_CALL(1),P7s26,(E_Cand4,Election_Counter4);P7s26,P_node,B_M_CALL(1),P7s21,(E_Cand5,Election_Counter5);P7s21,P_node,B_TASK(1);P7s22,'tts!send(port=Port_num,text=spech_text)';P7s22,P_node,B_P_STOP(0),'';P8s6,P_node,B_P_START(1),P8s2,'it_max_cand';P8s2,P_node,B_DECISION(10),P8s3,P8s2T11,P8s4,P8s2T12,P8s5,P8s2T13,P8s7,P8s2T14,P8s8,P8s2T15;P8s2T15,P_node,B_TEXT(0),'5';P8s2T14,P_node,B_TEXT(0),'4';P8s2T13,P_node,B_TEXT(0),'3';P8s2T12,P_node,B_TEXT(0),'2';P8s2T11,P_node,B_TEXT(0),'1';P8s7,P_node,B_M_CALL(1),P8s9,'send(E_Cand4,Election_Counter4)';P8s5,P_node,B_M_CALL(1),P8s9,'send(E_Cand3,Election_Counter3)';P8s3,P_node,B_M_CALL(1),P8s9,'send(E_Cand1,Election_Counter1)';P8s4,P_node,B_M_CALL(1),P8s9,'send(E_Cand2,Election_Counter2)';P8s8,P_node,B_M_CALL(1),P8s9,'send(E_Cand5,Election_Counter5)';P8s9,P_node,B_LABEL(1),P8s10,'*';P8s10,P_node,B_P_STOP(0);P8s11,P_node,B_M_START(1),'SlG,sencl'n,s);P8s12,P_node,B_TASK(1),P8s13,tts!send(port=Port_num,text=speech_text)';P8s13,P_node,B_M_STOP(0),'';用于示例性的電子表決業(yè)務(wù)應(yīng)用的一組示例性公用中間AOPL碼如下面所示:@94840,P_node,S11PROG(2),@109072,@109296;t''7@109072,P_node,SEQUENCE(2),@109104,@109240;@109104,P_node,SIGNATURE(0),dynamic';@109240,P_node,SIGNATURE(0),rc';@109296,P_node,SEQUENCE(1),@109328;@109328,P_node,S11FSM(5),@109360,@109488,@109552,@109728,@110320;@109360,P_node,LEAF(1),$fsm,'election';@109488,P_node,STATE(2),@109520,@110352;@109520,P_node,LEAF(1),$state,'Idle';@110352,P_node,SEQUENCE(2),@110384,@79976;@110384,P_node,EVENT(2),@110416,@110472;@110416,P_node,LEAF(1),$event,'bri!send_answer_completed';@110472,P_node,SEQUENCE(1),@110504;@110504,P_node,IF(4),@110536,@110592,NULL,@112312;@110536,P_node,SIGNATURE(0),Tally_No';@110592,P_node,SEQUENCE(2),@110696,@112280;@110696,P_node,SEQUENCE(2),@110728,@111944;@110728,P_node,SIGNATURE(0),PIN"';@111944,P_node,SEQUENCE(1),@111976;@111976,P_node,SIGNATURE(0),'tts!collect_digits(port=Port_num,dialing_terminator="#",prompt=speech_text);@112280,P_node,NEXTSTATE(1),@112224;@112224,P_node,STATE(2),@112136,NULL;@112136,P_node,LEAF(1),$state,'Wait_For_PIN';@112312,P_node,SEQUENCE(2),@112416,@79912;@112416,P_node,SEQUENCE(7),@112448,@76688,@77304,@77968,@78600,@79232,@79680;@112448,P_node,SIGNATURE(0),election."';@76688,P_node,SEQUENCE(1),@76720;@76720,P_node,IF(4),@76752,@76832,NULL,NULL;@76752,P_node,SIGNATURE(0),"-"';@76832,P_node,SEQUENCE(2),@76864,@77016;@76864,P_node,SIGNATURE(0),","."';@77016,P_node,SIGNATURE(0),1';@77304,P_node,SEQUENCE(1),@77336;@77336,P_node,IF(4),@77368,@77448,NULL,NULL;@77368,P_node,SIGNATURE(0),"-"';@77448,P_node,SEQUENCE(2),@77480,@77632;@77480,P_node,SIGNATURE(0),","."';@77632,P_node,SIGNATURE(0),2';@77968,P_node,SEQUENCE(1),@78000;@78000,P_node,IF(4),@78032,@78112,NULL,NULL;@78032,P_node,SIGNATURE(0),"-"';@78112,P_node,SEQUENCE(2),@78144,@78296;@78144,P_node,SIGNATURE(0),","."';@78296,P_node,SIGNATURE(0),3';@78600,P_node,SEQUENCE(1),@78632;@78632,P_node,IF(4),@78664,@78744,NULL,NULL;@78664,P_node,SIGNATURE(0),"-"';@78744,P_node,SEQUENCE(2),@78776,@78928;@78776,P_node,SIGNATURE(0),","."';@78928,P_node,SIGNATURE(0),4';@79232,P_node,SEQUENCE(1),@79264;@79264,P_node,IF(4),@79296,@79376,NULL,NULL;@79296,P_node,SIGNATURE(0),"-"';@79376,P_node,SEQUENCE(2),@79408,@79560;@79408,P_node,SIGNATURE(0),","."';@79560,P_node,SIGNATURE(0),5';@79680,P_node,SIGNATURE(0),tts!collect_digits(port=Port_num,prompt=speech_text,max_digits=1);@79912,P_node,NEXTSTATE(1),@79856;@79856,P_node,STATE(2),@79768,@113360;@79768,P_node,LEAF(1),$state,'Wait_For_Vote';@113360,P_node,SEQUENCE(1),@113392;@113392,P_node,EVENT(2),@113424,@113480;@113424,P_node,LEAF(1),$event,'collected_digits';@113480,P_node,SEQUENCE(1),@113512;@113512,P_node,IF(4),@113544,@113600,NULL,@117456;@113544,P_node,SIGNATURE(0),Max_Cand';@113600,P_node,SEQUENCE(1),@113704;@113704,P_node,SEQUENCE(1),@113736;@113736,P_node,TEST(3),@113768,@113800,NULL;@113768,P_node,SIGNATURE(0),collected_digits.digits';@113800,P_node,CASE(10),@113864,@113920,@115496,@115584,@115992,@116048,@116456,@116544,@113864,P_node,SIGNATURE(0),'1';@113920,P_node,SEQUENCE(1),@115248;@115248,P_node,SEQUENCE(1),@115280;@115280,P_node,SIGNATURE(0),tts!send(port=Port_num,text=speech_text);@115496,P_node,SIGNATURE(0),'2';@115584,P_node,SEQUENCE(1),@115744;@115744,P_node,SEQUENCE(1),@115776;@115776,P_node,SIGNATURE(0),tts!send(port=Port_num,text=speech_text);@115992,P_node,SIGNATURE(0),'3';@116048,P_node,SEQUENCE(1),@116208;@116208,P_node,SEQUENCE(1),@116240;@116240,P_node,SIGNATURE(0),tts!send(port=Port_num,text=speech_text);@116456,P_node,SIGNATURE(0),'4';@116544,P_node,SEQUENCE(1),@116704;@116704,P_node,SEQUENCE(1),@116736;@116736,P_node,SIGNATURE(0),tts!send(port=Port_num,text=speech_text);@116952,P_node,SIGNATURE(0),'5';@117016,P_node,SEQUENCE(1),@117176;@117176,P_node,SEQUENCE(1),@117208;@117208,P_node,SIGNATURE(0),tts!send(port=Port_num,text=speech_text)';@117456,Pnode,SEQUENCE(1),@117488;@117488,P_node,IF(4),@117520,@117576,NULL,@117840;@117520,P_node,SIGNATURE(0),"9"';@117576,P_node,SEQUENCE(2),@117608,@117808;@117608,P_node,SIGNATURE(0),tts!collect_digits(port=Port_num,prompt=speech_text,max_digits=4@117808,P_node,NEXTSTATE(1),@117752;@117752,P_node,STATE(2),@117664,NULL;@117664,P_node,LEAF(1),$state,'Wait_For_Pin';@117840,P_node,SEQUENCE(1),@117872;@117872,P_node,SIGNATURE(0),'tts!send(port=Port_num,text="Sorry,incorrectchoice.")';@79976,P_node,EVENT(2),@80008,@80064;@80008,P_node,LEAF(1),$event,'bri!terminating_call';@80064,P_node,SEQUENCE(1),@80168;@80168,P_node,SEQUENCE(1),@80200;@80200,P_node,SIGNATURE(0),bri!send_answer(port=Port_num)@109552,P_node,SEQUENCE(2),@109584,@109640;@109584,P_node,SIGNATURE(0),access';@109640,P_node,SIGNATURE(0),dynamic';@109728,P_node,SEQUENCE(3),@109760,@109936,@110112;@109760,P_node,EVENT(2),@109792,@109848;@109792,P_node,LEAF(1),$event,'tts!send_completed';@109848,P_node,SEQUENCE(1),@109880;@109880,P_node,SIGNATURE(0),'end_call';@109936,P_node,EVENT(2),@109968,@110024;@109968,P_node,LEAF(1),$event,'bri!disconnected';@110024,P_node,SEQUENCE(1),@110056;@110056,P_node,SIGNATURE(0),'end_call';@110112,P_node,EVENT(2),@110144,@110200;@110144,P_node,LEAF(1),$event,'collect_failed';@110200,P_node,SEQUENCE(1),@110232;@110232,P_node,SIGNATURE(0),'end_call';@110320,P_node,SEQUENCE(3),@109488,@80320,@79856;@80320,P_node,STATE(2),@80232,@80376;@80232,P_node,LEAF(1),$state,'Wait_For_Pin';@80376,P_node,SEQUENCE(1),@80408;@80408,P_node,EVENT(2),@80440,@80496;@80440,P_node,LEAF(1),$event,'collected_diqits';@80496,P_node,SEQUENCE(1),@80528;@80528,P_node,IF(4),@80560,@80616,NULL,@113240;@80560,P_node,SIGNATURE(0),CO1_PIN';@80616,P_node,SEQUENCE(1),@80720;@80720,P_node,SEQUENCE(7),@80752,@82088,@82584,@83128,@83640,@84152,@113152;@80752,P_node,SIGNATURE(0),are,"';@82088,P_node,SEQUENCE(1),@82120;@82120,P_node,IF(4),@82152,@82232,NULL,NULL;@82152,P_node,SIGNATURE(0),"-"';@82232,P_node,SEQUENCE(1),@82264;@82264,P_node,SIGNATURE(0),string(Election_Counter1);@82584,P_node,SEQUENCE(1),@82616;@82616,P_node,IF(4),@82648,@82728,NULL,NULL;@82648,P_node,SIGNATURE(0),"-"';@82728,P_node,SEQUENCE(1),@82760;@82760,P_node,SIGNATURE(0),string(Election_Counter2);@83128,P_node,SEQUENCE(1),@83160;@83160,P_node,IF(4),@83192,@83272,NULL,NULL;@83192,P_node,SIGNATURE(0),"-"';@83272,P_node,SEQUENCE(1),@83304;@83304,P_node,SIGNATURE(0),string(Election_Counter3);@83640,P_node,SEQUENCE(1),@83672;@83672,P_node,IF(4),@83704,@83784,NULL,NULL;@83704,P_node,SIGNATURE(0),"-"';@83784,P_node,SEQUENCE(1),@83816;@83816,P_node,SIGNATURE(0),string(Election_Counter4);@84152,P_node,SEQUENCE(1),@84184;@84184,P_node,IF(4),@84216,@112920,NULL,NULL;@84216,P_node,SIGNATURE(0),"-"';@112920,P_node,SEQUENCE(1),@112952;@112952,P_node,SIGNATURE(0),string(Election_Counter5);@113152,P_node,SIGNATURE(0),'tts!send(port=Port_num,text=speech_text';@113240,P_node,SEQUENCE(1),@113272;@113272,P_node,SIGNATURE(0),'tts!send(port=Port_num,text="Sorry,noauthorization.")';用于電子表決SDL/GR的上述中間碼保存了原始SDL/GR表示支的足夠細(xì)節(jié),比如說能有效地優(yōu)化中間碼。還有,通過簡單地把中間碼轉(zhuǎn)換為一個給定EE的合適目標(biāo)碼,中間碼可以在任何不同EE內(nèi)執(zhí)行。原始SDL/GR表示法和中間碼的基本結(jié)構(gòu)不需要重新設(shè)計,或是改變以適合一個特定類型的EE。盡管上面詳細(xì)描述主要按照特定的SCE和EE的應(yīng)用來描述本發(fā)明,但應(yīng)強(qiáng)調(diào),所討論的實施例僅僅是示例性的。在所給的結(jié)構(gòu)中可以作許多改變,包括比如電信系統(tǒng)的類型,業(yè)務(wù)生成和執(zhí)行環(huán)境的類型,中間碼語法和在系統(tǒng)接口中用以轉(zhuǎn)換和產(chǎn)生碼的傳送的次數(shù)。對于本領(lǐng)域中的熟練技術(shù)人員來說,這些和其它的改變和變化將是很顯然的,因此本發(fā)明只是被附加的權(quán)利要求所限制。權(quán)利要求1.用于接口電信業(yè)務(wù)生成環(huán)境和業(yè)務(wù)執(zhí)行環(huán)境的方法,包括下列步驟標(biāo)識要被接口的一組所選擇的業(yè)務(wù)生成環(huán)境;定義一組適于表示在所述選擇的業(yè)務(wù)生成環(huán)境中開發(fā)的電信業(yè)務(wù)的中間碼操作;分析來自所述選擇的一個業(yè)務(wù)生成環(huán)境的輸出碼,以形成具有多個節(jié)點的分析樹,所述分析樹表示在所述業(yè)務(wù)生成環(huán)境中開發(fā)的所述電信業(yè)務(wù)之一;根據(jù)所述的一組中間碼操作和所述分析樹,生成用以表示所述分析樹所述節(jié)點的中間碼,以使所述中間碼保存在所述業(yè)務(wù)生成環(huán)境的輸出碼所包含的基本上所有信息;以及根據(jù)所述中間碼,為每個執(zhí)行環(huán)境生成一個目標(biāo)碼,從而在所述選擇的業(yè)務(wù)生成環(huán)境之一上開發(fā)的所述電信業(yè)務(wù)可以在每個所述執(zhí)行環(huán)境內(nèi)提供。2.根據(jù)權(quán)利要求1的方法,其中用于生成中間碼的步驟進(jìn)一步包括,生成具有多個字節(jié)組的中間碼。每個所述字節(jié)組對應(yīng)于所述輸出碼分析樹的一個節(jié)點。3.根據(jù)權(quán)利要求1的方法,其中所述生成中間碼的步驟進(jìn)一步包括,生成能夠表示所述分析樹的語句節(jié)點的中間碼。4.根據(jù)權(quán)利要求1的方法,其中生成中間碼的所述步驟進(jìn)一步包括,生成能夠表示所述分析樹的說明節(jié)點的中間碼。5.根據(jù)權(quán)利要求1的方法,其中分析輸出節(jié)點,生成中間碼和生成一目標(biāo)碼的步驟,進(jìn)一步包括步驟分析所述業(yè)務(wù)生成環(huán)境輸出碼,以產(chǎn)生第一傳送碼;使用所述第一傳送碼和儲存在第二傳送數(shù)據(jù)庫的第二傳送宏指令,生成第二傳送碼,所述第二傳送碼對應(yīng)于所述中間碼;使用所述第二傳送碼和儲存在第三傳遞數(shù)據(jù)庫的第二傳送碼,生成第三傳送碼,所述第三傳送碼對應(yīng)于述執(zhí)行環(huán)境的所述目標(biāo)碼。6.根據(jù)權(quán)利要求2的方法,其中所述業(yè)務(wù)生成環(huán)境是一個圖形編輯程序,它使用多個相互關(guān)聯(lián)的符號以圖形表示法的方式描述所述電信業(yè)務(wù)。7.根據(jù)權(quán)利要求6的方法,其中用在所述圖形編輯程序的每個所述符號對應(yīng)于所述中間碼的每個所述字節(jié)組。8.根據(jù)權(quán)利要求7的方法,其中所述字節(jié)組中的一個操作符的操作數(shù),指示出一個所述符號與所在所述圖形編輯程序的所述圖形表示法的其它符號之間的相互關(guān)系。9.根據(jù)權(quán)利要求6的方法,其中所述圖形編輯程序是一個決策圖編輯程序,其使用由分支相互連接的許多決策圖節(jié)點,以決策圖的方式表示所述電信業(yè)務(wù)。10.根據(jù)權(quán)利要求9的方法,其中所述決策圖節(jié)點之一是百分比節(jié)點,并且所述字節(jié)組包括每個所述分支的一對操作數(shù),表示連接到一個特定分支的特定決策圖節(jié)點的相似程度。11.根據(jù)權(quán)利要求9的方法,其中所述決策圖節(jié)點之一是時間節(jié)點,并且所述字節(jié)組包括用于指示時間的操作數(shù),在該時間后,一個特定的決策圖節(jié)點將被連接到一個特定的分支。12.根據(jù)權(quán)利要求7的方法,其中所述圖形編輯程序是一個有限態(tài)自動機(jī)編輯程序。13.根據(jù)權(quán)利要求1的方法,其中所述中間碼被用以生成適用于在所述業(yè)務(wù)執(zhí)行環(huán)境中直接執(zhí)行的業(yè)務(wù)邏輯語言碼。14.根據(jù)權(quán)利要求1的方法,其中所述電信業(yè)務(wù)是電子表決業(yè)務(wù)。15.根據(jù)權(quán)利要求14的方法,其中所述電子表決業(yè)務(wù)是在有限態(tài)自動機(jī)編輯程序中,使用業(yè)務(wù)規(guī)范描述語言來開發(fā)的。16.電信系統(tǒng)接口包括至少一個要接口到多個業(yè)務(wù)執(zhí)行環(huán)境的業(yè)務(wù)生成環(huán)境;分析程序,用于分析所述業(yè)務(wù)生成環(huán)境的輸出碼以形成具有多節(jié)點的分析樹,所述分析樹表示在所述業(yè)務(wù)生成環(huán)境中開發(fā)的電信業(yè)務(wù);中間碼生成器,用于根據(jù)一組中間碼操作和所述分析樹產(chǎn)生表示所述分析樹的所述節(jié)點的中間碼,以使所述中間碼保存包含在所述業(yè)務(wù)生成環(huán)境輸出碼中的基本上所有信息;以及目標(biāo)碼生成器,用于根據(jù)所述中間碼生成一個目標(biāo)碼,該目標(biāo)碼用于每一所述執(zhí)行環(huán)境,從而在所述業(yè)務(wù)生成環(huán)境開發(fā)的所述電信業(yè)務(wù)可以提供給每個所述執(zhí)行環(huán)境。17.根據(jù)權(quán)利要求16的接口,其中所述中間碼包括多個字節(jié)組,每個所述字節(jié)組對應(yīng)于所述分析樹的一個節(jié)點。18.根據(jù)權(quán)利要求16的接口,其中所述業(yè)務(wù)生成環(huán)境是一個圖形編輯程序,它描述以圖形表示法表示的所述電信業(yè)務(wù)。19.根據(jù)權(quán)利要求16的接口,其中所述執(zhí)行環(huán)境是一個電信系統(tǒng)業(yè)務(wù)交換處理器。20.根據(jù)權(quán)利要求16的接口,其中所述執(zhí)行環(huán)境是一個電信系統(tǒng)業(yè)務(wù)控制處理器。全文摘要本發(fā)明提供了電信系統(tǒng)中用于接口不同業(yè)務(wù)生成環(huán)境(SCE)和執(zhí)行環(huán)境(EE)的方法和裝置。本發(fā)明的接口包括接口到多個業(yè)務(wù)EE的一個SCE;分析SCE的輸出碼以形厲分析樹的分析程序,產(chǎn)生表示分析樹節(jié)點的中間碼的中間碼生成器,以使中間碼保存包含在SCE輸出碼的基本上所有信息;以及從中間碼生成用于每個EE目標(biāo)碼的目標(biāo)碼生成器,從而在SCE中開發(fā)的電信業(yè)務(wù)可以提供給每個EE。文檔編號H04M3/42GK1113625SQ94119530公開日1995年12月20日申請日期1994年12月17日優(yōu)先權(quán)日1993年12月20日發(fā)明者邁克·P·卡普蘭,陸慧蘭,李·斯拉茲曼申請人:美國電報電話公司