BlazeDS Livecycle Data Services会做什么,而PyAMF或者RubyAMF则不会呢?
我正在进行技术审查,并研究了与各种后端(Rails,Python,Grails等)的AMF集成。
那里有很多选择,问题是,像RubyAMF / pyAMF一样,Adobe产品会做什么(BlazeDS等)?
解决方案
回答
好问题。我不是一个红宝石家伙(我在Flex中使用Java),但是我认为区别于商业生命周期ds的是
- 流协议支持(rtmp)-竞争彗星等,提供视频
回答
Adobe有两种产品:Livecycle Data Services ES(LCDS)和BlazeDS。 BlazeDS包含LCDS功能的子集,并且已开源。不幸的是,NIO通道(RTMP NIO / HTTP)和数据管理功能仅在LCDS中实现,而不在BlazeDS中实现。
BlazeDS仅可用于将Flex与Java后端集成。它不仅提供使用AMF序列化的远程服务(如RubyAMF),而且消息传递和协作功能也请参见此链接(http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcoverview_3. html)。我还认为与RubyAMF / pyAMF相比,该支持更好。
如果后端是JAVA,并且我们只想使用免费产品,那么我们也可以使用GraniteDS或者WebORB(BlazeDS竞争对手)
回答
除NIO(RTMP)通道外,LCDS还包括"数据管理"功能。
使用此功能,我们基本上可以在ActionScript类中实现LCDS定义的类似于CRUD的接口,并获得:
- 自动渐进式列表加载(滚动时加载大列表/数据网格)
- 自动原始管理(我们可以在闪存中本地获取对象,对其进行修改,将其发送回去,并且数据库将自动更新)
- 解决冲突的功能(如果多个用户尝试同时更新同一记录)
- 如果我还记得的话,还可以改善与LiveCycle ES工作流引擎的集成
IMO,用这种方法开发可能很快,但前提是我们仅具有基本要求和简单的体系结构(忘记SOA,否则在Flex上效果很好)。我对BlazeDS很好。
回答
这里描述的LCDS数据管理功能当然是有效的,但是我相信它们并不能让我们真正更快地开发解决方案。开发人员仍然必须编写所有数据访问代码,执行查询,将数据读取器中的数据提取到值对象中。所有这些都已经通过代码生成器解决了十多次。例如,Java的WebORB中的数据管理方法(非常类似于.NET和PHP的WebORB中的数据管理方法)基于代码生成,该代码生成同时为客户端和服务器端创建代码。我们可以从代码生成器中获取所有ActionScript API,以执行完整的CRUD。
此外,WebORB提供视频流和实时消息传递功能,并且超越了BlazeDS和LCDS所提供的功能,尤其是考虑到该产品是免费的。只是谷歌它。