Disclosure of Invention
An object of the embodiments of the present disclosure is to provide a method, an apparatus, a device, and a storage medium for processing a financial database connection, so as to dynamically route a database connection request of a financial system based on a tomcat application server.
In order to achieve the above object, in one aspect, an embodiment of the present disclosure provides a method for processing connection between financial databases, including:
performing global route interception on the connection request;
acquiring an online component identifier to which the connection request belongs from a configuration center;
Routing the connection request to an online component corresponding to the online component identifier;
the online component acquires a database identification corresponding to the connection request from the configuration center;
And enabling the online component to route the connection request to the financial database sub-database corresponding to the sub-database identifier.
In an embodiment of the present disclosure, the global route interception for the connection request includes:
And carrying out global route interception on the connection request through a preset Spring interceptor.
In an embodiment of the present disclosure, the obtaining, from a configuration center, an online component identifier to which the connection request belongs includes:
and inquiring an online component identifier which belongs to the transaction type identifier carried by the connection request from a configuration file of the configuration center, wherein the configuration file is configured with a mapping relation between the transaction type identifier and the online component.
In an embodiment of the present disclosure, the obtaining, by the online component, the repository identification corresponding to the connection request from the configuration center includes:
The online component initiates a financial database sub-library allocation request carrying the connection request to the configuration center;
And the online component receives the sub-database identification, wherein the sub-database identification is a financial database sub-database identification which is dynamically allocated by the configuration center aiming at the financial database sub-database allocation request.
In an embodiment of the present disclosure, the routing, by the online component, the connection request to the financial database sub-bank corresponding to the sub-bank identifier includes:
and allocating a connection for the connection request from the database connection pool corresponding to the database identification.
In one embodiment of the present disclosure, the database connection pool includes Druid components.
In one embodiment of the present disclosure, the financial database sub-library comprises a gaussian database.
In one embodiment of the present description, the online component identifier is an SPU processor identifier.
In an embodiment of the present disclosure, after the online component is caused to route the connection request to the financial database corresponding to the database identifier, the method further includes:
The call Druid component executes the sql statement that is to be used to partition the financial database.
In one embodiment of the present disclosure, the calling Druid component executes an sql statement that is to be used to library the financial database, including:
calling Mybatis an sql session factory class of the framework to create an sql session object;
Calling an sql session object to obtain a Mapper interface;
And executing the sql statement for the financial database according to the Mapper interface.
In an embodiment of the present disclosure, the calling the sql session object to obtain the Mapper interface includes:
calling an sql session object to confirm whether a Mapper interface of a target version exists in a specified path;
and if so, acquiring the Mapper interface of the target version.
In an embodiment of the present disclosure, the method further includes:
And if the Mapper interface of the target version does not exist under the specified path, acquiring the original Mapper interface of the Mybatis framework.
On the other hand, the embodiment of the specification also provides a financial database connection processing device, which comprises:
The request interception module is used for performing global route interception on the connection request;
the first acquisition module is used for acquiring an online component identifier to which the connection request belongs from a configuration center;
the first routing module is used for routing the connection request to the online component corresponding to the online component identifier;
The second acquisition module is used for enabling the online component to acquire the database identification corresponding to the connection request from the configuration center;
And the second routing module is used for enabling the online component to route the connection request to the financial database sub-database corresponding to the sub-database identifier.
In another aspect, embodiments of the present disclosure further provide a computer device including a memory, a processor, and a computer program stored on the memory, which when executed by the processor, performs the instructions of the above method.
In another aspect, embodiments of the present disclosure also provide a computer storage medium having stored thereon a computer program which, when executed by a processor of a computer device, performs instructions of the above method.
In the embodiment of the present disclosure, the financial system based on the tomcat application server may perform global route interception on the database connection request, obtain the online component identifier to which the connection request belongs from the configuration center, and route the connection request to the corresponding online component according to the online component identifier, and then make the online component obtain the database identifier corresponding to the connection request from the configuration center (i.e., dynamically allocate the database to the connection request by the configuration center), and make the online component route the connection request to the corresponding financial database according to the database identifier, thereby implementing dynamic routing of the database connection request of the financial system.
Detailed Description
In order to make the technical solutions in the present specification better understood by those skilled in the art, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present specification, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are intended to be within the scope of the present disclosure.
Embodiments of the present description relate to database technology that may be applied to any tomcat application server-based business system. The tomcat application server is an open-source lightweight Web application server, and the business system can be realized based on the tomcat application server. Since multiple data sources cannot be configured in a tomcat application server (a data source is a database or database server used by a database application), it is generally necessary to specify a database in the code. Thus, the database connection request of the business system based on the tomcat application server is difficult to realize dynamic routing.
For example, in order to improve the operation safety of a domestic financial system (such as a bank transaction system, etc.), the domestic financial system adopts a tomcat application server, but in this scenario, the domestic financial system also faces the problem that the database connection request is difficult to realize dynamic routing. The domestic financial system refers to a domestic ARM platform, wherein the software and hardware basic environment on which the financial system operates depends. Under the ARM platform, the processor of the domestic financial system can be based on a domestic CPU (for example, 48-core-spread-spectrum 920 chip based on ARM architecture), the application server of the domestic financial system can be realized based on an open-source tomcat application server, the operating system of the domestic financial system can use a domestic operating system (for example, a winning kylin operating system and the like), and the database of the domestic financial system can use a domestic database (for example, gaussian (Gauss) database and the like). The software basic environments are integrated together to form a full-stack localization environment capable of supporting practical application of a financial system. Correspondingly, the software and hardware basic environment on which the conventional financial system (namely, the financial system of a non-domestic version) depends is an X86 platform, and the X86 platform can comprise a processor based on an X86 architecture, an application server based on a weblogic application server of a non-open source, an operating system based on UNIX or Linux, a database based on Oracle and the like.
In view of this, in order to dynamically route a database connection request of a financial system based on a tomcat application server, the embodiments of the present disclosure provide a financial database connection processing method, which can be applied to a financial system based on a tomcat application server.
Those skilled in the art will appreciate that, as compared to conventional financial systems, the financial system of the present embodiments of the present description uses a different database (i.e., gass database) and relies on a different open source infrastructure, the financial system of the present embodiments of the present description needs to be preconfigured with Gass database drivers. In addition, since connection pool resources of the custom Gauss database are required, a domestic database connection pool component (e.g., druid component) is also required to be preconfigured in the financial system of the embodiment of the present specification. A developer of the financial system may provide Gass a database driver dependent package and Druid a dependent package, and may acquire (e.g., remotely download) and install Gass a database driver dependent package and Druid a dependent package before actually applying the financial database connection processing method of the embodiments of the present description.
Of course, for the developer, to realize that one piece of financial software can be compatible with the x86 platform and the ARM platform, that is, a version that can be respectively operated on the x86 platform (i.e., a conventional financial system) and a version that can be operated on the ARM platform (i.e., a domestic financial system) are provided based on one piece of financial software. In controlling version dependencies, two parent (parent) items may be created using the item management tool Maven, and x86 and domestic dependent versions may be defined in the two parent items, respectively. The project object model (Project Object Model, POM) file of the domestic version is introduced into the domestic parent version, and the POM file of the x86 version is introduced into the x86 parent version. Thus, when the version is compiled, the dependency packages of different versions can be obtained by compiling and packaging different POM files.
Referring to fig. 1, in some embodiments of the present description, a financial database connection processing method may include the steps of:
S101, performing global route interception on the connection request.
S102, acquiring an online component identifier to which the connection request belongs from a configuration center.
S103, the connection request is routed to the online component corresponding to the online component identifier.
S104, the online component acquires the database identification corresponding to the connection request from the configuration center.
S105, enabling the online component to route the connection request to the financial database sub-database corresponding to the sub-database identification.
In the embodiment of the specification, the financial system based on the tomcat application server can perform global route interception on the database connection request, acquire the online component identifier to which the connection request belongs from the configuration center, route the connection request to the corresponding online component according to the online component identifier, then enable the online component to acquire the database sub-identifier corresponding to the connection request from the configuration center (namely, dynamically allocate the database sub-database for the connection request by the configuration center), and enable the online component to route the connection request to the corresponding financial database sub-database according to the database sub-database identifier, thereby realizing the dynamic routing of the database connection request of the financial system.
In the embodiments of the present description, the connection request is a database connection request. The connection request may be initiated based on any traffic scenario requiring the database to be operated. For example, in one embodiment of the present disclosure, when a user initiates a financial transaction request (e.g., a transfer request, a payment request, etc.) to a financial system through a client, the financial system needs to connect to a database and perform a corresponding transaction operation, so that receiving the financial transaction request by the financial system is equivalent to receiving the connection request. For example, in another embodiment of the present disclosure, the financial system also needs to connect the database and execute the corresponding transaction operation when the daily end data summarization is performed, and the financial system also receives the connection request when the triggering condition of the daily end data summarization is satisfied.
In an embodiment of the present disclosure, the client may be a desktop computer, a tablet computer, a notebook computer, a smart phone, a digital assistant, a smart wearable device, or the like. Wherein, intelligent wearable equipment can include intelligent bracelet, intelligent wrist-watch, intelligent glasses, intelligent helmet etc.. Of course, the client is not limited to the electronic device with a certain entity, and may be software running in the electronic device.
In some embodiments of the present disclosure, the connection request may be intercepted by a pre-configured global Interceptor (Interceptor) for global routing, so that all connection requests may be dynamically routed subsequently. For example, in an embodiment of the present disclosure, the connection request may be intercepted by a Spring interceptor for global routing. In an exemplary embodiment, the connection request may be globally route intercepted by an intersitor in the SPRINGMVC framework. Wherein SPRINGMVC framework is an application framework based on view, model, controller (Model View Controller, MVC) ideas designed around service connectors (servlets) driven by requests, with core class DISPATCHERSERVLET. The principles of interception of an interstor in SPRINGMVC framework generally include the following:
(1) The request sent by the client is directly requested to DISPATCHERSERVLET.
(2) DISPATCHERSERVLET calls HANDLERMAPPING according to the request information, and parses the Handler corresponding to the request.
(3) After parsing to the corresponding Handler, processing by the HANDLERADAPTER adapter begins.
(4) HANDLERADAPTER will invoke the real processor on processing request according to Handler and process the corresponding business logic.
(5) After the processor processes the traffic, it returns ModelAndView objects, the Model is the returned data object, and the View is a logical View.
(6) ViewResolver looks up the actual View based on the logical View.
(7) DISPATERSERVLET passes the returned Model to View.
(8) And returning to the client through View.
In some embodiments of the present disclosure, the configuration file of the configuration center is configured with a mapping relationship between the transaction type identifier and the online component. For example, a plurality of transaction type identifiers may correspond to one online component, or one transaction type identifier may correspond to one online component. Thus, the obtaining the online component identifier to which the connection request belongs from the configuration center may include querying, from a configuration file of the configuration center, an online component identifier to which a transaction type identifier carried by the connection request belongs.
In an exemplary embodiment, taking a banking code as an example of a transaction type identifier, the mapping relationship between the transaction type identifier and the online component may be as shown in table 1 below.
TABLE 1
Transaction code |
On-line assembly |
Business content corresponding to trade code |
1121 |
SPU1001 |
Live one-book account opening |
1122 |
SPU1001 |
The life is one that is continued |
1123 |
SPU1001 |
Branch of one book in the living period |
1124 |
SPU1001 |
In the living period, one body is cleared |
1125 |
SPU1001 |
Live one-book sales promotion household |
1026 |
SPU1002 |
Deposit charge |
1066 |
SPU1003 |
Password reset |
4114 |
SPU1004 |
Bank draft drawing |
4132 |
SPU1005 |
Bank note payment |
... |
... |
... |
In one embodiment of the present disclosure, when a new transaction type identifier or an online component changes, the configuration file of the configuration center needs to be changed accordingly. Given the relatively small number of variations in transaction types in the financial arts, the variations may be obtained in one embodiment of the present description in the form of message subscriptions. When the main environment configuration center changes the transaction type, the changed transaction name, component name and other information are sent to message middleware (such as kafka server and the like), and the dynamic routing configuration center (such as the configuration center shown in fig. 2) reads the information in the kafka server, and if a new message exists, the configuration file of the main environment configuration center is synchronously changed. Wherein the change in the new transaction type identification may be, for example, the addition of one or more transaction types, or the deletion of one or more old transaction types, etc.
In embodiments of the present description, an online component may include one or a set of database sub-libraries and their corresponding Access Points (APs). For example, in the embodiment shown in FIG. 2, the financial system is configured with n online components, each of which provides a unified API interface (e.g., AP 1-APn in FIG. 2) for accessing 6 database sub-libraries, each AP may be identified by a corresponding SPU (Sensor Processing Unit) processor identification, i.e., SPU processor identification. Taking the online component 1 as an example, the online component 1 comprises an AP1 and 6 database sub-libraries, namely sub-libraries 11-16, wherein the AP1 provides an API interface for accessing the sub-libraries 11-16.
The configuration center is configured with not only the mapping relationship of transaction type identification and online components, but also processing logic (where processing logic is essentially a distributed task allocation algorithm) that dynamically allocates databases for connection requests. In actual implementation, any suitable distributed task allocation algorithm (such as a graph theory-based allocation algorithm, an overall planning method, heuristics, etc.) may be selected according to actual needs, which is not limited in this specification. Therefore, after the connection request is routed to the online component corresponding to the online component identifier, the online component can be triggered to initiate a database dynamic allocation request to a configuration center. The configuration center can allocate a database sub-library for the connection request by executing the processing logic, and return the sub-library identification corresponding to the database sub-library. Correspondingly, the online component is enabled to route the connection request to the financial database sub-database corresponding to the sub-database identification.
In some embodiments of the present description, causing the online component to route the connection request to a financial database sub-pool corresponding to the sub-pool identifier may include assigning a connection to the connection request from a database connection pool corresponding to the sub-pool identifier.
Database connections are an expensive resource, and therefore, management of database connections will significantly impact performance metrics such as scalability and robustness of the entire financial system. Database connection pools are being proposed to address this problem. Database connection pools are a technique for creating and managing a buffer pool of database connections that is responsible for allocating, managing and releasing multiple database connections that are pre-established and ready for use by any thread that needs them. Thus, when a connection request is received, a database connection may be removed from the database connection pool for use by the corresponding thread and placed back into the database connection pool after use.
In some embodiments of the present description, the database connection pool may be implemented based on any existing database connection pool. For example, in an exemplary embodiment, a database connection pool may be implemented based on Druid components. Wherein Druid is a Java database connection component (Java Database Connectivity, JDBC). Not only can a connection pool be created with Druid components, database operations can also be performed with a series of JDBC component libraries contained by Druid components.
After a connection is allocated to the connection request from the database connection pool corresponding to the database sub-identifier, the JDBC component library can be called to execute sql statements for the financial database sub-identifier, and then database operation for the financial database sub-identifier can be executed. Database operations may include, for example, creation (CREATE), modification (ALTER) of a data table, etc.), table data modification (INSERT), UPDATE (UPDATE), DELETE (DELETE), etc.
For example, in an exemplary embodiment, invoking a JDBC component library to execute an sql statement that branches the financial database may include:
(1) The sql session factory (SqlSessionFacory) class, which invokes Mybatis framework, creates the sql session object (i.e., sqlSession object). Mybatis framework is a persistent layer framework that can support custom SQL, stored procedures, and high-level mappings. Thus MyBatis avoids almost all JDBC codes and manually set parameters and get result sets.
(2) And calling the sql session object to acquire the Mapper interface.
(3) And executing the sql statement for the financial database according to the Mapper interface.
Specifically, after creating SqlSession object using SqlSessionFacory classes, GETMAPPER methods can be invoked to obtain Mybatis the generated dynamic proxy object, mapperProxy, from the custom Mapper interface. When the method of the Mapper interface is called, the method is intercepted by MapperProxy, an invoke method is further executed, and the execute method of MapperMethod is called in the invoke method to execute sql. In the execution method, the getType method of SqlCommand objects is called to obtain the type of the sql statement, resolveReturnType of MethodSignature objects is called to obtain the method return value type, convertArgsToSqlCommandParam is called to analyze the Mapper method parameters, and finally the sql statement is executed by calling SqlSession the corresponding method according to the sql statement type.
In an embodiment of the present disclosure, the calling the sql session object to obtain the Mapper interface may include calling the sql session object to confirm whether a target version (i.e., a domestic version of a financial system) of the Mapper interface exists in a specified path (i.e., a Mapper directory), if so, obtaining the Mapper interface of the target version, otherwise, obtaining the original Mapper interface of the Mybatis framework (i.e., the Mapper interface of the Mybatis framework).
The financial system of the embodiments of the present description, as set forth above, is a domestic financial system that uses a Gauss database. The grammar compatibility of the Gauss database and the Oracle database reaches 90%, and the sql statement defined in the current system can generally and effectively run on the Gauss database, but in order to avoid the compatibility problem possibly caused by 10% of difference. The SqlSessionFacory class in Mybatis frames can be rewritten in advance (i.e. besides the original Mapper interface of Mybatis frames, a Mapper interface adapted to the domestic version of financial system can be provided additionally), and stored in a Mapper directory for adapting to the Gauss database. When the database operation is carried out, whether the target version of the Mapper interface file exists under the Mapper directory is firstly judged, if so, the Mapper interface file is preferentially analyzed, and if not, the original Mapper interface file is analyzed.
While the process flows described above include a plurality of operations occurring in a particular order, it should be apparent that the processes may include more or fewer operations, which may be performed sequentially or in parallel (e.g., using a parallel processor or a multi-threaded environment).
Corresponding to the above-mentioned financial database connection processing method, the present disclosure also provides an embodiment of a financial database connection processing apparatus. Referring to fig. 3, in some embodiments of the present disclosure, the financial database connection processing apparatus may include:
the request interception module 30 may be configured to perform global route interception on the connection request;
the first obtaining module 31 may be configured to obtain, from a configuration center, an online component identifier to which the connection request belongs;
A first routing module 32, configured to route the connection request to the online component corresponding to the online component identifier;
a second obtaining module 33, configured to enable the online component to obtain a repository identifier corresponding to the connection request from the configuration center;
a second routing module 34 may be configured to cause the online component to route the connection request to a financial database sub-bank corresponding to the sub-bank identifier.
In some embodiments of the present disclosure, the obtaining, from a configuration center, an online component identifier to which the connection request belongs may include:
and inquiring an online component identifier which belongs to the transaction type identifier carried by the connection request from a configuration file of the configuration center, wherein the configuration file is configured with a mapping relation between the transaction type identifier and the online component.
In some embodiments of the present disclosure, the obtaining, by the online component, the repository identification corresponding to the connection request from the configuration center may include:
The online component initiates a financial database sub-library allocation request carrying the connection request to the configuration center;
And the online component receives the sub-database identification, wherein the sub-database identification is a financial database sub-database identification which is dynamically allocated by the configuration center aiming at the financial database sub-database allocation request.
In some embodiments of the present disclosure, causing the online component to route the connection request to a financial database sub-bank corresponding to the sub-bank identification includes:
and allocating a connection for the connection request from the database connection pool corresponding to the database identification.
In some embodiments of the present description, the database connection pool may include Druid components.
In some embodiments of the present description, the financial database sub-library may comprise a gaussian database.
In some embodiments of the present description, the online component identification is an SPU processor identification.
In some embodiments of the present disclosure, the financial database connection processing apparatus may further include an operation execution module. Which may be used to invoke Druid components to execute sql statements that library the financial database.
In some embodiments of the present description, the invoking Druid component executing an sql statement that is to be used to library the financial database may include:
calling Mybatis an sql session factory class of the framework to create an sql session object;
Calling an sql session object to obtain a Mapper interface;
And executing the sql statement for the financial database according to the Mapper interface.
In some embodiments of the present specification, the invoking the sql session object to obtain the Mapper interface may include:
calling an sql session object to confirm whether a Mapper interface of a target version exists in a specified path;
and if so, acquiring the Mapper interface of the target version.
In some embodiments of the present specification, the invoking the sql session object to obtain the Mapper interface may further include:
And if the Mapper interface of the target version does not exist under the specified path, acquiring the original Mapper interface of the Mybatis framework.
For convenience of description, the above devices are described as being functionally divided into various units, respectively. Of course, the functions of each element may be implemented in one or more software and/or hardware elements when implemented in the present specification.
Embodiments of the present specification also provide a computer device. As shown in fig. 4, in some embodiments of the present description, the computer device 402 may include one or more processors 404, such as one or more Central Processing Units (CPUs) or Graphics Processors (GPUs), each of which may implement one or more hardware threads. The computer device 402 may also comprise any memory 406 for storing any kind of information, such as code, settings, data, etc., and in a particular embodiment a computer program on the memory 406 and executable on the processor 404, which computer program, when being executed by the processor 404, may execute instructions according to the method described above. By way of non-limiting example, memory 406 may include any one or more combinations of any type of RAM, any type of ROM, a flash memory device, a hard disk, an optical disk, and the like. More generally, any memory may store information using any technique. Further, any memory may provide volatile or non-volatile retention of information. Further, any memory may represent fixed or removable components of computer device 402. In one case, when the processor 404 executes associated instructions stored in any memory or combination of memories, the computer device 402 can perform any of the operations of the associated instructions. The computer device 402 also includes one or more drive mechanisms 408 for interacting with any memory, such as a hard disk drive mechanism, optical disk drive mechanism, and the like.
The computer device 402 may also include an input/output module 410 (I/O) for receiving various inputs (via an input device 412) and for providing various outputs (via an output device 414). One particular output mechanism may include a presentation device 416 and an associated graphical user interface 418 (GUI). In other embodiments, input/output module 410 (I/O), input device 412, and output device 414 may not be included, but merely as a computer device in a network. Computer device 402 may also include one or more network interfaces 420 for exchanging data with other devices via one or more communication links 422. One or more communication buses 424 couple the above-described components together.
The communication link 422 may be implemented in any manner, for example, through a local area network, a wide area network (e.g., the internet), a point-to-point connection, etc., or any combination thereof. Communication link 422 may include any combination of hardwired links, wireless links, routers, gateway functions, name servers, etc., governed by any protocol or combination of protocols.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to some embodiments of the specification. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processor to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processor, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processor to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processor to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computer device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computer device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It will be appreciated by those skilled in the art that embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, the present specification embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present description embodiments may take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
The present embodiments may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The embodiments of the specification may also be practiced in distributed computing environments where tasks are performed by remote processors that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments. In the description of the present specification, a description referring to terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the embodiments of the present specification. In this specification, schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction.
The foregoing is merely exemplary of the present application and is not intended to limit the present application. Various modifications and variations of the present application will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the application are to be included in the scope of the claims of the present application.