银行数据交换平台开发总结(原创)

      银行数据交换平台简单来说就是基金公司与银行进行数据交换的过程,主要有划款指令、余额查询和流水查询等等,基金公司不能直接与银行进行连接,而是通过深圳证券通信有限公司的数据交换中枢进行联通,银行提供相应的报文格式(XML格式),(深圳证券通信有限公司以下简称深证通)提供C++的API函数供基金公司和银行调用,基金公司和银行通过调用API函数再经过前置机实现互通的过程。这样出去的数据不需经过加密和解密进行操作。

      开发时间:2013年6月1日-2013年9月15日。

      首先项目经理提供给我的资料非常少,只提供了银行的报文格式(EXCEL文档格式)和深证通的API函数文档及DLL文件,程序设计一切未进行交代。当初在接到这个项目时首先做的事是把C++的API函数转成C#能识别的函数,由于API函数是非托管的所以不能直接进行引用,必须进行转换,在函数转换的过程中遇到一些麻烦,这些函数有结构体和回调函数的定义(稍后会贴出转换的函数),查找了非常多的资料再请教了一些同事,经过一个周末未休息,再三的努力终于把函数转换成功了,这为整个程序的开发起到了关键作用。函数转换成功后撰写了相应的DEMO程序,写完DEMO程序后跟项目经理申请两台电脑进行测试,由于基金公司管理比较严格,申请电脑花费了四五天的时间,等申请电脑下来后部署测试环境,由于现在只是测试转换的函数,所以只能模拟基金公司与银行的数据交换,经过几天时间的测试,发现当前的DEMO程序一切OK。

       经过这段时间的精心准备,并把相应的结果汇报给了项目经理。获得同意后开始正式程序的设计,根据项目经理的口头对需求进行了描述,就正式开始了程序的设计,经过大慨十多天的时间的编码,这时大慨到了七月份了,并跟经理汇报了相应的项目进度并提出跟银行进行联调测试,这时项目经理如一梦惊人开始与银行进行联系,经过一段时间的等待后开始了与银行的联调测试,测试了一段时间都未通,后经银行的技术人员确认他们使用的测试环境是专线而我们使用的环境是互联网,再经过几天的时间公司技术人员的努力建立专线,再申请跟银行进行了测试,再经过一段时间的测试银行终于有数据返回到前置机了。

      这时由于基金公司的改革,提出了项目经理-开发经理-开发人员的模式,逐渐另外一个开发经理介入到我这个项目中,他三番五次询问我的项目进度,后来干脆要求我编写项目的概要设计和详细设计文档(注:项目经理从未看过前段时间项目的开发进度,只关心最终的结果),由于这时测试进度非常慢,所以利用这点闲余时间编写了项目概要设计和详细设计文档,开发经理对我提出了五六次修改意见,修改完发送给了项目经理和开发经理,这时项目经理都未曾阅读我编写的文档,开发经理把我编写的相应的文档提交了公司领导进行了阅读,他们给出的建议是当前的设计模式不好。(当前是通过跟银行报文建立一样的字段的数据库,业务系统相应的数据插入到我建立的表中,并有相应的状态,而程序是通过多线程轮询的模式,一旦有一条新数据就会自动组成相应的报文,通过程序发送到深证通,再由深证通把数据推送到银行,银行处理完数据后再返回相应的处理数据XML报文格式的数据)这样的一种模式开发经理看后跟项目经理和公司领导讨论后觉得这种方式不妥,可能需要再设计。

      再经过一段时间的讨论,同时我也利用这段时间把项目的帮助文档进行了编写,想再为这个项目再争取一下,最后开发经理的意见是还是改一种模式,改一种模式虽然问题不是很大,但是在项目的进度上肯定有了很大程度的拖延,在开发项目之前项目经理就说了项目要在九月份初上线,可现在已经到八月份中旬了,被他们这样一整项目按时上线遥不可及了。最终没办法根据开发经理的要求重新编写了项目的概要设计文档,开发经理也提出了几次意见,修改后再提交给了公司项目评审(项目评审主要是公司的项目经理和公司领导),根据他们提出的意见再对概要设计文档进行了修改,文档通过后才进行编码的工作。这次使用的WCF开发架构,后台是通过桌面应用程序进行管理(CS结构),通过WCF服务发布WebServices接口供业务系统调用,再经过一段时间的开发,项目基本已经全部完成了,这时开发经理又提出了要把后台改成WEB版的后台去管理,本人不是没有能力去开发WEB版的后台程序,由于基金公司分工比较明确,CS和BS是分开进行开发的,所以这块程序交给BS项目组去开发。当初以为这样也没有多大的问题最起码WCF服务这端是我开发的,WCF服务端程序写好后,编写了一个调用WenServices的测试程序,接着跟银行进行联调测试,由于银行的服务器每天都会重启,基本要测试的话每天都要跟银行进行联系才可以,这个项目的联系一直是项目经理在跟银行联系,没放开给我去联系,前段时间也是通过邮件进行联系,通过邮件跟银行联系,效率非常低下,这时跟开发经理进行了沟通,这样与银行进行沟通非常不妥,公司的意思是不能总是打电话给银行,否则银行会很烦也不愿意跟我们沟通,作为开发人员的我很无语,多次在这个问题上跟开发经理反映,最终他调了另外一个人来推进项目的测试工作,经过他的推进,测试工作工作有了很好的提高,再经过一段时间把程序的调整,整个程序全部通了,所有发过去的报文都有返回数据了,这时时间已经到了九月中旬了,公司准备启动一个全新的项目,所有的C#开发人员全部投入带这个项目中了,这个开发经理要求我把这个项目交给其他人员进行后期的维护和再调试,没办法,依依不舍地把自己辛辛苦苦搞了三个多月的项目交给了别人,心里有很多的不爽,到时候功劳全部归于别人了,但是没有办法公司这样安排,最后编写了详细的工作交接文档,交接人员相当不重视,最终还是印证了我的预言,交接过去很长一段时间还来问我当初为什么是这样设计的,相当幼稚的问题,心里相当的不爽,唉,一个失败项目的经历。

     最后,请各位帮忙分析失败的原因,也希望各位引以为戒。

posted @ 2013-10-16 15:08  Jara  阅读(3224)  评论(10编辑  收藏  举报