Flex blazeds数据管理的实现和问题

本文介绍如何在Flex环境中利用BlazeDS进行数据管理,包括配置数据服务、实现数据查询与变动提交等功能,并讨论了使用过程中应注意的问题。

本文适应于对Flex、blazeds有一定认识(当然对lcds熟悉也可,本文提到的balzeds完全可由lcds替代),尤其对于blazeds至少要熟悉其remoting-config.xml、service-config.xml等文件的配置,可参考adobe的官方文档“BLAZEDS

Developer Guide”。本文强调的是datamanager和datastore的了解和使用。

1、 flex客户端快速配置数据服务

开发人员在flex开发环境中(插件或者builder)的数据/服务视图中,点击“数据连接/服务”按钮,选择服务类型,这里选择blazeds,会自动列出service-config.xml配置文件中配置的所有service,这里需要注意的是需要在java web项目的web.xml配置文件增加如下配置,否则可能出错。

<servlet>

<servlet-name>RDSDispatchServlet</servlet-name>

<display-name>RDSDispatchServlet</display-name> <servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>

<init-param>

<param-name>useAppserverSecurity</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>10</load-on-startup>

</servlet>

<servlet-mapping id="RDS_DISPATCH_MAPPING">

<servlet-name>RDSDispatchServlet</servlet-name>

<url-pattern>/CFIDE/main/ide.cfm</url-pattern>

</servlet-mapping>

当用户选择了某个server(假设为TestService)之后,用户即可拖动该service与datagrid等进行绑定,可实现快速的数据查询,增、删、改变更提交。

Flex_4_Tutorials,Chapter 6: Using data management to synchronize server updates,详细地并且图形并茂地描述了step操作,唯一遗憾是其基于

ColdFusion。

2、 数据管理的实现

数据管理在我看来就是查、增、删、改,简单来说就是数据查询和变动数据提交,通常情况下flex UI是用datagrid来展示数据的,因此可以说数据管理就是datagrid如何填充数据,datagrid的数据变动如何抓取出来并且提交到java服务,直至数据库,这里重点强调的是增、删、改数据如何提交及数据如何恢复。

1) 启用数据服务的数据类型的数据管理功能,所谓数据类型可以简单理解为填充datagrid的item(行记录,比如订单行项目、用户信息等);

2) 指定其创建项的操作,1中选定的数据服务的某个函数,建议命名为insertItem;

3) 指定其更新项的操作,1中选定的数据服务的某个函数,建议命名为updateItem;

4) 指定其删除项的操作,1中选定的数据服务的某个函数,建议命名为deleteItem;

至此,datagrid的数据变动已经可以提交给java服务了,有2种提交方式。

1)DataManager.autocommit = true时,通过调用TestService. insertItem, TestService. updateItem, TestService. deleteItem即可将增删改的item提交给java服务,每次只提交一个item;

2)DataManager.autocommit = false时,用户调用TestService.commit(),即可把所有的增、删、改记录都提交给java服务。

用户可以调用testService.revertChanges();来恢复任何变动的数据,恢复到上次查询的显示结果。

3、 使用注意事项

虽然flex blazeds提供的这个数据管理功能一定程度上给开发人员带来了方便、特别是有利于制定flex开发规范,但是个人觉得flex blazeds提供的数据管理太鸡肋,想用好的话还不如参考此思想自行实现。

1) 每次只提交一条记录,假设对datagrid新增了5条记录、修改了4条记录、删除了1条记录,那么做数据提交的时候flex就需要访问java服务10次,大大增加连接开销。

2) 可扩展性极差,用户无法在flex端获取变更记录(虽可通过datastore. uncommittedBatches获取所有未提交的变更项,但是没有增、删、改的标记),因此用户无法自行批量提交变更项(除非java服务中cache了原始记录集合)。

3) 状态管理没开放,既然其可抓取变更项,一定是有状态改变的,但是flex未开放状态管理api,只是说存在如下状态变更:

testService查出数据后其状态为初始状态;

有增、删、改时其状态变为未提交;

Commit成功后状态变回初始状态;

revertChanges之后也变回初始状态;

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值