大富翁离线浏览器MTS版开发及三层分布式应用学习实践的问题讨论(100分)

从对象设计的原理来说,陈一蛟的思路和方法应当来说是没错的。不过对象粒度的大小
还要考虑许多实际情况,比如数据库资源的占用,数据冗余。把所有的数据存取组件
放在一个数据对象里的问题是,这样的对象很大,由于对象的生存期只存在于
一个方法调用之间,如果没有实现对象池的话,反复创建这样的对象恐怕很浪费资源。
而且,每一次调用都要创建很多不相关的数据存取组件,也同样浪费资源。
细粒度的对象更利于资源共享,因为这些细对象可以被不同的用户同时使用,而粗粒度的
单一对象大部分的存取组件是闲置的却又不能被共享。
在MTS和COM+里的对象怎样设计使用才能最合理有效,在我看来问题不少
希望能有更深入全面的讨论。
 
>把所有的数据存取组件放在一个数据对象里的问题是,这样的对象很大,由于对象的生存期只存在于
>一个方法调用之间,如果没有实现对象池的话,反复创建这样的对象恐怕很浪费资源。
>而且,每一次调用都要创建很多不相关的数据存取组件,也同样浪费资源。
其一、是不是需要(把所有的数据存取组件放在一个数据对象里),一般来说不需要的,但是如
果你的数据库本身才几个表的话,那又有必要把每个表的存取组件放在不同的对象中吗,
他们的划分还是一句话基于Business Model 的大小和 Model 间的独立性
其二、(由于对象的生存期只存在于一个方法调用之间),应该考虑并发性,是不是大部分的并发
都是一个方法的调用,
其三、我是赞同使用对象池的。(每一次调用都要创建很多不相关的数据存取组件,也同样浪费资源)
应该实际测试一下 Create 一类同类的数据存取组件,是不是真的按数量级来分配资源,记住哦,
不是 Use 。对象池的最小池大小的分配,需要根据最大并发数的大小,还需要考虑与数据库连接
的并发数,这也是可以进行计算的,最后应关闭空闲时保持运行选项,让系统按照一定的时间策略
释放对象。
>细粒度的对象更利于资源共享,因为这些细对象可以被不同的用户同时使用,而粗粒度的
>单一对象大部分的存取组件是闲置的却又不能被共享。
有一点是必须考虑的,细粒度的对象会不会大大增加数据库的并发连接数呢。
>在MTS和COM+里的对象怎样设计使用才能最合理有效
我想应该不会存在最合理有效的设计,从 Business Model->Requirement->Designer->Development,
有一点是非常重要的,那就是经验,如果还要讨论的话,那应该进入 OO 方面的讨论会更恰当点。

 
我公司现在开发的就是基于ASP/MTS/COM+的WEB系统.
可我总感觉是在上网一样好慢.(大部分的数据处理在存储过程哟.).
 
多层数据结构(客户端程序在连接至应用服务程序时“拒绝访问”,但在本机上可以)
数据服务中心IP为:xxx.xxx.xxx.120
客户机IP:xxx.xxx.xxx.95
应用服务器IP:xxx.xxx.xxx.82
我在82机上调试可以正常运行。可以打开数据记录。
应用程序自动运行,提供服务。
但当我把前端程序copy至IP为xxx.xxx.xxx.95机时,运行就是连接不上,出现了“拒绝访问”然后退出,
为何?
我把midas.dll拷贝到新客户端(xxx.xxx.xxx.95)机上(OS:winnt server)
运行:regsvr32 midas.dll这样可以吗?????
在NT下没有register.exe文件.
还有如何开放权限呀!
是在dcomcnfg中设置吗?如果设置呀!请多多指教!!!!!
我设置了相关内容,但还是不行,
您看我这样做对否??
运行DCOMCnfg在其中
找到SQLDataModule Object打开它的属性,选取安全性,(我的操作系统是WIN2000 FAMILY SERVER(xxx.xxx.xxx.82))我编辑它的用户访问权限
????
在此我添加了user // network // everyone
同理我在启动权限中加入了相同的内容。
可是,我失败了。。。。。。。。
请问这样做对吗?
 
[?]
能不能对数据对象和协调对象的制作以及设计方法简单叙述一个?
谢谢啦!
 
三层系统做过,WEB部分用ASP,管理系统用DELPHI开发,数据库为SQL SERVER,
三千多人正在用没有发现问题
 
to jdxjf:你的中间层用的什么,midas,mts?,另外用的delphi几啊
 
TO: Alongsun
可能是你设定dcomcnfg的设置问题,你可以看看李维写的<<分散多层应用系统篇>>
一书里有讲怎么设定,我按照设定都没有问题呀!很稳定!!,
 
关注,学习
 
to pmis:我用com时,在dcomcnfg中设置能行,但是用com+时,我倒出com+代理,在客户机器上
安装后,但不能连接,请问是否还需设置dcomcnfg?com+如何用法,需怎么设置?
谢谢!!
 
我对此很感兴趣
 
你好,请教一个问题,我做三层,可是客户端调用找不到中间层的服务器,你是怎么解决的,
就是在不同的机器上,找到服务器,delphi的资料上说是企业版本的要想找到别的机器上的服务器,必须花钱购买,不止到你市如何解决的
 
在客户端的DCOMConnection 的ComputerName添写服务器名称
会找到服务器端注册的应用层 选择你需要的的 此时ServerGUID会添上你在服务器端的
设置相应的ClientDataSet就可已了
 
搬个床看热闹
 

Similar threads

回复
0
查看
666
不得闲
回复
0
查看
811
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
749
DelphiTeacher的专栏
D
顶部