Tuxedo在银行业的应用2

上传人:飞****9 文档编号:132041095 上传时间:2020-05-12 格式:PDF 页数:3 大小:299.99KB
返回 下载 相关 举报
Tuxedo在银行业的应用2_第1页
第1页 / 共3页
Tuxedo在银行业的应用2_第2页
第2页 / 共3页
Tuxedo在银行业的应用2_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Tuxedo在银行业的应用2》由会员分享,可在线阅读,更多相关《Tuxedo在银行业的应用2(3页珍藏版)》请在金锄头文库上搜索。

1、 应用程序开发系列专题应用程序开发系列专题 BEA Tuxedo 在银行业中的应用 在银行业中的应用 北京 经乾 六 六 bankapp 实现的服务器和服务实现的服务器和服务 bankapp 实现了 8 个服务器共 19 个服务 这 8 个服务器是 TLR XFER ACCT BAL BTADD AUDITC BALC ACCTMGR 根据它们在 bankapp 中作用的不同 可以分为三 大类 数据库导入 银行事务处理和帐务审计 下图展示了服务器 服务和客户机之间的调 用关系 未列出帐务审计模块在会话模式下使用的两个服务器和它们实现的 7 个服务 BAL TBAL ABAL TBAL BID

2、ABAL BID Client audit BTADD BR ADD TLR ADD ACCT OPEN ACCT CLOSE ACCT TLR WITHDRAWAL DEPOSIT INQUIRY XFER TRANSFER Client ud Client mio or ud Audits Banking Transaction Database Population tpcall tpcalltpacall tpcalltpcalltpcall tpcall tpcall tpcalltpcall tpcalltpcall Servers Services Clients and the

3、ir Dependencies 在数据导入模块 Database Population 中 客户程序为 ud 它接收 gendata 程序产生 的模拟数据 把它们放到 FML 类型缓冲区 然后提交给 BTADD 和 ACCT 服务器 完成向 BRANCH TELLER ACCOUNT 表中添加初始数据 在银行事务处理模块 Banking Transaction 中 客户程序也为 ud 它接收 gentran 程序 产生的输出数据 把它们放到 FML 类型缓冲区 然后提交给 ACCT TLR 和 XFER 服务器 模拟了银行开户 帐号注销 存款 取款 转帐 查询等基本业务 在帐务审计模块 Aud

4、its 中 常规 请求 响应 模式下的客户程序为 audit 服务器 为 BAL 在会话模式 客户程序为 auditcon 服务器为 AUDITC BALC 1 BTADD 服务器服务器 BTADD 服务器实现了两个服务 BR ADD 和 TLR ADD 它们都从 ud 接收 FML 类型 缓冲区 然后插入到 BRANCH和TELLER 表中 右图是 BR ADD 的部分代码 它 从 transb data 缓冲区中取出 branch id address phone last acct last teller 字段 的值 再执行嵌入式 SQL 语句将它们插入 BRANCH 表 bal 取值为

5、 0 因为所有支 行始初化时 余额为 0 TLR ADD 的流 程与 BR ADD 大致相同 BR ADD TPSVCINFO transb FBFR transf transf FBFR transb data bal 0 0 all branches start with no money branch id Fvall transf BRANCH ID 0 Fget transf ADDRESS 0 address 0 Fget transf PHONE 0 phone 0 last acct Fvall transf LAST ACCT 0 last teller Fvall tran

6、sf LAST TELLER 0 EXEC SQL insert into BRANCH BRANCH ID BALANCE LAST ACCT LAST TELLER ADDRESS PHONE values branch id bal last acct last teller address phone tpreturn TPSUCCESS 0 transb data 0L 0 2 ACCT 服务器服务器 ACCT 服务器实现了两个服务 作者 经乾 邮件 jq75 第 1 页 应用程序开发系列专题应用程序开发系列专题 OPEN ACCT 和 CLOSE ACCT 分别用于处理银行开户和帐

7、号注销业务 下图列出了 OPEN ACCT 的部分代码 它声明了一个名为 occur 的光标 用于从 BRANCH 表中取出 LAST ACCT 字段的值 让它加 1 后作为新帐 号的 ACCOUNT ID 其它字段值都从 FML 缓 冲区中获取 EXEC SQL insert 语句用于创建 新 帐 号 EXEC SQL update 语 句 用 于 将 BRANCH 表中 LAST ACCT 字段值更新为新 帐号的 ACCOUNT ID CLOSE ACCT 服务的 代码也很简单 它先判断 ACCOUNT ID 帐号 是否存在 如果存在 就请求 WITHDRAWAL 服务将剩下的余额全部取走

8、 然后调用 EXEC SQL delete 语句注销 ACCOUNT ID 帐号 OPEN ACCT TPSVCINFO transb EXEC SQL declare ocur cursor for select LAST ACCT from BRANCH where BRANCH ID branch id EXEC SQL open ocur EXEC SQL fetch ocur into last acct EXEC SQL close ocur account id last acct EXEC SQL insert into ACCOUNT ACCOUNT ID BRANCH ID

9、 SSN values account id branch id ss n EXEC SQL update BRANCH set LAST ACCT last acct where BRANCH ID branch id tpreturn TPSUCCESS 0 transb data 0L 0 3 TLR 服务器服务器 TLR 服务器实现了三个服务 DEPOSIT WITHDRAWAL INQUIRY 分别用于处理 存款 取款 查询业务 TLR 服务器的命令行 柜台机编号为 100 e 选项告诉 TLR 服务器 当交易额超过 1000 00 时 DEPOSIT 服务就 向事件代理POST一条

10、BANK TLR DEPOSIT 消息 WITHDRAWAL 服务就向件代理 POST 一条 BANK TLR WITHDRAWAL 消 息 右图是 DEPOSIT 的处理流程 柜台机编 号teller id从命令行读取 客户帐号account id 和存款额 amt 从 FML 缓冲区中读取 amt 不 但要累加到 ACCOUNT BALANCE 上 而且 还 要 累 加 到TELLER BALANCE和 BRANCH BALANCE 上 存款成功后 要向 HISTORY 中写入交易记录 WITHDRAWAL 的流程和 DEPOSIT 大致 相同 不 参数是 A T 100 e 1000 0

11、0 T 100 表示 事 过它要判断取款额 amt 是否大于帐号 余额 中 由于是取款 所以交易额为负值 ACC 的转帐业务 转帐业务可 以分 更新ACCOUNT表 将 BALANCE设置为 acct bal amt 更新TELLER表 将 BALANCE设置为 tlr bal amt 更新BALANCE表 将 BALANCE设置为 branch bal amt 向HISTORY表中插入 交易记录 AMOUNT amt 从命令行取 出teller id 取出FML缓冲区中 account id和amt 查询account id账 号的余额acct bal 根据teller id从 TELLER

12、表中查 询branch id和 余额tlr bal 根据branch id 从BRANCH表中查 询余额branch bal 如果大于 则交易中断 不允许透支 否则依次从 ACCOUNT TELLER BRANCH 表中扣除 amt 然后将交易记录到 HISTORY 表 INQUIRY 服务就更简单了 它从 FML 缓冲区中取出 ACCOUNT ID 根据它查询 TRANSFER TPSVCINFO transb db id Fvall transf ACCOUNT ID 0 cr id Fvall transf ACCOUNT ID 1 0 eqfb fb tp tpretESS 0 tra

13、nsb data 0L 0 Fget transf SAMOUNT 0 t amts tpbegin 30 0 if tpcall WITHDRAWAL reqfb 0 if tpcall DEPOSIT reqfb 0 tpreturn TPFAIL 0 transb data commit 0 urn TPSUCC OUNT 表 若成功 就返回查询结果 4 XFER 服务器服务器 XFER 服务器实现了 TRANSFER 服务 用于处理帐号之间 解为取款和存款两个步骤 右图是 TRANSFER 的部分代码 它先从 FML 缓冲 区中取出源帐号 目标帐号和转帐金额信息 后 然后调用了WITH

14、DRAWAL和DEPOSIT 两个服务 对它两个服务的调用操作都包含 作者 经乾 邮件 jq75 第 2 页 应用程序开发系列专题应用程序开发系列专题 在同一个事务中 所以只有两个调用都成功时 事务才会提交 否则将回滚到完整状态 由 于 XFER 服务器没有直接对数据库进行操作 所以它的扩展名是 C 而不是 EC 5 BAL 服务器服务器 BAL 服务器实现了四个服务 TBAL ABAL TBAL BID ABAL BID TBAL 和 ABAL 用于 器的会话版本 AUDITC 是联系 auditcon 客户机和会话服务 器 B 现了WATCHDOG和Q OPENACCT LOG两个服务 W

15、ATCHDOG 是一 取款金额大于 1000 00 时 TLR 服务 器就 消 息 UTHSVR TMUSREVT TMS 查询一级分行所有柜台机的现金总额和存款总额 TBAL BID 和 ABAL BID 用于查询 某个支行所有柜台机的现金总额和存款总额 右下图是 ABAL 服务的部分代码 非常简单 它不接收任何参数 只是定义了一个指向 aud 结构的指针 transv 然后执行查询 注意查询 语句中使用了 sum BALANCE 计算列 结果放 入aud结构的balance成员中 最后通过tpreturn 调用将 aud 结构返回给客户机 TBAL 的实现和 ABAL 完全一样 TBAL

16、BID 和 ABAL BID 都 接 收 一 个BRANCH ID参 数 然 后 对 BRANCH ID指 定 支 行 的TELLER和 ACCOUNT 表进行统计 它们的实现和 ABAL 基 本 相 同 只 需 加 上 查 询 条 件 WHERE BRANCH ID branch id 即可 6 AUDITC 和和 BALC 服务器服务器 ABAL TPSVCINFO transb data COUNT e data struct aud transv transb transv struct aud EXEC SQL declare acur cursor for select sum BALANCE from AC EXEC SQL open acur nto bal EXEC SQL fetch acur i EXEC SQL close acur tal balanc transv balance to tpreturn TPSUCCESS 0 transb sizeof struct aud 0 BALC 服务器是 BAL 服务 ALC 的一个中间服务器 关于会话通信 已在

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 金融/证券 > 金融资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号