520 分全部奉送,关于三层结构的问题!(300分)

  • 主题发起人 主题发起人 cypl
  • 开始时间 开始时间
C

cypl

Unregistered / Unconfirmed
GUEST, unregistred user!
想奉送全部分数,但只能到 300分,回来在加上其余的 220 分,
这是我的全部分数,各位看好了!
一、李维的"delphi 5.x 分布式多层应用系统篇" 第 4-50 页的第二段中写道:
------------------------------------------------------------------------------
“我经常看到许多人在开发分布式应用系统时会把许多的程序代码和功能都编写在delphi
的应用服务器之中。因此许多应用服务器的接口中便包含了数十,数百,甚至数千个方法和
属性让客户端应用程序使用。比较好一点的程序员会知道在应用程序服务器中定义不同的
接口,然后把方法和属性归类在适当的接口之中让客户端应用程序使用。但是不管是使用
单一的接口还是多个接口,这种方法都造成了一个肥大的应用程序服务器,而且这些方法
和属性不是无法重复使用,就是必须付出巨大的代价才能重复使用。事实上这种设计方法
是不正确的,在应用服务器应该使用不同的企业对象来共同完成工作,而不是使用一个巨
大的对象做完所有的事情。”
------------------------------------------------------------------------------
李维的这段话我有几个不明白的地方,请指教:
1、李维说:“许多应用程序服务器的接口中便包含了数十,数百,甚至数千个方法和
属性让客户端应用程序使用”,这句话中的应用服务器的接口是指的什么接口,是指的那个
DataSetProvider 控件吗?还是只是说一句概括的话,我想知道这个接口到底是从哪个控
件来的?请指教一二!
2、还是这句话,“许多应用程序服务器的接口中便包含了数十,数百,甚至数千个方法和
属性让客户端应用程序使用”其中的“方法”和“属性”是指什么方法、属性?我想知道这个
方法、属性是怎么来的,是在控件中的事件中写出来的,还是怎么写出来的,是哪个控件,是那
个 DataSetProvider 控件吗?
3、李维说:“比较好一点的程序员会知道在应用程序服务器中定义不同的接口,然后把
方法和属性归类在适当的接口之中让客户端应用程序使用。”这句话中的定义不同的接口是
指的什么接口?是用什么办法定义的,还是用控件吗?在控件中的事件中写出来的吗?

二、还是这本书 第 4-56 页到 4-57页中分析了不同种类的企业对象
------------------------------------------------------------------------------
1、功能对象
2、数据对象
3、交易对象
4、控制对象
5、无状态对象
------------------------------------------------------------------------------
他的意思是应用服务器中应该有这几个对象才能把业务规则封装起来,其中的“数据对象”
就是指那个 “远程数据模块”。那么其他的那几个对象用什么样的模块来实现呢?
我很不明白他的意思,在建设三层结构的范例中,应用服务器端的建立指说用远程数据模块
没有说用别的什么呀!这里他又说远程数据模块指是一个数据对象,还不让把其他的业务规则都
放到这里,还有其他的对象,这些对象该如何建立呢?请各位讲解一下,他的意思!
还有他提到用 mts 好像其他的对象用 mts 可以建立,他出的第三本书里也说了 mts ,
那么三层结构中要封装企业规则要用 mts 才能实现吗?
要真是这样的话,想起在没有看到李维的书之前,很多的讲 delphi 数据库的书中都说企业
规则在应用服务器,都说这好处、那好处,但就是找不到怎么实现的,就一个简单的建立三层
结构的小例子,我想,要是按照那些书里说的,一万年也不会明白三层结构是怎么回事!好像
那些书只是一种做宣传的小册子,(说是小册子,又那么厚,还那么贵),真是骗人啊!
看了 mts 的建立觉得很难,各位有什么好的学习方法?
各位兄长,多发表意见,小弟先谢过了!!!!!
 
李的三本书,我都有,因为不懂的方,我写E-MAIL 问李,他也不回。
我看他的书好多地方都写得不明不白。
可能是因为太仓促。
 
李维的那本书我没看过,但是我想他这里所说的应用服务器的接口并不是delphi
的哪个控件,应该是指com/dcom的组件接口(interface),也就是从com组件模
型(IUnkonw)上继承而来的组件接口,应为应用服务器就是又这些组件来完成气商
务逻辑的。
这些接口是对组件属性和方法的一种申明,并不去实现,对于一个com组件而言,
它可以支持多个接口,根据用户调用的不同而调用不同的接口,我想,如果你从
这个角度来理解,可能对你的问题会有所帮助。
 
其实你打开delphi的可视化Type Library编辑器就可以看得比较清楚了,接口代表了这个
COM/DCOM对象和所有使用它的客户端之间的“合约”,所有用户都可以根据这个接口向这
个COM/DCOM对象取得服务。所得简单些,接口只是一个内存区块,在这个内存区块中记载
了所有可以由这个接口调用的方法。
至于接口的方法就像在类中申明方法一样申明一个过程,例如:
我先用Type Library编辑器给一个接口添加一方法,定义好后在Unit相应位置添加代码
procedure TAppserverone.Login(const Name,Pass:widestring);
begin
if pass<>name then
raise exception.create('密码输入和用户名不匹配。')
else
query1.active:=true;
end;
在你的客户端就可以调用这个方法了
procedure TForm1.connectionafterconnect(Sender:Tobject);
begin
connection.appserver.login(edit1.text,edit2.text);
end;
这样如果密码和用户名输入相同,query1就激活要不就提示错误
你的第三个问题其实你想想好的程序员是不是把相同性质的东西都归到一个类中呢?
 
问题二
事实上,我觉得Delphi对三层体系的支持还远远不够。
就目前Delphi的能力只能做些简单的应用服务器。
正如李维所说,结合MTS,再作一些修正,可处理大部分的情况。
你所说的几种类型对象,也只有在这种情况下才能得到充分发挥。
 
to cypl:
我同意iamwbq的看法,建义你再买本Dcom/com编程的书看看就明白了。
to 其它的富翁:
三层结构,好象现在大家都在谈,但我还是对如何封装企业业务逻辑理解不够,所以
现在的程序看似是三层,但中间层的功能除了一些操作数据库和系统维护的功能外,
根本没有定义“企业逻辑”。总觉得和以前的两层结构差不多。但我看一些大公司的
软件对三层的应用,确实应用的不错。所以希望有经验的朋友,多谈谈中间层企业逻辑
定义规则及如何实现一个系统的设计是采用“框架”模块组成。很多市面上的软件,
看到的目录下有一大堆的*.ocx组成,他们程序是如何组织的。邓程序的模块化。
 
我 也 是 说
 
-------------------------------------------------------------------------------
一、李维的"delphi 5.x 分布式多层应用系统篇" 第 4-50 页的第二段中写道:
1、指的是COM/DCOM对象向客户端提供的接口。(点击Edit/Type Library打开编辑界面)
2、同上。在一个COM/DCOM对象中可以定义多个接口。
3、同上。在一个COM/DCOM对象的一个接口中可以定义多个方法和属性。
--------------------------------------------------------------------------------
二、还是这本书 第 4-56 页到 4-57页中分析了不同种类的企业对象
用多个COM/DCOM对象分别实现不同的企业业务逻辑。
--------------------------------------------------------------------------------
 
对与三层结构的中间层,我的理解是这样的:
它首先负责一些易于升级的商务逻辑,因为这样的升级,我们只需要在应用服务器层进行
既可以完成,其次,他还应该负责一些需要大量数据传输的来完成的商务用算,因为把它
们设计到应用服务器层,可以减轻网络负担。
至于具体怎么设计,我觉得程序是根据需要而定的,更本没有定势,只要能够有效的完成
既定任务,越省越好!!
 
cypl,你的这300分真是可惜了
《基于组件的应用程序设计》,北京大学出版社翻译的微软com技术书籍
非常好,强烈推荐
 
多人接受答案了。
 
后退
顶部