本人一直是做C/S架构开数据库程序,现在想重新规划一套系统用三层架构来做,可是有以下几个问题一直无法想明白系统有多个系统模块(业务,生管,成仓等),C/S是每人负责一个子模块的开发(编译成EXE文件),可是利用三层结构开发
时就会有问题,每一个子模块都会对应一个应用程序服务器(EXE或DLL),我想用EXE。问题1:是否在服务器上面要执行多个应用程序服务器,如果不是那应该怎么做
问题3:在一个应用程序服务器上面是否可以建多个RemoteDataModule远程模块(那么这样儿的话也就相当于是多个服务了)
问题2:如果要更新应用程序服务器就必需停止服务,然后再更新再启动服务,这个更新的问题又如何解决
时就会有问题,每一个子模块都会对应一个应用程序服务器(EXE或DLL),我想用EXE。问题1:是否在服务器上面要执行多个应用程序服务器,如果不是那应该怎么做
问题3:在一个应用程序服务器上面是否可以建多个RemoteDataModule远程模块(那么这样儿的话也就相当于是多个服务了)
问题2:如果要更新应用程序服务器就必需停止服务,然后再更新再启动服务,这个更新的问题又如何解决
解决方案 »
- 使用TWindowsMediaPlayer控件进行视频播放是如何实现预览的功能。
- 请问:怎么样才能在运行时改变窗体的FormStyle而不出错呢??
- 帮忙解释如下的函数:功能为把ADOQUERY导出到EXCEL
- 一个棘手的问题,高手请来!在线等候!
- 模拟sqlplus中的工作过程!
- 有用Ehlib的DBGridEH来做C/S结构的数据库应用的吗?用TDataSource,TDBGridEH,TMySQLQuery来连通异地数据库会影响性能吗?
- ●●我向zswang(伴水)道歉●●
- 我在delphi6 + indy8的环境下写的程序为什么在任务管理器中显示的线程数一直在增加??
- 可否推荐几本VCL参考手册,版本要高些的。
- 如何做到在我的应用程序中禁止使用CLIPBOARD进行COPY,PASTE?
- 征求优秀的'万能查询'和'权限控制'通用模块。
- 请问在3维场景中如何实现2维图像到3维模型的渐变?
Corn1的做法,那跟两层的就没什么分别了。
COM技术某些地方太复杂,资料有限,系统复杂后有时出错甚至不知从何找起.
要提醒的是要想你的WEB SERVICE服务端程序运行在WS2003或VISTA版上,需要用D2007,或D2009来写服务器端.
一、根据不同连接方式进行不同的应用
1.DCOM 建议局域网当然在INTERNET网也可以只是防火墙要设置好
使用DCOM+POOLING+RemoteDataModule就可以实现,其会自动根据RemoteDataModule被占用与使用情况创建与释放RemoteDataModule(即已创建的模块都在使用时,会自动创建新的数据模块),15个连接池(个数可以修改)足可带上300个用户.
2.SOCKETCONNECTION 用于INTERNET网比较合理
使用SOCKETCONNECTION+RemoteDataModule+完全端口+数据压宿,效率也非常高。而这种方式是连接一个工作站会创建一个RemoteDataModule,退出时自动释放(SConnect.pas中要进行一定的修改,不然会不知什么时候就DOWN了)。如:
V:= ReadVariant(VarFlags, Data); //modi 否则服务会异常退出,在ReadVariant后要对V进行校验。
If VarIsEmpty(V) then //add 进行校
begin
raise Exception.CreateRes(@SInvalidDataPacket);
Exit;
end;
二、可以使用RemoteObject实现真正的三层,客户端小,不过应用层比较复杂,若不赶工时的话建议用,以后维护量较小,且特别在查询统计方面口径会统一。
问题3:可以
问题2:思路 -- 加个升级程序,其负责检测是否有需要更新,有时先下载为一个定好的临时文件,Kill主程序,更新新程序,再运行主程序,退出升级程序。
我目前是以DCOM + SOCKETCONNECTION 合并为一个应用服务器,编译为.EXE文件运行。
http://topic.csdn.net/u/20080529/13/0a23bef9-9117-4a4b-8f40-63e9991b04ad.html
系统有多个系统模块(业务,生管,成仓等)指的是不动部门用不同的子系统还是只是单纯的模块了,如果是不同的系统,同样可以由不同的人员负责开发,应用服务器起三个不同的网站(web service),数据库可以调用同一个,方便各系统的数据共享调用.
.NET省却了很多底层的东西不用去考虑,优越性就不用我在这里做广告了.
至于更新程序方面,不会影响要业务的正常运作,可以不间断业务直接更新系统.
WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。
用过了,效率可以接受。