大数据环境下实现数据持久化的系统及方法_3

文档序号:9766022阅读:来源:国知局
作将HTT内青求中所含的需添加的业务表单数据,转化 为SDO变更摘要中的添加对象;
[0113] (2-4)所述的SDO反序列化操作将HTT内青求中所含的需修改的业务表单数据,转化 为SDO变更摘要中的修改对象;
[0114] (2-5)所述的SDO反序列化操作将HTT内青求中所含的需删除的业务表单数据,转化 为SDO变更摘要中的删除对象;
[0115] 所述的SDO变更摘要解析操作,包括W下步骤:
[0116] (3-1)所述的SDO变更摘要解析操作,负责解析SDO变更摘要,读取并解析SDO变更 摘要中添加记录部分,并将其转化为可持久化操作的添加记录语句;
[0117] (3-2)所述的SDO变更摘要解析操作,负责解析SDO变更摘要,读取并解析SDO变更 摘要中修改记录部分,并将其转化为可持久化操作的修改记录语句;
[0118] (3-3)所述的SDO变更摘要解析操作,负责解析SDO变更摘要,读取并解析SDO变更 摘要中删除记录部分,并将其转化为可持久化操作的删除记录语句;
[0119] 所述的SDO持久化操作,包括W下步骤:
[0120] (4-1)所述的SDO持久化操作,执行持久化添加记录操作,实现添加表单数据的业 务需求;
[0121] (4-2)所述的SDO持久化操作,执行持久化修改记录操作,实现修改表单数据的业 务需求;
[0122] (4-3)所述的SDO持久化操作,执行持久化删除记录操作,实现删除表单数据的业 务需求;
[0123] 在实际应用中,本发明的大数据环境下实现数据持久化的通用方法与系统的具体 实施过程如下:
[0124] I、操作业务表单
[0125] 通过浏览器进行WEB应用系统,打开具体业务表单并操作,如添加一条表单记录、 修改一条原有表单记录、删除一条表单记录;在未提交业务表单请求的情况下,W上操作允 许重复执行多次,每一次的操作,都会实时的在JSON的变更集中记录变更;关于JSON变更集 的数据模型,如下所示: { key; value,key:t.,.}... chan可 e 这ummary{
[0126] create: [ f ref: HI' { ref: … } modify:[ { key: oldv奇lu.e, . ./ ref:: },' { k每y:.扫.1 过value, , re.f.:"" 一 }
[0127] ], :d色 I 巧 t ?:[ { kay: V:诗Iue, . . . , r培f :"" 一 { key.: value, re:f.:"" } .] } }
[012引格式说明:
[0129] 如表1所不,关于特定KEY有changeSummary, create ,modify ,delete ,ref
[0130] 表1格式说明
[0131]
[0133] 2、提交业务请求
[0134] 提交业务请求,首先需要先对JSON作合法性校验,确保传输的数据格式满足后台 SDO变更摘要的解析要求;其次将JSON格式的数据模型解析为化vaScript对象,采用JSON解 析器,或者化vaScript原生提供的eval ()函数,都可将其解析为化vaScript对象;最后W HTTP协议方式提交请求。
[0135] 后台接收到从前端传输过来的请求Request,通过SDO对象的反序列化模块,将业 务表单数据解析并转换成SDO对象;将业务表单数据的变更解析并转换成SDO变更摘要对 象;关于SDO变更摘要的转换,其核屯、操作包括如下(变更集的接口源自SD02.1接口规范 common j . sdo. ChangeSummry)
[0136] public interface I巨.x.te打过色:d巴hang食S-umniary :e..xtan过s Chang污Su扣扣ary { J- 'k -k *添加的结点同步到变更集. *:/ void add(DataObject dataObj色ct); J禾' * *修改的结点同步到变更集. v'oi过 mo过if'y'CDat.aObj芭Ct 过at.aObje:.G;t., int index.,- Cfeject 〇1 过Value) ./* 大. *刪除的结点同步到变更集. */. v'ol过delete (D讶t却0杉j:負 Cu .过动1:却0打主貞芭t);
[0137] 具体过程如下:
[0138] (1)创建SDO实体对象时,如果该对象为根结点,为同时其创建SDO变更摘要对象 (注意如果该对象非根结点,则不添加 SDO变更摘要对象,即变更摘要只存在于整棵SDO树的 根结点中);
[0139] (2)为SDO实体对象添加子实体时,实际是为该对象添加一条记录。子实体创建成 功后,将子实体添加进SDO变更摘要中,成为变更摘要添加列表中的一条记录;
[0140] (21)获取SDO变更摘要,W当前SDO结点为起点,一级一级往根结点递归遍历,直到 遍历到根结点结束,此时从根结点中获取SDO变更摘要;
[0141] (22)判断子实体是否为一般的SDO对象,如果是,则添加到SDO变更摘要,成为变更 摘要中添加列表的一条记录;
[0142] (23)如果判断子实体为集合类型(即为java.Util .Collection的子类)的实体,则 遍历集合中的每一个对象,并添加到SDO变更摘要中的添加列表;
[0143] (3)修改SDO实体对象时,将SDO实体对象的原属性值、新属性值都记录到SDO变更 摘要中(此处包括静态属性与动态属性,采取相同的操作方式),成为变更摘要修改列表中 的一条记录;
[0144] (31)获取SDO变更摘要,参见(21);
[0145] (32)判断该实体是否已经存在于变更摘要中,如果是则直接获取该对象的修改变 更,否则新创建一个该对象的修改变更,修改变更的存储结构如下(修改变更的接口源自 SD02.1接口 规范commonj . sdo. ChangeSummary. Setting) public: I打 t erf a位毎 I 臣 x.te打de 过狂etti打g e 父 tends 泣e 亡 ting {' vo'i过 S色tPr田per亡yfPr.opsrt.y pirDpextyj;
[0146] void set Value (Object V註l.u色); ^oid '思控亡H乱毎召賢1:'《]〇0〇.16进11 ha宮S控t);
[0147] (33)存储修改变更到变更摘要中,并保持修改变更与所属SDO对象的对应关系;
[0148] (4)删除SDO实体对象之前,先将SDO实体对象记录到SDO变更摘要中,成为变更摘 要删除列表的一条记录,然后再执行删除;
[0149] (41)获取SDO变更摘要,参见(21);
[0150] (42)将待删除的SDO实体记录到变更摘要中;
[0151] (421)首先判断待删除的SDO实体是否属于变更摘要添加列表中的一员,如果是则 在添加列表中删除该实体,结束将待删除的SDO实体记录到变更摘要操作;
[0152] (422)其次判断待删除的SDO实体是否属于变更摘要修改列表中的一员,如果是则 在修改列表中删除该对象;
[0153] (423)最后将该SDO实体记录到变更摘要中删除列表;
[0154] (43)在SDO对象图中删除该SDO对象;
[0155] (5 )持久化SDO变更摘要操作(操作接口如下),注意此处只需传输变更摘要 common j . sdo.化angeSumma巧作为参数,而无需传输整个SDO的对象图; public interface ChangeSummaryPersistence { / 去.A" *持久化变更集. LUI36」 * Qparam CS 变更集. *7 bo曰lean persist (ChangeSummary c.s); }
[0157] (51)借助于持久化层的开源框架,如化bernate等,结合已配置使用的事务;
[0158] (52)持久化SDO变更摘要中的添加列表,执行插入数据库操作;如果添加列表中含 有子孙实体,则采用持久化框架的级联操作,实现一并插入子孙实体.
[0159] (53)持久化SDO变更摘要中的修改列表,执行更新数据库操作;
[0160] (54)持久化SDO变更摘要中的添删除列表,执行删除数据库操作;如果删除列表中 含有子孙实体,则采用持久化框架的级联操作,实现一并
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1