基于 Java 技术的数据共享平台构架研究
来源:资源网 更新时间:2012-04-15

  作者:陈腾;武广得;张华

1 引言

    随着计算机技术的发展,在许多行业、单位或机构、部门内部实现了信息化管理,网络化、信息化成为各个行业提高工作效率、业务水平的主要途径。但是,由于各行各业、部门或机构的业务和功能不同,构建出了许多相互隔离信息的数据库和管理系统,形成的“信息孤岛”严重阻碍了数据的流通和有效利用。

    科学数据共享平台就是将些异构的数据库、数据资源集成起来,通过一个统一的平台系统对外实现发布。随着科技的进步,一些核心技术也融入到了平台系统的建设中来,而在这些技术中, Java 技术以其平台无关性、移植性强、安全性高、稳定性好、分布式、面向对象等优点,成为共享平台开发的一种很好的语言。将 Java 技术融入到平台建设中能够很好地解决数据发布、异构数据库集成等方面的问题。

2  Java 技术和 XML 技术

    Java 是 SUN 公司开发的一种面向对象、独立于平台的安全语言,它采用面向对象的编程方法,将程序视为一组协同工作的对象,从而提高对象与对象之间交互的能力。 Java 语言最突出的优点就是独立于平台,它无需修改程序便能够运行在不同的计算环境中,人们在文本编辑器中编写 Java 程序,将其保存为文本文件,这些文件可以在支持 Java 的任何平台上创建,然后经过 Java 解释器的编译便可在不同的平台上运行。在数据共享平台中运用这种语言,能够很好地实现数据跨平台运行的特性。

    提及 Java 语言,就离不开 XML 技术。从 XML 诞生之日起,就一直是业界的焦点话题之一。在分布式编程中, XML 作为一种中间的数据接口,在不同的平台系统中进行资源的流通。 Java 语言一直被认为是最适合进行 XML 编程的语言, XML 适用于平台独立、易于提取信息的文档和数据的处理,而Java 则适合于平台独立、易于处理的面向对象的应用软件的解决方案与平台无关的语言 Java 加上与平台无关的数据 XML ,能够完成最为复杂且弹性最好的分布式应用。在科学数据共享平台的开发中运用 Java 技术和 XML 技术,可以开发出一种较好解决分布式数据资源共享的平台系统。

3 基于 Java 技术的平台构架

3.1 平台系统的工作流程

    数据共享平台系统是一种分布式、多层应用的体系结构,整个平台系统的工作流程是:用户由客户端浏览平台系统的门户网站,发出查询或下载等请求, Web 服务器接收请求,并开始分析执行,通过 JSP 引擎和 Servlet 引擎,将获得的请求进行参数匹配,例如查询请求,可将检索词转换成 SQL查询语句,然后将其发送到相应的数据库中执行,接着将反馈信息转换成 XML 文件,经过整合处理,进行数据结构的转换,最后将完整的数据通过客户端的浏览器呈现在用户面前。

3.2 平台系统的结构框架

    通过平台系统的工作流程,我们可以把整个数据共享平台分为三个层次:客户端、业务逻辑层和数据层。客户端实现用户的操作,完成用户与平台系统的交流,是数据共享平台对外发布数据的一个平台;业务逻辑层是平台系统的核心,它通过 JSP 、 Servlet 等技术来实现客户端与数据层之间的连接,是平台系统的技术支撑层和连接层;数据层主要指的是分布在各处的数据资源,包括分散的数据集、数据库等,是平台系统的可利用资源库。具体的结构框架如图 1 。

 

4  Java 技术在数据共享平台中的应用

4.1 Java Applet 技术

    Java Applet 是用 Java 语言编写的一些小应用程序,它们可以直接嵌入到网页中,当用户使用支持 Java 的浏览器装载包含小程序的 Web 页时,该浏览器将从 Web 服务器下载该小程序,然后使用 Java解释器在用户的系统上运行它。含有 Applet 网页的 HTML 文件代码中带有< applet >和< / applet >这样一对标记,创建好的 Java 小程序经编译成类文件后,便放置在< applet >标记中,从而能在 Web 页中显示。

    在客户端的浏览器中嵌入 Applet ,能够极大地提高用户浏览、下载数据资源的速度。同时, Applet 在用户计算机上执行时,可以下载一些资源如声音文件、图像文件或更多的 Java 代码,这有利于复杂多样的数据资源在门户网站中的显示。另外,设计交互式的 Applet,允许用户与系统进行交互式操作,从而促进系统与用户之间的交流。

4.2 Java Servlet 技术

    Servlet 是与万维网相连的服务器运行的一种应用程序,它将 Java 用于 Web 之上,而没有小程序的安全限制。 Servlet 是运行在服务器上而不是用户的计算机上,对 Web 服务器的要求是有支持 Java Servlet 规范的 Servlet 引擎。

    Servlet 的主要任务是收集来自 Web用户的信息,并提供相应的内容进行响应。对于数据共享平台,当用户通过浏览器访问门户网站时,可以使用表单来收集来自用户的信息。表单是 Web 页面上的一组文本框、单选按钮、文本区域、按钮和其它输入框。表单中的每个控件都存储了信息,这些信息可被传递给 Web 服务器,进而传递给 Java Servlet 。由图 1 可以看出, Web 浏览器使用HTTP与 Web 服务器进行通信。在 Servlet 技术中可以使用两种 HTTP 请求来将表单数据发送给服务器: GET 和 POST。

    对于这两种请求, Java Servlet 都通过从 Httpservlet 类继承来的方法进行处理的:

    doGet(HttPservletRequest , HttpservletResponse )

    doPost(HttpservletRequest , HttpservletResponse )

    这其中 servlet 通过调用类 HttpservletRequest 的方法来接收有关它如何运行的信息,调用类 HttpservletResponse的方法来发送一些与用户进行通信的信息。

    Java Servlet 能够很容易地动态生成 HTML 文本,生成能够根据用户输入而改变的页面,这对于处理共享平台中的一些动态信息十分有用。

4.3  JSP 技术

4.3.1  JSP技术简介

    Java ServletPage (简称 JSP )是sun Microsystem 和 Apache Software Foundition 制定的 Tomcat 规范的一部分。 JSP 技术可以很容易地创建既有静态部分又有动态部分的 Web 内容, JSP 技术具有 Java Servlet 技术的所有动态功能,但是提供了一种更自然的方式创建静态内容。如果在开发平台时只使用 Java Servlet 技术,则进行细微的修改将极其困难,任何修改都必须对 Servlet 进行编辑、编译、测试,并将重新部署到 Web 服务器中,使用 JSP 可以将 Web 页中的静态内容放到 HTML 文档中,并在其中调用 Servlet ,这样可以大大提高运行的速度,同时避免了重复性的开发工作。

    创建 Java ServerPage的方式与创建 HTML 文档相同:使用文本编辑器或 Web 发布程序。编写 JSP 与编写 Java 语言有所不同, JSP 是将 Java 语言渗透到 HTML 文档中,将 Java 语句放入到一些特定标记中,通过 HTML 在 Web 页中显示。它由三种元素构成: ScriPtlet ,位于标记<%和%>之间,用于执行 Java 语句;表达式,位于标记<%=和%>之间,用于放置 Java 表达式,生成的输出被显示在 Web 页中;声明,位于标记<%!和%>之间,用于创建实例变量以及处理显示页面所需的设置任务的语句。

    保存页面时,使用文件扩展名.jsp,然后便可将其上传到 Web 服务器中其他 Web 页所在的文件夹中。 Java Servlet 需上传在 servlet 专用的文件夹中,而 JSP 则可放在网上任何可访问的文件夹中。

4.3.2  JSP 中的 JavaBeans 组件

    现在软件开发的发展趋势是使用可重用的组件, JavaBeans是很容易进行重复使用并被组合成应用程序的 Java 类,任何遵循特定设计约定的 Java 类都可以成为一个 JavaBeans 组件。在数据共享平台的页面开发中,使用 JavaBeans 可轻松、快速地完成页面中一些组件的开发和运行。同时, JavaBeans 指定了大量用于对象间交互的机制以及大多数对象都需要支持的通用行为,还提供了组件间进行通信的框架。

    JSP 技术直接支持通过 JSP 语言元素使用 JavaBeans,我们可以很容易地创建并初始化 bean ,并设置和获取它们的属性。

    ( l )创建 JavaBeans 组件

    可以使用如下格式来声明 JSP 页面将使用一个 JavaBeans组件。

    < jsp : useBean id =“beanName” class =“fully _ qualified _ classname ”、 scope = "scope " >

    < jsp : setProperty … / >

    < / jsp : useBean >

    这其中 id 属性的值确定了所在范围中的Bean 名称,class 属性指出所指bean 的类的名称, scope 是指 jsp: useBean 元素声明页面将使用一个在某个指定范围内保存并访问的 bean ,这个范围可以指定为 application 、 session 、request 或 page, jsp : setProperty 语句用于初始化 bean 的属性。

    ( 2 )设置 JavaBeans 组件的属性

     可通过两种方式设置 JSP 页面中 JavaBeans 组件的属性:使用 jsp : SetProperty 元素或使用一个 scriptlet : < % beanName . setPropName ( value ) ; % >

    ( 3 )获取 JavaBeans 组件属性

    获取 JavaBeans 组件属性的方法也可选用两种,这两种方法均将属性值转换为一个 string ,然后插入到当前隐含的 out对象: < jsp : getProperty name = " beanName " property = " propName " / >或< % beanName .GetPropName() % >

    综上,我们可以用下图来表示 JSP 页面访问对象的过程。

 



 

4.4 使用 JDBC 技术连接数据库

    数据共享平台完成的主要功能就是实现前端用户与后台数据库的一种连接,通过平台用户可以访问数据库,实现对数据的各项操作。 Java Database Connectivity ( JDBC )是一个类库,它将 Java 程序直接连接到后台的数据库,通过将驱动程序作用到数据源的桥梁,可以直接在 Java 中存储和检索数据。

    ( l )建立 JDBC—ODBC 桥

    ODBC 是 Microsoft 用于访问 SQL 数据库的通用接口,可通过 ODBC 数据源管理器将所需数据库关联到驱动器上。 Java 2中的 JDBC—ODBC 桥驱动程序为: sun . jdbc. odbc . JdhcOdbcDriver 。

    ( 2 )导入数据包

    在 JSP 中要使用 JDBC 技术,首先要导入一些数据包,这些数据包中包含了完成数据库连接的一些方法,具体如下:

    < % @ page info = " package dbxml . sax " % >

    < % @ page import = " org. xml . sax . * " % >

    < % @ page import = " org. xml . sax . InputSource " % >

    < % @ page info =“ database handler " % >

    < % @ page import = " java . io . * " % >

    < % @ page import = " java . until . * " % >

    < % @ page import = " java . sql . * " % >

    < % @ page import = " javax . servlet . * " % >

    < % @ page import = " javax . servlet . http . * " % >

    ( 3 )实现数据库连接

    < %

    try {

    Class . forName ( " sun . jdbc . odbc . JdbcOdbcDriver " ) // 连接到数据源的驱动程序

    String data = " jdbc : odbc : DataBaseName " ;

    Connection conn = DriverManager . getConnection ( data , String l , string 2  ) ;

// 建立与名称为 DataBaseName 数据源的连接,其中 string l 为用户名,string 2为密码

    ( 4 )使用 SQL 从数据库检索数据

    Statement st = Conn . cereatstatement ();// 返回一个 statement 对象

    Resultset rec= st . executeQuery( SQL 查询语句);// 将 SQL 查询嵌入 Java

    ( 5 )生成 XML 文件

    File Writer fw = new Filewrite : ( " name . xml " );//将字符流写入 name . xml 文件

    Bufferedwriter out = new Bufferedwriter(fw);// 写缓冲字符流

    writeLine (out, " XML 语句” ) ;

    writeLine (out , " XML 语句” );

     … … // 用多行 writeLine 语句完成 xml 文件的输出

    } catch ( IOException e ) {

    System . out . Println ( " Error--” + e . toString () );

    } catch ( SecurityException se ) {

    System . out . println ( " Error--” + se . toString () );

    } catch (SQLException s ) {

    System . out . println ( " SQL Error : " + s . toString () ) ;

     } % >

    生成的 XML 文件可通过 Web 服务器对用户进行发布。

5 结束语

    本文在 Java 技术的支撑下讨论开发数据共享平台的框架体系,针对平台所要实现的功能将其分为三个层次进行服务,将一些 Java 的相关技术运用到各个层次中来实现数据资源的流通与共享,同时,还实现了层与层之间的连接。 Java 技术的平台无关性能使共享平台运行在任一系统下,很好地实现了跨平台的特性,使得数据资源在系统层次上实现了统一。随着社会的发展,各类资源定会在越来越多的领域实现共享, Java 技术也会在资源共享的过程中发挥越来越大的作用。

    参考文献

    1、Rogers Cadenhead , Laura Lemay. 21 天学通 Java 2 (第三版) [M] 北京:人民邮电出版社, 2005 .

    2、Eric Armstrong Java Web Services 教程 [M] 北京:电子工业出版社, 2003

    3、李志杰  基于 JAVA / XML 技术实现异构数据库直接 WEB 访问[J]. 甘肃科技, 2005 , 21 ( 5 )

    4、郑华,莫林.  基于 XML 和 Java的异构数据库集成中间件系统的研究和实现[J]现代计算机, 2005 , ( 209 ).