应用Midas编写三层,在中间层各种功能对象,数据模块怎样组织,dcom怎样调用??(300分)

  • 主题发起人 主题发起人 mxchao
  • 开始时间 开始时间
M

mxchao

Unregistered / Unconfirmed
GUEST, unregistred user!
在完成系统分析以后,得到各种不同的功能对象,他们将完成一定的商业逻辑,通过
数据模块完成数据库的操作。这些对象是按照不同的系统需求组织的。
在利用Midas完成三层结构时,对这些对象现实遇到了困难
我所见到的Midas结构对三层的实现只是定义了一个远程数据模块,所有的接口函数都写到
数据模块定义的唯一接口中,这样就造成过大的一个数据模块,对于复杂的应用是非常
不合理的,同时他也失去了面向对象的优点,面向对象分析结果不能合理的利用到设计
中,所有的中间对象都集中到数据模块实现。现在怎样才能解决这个问题,能够使各种功能
对象与数据模块分离,但还能各自工作,合理的组织功能对象和数据对象?
1. 在这利用的技术是 Midas 但不使用MTS。
2. 功能对象要为客户端服务,也就是他们提供一些独立的接口函数
3. 数据对象同时也为客户端服务,为客户端服务。
4. 功能对象要对数据对象操作,对客户端的请求反映到数据库。
望有经验大侠相救,现在老板正催着呢!
欢迎大家讨论
 
大家对这个问题不感兴趣?还是不值得回答。还可以加分!!
 
建立多个应用程序服务器,在需要独立的接口函数的利用Type library加入接口函数,例如:
得到系统时间等,根据要求客户端链接不同的服务器,得到不同的功能
 
这是用Delphi开发三层系统最主要和实际的一个问题
解决这个我想首先应该从COM对象的层面上理解Midas
因为实际上Remote Data Moudle就是一个COM对象
应该是数据对象吧
希望过来人谈谈自己的经验
 
你可根据实际需要建立多个Remote Data Module来实现你的功能模块
在Delphi中的具体结构为:
1、建立一个Activex Library
2、建立一个Remote Date Module对象与数据库进行交换数据
3、根据你分析的功能模块建立若干Remote Data Module对象实现你的功能模块
4、建立一个Remote Data Module对象,此对象为协调对象主要向客户端提供接口来调用
其他功能模块对象(3所建立的对象)
 
恕我浅薄:
请说出不合理的地方吧 我们一起批一下好了
 
這個問題提得好,正是我想要了解的
 
同意whsunbin的想法:
最近也在开发三层的系统。
关注!!
 
协调对象应该如何调用其它数据对象,功能对象?
 
你所不明白的调用方式是指的什么调用?
如是指的商业逻辑的调用方式,则需根据你系统分析的结果来具体定义该调用系统的
数据对象和功能对象。
如是指在代码中如何调用,则你只需在具体实现协调对象的单元中引用所需的数据对象
和功能对象单元,就可引用该对象中所定义的接口方法。
 
一个提议是:
不同类别的数据模块要分开,不要建过大的数据模块,
可以分成一,二,
一:和客户相关
二:和其他相关的,这样你的dm就很有层次了,
不会出现太多太烂的情况,还有就是不要一下给数据模块中的dataset,select * 什么的,
我想这是最忌讳的东西,不要搞太多的垃圾数据,
还有你的问题太大了,
现在不是多快好省的年代,一切都是我们自己创造出来的,世界没有万能的秘方.
 
1。将数据模块分离成为几个小的模块是一种解决方法,对于比较小的应用可能解决问题
但是对于大的系统,在完成一个功能时可能要调用几个对象,即几个不同的数据模块
共同完成一个事务,由于系统不采用MTS,怎样保证几个数据模块能够共同的在同一个事务中
也失去了
2。如果要使用midas提供的功能,远程数据模块是不可少的,本来协调对象是完成客户端
请求的,处在中间层的第一级,后边才是功能对象和数据对象。为了使用远程数据模块那与
客户端交互的变成了远程数据模块,所以所有的功能接口都要在数据模块中定义。怎样能使
功能对象与数据模块分开,达到按照面向对象设计的目的。要想利用Midas的数据传输,
处理功能,又要建立其他的功能对象处理数据库操作
3。我的想法与whsunbin的想法有些相似,在中间有一个远程数据模块负责调度,客户端与
这个数据模块交互,由他负责对不同数据模块的数据操作。但他可能还有一个问题在中间层
也要进行事务问题,对于不同的远程数据模块怎样完成一个事务,因为这些数据模块可能不
在同一个线程空间。还有就是在这个协调对象要定义在客户端使用的所有接口函数,这个
协调对象还是很庞大。
这只是小弟的一些个人看法,希望各位大侠指正
 
你可以参照结构负载平衡,客户端可以分担一些,不要过分的强调三层的瘦,
同时也要考虑两层的胖,我认为这样比较好一些。
三层是两层的一个变种,离不开两层的基础。我感觉不要过分的强调多层的逻辑
比如,有些逻辑你满可以在客户端实现,一分为二的考虑。多层结构在实际应用
中不一定是好东西。你也许对delphi很熟,我就不必举例了。
 
用负载平衡。MIDAS提供。
 
后退
顶部