技术开发 频道

Flex项目技术架构前的假想

  【IT168 技术文档】最近接触一个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呢。

  很想帮上忙,却帮不上什么,只希望这个项目的技术框架早一些定下来。

0
相关文章