如题!
解决方案 »
- fastreport同一张报表打印 n 页问题
- 数据库小问题。
- 关于DBGrid的行号,出了Recno没有其它方法了吗???????????????
- datetimePicker的显示问题
- 不按键盘,怎样模拟按下PageDown键?
- 谁知道怎样粘贴图像到delphi标准组件richedit中
- 我该如何判断这个窗口是否存
- 请问delphi怎样对注册表进行操作,谢谢了
- 请教DELPHI中的打印机设置问题,各位师兄请进来看一下!
- 关于数据库的安装
- ******谁能给一份比较完整的ftp上传下载文件的例子?******
- Access中用TADOQUARY查询'select * from table where time>=#23:00:00#' 时出错,为何?
这本书写的不错
对你应该有用
采用com或dcom就是减少了连接,而且连接是动态生成和删除的
www.wyx2008.com.mxj/system/comm/scheme.zip中间层做负责均衡 肯定没有问题
只能用Socket直接连接。当然Delphi有个Socket连接,做了个代理,不过性能据说不行。如果搂主恶劣一点,反正都已经作了BS版本的了,客户端?很简单啊,一个form上面放个WebBrowser,他们知道个屁。界面还完全一致呢。哈哈。要安全?用https好了。客户端上面把WebBrowser搞一下,别出提示对话框就可以了。服务器那边的IIS设定一下,遇到错误或者网页不可访问,把错误页面重定向。认真一点,又不想用webservice。那就用ASP+xml,这个方式起始和webService有啥区别呢?提交ASP页面附带查询参数,查询参数同样可以XML化的。ASP页面生成XML数据表,发送到客户端,客户端用ClientDataSet接收XML表示的数据表。其实Delphi里面本来就有XMLPrivader的。ASP+xml的这种方式还是很不错的,号称负载能力超强,CSDN就是一个例子,当然他的客户端是IE,其实没多少区别。
我们delphi做一直都好好的,没受其害啊。
具体kan自己怎么实施了
具体的我也不好多问了,现在正在研究呢。
我目前也是这么弄得,不过要求原来的bs程序分层要清楚,复杂的逻辑都封装,不然得重新写服务端的WebService了,不过我现在担心的是这种形式的效率如何,没经过大的压力测试。
vs.net自己都带了个Microsoft Application Center Test自己先动手才知道我们讲的对不对;
希望有经验的大侠指点一下
还没有能说明的材料。
没准是在欺骗民众啊
如果是局域网就是SOCKET:
数据库服务器->应用服务器(用SOCKET连接数据库+dbExpress,当然要做负载平衡)->客户端(用SQLConnection + ClientDataSet).一个应用服务器连接几百个客户没问题,客户端增加时就增加应用服务器的数量,非常方便.
如果是INTENET,就一定要开发WEB的B/S结构了,与上面一样,只是客户端改为Web Application Server连接至应用服务器即可,用户用IE浏览器调用.这样实际上是比上面多一层.
将这些道理讲的这么简单明了,强。:D
但是如果你在只在服务器上公开方法,接受和返回cds的midas封包,也就是可序列化的数据,根本就不会有什么问题,李维的书上讲过这种方法(不过不是重点),看你怎么理解它,并应用它了,我甚至在一个系统中,保存了客户端传来的所有做更新的delta,相当于可以用这些delta序列重建整个数据库性能超过k级,没有过万.后台不是用的midas module,而是com+ 和Webservice(因为要在公网上跑)
正在将以前的C/S改成B/S,由于JSP/ASP什么的不懂,只好用INTRAWEB,基本还行,1台WEBSERV,
200-300同时在线.就是页面操作总是刷新,性能和安全性还可以.
在应付大用户量的时候,比如说QQ的用户,现在假设它的所有都是用TCP方式连接,每个用户都是连接到QQ服务器上,每个用户发的信息都先到服务器,然后让服务器中转.这样的系统如何设计呢?首先我声明我没有做过大用户量的,只是说说自己的想法.
假设现在只有一台服务器首先,用户列表肯定是要有的了,所有的用户信息先都是在数据库中保存,当连接上来的时候根据QQ号进行验证,如是通过则创建一个用户对象,将它的SOCKET连接保存起来,将它的在线好友在列表中的索引值也保存起来.用户发信息的时候就在它的在线好友中查找,找到则调用它的SOCKET连接将数据转过去.现在最大的问题在于当很多人同时发信息的时候数据处理的问题.当然用IO端口映射是最好的办法了,SOCKET.Read可只管将收到的包放到一个缓冲区中去,有其它的线程用先进先出的方式处理这些包.
现在最大的问题可能是数据来的非常快,系统内存一会就没有了,这现在好象没有办法解决,只能是用更大的内存和多CPU.处理包的线程将包中的目标QQ号找到后将数据发出去.
不管怎么样都没有办法解决单机1万个用户在线时系统创建1万个SOCKET连接所带来的压力和问题.只能是分而治之.
比如一台服务器只同时最大维护5000人在线(不知WINDOWS系统的单机SOCKET连接最大支持多少个)
一台服务器只运行数据库进行验证工作,一台只管理收发数据.对数据包类型进行编号,只检查编号就完全可以确定包的内容格式,不进行字符串分解的工作.对每个客户端的说话速度进行限制.客户端做的复杂一些,可以让好友之间直接连接不用通过服务器,每个人都是一个小型的服务器,等等等等.设计的时候主要是要将网络通信,缓冲区管理,数据包分析,上层的数据库服务这几个分离开.好好优化代码.不过最后的结果是如果你稍微懂一点C的话,发现将它改动成C版本的很容易,差不多只要按句翻译就可以了.说了半天拐到C上了,其实也是,除了做有大量窗体,MDI窗体,数据库连接的程序的时候,在做后台服务程序的时候DELPHI和C没有什么差别.怎么感觉等于没说.
corba 跨平台的
corba 在 internet 是没有问题的。
甚至从 internet 到你的内网也没问题。