希望和各位大虾共同探讨一个方案的总体设计(高难!!!)(50分)

  • 主题发起人 主题发起人 喜洋洋
  • 开始时间 开始时间

喜洋洋

Unregistered / Unconfirmed
GUEST, unregistred user!
****需求:
1、三层结构实现
2、数据库:Oracle 8i for Solaris
3、支持100路以上的并发访问
4、能够支持Client端从LAN,WAN访问数据(在局网中的Client端数据操作量非常大,跨广域网的数据操作量相对较少)
5、与Oracle数据库的连接数尽可能少(多个客户端共享一个数据库连接)
6、能够实现事务支持
****目前我的方案:
开发工具:Delphi 5。0企业版+ SP1
中间应用程序服务器的设计:
1、OS:NT Server
2、MIDAS 3。0(RemoteDataModual中放置TDatabase,TTable等,用BDE连数据库)
3、再将做好的应用程序服务器(dll)放到 MTS 中
客户端:
1、OS:WIN98
2、用DCOMConnection连接应用程序服务器(顺便请教一下它与SocketConnection、CORBAConnection的区别)
3、ClientDatSet
****目前的试验结果:
1、从LAN中访问数据库成功,但速度非常慢
2、跨广域网的试验不知道怎么做(可不可以从理论上分析一下可行性)
希望能够得到各位大虾的高见,有实践结果的更佳。
(有价值的建议,另行高分追加)
 
我看你还是去买一本李维的<<分布式多层应用系统篇>>看看,可以解决你在项目过程中遇到的很多问题
,再有什么特殊的问题,再有针对性地到大富翁上来提出。
  你目前的思路可以说是正确的,不过我劝你最好不要用DCOM连接,配置起来比较费事,
尤其是在广域网中,防火墙就是一个不好配置的问题。用SOCKET连接连接就不错,速度较快,
但客户端与服务器建立连接地比较慢。WEBCONNECTIONl连接速度还可,但速率可能要低一些。
你只有自己试试了。
 
我用过corba,无论是配置还是编程(我用java)都比较方便的。但我不知道100路以上的
时候速度如何?BTW:也想请问一下有没有办法模拟这种大批量的并发访问?
你LAN和WAN如果不一样的话,尤其是WAN的数据较少时,我想用PHP等编程应该就可以了吧。
简单、方便,速度也应该可以。
socket没有用过,不知道编写起来是否麻烦?
 
谢谢各位先,我的意思是客户端无论从 LAN 还是 WAN,都是同一个客户端程序.
所以目前是想找一个两全其美的方法, 既保证连接的可靠性,又保证数据传输速度.
正准备采用SOCKET试验一把,等我公布结果.
 
>> 3、支持100路以上的并发访问
比较恐怖!
>> 4、能够支持Client端从LAN,WAN访问数据
WAN上你用Delphi写COM , 用ASP来调用 (B/S模式,现在大家都这样)
>> 1、从LAN中访问数据库成功,但速度非常慢
是连接数据库时慢,还是访问时慢?
>> 我的意思是客户端无论从 LAN 还是 WAN,都是同一个客户端程序
为什么要这样?
 
to lha
>> 3、支持100路以上的并发访问
>> 比较恐怖!
你这'比较恐怖!'是否有据可查
>>是连接数据库时慢,还是访问时慢?
是第一次连接数据库时慢,50秒左右.
>> 我的意思是客户端无论从 LAN 还是 WAN,都是同一个客户端程序
>> 为什么要这样?
因为这样就可以减少工作量,如果这样不行,那么请教,除了你讲的com+asp方式,有没有纯
delphi实现方式
 
这种编程不能完全依靠Delphi的ClientDataSet,必须通过DCOM编程做一些自己的特殊处理,以提高访问性能。比如数据记录导航、主子表更新等。
 
I think put the datamodule into MTS is a good idea.It's pooling function can
improve the accessing qualtity.I consider the speed shouldn't be very slowly
because I write a program with MTS+ORACLE IN Solaris+delphi5 and the speed can
be accepted.
 
第一次连接速度慢,是你的网络问题,与数据库访问风马牛不相及,查找有关资料,
先搞好你的局域网(网关、路由器或交换机),再试一下!
 
最新结果:

我用SocketConnection试过,客户端跨广域调用服务器成功,且响应很快.
我担心数据传送时, QoS能不能保证.
 
多人接受答案了。
 
后退
顶部