[精贴] 三层/多层体系结构在VB编程中的应用讨论

奋斗一生的程序员 2005-03-25 09:37:04
本人于一年前收集了一个CSDN中的贴子,主题是“ VB三层(多层)实现大讨论! (发表时间:2001-12-28 11:46:06Z)”
本人没有完全研究明白里面的讨论,先删掉一些口水,整理出来发到下面。
欢迎大家踊跃发言。

================
gmp

1.三层体系结构将应用逻辑从Server或Client端剥离出来,放进中间的应用服务器;

2.这样就可以使的三者各司其职,减轻数据库服务器或客户端原来所承担的应用逻辑计算压力,可以大大加快分布式计算的效率:

(2.1)数据库服务器及其DBMS专司数据的存放和管理,相当于WinDNA中的数据层(Storage);

(2.2)应用服务器接受用户端的请求,从数据库服务器抓取数据送给客户端,相当于WinDNA中的逻辑层;(COM+)
(2.3)客户端向应用服务器提出请求,接受来自数据库服务器经应用服务器转发的响应数据,并以特定用户容易接受的形式显示,相当于WinDNA中的表现层(Forms+)。

3.三层体系结构具体实施方案
(3.1)VB/Delphi/C++Builder/Java Applet作为客户端软件开发平台和技术。
(3.2)应用服务器软件开发可以采用ASP+ADO,JSP+JAVA Bean+JDBC,J2EE/Servlet/JSP等技术。
(3.3)服务器采用Oracle、SQL Server或DB2等DBMS;

======================
panzijing(若无所思)

我正在做一个基于COM+的多层应用的项目,对COM+有一些肤浅的理解,也遇到不少问题,希望能多和大家交流.

另外,《Microsoft Visual Basic 6.0 分布式应用程序开发》是一本难得的好书,十分精辟,可是说是COM+的宝典书籍,推荐!! pzj@263.net

======================
white(white)

首先澄清一些观点,ASP的应用都是三层结构,这是错误的,用了组件就是三层结构,也是错误的。
Windows DNA所讲的三层乃是指数据访问层和商业逻辑层分开,商业逻辑层和用户表现层分开。
只要你的应用做到了这几点,那就可以叫是三层结构。不过要做到这几点,COM+的应用是绝对少不了的。
大家可以看看 .NET 中的三层应用的例子,其概念在不用 .NET时也是适用的。
首先,数据访问层可以封装在COM+中(比如什么连接串啊,建立连接、执行查询、更新数据等等)。
然后,商业逻辑本身用OO的方法就可以用对象来表达,所以封装在COM+里真是最合适不过。
最后,用户表现层是采用什么技术无关的,如果你是WEB应用,那么就用ASP好了,如果你是单机应用,那么用VB、VC、DELPHI都无所谓。用户表现层只负责数据的输入、输出等。

分了层,一个操作到底放在哪一层就成了要解决的问题。判断你的部署好与坏,问一下这两个问题:
1、如果数据库换了(从SQL SERVER换成了ORACLE),你需要重写逻辑层组件吗?
如果答案是否,那么你做得对,数据访问应当交给数据访问层,只需要换换数据访问层的组件就可以。
2、如果用户界面换了(从VB写的程序换成了WEB上的ASP),你需要重写逻辑层组件吗?
如果答案是否,那么你的分割做得很成功。

==============
还有一点需要强调的是,不要为了“三层”而“三层”。首先要理解为什么要分层,
三层应用可以带来的好处包括:
。可重用性(组件可重用)
。可维护性(分层查找问题,将问题空间缩小)
。性能的提高(动态连编库)
。支持分布式应用(DCOM,COM+)
。开发过程更简单、更快速(Microsoft提出321概念,三层应用两个人一个月搞定)
。any more...

如果你的应用需要获得这些特性,那么你应该考虑使用这种架构。
如果你只是做一个留言板,那根本没有必要将“逻辑”封装在组件中,但如果你是开发的一个企业管理系统,那你应该考虑采用它。

DNA也并非是唯一的解决方案,Microsoft已经用.NET代替了它,而来自竞争对手的SUN 公司有J2EE构架。

至于采取什么语言似乎没有必要过多的争论,.NET里语言无关。

==========================
c7654321(荷船)

我们现在做的项目是三层的,我感觉最大的难点在于同服务器组件的连接上,
其实这个论坛里好多关于COM+的BBS都是与三层有关,大家不妨去搜一下,一
定受益斐浅。
而三层的好处,我想安全性和缓解数据服务器的压力不能不说是两层无法实现
的优势。
==========================
halfdream(哈欠)

把一个应用系统划分为
数据库服务
+中间层(包括业务应用逻辑,也称为应用服务器)
+客户端(主要实现界面,尽可能少的涉及逻辑部分,也叫瘦客户)
这样的划分,不仅仅是软件在系统逻辑体系上的划分,也是软件在物理上的划分.
最关键的是应用逻辑的独立与封装.
常用实现它的分布式技术有几大类,COM/DCOM/COM+, CORBA,...
因为这是十进制标准.
你可以使用你喜欢的开发工具实现中间层,不过不推荐使用VB6开发.
========================
peihexian(只有初中学历)

多层的精髓我认为是:瘦客户端+中间层应服务器+后台RDBMS
实例方案1: 客户端为浏览器IE等 ,中间层为asp+MTS组件,后台数据库好处就是客户端瘦到什么也不用安装了,但打印等比较麻烦。
实例方案2: 客户端为VB程序,主要负责用户界面的显示和交互,中间层为dcom组件,负责数据的存取,业务逻辑等,后台数据库好处是客户端的界面可以做的比较漂亮,人机交互性比b/s结构要强,缺点是客户端要安装程序,要VBRUN*.dll等支持文件,不易维护,但这个分发的问题可以解决,只要一点技巧就可以了。
实例方案3: 客户端为delphi/bcb程序,只要一个可执行文件和midas.dll就可以了,中间层可通过corba/dcom/scoket/http等联接,可以把中间层写为mts/com+/corba组件,后台为数据库好处就是客户端分发容易,只要两件文件即可,与中间层交互方便,甚至可通过http方式联接web上的中间层程序。
所以我认为,尽量不要用VB做三层的应用吧,成功的可能性比较小。
========================
kinglyq(陆追风)

业务层的抽取对于应用程序的分发、二次开发也有很大的帮助,
可以提供给用户(带有一定开发能力的)一套应用程序业务组件(也称接口组件),因为被抽象的业务组件的业务方法对应了现实的工作, 因此很容易理解并且是统一的(基于COM),用户可以利用自己擅长的开发工具对业务组件的方法等进行搭建创建用户层,开发出自己所满意的应用程序WEB应用程序),而开发者只要保持业务组件的接口,可以给用户进行组件升级,也不影响用户的二次开发成果。
所以说,三层式的应用程序架构好处大大的有!!
欢迎意同者与我联系, 大家探讨,my oicq:1236078

==========================
Bardo(巴顿(永远只有一个))

真正的三层结构:
数据层:即数据库可以随便换
逻辑层:所有业处理都在其中,是程序的核心。
界面层:可以随便更换,如可以VB,也可以WEB。

逻辑层组件并不需要担心多个用户同时访问远程的同步问题。
ADO有同步打开方式,并且,数据库有有效性限制!
关键主要是大系统的需求分析与系统分析。技术上有较好的程序员都能实现。
...全文
1048 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
flytorain 2005-08-30
  • 打赏
  • 举报
回复
关注

学习
atila1978 2005-08-14
  • 打赏
  • 举报
回复
强贴
liu77wei 2005-08-14
  • 打赏
  • 举报
回复
顶!!!!
yinweihong 2005-08-13
  • 打赏
  • 举报
回复
mark下
  • 打赏
  • 举报
回复
希望大家继续讨论。
creat66 2005-06-22
  • 打赏
  • 举报
回复
如何设置相关端口呢?
axiang80 2005-06-22
  • 打赏
  • 举报
回复
学习
SemYum 2005-06-22
  • 打赏
  • 举报
回复
三层结构部署需要注意的:需要开启哪些端口以使MSMQ能够透过防火墙存取
只发消息: TCP 1801
发消息和活动目录存取: TCP 1801, RPC 135, 2101
收发消息和活动目录存取: TCP 1801, RPC 135, 2101, 2103, 2105。
zuoxingyu 2005-06-21
  • 打赏
  • 举报
回复
好文章,精彩..顶上去
_西瓜皮_ 2005-06-20
  • 打赏
  • 举报
回复
SemYum 2005-06-20
  • 打赏
  • 举报
回复
站站
leongwong 2005-06-14
  • 打赏
  • 举报
回复
标记!好贴!
leongwong 2005-06-14
  • 打赏
  • 举报
回复
请教各位,我的VB中怎么在引用窗口中怎么没有Microsoft ActiveX Object Library 和Microsoft Transaction Sever Type Library这两项?
zhoujiamurong 2005-06-08
  • 打赏
  • 举报
回复
mark
gzhoney 2005-06-01
  • 打赏
  • 举报
回复

六一快乐
axiang80 2005-06-01
  • 打赏
  • 举报
回复
学习!
  • 打赏
  • 举报
回复
支持一下
顺祝各位六一快乐
  • 打赏
  • 举报
回复
呵呵,多看csdn上的精华,也希望大家能帮忙收集,统一发到这里。
方便大家交流。
永远- 2005-04-14
  • 打赏
  • 举报
回复
看了几天的书,全是理论,全他妈妈的废话,还不如到csdn上看看大家的精华!呵呵,顶哟!
flc 2005-04-14
  • 打赏
  • 举报
回复
关注
学习
加载更多回复(8)

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧