Method and apparatus for retrieving aggregated application service resources

By compiling and deploying the completed SDK of the resource provider in a remote server, establishing logical relationships, the APP volume increase and stability problems caused by SDK integration are solved, and efficient and stable resource retrieval and management are achieved.

CN119718647BActive Publication Date: 2025-07-29CHENGDU CELIS TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411788444.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-06
Publication Date
2025-07-29
Estimated Expiration
2044-12-06

AI Technical Summary

Technical Problem

In the prior art, errors and omissions are prone to occur when integrating the SDKs of multiple resource providers, resulting in an increase in the APP volume and a decrease in stability, high maintenance costs, and affecting the efficiency and stability of the resource aggregator calling application service resources.

Method used

Obtain the completed application service SDK of the resource aggregation participation group, compile and encapsulate it into an independent application package, deploy and establish the associated logical relationship between resource providers, application packages and service resource applications in the remote server, form physical isolation, and be managed and maintained uniformly through the remote server.

Benefits of technology

It simplifies the workload of resource providers, reduces the volume increase of APP, improves stability and maintenance efficiency, reduces maintenance costs, and achieves efficient resource retrieval and management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119718647B_ABST
    Figure CN119718647B_ABST
Patent Text Reader

Abstract

This application relates to the field of computers, and provides a method and device for retrieving aggregated application service resources. The method includes: obtaining a set of application service SDKs returned by at least one resource aggregation participating group in response to a resource aggregation request; compiling the completed application service SDKs of each resource provider and packaging them into independent application packages; based on each application package, deploying the service resource applications corresponding to each resource provider in a remote server, and establishing an associated logical relationship among each resource provider, the application package, and the service resource application. This application solves the problem that the traditional integration method will cause the increase in the volume of the APP and reduce the stability of the APP as the number of accessed SDKs increases, and has high resource retrieval efficiency and good stability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computers, and in particular, to a method and device for retrieving aggregated application service resources. Background Art

[0002] With the rapid development of information technology and network technology, the number of application resource providers (for example, Himalaya novels, KuGou Music, KaiShu Storytelling, etc.) has increased rapidly. In order to use various application resources, users often need to download multiple application programs (APPs) and switch between different application programs, which is very cumbersome and time-consuming.

[0003] In order to facilitate users to use various application service resources, resource aggregators often integrate the SDKs of different resource providers to facilitate the invocation of the application service resources of each resource provider. The application functions of different resource providers are often different and usually implement their respective application functions according to their own independent protocol specifications. In the related art, usually, the SDKs (Software Development Kits) of different resource providers are directly incorporated into an APP to integrate the SDKs of different resource providers, so that the resource aggregator can retrieve the application service resources of each resource provider through the APP.

[0004] However, this method not only easily causes errors and omissions when integrating the SDKs of each resource provider, but also significantly increases the volume of the APP as the number of accessed SDKs increases (usually, when accessing one SDK, the volume of the APP will increase by about 10M). At the same time, it will also reduce the stability of the APP and the maintenance cost is relatively high, thus affecting the efficiency and stability of the resource aggregator to subsequently retrieve the application service resources of each resource provider. Summary of the Invention

[0005] In view of this, embodiments of the present application provide a method and device for retrieving aggregated application service resources to solve the problems in the prior art that not only are errors and omissions likely to occur when integrating the SDKs of each resource provider, but also the volume of the APP will significantly increase as the number of accessed SDKs increases, and at the same time, the stability of the APP will be reduced and the maintenance cost is relatively high, thus affecting the efficiency and stability of the resource aggregator to subsequently retrieve the application service resources of each resource provider.

[0006] In the first aspect of the embodiments of the present application, a method for retrieving aggregated application service resources is provided, including:

[0007] Obtain the application service SDK set returned by at least one resource aggregation participation group in response to a resource aggregation request; wherein, the resource aggregation request includes the to-be-completed application service SDK provided by the resource scheduler; the application service SDK set includes the completed application service SDKs obtained by each resource provider in the resource aggregation participation group through complementing the to-be-completed application service SDK;

[0008] Compile the completed application service SDKs of each resource provider and package them into independent application packages;

[0009] Based on each application package, deploy the service resource applications corresponding to each resource provider in a remote server, and establish the associated logical relationships among each resource provider, the application package, and the service resource application.

[0010] In a second aspect of the embodiments of the present application, there is provided a device for invoking aggregated application service resources, including:

[0011] A first acquisition module, configured to obtain the application service SDK set returned by at least one resource aggregation participation group in response to a resource aggregation request; wherein, the resource aggregation request includes the to-be-completed application service SDK provided by the resource scheduler; the application service SDK set includes the completed application service SDKs obtained by each resource provider in the resource aggregation participation group through complementing the to-be-completed application service SDK;

[0012] A compilation module, configured to compile the completed application service SDKs of each resource provider and package them into independent application packages;

[0013] A deployment module, configured to deploy the service resource applications corresponding to each resource provider in a remote server based on each application package, and establish the associated logical relationships among each resource provider, the application package, and the service resource application.

[0014] In a third aspect of the embodiments of the present application, there is provided an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the steps of the above method are implemented.

[0015] In a fourth aspect of the embodiments of the present application, there is provided a readable storage medium storing a computer program, and when the computer program is executed by a processor, the steps of the above method are implemented.

[0016] Compared with the prior art, the beneficial effects of the embodiments of the present application at least include: First, the resource providers of each resource aggregation participation group only need to call their own APIs to complete the private content in the to-be-completed application service SDK according to the to-be-completed application service SDK provided by the resource scheduler, without having to process other logics (such as business logics, etc.), which can greatly simplify the process of the resource provider providing the SDK file and reduce the workload of the resource provider. Second, the remote server compiles the completed application service SDKs provided by each resource provider and packages them into independent application packages, and installs them on the remote server to obtain the service resource applications corresponding to each resource provider. In this way, with the physical isolation between the resource scheduler and the remote server, physical isolation can also be formed between the aggregated player application deployed on the resource scheduler and each service resource application deployed on the remote server. Since the aggregated player application and each service resource application are parallel and independent, without integrating each service resource application into one APP (specifically, the aggregated player application), it well solves the problems that the traditional integration method is not only prone to errors and omissions, but also the volume of the APP will increase significantly with the increase in the number of accessed SDKs, and at the same time, the stability of the APP will be reduced. Third, by establishing the association logic relationship between each resource provider, the application package, and the service resource application, it is convenient for the remote server to uniformly manage and maintain the service resource applications and application packages of each resource provider, which is beneficial to reducing the maintenance cost. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.

[0018] Figure 1 is a schematic diagram of an application scenario of an embodiment of the present application;

[0019] Figure 2 is a schematic flowchart of a method for retrieving aggregated application service resources provided by an embodiment of the present application;

[0020] Figure 3 is a schematic structural diagram of a device for retrieving aggregated application service resources provided by an embodiment of the present application;

[0021] Figure 4 is a schematic structural diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0022] In the following description, specific details such as specific system architectures and technologies are presented for the purpose of illustration rather than limitation, so as to thoroughly understand the embodiments of the present application. However, those skilled in the art should clearly understand that the present application can also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid unnecessary details from interfering with the description of the present application.

[0023] A method and apparatus for retrieving aggregated application service resources according to an embodiment of the present application will be described in detail below with reference to the accompanying drawings.

[0024] Figure 1 It is a schematic diagram of an application scenario of an embodiment of the present application. This application scenario may include a remote server 101, a resource scheduler 102, and resource aggregation participating groups 103, 104, and 105. Among them, the remote server 101 can be a server that provides various services. Specifically, it can be a single server, a server cluster composed of several servers, or a cloud computing service center. The embodiments of the present application do not limit this. The resource scheduler 102 can be a terminal device that wants to retrieve application service resources from different resource providers, such as a vehicle, a mobile phone, a computer, etc.

[0025] Resource providers within the same resource aggregation participating group can be resource providers that have the same or similar types of application service resources and confirm that they want to participate in the application service resource aggregation project published by the resource scheduler 102. Resource providers between different resource aggregation participating groups can be resource providers that have different types of application service resources and confirm that they want to participate in the application service resource aggregation project published by the resource scheduler 102.

[0026] Exemplarily, the resource aggregation participating group 103 can be a combination of music service resource providers, which includes but is not limited to the KuGou Music provider 1031, the QQ Music provider 1032, and the NetEase Cloud Music provider 1033. The resource aggregation participating group 104 can be a combination of story service resource providers, which includes but is not limited to the KaiShu Storytelling provider 1041, the Children's Story provider 1042, and the Himalaya provider 1043. The resource aggregation participating group 105 can be a combination of video service resource providers, which includes but is not limited to the Tencent Video provider 1051, the YingYinXianFeng provider 1052, and the LeShi Video provider 1053. Each resource provider within the resource aggregation participating group 103 has music service resources. Resource providers between the resource aggregation participating groups 103, 104, and 105 have different application service resources.

[0027] The remote server 101 can communicate with the resource scheduler 102, and resource aggregation participating groups 103, 104, and 105 via a wired network or a wireless network respectively. The resource scheduler 102 can communicate with the resource aggregation participating groups 103, 104, and 105 via a wired network or a wireless network respectively. The wired network can be coaxial cable, twisted pair, optical fiber, etc. The wireless network can be Bluetooth, near field communication, infrared, etc.

[0028] It should be noted that the specific types, quantities, and combinations of the remote server 101, the resource scheduler 102, the resource aggregation participating groups 103, 104, and 105, and the resource providers can be adjusted according to the actual requirements of the application scenario, and the embodiments of the present application do not limit this.

[0029] Figure 2 It is a schematic flowchart of a method for retrieving and aggregating application service resources provided by an embodiment of the present application. Figure 2 The method for retrieving and aggregating application service resources can be executed by Figure 1 the remote server 101.

[0030] Please refer to Figure 2 , the method for retrieving and aggregating application service resources provided by an embodiment of the present application includes the following steps:

[0031] Step S201, obtain a set of application service SDKs returned by at least one resource aggregation participating group in response to a resource aggregation request.

[0032] Among them, one resource aggregation participating group includes at least one resource provider; the resource aggregation request includes an application service SDK to be completed provided by the resource scheduler; the set of application service SDKs includes the completed application service SDKs obtained by each resource provider through completing the application service SDK to be completed. The application service SDK to be completed includes public content and private content. The public content is the content that does not require the resource provider to complete the application function, and the private content is the content that requires the resource provider to call its application programming interface (API) to complete the application function.

[0033] As an example, please refer to Figure 1 , the resource scheduler 102 can use Android studio (Android integrated development tool) to create an Android project engineering, and create a subfolder (called module in the Android project), named template-sdk. Create an aidl folder under the template-sdk folder, and create an IMediaBinder.aidl file in the aidl folder, define the function according to the actual business scenario, and describe it using the aidl language (the cross-process description language in Android).

[0034] Exemplarily, the content of IMediaBinder.aidl is as follows:

[0035]

[0036] The explanation of the above content of IMediaBinder.aidl is as follows: void play(String source) represents a playback function that accepts a source field, which is used to describe the application service resources of which resource provider are expected to be played. void pause(String source) represents a pause playback function that accepts a source field, which is used to describe the application service resources of which resource provider are expected to be paused.

[0037] In some embodiments, the IMediaBinder.aidl file can be added or modified according to the specific business.

[0038] After defining the above IMediaBinder.aidl file, the resource scheduler 102 can use a compilation tool to generate a corresponding IMediaBinder.java interface file according to the defined IMediaBinder.aidl file.

[0039] Create a new java folder in the template-sdk folder, create a BaseMediaService.kt file, and define a BaseMediaService class in the BaseMediaService.kt file. The BaseMediaService class inherits from Service (Service in the four major components of Android), and implements the interface class (IMediaBinder interface) in the IMediaBinder.java interface file.

[0040] Exemplarily, the code for implementing the IMediaBinder interface is as follows:

[0041]

[0042] Override the onBind method of Service (the onBind method is a necessary method for aidl cross-process in Android service, and it is required to be overridden according to the requirements of the Android system). The return value of this onBind method is the specific implementation of the above IMediaBinder interface.

[0043] In this embodiment, the method onBind returns MyMediaBinderImp, which inherits from the class IMediaBinder.Stub. The class IMediaBinder.Stub is the interface class in the IMediaBinder.java file generated by the above compilation step.

[0044] Among them, the definition of MyMediaBinderImp is as follows:

[0045]

[0046] It can be seen that MyMediaBinderImp actually proxies IMediaBinder using the proxy pattern (a code design pattern) (here it can also be understood that MyMediaBinderImp is BaseMediaService). BaseMediaService is an abstract class, and the specific implementation requires the resource provider to call its own API (application programming interface) to complete the application functions.

[0047] So far, the design and development work of Template-sdk has been completed. Next, the resource scheduler 102 can use the packaging command to generate an aar file (a packaging and compression format for android sub-projects) from the template-sdk folder and send it to each resource provider. Here, the aar file is the application service SDK to be completed. Among them, the public content in the application service SDK to be completed refers to the content in the aar file that does not require the resource provider to complete the application functions, and the private content is the content related to the BaseMediaService class that the resource provider needs to call its own API to complete the application functions.

[0048] The completed application service SDK refers to the file obtained after each resource provider obtains the application service SDK to be completed sent by the resource scheduler 102 and calls its own API to complete the private content in the application service SDK to be completed.

[0049] As an example, taking the KuGou Music provider as the resource provider, the specific solution for the KuGou Music provider to call its own API to complete the application functions of the application service SDK to be completed is as follows:

[0050] The KuGou Music provider can create a new android project, and create a KugouMediaService in this android project that inherits from BaseMediaService and complete the methods to be implemented. The code is shown as follows:

[0051]

[0052] The above content is the specific implementation of the BaseMediaService class mentioned in the previous text.

[0053] Next, the Kugou Music provider declares KugouMediaService in the manifest. The sample code is as follows:

[0054]

[0055]

[0056] At this point, the Kugou Music provider has completed the supplementation process for the application service SDK to be supplemented, obtaining the supplemented application service SDK. After that, the Kugou Music provider uploads the supplemented application service SDK to the remote server 101.

[0057] Similarly, other resource providers can supplement the application service SDK to be supplemented in the same way and upload the supplemented application service SDK to the remote server 101.

[0058] Step S202: Compile the supplemented application service SDKs of each resource provider and package them into independent application packages.

[0059] As an example, please refer to Figure 1 , assuming that the remote server 101 receives the application service SDK sets 1, 2, and 3 returned by the resource aggregation participant groups 103, 104, and 105. Among them, the application service SDK set 1 includes the supplemented application service SDKs 1, 2, and 3 provided by the resource providers 1031, 1032, and 1033 in the resource aggregation participant group 103; the application service SDK set 2 includes the supplemented application service SDKs 4, 5, and 6 provided by the resource providers 1041, 1042, and 1043 in the resource aggregation participant group 104; the application service SDK set 3 includes the supplemented application service SDKs 7, 8, and 9 provided by the resource providers 1051, 1052, and 1053 in the resource aggregation participant group 105. Next, the remote server 101 sets up a compilation environment and compiles the supplemented application service SDKs 1-9 respectively in this compilation environment, and packages them into independent application packages 1-9.

[0060] Step S203: Based on each application package, deploy the service resource applications corresponding to each resource provider in the remote server, and establish the association logic relationship among each resource provider, application package, and service resource application.

[0061] For ease of description, continuing with the above example, the above application packages 1 to 9 are installed and deployed on the remote server 101 to form service resource applications 1 to 9, and the association logic relationships are established among the resource providers 1031, 1032, 1033, 1041, 1042, 1043, 1051, 1052, and 1053, the application packages 1 to 9, and the service resource applications 1 to 9.

[0062] The association logic relationships among the resource providers, application packages, and service resource applications can be a list container (List in Java) and named mediaServiceList. Exemplarily, the association logic relationships among the resource providers, application packages, and service resource applications are shown in Table 1 below.

[0063] Table 1 Association Logic Relationship Table among Resource Providers, Application Packages, and Service Resource Applications

[0064]

[0065] In Table 1, Group_1 to Group_3 respectively represent the resource aggregation participation groups 103, 104, and 105; Group_11 to Group_13 respectively represent the resource providers 1031, 1032, and 1033 in the resource aggregation participation group 103; Pack_11 to Pack_13 respectively represent the application packages 11, 12, and 13 of the resource providers 1031, 1032, and 1033, and APP_11 to APP_13 respectively represent the service resource applications 11, 12, and 13. For example, Group_1 represents the resource aggregation participation group 103, Group_11 is the resource provider 1031 in the resource aggregation participation group 103, Pack_11 is the application package 11 of the resource provider 1031, and APP_11 is the service resource application 11 corresponding to the application package 11. Group_21 to Group_23 respectively represent the resource providers 1041, 1042, and 1043 in the resource aggregation participation group 104; Pack_21 to Pack_23 respectively represent the application packages 21, 22, and 23 of the resource providers 1041, 1042, and 1043, and APP_21 to APP_23 respectively represent the service resource applications 21, 22, and 23 corresponding to the application packages 21, 22, and 23. Group_31 to Group_33 respectively represent the resource providers 1051, 1052, and 1053 in the resource aggregation participation group 105; Pack_31 to Pack_33 respectively represent the application packages 31, 32, and 33 of the resource providers 1051, 1052, and 1053, and APP_31 to APP_33 respectively represent the service resource applications 31, 32, and 33 corresponding to the application packages 31, 32, and 33.

[0066] In some embodiments, the above method may further include the following steps:

[0067] In response to a resource retrieval request sent by a resource scheduler through an aggregated player application, determine a target resource aggregation participation group and its corresponding target service resource application group based on an association logic relationship, where the aggregated player application is deployed on the resource scheduler;

[0068] Obtain aggregated application service resources based on the target service resource application group, and cache the aggregated application service resources in a resource buffer, where the resource buffer is deployed in a remote server;

[0069] Establish a mapping relationship between the resource buffer and a resource retrieval window set by the aggregated player application, so that the resource scheduler retrieves the aggregated application service resources from the resource retrieval window based on the mapping relationship.

[0070] Among them, the resource retrieval request includes group identification information of the target resource aggregation participation group.

[0071] The group identification information is used to distinguish different resource aggregation participation groups, and may specifically be at least one of numbers, letters, or words, or any combination thereof. Exemplarily, the group identification information of resource aggregation participation groups 103, 104, and 105 may be Group_1, Group_2, and Group_3, respectively.

[0072] The aggregated player application is used to retrieve and play application service resources provided by different resource providers.

[0073] The resource scheduler 102 may be a vehicle (such as a new energy vehicle, etc.), and the aggregated player application may be installed and deployed in the cockpit software system of the vehicle.

[0074] As an example, the resource scheduler 102 may send a resource retrieval request to the remote server 101 through the aggregated player application. The resource retrieval request carries group identification information to indicate which aggregated application service resources of the resource aggregation participation group need to be retrieved.

[0075] The remote server 101 responds to the resource retrieval request sent by the resource scheduler 102 (for example, carrying the group identification information "Group_1"), and queries Table 1 above through the group identification information "Group_1", and can determine that the target resource aggregation participation group is the resource aggregation participation group 103, and the target service resource application group includes target service resource applications APP_11 to APP_13.

[0076] For ease of understanding, continue to use the above example. Assume that the target service resource application group includes target service resource applications APP_11 to APP_13. Then the aggregated application service resources include the application service resources provided by resource providers 1031, 1032, and 1033.

[0077] As an example, the remote server 101 obtains the application service resources provided by resource providers 1031, 1032, and 1033 based on the target service resource applications APP_11 to APP_13, and caches these application service resources in its resource buffer.

[0078] For ease of understanding, continue to use the above example. After the remote server 101 caches the application service resources provided by resource providers 1031, 1032, and 1033 that it has obtained in the resource buffer, it establishes a mapping relationship between the resource buffer and the resource retrieval window set by the aggregated player application deployed in the resource scheduler 102. In this way, the resource scheduler 102 can directly read the application service resources provided by resource providers 1031, 1032, and 1033 through the resource retrieval window of the aggregated player application, and play these application service resources through the aggregated player application.

[0079] The technical solution provided by the embodiments of the present application, by deploying a resource buffer in the remote server, caching the aggregated application service resources corresponding to the resource retrieval request sent by the resource scheduler in the resource buffer, and establishing a mapping relationship between the resource buffer and the resource retrieval window deployed in the resource scheduler, enables the resource scheduler to directly read the aggregated application service resources it needs through the resource retrieval window, with high data reading efficiency and good stability. The remote server can greatly enrich the diversity of the available aggregated application service resources by integrally deploying resource aggregation participating groups with different types of application service resources.

[0080] In some embodiments, before the step of obtaining the completed application service SDKs returned by at least one resource aggregation participating group in response to the resource aggregation request, it further includes:

[0081] Obtain the resource aggregation metrics sent by the resource scheduler. The resource aggregation metrics include at least one required resource type and the resource aggregation scale corresponding to each required resource type;

[0082] Based on the resource aggregation metrics, determine at least one resource aggregation participating group.

[0083] The required resource type can be at least one of various multimedia resources such as music service resources, story service resources, video service resources, and news service resources.

[0084] The resource aggregation scale is used to indicate the aggregation capacity (sample size) corresponding to the required resource type. For example, if the required resource type is music service resources, its aggregation capacity (sample size) is at least y songs.

[0085] As an example, the resource scheduler 102 may send a resource aggregation metric to the remote server 101 according to actual requirements. The resource aggregation metric includes relevant information such as indicating its required resource type and the corresponding resource aggregation scale.

[0086] In some embodiments, based on the resource aggregation metric, at least one resource aggregation participation group is determined, including:

[0087] For each required resource type, clustering is performed based on the resource information provided by multiple resource providers who confirm to participate in the resource aggregation to obtain a resource provider clustering cluster, and the resource provider clustering cluster has a clustering center;

[0088] Using each clustering center as an in-cluster control node, the application service resources owned by each resource provider within the resource provider clustering cluster are aggregated to obtain a resource aggregation participation group that meets the resource aggregation scale.

[0089] Resource information indicates the application service resources owned by the resource provider. For example, if the KuGou Music provider owns music service resources, its resource information indicates music service resources. Another example is that the Kaishu Storytelling provider owns story service resources, and its resource information indicates story service resources.

[0090] As an example, the resource scheduler 102 may publish an application service resource aggregation project, which specifies information such as the participation method, participation time, required resources (such as music, stories, news, videos, etc.). Each resource provider can determine whether to participate in the application service resource aggregation project according to its actual needs, etc. If it is determined to participate, it can return a participation application form to the resource scheduler 102. The participation application form specifies relevant information such as the application service resources and resource quantity (sample size) it owns, and whether it confirms to participate in the application service resource aggregation project. The resource scheduler 102 counts the participation application forms submitted by each resource provider, confirms the resource providers that participate in the resource aggregation, and reports them to the remote server 101.

[0091] Suppose the required resource types include music service resources, story service resources, and video service resources. The resource aggregation scale of music service resources is at least y songs, the resource aggregation scale of story service resources is t stories, and the resource aggregation scale of video service resources is r videos.

[0092] Taking the music service resource as an example of the required resource type, the specific solution for obtaining the resource aggregation participation group corresponding to the music service resource is as follows:

[0093] The remote server 101 clusters the resource providers who own the music service resources to obtain a resource provider clustering cluster, that is, filters out a resource provider clustering cluster whose resource information (owning the music service resources) matches the required resource type (required music service resources) from a large number of resource providers. Then, taking the clustering center of this resource provider clustering cluster as the in-cluster control node, aggregates the application service resources owned by each resource provider within this resource provider clustering cluster to obtain a resource aggregation participation group that meets the resource aggregation scale. For example, the resource provider clustering cluster includes resource providers 1 to 5, and the sample sizes of the application service resources they own are y1, y2, y3, y4, and y5 respectively. Among them, y1 + y2 + y3 > y, meeting the resource aggregation scale of the music application service resources (including at least y songs); y1 + y2 + y3 + y4 + y5 > y, meeting the resource aggregation scale of the music application service resources (including at least y songs). Then, it can be determined that the resource aggregation participation group is a combination including resource providers 1 to 3 or a combination including resource providers 1 to 5.

[0094] Similarly, referring to the above embodiments, the resource aggregation participation groups corresponding to the story service resources and video service resources can be determined, which will not be elaborated here.

[0095] Through the above method, resource providers with the same or similar types of application service resources can be aggregated into the same resource aggregation participation group, which is beneficial to increasing the sample size of application service resources with the same or similar types, and is convenient for management and maintenance.

[0096] In some embodiments, obtaining the aggregated application service resources provided by the target resource aggregation participation group based on the target service resource application group includes:

[0097] Obtaining the application information set corresponding to the target service resource application group; where the application information set includes the application information corresponding to each target service resource application in the target service resource application group;

[0098] Based on the application information set, establishing a resource call link between the remote server and the target service resource application group;

[0099] Based on the resource call link, obtaining the aggregated application service resources provided by the target service resource application group.

[0100] The application information includes the application identifier of the target service resource application and the package identifier of the target application package.

[0101] As an example, assume that the remote server 102 obtains a resource retrieval request sent by the resource scheduler 102 (carrying the group identification information of the resource aggregation participation group, such as "Group_1"). Then, by querying Table 1 above, it can be determined that the target resource aggregation participation group is Group_1 (corresponding to the resource aggregation participation group 103), and Group_1 includes three target service resource applications, namely APP_11 to APP_13.

[0102] The remote server 102 can write a TemplateKit class and add a register method to this TemplateKit class. When receiving a resource retrieval request sent by the resource scheduler 102 through the aggregated player application, the register method is called to obtain the aggregated application service resources provided by the target service resource application group, and then the aggregated application service resources are written into the resource buffer.

[0103] As an example, the specific steps for the remote server 102 to call the register method to obtain the aggregated application service resources provided by the target service resource application group are as follows:

[0104] In the register method, the remote server 102 queries the system through the PackageManager.queryIntentServices (android framework method) to find the target service resource applications that have added <action android:name="action_seres_media" / > in the manifest, and returns application information such as the packageName (the name of the target application package corresponding to the target service resource application) and ServiceName (the service name of the target service resource application) of the target service resource applications.

[0105] By dynamically scanning and registering the target service resource applications with action_seres_media, the remote server can dynamically load their corresponding ecological capabilities, saving the access cost. There is no need to repeatedly write access code, and only the target service resource applications need to be installed on the remote server.

[0106] Next, the remote server 102 can connect to the service based on the above-found application information through the bindService(androidframework method). After successfully connecting to the service, the corresponding binder object will be returned in the onServiceConnected callback method. The binder is the return value of the onBind method described in the previous BaseMediaService class. Through this binder object, methods in the target service resource application are called, thus establishing a resource call link between the remote server and the target service resource application.

[0107] For example, if the target service resource application APP_11 is the Kugou Music application, by using the returned binder object to call the methods in KugouMediaService, a resource call link between the remote server and the Kugou Music application is established. Through this resource call link, the songs of the Kugou Music application can be obtained.

[0108] The example code is as follows:

[0109]

[0110]

[0111] Similarly, in the same way, resource call links between the remote server and the target service resource applications APP_12 to APP_13 can be established, so as to call the application service resources provided by them.

[0112] In some embodiments, the above method may further include:

[0113] Sending the update logic for the completed application service SDK to each resource aggregation participation group;

[0114] According to a preset update period, calling the update interfaces implemented by each resource aggregation participation group based on the update logic to obtain the update SDK sets of each resource aggregation participation group; wherein, the update SDK set includes the update SDKs corresponding to each resource provider of the resource aggregation participation group;

[0115] Updating the associated logical relationship based on the update SDK set.

[0116] The update logic can be the SDK update specification.

[0117] The preset update period can be one day, one week, one month, etc., and can be specifically set according to the actual situation. This application does not limit this.

[0118] As an example, the remote server 101 can set the update logic for the completed application service SDK and send it to each resource provider in each resource aggregation participating group. Each resource provider can implement the update interface according to the update logic sent by the remote server 101. The remote server 101 can call the update interfaces of each resource provider in each resource aggregation participating group according to a preset update period (such as one day) to obtain the updated SDKs corresponding to each resource provider, and use these updated SDKs to update the association logic relationship table among the resource provider, the application package, and the service resource application.

[0119] Through the above method, if the resource provider updates its SDK (for example, modifies bugs, etc.), then when the remote server regularly calls the update interface and discovers that the completed application service SDK of the resource provider has been updated, it can timely update the association logic relationship among the resource provider, the application package, and the service resource application.

[0120] In some embodiments, updating the association logic relationship based on the updated SDK set includes:

[0121] Compiling each updated SDK to obtain an updated application package corresponding to each resource provider;

[0122] Using the updated application package to update the association logic relationship.

[0123] As an example, the remote server 101 can respectively compile each obtained updated SDK in a compilation environment to obtain an updated application package corresponding to each resource provider, and then use the updated application package to update the association logic relationship among the resource provider, the application package, and the service resource application. Specifically, update the application package in Table 1 above to the updated application package correspondingly, and synchronously update the service resource applications of each resource provider.

[0124] In some other embodiments, updating the association logic relationship based on the updated SDK set includes:

[0125] Compiling each updated SDK to obtain a first updated application package corresponding to each resource provider;

[0126] Calling the code detection interface to detect the first updated application package and mark the vulnerable code areas in the first updated application package;

[0127] Repairing the code in the vulnerable code areas to obtain a second updated application package;

[0128] Using the second updated application package to update the association logic relationship.

[0129] As an example, the remote server 101 compiles each updated SDK in a compilation environment to obtain the first updated application package corresponding to each resource provider; then, it calls a code detection interface (such as an AI artificial intelligence algorithm interface) to detect the first updated application package and mark the vulnerable code areas (such as buggy code areas) in the first updated application package; after that, it performs AI (artificial intelligence) repair on the vulnerable code areas to obtain the second updated application package; finally, it uses the second updated application package to update the association logic relationship among the resource provider, the application package, and the service resource application. Specifically, it correspondingly updates the application packages in Table 1 above to the second updated application package and synchronously updates the service resource applications corresponding to each resource provider.

[0130] In the above manner, the remote server can achieve automatic compilation, automatic code detection, and automatic code repair of the updated SDK, which is beneficial to reducing the workload of the operation and maintenance personnel of the remote server for updating, managing, and maintaining the SDK files of each resource provider, thereby reducing the maintenance cost; at the same time, it can streamline the first updated application package compiled from the updated SDK, reduce the memory space occupied by the first updated application package, and improve the code quality and stability of the first updated application package.

[0131] All of the above optional technical solutions can be combined arbitrarily to form optional embodiments of the present application, which will not be elaborated here one by one.

[0132] The following is an embodiment of the apparatus of the present application, which can be used to execute the method embodiment of the present application. For details not disclosed in the embodiment of the apparatus of the present application, please refer to the method embodiment of the present application.

[0133] Figure 3 It is a schematic structural diagram of an apparatus for retrieving aggregated application service resources provided by an embodiment of the present application. As Figure 3 shown, the apparatus for retrieving aggregated application service resources includes:

[0134] A first acquisition module 301, configured to acquire a set of application service SDKs returned by at least one resource aggregation participation group in response to a resource aggregation request; wherein, the resource aggregation request includes a to-be-complemented application service SDK provided by a resource scheduler; the set of application service SDKs includes the already-complemented application service SDKs obtained by each resource provider in the resource aggregation participation group through complementing the to-be-complemented application service SDK.

[0135] A compilation module 302, configured to compile the already-complemented application service SDKs of each resource provider and encapsulate them into independent application packages.

[0136] The deployment module 303 is configured to deploy the service resources applications corresponding to each resource provider in a remote server based on each application package, and establish the associated logical relationships among each resource provider, the application package, and the service resources application.

[0137] In some embodiments, the above device may further include:

[0138] The response module is configured to, in response to a resource retrieval request sent by a resource scheduler through an aggregated player application, determine a target resource aggregation participation group and its corresponding target service resources application group based on the associated logical relationship, where the aggregated player application is deployed in the resource scheduler;

[0139] The caching module is configured to obtain aggregated application service resources based on the target service resources application group, and cache the aggregated application service resources in a resource buffer, where the resource buffer is deployed in the remote server;

[0140] The establishment module is configured to establish a mapping relationship between the resource buffer and a resource retrieval window set by the aggregated player application, so that the resource scheduler retrieves the aggregated application service resources from the resource retrieval window based on the mapping relationship.

[0141] In some embodiments, the above caching module includes:

[0142] The first acquisition unit is configured to acquire a set of application information corresponding to the target service resources application group; wherein, the set of application information includes the application information corresponding to each target service resources application in the target service resources application group;

[0143] The establishment unit is configured to establish a resource call link between the remote server and the target service resources application group based on the set of application information;

[0144] The second acquisition unit is configured to acquire the aggregated application service resources provided by the target service resources application group based on the resource call link.

[0145] In some embodiments, the above device further includes:

[0146] The sending module is configured to send an update logic for a completed application service SDK to each resource aggregation participation group;

[0147] The calling module is configured to call, according to a preset update period, an update interface implemented by each resource aggregation participation group based on the update logic, to obtain an update SDK set of each resource aggregation participation group; wherein, the update SDK set includes the update SDKs corresponding to each resource provider of the resource aggregation participation group;

[0148] Update module, which is matched to update the associated logical relationship based on the update SDK set.

[0149] In some embodiments, the above update module includes:

[0150] The first compilation unit is configured to compile each update SDK to obtain an update application package corresponding to each resource provider;

[0151] The first update unit is configured to use the update application package to update the associated logical relationship.

[0152] In some other embodiments, the above update module includes:

[0153] The second compilation unit is configured to compile each update SDK to obtain a first update application package corresponding to each resource provider;

[0154] The detection unit is configured to call the code detection interface to detect the first update application package and mark the vulnerable code area in the first update application package;

[0155] The repair unit is configured to repair the code in the vulnerable code area to obtain a second update application package;

[0156] The second update unit is configured to use the second update application package to update the associated logical relationship.

[0157] In some embodiments, the above device further includes:

[0158] The second acquisition module is configured to acquire the resource aggregation metrics sent by the resource scheduler, where the resource aggregation metrics include at least one required resource type and the resource aggregation scale corresponding to each required resource type;

[0159] The determination module is configured to determine at least one resource aggregation participation group based on the resource aggregation metrics.

[0160] In some embodiments, the above determination module includes:

[0161] The clustering unit is configured to perform clustering on the resource information provided by multiple resource providers that confirm to participate in resource aggregation for each required resource type to obtain a resource provider clustering cluster, and the resource provider clustering cluster has a clustering center;

[0162] The aggregation unit is configured to use each clustering center as an intra-cluster control node to aggregate the application service resources owned by each resource provider within the resource provider clustering cluster to obtain a resource aggregation participation group that meets the resource aggregation scale.

[0163] It should be understood that the sequence numbers of the steps in the above embodiments do not imply the order of execution. The execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.

[0164] Figure 4 is a schematic diagram of the electronic device 4 provided by the embodiment of the present application. As Figure 4 shown, the electronic device 4 of this embodiment includes: a processor 401, a memory 402, and a computer program 403 stored in the memory 402 and executable on the processor 401. When the processor 401 executes the computer program 403, it implements the steps in each of the above method embodiments. Alternatively, when the processor 401 executes the computer program 403, it implements the functions of each module / unit in each of the above device embodiments.

[0165] The electronic device 4 may be a desktop computer, a notebook, a palm computer, a cloud server, or other electronic devices. The electronic device 4 may include, but is not limited to, the processor 401 and the memory 402. Those skilled in the art can understand that Figure 4 merely examples of the electronic device 4, and do not constitute a limitation to the electronic device 4. It may include more or fewer components than shown in the figure, or different components.

[0166] The processor 401 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0167] The memory 402 may be an internal storage unit of the electronic device 4. For example, the hard disk or memory of the electronic device 4. The memory 402 may also be an external storage device of the electronic device 4. For example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the electronic device 4. The memory 402 may also include both an internal storage unit and an external storage device of the electronic device 4. The memory 402 is used to store the computer program and other programs and data required by the electronic device.

[0168] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above-mentioned division of each functional unit and module is used as an example. In actual applications, the above functions can be allocated to different functional units and modules according to needs, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. Each functional unit and module in the embodiments can be integrated into a processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.

[0169] If the integrated module / unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium (such as a computer-readable storage medium). Based on this understanding, to implement all or part of the processes in the above-mentioned embodiment methods of this application, it can also be completed by instructing related hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, the steps of the above-mentioned various method embodiments can be implemented. The computer program can include computer program code, and the computer program code can be in the form of source code, object code, executable file or some intermediate form, etc. The computer-readable storage medium can include: any entity or device that can carry the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal, and software distribution medium, etc.

[0170] The above embodiments are only used to illustrate the technical solutions of this application, rather than to limit it; although this application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of this application, and should all be included in the protection scope of this application.

Claims

1. A method for retrieving aggregated application service resources, characterized in that Including: Obtaining an application service SDK set returned by at least one resource aggregation participation group in response to a resource aggregation request; wherein, the resource aggregation request includes a to-be-completed application service SDK provided by a resource scheduler; the application service SDK set includes completed application service SDKs obtained by each resource provider within the resource aggregation participation group through complementing the to-be-completed application service SDK; Compiling the completed application service SDKs of each of the resource providers and packaging them into independent application packages; Based on each of the application packages, deploying service resource applications corresponding to each resource provider in a remote server and establishing an associated logical relationship among each of the resource providers, the application packages, and the service resource applications.

2. The method according to claim 1, characterized in that, The method further includes: In response to a resource retrieval request sent by the resource scheduler through an aggregation player application, determining a target resource aggregation participation group and its corresponding target service resource application group based on the associated logical relationship, where the aggregation player application is deployed in the resource scheduler; Obtaining aggregated application service resources based on the target service resource application group and caching the aggregated application service resources in a resource buffer, where the resource buffer is deployed in the remote server; Establishing a mapping relationship between the resource buffer and a resource retrieval window set by the aggregation player application, so that the resource scheduler retrieves the aggregated application service resources from the resource retrieval window based on the mapping relationship.

3. The method according to claim 2, wherein Obtaining the aggregated application service resources provided by the target resource aggregation participation group based on the target service resource application group includes: Obtaining an application information set corresponding to the target service resource application group; wherein, the application information set includes application information corresponding to each target service resource application in the target service resource application group; Based on the application information set, establishing a resource call link between the remote server and the target service resource application group; Based on the resource call link, obtaining the aggregated application service resources provided by the target service resource application group.

4. The method according to claim 2, wherein The method further includes: Sending update logic for the completed application service SDK to each of the resource aggregation participation groups; Invoking update interfaces implemented by each of the resource aggregation participation groups based on the update logic according to a preset update period to obtain an update SDK set of each of the resource aggregation participation groups; wherein, the update SDK set includes update SDKs corresponding to each resource provider of the resource aggregation participation group; Updating the associated logical relationship based on the update SDK set.

5. The method according to claim 4, characterized in that, Updating the associated logical relationship based on the update SDK set includes: Compiling each of the update SDKs to obtain update application packages corresponding to each resource provider; Using the update application packages to update the associated logical relationship.

6. The method according to claim 4, wherein Updating the associated logical relationship based on the update SDK set includes: Compiling each of the update SDKs to obtain first update application packages corresponding to each resource provider; Invoke the code detection interface to detect the first updated application package and mark the vulnerable code areas in the first updated application package; Repair the code in the vulnerable code areas to obtain a second updated application package; Use the second updated application package to update the associated logical relationship.

7. The method according to claim 1, characterized in that, Before obtaining the completed application service SDKs returned by at least one resource aggregation participating group in response to a resource aggregation request, it further includes: Obtain the resource aggregation metrics sent by the resource scheduler, where the resource aggregation metrics include at least one required resource type and the resource aggregation scale corresponding to each required resource type; Determine at least one resource aggregation participating group based on the resource aggregation metrics.

8. The method according to claim 7, wherein Determine at least one resource aggregation participating group based on the resource aggregation metrics, including: For each required resource type, perform clustering based on the resource information provided by multiple resource providers that have confirmed to participate in resource aggregation to obtain a resource provider clustering cluster, and the resource provider clustering cluster has a clustering center; Use each of the clustering centers as an in-cluster control node to aggregate the application service resources owned by each resource provider within the resource provider clustering cluster to obtain a resource aggregation participating group that meets the resource aggregation scale.

9. A device for retrieving aggregated application service resources, characterized in that, It includes: A first acquisition module configured to acquire a set of application service SDKs returned by at least one resource aggregation participating group in response to a resource aggregation request; wherein, the resource aggregation request includes a to-be-completed application service SDK provided by the resource scheduler; the set of application service SDKs includes the completed application service SDKs obtained by each resource provider within the resource aggregation participating group through complementing the to-be-completed application service SDK; A compilation module configured to compile the completed application service SDKs of each resource provider and package them into independent application packages; A deployment module configured to deploy the service resource applications corresponding to each resource provider in a remote server based on each application package and establish an associated logical relationship among each resource provider, the application package, and the service resource application.

10. An electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Resource management method and device, equipment and storage medium

    CN115129423A

  • Operator calling system, operator generating method and electronic equipment

    CN115309562A