能否象银行那样,实现数据的通存通取,大家谈谈意见啊!(100分)

  • 主题发起人 主题发起人 zhanghuip
  • 开始时间 开始时间
Z

zhanghuip

Unregistered / Unconfirmed
GUEST, unregistred user!
能否象银行那样,实现数据的通存通取,大家谈谈意见啊!
所里数据库是SQLSERVER6。5,在A所存档的用户资料,在B所也可以交费。
省局可以查到所有资料。
 
我的感觉上倒是可以实现,应该是对用户的权限要求比较严格
不过没有做过试验
 
b所工作时,用a所短web程序远程查询,并提交到a所web程序修改a所数据库。
 
我的想法是做一个认证中心数据库,各个所的用户都去访问它,当不是本地用户时,
到认证数据库做一个认证请求,如果通过,然后在本地写入数据库,再有认证数据库去
找到是那个所的资料,然后把此资料写入存有此用户资料的所里。
但这个认证数据库如何做好。。。。。。。不知道各位大哥有何高见
 
如此还不如做一个总库。每个所添加新记录的时候也向总库写入一份,每个所更新已有
记录时也向总库同步一份,但是不允许直接改写总库(储户只能到开户行办理户头信息
的变更)。在任何一个所的终端机上操作时,先看用户是不是本所的,如果不是本所的
就到总库中去找。在每个终端上可以做一个缓存库,例如,A所开户的储户老张经常到
B所取办理业务,B所就自动将老张的信息缓存到本地库。连续一年没在本所办理业务的
非本所储户的信息将被自动清出缓存。
 
A所开户的储户老张经常到
B所取办理业务,B所就自动将老张的信息缓存到本地库。但老张到B所办理
后如何将刚办理的资料也写到A所去呢,这样有必要吗,
snowboat,你有QICQ,和EMAIL吗,能和你聊聊吗,万分感激。。。。。
 
不一定用QQ啊。DFW就是我们Delphi爱好者的天下呀!
老张在B所只能办理常规业务,例如存取,但是不能修改个人资料。因此也不需要将
个人资料写回到A所。
实际上银行也是有这样的规定的,储户凭本人身份证到开户营业厅(所)办理变更,
但是可以到任何一个联网营业厅(所)办理存取款。
至于业务数据(操作记录,发生额,余额)肯定是要统一存储的,并且还要包在一个
事务里,保证绝对可靠。慢就慢,没有别的办法。
业务数据,是集中存储还是分布存储呢?集中存储有利于借助高质量主干网的速度和
稳定性,但是数据中心的压力也很大,一旦损坏全都罢工!分布存储的话,有一定的
重复建设问题,比如每个小数据中心都要搭建较高品质的系统,租用较高品质的电信
线路,但是不会使局部故障影响全局。
 
对呀,业务数据(操作记录,发生额,余额)肯定是要统一存储的,通一存储是什么概念。
比如说老张(资料在A所)在B所办理业务时,发生额在B所存储外,在中心数据库也有
存储。但此时B或是中心数据库应该是要把此笔业务数据也传到A所去呀,如何传呢。
 
统一存储,并不一定要集中存储,而是说,每条数据只存在一个地方,没有镜像,没有
副本(当然备份是要有的)。比较现实的办法是:每个所(最好是支行,划分到所太碎
了,也不好)存储自己全部客户的业务数据。
 
全域連網就可以了,可同步解決
 
最好不要直接修改A所数据,而是以一条“终端命令”的形式传回去,就像A所的终端传给
A所服务器一样。然后A所把交易结果再传回来。在A所接到命令之后,一直到B所收到结果
并向A确认之时,A所要把老张Lock住,不许任何操作。
 
snowboat的意思是:老张在B所交费后,在B所服务器存储,且在中心数据库存储。
再由中心数据库发判断后给一条命令给A所,A所把刚老张交易的业务数据抓取回来
并向B所发出数据取到的信息,是吗
 
不是这个意思。说明如下:

老张本来在A所开户,个人信息存在A所一份,中心数据库一份;但是老张的业务数据只能
在A所存一份。

老张到A所办理业务,A所终端从本地服务器读取个人信息和业务数据,向本地服务器发送
命令“操作=存款;发生额=1000;时间=2003-05-07 08:20:30;流水号=3AD82F90C76B”,
本地服务器接收后,立即锁住老张这个用户,不许再对他的任何数据进行操作,然后进行
交易,记入数据库,完成后,发给终端机一个回应“状态=成功;流水号=3AD82F90C76B”。
终端机收到以后,显示“交易成功”,打印凭条,再向服务器确认。服务器解除锁定。

老张到B所办理业务,B所终端从中心数据库读取个人信息,从A所服务器读取业务数据,向
A所服务器发送命令“操作=存款;发生额=1000;时间=2003-05-07 08:20:30;流水号=3AD
82F90C76B”,A所服务器接收后,同样锁住老张这个用户,不许再对他的任何数据进行操作,
然后进行交易,记入A所数据库,完成后,发给B所的终端机一个回应“状态=成功;流水号=
3AD82F90C76B”。B所终端机收到以后,显示“交易成功”,打印凭条,再向A所服务器确认。
服务器解除锁定。
  
 
snowboat 真的是非常感谢你这么耐心的说,我在问一下,老张到B所办理业务,
业务数据还是存在A所,B所的数据库不存吗,那这样就是说,中心数据库只有用户的
开户资料,没有业务数据,那在省局去查询时,还要去各个所去取数据。
我现在所是SQLSERVER6。5,准备升级到sqlserver2000,中心数据库用oracle8i
用DELPHI能实现吗,中心数据库要写什么组件才能去实现去向不同的所发指令呢
谢谢
 
我所描述的是若干种模型中的一种,即:开户信息在开户营业所和中心数据库各存储一份,
目的是提高查询速度;业务数据只存在开户支行或人为指定的管辖支行,目的是保证数据
绝对可靠。
这样做,异地交易会发生数据传输的“漫游”,正好可以通过向用户收取“漫游费”的办
法来购买更好的系统和更快的光纤,哈哈!
SQLServer和Oracle的区别,我体会,主要是在海量处理能力上,其次是稳定性,再次是应
用和管理的灵活性,最后是安全性。中心服务器可以采用IBM的小型机,运行AIX操作系统,
数据库用Oracle,现在已经有非常成熟的方案,你可以直接向IBM电话查询。
需要考虑的因素有:业务内容,数据流量,网络介质,地理分布,网络拓扑,等等。
我并不是专业人士,只能和你一起讨论讨论。
   
   
 
谢谢,你说”老张到B所办理业务,B所终端从中心数据库读取个人信息,向
A所服务器发送命令“操作=存款;发生额=1000;时间=2003-05-07 08:20:30;流水号=3AD
82F90C76B”,“
向A所服务器发出命令的是B所终端吗,而不是由中心数据库吗,
那这样不是终端要和所有的所部数据库连接在一起,负荷不是很重,
B所从中心数据库里找到老张的资料,然后判断是那个所的开户资料(如是A所)。
再去连接那个A所数据库。我的意思是有中心数据库去判断发送指令,再来进行转换
 
B所获知老张属A所管辖之后,直接向A所发送命令,不通过中心服务器。

中心服务器最多只保存一个路由列表和一个用户信息备份,当然也可以把路由列表都
下载到B所本地,因为路由列表不会经常变化,可以在网络闲时下载更新。

至于B如何获知老张的所属,可以从中心服务器查询,也可以用前缀编码来偷懒,比
如,所有以“0281”开头的用户是西四营业所的,以“0282”开头的用户是劲松营业
所的。那么,老张如果是“02819937204”,那肯定是西四的。B所在本地保存一个对
应列表,查出之后再找路由。
 
假如要用中心服务器做“中转”,那全国都要经过中心服务器,那还了得呀!
 
假设现在网络全部都是通的,
那B所找到老张是A所的后,向A所发送命令,现在所部都是SQLSERVER2000
那终端就去连接A所的数据库,那要动态去写ODBC的程序了,这样会不会很耗终端的资源
那A所接受B所的数据成功后,又如何发一道命令给B所呢,
 
后退
顶部