Page processing method and device, electronic equipment, storage medium and program product

By managing the software system's plugins through a plugin center and plugin description files, the functional modules are broken down into a plugin center, container components, and functional plugins. This solves the problem of poor code maintainability in the software system and enables independent maintenance of functions and logical expansion in multiple business scenarios.

CN122363736APending Publication Date: 2026-07-10BEIJING ZITIAO NETWORK TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING ZITIAO NETWORK TECH CO LTD
Filing Date
2025-01-10
Publication Date
2026-07-10

AI Technical Summary

Technical Problem

In existing software systems, the same function is coupled with the logic code of multiple business operations, resulting in poor code maintainability and difficulty in low-cost adaptation and independent maintenance of functions in multiple business scenarios.

Method used

By using the plugin center to manage plugins based on plugin description files in the software system, the functional modules are broken down into the plugin center, container components, and functional plugins. Plugin management and rendering are carried out using plugin description files, enabling independent maintenance of functions.

Benefits of technology

It achieves functional isolation and independent maintenance for different business functions, improves code maintainability, and supports logical expansion and independent functional maintenance in multiple business scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122363736A_ABST
    Figure CN122363736A_ABST
Patent Text Reader

Abstract

This disclosure provides a page processing method, apparatus, electronic device, storage medium, and program product. The page processing method includes managing plugins of a software system through a plugin center based on plugin description files. The plugin center manages the runtime state of the plugins. The plugin description files include business-level plugin description files, indicating the plugins included in the corresponding business. In response to a page display operation, a container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center; and the plugins included in the target business are rendered. This page processing method solves the problem of poor code maintainability caused by the coupling of multiple business logic codes for the same function when implementing various functions in a software system. By making the software system pluggable, independent maintenance of functions is achieved, improving code maintainability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to computer technology, and more particularly to page processing methods, apparatus, electronic devices, storage media, and program products. Background Technology

[0002] A software system is a collection of computer programs organized in a specific order. It achieves specific functions through the collaborative operation of these programs. For example, an instant messaging system uses a network to enable real-time text interaction, voice calls, video communication, and file transfer.

[0003] However, when implementing various functions in a software system, the same function is coupled with the logic code of multiple business processes, resulting in poor code maintainability. Summary of the Invention

[0004] This disclosure provides page processing methods, apparatus, electronic devices, storage media, and program products to solve the problem of poor code maintainability caused by coupling multiple business logic codes for the same function when implementing various functions in a software system.

[0005] In a first aspect, embodiments of this disclosure provide a page processing method, including:

[0006] The plugins of the software system are managed through a plugin center based on plugin description files. The plugin center is used to manage the runtime state of the plugins. The plugin description files include business-dimensional plugin description files, which indicate the plugins included in the corresponding business.

[0007] In response to a page display operation, the container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center.

[0008] Render the plugins included in the target service.

[0009] Secondly, embodiments of this disclosure also provide a page processing apparatus, including:

[0010] The management module is used to manage the plugins of the software system through the plugin center based on the plugin description file. The plugin center is used to manage the runtime state of the plugins. The plugin description file includes a business-dimensional plugin description file, which indicates the plugins included in the corresponding business.

[0011] The acquisition module is used to respond to page display operations by acquiring the plugins included in the target business corresponding to the page to be displayed from the plugin center through the container component;

[0012] The rendering module is used to render the plugins included in the target service.

[0013] Thirdly, embodiments of this disclosure also provide an electronic device, the electronic device comprising:

[0014] One or more processing devices;

[0015] Storage device for storing one or more programs.

[0016] When the one or more programs are executed by the one or more processing devices, the one or more processing devices implement the page processing method provided in the embodiments of this disclosure.

[0017] Fourthly, embodiments of this disclosure also provide a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the page processing method provided in this disclosure.

[0018] Fifthly, embodiments of this disclosure also provide a computer program product, including a computer program that, when executed by a processor, implements the page processing method provided in this disclosure.

[0019] This disclosure discloses an embodiment that manages software system plugins based on plugin description files through a plugin center. The plugin description file indicates the plugins included in the corresponding business function. There is a correspondence between pages and business functions; during the process of triggering and displaying a page, the plugins included in the corresponding business function can be retrieved from the plugin center, and then the plugins are rendered. This disclosure modularizes the software system, with different business functions having corresponding plugin description files, and plugins for different business functions can be managed independently. This enables independent maintenance of functions and improves code maintainability. Attached Figure Description

[0020] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.

[0021] Figure 1 This is a flowchart of a page processing method provided in an embodiment of this disclosure;

[0022] Figure 2 This is a schematic diagram of a system architecture provided in an embodiment of this disclosure;

[0023] Figure 3 This is a schematic diagram of a rendering plugin provided in an embodiment of this disclosure;

[0024] Figure 4 This is a schematic flowchart of another page processing method provided in the embodiments of this disclosure;

[0025] Figure 5 This is a schematic diagram of a session list on a page to be displayed, provided by an embodiment of this disclosure;

[0026] Figure 6 This is a schematic diagram of an interface for displaying messages on a page to be displayed, provided by an embodiment of this disclosure;

[0027] Figure 7 This is a schematic diagram of a plugin lifecycle provided in an embodiment of this disclosure;

[0028] Figure 8 This is a sequence diagram provided in this publication, showing the process from plugin registration to plugin uninstallation.

[0029] Figure 9 This is a schematic diagram of a module release provided in this public disclosure;

[0030] Figure 10 This is a schematic diagram of the structure of a page processing device provided in an embodiment of this disclosure;

[0031] Figure 11 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation

[0032] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0033] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.

[0034] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.

[0035] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.

[0036] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0037] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0038] A software system is a component of a computer system composed of software. The software system provided in this disclosure can be an instant messaging system. This disclosure uses a customer service system as an example. With the development of customer service systems, the business scenarios using instant messaging (IM) related functions have also expanded. Currently, IM supports content, e-commerce, and other business directions on the work platform, and in terms of product form, it also provides one-on-one chat, group chat, hosting, and monitoring methods. This multi-business compatibility and multi-product form business scenario brings considerable challenges to the maintenance of the IM system.

[0039] The same functionality is coupled with logic code from multiple business processes without proper isolation. For example, the logic for "Can the session be ended?" and "Callback handling after end?" in the session completion function already supports special logic from multiple business processes. The code for this function is quite extensive, and when adding new business processes, additional processing logic needs to be hard-coded. This hard-coded development approach with multiple business processes results in numerous if-else statements for business judgments, affecting the logic of different levels of internal components and the user interface (UI). This leads to a very large amount of code in the main modules, and the impact of changes is uncontrollable.

[0040] To address the aforementioned technical problems, this disclosure provides a page processing method. Figure 1 This is a flowchart of a page processing method provided in an embodiment of the present disclosure. The embodiments of the present disclosure are applicable to situations that improve the maintainability of code in a software system. The method can be executed by a page processing device, which can be implemented in the form of software and / or hardware. Optionally, it can be implemented by an electronic device, such as a mobile terminal, a PC, or a server.

[0041] like Figure 1 As shown, the method includes:

[0042] S110. Manage software system plugins through the plugin center based on plugin description files.

[0043] The software system disclosed herein employs a plug-in approach, decomposing functional modules. For example, functional modules supporting multiple business logics can be decomposed and modified to achieve independent maintenance. The following description uses an instant messaging system as an example, dividing the system into a plug-in center responsible for plug-in loading, a container component handling slots, and functional plug-ins responsible for specific business implementations. Functional plug-ins can be deployed on the server side, while the plug-in center and container component can be deployed on the electronic device running the instant messaging system. In this disclosure, a slot can be a specific area in the page layout capable of rendering components.

[0044] This disclosure breaks down the business implementation of an instant messaging system into container components, a plugin center, and functional plugins.

[0045] The plugin center manages the runtime state of plugins, including loading and registering page plugins. Different business logic loads different plugin lists, also known as plugin description files, thus isolating business functions at the code loading level. A plugin description file can be considered a file that describes the plugin. For example, a plugin description file describes the plugin's type, name, version number, dependent plugins, the version number of the host instant messaging system, and the corresponding slot, among other information.

[0046] Container components can be considered as containers that hold slots. They provide specific areas for displaying UI and injecting business functionality. By defining named slots, you can flexibly adjust where in the page layout a plugin should be displayed and interacted with. Slots can be specific areas or positions reserved within UI components or layout frameworks to facilitate the easy and flexible insertion of other UI elements, components, or content. Named slots allow parent components to specify where content should be rendered in child components when passing content to them, enabling more flexible content distribution by naming the slots.

[0047] Functional plugins, as the smallest unit for implementing business functions, undertake specific logical functions for different businesses. Multiple plugin sets can provide the complete IM functions required by the business. For example, multiple plugins included in a certain function can be grouped into a plugin set to facilitate the implementation of that function.

[0048] An instant messaging system can provide multiple services, and a single service can include multiple functions. A single function can include multiple functional plugins.

[0049] The plugin description file includes a business-level plugin description file, which indicates the plugins included in the corresponding business.

[0050] Figure 2This is a schematic diagram of a system architecture provided in an embodiment of this disclosure. See also... Figure 2 The container component houses the slots within the session area and message area, respectively. The container component uses plugins registered in the plugin center. The plugin center handles plugin integration: plugin download, plugin registration (the plugin center registers plugins based on their description files, determining which slot in the container component displays which component), plugin execution, and plugin uninstallation. The plugin center can categorize plugins according to their functionality, including but not limited to UI plugins, data plugins, and transaction plugins.

[0051] The interface plugin is used for display and interaction within its corresponding slot area; the slot area can be considered the area where the slot is located. The data plugin provides the data required by the plugin; the transaction plugin implements the defined business logic.

[0052] The use cases for UI plugins are as follows: Instant messaging systems provide default components and corresponding slots. When the default components do not meet business requirements, they can be customized and replaced through UI plugins.

[0053] The use cases for data plugins are as follows: Common global data that needs to be used in interface plugins and / or transaction plugins is included in the data plugin.

[0054] The use cases for transaction plugins are as follows: They can be used to execute methods for specific business scenarios and participate in the internal logic processing of the middle platform. For example, in an instant messaging scenario, whether a work order is completed differs between the content and e-commerce sides, but the interface remains the same. Therefore, a corresponding transaction plugin can be introduced for customized processing.

[0055] Data plugins can be used to store data, while interface plugins and transaction plugins can use the data within them. Transaction plugins enable the injection of specific business logic into logical extension points. The business logic of these extension points can be called transaction plugins. Transaction plugins indicate methods for specific scenarios to participate in general components to support different business logics, such as inserting extension points into general components. Before executing a specific function in the general component, it is first determined whether there is business logic from the extension point. If so, the business logic of the extension point is executed.

[0056] The plugin management functionality in the system architecture can be categorized into three types: platform plugins, general business plugins, and specific business plugins. Platform plugins provide the basic functions of the instant messaging system. General business plugins are common plugins provided by the customer service system within the platform. Specific business plugins are plugins that, in addition to general business plugins, are for specific business applications. Management capabilities include managing plugins such as plugin description files, version control, plugin release, and plugin merging. Plugin merging can be done by creating plugin collections based on functionality.

[0057] Plug-in management can distribute plug-in description files to the plug-in center. Different business functions can have different plug-in description files. The plug-in center manages the plug-ins of the software system at runtime based on the plug-in description files. The plug-in description file is a business-level description file; each business function has its own corresponding plug-in description file, indicating the plug-ins included in the business function and the corresponding slots.

[0058] S120. In response to the page display operation, obtain the plugins included in the target business corresponding to the page to be displayed from the plugin center through the container component.

[0059] Page display operations can be considered as operations that trigger the display of the page, such as clicking on controls that trigger the display of the page.

[0060] The page to be displayed can be the page triggered by a page display operation. Before displaying the page to be displayed, the container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center. The target business can be the business corresponding to the page to be displayed.

[0061] This embodiment can determine the target service corresponding to the page to be displayed, and then obtain the required plugins for the page to be displayed from the plugin center corresponding to the target service. Plugins can be selected based on the slots included in the page to be displayed.

[0062] S130, Render the plugins included in the target service.

[0063] Once the plugin is obtained, this operation can render the plugin for the target business.

[0064] Figure 3 This is a schematic diagram of a rendering plugin provided in an embodiment of this disclosure. See also... Figure 3 Upon triggering the page opening, the plugin description file corresponding to the page's business logic can be retrieved. The plugin is then loaded through the plugin center and registered. Plugin consumption is then executed. During consumption, it's determined whether a plugin for the corresponding slot on the page exists (based on the slot name, the plugin center is consulted for a matching plugin). If so, the UI is rendered; otherwise, the default plugin is retrieved and rendered. The plugin description file can be one generated and packaged during the plugin development phase. The determination of the business logic corresponding to the page is not limited here and can be based on the page's links.

[0065] In this disclosure, the plugin description file can be obtained after the page is opened or during software system initialization; no limitation is made here.

[0066] The plugin center loads and registers plugins based on plugin description files (i.e., defines plugins and their corresponding slots, and groups and manages plugins based on plugin description files). Container components obtain plugins from the plugin center and use them in slots, i.e., consume plugins.

[0067] The technical solution of this disclosure manages software system plugins through a plugin center based on plugin description files. The plugin description file indicates the plugins included in the corresponding business. There is a correspondence between pages and business functions. During the process of triggering and displaying a page, the plugins included in the business corresponding to the page can be obtained from the plugin center, and then the plugins are rendered. This disclosure modularizes the software system, with different business functions having corresponding plugin description files, and plugins for different business functions can be managed independently. This achieves independent maintenance of functions and improves code maintainability.

[0068] Figure 4 This is a flowchart illustrating another page processing method provided in this disclosure embodiment; this embodiment details the operation of obtaining the plugin, see [link to relevant documentation]. Figure 4 Page processing methods include the following operations:

[0069] S410, manage the software system's plugins through the plugin center based on the plugin description file.

[0070] S420. In response to the page display operation, the slot identifiers of the slot area included in the page to be displayed are traversed through the container component, and the plugin corresponding to the slot identifier is obtained from the plugins of the target business in the plugin center.

[0071] A slot identifier can be considered a unique identifier for a slot. The page to be displayed may include multiple slot areas, each characterized by its own slot identifier. The plugins to be inserted into a slot can be specified in the plugin description file, and the plugin center registers the plugins according to the plugin description file.

[0072] Before rendering the page to be displayed, the container component can iterate through the plugin identifiers of all plugin areas and retrieve the corresponding plugin from the plugin center for the target business based on the slot identifier. If the plugin is found, rendering is performed based on the retrieved plugin; otherwise, the default plugin is retrieved and rendered.

[0073] Figure 5 This is a schematic diagram of a session list on a page to be displayed, provided by an embodiment of this disclosure. Figure 6 This is a schematic diagram of a message display interface on a page to be displayed, provided by an embodiment of this disclosure. The dashed lines represent reserved slot areas, and the areas corresponding to the solid lines and dotted lines render the UI and implement business functions according to specific slots. The dotted-lined areas can be container components, which may include named slots. See also... Figure 5A dashed line can represent the positional relationship between a location and an area, such as "before the session display area" indicating that the location is before the session display area. The slots included in the agent display area, queue information, auxiliary functions, and session display can each have their own slot identifier to retrieve the corresponding plugin from the plugin center and render it into the corresponding slot. The queue information and auxiliary functions within the dashed box can represent reserved slot areas. A slot can be considered the location of a slot, and each slot can correspond to a slot area. Slots can be named based on the function of their respective area and their relative position within that area. Taking the agent display area as an example, the slot identifiers for the six included slots can be: left agent information, middle agent information, right agent information, lower left agent information, lower middle agent information, and lower right agent information.

[0074] See Figure 6 The message display includes a reserved command area, a conversation message display area, a pre-prompt area, a message display area, a post-prompt area, and a message input area. Each slot can have its own corresponding slot identifier to obtain the corresponding plugin from the plugin center.

[0075] In one embodiment, the step of responding to a page display operation by traversing the slot identifiers of the slot area included in the page to be displayed through a container component, and obtaining the plugin corresponding to the slot identifier from the plugins corresponding to the target business in the plugin center, includes:

[0076] In response to a page display operation, the slot identifiers of the slot area included in the page to be displayed are traversed through the container component;

[0077] For each slot identifier that has been traversed, the plugin corresponding to the slot identifier is obtained from the plugins corresponding to the target business in the plugin center by using the component acquisition method.

[0078] If not found, the default component will be the plugin corresponding to the slot identifier.

[0079] The method for obtaining a component can be considered the method for obtaining a plugin, such as the method for obtaining a UI plugin.

[0080] The default plugin can be considered as the plugin that is used by default.

[0081] In this embodiment, the slot identifiers of the slot area included in the page to be displayed are traversed. The corresponding plugin is obtained for each slot. In the process of obtaining plugins for slots, for each traversed slot identifier, the plugin corresponding to the slot identifier is obtained from the plugins of the target business corresponding to the slot center using the component retrieval method. If no plugin corresponding to the slot identifier is found, the default plugin is determined to be the plugin corresponding to the slot identifier.

[0082] UI plugins can display interactive features in specific slot areas. The plugin center SDK provides methods to retrieve plugins, allowing you to obtain a list of plugins required for a specific slot.

[0083] Within the container component, custom slot areas can be defined to flexibly adjust the page layout. At runtime, the plugins from the plugin center are retrieved and rendered using the slot names, thus consuming the UI plugins. For example, three slot areas are defined in the session information header area, and plugins are dynamically retrieved and rendered based on the slot identifiers of these areas. The slot identifiers can indicate the relative position of the corresponding slot, such as the left, top-middle, bottom-middle, or right side of the session information.

[0084] For the use of data plugins, the plugin base SDK provides methods for obtaining data registration, which need to be declared in the entry file during plugin build and packaging. This disclosure obtains the data model through a function, and the data model is injected into the global context during data plugin registration.

[0085] Regarding the use of transaction plugins, these plugins are responsible for implementing the specific functional logic extension points. Therefore, it is necessary to define the name of the transaction plugin to be executed within the component and obtain the corresponding function through the method for executing business functions provided in this solution.

[0086] When using the transaction plugin, you need to provide the name of the function to be used. After the transaction plugin is executed, the data returned by the plugin will be placed in the results. When the plugin's success status is true, the corresponding data can be retrieved.

[0087] The logical functionality of the extension point is achieved by retrieving the function execution corresponding to the extension point from the plugin.

[0088] S430, Render the plugins included in the target service.

[0089] This embodiment provides a page processing method. When acquiring plugins, based on the slot identifiers of the slot areas included in the page to be displayed, each slot is traversed, and the corresponding plugin is loaded for each slot. This achieves plugin-based page rendering.

[0090] Based on the above embodiments, modified embodiments of the above embodiments are proposed. It should be noted that, in order to keep the description brief, only the differences from the above embodiments are described in the modified embodiments.

[0091] In one embodiment, the plugin indicated by the plugin description file includes one or more of the following:

[0092] Interface plugin, which is used for display and interaction in the corresponding slot area;

[0093] Data plugin, which provides the data required by the plugin;

[0094] A transaction plugin, which is used to implement the defined business logic.

[0095] In this embodiment, the plugins indicated by the plugin description file include at least one of interface plugins, data plugins, and transaction plugins. Setting business logic may include the business logic of the defined extension points.

[0096] In one embodiment, the plugin description file indicates the data plugin on which the interface plugin depends and the transaction plugin on which the interface plugin depends;

[0097] The interface plugin is used to obtain data from the data plugin it depends on by executing data functions;

[0098] The interface plugin is used to execute the set business logic in the transaction plugin it depends on by executing the transaction function.

[0099] The plugin description file indicates the data plugins that the UI plugin depends on. It also indicates the transaction plugins that the UI plugin depends on.

[0100] Figure 7 This is a schematic diagram of a plugin lifecycle provided in an embodiment of this disclosure. See also... Figure 7 The overall lifecycle of a plugin includes plugin development, plugin release, and plugin operation. During the plugin development phase, a complete development scaffolding and plugin templates are provided to facilitate rapid development and best practices. A plugin platform is offered for plugin registration, release, and preview capabilities, contributing to a robust ecosystem.

[0101] At the plugin runtime level, a corresponding loading base (plugin center) needs to be provided to load the plugin and execute the corresponding initialization logic, and to execute the plugin uninstallation capability when the session ends or at other times.

[0102] Plugin development includes plugin registration and plugin development and debugging. A plugin is a piece of code (React UI component, Store instance, logic function, etc.) responsible for implementing specific business logic.

[0103] Taking UI plugins as an example, data from data plugins is used to display UI elements and enable interactive functions in specific slot areas. For instance, the session name plugin is primarily responsible for displaying session name information from the data object.

[0104] Take a data plugin as an example. It is broken down according to the business model (the model of business functions) to provide business data management capabilities. For instance, a data plugin might primarily maintain the on / off configurations for functions such as session grouping and session sorting.

[0105] Take the transaction plugin as an example. The business logic extension point for the plugin supports the injection of specific logic from multiple business functions. For instance, the "Whether to show the button" logic extension point can be injected into the "Complete" button to implement specific business logic.

[0106] In one embodiment, all plugins in the plugin description file have a unified entry file, which is used to complete the plugin registration.

[0107] In plugin development, the project's packaging configuration needs to be modified to add a module federation packaging method, namely ModuleFederationPlugin. An entry file, such as . / init, should be exposed externally. The underlying principle of plugin building and packaging is based on module federation.

[0108] In this disclosure, plugins need to implement an initialization method, i.e., the `init` method. The `init` method handles the actual registration of the UI, events, and other plugin components. Finally, the `init` method is exposed externally through `ModuleFederationPlugin`. Registering the UI plugin involves creating and adding interface elements, which can be any component that interacts with the user.

[0109] This disclosure does not restrict the naming of plugins; for example, it can consist of the business entity to which the plugin belongs and the plugin name. The plugin name itself is not limited here and can be entirely lowercase. Plugin version management can adopt a three-part format, i.e., xyz.

[0110] Specifically, 'x' can be used to update the number segment when there are disruptive changes. 'y' can be used to update the number segment when new features are added. 'z' can be used to update the number segment when vulnerability fixes are implemented.

[0111] Plugins are built and packaged based on module federation. Loading a plugin requires a plugin description file. The plugin description file describes the plugin's build information, runtime environment, business attributes, etc., through a schema protocol.

[0112] In one example, for a UI plugin, the plugin description file may include the plugin type, plugin name, plugin version number, the version number of the host instant messaging system, and one or more dependent plugins.

[0113] In one example, for a data plugin, the plugin description file may include the plugin type, plugin name, plugin version number, version number of the host instant messaging system, and one or more of the dependent plugins.

[0114] In one example, for a transaction plugin, the plugin description file may include the plugin type, plugin name, plugin version number, the version number of the host instant messaging system, and one or more dependent plugins.

[0115] After obtaining the plugin description file, the plugin center acquires plugin resources by dynamically creating scripts and completes the local registration of the plugin and the injection of the global context.

[0116] Figure 8 This is a sequence diagram provided in this publication, showing the process from plugin registration to plugin uninstallation. See [link / reference]. Figure 8 The process involves several steps: plugin registration yields the plugin description file; plugin creation is performed using a scaffolding tool; local plugin development is then conducted; and finally, the plugin is published. After plugin configuration loading, context injection, event bus injection, and action injection are performed. Finally, the plugin is unloaded.

[0117] Figure 9 This is a schematic diagram of a module release provided in this public disclosure; see [link / reference]. Figure 9 The plugin release is integrated with the module federation release platform. When a plugin is created, the corresponding module information is registered on the module federation release platform. The final plugin description file is built through a pipeline: read the configuration file, obtain the plugin, and assemble the plugin description file.

[0118] In one embodiment, the plugin description file includes a plugin set, which comprises a collection of plugins with related functions.

[0119] A plugin collection includes a set of plugins related to a function, such as a set of plugins required to implement a certain function.

[0120] Currently, the business function sets are not well aggregated and managed, and are scattered across various codebases. For example, the message hosting function set involves modifications to multiple elements such as operation buttons and input boxes. Currently, it is coded and maintained within each front-end component, making it difficult to intuitively assess the overall impact of the function, especially in multi-business scenarios. A software system can consist of multiple functions, which should be grouped according to their purpose to form function sets.

[0121] This public release provides a collection of plugins for the aggregation and management of plugins corresponding to specific functions.

[0122] In one embodiment, the plugin management system via a plugin center based on plugin description files includes:

[0123] During the initialization of the plugin center, the plugin description file is obtained from the management center through the plugin center. The management center is used to manage the functionality of the plugins.

[0124] Obtain the plugin corresponding to the plugin description file through the plugin center;

[0125] The plugin is registered through the plugin center based on the plugin description file.

[0126] The management center can implement plugin management in the software architecture, such as managing the functions of plugins. In this embodiment, when the plugin center is initialized, the plugin description files of the plugins included in the software system are obtained from the management center through the plugin center.

[0127] After obtaining the plugin description file from the plugin center, the plugin is retrieved based on the plugin description file. Then, the plugin is registered based on the plugin description file, establishing the mapping between plugins and slots.

[0128] This disclosure implements a plug-in approach for instant messaging systems, solving the problems of hard-coding functionality and page layout, which makes it difficult to adapt the same codebase to multiple product forms at low cost. It also addresses issues such as the lack of proper decomposition and encapsulation of atomic capabilities, the inability to support expansion and changes in layout, and the need for complete code refactoring when layouts need to change across different products, resulting in high costs.

[0129] This disclosure provides slots for rendering business-specific functional components, addressing the needs of IM systems for logical expansion and independent functional maintenance in supporting multiple business scenarios from the perspectives of logic, UI, and layout.

[0130] During the initialization of the IM system or plugin center, the corresponding plugin description file is loaded based on the business attributes. The component is then rendered in the slots provided by the container component, achieving functional isolation between different business functions. It also provides business extension points for plugins to implement logical extensions for specific business functions.

[0131] This disclosure effectively achieves functional isolation of multiple services through plugin configuration for different business functions. Furthermore, it provides business extension capabilities for plugins, achieving the effects of reusing general functions and injecting extended business logic.

[0132] Figure 10 This is a schematic diagram of a page processing device provided in an embodiment of the present disclosure. The page processing device can be integrated into an electronic device, such as... Figure 10 As shown, the device includes:

[0133] The management module 1010 is used to manage the plugins of the software system through the plugin center based on the plugin description file. The plugin center is used to manage the runtime state of the plugins. The plugin description file includes a plugin description file of the business dimension, and the plugin description file indicates the plugins included in the corresponding business.

[0134] The acquisition module 1020 is used to retrieve the plugins included in the target business corresponding to the page to be displayed from the plugin center through the container component in response to the page display operation.

[0135] The rendering module 1030 is used to render the plugins included in the target service.

[0136] The technical solution provided in this disclosure allows the management module to manage plugins in the software system through a plugin center based on plugin description files. The plugin description file indicates the plugins included in the corresponding business. There is a correspondence between pages and business functions. During the process of triggering the display of a page, the acquisition module retrieves the plugins included in the business corresponding to the page from the plugin center, and then the rendering module performs plugin rendering. This disclosure modularizes the software system, with different business functions having corresponding plugin description files, and plugins for different business functions can be managed independently. This achieves independent maintenance of functions and improves code maintainability.

[0137] In one embodiment, the page to be displayed includes multiple slot areas, and the acquisition module 1020 is specifically used for:

[0138] In response to a page display operation, the container component iterates through the slot identifiers of the slot area included in the page to be displayed, and retrieves the plugin corresponding to the slot identifier from the plugins corresponding to the target business in the plugin center.

[0139] In one embodiment, the plugin indicated by the plugin description file includes one or more of the following:

[0140] Interface plugin, which is used for display and interaction in the corresponding slot area;

[0141] Data plugin, which provides the data required by the plugin;

[0142] A transaction plugin, which is used to implement the defined business logic.

[0143] In one embodiment, the plugin description file indicates the data plugin on which the interface plugin depends and the transaction plugin on which the interface plugin depends;

[0144] The interface plugin is used to obtain data from the data plugin it depends on by executing data functions;

[0145] The interface plugin is used to execute the set business logic in the transaction plugin it depends on by executing the transaction function.

[0146] In one embodiment, the acquisition module 1020 is specifically used for:

[0147] In response to a page display operation, the slot identifiers of the slot area included in the page to be displayed are traversed through the container component;

[0148] For each slot identifier that has been traversed, the plugin corresponding to the slot identifier is obtained from the plugins corresponding to the target business in the plugin center by using the component acquisition method.

[0149] If not found, the default component will be the plugin corresponding to the slot identifier.

[0150] In one embodiment, all plugins in the plugin description file have a unified entry file, which is used to complete the plugin registration.

[0151] In one embodiment, the plugin description file includes a plugin set, which comprises a collection of plugins with related functions.

[0152] In one embodiment, the management module 1010 is specifically used for:

[0153] During the initialization of the plugin center, the plugin description file is obtained from the management center through the plugin center. The management center is used to manage the functionality of the plugins.

[0154] Obtain the plugin corresponding to the plugin description file through the plugin center;

[0155] The plugin is registered through the plugin center based on the plugin description file.

[0156] The page processing apparatus provided in this disclosure can execute the page processing method provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects of executing the method.

[0157] It is worth noting that the various units and modules included in the above-mentioned device are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be realized; in addition, the specific names of each functional unit are only for easy differentiation and are not used to limit the protection scope of the embodiments of this disclosure.

[0158] Figure 11 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Refer to the following... Figure 11 It illustrates an electronic device suitable for implementing embodiments of the present disclosure (e.g., Figure 11 A structural diagram of the terminal device or server in the 500.

[0159] Electronic equipment 500, including:

[0160] One or more processing devices 501;

[0161] Storage device 508, for storing one or more programs,

[0162] When the one or more programs are executed by the one or more processing devices 501, the one or more processing devices 501 implement any of the methods provided in this disclosure.

[0163] The terminal devices in this disclosure may include, but are not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), and in-vehicle terminals (such as in-vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 11 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0164] like Figure 11 As shown, electronic device 500 may include a processing unit (e.g., central processing unit, graphics processor, etc.) 501, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 502 or a program loaded from storage device 508 into random access memory (RAM) 503. The RAM 503 also stores various programs and data required for the operation of electronic device 500. The processing unit 501, ROM 502, and RAM 503 are interconnected via bus 504. An edit / output (I / O) interface 505 is also connected to bus 504.

[0165] Typically, the following devices can be connected to I / O interface 505: input devices 506 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 507 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 508 including, for example, magnetic tapes, hard disks, etc.; and communication devices 509. Communication device 509 allows electronic device 500 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 11 An electronic device 500 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.

[0166] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 509, or installed from a storage device 508, or installed from a ROM 502. When the computer program is executed by the processing device 501, it performs the functions defined in the methods of embodiments of this disclosure.

[0167] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0168] The electronic device provided in this embodiment and the page processing method provided in the above embodiments belong to the same inventive concept. Technical details not described in detail in this embodiment can be found in the above embodiments, and this embodiment has the same beneficial effects as the above embodiments.

[0169] This disclosure provides a computer storage medium storing a computer program that, when executed by a processor, implements the page processing method provided in the above embodiments.

[0170] It should be noted that the computer-readable medium described above in this disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination thereof.

[0171] The computer storage medium may be a storage medium for computer-executable instructions, which, when executed by a computer processor, are used to perform the methods provided in this disclosure.

[0172] Computer-readable storage media can be, for example, but not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including, but not limited to, electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium that can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. Program code contained on a computer-readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0173] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0174] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.

[0175] The aforementioned computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: manage plugins of a software system based on a plugin description file through a plugin center, wherein the plugin center is used to manage the runtime state of the plugins, and the plugin description file includes a business-dimensional plugin description file, wherein the plugin description file indicates the plugins included in the corresponding business;

[0176] In response to a page display operation, the container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center.

[0177] Render the plugins included in the target service.

[0178] Computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof, including but not limited to object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer 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 computer (e.g., via the Internet using an Internet service provider).

[0179] 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 disclosure. 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 the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can 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.

[0180] The modules or units described in the embodiments of this disclosure can be implemented in software or hardware. The names of modules or units do not necessarily limit the specific unit; for example, a management module can also be described as a "plugin management module".

[0181] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0182] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0183] A computer program product includes a computer program that, when executed by a processor, implements the page processing method provided according to embodiments of this disclosure. It possesses the corresponding functional modules and beneficial effects for implementing the method.

[0184] According to one or more embodiments of this disclosure, [Example 1] provides a page processing method, including:

[0185] The plugins of the software system are managed through a plugin center based on plugin description files. The plugin center is used to manage the runtime state of the plugins. The plugin description files include business-dimensional plugin description files, which indicate the plugins included in the corresponding business.

[0186] In response to a page display operation, the container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center.

[0187] Render the plugins included in the target service.

[0188] According to one or more embodiments of this disclosure, [Example 2] provides the method described in Example 1, wherein the page to be displayed includes multiple slot areas, and the step of retrieving the plugins included in the target business corresponding to the page to be displayed from the plugin center through a container component in response to a page display operation includes:

[0189] In response to a page display operation, the container component iterates through the slot identifiers of the slot area included in the page to be displayed, and retrieves the plugin corresponding to the slot identifier from the plugins corresponding to the target business in the plugin center.

[0190] According to one or more embodiments of this disclosure, [Example 3] provides the method described in Example 1 or 2, wherein the plugin indicated by the plugin description file includes one or more of the following:

[0191] Interface plugin, which is used for display and interaction in the corresponding slot area;

[0192] Data plugin, which provides the data required by the plugin;

[0193] A transaction plugin, which is used to implement the defined business logic.

[0194] According to one or more embodiments of this disclosure, [Example 4] provides the method described in Example 3, wherein the plugin description file indicates the data plugin on which the interface plugin depends and the transaction plugin on which the interface plugin depends;

[0195] The interface plugin is used to obtain data from the data plugin it depends on by executing data functions;

[0196] The interface plugin is used to execute the set business logic in the transaction plugin it depends on by executing the transaction function.

[0197] According to one or more embodiments of this disclosure, [Example 5] provides the method described in Example 2, wherein, in response to a page display operation, a container component traverses the slot identifiers of the slot area included in the page to be displayed, and obtains the plugin corresponding to the slot identifier from the plugins corresponding to the target service in the plugin center, including:

[0198] In response to a page display operation, the slot identifiers of the slot area included in the page to be displayed are traversed through the container component;

[0199] For each slot identifier that has been traversed, the plugin corresponding to the slot identifier is obtained from the plugins corresponding to the target business in the plugin center by using the component acquisition method.

[0200] If not found, the default component will be the plugin corresponding to the slot identifier.

[0201] According to one or more embodiments of this disclosure, Example 6 provides the method described in Example 1, wherein all plugins in the plugin description file have a unified entry file, and the entry file is used to complete the registration of the plugin.

[0202] According to one or more embodiments of this disclosure, Example 7 provides the method described in Example 1, wherein the plugin description file includes a plugin set, the plugin set including a collection of function-related plugins.

[0203] According to one or more embodiments of this disclosure, [Example 8] provides the method described in Example 1, wherein the plugin management software system via a plugin center based on plugin description files includes:

[0204] During the initialization of the plugin center, the plugin description file is obtained from the management center through the plugin center. The management center is used to manage the functionality of the plugins.

[0205] Obtain the plugin corresponding to the plugin description file through the plugin center;

[0206] The plugin is registered through the plugin center based on the plugin description file.

[0207] According to one or more embodiments of this disclosure, [Example 9] provides a page processing apparatus, including:

[0208] The management module is used to manage the plugins of the software system through the plugin center based on the plugin description file. The plugin center is used to manage the runtime state of the plugins. The plugin description file includes a business-dimensional plugin description file, which indicates the plugins included in the corresponding business.

[0209] The acquisition module is used to respond to page display operations by acquiring the plugins included in the target business corresponding to the page to be displayed from the plugin center through the container component;

[0210] The rendering module is used to render the plugins included in the target service.

[0211] According to one or more embodiments of this disclosure, [Example 10] provides an electronic device, the electronic device comprising:

[0212] One or more processing devices;

[0213] Storage device for storing one or more programs.

[0214] When the one or more programs are executed by the one or more processing devices, the one or more processing devices perform the method as described in any of Examples 1-8.

[0215] According to one or more embodiments of this disclosure, [Example 11] provides a storage medium containing computer-executable instructions that, when executed by a computer processor, are used to perform the method described in any of Examples 1-8.

[0216] According to one or more embodiments of this disclosure, [Example 12] provides a computer program product including a computer program that, when executed by a processor, implements the method according to any one of Examples 1-8.

[0217] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.

[0218] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.

[0219] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.

Claims

1. A page processing method, characterized in that, include: The plugins of the software system are managed through a plugin center based on plugin description files. The plugin center is used to manage the runtime state of the plugins. The plugin description files include business-dimensional plugin description files, which indicate the plugins included in the corresponding business. In response to a page display operation, the container component retrieves the plugins included in the target business corresponding to the page to be displayed from the plugin center. Render the plugins included in the target service.

2. The method according to claim 1, characterized in that, The page to be displayed includes multiple slot areas. In response to the page display operation, the container component retrieves the plugins corresponding to the target business of the page to be displayed from the plugin center, including: In response to a page display operation, the container component iterates through the slot identifiers of the slot area included in the page to be displayed, and retrieves the plugin corresponding to the slot identifier from the plugins corresponding to the target business in the plugin center.

3. The method according to claim 1 or 2, characterized in that, The plugins indicated by the plugin description file include one or more of the following: Interface plugin, which is used for display and interaction in the corresponding slot area; Data plugin, which provides the data required by the plugin; A transaction plugin, which is used to implement the defined business logic.

4. The method according to claim 3, characterized in that, The plugin description file indicates the data plugins that the interface plugin depends on and the transaction plugins that the interface plugin depends on; The interface plugin is used to obtain data from the data plugin it depends on by executing data functions; The interface plugin is used to execute the set business logic in the transaction plugin it depends on by executing the transaction function.

5. The method according to claim 2, characterized in that, In response to a page display operation, the container component iterates through the slot identifiers of the slot area included in the page to be displayed, and retrieves the plugin corresponding to the slot identifier from the plugins corresponding to the target business in the plugin center, including: In response to a page display operation, the slot identifiers of the slot area included in the page to be displayed are traversed through the container component; For each slot identifier that has been traversed, the plugin corresponding to the slot identifier is obtained from the plugins corresponding to the target business in the plugin center by using the component acquisition method. If not found, the default component will be the plugin corresponding to the slot identifier.

6. The method according to claim 1, characterized in that, All plugins in the plugin description file have a unified entry file, which is used to complete the plugin registration.

7. The method according to claim 1, characterized in that, The plugin description file includes a plugin set, which is a collection of plugins with related functions.

8. The method according to claim 1, characterized in that, The plugins managed by the plugin center based on plugin description files in the software system include: During the initialization of the plugin center, the plugin description file is obtained from the management center through the plugin center. The management center is used to manage the functionality of the plugin. Obtain the plugin corresponding to the plugin description file through the plugin center; The plugin is registered through the plugin center based on the plugin description file.

9. A page processing apparatus, characterized in that, include: The management module is used to manage the plugins of the software system through the plugin center based on the plugin description file. The plugin center is used to manage the runtime state of the plugins. The plugin description file includes a business-dimensional plugin description file, which indicates the plugins included in the corresponding business. The acquisition module is used to respond to page display operations by acquiring the plugins included in the target business corresponding to the page to be displayed from the plugin center through the container component; The rendering module is used to render the plugins included in the target service.

10. An electronic device, characterized in that, The electronic device includes: One or more processing devices; Storage device for storing one or more programs. When the one or more programs are executed by the one or more processing devices, the one or more processing devices perform the method as described in any one of claims 1-8.

11. A storage medium comprising computer-executable instructions, which, when executed by a computer processor, are used to perform the method as described in any one of claims 1-8.

12. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-8.