银行核心系统软件开发技术终极总结
将题目命名为“终极总结”,是因为我很清楚,我这一辈子都几乎不可能再去开发银行核心系统了。
从商业价值的角度来说,银行核心系统并没有多么广阔的商业前景!而对于我而言,钱景远比前景重要的多,而技术更是浮云。这篇文章仅仅是软件开发技术方面的总结,也是我能公开说的极限。如有不妥之处,敬请谅解。
银行核心系统,本质上看就是财务会计系统,其核心就是由会计业务上的借贷平衡算法构成的联机交易算法。银行经过长时间的技术积累,核心系统的技术已经非常成熟,除非有技术上本质的突破(主要是IBM技术的突破),否则核心系统技术会相当稳定,因此其技术含量相对比较低(和一日千里的Java技术比较而言):
1) 应用系统和数据库的交互:使用最原始的数据库连接方式;没有类似weblogic或者Websphere的数据库连接池技术;
2) 多并发只能使用多个进程的方式;
3) 数据缓存:必须自己编写。
总之,核心系统就是用最原始的方式编写应用系统,没有什么资源可供使用。更没有什么开源系统可资借鉴。核心系统在一个完全封闭的环境里面、使用unix C技术完全独立、封闭地发展。采用unix C的技术架构已经太陈旧了,无法适应业务规模的快速发展;而此技术架构本身多年来没有根本的改进,再坚持使用这种技术,将使技术和业务之间的矛盾越来越明显。IT系统到了非彻底改造的时候。问题的关键不是要不要改,而是怎么改。而国内银行选择国外核心系统的技术方案,很大原因我认为是因为“形象工程”和“政绩工程”的缘故,领导的意志在其中起到了决定性的作用。对于采用国外核心系统,我的认识是:不要迷恋哥,哥只是个传说。
银行核心系统的难点在于业务复杂、多变,需要用简单、原始的技术来应对业务是难点所在。银行核心业务系统是:业务模块、账务模块和总账模块。从业务角度,核心系统也将负责的业务进行了最大程度的简化:即把复杂多变的业务分解为一个个独立的交易。所以,我认为要建设高质量的核心系统,最重要的就是吃透业务、设计好方案、利用好技术,核心还是设计,而不是编码。交易的划分和功能设计,是制造核心系统能否成功的关键。
对于开发银行核心系统的软件供应商而言,存在两难的困境:
1) 开发银行核心的软件技术:技术上相当保守,仍然在沿用非常传统的技术,例如有的银行核心系统已经开发了十多年,技术体系上没有大的改变:仍然是IBM小型机+infomix C的技术架构。银行内部的技术人员技术水平难以提高,被银行绑定了,只能在银行终老。所以,有的银行将原来的旧系统完全推翻,完全采用国外的银行核心系统,行业内有人震惊,有人怀疑。我也很疑惑,她为什么会毅然决然地打到旧系统,采用新系统?愿意花大价钱去做外国人开拓中国市场的“白老鼠”?
只有在真正了解了什么是银行核心系统之后,才明白,这个市场为什么如此低迷!一般银行的报价是每人每月1.7万。抠门的老板,不慷慨的客户,涣散的人心,如何能开发出精致的核心系统?
2) 无限接近核心,还是远离核心?远离核心,对于银行来说,离核心越远,项目价值就越小,愿意付出的价格就不会高。越接近核心,那么银行自身控制的就越严格,价值也不一定会很大。对银行来说,她的人员需要具有如下能力:
(1) 深刻理解现有系统的业务和技术架构的能力;
(2) 跟踪新需求,设计新功能的能力;
(3) 管理项目开发的能力;
上述人员如果能少而精,个个具有项目经理级别的能力,那么她就不需要日常维持一只庞大的开发队伍,只需要在大规模开发时,让自己的人员设计、组织项目即可。而开发公司只能以人头外包方式参与,以产品方式参与项目几乎无可能,公司的利润无法最大化;公司的知识根本无法价值化,开发人员的收入也无长期、稳定的保证。开发企业*本只能以外包、卖人头的方式参与开发,人员完全为银行打工,不参与技术架构设计、业务需求分析、软件设计,只是开发或者测试,纯粹打工;这也是我坚决不愿意做外包开发的原因。即使有经验丰富的技术人员,也难于参与到项目的核心架构设计,因为几乎每个银行都有自成体系的一套技术架构,外来人员只能适应其技术架构。
3) 开发人员向银行业务咨询方向发展就有前途吗?
第一条道路:软件技术和业务知识的结合。银行项目做到最后,都只是纠结于业务,而没有什么技术含量。银行业务纷繁复杂,如果向大而全方向发展,则可能无法精通一门;而如果向少而精方向发展,则可能并不能保证能参与到精通的项目中。而在我看来,如果能精通面向银行业务的专门软件技术,倒是一条可能的发展道路。例如:精通能处理大数据量的Oracle、DB2数据库技术、精通记账程序设计、精通复杂报表设计,这些技术即和银行业务有联系,同时又是精专的软件技术,能充分发挥技术人员的价值。
第二条道路,就是我现在这样的技术全能型,C、java、vb什么样的软件语言都懂一点,也比较精通一门语言,如此来应对复杂的IT系统。但是,我在这条路上已经走到尽头,我需要选择精专的软件技术(例如:数据库、软件架构、软件项目管理)等方向上去突破。
【结束】
参考资料:拙著《银行核心业务系统项目阶段性总结》http://blog.sina.com.cn/s/blog_61ade42f0100m1vx.html
附录1:银行核心系统的实现技术
(1)IBM技术:《CICS联机程序开发与调试教程》 IBM开发的联机事务管理系统
网址:http://www.docin.com/p-4952256.html
(2)柜台界面技术:神州数码公司的ACE
附录2:银行核心系统的是怎么样建成的!
原来,不仅仅银行核心系统是这样,高铁也是这样建成的。温州动车追尾事故将中国重大项目建设的少许内幕暴露在大庭广众之下,这种游戏规则同样适用于大型软件开发项目…
2011年08月出版的新世纪周刊《大崩溃》详细描述了中国的高铁是如何建成的,让我们一窥内幕吧…
高铁频频发生故障的背后,折射出国内在技术引进和消化吸收方面存在的不足。据国内一家机车制造企业人士透露,和国外企业相比,国内机车制造企业技术能力相对薄弱,消化吸收引进技术的能力未能达到预期,大量国产高铁零部件达不到应有的标准。原铁道部运输局局长张曙光2009年6月在动车组质量安全会议上的讲话掀开了问题一角。张曙光严厉批评,唐山轨道客车有限责任公司采购的动车零部件存在大量质量不合格的现象,北车旗下的长春轨道客车有限公司生产的46列国产动车组的零部件功率和绝缘等级与技术条件不符,浦镇车辆厂长期存在转向架构架加工面的铸造缺陷等问题,但会议召开时仍未查出原因。所有这些因素,都严重危害动车组的运行安全。
在动车系统各项技术中,信号系统一直是国内企业的技术短板。这一短板一直困扰着国内企业。
2006年青藏铁路开通前仅信号调试就花了很长时间。据媒体报道,当时青藏铁路从美国引进的信号系统并不稳定,甚至出现“丢车”现象,即调度控制中心计算机无法确定列车行走位置。正式开通前一年,有中央领导亲临视察,通信信号在测试中连接不上。“当时在场的人都非常着急,铁道部直接分管通信设备的运输局副局长胡东源因此被免职。”一位知情人士透露。
通过技术转让,中国造出了自己的高铁,但软件和自动控制系统是最难掌握的技术难题。据一位当年参与高铁技术引进谈判的人士回忆,“外方的技术转让是有底线的,他们只是转让了一些部件的设计图纸,教会我们制造,但一些核心东西,特别是软件源代码,是不会转让的。”国内一家机车制造企业负责技术引进的人士也证实了这一点,“过去几年的技术引进主要是制造工艺为主。高铁一些核心技术和软件源代码外方并未转让,特别是信号系统,现在信号系统的主要硬件还是依靠进口,软件是自己搞的。”此次温州动车事故初步调查分析结果显示,目前国内既有线路上应用的信号系统仍然并不完善,“这套信息系统当时技术并不成熟,但为了赶工期,没有经过考核就急急忙忙地上了。这个问题一直没有暴露,没想到一个雷给暴露了出来。”接近铁道部的一位人士称。
尽管铁道系统内部自身能力有限,却轻易不愿让系统外企业进来分羹。华为一直想进入动车组和高铁的列车控制系统开发,却屡屡铩羽而归。在交通运输管理咨询人士看来,整个高铁行业在过去几年中以疯狂的速度发展,“企业只要生产出东西就能卖掉,即便是生产产品合格率比较低也无所谓,只要生产出来就能赚钱,整个行业时间是第一位的。”一位高铁供货商在接受财新《新世纪》记者采访时感叹,“日本的新干线,100公里线路用了10年修建,而我们不到十年就建了几千公里,确实太快了。”
在这样亢奋的行业氛围下,大干快上成为铁道部推动高铁快速发展的一个主要法宝,甚至不惜违背*本的科学规律,其中最为典型的莫过于动车组驾驶培训。在国外专家看来,起码需要经过三月驾驶培训方能上岗的动车驾驶,在铁道部一纸命令下甚至出现了十天的短训班。
上述咨询人士认为,作为国内高铁企业的主要客户,铁道部虽然多次强调要确保产品质量,但在实际行动上并未树立安全第一的理念,“如果客户最高层都不重视,那企业就会觉得,质量保证工作做不做都一样,企业对产品可靠性的观念非常薄弱”。事故发生第二天晚上,上任不久的铁道部部长盛光祖在全路运输安全紧急电视电话会议上称,要迅速整改高铁安全中存在的问题,包括对设备的惯性故障,要组织开展技术攻关,彻底解决问题;提升动车组司机素质等。
【王东恩】:的确如此,领导在要政绩、要捞钱之时,安全只是美丽的口号而已。领导既然视安全、质量为草芥,具体干事又何必不辞辛苦注重质量哪。
提及这两年频发的高铁故障,以及此次动车追尾事故,很多人都会将矛头对准年初已经落马的、在铁道部部长任上八年之久的刘志军。但是,实际上,刘志军自己也清楚铁道部的安全隐患。他在2005年9月的全路运输安全电视电话会议上坦承,运输安全存在的问题仍然是大量的,如设备质量问题非常突出。线路病害、信号故障、机车大部件破损、提速机车走行部故障等呈现明显上升的趋势,对运输安全特别是旅客列车安全构成极大的威胁,当年已经发生的十件行车重大、大事故中,有七件直接与设备质量有关。
此次动车追尾事故后被免去上海铁路局局长职务的龙京,在2011年4月的该局电视电话会议上也指出,在铁道部为期一个半月的全路安全大检查活动期间,上海铁路局性质严重的事故没有杜绝,特别是发生了“3.18”南京北站调车人员车辆伤害死亡一般B类事故、“2.17”机车溜逸一般C类事故、“3.17”京沪高铁动车组试验列车撞施工小车一般C类事故等,性质十分严重。“一方面表明安全大检查活动在部分单位开展不够深入、不够扎实、走了过场;另一方面也表明我局的安全*础仍然十分薄弱”。
实际上,分析人士指出,“7.23”动车追尾事故的教训能否真正被吸取,安全形势能否真正改观,都是大大的问号。包括刘志军、龙京,以及当年曾因为胶济铁路事故被免去济南铁路局局长职务的新任上海铁路局局长安路生在内,即使有人一心为公,在铁道部现行体制不改变的情况下恐怕也很难有大的作为。
时代周报《多舛铁道部》
“我记得,以前一个铁路的招投标额都是几千万,最多几个亿,后来一下子弄到十几亿几百亿一个工程,我就觉得这里面会有水分。”宫杨兴说。宫杨兴一直和铁道部有着密切而复杂的关系,在刘志军因为涉嫌严重违纪而被免去铁道部部长后,宫杨兴曾对时代周报记者表示:“刘志军的倒台并没有那么简单。”
据悉,在2008年底我国进行4万亿的经济刺激计划以后,我国铁路建设的标的额明显上涨。在过去,铁道部的工程*本上都能按部就班地建设,“但在那以后,因为铁道部有这么多大额的工程,所以就被人盯上了。”宫杨兴说。他指的是有深厚背景的某些人。“后来那帮人觉得铁路的工程有利可图,便开始找刘志军帮忙张罗招投标的事,最初,刘志军还可以左右平衡得好,但到了后来,这个群体人数越来越多,刘志军就在铁道部内部弄了一个类似《铁道部招投标办法一》的文件,这个文件一直出到四,其主要内容就是‘抓阄’,谁抓到了谁拿工程,但这就惹恼了这部分人,间接地让刘志军开始树敌,最终导致其下台。”宫杨兴说。
【王东恩】:
一、是谁给了高铁迅猛发展的燃料:
(1)铁道部特殊的政治地位:她就像铁路领域的国开行,能够用国家信用做担保,在债券市场上无限融资;能在银行信贷市场上强势融资;
(2)国家四万亿的巨额投资计划:本届政府并没有什么高明的策略,还是将***的那套经济政策拿过来照单开药,用巨额政府投资、用大量低效投资去强行刺激经济,能管一时,却贻害未来;
(3)巨大的铁路市场:国外凭什么要把多年研制的技术拱手送给我们,不就是我们有巨大的市场吗。但是,谁真的会“耗子给猫打工”,会笨到把自己的命也交出来哪。“市场换技术”,只是一厢情愿的真实谎言而言。
但是,“燃料”毕竟是有限的自然资源,在挥霍掉这些宝贵的资源后,高铁还能继续这样超常规发展吗?
当面临丢官位和蹲监狱的风险时,政绩和捞钱的收益就显得微不足道了,慢下来就是现任领导为前任领导擦屁股的唯一方法。
二、中国的重大工程都是“高铁”吗?
很悲剧,我接触过的几个大型软件开发项目都是“高铁”模式:
首先,长期合作才能赢得大额订单,合同金额高的离谱,让人觉得不可思议,感觉像在洗钱;
然后,内幕权钱交易;
然后,这种商业模式注定了项目实施就是个悲剧。工程实施中,技术人员被甲方贬低到很低的位置,其价值得不到甲方的认可,也得不到公司的承认;
最后,项目验收时,项目质量好坏不是甲方关注的首要因素;
只是项目金额远远没有高铁那么大、问题没有严重到高铁那样的程度,最重要的是没有因为死人而暴露在光天化日之下。
三、结论:
(1)远离采用高铁商业模式的软件项目,即使看起来很“高科技”、很“世界领先”、很有技术含量,很有技术挑战性,那些空洞的口号只是为了某种需要而已;在人家的游戏规则里面,技术能力根本排不上号。“学会文武艺,货卖帝王家”,还是努力争取把自己卖个好价钱吧!
(2)高铁已经过了野蛮而短暂的高速发展期,而进入了漫长的“还债期”,看看日本新干线的历史,就知道中国高铁未来的命运。和高铁相关的债券和股票都没有什么投资价值,我连研究的兴趣都不会有了…