Software asset analysis method and device, electronic equipment, medium and program product

By acquiring state change events in the software asset management process and combining them with preset rules to perform dynamic topology incremental updates and incremental aggregation calculations, the real-time and accuracy problems of software asset analysis in existing technologies are solved, and efficient software asset management and analysis are achieved.

CN121807357APending Publication Date: 2026-04-07INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-31
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing technologies struggle to achieve real-time, multi-source data-driven dynamic governance of large-scale institutional software assets, failing to meet the demands for high real-time performance and strong interactivity in analysis. Static reporting systems suffer from long update cycles and maintenance difficulties. General business intelligence tools struggle to accurately model the multi-level relationships between software, versions, and systems, resulting in high costs and maintenance difficulties for complex analyses.

Method used

By acquiring status change events in the software asset management process, and combining them with preset event rule information to determine the analysis dimensions and affected data range, the dynamic topology map is incrementally updated, incremental aggregation calculations are performed, software asset analysis results are generated, and multi-level view data display is provided.

Benefits of technology

It achieves real-time and accurate software asset analysis, reduces the maintenance cost of complex relationship structures, improves query response speed and the accuracy of analysis results, and supports aggregated calculations across institutions, versions, and systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121807357A_ABST
    Figure CN121807357A_ABST
Patent Text Reader

Abstract

The invention provides a software asset analysis method and device, electronic equipment, a medium and a program product, and can be applied to the technical field of big data and the technical field of artificial intelligence. The method comprises the steps of obtaining a target event; determining at least one target analysis dimension and a corresponding affected data range based on the target event and preset event rule information; according to the affected data range, incremental updating is conducted on a dynamic topological graph, an updated topological graph is obtained, and the dynamic topological graph represents the relation between software assets and corresponding associated entities; performing incremental aggregation calculation on the reference software asset analysis result of the target analysis dimension based on the updated topological graph to obtain an updated software asset analysis result; and generating a software asset analysis result for target software based on the updated software asset analysis result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the fields of big data technology and cloud computing technology, and more specifically to a software asset analysis method, apparatus, device, medium and program product. Background Technology

[0002] As large organizations rapidly grow their software assets, software management needs are shifting from static inventory maintenance to a dynamic governance system that relies on multi-source data, real-time updates, and flexible analysis. However, existing technologies, primarily relying on static reporting systems and general business intelligence tools, both have significant shortcomings: static reports require manually written queries, have rigid dimensions, long update cycles, and output static files that fail to reflect dynamic states such as software version changes and migrations; while general business intelligence tools lower the analytical threshold, they struggle to accurately model multi-level network relationships among software, versions, systems, and organizations, and complex analyses require extensive custom development, resulting in high costs and maintenance difficulties. With software assets reaching hundreds of thousands, cross-organizational, cross-version, and cross-system aggregation calculations and multi-level drill-down operations occur frequently. Existing solutions struggle to support real-time filtering and sub-second response times, failing to meet management's requirements for high real-time performance and strong interactivity. Summary of the Invention

[0003] In view of the above problems, this application provides software asset analysis methods, apparatus, equipment, media and program products.

[0004] According to a first aspect of this application, a software asset analysis method is provided, the method comprising: acquiring a target event, the target event being generated by a software asset management process when a software asset undergoes a state change; determining at least one target analysis dimension and a corresponding affected data range based on the target event and preset event rule information; incrementally updating a dynamic topology graph for the affected data range to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities; incrementally aggregating and calculating the baseline software asset analysis results of the target analysis dimension based on the updated topology graph to obtain updated software asset analysis results; and generating software asset analysis results for a target software based on the updated software asset analysis results.

[0005] According to an embodiment of this application, determining at least one target analysis dimension and the corresponding affected data range based on the target event and preset event rule information includes: retrieving target rule information matching the target event from a preset event rule table based on the event type, associated software asset identifier, and / or associated organization identifier of the target event; determining at least one target analysis dimension based on predefined analysis dimension association conditions in the target rule information; and determining the affected data range based on predefined data filtering conditions in the target rule information.

[0006] According to an embodiment of this application, determining the affected data range based on predefined data filtering conditions in the target rule information includes: mapping the software assets associated with the target event to target category nodes in the software category tree based on software category filtering conditions in the target rule information; mapping the institutions associated with the target event to target institution nodes in the institution hierarchy tree based on institution scope filtering conditions in the target rule information; and combining the target category nodes and the target institution nodes to determine the affected data range based on the combination result.

[0007] According to an embodiment of this application, the incremental update of the dynamic topology graph for the affected data range includes: obtaining a software asset identifier and a relationship identifier associated with the target event based on the affected data range; and performing an incremental update operation on the dynamic topology graph based on the software asset identifier and the relationship identifier, including: updating the state attribute and time attribute of the first node or the first edge if a first node or the first edge corresponding to the software asset identifier or the relationship identifier exists in the dynamic topology graph; and adding a second node or a second edge and setting corresponding attribute information if no node or edge corresponding to the software asset identifier or the relationship identifier exists in the dynamic topology graph.

[0008] According to an embodiment of this application, before performing incremental aggregation calculation on the baseline software asset analysis results of the target analysis dimension based on the updated topology graph, the method further includes: establishing a mapping relationship between node identifiers and aggregation keys for the target analysis dimension based on the attributes of nodes and edges in the dynamic topology graph, wherein the aggregation key is used to characterize the dimension combination identifier when statistically summarizing software assets under the target analysis dimension; and organizing the baseline software asset analysis results into a multidimensional pre-computation data structure based on the aggregation key.

[0009] According to an embodiment of this application, the incremental aggregation calculation of the baseline software asset analysis results of the target analysis dimension based on the updated topology graph includes: determining the target node whose state has changed due to the target event based on the updated topology graph; locating the target aggregation unit corresponding to the target node in the multidimensional pre-computation data structure using the mapping relationship; and performing incremental aggregation calculation on the target aggregation unit.

[0010] According to an embodiment of this application, generating software asset analysis results for a target software based on the updated software asset analysis results includes: responding to a query request for the target software, parsing the query request, and determining whether the target analysis dimension and target software asset identifier in the query request contain relationship analysis conditions based on the parsing results; if the query request does not contain relationship analysis conditions, reading corresponding statistical results from the multidimensional pre-computation data structure based on the target analysis dimension and the target software asset identifier; and if the query request contains relationship analysis conditions, performing relationship traversal based on the updated topology graph to obtain relationship analysis results, and associating and combining the relationship analysis results with the statistical results to generate the software asset analysis results for the target software.

[0011] According to an embodiment of this application, the method further includes: attaching a tenant identifier to the baseline software asset analysis result and the updated software asset analysis result, the tenant identifier being used for logical isolation of different tenants; pre-configuring an organizational hierarchy tree for each tenant, the organizational hierarchy tree being used to associate a user account with its affiliated organizational node and the range of accessible organizational levels; and returning query results within the corresponding organizational hierarchy tree range based on the corresponding tenant identifier in response to a query request from the user account.

[0012] According to an embodiment of this application, the method further includes: in response to a display request, generating multi-level view data based on the updated software asset analysis results; generating and displaying a software asset analysis interface based on the multi-level view data, wherein the multi-level view data includes statistical view data generated for the target analysis dimension and relational view data generated based on the updated topology diagram; in response to a drill-down operation on the software asset analysis interface, performing a query based on the updated topology diagram and the updated software asset analysis results, and partially refreshing the corresponding view data.

[0013] A second aspect of this application provides a software asset analysis apparatus, comprising: a data acquisition module, configured to: acquire a target event, the target event being generated by a software asset management process when a software asset undergoes a state change; determine at least one target analysis dimension and a corresponding affected data range based on the target event and preset event rule information; a dynamic graph update module, configured to: incrementally update a dynamic topology graph for the affected data range to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities; an incremental calculation module, configured to: perform incremental aggregation calculation on the baseline software asset analysis results of the target analysis dimension based on the updated topology graph to obtain updated software asset analysis results; and a software asset analysis module, configured to: generate software asset analysis results for a target software based on the updated software asset analysis results.

[0014] A third aspect of this application provides an electronic device comprising: one or more processors; and a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the method described above.

[0015] A fourth aspect of this application also provides a computer-readable storage medium having a computer program or instructions stored thereon, which, when executed by a processor, implement the steps of the above-described method.

[0016] The fifth aspect of this application also provides a computer program product, including a computer program or instructions that, when executed by a processor, implement the steps of the above-described method.

[0017] According to embodiments of this application, by introducing a driving mechanism based on software asset state change events and combining preset event rules to accurately identify the analysis dimensions and affected data range, the system can trigger analysis update logic in real time when software assets change, avoiding the delays and resource waste caused by the periodic full recalculation of traditional solutions. By adopting a dynamic graph topology to model the relationships between software assets and their associated entities, and performing incremental updates only on the affected data range, dynamic maintenance of complex relationship structures is achieved, allowing the topology to evolve in real time as the software state is adjusted. Furthermore, through the mapping relationship between node identifiers and aggregation keys, the baseline software asset analysis results are organized into a multi-dimensional pre-computation data structure, and after the topology is updated, incremental aggregation calculations are performed only on the affected aggregation units, thereby reducing the overhead of multi-dimensional statistical calculations and improving the real-time performance of analysis result updates. In addition, embodiments of this application can generate customized analysis outputs for specific software based on the updated software asset analysis results, making query responses more accurate and with lower latency. Attached Figure Description

[0018] The above-mentioned contents, other objects, features and advantages of this application will become clearer from the following description of embodiments with reference to the accompanying drawings, in which:

[0019] Figure 1 The illustrations depict application scenarios of software asset analysis methods, apparatus, devices, media, and program products according to embodiments of this application.

[0020] Figure 2 A flowchart illustrating a software asset analysis method according to an embodiment of this application is shown schematically.

[0021] Figure 3 The flowchart illustrates a method for pre-establishing mapping relationships for different analysis dimensions according to some exemplary embodiments of this application;

[0022] Figure 4 The illustration schematically shows a method for performing incremental aggregation calculations according to some exemplary embodiments of this application;

[0023] Figure 5 A schematic diagram illustrating the structure of a software asset analysis apparatus according to an embodiment of this application is shown; and

[0024] Figure 6 A block diagram of an electronic device suitable for implementing a software asset analysis method according to an embodiment of this application is illustrated schematically. Detailed Implementation

[0025] The embodiments of this application will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of this application. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of this application for ease of explanation. However, it will be apparent that one or more embodiments may be implemented without these specific details. Furthermore, descriptions of well-known structures and technologies are omitted in the following description to avoid unnecessarily obscuring the concepts of this application.

[0026] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of this application. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0027] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.

[0028] When using expressions such as "at least one of A, B and C", they should generally be interpreted in accordance with the meaning that is commonly understood by those skilled in the art (e.g., "a system having at least one of A, B and C" should include, but is not limited to, a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and / or a system having A, B and C, etc.).

[0029] As large organizations continuously improve their informatization levels, the quantity and types of software assets are growing exponentially. Organizations need to manage and monitor software assets throughout their entire lifecycle, including installation and deployment status, version evolution, system relationships, organizational usage scope, and security and compliance risks. Software asset management is no longer limited to static inventory maintenance but is gradually evolving into a dynamic governance system that relies on multi-source data, real-time updates, and supports on-demand analysis. To meet the needs of management departments, operations teams, and audit and compliance departments for software asset analysis, visualization, and decision support, existing technologies typically employ two types of solutions to build software asset analysis capabilities: one is a static reporting system based on traditional databases, and the other is a visualization analysis tool based on a general business intelligence platform.

[0030] In traditional static reporting solutions, software asset information is typically stored in a database with a fixed table structure. Operations or data processing personnel manually execute queries at predetermined intervals to generate tables containing organizational, system, or version statistics. This approach is simple to implement, has low deployment costs, and can meet the display needs of some fixed indicators. However, because the report logic relies entirely on manually written queries, adding new statistical categories or introducing new analytical perspectives often requires redesigning the report model, modifying or rewriting the queries, resulting in long response times and a large workload. Furthermore, the report results are usually delivered as static files, failing to reflect the constantly changing state of software assets in the real-world environment, such as new version releases, patch updates, decommissioning operations, or inter-organizational migrations. Therefore, static reports struggle to support management's needs for real-time monitoring and rapid decision-making regarding software operational status.

[0031] General-purpose business intelligence tools, as another technical solution, can visualize data stored in databases and support the construction of partial analytical views through drag-and-drop or conditional configuration. This solution can lower the barrier to entry for software asset analysis to some extent, allowing business personnel to complete basic data exploration without needing to master query statements. However, general-purpose business intelligence tools have significant limitations when facing complex software asset management scenarios. Software assets themselves have network-like characteristics, typically involving multi-level and multi-directional relationship structures such as software, version, system, deployment organization, and operating environment. However, general-purpose business intelligence tools generally build analytical views based on tabular models, making it difficult to accurately map the relationship structure between software assets. Furthermore, if the analysis requirements involve complex logic such as cross-level data drill-down, path association detection, and version evolution analysis, extensive customized development is required, resulting in high construction costs and maintenance difficulties.

[0032] With the ever-expanding scale of data, existing technologies still face significant performance bottlenecks. As the number of software assets reaches hundreds of thousands, analytical needs often involve cross-organizational, cross-version, and cross-system aggregation and multi-level drill-down operations. For example, statistically analyzing the distribution of a certain type of software tool in overseas branches, or querying the version evolution path of all software in a system, may involve real-time filtering, aggregation, and sorting of large amounts of data. In static reporting mode, results can only be pre-generated offline, making it impossible to achieve sub-second response times. In general business intelligence tools, query methods based on traditional table models are also difficult to handle high-dimensional, strongly correlated software asset analysis requests, resulting in significant response delays and failing to meet management's requirements for real-time performance and interactivity.

[0033] Based on this, embodiments of this application provide a software asset analysis method, the method comprising: acquiring a target event, the target event being generated by a software asset management process when a software asset undergoes a state change; determining at least one target analysis dimension and a corresponding affected data range based on the target event and preset event rule information; incrementally updating a dynamic topology graph for the affected data range to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities; incrementally aggregating the baseline software asset analysis results of the target analysis dimension based on the updated topology graph to obtain updated software asset analysis results; and generating software asset analysis results for the target software based on the updated software asset analysis results. According to embodiments of this application, by introducing a driving mechanism based on software asset state change events and combining preset event rules to accurately identify the analysis dimensions and affected data range, the system can trigger analysis update logic in real time when software assets change, avoiding the delays and resource waste caused by the periodic full recalculation of traditional solutions. By adopting a dynamic graph topology to model the relationships between software assets and their associated entities, and performing incremental updates only on the affected data range, dynamic maintenance of complex relationship structures is achieved, allowing the topology to evolve in real time as the software state is adjusted. Furthermore, through the mapping relationship between node identifiers and aggregation keys, the baseline software asset analysis results are organized into a multi-dimensional pre-computation data structure, and after the topology is updated, incremental aggregation calculations are performed only on the affected aggregation units, thereby reducing the overhead of multi-dimensional statistical calculations and improving the real-time performance of analysis result updates. In addition, embodiments of this application can generate customized analysis outputs for specific software based on the updated software asset analysis results, making query responses more accurate and with lower latency.

[0034] It should be noted that the software asset analysis methods, apparatus, devices, media, and program products defined in this application can be used in the fields of big data technology, artificial intelligence technology, and fintech, and can also be used in a variety of other fields besides big data technology, artificial intelligence technology, and fintech. The application fields of the software asset analysis methods, apparatus, devices, media, and program products provided in the embodiments of this application are not limited.

[0035] In the technical solution of this application, the user information (including but not limited to user personal information, user image information, user device information, such as location information) and data (including but not limited to data used for analysis, stored data, and displayed data) involved are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, storage, use, processing, transmission, provision, disclosure, and application of related data all comply with relevant laws, regulations, and standards, take necessary confidentiality measures, do not violate public order and good morals, and provide corresponding operation entry points for users to choose to authorize or refuse.

[0036] In scenarios where personal information is used for automated decision-making, the methods, devices, and systems provided in this application all offer users corresponding operation entry points, allowing them to choose to agree to or reject the automated decision results; if the user chooses to reject, the process proceeds to expert decision-making. Here, "expert decision-making" refers to the decision-making activities of personnel who specialize in a particular field, possess specialized experience, knowledge, and skills, and have reached a certain level of professional expertise.

[0037] Figure 1 The illustration shows application scenarios of software asset analysis methods, apparatus, devices, media, and program products according to embodiments of this application.

[0038] like Figure 1 As shown, application scenario 100 according to this embodiment may include a first terminal device 101, a second terminal device 102, a third terminal device 103, a network 104, and a server 105. The network 104 serves as a medium for providing a communication link between the first terminal device 101, the second terminal device 102, the third terminal device 103, and the server 105. The network 104 may include various connection types, such as wired or wireless communication links, or fiber optic cables, etc.

[0039] Users can use the first terminal device 101, the second terminal device 102, and the third terminal device 103 to interact with the server 105 via the network 104 to receive or send messages, etc. Various communication client applications can be installed on the first terminal device 101, the second terminal device 102, and the third terminal device 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only).

[0040] In the embodiments of this application, the first terminal device 101 can be an example of the first device, and the second terminal device 102 and / or the third terminal device 103 can be an example of at least one second device. The first device and the second device can communicate collaboratively through an internal client mechanism to implement the data distribution and rendering logic described in the software asset analysis method.

[0041] In some embodiments, the first device and at least one second device may be different display modules, windows or screens on the same computing terminal (such as a host), or multiple physical devices that work together through a network, such as different client instances deployed on a desktop computer, tablet terminal or mobile device respectively.

[0042] The first terminal device 101, the second terminal device 102, and the third terminal device 103 can be various electronic devices with displays and support web browsing, including but not limited to smart mobile terminals, tablet computers, laptop computers, and desktop computers.

[0043] Server 105 can be a server that provides various services, such as a backend management server that supports websites browsed by users using the first terminal device 101, the second terminal device 102, and the third terminal device 103 (this is just an example). The backend management server can analyze and process data such as received user requests, and feed back the processing results (such as web pages, information, or data obtained or generated according to user requests) to the terminal devices.

[0044] It should be noted that the software asset analysis method provided in this application embodiment can generally be executed by server 105. Correspondingly, the software asset analysis device provided in this application embodiment can generally be located in server 105. The software asset analysis method provided in this application embodiment can also be executed by a server or server cluster that is different from server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103, and / or server 105. Correspondingly, the software asset analysis device provided in this application embodiment can also be located in a server or server cluster that is different from server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103, and / or server 105.

[0045] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.

[0046] The following will be based on Figure 1 The described scene, through Figures 2-4 The software asset analysis method of the disclosed embodiments is described in detail.

[0047] Figure 2 A flowchart illustrating a software asset analysis method according to an embodiment of this application is shown.

[0048] like Figure 2As shown, the software asset analysis method 200 of this embodiment includes operations S210 to S240.

[0049] In operation S210, a target event is acquired, which is generated by the software asset management process when the software asset undergoes a status change; based on the target event and preset event rule information, at least one target analysis dimension and the corresponding affected data range are determined.

[0050] In the embodiments of this application, the system can monitor the state changes of software assets in real time during the software asset management process to obtain target events triggered by state changes. State changes can include various types such as software deployment, decommissioning, deployment adjustments, configuration changes, version replacements, organizational migrations, changes in system dependencies, and changes in component relationships. The system can capture these state change events through message middleware, process engine notifications, database change subscriptions, or event push notifications from the operations and maintenance platform. To enable targeted calculations in subsequent analysis processes, after obtaining the target event, the system can dynamically identify the analysis dimensions and scope that the event may affect based on the attribute information carried by the event and pre-defined event rules. Pre-defined event rules can be configured by administrators or automatically generated by the system through learning historical analysis behaviors, thereby achieving flexible analysis strategy management in different scenarios.

[0051] In some embodiments, a target event may include attributes such as software asset identifier, version identifier, deployment organization, system to which it belongs, scope of impact label, change time, and event type. The system can use these attributes to match event rules and identify which analytical dimensions the event will affect. For example, in the case of a software version change, the event rules may instruct the system to update analytical dimensions related to software category, version distribution, organizational usage scope, system dependencies, or geographical distribution. When the event type is organizational migration, the system may need to analyze dimensions including software deployment statistics from an organizational hierarchy perspective, cross-organizational software flow relationships, and the impact of organizational mapping changes on classification statistics.

[0052] In the embodiments of this application, the preset event rules can not only specify the target analysis dimension, but also further specify how to determine the affected data range. For example, the rules can record the mapping relationship between software categories and organizational levels, the dependency relationship between systems and software, the inheritance chain of the software category, the hierarchical relationship of organizations, and the association attributes between software assets, etc.

[0053] In some embodiments, event rules can include composite rules consisting of multiple conditions to handle complex business scenarios. For example, a rule might require the system to simultaneously check the software category and organization category associated with the event, and only when both conditions are met will the corresponding analysis dimension be used as the target dimension. For instance, when software belongs to a core business category and is deployed in key organizations across regions, the system needs to prioritize updating the cross-regional software distribution analysis and the core business system dependency analysis. Conversely, when software belongs to an auxiliary tool category and is deployed only in grassroots organizations, the event may only affect statistical calculations at the grassroots organization level, without requiring updates to the system's global dimension analysis results.

[0054] In the embodiments of this application, determining the scope of affected data is not limited to identifying directly related software assets and organizations, but can also be extended to associated entities or affiliated analysis objects. For example, when a software has dependencies on several business systems, event rules can instruct the system to include these dependent systems in the affected data scope for subsequent topology updates and aggregation calculations. In this case, even if the change event itself does not involve these related systems, the system still needs to include them in the processing scope because the dependencies may change their statistical data. Similarly, when a software asset belongs to a software category or toolchain, event rules can include all software under that category in the analysis scope, so that the statistical results can fully reflect the impact of the change event on the entire software architecture.

[0055] In some embodiments, event rules can also support the selection of analysis dimensions based on time conditions. For example, when the system detects frequent changes to a certain type of software within a certain period, the rule can automatically trigger an update of the historical trend analysis dimension to identify the periodic patterns of software version changes in a certain region or business line.

[0056] In operation S220, for the affected data range, the dynamic topology graph is incrementally updated to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities.

[0057] In the embodiments of this application, after determining the affected data range corresponding to the target event, the system can perform incremental update operations on the dynamic topology graph based on the data range. The dynamic topology graph is used to represent the relationship between software assets and their associated entities. Its nodes can represent software assets, version entities, deployment organizations, parent systems, operating environments, or other derived management entities, and its edges are used to describe the relationships between these entities. Upon receiving a target event, the system can perform partial updates only on the nodes and associated edges within the affected data range without rebuilding the entire topology structure, thereby reducing the maintenance cost of graph data and maintaining the real-time performance and scalability of the topology structure.

[0058] In some embodiments, when the system determines that the software asset is within the affected data range, it can locate the corresponding software node in the dynamic topology graph and adjust the node's attribute information according to the event content. For example, when the software version changes, information in the node attributes indicating version, release time, availability status, or applicable scope can be updated. Simultaneously, the system can also adjust the association relationships between the node and other nodes based on the event content. For instance, when software is migrated from the original organization to a new organization, the system can disconnect the association edge between the original software node and the original organization node, and add an association edge with the target organization node.

[0059] In the embodiments of this application, the updating of the dynamic topology graph is not limited to changes in the software nodes themselves, but may also include changes in other entities related to the software. For example, when a software version replacement event occurs, not only do the attributes of the software nodes need to be updated, but the association between the software version node and its system node may also need to be updated. If the event indicates that the replaced version no longer depends on a certain system or runtime environment, the system can delete the original dependency edges and create new dependency edges based on the attributes of the new version.

[0060] In some embodiments, the dynamic topology graph may also include derivation, inheritance, or aggregation relationships to express more complex relationships between software assets. For example, in a toolchain software scenario, a software may consist of multiple sub-components. When the state of a sub-component changes, the system can recursively identify potentially affected upper-level components or dependency chains based on the aggregation relationships defined in the topology, and then perform a set of relationship updates in the topology graph.

[0061] In some embodiments, for nodes not directly affected by the target event but whose relationships may be indirectly affected, the system can perform inferential updates based on predefined strategies. For example, if the deployment organization of a software asset is adjusted, its related organizational hierarchy nodes may need to have their deployment numbers, classifications, or distribution relationships recalculated, and the additional attribute information of the organizational nodes in the topology graph may also need to be adjusted. In this way, during subsequent statistical analysis or graph queries, the system can return accurate analysis results based on the latest relationship structure.

[0062] In the embodiments of this application, to support incremental maintenance of large-scale graph structures, dynamic topology graphs can be organized using a partitioned structure or a multi-level structure. The system can divide the topology graph into multiple sub-regions according to dimensions such as organization, business line, or region, and the scope of data affected by an event can be limited to certain sub-regions. When an incremental update is performed on a certain sub-region, the topology structure of other sub-regions will not be affected, thereby further reducing update costs.

[0063] In some embodiments, updates to the dynamic topology graph can also support state backtracking or versioning management. When the system needs to perform backtracking analysis on historical statistical results, it can use historical versions of the topology graph to reconstruct past relationship structures. For example, in some auditing scenarios, it is necessary to analyze the deployment relationships or dependency structures of software assets at a certain point in time. The system can replay incremental update operations on the topology graph based on event sequences, thereby restoring the topology structure at that time.

[0064] In operation S230, incremental aggregation calculations are performed on the baseline software asset analysis results of the target analysis dimension based on the updated topology map to obtain the updated software asset analysis results.

[0065] In the embodiments of this application, after obtaining the updated topology map, the system can determine the statistical units that need to be updated under the corresponding analysis dimensions based on the changed nodes in the topology and their associations, and perform incremental aggregation calculations based on the baseline software asset analysis results. To avoid re-statistically analyzing all software asset data after each event, the system can utilize the change information of the target nodes and the aggregation logic of the target analysis dimensions to perform local calculations only on the affected dimension combinations. For example, when the deployment organization of a software changes, the statistical dimensions related to that deployment organization (such as organizational hierarchy distribution, regional distribution, number of systems used, etc.) can be updated through incremental adjustment, while dimensions unrelated to other organizations do not need to be updated, thereby improving computational efficiency.

[0066] In some embodiments, the system can identify changed nodes and their impact scope based on an updated topology map. When a node in the topology map changes its status attributes (such as its affiliated organization, version number, or enabled status), the system can mark the node as a target node and further analyze the relationship between the target node and other nodes to determine which aggregated statistics are affected by the change. For example, when the version node of a software asset is adjusted from an old version to a new version, the system can locate the version category to which the software belongs in the version statistics dimension, deduct the number of the original version category, and then increase the number of the new version category to construct version distribution statistics consistent with the actual situation.

[0067] In the embodiments of this application, to support multi-dimensional combined statistics, the system can construct multi-dimensional statistical keys for different target analysis dimensions before performing incremental aggregation, so that each aggregation result corresponds to a unique combination of dimensions. For example, a statistical unit can represent a combination of "organizational level, software category, and system type," and the task of incremental calculation is to locally update the statistical values ​​corresponding to these multi-dimensional combinations for the affected data range. When software is migrated from one organization to another, the system can remove the software from several statistical units related to the original organization based on the multi-dimensional combination key, and then add it to the statistical unit corresponding to the new organization, ensuring the accuracy of the analysis results.

[0068] In some embodiments, the system can leverage the association structure in the topology graph to perform extended calculations on incremental aggregation. For example, certain statistical dimensions depend not only on the software node itself but also on its associated upper-level entities, such as the system to which the software belongs, components in the dependency chain, or deployment regions. When a software asset changes, its upstream or downstream associated nodes may also affect the relevant analytical dimensions. In this case, the system can traverse the associated nodes along the topology graph, including the statistical dimensions corresponding to these nodes in the scope of incremental aggregation. For example, when a core software version is upgraded, multiple business system nodes that depend on that software may need to be updated accordingly to ensure that the overall dependency analysis results of the system remain consistent.

[0069] In the embodiments of this application, the calculation method for incremental aggregation can vary depending on the event type. In simple event scenarios, only a single statistical dimension needs to be locally adjusted, such as the number of deployments, the number of categories, or the number of uses. In complex event scenarios, the system can perform a chain update across multiple dimensions. For example, when a software is changed from a common category to a critical category, not only do the software category statistics need to be updated, but the statistics of related institutions, systems, or regions also need to be updated synchronously to reflect the impact of the software category change on the overall analysis.

[0070] In embodiments of this application, the system can also introduce a multi-task scheduling mechanism for the incremental aggregation process. For example, when multiple change events occur consecutively within a short period of time, the system can group these events into a single incremental aggregation batch and perform a one-time multidimensional update within a unified topology context to reduce redundant operations.

[0071] In the embodiments of this application, incremental aggregation calculation can also support the coexistence of multiple versions of results, that is, allow the system to maintain snapshots of statistical results at different points in time. When a scenario requires backtracking analysis, the system can select a specific version of the baseline result or the updated result based on the timestamp to reproduce the past system state. For example, in some business audit scenarios, it is necessary to analyze the distribution of institutional software at the beginning of a certain month. The system can directly read the statistical data from the corresponding time version without recalculating.

[0072] In operation S240, based on the updated software asset analysis results, a software asset analysis result for the target software is generated.

[0073] In the embodiments of this application, after completing the incremental aggregation calculation based on the updated topology graph, the system can generate corresponding target software analysis output according to the updated software asset analysis results and the attributes, query requirements, or business context of the target software. The target software can be a single software entity, a type of software, a collection of software under an organization, a component software in a system, or a group of software selected based on multi-dimensional conditions. When a user or business process issues an analysis request, the system can extract corresponding statistical data from the updated analysis results based on information such as software identifiers, query dimensions, and perspective preferences in the request, and, if necessary, perform relationship inference in conjunction with the topology graph to form the final analysis output.

[0074] In the embodiments of this application, the system can provide customized analysis output based on region, business line, or organizational structure. For example, when a user wants to analyze the deployment status of a certain software in a certain region, the system can extract the software deployment status of each organization in the region and the distribution of different software categories based on the classification structure of the region dimension; from the perspective of business lines, the system can statistically analyze the usage, change frequency, and dependence of a certain software in each business line, and present it to the user in the form of charts, lists, or combinations.

[0075] In some embodiments, the system can provide a trend-oriented approach to generating results. For example, users can query changes in the number of deployments, version upgrade frequency, and organizational usage growth curves of a particular software over the past few months. In this case, the system can utilize time-series indicators included in the updated software asset analysis results to generate trend charts, change curves, or periodic analyses to help users identify the evolutionary patterns of software assets during operation. Trend analysis can be used not only to observe individual software but also for software categories or organizational dimensions, thereby forming a more comprehensive perspective on asset governance.

[0076] In embodiments of this application, the system can also generate anomaly analysis of the target software. When a piece of software undergoes frequent changes in a short period of time, such as repeated configuration modifications in multiple organizations, or a large number of migrations or deployments within a short period, the system can identify these anomalies based on the updated analysis results and mark key areas of concern in the generated analysis results, alerting the user that the software's status is fluctuating significantly.

[0077] In embodiments of this application, the system can also combine updated software asset analysis results with user-defined rules to generate a dedicated analysis view. For example, users can set certain dimension combinations, such as "software category, organization level, and version status," and the system can generate a customized analysis report for the target software according to this combination. Furthermore, the system can generate various outputs such as inspection reports, comparative analysis reports, and deployment integrity analysis reports based on user needs, providing support for different management scenarios.

[0078] According to embodiments of this application, by acquiring target events in real time when software assets undergo state changes, and accurately identifying target analysis dimensions and affected data ranges based on preset event rules, the system can proactively update analysis objects driven by events, avoiding the latency and resource waste caused by traditional solutions relying on periodic full scans. Furthermore, a dynamic topology incremental update mechanism targeting the affected data range is adopted, replacing full map reconstruction with local adjustments. This allows the complex relationships between software assets to evolve synchronously with change events, effectively maintaining the real-time performance and consistency of the topology. Based on the updated topology, incremental aggregation calculations are further performed on the baseline analysis results of the corresponding analysis dimensions based on the changed nodes and their relationships. Only the affected aggregation units are locally updated, significantly reducing the overhead of dimension statistical calculations. This enables the system to maintain high update speed and processing performance even in large-scale software asset environments. Based on the updated software asset analysis results, multi-dimensional and differentiated analysis outputs are generated for the target software. Real-time analysis results from multiple perspectives, such as deployment status, version distribution, system dependencies, trend changes, and geographical coverage, can be provided according to user needs, offering reliable support for various business scenarios such as software governance, configuration optimization, risk identification, and planning decisions.

[0079] The software asset analysis method of this application will be specifically described below by way of preferred embodiments.

[0080] In the embodiments of this application, after obtaining the target event generated by the change in the state of the software asset, the system can use the attribute information carried by the event to match it with a preset event rule table to determine the analysis dimension that should be updated and the corresponding range of affected data.

[0081] Specifically, the system can retrieve matching rule entries from the event rule table based on the information of the target event. Each rule entry corresponds to a specific analysis strategy, including the analysis dimensions to focus on and how to filter the affected entity range. For example, for a software version change event, the rule table can indicate that the system should focus on analysis dimensions such as version distribution, organizational deployment scope, and system dependencies; while for an organizational migration event, the rules may point to dimensions such as organizational hierarchy analysis and regional distribution analysis. After obtaining the target rule information through matching, the system can select at least one target analysis dimension based on the predefined dimension association conditions in the rules, enabling the subsequent analysis process to focus on the statistical perspective most relevant to the event. In addition, the system can also determine the affected data range based on the data filtering conditions in the rules. The filtering process can be based on software category trees, organizational hierarchy structures, business system relationships, or other predefined topology mappings, enabling the system to accurately identify which software nodes, organizational nodes, or related entities need to participate in topology updates and aggregation calculations in subsequent steps. Through the above methods, the system can dynamically adjust the analysis process according to different types of events, achieving flexible and accurate responses to changes in complex software assets.

[0082] In the embodiments of this application, the system can accurately define the affected data range based on the predefined data filtering conditions in the target rule information, so as to ensure that subsequent topology updates and statistical calculations only apply to entities related to the target event.

[0083] Specifically, when a target event involves a software asset, the system can map that software asset to the corresponding category node in the software category tree based on the software category filtering conditions in the rules. The software category tree is a hierarchical software classification structure that reflects the software's parent category, sibling categories, and subcategories. Through this structure, the system can not only locate the direct category of the target software but also infer a broader set of associated software categories.

[0084] When an event involves organizational changes, deployment adjustments, or other organizational characteristics, the system can also map the organization corresponding to the event to the target organization node in the organizational hierarchy tree based on the organizational scope filtering conditions in the rules. The organizational hierarchy tree can reflect the hierarchical and peer relationships in the organizational structure, so the system can infer the superior, subordinate, or related branches that the event may affect based on this node.

[0085] After mapping software category nodes to organization nodes, the system can combine target category nodes and target organization nodes to form a set of filtering conditions consistent with the event scope. This set allows the system to determine the intersection of software category and organization scopes, thereby precisely defining the affected software nodes, organization nodes, and related topological structures. Through this method, the system can efficiently and accurately limit the scope of event impact in large software asset environments, preventing irrelevant data from participating in subsequent processing and significantly improving analysis efficiency and accuracy.

[0086] In the embodiments of this application, after determining the affected data range, the system can perform incremental update operations on the dynamic topology graph based on the software asset identifiers and related relationship identifiers within that range, enabling the topology structure to reflect the changing status of software assets and their associated entities in real time. The dynamic topology graph describes the relationships between software assets and between software assets and entities such as organizations, systems, and operating environments. Its nodes can represent different categories of software entities, organizational entities, or related management objects, while its edges express various types of relationships such as deployment, dependency, association, and affiliation. Upon receiving a target event, the system can extract the software asset identifiers directly or indirectly related to the event and their corresponding relationship identifiers from the affected data range, thereby determining the set of nodes and edges that need to be updated in the topology graph.

[0087] In some embodiments, when nodes or edges corresponding to software asset identifiers or association identifiers exist in the dynamic topology graph, the system may only update the attributes of these nodes or edges. For example, when a software version changes, the version attribute, update time attribute, and activation status attribute of the corresponding software node can be updated; when events such as organizational migration or system adjustments cause a change in the organization to which the software belongs, the system can modify the node attributes to reflect the updated affiliation. Simultaneously, the system can update the attributes of relationship edges, such as updating information on the time the relationship was formed, changes in relationship type, or changes in association strength, so that the relationships in the topology graph can reflect the real-time status.

[0088] In some embodiments, if no node or edge corresponding to a software asset identifier or association identifier exists in the dynamic topology graph, the system can add the corresponding node or edge based on the event content. For example, when a piece of software is first brought under management or first deployed to an organization, and the software node does not yet exist in the dynamic topology graph, the system can add a new node and set the necessary attribute information for it, such as software category, version information, creation time, etc. Furthermore, when a piece of software forms a new relationship with other entities (such as organizations, systems, or components), the system can add corresponding relationship edges to incorporate these relationships into the topology structure.

[0089] In some embodiments, the system can also perform deeper incremental updates based on the associated attributes of the topology. For example, when a node is added or updated, the system can determine whether its associated nodes need to have their attributes updated synchronously, such as statistical counts, cascading status, or the availability of associations. When software has dependencies on multiple systems, the system can update the associated attributes of relevant nodes along the dependency path, ensuring that the topology remains consistent overall after local adjustments. For example, when software is taken offline, the system nodes it depends on can be marked as needing a re-check of compatibility or deployment status.

[0090] Through the incremental update method described above, the embodiments of this application can maintain the structural freshness of the topology graph in a large-scale software asset environment with low computational cost. Because only local updates are performed on the affected data range, without rebuilding the entire topology, excellent performance is maintained even in high-frequency event scenarios.

[0091] In the embodiments of this application, in order to enable incremental aggregation calculations to be executed efficiently after the topology graph is updated, the system can pre-establish mapping relationships for different analysis dimensions based on the structural information of the dynamic topology graph in the initial stage or periodic maintenance stage.

[0092] Figure 3 The flowchart illustrates a method for pre-establishing mapping relationships for different analysis dimensions according to some exemplary embodiments of this application.

[0093] like Figure 3 As shown, the method for pre-establishing mapping relationships for different analysis dimensions includes operations S310 to S320.

[0094] In operation S310, based on the attributes of nodes and edges in the dynamic topology graph, a mapping relationship between node identifiers and aggregation keys is pre-established for the target analysis dimension, wherein the aggregation key is used to characterize the dimension combination identifier when statistically summarizing software assets under the target analysis dimension.

[0095] Specifically, the nodes and edges in the dynamic topology graph not only represent the relationship structure between software assets and other entities, but also contain node attributes and edge attributes that reflect information such as classification attributes, organizational scope, deployment environment, and component relationships. The system can utilize these structures and attributes to associate different types of node identifiers in the graph with aggregation keys corresponding to the analysis dimensions. This allows each node to be mapped to a combination of identifiers for at least one statistical dimension based on its position, category, or relationship within the topology. The aggregation key, as an identifier for the combination of analysis dimensions, can be used to distinguish statistical units under different organizations, categories, systems, or other multi-dimensional combinations, enabling the system to accurately locate the statistical objects that need updating in subsequent aggregation calculations.

[0096] In operation S320, the benchmark software asset analysis results are organized into a multidimensional pre-computed data structure based on the aggregation key.

[0097] Multidimensional pre-computation data structures can store statistical data under different dimension combinations indexed by aggregation keys, allowing each aggregation unit to be directly accessed through a unique dimension combination identifier. For example, a statistical unit can represent the combination result of "organizational level, software category, and system type," and the system can store the baseline statistical result in the corresponding data unit according to this combination key. When the state of a software or organization is modified, because the system can identify the affected nodes and aggregation keys based on the updated topology graph, it can achieve the goal of updating only the corresponding statistical unit without recalculating the entire statistical result.

[0098] In some embodiments, the multidimensional pre-computed data structure can be implemented in various forms, such as a sparse matrix based on key-value mapping, a grouping structure based on hierarchical combination, a tree structure based on aggregate key index, or a structure based on multi-segment hash mapping. Different designs can be flexibly combined according to system scale, number of analysis dimensions, and frequency of change.

[0099] By establishing a mapping relationship between node identifiers and aggregation keys before incremental aggregation calculations, and organizing the benchmark analysis results into a pre-calculated structure according to the aggregation keys, the system achieves a structured and indexable analytical data organization method. This effectively reduces the computational complexity of incremental updates, enabling the system to maintain acceptable computational overhead and response speed when facing large-scale software assets and high-frequency event changes.

[0100] Figure 4 The illustration shows a schematic diagram of a method for performing incremental aggregation calculations according to some exemplary embodiments of this application.

[0101] like Figure 4 As shown, the method for performing incremental aggregation calculations may include operations S410 to S430.

[0102] In operation S410, based on the updated topology graph, the target node whose state has changed due to the target event is determined.

[0103] By comparing topology data before and after an event, the system can identify software nodes, related entity nodes, or other nodes in the dependency chain directly affected by the event. For example, when an event involves a software version change, the system can identify the software node and its associated version nodes as target nodes; when an event involves an organization migration or deployment path adjustment, software nodes connected to the organization node and their dependent system nodes can also be identified as target nodes.

[0104] In operation S420, the target aggregation unit corresponding to the target node is located in the multidimensional pre-computed data structure using the mapping relationship.

[0105] Since each aggregation unit corresponds to a specific combination of dimensions, the system can find the corresponding aggregation key based on the attributes of the target node, thereby finding the data unit that stores the statistical results of that combination.

[0106] In operation S430, incremental aggregation calculation is performed on the target aggregation unit.

[0107] For example, when software is newly deployed to an organization, the system can add a corresponding count in the statistical unit corresponding to that organization; when software is upgraded from an old version to a new version, the system can reduce the number of old versions and increase the number of new versions in the version statistics aggregation unit; when the dependency relationship between software and a system changes, the system can adjust the number of associations or weight indicators in the aggregation unit corresponding to the dependency dimension. In some scenarios, incremental aggregation is not just a simple addition or subtraction operation, but may also involve complex derivative calculations, such as recalculating the proportion of a certain type of software, adjusting the software deployment density under an organization, or updating the statistical weights of the system dependency chain.

[0108] In some embodiments, when the target node has multi-level relationships in the topology, the system can also perform multi-dimensional extended incremental aggregation calculations. For example, for a node belonging to a certain category tree, changes in its category may affect the statistical results of the upper-level category nodes; for organizational tree nodes with deeper structural levels, adjustments to the target node may sequentially affect the parent nodes and even higher-level group-level summary statistics.

[0109] According to embodiments of this application, by employing an incremental aggregation mechanism based on updating the topology graph, the system can maintain the real-time update capability of software asset analysis results while greatly reducing computational overhead.

[0110] In the embodiments of this application, after completing the incremental aggregation calculation of the updated topology graph, the system can generate analysis output for the target software based on the updated software asset analysis results. When a user or other system component initiates a query request for a certain software, the system first parses the query request and extracts the target software asset identifier, the target analysis dimension, and whether the user requests the inclusion of relationship analysis.

[0111] In some embodiments, when the query request involves only statistical analysis, such as querying the deployment quantity of a software in different organizations, its coverage in a certain business line, or its distribution across different versions, the system can directly and quickly retrieve the corresponding statistical results from the multidimensional pre-computed data structure based on the target analysis dimension and the software identifier. The multidimensional pre-computed data structure has already been organized according to the aggregation key in the preceding steps; therefore, the system does not need to perform additional calculations and can return query results with extremely low latency, thus meeting the needs of business scenarios with high real-time requirements.

[0112] In the embodiments of this application, when a query request explicitly requests to view the associations, scope of influence, or dependency structure of the target software, the system can further utilize the updated topology graph to perform relationship traversal to obtain relationship analysis results related to the target software. For example, the system can search upwards or downwards along the dependency paths of software nodes for associated business systems, deployment organizations, component software, and other nodes to generate an analytical view of the relationship network, link structure, or scope of influence. After obtaining the relationship analysis results, the system can also combine these results with the analysis results under statistical dimensions, so that the final output includes both numerical statistical indicators and structural relationship information, forming a more comprehensive software asset analysis result.

[0113] In some embodiments, to reduce redundant calculations and improve system response speed, the system can cache relational analysis results and statistical analysis results according to certain conditions. When the same user or the same business process repeatedly queries the analysis results of the same target software within a short period of time, the system can directly return the results from the cache without re-executing the topology traversal and data combination process. In addition, the system can automatically identify high-frequency analysis dimensions based on query frequency and pre-calculate them, thereby forming an accelerated response mechanism for "hotspot dimensions".

[0114] Through the above methods, the embodiments of this application can flexibly support different query types and intelligently switch between statistical analysis and relational analysis according to business needs, providing efficient, accurate and multi-dimensional analysis capabilities for software governance, configuration planning and operation monitoring.

[0115] In embodiments of this application, to support software asset analysis capabilities in a multi-tenant environment, the system can attach tenant identifiers to the baseline software asset analysis results and the updated software asset analysis results to achieve logical isolation between different tenants. The tenant identifier is used to distinguish software asset data from different organizations, departments, or customer systems, ensuring that while each tenant shares the same analysis platform, their data remains independent, preventing cross-tenant access or interference during the analysis process.

[0116] To further ensure the separation of permissions among different users within a tenant, the system can pre-configure an organizational hierarchy tree for each tenant. This hierarchy tree reflects the tenant's internal organizational structure, including different levels such as group level, branch level, department level, or business unit level. The system can associate user accounts within a tenant with their corresponding organizational nodes based on the hierarchy tree, ensuring that each user can only access software asset data within their own organization and its subordinate organizations. During queries, the system can use this organizational hierarchy to restrict access, thereby ensuring that users can only access analysis content that matches their permissions within the tenant, further enhancing system security and controllability.

[0117] In the embodiments of this application, when the system receives a query request from a user account, it can filter out data within the access scope from the updated software asset analysis results based on the user's corresponding tenant identifier and organizational hierarchy restriction rules, and return the corresponding query results. For example, when a user's organization is a provincial node, the resources they can query will be limited to that provincial node and its subordinate municipal organizations, and they will not be able to access data at other provinces or headquarters levels. By combining tenant isolation with organizational hierarchy access control, the embodiments of this application not only support the partitioned use of multi-tenant systems, but also meet the internal permission management needs of organizations, enabling software asset analysis results to be securely provided to the corresponding business personnel in a granular manner, providing flexible and reliable permission control capabilities for enterprise-level software asset governance.

[0118] In the embodiments of this application, when the system receives a display request, it can generate multi-level view data based on the updated software asset analysis results for display on the software asset analysis interface. The multi-level view data can include statistical information and structural relationship information from different dimensions, enabling the interface to simultaneously present comprehensive analysis content in numerical, structural, and distributional forms. For example, the system can generate statistical view data such as software quantity statistics, organizational distribution statistics, and version evolution statistics based on the target analysis dimensions. These data can correspond to different summary levels, such as group level, regional level, organizational level, or system level. Simultaneously, the system can also generate relationship view data based on the updated topology diagram, such as deployment relationships between software and organizations, association relationships between software and systems, and dependency relationships between different software components, allowing users to intuitively understand the structural characteristics and interconnected networks of software assets graphically.

[0119] In some embodiments, the system can combine the aforementioned statistical view data and relational view data to generate a complete software asset analysis interface, which is then displayed on the front end. The interface can be presented in the form of charts, topology diagrams, tree structures, or combination panels, allowing users to interactively observe the distribution, structural relationships, and changing trends of software assets.

[0120] In the embodiments of this application, when a user performs a drill-down operation in the interface, such as selecting an institution node, a software category, a system component, or a version path, the system can perform targeted queries based on the updated topology map and the updated software asset analysis results to obtain more granular analysis data. By locating the target node in the topology map and combining it with pre-calculated analysis results, the system can quickly return statistical information and association structures related to the drill-down object and refresh the local views in the interface, allowing users to explore specific data details layer by layer. For example, after a user selects an institution in a certain region, the system can refresh and display the software deployment structure under that institution; after a user clicks on a software version node, the system can display the dependency chain, deployment scope, or historical evolution of that version. Through the above methods, the embodiments of this application can support multi-level, multi-dimensional dynamic visualization analysis, significantly improving the interactive experience and analytical capabilities of software asset governance.

[0121] Corresponding to the above-described software asset analysis method, embodiments of this application also provide a software asset analysis apparatus.

[0122] Figure 5 A schematic block diagram of a software asset analysis apparatus according to an embodiment of this application is shown.

[0123] like Figure 5 As shown, the software asset analysis device 500 of this embodiment includes a data acquisition module 510, a dynamic graph update module 520, an incremental calculation module 530, and a software asset analysis module 540.

[0124] The data acquisition module 510 can be used to acquire target events, which are generated by the software asset management process when a software asset undergoes a status change. Based on the target events and preset event rule information, at least one target analysis dimension and the corresponding affected data range are determined. In one embodiment, the data acquisition module 510 can be used to perform the operation S210 described above, which will not be repeated here.

[0125] The dynamic graph update module 520 can be used to incrementally update the dynamic topology graph for the affected data range to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities. In one embodiment, the dynamic graph update module 520 can be used to perform the operation S220 described above, which will not be repeated here.

[0126] The incremental calculation module 530 can be used to perform incremental aggregation calculations on the baseline software asset analysis results of the target analysis dimension based on the updated topology map, to obtain updated software asset analysis results. In one embodiment, the incremental calculation module 530 can be used to execute the operation S230 described above, which will not be repeated here.

[0127] The software asset analysis module 540 can be used to generate software asset analysis results for the target software based on the updated software asset analysis results. In one embodiment, the software asset analysis module 540 can be used to perform the operation S240 described above, which will not be repeated here.

[0128] According to an embodiment of this application, the data acquisition module 510 can also be used to retrieve target rule information matching the target event from a preset event rule table based on the event type, associated software asset identifier and / or associated organization identifier of the target event; determine at least one target analysis dimension based on the predefined analysis dimension association conditions in the target rule information; and determine the affected data range based on the predefined data filtering conditions in the target rule information.

[0129] According to an embodiment of this application, the data acquisition module 510 can also be used to map the software assets associated with the target event to the target category node in the software category tree based on the software category filtering conditions in the target rule information; to map the institution associated with the target event to the target institution node in the institution hierarchy tree based on the institution scope filtering conditions in the target rule information; and to combine the target category node and the target institution node, and determine the affected data range based on the combination result.

[0130] According to an embodiment of this application, the dynamic graph update module 520 can also be used to obtain a software asset identifier and a relationship identifier associated with the target event based on the affected data range; and to perform an incremental update operation in the dynamic topology graph based on the software asset identifier and the relationship identifier, including: updating the state attribute and time attribute of the first node or the first edge when there is a first node or the first edge corresponding to the software asset identifier or the relationship identifier in the dynamic topology graph; and adding a second node or the second edge and setting the corresponding attribute information when there is no node or edge corresponding to the software asset identifier or the relationship identifier in the dynamic topology graph.

[0131] According to an embodiment of this application, the incremental calculation module 530 can also be used to pre-establish a mapping relationship between node identifiers and aggregation keys for the target analysis dimension based on the attributes of nodes and edges in the dynamic topology graph, wherein the aggregation key is used to characterize the dimension combination identifier when statistically summarizing software assets under the target analysis dimension; and to organize the baseline software asset analysis results into a multi-dimensional pre-calculated data structure based on the aggregation key.

[0132] According to an embodiment of this application, the incremental calculation module 530 can also be used to determine the target node whose state has changed due to the target event based on the updated topology graph; locate the target aggregation unit corresponding to the target node in the multidimensional pre-computation data structure using the mapping relationship; and perform incremental aggregation calculation on the target aggregation unit.

[0133] According to an embodiment of this application, the software asset analysis module 540 can also be used to respond to a query request for the target software, parse the query request, and determine whether the target analysis dimension and target software asset identifier in the query request contain relationship analysis conditions based on the parsing result; if the query request does not contain relationship analysis conditions, read the corresponding statistical results from the multidimensional pre-computation data structure based on the target analysis dimension and the target software asset identifier; and if the query request contains relationship analysis conditions, perform relationship traversal based on the updated topology graph to obtain relationship analysis results, and associate and combine the relationship analysis results with the statistical results to generate the software asset analysis results for the target software.

[0134] According to embodiments of this application, the software asset analysis device 500 may further include a logical isolation module. The logical isolation module can be used to attach tenant identifiers to the baseline software asset analysis results and the updated software asset analysis results, the tenant identifiers being used for logical isolation of different tenants; pre-configure an organizational hierarchy tree for each tenant, the organizational hierarchy tree being used to associate a user account with its affiliated organizational node and the range of accessible organizational levels; and, in response to a query request from the user account, return query results within the corresponding organizational hierarchy tree range based on the corresponding tenant identifier.

[0135] According to an embodiment of this application, the software asset analysis device 500 may further include a display module. The display module can be used to, in response to a display request, generate multi-level view data based on the updated software asset analysis results, generate a software asset analysis interface based on the multi-level view data, and display it. The multi-level view data includes statistical view data generated for the target analysis dimension and relational view data generated based on the updated topology diagram. In response to a drill-down operation on the software asset analysis interface, the module performs a query based on the updated topology diagram and the updated software asset analysis results, and partially refreshes the corresponding view data.

[0136] According to embodiments of this application, any multiple modules among the data acquisition module 510, dynamic graph update module 520, incremental calculation module 530, and software asset analysis module 540 can be merged into one module, or any one of these modules can be split into multiple modules. Alternatively, at least some of the functions of one or more of these modules can be combined with at least some of the functions of other modules and implemented in one module. According to embodiments of this application, at least one of the data acquisition module 510, dynamic graph update module 520, incremental calculation module 530, and software asset analysis module 540 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or implemented in hardware or firmware by any other reasonable means of integrating or packaging the circuitry, or implemented in any one of the three implementation methods of software, hardware, and firmware, or in a suitable combination of any of these. Alternatively, at least one of the data acquisition module 510, dynamic graph update module 520, incremental calculation module 530, and software asset analysis module 540 may be implemented at least partially as a computer program module, which can perform corresponding functions when the computer program module is run.

[0137] Figure 6 A block diagram of an electronic device suitable for implementing a software asset analysis method according to an embodiment of this application is illustrated schematically.

[0138] like Figure 6 As shown, an electronic device 600 according to an embodiment of this application includes a processor 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage portion 608 into a random access memory (RAM) 603. The processor 601 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 601 may also include onboard memory for caching purposes. The processor 601 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of this application.

[0139] RAM 603 stores various programs and data required for the operation of electronic device 600. Processor 601, ROM 602, and RAM 603 are interconnected via bus 604. Processor 601 executes various operations of the method flow according to embodiments of this application by executing programs in ROM 602 and / or RAM 603. It should be noted that the programs may also be stored in one or more memories other than ROM 602 and RAM 603. Processor 601 may also execute various operations of the method flow according to embodiments of this application by executing programs stored in said one or more memories.

[0140] According to embodiments of this application, the electronic device 600 may further include an input / output (I / O) interface 605, which is also connected to a bus 604. The electronic device 600 may also include one or more of the following components connected to the input / output (I / O) interface 605: an input section 606 including a keyboard, mouse, etc.; an output section 607 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the input / output (I / O) interface 605 as needed. A removable medium 611, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 610 as needed so that computer programs read from it can be installed into the storage section 608 as needed.

[0141] This application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs, which, when executed, implement the method according to the embodiments of this application.

[0142] According to embodiments of this application, the computer-readable storage medium can be a non-volatile computer-readable storage medium, such as including but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, the computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this application, the computer-readable storage medium may include ROM 602 and / or RAM 603 and / or one or more memories other than ROM 602 and RAM 603 described above.

[0143] Embodiments of this application also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code enables the computer system to implement the software asset analysis method provided in the embodiments of this application.

[0144] When the computer program is executed by the processor 601, it performs the functions defined in the system / apparatus of this application embodiment. According to the embodiments of this application, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0145] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and installed via the communication section 609, and / or installed from the removable medium 611. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0146] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 609, and / or installed from the removable medium 611. When the computer program is executed by the processor 601, it performs the functions defined in the system of this application embodiment. According to the embodiments of this application, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0147] According to embodiments of this application, program code for executing the computer programs provided in the embodiments of this application can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C", or similar programming languages. The program code can be executed entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0148] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0149] Those skilled in the art will understand that the features described in the various embodiments of this application can be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in this application. In particular, the features described in the various embodiments of this application can be combined and / or combined in various ways without departing from the spirit and teachings of this application. All such combinations and / or combinations fall within the scope of this application.

[0150] The embodiments of this application have been described above. However, these embodiments are merely illustrative and not intended to limit the scope of this application. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. Without departing from the scope of this application, those skilled in the art can make various substitutions and modifications, all of which should fall within the scope of this application.

Claims

1. A software asset analysis method, characterized in that, The method includes: Obtain the target event, which is generated by the software asset management process when the software asset undergoes a status change; based on the target event and preset event rule information, determine at least one target analysis dimension and the corresponding affected data range; For the affected data range, the dynamic topology graph is incrementally updated to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities; Based on the updated topology map, incremental aggregation calculations are performed on the baseline software asset analysis results for the target analysis dimension to obtain the updated software asset analysis results; and Based on the updated software asset analysis results, software asset analysis results for the target software are generated.

2. The method according to claim 1, characterized in that, The step of determining at least one target analysis dimension and its corresponding affected data range based on the target event and preset event rule information includes: Based on the event type, associated software asset identifier, and / or associated organization identifier of the target event, retrieve target rule information matching the target event from the preset event rule table; Based on the predefined analysis dimension association conditions in the target rule information, at least one target analysis dimension is determined; and Based on the predefined data filtering conditions in the target rule information, the range of affected data is determined.

3. The method according to claim 2, characterized in that, The determination of the affected data range based on predefined data filtering conditions in the target rule information includes: Based on the software category filtering conditions in the target rule information, the software assets associated with the target event are mapped to the target category node in the software category tree; Based on the organization scope filtering conditions in the target rule information, the organizations associated with the target event are mapped to target organization nodes in the organization hierarchy tree; and The target category node and the target organization node are combined, and the affected data range is determined based on the combination result.

4. The method according to claim 1, characterized in that, The incremental update of the dynamic topology graph for the affected data range includes: Based on the affected data range, obtain the software asset identifier and association relationship identifier associated with the target event; Based on the software asset identifier and the association relationship identifier, an incremental update operation is performed on the dynamic topology graph. This includes: if a first node or first edge corresponding to the software asset identifier or the association identifier exists in the dynamic topology graph, updating the state attribute and time attribute of the first node or first edge; if a second node or second edge corresponding to the software asset identifier or the association identifier does not exist in the dynamic topology graph, adding a second node or second edge and setting the corresponding attribute information.

5. The method according to claim 1, characterized in that, Before performing incremental aggregation calculations on the baseline software asset analysis results of the target analysis dimension based on the updated topology map, the method further includes: Based on the attributes of nodes and edges in the dynamic topology graph, a mapping relationship between node identifiers and aggregation keys is pre-established for the target analysis dimension. The aggregation key is used to characterize the dimension combination identifier when statistically summarizing software assets under the target analysis dimension. The benchmark software asset analysis results are organized into a multidimensional pre-computed data structure based on the aggregation key.

6. The method according to claim 5, characterized in that, The incremental aggregation calculation of the baseline software asset analysis results for the target analysis dimension based on the updated topology map includes: Based on the updated topology graph, the target node whose state has changed due to the target event is determined; Using the mapping relationship, the target aggregation unit corresponding to the target node is located in the multidimensional pre-computation data structure; and Incremental aggregation calculations are performed on the target aggregation unit.

7. The method according to claim 1, characterized in that, The step of generating software asset analysis results for the target software based on the updated software asset analysis results includes: In response to a query request for the target software, the query request is parsed, and based on the parsing results, it is determined whether the target analysis dimension and the target software asset identifier in the query request contain relationship analysis conditions. If the query request does not contain relational analysis conditions, based on the target analysis dimension and the target software asset identifier, the corresponding statistical results are read from the multidimensional pre-computed data structure; and If the query request includes relational analysis conditions, relational traversal is performed based on the updated topology graph to obtain relational analysis results, and the relational analysis results are associated and combined with the statistical results to generate the software asset analysis results for the target software.

8. The method according to claim 3, characterized in that, The method further includes: A tenant identifier is attached to the baseline software asset analysis results and the updated software asset analysis results. The tenant identifier is used to logically isolate different tenants. An organizational hierarchy tree is pre-configured for each tenant, which is used to associate user accounts with their respective organizational nodes and the range of accessible organizational levels; and In response to the query request from the user account, the query results are returned within the corresponding organization hierarchy tree based on the corresponding tenant identifier.

9. The method according to claim 1, characterized in that, The method further includes: In response to a display request, multi-level view data is generated based on the updated software asset analysis results, and a software asset analysis interface is generated and displayed based on the multi-level view data. The multi-level view data includes statistical view data generated for the target analysis dimension and relational view data generated based on the updated topology diagram. In response to a drill-down operation on the software asset analysis interface, a query is executed based on the updated topology and the updated software asset analysis results, and the corresponding view data is partially refreshed.

10. A software asset analysis device, characterized in that, The device includes: The data acquisition module is used to: acquire a target event, which is generated by the software asset management process when the software asset undergoes a status change; and determine at least one target analysis dimension and the corresponding affected data range based on the target event and preset event rule information. The dynamic graph update module is used to: incrementally update the dynamic topology graph for the affected data range to obtain an updated topology graph, wherein the dynamic topology graph represents the relationship between software assets and corresponding associated entities; The incremental calculation module is used to: perform incremental aggregation calculations on the baseline software asset analysis results of the target analysis dimension based on the updated topology map, to obtain the updated software asset analysis results; and The software asset analysis module is used to generate software asset analysis results for the target software based on the updated software asset analysis results.

11. An electronic device, comprising: One or more processors; Memory, used to store one or more computer programs. The characteristic feature is that the one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 9.

12. A computer-readable storage medium having a computer program or instructions stored thereon, characterized in that, When the computer program or instructions are executed by a processor, they implement the steps of the method according to any one of claims 1 to 9.

13. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instructions are executed by a processor, they implement the steps of the method according to any one of claims 1 to 9.