(2)保证与IMS网络和终端的互联互通性
IMS客户端软件应当和不同的IMS网络提供商的应用服务器以及其他的IMS客户端软件进行互联互通测试,从而保证客户端具有良好的互连性。IMS客户端的复杂性决定了IMS客户端间互联互通的重要性。不同的IMS客户端可以支持不同的特性,但是应当保持相同功能特性间的互通。比如具备CSI的IMS客户端仍然可以和不具备CSI的IMS客户端进行PS域的会话连接。
(3)保持系统的可扩展性
IMS客户端的功能和特性还在不停地变化与演进中,因此,应当确保IMS客户端软件架构设计中的可扩展性和灵活性,以方便新的特性和引擎的加入。如果IMS客户端软件架构合理,当有新的协议和引擎加入时,只需增加相应的功能模块,而不需要对已有的功能模块做较大的改动就可以增加新的IMS服务。
(4)实现软件性能优化
由于手机上的CPU、内存、电池等资源都是有限的,IMS客户端软件中的关键部分应当注意实现性能上的优化,如对内存的分配机制、电源管理、XML文档解析器算法优化等。
(5)提供软件平台的开放性
IMS客户端软件应该能够提供相关的应用编程接口给第三方软件开发者。由于IMS服务是多样性的,IMS客户端提供的这些接口会有助于更多的软件开发人员更快地开发出更多创新的IMS应用程序。IMS客户端软件在提供接口的开放度和灵活性将有所权衡。JCP中的JSR281为IMS客户端软件的API开发提供了一个很好的参考。
(6)具有操作系统无关性
IMS客户端软件应尽量保持与操作系统的无关性,这样软件会很容易地被移植到其他的操作系统,如WindowsMobile、Symbian、Linux或者一些专有的操作系统。这需要在软件架构设计中将与系统相关的部分尽可能地分离出来。比如IMS客户端中的引擎和协议栈部分应尽量保持系统无关性,但是人机界面部分一般在不同的系统中都需要重新实现。系统无关部分调用相同的消息通信、内存分配、文件管理、信号管理等应用编程接口,然后根据不同的操作系统重新编写这些API。这种方法能很好地解决IMS客户端的软件移植问题。
(7)支持传输层无关性
由于手机上的CPU、内存、电池等资源都是有限的,IMS客户端软件中的关键部分应当注意实现性能上的优化,如对内存的分配机制、电源管理IMS客户端应当支持不同的传输方式,如GPRS、xDSL、Wi-Fi、WiMax等接入方式,并尽量保持接入方式的无关性,但是不同的接入方式也会直接影响到IMS客户端的行为。比如通过GPRS接入,就存在主和从PDP(Packetdataprotocol)上下文激活问题、在PDP上下文激活时获得P-CSCF地址问题、SIP包压缩问题等。如果是通过Wi-Fi接入,就不存在这些问题。如果IMS终端是双模,其接入方式发生转换时也会对IMS客户端产生影响。在设计IMS客户端软件时应当适当考虑这些情况。
5、结束语
目前,业界在IMS客户端的实际产品开发方面较之IMS网络要滞后一些,但仍然已取得许多成果,如爱立信已经推出了基于爱立信移动平台的IMS客户端,实现了weShare(语音和多媒体共享业务);美国Ecrio公司推出了手机IMS框架软件,集成多种IMS功能,并提供了IMS软件开发包。随着IMS网络测试和今后IMS网络部署的展开,可以预见,IMS客户端逐渐会成为开发和研究的热点。