CN102567517A - 发布数据库数据的装置和方法 - Google Patents
发布数据库数据的装置和方法 Download PDFInfo
- Publication number
- CN102567517A CN102567517A CN2011104467974A CN201110446797A CN102567517A CN 102567517 A CN102567517 A CN 102567517A CN 2011104467974 A CN2011104467974 A CN 2011104467974A CN 201110446797 A CN201110446797 A CN 201110446797A CN 102567517 A CN102567517 A CN 102567517A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- configuration
- services
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种发布数据库数据的装置,包括:配置参数生成模块,根据接收到的用户的配置命令,生成配置参数;数据服务生成模块,生成对应的数据服务;参数解析模块,对配置参数进行解析;语句生成模块,对生成对应于解析结果的SQL访问数据;数据接口模块,将数据服务连接至数据库;语句执行模块,在数据库中,利用数据服务执行SQL访问数据,并从数据库中获取对应的指定数据;数据发布模块,对获取的指定数据进行发布。相应地,本发明还提供了一种发布数据库数据的方法。通过本发明的技术方案,可以通过对配置参数的改变,实现对数据库数据的发布过程中的不同数据需求,使得对数据库的数据发布更快速、灵活,节省用户的开发成本和开发时间。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种发布数据库数据的装置和方法。
背景技术
在现代IT环境中,数据是企业、组织的核心资产,而数据库作为数据的容器,已成为企业、组织的最重要和核心的基础设施。
然而数据库作为一个极为复杂的系统,其维护、管理以及查询只能由专业人员来进行,一般用户无法直接地查看其中的数据。通常,企业组织都是通过开发一些基于数据库的应用系统,来将数据呈现给普通用户查看和管理。另外,当企业组织由于业务需要而建设新的系统,并需要利用新系统和原有数据库进行交互对接的需求时,往往需要针对数据库专门开发对新系统的接口程序。在这种方式下,每当对企业数据库有新的访问需求或者需求发生变化时,就需要针对需要用户或者系统开发新的程序,或者修改原有的程序,而开发一个程序是需要经过设计、开发、测试、部署等一系列的研发周期,以这种方式应对需求变化显然是不够快速和灵活的。
因此,需要一种新的数据库数据的发布技术,可以对进行数据库数据发布的程序或系统之间的相同之处进行统一开发实现,而对于不同之处,则采用不同的配置参数,通过对配置参数的改变,实现对数据库数据的发布过程中的不同数据需求,使得对数据库的数据发布更快速、灵活,节省用户的开发成本和开发时间。
发明内容
本发明正是基于上述问题,提出了一种新的数据库数据的发布技术,可以对进行数据库数据发布的程序或系统之间的相同之处进行统一开发实现,而对于不同之处,则采用不同的配置参数,通过对配置参数的改变,实现对数据库数据的发布过程中的不同数据需求,使得对数据库的数据发布更快速、灵活,节省用户的开发成本和开发时间。
有鉴于此,本发明提出了一种发布数据库数据的装置,包括:配置参数生成模块,根据接收到的用户的配置命令,生成配置参数;数据服务生成模块,根据所述配置参数生成模块生成的所述配置参数,生成对应的数据服务;参数解析模块,根据所述数据服务生成模块生成的所述数据服务,对所述配置参数进行解析;语句生成模块,根据所述参数解析模块的解析结果,生成对应于所述解析结果的SQL访问数据;数据接口模块,将所述数据服务生成模块生成的所述数据服务连接至数据库;语句执行模块,在所述数据库中,利用所述数据服务执行所述语句生成模块生成的所述SQL访问数据,并从所述数据库中获取对应的指定数据;数据发布模块,对所述语句执行模块获取的所述指定数据进行发布。
在该技术方案中,用户针对自己需要进行的数据访问目标,输入不同的配置参数,而针对该配置参数,可以生成对应的SQL访问数据,通过在数据库中,利用数据服务对该SQL访问数据进行运行后,得到的结果便是用户需要的指定数据。这里的数据服务,是指能够长时间驻留运行、能够持续提供服务、执行过程按照配置的SQL访问数据在数据库上执行并按格式输出结果的应用程序及其提供的功能,比如可以实现为一个windows服务,一个COM组件,或部署于Web服务器的一个Web应用等,在驻留运行期间,对服务功能的提供不是一次性的,能够被反复调用,或者持续地输出,并且基于配置的SQL访问数据对数据库执行操作,它使得对数据库执行操作的具体细节都得以统一实现,不会因功能不同而需要重复编程开发,只需定义不同的配置参数即可。
在上述技术方案中,优选地,所述配置参数生成模块生成的所述配置参数包括:数据源、SQL语句模板、SQL参数、输出结果的参数和/或所述数据服务的配置。在该技术方案中,本领域的技术人员应该理解的是,具体的参数种类及数值等,可以分为必要和非必要的部分,如上述的数据源、SQL语句模板、SQL参数、输出结果的参数、数据服务的配置等显然为必要的部分,而对于其他一些周边参数,则可以根据实际需要进行增减,并不限定每次都相同。
在上述技术方案中,优选地,所述数据服务生成模块生成的所述数据服务包括:WebService和/或程序集。在该技术方案中,针对不同的数据服务,在对配置参数进行具体配置时,存在不同的处理方式,比如在以WebService方式公开配置部署接口,则配置时与之相应地以WebService的技术手段实现;如果只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照实现的编程语言对接口API的调用。
在上述技术方案中,优选地,还包括:配置文件生成模块,将所述配置参数生成模块生成的所述配置参数生成为配置文件;存储模块,将所述配置文件生成模块生成的所述配置文件进行存储。在该技术方案中,对于每一次生成的配置参数,可以生成为对应的配置文件以进行存储,则以后可以重复进行使用,而不必重新进行配置,当然,具体是否进行配置文件的生成和存储,完全取决于用户的自身需要,比如如果经常需要进行变动,则完全可以不用进行存储。
在上述技术方案中,优选地,所述配置文件生成模块生成的所述配置文件包括:XML文件、行分隔文本文件和/或数据块记录文件。在该技术方案中,本领域的技术人员应该理解的是,对应的文件类型显然可以是任何可以用于保存配置数据的格式,而不仅限于上述列出的几种格式。
根据本发明的又一方面,还提出了一种发布数据库数据的方法,包括:步骤202,根据接收到的用户的配置命令,生成配置参数;步骤204,根据所述配置参数,生成对应的数据服务;步骤206,所述数据服务解析所述配置参数,并生成对应的SQL访问数据;步骤208,所述数据服务连接至数据库,并通过执行所述SQL访问数据,从所述数据库中获取指定数据,以及发布所述指定数据。
在该技术方案中,用户针对自己需要进行的数据访问目标,输入不同的配置参数,而针对该配置参数,可以生成对应的SQL访问数据,通过在数据库中,利用数据服务对该SQL访问数据进行运行后,得到的结果便是用户需要的指定数据。这里的数据服务,是指能够长时间驻留运行、能够持续提供服务、执行过程按照配置的SQL访问数据在数据库上执行并按格式输出结果的应用程序及其提供的功能,比如可以实现为一个windows服务,一个COM组件,或部署于Web服务器的一个Web应用等,在驻留运行期间,对服务功能的提供不是一次性的,能够被反复调用,或者持续地输出,并且基于配置的SQL访问数据对数据库执行操作,它使得对数据库执行操作的具体细节都得以统一实现,不会因功能不同而需要重复编程开发,只需定义不同的配置参数即可。
在上述技术方案中,优选地,所述配置参数包括:数据源、SQL语句模板、SQL参数、输出结果的参数和/或所述数据服务的配置。在该技术方案中,本领域的技术人员应该理解的是,具体的参数种类及数值等,可以分为必要和非必要的部分,如上述的数据源、SQL语句模板、SQL参数、输出结果的参数、数据服务的配置等显然为必要的部分,而对于其他一些周边参数,则可以根据实际需要进行增减,并不限定每次都相同。
在上述技术方案中,优选地,所述数据服务包括:WebService和/或程序集。在该技术方案中,针对不同的数据服务,在对配置参数进行具体配置时,存在不同的处理方式,比如在以WebService方式公开配置部署接口,则配置时与之相应地以WebService的技术手段实现;如果只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照实现的编程语言对接口API的调用。
在上述技术方案中,优选地,所述步骤202之后,还包括:将所述配置参数生成为配置文件后,存储所述配置文件。在该技术方案中,对于每一次生成的配置参数,可以生成为对应的配置文件以进行存储,则以后可以重复进行使用,而不必重新进行配置,当然,具体是否进行配置文件的生成和存储,完全取决于用户的自身需要,比如如果经常需要进行变动,则完全可以不用进行存储。
在上述技术方案中,优选地,所述配置文件包括:XML文件、行分隔文本文件和/或数据块记录文件。在该技术方案中,本领域的技术人员应该理解的是,对应的文件类型显然可以是任何可以用于保存配置数据的格式,而不仅限于上述列出的几种格式。
通过以上技术方案,可以对进行数据库数据发布的程序或系统之间的相同之处进行统一开发实现,而对于不同之处,则采用不同的配置参数,通过对配置参数的改变,实现对数据库数据的发布过程中的不同数据需求,使得对数据库的数据发布更快速、灵活,节省用户的开发成本和开发时间。
附图说明
图1示出了根据本发明的实施例的发布数据库数据的装置的框图;
图2示出了根据本发明的实施例的发布数据库数据的方法的流程图;
图3示出了相关技术中的发布数据库数据的方法的示意流程图;
图4示出了根据本发明的实施例的发布数据库数据的示意流程图;
图5示出了根据本发明的实施例的发布数据库数据的示意流程图;
图6示出了根据本发明的实施例的发布配置模块的示意结构图;
图7示出了根据本发明的实施例的数据发布模块的示意结构图;
图8示出了根据本发明的实施例的数据发布的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的发布数据库数据的装置的框图。
如图1所示,根据本发明的实施例的发布数据库数据的装置100,包括:配置参数生成模块102,根据接收到的用户的配置命令,生成配置参数;数据服务生成模块104,根据配置参数生成模块102生成的配置参数,生成对应的数据服务;参数解析模块106,根据数据服务生成模块104生成的数据服务,对配置参数进行解析;语句生成模块108,根据参数解析模块106的解析结果,生成对应于解析结果的SQL访问数据;数据接口模块110,将数据服务生成模块104生成的数据服务连接至数据库;语句执行模块112,在数据库中,利用数据服务执行语句生成模块108生成的SQL访问数据,并从数据库中获取对应的指定数据;数据发布模块114,对语句执行模块112获取的指定数据进行发布。
在该技术方案中,用户针对自己需要进行的数据访问目标,输入不同的配置参数,而针对该配置参数,可以生成对应的SQL访问数据,通过在数据库中,利用数据服务对该SQL访问数据进行运行后,得到的结果便是用户需要的指定数据。这里的数据服务,是指能够长时间驻留运行、能够持续提供服务、执行过程按照配置的SQL访问数据在数据库上执行并按格式输出结果的应用程序及其提供的功能,比如可以实现为一个windows服务,一个COM组件,或部署于Web服务器的一个Web应用等,在驻留运行期间,对服务功能的提供不是一次性的,能够被反复调用,或者持续地输出,并且基于配置的SQL访问数据对数据库执行操作,它使得对数据库执行操作的具体细节都得以统一实现,不会因功能不同而需要重复编程开发,只需定义不同的配置参数即可。
在上述技术方案中,配置参数生成模块102生成的配置参数包括:数据源、SQL语句模板、SQL参数、输出结果的参数和/或所述数据服务的配置。在该技术方案中,本领域的技术人员应该理解的是,具体的参数种类及数值等,可以分为必要和非必要的部分,如上述的数据源、SQL语句模板、SQL参数、输出结果的参数、数据服务的配置等显然为必要的部分,而对于其他一些周边参数,则可以根据实际需要进行增减,并不限定每次都相同。
在上述技术方案中,数据服务生成模块104生成的数据服务包括:WebService和/或程序集。在该技术方案中,针对不同的数据服务,在对配置参数进行具体配置时,存在不同的处理方式,比如在以WebService方式公开配置部署接口,则配置时与之相应地以WebService的技术手段实现;如果只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照实现的编程语言对接口API的调用。
在上述技术方案中,还包括:配置文件生成模块116,将配置参数生成模块102生成的配置参数生成为配置文件;存储模块118,将配置文件生成模块116生成的配置文件进行存储。在该技术方案中,对于每一次生成的配置参数,可以生成为对应的配置文件以进行存储,则以后可以重复进行使用,而不必重新进行配置,当然,具体是否进行配置文件的生成和存储,完全取决于用户的自身需要,比如如果经常需要进行变动,则完全可以不用进行存储。
在上述技术方案中,配置文件生成模块116生成的配置文件包括:XML文件、行分隔文本文件和/或数据块记录文件。在该技术方案中,本领域的技术人员应该理解的是,对应的文件类型显然可以是任何可以用于保存配置数据的格式,而不仅限于上述列出的几种格式。
图2示出了根据本发明的实施例的发布数据库数据的方法的流程图。
如图2所示,根据本发明的实施例的发布数据库数据的方法,包括:步骤202,根据接收到的用户的配置命令,生成配置参数;步骤204,根据配置参数,生成对应的数据服务;步骤206,利用数据服务解析配置参数,并生成对应的SQL访问数据;步骤208,将数据服务连接至数据库,并通过执行SQL访问数据,从数据库中获取指定数据,以及发布指定数据。
在该技术方案中,用户针对自己需要进行的数据访问目标,输入不同的配置参数,而针对该配置参数,可以生成对应的SQL访问数据,通过在数据库中,利用数据服务对该SQL访问数据进行运行后,得到的结果便是用户需要的指定数据。这里的数据服务,是指能够长时间驻留运行、能够持续提供服务、执行过程按照配置的SQL访问数据在数据库上执行并按格式输出结果的应用程序及其提供的功能,比如可以实现为一个windows服务,一个COM组件,或部署于Web服务器的一个Web应用等,在驻留运行期间,对服务功能的提供不是一次性的,能够被反复调用,或者持续地输出,并且基于配置的SQL访问数据对数据库执行操作,它使得对数据库执行操作的具体细节都得以统一实现,不会因功能不同而需要重复编程开发,只需定义不同的配置参数即可。
在上述技术方案中,配置参数包括:数据源、SQL语句模板、SQL参数、输出结果的参数和/或数据服务的配置。在该技术方案中,本领域的技术人员应该理解的是,具体的参数种类及数值等,可以分为必要和非必要的部分,如上述的数据源、SQL语句模板、SQL参数、输出结果的参数、数据服务的配置等显然为必要的部分,而对于其他一些周边参数,则可以根据实际需要进行增减,并不限定每次都相同。
在上述技术方案中,数据服务包括:WebService和/或程序集。在该技术方案中,针对不同的数据服务,在对配置参数进行具体配置时,存在不同的处理方式,比如在以WebService方式公开配置部署接口,则配置时与之相应地以WebService的技术手段实现;如果只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照实现的编程语言对接口API的调用。
在上述技术方案中,步骤202之后,还包括:将配置参数生成为配置文件后,存储配置文件。在该技术方案中,对于每一次生成的配置参数,可以生成为对应的配置文件以进行存储,则以后可以重复进行使用,而不必重新进行配置,当然,具体是否进行配置文件的生成和存储,完全取决于用户的自身需要,比如如果经常需要进行变动,则完全可以不用进行存储。
在上述技术方案中,配置文件包括:XML文件、行分隔文本文件和/或数据块记录文件。在该技术方案中,本领域的技术人员应该理解的是,对应的文件类型显然可以是任何可以用于保存配置数据的格式,而不仅限于上述列出的几种格式。
下面结合图3至图8,详细介绍根据本发明的实施例的技术方案,其中,图3示出了相关技术中的发布数据库数据的方法的示意流程图;图4示出了根据本发明的实施例的发布数据库数据的示意流程图;图5示出了根据本发明的实施例的发布数据库数据的示意流程图;图6示出了根据本发明的实施例的发布配置模块的示意结构图;图7示出了根据本发明的实施例的数据发布模块的示意结构图;图8示出了根据本发明的实施例的数据发布的流程图。
在一个典型的数据库应用场景中,数据库的使用者可以分为两种:数据管理人员、应用程序。
在数据库使用者为应用程序这一场景中,一个典型的应用程序对数据库的数据访问过程都会包含以下几个步骤:
1)用户请求数据;
2)定义针对特定功能的SQL语句;
3)通过数据库驱动程序连接数据库并执行SQL语句;
4)获取SQL执行结果;
5)向用户返回结果。
如图3所示,在相关技术中,每次需要新增加一个新的应用程序或者功能,都需要重复以上的过程,哪怕它们都是针对相同的数据库,相同的数据表。举个例子,企业数据库中包含了与企业有业务往来的客户资料,在现有的销售管理系统已开发了基于这些客户数据的功能。现在企业需要新开发一套CRM(Customer Relationship Management,客户关系管理)系统,也需要访问企业数据库中的这些客户数据。在典型的解决方案中,新系统无法直接重用原来系统中针对数据库中客户数据的访问功能,而是得再次地解析用户数据的相关表结构,编写与原系统相同或相似的数据访问功能。
在另外一个场景中,数据库使用者是数据管理员,数据管理员通过数据库管理工具直接连接企业内部某个私有网段内的数据库服务器进行数据查询或导出操作,而普通用户需要查看数据时无法直接操作,需要由数据管理员执行操作后生成查询结果在转交给普通用户。例如,在某运营商的经营支撑中心负责管理全省的增值业务数据,其它业务部门所需要的相关统计数据需要经营支撑中心的技术人员手工地从数据库中统计查询出结果,导出成一份文件,通过ftp或者电子邮件发送给相关人员。如果是其它的业务系统需要这份数据,则业务系统需要导入并解析这些数据文件。随着增值业务的快速发展,不光企业内部对这些数据有了更多样化的要求,企业外部也有更多的SP(Service Provider,服务提供商)需要访问这些数据,这时候如果还靠这类手工操作和输出非标准化的数据格式,将会很难支持快速的业务发展。
在上述场景中面对的问题都是同一个,即如何更快速、有效地将数据库的数据以开放的方式发布给需求者。而这正是本发明要解决的课题。利用本发明所述的系统和方法,用户只需编写一段SQL语句用于定义要发布的数据内容,并配置与之相关的执行参数,就能快速建立一个公开的数据服务。当企业有新的数据访问需求时,无论是选择重用已发布的数据服务,或者通过编写一段SQL快速创建新的数据服务,所花费的精力、成本及时间都远比采用传统开发应用程序的方式更少,也更高效。
具体如图4所示,数据库数据快速发布的装置由发布配置模块402、数据发布模块404两部分组成。
但本领域的技术人员应该理解的是,分为发布配置模块402和数据发布模块404两个部分只是一种从逻辑上和功能上的划分,是在装置的软件实现上的表述,并不限定于从物理上也划分为两个部分,只要从逻辑功能上具备这两点特质就行。比如,整个装置在物理上可以实现为一个单独的可执行程序,而由不同的类分别实现这两个部分的功能,也可由不同的程序集(dll或jar等)分别实现这两部分的功能;或者,这两个部分也可能各自实现为两个独立的可执行程序,它们之间可以相互通讯交互。
当然,除了图4中所示的发布一个数据,也可以如图5所示,通过发布配置模块502(相当于图4中的发布配置模块402),设定为利用数据发布模块504(相当于图4中的数据发布模块404)中的多个服务,从而同时或依次发布多个数据。
下面结合图6所示的发布配置模块600(相当于图4中的发布配置模块402和图5中的发布配置模块502),对其具体运作过程进行说明。
发布配置模块600是系统的配置和管理装置,其核心是管理员可以通过该装置产生一份用于定义要发布的数据内容的SQL及其执行参数的配置,并在数据发布模块中建立服务。
一份用于定义要发布的数据内容的SQL及其执行参数的配置包括但不限于以下的核心要素:
(1)数据源:指定数据库位置、类型、用户名、密码等参数,通过这些参数将可以建立一个到达目标数据库的连接;
(2)SQL语句:数据服务要执行的SQL语句;这是数据服务的核心逻辑;
(3)SQL参数列表:与SQL语句对应的参数的信息,这些参数同时也定义了数据访问者需要提供的参数;
(4)结果集:定义了返回结果的数据的构成及其类型;
(5)数据服务的配置:定义了发布的数据服务的行为特性,包括但不限于协议类型、服务实例生命周期、SQL的执行方式、数据缓存等参数。
围绕这一目标,发布配置模块典型实现可分为三个部分进行:配置参数输入装置602、配置部署装置604、配置参数保存装置606。
其中,配置参数输入装置602,是管理员与本装置产生交互的人机界面装置,其核心是接受用户输入并产生一份用于定义要发布的数据内容的SQL及其执行参数的配置,而其具体形式并不限定于某种具体开发技术实现的UI,如Winform、Html等。
下面以一个具体数据发布场景作为示例:企业在IP为192.168.10.8服务器上有一个保存了销售数据的SqlServer2008数据库SaleDB,现在需要将数据库中的用户订单统计数据进行发布出去,用户订单数据通过对Customer、Order两个表进行联合查询获得。
那么针对这一需求,实现该配置的一个示例如表1所示:
表1
以上参数的种类是本实现方案的基本要素,但在实际的实现中并不限于以上参数,可以根据具体的实现技术进行调整或加入其它一些参数。
配置部署装置604是将用户通过配置参数输入装置产生的配置数据通过数据发布模块的发布接口交给数据发布模块创建对应的服务。
从逻辑上看,这是与数据发布模块进行交互的功能,而从实现上来说,此部分依赖于数据发布模块的具体实现及提供的交互接口。如果数据发布模块被实现为一个独立的可执行程序,以WebService方式公开配置部署接口,则此部分与之相应地以WebService的技术手段实现;如果数据发布模块只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照实现的编程语言对接口API的调用而已。
因此,从物理上看,此部分功能也并不必须是一个独立的部分,其具体形态可按具体的技术手段来决定。
配置参数保存装置606是将用户通过配置参数输入装置产生的配置数据持久化到具体的存储设备上。在具体的持久化实现技术上可以有多种选择,例如以XML文件保存,或者以行分隔文本文件保存,亦或者将参数保存为数据库记录等,并不限于某一种。此部分不是发布配置模块600的必须部分,而在实现上只需按照特定开发语言的通行做法实现即可。
下面结合图7对数据发布模块700(相当于图4中的数据发布模块404和图5中的数据发布模块504)。
如图7所示,数据发布模块700的作用是按照发布配置模块所提供的一系列的配置建立对应的服务。
在本发明方案中的“服务”(或“数据服务”)是一个广义的概念。应用程序通过长时驻留运行来持续地为本机或网络上其它地方的应用程序、或者用户持续地提供某种功能调用,这些应用程序及其提供的功能就是“服务”。Web Service是服务的一种常见形式,但本发明所指的“服务”的具体形式包括但不限于Web Service一种,同样的功能不以WebService而是通过某个tcp端口接收请求并提供反馈的形式也可以视为该“服务”的一种实现形式。因此本发明所述的数据发布模块的实现并不限定于某种特定的编程语言、协议和平台。
数据发布模块的核心是根据数据发布配置建立对应的数据服务,提供由服务配置所定义的针对数据库执行SQL操作的功能。尽管可以采用不同技术或平台进行实现,但它们都有以下的功能特征:
(1)能够长时间驻留运行。例如,可以实现为一个windows服务,一个COM组件,或部署于Web服务器的一个Web应用等。
(2)能够持续提供服务。在驻留运行期间,对服务功能的提供不是一次性的,能够被反复调用,或者持续地输出。
(3)服务执行过程按照配置的SQL在数据库上执行并按格式输出结果。这点是本装置的关键,即基于配置对数据库执行操作,它使得对数据库执行操作的具体细节都得以统一实现,不会因功能不同而需要重复编程开发,只需定义不同的配置参数即可。
从逻辑功能上,典型实现可以分为服务管理装置702和配置发布接口704两部分进行。
其中,服务管理装置702的核心是根据配置建立数据服务的实例,并维持服务的运行。
具体运行的流程如图8所示,步骤如下:
步骤802,解析配置参数。获取了来自发布配置模块的配置参数后,通过解析的过程,得知其中的具体数据。
步骤804,生成对应的SQL访问数据。这里具体是指针对步骤802获取的配置参数中的具体数据,生成对应的SQL访问数据。
步骤806,连接至数据库。目的是为了对数据库中的数据进行发布,需要对数据库中的数据进行处理,因而连接至数据库。
步骤808,执行SQL访问数据。在数据库中执行SQL访问数据,获取对应的需要发布的数据。
步骤810,返回结果。
下面以上述表1中的配置参数为例,举一个WebService形式的实现案例:
数据发布模块是一个IP为10.1.21.200的Windows服务。
将配置发布到数据发布模块700之后,按照配置,将建立一个URL为http://20.1.21.200/stat/customerorder/startend的WebService。
WSDL通过http://20.1.21.200/stat/customerorder/startend?wsdl获取。wsdl定义了一项名为excute的操作,接受一个输入参数arg,arg参数有两个可选属性:startTime和endTime,类型是dateTime。有一个输出参数输出参数是一个列表数据,每项元素均包含了customerId、name、orderCount、totalMoney四个属性,数据类型分别是string、string、int、double。
在接到请求时,会先取出请求提供的参数startTime和endTime,若没有,则采用配置指定的默认值。接下来按照配置指定的SQL模板加入参数值后生成实际要执行的SQL语句。假如startTime为2011-08-0100:00:00,endTime为2011-08-3100:00:00,则生成的SQL如表2所示:
表2
接下来是连接数据库以便执行生成是SQL语句。此处对于不同的实现技术而有所不同。
例如基于.net平台实现,则通过SQLServer数据库提供程序连接数据库,连接字符串类似于:Data Source=192.168.10.8;InitialCatalog=SaleDB;UserId=sa;Password=abc 123。如若采用java实现,则需要通过SQLServer JDBC驱动程序(com.microsoft.sqlserver.jdbc.SQLServerDriver)连接数据库,其连接字符串类似于:jdbc:sqlserver://localhost:1433;DatabaseName=Blog;user=sa;password=123。
执行SQL语句,并按格式返回结果。这部分的实现方式有多种,经典的实现一般是将结果集的结构映射为编程语言中一个“类”,为每条记录创建“类”的一个实例,将记录中每列的值保存到实例上对应的属性。最终返回该“类”实例的列表。
操作返回结果前,将结果缓存起来,缓存失效时间按“数据服务配置”指定的缓存时间为60秒。如果在60秒钟内有相同的参数的请求,则不需再次查询而是直接将缓存的结果返回。如果超出60秒,则再次重复之前的连接数据块执行SQL语句的过程。
而配置发布接口704是接收用户通过配置参数输入装置产生的配置,并通过服务管理装置的创建的数据服务。其与发布配置门模块的配置部署装置相对应。
同样地,如果以WebService方式公开配置发布接口,则此模块的物理形态是一个WebService服务实例;如果数据发布模块只是实现为一个程序集(dll或jar等),那么此部分的实现只是按照编程语言定义的API而已。
因此,从物理上看,此部分功能也并不一定是一个独立的部分,其具体形态可按具体的技术手段来决定。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,每次对数据库数据的访问都需要重新设计程序或系统,因此,本发明的技术方案中提供了一种数据库数据的发布装置和一种数据库数据的发布方法,可以对进行数据库数据发布的程序或系统之间的相同之处进行统一开发实现,而对于不同之处,则采用不同的配置参数,通过对配置参数的改变,实现对数据库数据的发布过程中的不同数据需求,使得对数据库的数据发布更快速、灵活,节省用户的开发成本和开发时间。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种发布数据库数据的装置,其特征在于,包括:
配置参数生成模块,根据接收到的用户的配置命令,生成配置参数;
数据服务生成模块,根据所述配置参数生成模块生成的所述配置参数,生成对应的数据服务;
参数解析模块,根据所述数据服务生成模块生成的所述数据服务,对所述配置参数进行解析;
语句生成模块,根据所述参数解析模块的解析结果,生成对应于所述解析结果的SQL访问数据;
数据接口模块,将所述数据服务生成模块生成的所述数据服务连接至数据库;
语句执行模块,在所述数据库中,利用所述数据服务执行所述语句生成模块生成的所述SQL访问数据,并从所述数据库中获取对应的指定数据;
数据发布模块,对所述语句执行模块获取的所述指定数据进行发布。
2.根据权利要求1所述的发布数据库数据的装置,其特征在于,所述配置参数生成模块生成的所述配置参数包括:
数据源、SQL语句模板、SQL参数、输出结果的参数和/或所述数据服务的配置。
3.根据权利要求1或2所述的发布数据库数据的装置,其特征在于,所述数据服务生成模块生成的所述数据服务包括:WebService和/或程序集。
4.根据权利要求1或2所述的发布数据库数据的装置,其特征在于,还包括:
配置文件生成模块,将所述配置参数生成模块生成的所述配置参数生成为配置文件;
存储模块,将所述配置文件生成模块生成的所述配置文件进行存储。
5.根据权利要求4所述的发布数据库数据的装置,其特征在于,所述配置文件生成模块生成的所述配置文件包括:
XML文件、行分隔文本文件和/或数据块记录文件。
6.一种发布数据库数据的方法,其特征在于,包括:
步骤202,根据接收到的用户的配置命令,生成配置参数;
步骤204,根据所述配置参数,生成对应的数据服务;
步骤206,所述数据服务解析所述配置参数,并生成对应的SQL访问数据;
步骤208,所述数据服务连接至数据库,并通过执行所述SQL访问数据,从所述数据库中获取指定数据,以及发布所述指定数据。
7.根据权利要求6所述的发布数据库数据的方法,其特征在于,所述配置参数包括:
数据源、SQL语句模板、SQL参数、输出结果的参数和/或所述数据服务的配置。
8.根据权利要求6或7所述的发布数据库数据的方法,其特征在于,所述数据服务包括:WebService和/或程序集。
9.根据权利要求6或7所述的发布数据库数据的方法,其特征在于,所述步骤202之后,还包括:
将所述配置参数生成为配置文件后,存储所述配置文件。
10.根据权利要求9所述的发布数据库数据的方法,其特征在于,所述配置文件包括:
XML文件、行分隔文本文件和/或数据块记录文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104467974A CN102567517A (zh) | 2011-12-28 | 2011-12-28 | 发布数据库数据的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104467974A CN102567517A (zh) | 2011-12-28 | 2011-12-28 | 发布数据库数据的装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567517A true CN102567517A (zh) | 2012-07-11 |
Family
ID=46412916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104467974A Pending CN102567517A (zh) | 2011-12-28 | 2011-12-28 | 发布数据库数据的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567517A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105894019A (zh) * | 2016-03-30 | 2016-08-24 | 北京京东尚科信息技术有限公司 | 一种数据库数据分类装置和方法 |
CN106657409A (zh) * | 2017-02-27 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种云环境下监控项的信息获取方法及装置 |
CN110413671A (zh) * | 2019-06-28 | 2019-11-05 | 万翼科技有限公司 | 数据查询方法及装置 |
CN112445811A (zh) * | 2020-11-09 | 2021-03-05 | 广东华兴银行股份有限公司 | 基于sql配置的数据服务方法、装置、存储介质及组件 |
CN112734349A (zh) * | 2019-10-14 | 2021-04-30 | 珠海格力电器股份有限公司 | 接口生成、数据调用方法、装置和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
US20090287638A1 (en) * | 2008-05-15 | 2009-11-19 | Robert Joseph Bestgen | Autonomic system-wide sql query performance advisor |
CN101997732A (zh) * | 2009-08-14 | 2011-03-30 | 华为技术有限公司 | 业务查询方法、装置及系统 |
CN102110110A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 基于soa的数据访问方法和装置 |
CN102111291A (zh) * | 2010-06-11 | 2011-06-29 | 田文洪 | 满足国际标准(EPCGlobal)的无线射频(RFID)网络管理系统 |
CN102254029A (zh) * | 2011-07-29 | 2011-11-23 | 株洲南车时代电气股份有限公司 | 一种基于视图的数据访问系统及其方法 |
-
2011
- 2011-12-28 CN CN2011104467974A patent/CN102567517A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
US20090287638A1 (en) * | 2008-05-15 | 2009-11-19 | Robert Joseph Bestgen | Autonomic system-wide sql query performance advisor |
CN101997732A (zh) * | 2009-08-14 | 2011-03-30 | 华为技术有限公司 | 业务查询方法、装置及系统 |
CN102110110A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 基于soa的数据访问方法和装置 |
CN102111291A (zh) * | 2010-06-11 | 2011-06-29 | 田文洪 | 满足国际标准(EPCGlobal)的无线射频(RFID)网络管理系统 |
CN102254029A (zh) * | 2011-07-29 | 2011-11-23 | 株洲南车时代电气股份有限公司 | 一种基于视图的数据访问系统及其方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105894019A (zh) * | 2016-03-30 | 2016-08-24 | 北京京东尚科信息技术有限公司 | 一种数据库数据分类装置和方法 |
CN106657409A (zh) * | 2017-02-27 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种云环境下监控项的信息获取方法及装置 |
CN110413671A (zh) * | 2019-06-28 | 2019-11-05 | 万翼科技有限公司 | 数据查询方法及装置 |
CN112734349A (zh) * | 2019-10-14 | 2021-04-30 | 珠海格力电器股份有限公司 | 接口生成、数据调用方法、装置和电子设备 |
CN112445811A (zh) * | 2020-11-09 | 2021-03-05 | 广东华兴银行股份有限公司 | 基于sql配置的数据服务方法、装置、存储介质及组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
US11151083B2 (en) | Generating target application packages for groups of computing devices | |
US9800675B2 (en) | Methods for dynamically generating an application interface for a modeled entity and devices thereof | |
EP2548137B1 (en) | Distributed event system for relational models | |
CN111027921B (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CN108427631A (zh) | 一种应用测试系统、方法、电子设备和可读存储介质 | |
CN109690524A (zh) | 分布式事件处理系统中的数据序列化 | |
CN102567539B (zh) | 一种web智能报表的实现方法和系统 | |
US20090271762A1 (en) | Business software application system and method | |
US20170351989A1 (en) | Providing supply chain information extracted from an order management system | |
US20140067836A1 (en) | Visualizing reporting data using system models | |
EP3020017A1 (en) | Method and system for creating tax configuration templates | |
US9747353B2 (en) | Database content publisher | |
US9026652B1 (en) | Web service asset management and web service information storage | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN102567517A (zh) | 发布数据库数据的装置和方法 | |
Yao et al. | Building architectures for data‐intensive science using the ADAGE framework | |
US20110289041A1 (en) | Systems and methods for managing assignment templates | |
Herbold et al. | Combining usage-based and model-based testing for service-oriented architectures in the industrial practice | |
US20190147082A1 (en) | Reporting and data governance management | |
Gujral et al. | An exploratory semantic analysis of logging questions | |
CN101727488A (zh) | 一种库表分区代码生成方法及装置 | |
JP5901483B2 (ja) | データベースシステム生成装置 | |
US20230315514A1 (en) | Configuration-driven data processing pipeline for an extensibility platform | |
US20230315732A1 (en) | Graph-based query engine for an extensibility platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120711 |