技术开发 频道

如何实现异构数据共享



    本平台体系结构采用网格组件构架的方式进行设计,参照开放网格服务结构OGSA的思想,将节点数据库自动注册,数据库集成和虚拟数据库查询都抽象为服务,建立数据集成中间件平台,通过服务的请求和调用实现系统间的数据交换和共享。

    各个节点系统所提供的数据并不需要先复制到系统的中心数据库中,而是以Grid Service的形式发布出来,只有当用户发出服务请求的时候,数据才从节点系统经过数据集成平台直接传递到用户。这样,用户得到的永远是最新的信息。

    当节点系统中的数据格式变更或增加了新的数据时,只需要以新的Grid Service发布出来,用户通过数据集成平台使用服务并获得相应的数据。数据中心和客户端,都不需要任何改动,这就实现了系统之间的低耦合性。

    下面介绍一下OGSA-DAI的内部架构以及它的工作原理。

    ? 网格数据服务—Grid Data Service (GDS):是一种可以访问数据源(一个关系数据库或XML数据库,甚至是一种原始文件形式的数据存储)的服务。
    ? 工场—Factory:是一种服务,它建立一个GDS实例来访问特定的数据源。 
    ? 服务组注册器—Service Group registry:它是一种服务,用以寻找你所关注的GDS或由工场(factory)根据需要建立的GDS。
    ? 执行文件—Perform document:一个XML格式文件,它规定了在GDS上被执行的许多行为,如执行SQL查询然后将该查询的结果输出到第三方。 
    下图是OGSA-DAI的工作流程:

    如上图所示:一旦OGSA-DAI启动,工厂就随之启动,然后用注册器对数据源进行注册,并能通过预先配置文件中的静态信息和配置文件提供的MetaDataExtractor类能访问到服务数据。客户机在服务列表中确定在注册器中列出的众多服务源应该使用哪一个。一旦选定合适Data Service Resources,客户机就请求工厂创建一个GDS实例,以访问特定的数据资源。现在,GDS已经准备好了,可以接收执行文档,运行数据库查询,传输查询结果和传送数据。

    现在,已经有了一个执行文档,并将其发送到引擎中,引擎构造了一串活动,并用管道将这些活动连接起来。那么,这些活动该如何与 DBMS 交互,来访问数据库中的数据呢?
    下面介绍如何如数据资源交互:
    不论您使用的查询语言是 XPath、XUpdate、还是 SQL,所使用的类集合以及这些类之间的关系都比较相似。所以在这里只考虑通过 JDBC 连接 DBMS 执行 SQL 的情况。
    OGSA-DAI访问数据源的类如下: 
    ? 包 uk.org.ogsadai.porttype.gds.activity.sql 
    SQLActivity
    RelationalResourceManagementActivity
    SQLBulkLoadRowSetActivity
    SQLQueryStatementActivity
    SQLStoredProcedureActivity
    SQLUpdateStatementActivity
    ? 包 uk.org.ogsadai.porttype.gds.dataresource
    DatabaseMetaDataExtractor
    DataResourceImplementation
    JDBCDataResource
    MetaDataExtractor
    SimpleJDBCDataResourceImplementation
    SimpleJDBCMetaDataExtractor

0
相关文章