Data processing method and related apparatuses

A flexible data storage schema with a universal API addresses the challenges of managing and updating data models in cloud-based environments by enabling fast and flexible data model changes, reducing dependencies on cloud core teams, and simplifying the development process.

WO2025086592A1PCT designated stage expired Publication Date: 2025-05-01HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD

Patent Information

Application Number
PCT/CN2024/091034
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-26
Filing Date
2024-04-30
Publication Date
2025-05-01

AI Technical Summary

Technical Problem

Existing data processing methods and systems face challenges in efficiently managing and updating data models, particularly in cloud-based environments, due to complexities in data storage schema changes, dependencies on cloud core teams, and the need for frequent updates to APIs and database schemas.

Method used

A flexible data storage schema using a universal API that supports any kind of data model, allowing for the storage of data objects with basic attributes in a first node and additional attributes in second nodes, without requiring changes to the data storage schema or database schema, thereby enabling fast and flexible data model changes.

Benefits of technology

This approach reduces the time and effort required for implementing data model changes, increases business efficiency by allowing real-time data model updates, and simplifies the process for developers by eliminating the need for boilerplate code and reducing dependencies on cloud core teams.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024091034_01052025_PF_FP_ABST
    Figure CN2024091034_01052025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure provides a data processing method and related apparatus, the method includes: obtaining object information of a data object, where the object information comprises a basic attribute of the data object; and storing the object information in a data structure, where the data structure includes a first node, and the basic attribute of the data object is stored in the first node, where the first node is connectable to at least one second node, where each of the at least one second node is used for storing an additional attribute of the data object.
Need to check novelty before this filing date? Find Prior Art

Description

DATA PROCESSING METHOD AND RELATED APPARATUSES

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to International Application No. PCT / RU2023 / 000328, filed on October 26, 2023. The disclosure of the above patent application is incorporated herein by reference in its entirety.TECHNICAL FIELD

[0003] The present disclosure relates to the field of database technologies, and in particular, to a data processing method and related apparatuses.BACKGROUND

[0004] Many leading industries, such as an automotive, A&D (Aerospace and Defense) , E&S (Electronic and Semiconductors) , E&U (Energy and Utilities) etc. use special industrial software applications to automate internal business processes and improve efficiency of product development and increase product quality. The common trend in industrial software automation is migration to clouds and usage of cloud-based solutions and platforms.

[0005] This background information is provided to reveal information believed by the applicant to be of possible relevance to the present disclosure. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present disclosure.SUMMARY

[0006] In a first aspect, an embodiment of the present disclosure provides a data processing method, where the method includes:

[0007] obtaining object information of a data object, wherein the object information includes a basic attribute of the data object; and

[0008] storing the object information in a data structure, wherein the data structure includes a first node, and the  basic attribute of the data object is stored in the first node, wherein the first node is connectable to at least one second node, wherein each of the at least one second node is used for storing an additional attribute of the data object.

[0009] The above data structure as an implementation of the data storage schema can support any kind of source system data models, it’s like a universal container which can be used for storage and update any data models. Data objects may have their own basic attributes (e.g., names) which can be stored in their respective first nodes, they may have different number of additional attributes which can be stored in different numbers of second nodes, they may also have different relations for describing the relationship between the second nodes and the first node, but for all these data objects, the data storage schema is the same, that is, no matter what data object is to be added in the data model, it can be stored with the data structure which includes a first node for storing generic attribute (the basic attribute of the data object) and one or more second nodes for storing other attributes if there’s any, thereby improving the storing efficiency of data object. In comparison with the existing solutions, for example, when a new data object which has a new class is to be added, there is no need to change the data storage schema according to the proposed solution, but the new class will be taken as new attribute (s) for the data object and simply creation of new second node (s) will be enough. In this way, time for implementing data model changes will be decreased, and business efficiency will be increased because of flexible and fast data model changes implementation.

[0010] In a possible implementation of the first aspect, where the object information further includes at least one additional attribute of the data object;

[0011] where the data structure further includes at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one.

[0012] Based on this, the addition of an attribute would be implemented by an addition of a second node, it’s no longer necessary to update the attribute listed in the data storage schema, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation. Besides, the data structure for implementing the data storage schema is flexible, the data storage schema has simply two types of nodes (first node and second node) to support the storage of data object of any data models. The data structure as an implementation of a data storage schema can be updated without changes in the data storage schema of a database, the updating of the data structure excludes the database from the update chain, and the data storage schema is only created once when the data structure is created and doesn’ t change anymore, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible  and fast data model changes implementation; and the data storage schema can support any kind of data models.

[0013] In a possible implementation of the first aspect, where for each of the at least one attribute, the additional attribute includes a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute.

[0014] Since each additional attribute has its own second node, operations such as creation, update, deletion and edition of the attribute can be efficiently realized by operating the second node corresponding to the additional attribute.

[0015] In a possible implementation of the first aspect, where for each of the at least one second node, the second node is further associated with at least one of following items:

[0016] a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time.

[0017] Based on the above items, a user can quickly and comprehensively know information related to the second node based on the data structure.

[0018] In a possible implementation of the first aspect, where for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation.

[0019] Based on the above items related to the relation, the user can quickly and comprehensively know nodes related to the relation.

[0020] In a possible implementation of the first aspect, where the relation is further characterized by at least one of following items:

[0021] a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation.

[0022] Based on the above identifiers related to the relation, the user can quickly and comprehensively know information related to the relation.

[0023] In a possible implementation of the first aspect, where storing the object information based on a data  structure includes:

[0024] invoking a universal application programming interface (API) to:

[0025] create the first node to store the basic attribute of the data object;

[0026] create the at least one second node to store the at least one additional attribute one-by-one;

[0027] for each of the at least one second node, create a relation between the first node and the second node.

[0028] The universal API supports the above data storage schema, and is also introduced only once and doesn’ t need to be updated in case of any data model changes, thereby simplifying the method to work with database, decreasing complexity of the software codes for developers, decreasing “boilerplate code” –it’s not needed to create CRUD + compare for every data model object; code simplification and effort reducing for code migration are realized because of the limited number of methods used.

[0029] In a possible implementation of the first aspect, where the method further includes:

[0030] in response to a second node deletion request, invoking a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request.

[0031] In a possible implementation of the first aspect, where the method further includes:

[0032] in response to a first relation deletion request, invoking a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node.

[0033] In a possible implementation of the first aspect, where the method further includes:

[0034] in response to a second relation deletion request, invoking a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request.

[0035] In a possible implementation of the first aspect, where the method further includes:

[0036] in response to a relation edition request, invoking a universal API to update a relation indicated in the relation edition request.

[0037] The above operations such as creation, deletion and edition of the relation can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0038] In a possible implementation of the first aspect, where the method further includes:

[0039] in response to a second node search request, invoking a universal API to return all of the at least one  second node connected to the first node, where the second node search request is indicative of a node identifier of the first node.

[0040] In a possible implementation of the first aspect, where the method further includes:

[0041] in response to a first relation search request, invoking a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first relation search request.

[0042] In a possible implementation of the first aspect, where the method further includes:

[0043] in response to a second relation search request, invoking a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request.

[0044] In a possible implementation of the first aspect, where the method further includes:

[0045] in response to an attribute search request, invoking a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request.

[0046] In a possible implementation of the first aspect, where the method further includes:

[0047] in response to a node search request, invoking a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request.

[0048] The above operations can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0049] In a possible implementation of the first aspect, where a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node.

[0050] In a possible implementation of the first aspect, where the first node is associated with a node identifier for identifying the first node.

[0051] In a possible implementation of the first aspect, where the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object.

[0052] In a possible implementation of the first aspect, where the first node is further associated with at least one of following items:

[0053] a creator of the first node, a creation date for the first node, an updating status of the first node, a source  address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time.

[0054] Based on the above items, object information of the data object can be stored in the data structure and check up for the object information can be realized quickly.

[0055] In a possible implementation of the first aspect, where the method further includes:

[0056] in response to a type addition request, invoking a universal API to add a to-be-added type indicated in the type addition request as an available type for the data structure.

[0057] By the above method, it’s not necessary to create a new node type in the data storage schema, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0058] In a possible implementation of the first aspect, where the method further includes:

[0059] in response to an additional attribute addition request, invoking a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request.

[0060] In a possible implementation of the first aspect, where the method further includes:

[0061] in response to a first node deletion request, invoking a universal API to delete the first node, where the first node deletion request is indicative of a node identifier of the first node.

[0062] In a possible implementation of the first aspect, where the method further includes:

[0063] in response to a node edition request, invoking a universal API to update, with an attribute value indicated in the node edition request, a node indicated by a node identifier in the node edition request.

[0064] The above operations such as creation, deletion and edition of the first node can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0065] In a second aspect, an embodiment of the present disclosure provides a data processing apparatus, where the apparatus includes:

[0066] an obtaining module, configured to obtain object information of a data object, where the object information includes a basic attribute of the data object; and

[0067] a storing module, configured to store the object information in a data structure, where the data structure  includes a first node, and the basic attribute of the data object is stored in the first node, where the first node is connectable to at least one second node, where each of the at least one second node is used for storing an additional attribute of the data object.

[0068] In a possible implementation of the second aspect, the object information further includes at least one additional attribute of the data object;

[0069] where the data structure further includes at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one.

[0070] In a possible implementation of the second aspect, for each of the at least one attribute, the additional attribute includes a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute.

[0071] In a possible implementation of the second aspect, for each of the at least one second node, the second node is further associated with at least one of following items:

[0072] a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time.

[0073] In a possible implementation of the second aspect, for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation.

[0074] In a possible implementation of the second aspect, the relation is further characterized by at least one of following items:

[0075] a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation.

[0076] In a possible implementation of the second aspect, the apparatus further includes:

[0077] an invoking module, configured to invoke a universal application programming interface (API) to:

[0078] create the first node to store the basic attribute of the data object;

[0079] create the at least one second node to store the at least one attribute one-by-one;

[0080] for each of the at least one second node, create a relation between the first node and the second node.

[0081] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0082] in response to a second node deletion request, invoke a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request.

[0083] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0084] in response to a first relation deletion request, invoke a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node.

[0085] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0086] in response to a second relation deletion request, invoke a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request.

[0087] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0088] in response to a relation edition request, invoke a universal API to update a relation indicated in the relation edition request.

[0089] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0090] in response to a second node search request, invoke a universal API to return all of the at least one second node connected to the first node, where the second node search request is indicative of a node identifier of the first node.

[0091] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0092] in response to a first relation search request, invoke a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first relation search request.

[0093] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0094] in response to a second relation search request, invoke a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request.

[0095] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0096] in response to an attribute search request, invoke a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request.

[0097] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0098] in response to a node search request, invoke a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request.

[0099] In a possible implementation of the second aspect, a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node.

[0100] In a possible implementation of the second aspect, the first node is associated with a node identifier for identifying the first node.

[0101] In a possible implementation of the second aspect, the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object.

[0102] In a possible implementation of the second aspect, the first node is further associated with at least one of following items:

[0103] a creator of the first node, a creation date for the first node, an updating status of the first node, a source address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time.

[0104] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0105] in response to a type addition request, invoke a universal API to add a to-be-added type indicated in the type addition request as an available type for the data structure.

[0106] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0107] in response to an additional attribute addition request, invoke a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request.

[0108] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0109] in response to a first node deletion request, invoke a universal API to delete the first node, where the first node deletion request is indicative of a node identifier of the first node.

[0110] In a possible implementation of the second aspect, the apparatus further includes an invoking module, configured to:

[0111] in response to a node edition request, invoke a universal API to update, with an attribute value indicated in the node edition request, a node indicated by a node identifier in the node edition request.

[0112] In a third aspect, an embodiment of the present disclosure provides a computing device cluster, including a processing circuitry for performing the data processing method according to the first aspect or any possible implementation of the first aspect.

[0113] In a fourth aspect, an embodiment of the present disclosure provides a computer program product including program code for performing the data processing method according to the first aspect or any possible implementation of the first aspect.

[0114] In a fifth aspect, an embodiment of the present disclosure provides an electronic device including processing circuitry for executing the data processing method according to the first aspect or any possible implementation of the first aspect.

[0115] In a sixth aspect, an embodiment of the present disclosure provides a chip, including an input / output (I / O) interface and a processor, where the processor is configured to call and run a computer program stored in a memory, to enable a device installing with the chip to perform the method according to the first aspect or any possible implementation of the first aspect.

[0116] In a seventh aspect, an embodiment of the present disclosure provides a computer-readable medium storing computer execution instructions which, when executed by a processor, causes the processor to execute the data processing method according to the first aspect or any possible implementation of the first aspect.

[0117] In an eighth aspect, an embodiment of the present disclosure provides a computer program including  computer execution instructions which, when executed by a processor, causes the processor to execute the data processing method according to the first aspect or any possible implementation of the first aspect.BRIEF DESCRIPTION OF DRAWINGS

[0118] FIG. 1 is a schematic diagram of a typical product lifecycle automation process.

[0119] FIG. 2A and FIG. 2B are schematic diagrams of different data model definition examples.

[0120] FIG. 3 is a schematic diagram of a data model content.

[0121] FIG. 4 is a schematic diagram of an exemplary architecture of a standalone industrial software application.

[0122] FIG. 5 is a schematic diagram of an exemplary architecture of an industrial software application development based on the cloud platform.

[0123] FIG. 6 is a schematic diagram of an exemplary architecture of an industrial software applications development based on the cloud platform.

[0124] FIG. 7 is a schematic flowchart of a change chain of a data model for a standalone application according to one or more embodiments of the present disclosure.

[0125] FIG. 8 is a schematic flowchart of a change chain of a data model for a cloud-based application according to one or more embodiments of the present disclosure.

[0126] FIG. 9 is a schematic diagram of an exemplary data storage schema according to one or more embodiments of the present disclosure.

[0127] FIG. 10 is a schematic diagram of an exemplary data model according to one or more embodiments of the present disclosure.

[0128] FIG. 11 exemplarily shows attributes of a base node and an attribute node according to one or more embodiments of the present disclosure.

[0129] FIGS. 12A-12B show examples of a base node instance and an attribute node instance in a database respectively according to one or more embodiments of the present disclosure.

[0130] FIGS. 13A-13D show different services for a data model respectively according to one or more embodiments of the present disclosure.

[0131] FIG. 14 is a schematic flowchart of a data processing method according to one or more embodiments of the present disclosure.

[0132] FIG. 15 shows a schematic structural diagram of a data processing apparatus according to one or more  embodiments of the present disclosure.DESCRIPTION OF EMBODIMENTS

[0133] To describe the technical solutions in embodiments of the present disclosure or in the prior art more clearly, the following briefly introduces the accompanying drawings needed for describing the embodiments or the prior art.

[0134] In the following description, reference is made to the accompanying figures, which form part of the present disclosure, and which show, by way of illustration, specific aspects of embodiments of the present disclosure or specific aspects in which embodiments of the present disclosure may be used. It is understood that embodiments of the present disclosure may be used in other aspects and include structural or logical changes not depicted in the figures. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

[0135] Before describing the detail contents of the present disclosure, the following terms are explained.

[0136] API -An API (Application Programming Interface, application programming interface) is a set of some predefined functions of a software application. A software system encapsulates its own service capabilities into the API and provides them for an application program to invoke. Developers can call APIs directly without thinking about the underlying source code or understanding the internal workings.

[0137] Boilerplate code -sections of code that are repeated in multiple places with little to no variation.

[0138] Cloud provider –a company or an organization which provides different types of services for customers and (or) for 3rd party application developers.

[0139] Cloud Core Application –software application (s) which is provided by Cloud provider to 3rd party application developers as a foundation for development activities.

[0140] CRUD -CRUD is an acronym for CREATE, READ, UPDATE, and DELETE. They are frequently used in database operations, that is, adding, deleting, modifying, and querying operations.

[0141] Customer –a company or an organization which uses software applications to automate their own business tasks.

[0142] Data model -a set of data objects, attributes and relations, which describe in IT systems information business objects (such as documents, drawings and models) used by customers in everyday business. A data model refers to the graphical modeling performed by software designers on applications, including data entities, relationship  entities, and interface models.

[0143] Data modeler –aspecial software tool which allows to describe data models. It can be described in text, visual or special format.

[0144] Data storage scheme / schema -a set of predefined tables with columns and rows in RDB (Relationship Database) . A set of predefined node and edge types with attributes in Graph DB.

[0145] Edge -a fundamental unit of Graph DB which is used to store relations between data entities.

[0146] Node –afundamental unit of Graph DB which is used to store data entity information.

[0147] IDME (Industrial Digital Model Engine) –an exemplary industrial software development and operation platform developed based on practices in digital transformation and data management. It builds a public foundation of "model-based + data-driven" . It provides root technical services for collaboratively building a new-generation full-stack independent and controllable industrial software system, helps quickly building and operating cloud-based SaaS chemical industrial software, aggregates enterprise-level data in all scenarios, builds enterprise-level data graphs, and provides tens of thousands of interconnected data indexing, tracing, and interaction services.

[0148] Industrial software –a set of software tools which automate different business tasks in the engineering product lifecycle.

[0149] PLM -Product Lifecycle Management (PLM) refers to the whole life cycle from the beginning of the demand for products to the end of the product. PLM is an advanced idea of enterprise informatization, which increases income and reduces cost by the most effective means.

[0150] The industrial product lifecycle automation process with an industrial software has some mandatory steps. FIG. 1 is a schematic diagram of a typical product lifecycle automation process. As shown in FIG. 1, the steps include: investigating customer business processes; defining a set of software for automation, defining a data model; performing users training and adoption, and configuring and customizing the software, the present disclosure mainly focuses on the stage of definition of the data model.

[0151] As mentioned above, the data model is a set of data objects, attributes and relations which describe information business objects (such as documents, drawings and models) used by customers in everyday business. Depending on the complexity of a business, the number of data model entities (or referred as data model instances which are representation of data objects in a data model) varies a lot, but traditionally includes hundreds of data entities, relation entities and attribute entities, which are respectively representations of data objects, attributes and relations in the data model. FIG. 2A and FIG. 2B illustrate two different data model definition examples.

[0152] Data models for individual customers and businesses may not be the same. As shown in FIG. 3, an example of data model content is illustrated, it includes 3 big blocks:

[0153] · basic data block, common for all customers (~60%of data objects) ,

[0154] · industry specific data block (~20%) ,

[0155] · customer specific data block (~20%) .

[0156] Different customers (e.g., companies) use different data models, and basic data blocks in the different data models are same, and when the customers belong to the same industry, industry specific data blocks in the data models will also be the same. Customer specific data blocks in each customer’s data model are different. For example, data models of two companies belonging to the automotive industry have about 80%of the same content, and 20%of the different content, that is, basic data blocks and industry specific data blocks in the two data models are the same.

[0157] It’s required to create a unique data model for each customer for customer satisfaction and automation acceptance.

[0158] Industrial specific data block is traditionally frozen after initial definition but still needs to be regularly updated because of business and IT changes. Business introduces new object types and relations during the product lifecycle because it automates new processes or increase the maturity of existing processes. IT introduces new software tools for business, updates or replaces existing tools. All these changes require regular updates of data models in authoring tools and especially in integration applications, which use data authoring tools for data extraction and further processing.

[0159] The need for regular data model updates plus the usage of cloud based industrial software causes the following business and technical challenges:

[0160] 1) It is a common customer requirement to have the possibility to perform regular changes in a data model by software administrators (without IT department inclusion and business stops) ;

[0161] 2) Cloud-based software requires maximum flexibility in data model changes, because it integrates different applications\companies\customers on the same cloud platform;

[0162] 3) Cloud-based applications often don’ t have access to a database and store data via Cloud Provider-owned applications, so that application developers need to find a way for database schema / scheme updates;

[0163] 4) It is especially complex managing a unified data model for integration software, which combines data from different Industrial Software source systems. It requires frequent data model updates and regular changes  because source systems'data is highly heterogeneous.

[0164] These challenges lead to the necessity of changes in the data model definition way of working. The following principles need to be considered:

[0165] a) A data model may not be frozen after initial definition; not frozen a data model means that updates to any one or more of the name of the data object in the data model, the attributes and relations of the data object may be possible;

[0166] b) A data model may be easily configured and changed by a software administrator without special IT knowledge;

[0167] c) A data model may be updated without database shutdown and business stops;

[0168] d) A data model for cloud solutions may be updated with minimal involvement of the Cloud Platform team;

[0169] e) A data storage scheme on the cloud side may be maximally flexible to support any kind of data models and regular data model changes.

[0170] Technically, a data model is represented in a database by a data storage schema. Depending on the database type, the data storage scheme may normally include:

[0171] · a set of predefined tables with columns and rows in RDB;

[0172] · a set of predefined nodes and edges types with attributes in Graph DB.

[0173] Traditional RDB has pre-defined schema and common case is necessity of shut-down business logic and database software in case of changes in data model and appropriate changes in database data storage schema. That is, when the data model or the data storage schema corresponding to the data model is changed, the data storage schema needs to be re-read, and the business logic and the database software need to be restarted so as to make the update of the data storage schema work.

[0174] Graph DBs are more flexible for data storage schema changes. There are 2 types of graph DBs: with flexible schema (like Neo4J) and with strict pre-defined schema (like Nebula) . The data storage schema in such databases can be changed by DB administrator without the database being shut down.

[0175] A traditional architecture of a standalone industrial software application is shown in FIG. 4, as shown in FIG. 4, in which a data model change cycle of the standalone Industrial Software application is illustrated.

[0176] The data model change cycle in this architecture looks like:

[0177] 1) The data model change is initiated in a data modeler application.

[0178] 2) Changes are propagated to a database. Data storage schema in the database is updated based on changes in the data model.

[0179] 3) Back-end code also changes to represent updates in the data model and the data storage schema –new methods for creating, reading, updating and deleting a data object are introduced etc.

[0180] 4) And finally, data model changes are implemented in front-end code.

[0181] For example, in the above standalone application, if a data object needs to be added to the data model, for example, this newly added data object is provided with a new class comparing with existing stored data object (s) , such addition is simply on the logic level, in order to realize such addition of data object, the data storage schema corresponding to the data model may be changed accordingly, then the back-end code is updated to represent the newly added data object; finally, the front-end displays this newly added data object. For example, there is a data model for representing phone contacts, data objects included in the data model have their own personnel information including a name, a telephone number, a marital status and the number of children. According to the GDB data storage schema, each data object may be stored as a node which is associated with items in the personnel information (such as a data structure having four members for recording a name, a telephone number, a marital status and the number of children respectively) , all the data objects in the data model are stored using the same node type, now if a new data object needs to be added into the data model, this data object has personnel information and company information (acompany address and a company name) , so it is no longer feasible to use the existing node type which may be a data structure having four members, instead, a new node type (e.g., a new data structure having six members) needs to be created for storing the personnel information and the company information of this data object, so the data storage schema needs to be changed to create a new node type for the newly added data object. The data model and the data storage schema corresponding to the data model are changed.

[0182] Cloud-based industrial software applications have a more complex architecture. They can be built based on cloud platform tool (s) which manage a database and a data model on the cloud side. FIG. 5 shows an example of an industrial software application which is built based on a cloud platform.

[0183] In the case shown in FIG. 5, a development team of Application 1 uses cloud services provided by a cloud core application and does not have direct access to database management. Application 1 collaborates with the cloud core application via an API. The cloud core application has more than one possible graph database underneath. And the cloud core application is managed by a separate cloud core team. So, the development team of Application 1 needs to request the cloud core team for data storage schema changes in case of data model changes.

[0184] The case above can be extended to numerous applications created on the same cloud platform as shown in FIG. 6.

[0185] In the case shown in FIG. 6:

[0186] a) Different applications (e.g., Application 1, Application 2 and Application 3) from different vendors and different customers (e.g. Customer 1, Customer 2 and Customer 4) use the same cloud core application and database from a cloud provider;

[0187] b) The cloud core application is supported and developed by a cloud core team;

[0188] c) The applications have their own data modelers, front-ends and back-ends;

[0189] d) The applications are developed by different development teams, often partners -3rd party teams;

[0190] e) Developed applications are used by different customers with different data models;

[0191] f) After applications are implemented on the customer side, data models of the applications are managed by customer application administrators.

[0192] In this case, development teams and application administrators of the applications need to contact the cloud core team for the implementation of changes in the data models. The cloud core team needs to update a data storage schema in the database and an appropriate API.

[0193] As shown in FIG. 6, data model 1, data model 2, data model 3 and data model 4 may need to be changed, by taking the update of data model 1 as an example, development teams or application administrators of Applications corresponding to data mode 1 contact the cloud core team to update the data model and data storage schema corresponding to the data model (shown as the change request in FIG. 6) , then the cloud core team provides a new API for the updated data model.

[0194] Disadvantages of the above technical solutions (described in FIG. 5 and FIG. 6) affect both cloud provider core team (which is also referred to as cloud core team) , the development teams of the applications and application administrators.

[0195] 1) The main disadvantages are the complexity and the long time for implementation of data model changes. Because application administrators and developers don’ t have direct access to a cloud database, they have to contact a cloud core team in case of changes. It requires time and it can be long in the case of geographically separated teams.

[0196] 2) The cloud core team has to introduce a mechanism to collect change requests and assign an appropriate person (or team) to implement data model change requests.

[0197] 3) The cloud core team needs to store different data models using a unified data scheme, which makes this unified scheme complex, with the possibility of duplicated entities of data objects, relations and attributes.

[0198] 4) The cloud core team needs to regularly update cloud core application API to keep it synchronized with the updated data storage schema.

[0199] 5) Application development team loses flexibility in changes and becomes related to the cloud core team, which is non-efficient in the SW (software) development cycle.

[0200] All the disadvantages mentioned above become more critical in the case of cloud-based data integration application development. This class of application connects data objects from different source systems with their own data models. So, integration of cloud applications should be open for new source system connections and should be able to support change of the unified integration data model on the fly by application admin.

[0201] For the standalone application architecture shown in FIG. 4, the same disadvantage is applicable: for data storage schema changes, additional time and IT resources are needed.

[0202] In view of the above technical problem, the present disclosure proposes a data storage schema, which is applicable for:

[0203] 1) Standalone data integration application (which is also referred to as standalone industrial software application) which uses a graph database for data storage;

[0204] 2) Cloud-based software application which uses a cloud-based graph database for data storage;

[0205] 3) Other industrial software applications which use a graph database for data storage and need a regular on-the-fly data model update.

[0206] As described below, the present disclosure introduces a flexible data storage schema which supports any kind of data model; a universal API for exchanging with Cloud Core Application (DB) , so as to allow to exclude database level from the data model change chain for the standalone application shown in FIG. 4, and exclude Cloud Core Platform level from the data model change chain for the cloud-based software application shown in FIG. 5. FIG. 7 is a schematic flowchart of a change chain of a data model for a standalone application according to one or more embodiments of the present disclosure, FIG. 8 is a schematic flowchart of a change chain of a data model for a cloud-based application according to one or more embodiments of the present disclosure. In the embodiment shown in FIG. 8, the application admins are allowed to update a data model without changes in GDB data storage schema. In fact, it excluded databases from the update chain. The database universal scheme should be created once in Cloud Core Application and doesn’ t change anymore. In this way, the developer of the cloud-based application (at the  Application side) is independent from the developer of the cloud core foundation (which is also referred to as cloud core application above) , thus decreasing IT effort for supporting DB schema update: minus one task for a DB support team; and decreasing effort for the cloud provider: not needed to support data model changes and updates.

[0207] The present disclosure can be applicable to any kind of data stored in Graph databases, mostly for heterogeneous graphs with complex logic besides (like engineering graphs) . The present disclosure can be used as a universal method of representing heterogeneous graph information using homogeneous graphs. The present disclosure allows users to reduce the complexity of graphs and represent complex graphs in “binary view” based on just 2 node types. It can be useful for software development companies which work with complex graphs. It also can be used by companies which try to manage information in graph databases instead of traditional RDB databases and try to use the advantages of homogenous graph processing.

[0208] The principle of the data storage schema will be explained with reference to FIG. 9, the data storage schema has simply 2 types of nodes for any kind of data model entities storage, which are base node and attribute node. A base node and the attribute node can be connected by a relation, for example, the relation is _HAS_ATTRIBUTE.

[0209] The data storage uses an “atomic model” , where a “BaseNode” is an “atomic nucleus” and all “AttributeNodes” are “Electrons” , it should be noted that one attribute node shown in FIG. 9 is just for illustration, there can be more than one attribute node, which is not limited in the embodiments of the present application. Any attributes except generic attribute on the atomic nucleus are based in own node and connected by relation. This gives absolute freeness in creating unique types of node and attributes and allows us to realize a data model whatever a customer wants. As shown in FIG. 10, in an example of a data model for storing a data object implemented by the above storage schema, the data model includes one base node and nine attribute nodes, and the one base node and each of the nine attribute nodes are connected by a relation (_HAS_ATTRIBUTE) .

[0210] It should be noted that expressions “descripti…” and “paramet…” in FIG. 10 indicate “description” and “parameter” respectively.

[0211] Just 2 types of nodes are used to store all types of data object information instead of special node types and edges in the traditional data model approach:

[0212] 1) Base node describes all types of data model entities (instances) and contains a set of universal attributes which are applicable to all types of data model objects;

[0213] 2) Attribute node describes industry and customer specific attributes. It contains a limited set of  properties which applicable to all types of attributes. The most important properties are: Name (attribute name) and Value (attribute value) .

[0214] A list of the universal attributes for a base node can be specified in Table 1. The type of all following attributes can be string.

[0215] Table 1

[0216] Among them, the value of the attribute name "type" depends on the customer's application.

[0217] List of universal attributes for each of attribute nodes for storing corresponding attributes can be specified in the Table 2, the type of all following attributes can be string.

[0218] Table 2

[0219] FIG. 11 exemplarily shows attributes of a base node and an attribute node.

[0220] List of universal attributes for Relation between the base node and each of the attribute nodes can be specified in Table 3, the type of all following attributes can be string.

[0221] Table 3

[0222] Among them, the attribute name “type” of the relation in Table 3 corresponds to the attribute name “type” of the base node related to this relation in Table 1.

[0223] If a new type of data object is added to a data model, this type is defined in a data modeler and written with a universal API in the BaseNode “type” attribute. It’s not necessary to create a new node type in the data storage schema. As shown in FIG. 12A, the new type of data object can be added with extension of list of values in “type” field in Table 1, and there is no need to create a new type of data object in database.

[0224] If a new type of attribute for a data object is added to a data model, this attribute type is defined in the data modeler and represented as a new attribute node which is linked to the base node. It’s not necessary to update the attribute list in data storage schema. As shown in FIG. 12B, the new type of attribute can be added in a user interface, and the new attribute is represented as a new attribute node in database which is linked to a base node, and there is no need to update property list for the base node.

[0225] It should be noted that expressions “descripti…” and “paramet…” in FIG. 12A and FIG. 12B indicate  “description” and “parameter” respectively.

[0226] So, data models of any complexity are described by this universal data storage schema.

[0227] It should be noted that all the entries shown in Tables 1 to 3 are for illustration, not all of them are necessary for representing the related base node, attribute node or relation, such as the createDate, owningUser, modifyDate, suspicious, dataSourceURL, lasModUser, description, eTag, etc.

[0228] In a possible implementation of the present disclosure, the relation can be a relation between two first nodes, and universal attributes of this relation are similar to those of the above relation between a first node (base node) and a second node (attribute node) , which will not be repeated here.

[0229] The data storage schema described above is a generic solution for any data models for graph DB. Application backend may implement several universal services (e.g., service of creation, service of updating and service of comparing, service of deletion) to support all needed operations with the graph database, which are shown in FIG. 13A-13D respectively.

[0230] 1) Service of creation

[0231] The service takes a JSON (Java Script Object Notation) from a request and creates a base node with “basic” attributes. All other attributes created as separate nodes (attribute nodes) and linked with the base node by the relation “_HAS_ATTRIBUTE” . The attribute nodes cannot exists without the base node. Specifically, when creating the base node, the “basic” attributes are filled in fields of the base node, then all attributes (all other attributes) that left after creation of the base node will have own attribute nodes. An exemplary of code for creating a base node is shown below.

[0232] For extra_param1 / 2 / 3 / 4 in the above code, 4 new attribute nodes will be created respectively, and each of 4 attribute nodes is connected to the base node by a relation.

[0233] 2) Service of updating

[0234] The service receives a request for updating, the request can, for example, carry information about all fields of a base node and attribute node (s) of a data model to be updated. The service of updating calls service of comparing and based on call results performs existing attributes updating or creates new attributes or delete irrelevant attributes.

[0235] 3) Service of comparing

[0236] Because there are simply 2 classes (types) of nodes in the data storage schema, it’s possible to compare base nodes and the sorted list of attribute nodes and give an answer if they are equal based on comparison results. This helps to understand if it’s needed to update entities or if they are equals or it’s needed to create a new copy with relation “SUSPICIOUS” .

[0237] 4) Service of deletion

[0238] The delete request is received for a base node “uid” . An attribute node can’ t exist without the base node so all relations to specified base node and all related attribute nodes should be deleted.

[0239] The data model implemented based on the proposed data storage schema is described above, and a data processing method in which the data model is applied will be described below. Reference may be made to FIG. 14, the data processing method may include the following steps.

[0240] S1201, obtain object information of a data object.

[0241] Specifically, the object information includes a basic attribute of the data object. In a possible  implementation, the data object can be input by a user on a customer side, for example, the data object can be input by the development team of the application corresponding to the data model mentioned above.

[0242] In a possible implementation, the basic attribute of the data object can be, for example a name of the data object. Taking the above data model for representing phone contacts as an example, the data object may be a person who would have his own personnel information as his attributes, for example, the personnel information may include his name as the basic attribute in the object information.

[0243] In a possible implementation, the basic attribute of the data object, which is the name of the data object, is used for indicating a name of a node (i.e., first node mentioned below) for storing the basic attribute of the data object.

[0244] S1202, store the object information in a data structure.

[0245] Specifically, in order to store the object information of the data object in a data structure, it is possible to create a first node in the data model as the data storage schema. That is, the data structure includes a first node, and the basic attribute of the data object is stored in the first node, where the first node is connectable to at least one second node, where each of the at least one second node is used for storing an additional attribute of the data object. As described before, in the example where the data object is a person as a phone contact, the data object may have attributes (such as his telephone number, marital status and the number of children) in addition to the basic attribute of the data object, so these additional / specific attributes would not be stored in the first node, but will be stored in second nodes connected to the first node. More or less information may also be included, which is not limited in the embodiments of the present disclosure. Besides, the number of second nodes may be equal to the number of additional attributes of the data object. That is, all these additional attributes are related to the same data object, and the name which is stored in the first node is a generic / universal attribute shared by all these additional attributes, so the additional attributes are each stored in a second node, but the generic attribute is stored in the first node.

[0246] In a possible implementation, the above data structure may be implemented as the data storage schema proposed with reference to FIG. 9, the first node and the second node may be the base node and the attribute node mentioned above respectively, the name of the data object can be stored in the “name” field of the base node shown in Table 1. The attributes of the data object can include attributes shown in Table 2.

[0247] The above data structure as an implementation of the data storage schema can support any kind of source system data models, it’s like a universal container which can be used for storage and update any data models. Data objects may have their own basic attributes (e.g., names) which can be stored in their respective first nodes, they  may have different number of additional attributes which can be stored in different numbers of second nodes, they may also have different relations for describing the relationship between the second nodes and the first node, but for all these data objects, the data storage schema is the same, that is, no matter what data object is to be added in the data model, it can be stored with the data structure which includes a first node for storing generic attribute (the name of the data object) and one or more second nodes for storing other attributes if there’s any, thereby improving the storing efficiency of data object. In comparison with the existing solutions, for example, when a new data object which has a new class is to be added, there is no need to change the data storage schema according to the proposed solution, but the new class will be taken as new attribute (s) for the data object and simply creation of new second node (s) will be enough. In this way, time for implementing data model changes will be decreased, and business efficiency because of flexible and fast data model changes implementation will be increased.

[0248] In a possible implementation of the present disclosure, a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node. In a possible implementation, the type of the first node is used for indicating a type of the data object which is indicated by the object information, different data objects correspond to different node types, the node types include but are not limited to: “part” , “document” , “function” and “function” , etc. Different types may have different numbers of attributes and relations related to the first node, for example, a “Document” type has 20 additional attributes and 5 relations, and a “Part” type has 14 attributes and 8 relations, and the value of each type can be stored, e.g., in corresponding node type indicator indicated by “type” field of base node shown in Table 1 above. Upon obtaining the object information, it is possible to determine the type of the first object, e.g., based on the number of addition attributes and relations indicated in the object information.

[0249] In a possible implementation of the present disclosure, the first node is associated with a node identifier for identifying the first node. In a possible implementation, the node identifier can be assigned automatically when the first node is created, and can be, for example, indicated by “uid” field of base node shown in Table 1 above.

[0250] In a possible implementation of the present disclosure, the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object. In a possible implementation, the name of the first node can be given automatically when the first node is created, and can be, for example, indicated by “name” field of base node shown in Table 1 above.

[0251] In a possible implementation of the present disclosure, the first node is further associated with at least one of following items: a creator of the first node, a creation date for the first node, an updating status of the first  node, a source address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time. In a possible implementation, when the first node is created, the creator, the creation date, the updating status, the source address, the modification date and the modifier identifier can be filled, for example, automatically in “owningUser” , “createDate” , “suspicious” , “dataSourceURL” “modifyDate” and “lastModUser” fields respectively shown in Table 1 above. In a possible implementation, the modifier can be the same as the creator, or the modifier can be a user authorized or designated by the creator, and the modifier identifier can be a user name of a user logging into the application, which are not limited in the embodiments of the present disclosure.

[0252] In a possible implementation, the first node is further associated with at least one of a tag of the first node and other information related to the first node, which are filled, for example, in “eTag” , “description” fields of the base node shown in Table 1, and the tag of the first node is used for indicating whether the “dataSourceURL” field has changed or is up to date.

[0253] Based on the above items, object information of the data object can be stored in the data structure and check up for the object information can be realized quickly.

[0254] In a possible implementation of the present disclosure, the object information further includes at least one additional attribute of the data object; where the data structure further includes at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one. In a possible implementation, when creating the first node, the first node carries basic / generic / universal attributes, and all other additional attributes each have their own attribute nodes, all other attributes may be the at least one attribute of the data object mentioned above, and each of all other attributes is stored in its own attribute node and connects to the base node via its corresponding relation, where relations corresponding to different attribute nodes connected to the same base node may be different, for example, attribute node 1 and attribute node 2 are connected to a base node, relation 1 corresponding to attribute node 1 and relation 2 corresponding to attribute node 2 have different attributes, such as id and target node shown in Table 3, for example, id in relation 1 is R01, the target node in relation 1 is attribute node 1, and id in relation 2 is R02, a target node in relation 2 is attribute node 2, it should be noted that the values of ids are just exemplary, other values may also be set for realizing the functions defined for these fields, the specific values are not limited in the embodiments of the present disclosure.

[0255] Based on this, the data structure for implementing the data storage schema is flexible, the data storage schema has simply two types of nodes (first node and second node) to support the storage of data object of any data models.

[0256] In a possible implementation of the present disclosure, for each of the at least one attribute, the additional attribute includes a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute. In a possible implementation, the attribute node (second node) storing the additional attribute can have fields for carrying the node identifier for identifying the attribute node, the attribute name for indicating the name of the additional attribute stored in the attribute node and the attribute value for indicating the value of the additional attribute, for example, fields “uid” , “name” and “value” of the attribute node shown in Table 2. For example, in the data model for representing phone contacts, in the case where the data object is a person with personal information (including his name, telephone number, marital status and the number of children) as the additional attributes, the at least one attribute includes a name, a telephone number, a marital status and the number of children of the person, each of the attributes includes a name and value of this attribute; when the attribute is the telephone number of the person, the name and value of this attribute are “telephone number” and “701120” respectively, and are stored in fields “attribute name” and “attribute value” of an attribute node corresponding to this attribute respectively.

[0257] Since each additional attribute has its own second node, operations such as creation, update, deletion and edition of the attribute can be efficiently realized by operating the second node corresponding to the additional attribute.

[0258] In a possible implementation of the present disclosure, for each of the at least one second node, the second node is further associated with at least one of following items: a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time. In a possible implementation, the attribute node (second node) can have fields for carrying the creator, the creation date, the modification date, or the modifier identifier, for example, fields “owningUser” , “createDate” , “modifyDate” and “lastModUser” of the attribute node shown in Table 2. In a possible implementation, the modifier can be the same as the creator, or the modifier can be a user authorized or designated by the creator, and the modifier  identifier can be a user name of a user logging into the application, which are not limited in the embodiments of the present disclosure.

[0259] Based on the above items, a user can quickly and comprehensively know information related to the second node based on the data structure.

[0260] In a possible implementation, the second node is further associated with other information related to the second node, and the information can be filled in “description” field of the attribute node shown in Table 2.

[0261] In a possible implementation of the present disclosure, for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation. The relation identifier, the identifier for indicating the starting node and the identifier for indicating the targeting node can be indicated, for example, in “id” , “startNode” and “targetNode” fields respectively shown in Table 3 above. Continue to refer to the above example where attribute node 1 and attribute node 2 are connected to a base node, attribute node 1 and the base node are connected via relation 1, attribute node 2 and the base node are connected via relation 2, relation 1 can be characterized by a relation identifier for identifying relation 1, such as id “R01” of relation 1, relation 1 can also be characterized by identifiers for indicating a starting node and a targeting node of relation 1, such as IDs of the starting node and the targeting node, where the starting node can be the base node, and the targeting node can be the attribute node 1. Similarly, relation 2 can be characterized by a relation identifier for identifying relation 2, such as id “R02” of relation 2, relation 2 can also be characterized by identifiers for indicating a starting node and a targeting node of relation 2, such as IDs of the starting node and the targeting node, where the starting node can be the base node, and the targeting node can be the attribute node 2.

[0262] Based on the above items related to the relation, the user can quickly and comprehensively know nodes related to the relation.

[0263] In a possible implementation of the present disclosure, the relation is further characterized by at least one of following items: a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation. The creator, the creation date, the modification date and the modifier identifier can be indicated, for example, in “owningUser” , “createDate” , “modifyDate” and “lastModUser” fields respectively shown in Table 3 above.

[0264] Based on the above identifiers related to the relation, the user can quickly and comprehensively know  information related to the relation.

[0265] In a possible implementation of the present disclosure, the step S1202 of storing the object information based on a data structure includes:

[0266] invoking a universal application programming interface (API) to:

[0267] create the first node to store the basic attribute of the data object;

[0268] create the at least one second node to store the at least one additional attribute one-by-one;

[0269] for each of the at least one second node, create a relation between the first node and the second node.

[0270] In a possible implementation, the universal API allows the user to change a data model from an application interface via web-requests. The Universal API which supports all kinds of operations with flexible data storage schema may be divided into three kinds: 1) Node API; 2) Relation API; 3) Get Data API (which is also referred to as search API below) . It should be noted that three kinds of APIs are shown here, but they are illustrative rather than restrictive. In actual applications, we may have simply one API for supporting all operations, which is not limited in the embodiments of the present disclosure.

[0271] The first node and the at least one second node can be created via Node APIs, and the relation between the first node and each of the at least one second node can be created via a Relation API, the relation can be, for example, _HAS_ATTRIBUTE relation shown in FIG. 9. The syntax for creating the first node (base node) and the second node (attribute node) and the relation between them is given below.

[0272] POST  / createBaseNode

[0273] Description: this is for creating a new “base node”

[0274] Returns: output is a single “base node” , possibly with filled basic attributes that were created

[0275] POST  / createAttributeNode

[0276] Description: this is for creating a new “attribute node”

[0277] Returns: output is a single “attribute node” with a filled attribute that was created

[0278] POST  / createRelation

[0279] Description: this is for creating a new relation between the base node and the attribute node

[0280] Returns: output is a single relation with filled attributes that were created between two nodes

[0281] The universal API supports the above data storage schema, and is also introduced only once and doesn’ t need to be updated in case of any data model changes, thereby simplifying the method to work with database, decreasing complexity of the software codes for developers, decreasing “boilerplate code” –it’s not needed to create  CRUD + compare for every data model object; code simplification and effort reducing for code migration are realized because of the limited number of methods used.

[0282] In a possible implementation of the present disclosure, the method further includes: in response to a type addition request, invoking a universal API to add a to-be-added type indicated in the type addition request as an available type for the data structure. In a possible implementation, the to-be-added type can be defined in a data modeler of the data model, and is written with the universal API in the “type” field of the base node shown in Table 1. For example, the to-be-added type indicated in the type addition request is “function” type, then the “function” type is added to the “type” field of the base node.

[0283] By the above method, it’s not necessary to create a new node type in the data storage schema, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0284] In a possible implementation of the present disclosure, the method further includes: in response to an additional attribute addition request, invoking a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request. In a possible implementation, the additional attribute indicated in the additional attribute addition request can be defined in a data modeler of the data model, and represented as a new attribute node which is linked to the base node by invoking the universal API.

[0285] Based on this, the addition of an attribute would be implemented by an addition of a second node, it’s no longer necessary to update the attribute list in the data storage schema, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0286] In a possible implementation of the present disclosure, the method further includes: in response to a first node deletion request, invoking a universal API to delete the first node, where the first node deletion request is indicative of a node identifier of the first node. In a possible implementation, the universal API is the Node API, when creating the base node, attributes related to the base node can only have “basic” attributes, or can both have “basic” attributes and other attributes stored in the attribute nodes one-by-one. In the former case, there is no attribute node connected to the base node, and in response to a first node deletion request, only the base node is deleted by invoking the universal API, in the latter case, there is (are) attribute node (s) connected to the base node, and in response to a first node deletion request, the base node and the attribute node (s) connected to the base node are deleted by invoking the universal API. The syntax for deleting the first node (base node) is as follows:

[0287] POST  / deleteBaseNode

[0288] Description: this is for deleting a single “base node” and all related “attribute nodes” via UID of the “base node”

[0289] Returns: output is the deleted single “base node” and all related “attribute nodes” from a database

[0290] In a possible implementation of the present disclosure, the method further includes: in response to a node edition request, invoking a universal API to update, with an attribute value indicated in the node edition request, a node indicated by a node identifier in the node edition request. In the case where the node edition request is a node edition request for editing the first node (in this case the node edition request would be referred to as a first node edition request) , the method includes: in response to the first node edition request, invoking a universal API to update, with an attribute value indicated in the first node edition request, the first node with a node identifier indicated in the first node edition request. In a possible implementation, the universal API is the Node API, the first node edition request can carry an attribute value of the to-be-updated attribute of the first node, that is, an attribute value of a “basic” attribute (e.g., the name of the data object and / or the type of the data object) , and can carry the node identifier of the first node, such as an id of the first node. The syntax for editing the first node (base node) is as follows:

[0291] POST  / editBaseNode

[0292] Description: this is for updating attributes for a specified “base node”

[0293] Returns: output is updated attributes of exist single “base node”

[0294] The above operations such as creation, deletion and edition of the first node can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0295] In a possible implementation of the present disclosure, creation, edition and deletion of multiple first nodes are similar to those of a single first node mentioned above, which are not repeated here. The syntax for creating, deleting and editing the multiple first nodes (base nodes) is as follows.

[0296] POST  / createBaseNodeBulk

[0297] Description: this is for creating a new list of “base nodes”

[0298] Returns: output is a list of the “base nodes” , possibly with filled attributes that were created.

[0299] POST  / deleteBaseNodeBulk

[0300] Description: this is for deleting a list of “base nodes" by UID and all related “attribute nodes”

[0301] Returns: output is a list of the “base nodes” that were deleted

[0302] POST  / editBaseNodeBulk

[0303] Description: this is for updating attributes for a specified list of “base nodes”

[0304] Returns: output is updated attributes of exist “base nodes”

[0305] In a possible implementation of the present disclosure, the method further includes: in response to a second node deletion request, invoking a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request. In a possible implementation, the node identifier indicated in the second node deletion request can be a node identifier of the second node, and the to-be-deleted second node (target second node) can be determined based on the deletion request. In a possible implementation, the universal API is the Node API, the node identifier indicated in the second node deletion request can include node identifiers of the first node and the second node, firstly, the first node connected to the to-be-deleted second node can be determined based on the node identifier of the first node; and then the to-be-deleted second node can be determined based on the node identifier of the second node. The syntax for deleting the second node (attribute node) is as follows:

[0306] POST  / deleteAttributeNode

[0307] Description: this is for deleting an “attribute node” by UID

[0308] Returns: output is a deleted single “attribute node”

[0309] In a possible implementation of the present disclosure, in the case where the node edition request is a node edition request for deleting the second node (in this case the node edition request would be referred to as a second node edition request) , the method further includes: in response to the second node edition request, invoking a universal API to update, with an additional attribute value indicated in the second node edition request, a second node of the at least one second node with a node identifier indicated in the second node edition request. In a possible implementation, the universal API is the Node API, the second node edition request can carry an attribute value of the additional attribute of the to-be-updated second node, to update “attribute value” field of the second node. The syntax for editing the second node (attribute node) is as follows:

[0310] POST  / editAttributeNode

[0311] Description: this is for updating attributes for a specified “attribute node”

[0312] Returns: output is updated attributes of an exist single “attribute node”

[0313] The above operations such as creation, deletion and edition of the second node can be realized through  the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0314] In a possible implementation of the present disclosure, creation, edition and deletion of multiple second nodes are similar to those of a single second node mentioned above, which are not repeated here. The syntax for creating, deleting and editing the multiple second nodes (attribute nodes) is as follows,

[0315] POST  / createAttributeNodeBulk

[0316] Description: this is for creating a new list of “attribute nodes”

[0317] Returns: output is a list of the “attribute nodes” with filled attributes that were created

[0318] POST  / editAttributeNodeBulk

[0319] Description: this is for updating attributes for a specified list of “attribute nodes”

[0320] Returns: output is updated attributes of exist “attribute nodes”

[0321] POST  / deleteAttributeNodeBulk

[0322] Description: this is for deleting a list of “attribute nodes” by UIDs of the “attribute nodes”

[0323] Returns: output is a list of the “attribute nodes” that were deleted

[0324] In a possible implementation of the present disclosure, the method further includes: in response to a first relation deletion request, invoking a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node. In a possible implementation, the universal API is the Relation API, the relation is a relation between a first node and a second node, the first relation deletion request can carry at least one of an identifier of the relation or a node identifier of the second node related to the relation, when the first relation deletion request carries the identifier of the relation, such as an id of the relation shown in Table 3, the relation to be deleted can be determined; and based on the determined relation and its attribute (such as a value of a “targetNode” field of the relation shown in Table 3) , the second node related to the relation can be determined; then the relation and the second node related to the relation are deleted. When the first relation deletion request carries the node identifier of the second node related to the relation, such as an id of the second node shown in Table 3, the target second node related to the relation can be determined; and based on the determined target second node, a relation whose “targetNode” field has value that is the same as the id of the determined target second node can be determined from relations related to the first node, then the relation and the target second node related to the relation are deleted.

[0325] In a possible implementation of the present disclosure, the method further includes: in response to a second relation deletion request, invoking a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request. In a possible implementation, the universal API is the Relation API, the relation is a relation between two first nodes, and the second relation deletion request can carry an identifier of the relation, such as an id of the relation.

[0326] The syntax for deleting the relation is as follows:

[0327] POST  / deleteRelation

[0328] Description: this is for deleting a single relation between nodes by UID

[0329] Returns: output is the deleted single relation from a database and the related attitude node

[0330] In a possible implementation of the present disclosure, the method further includes: in response to a relation edition request, invoking a universal API to update a relation indicated in the relation edition request. In a possible implementation, the universal API is the Relation API, the relation edition request can carry an id of the relation to update attributes of the relation, such as, “targetNode” , “modifyDate” , “lastModUser” and “description” fields etc. The syntax for editing the relation is as follows:

[0331] POST  / editRelation

[0332] Description: this is for updating attributes for a specified relation

[0333] Returns: output is updated attributes of an exist single relation between nodes

[0334] The above operations such as creation, deletion and edition of the relation can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0335] In a possible implementation of the present disclosure, creation, edition and deletion of multiple relations are similar to those of a single relation mentioned above, which are not repeated here. The syntax for creating, deleting and editing the multiple relations is as follows.

[0336] POST  / createRelationBulk

[0337] Description: this is for creating a new list of relations between nodes

[0338] Returns: output is a list of the relations with filled attributes that were created between nodes

[0339] POST  / deleteRelationBulk

[0340] Description: this is for deleting a list of relations by UID

[0341] Returns: output is a list of the relations that were deleted

[0342] POST  / editRelationBulk

[0343] Description: this is for updating attributes for a specified list of relations

[0344] Returns: output is updated attributes of exist relations

[0345] In a possible implementation of the present disclosure, the method further includes: in response to a second node search request, invoking a universal API to return all of the at least one second node connected to the first node, where the second node search request is indicative of a node identifier of the first node. In a possible implementation, the universal API is the search API, the second node search request carries the node identifier of the first node, such as an id of the first node, and based on the node identifier of the first node, second node (s) related to the first node can be determined, and all information related to the second node (s) can also be determined. The syntax for searching the second node (s) related to the first node is as follows:

[0346] POST  / getAllRelatedNodes

[0347] Description: this is for getting all child nodes related by any relation to a specified node (first node)

[0348] Returns: output is lists of second nodes, attributes, relations

[0349] In a possible implementation of the present disclosure, the method further includes: in response to a first relation search request, invoking a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first relation search request. In a possible implementation, the universal API is the search API, the relation is a relation between a first node and a second node, the first relation search request can carry an id of the relation, and based on the request, a first node and a target second node related by this relation can be determined, and all information related to the first node and the target second nodes can also be determined.

[0350] In a possible implementation of the present disclosure, the method further includes: in response to a second relation search request, invoking a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request. In a possible implementation, the universal API is the search API, the relation is a relation between two first nodes, the second relation search request can carry an id of the relation, and based on the request, a first node and a further first node related by this relation can be determined, and all information related to the two first nodes can also be determined.

[0351] The syntax for searching all nodes related by the relation is as follows:

[0352] POST  / getRelatedNodesBySpecifiedRelation

[0353] Description: this is for getting all nodes related by a specified relation to a specified node

[0354] Returns: output is lists of nodes, attributes, relation (s)

[0355] In a possible implementation of the present disclosure, the method further includes: in response to an attribute search request, invoking a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request. In a possible implementation, the universal API is the search API, the attribute search request can carry an attribute name and an attribute value of an attribute, based on the attribute name and the attribute value, a node with the attribute having the attribute name and the attribute value can be determined, and all information related to the node can also be determined. For example, the attribute search request includes an attribute whose attribute name is “type” and the attribute value is “requirement” , then a node with this attribute can be determined. In a possible implementation, if the attribute indicated in the attribute search request is an attribute of a first node, then the first node and all second node (s) (if any) related to the first node are returned, if the attribute indicated in the attribute search request is an attribute of a second node, then only the second node is returned.

[0356] The syntax for searching all nodes related by the relation is as follows:

[0357] POST  / findNodeBySpecifiedAttribute

[0358] Description: this is for finding nodes by any specified attribute

[0359] Returns: output is lists of nodes, attributes, relations

[0360] In a possible implementation of the present disclosure, the method further includes: in response to a node search request, invoking a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request. In a possible implementation, the universal API is the search API, the node search request can carry an id of a node, the node can be a first node or a second node, based on the request, the node can be determined, and all information related to the node can also be determined. The syntax for searching the node related by the node identifier is as follows:

[0361] POST  / findNodeByUID

[0362] Description: this is for finding nodes by UID

[0363] Returns: output is lists of nodes, attributes, relations

[0364] In a possible implementation of the present disclosure, the method further includes: in response to an attribute value search request, invoking a universal API to return information of a node among the first node and the at least one second node, the node has an attribute whose attribute value is the same as an attribute value indicated  in the attribute value search request. In a possible implementation, the universal API is the search API, based on the request, the node can be determined, and all information related to the node can also be determined. For example, the attribute value search request includes an attribute whose attribute value is “requirement” , then a node which has an attribute whose attribute value is the same as this attribute value can be determined. The syntax for searching the node related by the attribute value is as follows:

[0365] POST  / findNodeGlobally

[0366] Description: this is for finding nodes by value of any attribute

[0367] Returns: output is lists of nodes, attributes, relations

[0368] The above operations can be realized through the universal API, and the universal API is introduced only once and doesn’ t need to be updated in case of any data model changes, thereby decreasing time for implementing data model changes, and increasing business efficiency because of flexible and fast data model changes implementation.

[0369] In view of the above, the present disclosure can solve the following technical problems:

[0370] 1) Technical dependencies of the Application Developer Team from Cloud Core Team and Database team;

[0371] 2) Missing possibility of data model update in real time;

[0372] 3) Necessity to update the data storage schema for each data model update;

[0373] 4) Necessity to update Cloud Core API for each data model update;

[0374] 5) Complexity of unified data model management in cloud applications;

[0375] 6) A lot of “boilerplate code” for back-end realization (in the case of complex data models) .

[0376] Next, embodiments of products related to the data processing methods will be described.

[0377] FIG. 15 shows a schematic structural diagram of a data processing apparatus according to an embodiment of the present disclosure. As shown in FIG. 15, the data processing apparatus 1500 may include:

[0378] an obtaining module 1501, configured to obtain object information of a data object, where the object information includes a basic attribute of the data object; and

[0379] a storing module 1502, configured to store the object information in a data structure, where the data structure includes a first node, and the basic attribute of the data object is stored in the first node, where the first node is connectable to at least one second node, where each of the at least one second node is used for storing an additional attribute of the data object.

[0380] In a possible implementation of the present disclosure, the object information further includes at least  one additional attribute of the data object;

[0381] where the data structure further includes at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one.

[0382] In a possible implementation of the present disclosure, for each of the at least one attribute, the attribute includes a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute.

[0383] In a possible implementation of the present disclosure, for each of the at least one second node, the second node is further associated with at least one of following items:

[0384] a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time.

[0385] In a possible implementation of the present disclosure, for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation.

[0386] In a possible implementation of the present disclosure, the relation is further characterized by at least one of following items:

[0387] a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation.

[0388] In a possible implementation of the present disclosure, the apparatus further includes:

[0389] an invoking module, configured to invoke a universal application programming interface (API) to:

[0390] create the first node to store the basic attribute of the data object;

[0391] create the at least one second node to store the at least one additional attribute one-by-one;

[0392] for each of the at least one second node, create a relation between the first node and the second node.

[0393] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0394] in response to a second node deletion request, invoke a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request.

[0395] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0396] in response to a second node edition request, invoke a universal API to update, with an additional attribute value indicated in the second node edition request, a second node of the at least one second node with a node identifier indicated in the second node edition request.

[0397] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0398] in response to a first relation deletion request, invoke a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node.

[0399] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0400] in response to a second relation deletion request, invoke a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request.

[0401] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0402] in response to a relation edition request, invoke a universal API to update a relation indicated in the relation edition request.

[0403] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0404] in response to a second node search request, invoke a universal API to return all of the at least one second node connected to the first node, where the second node search request is indicative of a node identifier of the first node.

[0405] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0406] in response to a first relation search request, invoke a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first  relation search request.

[0407] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0408] in response to a second relation search request, invoke a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request.

[0409] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0410] in response to an attribute search request, invoke a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request.

[0411] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0412] in response to a node search request, invoke a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request.

[0413] In a possible implementation of the present disclosure, a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node.

[0414] In a possible implementation of the present disclosure, the first node is associated with a node identifier for identifying the first node.

[0415] In a possible implementation of the present disclosure, the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object.

[0416] In a possible implementation of the present disclosure, the first node is further associated with at least one of following items:

[0417] a creator of the first node, a creation date for the first node, an updating status of the first node, a source address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time.

[0418] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0419] in response to a type addition request, invoke a universal API to add a to-be-added type indicated in the  type addition request as an available type for the data structure.

[0420] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0421] in response to an additional attribute addition request, invoke a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request.

[0422] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0423] in response to a first node deletion request, invoke a universal API to delete the first node, where the first node deletion request is indicative of a node identifier of the first node.

[0424] In a possible implementation of the present disclosure, the apparatus further includes an invoking module, configured to:

[0425] in response to a node edition request, invoke a universal API to update, with an attribute value indicated in the first node edition request, a node indicated by a node identifier in the node edition request.

[0426] It should be noted that the technical effects of the data processing apparatus are similar to those of the data processing methods mentioned above, which will not be repeated here.

[0427] An embodiment of the present application provides a computing device cluster, including a processing circuitry for performing any of the above data processing methods.

[0428] An embodiment of the present disclosure provides an electronic device including processing circuitry for executing any of the above data processing methods.

[0429] In a possible implementation, the electronic device may include a transceiver, a processor, and a memory. The memory may be configured to store code, instructions, and the like executed by the processor.

[0430] It should be understood that the processor may be an integrated circuit chip and has a data processing capability. In an implementation process, steps of the foregoing method embodiments may be completed by using a hardware integrated logic circuit in the processor, or by using instructions in a form of software. The processor may be a general-purpose processor, a central processing unit (CPU) , a graphics processing unit (GPU) , a neural processing unit (NPU) , a system on chip (SoC) or another programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. The processor may implement or perform the methods, the steps, and the logical block diagrams that are disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor or the like. The steps of the  methods disclosed with reference to the embodiments of the present application may be directly performed and completed by a hardware decoding processor, or may be performed and completed by using a combination of hardware in the decoding processor and a software module. The software module may be located in a mature storage medium in the art, such as a random-access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory, and the processor reads information in the memory and completes the steps of the foregoing methods in combination with hardware in the processor.

[0431] It may be understood that the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both a volatile memory and a non-volatile memory. The non-volatile memory may be a read-only memory (Read-Only Memory, ROM) , a programmable read-only memory (Programmable ROM, PROM) , an erasable programmable read-only memory (Erasable PROM, EPROM) , an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM) , or a flash memory. The volatile memory may be a random-access memory (Random Access Memory, RAM) and is used as an external cache. By way of example rather than limitation, many forms of RAMs may be used, and are, for example, a static random access memory (Static RAM, SRAM) , a dynamic random access memory (Dynamic RAM, DRAM) , a synchronous dynamic random access memory (Synchronous DRAM, SDRAM) , a double data rate synchronous dynamic random access memory (Double Data Rate SDRAM, DDR SDRAM) , an enhanced synchronous dynamic random access memory (Enhanced SDRAM, ESDRAM) , a synchronous link dynamic random access memory (Synchronous link DRAM, SLDRAM) , and a direct rambus random access memory (Direct Rambus RAM, DR RAM) .

[0432] It should be noted that the memory described in this specification includes but is not limited to these memories and could be a memory of any other appropriate type.

[0433] An embodiment of the present disclosure provides a chip, including an input / output (I / O) interface and a processor, where the processor is configured to call and run a computer program stored in a memory, to enable a device installing with the chip to perform any of the above data processing methods.

[0434] An embodiment of the present disclosure provides a computer-readable medium storing computer execution instructions which, when executed by a processor, causes the processor to execute any of the above data processing methods. Optionally, the storage medium may be specifically a memory.

[0435] An embodiment of the present disclosure provides a computer program product including computer execution instructions which, when executed by a processor, causes the processor to execute any of the above data  processing methods.

[0436] An embodiment of the present disclosure provides a computer program including computer execution instructions which, when executed by a processor, causes the processor to execute any of the above data processing methods.

[0437] A person of ordinary skill in the art may be aware that, in combination with the examples described in the embodiments disclosed in this specification, units and algorithm steps can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on particular applications and design constraints of the technical solutions. A person skilled in the art may use different methods to implement the described functions for each particular application, but it should not be considered that the implementation goes beyond the scope of this application.

[0438] In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiment is merely an example. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.

[0439] The units described as separate parts may be or may not be physically separate, and parts displayed as units may be or may not be physical units, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected based on actual requirements to achieve the objectives of the solutions of the embodiments.

[0440] In addition, functional units in the embodiments of this application may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit.

[0441] When the functions are implemented in a form of a software functional unit and sold or used as an independent product, the functions may be stored in a computer readable storage medium. Based on such an understanding, the technical solutions in this application essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a  personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of this application. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, ROM) , a random-access memory (Random Access Memory, RAM) , a magnetic disk, or an optical disc.

[0442] Although the present disclosure describes methods and processes with steps in a certain order, one or more steps of the methods and processes may be omitted or altered as appropriate. One or more steps may take place in an order other than that in which they are described, as appropriate.

[0443] Note that the expression “at least one of A or B” , as used herein, is interchangeable with the expression “A and / or B” . It refers to a list in which you may select A or B or both A and B. Similarly, “at least one of A, B, or C” , as used herein, is interchangeable with “A and / or B and / or C” or “A, B, and / or C” . It refers to a list in which you may select: A or B or C, or both A and B, or both A and C, or both B and C, or all of A, B and C. The same principle applies for longer lists having a same format.

[0444] Although the present disclosure is described, at least in part, in terms of methods, a person of ordinary skill in the art will understand that the present disclosure is also directed to the various components for performing at least some of the aspects and features of the described methods, be it by way of hardware components, software or any combination of the two. Accordingly, the technical solution of the present disclosure may be embodied in the form of a software product. A suitable software product may be stored in a pre-recorded storage device or other similar non-volatile or non-transitory computer readable medium, including DVDs, CD-ROMs, USB flash disk, a removable hard disk, or other storage media, for example. The software product includes instructions tangibly stored thereon that enable a processing device (e.g., a personal computer, a server, or a network device) to execute examples of the methods disclosed herein. The machine-executable instructions may be in the form of code sequences, configuration information, or other data, which, when executed, cause a machine (e.g., a processor or other processing device) to perform steps in a method according to examples of the present disclosure.

[0445] The present disclosure may be embodied in other specific forms without departing from the subject matter of the claims. The described example embodiments are to be considered in all respects as being only illustrative and not restrictive. Selected features from one or more of the above-described embodiments may be combined to create alternative embodiments not explicitly described, features suitable for such combinations being understood within the scope of this disclosure.

Claims

1.A data processing method, comprising:obtaining object information of a data object, wherein the object information comprises a basic attribute of the data object; andstoring the object information in a data structure, wherein the data structure comprises a first node, and the basic attribute of the data object is stored in the first node, wherein the first node is connectable to at least one second node, wherein each of the at least one second node is used for storing an additional attribute of the data object.2.The method according to claim 1, wherein the object information further comprises at least one additional attribute of the data object;wherein the data structure further comprises at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one.3.The method according to claim 2, wherein for each of the at least one additional attribute, the additional attribute comprises a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute.4.The method according to claim 2 or 3, wherein for each of the at least one second node, the second node is further associated with at least one of following items:a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time.5.The method according to any one of claims 2 to 4, wherein for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation.6.The method according to claim 5, wherein the relation is further characterized by at least one of following items:a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation.7.The method according to any one of claims 2 to 6, wherein storing the object information based on a data structure comprises:invoking a universal application programming interface (API) to:create the first node to store the basic attribute of the data object;create the at least one second node to store the at least one additional attribute one-by-one;for each of the at least one second node, create a relation between the first node and the second node.8.The method according to any one of claims 2 to 7, further comprising:in response to a second node deletion request, invoking a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request.9.The method according to any one of claims 2 to 8, further comprising:in response to a first relation deletion request, invoking a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node.10.The method according to any one of claims 2 to 9, further comprising:in response to a second relation deletion request, invoking a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request.11.The method according to any one of claims 2 to 10, further comprising:in response to a relation edition request, invoking a universal API to update a relation indicated in the relation edition request.12.The method according to any one of claims 2 to 11, further comprising:in response to a second node search request, invoking a universal API to return all of the at least one second node connected to the first node, wherein the second node search request is indicative of a node identifier of the first node.13.The method according to any one of claims 2 to 12, further comprising:in response to a first relation search request, invoking a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first relation search request.14.The method according to any one of claims 2 to 13, further comprising:in response to a second relation search request, invoking a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request.15.The method according to any one of claims 2 to 14, further comprising:in response to an attribute search request, invoking a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request.16.The method according to any one of claims 2 to 15, further comprising:in response to a node search request, invoking a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request.17.The method according to any one of claims 1 to 16, further comprising:in response to an additional attribute addition request, invoking a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request.18.The method according to any one of claims 1 to 17, wherein a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node.19.The method according to any one of claims 1 to 18, wherein the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object.20.The method according to any one of claims 1 to 19, wherein the first node is further associated with at least one of following items:a creator of the first node, a creation date for the first node, an updating status of the first node, a source address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time.21.The method according to any one of claims 1 to 20, further comprising:in response to a type addition request, invoking a universal API to add a to-be-added type indicated in the type addition request as an available type for the data structure.22.The method according to any one of claims 1 to 21, further comprising:in response to a first node deletion request, invoking a universal API to delete the first node, wherein the first node deletion request is indicative of a node identifier of the first node.23.The method according to any one of claims 1 to 22, further comprising:in response to a node edition request, invoking a universal API to update, with an attribute value indicated in the node edition request, a node indicated by a node identifier in the node edition request.24.A data processing apparatus, comprising:an obtaining module, configured to obtain object information of a data object, wherein the object information comprises a basic attribute of the data object; anda storing module, configured to store the object information in a data structure, wherein the data structure comprises a first node, and the basic attribute of the data object is stored in the first node, wherein the first node is connectable to at least one second node, wherein each of the at least one second node is used for storing an additional attribute of the data object.25.The apparatus according to claim 24, wherein the object information further comprises at least one additional attribute of the data object;wherein the data structure further comprises at least one second node respectively connected to the first node via at least one corresponding relation, each of the at least one additional attribute is stored in the at least one second node one-by-one.26.The apparatus according to claim 25, wherein for each of the at least one attribute, the attribute comprises a name of the additional attribute and a value of the additional attribute, and for a second node storing the additional attribute, the second node is associated with a node identifier for identifying the second node, an attribute name for indicating the name of the additional attribute stored in the second node and an attribute value for indicating the value of the additional attribute.27.The apparatus according to claim 25 or 26, wherein for each of the at least one second node, the second node is further associated with at least one of following items:a creator of the second node, a creation date for the second node, a modification date for indicating last time when information associated with the second node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the second node last time.28.The apparatus according to any one of claims 25 to 27, wherein for each of the at least one second node, a relation between the second node and the first node is characterized by a relation identifier for identifying the relation, an identifier for indicating a starting node of the relation, an identifier for indicating a targeting node of the relation and a relation type for identifying a type of the relation.29.The apparatus according to claim 28, wherein the relation is further characterized by at least one of following items:a creator of the relation, a creation date for the relation, a modification date for indicating last time when the relation is modified, or a modifier identifier for indicating a modifier who modifies the relation.30.The apparatus according to any one of claims 25 to 29, wherein the apparatus further comprises:an invoking module, configured to invoke a universal application programming interface (API) to:create the first node to store the basic attribute of the data object;create the at least one second node to store the at least one additional attribute one-by-one;for each of the at least one second node, create a relation between the first node and the second node.31.The apparatus according to any one of claims 25 to 30, further comprising an invoking module, configured to:in response to a second node deletion request, invoke a universal API to delete a target second node of the at least one second node with a node identifier indicated in the second node deletion request.32.The apparatus according to any one of claims 25 to 31, further comprising an invoking module, configured to:in response to a first relation deletion request, invoke a universal API to delete a relation between the first node and a target second node of the at least one second node indicated in the first relation deletion request and the target second node.33.The apparatus according to any one of claims 25 to 32, further comprising an invoking module, configured to:in response to a second relation deletion request, invoke a universal API to delete a relation between the first node and a further first node indicated in the second relation deletion request.34.The apparatus according to any one of claims 25 to 33, further comprising an invoking module, configured to:in response to a relation edition request, invoke a universal API to update a relation indicated in the relation edition request.35.The apparatus according to any one of claims 25 to 34, further comprising an invoking module, configured to:in response to a second node search request, invoke a universal API to return all of the at least one second node connected to the first node, wherein the second node search request is indicative of a node identifier of the first node.36.The apparatus according to any one of claims 25 to 35, further comprising an invoking module, configured to:in response to a first relation search request, invoke a universal API to return information of a target second node of the at least one second node which is connected to the first node via a relation indicated in the first relation search request.37.The apparatus according to any one of claims 25 to 36, further comprising an invoking module, configured to:in response to a second relation search request, invoke a universal API to return information of a further first node which is connected to the first node via a relation indicated in the second relation search request.38.The apparatus according to any one of claims 25 to 37, further comprising an invoking module, configured to:in response to an attribute search request, invoke a universal API to return information of a node among the first node and the at least one second node which stores an attribute indicated in the attribute search request.39.The apparatus according to any one of claims 25 to 38, further comprising an invoking module, configured to:in response to a node search request, invoke a universal API to return information of a node among the first node and the at least one second node identified by a node identifier indicated in the node search request.40.The apparatus according to any one of claims 24 to 39, further comprising an invoking module, configured to:in response to an additional attribute addition request, invoke a universal API to create a further second node to store an additional attribute indicated in the additional attribute addition request.41.The apparatus according to any one of claims 24 to 40, wherein a type of the first node is indicated by the object information and is stored in a node type indicator associated with the first node.42.The apparatus according to any one of claims 24 to 41, wherein the basic attribute is a name of the data object, and the first node is further associated with a node name for indicating a name of the first node corresponding to the name of the data object.43.The apparatus according to any one of claims 24 to 42, wherein the first node is further associated with at least one of following items:a creator of the first node, a creation date for the first node, an updating status of the first node, a source address of the object information, a modification date for indicating last time when information associated with the first node is modified, or a modifier identifier for indicating a modifier who modifies information associated with the first node last time.44.The apparatus according to any one of claims 24 to 43, further comprising an invoking module, configured to:in response to a type addition request, invoke a universal API to add a to-be-added type indicated in the type addition request as an available type for the data structure.45.The apparatus according to any one of claims 24 to 44, further comprising an invoking module, configured to:in response to a first node deletion request, invoke a universal API to delete the first node, wherein the first node deletion request is indicative of a node identifier of the first node.46.The apparatus according to any one of claims 24 to 45, further comprising an invoking module, configured to:in response to a node edition request, invoke a universal API to update, with an attribute value indicated in the node edition request, a node indicated by a node identifier in the node edition request.47.A computing device cluster, comprising a processing circuitry for performing the method according to any one of claims 1 to 23.48.A computer program product comprising program code for performing the method according to any one of claims 1 to 23.49.A computer-readable medium storing computer execution instructions which, when executed by a processor, causes the processor to execute the method according to any one of claims 1 to 23.

Citation Information

Patent Citations

  • Data processing method and device, equipment and medium

    CN115293605A

  • Support for multiple content-management data models

    CN1653449A

  • Systems and methods for providing a mockup data generator

    US20080010074A1

  • Systems and methods using generic database search models

    US20220188284A1

Cited By

  • Real-time graph retrieval-augmented generation system using tag-based metamodel

    KR103003470B1