最近想用Flex 做一个应用,其实是对原先的一个应用重新写(easylf.net) ,原因有两个:
1.easylf.net 是在学Flex 的过程中写的,代码很乱很不成熟,需要重新写了。
2.后台用asp.net 2.0 提供服务,经过这么长时间的体会发现Java 才是服务端的王道。
慢是原先的一个严重问题,所以新版本方方面面都要为效率考虑,老的的应用以WebService 提供服务,无疑是超级慢服务调用协议,经过无数次的上百度Google,终于找到了高科技AMF3,据说效率非常高,最起码在Flex 上是这样,结果来源于这样的一个测试网站
http://www.jamesward.com/census/
这是我的测试结果:
测试启用了GZIP,5000行返回数据
?

哇,AMF3好强,虽然大家都明知道是Adobe 在Flex 上对这个东西进行了特殊优化,但就像显摆大牛说的那样:“最起码我们知道在Flex上什么效率最高”
Flex 的 remoting service 中,有大概这么几种 :
1.HTTP Service
2.Web Service
3.RPC
HTTP Service 无疑是最灵活最强大的方式,但也最麻烦,需要自己定制的东西太多,自己做解析自己做加密,我是个天生的懒人,所以首先排除。我更想把精力放在功能上,而不是无谓的敲重复代码。
Web Service 前一段挺时髦的东西,各大语言技术均支持,根本不用考虑兼容性的问题,而且有完善的标准,一旦想和别人的系统做接口也很容易做到,但缺点就是解析效率太成问题了,以前做的东西慢的像牛一样,这样庞大的东西不适合我这种轻量级的应用。
RPC (Remote Procedure Call :远程过程调用协议)简单说就是直接调用服务器端的对象方法,而不用专门为这些需要调用的方法写接口或wsdl描述文档,这无疑超级适合我这种懒人,在client 犹如调用本地方法一样调用server的对象和方法。
针对Flex 和 JAVA 之前的RPC ,有很多的选择,例如:
LiveCycle Data Services ,BlazeDS GraniteDS
LDS 是 Adobe 官方的付费框架,功能强大,但谁让咱是穷人呢
BlazeDS 是Adobe官方推出的开源项目,功能上是LDS的阉割版本,同时也不如GraniteDS 强大
GraniteDS 是由第三方推出的开源RPC 框架,功能强大,但自从BlazeDS 推出后,似乎GDS的作者也感到前途渺茫,详情可看此文
未完待继续
我现在也用这样的方式进行 编写程序,希望能与你交流,我的QQ是9301457