CN108132849A - 操作指令处理方法和装置 - Google Patents
操作指令处理方法和装置 Download PDFInfo
- Publication number
- CN108132849A CN108132849A CN201810015401.2A CN201810015401A CN108132849A CN 108132849 A CN108132849 A CN 108132849A CN 201810015401 A CN201810015401 A CN 201810015401A CN 108132849 A CN108132849 A CN 108132849A
- Authority
- CN
- China
- Prior art keywords
- data
- operational order
- information
- data source
- user
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种操作指令处理方法和装置,其中,该方法包括:接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,操作内容信息包括至少一个代码信息;在中间件中,确定与数据源类型和操作类型对应的操作包,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息;根据操作内容信息和操作包,生成操作命令,操作命令为待发送给与数据源类型对应的数据源设备的命令。不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种操作指令处理方法和装置。
背景技术
随着电信行业用户数和业务的发展,业务逐渐朝着多元化的方向发展。现在提供了很多的业务以供消费者选择,相应的,也提供了很多的业务平台,如资费配置平台、稽核保障平台、智能运维管理平台等。开发人员在对各项业务、以及各项业务平台进行开发的时候,需要完成大量的代码开发。
现有技术中,开发人员在对各项业务、各业务平台进行开发的时候,需要去访问各数据源,数据源存在多样和异构的特点,常见的数据源如MySQL数据库、Oracle数据库、非关系型数据库(Not Only SQL,简称)NoSQL数据库、Syslog日志、Elastic search集群日志、Storm日志、Spark集群数据、主机信息等。
然而现有技术中,对各项业务、各业务平台进行开发的时候,在访问同一数据源的时候,需要开发人员输入很多的代码去访问数据源,这些代码构成了操作指令;在这些代码中存在大量重复性的代码,但是开发人员在开发过程中依然需要不断的输入大量的重复代码,进而造成需要对代码重复编写,进而造成业务、业务平台的开发效率低,增加了开发成本。
发明内容
本发明提供一种操作指令处理方法和装置,用以解决现有技术中需要对代码重复编写,进而造成业务、业务平台的开发效率低,增加了开发成本的问题。
本发明的一方面是提供一种操作指令处理方法,包括:
接收用户输入的操作指令,所述操作指令包括数据源类型、操作类型和操作内容信息,其中,所述操作内容信息包括至少一个代码信息;
在中间件中,确定与所述数据源类型和所述操作类型对应的操作包,其中,所述中间件中包括了至少一个数据源类型的不同操作类型的操作包,所述操作包中包括至少一个代码信息;
根据所述操作内容信息和所述操作包,生成操作命令,其中,所述操作命令为待发送给与所述数据源类型对应的数据源设备的命令。
进一步地,在根据所述操作内容信息和所述操作包,生成操作命令之后,还包括:
接收所述数据源设备发送的数据信息,其中,所述数据信息为所述数据源设备根据所述操作命令确定的;
处理和/或显示所述数据信息。
进一步地,在所述接收用户输入发送的操作指令之前,还包括:
接收所述用户输入的配置指令,其中,所述配置指令中包括数据源设备标识;
根据所述数据源设备标识,配置数据源配置信息,其中,所述数据源配置信息中包括所述数据源设备的IP地址;
与所述IP地址所对应的数据源设备进行连接。
进一步地,所述数据源配置信息中还包括以下信息中的至少一种:数据源类型、操作类型、数据源URL地址、用户名、密码。
进一步地,所述数据源类型为以下的任意一种:MySQL、Oracle、ElasticSearch、Redis、SSH。
进一步地,在所述接收用户输入的操作指令之前,还包括:
接收所述用户输入的操作包,其中,所述操作包中包括数据源类型、操作类型和代码信息;
将所述用户输入的操作包,存储到所述中间件中。
进一步地,根据所述操作内容信息和所述操作包,生成操作命令,包括:
将所述操作内容信息中的代码信息、与所述操作包中的代码信息,封装为所述操作命令。
本发明的另一方面是提供一种操作指令处理装置,包括:
第一接收模块,用于接收用户输入的操作指令,所述操作指令包括数据源类型、操作类型和操作内容信息,其中,所述操作内容信息包括至少一个代码信息;
确定模块,用于在中间件中,确定与所述数据源类型和所述操作类型对应的操作包,其中,所述中间件中包括了至少一个数据源类型的不同操作类型的操作包,所述操作包中包括至少一个代码信息;
生成模块,用于根据所述操作内容信息和所述操作包,生成操作命令,其中,所述操作命令为待发送给与所述数据源类型对应的数据源设备的命令。
进一步地,所述装置,还包括:
第二接收模块,用于在所述生成模块根据所述操作内容信息和所述操作包,生成操作命令之后,接收所述数据源设备发送的数据信息,其中,所述数据信息为所述数据源设备根据所述操作命令确定的;
处置模块,用于处理和/或显示所述数据信息。
进一步地,所述装置,还包括:
第三接收模块,用于在所述第一接收模块接收用户输入发送的操作指令之前,接收所述用户输入的配置指令,其中,所述配置指令中包括数据源设备标识;
配置模块,用于根据所述数据源设备标识,配置数据源配置信息,其中,所述数据源配置信息中包括所述数据源设备的IP地址;
连接模块,用于与所述IP地址所对应的数据源设备进行连接。
进一步地,所述数据源配置信息中还包括以下信息中的至少一种:数据源类型、操作类型、数据源URL地址、用户名、密码。
进一步地,所述数据源类型为以下的任意一种:MySQL、Oracle、ElasticSearch、Redis、SSH。
进一步地,所述装置,还包括:
第四接收模块,用于在所述第一接收模块接收用户输入发送的操作指令之前,接收所述用户输入的操作包,其中,所述操作包中包括数据源类型、操作类型和代码信息;
存储模块,用于将所述用户输入的操作包,存储到所述中间件中。
进一步地,所述生成模块,具体用于:
将所述操作内容信息中的代码信息、与所述操作包中的代码信息,封装为所述操作命令。
本发明的技术效果是:通过接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息;在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息;根据操作内容信息和操作包,生成操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。从而提供了一个中间件,中间件中包括了多个操作包,每一个操作包中包括了针对一种数据源类型的一个操作类型的代码信息,从而,将针对同一数据源的同一操作的代码进行封装,封装为一个包,对各数据源的各操作的代码都可以做如上处理,进而得到一个中间件;然后,根据开发人员发送的操作内容信息,以及对应的操作包,生成一个操作命令,从而不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
附图说明
图1为本申请实施例提供的一种操作指令处理方法的流程示意图;
图2为本申请实施例提供的另一种操作指令处理方法的流程示意图;
图3为本申请实施例提供的又一种操作指令处理方法的静态流程示意图;
图4为本申请实施例提供的又一种操作指令处理方法的中间件运行时内部结构示意图;
图5为本申请实施例提供的又一种操作指令处理方法的的数据访问方法和软件中间件的类图设计示意图;
图6为本发明实施例提供的一种操作指令处理装置的结构示意图;
图7为本发明实施例提供的另一种操作指令处理装置的结构示意图;
图8是根据一示例性实施例示出的一种终端设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
数据源设备:具有数据库的设备,一个数据源设备上可以具有一个类型的数据库,或者具有多个不同类型的数据库。
持久化数据源:用来存放返回结果的数据库。
MySQL:MySQL是一个关系型数据库管理系统;MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
Oracle:Oracle数据库是甲骨文公司的一款关系数据库管理系统;它是在数据库领域一直处于领先地位的产品,可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境;它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
ElasticSearch(ES);ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。
Redis;Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序编程接口(ApplicationProgramming Interface,简称API)。
安全外壳协议(Secure Shell,简称SSH):SSH为建立在应用层基础上的安全协议;SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议;利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
本发明具体的应用场景是,对各项业务、各业务平台进行开发的时候,在访问同一数据源的时候,需要开发人员输入很多的代码去访问数据源,这些代码构成了操作指令;在这些代码中存在大量重复性的代码,但是开发人员在开发过程中依然需要不断的输入大量的重复代码,进而造成需要对代码重复编写,进而造成业务、业务平台的开发效率低,增加了开发成本。
本发明提供的操作指令处理方法和装置,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图1为本申请实施例提供的一种操作指令处理方法的流程示意图。如图1所示,该方法包括:
步骤101、接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息。
在本实施例中,具体的,在作为程序开发者的用户进行程序开发的时候,通过需要查询数据源设备,进而从数据源设备中获取数据信息。在本申请中,作为程序开发者的用户可以向终端中输入操作指令;然后,终端可以获取到上述操作指令。并且,在操作指令中包括了了由多条代码信息构成的操作内容信息,并且该操作内容信息具有数据源类型和操作类型。
提供了用户的接口,用户的接口可以获取到上述操作指令。举例来说,提供了一个类IDataProvider,作为一个接口;或者,提供了一个类JDBCProvider、或者OtherProvierN。
举例来说,操作指令可以是第一查询指令,操作内容信息为多条代码信息,操作内容信息是SQL语句,数据源类型为MySQL,操作类型为查询A类信息;或者,操作指令可以是第二查询指令,操作内容信息为多条代码信息,操作内容信息是Oracle语句,数据源类型为Oracle,操作类型为查询B类信息;或者,操作指令以是确定指令,操作内容信息为多条代码信息,数据源类型为Syslog日志,操作类型为确定信息。
步骤102、在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息。
在本实施例中,具体的,在终端中设置了一个中间件;该中间件中,包括有多个数据源类型的操作包,并且每一个数据源类型下的不同的操作包对应不同操作类型,在每一个操作包中包括了多条代码信息。
进而中间件作为一个接口。在对中间件进行编写代码的时候,可以为中间件设计为至少一个类,进而终端可以访问到中间件。举例来说,提供一个类JDBCService,JDBCService是以JDBC为基础的具体实现类,该JDBCService对应一个操作包,使用该JDBCService可以访问到中间件中的与该JDBCService对应的操作包;提供一个类OtherServiceN,该OtherServiceN对应一个操作包,使用该OtherServiceN可以访问到中间件中的与该JDBCService对应的操作包;提供一个类Elastic search\storm,该Elasticsearch\storm对应一个操作包,使用该Elastic search\storm可以访问到中间件中的与该Elastic search\storm对应的操作包。
举例来说,中间件中包括的数据源类型为MySQL数据库、Oracle数据库、NoSQL数据库;MySQL数据库下具有多个操作包,每一个操作包具有一个操作类型;Oracle数据库下具有多个操作包,每一个操作包具有一个操作类型;NoSQL数据库下具有多个操作包,每一个操作包具有一个操作类型。
从而,终端通过查询中间件,确定出与操作指令中的数据源类型和操作类型对应的操作包。
步骤103、根据操作内容信息和操作包,生成操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。
在本实施例中,具体的,终端依据查询出的操作包、以及操作指令中的操作内容信息,生成一个操作命令,该操作命令为需要发送给数据源设备的命令。进而得到操作命令是SQL语句、Elastic search查询语句、Shell命令等。
以上过程可以采用如下代码进行实现:
boolean config(Config config);
long input(String operations);
String output();
boolean outputpersist();
本实施例通过接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息;在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息;根据操作内容信息和操作包,生成操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。从而提供了一个中间件,中间件中包括了多个操作包,每一个操作包中包括了针对一种数据源类型的一个操作类型的代码信息,从而,将针对同一数据源的同一操作的代码进行封装,封装为一个包,对各数据源的各操作的代码都可以做如上处理,进而得到一个中间件;然后,根据开发人员发送的操作内容信息,以及对应的操作包,生成一个操作命令,从而不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
图2为本申请实施例提供的另一种操作指令处理方法的流程示意图。如图2所示,该方法包括:
步骤201、接收用户输入的配置指令,其中,配置指令中包括数据源设备标识。
在本实施例中,具体的,作为开发人员的用户向终端发送的一个携带有数据源设备标识的配置指令。
并且,在步骤201之前,可以先完成注册。步骤202、根据数据源设备标识,配置数据源配置信息,其中,数据源配置信息中包括数据源设备的网络协议(Internet Protocol,简称IP)地址。
在本实施例中,具体的,终端可以依据数据源标识,根据数据源标识与数据源配置信息的对应关系,确定出与数据源设备标识对应的数据源配置信息。在数据源配置信息中包括了数据源设备的IP地址、数据源设备的物理地址(Media Access Control,简称MAC)地址、数据源设备的名称等信息。并且,在数据源配置信息中还包括以下信息中的至少一种:数据源类型、操作类型、数据源统一资源定位符(Uniform Resource Locator,简称URL)地址、用户名、密码等等。
步骤203、与IP地址所对应的数据源设备进行连接。
在本实施例中,具体的,终端根据数据源配置信息,确定与IP地址对应的数据源设备进行连接,进而终端以与数据源标识对应的数据库进行了连接。
步骤204、接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息。
在本实施例中,具体的,本步骤可以参见图1的步骤101,不再赘述。
步骤205、在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息。
在本实施例中,具体的,本步骤可以参见图1的步骤102,不再赘述。
步骤206、将操作内容信息中的代码信息、与操作包中的代码信息,封装为操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。
在本实施例中,具体的,本步骤可以参见图1的步骤103,不再赘述。
步骤207、接收数据源设备发送的数据信息,其中,数据信息为数据源设备根据操作命令确定的;处理和/或显示数据信息。
在本实施例中,具体的,在步骤206之后,终端将生成的操作命令发送给与数据源类型对应的数据源设备;由于数据源设备中具有与数据源标识对应的数据库,进而数据源设备根据操作命令,可以从数据库中确定出数据信息;数据源设备将数据信息发送给终端;终端就可以向开发人员显示出数据信息,并且终端可以直接处理该数据信息,例如终端可以对数据信息进行解析、编码等操作。例如,数据信息为SQL查询结果、elastic search查询结果等。
采用本申请实施例提供的方法,对以下数据源类型中的任意一种进行处理:MySQL、Oracle、ElasticSearch、Redis、SSH。
本实施例通过提供了一个中间件,中间件中包括了多个操作包,每一个操作包中包括了针对一种数据源类型的一个操作类型的代码信息;接收开发人员发送的操作指令,其中,操作指令包括数据源类型信息、操作类型信息和操作内容信息,操作内容信息为多条代码信息;在中间件中,确定与数据源类型信息和操作类型信息对应的操作包;将该操作包包与操作内容信息打包或封装为一个操作命令;将操作命令发送给数据源设备;数据源设备中具有数据库,然后,数据源设备根据操作命令,生成数据信息,并将数据信息发送开发人员的终端。进而开发人员的终端可以处理或显示数据信息。从而,将针对同一数据源的同一操作的代码进行封装,封装为一个操作包,对各数据源的各操作类型的代码都可以做如上处理,进而得到一个中间件;不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
在可选的一种实施方式中,在步骤204之前,还可包括以下步骤:
步骤301、接收用户输入的操作包,其中,操作包中包括数据源类型、操作类型和代码信息;
步骤302、将用户输入的操作包,存储到中间件中。
在本实施例中,具体的,作为开发人员的用户可以对中间件进行扩充。具体来说,用户可以将编写好的操作包输入到终端中;然后终端可以将该操作包存储到中间件中,进而对中间件进行扩充,使得用户与用户之间可以分享操作包。在为中间件进行编写代码的时候,可以设计为一个类,使得终端可以访问中间件,去将用户输入的操作包放入到中间件中。
举例来说,可以提供一个类DataServiceManager,作为注册管理类;终端通过该DataServiceManager,访问访问中间件,去将用户输入的操作包放入到中间件中;可以采用如下代码进行实现。
图3为本申请实施例提供的又一种操作指令处理方法的静态流程示意图。如图3所示,该方法提供了数据访问方法和软件中间件的过程,该方法包括:
步骤401、接收用户发送的注册指令。
在本实施例中,具体的,接收用户发送的注册指令,进而完成注册服务。其中,服务指的是执行操作指令的主体;中间件是由各种服务组成的,其中,服务为以下任意一种:MySQL、Elasticsearch、SSH、Redis、Oracle等。如果需要拓展其他服务组件,可以通过注册服务方法进行挂载。从而通过注册服务,可以实现数据源服务的动态挂载和卸载。其中,软件中间件是一个整体的代码包。
步骤402、接收用户发送的数据源配置信息。
在本实施例中,具体的,接收到数据源配置信息。其中,数据源配置信息,根据不同数据源的不同或不完全相同,数据源配置信息中主要包括:数据源类型、操作类型、数据源URL地址、用户名以及密码等等。
从而通过准备步骤401和402,中间件已经具备了数据访问能力。然后可以执行402之后的步骤。
步骤403、接收用户输入的数据操作指令。
在本实施例中,具体的,接收用户输入的数据操作指令,指令可以是多种类型,如SQL语法、shell命令、elasticsearch语法等,数据操作指令中包括了查询语句和数据源类型。进而可以在步骤404中通过查询语句的语法不同和数据源的类型,进行匹配。
步骤404、根据用户输入的操作指令匹配数据源服务。
在本实施例中,根据数据操作指令的格式以及数据源类型,对数据操作指令于与数据库链接的实例进行匹配。举例来说,操作指令为“select*from user”、数据源类型为“MySQL”,从而可以自动匹配MySQL的数据源服务,并且通过MySQL的数据源服务访问数据源;操作指令也可以为“message:how are you”、数据源类型为“elasticsearch”,则自动匹配Elasticsearch数据源服务。特例,如果数据源类型为缺省状态,则中间件会根据操作指令的语法同步,自动匹配相应的数据源服务。注意,一个数据源服务可能对应多个数据源实例,此部分将在图4中进行说明。
在本实施例中,图中的虚线表示的正是上面所描述的自动匹配过程。本图的实线表示选择了“Oracle服务组件”。
步骤405、访问数据源,并查询数据。
在本实施例中,具体的,通过步骤404已经能够正确匹配到数据源服务,接下来通过数据源服务,与Oracle数据源的数据源设备建立网络连接,进而可以进行操作指令的执行。
步骤406、返回数据结果。
在本实施例中,具体的,通过步骤405已经能够正常连接数据源设备,进而可以在数据源设备上执行操作指令。执行操作指令完毕后,会将结果返回。并且,结果输出的时候的格式为一个统一输出格式,该格式可以为JSON格式。
返回数据结果后,会通过持久化方法,判断是否需要将返回结果进行持久化。持久化方法,是用来将用户查询结果进行二次数据库保存的方法。本实施例中,持久化数据源作为对查询结果的二次保存,数据源类型可以是任意的SQL或NoSQL数据库。从而实现了返回数据进行二次持久化保存的功能。并且,数据持久化方法,默认支持的持久化数据源为Redis,支持将返回的JSON格式进行二次持久化。
步骤407、显示数据结果。
在本实施例中,具体的,显示数据结果,即将查询结果返回用户。不论查询结果是否需要持久化,都需要将最终的查询结果通过结果输出方法,返回给用户。至此,完成了配置、注册、输入、输出方法;用户通过输入和输出方法,就可以访问默认的数据服务或注册后的服务组件,从而得到相应的JSON结果信息。
基于以上过程,可以实现接收数据源配置信息方法、接收用户输入的数据操作指令方法、在中间件中,确定数据操作指令与数据库链接实例的对应关系,并执行数据操作指令的方法、结果输出方法、数据持久化方法、服务注册方法。软件中间件,则是对上述方法的具体实现,是一个整体的代码包。
从而可以通过图3中的步骤403-407和中间件提供的五种方法,完成一个整个的请求和处理流程。
在图3所示实施例的基础上,图4为本申请实施例提供的又一种操作指令处理方法的中间件运行时内部结构示意图。如图4所示,与图3的主要区别在于,具体的,可以看到原有的服务组件全部由程序进行实例化,注意一个服务组件是可以有多个实例的。在图3的一个服务组件,在中间件实际运行期间,可能存在多个服务实例去完成数据源的访问,例如,在图3的ES服务组件,在中间件实际运行期间,可能存在多个ES服务实例去完成ES数据源的访问。也就是说,中间件实际在运行期间,可以根据性能和网络需求进行实例化,满足多并发或容灾备份的需求。在图4中,注册模块51可以执行图3中的步骤401,第一接收模块52可以执行图3中的步骤402,第二接收模块53可以执行图3中的步骤403,匹配模块54可以执行图3中的步骤404,持久化模块55可以执行图3中的步骤406,输出模块56可以执行图3中的步骤407;图4中的每一个57指的是一种服务的实例,例如ES服务的实例、SSH服务的实例、MySQL服务的实例、Oracle服务的实例、Redis服务的实例;图4中的每一个58指的是一种数据源,例如,ES数据源、SSH数据源、MySQL数据源、Oracle数据源;图4中的59指的是持久化数据源Redis。
在图3所示实施例的基础上,图5为本申请实施例提供的又一种操作指令处理方法的的数据访问方法和软件中间件的类图设计示意图,如图5所示,图5主要用于说明图3所示本实施例提供的数据访问方法和软件中间件,从而可以利用面向对象的设计方法,实现抽象接口、屏蔽底层细节,达到动态扩展服务组件的目的。
如图5所示,根据业务的实际需求,对用户和开发人员的行为进行抽象:(一)用户一般的实际操作,只有两种:第一、输入数据源操作指令(行为1),如SQL或者shell命令;第二、得到返回结果(行为2);(二)开发人员的实际行为,一般为三种:第一、配置数据源信息(行为3);第二、设置是否需要对查询结果进行持久化(行为4);第三、拓展新的服务访问组件(行为5)。
为了实现上述的五种抽象行为,如图5所示,设计如下:IDataService是一个接口,相当于一种协议规范,定义了必须实现的四个方法,四个方法如下介绍。
第一个方法:config(Config config)方法。此方法对应的是开发人员的行为,即配置数据源信息(即行为3)。
第二个方法:input(String command)方法。此方法对应的是用户的输入数据源操作指令(即行为1)。
第三个方法:output方法。此方法对应的是用户得到返回结果(即行为2)。
第四个方法:outputpersist(boolean isPersist)。此方法对应的是,是否需要对查询结果进行持久化(行为4)。
由上述可以看到IDataService接口,规范了必须实现的四种用户行为。至于行为5-拓展新的服务访问组件,则在DataServicesManager服务管理类和IDataProvider数据服务访问提供者接口实现。
其中,实现行为5-拓展新的服务访问组件的设计原理如下:第一步:假设要实现一个新的数据源访问组件DataServiceA;由于IDataProvider接口作为约束协议,从而此时强制要求所有的新的服务访问组件必须实现newSerivce()方法,返回一个IDataService;所以DataServiceA只要能够返回IDataService,则意味着这个服务组件已经具备了行为1-4的功能,即配置数据源信息、输入数据源操作指令、输出返回结果、是否数据持久化。第二步:根据第一步可知,新的组件DataServiceA已经具备行为1-4的功能;如果想使用,则需要通过DataServicesManager的注册方法registerProvider(String name),例如,调用DataServicesManager.registerProvider(“DataServiceA”),则可以将名称为DataServiceA的新的服务组件注册到中间件中;此时,就可以正常使用中间件的DataServiceA组件了。第三步:根据第二步可知,新的组件DataServiceA已经完成注册,然后需要完成使用的功能;此时需要获取实例,比如调用DataServicesManager.newInstance(“DataServiceA”),则可以获取组件DataServiceA的实例;进而可以使用这个实例,调用行为1-4的方法,进行相应的操作。
图6为本发明实施例提供的一种操作指令处理装置的结构示意图,如图6所示,本实施例的装置可以包括:
第一接收模块31,用于接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息;
确定模块32,用于在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息;
生成模块33,用于根据操作内容信息和操作包,生成操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。
本实施例的操作指令处理装置可执行本发明实施例提供的一种操作指令处理方法,其实现原理相类似,此处不再赘述。
本实施例通过接收用户输入的操作指令,操作指令包括数据源类型、操作类型和操作内容信息,其中,操作内容信息包括至少一个代码信息;在中间件中,确定与数据源类型和操作类型对应的操作包,其中,中间件中包括了至少一个数据源类型的不同操作类型的操作包,操作包中包括至少一个代码信息;根据操作内容信息和操作包,生成操作命令,其中,操作命令为待发送给与数据源类型对应的数据源设备的命令。从而提供了一个中间件,中间件中包括了多个操作包,每一个操作包中包括了针对一种数据源类型的一个操作类型的代码信息,从而,将针对同一数据源的同一操作的代码进行封装,封装为一个包,对各数据源的各操作的代码都可以做如上处理,进而得到一个中间件;然后,根据开发人员发送的操作内容信息,以及对应的操作包,生成一个操作命令,从而不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
图7为本发明实施例提供的另一种操作指令处理装置的结构示意图,在图6所示实施例的基础上,如图7所示,本实施例的装置,还包括:
第二接收模块41,用于在生成模块33根据操作内容信息和操作包,生成操作命令之后,接收数据源设备发送的数据信息,其中,数据信息为数据源设备根据操作命令确定的;
处置模块42,用于处理和/或显示数据信息。
本实施例提供的装置,还包括:
第三接收模块43,用于在第一接收模块31接收用户输入发送的操作指令之前,接收用户输入的配置指令,其中,配置指令中包括数据源设备标识;
配置模块44,用于根据数据源设备标识,配置数据源配置信息,其中,数据源配置信息中包括数据源设备的IP地址;
连接模块45,用于与IP地址所对应的数据源设备进行连接。
本实施例提供的装置,还包括:
第四接收模块46,用于在第一接收模块31接收用户输入发送的操作指令之前,接收用户输入的操作包,其中,操作包中包括数据源类型、操作类型和代码信息;
存储模块47,用于将用户输入的操作包,存储到中间件中。
生成模块33,具体用于:
将操作内容信息中的代码信息、与操作包中的代码信息,封装为操作命令。
本实施例的操作指令处理装置可执行本发明实施例提供的另一种操作指令处理方法,其实现原理相类似,此处不再赘述。
本实施例通过提供了一个中间件,中间件中包括了多个操作包,每一个操作包中包括了针对一种数据源类型的一个操作类型的代码信息;接收开发人员发送的操作指令,其中,操作指令包括数据源类型信息、操作类型信息和操作内容信息,操作内容信息为多条代码信息;在中间件中,确定与数据源类型信息和操作类型信息对应的操作包;将该操作包包与操作内容信息打包或封装为一个操作命令;将操作命令发送给数据源设备;数据源设备中具有数据库,然后,数据源设备根据操作命令,生成数据信息,并将数据信息发送开发人员的终端。进而开发人员的终端可以处理或显示数据信息。从而,将针对同一数据源的同一操作的代码进行封装,封装为一个操作包,对各数据源的各操作类型的代码都可以做如上处理,进而得到一个中间件;不再需要开发人员输入很多的代码去访问数据源设备;将重复性的代码进行封装,不需要开发人员对代码重复编写,各个业务平台的代码可以复用,提高了业务、业务平台的开发效率低,降低了开发成本。
图8是根据一示例性实施例示出的一种终端设备的框图,该设备可以是移动终端,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当该存储介质中的指令由终端设备的处理器执行时,使得终端设备能够执行上述操作指令处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种操作指令处理方法,其特征在于,包括:
接收用户输入的操作指令,所述操作指令包括数据源类型、操作类型和操作内容信息,其中,所述操作内容信息包括至少一个代码信息;
在中间件中,确定与所述数据源类型和所述操作类型对应的操作包,其中,所述中间件中包括了至少一个数据源类型的不同操作类型的操作包,所述操作包中包括至少一个代码信息;
根据所述操作内容信息和所述操作包,生成操作命令,其中,所述操作命令为待发送给与所述数据源类型对应的数据源设备的命令。
2.根据权利要求1所述的方法,其特征在于,在根据所述操作内容信息和所述操作包,生成操作命令之后,还包括:
接收所述数据源设备发送的数据信息,其中,所述数据信息为所述数据源设备根据所述操作命令确定的;
处理和/或显示所述数据信息。
3.根据权利要求1所述的方法,其特征在于,在所述接收用户输入发送的操作指令之前,还包括:
接收所述用户输入的配置指令,其中,所述配置指令中包括数据源设备标识;
根据所述数据源设备标识,配置数据源配置信息,其中,所述数据源配置信息中包括所述数据源设备的网络协议IP地址;
与所述IP地址所对应的数据源设备进行连接。
4.根据权利要求3所述的方法,其特征在于,所述数据源配置信息中还包括以下信息中的至少一种:
数据源类型、操作类型、数据源统一资源定位符URL地址、用户名、密码。
5.根据权利要求1所述的方法,其特征在于,所述数据源类型为以下的任意一种:
MySQL、Oracle、ElasticSearch、Redis、安全外壳协议SSH。
6.根据权利要求1所述的方法,其特征在于,在所述接收用户输入的操作指令之前,还包括:
接收所述用户输入的操作包,其中,所述操作包中包括数据源类型、操作类型和代码信息;
将所述用户输入的操作包,存储到所述中间件中。
7.根据权利要求1-6任一项所述的方法,其特征在于,根据所述操作内容信息和所述操作包,生成操作命令,包括:
将所述操作内容信息中的代码信息、与所述操作包中的代码信息,封装为所述操作命令。
8.一种操作指令处理装置,其特征在于,包括:
第一接收模块,用于接收用户输入的操作指令,所述操作指令包括数据源类型、操作类型和操作内容信息,其中,所述操作内容信息包括至少一个代码信息;
确定模块,用于在中间件中,确定与所述数据源类型和所述操作类型对应的操作包,其中,所述中间件中包括了至少一个数据源类型的不同操作类型的操作包,所述操作包中包括至少一个代码信息;
生成模块,用于根据所述操作内容信息和所述操作包,生成操作命令,其中,所述操作命令为待发送给与所述数据源类型对应的数据源设备的命令。
9.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第二接收模块,用于在所述生成模块根据所述操作内容信息和所述操作包,生成操作命令之后,接收所述数据源设备发送的数据信息,其中,所述数据信息为所述数据源设备根据所述操作命令确定的;
处置模块,用于处理和/或显示所述数据信息。
10.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第三接收模块,用于在所述第一接收模块接收用户输入发送的操作指令之前,接收所述用户输入的配置指令,其中,所述配置指令中包括数据源设备标识;
配置模块,用于根据所述数据源设备标识,配置数据源配置信息,其中,所述数据源配置信息中包括所述数据源设备的网络协议IP地址;
连接模块,用于与所述IP地址所对应的数据源设备进行连接。
11.根据权利要求10所述的装置,其特征在于,所述数据源配置信息中还包括以下信息中的至少一种:
数据源类型、操作类型、数据源统一资源定位符URL地址、用户名、密码。
12.根据权利要求8所述的装置,其特征在于,所述数据源类型为以下的任意一种:
MySQL、Oracle、ElasticSearch、Redis、安全外壳协议SSH。
13.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第四接收模块,用于在所述第一接收模块接收用户输入发送的操作指令之前,接收所述用户输入的操作包,其中,所述操作包中包括数据源类型、操作类型和代码信息;
存储模块,用于将所述用户输入的操作包,存储到所述中间件中。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述生成模块,具体用于:
将所述操作内容信息中的代码信息、与所述操作包中的代码信息,封装为所述操作命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015401.2A CN108132849A (zh) | 2018-01-08 | 2018-01-08 | 操作指令处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015401.2A CN108132849A (zh) | 2018-01-08 | 2018-01-08 | 操作指令处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108132849A true CN108132849A (zh) | 2018-06-08 |
Family
ID=62400309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810015401.2A Pending CN108132849A (zh) | 2018-01-08 | 2018-01-08 | 操作指令处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132849A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633281A (zh) * | 2019-09-12 | 2019-12-31 | 北京百度网讯科技有限公司 | 多类型数据源的处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516908A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 一种数据库访问方法和装置 |
CN107025249A (zh) * | 2016-02-02 | 2017-08-08 | 上海格尔软件股份有限公司 | 一种快速支持多数据库同步开发的方法 |
CN107122365A (zh) * | 2016-02-25 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 异构数据库的访问方法及装置 |
-
2018
- 2018-01-08 CN CN201810015401.2A patent/CN108132849A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516908A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 一种数据库访问方法和装置 |
CN107025249A (zh) * | 2016-02-02 | 2017-08-08 | 上海格尔软件股份有限公司 | 一种快速支持多数据库同步开发的方法 |
CN107122365A (zh) * | 2016-02-25 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 异构数据库的访问方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633281A (zh) * | 2019-09-12 | 2019-12-31 | 北京百度网讯科技有限公司 | 多类型数据源的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210383811A1 (en) | Methods and systems for audio voice service in an embedded device | |
CN105264485B (zh) | 在多个设备上提供内容 | |
CN108538291A (zh) | 语音控制方法、终端设备、云端服务器及系统 | |
CN107153961A (zh) | 一种支付方法、支付服务器、交易服务器及可读存储介质 | |
CN106487622A (zh) | 设备控制权分享方法及装置 | |
CN105677512B (zh) | 一种数据处理方法、装置及电子设备 | |
US11272012B2 (en) | Action processing associated with a cloud device | |
US20180095772A1 (en) | Method and apparatus for automatic processing of service requests on an electronic device | |
CN109739656A (zh) | 接口数据模拟方法、装置、存储介质和电子设备 | |
CN110235087A (zh) | 一种实现语音控制的方法和终端 | |
US10372512B2 (en) | Method and apparatus for automatic processing of service requests on an electronic device | |
CN109074278A (zh) | 验证移动应用中的有状态动态链接 | |
CN107766453A (zh) | 基于区块链的数据库管理方法、装置及存储介质 | |
CN113093596A (zh) | 一种控制指令的处理方法和装置 | |
WO2023151439A1 (zh) | 账户登录处理 | |
Yang et al. | An ontology-supported ubiquitous interface agent for cloud computing—Example on Bluetooth wireless technique with Java programming | |
CN109977013A (zh) | 一种调试信息获取方法、系统及装置 | |
CN108090345A (zh) | linux系统外部命令执行方法及装置 | |
CN107943724A (zh) | 一种寻找外接设备的方法、装置、终端设备及存储介质 | |
CN110278273A (zh) | 多媒体文件上传方法、装置、终端、服务器和存储介质 | |
CN106209584A (zh) | 基于互联网的用户信息处理方法、客户端及服务器 | |
CN108132849A (zh) | 操作指令处理方法和装置 | |
CN108984600A (zh) | 交互处理方法、装置、计算机设备及可读介质 | |
CN107995612A (zh) | 设备寻找方法、装置及电子设备 | |
CN104967598B (zh) | 一种用户多媒体权限资讯的获取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180608 |