看到别人写的内容收藏一下,原作者写的时间可能比较早,因为尚未加入CG的Datasnap的多层比较

方案->
Midas
DCOM
COM+
ASTA
RemoteObject
.NET
提供者
Borland
微软
微软
http://www.astatech.com
http://www.remobjects.com
微软
核心技术
COM
COM
COM
ASTA自己的,类同Midas,
但不依赖于COM
RemObjects自己的WebService技术,
不依赖于COM
WebService
开发工具
Delphi7
Delphi7
Delphi7
Delphi7
Delphi7
Visual 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,500
EUR 299
$0
与.NET集成
不可以
可以
可以
不可以
可以
(直接基于webservice并提供.NET客户端开发包,并可以使用二进制消息格式)
可以
中间件跨平台
有可能
不可能
不可能
有可能
可以
(支持Kylix开发,支持Apache做容器)
可能吧
总体评价
★★★
★★
★★★★
★★★★★
★★

速度与效率测试

测试项目 *
计算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 SOAP
11,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 SOAP
11,281
1673,000
   
         
RemoteObject3 HTTP 二进制 压缩
11,625
504,000
   
RemoteObject3 HTTP 二进制 不压缩
10,593
501,000
   
RemoteObject3 HTTP SOAP
15,640
1108,000
   
RemoteObject3 TCP 二进制 压缩
11,172
512,000
   
RemoteObject3 TCP 二进制 不压缩
10,203
504,000
   
RemoteObject3 TCP SOAP
15,547
1712,000
   
         

结果分析:

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

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

* 传输字节数测量都是用的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=2\RemObjects SDK 2”和“1+1=2\RemObjects SDK 3”目录,后者是试用版,运行前需要先允许Delphi(不知道还有没有其它限制),测试时都是设置的使用Indy;Midas和DCOM的测试是自己写的程序,源程序和执行文件测试包中的“midas”目录。

转载于:https://www.cnblogs.com/AndySong/archive/2009/06/06/1497686.html

Delphi多层开发方案比较相关推荐

  1. Delphi三层开发小技巧:TClientDataSet的Delta妙用

    Delphi三层开发小技巧:TClientDataSet的Delta妙用 Delphi做三层开发时,很多人都会在客户端放一个TClientDataSet,中间层远程数据模块就对应放一个TDataSet ...

  2. EtherCAT伺服驱动器-如何选择硬件开发方案

     EtherCAT伺服驱动器-如何选择硬件开发方案

  3. 前端工程化开发方案app-proto

    什么是前端工程化?根据具体的业务特点,将前端的开发流程.技术.工具.经验等规范化.标准化就是前端工程化.它的目的是让前端开发能够"自成体系",最大程度地提高前端工程师的开发效率,降 ...

  4. 流言终结者- Flutter和RN谁才是更好的跨端开发方案?

    背景 论坛上很多小伙伴关心为什么闲鱼选择了Flutter而不选择其他跨端方案?站在质量的角度,高性能是一个很重的因素,我们使用Flutter重写了宝贝详情页之后,对比了Flutter和Native详情 ...

  5. Web图形开发方案选型,SVG/VML/Flash/Applet优劣比较

    Web图形开发方案选型,SVG/VML/Flash/Applet优劣比较 在Web 项目开发过程中,我们常常会使用到各类图形,如流程图,饼图,甘特图,散列图,趋势图等等.目前有很多种方法在网页上绘制图 ...

  6. Delphi 程序开发范例宝典(第2版)高清PDF下载 附光盘

    Delphi 程序开发范例宝典(第2版)高清PDF下载 附光盘 转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/10/29/1864092.h ...

  7. 千亿智慧照明市场背后,BLEMESH免开发方案成主流

    随着智慧城市.智慧楼宇.智能家居等应用场景的落地,以及 LED 应用带来的变革,运用物联网.传感器.嵌入式等技术的智慧照明已成为当今主流智能解决方案之一.据前瞻产业研究院<智能照明行业分析报告& ...

  8. java nc接口开发_OA和NC系统集成接口开发方案.doc

    OA与NC系统集成接口开发方案 目 录 目 录2 4 单点登录3 4.1 注册登录key访问接口3 4.2 访问NC-EHR业务功能3 5. 代办事项列表信息4 6 单一代办事项信息展示4 4 单点登 ...

  9. 【delphi】开发微信小程序后台控件(一)(含源代码、演示程序、控件使用帮助)

    1. 前言 微信小程序已经非常普及,但是遗憾的是官方提供的 SDK 等没有Delphi语言的,这样使用Delphi语言开发微信小程序后台就相对比较困难,需要研究平台API,费时费力,特别是调试API很 ...

  10. 蓝牙运动手环app开发方案

    所谓智能蓝牙手环app软件开发,  就是内置蓝牙操作系统.通过连接网络来实现多种功能的手环产品,蓝牙手环一般能同步手机中的电话.短信.邮件.照片.音乐等相关数据.其实早在1982年,日本精工就通过其收 ...

最新文章

  1. jmeter分析性能报告时的误区
  2. Hibernate事务处理
  3. shell 实现ip字符串与整形互转
  4. Android开发之设置listview分割线的颜色
  5. LeetCode 257. Binary Tree Paths (二叉树路径)
  6. SpringBoot项目读取json配置文件
  7. 网页版bpc电波对时_电波表对时软件下载-BPC(中国码)电波表对时模拟软件 20170308 官方版 - 河东下载站...
  8. Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包
  9. 分布式机器学习主要笔记
  10. mma7660(重力感应传感器)
  11. 恒生UFX接口引用计数心得
  12. CTS 使用instrumentation命令测试
  13. 编程常用英语单词(一)
  14. Postgresql - 监控 moniter - 监控日志
  15. t20171215a1BILL的账单
  16. 如何利用工具低成本构建华为云灾备方案?
  17. Rockland 血红蛋白 β A-2 抗体说明书
  18. N个数里面找出最大的k个数
  19. caffe模型训练与使用(windows平台)
  20. 一文读懂什么是反卷积

热门文章

  1. mysql基础之mariadb集群主从架构
  2. netcat 传输文件
  3. 如何开始学习使用TensorFlow?
  4. php使用file_get_contents 或者curl 发送get/post 请求 的方法总结
  5. Mysql text类型的最大长度
  6. [导入]设置wap服务器
  7. Netcore 及SDK版本号问题
  8. 面试题(4)--基础篇
  9. 推荐一款好用的java反编译软件——JavaDecompiler
  10. 将webService(CXF)与spring集成