接手“亚洲之子”的实践记录
话说回来,我为啥非得去搞这个“SOA亚洲之子安卓”项目?说白了,就是领导拍脑袋,觉得咱们在亚洲区的业务不能老是用着那堆老掉牙的Windows CE设备了,太丢份儿。非要所有外勤人员手里拿的安卓手机,能实时我们那套跑了快十年的SOA后端。
这个任务一砸下来,我就知道是个硬骨头。老系统的接口,你知道的,那是出了名的复杂,各种加密和验证机制堆得跟山一样。我一开始想法子是抄近路。我在中间层搞个协议转换器,把安卓端发过来的简单JSON请求,成后端需要的SOAP XML包。想着这样能省事,毕竟安卓端处理JSON比处理XML省力多了。
结果?快三周,中间件跑起来那叫一个慢,延迟高到用户体验跟便秘一样。数据来回了三四层,效率根本上不去。我,这条路走不通,必须得让安卓直接面对那套老系统,硬碰硬。
那段时间,我自己了那堆厚厚的SOA接口文档。我,问题的核心根本不是数据格式,而是身份验证和事务完整性。他们那套系统,每隔五分钟就会一次安全令牌,而且令牌的非常依赖请求的时间戳和请求体的特定字段。安卓端如果一个头部信息,或者时间戳,系统直接就
我的详细实践过程,主要解决这个安全握手问题: 知道这个秘密后,我代码逻辑。我一个独立的身份服务模块,专门这个动态变化的安全头。安卓客户端每次业务请求前,都这个模块最新的安全头信息。这样一来,请求的成功率百分之九十九以上。 从那以后,我们亚洲区的业务人员终于可以手里的安卓机,丝滑地数据、库存了。整个项目了将近两个月,主要时间都跟那些老旧、不透明的验证机制。所以说,搞集成,技术只是敲门砖,老系统的脾气才是最重要的。