基于普元平台的大对象数据应用研究

来源 :智能计算机与应用 | 被引量 : 0次 | 上传用户:dragongreen2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对审批流程中大对象数据的应用需求,以普元EOS Studio为设计开发平台,以BLOB类型数据为例,采用上传文件类型提供的属性进行大对象数据的赋值和文件大小判断,并通过运算逻辑“expandLobProperty”获取数据库中的大对象数据,同时,运用自定义函数实现图片格式选择和图片预览等功能。该研究详细阐述了其技术实现过程,对其他类型大对象数据在普元平台上的应用提供了借鉴。
  关键词:大对象;普元;EOS;LOB;BLOB
  中图法分类号:TP311 文献标识号:A 文章编号:2095-2163(2015)01-
  Abstract: According to the demand of large object data application in the approval process,this paper uses the property of the upload file type to provide the assignment and judge the size of large object data,taking Primeton EOS Studio as a design and development platform with BLOB data as examples,through the operation logic "expandLobProperty" access to large object data in the database. At the same time,it uses user-defining function to realize the function such as selection and preview of image. The study explains the technical implementation process in details,and provides reference to other types of large object data in Primeton platform application.
  Key words: Large Object; Primeton; EOS; LOB; BLOB
  0 引 言
  随着各部门业务需求和应用的不断深入,企业办公自动化OA(Office Automation)系统[1-3]正在用于处理日益复杂的管理流程和业务数据。其中,不仅要处理如文本、数值、日期等简单类型的数据,而且更要处理Office、WPS Office和PDF等多种文件格式以及图片等复杂类型的数据[4],因而如何在审批流程中实现对大对象数据的快速高效处理,并进一步提升用户体验,则是系统设计与开发的关键问题之一。本文即基于普元EOS Studio 6.2集成开发平台,实现了图片类二进制大对象数据在Oracle 11g数据库系统上的应用与管理。
  1 普元平台简介
  普元Primeton EOS平台是一款建立在J2EE之上的基于面向服务的体系架构SOA(Service Oriented Architecture)[5-6]的应用软件平台,通过采用多层体系结构,提供了面向构件的应用机制,并且在功能上主要包括:EOS构件运行和管理环境、EOS工作流、EOS构件库和EOS构件集成开发环境四大模块。普元EOS集成开发环境(EOS Studio)是将设计、开发、组装、调试、维护、部署、监管和发布融于一体,且据此而实现了对SOA应用和服务全生命周期的开发、维护和管理功能[7]。
  2 大对象数据简介
  Oracle数据库支持的LOB(Large Object,大对象)数据类型分内部LOB(包括Blob、Clob、Nclob和Long Raw,这些数据存储在Oracle数据库内部)和外部LOB(Bfile)。其中,Bfile是在数据库外部保存的二进制对象,数据完整性由操作系统来实现维护[8]。而Blob存储的通用二进制数据则在客户端和服务器之间具有较高的传输效率[9],最大容量为4GB,适用于存储非文本的字节流数据,如图片、视频、音频及程序等[10-11]。Clob却用来存储可变长度的字符型数据,最大容量为4GB,且多用于存储长文本数据[8-9]。另外,还有Nclob可用于存储民族字符型数据,最大容量为4GB[11-12]。Long Raw同样存储无结构的二进制数据,最大容量为2GB,但一个表最多只能有一列Long Raw类型数据 [8]。
  3 大对象数据应用与实现
  本文选择Blob数据类型,以某审批流程中照片的处理为例,具体描述基于普元平台的大对象数据应用过程。在该流程中,当申请者填写申请单并启动运作流程时,需要上传合适大小的照片并能实时预览,当相关部门领导审核该单据时,即需从数据库中检索出该申请者的照片并显示在页面上;同时,若申请单被驳回至申请环节,则需允许申请者重新上传照片或删除原有照片。
  3.1 数据库设计
  在Oracle数据库中创建表TBL_DOCMANAGEMENT,该表描述流程运转时需要传递的相关内容,对应字段主要包括主键、流程发起人、单位、流程实例ID、照片等,其中照片的字段名称为photo,数据类型定义则为Blob。
  3.2 导入数据实体
  普元EOS Studio平台提供数据建模工具,本例中为该流程新建构件包com.hf.docManagement,在该构件包的数据构件下创建数据集,通过新建数据集即可导入数据实体,导入时选择数据库表格TBL_DOCMANAGEMENT即可。
  3.3 页面流设计
  由于审批流程主要包括申请和审核两大环节,其页面处理过程完全不同,因而需要在普元EOS Studio平台分别设计申请环节的页面流和审核环节的页面流。   3.3.1 申请页面流设计
  创建页面流时,只需在构件包com.hf.docManagement中依次展开构件和页面流部件的模型表示,并单击鼠标右键即可创建页面流。在本例中创建的申请环节页面流可如图1所示。
  在上图中页面图元“input”为后文将要设计的申请页面,逻辑流“getProcessDefID”用来根据流程定义名称获取流程ID,逻辑流“insert”用来保存申请时填写的业务表数据并创建和启动流程实例,保存业务数据时用到运算逻辑 “insertEntity”(位于普元平台基础构件包com.eos.foundation.database.DatabaseUtil中),处理过程不涉及大对象数据,不再详述。
  流程发起人在填写申请单时可以选择上传照片,也可以不上传,若上传照片则照片大小将限制为不可超过15KB,判断过程如图1所示。其中,页面图元需要在Action连线“submit”上设置输出参数,用来输出上传照片的相关信息,设输出参数名称为“uploadfile”,并定义其参数类型为“上传文件类型”。用作分支条件判断的普通连线还需要进行相关设置,具体设置如表1所示。
  赋值图元用来将照片传递给数据实体,需要编辑参数,左值为“businessData/photo”(businessData为页面input中定义的数据源名称),右值为“uploadfile/bytes”,右值类别为“变量”,其赋值方式为“传引用”。
  上述关于照片大小的判断及赋值,用到了“上传文件类型”提供的属性“size”和“bytes”,前者获取上传文件大小,后者则获得上传文件具体内容,并将该文件读入到一个byte数组中。
  3.3.2 审核页面流设计
  审核页面流需要完成两大功能:一是正常审核时的逻辑处理,二是申请单被驳回至申请人重填后审核时的逻辑处理。在构件包com.hf.docManagement中按上述方式及位置创建审核环节页面流,具体如图2所示。
  在审核环节,首先需要在审核页面“audit”(将在页面设计部分论述)中显示上传的照片,具体可通过逻辑流“获取业务数据”(将在逻辑流设计部分论述)来设计实现。为判断是否重新上传照片或是否取消原有照片,需要在Action连线“auditSubmit”上设置审核页面“audit”的两个输出参数,一是名称为“uploadfile”的参数,定义参数类型为“上传文件类型”,用来输出上传照片的相关信息,二是名称为“photoFlag”的参数,定义参数类型为“String”,作为保持或取消原有照片的判断标志。该页面流中用作分支条件判断的普通连线则需要进行相关设置,具体设置如表2所示。
  若保持原有照片,则需要获取前次上传照片的内容,此时就要用到运算逻辑“expandLobProperty”(位于普元平台基础构件包com.eos.foundation.database.DatabaseUtil中),据此将可获取数据实体的LOB属性对应的值,即需要将第三个参数设置为本例中LOB属性的名称“photo”。
  审核环节页面流包含两个赋值图元,一个用来取消原有照片,另一个用来将重新上传且小于15KB的照片赋值给数据实体,编辑参数时,左值均为“businessData/photo”,右值均为“uploadfile/bytes”,右值类别为“变量”,赋值方式仍为“传引用”。需要注意的是,在取消原有照片时也存在赋值操作,但由于此时审核页面上没有选择或者选择了无效文件,将会导致“uploadfile/bytes”中没有二进制数据传递给数据实体,即相当于取消了原有照片。
  3.4 页面设计
  进行页面开发时,只需在构件包com.hf.docManagement中依次展开、并呈现构件和页面资源部件,单击鼠标右键即可创建JSP文件。对应申请环节页面流和审核环节页面流,由此需要分别设计申请页面和审核页面。
  3.4.1 申请页面设计
  4 结束语
  本文研究了基于普元平台和Oracle数据库系统的BLOB类型数据在审批流程中的应用步骤和方法,结合开发实践,对页面流、页面和逻辑流等涉及到大对象数据处理部分的设计和开发进行了详细说明,取得了较好的应用效果,相较于文献[13]、文献[14]及文献[15]等完全利用代码来完成在Oracle数据库中的大对象数据存取操作,其优势主要体现如下:
  (1)解决了简单类型数据和大对象数据的集中统一管理,对insert、update等数据库常用操作无需区别对待,降低了实现难度。
  (2)可视化的页面流和逻辑流设计界面,在一定程度上实现了图形化编程,提高了开发效率。
  (3)提供了常用功能的逻辑构件,具有一定的粒度,提高了软件的复用度和可靠性。
  (4)将页面展现和业务逻辑等分开实现,便于程序的扩展和维护,同时建立了不同层次功能复用的基础。
  (5)对本文介绍的方法稍加修改或扩展即可应用于长文本等其他类型的大对象数据。
  参考文献:
  [1] 缪永,周健,陶亮. 基于工作流的企业协同OA系统关键技术实现[J].计算机技术与发展,2011,21(3):90-93.
  [2] 杜龙. 办公自动化的国内外发展状况及未来的发展方向[J].电脑知识与技术,2009,5(9):2457-2458.
  [3] 栾阳. 基于WEB的办公自动化系统应用研究[J].电脑知识与技术,2008,4(5):1272-1273.
  [4] 孙俊峰. 一种基于VBA平台的OA文档处理方案及其模拟实现[J]. 西南民族大学学报·自然科学版:2014,40(5):739-744.
  [5] 张磊.基于SOA的办公自动化系统的设计与实现[J].电脑知识与技术,2010,6(36):10314-10315.
  [6] 田广,唐宁,张岩. 基于SOA体系的企业系统协同平台的研究和应用[J].计算机工程与设计,2010,31(21):4615-4620.
  [7] 周江.基于XMLC的EOS页面构件设计与实现[J].电脑知识与技术,2009,5(15):3945-3947.
  [8] 张静,王永敏.数据库应用系统中LOB应用技术研究[J].计算机技术与发展,2011,21(2):166-169.
  [9] 高翔云,王建军.用PB存取社会保险管理信息系统中图片资料的方式[J].计算机光盘软件与应用,2012(15):8-9.
  [10] 单春燕.应用BLOB技术实现图像资料的存储[J].中国管理信息化,2013,16(7):88-89.
  [11] 全杰.基于OCCI技术存取数据库大对象的方法及实现[J].计算机系统应用,2010,19(7):162-165.
  [12] 刘华,李峻林,熊俊,等.大对象数据在数据库上的存取管理[J].舰船电子工程,2008,28(8):124-127.
  [13] 孙熙文,王友钊. LabVIEW中实现Oracle大对象数据存储的一种方法[J].工业控制计算机,2005,18(2):38-40.
  [14] 李劲. 对PB访问数据库中大对象数据方法的研究[J].微计算机信息,2006,22(21):236-238.
  [15] 袁勇. Oracle数据库大对象数据存取的两种实现方法及时间性能比较[J].佳木斯大学学报(自然科学版),2014,32(1):116-118.
其他文献
通过分析液化烃的组成和着火特点,阐述液化烃球罐发生火灾时的消防冷却方式及系统组成,并根据自己的设计经历,以容积为3000 m3的球罐为例,从水雾喷头水雾锥的保护面积入手,估
介绍了Li1+xV3O8的结构和作为水溶液锂离子电池负极材料时的充放电机理;对近年来Li1+xV3O8材料作为水溶液锂离子电池负极材料的性能进行了评述。探讨了该材料在水溶液中电化学
摘要:大数据背景下,SQL Server关系型数据库的存储容量暴涨,如何高效的实现把SQL Server数据库中的数据迁移到HBase分布式数据库,是亟需解决的一个关键问题。讨论研究了两种数据库之间的差异之后,首先提出了数据库模式之间的转换,把SQL Server数据表的模式,按照不丢失关系的原则,转换成HBase下的表模式;然后根据不同的表间关系的数据迁移的规则,实现SQL Server数据库中
采用中药治疗视神经炎患者11例20只眼,视力均有不同程度改善.其中,视力恢复到1.0以上的有13只眼占(65%).平均显效时间2.8日.
培养实践创新能力是高校肩负的历史重任,是大学生特别是制药工程专业学生在大学期间教育的重要内容。本文以本科毕业专题为基础,开展对制药工程专业本科生实践创新能力培养方
【摘要】数学课堂是一种教学合力,主要由“思想品德教育”“数学知识传授”和“思维能力培养”三种原则组成,这三原则是相互联系且不能兼容的。思想品德教育是课堂教学的灵魂;数学知识是课堂教学的主要内容;思维能力的培养是课堂教学的目标,应贯穿于教学过程。这三原则中任何一方面的疏忽,都不能达到最佳教学效果。因此,如何使这三原则形成课堂教学的合力,有机地结合起来,是提高课堂教学质量的关键。  【关键词】数学课堂
从创新欲望、发散思维、批判性思维及想象能力四个方面对化工原理教学过程创造性思维的培养进行了详细的分析与说明。
小学低年级音乐课堂做游戏,相对于一般的游戏而言,它的不同之处在于,以服从音乐的指导为根本,游戏的形式是外在,把学生对音乐的体验、感受强调出来。一边让小学生们聆听音乐,
过去一年间——我们书写过19位院士传奇的人生经历;记录过54位让人瞩目的创新精英;深入呈现了68项昭示科技进步的成果;仔细梳理了36家让人深思的企业的品牌成长历程;见证了62
【摘要】高效课堂是一种以追求高效率知识习得的课堂教学模式,对于小学数学教学而言,高效教学模式的引入,对于提升学生数学学习兴趣、增强学生对基础知识的理解、提高学生知识的综合应用能力都是具有实际意义的。而通过高效课堂教学模式的实施,对于学生创新意识的培养,也是具有一定支持作用的。  【关键词】小学数学 高效课堂 创新意识 构建  小学阶段数学学科的重要性不言而喻,其教学工作也是整个基础教育阶段课程教学