CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

求救:三层到底是怎么回事?

楼主qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)2003-06-04 07:56:09 在 Delphi / 网络通信/分布式开发 提问

服务端:winnt+oracle(server)  
  客户端:win98+oracle(client)  
  客户端通过拔号连接服务端。  
  开发环境:Dephi6.0+win98  
   
  问:  
  1.考虑到网络速度慢,是不是应该使用三层结构?  
  2.三层结构中有两部分。一部分是服务端,一部分是客户端吗?如果是,两端的程序各如何建立?我从来没做过三层,只做一个简单的数据库程序在客户端,通过ADO向服务端读取的修改数据。  
  3.我按书上写的,先建立一个工程组,然后加入一个   Remote   Data   Moudle   ,加入相关控件(三个)然后就编译运行那个程序,叫做服务端。再在工程组中另建一个程序,做为客户端,可是如此一来岂不服务端和客户端在同一台机器上?  
  4.我在向服务端取数据的时候,有AdoQuery,有参数的,有怎样向服务端传递呢?  
  5.越详细越好,分会给足的,再说相信各位会帮小弟一把,而不仅是冲着分来的。 问题点数:100、回复次数:24Top

1 楼dschebei(风之琴)回复于 2003-06-04 08:21:39 得分 10

自己看李维的那几本书吧Top

2 楼XZHHAI(星之瀚海)回复于 2003-06-04 08:25:35 得分 20

客户端一般与用户交互  
  中间层一般封装业务规则  
  服务器存储数据和进行数据分析(大批量的)  
  三层是指逻辑上的概念,也可以分布在多台机子上,有多个并行的中间层Top

3 楼yzykjh(言子儿)回复于 2003-06-04 08:26:06 得分 20

数据库服务器+应用程序服务器+客户机Top

4 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 09:10:53 得分 0

详细一点呀。  
  李维的书我这里没得卖呀。Top

5 楼hansion3406(阿木㊣拖鞋男)回复于 2003-06-04 09:18:27 得分 20

呵呵..不懂N   TierTop

6 楼ihihonline(潇潇->戒烟)回复于 2003-06-04 10:04:09 得分 0

走,咱们到聊天室里,我给你说几天几夜?Top

7 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 10:19:42 得分 0

ihihonline(小小->沉沦中..........)    
   
  不必了,我也没几天几夜时间聊呀。  
   
  随便说一些,只要能做一个能从服务端取数据回来的东西就行,我会想办法扩充的。Top

8 楼firetoucher(风焱)回复于 2003-06-04 10:45:04 得分 20

1   有必要做成三层么?你有几台客户机啊?  
  2   三层顾名思义,有三块:数据库服务器/应用服务器/客户端,如何建立....(作者在此省去1000000000000000000000万字)  
  3   按你的条件和应用似乎只能这样  
  4   用parameters,查看以前的帖子  
  5   再详细,我自己就写书了:)  
  Top

9 楼tpmao(想飞的猫)回复于 2003-06-04 11:01:34 得分 10

少了应用服务器环节!!!!!!!  
  所谓三层,是指为了减少服务器端的压力,和程序的健壮性,在两层结构的中间添加了一个应用服务程序,这样,所有的客户端的需求都要通过服务程序的解释来递交给服务器,这样服务器的一些分析处理的任务就大大的减轻,系统的整体效率就会大幅度提高!!  
  你可以把中间层看作是客户代表,它负责统计客户所需要的数据,然后在通知生产厂商生产响应的数据.其次三层的应用还可以达到THIN   CLIENT的目的。Top

10 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 12:40:40 得分 0

原理偶清楚,就是把一个服务端程序放在跟数据库同一台机器上,然后一些其它计算机上的客户程序向服务器上那个服务程序发送请求,要查询一些数据,服务程序直接查询数据库,然后将查询好的数据集再返回给客户程序。如此则大量的数据查询只在服务端,而客户得到的只有它想要的,网络流量减少,速度提升。  
   
  可是我要怎么做才能做出一个最简单的模型来?Top

11 楼myling(不理你)回复于 2003-06-04 12:47:20 得分 0

一个最简单的模型?  
   
   
  应用层   Remote   Data   Moudle   +DataSetProvider1   +   ADO  
   
   
  客户端   DCOMConnection   +   ClientDataSet      
   
  加上数据库服务器       把属性一连   ,搞定  
  Top

12 楼KJ_Wang(Java Every Day)回复于 2003-06-04 12:48:28 得分 0

DatabaseServer+ApplicationServer+Client=ThreeTop

13 楼tlbdg(铁路扳道工)回复于 2003-06-04 12:54:20 得分 0

我觉得三层和多层结构中,应用程序服务器是最重要的!!  
  另外,数据库一定要单独作一层啦!!Top

14 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 13:01:05 得分 0

我要知道详细的操作方法,我想知道程序是怎样生成的。都放在哪端(服务器   or   客户机)?Top

15 楼delphimo((误入歧途))回复于 2003-06-04 13:01:28 得分 0

去看看midas的专题Top

16 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 14:12:20 得分 0

KTop

17 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-04 22:57:37 得分 0

怎么?没人帮我?Top

18 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-05 07:45:23 得分 0

帮忙呀老大。Top

19 楼microjuz(天才弟弟……》说好了和xgto看流星雨)回复于 2003-06-05 11:00:24 得分 0

三层只是逻辑上的,通常做到项目我看没人会只做三层,要不就干脆作成c/s结构了  
  看你怎么理解了,例如你的第三个问题,你试一下分开两个机子不就可以了吗,使用不同的连接协议都试试:)  
  网络速度慢的话,你说传参数到服务器端是对的,具体怎么传看你的应用服务器怎么封装了:)  
  --------这么多大虾偶不好意思胡扯阿,kekeTop

20 楼selfboss(黃海)回复于 2003-06-05 11:33:57 得分 0

upTop

21 楼hiflower(花)回复于 2003-06-05 12:21:26 得分 0

example:  
  Server:  
      1。新建一个应用程序。  
      2.   添加一个数据模块,Multitier里的Remote   Data   Module  
      3。在数据模块上放一个   Query   组件,一个   DatasetProvider   组件  
      4。将   DatasetProvider   组件的   DataSet   属性设置为那个   Query   组件。  
      5。设置   DatasetProvicer   的Options   属性,把   AllowCommandText   设置为   True。  
       
  Client:  
      1。新建一个应用程序(可以在网络的另一台计算机上)  
      2。添加一个普通数据模块  
      3。在数据模块上放一个   ClientDataset   组件,一个   SocketConnection   组件  
      4。设置好   Socketconnection   组件的相关属性  
      5。将   ClientDataSet   组件的   RemoteServer   属性设置为该   SocketConnection   组件  
      6。设置   ClientDataSet   组件的   Provider   属性(只要从下拉框中选择   Server   应用程序中放置的   DataSetProvider   的名称就可以了)  
      7。在主窗体中放一个   DataSource   组件,一个   DBGrid   组件。  
      8。将   DataSource   组件的   Dataset   属性设置为该   ClientDataSet   组件  
      9。将   DBGrid   组件的   DataSource   属性设置为该   DataSource   组件  
      10。在   ClientDataSet   的   CommandText   属性中写   SQL   语句,可带参数,由   ClientDataset.Params.ParamByName()   来提供参数。  
   
   
  其它的,你应该会了。  
   
  运行   SocktSrvr.exe、Server   应用程序、Client   应用程序  
   
  Top

22 楼qufo(鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒鎴戞兂娴嬭瘯涓€涓嬫樀绉板埌澶氬皯闀挎槸鏈€闀匡紒)回复于 2003-06-09 00:43:32 得分 0

upTop

23 楼nnwq(乖仔)回复于 2003-06-14 17:15:47 得分 0

upTop

24 楼older(井底蛙同样可以向往大海)回复于 2003-06-14 23:21:02 得分 0

三层包括:应用层(客户端)、中间层(应用服务器),服务器  
   
  还是下载一本李维的MIDAS/ADO书看看吧Top

相关问题

  • sprintf到底怎么回事?
  • 这到底是怎么回事啊?
  • ASP到底是怎么回事??????
  • 指针到底是怎么回事?
  • VC到底是怎么回事?
  • ejb到底怎么回事呀?
  • 这到底是怎么回事?
  • 版面到底怎么回事?
  • 我这里到底是怎么回事?
  • ASCII加密到底是怎么回事?

关键词

  • win98
  • 组件
  • 客户
  • 服务器
  • 属性
  • 数据
  • 应用程序
  • 数据库
  • 模块
  • 应用服务器

得分解答快速导航

  • 帖主:qufo
  • dschebei
  • XZHHAI
  • yzykjh
  • hansion3406
  • firetoucher
  • tpmao

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo