Posted on 2008-01-30 09:08
久城 阅读(4271)
评论(4) 编辑 收藏 所属分类:
Flex&ActionScript
最近接触一个Flex项目,我一个新员工,接触不到架构,只能在这里假想。
背景:
外包项目,已完成系统设计,画面(所有mxml的Demo)基本完成。
40多人,分8个小组作业。每一个小组一个组长,每两个小组一个试样负责人。上面还有几层领导分别负责不同的工作,管事儿的是部长。
作业内容包括详细设计,编码和测试。
我的问题:
项目进行十分缓慢,最大的问题就是技术框架未定。由于大家都是第一次做Flex的项目,没有什么经验,对于一个新手来说,要想做好详细设计,首先要有编码的概念,但是现在,我没有。
面对分到的模块,我不知道数据是如何封装的,是如何传递的,数据如何处理,在哪里处理,更重要的是,如何与数据库交互。这些问题没有确定,对于一个Flex新手而言,真的很困难。
与后台交互的分析:
这里要感谢cimmicola对我的讲解!
1. 下策 直接采用flex的httpservice,服务器端手动的拼装xml,或者使用webservice。然后在客户端手动的解析xml。这是这几天做Demo时的做法,我相信这样项目最终不会这样做的。这样做,对Flex新手而言,开发的复杂程度较低,但是工程化程度也很低。
2. 中策 使用自己的框架,已经带有序列化消息转发层,(不知道有没有,但感觉这样一个大公司应该会有),比如可以将java对象序列化成xml数据或者json,这样可以直接通过httpservice来请求服务器端数据,避免自己拼装xml。这样的框架目前开源的也有很多,其中把java对象序列化成json数据的方法有很多人都写过,在学习Extjs的时候,就用到过。以前一直不理解java为什么要序列化,现在才真正体会到一点点。
3. 上策 使用hessian或者remoteobject。讲讲两者的区别。hessian和ro都是基于二进制的序列化协议。即将服务器端数据对象,比如
java".net"php等转化到某个2进制的数据,从而在客户端再次反序列化成as
数据对象。并且这两种方式都能直接暴露服务器端方法(通过配置),因此可以看作是直接请求远程对象的方法那样使用,当然这个过程仍然是异步的。因此他们的
好处就是,请求容易,服务端实现容易,传输速度快,数据量大,客户端直接识别这样的好处。hessian是开源组织的通讯协议,起源很早,而且实现的语言很多,甚至包含C++,ruby等。他并不是为flash而生的。java上的实现是以servlet形式实现的,因此他是以继承自他的servlet这样的框架规范,来控制你的返回值的序列化,从某种含义说,他仍然算是传统web框架。因为开源,因此可以对他框架可以灵活修改。
ro是基于adobe的amf通讯协议,当然现在也开源了,实现ro的有很多服务,比如最常听说到的LCDS,或者他的开源简化版BlazeDS,amfPhp,webrob等等。LCDS
是java实现,也是官方出品,自然功能最强大了,他的ro部分(这只是LCDS最基础的功能)类似spring的aop,直接对配置的java类进行切
入,因此对于设计模式来说,他打破了传统的web请求模式,纯粹通过访问一个messagebroker这个servlet来访问java类。因此如果不
太容易接受新架构或者对新架构不能灵活改变的话,会有些麻烦,比如说,他获取不到传统request对象。当然这也是可以完全通过改造程序框架得到解决
的。
最后
项目还在进行中,我还在缓慢的学习Flex的过程中。
可以感觉到领导们都很忙,而最底层的人却很清闲,包括我,还有时间在这里写BLOG呢。
很想帮上忙,却帮不上什么,只希望这个项目的技术框架早一些定下来。
欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!