大家一起来讨论这个超级多层 Internet解决方案该如何规划:(100分)

  • 主题发起人 主题发起人 delphilai
  • 开始时间 开始时间
D

delphilai

Unregistered / Unconfirmed
GUEST, unregistred user!
这样的多层大型系统该如何解决?
一台在internet上的服务器,有大量的客户端访问它,网络传输数据量比较大,客户端数量比较多,远程服务器端有所有客户端共享的一个数据库,保存了每个客户端机器(其实应该是“用户”的概念,需要向远程服务器申请一个帐号)的部分资料,每个客户端用户自己本机又有一个属于自己的数据库,而客户端又是三层结构,客户端机器的客户端程序通过客户端机器的服务端程序(相对远程服务器又是客户端)去访问远程服务器,客户端机器可以不连接远程服务器,也可以随时连接远程服务器,平时客户端机器在自己的局域网环境中运作,跟一般的三层程序一样,但可能同时又需要和其他的局域网客户端在远程服务器机器共享一些数据,并能够通讯,比如发消息(发送端不一定需要即时和接受端通信,可以离线,当接收的远程客户端上线时自动提示)这样的系统应该如何规划?有点类似于qq,但又不同,因为不仅仅聊天那么简单,(这种架构还是蛮多的,举个例子,麦当劳各个连锁店自己有内部的局域网和相对独立的管理程序,各个连锁店独立核算,而卖当劳总部又有各个连锁分店的资料,这些资料可以供各个分店访问,并向其他的分店通信,比如A店缺货,可能会向B店发一个订单,传输一些文件等等,每个新开的分店在系统初始建立时向总部申请帐号,发送一些请求服务,总部可以审批通过,控制分店的部分信息,当然因为分店相对独立,总部无权去访问分店的内部数据,只能作为中转站一样,但又可以向各个分店发布一些公告之类的)。考虑到卖当劳在全世界都有分店,可以在每个国家、地区架设一个远程服务器负责给当地国家、地区的各个分店提供服务,这样就可能有N 层了。 这 种架构应该如何规划?包括用什么开发、是用windows程序还是用web程序形式、客户端和远程服务器什么方式连接、传输数据的形式(比如 A分店通过总部向 B分店传一个主从表形式的 订单数据是用数据集还是定义一个协议按一定的格式传输)、需要考虑到什么问题的? 还有其它的一些该考虑的问题大家都讨论讨论。

 
不知道有没有人做过类似的程序?这好像比较高难度,100分太少了点,呵呵,有好的方案的我可以另外再给分。
 
这同我前两年作的高新技术申报系统很象。
这应叫作“多层异构数据库系统”。
使用情况同人上面讲到的内容很象,
它是用于让各个高新技术企业申报自己的材料,
等待科委给批准,并发给证书用的。

就是电子政务的一种。
 
程序,可否介绍一些你的经验?没错,远程服务器数据库估计是必须用Oracle大型数据库了,每个客户端的数据库可以任意的,可以是Access/SqlServer任意的。
 
不过关键不同的一点,你那个高新技术申报系统客户端只是向远程服务器请求服务,不需要和其他的客户端通信。
 
客户端通信可以用服务器做中介呀
不要那么复杂吧
 
当然需要通信了,不过都是通过服务端中转的,
这点应该没有技术上的难度的。
要考虑的是服务器的承载能务的问题。

这会对系统安全稳定性要求很高的。
 
delphilai兄,是项目还是什么啊?:)是项目的话咱们俩个搞掂它:)
哈,这些我以前作过。在这里讲起来有点多啊。
周末有空喝酒去?:)
 
forsoft,不是什么项目拉,自己在思考这样的系统该如何搞定而已,你可否介绍一些经验?
 
怎么没什么人发表意见阿?
 
这是一个庞大而烦琐的系统,但也可以利用很简单的技术搞定。
首先:美国总部为中心服务器(第一层)
在每个国家(也可以在一个洲:当然根据数据包处理大小、速度等来决定)搭建一个区域服务器(第二层)
在每个分店搭建一个数据库服务器(第三层)
<基本采用:一问一答的基本client-server>
接着:根据设计的通信模式规则(用SOAP等)构建一种游戏规则和身份认证
再接着:设计数据包通信格式(考虑数据流量、压缩、解压等)
然后: 每层数据库设计和游戏规则权限设计,应用层能提供什么服务,什么数据,什么连接等等。
最后:编程实现哈
 
siglex,你说的内容跟我的题目重复,说了跟没说一样,唉,看来高人难觅阿
 
Delphi多层应用程序的实现



---- 随着Internet/intranet的发展,多层应用和分布式瘦客户数据库应用程序逐渐得到广泛应用。在多层应用的开发方式中,Delphi提供了Midas构件,第三方提供了Asta 、Midware等。经过使用,相比较而言,Asta所提供的构件易学易用方便灵巧,客户端程序无须任何数据库引擎或动态连结库即可方便的实现多层应用,且客户、服务器可实现实时信息传输。可以说,Asta为普通程序员提供了无须专门培训即可成为复杂多层应用程序开发高手的简单途径。


---- 1. 认识Asta


---- 象普通的Delphi构件一样,在Delphi环境下安装Asta即可看到该页标上有AstaClientSocket 、AstaClienDataset 、AstaServerSocket 、AstaDataSet 等构件,其中关键是AstaClientSocket 、AstaClienDataset 、AstaServerSocket。其中,AstaClient由一个AstaClientSocket 和至少一个AstaClienDataset 组成。AstaServer的核心是AstaServerSocket。Database可以是现在流行的任何数据库产品,如Sybase 、Informix 、MS-SQLserver等。


---- 2.如何实现多层应用


---- Asta本身带有两个例子服务器程序,一个是BDEserver,另一个是ODBCserver。这两个服务器程序设计的很完善,稍加改造(汉化)即可直接使用。我们使用BDE服务器。本例以Paradox本地数据库为例,说明如何开发客户端软件。


---- 2.1 运行BDE服务器程序,出现数据连结窗口,弹开组合框选择别名BDEDEMOS,确定。


---- 2.2 进入Delphi环境,建立新应用netapp.dpr,窗体上分别放置AstaClientSocket1、AstaClienDataset1。AstaClientSocket1的Adress属性填入服务器程序所在机器的IP地址。若服务器程序在同一台机器上,则IP地址默认为127.0.0.1。Port属性与服务器程序端口一致(若服务器程序未作改动此值为9000,当然也可选用其他数值)。AstaClienDataset1的属性与一般数据表Ttable相同,首先选择DataBasename属性,然后选取tablename。最后把Active 设为true(相当于执行了SQL语句:Select * from [tablename])。本例中tablename选取employee.db。


---- 3.把结果表现出来


---- 同一般数据库应用程序一样,在窗体上放入Datasource1,其Dataset属性设为AstaClientSocket1,放入DBGrid,其Datasource设为 Datasource1,则简单客户程序就完成了。


---- 运行此程序即可看到数据表格。此客户端程序无须任何动态库即可在客户端运行,是完全的瘦客户。需要注意的是,AstaClientSocket的ConnectAction属性有多种选择,分别规定了客户端到服务器端的连结状况,大家可分别试试看有何结果。至于安全性设置、实时信息传递,可参阅随机帮助文件。
 
话说了一大堆,一句话:分布式同构(或异构)数据库+数据仓库
 
多人接受答案了。
 
后退
顶部