2012入职某互联网公司,做个人云应用,实现个人信息备份至云端,支持安卓、苹果及PC客户端。领导开始研究funambol(以下简称fum)。

    fum的官方有windows服务端的EXE文件、安卓及苹果的客户端。安装时的tomcat、数据库已经配置完成。下面简述下我们的road。

    1、fum的应用剥离。把他的ear包发布到我本机的tomcat,把fum提供的脚本在本机的mysql执行。过程不平坦,fum很多配置文件在tomcat里,具体忘记了,大概用了一周才分离出哪些配置是必须的,哪些是冗余。mysql相对简单些,脚本执行完就差不多了。苹果客户端修改URL指向后,也可以访问。以上验证的目的,是打算用fum昨晚新产品的后台,只重写安卓和苹果客户端。工作量最小

2、讨论分析可行性。一是fum的license里有收费条款,且不菲。二是新员工较多,很难保证fum的二次开发或维护的顺畅,决定参考fum重写。我当时用了一周试图把fum的核心代码移植到新工程量,脱离fum原有的工程架构,变成“自住研发”的东东。由于人事上的安排,这个工作没进行下去,于是决定重写fum,借鉴其实现,自己写一套。

3、fum的服务大概有几个重点:一是客户端的状态保持,允许一次登录,中间N次握手交互。在集群的时候把session持久化,多个server复制。服务端使用单例模式,用户信息使用非对称加密算法。

4、和客户端交互,采用restful接口模式,这个复用fum的。整个项目的syncml和vcard协议都是从fum源码里剥离出来的,syncml的要用jibx做XML绑定,具体已经忘记。jibx对IBM的unix有反应。

5、安卓可以支持fum的全部功能,ios仅开发了几个api,好像通话记录和短信都不能做。