关注大型工程项目三层架构首要考虑的问题,相信您也会遇到同样的决择(300分)

W

wyh919

Unregistered / Unconfirmed
GUEST, unregistred user!
公司最近要搞一超百万的离散型ERP工程项目,计划用三层架构,采用基于COM+组件的分布
式环境;本虾以前未有三层架构大项目的实战经验,以前所学多是从书本上较为简单的
DEMOS中得到,为了能少走一些弯路,特向诸位讨教经验,还望诸大虾踊跃发言,分不够可
另加,如不嫌弃交个朋友,到深圳时请您喝酒;
1、采用COM+后如何实现容错与负载平衡?
2、若采用ADOCONNECTION连接数据库,是否在每个企业对象(如数据对象、查询对象...)
中分别加入ADOCONNECTION,抑或是统一引用主模块的ADOCONNECTION,这样做对系统有什么
影响?
3、若系统用的TABLE为100个,怎样规化建立数据对象?为了在建立数据对象时不激活不相
关的数据对象,是否应该为每个TABLE分别建立单独的数据对象,这样会编绎出太多的DLL
组件,不知对系统有何影响?
4、若把基础客户端对数据库的查询、修改及删除等封装到COM+组件的FUNCTION中,是采用
直接在每个数据对象中添加相应的FUNCTION,或是统一建立相应的查询、修改及删除功能
对象,从基础客户端调用功能对象的FUNCTION,再由功能对象调用数据对象的相应FUNCION;
5、关于在功能对象中是直接调用原生的AS_EXECUTE()、AS_GET...等方法还是调用数据库组
件(如TADODATASET)的相关方法好?
6、关于在李维ADO/MTS/COM+中看到了关于TADODATASET在多层中执行UPDATE和DELETE时会有
BUG,诸大虾是怎样处理UPDATE和DELETE的?
7、用了COM+组件后,有无必要使用DATASNAP组件,何时用?怎样用?对系统效率有何影响?
8、综合提升服务器效率,应该注意哪些事项?
 
如果是在广域网的情况下,COM+已经不是好的选择了
》》采用COM+后如何实现容错与负载平衡
MS为其提供了几个服务端软件可以实现容错与负载平衡,效果不怎么样。
 
公司最近要搞一超百万的离散型ERP工程项目
关注你的
>>>>公司最近要搞一超百万的离散型ERP工程项目
 
dxcwc说的对!最好,你采用CORBA技术,MTS不太适合,建议你读一下李唯的《Delphi5.X分布式系统-系统篇》
这本书写的很好
 
1、容错于负载平衡因该根据您系统的具体要求来定,对于错误的恢复能立通常是是通过一定量的
硬件、操作系统以及应用系统的软件机制来实现的。解决的方法有以下几种,第一种技术就是指示组
件的技术。当客户进程发现一个组件出错时,它重新连接到建立第一个连接的那个指示组件。指示
组件内有哪些服务器不再有效的消息,并能提供在另一台机器上运行的这一组件的一个新的实例。
第二种技术经常被称为“热备份”。同一服务器组件的两个复本并行地在不同的机器上运行,它们
处理相同的信息。客户进程能够明确地同时连接这两台机器。DCOM的“分布式组件”通过将处理容
错性的服务代码放到客户端使得以上过程对用户应用完全透明。第三种方法是使用另一台机器上运
行的一个协作组件,由它代表客户将客户请求发送给那两个服务器组件。 当错误发生时试图将一
个服务器组件转移到另一台机器上经事实证明是失败的。
解决负载平衡的办法有两种
(我知道的)第一种是静态负载平衡,是不断地将某些用户分配到运行同一应用的某些服务器上,
因为这种分配不随网络状况以及其它因素的变化而变化;第二种是动态负载平衡,说到动态负载
平衡就得说说指示组件,指示组件的思想能够提供更加巧妙的负载平衡方法。指示组件不仅可以
基于用户ID来选择服务器,它还可以利用有关服务器负载、客户和可用服务器之间的网络拓朴结
构以及某个给定用户过去需求量的统计数字来选择服务器。每当一个客户连接一个组件时,指示
组件将其分配给当时最合适的可用的服务器。当然,从客户的观点看来,这一切都是透明发生的。
2、建议采用统一引用主模块的ADOCONNECTION,这样做的好处是可以减少系统的开销,尤其对
于这种大型的数据库项目。
3、呵呵,头一个问题怎么和您说呢,只有建议你参考下有关数据结构的书了。开始不激活的
好处同样是能够减少系统的开销,具体为什么我想你因该不会不知道吧;不因该为每个table
建立单独的数据对象,这样程序的稳定性会差,而速度也不会变快多少。
4、我认为因该选择后者。
5、两种方法各有好处,只能这么说,这些主要取决您了,您看怎么方便就怎么用就可以了,
问题不大。
6、你知道面向对象吗?呵呵,当然最好的方法是把具体的问题细分化啦。
7、在Delphi 6中,MIDAS将改名为DataSnap。DataSnap不但强化了MIDAS原有的功能,更加
入了许多新的组件,让设计者可以用它开发出更为强劲的应用系统,此外DataSnap也改善
了MIDAS的执行效率,让使用它的应用程序能够执行得更快速。因此,如果条件允许,是很
有必要用的。怎么用?何时用?这问题没法回答。
8、减小不必要的系统消耗为第一。
 
本人也准备搞这样的事,欢迎交流 QQ:1072387
 
谢谢各位畅言,谢谢rainM;望继续...
to dxcwxc:
这里各子公司都采用DDN专线和总公司相连,老板说要用三层的,其实基础客户端也不算多,
200个,想用COM+是主要想用其事务功能;
to rainM:
非常感谢你的关注,以前也常写一些简单的C/S程序和ASP程序,三层的知识是近来才学来的,
很粗浅;能留下你的QQ吗;
 
如果并发太多,datasnap、mts也没有办法,只能用tuxedo,如果并发少,datasnap真是又快又
好。我可是走过冤枉路。不过我还是反对用DCOM。需要使用tuxedo的erp估计得是跨国公司。
 
可以啊,大家一块交流交流嘛,
4616506
 
建议你读一下李唯的《Delphi5.X分布式系统-系统篇
里面对负载平衡及容错等方面的技术有全面的讲解
 
先做一个简单的框架来进行试验试验再说吧。。。
把你估计要用的东西先试试。。。[:)]
 
谢谢大家的发言;
今天递交了原单位的辞职报告,明天就要迎接挑战了,我会努力的,这两天我做了个Demo,
发现在删除数据记录时会提示说:“不支持事务...”,我是用协调对象调用数据对象的
delete方法,协调对象需要事务,数据对象支持事务,可还是没成功,不知是何原因?
另1:请问大虾们在调试COM+组件程序时,按照书上所说的参数设置之后,发现还是无法进入
COM+组件对象的源程序中,不知大虾们是何原因?
2:子公司和总公司用DDN专线相连,担心将来用COM+做中间件时基础客户端的响应速度会
很慢,有谁比较过用MIDAS和COM+连接时的速度和性能,能不能分享一下经验?
 
我看你这个有点旋
 
1、我也搞不清楚是什么原因,你确定你把参数全部设好了吗(书上的也不见得就全对啊,
你自己的检查一下)?不过一般都有这三步:
  a、为特定目标环境配置com+应用程序。
  b、导出基于特定环境的客户端和服务器端安装文件。
  c、安装配置好的或未配置的com+应用程序或com+应用程序代理。
2、这两个其实也不大好比较,怎么说呢,各有好处吧,其实两着的速度和性能相差不大,不
过MIDAS在delphi6中改名为DataSnap了,在功能和效率上都有所加强,而且也更易开发
,而COM+比较成熟,所以,你自己选择了,用的好,效果都不错。
 
关于客户端的响应速度问题,我还是建议你去读一下李唯的那本书,里面有很精彩的论述,虽说有些不是很完美但大部分是可行的!祝你好运![:)]
 
谢谢各位的发言:
谁能简要说明一下实现不同企业逻辑的企业对象的功能及含义:
 
值得关注
 
顶部