Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101390
  • 博文数量: 21
  • 博客积分: 193
  • 博客等级: 入伍新兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-30 10:36
文章分类
文章存档

2011年(21)

分类:

2011-10-18 17:01:57

移动通信产品分成四大类,第一类是设备.包括交换机、路由器、基站等有线和无线网络中的设备,第二类产品是终端.包括普通手机、智能手机、PDA和寻呼机等设备.第三类是电信平台.包括智能网平台、BOSS、运营商的各种管理平台(比如misc)等系统.第四类是服务.就是短信、彩信、WAPIVRKJAVABREW等增值业务。第一类产品基本都是嵌入式设备,包括硬件和嵌入式软件.第二类产品中除硬件外,软件包括驱动(严格来说是软硬件的接口层)、操作系统和应用软件。第三类和第四类产品全是软件产品.所以终端和设备中的软件再加上电信平台和增值业务就是我们所说的移动通信软件.那么进行电信软件开发的技术人员应该有什么样的知识结构呢?
 
首先针对每一类产品所需要的知识进行分析。
 
第一:设备软件开发,80%以上都是采用VxWorkspSOS,当然有一些公司的设备(包括华为)正陆续迁移到Linux平台.采用的开发语言主要是C/C++,开发环境VxWorksTornado,使用这两个平台的设备商的开发团队在该平台方面肯定有积累,很多的功能(比如IPC方面的,内存分配方面的)都已经做好了封装,所以你需要做的工作是熟悉这些封状的API.但是,因为其中涉及大量的比较复杂的数据结构,比如十字链表和Radix,以及图,所以要求你对数据结构有比较深刻的认识,当然你的C语言的功能要深厚,尤其是指针的使用.因为这些设备都是进行协议处理的设备,所以你对于即将开发的协议要有充分的认识.如果你要做路由,那么必须要研究TCP/IP协议,如果你要做MSC,那么必须研究GSM的网络结构、处理流程和协议结构。如果你要开发VOIP和流媒体产品,你需要研究H.232SIP协议.如果要开发GGSNSGSN,那么就要研究CDMA中的骨干网结构,协议和流程.所以第一类产品的知识结构为深厚和C语言功底+深刻的协议理解.
 
第二:终端软件开发.终端软件中的主流操作系统包括Windows CESymbianLinuxPalm os,其中前三中系统的市场占有率超过99%.操作系统本身都比较成熟,基本不涉及什么开发的工作,Linux系统课程要做一些修改和定制.终端上的应用软件跟PC上的应用软件从本质上是相同的.而终端上的驱动开发相对来说就是技术难度较高的开发.因为需要你对硬件有什么的认识,还可能要用到汇编.而应用软件的开发在各平台下都有成熟的开发工具.Linux下用gcc+c(c++)就可以了,wince可用EVC,symbianSDK也可以跟VC集成,如果你有比较丰富的VC开发经验,对你的终端软件开发会有非常大的帮助.所以第二类产品的知识结构为语言+平台提供的API(如果是驱动需要计算机结构的知识).
 
第三类:平台软件开发.电信平台软件90%以上都是基于UNIX平台的,使用的数据库包括oracle,informixsybase,其中oracle的分额最大,而且现在很多的系统在从informixsybase迁移到oracle.平台软件中即包括B/S结构的也包括C/S结构的.C/S结构的一般采用C/C++开发,B/S结构的一般采用J2EE,当然也会出现B/SC/S结构的混合.C/S结构中的客户端主要是DelphiVC开发的,C/S结构的应用中对网络编程(利用Socket)要较高的要求,很多人觉得socket编程很简单,其实不然,其中有很多的陷阱.所以第三类产品的知识结构为C/C++ + UNIX(Linux) + Oracle + J2EE(java) + 应用服务器+界面开发.
 
第四类:服务产品开发.服务产品开发中可以分成嵌入式方面的Kjava/BREW和非嵌入式方面的短信,彩信,WAPIVR.当然,还包括定位业务和彩铃业务.KjavaJava的一个子集,所以,一个JAVA程序员过度到Kjava相对容易.BREW是用CC++开发,并且提供了与VC集成的开发环境.所以,这两中技术开发的知识结构是语言+开发环境的API+运营商的规范.SMS/MMS/WAP开发技术与第三类软件的开发技术类似,只不过技术含量更低一些,而且因为性能和安全要求要低一些,所以可能采用MS.NET技术架构.为进行服务产品开发,同时需要对运营商的协议和规范有清楚的认识
 
综合以上所述移动通信软件的知识结构为 C(C++)+JAVA(J2EE)+UNIX+ORACLE+嵌入式平台+电信协议+运营商规范.而要做一个非常出色的软件人员,操作系统和数据结构是必须要研究的,尽管各种开发架构提供的数据结构越来越丰富,我们的开发越来越跨平台,但这些基础的东西必须要扎实.其中,很多的思想,比如进程调度思想,内存分配思想,各种查询算法等对你的思路的锻炼和开拓的作用是相当大的,如果能够掌握的很扎
阅读(1666) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~