请教几个傻问题!关于系统结构设计!(100分)

  • 主题发起人 主题发起人 barry1999
  • 开始时间 开始时间
B

barry1999

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟目前在开发一个小的销售系统时,有一些疑问
1.这个系统主要有进货,售货,退货,盘点,报表,查询几个功能模块,
我开始准备用DELPHI的MIDAS做一个应用服务器,
做一个Remote Data Module GeneralDataBase,放入TADOConneticon 连接数据库。
把上述几个功能模快封装到各自的Remote Data Module,
里面的TADOQUERY的Connection设为GeneralDataBase。
客户端用DcomConnection,ClientDataset连接到各自的Remote Data Module。
我有一点不明白:按照上面的方案,如果有多个客户端连接到应用服务器时,
会不会互相影响呢?李维的书中提到用TdataBase时,设一个Tsession即可,
但我查了一下TADOCONNECTION的属性,好象没有这个功能。
我因该如何改正上面的设计方案呢。
有更好的设计方案吗?
2.又看了李维的ADO/MTS/COM+里的设计方案,各个表放在一个Remote data module,
然后建立查询,更新两个协调模快。但是里面的事务又如何管理呢?例如:
mtsCoor.库存表.update( 库存,1);
mtsCoor.进货表.insert(code,name,source…….);
虽然update和insert里都调用了SetComplete,但是他如何保证数据的完整性呢,
如果上面两步有一个错了,就应该都不成功。自己还要在写代码吗?
还是mts自动帮我管理,到了mtsCoor.进货表.insert(code,name,source…….);
这一步SETCOMPLETE后就提交给数据库了?mts是如何把上面两步放在一个事务呢?
事务什么时候结束的呢?
如果恰好此时另一个客户端调用了销售模快
mtsCoor.库存表.update( 库存,-1);
mtsCoor.销售表.insert(code,name,source…….);
那事务会冲突吗?
3.一个傻问题,在李维的书看到线程和实例时,越看越糊涂,
请各位看过他的书的”大虾”指点迷津, 里面的STA和多线程还有单实例和多实例究竟
是怎么一回事?
 
不同的用户使用的线程是不同的,也就是说,如果同时有两个用户调用同一个Com/Com+
接口,是不会相互影响的(在中间层中,在数据库中可能有影响如同一纪录)。
而事务是MTS自动处理的,只要你的组件的事务要求为需要事务就可以啦。至于啥时开始
事务/啥时结束事务,你看李维的书就可以啦。
 
各位高手HELP ME!!!
 
To barry1999:
同样的问题,我一样在STA和MTA多线程里困惑
 
从进程的角度来说,Multiple Instance和single Instance,恰好和字面意思相反
Multiple Instance运行时只会有一个进程,而不管有多少客户端
single Instance有几个客户端就有几个进程
这里的Instance其实是指进程里的的数据模板对象
在单个的应用服务器进程里
Multiple Instance可能会有多个数据模板
single Instance只会有一个
 
强烈关注能不能告诉我问题解决没有.
 
这个问题问的好,强烈关注。
另在意个地方看到过一个富翁写的几个函数,server端的实现数据的提取,执行sql语句,1000个客户端不会冲突,哪个找到了,说一下啊
 

Similar threads

S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
S
回复
0
查看
742
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部