基于B_S模式的JDF作业置入数据库的实现_第1页
基于B_S模式的JDF作业置入数据库的实现_第2页
基于B_S模式的JDF作业置入数据库的实现_第3页
基于B_S模式的JDF作业置入数据库的实现_第4页
基于B_S模式的JDF作业置入数据库的实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

70RESEARCH PAPERSCHINA PRINTING AND PACKAGING STUDY 2009.01 基于B/S模式的JDF作业置入数据库的实现 罗如柏1,陈筱燕2,周世生1,高晓静1,钟祯1 (1.西安理工大学 印刷包装工程学院,西安 710048;2.西安煤航印刷材料有限责任公司,西安 710048) 摘要 基于JDF数据标准来实现印刷系统的高效率集成,将JDF作业高效地存储在一个中心数据库中是一个必须 解决的基本问题。分析JDF作业、SQL数据库和网络模式的特点,详细论述了在B/S的网络模式下,将JDF作业 置入到Microsoft SQL Server 2005数据库中的几个关键技术。最后,依据所提理论,利用Java编程语言开发了 基于B/S模式的JDF作业置入的原型系统,并实现JDF作业的远程置入操作。 关键词 JDF;SQL数据库;B/S模式 中图分类号 TS801.8 文献标识码 A B/S Model-based Implementation of Putting JDF Jobs into Database LUO Rubai1, CHEN Xiaoyan2, ZHOU Shisheng1, GAO Xiaojing1, ZHONG Zhen1 (1. The School of Printing and Packing Engineering of Xian Univ. of Tech., Xian 710048, China; 2. Xian ARSC Printing Materials Limited, Xian 710048, China) Abstract In order to integrate companies effectively in printing production system with JDF, it is essential to save JDF jobs into a central database. In this paper, the features of JDF jobs, SQL database and network model are analyzed and key technologies about how to put JDF jobs into Microsoft SQL Server 2005 database under B/S network model are discussed. Finally a prototype system of putting JDF jobs into database based on B/S model is developed by Java language, and JDF jobs can be long range putting into database with this system. Key Words JDF; SQL database; B/S model 0 引言 在JDF联网的构架中,存在分散式和中央式两种 联网结构。其中,中央式的联网结构又分为以JDF为 中心和以MIS为中心1两种形式。对于任何一种JDF联 网的构架,拥有一个用于存储JDF文件的数据库是必 要的。因此,在一个JDF联网的系统中,将JDF作业 置入印刷系统的本质意义就是将JDF文件存入到系统 的数据库中。 将JDF置入印刷系统的可能途径有:客户利用 网络将需要生产的JDF作业提交到印刷服务提供商的 内部生产系统中;公司内部的操作人员将接收到 的JDF作业通过印刷系统内的局域网提交到生产系统 中。不管是哪种途径,其核心是JDF作业的远程置 入。为此,本文结合了一个“JDF作业置入系统”的 原型系统开发实例,重点探讨基于B/S(浏览器/服务 器)模式,利用Tomcat5.0和JSP编程,实现JDF作业 远程置入的原理和方法。 1 需求分析 “JDF作业置入系统”是数字化印刷车间的生产 控制系统中的一个成员组件。需要实现的功能是:具 收稿日期: 2008-12-28 修回日期:2009-01-22 基金项目:西安理工大学2009年优秀博士学位论文研究基金资助项目(602-210802) 研究论文71中国印刷与包装研究 第1期 有一定权限的操作人员能够把需要生产的JDF作业置 入到生产控制系统中去。 为了要在印刷生产过程中实现数字化和自动化的 设备预设准备,需要数字化的作业描述文档来描述作 业生产的各类生产参数。为此,在印刷工业中推出了 一个基于XML的、后缀名为JDF的文件格式。实质 上,一个JDF文档就是一个印刷作业,并且也是一个 XML文档。同时,为了在整个生产控制系统中能够共 享到这类资源,需要一个中央数据库来管理这些JDF 文档2。因此,该系统的功能就可以理解为:将一个 XML文档置入到生产控制系统的数据库中。 设计系统的时候, 考虑到被置入的JDF文档件可 能分散在某些生产操作人员或远端客户的本地电脑 中, 为方便操作, 系统采用B/S模式, 利用基于Web服 务的框架来构建系统。 由于JDF文档实质是XML文 档, 考虑到SQL Server 2005在管理XML文件方面的 优越性, 数据库采用Microsoft SQL Server 2005。 Web服务器则选用Tomcat 5.0, 编程语言是JSP。 因 此, “JDF作业置入系统” 的系统结构如图1所示。 2 相关技术的特点概述 2.1 B/S网络构架 当前,软件系统的开发模式有C/S(客户机/服 务器)和B/S两种。C/S结构,即客户机和服务器结 构。通过C/S可以充分利用两端硬件环境的优势, 将任务合理分配到客户机端和服务器端来实现,降 低了系统的通讯开销。传统的C/S体系结构虽然采 用的是开放模式,但这只是系统开发的一级开放 性,在特定的应用中,无论是客户机端还是服务器 端都还需要特定的软件支持。由于没能提供用户真 正期望的开放环境,C/S结构的软件需要针对不同 的操作系统开发不同版本的软件,加之产品的更新 换代快,已经很难适应百台电脑以上局域网用户同 时使用,而且代价高,效率低。 B/S结构即浏览器和服务器结构,是随着Internet 技术的兴起而基于C/S结构的一种变化或者改进的结 构。B/S结构利用了不断成熟的WWW浏览器技术,结 合浏览器的多种Script语言(如JavaScript)和ActiveX技 术,用通用浏览器就实现了原来需要复杂专用软件才 能实现的强大功能,并节约了开发成本,是一种全新 的软件系统构造技术,成为当今应用软件的首选体系 结构。以目前的技术看,局域网建立B/S结构的网络应 用,并通过Internet/Intranet模式下数据库应用,相对 易于把握,成本也较低。B/S结构是一次到位开发,能 实现不同人员,从不同地点,以不同的接入方式(比 如LAN、 WAN、 Internet/Intranet等)访问和操作 共同的数据库;它能有效地保护数据平台和管理访问 权限,服务器数据库也很安全3。 2.2 SQL Server 2005 数据库 当前比较常用的数据库有SQL Server、Oracle和 DB2等。相比之下,SQL Server比较简单,采用图形 界面,界面友好,非常适合用在Windows平台下,多 应用于中小型企业。Oracle各方面都比较成熟,但对 硬件要求高,适用于大型数据库。DB2能在所有主流 平台上运行(包括Windows),最适于海量数据。在 巨型企业得到广泛的应用,向下兼容性好。但并行实 施和共存模型并不成熟,很难处理日益增多的用户数 和数据卷,伸缩性有限。 图1 基于B/S的系统构架 Fig.1 The B/S Model-based system framework 72RESEARCH PAPERSCHINA PRINTING AND PACKAGING STUDY 2009.01 另外,微软于2005年推出的SQL Server 2005 与2000版本相比,无论在性能上还是在功能上都有 了非常大的改进。尤其是在对XML数据的支持上, SQL Server 2000已经增加了对XML的支持,而 且可以通过HTTP访问获得XML数据,相应的开发 也通过SQLXML单独安装开发包。而SQL Server 2005对XML数据访问的支持有了大幅度增强,主要 表现在4: 1)增加了专门的XML数据类型。 2)提供了对XQuery的全面支持,可以通过 XQuery,在关系数据库的基础上,通过查询引擎把二 维的关系数据结果组织成层次型的XML数据。 3)不仅提供查询,SQL Server 2005还一并提 供了XML DML,可以通过INSERT、UPDATE、 DELETE完成对XML数据片段的修改。 4)与以往关系数据库索引不同,新的数据库引 擎还提供面向XML数据的层次性索引,统一XML索 引为开发人员在已知Schema上批量数据快速查询提 供了支持。 5)通过增强分布式查询的OPENROWSET的功能, 提高同构甚至异构系统间批量XML数据的处理效率。 6)此外,对于SQL Server 2000引入的FOR XML子句和OPENXML( )提供更好的支持。 由于系统所处理的JDF文档是XML数据类型,且 SQL Server 2005具有对XML数据处理方面的卓越性 能,所以决定采用SQL Server 2005来组建系统的数 据库。 2.3 JSP编程技术和jspSmartUpload组件 在动态web网页开发方面,我们采用的是JSP技 术,这是由于JSP是基于强大的Java语言,具有良 好的伸缩性,与Java Enterprise API可以紧密集成 在一起,在网络数据库应用开发领域具有得天独厚 的优势,它能够将内容的生成和显示相分离,生成 可重用的组件,和其他动态网页技术相比较,JSP的 运行速度较快,运行损耗较小,易掌握,安全性和 扩展性较好,并且能够支持XML和分布式处理,应 用也比较广。 jspSmartUpload是由 网站开 发的一个可免费使用的全功能的文件上传下载组件, 适于嵌入执行上传下载操作的JSP文件中。该组件有 以下几个特点: 1)使用简单。在JSP文件中使用jspSmartUpload 组件已定义的类,就可实现文件的上传或下载。 2)能全程控制上传。利用jspSmartUpload组件 提供的对象及其操作方法,可以获得全部上传文件的 信息(包括文件名、大小、类型、扩展名、文件数据 等),方便存取。 3)能对上传的文件在大小、类型等方面做出限 制,从而滤掉不符合要求的文件。 4)下载灵活。通过简单的代码,就能把Web服务器 变成文件服务器。不管文件在Web服务器的目录下或在其 他任何目录下,都可以利用jspSmartUpload进行下载。 5)能将文件上传到数据库中,也能将数据库中的 数据下载下来。但该功能只针对MYSQL数据库。 3 原型系统实现的关键技术 3.1 数据表的建立 首先,在数据库中建立名为“XAUTDB”的数 据库,然后在该数据库下建立需要的表。为了实现系 统登陆时的权限控制,建立一个“EmployeeInfo”的 图2 “JobInfo”表的设计 Fig.2 The table of JobInfo 图3 “DeviceInfo”表的设计 Fig.3 The table of DeviceInfo 研究论文73中国印刷与包装研究 第1期 表。该表用于存放用户的系统用户名、登陆密码和权 限等级等信息。只有具备操作该系统权限的雇员方可 进入系统进行后续相关操作。在该系统中,主要的表 有“JobInfo”(如图2所示)和“DeviceInfo”(如图 3所示)两个表。 “JobInfo”表存放JDF文档,JobID是主键,存 JDF文档中JDF根节点内的JobID属性值。JDFJob的数 据类型是XML数据类型,可存放JDF文档。Date存放 置入JDF作业的日期。Time存放作业在加工时最近一 次状态改变的时间。DeviceID存放的信息表示JDF作 业被分配在哪台设备上,它是“JobInfo”表的外键, 其关联着“DeviceInfo”表的主键。 “DeviceInfo”表存放车间内的设备信息。它可 以用来存放设备的ID、设备名、机况、生产历史等 信息。 由于“JobInfo”表的外键是“DeviceInfo”表中 的主键,因此可以防止存入的JDF作业因误操作而分 配到根本不存在的设备上。 3.2 关键的JSP程序实现 本文实现远程置入JDF文件的基本技术路线是: 首先实现网络的客户端与服务器上的数据库相连接, 然后利用jspSmartUpload组件将客户机上的JDF文 件内容上传到服务器的特定XML文档内,最后将该 XML文档的内容以字符串的形式插入到“JobInfo” 表中的JDFJob内。 本文使用“sun.jdbc.odbc.JdbcOdbcDriver”为 数据库驱动程序5,其具体程序实现如下: 在 数 据 库 连 接 正 常 的 情 况 下 , 便 可 使 用 jspSmartUpload组件把JDF文件上传到服务器上某一 固定的文件夹中。使用jspSmartUpload组件时需将 该组件jar包解压,解压该包后,将其COM文件夹复 制到JSP网页目录下的“WEB-INFclasses”目录 中,就可以在JSP中使用了。其代码实现如下: SmartUpload su=new SmartUpload(); su.initialize(pageContext); /上传初始化 su.setMaxFileSize(10000); /限制每个上传文件的最 大长度。 su.setTotalMaxFileSize(50000); /限制总上传数据 的长度。 su.setAllowedFilesList(“jdf,xml“); /设定允许上传 的文件(通过扩展名限制),仅允许jdf,xml文件 su.upload(); com.jspsmart.upload.File file=su.getFiles(). getFile(i);/获取需要上传的文件 if (file.isMissing() continue; / 若文件不存在则继续 file.saveAs(“/upload/“ + “1.xml“);/将文件内容 上传到服务器的/upload/1.xml中。 当文件内容已存放在指定的XML文档中后,可 将其内容存入到“JobInfo”表中。其中还使用XML 的文档对象模型(Document Object Model,简称 DOM)来读取JobID值。其代码实现如下: String f= “; /初始化变量 String jdf= “; /初始化变量 try /开始将JDF文件读到缓存 FileReader fr=new FileReader(“E:testWeb upload 1.xml“); BufferedReader in=new BufferedReader(fr); while(f!=null) jdf=jdf+f; f=in.readLine();/将XML文档中的内容逐行读取, 74RESEARCH PAPERSCHINA PRINTING AND PACKAGING STUDY 2009.01 并存入“jdf”字符串中 /利用DOM读取JDF中的JobID, DocumentBuilder parser = null; Document doc = null; DocumentBuilderFactory factory2=DocumentBuil derFactory.newInstance(); doc=factory2.newDocumentBuilder().parse(new java.io.File(“E:testWebupload1.xml“);/ 已经Doc建立,准备读取JobID Element root = doc.getDocumentElement();/取得 JDF根结点元素 jobID=root.getAttribute(“JobID“);/在JDF根结点 元素中读取JobID属性值 stmt1=conn.createStatement();/在建立的数据库连 接中定义Statement对象,用于操作数据库 stmt1.addBatch(“INSERT INTO JobInfo (JobID, ate, DFJob, eviceID) VALUES (“+jobID+“, “+date+“, “+jdf+“, “+ deviceID +“)“);/定义 将JDF内容插入数据的SQL语句 stmt1.executeBatch();/执行已定义的SQL语句 catch(FileNotFoundException se) 4 结语 “JDF作业的远程置入”在JDF联网中是一个基 础性操作。有了它,客户就能远程提交印刷任务, 作业管理人员也能在内部高效地协调工作,甚至生 产联盟内的企业也能高效地协调内部作业。本文开 发的一个原型系统已表明远程置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论