移動通信產品分成四大類,第一類是設備.包括交換機、路由器、基站等有線和無線網絡中的設備,第二類產品是終端.包括普通手機、智能手機、PDA和尋呼機等設備.第三類是電信平臺.包括智能網平臺、BOSS、運營商的各種管理平臺(比如misc)等系統.第四類是服務.就是短信、彩信、WAP、IVR、KJAVA和BREW等增值業務。第一類產品基本都是嵌入式設備,包括硬件和嵌入式軟件.第二類產品中除硬件外,軟件包括驅動(嚴格來說是軟硬件的接口層)、操作系統和應用軟件。第三類和第四類產品全是軟件產品.所以終端和設備中的軟件再加上電信平臺和增值業務就是我們所說的移動通信軟件.那么進行電信軟件開發的技術人員應該有什么樣的知識結構呢,新疆軟件開發網 。 首先針對每一類產品所需要的知識進行分析。 第一:設備軟件開發,80%以上都是采用VxWorks或pSOS,當然有一些公司的設備(包括華為)正陸續遷移到Linux平臺.采用的開發語言主要是C/C++,開發環境VxWorks是Tornado,使用這兩個平臺的設備商的開發團隊在該平臺方面肯定有積累,很多的功能(比如IPC方面的,內存分配方面的)都已經做好了封裝,所以你需要做的工作是熟悉這些封狀的API.但是,因為其中涉及大量的比較復雜的數據結構,比如十字鏈表和Radix樹,以及圖,所以要求你對數據結構有比較深刻的認識,當然你的C語言的功能要深厚,尤其是指針的使用.因為這些設備都是進行協議處理的設備,所以你對于即將開發的協議要有充分的認識.如果你要做路由,那么必須要研究TCP/IP協議,如果你要做MSC,那么必須研究GSM的網絡結構、處理流程和協議結構。如果你要開發VOIP和流媒體產品,你需要研究H.232和SIP協議.如果要開發GGSN和SGSN,那么就要研究CDMA中的骨干網結構,協議和流程.所以第一類產品的知識結構為深厚和C語言功底+深刻的協議理解. 第二:終端軟件開發.終端軟件中的主流操作系統包括Windows CE、Symbian、Linux和Palm os,其中前三中系統的市場占有率超過99%.操作系統本身都比較成熟,基本不涉及什么開發的工作,但Linux系統課程要做一些修改和定制.終端上的應用軟件跟PC上的應用軟件從本質上是相同的.而終端上的驅動開發相對來說就是技術難度較高的開發.因為需要你對硬件有什么的認識,還可能要用到匯編.而應用軟件的開發在各平臺下都有成熟的開發工具.Linux下用gcc+c(c++)就可以了,wince可用EVC,symbian的SDK也可以跟VC集成,如果你有比較豐富的VC開發經驗,對你的終端軟件開發會有非常大的幫助.所以第二類產品的知識結構為語言+平臺提供的API(如果是驅動需要計算機結構的知識). 第三類:平臺軟件開發.電信平臺軟件90%以上都是基于UNIX平臺的,使用的數據庫包括oracle,informix和sybase,其中oracle的分額最大,而且現在很多的系統在從informix和sybase遷移到oracle.平臺軟件中即包括B/S結構的也包括C/S結構的.C/S結構的一般采用C/C++開發,B/S結構的一般采用J2EE,當然也會出現B/S和C/S結構的混合.C/S結構中的客戶端主要是Delphi或VC開發的,在C/S結構的應用中對網絡編程(利用Socket)要較高的要求,很多人覺得socket編程很簡單,其實不然,其中有很多的陷阱.所以第三類產品的知識結構為C/C++ + UNIX(Linux) + Oracle + J2EE(java) + 應用服務器+界面開發. 第四類:服務產品開發.服務產品開發中可以分成嵌入式方面的Kjava/BREW和非嵌入式方面的短信,彩信,WAP和IVR.當然,還包括定位業務和彩鈴業務.Kjava是Java的一個子集,所以,一個JAVA程序員過度到Kjava相對容易.BREW是用C或C++開發,并且提供了與VC集成的開發環境.所以,這兩中技術開發的知識結構是語言+開發環境的API+運營商的規范.SMS/MMS/WAP開發技術與第三類軟件的開發技術類似,只不過技術含量更低一些,而且因為性能和安全要求要低一些,所以可能采用MS的.NET技術架構.為進行服務產品開發,同時需要對運營商的協議和規范有清楚的認識 綜合以上所述移動通信軟件的知識結構為 C(C++)+JAVA(J2EE)+UNIX+ORACLE+嵌入式平臺+電信協議+運營商規范.而要做一個非常出色的軟件人員,操作系統和數據結構是必須要研究的,盡管各種開發架構提供的數據結構越來越豐富,我們的開發越來越跨平臺,但這些基礎的東西必須要扎實.其中,很多的思想,比如進程調度思想,內存分配思想,各種查詢算法等對你的思路的鍛煉和開拓的作用是相當大的,如果能夠掌握的很扎實,那么將使你受益無窮.
|