Delphi多层开发方案比较

2016-02-19 12:48 33 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐Delphi多层开发方案比较,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

方案-MidasDCOMCOM+ASTARemoteObject.NET提供者Borland微软微软http://www.astatech.comhttp://www.remobjects.com微软核心技术COMCOMCOMASTA自己的,类同Midas,
  但不依赖于COMRemObjects自己的WebService技术,
  不依赖于COMWebService开发工具Delphi7Delphi7Delphi7Delphi7Delphi7Visual Studio/Delphi8,9与现有开发模式兼容程度★★★★★★★★★★★★★★★
  (很不同的开发模式) ★★★★
  (支持Delphi的Prvider/ClientDataSet) ★部署容易程度★★★★★★★★★★
  (集成server、不需要类似socket server、midas.dll的东西)★★★★★
  (集成server、不需要类似socket server、midas.dll的东西) ★可伸缩性★★★★★★★★★★★★★★★★★★★★★★★
  (支持自带服务器,或者使用Apache/IIS等容器) ★★★★性能(效率)★★★★★★★★★★★★★★★★
  (二进制传输,支持压缩) ★★★★
  (二进制传输,支持压缩) ★★
  (文本的XML消息传输) 消息传输格式二进制COM消息二进制COM消息二进制COM消息二进制流二进制流或文本的XML SOAP消息XML SOAP消息源程序不全无无有有无购买价格$0$0$0$299 - $7,500EUR 299$0与.NET集成不可以可以可以不可以可以
  (直接基于webservice并提供.NET客户端开发包,并可以使用二进制消息格式)可以中间件跨平台有可能不可能不可能有可能可以
  (支持Kylix开发,支持Apache做容器) 可能吧总体评价★★★★★★★★★★★★★★★★★
  

速度与效率测试

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)测试项目 *计算1000次1+1=2 *传输10000条100字节记录 *所花时间(ms) *传输字节数 *所花时间传输字节数Midas (Socket Connection)26,047 366,000 2,359 1047,000 Midas (DCOM Connection)812 933 2,047 1047,000 ADO直连数据库 (两层)  297 1046,000     Asta 3 压缩  1,578 1100,000      RemoteObject2 HTTP 二进制 压缩8,641 791,000 2,515 1048,000 RemoteObject2 HTTP 二进制 不压缩7,765 783,000 2,391 1049,000 RemoteObject2 HTTP SOAP11,687 1935,000 3,110 1052,000 RemoteObject2 TCP 二进制 压缩8,406 512,000 2,422 1049,000 RemoteObject2 TCP 二进制 不压缩6,547 504,000 2,484 1563,000 RemoteObject2 TCP SOAP11,281 1673,000 RemoteObject3 HTTP 二进制 压缩11,625 504,000 RemoteObject3 HTTP 二进制 不压缩10,593 501,000 RemoteObject3 HTTP SOAP15,640 1108,000 RemoteObject3 TCP 二进制 压缩11,172 512,000 RemoteObject3 TCP 二进制 不压缩10,203 504,000 RemoteObject3 TCP SOAP15,547 1712,000

结果分析:

两层的效率当然是最高的;这样选择三层方案时就可以在伸缩性和性能之间做权衡,选择最优方案 DCOM针对本机运算可能做过优化,太快了,传输的字节数也太少了 Socket Connection的效率实在不敢恭维,比RemoteObject使用SOAP传输还低 RemoteObject使用二进制传输的效率大概是使用SOAP的2-3倍 RemoteObject使用二进制传输基本能达到甚至超过Socket Server的性能 RemoteObject的压缩好像没什么用 Asta性能比RemoteObject和Midas都高,但这个结果是设置了ADOQuery的CacheSize=1000时取得的,其它的测试都没有专门设置该属性
  


  * 以上测试涉及文件都在附件中的测试包中;都是连接的本机(localhost);空白的是没有做测试的

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

* 传输字节数测量都是用的CommView 4.1 IP包检测捕获软件,监测“Loopback”(127.0.0.1)设备;CommView软件安装见测试包的tools目录;字节数包括实际传输的数据和IP握手信息等,如果大于10K,则只保留到千位,可能每次测量会有一点点区别。

* 测试所花时间时CommView停止捕获IP包,测试3次左右,取中间值

* 测试计算1000次1+1=2:
  中间都是实现类似以下方法:
  function Sum(a, b: Integer): Integer;
  begin
  Result := a + b;
  end;
  
  其中RemoteObject 2、3的测试程序直接用的它自带的MegaDemo例子,执行文件分别见测试包中的“1+1=2RemObjects SDK 2”和“1+1=2RemObjects SDK 3”目录,后者是试用版,运行前需要先允许Delphi(不知道还有没有其它限制),测试时都是设置的使用Indy;Midas和DCOM的测试是自己写的程序,源程序和执行文件测试包中的“midas”目录。

来源:http://www.tulaoshi.com/n/20160219/1601992.html

延伸阅读
◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false); ◇[DELPHI]产生鼠标拖动效果 通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL: var xpanel,ypanel,xlabel,ylabel:integer; PANEL的M...
标签: Delphi
在《Delphi存取图像完整解决方案》一文中,笔者提供了一种DELPHI存取JPEG、BMP图像到数据库的解决方案,虽然它适用于ACCESS和SQL数据库,但它并不适用于所有数据库(比如PARADOX数据库中的GRAPHIC图像字段就不能采用该方法存取图像数据),下文将介绍DELPHI利用ASSIGN方法存取JPEG、BMP图像到数据库的另一解决方案来进行补充完善。演示数...
-Java和PHP的web开发技术比较  比较PHP和jsp这两个web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较: 一、 语言比较 Php是解释执行的服务器脚本语言,首先php有简单轻易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java...
标签: Delphi
对于涉及图像数据的数据库应用程序,图像数据的存取技术是一个关键。由于缺少技术文档及DEMO例程演示,为此笔者在网上搜索了相关资料,有的根本不能用,有的过于繁杂,有的应用范围太窄(如只能适用于BMP图像),有的写得过于简单理解起来十分困难。。。而且在网上这也是大家比较关心的一个问题。笔者对这个问题进行了反复实作和探索,下...
标签: Delphi
  一、引言 Client/Server是一种分布式的计算模式,与传统的基于主机的结构相比,具有较好的可伸缩性和较优的性价比。过去,Client/Server结构一般分为两层:客户端和服务器端,所有客户端各自实现自己的用户界面和应用逻辑。随着系统的不断扩展,这种两层的Client/Server模式逐渐暴露出它的缺陷,由于最终客户需求的千...

经验教程

986

收藏

67
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部