中航信唐红武:移动出行场景化设计与架构实践

  • 徐川

2015 年 7 月 5 日

话题:移动架构

对于出行类的应用,如何为用户提供更好的服务是他们始终关注的问题,航旅纵横作为主流的民航信息应用,在民航出行上做了很多尝试和探索。其中场景化是基于不同场景的变化来提供信息和服务的一种办法,航旅纵横创始人兼技术总监唐红武在和 InfoQ 记者交流中介绍了他们在移动出行场景化方面设计与架构实践。

唐红武还将在 7 月 17 日的ArchSummit 深圳全球架构师峰会上做关于《移动出行场景化体验的挑战和应对策略》的专题演讲,欢迎报名关注。

InfoQ:请简单介绍一下您自己,以及航旅纵横目前的团队情况?

唐红武:我从中科院研究生毕业后加入中国航信,一直从事民航信息化的工作,先后负责了多个项目的研发工作,推出了网上、手机多渠道值机等多种产品,先后申请了 20 余项专利,目前已获得近 10 项专利授权。航旅纵横是 11 年在内部孵化,我与 4 位同事一起开始开发出来的,目前航旅纵横团队主要还是研发产品人员为主,以技术为导向的团队体系、专注于简化旅客出行,为旅客出行提供便捷的服务。

InfoQ:请介绍一下航旅纵横的开发历程?

唐红武:航旅纵横从一开始推出了 iOS、Android 版本,通过微博等社交媒体的自发推广,取得不错的口碑,迅速的获得了一批高质量的种子用户,用户规模我们也跨越了十万、百万、千万等规模。产品也迅速成为行业的标杆,被媒体称为国企的奇葩。2012 年,航旅纵横率先推出基于 Apple 手机的 Passbook 功能,并得到 Apple App Store 官方推荐。2013 年,我们相继推出了 iPad、Windows Phone 版本,实现了航旅纵横移动端版本的全覆盖。

从开发的角度来说,航旅纵横从早期几个人的开发到目前几十人的开发规模,开发组织和技术体系模式也有很大的变化,技术架构经历了两轮比较大规模的重构,2014 年后台系统也逐渐由商业支撑软件为主改为开源软件为主的系统软件运行体系。

InfoQ:航旅纵横在用户量迅速上升后面临哪些问题?

唐红武:航旅纵横在用户量大规模上升后,面临两个方面的问题,一是系统体系方面,另一个是开发模式方面。系统方面,经历了短时间大量用户进入,后台服务压力迅速增大,早期传统简单的架构体系已经不能满足业务访问的需求情况,因此我们将系统中大规模的同步操作改为基于事件的异步处理机制,同时随着规则的复杂度增加,也大量采用开源的规则引擎。在这个过程中,我们逐渐对系统的痛点进行部分改进,目标是使调用更加透明、系统更稳定,业务开发更迅速,维护更方便。开发模式方面,随着大规模新的团队成员加入,传统单打独斗的开发模式也转变为多团队协作开发模式。

InfoQ:能否介绍一下航旅纵横在用户体验方面做过哪些优化?

唐红武:用户体验优化主要有两个方面,一是 UI 方面,航旅纵横出现以来,主要经历了三次左右大的 UI 优化,早期航旅纵横是传统的九宫格模式,采用木纹的拟物化风格,后续我们随着分析,定位于场景化的理念,简化旅客的出行,希望在旅客需要的时候提供相应的信息和便捷的操作。伴随 iOS 7 的平面化和简洁化理念的提出,我们又对 UI 进行了一次大的调整。另一个是在 UE 方面,我们一直坚持的原则是在场景化步骤中,用户操作不要超过三步。

InfoQ:航旅纵横想做到移动场景下的千人千面,能否简单介绍一下这方面的设想?

唐红武:移动场景下的千人千面,是我们的产品目标,今天是一个大数据时代,信息蓬勃缭绕,而我们智能终端大小有限,能容纳的信息有限,用户的时间也有限,我们希望在用户能接触的界面对用户展现最有用的信息和操作,为用户提供精准的信息和操作。

千人千面主要是两个方面,一个是人物的画像,另一部分是数据的整合和场景推荐。出行是一个典型的随时空和位置变化场景案例,我们比较幸运的是掌握用户比较详细信息数据,同时对民航业务有比较深入的了解。让我们觉得用户行前、行中、行后希望了解到完全不一样,同样操作也不一样。

InfoQ:你们目前定义了多少移动出行场景?能否分别介绍一下。

唐红武:我们目前定义了很多移动场景,主要是基于时间的维度和位置的特性,具体来说:

用户在使用航旅纵横时,无行程情况下,用户可能要了解机场的情况,需要接送朋友,这个时候我们更多为用户提供航班查询和机场的实况情况。

有行程的情况下,又细分多种场景,比如行前,我们要了解我们即将出行的航班历史情况,机型机龄等,是旧飞行还是新飞机,是大飞机还是小飞机。行中的时候,用户关心今天航班登机口在哪里,是原机位还是近机位,是否有摆渡车,关注当天机场的天气情况,民航是一个受天气影响很大的行业,目的地天气如何等等都会有很大影响。

还有乘坐的飞机前序的飞行情况,我们最近还要推出一个航班实况预警信息,提前预告今日航班各种情况。

当然,用户还可以通过航旅纵横办理登机手续,目前国内有十多家机场直接使用航旅纵横登机牌就可以直接登记,非常便捷,到今年年底,国内大部分机场,航旅纵横的用户都可以直接持航旅纵横的电子登机牌登机。对于行后来说,我们可能需要了解行李在哪里取,机场的地面交通如何等。

对于常做飞机的用户和不常做飞机的用户来说,他们习惯也不样。有人关心航空里程积累情况,是否可以升级航空公司金卡了。金卡有哪些服务等。

对于我们来说,航旅纵横就是一个桥梁,一边是我们尽力了解用户,融合场景,另外一边是从大量信息和事件中,提取有针对性信息为用户服务。我想这种理念也就是只有今天移动互联网能承载。

InfoQ:对于场景化的设计,如何从架构设计上保证服务的可用性和体验?

唐红武:场景化的设计,确实对架构设计带来了巨大的挑战。对于我们来说,需要定义场景,但是场景的定义也是在不停的变化中,对于系统的设计来说,必须要有一个相对灵活的架构设计,来应对日益增加、场景细分的需求。同时场景化需要对事件和消息的实时性要求特别高。

系统采用异步事件切面的方式,建立了以队列和订阅发布为基础的消息处理机制。系统主要提供一对多的通信形式,将信源传递到多个订阅者,订阅者通过筛选规则来限制要接收的消息,通过接收到的不同消息,进行不同结果处理,一种模式是存储为数据,另一种模式是启发一个新的业务流程。通过一系列的智能场景算法,将大量的信源分发到各业务单元中。对于场景应用,随着用户的增长、不同场景类型数据的增加和场景转换,建立在海量的数据和不同的业务场景上的智能场景算法,也需要建立一套有效评价体系,不停的训练和修正算法模型,使用户获取信息的准确性得到不断提升。

对于用户的体验和感观,我们需要对场景的结果进行实时有效的监控和评判,根据实时的用户反馈行为训练我们的智能场景算法。以期达到超出用户的预期的结果。对于这些详细的内容,我会在ArchSummit 深圳 2015 大会上给大家做更详细的分享。

移动架构