WO2024254933A1 - 一种数据存储系统、方法、存储介质及电子设备 - Google Patents

一种数据存储系统、方法、存储介质及电子设备 Download PDF

Info

Publication number
WO2024254933A1
WO2024254933A1 PCT/CN2023/107329 CN2023107329W WO2024254933A1 WO 2024254933 A1 WO2024254933 A1 WO 2024254933A1 CN 2023107329 W CN2023107329 W CN 2023107329W WO 2024254933 A1 WO2024254933 A1 WO 2024254933A1
Authority
WO
WIPO (PCT)
Prior art keywords
action
information
unit
programmable
configuration file
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.)
Ceased
Application number
PCT/CN2023/107329
Other languages
English (en)
French (fr)
Inventor
王培磊
张汝云
朱俊
邹涛
李顺斌
徐琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to US18/555,805 priority Critical patent/US12177072B1/en
Publication of WO2024254933A1 publication Critical patent/WO2024254933A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to the field of computer technology, and in particular to a data storage system, method, storage medium and electronic device.
  • SDN Software Defined Network
  • the present disclosure provides a data storage system, method, storage medium and electronic device to partially solve the above-mentioned problems existing in the prior art.
  • the present disclosure provides a data storage system, including: a server, a client, and a control terminal;
  • the control end is used to provide a programming environment for the first user, generate a configuration file according to the programming information written by the first user in the programming environment, and send the configuration file to the client and the server;
  • the client is used to receive the configuration file, generate an encapsulation rule according to the first configuration information in the configuration file, and generate a storage request corresponding to the byte stream of the target information in response to a specified operation of the second user. Encapsulate the storage request based on the encapsulation rule to obtain a message message, and send the message message to the server;
  • the server is used to receive the configuration file, generate at least one extraction unit matching the encapsulation rule according to the second configuration information in the configuration file, generate at least one set of action units corresponding to the storage action according to the third configuration information in the configuration file, and
  • the message message After receiving the message message, the message message is parsed to obtain the target information, the target information is written into each extraction unit, the action information is read from the designated extraction unit and the action unit matching the action information is determined as the target action unit, and the storage action corresponding to the target action unit is executed to store the byte stream data of the target information.
  • the client includes: a programmable packaging module and a packaging instruction set;
  • the programmable encapsulation module is used to load the configuration file, generate at least one encapsulation unit according to the first configuration information, and sort the encapsulation units to obtain the encapsulation rule;
  • the server includes: a programmable extraction module, a programmable action module and a programmable service module;
  • the programmable extraction module is used to load the configuration file, generate each extraction unit according to the second configuration information, and parse the message according to the configuration file to extract the target information and write it into the extraction register corresponding to each extraction unit;
  • the programmable action module is used to load the configuration file, select each target instruction from the preset action instruction set according to the third configuration information, combine the stored actions corresponding to the target instructions, and generate each action unit according to each group of stored actions;
  • the programmable service module is used to load the configuration file, and according to the fourth configuration information in the configuration file, take the action information stored in the extraction register corresponding to the designated extraction unit as a matching object and determine a matching value, and match the target action unit according to the matching value.
  • the server is further used to update the configurations corresponding to the programmable extraction module, the programmable action module and the programmable service module according to the configuration file.
  • the configuration of the programmable extraction module includes: extraction position offset, extraction character length, extraction terminator, and associated extraction register;
  • the offset includes a fixed value and a variable value, and the variable value is determined based on the terminator;
  • the character length includes a fixed length and a variable length, and the variable length is determined based on the terminator.
  • the programmable action module includes: a basic action table and an action unit, and the action unit is used to select a storage action corresponding to a specified register from the basic action table and associate it.
  • the server is further configured to:
  • the service table is searched according to the action information in the designated extraction unit, and the action unit retrieved from the service table is used as the target action unit.
  • the server is further configured to return the execution result of the storage action corresponding to the target action unit to the client.
  • the present disclosure provides a method for storing data, the method comprising:
  • the server obtains a message message sent by the client, parses the message message, and obtains target information, wherein the message message is a storage request corresponding to a byte stream of the target information generated by the client in response to a specified operation of the second user, and is obtained by encapsulating the storage request based on an encapsulation rule, wherein the encapsulation rule is generated according to first configuration information in a configuration file sent by the control end, and the configuration file is generated by the control end according to programming information written by the first user in a programming environment;
  • the client includes: a programmable packaging module and a packaging instruction set;
  • the encapsulation rule is obtained after the programmable encapsulation module loads the configuration file, generates at least one encapsulation unit according to the first configuration information and sorts the encapsulation units.
  • the operations involved in the process of encapsulating the byte stream of the target information by the encapsulation rule are abstracted through the encapsulation instruction set.
  • the server is provided with at least one of a programmable action module and a programmable service module;
  • the method further includes:
  • the configuration file is loaded through the programmable action module in the server, each target instruction is selected from a preset action instruction set according to the third configuration information, the stored actions corresponding to each target instruction are combined, and each action unit is generated according to each group of stored actions;
  • Reading action information from a specified extraction unit and determining an action unit matching the action information includes:
  • the configuration file is loaded through the programmable service module in the server, and according to the fourth configuration information in the configuration file, the action information stored in the extraction register corresponding to the designated extraction unit is used as a matching object and a matching value is determined, and the target action unit is matched according to the matching value.
  • the server is further provided with: a programmable extraction module;
  • the method further comprises:
  • the configurations corresponding to the programmable extraction module, the programmable action module and the programmable service module are updated.
  • the configuration of the programmable extraction module includes: extraction position offset, extraction character length, extraction terminator and associated extraction register, the offset includes a fixed value and a variable value, the variable value is determined based on the terminator, the character length includes a fixed length and a variable length, and the variable length is determined based on the terminator.
  • the programmable action module includes: a basic action table and an action unit;
  • Generating the action units according to the groups of stored actions includes:
  • the action unit selects a storage action corresponding to a designated register from the basic action table and associates the action.
  • the method before parsing the message, the method further includes:
  • Reading action information from a designated extraction unit and determining an action unit matching the action information as a target action unit includes:
  • the service table is retrieved according to the action information in the specified extraction unit, and the service table is retrieved from the service table.
  • the action unit serves as the target action unit.
  • the method further comprises:
  • the execution result of the storage action corresponding to the target action unit is returned to the client.
  • the present disclosure provides a computer-readable storage medium, wherein the storage medium stores a computer program, and when the computer program is executed by a processor, the above-mentioned data storage method is implemented.
  • the present disclosure provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned data storage method when executing the program.
  • the data storage system includes: a server, a client and a control end.
  • the control end is used to generate a configuration file according to programming information and send the configuration file to the client and the server;
  • the client is used to generate encapsulation rules according to the configuration file, and generate a storage request, encapsulate the storage request based on the encapsulation rules, obtain a message message, and send the message message to the server;
  • the server is used to generate an extraction unit and an action unit according to the configuration file, and parse the message message, write the target information into each extraction unit, read the action information from the specified extraction unit and determine the action unit that matches the action information as the target action unit, execute the storage action corresponding to the target action unit, so as to store the byte stream data of the target information.
  • the second user can configure the server and the client at the control end at any time to generate encapsulation rules on the client and abstract the action unit and the extraction unit on the server, and then perform programmable function configuration and scheduling on each abstracted module to realize a byte stream data storage service that can be dynamically updated and edited, so that developers can add or modify encapsulation rules and storage actions by themselves, which can flexibly and quickly respond to users' changing service needs, shorten development and deployment time, and adapt to more complex application scenarios.
  • FIG1 is a schematic diagram of the structure of a data storage system provided in the present disclosure.
  • FIG2 is a schematic diagram of a process of a client sending a message provided in the present disclosure
  • FIG3 is a schematic diagram of a message parsing process provided in the present disclosure.
  • FIG4 is a schematic diagram of a configuration structure of an action unit provided in the present disclosure.
  • FIG5 is a schematic diagram of the structure of a service table provided in the present disclosure.
  • FIG6 is a schematic diagram of a process of a data storage method provided in the present disclosure.
  • FIG. 7 is a schematic diagram of an electronic device provided by the present disclosure corresponding to FIG. 6 .
  • FIG1 is a schematic diagram of a data storage system provided in the present disclosure, wherein the data storage system includes a client, a server, and a control terminal.
  • control end the service end, and the client end may be implemented by different computer devices.
  • the control end is used to provide a programming environment for the first user, convert the programming information into a configuration file according to the programming information written by the first user in the programming environment, and send the configuration file to the client end and the service end respectively.
  • the first user may be a developer or manager of the business system.
  • the above-mentioned programming environment includes direct programming and indirect programming.
  • direct programming the first user (developer) can directly write a configuration file, and then directly send the configuration file through the control terminal, which is equivalent to the process of computer programming in machine code or assembly language.
  • indirect programming the first user first develops a compilation environment, and then programs in a high-level language. After the programming is completed, the programming result is compiled through the compilation environment, and the configuration file is generated and then sent through the control terminal.
  • indirect programming methods for reference such as the P4 programming and compilation system currently used for programmable switches.
  • the first user can write a configuration file by direct programming.
  • the configuration file format can be in the object notation (JavaScript Object Notation, json) format, so as to reuse the existing json processing library and related interfaces.
  • the control end encapsulates the json string in the configuration file in the message body of the transmission control protocol (Transmission Control Protocol, TCP) message, and sends it to the client and the server through the tcp socket.
  • TCP Transmission Control Protocol
  • the transceiver modules of the client and the server maintain a multiplexed socket list for constantly listening to the json configuration information from the control end.
  • the client includes a user interaction interface, a transceiver module, a programmable packaging module, a packaging instruction set and a packaging register.
  • the client can receive the configuration file sent by the control end, call the programmable encapsulation module resources according to the first configuration information in the configuration file, generate encapsulation rules, and provide an interactive interface for the second user who executes the network byte stream storage service.
  • the client can generate a storage request for a network byte stream in response to the specified operation (such as a storage operation) of the second user; encapsulate the storage request according to the above encapsulation rule to generate a network message packet; send the message packet to the server and receive the response information of the server; and feed back the received response information to the user through the interactive interface with the second user.
  • the specified operation such as a storage operation
  • the encapsulation rule can be expressed as a list composed of multiple encapsulation units.
  • the user interaction interface of the client is used to receive the user's service request, store the user request information in the encapsulation register, and then feed back the system's response result to the user.
  • the transceiver module is used to establish a communication connection with the control end and the server end, receive the configuration file sent by the control end, and send and receive messages with the server end.
  • the programmable encapsulation module is used to load the configuration file sent by the control end, generate an encapsulation unit with a unique identifier according to the first configuration information in the configuration file, sort the encapsulation units to generate encapsulation rules, and encapsulate the storage request corresponding to the byte stream of the target information according to the encapsulation rules.
  • the encapsulation instruction set is used to abstract the operations involved in the process of encapsulating the byte stream of the target information through the encapsulation rule, including but not limited to extracting field length, converting between integers and strings, and copying strings.
  • the encapsulation register is used to store the storage request information input by the second user.
  • the client runs an interactive interface with the user, obtains the byte stream of the target information, divides the byte stream input by the second user into byte segments by spaces, and uses a line break as the termination mark of the byte stream inputted at a single time.
  • the client calls the encapsulation unit to fill the segmented byte segments with information.
  • the client transceiver module encapsulates the information of the encapsulation unit into a message message and sends it to the server.
  • FIG. 2 is a schematic diagram of a process of a client sending a message message provided in the present disclosure.
  • the code of the first configuration information in the configuration file can be expressed as: ⁇ "name”:"programmableBuild”,”version”:1, "fields”: [ ⁇ "name”: “itemNumBegin”, “length”: 3, “value”: “* ⁇ r ⁇ n” ⁇ , ⁇ "name”:”itemNum”,”value”: ⁇ "command”:"toString”,"parameter”: ⁇ "command”:"getNum”,”parameter”:”B0" ⁇ , "terminator”: “ ⁇ r ⁇ n””terminatorLength”: 2 ⁇ , ⁇ "name”: “itemBegin”, “length”: 1, “value”: “$” ⁇ , ⁇ "name”:”item”,”value”: ⁇ "command”:"toString”,”parameter”: ⁇ "command”: “getLength”, “parameter”: “B1” ⁇ “terminator”: “ ⁇ r ⁇ n””terminatorLength”: 2 ⁇ ] ⁇
  • the client's transceiver module obtains a configuration file in JSON format.
  • the value of the "fields" item in the first configuration information is an array type, and each item in the array corresponds to the configuration of an encapsulation unit.
  • the configuration of the encapsulation unit mainly includes length information and content information. Length information is divided into two types: fixed length and variable length, and content information also includes two types: fixed content and variable content.
  • Encapsulation unit 1 in the encapsulation rule table uses a variable length and variable content type, calls the toString encapsulation instruction, converts the int type information in the encapsulation register B0 into a string, and fills it into its own buf.
  • cmd_t*cmd toString (getNum (B0)).
  • the encapsulation register is used to store the target information input by the first user.
  • B0 is fixed to store the number of information items of the byte stream request input by the user
  • B1 to Bn store the content of each information item input by the user in sequence.
  • the user interaction of the client adopts command line interaction, with space as the separator of each information item, and line feed as the terminator of a single interaction command.
  • the encapsulated instruction set is a pre-defined series of interface functions of encapsulated behavioral actions.
  • the encapsulated instruction set may include logical actions such as get Num, get Length, get String, and to String.
  • the interface function There are two types of input parameters for the interface function, namely the contents of the encapsulation register or the return value of other interface functions; correspondingly, the return value of the interface function also has two uses, one is as an input parameter of other interface functions, the other is to be written into the content buffer of the encapsulation unit.
  • encapsulated instruction sets, encapsulated registers, and encapsulated units are implemented in C language or Go language. Now it can be defined as a structure, and if it is implemented in languages such as C++ or python, it can be defined as a class.
  • the present disclosure can use C language to implement a client with basic functions, additionally define structures such as encapsulation registers, and connect the encapsulation units defined in the configuration file into a sequential linked list.
  • the server includes: a transceiver module, a programmable extraction module, a programmable action module and a programmable service module.
  • the server can receive the configuration file sent by the control end, call the programmable extraction module resources according to the second configuration information in the configuration file, generate multiple extraction units with unique identifiers, call the programmable action module resources according to the third configuration information in the configuration file, generate multiple action units with unique identifiers, generate a service table according to the fourth configuration information in the configuration file, and associate the service table information with the specified extraction unit and each action unit in the service table.
  • the information stored in the extraction register of the above-mentioned specified extraction order is used to indicate the storage action corresponding to the storage request.
  • the server can receive message packets from the client, obtain network messages, call the programmable extraction module interface, write information to each extraction unit, retrieve the service table according to the information in the specified extraction unit, obtain the associated action unit, execute the action in the action unit, and feed back the execution results to the client through the transceiver module.
  • the transceiver module is used to send and receive messages with the client.
  • the programmable extraction module is used to load the configuration file sent by the control end, and parse the storage request message received from the client according to the second configuration information in the configuration file to extract the target information corresponding to the storage request, and then save the extracted target information into the extraction register corresponding to each extraction unit.
  • the programmable action module is used to load the configuration file sent by the control end, and select the storage actions corresponding to the target instructions from the action instruction set according to the third configuration information in the configuration file to combine them, thereby forming a combination of logical actions, and uniquely identify or name each group of storage actions to form an action unit.
  • a basic action table and the above-mentioned action unit are provided in the programmable action module, and the action unit selects a storage action corresponding to a specified register from the basic action table and associates them.
  • the programmable service module is used to construct a service table.
  • the action information stored in the extraction register corresponding to the designated extraction unit is used as a matching object and a matching value is determined.
  • the target action unit is matched according to the matching value.
  • the storage action in the target action unit is executed.
  • the server After receiving the configuration file, the server updates the configuration of the programmable extraction module, including the extraction position offset, the extraction character length, the extraction terminator, and the associated extraction register; the offset includes a fixed value and a variable value, the variable value is based on the terminator for positioning, the extraction character length includes a fixed length and a variable length, and the variable length is calculated based on the terminator.
  • the present disclosure provides a schematic diagram of the parsing process of a message message, as shown in Figure 3.
  • FIG3 is a schematic diagram of a message parsing process provided in the present disclosure.
  • the code of the second configuration information can be expressed as: ⁇ "name”: “programmable Extract”, “version”: 1, "fields”: [ ⁇ “offset”: 0, “length”: 1, “register”: “E0” ⁇ , ⁇ "offset”: 3, "length”: 0, “terminator”: “ ⁇ r ⁇ n”, “terminatorLength”: 2, "register”: “E1” ⁇ , ⁇ "offset”: 0, "length”: 3, "register”: “E2” ⁇ , ⁇ "offset”: 3, "length”: 0, "terminator”: “ ⁇ r ⁇ n", “terminatorLength”: 2, “register”: “E1” ⁇ ,...] ⁇
  • a single extraction register in the programmable extraction module is defined as a structure, so that each extraction register corresponds to an extraction unit.
  • the structure of the message contains two parts: status information and data buffer.
  • the programmable extraction module extracts the data of specific fields in the byte stream into the data buffer of the extraction register in sequence and updates the corresponding status information.
  • the structures of multiple extraction registers form a list to facilitate subsequent traversal operations.
  • the server After receiving the configuration file, the server updates the configuration of the programmable action module.
  • the programmable action unit includes a basic action table and an action unit.
  • the action unit selects a specific action from the basic action table, associates it with the above-mentioned specified extraction register, and uniquely identifies or names it, thereby obtaining the configuration of the action unit.
  • the present disclosure also provides a configuration structure diagram of an action unit, as shown in FIG4 .
  • FIG. 4 is a schematic diagram of a configuration structure of an action unit provided in the present disclosure.
  • the code of the third configuration information can be expressed as: ⁇ "name”:"programmable Action”,”version”:1, "actions”: [ ⁇ "name”: “setStrAct”, “action”: “setStr”, “parameters”: “E7,E10” ⁇ , ⁇ "name”: “getStrAct”, “action”: “getStr”, “parameters”: “E7” ⁇ ...] ⁇
  • the actions in the basic action table are abstractions of various data storage actions, including character Access to string and dictionary type data, as well as setting timeouts, etc. According to the third information in the configuration file, multiple action units are set.
  • Figure 4 lists the configuration of four action units, and selects actions in the basic action table such as setStr, getStr, setDict, getDict, etc., and selects specific extraction registers as parameters.
  • the basic action table is implemented using a structure, and the items in the structure are function pointers, corresponding to the action names of the encapsulated instruction set in Figure 2.
  • the specific implementation of the function can directly reuse the encapsulated libraries such as the go language.
  • the server can update the programmable service module configuration according to the fourth configuration information in the configuration file, specifically including constructing a service table, including a matching register, a matching value and action information, wherein the matching register is the register corresponding to the above-mentioned specified extraction unit, the matching value is obtained from the configuration file and written into the service table, and the action information is the action unit with a unique identifier or name.
  • the server can use the action information stored in the extraction register (matching register) corresponding to the specified extraction unit as a matching object and determine a matching value, match the target action unit according to the matching value, and execute the stored action in the target action unit when the matching is completed.
  • the present disclosure provides a structural schematic diagram of a service table, as shown in FIG5 .
  • FIG. 5 is a schematic diagram of the structure of a service table provided in the present disclosure.
  • the code of the fourth configuration file can be expressed as: ⁇ "name”:"programmableServe”,”version”:1, “serve”[ ⁇ "name”: “setStr”, “matchRegister”: “E4"”matchValue”:”set”,”action”: “setStrAct” ⁇ , ⁇ "name”:"getStr”,”matchRegister”:"E4"”matchValue”:"get”,”action”: “getStrAct” ⁇ ...] ⁇
  • the service table can associate the extraction register, action unit and result register through the "matching value”.
  • This embodiment uses the map data structure of the go language to implement the service table.
  • the key of the map table is the matching value, which can include "set", “get”, “hset”, “hget”, etc., and is bound to the specified extraction register.
  • the extraction register E4 is set as the matching register. According to the above information, E4 stores the first word of the command line input by the second user.
  • the programmable service unit queries the service table according to the information in E4, obtains the action information, that is, signs the defined programmable action unit, executes the related action logic, and writes the result into the result register R1.
  • the server After the server obtains the execution result, it returns it to the client through the sending and receiving module.
  • the server can determine whether the current storage action is executed successfully based on the return value of the set function.
  • commands are executed serially, so there is no need to add output buffer pointer parameters in command interface functions such as set functions. Instead, a global data buffer is used as a cache for the output results of each command on the server. For example, after executing the above-mentioned "SET HELLO WORLD” instruction, if the execution is successful, "OK” is written in R1, and “ERROR” is written in error; correspondingly, if the "GET HELLO” instruction is executed, that is, the value corresponding to the "HELLO" key is obtained, then the data written in R1 is "WORLD".
  • the client receives the execution result returned by the server and feeds it back to the second user through the interactive interface.
  • the client adopts the blocking mode by default, that is, after the user inputs the command "SET HELLO WORLD" through the client, it will no longer respond to other command interaction requests before receiving a reply from the server.
  • the client obtains the returned execution result from the server, it directly feeds back the execution interface to the second user through the interactive interface, and the second user can obtain the execution result of the command.
  • the above is a data storage system provided in the present disclosure.
  • the following will describe a data storage method provided in the present disclosure and applied to the above data storage system from a method perspective, as shown in FIG6 .
  • FIG6 is a flow chart of a data storage method provided in the present disclosure, comprising the following steps:
  • the server obtains a message message sent by the client, parses the message message, and obtains target information, wherein the message message is a storage request corresponding to a byte stream of the target information generated by the client in response to a specified operation of a second user, and is obtained by encapsulating the storage request based on an encapsulation rule, wherein the encapsulation rule is generated according to first configuration information in a configuration file sent by the control end, and the configuration file is generated by the control end according to programming information written by the first user in a programming environment;
  • S603 Reading action information from a designated extraction unit and determining an action unit matching the action information as a target action unit, wherein the server includes at least one extraction unit generated according to the second configuration information in the configuration file and at least one action unit generated according to the third configuration information in the configuration file, each extraction unit matches the encapsulation rule, and each action unit corresponds to a set of stored actions;
  • S604 Execute a storage action corresponding to the target action unit to store the byte stream data of the target information.
  • the client can call the programmable encapsulation module resources according to the first configuration information in the configuration file, generate encapsulation rules, and provide an interactive interface for the second user who executes the network byte stream storage service.
  • the server can call the programmable extraction module resources according to the second configuration information in the configuration file to generate multiple extraction units carrying unique identifiers, call the programmable action module resources according to the third configuration information in the configuration file to generate multiple action units carrying unique identifiers, generate a service table according to the configuration file, and associate the service table information with the specified extraction unit and each action unit in the service table.
  • the information stored in the extraction register of the specified extraction unit is used to indicate the storage action corresponding to the storage request.
  • the client can generate a storage request for a network byte stream; encapsulate the storage request according to the above-mentioned encapsulation rules to generate a network message packet; send the message packet to the server and receive a response message from the server; and feed back the received response information to the user through the interactive interface with the second user.
  • the server can receive message packets from the client, obtain network messages, call the programmable extraction module interface, write information to each extraction unit, retrieve the service table according to the information in the specified extraction unit, obtain the associated action unit, execute the action in the action unit, and feed back the execution results to the client through the transceiver module.
  • this solution abstracts the resources of the client and server, provides them to users in the form of programmable encapsulation, extraction, action and other units, and flexibly configures them through the control end. This allows developers to flexibly configure the service content of the client and server based on their own needs, greatly expanding the application scenarios and flexibility of use.
  • the present disclosure also provides a computer-readable storage medium, which stores a computer program.
  • the computer program can be used to execute a data storage method provided in FIG. 6 above.
  • the present disclosure also provides a schematic structural diagram of an electronic device corresponding to FIG6 as shown in FIG7.
  • the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory, and of course may also include hardware required for other services.
  • the processor reads the corresponding computer program from the non-volatile memory into the memory and then runs it to implement the data storage method described in FIG6 above.
  • the present disclosure does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc., that is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
  • a hardware improvement for example, an improvement to the circuit structure of diodes, transistors, switches, etc.
  • a software improvement an improvement to the method flow.
  • PLD Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • HDL There is not only one HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc.
  • ABEL Advanced Boolean Expression Language
  • AHDL Altera Hardware Description Language
  • HDCal JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc.
  • VHDL Very-High-Speed Integrated Circuit Hardware Description Language
  • Verilog Verilog
  • the controller may be implemented in any suitable manner, for example, the controller may take the form of a microprocessor or processor and a computer readable medium storing a computer readable program code (e.g., software or firmware) executable by the (micro)processor, a logic gate, a switch, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, and the memory controller may also be implemented as part of the control logic of the memory.
  • a computer readable program code e.g., software or firmware
  • the controller may be implemented in the form of a logic gate, a switch, an application specific integrated circuit, a programmable logic controller, and an embedded microcontroller by logically programming the method steps. Therefore, such a controller may be considered as a hardware component, and the means for implementing various functions included therein may also be considered as a structure within the hardware component. Or even, the means for implementing various functions may be considered as both a software module for implementing the method and a structure within the hardware component.
  • a typical implementation device is a computer.
  • the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
  • the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device that implements the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
  • These computer program instructions may also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
  • a computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
  • processors CPU
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • Computer-readable media include permanent and non-permanent, removable and non-removable media that can store information by any method or technology. Information can be computer-readable instructions, data structures, program modules or other Data. Examples of computer storage media 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 disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory media such as modulated data signals and carrier waves.
  • PRAM phase change memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • RAM random access memory
  • ROM read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据存储系统、方法、存储介质及电子设备。所述数据存储系统包括:服务端、客户端以及控制端,控制端用于,根据编程信息生成配置文件,并将配置文件发送给客户端以及服务端;客户端用于,根据配置文件生成封装规则,以及,生成存储请求,基于封装规则对存储请求进行封装,得到消息报文,并将消息报文发送给服务端;服务端用于,根据配置文件生成提取单元和动作单元,以及对消息报文进行解析,将目标信息写入各提取单元,从指定提取单元中读取动作信息并确定与动作信息相匹配的动作单元,作为目标动作单元,执行目标动作单元对应的存储动作,以对目标信息的字节流数据进行存储。

Description

一种数据存储系统、方法、存储介质及电子设备
相关申请的交叉引用
本申请要求于2023年06月14日提交的、申请号为202310705249.1的中国专利申请的优先权,该申请以引用的方式并入本文中。
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据存储系统、方法、存储介质及电子设备。
背景技术
近些年,以软件定义网络(Software Defined Network,SDN)为代表的可编程网络系统正在兴起,与传统网络相比,可编程网络系统可以针对用户不断变化的需求,快速实现网络协议、网络拓扑等服务的自定义设计和部署,从而摆脱硬件对网络架构的限制。
然而,目前的可编程网络主要针对的是网络请求的转发功能,在面向字节流的存储业务时,无法对存储业务的网络配置进行动态的设计与更新,灵活性不足,难以满足用户(开发者)对于存储业务的动态设计和部署的需求。
因此,如何实现对网络字节流存储业务的动态化编程与更新,满足用户的动态设计和部署需求,是一个亟待解决的问题。
发明内容
本公开提供一种数据存储系统、方法、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本公开采用下述技术方案:
本公开提供了一种数据存储系统,包括:服务端、客户端以及控制端;
所述控制端用于,为第一用户提供编程环境,根据所述第一用户在所述编程环境中写入的编程信息生成配置文件,并将所述配置文件发送给所述客户端以及所述服务端;
所述客户端用于,接收所述配置文件,根据所述配置文件中的第一配置信息生成封装规则,以及,响应于第二用户的指定操作,生成目标信息的字节流所对应的存储请求, 基于所述封装规则对所述存储请求进行封装,得到消息报文,并将所述消息报文发送给所述服务端;
所述服务端用于,接收所述配置文件,根据所述配置文件中的第二配置信息生成与所述封装规则相匹配的至少一个提取单元,根据所述配置文件中的第三配置信息生成至少一组存储动作所对应的动作单元,以及
在接收到所述消息报文后,对所述消息报文进行解析,得到所述目标信息,将所述目标信息写入各提取单元,从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,执行所述目标动作单元对应的存储动作,以对所述目标信息的字节流数据进行存储。
可选地,所述客户端包括:可编程封装模块以及封装指令集;
所述可编程封装模块用于,加载所述配置文件,根据所述第一配置信息生成至少一个封装单元,并将各封装单元进行排序,得到所述封装规则;
所述封装指令集用于,对通过所述封装规则对所述目标信息的字节流进行封装过程中涉及的操作进行抽象。
可选地,所述服务端包括:可编程提取模块、可编程动作模块以及可编程服务模块;
所述可编程提取模块用于,加载所述配置文件,根据所述第二配置信息生成各提取单元,以及,按照所述配置文件对所述消息报文进行解析,以提取所述目标信息并写入各提取单元对应的提取寄存器中;
所述可编程动作模块用于,加载所述配置文件,根据所述第三配置信息从预设的动作指令集中选取各目标指令,将所述各目标指令所对应的存储动作进行组合,并根据各组存储动作生成各动作单元;
所述可编程服务模块用于,加载所述配置文件,根据所述配置文件中的第四配置信息,将存储在所述指定提取单元对应提取寄存器中的动作信息作为匹配对象并确定匹配值,根据所述匹配值对所述目标动作单元进行匹配。
可选地,所述服务端还用于,根据所述配置文件,更新所述可编程提取模块、所述可编程动作模块以及所述可编程服务模块所对应的配置。
可选地,所述可编程提取模块的配置包括:提取位置偏移量、提取字符长度、提取终止符以及关联的提取寄存器;
所述偏移量包括固定值和可变值,所述可变值基于所述终止符进行确定;
所述字符长度包括固定长度和可变长度,所述可变长度基于所述终止符进行确定。
可选地,所述可编程动作模块包括:基础动作表和动作单元,所述动作单元用于从所述基础动作表中选取指定寄存器对应的存储动作并进行关联。
可选地,所述服务端还用于,
根据所述配置文件中的第四配置信息生成服务表,并在所述服务表中将各指定提取单元与各动作单元进行关联,以及
根据所述指定提取单元中的动作信息检索所述服务表,将在所述服务表中检索到的动作单元作为所述目标动作单元。
可选地,所述服务端还用于,将所述目标动作单元对应存储动作的执行结果返回所述客户端。
本公开提供了一种数据存储的方法,所述方法包括:
服务端获取客户端发送的消息报文,对所述消息报文进行解析,得到目标信息,其中,所述消息报文是客户端响应于第二用户的指定操作,生成所述目标信息的字节流所对应的存储请求,基于封装规则对所述存储请求进行封装后得到的,所述封装规则是根据控制端发送的配置文件中的第一配置信息生成的,所述配置文件是所述控制端根据第一用户在编程环境中写入的编程信息生成的;
将所述目标信息写入各提取单元;
从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,其中,所述服务端包括根据所述配置文件中的第二配置信息生成的至少一个提取单元以及根据所述配置文件中的第三配置信息生成的至少一个动作单元,各提取单元与所述封装规则相匹配,每个动作单元对应一组存储动作;
执行所述目标动作单元对应的存储动作,以对所述目标信息的字节流数据进行存储。
可选地,所述客户端包括:可编程封装模块以及封装指令集;
所述封装规则是所述可编程封装模块加载所述配置文件,根据所述第一配置信息生成至少一个封装单元并将各封装单元进行排序后得到的,所述封装规则对所述目标信息的字节流进行封装过程中涉及的操作通过所述封装指令集进行抽象。
可选地,所述服务端中设置有可编程动作模块以及可编程服务模块中的至少一种;
对所述消息报文进行解析之前,所述方法还包括:
通过所述服务端中的可编程动作模块,加载所述配置文件,根据所述第三配置信息从预设的动作指令集中选取各目标指令,将所述各目标指令所对应的存储动作进行组合,并根据各组存储动作生成各动作单元;
从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,包括:
通过所述服务端中的可编程服务模块,加载所述配置文件,根据所述配置文件中的第四配置信息,将存储在所述指定提取单元对应提取寄存器中的动作信息作为匹配对象并确定匹配值,根据所述匹配值对所述目标动作单元进行匹配。
可选地,所述服务端中还设置有:可编程提取模块;
所述方法还包括:
根据所述配置文件,更新所述可编程提取模块、所述可编程动作模块以及所述可编程服务模块所对应的配置。
可选地,所述可编程提取模块的配置包括:提取位置偏移量、提取字符长度、提取终止符以及关联的提取寄存器,所述偏移量包括固定值和可变值,所述可变值基于所述终止符进行确定,所述字符长度包括固定长度和可变长度,所述可变长度基于所述终止符进行确定。
可选地,所述可编程动作模块包括:基础动作表和动作单元;
根据各组存储动作生成所述各动作单元,包括:
通过所述动作单元,从所述基础动作表中选取指定寄存器对应的存储动作并进行关联。
可选地,在对所述消息报文进行解析之前,所述方法还包括:
根据所述配置文件中的第四配置信息生成服务表,并在所述服务表中将各指定提取单元与各动作单元进行关联;
从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,包括:
根据所述指定提取单元中的动作信息检索所述服务表,将在所述服务表中检索到的 动作单元作为所述目标动作单元。
可选地,所述方法还包括:
将所述目标动作单元对应存储动作的执行结果返回所述客户端。
本公开提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储的方法。
本公开提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据存储的方法。
本公开采用的上述至少一个技术方案能够达到以下有益效果:
在本公开提供的数据存储系统包括:服务端、客户端以及控制端,控制端用于,根据编程信息生成配置文件,并将配置文件发送给客户端以及服务端;客户端用于,根据配置文件生成封装规则,以及,生成存储请求,基于封装规则对存储请求进行封装,得到消息报文,并将消息报文发送给服务端;服务端用于,根据配置文件生成提取单元和动作单元,以及对消息报文进行解析,将目标信息写入各提取单元,从指定提取单元中读取动作信息并确定与动作信息相匹配的动作单元,作为目标动作单元,执行目标动作单元对应的存储动作,以对目标信息的字节流数据进行存储。
从上述方法可以看出,在本方案中第二用户可以随时在控制端对服务端以及客户端进行配置,以在客户端生成封装规则并在服务端对动作单元以及提取单元进行抽象,而后将抽象后的各个模块进行可编程的功能配置和调度,实现可动态更新和编辑的字节流数据存储服务,使得开发者可以自行对封装规则以及存储动作进行增加或修改等配置,能够灵活、快速地响应用户不断变化的服务需要,缩短开发和部署的时间,适应更加复杂的应用场景。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本公开中提供的一种数据存储系统的结构示意图;
图2为本公开中提供的一种客户端发送消息报文的过程示意图;
图3为本公开中提供的一种消息报文的解析过程示意图;
图4为本公开中提供的一种动作单元的配置结构示意图;
图5为本公开中提供的一种服务表的结构示意图;
图6为本公开中提供的一种数据存储的方法的流程示意;
图7为本公开提供的一种对应于图6的电子设备示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开具体实施例及相应的附图对本公开技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
以下结合附图,详细说明本公开各实施例提供的技术方案。
图1为本公开中提供的一种数据存储系统示意图,该数据存储系统包括:客户端、服务端以及控制端。
在一些实施例中,控制端、服务端和客户端可以由不同的计算机设备实现。控制端用于,为第一用户提供编程环境,根据第一用户在编程环境中写入的编程信息,将编程信息转化为配置文件,并将配置文件分别发送给客户端以及服务端。在本公开中,第一用户可以为业务系统的开发人员或管理人员。
上述编程环境包括直接编程和间接编程,对于直接编程,第一用户(开发人员)可以直接编写配置文件,然后通过控制端将配置文件直接下发,相当于以机器码或者汇编语言进行计算机编程的过程。对于间接编程就是,第一用户首先开发一套编译环境,而后再通过高级语言进行编程,编程完成后,通过编译环境对编程结果进行编译,生成配置文件后再通过控制端下发。间接编程方式有众多成熟方案可供参考,例如当前用于可编程交换机的P4编程、编译系统。在本公开中,第一用户可以通过直接编程的方式编写配置文件。
在本公开中,配置文件格式可以为对象表示法(JavaScript Object Notation,json)格式,从而复用已有的json处理库和相关接口。控制端将配置文件当中的json串封装在传输控制协议(Transmission Control Protocol,TCP)消息的消息体中,通过tcp套接字下发到客户端和服务端。客户端和服务端的收发模块维护一个多路复用的套接字列表,用于时刻监听来自控制端的json配置信息。
客户端包括用户交互接口、收发模块、可编程封装模块、封装指令集和封装寄存器, 在对存储系统进行配置的过程中,客户端可以接收控制端下发的配置文件,根据配置文件中的第一配置信息调用可编程封装模块资源,生成封装规则,并为执行网络字节流存储服务的第二用户提供交互接口。
在存储请求的执行过程中,客户端可以响应于第二用户的指定操作(如存储操作),生成网络字节流的存储请求;将存储请求根据上述封装规则进行封装,生成网络消息报文;将消息报文发送给服务端,并接收服务端的响应信息;将接收到的响应信息通过与第二用户的交互接口反馈给用户。需要说明的是,由于封装规则是由多个封装单元构成的,所以该封装规则可以表示为多个封装单元构成的列表。
其中,客户端的用户交互接口用于接收用户的服务请求,将用户请求信息存入封装寄存器,获取到系统的响应结果后再反馈给用户。
收发模块用于和控制端以及服务端之间建立通信连接,接收控制端发送的配置文件,并与服务端之间收发消息。
可编程封装模块用于加载控制端下发的配置文件,根据配置文件中的第一配置信息生成具有唯一性标识的封装单元,将各封装单元进行排序生成封装规则,并根据封装规则对目标信息的字节流所对应的存储请求进行封装。
所述封装指令集用于,对通过所述封装规则对所述目标信息的字节流进行封装过程中涉及的操作进行抽象,包括但不限于提取字段长度、整数与字符串之间的转换、拷贝字符串。
封装寄存器用于保存第二用户输入的存储请求信息。
具体的,客户端运行的与用户的交互接口,获取目标信息的字节流,通过空格将第二用户输入的字节流分割成字节段,并以换行符作为单次输入的字节流的终止标识。完成分割后客户端调用封装单元对分割后的字节段进行信息填充,完成信息填充后客户端收发模块根据封装单元的信息,封装成消息报文并发送给服务端。为了便于理解,本公开中提供了一种客户端发送消息报文的过程示意图,如图2所示。
图2为本公开中提供的一种客户端发送消息报文的过程示意图。
其中,配置文件中的第一配置信息的代码可以表示为:
{“name”:“programmableBuild”,“version”:1,
"fields":[{“name”:“itemNumBegin”,“length”:3,“value”:“*\r\n”},
{“name”:“itemNum”,“value”:{“command”:“toString”,“parameter”:
{“command”:“getNum”,“parameter”:“B0”}},
“terminator”:“\r\n”“terminatorLength”:2},
{“name”:“itemBegin”,“length”:1,“value”:“$”},
{“name”:“item”,“value”:{“command”:“toString”,“parameter”:
{“command”:“getLength”,“parameter”:“B1”}}“terminator”:“\r\n”“terminatorLength”:
2}]}
客户端的收发模块获取到json格式的配置文件,第一配置信息中“fields”项的值为一个数组类型,数组当中的每一项即对应一个封装单元的配置。封装单元的配置主要包括长度信息和内容信息。长度信息分为两种类型:固定长度和可变长度,内容信息也包括两种:固定内容和可变内容。定长例如图2中封装规则表中的封装单元0,固定以三个字节的长度填入acii字符‘*’、‘\r’和‘\n’,在该封装单元中,int length=1,char*buf=“*”,用于标识整个字节流服务请求的开始。
封装规则表中的封装单元1采用可变长度和可变内容的类型,调用了toString封装指令,将封装寄存器B0当中的int类型的信息转化成字符串,并填充到自身的buf当中。在该封装单元中,int length=1,char*buf=“3”,在调用cmd接口后赋值,表示为:cmd_t*cmd=toString(getNum(B0))。
封装寄存器用于保存第一用户输入的目标信息,当第一用户输入网络字节流“set hello world”对应的存储请求时,其中B0固定用于保存用户单词输入的字节流请求的信息项的数量,B1至Bn则依次保存用户输入的各个信息项的内容。本实施例中,客户端的用户交互采用命令行交互,以空格作为各个信息项的分隔符,并以换行符作为单次交互命令的终止符。
封装指令集是预先制定的一系列封装行为动作的接口函数,该封装指令集中可以包括get Num、get Length、get String、to String等逻辑动作。
接口函数的输入参数有两种,分别为封装寄存器的内容或者其他接口函数的返回值;相对应的,接口函数的返回值也有两种用途,一是作为其他接口函数的输入参数,二是写入到封装单元的内容缓冲区当中。
在实际应用中,封装指令集、封装寄存器和封装单元,若以C语言或go语言等实 现则可以定义为结构体,若以C++或python等语言实现则可以定义为类。本公开可以采用C语言实现一个具备基本功能的客户端,额外定义封装寄存器等结构体,并将配置文件中定义的封装单元连接成一个顺序链表。如图2所示,当用户输入“SET HELLO WORLD”的字节流存储请求,那么响应的封装寄存器、封装规则表、封装单元内的信息如图2所示进行填充,最终收发模块按照封装规则表当中的信息,拼接成消息报文的字符串“*3\r\n$3\r\nset\r\n$5\r\nhello\r\n$5\r\n world\r\n”,而后发送给服务器。
服务端包括:收发模块、可编程提取模块、可编程动作模块以及可编程服务模块,在对存储系统进行配置的过程中,服务端可以接收控制端下发的配置文件,根据配置文件中的第二配置信息调用可编程提取模块资源,生成多个携带唯一标识的提取单元,根据配置文件中的第三配置信息调用可编程动作模块资源,生成多个携带唯一标识的动作单元,根据配置文件中的第四配置信息生成服务表,并在服务表中将服务表信息与指定提取单元以及各动作单元进行关联。其中,上述指定提取单的提取寄存器中所存储的信息用于指示存储请求所对应的存储动作。
在执行存储请求的过程中,服务端可以接收来自客户端的消息报文,获取网络消息,调用可编程提取模块接口,向各个提取单元中写入信息,根据指定提取单元中的信息检索服务表,获取到关联的动作单元,执行动作单元当中的动作,将执行结果通过收发模块反馈给客户端。
其中,收发模块用于和客户端之间进行消息的收发。
可编程提取模块用于加载控制端下发的配置文件,并按照配置文件中的第二配置信息,对接收到的客户端传来的存储请求的消息报文进行解析,以提取该存储请求对应的目标信息。而后将提取到的目标信息保存到各提取单元对应的提取寄存器当中。
可编程动作模块用于加载控制端下发的配置文件,根据配置文件中的第三配置信息从动作指令集中选取目标指令对应的存储动作进行组合,从而形成一套逻辑动作的组合,并为每一组存储动作进行唯一性标识或命名,形成一个动作单元。
需要说明的是,可编程动作模块中设置有基础动作表和上述动作单元,动作单元从基础动作表中选取指定寄存器对应的存储动作并进行关联。
可编程服务模块用于构造服务表,根据所述配置文件中的第四配置信息,将存储在所述指定提取单元对应提取寄存器中的动作信息作为匹配对象并确定匹配值,根据该匹配值对目标动作单元进行匹配,待完成匹配时,则执行目标动作单元中的存储动作。
服务端接收到配置文件后,更新可编程提取模块的配置,包括提取位置偏移量、提取字符长度、提取终止符以及关联的提取寄存器;偏移量包括固定值和可变值,可变值是基于终止符进行定位,提取字符长度包括固定长度和可变长度,可变长度基于终止符进行长度计算。为了便于理解,本公开提供了一种消息报文的解析过程示意图,如图3所示。
图3为本公开中提供的一种消息报文的解析过程示意图。
其中,第二配置信息的代码可以表示为:
{“name”:“programmable Extract”,“version”:1,"fields":[{“offset”:0,“length”:1,
“register”:“E0”},
{“offset”:3,“length”:0,“terminator”:“\r\n”,“terminatorLength”:2,“register”:“E1”},
{“offset”:0,“length”:3,“register”:“E2”},
{“offset”:3,“length”:0,“terminator”:“\r\n”,“terminatorLength”:2,“register”:
“E1”},…]}
可编程提取模块中单个的提取寄存器定义为一个结构体,使每个提取寄存器对应一个提取单元,消息报文的结构体当中包含了状态信息和数据缓存区两部分,可编程提取模块将字节流当中特定字段的数据依次提取到提取寄存器的数据缓冲区当中,并更新对应的状态信息。多个提取寄存器的结构体组成一个列表,方便后续的遍历操作。
服务端接收到配置文件后,更新可编程动作模块的配置,可编程动作单元包括基础动作表和动作单元,动作单元从基础动作表中选取特定动作,与上述指定提取寄存器相关联,并进行唯一性的标识或命名,从而得到动作单元的配置。为了便于理解,本公开中还提供了一种动作单元的配置结构示意图,如图4所示。
图4为本公开中提供的一种动作单元的配置结构示意图。
其中,第三配置信息的代码可以表示为:
{“name”:“programmable Action”,“version”:1,
"actions":[{“name”:“setStrAct”,“action”:“setStr”,“parameters”:“E7,E10”},
{“name”:“getStrAct”,“action”:“getStr”,“parameters”:“E7”}…]}
其中,基础动作表当中的动作就是对各个数据存储动作的抽象,包括了对字符 串、字典类型的数据的存取,以及设置超时等等。根据配置文件当中的第三信息,设置了多个动作单元,图4当中列出了四个动作单元的配置,分别选用setStr、getStr、setDict、getDict等基础动作表中的动作,并选取特定的提取寄存器作为参数。实际上基础动作表采用结构体实现,结构体当中的项即为函数指针,对应图2中封装指令集的动作名称。函数的具体实现可以直接复用go语言等已经封装好的库。
服务端接收到配置文件后,服务器可以根据配置文件中的第四配置信息更新可编程服务模块配置,具体包括构造一个服务表,包括匹配寄存器、匹配值以及动作信息,所述匹配寄存器为上述指定提取单元所对应的寄存器,匹配值从配置文件中获取并写入服务表,动作信息为所述具有唯一性标识或命名的动作单元。
服务器可以将存储在指定提取单元对应提取寄存器(匹配寄存器)中的动作信息作为匹配对象并确定匹配值,根据该匹配值对目标动作单元进行匹配,待完成匹配时,则执行目标动作单元中的存储动作。为了便于理解,本公开提供了一种服务表的结构示意图,如图5所示。
图5为本公开中提供的一种服务表的结构示意图。
其中,上述第四配置文件的代码可以表示为:
{“name”:“programmableServe”,“version”:1,
"serve"[{“name”:“setStr”,“matchRegister”:“E4”“matchValue”:“set”,“action”:
“setStrAct”},
{“name”:“getStr”,“matchRegister”:“E4”“matchValue”:“get”,“action”:
“getStrAct”}…]}
服务表可以将提取寄存器、动作单元以及结果寄存器通过“匹配值“进行关联,本实施例采用go语言的map数据结构来实现服务表。所述map表的键即为匹配值,匹配值可以包括“set”、“get”、“hset”、“hget”等,并且与指定的提取寄存器进行绑定。图5中以提取寄存器E4设置为匹配寄存器,根据前述信息,E4当中保存的是第二用户输入的命令行的第一个单词。
当E4中被写入了信息,可编程服务单元即根据E4中的信息查询服务表,获取到动作信息,即为签署已经定义好的可编程动作单元,执行相关的动作逻辑,并将结果写入到结果寄存器R1当中。
服务端获取到执行结果后,通过收发模块返回给客户端。
执行动作单元后,服务器可以根据set函数的返回值判断当前存储动作是否执行成功。在本公开中,命令都是串行执行的,因而不需要在set函数等命令接口函数中增加输出缓冲区指针参数,转而采用一个全局数据缓冲区,作为服务端各个命令的输出结果的缓存。例如执行了上述的“SET HELLO WORLD”指令后,如果执行成功,则R1内写入“OK”,错误则写入“ERROR”;相对应的,如果执行的是“GET HELLO”指令,即获取“HELLO”键所对应的值,那么R1中写入的数据为“WORLD”。
客户端接收到服务端返回的执行结果,通过交互接口反馈给第二用户。
在本实施例中,客户端默认情况下采用阻塞模式,即用户通过客户端输入“SET HELLO WORLD”等命令后,在得到服务端的回复之前,不再响应其他的命令交互请求。等到客户端从服务端获取到返回的执行结果后,直接将执行接口通过交互接口反馈给第二用户,第二用户可以获取到命令的执行结果。
以上为本公开中提供的一种数据存储系统,以下将从方法的角度,对本公开中提供的一种应用于上述数据存储系统的数据存储的方法进行说明,如图6所示。
图6为本公开中提供的一种数据存储的方法的流程示意图,包括以下步骤:
S601:服务端获取客户端发送的消息报文,对所述消息报文进行解析,得到目标信息,其中,所述消息报文是客户端响应于第二用户的指定操作,生成所述目标信息的字节流所对应的存储请求,基于封装规则对所述存储请求进行封装后得到的,所述封装规则是根据控制端发送的配置文件中的第一配置信息生成的,所述配置文件是所述控制端根据第一用户在编程环境中写入的编程信息生成的;
S602:将所述目标信息写入各提取单元;
S603:从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,其中,所述服务端包括根据所述配置文件中的第二配置信息生成的至少一个提取单元以及根据所述配置文件中的第三配置信息生成的至少一个动作单元,各提取单元与所述封装规则相匹配,每个动作单元对应一组存储动作;
S604:执行所述目标动作单元对应的存储动作,以对所述目标信息的字节流数据进行存储。
在存储系统进行配置的过程中,客户端可以根据配置文件中的第一配置信息调用可编程封装模块资源,生成封装规则,并为执行网络字节流存储服务的第二用户提供交互接口。
服务端可以根据配置文件中的第二配置信息调用可编程提取模块资源,生成多个携带唯一标识的提取单元,根据配置文件中的第三配置信息调用可编程动作模块资源,生成多个携带唯一标识的动作单元,根据配置文件生成服务表,并在服务表中将服务表信息与指定提取单元以及各动作单元进行关联。其中,上述指定提取单元的提取寄存器中所存储的信息用于指示存储请求所对应的存储动作。
在执行存储请求的过程中,客户端可以生成网络字节流的存储请求;将存储请求根据上述封装规则进行封装,生成网络消息报文;将消息报文发送给服务端,并接收服务端的响应信息;将接收到的响应信息通过与第二用户的交互接口反馈给用户。
服务端可以接收来自客户端的消息报文,获取网络消息,调用可编程提取模块接口,向各个提取单元中写入信息,根据指定提取单元中的信息检索服务表,获取到关联的动作单元,执行动作单元当中的动作,将执行结果通过收发模块反馈给客户端。
从上述内容中可以看出,本方案通过将客户端和服务端的资源进行抽象,以可编程封装、提取、动作等单元的形态提供给用户,并通过控制端进行灵活配置,是开发人员可以基于自己的需求灵活地配置客户端和服务端的服务内容,大大扩展了应用的场景和使用的灵活性。
本公开还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图6提供的一种数据存储的方法。
本公开还提供了图7所示的一种对应于图6的电子设备的示意结构图。如图7所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图6所述的数据存储的方法。当然,除了软件实现方式之外,本公开并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件 (Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他 数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本公开,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (18)

  1. 一种数据存储系统,所述数据存储系统包括:服务端、客户端以及控制端;
    所述控制端用于,为第一用户提供编程环境,根据所述第一用户在所述编程环境中写入的编程信息生成配置文件,并将所述配置文件发送给所述客户端以及所述服务端;
    所述客户端用于,接收所述配置文件,根据所述配置文件中的第一配置信息生成封装规则,以及,响应于第二用户的指定操作,生成目标信息的字节流所对应的存储请求,基于所述封装规则对所述存储请求进行封装,得到消息报文,并将所述消息报文发送给所述服务端;
    所述服务端用于,接收所述配置文件,根据所述配置文件中的第二配置信息生成与所述封装规则相匹配的至少一个提取单元,根据所述配置文件中的第三配置信息生成至少一组存储动作所对应的动作单元,以及在接收到所述消息报文后,对所述消息报文进行解析,得到所述目标信息,将所述目标信息写入各提取单元,从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,执行所述目标动作单元对应的存储动作,以对所述目标信息的字节流数据进行存储。
  2. 如权利要求1所述的数据存储系统,其特征在于,所述客户端包括:可编程封装模块以及封装指令集;
    所述可编程封装模块用于,加载所述配置文件,根据所述第一配置信息生成至少一个封装单元,并将各封装单元进行排序,得到所述封装规则;
    所述封装指令集用于,对通过所述封装规则对所述目标信息的字节流进行封装过程中涉及的操作进行抽象。
  3. 如权利要求1所述的数据存储系统,其特征在于,所述服务端包括:可编程提取模块、可编程动作模块以及可编程服务模块;
    所述可编程提取模块用于,加载所述配置文件,根据所述第二配置信息生成各提取单元,以及,按照所述配置文件对所述消息报文进行解析,以提取所述目标信息并写入各提取单元对应的提取寄存器中;
    所述可编程动作模块用于,加载所述配置文件,根据所述第三配置信息从预设的动作指令集中选取各目标指令,将所述各目标指令所对应的存储动作进行组合,并根据各组存储动作生成各动作单元;
    所述可编程服务模块用于,加载所述配置文件,根据所述配置文件中的第四配置信息,将存储在所述指定提取单元对应提取寄存器中的动作信息作为匹配对象并确定匹配值,根据所述匹配值对所述目标动作单元进行匹配。
  4. 如权利要求3所述的数据存储系统,其特征在于,所述服务端还用于,根据所述配置文件,更新所述可编程提取模块、所述可编程动作模块以及所述可编程服务模块所对应的配置。
  5. 如权利要求3所述的数据存储系统,其特征在于,所述可编程提取模块的配置包括:提取位置偏移量、提取字符长度、提取终止符以及关联的提取寄存器;
    所述偏移量包括固定值和可变值,所述可变值基于所述终止符进行确定;
    所述字符长度包括固定长度和可变长度,所述可变长度基于所述终止符进行确定。
  6. 如权利要求3所述的数据存储系统,其特征在于,所述可编程动作模块包括:基础动作表和动作单元,所述动作单元用于从所述基础动作表中选取指定寄存器对应的存储动作并进行关联。
  7. 如权利要求1所述的数据存储系统,其特征在于,所述服务端还用于,
    根据所述配置文件中的第四配置信息生成服务表,并在所述服务表中将各指定提取单元与各动作单元进行关联,以及
    根据所述指定提取单元中的动作信息检索所述服务表,将在所述服务表中检索到的动作单元作为所述目标动作单元。
  8. 如权利要求1所述的数据存储系统,其特征在于,所述服务端还用于,将所述目标动作单元对应存储动作的执行结果返回所述客户端。
  9. 一种数据存储的方法,所述方法包括:
    服务端获取客户端发送的消息报文,对所述消息报文进行解析,得到目标信息,其中,所述消息报文是所述客户端响应于第二用户的指定操作,生成所述目标信息的字节流所对应的存储请求,基于封装规则对所述存储请求进行封装后得到的,所述封装规则是根据控制端发送的配置文件中的第一配置信息生成的,所述配置文件是所述控制端根据第一用户在编程环境中写入的编程信息生成的;
    将所述目标信息写入各提取单元;
    从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,其中,所述服务端包括根据所述配置文件中的第二配置信息生成的至少一个提取单元以及根据所述配置文件中的第三配置信息生成的至少一个动作单元,各提取单元与所述封装规则相匹配,每个动作单元对应一组存储动作;
    执行所述目标动作单元对应的存储动作,以对所述目标信息的字节流数据进行存储。
  10. 如权利要求9所述的方法,其特征在于,所述客户端包括:可编程封装模块以及封装指令集;
    所述封装规则是所述可编程封装模块加载所述配置文件,根据所述第一配置信息生成至少一个封装单元并将各封装单元进行排序后得到的,所述封装规则对所述目标信息的字节流进行封装过程中涉及的操作通过所述封装指令集进行抽象。
  11. 如权利要求9所述的方法,其特征在于,所述服务端中设置有可编程动作模块以及可编程服务模块中的至少一种;
    对所述消息报文进行解析之前,所述方法还包括:
    通过所述服务端中的可编程动作模块,加载所述配置文件,根据所述第三配置信息从预设的动作指令集中选取各目标指令,将所述各目标指令所对应的存储动作进行组合,并根据各组存储动作生成各动作单元;
    从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,包括:
    通过所述服务端中的可编程服务模块,加载所述配置文件,根据所述配置文件中的第四配置信息,将存储在所述指定提取单元对应提取寄存器中的动作信息作为匹配对象并确定匹配值,根据所述匹配值对所述目标动作单元进行匹配。
  12. 如权利要求11所述的方法,其特征在于,所述服务端中还设置有:可编程提取模块;
    所述方法还包括:
    根据所述配置文件,更新所述可编程提取模块、所述可编程动作模块以及所述可编程服务模块所对应的配置。
  13. 如权利要求12所述的方法,其特征在于,所述可编程提取模块的配置包括:提取位置偏移量、提取字符长度、提取终止符以及关联的提取寄存器,所述偏移量包括固定值和可变值,所述可变值基于所述终止符进行确定,所述字符长度包括固定长度和可变长度,所述可变长度基于所述终止符进行确定。
  14. 如权利要求11所述的方法,其特征在于,所述可编程动作模块包括:基础动作表和动作单元;
    根据各组存储动作生成所述各动作单元,包括:
    通过所述动作单元,从所述基础动作表中选取指定寄存器对应的存储动作并进行关联。
  15. 如权利要求9所述的方法,其特征在于,在对所述消息报文进行解析之前,所述方法还包括:
    所述服务端用于,根据所述配置文件中的第四配置信息生成服务表,并在所述服务表中将各指定提取单元与各动作单元进行关联;
    从指定提取单元中读取动作信息并确定与所述动作信息相匹配的动作单元,作为目标动作单元,包括:
    根据所述指定提取单元中的动作信息检索所述服务表,将在所述服务表中检索到的动作单元作为所述目标动作单元。
  16. 如权利要求9所述的方法,其特征在于,所述方法还包括:
    将所述目标动作单元对应存储动作的执行结果返回所述客户端。
  17. 一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求9~16任一项所述的方法。
  18. 一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求9~16任一项所述的方法。
PCT/CN2023/107329 2023-06-14 2023-07-13 一种数据存储系统、方法、存储介质及电子设备 Ceased WO2024254933A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/555,805 US12177072B1 (en) 2023-06-14 2023-07-13 Data storage system and method, storage medium, and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310705249.1A CN116436936B (zh) 2023-06-14 2023-06-14 一种数据存储系统、方法、存储介质及电子设备
CN202310705249.1 2023-06-14

Publications (1)

Publication Number Publication Date
WO2024254933A1 true WO2024254933A1 (zh) 2024-12-19

Family

ID=87087663

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/107329 Ceased WO2024254933A1 (zh) 2023-06-14 2023-07-13 一种数据存储系统、方法、存储介质及电子设备

Country Status (2)

Country Link
CN (1) CN116436936B (zh)
WO (1) WO2024254933A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12177072B1 (en) 2023-06-14 2024-12-24 Zhejiang Lab Data storage system and method, storage medium, and electronic device
CN116436936B (zh) * 2023-06-14 2023-08-18 之江实验室 一种数据存储系统、方法、存储介质及电子设备
CN117221014B (zh) * 2023-11-08 2024-01-26 之江实验室 一种网络节点操作系统配置数据内生安全防护方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287617A1 (en) * 2008-05-15 2009-11-19 Sap Ag Client-side rule engine for executing business rules in rich internet applications
CN111311319A (zh) * 2020-02-13 2020-06-19 安超云软件有限公司 产品活动信息的配置方法以及系统
CN112714148A (zh) * 2020-11-10 2021-04-27 海尔数字科技(青岛)有限公司 一种界面配置方法、装置、设备及介质
CN114115967A (zh) * 2021-11-17 2022-03-01 南京苏宁电子信息技术有限公司 业务数据处理方法、装置、计算机设备和存储介质
US11513772B1 (en) * 2021-08-22 2022-11-29 Dataplate Ltd. System and method of providing an interactive development platform in a distributed computing environment
CN116436936A (zh) * 2023-06-14 2023-07-14 之江实验室 一种数据存储系统、方法、存储介质及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100608759B1 (ko) * 2004-03-19 2006-08-08 엘지전자 주식회사 휴대단말기의 mms 메시지와 ems 메시지 호환장치 및 방법
CN112363714A (zh) * 2020-11-03 2021-02-12 中国建设银行股份有限公司 一种服务组合模型的开发方法、装置、存储介质及设备
KR20220060708A (ko) * 2020-11-05 2022-05-12 인충교 의료용 전자문서 관리 시스템
CN113722394A (zh) * 2021-08-17 2021-11-30 北京百悟科技有限公司 数据同步方法、设备及存储介质
CN114222256B (zh) * 2021-11-16 2023-10-20 中国建设银行股份有限公司 消息发送方法、装置及电子设备
CN114911482A (zh) * 2022-03-24 2022-08-16 北京邮电大学深圳研究院 一种工业场景中的低代码应用生成系统及方法
CN115951947A (zh) * 2022-12-23 2023-04-11 企知道网络技术有限公司 一种信息交互方法、装置及存储介质
CN116107999B (zh) * 2023-04-06 2023-06-27 之江实验室 一种数据库服务和存储系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287617A1 (en) * 2008-05-15 2009-11-19 Sap Ag Client-side rule engine for executing business rules in rich internet applications
CN111311319A (zh) * 2020-02-13 2020-06-19 安超云软件有限公司 产品活动信息的配置方法以及系统
CN112714148A (zh) * 2020-11-10 2021-04-27 海尔数字科技(青岛)有限公司 一种界面配置方法、装置、设备及介质
US11513772B1 (en) * 2021-08-22 2022-11-29 Dataplate Ltd. System and method of providing an interactive development platform in a distributed computing environment
CN114115967A (zh) * 2021-11-17 2022-03-01 南京苏宁电子信息技术有限公司 业务数据处理方法、装置、计算机设备和存储介质
CN116436936A (zh) * 2023-06-14 2023-07-14 之江实验室 一种数据存储系统、方法、存储介质及电子设备

Also Published As

Publication number Publication date
CN116436936A (zh) 2023-07-14
CN116436936B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
CN116436936B (zh) 一种数据存储系统、方法、存储介质及电子设备
EP2668577B1 (en) Unrolling quantifications to control in-degree and/or out degree of automaton
CN111343181B (zh) 报文的处理方法,系统以及数据池和计算机可读存储介质
CN110912825A (zh) 一种报文的转发方法、装置、设备及系统
CN108804100B (zh) 创建界面元素的方法、装置、存储介质及移动终端
WO2023124425A1 (zh) 数据处理的方法、装置、电子设备及存储介质
CN108282518A (zh) 一种客户端页面生成方法和装置
CN108664546B (zh) Xml数据结构转换方法和装置
WO2024207636A1 (zh) 一种数据处理系统及方法
WO2025097597A1 (zh) 一种网络节点操作系统配置数据内生安全防护方法
CN106648569A (zh) 目标序列化实现方法和装置
CN114629972A (zh) 一种数据报文的处理方法及装置
CN113296979A (zh) 一种虚幻引擎与外部程序的数据通信方法
CN116150527A (zh) 组件样式隔离方法、装置、设备、存储介质及产品
CN112256455A (zh) 一种优化交易远程过程调用的方法、介质和电子设备
CN113676437B (zh) 参数获取方法、参数设置方法以及装置
WO2021233042A1 (zh) 加载页面数据的方法、装置及系统
CN119806501A (zh) 基于flowable的前后端代码自动生成方法、系统、介质及设备
US12177072B1 (en) Data storage system and method, storage medium, and electronic device
CN112540958A (zh) 文件处理方法、装置、设备及计算机存储介质
CN110008035B (zh) 数据接口扩展方法、数据处理方法、装置及设备
WO2025025436A1 (zh) 基于区块链系统的数据管理方法和区块链节点
WO2024221415A1 (zh) 一种页面渲染方法、装置、设备及存储介质
CN115328532A (zh) 一种Kubernetes配置文件合并方法和装置
CN116302358A (zh) 区块链交易执行方法和区块链节点

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23941162

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE