1-银行在做某些业务时,柜台上看的一个交易.实际上可能是几个交易的组合, 比如说, 我们行现在的取款交易就分成了 1-记帐, 2-记现金 3-打折; 在交易当中,常常会碰到网络或其他问题可能造成帐记了, 现金没记, 或帐记了,现金也记了,但打折没打, 在此想问问在座的各位,你们在处理这类问题时采取了什么方法来控制? 是中间件层控制呢? 还是通过其他方法.
2-现在的银行系统都采用的交易码驱动的方式,先是将帐户锁定,然后开始业务系统处理,处理成功后更新数据库中的实际帐户信息.我想问的是如果交易当中失败了怎么样?有谁能告诉我现在大行采用的业务系统框架是什么样的?
我接触过两种银行业务系统, 遇到过很过问题, 现工作于某城市银行,希望能和大家一起讨论, 共同进步.
我的Email : tgh99@sina.com
【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
| 天祥星辰 回复于:2003-06-01 13:58:34 |
| 好破的系统呀! 做什么交易呀?现在还有单边帐吗? |
| win_bigboy 回复于:2003-06-01 14:05:42 |
| 多的很, 所以想问问别人的系统你有资料吗? |
| 无双 回复于:2003-06-01 15:58:27 |
| 这些都是通过事务来实现的 一般数据库都会提供事务支持 如果没有提交 那么所做的改变没有写到数据库中 中间件也有事务功能 |
| win_bigboy 回复于:2003-06-01 16:18:56 |
| 是啊,我特别想知道全国性的大行是否是通过事务来保证的 begin work; 处理银行业务 commit work; 但我们行没有用事务,据说是因为处理时间太慢. 所有我想问问大家. |
| JohnBull 回复于:2003-06-01 16:31:11 |
| [quote:c18727da89="win_bigboy"]是啊,我特别想知道全国性的大行是否是通过事务来保证的 begin work; 处理银行业务 commit work; 但我们行没有用事务,据说是因为处理时间太慢. 所有我想问问大家.[/quote:c18727da89] 使用transaction(事务)是正解,“速度慢”完全是外行话。 :) |
| 无双 回复于:2003-06-01 16:32:13 |
| 事务可以保证操作的正确性 如果操作结果都不正确了 那么再快的速度也没有用 |
| win_bigboy 回复于:2003-06-01 16:43:19 |
| 这么说是不用什么回滚机制了? 不过我查了一些软件公司的白皮书, 好象是在用什么回滚机制. 我们行如果做一笔业务的话先要把帐户锁定不让其他用户使用然后处理完帐户后再解开这样的话中间如果速度慢,或者进程死了的话其他人根本做不了业务这中事一忙的话就会发生. |
| JohnBull 回复于:2003-06-01 17:04:35 |
| [quote:4f43649d12="win_bigboy"]这么说是不用什么回滚机制了? 不过我查了一些软件公司的白皮书, 好象是在用什么回滚机制. 我们行如果做一笔业务的话先要把帐户锁定不让其他用户使用然后处理完帐户后再解开这样的话中间如果速度慢,或者进程死了的..........[/quote:4f43649d12] Transaction就是用的回滚机制(确切地说应该叫[b:4f43649d12]多版本并发控制机制[/b:4f43649d12]),回滚就是指的Transaction。 |
| 无双 回复于:2003-06-01 17:11:47 |
| 如果速度慢,或者进程死了的话其他人根本做不了业务这中事一忙的话就会发生. 中间件应该有处理这个的方法吧 ORACLE中也有处理进程死时的情况 如果进程死了 那么它的锁会被释放 事务会被ORACLE回滚 所以其它进程不会发生死等的情况 |
| win_bigboy 回复于:2003-06-02 13:01:21 |
| 有谁知道大行的做法吗? 是用数据库回滚机制(begin work/commit work/rollback work) 还是通过程序控制? |
| win_bigboy 回复于:2003-06-02 13:03:58 |
| 有谁知道大行的普遍做法? 是用数据库回滚机制(begin work/rollback work/commit work) 还是通过程序控制???? |
| win_bigboy 回复于:2003-06-02 13:04:41 |
| 有谁知道大行的普遍做法? 是用数据库回滚机制(begin work/rollback work/commit work) 还是通过程序控制???? |
| 蓝色键盘 回复于:2003-06-02 13:41:49 |
| 楼主,不知道你们是做一个银行中间业务或者核心业务的系统,还是? 如果是说说你的需求。你的描述不够详细。 你描述得哪种业务问题,在国内的银行业中一般的是通过冲正机制来实现的。 需要补充的是:业务系统之所以是事务型的,完全是因为数据库系统提供了OLTP的功能导致的。如果业务逻辑复杂,并且需要保证操作的完整性,这个根据不同的交易类型,处理方式不一样。例如,中间业务,要不要冲正以及怎么冲正,要看错误发生在那个环节,是在与第三方的通讯中还是与核心主机的通讯中,两别帐务是否平。是否出现了单别张等等。 |
| hb317 回复于:2003-06-02 13:55:21 |
| 是这样的,对于银行业务来说,如果帐已经记了,只是打印失败是不需要回滚的。一般来说都会有补打的单独交易。对于数据库操作的问题可以通过 commit起事物,如果是网络的问题可以通过中间件来保证交易的完整性。如果是跨系统的业务(中间业务)一般都会对帐的。 |
| hb317 回复于:2003-06-02 14:01:39 |
| 如果只是打印失败,是不需要回滚的。一般都回有补打的交易。 交易连动和原子交易是不同的。 如果是数据库中要记好几个表,可以通过数据库的事务来实现事务的完整性。 如果是行内通信问题可以利用中间件来保证交易的完整性。 如果涉及第三方一般都要对帐的。 另外由于业务的要求,不一定所有的交易都是一记双迄的。 |
| 小芝麻 回复于:2003-06-02 14:43:47 |
| 不会吧。你们银行应该网络是专线啊。还会慢? 那其他的应用怎么办啊。 |
| alphaliu 回复于:2003-06-02 14:54:26 |
| 楼主用的什么数据库啊 |
| superzhang 回复于:2003-06-02 14:59:54 |
| 程序控制是一个方面,不多说了,大部分都是使用事务来控制, 还有就是业务的设计。 各种反交易,冲正交易等都是为了处理这种东西, 还有各种的“补××” 的业务操作也是这为了这个。 对于任何一个业务设计都要考虑到错误的情况,以及错误处理的情况。 |
| win_bigboy 回复于:2003-06-02 15:51:38 |
| 我指的是银行帐务核心系统, 欢迎大家指教. 我们用的是 Informix |
| win_bigboy 回复于:2003-06-02 15:58:59 |
| 我以前碰到的系统是用事务控制的, 打印和会计记帐在柜台上是一个交易,但 实际是分开的,好象出来没有出现过记帐了打印不出来的情况. 不太清楚是不是使用了交易联动的缘故. 现在的系统一个交易可能分为记会计帐,记现金库, 打印,当中中断了, 交易就很不完整了麻烦很多. |
| stroustrup 回复于:2003-06-02 16:17:56 |
| 首先银行的核心帐务系统的运作方式这里我不做解答。 至于记帐方式,一般是通过事务处理。 原子交易、组合交易一般运用在后台(处理方法不太一样,但区别也不是太大)。 比如:前台通过中间件提交交易1234(等待结果或立即返回),后台就按照1234规则解包、处理(返回结果或不返回),完成一次交易。 ps: 有基于数据库(也不一定就是数据库)的帐务处理不用事务机制的? |
| 蓝色键盘 回复于:2003-06-02 16:22:24 |
| 银行核心业务这一块,每个商业银行处理不尽相同。 楼主用Informix是建行还是光大,还是? |
| kinghood 回复于:2003-06-02 16:23:30 |
| 我不明白用事务有什么不好? 楼主能说说你的高见吗? |
| win_bigboy 回复于:2003-06-02 16:32:19 |
| 我觉得是应该用事务控制但据负责该项目的软件公司介绍是因为用了事物交易太慢了(我们是江苏某地的地方商业银行),但据我所知道的南京商业银行也是用事务控制的,而我们的业务量是比不上他们的. 所以我觉得也应该用事务控制,而不应该 在表中用记标志(流水戳) 的方法去锁住记录. 原子交易体现了程序的可重用性和交易配置的灵活性,我到是很赞成的. 因为也很多不懂,所以才想问问大行的做法. 我总觉得如果大行也象我们的软件一样的话,那肯定是不可想象的. |
| 蓝色键盘 回复于:2003-06-02 16:38:40 |
| 事务的布局和划分很重要,当然在保证业务逻辑完整性的基础上而言的。 可以参照建行的 |
| sunrace2000 回复于:2003-06-02 16:48:38 |
| 楼主是徐州农信的吗?你们的系统好像是6000+INFORMIX? |
| stroustrup 回复于:2003-06-02 16:49:23 |
| 可以探讨一下吗?我在江苏一国有商业银行。 |
| win_bigboy 回复于:2003-06-02 16:52:24 |
| 是啊,建行这方面做的比较好,我也想参考一下建行的啊,就是不知道那位老兄可以给我介绍一下最好能有份系统框架的文档,先谢谢大家. 如果有朋友有发到我的邮箱谢谢. |
| stroustrup 回复于:2003-06-02 16:59:21 |
| 你们的系统是不是北京易初公司的? |
| win_bigboy 回复于:2003-06-02 17:03:41 |
| 哈哈不是北京易初的啊 |
| win_bigboy 回复于:2003-06-02 17:04:39 |
| 欢迎发表意见 |
| win_bigboy 回复于:2003-06-02 17:07:40 |
| 我在网上也看过很多软件公司的解决方案大同小异什么 会计一本帐, 以客户为中心原子交易配置等等大同小异, 没什么实在的参考价值. |
| stroustrup 回复于:2003-06-02 17:08:44 |
| 金融联机系统的开发商(或集成商)好的不是很多,联想、长天等比较过硬。 |
| win_bigboy 回复于:2003-06-02 17:10:12 |
| 明天我把我们系统的做法写出来,你能把你们软件的框架列出来吗? |
| stroustrup 回复于:2003-06-02 17:13:44 |
| 只能点到为止。 |
| win_bigboy 回复于:2003-06-02 17:17:25 |
| 是的我也只需要这么多一个大概就可以了,如果不便公开发到我信箱上好了. 做了好几年金融软件想好好想想这么做合适. |
| blogliou 回复于:2003-06-02 17:46:49 |
| 是啊,我特别想知道全国性的大行是否是通过事务来保证的 begin work; 处理银行业务 commit work; 但我们行没有用事务,据说是因为处理时间太慢. 所有我想问问大家. ******************* 我所工作过的项目(基本都是大行)没有不用事务处理的! 这是基本常识问题.速度慢是瞎扯. |
| hb317 回复于:2003-06-02 18:53:46 |
| 如果是批扣或对帐一类的东东是要考虑断点恢复,逐步提交的。 日常交易应该都是一样的。有的行通信速度真的很慢。和数据库本身无关。 ps 中午帖子贴不上,搞了许多次,有灌水的嫌疑:) |
| 无双 回复于:2003-06-02 18:57:38 |
| 偶没有怀疑 不要怕:) 如果是短时间的操作 那么没有必要自己管理事务 因为事务中每一步都可能出错 或者是程序异常退出 这时数据库的数据就会导致不一致 这样的后果就很严重 如果是时间长的操作 那么也可以分成几个事务实现 |
| hb317 回复于:2003-06-02 19:11:22 |
| 有时有的系统比较喜欢设制一堆外键。加上数据比较多,可能会影响速度。典型的例子是对历史表的操作。 |
| fjdx 回复于:2003-06-02 19:44:37 |
| 一般是通过冲正来实现的,为了保证交易的成功率,在交易上要使用一圈半的模式。比较好 |
| hb317 回复于:2003-06-02 19:54:05 |
| [quote:d67708b019="fjdx"]一般是通过冲正来实现的,为了保证交易的成功率,在交易上要使用一圈半的模式。比较好[/quote:d67708b019] 什么叫一圈半?还请指教 |
| fjdx 回复于:2003-06-02 20:05:04 |
| 就是通讯时,一般都采用,请求和应答方式,这个叫一圈 如果由请求方再发一个ok交易给应答方,那就是多半圈 |
| hb317 回复于:2003-06-02 20:08:10 |
| 哦,原来还有这么个学名 |
| hb317 回复于:2003-06-02 20:09:30 |
| 不过要看接入渠道了。应该不是所有的,涉及第3方的应该比较多 |
| kinghood 回复于:2003-06-02 21:09:19 |
| 恩,看了楼上各位高见之后才知道天下乌鸦真的一般黑啊,哈哈 无非就是原子交易,事务,系统冲正,一圈半。。。合合合 估计都是抄国外的 |
| hb317 回复于:2003-06-02 21:26:05 |
| 国外的新系统是从业务上有突破,从而推动架构的革新。其实现在很多东西不是技术上的问题。现在的东西都不是什么抄来的,我认为主要是原来会计制度就有相应的做法,偶们只是翻译成c而已。 |
| kinghood 回复于:2003-06-02 21:33:52 |
| 有道理,不过这也仅限于unix下 window下每天都有新技术地 尤其是web这一块 |
| hb317 回复于:2003-06-02 21:46:25 |
| web是一种渠道而已,没有人放心吧数据db告倒win上的。听说广东健行用的是NT结果后来终于受不了了:) |
| 无双 回复于:2003-06-02 21:47:52 |
| 但windows下的许多新技术不过是旧瓶装新酒 改了一点 如从以前的active 到com等 unix下许多技术都是稳定成熟的, 所以很少改动 |
| hb317 回复于:2003-06-02 21:48:07 |
| 欧们的技术都是10前的。 没什么。所以要失业了。:( |
| hb317 回复于:2003-06-02 21:54:05 |
| 欧一致认为,这个行但技术不是最重要的。只是工具而已。关键看你咋做。听说招商的技术也不是最新的,可是她的很多业务都很有新意,偶一向很佩服。 |
| win_bigboy 回复于:2003-06-03 08:36:29 |
| 不好意思文件不能上传, 请到以下连接处看银行交易框架示意图[url]http://www.evermoresw.com.cn/bbs/cgi-bin/topic.cgi?forum=1&topic=177&show=0 [/url] |
| stroustrup 回复于:2003-06-03 08:38:00 |
| 楼上的兄台说的有道理。现在的关键不是技术,而是对技术的运用与管理的创新。 |
| win_bigboy 回复于:2003-06-03 08:47:43 |
| 我觉得对于中小银行来说,科技是很重要的, 没有技术的支持很多东西做不了我觉得招行就是一个很好的例子. |
| menp9999 回复于:2003-06-03 10:18:09 |
| [quote:ca100be8b5="无双"]这些都是通过事务来实现的 一般数据库都会提供事务支持 如果没有提交 那么所做的改变没有写到数据库中 中间件也有事务功能[/quote:ca100be8b5] 你是不了解还是瞎说?我从来没有见过在广域网上的真正应用的分布事务应用. |
| menp9999 回复于:2003-06-03 10:18:44 |
| [quote:987d845357="win_bigboy"]我觉得对于中小银行来说,科技是很重要的, 没有技术的支持很多东西做不了我觉得招行就是一个很好的例子.[/quote:987d845357] 我呸,这就是科技?别糟蹋这个词了好不好? |
| menp9999 回复于:2003-06-03 10:21:45 |
| [quote:a365a3c811="win_bigboy"]1-银行在做某些业务时,柜台上看的一个交易.实际上可能是几个交易的组合, 比如说, 我们行现在的取款交易就分成了 1-记帐, 2-记现金 3-打折; 在交易当中,常常会碰到网络或其他问题可能造成帐记了, 现金没记, 或帐记了..........[/quote:a365a3c811] 从概念上,确实是一个事务不完整,但是实际上没有那个系统能做到真正的分布式数据库应用.所以事物的概念没有办法应用在这里来解决问题.目前这帮臭手们也只能在我们面前牛,呵呵,真的问题他们就解决不了,呵呵. |
| menp9999 回复于:2003-06-03 10:24:52 |
| [quote:b0cc0bcfb2="win_bigboy"]是啊,我特别想知道全国性的大行是否是通过事务来保证的 begin work; 处理银行业务 commit work; 但我们行没有用事务,据说是因为处理时间太慢. 所有我想问问大家.[/quote:b0cc0bcfb2] 不可能,在局域网上还差不多.银行的应用这么做是不能保证交易事务的完整性的. |
| menp9999 回复于:2003-06-03 10:25:26 |
| [quote:297f0202b5="JohnBull"] 使用transaction(事务)是正解,“速度慢”完全是外行话。 :)[/quote:297f0202b5] 解你的大头,不懂别充内行. |
| menp9999 回复于:2003-06-03 10:27:26 |
| [quote:6107a1b6f7="JohnBull"]滚就是指的Transaction。[/quote:6107a1b6f7] 好了,别在这里丢丑了.不知道就不知道,呵呵.银行的应用是C/S架构,楼主的不完整指的是C端和S端不一致,你的事务能应用么? |
| menp9999 回复于:2003-06-03 10:29:34 |
| [quote:64c4e7874e="win_bigboy"]有谁知道大行的做法吗? 是用数据库回滚机制(begin work/commit work/rollback work) 还是通过程序控制?[/quote:64c4e7874e] 对于C和S端,是应用事务,对于交易的完整性,一般的他们没有什么好的办法处理.手工调帐吧,不过现在舍得花钱,基本上出现那些问题比较少了. |
| menp9999 回复于:2003-06-03 10:30:27 |
| [quote:9de7b5d3f9="小芝麻"]不会吧。你们银行应该网络是专线啊。还会慢? 那其他的应用怎么办啊。[/quote:9de7b5d3f9] 专线就快么? |
| gadfly 回复于:2003-06-03 10:30:38 |
| 呵呵,我虽然在银行的系统集成商待过,但是那时候不是做这方面的事。 倒是想洗耳恭听menp9999兄的高见 |
| menp9999 回复于:2003-06-03 10:31:36 |
| [quote:11593e9984="kinghood"]我不明白用事务有什么不好? 楼主能说说你的高见吗?[/quote:11593e9984] 事务对保证交易的完整性没有帮助. |
| menp9999 回复于:2003-06-03 10:32:54 |
| [quote:452c87762a="win_bigboy"]是啊,建行这方面做的比较好,我也想参考一下建行的啊,就是不知道那位老兄可以给我介绍一下最好能有份系统框架的文档,先谢谢大家. 如果有朋友有发到我的邮箱谢谢.[/quote:452c87762a] 好了,如果你都认为建行做的比较好的话,我无话可说了.真没有谁做得好了. |
| menp9999 回复于:2003-06-03 10:34:27 |
| [quote:d1562f7074="hb317"]哦,原来还有这么个学名[/quote:d1562f7074] 三次握手,呵呵. |
| 蓝色键盘 回复于:2003-06-03 10:37:04 |
| 本人不才,曾经做过2年多银行业务,但还是外行。 menp9999兄弟,继续发表你的高见。 |
| menp9999 回复于:2003-06-03 10:38:19 |
| [quote:c74da05981="gadfly"]呵呵,我虽然在银行的系统集成商待过,但是那时候不是做这方面的事。 倒是想洗耳恭听menp9999兄的高见[/quote:c74da05981] 哪有什么高见呀,有了我就早去高就去了, |
| 蓝色键盘 回复于:2003-06-03 10:44:30 |
| 我估计menp9999对银行业务很熟悉,要不然也不会把这里的兄弟们都一棍子打死! 业务随着需求在发展,处理业务的系统随着需求和计算机技术等逐步自动化、电子化。,这个话题完全可以自由讨论,但是没有标准和绝对的正解! |
| stroustrup 回复于:2003-06-03 11:08:57 |
| 楼上的做个应用吗? |
| stroustrup 回复于:2003-06-03 11:14:16 |
| 建行的前台采用的是联想的ace平台 我不知menp9999对银行业务有什么建议,大家等着呐。 另:我不在建行工作。 |
| 蓝色键盘 回复于:2003-06-03 11:25:28 |
| 承接建行项目的当年有南天、联想两大家,现在建行的大项目让神码来做,楼上时神码的吧。 |
| menp9999 回复于:2003-06-03 11:33:02 |
| [quote:b67e5a9970="蓝色键盘"]我估计menp9999对银行业务很熟悉,要不然也不会把这里的兄弟们都一棍子打死! 业务随着需求在发展,处理业务的系统随着需求和计算机技术等逐步自动化、电子化。,这个话题完全可以自由讨论,但是没有标准和绝对的..........[/quote:b67e5a9970] 呵呵,发发牢骚,别认真哦. |
| stroustrup 回复于:2003-06-03 11:33:14 |
| 不,我们用神码的产品。 |
| hb317 回复于:2003-06-03 12:10:33 |
| 9999吓得偶都不敢说话了。理论上来说交易中间件就是为了解决分布式系统中的事务的。但是,现在一个系统只有一个数据DB主机,所以主要还是解决了通信上的问题,以便出错时回滚。有时有的行有两个系统,典型的是卡一套,核心业务一套,当时做的时候就只能靠对帐了,不知9999兄有何高见? |
| win_bigboy 回复于:2003-06-03 12:27:48 |
| 讨论了好久,我还是稀里糊涂. 要是有点合适的资料就好了. |
| hb317 回复于:2003-06-03 12:57:14 |
| 楼主的题目比较大:) 偶们就天马行空了 |
| gadfly 回复于:2003-06-03 13:11:44 |
| 呵呵,集思广益。 我还有些朋友在相关公司。有些做过一些大行的业务系统,包括使用中间件opentp(现在可能都没人用了)。问了其中一个,以下是对话,也许有点帮助: [quote:db6e8db48d] Q: 说: 有个人问个银行业务处理的问题 Q: 说: 你清不清楚 Q: 说: 1-银行在做某些业务时,柜台上看的一个交易.实际上可能是几个交易的组合, 比如说, 我们行现在的取款交易就分成了 1-记帐, 2-记现金 3-打折; 在交易当中,常常会碰到网络或其他问题可能造成帐记了, 现金没记, 或帐记了,现金也记了,但打折没打, 在此想问问在座的各位,你们在处理这类问题时采取了什么方法来控制? 是中间件层控制呢? 还是通过其他方法. 2-现在的银行系统都采用的交易码驱动的方式,先是将帐户锁定,然后开始业务系统处理,处理成功后更新数据库中的实际帐户信息.我想问的是如果交易当中失败了怎么样?有谁能告诉我现在大行采用的业务系统框架是什么样的? A: 说: o A: 说: 中间件控制 Q: 说: 就是通过中间件的配置 A: 说: 这个属于所谓的联级交易 Q: 说: 将这些交易整合为一个交易? A: 说: 成功就都成功,失败就都失败 A: 说: 不是 A: 说: 联级交易 Q: 说: 哦 Q: 说: 2呢? A: 说: 把若干个单独的交易串联起来 Q: 说: 涉及很多业务系统怎么办? A: 说: 所以要综合业务系统阿 Q: 说: 综合?总有些事独立的业务吧? A: 说: 没有综合业务系统,就没有综合柜员 A: 说: 你就不可能在一个柜员做完整个交易 Q: 说: 哦 A: 说: 要到处跑 Q: 说: 明白你的意思了 Q: 说: 就是要专门做这样一个系统 A: 说: 独立的事务,就需要去专门的柜台 A: 说: 是的 A: 说: 这就是为什么有的时候你需要开很多的账号的原因 A: 说: 当然,银行很想改变这种状态 Q: 说: 2的问题我都看不懂什么意思 A: 说: 但是,这种状态的改变,需要投资很多钱 Q: 说: 你是指综合业务系统? A: 说: 2里他在胡说八道 Q: 说: 呵呵 A: 说: 他以为是在做企业系统呢 A: 说: 还锁定账号 Q: 说: 这些处理都不需要应用管的吧 A: 说: 二次提交都不知道 A: 说: 我去吃饭去了 [/quote:db6e8db48d] |
| menp9999 回复于:2003-06-03 13:25:01 |
| [quote:a9cc98b41b="hb317"]9999吓得偶都不敢说话了。理论上来说交易中间件就是为了解决分布式系统中的事务的。但是,现在一个系统只有一个数据DB主机,所以主要还是解决了通信上的问题,以便出错时回滚。有时有的行有两个系统,典型的是卡一套..........[/quote:a9cc98b41b] 无知的人说大话,象我就是.呵呵,真把你吓住了,呵呵 |
| hb317 回复于:2003-06-03 13:26:52 |
| 他说的记现金可能是记尾箱吧。出纳的那几张明细是单独记的。 |
| superzhang 回复于:2003-06-03 13:28:37 |
| 不用在讨论了,这些问题讨论到明年的今天还是如此! 给大家讲一个我的经历,也是笑话,轻松一下: 需要完成的功能: 记帐,然后打印东西。 经历: 1>完成记帐,传递文件到前台,打印. 不行:要是文件没有接受成功? 2>交易联动,完成记帐,传递文件到前台,打印. 不行:前台打印机坏了咋办? 3>加重打各种东西的交易,后台需要保留许多文件和交易的对照. 不行:后台文件太多,没地方,而且不敢删除. 4>加前台重打各种文件的功能. 不行:前台操作员看不懂文件名. 5>找领导! 领导说:打印机要坏了,修! 完了. ^_^!!!!!! |
| hb317 回复于:2003-06-03 13:30:21 |
| [quote:ebb21a0383="menp9999"] 无知的人说大话,象我就是.呵呵,真把你吓住了,呵呵[/quote:ebb21a0383] 客气客气 :P :P 你也没说偶什么 |
| hb317 回复于:2003-06-03 13:32:53 |
| 我一开始就说可以做一堆补打的东东吗,不过打印凭证这类的东西不用传文件的 |
| 蓝色键盘 回复于:2003-06-03 13:44:01 |
| 中间件opentp有人还在使用??? 不知道南天的OFP、UB等还能用多久? |
| gadfly 回复于:2003-06-03 14:06:06 |
| opentp估计是不照了,可是tonglink也是一脉相承。 我说的"做过"都是很久以前的事了。 |
| hb317 回复于:2003-06-03 14:12:25 |
| UB还有版本呀,不过客户都不要呀:( |
| 蓝色键盘 回复于:2003-06-03 14:16:04 |
| 听到opentp这个名字很亲切,如果有人再用,说明生命力还是较强的。是好事。 TongLINK/Q(或TongEASY)是基于消息(或交易)的中间件产品。 这些都是国内的厂家开发的,尽管这两者在市场占有率方面比不上Tuxedo、MQ、CICS等。但是作为国产软件,还是应该支持。 题外话:opentp可惜没有人继续做了。东方通现在还在做Tong系列,可惜没有多少突破。 |
| 蓝色键盘 回复于:2003-06-03 14:17:42 |
| [quote:594563c173="hb317"]UB还有版本呀,不过客户都不要呀:([/quote:594563c173] UB在建行用的比较多,如果我没有猜错的话,UB现在还用在规面系统到前置系统之间。(大集中业务除外)。 |
| 蓝色键盘 回复于:2003-06-03 14:18:56 |
| 例如山东省现在可能还在用如上这个模式。 |
| win_bigboy 回复于:2003-06-03 14:24:30 |
| 哈哈看了大家的讨论我有所启发了. |
| win_bigboy 回复于:2003-06-03 14:37:02 |
| 我感觉我们的系统差就差在中间件上,接到前台相应后往共享内存一放就完事了, 根本谈不上有什么功能了. |
| hb317 回复于:2003-06-03 14:49:18 |
| 也不见得了,其实业务逻辑层可以做的很丰富的,不是接了个中间件就号称是3层结构了 |
| stroustrup 回复于:2003-06-03 15:01:51 |
| 中间件不但是将前台数据采集、业务逻辑、后台数据仓库分开,在系统的横向扩展上有很大的灵活性。不一定是3层,可以是N层,主要看你的应用了。 我们用CICS。 |
| hb317 回复于:2003-06-03 15:12:59 |
| 用什么无所谓的。其实现在好象还没有谁把DB和业务逻辑分开的 |
| hb317 回复于:2003-06-03 15:15:26 |
| cics:)是不是交行的? |
| stroustrup 回复于:2003-06-03 15:39:41 |
| 为什么不能把DB和业务逻辑分开? |
| hb317 回复于:2003-06-03 15:47:27 |
| 有的东西大家都知道好,可是就是没法做。很多是非技术层面的因素 |
| 蓝色键盘 回复于:2003-06-03 18:41:42 |
| 没想到,这个问题竟然跟了7贴,不可思议!呵呵 |
| forkson 回复于:2003-06-03 18:56:29 |
| [quote:1103c96e9c="蓝色键盘"]中间件opentp有人还在使用??? 不知道南天的OFP、UB等还能用多久?[/quote:1103c96e9c] 呵呵,UB不能算是南天的吧?应该算是北京先进数通的,开发这个中间件的主要人物现在先进数通:) 山东建行确实有用UB。 :wink: |
| hb317 回复于:2003-06-03 18:58:44 |
| 不如开个银行系统专版吧 |
| forkson 回复于:2003-06-03 19:02:25 |
| 呵呵,这方面技术比较强的行业就是银行和保险了:) |
| forkson 回复于:2003-06-03 19:04:01 |
| 其他用到UNIX的一般来说技术不怎么强,我好想再做回金融系统啊 :( |
| hb317 回复于:2003-06-03 19:04:07 |
| 不知道电信如何,应该也不错呀 |
| hb317 回复于:2003-06-03 19:05:22 |
| 围城 |
| li2002 回复于:2003-06-03 21:59:15 |
| 好像现在的系统都用中间件了,不过考虑到通信故障还需自动冲正,抹帐,重打交易,查询末笔交易等机制来保证 这个问题提得太大了,好像没有统一的解决办法,建议开设专版细化讨论!! |
| slg1972 回复于:2003-06-03 23:44:07 |
| 我们的交易出错(通讯引起的),一般要回冲中心上笔交易,如果不回冲,别想办业务.如果交易成功,没有打存折的话,用手工添,yun,骏科公司的东东,不知其他公司的也这样,"骏科"叫"日达公司",中间界好象用odbc,东西一个字,(乱) 另外,我认为应该把银行的中间界改为corba,corba可以跨行,跨数据库,跨系统.他是我见过最好的中间界,他是下一带网络的基础,他是现在中间界的工业标准.牛吧,连嵌入是系统都支持. |
| gadfly 回复于:2003-06-04 00:04:01 |
| ?? 中间件也分为很多种,消息,事务, corba不是任何地方都适用的。 |
| win_bigboy 回复于:2003-06-05 08:36:21 |
| 我原来碰到的一个系统 它的消息中间件支持 1-二次重发(将请求或回应发在buff中,如在规定时间未收到响应,可重新再发), 2-交易转发(适用于分步式数据库, 他的数据库放在几个不同的地方), 3 二次提交,,交易要么都成功,要么都失败. 还有一个数据库中间件: 定义了sql操作表的统一接口 这个中间件技术真是我碰到的比较好的一个. 但他的应用系统是面向业务的流程式的.网上说是第四代技术,现在不行这个, 现在都用原子交易,所以现在在银行的应用不是很多了. 数据库中间件 |
| stroustrup 回复于:2003-06-05 08:39:20 |
| 不是说什么样的中间件最时髦就用什么样的中间件。关键是你的应用系统需要什么什么样的中间件。还有就是该中间件供应商的技术支持等等多方面。 我们的口号是:不求最贵、最好,但求最实用、最安全。 |
| 蓝色键盘 回复于:2003-06-05 09:40:34 |
| [quote:2348aed5b2="forkson"] 呵呵,UB不能算是南天的吧?应该算是北京先进数通的,开发这个中间件的主要人物现在先进数通:) 山东建行确实有用UB。 :wink:[/quote:2348aed5b2] forkson兄是在南天待过吧? 是的,WN和GB开发的。至于好坏还是让用户评价。 可以到www.adtec.com.cn中看看。 |
| hb317 回复于:2003-06-05 11:19:25 |
| 现在墙上还贴着代码 |
| gadfly 回复于:2003-06-05 11:36:35 |
| 呵呵,在哪开发就算那里的,不能说人走了,产品也带走了,没这种说法。 在南天一些老客户,UB应该还有使用。 [quote:dd131ea10e] 现在墙上还贴着代码 [/quote:dd131ea10e] 说的上地的南天大厅吧。 |
| hb317 回复于:2003-06-05 11:45:27 |
| 是呀 |
| forkson 回复于:2003-06-05 18:54:51 |
| [quote:9ce930adb7="蓝色键盘"] forkson兄是在南天待过吧? 是的,WN和GB开发的。至于好坏还是让用户评价。 可以到www.adtec.com.cn中看看。[/quote:9ce930adb7] 呵呵,蓝兄,说不定我们还曾经是过一家人呢!晕 :lol: |
| slg1972 回复于:2003-06-05 19:45:42 |
| gadfly老兄认为corba不能作为银行的中间界了,请说明理由。 |
| RealArthur 回复于:2003-06-05 19:47:42 |
| 学习 |
| gadfly 回复于:2003-06-06 00:52:54 |
| 按照IDC的分类方法,中间件可分为六类。分别是仿真/屏幕转换、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。 在我们的主要几个银行,用的最多的是交易中间件和消息中间件。 交易中间件:IBM的CICS,南天的opentp, 通科技的tongeasy都属于这类。包括工行、中行、农行、建行的IBM主机分行,深圳发展银行等,主机上运行的业务包括储蓄等内容。适用于联机交易处理系统,管理分布于不同计算机上的数据的一致性,保障系统处理能力的均衡负载。利用交易中间件提供的DTP功能,分布式事务处理功能,保障由于分布式数据源之间的交易完整性。中间件应用设计应该是从异构的计算资源中创建一个“虚拟主机”:在分布式应用环境下提供可管理的相互关联的资源。交易中间件提供了一个基础的框架来帮助你建立、运行和管理一个三层客户机/服务器模式的应用,使你不需要从零做起,缩短应用开发的时间,提高了应用开发的成功率。中间件在对事务完整性的保证、对大规模并发处理的响应、对异构系统互联的透明支持,以及对应用数据的安全性保护等方面的表现将成为应用系统成败的决定性因素。具体的介绍和原理可见http://www.huihoo.com/middleware/trade_middleware.html。 在消息中间件使用方面,IBM MQSeries的应用案例包括银行的清算系统等;国内一些知名厂商的中间业务平台产品构建在BEA的TUXEDO/Q上,这类产品在我国银行业的应用也比较广泛,TongLINK/Q在建行的国际业务系统、B股资金清算系统的实现上得到了应用。通信协议是在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如TongLINK、BEA eLink 、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是销售额最大的中间件产品。 CORBA(通用对象请求代理体系结构)是在当今快速发展的软件与硬件资源的情况下发展出的一种新技术。它可以让分布的应用程序完成通信,无论这种应用程序是什么厂商生产的,只要符合CORBA标准就可以相互通信。其核心部分是对象请求代理(ORB),是一个便于实现不同硬件和软件平台上的互操作和集成的软件总线。从软件开发者的观点来看,ORB抽象了分布式系统中远程方法调用的内在的复杂性。使用ORB,客户可以调用服务器的对象或对象中的应用,被调用的对象不要求在同一台机器上。由ORB负责进行通信,同时ORB也负责寻找适于完成这一工作的对象,并在服务器对象完成后返回结果。客户对象完全可以不关心服务器对象的位置,实现它所采用的具体技术和工作的硬件平台,甚至不必关心服务器对象的与服务无关的接口信息,这就大大简化了客户程序的工作。 CORBA通过ORB把分布的对象连接成一个逻辑上统一的整体,用来对不同对象系统进行集成,提供灵活的的对象调用与功能实现。从分类来说是一种对象中间件。 当然corba规范中,是包含交易服务(OTS)、事件和通知服务(Event and notify service),从功能定义上来说,倒是分别对应了交易和消息中间件的一些作用。但是OTS只是CORBA的应用服务之一,并不是CORBA产品必须实现的,至少从我前两年对两个corba实现,orbit和openorb的了解和使用来说,OTS服务是没有实现的。Event 和notify service倒是有实现。不知道IONA的orbix的实现如何? 而且从近几年看,有关对于CORBA技术的研究已停滞不前。 CORBA性能差,CORBA是一很重量级的协议,有许多附加的描述,通信负担过重,有人将CORBA形容成一头大象。对于典型的关键任务的联机事务处理系统恐怕corba是无法胜任的。 实际上,CORBA还是经常被认为是一项不成熟的技术,尤其是CORBA没有实现许多服务,除了上面说的OTS,还有例如安全性服务。除了与不成熟的ORB实现相关的问题外,软件开发者也往往没有完全训练到可以熟练编写基于CORBA的组件的地步。 引用这篇文章http://www.ccidnet.com/tech/app/2001/07/20/58_2743.html的一些中间件选择观点: [quote:fe75f58970] 中间件的特殊性使得企业在选择具体的中间件产品以前,必须确定企业的应用类型或具体需求,进而仔细确定选择使用哪一类中间件。这一点非常重要,比如企业的应用类型如果只是传递消息,而对高可靠、高并发、高效率无特殊要求,就应该选择消息中间件而非交易中间件。如果是典型的关键任务的联机事务处理系统就应该选择交易中间件。如果要建立分布式构件应用,企业就应该选择基于对象的中间件。如果想基于Web建立应用,最好选用Web应用服务器。下面给出一个选择的流程图: 中间件产品选择流程图 当然,实际情形远非图中描述的那么简单。中间件的功能经常是相互交叉的,比如有的交易中间件包含有消息传递的功能;有些对象中间件继承了交易中间件的特性;而有的应用服务器,可以把交易管理中间件或消息中间件作为它的一种服务,等等。因此,除了技术上的界定以外,还要考虑以下因素: ·技术成熟度。不同的中间件的发展历史都不同。由于中间件涉及的技术面广,与操作系统、网络、数据库、应用都有关系,因此中间件从诞生到成熟需要2~3年的时间。中间件的技术成熟度是一个很需要关注的问题。 ·与遗留应用的结合度。如果您选用中间件构造的应用与传统的遗留应用要建立联系的话,就需要考虑这个问题。 ·使用的难易程度。每类中间件使用的难度也不尽相同。有些中间件只是您应用的一部分,而有些中间件将会给您的应用一个新的体系结构。应用的现状、应用开发队伍的水平、中间件本身的复杂程度等,都会影响中间件的使用效果。 ·成本。不同类的中间件的成本不同,如把消息中间件只是用在局域网上实现数据访问显然代价太大。把交易中间件用在非交易处理类系统中去传递消息同样不足取。另外也要考虑技术培训对开发成本所带来的影响。 ·技术方向。有的中间件比较传统,而有的中间件是发展方向,中间件的选择同您对软件技术发展趋势的把握紧密相关。如果企业已决定用构件技术或Web技术,您就要选择相关的中间件。 [/quote:fe75f58970] 从这些原则来说,至少现阶段corba还代替不了交易中间件,也许能取代消息中间件的作用,但是产品成熟度能否达到像银行这种保守(不是贬义,是指技术成熟,产品稳定这个角度说的)行业的要求,就难说了。 由于我对商用CORBA平台不是熟,用过的都是free的orb,所以以上结论也许有偏颇,欢迎各位熟悉银行业务和中间件的网友指正。 如果有人实际中用过IONA的ORBIX,能发表一下感受,就更好了。 以下是一些中间件和CORBA的资料和讨论链接,有助于大家加深了解。 http://www.ctiforum.com/technology/ctmw/ctmw02_0401.htm http://www.edu.cn/20020828/3065641.shtml http://www.swm.com.cn/rj/2001-10/11.htm http://www.huihoo.com/corba/index.html http://www1.tibco.com/cn/press/020502.html http://www.huihoo.com/middleware/middleware_category.html http://www.ccidnet.com/tech/app/2001/07/20/58_2743.html http://www.huihoo.com/corba/index.html http://www.huihoo.com/corba/security/ http://www.swm.com.cn/rj/2001-10/11.htm http://www.edu.cn/20020828/3065641.shtml 以下两个都是网友们关于银行业务和使用corba的一些讨论,有些意思。 http://www.umlchina.com/best/g4/g273.htm http://www.umlchina.com/best/g12/g736.htm |
| 一颗流星 回复于:2003-06-06 10:54:22 |
| 当一方完成交易,发送了报文,并未收到对方的回应时,在进行下次操作前将自动冲正上次操作。 |
| 蓝色键盘 回复于:2003-06-06 11:52:59 |
| 这不是一颗流星嘛,呵呵 冲正的关键是看帐务是否平。若平不冲,不平则冲。(有些少数银行,平了也冲,可能为了安全起见) 至于冲的时机那是要看出现在应用逻辑的什么地方了。 |
| win_bigboy 回复于:2003-06-06 12:26:47 |
| 帐务机制越说越象我们现在的系统了. 可惜交易示意图被他们删除了. |
| ruby_liu 回复于:2003-06-08 15:49:02 |
| 错不多如楼上所述。 |
| 幸福的秋天 回复于:2003-06-08 20:37:42 |
| 回滚是必要的,关键是回滚的时机。 比如我们银行和移动公司之间的代收程序经常出现这样的问题,不是有单边交易就是有交易以后发票不能打印,我一直在考虑是否可以找到一种检测打印机功能的办法,但是似乎并不可行。 我有个想法,就是把回滚的权利交给代办员,在打印命令以后不要立刻退出系统,而给代办员提供一个打印是否成功的确认,如果成功,那么就提交,如果打印失败那么就立刻自动启动回滚。 |
| menp9999 回复于:2003-06-09 07:59:59 |
| [quote:b63ce0465c="幸福的秋天"]回滚是必要的,关键是回滚的时机。 比如我们银行和移动公司之间的代收程序经常出现这样的问题,不是有单边交易就是有交易以后发票不能打印,我一直在考虑是否可以找到一种检测打印机功能的办法,但是似乎并不?.........[/quote:b63ce0465c] 据我分析,这可能同使用的中间件的类型有比较大的关系. |
| 幸福的秋天 回复于:2003-06-09 23:12:34 |
| 事实上,根本没有和代理单位之间启用中间件呀,所谓的回滚也只能靠自己做程序完成逻辑上的回滚,就是交费——>退费 |
| lianghaibo_lhb 回复于:2003-06-10 08:48:47 |
| 本人就在银行科技部作软件开发,数据一致性肯定是靠事务控制的,一般银行软件不可能出现你说的那种单边帐(如果数据集中的话,跨主机清算的业务有可能单边帐,不过一般都有自动冲正,但不能保证没单边帐),集中式系统肯定要靠中间件支持,中间件功能很强大,事务处理也会接管过去,(我不知道你们用哪种中间件,不可能没有中间件的)类似Begin work;commit等语句可能你在开放的代码中查不到的,由中间件控制了。通常的柜台交易整个交易就是一个事务,所以集中式不可能出现记客户帐而不记现金等之类。打存折有些信息(如打印行数、未过折记录等信息数据库肯定有记录),这些信息的修改也在事务之内的 ,但柜台由于打印机错误等原因,那是不能恢复的,一般等到打印机工作,后台交易已经完成,只是一些打印控制传给打印机而已,肯定不能回滚的。 又多认识了一个同行,很高兴,有空聊聊。QQ45770443。 lianghaibo_lhb@163.com |
| menp9999 回复于:2003-06-10 09:51:17 |
| [quote:a5fb930e19="幸福的秋天"]事实上,根本没有和代理单位之间启用中间件呀,所谓的回滚也只能靠自己做程序完成逻辑上的回滚,就是交费——>退费[/quote:a5fb930e19] 中间件未必就是什么产品,据说你们采用的方式好象是发保温排队列的方式,当然是他们自己开发的了,而且用什么三次握手协议,设计的节电太多了,经常潮湿对不对?呵呵 |
| win_bigboy 回复于:2003-06-10 12:42:58 |
| 我这几天看了一下tuxedo 的文档资料,应该是用数据库事务控制的. |
| lianghaibo_lhb 回复于:2003-06-10 13:39:53 |
| 银行业务是典型的联机事务(OLTP),一般是C/S三层结构,一定有中间件,tuxedo和CICS最常见,有些开发商自己也有中间件产品,(相对便宜)比如南天、太极、联想等,不过我觉得用成熟产品好很多(虽然贵很多),你们系统用的tuxedo在全球市场占有率最大,很不错的,我们用CICS,但我看过tuxedo很多函数名和CICS一样,有机会大家交流下! |
| win_bigboy 回复于:2003-06-10 15:00:23 |
| 我们系统用的是开发商的中间件,就是接收到前台数据后仍到共享内存的那种,我正在看tuxedo, 还没入门. 惭愧. |
| 无双 回复于:2003-06-10 15:05:01 |
| 各位有好的中间件资料可在放到“软件技术版”啊 我想多找点资料可是没有找到多少好的 |
| lianghaibo_lhb 回复于:2003-06-10 15:22:58 |
| 我有一些CICS的资料,怎样给你? |
| unixzyy 回复于:2003-07-09 23:46:36 |
| 谁有InterBank的资料? |
| superzhang 回复于:2003-07-10 08:42:35 |
| 你说的什么InterBank? 是不是深圳东南的通讯中间件? 如果有问题可以和我联系 zhwen2000@163.net |
| 蓝色键盘 回复于:2003-07-10 09:44:07 |
| 以后有时间到,软件技术版,大家好好讨论一下中间件的问题。 偶只是对交易和消息中间件略知一二,但是后提供一个好的思路,大家相互学习。 |
| threehair 回复于:2003-07-29 09:57:12 |
| 我认为银行业务的范围太大了,内容也太多了,不能简单的以一种方式实现,应该是几种方法的结合。这其中应该考虑多方面的因素:必要性,可行性等等,尽可能利用可以利用最现实的机制或者技术 如: 蓝色键盘 提到的 “业务系统之所以是事务型的,完全是因为数据库系统提供了OLTP的功能导致的”应该是指可行性; hb317 提到的“对于银行业务来说,如果帐已经记了,只是打印失败是不需要回滚的”这考虑的就是必要性。 同样以实时性中间业务为例:一般在涉及客户的账务方面应该用的是数据库的事务一致性,同时假如中间业务数据和基本的帐务数据不在同一个数据库中,还要考虑这两个数据库中的数据一致性,此时如果是在同一个交易中实现,一般也采用数据库的事务机制;而与第三方一般多采用实时冲正和事后对账相结合的形式。 |
| liboy.com 回复于:2003-07-29 10:59:02 |
| 可以采用 texudo 来实现分布式处理.但是是别人的软件....呵呵.... |
| xarc 回复于:2003-07-30 18:06:57 |
| 我们在实际的运行中,感觉texudo 确实有他的优势,但仅限于中间业务平台,对于核心系统来说,不能肯定它的优越性。 |
| superzhang 回复于:2003-07-31 08:51:10 |
| texudo 作为中间件来讲,对于中间业务和核心业务来讲没什么区别, 主要看是如何应用,和如何设计应用。 |
| tty1a 回复于:2003-07-31 11:18:34 |
| 大家好!农行现在也用CICS、ACG、LXBS,我是一个小支行的,想了解一下这些内容,有的不凡给我一些这方面的资料,特别是与开发有关的。谢谢!yxph_cn@sina.com |
| superchao 回复于:2003-10-30 18:52:31 |
| 据我所知,事务是不是完全可靠的,教训深刻。 要结合记录标志的办法,可以清楚的在本地日志上反映已经完成的步骤。然后反冲! |
| 天使怎么伤我心 回复于:2004-01-06 14:29:55 |
| 大家好,我是新人,现在在一家银行实习 什么也不懂 希望大家告诉我事物的和冲正的概念 小弟笨点,理解不透彻(以前没接触这方面) |
| sfeng 回复于:2004-01-11 20:14:21 |
| 看完了所有的帖子,好长哟。 希望,chinaunix开个行业应用专版吧,比如银行金融方面,电信方面,保险方面,政府方面等等。 这样,大家可以互相讨论,交交朋友,共同进步三! |






