转自:http://12306ng.org/thread-1140-1-1.html
12306NG价值观
不抱怨,去改变,从我做起
聚集民间智慧,推动社会进步
中国经济已经从资源争夺转向技术驱动,属于程序员的时代来了
“Talk is cheap, show me some code” 综述
12306NG项目的初衷是帮助改进12306.CN网站的用户体验,具体见:
http://12306ng.org/thread-726-1-1.html
。项目的发起者希望该项目能提供基于互联网的高并发、大流量的交易网站架构。
12306NG实行委员会指导下的项目经理负责制度。委员会目前还在筹备中,项目经理正在招募。本文档重点界定各项目的目标,方便大家报名参与各个子项目。
顺便说明,项目组织架构(见
http://12306ng.org/thread-1084-1-1.html
)中,专家团包括业务专家和技术专家,主要起到咨询、顾问的作用,为大家答疑解惑。秘书组则是本项目的支持机构,包括工具、文档、会议召集、社区发展、法务、PR等,请有兴趣的非技术类的热心志愿者报名参与。
鉴于原有客票系统已演化到6.0版,并同时涉及电话、售票点、互联网等多渠道售票,系统复杂,根据项目初始团队的充分讨论,见:
http://12306ng.org/thread-956-1-1.html
,
拟以以下图示方式,逐层解决12306网
站现有问题。
![]()
据此,此次共开设以下10个子项目:
1、 业务网关,LegacySystemGateway
2、 票池PoolManager
3、 基于MySQL的分布式数据库中间件NgSQL
4、 黄牛判断,恶意流量判定,TrafficFilter
5、 统一用户认证系统Passport
6、 交易网关TransactionGateway
7、 服务网关ServiceGetway
8、 Web订票系统,12306Ng.CN
9、 Android订票客户端,12306NG for Android
10、iOS订票客户端,12306NG for iOS
各个子项目将分别招募项目负责人,在项目委员会指导下,独立开展各个子项目的工作。 业务网关,LegacySystemGateway,NgLSG
NgLSG是与原有业务系统通讯的协议层,主要设计要求:
1、 定义与业务层交互的数据协议、接口协议
2、 按照业务系统的SLA(可配置)与业务系统交互
3、 对前端提供Service
4、 能够承受来自前端的海量请求
5、 可水平扩展 票池PoolManager, NgPM
NgPM实现以下需求:
1、 接受来自业务网关的批量票源,以初始化余票模型
2、 按照业务规则,对前端提供订票、退票、改签等服务
3、 维护一个余票模型,智能地进行余票管理
4、 优化数据结构,采用分布式处理技术
5、 建议基于Redist和NgSQL优化性能
6、 能够承受来自前端的海量交易请求
7、 可水平扩展 基于MySQL的分布式数据库中间件NgSQL
NgSQL提供一个分布式数据库中间件,她实现了:
1、 可管理、可配置的、支持一致性Hash的MySQL集群
2、 对应用提供类似单一实例的MySQL服务
3、 解决其它模块涉及到的分布式数据存储、交易问题
4、 可水平扩展
NgTF负责恶意流量、恶意用户的判定,过滤之,以提升流量质量、从而提升用户体验。 统一用户认证系统Passport, NgSSO
NgSSO提供提供统一用户登录验证接口。 交易网关TransactionGateway, NgTG
NgTG实现以下需求:
1、 对前端提供订票交易服务
2、 根据交易请求向业务网关或票池请求交易
3、 支持多种交易请求提交模型,如序列式、摇号式、预约式 服务网关ServiceGetway,NgSG
NgSG是所有提供对外服务的模块依赖的一个组件,她实现:
1、 管理各个服务(WebService)的SLA
2、 管道化或队列化服务请求,按照SLA提交
3、 支持水平扩展,可承受海量服务请求 Web订票系统,12306Ng.CN
1、 该模块直接调用其它模块提供的服务
2、 实现了查询、订票、预订、注册、登录等功能。
3、 可考虑支持旅行线路计划
4、 界面友好,操作方便,用户体验好 Android订票客户端,12306NG for Android
Web功能的客户端实现。
可根据Andriod特点提升用户体验。
Web功能的客户端实现。
可根据iOS
特点提升用户体验。
|