开源GIS实验田

OpenSource GIS Space

  • 内容导航

    Creative Commons
    本站文章全部原创
    转载请遵循创作共用协议
  • 最新评论

    • zhaiduo: 期待GO的web应用...
    • zdnet: 您好!去年8月您参加过我们ZDNET的优秀...
    • oschina: hi,此文已转贴到开源中国社区,网...
    • YUCHENG HU: MarkLogic 已经开始为各大出版机构进行...
    • Gao Ang: DITA的学习成本的确偏高,仅下载翻阅...
  • 热门主题

  • 随机阅读

    • June 2009
      M T W T F S S
      « May   Jul »
      1234567
      891011121314
      15161718192021
      22232425262728
      2930  
    • Gao Ang

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

      • 6 Users Online
    • 只言片语

      “If you want to make an apple pie from scratch, you must first create the universe.”
    • 青年时犯错误,成年时同错误进行斗争,老年是为错误而惋惜。——迪斯雷里

    Archive for June 9th, 2009

    OGSA-DAI的JDBC驱动

    9th June 2009

    OGSA-DAI:JDBC驱动,是OGSA-DAI网格中间件客户端工具的拓展项目,符合Sun JDBC接口v2.0规范,用以帮助开发者通过符合JDBC标准的Java代码与数据服务资源交互。

    通常情况下,在DAI安装与数据服务资源部署之后,需要运行环境变量设置脚本setenv.sh加载依赖类库,即可以在命令提示符下,使用DAI自带的SQLClient客户端向服务转入SQL脚本并执行数据资源查询。查询时需要指定的参数包含:服务资源URL地址,数据资源ID(代表与哪个数据源建立连接),以及SQLQuery查询串。

    但以命令行方式使用OGSA-DAI客户端,在与网格数据服务交互方面并不方便,OGSA-DQP提供了针对分布式查询的GUI客户端,帮助使用者添加查询计划,并生成OQL查询解析树。但如果计划将已有JDBC应用数据源迁移到DAI服务之上,使用OGSA-DAI:JDBC驱动则更灵活,开发者可以通过一般JDBC的处理方式,操作DAI上部署的各类数据服务,甚至可以使用Hibernate或JPA等ORM层,来构建DAI:JDBC之上的实体关系映射。

    OGSA-DAI:JDBC驱动目前最新为0.1版本,在使用时首先需要加载JDBC Metadata Activity,来帮助DAI:JDBC获取后端关系型数据库的元数据信息。之后需要将MetaDataMethodActivity部署在OGSA-DAI中,并设置已有DAI Resource关联新部署的Activity。重启服务容器之后,在dai-manager.jsp监控页面中,就可以看见刚部署的Activity出现在DAI Resource下的行为列表中。

    在OGSA-DAI:JDBC驱动编码方面,首先通过语句Class.forName(”br.usp.pcs.lahpc.ogsadai.jdbc.Driver”); 来告知JVM查找并加载指定的JDBC驱动类,之后通过DriverManager.getConnection(”jdbc:ogsadai://localhost:8080/wsrf/services/dai/datasource”); 语句指定访问服务的URL地址和数据资源名称,接下来便可以用JDBC的方式通过PreparedStatement来传入待执行的SQL串,调用execute()函数执行查询,并通过getResultSet()函数获取数据库查询后的结果集。

    实际测试中,发现OGSA-DAI:JDBC驱动目前还存在一些问题,与作者邮件联系后确认:驱动对直接在Globus Container中部署的DAI服务支持良好,但如果Globus WS Core和DAI部署在Tomcat中,需要在添加DAI:JDBC依赖项的同时,添加一堆额外的DAI SQLClient运行库,才可以保证代码正常执行。目前版本还在不断修正之中,感兴趣的开发者可以关注OGSA-DAI:JDBC的后续版本。

    Posted in 网格科学 | 2 Comments »