CN102316128A - 一种用于生成网络服务的方法及装置 - Google Patents
一种用于生成网络服务的方法及装置 Download PDFInfo
- Publication number
- CN102316128A CN102316128A CN2010102139311A CN201010213931A CN102316128A CN 102316128 A CN102316128 A CN 102316128A CN 2010102139311 A CN2010102139311 A CN 2010102139311A CN 201010213931 A CN201010213931 A CN 201010213931A CN 102316128 A CN102316128 A CN 102316128A
- Authority
- CN
- China
- Prior art keywords
- network service
- database
- database entity
- output
- service
- 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
Abstract
本发明属于网络服务架构/内容自动生成领域,提供了一种用于生成网络服务的方法,该方法包括步骤:接收至少一个数据库实体的选择信息,该选择信息用于指定网络服务所访问的至少一个数据库实体及对应的操作;接收网络服务的输入和输出的选择信息,其中,所述网络服务的输出包括所述至少一个数据库实体所对应的操作的输出;根据网络服务的输入和输出以及至少一个数据库实体的配置信息,基于至少一个数据库实体所对应的操作,生成网络服务。通过本发明中的技术方案的应用,使网络服务的架构/代码生成过程自动完成,即使对网络服务接口的改变和增加的需求,网络服务所对应的项目的开发完全自动完成,其开发/递交过程的耗时大大缩短。
Description
技术领域
本发明涉及网络服务,尤其涉及一种用于自动生成网络服务的方法和装置。
背景技术
目前,存在许多网络服务(web service)架构可以部分地生成网络服务,例如,Axis2提供了用以根据WSDL文件产生代码的工具。但是它只能生成桩代码(stub code),还需要用户编写代码以实现服务的真实逻辑(real logic)。
有些系统可以部分地生成网络服务代码,但是缺乏接口以生成网络服务从而同时从多类型数据库,例如轻量级目录访问协议(LDAP)数据库,中访问数据。并且在这些系统中,通常也无法生成数据操作模块或者提供一个前端网络服务自动生成系统。
发明内容
针对背景技术中的技术问题,本发明提出了一种用于生成网络服务的方法及实现该方法的装置,用以响应于网络服务的开发/定制者的选择,自动地生成网络服务。
根据本发明的一个实施例,提供了一种用于生成网络服务的方法,该方法包括下列步骤:接收至少一个数据库实体的选择信息,该选择信息用于指定网络服务所访问的至少一个数据库实体及对应的操作。 接收网络服务的输入和输出的选择信息;其中,网络服务的输出包括至少一个数据库实体所对应的操作的输出。根据网络服务的输入和输出以及至少一个数据库实体的配置信息,基于至少一个数据库实体所对应的操作,生成网络服务。
根据本发明的另一个实施例,提供了一种用于生成网络服务的装置,该装置包括:数据库选择信息接收模块,用于接收至少一个数据库实体的选择信息,该选择信息用于指定网络服务所访问的至少一个数据库实体及对应的操作;网络服务定制信息接收模块,用于接收网络服务的输入和输出的选择信息;其中,网络服务的输出包括至少一个数据库实体所对应的操作的输出;网络服务生成模块,用于根据网络服务的输入和输出,基于至少一个数据库实体所对应的操作,生成网络服务。
本发明的方法通过接收网络服务的开发/定制者对于数据库实体的选择信息以及接收网络服务的输入和输出的选择信息,根据网络服务的输入和输出以及数据库实体的配置信息,基于数据库实体所对应的操作,生成网络服务,该生成过程在本发明中系自动完成,因此,对于网络服务接口的改变和增加的需求,网络服务所对应的项目的开发完全自动完成,所以其开发/递交过程耗时大大缩短。
在本发明的实施例中,关联一个或多个数据库实体以生成新的数据库实体,从而使数据库得到更好的管理,从而被本发明的方法生成的网络服务更高效地访问。
在本发明的实施例中,支持对通用数据处理插件模块的利用,使得生成的网络服务有很好的扩展性,根据定制者对网络服务的输出的选择/定制,基于引入的通用数据处理插件模块,可以使得生成的网络服务可扩展地具有其他功能模块,例如统计、分析、报告。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的以上及其它特征、目的和优点将会变得更加明显:
图1是根据本发明一个实施例的用于承载运行网络服务的系统的架构拓扑图;
图2是根据本发明一个实施例的运行于服务器上的网络服务的结构示意图;
图3是根据本发明一个实施例的用于生成网络服务的方法的流程图;
图4是根据本发明一个实施例的用于生成网络服务的装置的结构示意图;
附图中,相同或者相似的附图标识代表相同、相似或相关的部件。
具体实施方式
以下结合附图对本发明的具体实施例进行详细的示例性描述。
图1是根据本发明一个实施例的用于承载运行网络服务的系统的架构拓扑图。如图所示,该系统包括两个网络服务客户端121、122,一个网络服务服务器101,虚拟数据模式装置102,关系数据库111、LDAP数据库112、XML数据库113、网络服务114。
在该实施例中,两个网络服务客户端121、122基于超文本传输协议(HTTP)分别通过简单对象访问协议(SOAP)接口子模块、表象化状态转变(RESTful)接口子模块,访问网络服务服务器101所承载运行的网络服务,该网络服务,虚拟数据模式装置102用于构建数据库的实体列表以及将来自数据库的数据映射为一个实体。例如,将关系数据库111的表格映射为一个实体,或者将LDAP数据库112的某一个或者多个节点映射为一个实体,或者将其他网络服务映射为一个实体,或者将来自不同的表格或者LDAP节点的数据映射为一个实体。
另外,关系数据库111、LDAP数据库112、XML数据库113、网络服务114为承载运行网络服务的服务器101在系统运行过程中所访问的数据库。其中,网络服务114为不同于本系统所承载运行的网络服务的另一个网络服务,可在系统运行中被网络服务服务器101上承载运行的网络服务所调用(invoking),一般地,网络服务114也可以被认为是一种类型的数据库,和关系数据库111、LDAP数据库112、XML数据库113一样,为网络服务服务器101提供请求的数据。
可选地,通过上述虚拟数据模式装置102所映射生成的新的数据库实体,对应地,在网络服务服务器101上承载运行的网络服务,也可访问上述新生成的虚拟数据库实体,而不仅是直接访问原始数据库实体。
图2是根据本发明的方法的一个实施例所生成的运行于服务器101上的网络服务的结构示意图。如图所示,该网络服务200包括网络服务的接口404’,通用数据处理模块4032,数据库操作模块4031,数据库连接模块405’。
在该实施例中,数据库连接模块405’,用于对外连接至相关数据库11并从其中获取元数据(metadata),其中可以包括下列几种类型的数据库连接子模块:关系数据库111连接子模块、LDAP数据库112连接子模块、XML数据库113连接子模块、网络服务114连接子模块。并且,该数据库连接模块405’是可扩展的,根据需要,还可由本发明的方法的另外的实施例生成对于其他类型的数据库的连接子模块。该数据库连接模块405’,根据数据库的配置文件连接至各种类型的数据库。
网络服务的接口404’用于对外响应网络服务客户端12的连接请求/调用,例如但不限于SOAP接口、RESTful接口的连接请求/调用等。
数据库操作模块4031用于支持网络服务200对各种类型的数据库实体11进行各种操作访问。
通用数据处理模块4032,用于对数据库操作模块4031的输出,进行进一步的处理,比如对数据库操作模块4031的输出结果进行数据的统计,分析等处理。
并且,越来越多的用户需要网络服务进行数据操作,这个需求是持续不断变化的,即客户会按照其需求而不断有改变或者增加网络服务接口的需要。对于每一次网络服务接口的变动,网络服务所对应的项目的开发由于需要人工进行,所以其开发/递交过程会耗费大量时间。
在图1中的网络运行环境中,网络服务客户端121,122对服务器101上运行的网络服务200所进行的调用,可能会因为网络服务客户端121,122一侧的需求的改变而发生调用接口的改变,此时,现有技术中的解决方案是通过人工编辑程序生成带有新的网络调用接口的网络服务,这种软件工程开发周期长,耗费人力多。
本发明的实施例中,通过在上述的网络服务在开发过程中设置人机交互接口,使网络服务定制者的选择信息可以计算机化地被网络服务的自动生成方法或装置所采集,并被用于生成对应的网络服务模块及真实业务逻辑,从而使生成的网络服务具有对应于网络服务定制者需求的功能属性,例如,新生成的网络服务可以支持网络服务客户端1、2的带有新的网络调用接口定义的调用。
现有技术中无法通过自动的手段采集网络服务定制者对网络服务相关信息的选择/定义,并使网络服务的新的需求在新生成的网络服务中有所反映。
假定在该实施例的网络中配置有关系数据库111、LDAP数据库112、XML数据库113、网络服务114。其中配置的关系数据库111中存储有某公司员工的个人信息,包括用户的姓名,位置信息,年龄,生日,电话号码等等,同时该关系数据库111所提供的基本操作包括选择(SELECT)、更新(UPDATE)、删除(DELETE)和插入(INSERT)等,LDAP数据库112存储用户的电话相关信息,比如通话记录,网络服务的接口需求以网络服务的输入参数和输出参数来定义。其中,输入参数是指网络服务客户端121、122调用网络服务时需要提供的信息,例如,该公司员工的用户名,输出参数是指服务所生成的结果集,例如该公司的员工的位置信息,年龄,生日,电话号码。上述网络服务的接口以及该网络服务所访问的数据库需要由网络服务开发者选择。
图3是根据本发明一个实施例的用于生成网络服务的方法的流程图。如图所示,该方法包括步骤S301、S302、S303。
在该实施例的步骤S 301中,接收至少一个数据库实体的选择信息,该选择信息用于指定所要生成的网络服务所访问的至少一个数据库实体及对应的操作。例如,该实施例中接收一个选择信息,该选择信息指定从关系数据库111中通过SELECT操作对该数据库进行访问。
此处,本领域技术人员应当理解,步骤S301中的至少一个数据库实体,可以包括但不限于关系数据库的至少一个表,LDAP数据库的至少一个节点,XML数据库的至少一个节点,至少一个其他的网络服务或者其他类型的数据库实体。
在步骤S302中,接收网络服务的输入和输出的选择信息;其中,网络服务的输出包括至少一个数据库实体所对应的操作的输出。在该实施例中,网络服务的输入为某公司员工的用户名,网络服务的输出是该公司的员工的位置信息,年龄,生日,电话号码。其中,网络服务的输出可以被关系数据库111的操作的输出能力所满足,在本实施例中,网络服务的输出为公司员工的位置信息,年龄,生日,电话号码,这些信息都可以被关系数据库111的SELECT操作的输出结果涵盖。本实施例的方法的步骤S302中,接收将网络服务的输入参数(例如,公司员工的用户名)作为的关系数据库111的SELECT操作的输入的选择/指定,并接收对网络服务的输出结果(例如,该公司的员工的位置信息,年龄,生日,电话号码)的选择/指定,上述网络服务的输出结果被指定作为的关系数据库111的SELECT操作的输出。
可选地,上述步骤S301和S302中的接收步骤,可完全或部分地通过图形化界面(GUI)上操作。所接收的选择信息就可以确定用户对网络服务的定制中所包含的对该网络服务的需求,所以,无需再由开发者写代码,就可以生成包含对应于该网络服务的需求的具体运行逻辑/业务逻辑的,可部署运行的网络服务产品包。
在步骤S 303中,根据网络服务的输入和输出,基于至少一个数据库实体所对应的操作,生成网络服务。在本实施例中,根据在步骤S301中接收到的用户对数据库实体,例如关系数据库111,以及该数据库的操作(例如SELECT)的选择,以及根据在步骤S302中接收到的网络服务输入参数,输出参数/结果,可选地,还包括该网络服务的名称,自动生成网络服务类代码,包括关系数据库111的实体类代码,例如可以是用java语言生成的对应数据库的java实体类(java entity class),以及对应关系数据库111的数据库类型的实体操作类代码,例如可以是用java语言生成的数据库的数据操作类(java Data operation class),以实现对关系数据库111的SELECT操作等,优选地,还生成网络服务描述语言(WSDL)文件以共同构成网络服务。
在本发明的另一个实施例中,接收到的网络服务的输出还包括一个通用数据处理模块的输出,则步骤S303还包括:根据网络服务的输入和至少部分的输出,基于至少一个数据库实体所对应的操作,生成第一服务;根据网络服务的输出,基于通用数据处理模块,生成第二服务;基于第一服务和第二服务生成网络服务。
例如,网络服务的输入为某公司员工的用户名,而网络服务的输出不仅包括该公司的员工的位置信息,年龄,生日,电话号码,而且还包括该公司的员工平均年龄,则在步骤S302中,还接收将关系数据库111的SELECT操作的年龄的输出结果,即多个公司员工的年龄值,作为通用数据处理模块的输入的选择/指定信息。而在步骤S303中,根据网络服务的输入,例如公司员工的用户名,和至少部分的输出,例如员工的年龄、生日、电话号码,基于关系数据库111的SELECT操作,生成一个第一服务,换言之,该第一服务的生成,即为根据用户对数据库及其操作的选择,例如关系数据库111,生成该数据库类型所对应的实体操作(例如SELECT)的类代码。接着,根据步骤S302中接收到的网络服务的另一部分输出(例如公司员工的平均年龄)的选择/指定信息,在本实施例中为,公司员工个体的年龄指定为通用数据处理模块的输入并将公司员工的平均年龄指定为通用数据处理模块的输出,基于该通用数据处理模块,生成第二服务。换言之,上述第二服务,是通过将通用数据处理模块里面的操作集合转变生成网络服务200对外提供的调用功能所对应的代码而生成,具体地,通用数据处理模块是指一个插件模块,可以由java的jar文件实现,从而可以根据java语言的反射机制,读取该模块所包含的操作以生成对应的第二服务。接着,基于第一服务和第二服务生成网络服务。根据接收到的指定的操作的顺序,操作的输入输出之间的逻辑关系或关联条件,将数据库111的实体操作,例如SELECT,和通用数据处理模块的“均值操作”合并成一个大的操作集合,即把第二服务在逻辑上连接于第一服务之后,从而接收第一服务的输出(例如员工的个体年龄)作为其输入,以提供网络服务的输出(例如员工的年龄均值),通过上述步骤,根据接收的至少一个数据库实体的选择信息以及网络服务的输入和输出的选择信息,生成包含具体运行逻辑的网络服务。
本领域技术人员应当理解,本实施例中的通用数据处理模块包括至少一个通用操作,在本实施例中为统计/平均操作,来自于第三方组件或者其他公共发布的功能组件。用户也可以根据来自不同数据库的数据以及网络服务的常用输出需求而自定义具有一定的功能性,例如统计、计算或进一步生成各种报告等,的功能组件作为通用数据处理模块。通用数据处理模块可以以java库的形式实现并部署,同时,本发明的实施例中可以通过java反射机制(reflection mechanism)获得各个功能组件对外暴露(exposed)的操作方法的信息。
根据本发明的另一实施例,在步骤S301之前还包括关联至少一个数据库实体以生成至少一个新的数据库实体。假定本实施例中,网络服务的输出中所包括的位置信息,存储于另一个数据库,例如LDAP数据库112中,而网络服务的输出所包括的该公司员工的年龄,生日,电话号码都存储于关系数据库111中,而网络服务的输出经常被定义为同时包括上述位置信息以及年龄,生日,电话号码信息。为了将上述两部分的网络服务输出以存储在同一个数据库的形式对外显示,则在该实施例中,在步骤S301之前,关联上述两个数据库实体,例如存储该公司员工的年龄,生日,电话号码的关系数据库111相关表(table)和存储位置信息的LDAP数据库的一个或多个节点(node),从而生成一个新的数据库实体。此处,本领域技术人员应当理解:如果上述位置信息,年龄,生日,电话号码等信息被分别存储于3个数据库实体中,例如关系数据库111、LDAP数据库112和XML数据库113,则在对数据库进行关联的步骤中,也可以根据上述信息的相互关系,优选地将3个数据库实体关联以生成2个新的数据库实体,例如DB1、DB2,或者3个数据库实体关联以生成1个新的数据库实体,或者仅仅关联其中的关系数据库111、LDAP数据库112以生成一个新的数据库实体DataBase1而保留XML数据库113不对其做关联。
对应于上述的关联数据库实体的步骤,在步骤S301中,接收对至少一个数据库实体,例如XML数据库113,和至少一个新的数据库实体,例如DataBase1,的选择信息,该选择信息用于指定网络服务所访问的XML数据库113和/或新数据库DataBase1及对应的操作;并且,网络服务的输出包括XML数据库113和/或DataBase1所对应的操作的输出。应当注意,由于此处关联操作所生成的新数据库实体DataBase1所对应的操作包括了关系数据库111的操作(例如SELECT,UPDATE,DELETE and INSERT)以及LDAP数据库实体的操作(例如,SEARCH,MODIFY,ADD,DELETE,MODIFYRDN)。对应地,如果关联步骤所生成的数据库实体被映射自其他网络服务,则所生成的新数据库实体的操作还包括对该网络服务的调用。当然,还可以针对其他类型的数据库生成包括相应的数据库基本操作的新数据库实体DataBase2操作,此处不再赘述。
对应地,在步骤S303中,根据网络服务的输入和输出,基于至少一个数据库实体,例如XML数据库113,和/或至少一个新的数据库实体,例如DataBase1,所对应的操作,生成网络服务。
在本发明方法的另一实施例中,还包括虚拟化至少一个数据库的数据字典以生成至少一个数据库实体的步骤。例如,在步骤S301执行之前,对将要生成的网络服务所访问的关系数据库111、LDAP数据库112和XML数据库113的实体分别进行虚拟化处理成为以虚拟的数据模式(virtual Schema)存在的数据库实体。同样地,从该virtual schema中加载的虚拟化的数据库实体及其操作信息,也可供定制网络服务时进行选择。
根据本发明另一实施例,在步骤S303之前还包括根据至少一个数据库实体,例如关系数据库111、LDAP数据库112和XML数据库113,的配置信息,生成对上述三个数据库的连接管理模块的步骤,即生成对应于配置信息的数据库连接管理模块代码。该数据库连接管理模块(例如,可以包括数据库连接模块405’和数据库操作模块4031)用于与数据库连接和访问,比如建立数据库连接池,发送数据库请求(查询,插入等请求)。在该实施例的上述连接模块生成步骤中,可以针对不同的数据库类型,会产生对应的数据库连接管理模块。另外,上述配置信息包括上述三个数据库实体的登录信息和/或连接信息。其中,登录信息包括三个数据库实体的用户名、密码,连接信息包括三个数据库实体所在的服务器的网络地址、端口以及上述三个数据库的类型信息。
对应地,在步骤S303中,基于至少一个数据库实体所对应的操作和对相关的数据库的连接管理模块,生成网络服务。
可选地,在该实施例中的步骤S303之前还包括基于接口模块生成网络服务的接口的步骤。对应地,在步骤S303中,基于至少一个数据库实体,例如关系数据库111、LDAP数据库112和XML数据库113,所对应的操作、连接模块和网络服务的接口,生成网络服务。
此处,本领域技术人员应当理解,在上述实施例中的接口模块包括但不限于简单对象访问协议(SOAP)接口子模块、表象化状态转变(RESTful)接口子模块。通过本发明的实施例的生成网络服务的方法所产生的网络服务通过调用JAX-WS或者JAX-RS的服务发布接口将其发布为网络服务。其中,JAX-WS和JAX-RS是一组网络服务规范,JAX-WS支持SOAP,JAX-RS支持REST。
通过本发明的实施例的生成网络服务的方法中的步骤,网络服务就生成了,即所有需要的模块/代码都已经自动生成或者从第三方模块中引入了,然后,可以进行编译,产品打包,以生成最终的网络服务产品包,最后,就可以部署(deploy)到网络服务服务器101上运行了。
图4是根据本发明一个实施例的用于生成网络服务的装置的结构示意图。如图所示,该网络服务自动生成装置400包括数据库选择信息接收模块401、网络服务定制信息接收模块402、网络服务生成模块403。
在该实施例中,数据库选择信息接收模块401,用于接收至少一个数据库实体的选择信息,该选择信息用于指定所要生成的网络服务所访问的至少一个数据库实体及对应的操作。例如,该实施例中数据库选择信息接收模块401,用以接收一个选择信息,该选择信息指定从关系数据库111中通过SELECT操作对该数据库进行访问。
此处,本领域技术人员应当理解,数据库选择信息接收模块401所针对的至少一个数据库实体,可以包括但不限于关系数据库的至少一个表,LDAP数据库的至少一个节点,XML数据库的至少一个节点,至少一个其他的网络服务或者其他类型的数据库实体。
在该实施例中,网络服务定制信息接收模块402,用于接收网络服务的输入和输出的选择信息。其中,网络服务的输出包括至少一个数据库实体所对应的操作的输出。例如,网络服务的输入为某公司员工的用户名,网络服务的输出是该公司的员工的位置信息,年龄,生日,电话号码。其中,网络服务的输出可以被关系数据库111的操作的输出能力所满足,在本实施例中,网络服务的输出为公司员工的位置信息,年龄,生日,电话号码,这些信息都可以被关系数据库111的SELECT操作的输出结果涵盖,即这些信息都可以通过关系数据库111的SELECT操作而直接输出。本实施例中的网络服务定制信息接收模块402,接收将网络服务的输入参数(例如,公司员工的用户名)作为的关系数据库111的SELECT操作的输入的选择/指定,并接收对网络服务的输出结果(例如,该公司的员工的位置信息,年龄,生日,电话号码)的选择/指定,上述网络服务的输出结果被指定作为的关系数据库111的SELECT操作的输出。
可选地,上述数据库选择信息接收模块401和网络服务定制信息接收模块402,可完全或部分地通过图形化界面(GUI)对相关信息进行接收。所接收的选择信息就可以确定用户对网络服务的定制中所包含的对该网络服务的需求,所以,无需再由开发者写代码,就可以生成包含对应于该网络服务的需求的具体运行逻辑/业务逻辑的,可部署运行的网络服务产品包。
在该实施例中,网络服务生成模块403,用于根据网络服务的输入和输出,基于至少一个数据库实体所对应的操作,生成网络服务。在本实施例中,网络服务生成模块403根据收到的用户对数据库实体,例如关系数据库111,以及该数据库的操作(例如SELECT)的选择,以及根据网络服务定制信息接收模块402所接收到的网络服务输入参数,输出参数/结果,可选地,还包括该网络服务的名称,自动生成网络服务类代码,包括关系数据库111的实体类代码,例如可以是用java语言生成的对应数据库的java实体类(java entity class),以及对应关系数据库111的数据库类型的实体操作类代码,例如可以是用java语言生成的数据库的数据操作类(java Data operation class),以实现对关系数据库111的SELECT的操作,优选地,还生成网络服务描述语言(WSDL)文件以共同构成网络服务。
在本发明的另一个实施例中,网络服务定制信息接收模块402接收到的网络服务的输出还包括一个通用数据处理模块的输出,则该实施例的网络服务自动生成模块400还包括第一服务生成模块,和第二服务生成模块。
其中,第一服务生成模块,用于根据网络服务的输入和至少部分的输出,基于至少一个数据库实体所对应的操作,生成第一服务。而第二服务生成模块,用于根据网络服务的输出,基于通用数据处理模块,生成第二服务。相应地,网络服务生成模块403基于第一服务和第二服务生成网络服务。
例如,网络服务的输入为某公司员工的用户名,而网络服务的输出不仅包括该公司的员工的位置信息,年龄,生日,电话号码,而且还包括该公司的员工平均年龄,则网络服务定制信息接收模块402,还接收将关系数据库111的SELECT操作的年龄的输出结果(即多个公司员工的年龄值)作为通用数据处理模块的输入的选择/指定信息。而第一服务生成模块根据网络服务的输入,例如公司员工的用户名,和至少部分的输出,例如员工的年龄、生日、电话号码,基于关系数据库111的SELECT操作,生成一个第一服务,换言之,该第一服务的生成,即为第一服务生成模块根据用户对数据库及其操作的选择,例如关系数据库111,生成该数据库类型所对应的实体操作(例如SELECT)的类代码。接着,根据网络服务定制信息接收模块402接收到的网络服务的另一部分输出(例如公司员工的平均年龄)的选择/指定信息,在本实施例中,将公司员工个体的年龄指定为通用数据处理模块的输入并将公司员工的平均年龄指定为通用数据处理模块的输出,第一服务生成模块基于该通用数据处理模块,生成第二服务。换言之,上述第二服务是第二服务生成模块通过将通用数据处理模块里面的操作集合转变生成网络服务200对外提供的调用功能所对应的代码而生成。具体地,其中通用数据处理模块可以由java的jar文件实现,从而第二服务生成模块,可以根据java语言的反射机制,读取该通用数据处理模块所包含的操作以生成第二服务。接着,网络服务生成模块403基于第一服务和第二服务生成网络服务。即根据接收到的指定的操作的顺序,操作的输入输出之间的逻辑关系或关联条件,网络服务生成模块403将数据库111的实体操作,例如SELECT,和通用数据处理模块的“均值操作”合并成一个新的操作集合,即把第二服务在逻辑上连接于第一服务之后,从而接收第一服务的输出(例如员工的个体年龄)作为其输入,以提供网络服务的输出(例如员工的年龄均值)。
本领域技术人员应当理解,本实施例中的通用数据处理模块包括至少一个通用操作,在本实施例中为统计/平均操作,来自于第三方组件或者其他公共发布或者自行开发的功能组件、库文件。用户也可以根据来自不同数据库的数据以及网络服务的常用输出需求而自定义具有一定的功能性,例如统计、计算或进一步生成各种报告等,的功能组件作为通用数据处理模块。例如,通用数据处理模块可以以java库的形式实现并部署,同时,本发明的实施例中可以通过java反射机制(reflectionmechanism)获得各个功能组件对外暴露(exposed)的操作方法的信息。本发明的实施例中的生成网络服务的装置中,支持对上述通用数据处理模块的利用,使得生成的网络服务有很好的扩展性,在生成新的网络服务时,如果除了对数据库的访问,还需要其他的逻辑功能,只需要开发新的库文件,或者引用已有的函数库即可,并且这些函数库或者库文件都是可以重用的。
根据本发明的另一实施例,在面向数据库11,还包括数据库实体关联模块,用于关联至少一个数据库实体以生成至少一个新的数据库实体。假定本实施例中,网络服务定制信息接收模块402所接收到的网络服务的输出中所包括的位置信息,存储于另一个数据库,例如LDAP数据库112中,而网络服务的输出所包括的该公司员工的年龄,生日,电话号码都存储于关系数据库111中,而网络服务的输出经常被定义为同时包括上述位置信息以及年龄,生日,电话号码信息。为了将上述两部分的网络服务输出以存储在同一个数据库的形式对外显示,在该实施例中,数据库实体关联模块关联上述两个数据库实体,例如存储该公司员工的年龄,生日,电话号码的关系数据库111相关表(table)和存储位置信息的LDAP数据库的一个或多个节点(node),从而生成一个新的数据库实体。此处,本领域技术人员应当理解:如果上述位置信息,年龄,生日,电话号码等信息被分别存储于3个数据库实体中,例如关系数据库111、LDAP数据库112和XML数据库113,则在数据库实体关联模块对数据库进行关联时,也可以根据上述信息的相互关系,优选将3个数据库实体关联以生成2个新的数据库实体,例如DB1、DB2,或者3个数据库实体关联以生成1个新的数据库实体,或者仅仅关联其中的关系数据库111、LDAP数据库112以生成一个新的数据库实体DataBase1而保留XML数据库113不对其做关联。
对应于上述的数据库实体关联模块,数据库选择信息接收模块401接收对至少一个数据库实体,例如XML数据库113,和至少一个新的数据库实体,例如DataBase1,的选择信息,该选择信息用于指定网络服务所访问的XML数据库113和/或新数据库DataBase1及对应的操作;并且,网络服务的输出包括XML数据库113和/或DataBase1所对应的操作的输出。应当注意,由于此处数据库实体关联模块所生成的新数据库实体DataBase1所对应的操作包括了关系数据库111的操作(例如SELECT,UPDATE,DELETE and INSERT)以及LDAP数据库实体的操作(例如,SEARCH,MODIFY,ADD,DELETE,MODIFYRDN),对应地,如果数据库实体关联模块所生成的数据库实体被映射自其他网络服务,则所生成的新数据库实体的操作还包括对该网络服务的调用。当然,还可以针对其他类型的数据库生成包括相应的数据库基本操作的新数据库实体DataBase2操作,此处不再赘述。
对应地,网络服务生成模块403,根据网络服务的输入和输出,基于至少一个数据库实体,例如XML数据库113,和/或至少一个新的数据库实体(例如DataBase1)所对应的操作,生成网络服务。
在本发明的另一实施例中的网络服务自动生成装置400中,还包括虚拟化数据库模块,用于虚拟化至少一个数据库的数据字典以生成至少一个数据库实体。例如,对将要生成的网络服务所访问的关系数据库111、LDAP数据库112和XML数据库113的实体分别进行虚拟化处理成为以虚拟的数据模式(virtual Schema)存在的数据库实体。同样地,从该virtual schema中加载的虚拟化的数据库实体及其操作信息,也可供定制网络服务时进行选择。
根据本发明另一实施例的网络服务自动生成装置400还包括接口模块生成模块405,用于根据至少一个数据库实体,例如关系数据库111、LDAP数据库112和XML数据库113,的配置信息,生成对上述三个数据库的连接管理模块,即生成对应于配置信息的数据库连接管理模块代码。该数据库连接管理模块(例如,可以包括数据库连接模块405’和数据库操作模块4031)用于与数据库连接和访问,比如建立数据库连接池,发送数据库请求(查询,插入等请求)。在本实施例中,配置信息包括上述三个数据库实体的登录信息和/或连接信息。登录信息包括三个数据库实体的用户名、密码,连接信息包括三个数据库实体所在的服务器的网络地址、端口以及上述三个数据库的类型信息。可选地,连接信息还包括以及一些数据库连接选项,比如最大连接数等。同时,该实施例的网络服务自动生成装置400还包括网络服务接口生成模块404,用于基于接口模块生成目标网络服务的接口。
对应地,网络服务生成模块403还用于基于至少一个数据库实体所对应的操作以及由接口模块生成模块生成的上述三个数据库的连接管理模块和网络服务的接口,生成网络服务。
此处,本领域技术人员应当理解,在上述实施例中的接口模块包括但不限于简单对象访问协议(SOAP)接口子模块、表象化状态转变(RESTful)接口子模块。
尽管在附图和前述的描述中详细阐明和描述了本发明,应认为该阐明和描述是说明性的和示例性的,而不是限制性的;本发明不限于所上述实施方式。
那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一个”不排除复数。在发明的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。
Claims (15)
1.一种用于生成网络服务的方法,该方法包括:
B.接收至少一个数据库实体的选择信息,该选择信息用于指定所述网络服务所访问的所述至少一个数据库实体及对应的操作;
C.接收所述网络服务的输入和输出的选择信息;其中,所述网络服务的输出包括所述至少一个数据库实体所对应的操作的输出;
D.根据所述网络服务的输入和输出,基于所述至少一个数据库实体所对应的操作,生成所述网络服务。
2.根据权利要求1所述的方法,其特征在于,所述步骤B之前还包括:
A.关联所述至少一个数据库实体以生成至少一个新的数据库实体;以及
所述步骤B还包括,接收对所述至少一个数据库实体和/或所述至少一个新的数据库实体的选择信息,该选择信息用于指定所述网络服务所访问的所述至少一个数据库和/或所述至少一个新的数据库实体及对应的操作;其中,所述网络服务的输出包括所述至少一个数据库实体和/或所述至少一个新的数据库实体所对应的操作的输出;
所述步骤D还包括,根据所述网络服务的输入和输出,基于所述至少一个数据库实体和/或所述至少一个新的数据库实体所对应的操作,生成所述网络服务。
3.根据权利要求1所述的方法,其特征在于,还包括步骤:
虚拟化至少一个数据库的数据字典以生成所述至少一个数据库实体。
4.根据权利要求1所述的方法,其特征在于,所述步骤D之前还包括步骤:
-根据所述至少一个数据库实体的配置信息,生成所述至少一个数据库的连接模块;以及所述步骤D还包括:
基于所述至少一个数据库实体所对应的操作和所述连接模块,生成所述网络服务。
5.根据权利要求1所述的方法,其特征在于,所选择的所述网络服务的输出还包括通用数据处理模块的输出,所述步骤D还包括:
D1.根据所述网络服务的输入和至少部分的输出,基于所述至少一个数据库实体所对应的操作,生成第一服务;
D2.根据所述网络服务的输出,基于所述通用数据处理模块,生成第二服务;
D3.基于所述第一服务和所述第二服务生成所述网络服务。
6.根据权利要求4所述的方法,其特征在于,所述步骤D之前还包括步骤:
-基于接口模块生成所述网络服务的接口;以及所述步骤D还包括:
-基于所述至少一个数据库实体所对应的操作、所述连接模块和所述网络服务的接口,生成所述网络服务。
7.根据权利要求6所述的方法,其特征在于,所述接口模块包括简单对象访问协议接口子模块和/或表象化状态转变接口子模块。
8.根据权利要求1、3-7中任意一项所述的方法,其特征在于,所述至少一个数据库实体包括以下各项中的任一项或任多项:
关系数据库的至少一页,
LDAP数据库的至少一个节点,
XML数据库的至少一个节点,
至少一个其他的网络服务。
9.根据权利要求1、3-7所述的方法,其特征在于,所述至少一个数据库实体的配置信息包括所述至少一个数据库实体的登录信息和/或连接信息。
10.根据权利要求9所述的方法,其特征在于,所述登录信息包括用户名、密码,所述连接信息包括网络地址、端口以及所述至少一个数据库实体的类型信息。
11.一种用于生成网络服务的装置,该装置包括:
数据库选择信息接收模块,用于接收至少一个数据库实体的选择信息,该选择信息用于指定所述网络服务所访问的所述至少一个数据库实体及对应的操作;
网络服务定制信息接收模块,用于接收所述网络服务的输入和输出的选择信息;其中,所述网络服务的输出包括所述至少一个数据库实体所对应的操作的输出;
网络服务生成模块,用于根据所述网络服务的输入和输出,基于所述至少一个数据库实体所对应的操作,生成所述网络服务。
12.根据权利要求11所述的装置,其特征在于,还包括:
数据库实体关联模块,用于关联所述至少一个数据库实体以生成至少一个新的数据库实体;以及
所述数据库定制信息接收模块,还用于接收对所述至少一个数据库实体和/或所述至少一个新的数据库实体的选择信息,该选择信息用于指定所述网络服务所访问的所述至少一个数据库和/或所述至少一个新的数据库实体及对应的操作;其中,所述网络服务的输出包括所述至少一个数据库实体和/或所述至少一个新的数据库实体所对应的操作的输出;
所述网络服务生成模块,还用于根据所述网络服务的输入和输出,基于所述至少一个数据库实体和/或所述至少一个新的数据库实体所对应的操作,生成所述网络服务。
13.根据权利要求11所述的装置,其特征在于,还包括:
虚拟化数据库模块,用于虚拟化至少一个数据库的数据字典以生成所述至少一个数据库实体。
14.根据权利要求11所述的装置,其特征在于,还包括:
接口模块生成模块,用于根据所述至少一个数据库实体的配置信息,生成所述至少一个数据库的连接模块;基于接口模块生成所述网络服务的接口;以及所述网络服务生成模块,还用于:
-基于所述至少一个数据库实体所对应的操作、所述连接模块和所述网络服务的接口,生成所述网络服务。
15.根据权利要求11所述的装置,其特征在于,所选择的所述网络服务的输出还包括通用数据处理模块的输出,该装置还包括:
第一服务生成模块,用于根据所述网络服务的输入和至少部分的输出,基于所述至少一个数据库实体所对应的操作,生成第一服务;
第一服务生成模块,用于根据所述网络服务的输出,基于所述通用数据处理模块,生成第二服务;
网络服务生成模块,用于基于所述第一服务和所述第二服务生成所述网络服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102139311A CN102316128A (zh) | 2010-06-29 | 2010-06-29 | 一种用于生成网络服务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102139311A CN102316128A (zh) | 2010-06-29 | 2010-06-29 | 一种用于生成网络服务的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102316128A true CN102316128A (zh) | 2012-01-11 |
Family
ID=45428942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102139311A Pending CN102316128A (zh) | 2010-06-29 | 2010-06-29 | 一种用于生成网络服务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102316128A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855266A (zh) * | 2012-04-27 | 2013-01-02 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN102867009A (zh) * | 2012-04-27 | 2013-01-09 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN103761102A (zh) * | 2014-01-26 | 2014-04-30 | 中国联合网络通信集团有限公司 | 一种统一数据服务平台及其实现方法 |
CN105159974A (zh) * | 2015-08-27 | 2015-12-16 | 浪潮软件股份有限公司 | 一种跨数据源的web服务自动生成方法 |
CN107222542A (zh) * | 2017-06-08 | 2017-09-29 | 东华大学 | 一种云服务管理系统的构建方法 |
CN111427567A (zh) * | 2020-03-20 | 2020-07-17 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其系统和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1138177A (zh) * | 1995-06-07 | 1996-12-18 | 国际商业机器公司 | Internet上用于环球网服务器数据访问的计算机网络 |
CN1992953A (zh) * | 2005-12-30 | 2007-07-04 | 中兴通讯股份有限公司 | 一种分布式hlr内存数据库的实现方法 |
CN101276371A (zh) * | 2008-04-18 | 2008-10-01 | 浙江大学 | 基于操作流的异步交互式数据挖掘系统及方法 |
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
CN101714157A (zh) * | 2009-09-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 异构数据库报表生成方法、装置和异构数据库系统 |
CN101727459A (zh) * | 2008-10-16 | 2010-06-09 | 上海宝信软件股份有限公司 | 基于web并适用分布式数据库的数据交换系统及方法 |
CN101777047A (zh) * | 2009-01-08 | 2010-07-14 | 国际商业机器公司 | 多租户环境下访问数据库的系统、设备和方法 |
-
2010
- 2010-06-29 CN CN2010102139311A patent/CN102316128A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1138177A (zh) * | 1995-06-07 | 1996-12-18 | 国际商业机器公司 | Internet上用于环球网服务器数据访问的计算机网络 |
CN1992953A (zh) * | 2005-12-30 | 2007-07-04 | 中兴通讯股份有限公司 | 一种分布式hlr内存数据库的实现方法 |
CN101276371A (zh) * | 2008-04-18 | 2008-10-01 | 浙江大学 | 基于操作流的异步交互式数据挖掘系统及方法 |
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
CN101727459A (zh) * | 2008-10-16 | 2010-06-09 | 上海宝信软件股份有限公司 | 基于web并适用分布式数据库的数据交换系统及方法 |
CN101777047A (zh) * | 2009-01-08 | 2010-07-14 | 国际商业机器公司 | 多租户环境下访问数据库的系统、设备和方法 |
CN101714157A (zh) * | 2009-09-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 异构数据库报表生成方法、装置和异构数据库系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855266A (zh) * | 2012-04-27 | 2013-01-02 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN102867009A (zh) * | 2012-04-27 | 2013-01-09 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN102867009B (zh) * | 2012-04-27 | 2015-03-18 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN102855266B (zh) * | 2012-04-27 | 2015-05-13 | 北京华胜鸣天科技有限公司 | 一种信息系统创建方法、装置及系统 |
CN103761102A (zh) * | 2014-01-26 | 2014-04-30 | 中国联合网络通信集团有限公司 | 一种统一数据服务平台及其实现方法 |
CN105159974A (zh) * | 2015-08-27 | 2015-12-16 | 浪潮软件股份有限公司 | 一种跨数据源的web服务自动生成方法 |
CN107222542A (zh) * | 2017-06-08 | 2017-09-29 | 东华大学 | 一种云服务管理系统的构建方法 |
CN107222542B (zh) * | 2017-06-08 | 2020-08-11 | 东华大学 | 一种云服务管理系统的构建方法 |
CN111427567A (zh) * | 2020-03-20 | 2020-07-17 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其系统和设备 |
CN111427567B (zh) * | 2020-03-20 | 2023-08-18 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4473128B2 (ja) | ウェブ・ポータルの関連するポートレットが、同期されたコンテンツ表示のために協働することを可能にする方法および装置 | |
JP4218759B2 (ja) | ポータル・サーバからセッション情報を中継する方法および装置 | |
JP4456485B2 (ja) | ポータル・サーバにおいてポートレットの集合を管理する方法および装置 | |
US7822785B2 (en) | Methods and apparatus for composite configuration item management in configuration management database | |
KR101368068B1 (ko) | 데이터베이스 구축 방법, 이를 실행하는 데이터베이스 구축 서버 및 이를 저장한 기록 매체 | |
KR101348401B1 (ko) | 사용자 인터페이스 렌더링 방법, 이를 실행하는 사용자 인터페이스 렌더링 서버 및 이를 저장한 기록 매체 | |
US20060235935A1 (en) | Method and apparatus for using business rules or user roles for selecting portlets in a web portal | |
CN108984712A (zh) | 基于业务场景的造数方法、设备及可读存储介质 | |
CN102316128A (zh) | 一种用于生成网络服务的方法及装置 | |
CN106126569A (zh) | 一种快速数据服务方法及系统 | |
CN104135430B (zh) | 一种面向移动供应链的智能网关实现方法 | |
CN104091228A (zh) | 物联网资源管理、注册、查询和语义库管理系统 | |
CN111381820A (zh) | 一种基于gui自动生成api的方法及装置 | |
CN102034144A (zh) | 用于在场的群组组成算法 | |
CN109343858A (zh) | 一种基于服务端渲染的自动建站容器部署系统及其工作方法 | |
CN115309767A (zh) | 一种数据融合方法和装置 | |
CN102929628B (zh) | 支持多互联网服务中心构建和运营的服务框架 | |
CN111159207B (zh) | 一种信息处理方法和装置 | |
CN103425684A (zh) | 数据库的操作方法及装置 | |
Cao et al. | Agent services-based infrastructure for online assessment of trading strategies | |
CN109117152B (zh) | 服务生成系统及方法 | |
CN116483841B (zh) | 一种基于React框架的表单数据管理方法及装置 | |
CN115168365B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN117009327B (zh) | 一种数据处理方法、装置及计算机设备、介质 | |
Yuan et al. | SOA-Based Telecom Product Management System Framework |
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: 20120111 |