【正文】
: 年 月 日 七、系級(jí)教學(xué)單位審核意見(jiàn)審查結(jié)果: □ 通過(guò) □ 完善后通過(guò) □ 未通過(guò)負(fù)責(zé)人簽字: 年 月 日 附錄2燕 山 大 學(xué)本科畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)綜述課題名稱: 基于JAVA開(kāi)發(fā)的電信IP計(jì)費(fèi)系統(tǒng) 學(xué)院(系): 里仁學(xué)院電子工程系 年級(jí)專業(yè): 電信054班 學(xué)生姓名: 趙寶華 指導(dǎo)教師: 盧輝斌 張新釗 完成日期: 2009年4月1日 一、課題國(guó)內(nèi)外現(xiàn)狀電信計(jì)費(fèi)系統(tǒng)經(jīng)歷了從人工到自動(dòng)的進(jìn)程,計(jì)費(fèi)系統(tǒng)正從初級(jí)走向高級(jí)、從分散處理走向集中處理,關(guān)于計(jì)費(fèi)系統(tǒng)的建設(shè)也已經(jīng)逐步形成一整套完整的理論。無(wú)論是朝著什么方向發(fā)展,電信計(jì)費(fèi)系統(tǒng)一方面要面向用戶,完成對(duì)用戶計(jì)費(fèi)、收費(fèi)及一系列相關(guān)服務(wù);另一方面要面向電信運(yùn)營(yíng)商自身,為企業(yè)提供市場(chǎng)預(yù)測(cè)、經(jīng)營(yíng)分析等報(bào)告,為企業(yè)制定市場(chǎng)經(jīng)營(yíng)策略提供有力支持,為企業(yè)增加利潤(rùn)、擴(kuò)大市場(chǎng)份額、穩(wěn)定和擴(kuò)大客戶群、有針對(duì)性的展開(kāi)市場(chǎng)營(yíng)銷等工作提供幫助。電信計(jì)費(fèi)系統(tǒng)發(fā)展的一個(gè)很重要趨勢(shì)就是向集中處理模式演變。新興的電信運(yùn)營(yíng)商一般都采用全國(guó)性的集中處理模式。集中式系統(tǒng)的優(yōu)勢(shì)在于:整個(gè)電信計(jì)費(fèi)系統(tǒng)從系統(tǒng)設(shè)計(jì)、技術(shù)實(shí)現(xiàn)、平臺(tái)和開(kāi)發(fā)工具的選定、業(yè)務(wù)流程和管理模式等方面具有高度的統(tǒng)一性和規(guī)范性,能夠非常靈敏地響應(yīng)市場(chǎng)變化,能夠以統(tǒng)一的立場(chǎng)為用戶提供服務(wù)。對(duì)于經(jīng)營(yíng)地域廣且分散、網(wǎng)絡(luò)規(guī)模較大,計(jì)費(fèi)系統(tǒng)初期建設(shè)已形成分散處理模式的電信運(yùn)營(yíng)商來(lái)說(shuō),應(yīng)從提高企業(yè)的競(jìng)爭(zhēng)力和應(yīng)變能力入手,將網(wǎng)間結(jié)算、具有全網(wǎng)性質(zhì)的業(yè)務(wù)和競(jìng)爭(zhēng)激烈的業(yè)務(wù)等的計(jì)費(fèi)向集中式處理模式轉(zhuǎn)變。電信計(jì)費(fèi)系統(tǒng)發(fā)展的另一個(gè)重要趨勢(shì)是朝著個(gè)性化、多樣化的客戶服務(wù)方向發(fā)展。今后的計(jì)費(fèi)系統(tǒng)應(yīng)能夠向用戶提供不同形式的客戶賬單、不同的繳費(fèi)方式、不同的費(fèi)用查詢方法、不同的繳費(fèi)周期,甚至可以為用戶提供定制的電信計(jì)費(fèi)服務(wù)。二、研究主要成果 電信計(jì)費(fèi)系統(tǒng)實(shí)時(shí)性的建設(shè):由于交換機(jī)與計(jì)算機(jī)接口技術(shù)的不一致性或由于交換機(jī)型復(fù)雜,操作難度大等問(wèn)題的限制,計(jì)費(fèi)系統(tǒng)初期基本采用磁帶脫機(jī)處理方式,一個(gè)月脫一次或數(shù)次磁帶。隨著交換機(jī)技術(shù)的計(jì)算機(jī)化,和各種接口協(xié)議標(biāo)準(zhǔn)的形成,使得聯(lián)機(jī)實(shí)時(shí)采集計(jì)費(fèi)系統(tǒng)成為當(dāng)今計(jì)費(fèi)系統(tǒng)尊崇的時(shí)尚。電信計(jì)費(fèi)系統(tǒng)集中性的建設(shè):隨著DDN、ATM幀中繼數(shù)據(jù)通信技術(shù)的采用,使得計(jì)費(fèi)系統(tǒng)聯(lián)網(wǎng)成為現(xiàn)實(shí)。與此同時(shí),集中化的計(jì)費(fèi)系統(tǒng)由于有利于提高企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力,而越來(lái)越被電信運(yùn)營(yíng)者采用。電信計(jì)費(fèi)系統(tǒng)的綜合性的建設(shè):隨著智能、增值業(yè)務(wù)、數(shù)據(jù)多媒體業(yè)務(wù)以及Internet業(yè)務(wù)的出現(xiàn),計(jì)費(fèi)系統(tǒng)從單一業(yè)務(wù)正向具備綜合業(yè)務(wù)的計(jì)費(fèi)系統(tǒng)轉(zhuǎn)移。三、發(fā)展趨勢(shì)目前,電信計(jì)費(fèi)系統(tǒng)開(kāi)始向靈活、可擴(kuò)展、定制化演進(jìn)。國(guó)內(nèi)電信市場(chǎng)的高速發(fā)展和競(jìng)爭(zhēng)的加劇,促使運(yùn)營(yíng)商轉(zhuǎn)變經(jīng)營(yíng)模式,從以往以資源營(yíng)銷為主和單項(xiàng)業(yè)務(wù)為中心的業(yè)務(wù)經(jīng)營(yíng)模式過(guò)渡到以客戶為中心、以業(yè)務(wù)集成和打包服務(wù)為中心的現(xiàn)代經(jīng)營(yíng)模式,電信計(jì)費(fèi)系統(tǒng)是保障順暢的端到端業(yè)務(wù)流程和運(yùn)營(yíng)結(jié)果最終體現(xiàn)的核心系統(tǒng),基于這些轉(zhuǎn)變和需求,SI提供的計(jì)費(fèi)產(chǎn)品和服務(wù)也跟著發(fā)生轉(zhuǎn)變。四、存在問(wèn)題首先,隨著科技的進(jìn)步,電信市場(chǎng)的業(yè)務(wù)需要發(fā)生著不斷變化,計(jì)費(fèi)系統(tǒng)的擴(kuò)展性和維護(hù)性要求較高。其次,計(jì)費(fèi)系統(tǒng)需要充分考慮人性化設(shè)計(jì),尤其用戶的自服務(wù)系統(tǒng)。五、主要參考文獻(xiàn) 1 呂國(guó)英.電信重組將加速電信運(yùn)營(yíng)支撐系統(tǒng)全面升級(jí).IT時(shí)代周刊,20082 李方村.下一代電信運(yùn)營(yíng)與支撐.移動(dòng)通信,2008,(21)3 吳建,鄭潮.UML基礎(chǔ)與Rose建模案例.人民郵電出版社,20074 國(guó)剛,周峰,孫更新.UML與RationalRose2003軟件工程統(tǒng)一建模原理與實(shí)踐教程.電子工業(yè)出版社,20075 Ellie Quigley.UNIX SHELL范例精解.李化,張國(guó)強(qiáng)譯.清華大學(xué)出版社,20076 Cay S. Horstmann, Gary Cornell.JAVA core volume II advantage features. 20087 Kenneth L Calvert, Michael J Donahoo.Java TCP/IP Socket Program.2008 指導(dǎo)教師審閱簽字: 年 月 日附錄3燕 山 大 學(xué)本科畢業(yè)設(shè)計(jì)(論文)外文翻譯課題名稱: 基于JAVA開(kāi)發(fā)的電信IP計(jì)費(fèi)系統(tǒng) 學(xué)院(系): 里仁學(xué)院電子工程系 年級(jí)專業(yè): 電信054班 學(xué)生姓名: 趙寶華 指導(dǎo)教師: 盧輝斌 張新釗 完成日期: 2009年5月20日 進(jìn)行面向?qū)ο蟮脑O(shè)計(jì)時(shí),一項(xiàng)基本的考慮是:“如何將發(fā)生變化的東西與保持不變的東西分隔開(kāi)?!边@一點(diǎn)對(duì)于庫(kù)來(lái)說(shuō)是特別重要的。那個(gè)庫(kù)的用戶(客戶程序員)必須能依賴自己使用的那一部分,并知道一旦新版本的庫(kù)出臺(tái),自己不需要改寫(xiě)代碼。而與此相反,庫(kù)的創(chuàng)建者必須能自由地進(jìn)行修改與改進(jìn),同時(shí)保證客戶程序員代碼不會(huì)受到那些變動(dòng)的影響。為達(dá)到這個(gè)目的,需遵守一定的約定或規(guī)則。例如,庫(kù)程序員在修改庫(kù)內(nèi)的一個(gè)類時(shí),必須保證不刪除已有的方法,因?yàn)槟菢幼鰰?huì)造成客戶程序員代碼出現(xiàn)斷點(diǎn)。然而,相反的情況卻是令人痛苦的。對(duì)于一個(gè)數(shù)據(jù)成員,庫(kù)的創(chuàng)建者怎樣才能知道哪些數(shù)據(jù)成員已受到客戶程序員的訪問(wèn)呢?若方法屬于某個(gè)類唯一的一部分,而且并不一定由客戶程序員直接使用,那么這種痛苦的情況同樣是真實(shí)的。如果庫(kù)的創(chuàng)建者想刪除一種舊有的實(shí)施方案,并置入新代碼,此時(shí)又該怎么辦呢?對(duì)那些成員進(jìn)行的任何改動(dòng)都可能中斷客戶程序員的代碼。所以庫(kù)創(chuàng)建者處在一個(gè)尷尬的境地,似乎根本動(dòng)彈不得。為解決這個(gè)問(wèn)題,Java推出了“訪問(wèn)指示符”的概念,允許庫(kù)創(chuàng)建者聲明哪些東西是客戶程序員可以使用的,哪些是不可使用的。這種訪問(wèn)控制的級(jí)別在“最大訪問(wèn)”和“最小訪問(wèn)”的范圍之間,分別包括:public,“友好的”(無(wú)關(guān)鍵字),protected以及private。根據(jù)前一段的描述,大家或許已總結(jié)出作為一名庫(kù)設(shè)計(jì)者,應(yīng)將所有東西都盡可能保持為“private”(私有),并只展示出那些想讓客戶程序員使用的方法。這種思路是完全正確的,盡管它有點(diǎn)兒違背那些用其他語(yǔ)言(特別是C)編程的人的直覺(jué),那些人習(xí)慣于在沒(méi)有任何限制的情況下訪問(wèn)所有東西。到這一章結(jié)束時(shí),大家應(yīng)該可以深刻體會(huì)到Java訪問(wèn)控制的價(jià)值。然而,組件庫(kù)以及控制誰(shuí)能訪問(wèn)那個(gè)庫(kù)的組件的概念現(xiàn)在仍不是完整的。仍存在這樣一個(gè)問(wèn)題:如何將組件綁定到單獨(dú)一個(gè)統(tǒng)一的庫(kù)單元里。這是通過(guò)Java的package(打包)關(guān)鍵字來(lái)實(shí)現(xiàn)的,而且訪問(wèn)指示符要受到類在相同的包還是在不同的包里的影響。所以在本章的開(kāi)頭,大家首先要學(xué)習(xí)庫(kù)組件如何置入包里。這樣才能理解訪問(wèn)指示符的完整含義。包:庫(kù)單元我們用import關(guān)鍵字導(dǎo)入一個(gè)完整的庫(kù)時(shí),就會(huì)獲得“包”(Package)。例如:import .*。它的作用是導(dǎo)入完整的實(shí)用工具(Utility)庫(kù),該庫(kù)屬于標(biāo)準(zhǔn)Java開(kāi)發(fā)工具包的一部分。,所以現(xiàn)在要么指定完整名稱“”(可省略import語(yǔ)句),要么簡(jiǎn)單地指定一個(gè)“Vector”(因?yàn)閕mport是默認(rèn)的)。若想導(dǎo)入單獨(dú)一個(gè)類,可在import語(yǔ)句里指定那個(gè)類的名字:import 。現(xiàn)在,我們可以自由地使用Vector。然而。之所以要進(jìn)行這樣的導(dǎo)入,是為了提供一種特殊的機(jī)制,以便管理“命名空間”(Name Space)。我們所有類成員的名字相互間都會(huì)隔離起來(lái)。位于類A內(nèi)的一個(gè)方法f()不會(huì)與位于類B內(nèi)的、擁有相同“簽名”(自變量列表)的f()發(fā)生沖突。但類名會(huì)不會(huì)沖突呢?假設(shè)創(chuàng)建一個(gè)stack類,將它安裝到已有一個(gè)stack類(由其他人編寫(xiě))的機(jī)器上,這時(shí)會(huì)出現(xiàn)什么情況呢?對(duì)于因特網(wǎng)中的Java應(yīng)用,這種情況會(huì)在用戶毫不知曉的時(shí)候發(fā)生,因?yàn)轭悤?huì)在運(yùn)行一個(gè)Java程序的時(shí)候自動(dòng)下載。正是由于存在名字潛在的沖突,所以特別有必要對(duì)Java中的命名空間進(jìn)行完整的控制,而且需要?jiǎng)?chuàng)建一個(gè)完全獨(dú)一無(wú)二的名字,無(wú)論因特網(wǎng)存在什么樣的限制。迄今為止,本書(shū)的大多數(shù)例子都僅存在于單個(gè)文件中,而且設(shè)計(jì)成局部(本地)使用,沒(méi)有同包名發(fā)生沖突(在這種情況下,類名置于“默認(rèn)包”內(nèi))。這是一種有效的做法,而且考慮到問(wèn)題的簡(jiǎn)化,本書(shū)剩下的部分也將盡可能地采用它。然而,若計(jì)劃創(chuàng)建一個(gè)“對(duì)因特網(wǎng)友好”或者說(shuō)“適合在因特網(wǎng)使用”的程序,必須考慮如何防止類名的重復(fù)。為Java創(chuàng)建一個(gè)源碼文件的時(shí)候,它通常叫作一個(gè)“編輯單元”(有時(shí)也叫作“翻譯單元”)。而且在編譯單元的內(nèi)部,可以有一個(gè)公共(public)類,它必須擁有與文件相同的名字(包括大小寫(xiě)形式,)。如果不這樣做,編譯器就會(huì)報(bào)告出錯(cuò)。每個(gè)編譯單元內(nèi)都只能有一個(gè)public類(同樣地,否則編譯器會(huì)報(bào)告出錯(cuò))。那個(gè)編譯單元剩下的類(如果有的話)可在那個(gè)包外面的世界面前隱藏起來(lái),因?yàn)樗鼈儾⒎恰肮病钡?非public),而且它們由用于主public類的“支撐”類組成。,我們會(huì)獲得一個(gè)名字完全相同的輸出文件;。因此。如以前用一種匯編語(yǔ)言寫(xiě)過(guò)程序,那么可能已習(xí)慣編譯器先分割出一種過(guò)渡形式(),再用一個(gè)鏈接器將其與其他東西封裝到一起(生成一個(gè)可執(zhí)行文件),或者與一個(gè)庫(kù)封裝到一起(生成一個(gè)庫(kù))。但那并不是Java的工作方式。,它們可以封裝和壓縮到一個(gè)JAR文件里(使用Java )。Java解釋器負(fù)責(zé)對(duì)這些文件的尋找、裝載和解釋?!皫?kù)”也由一系列類文件構(gòu)成。每個(gè)文件都有一個(gè)public類(并沒(méi)強(qiáng)迫使用一個(gè)public類,但這種情況最很典型的),所以每個(gè)文件都有一個(gè)組件。如果想將所有這些組件()都?xì)w納到一起,那么package關(guān)鍵字就可以發(fā)揮作用)。若在一個(gè)文件的開(kāi)頭使用下述代碼:package mypackage。那么package語(yǔ)句必須作為文件的第一個(gè)非注釋語(yǔ)句出現(xiàn)。該語(yǔ)句的作用是指出這個(gè)編譯單元屬于名為mypackage的一個(gè)庫(kù)的一部分?;蛘邠Q句話說(shuō),它表明這個(gè)編譯單元內(nèi)的public類名位于mypackage這個(gè)名字的下面。如果其他人想使用這個(gè)名字,要么指出完整的名字,要么與mypackage聯(lián)合使用import關(guān)鍵字(使用前面給出的選項(xiàng))。注意根據(jù)Java包(封裝)的約定,名字內(nèi)的所有字母都應(yīng)小寫(xiě),甚至那些中間單詞亦要如此。例如。它意味著在那個(gè)文件有一個(gè)、而且只能有一個(gè)public類。而且那個(gè)類的名字必須是MyClass(包括大小寫(xiě)形式):package mypackage。public class MyClass {// . . .現(xiàn)在,如果有人想使用MyClass,或者想使用mypackage內(nèi)的其他任何public類,他們必須用import關(guān)鍵字激活mypackage內(nèi)的名字,使它們能夠使用。另一個(gè)辦法則是指定完整的名稱: m = new ()。import關(guān)鍵字則可將其變得簡(jiǎn)潔得多:import mypackage.*。// . . .MyClass m = new MyClass()。作為一名庫(kù)設(shè)計(jì)者,一定要記住package和import關(guān)鍵字允許我們做的事情就是分割單個(gè)全局命名空間,保證我們不會(huì)遇到名字的沖突——無(wú)論有多少人使用因特網(wǎng),也無(wú)論多少人用Java編寫(xiě)自己的類。A primary consideration in objectoriented design is “separating the things that change from the things that stay the same.”This is particularly important for libraries. Users (client programmers) of that library must be able to rely on the part they use, and know that they won’t need to rewrite code if a new version of the library es out. On the flip side, the library creator must have the freedom to make modifications and improvements with the certainty that the client code won’t be affected by those changes.This can be achieved through convention. For example, the library programmer must agree to not remove existing methods when modifying a class in the library, since that would break the client programmer’s code. The reverse situation is thornier, however. In the case of a field, how can the library creator know which fields have been accessed by client programmers? This is also true with methods that are only part of the implementation of a class, and not meant to be used directly by the client programmer. But