Application calling methods, devices, electronic devices, and computer program products
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-08
- Publication Date
- 2026-08-14
AI Technical Summary
但是,这种调用方法一般需要依赖SaaS服务资源池,对SaaS服务资源池的管理和性能要求较高,且应用程序的调用效率较低
[0020]本公开示例性实施例采用的上述至少一个技术方案能够达到以下有益效果:通过接收用户发送的平台登录请求;其中,平台登录请求携带用户的用户登录信息和目标应用程序的调用编码,目标应用程序用于向用户提供目标服务能力;在用户登录信息通过验证的情况下,利用目标应用程序的调用编码,从目标应用程序对应的多个服务器中确定出目标服务器,并向目标服务器发送服务调用请求;其中,服务调用请求用于请求目标服务器向服务平台发送目标应用程序的调用接口信息;接收目标应用程序的调用接口信息,并利用调用接口信息调用目标应用程序,能够将提供目标服务能力的目标应用程序分布式部署在多个服务器上,利用服务平台对用户发送的平台登录请求进行鉴权认证,实现从多个服务器中确定出目标服务器来调用目标应用程序,为用户提供目标服务能力,在提高目标应用程序的调用效率的同时,提高整体系统的安全性和可扩展性。
Smart Images

Figure CN118796315B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to methods, apparatus, electronic devices, and computer program products for invoking applications. Background Technology
[0002] Software as a Service (SaaS) refers to services that allow users to access applications directly via the internet through cloud services, without needing to install the application on the user's computer or server, and provide corresponding SaaS service capabilities through the application.
[0003] In related technologies, multi-factor authentication of user information is generally used to enable the invocation of a certain application. However, this invocation method usually relies on a SaaS service resource pool, which has high requirements for the management and performance of the SaaS service resource pool, and the application invocation efficiency is relatively low. Summary of the Invention
[0004] In view of the above, exemplary embodiments of this disclosure provide a method, apparatus, electronic device, and computer program product for invoking an application to address the problems existing in the related art.
[0005] A first aspect of the exemplary embodiments of this disclosure provides an application invocation method applied to a service platform, comprising:
[0006] Receive a platform login request sent by a user; the platform login request carries the user's login information and the call code of the target application, which is used to provide the target service capabilities to the user;
[0007] If the user login information is verified, the target server is determined from multiple servers corresponding to the target application using the call code of the target application, and a service call request is sent to the target server; wherein, the service call request is used to request the target server to send the call interface information of the target application to the service platform;
[0008] Receive the API call information from the target application and use the API call information to call the target application.
[0009] A second aspect of the exemplary embodiments of this disclosure provides an application invocation device applied to a service platform, comprising:
[0010] The communication module is used to receive platform login requests sent by users; the platform login request carries the user's login information and the call code of the target application, which is used to provide the target service capabilities to the user;
[0011] The processing module is used to determine the target server from multiple servers corresponding to the target application by using the call code of the target application when the user login information is verified.
[0012] The communication module is also used to send service call requests to the target server; wherein, the service call request is used to request the target server to send the call interface information of the target application to the service platform;
[0013] The communication module is also used to receive API call information from the target application;
[0014] The calling module is used to invoke the target application using the calling interface information.
[0015] A third aspect of the exemplary embodiments of this disclosure provides an electronic device, comprising:
[0016] At least one processor;
[0017] Memory used to store at least one processor-executable instruction;
[0018] At least one processor is used to execute instructions to implement the steps of the above method.
[0019] A fourth aspect of the exemplary embodiments of this disclosure provides a computer program product including a computer program, wherein the computer program, when executed by a processor, implements the steps of the method described above.
[0020] The above-described at least one technical solution adopted in the exemplary embodiments of this disclosure can achieve the following beneficial effects: by receiving a platform login request sent by a user; wherein the platform login request carries the user's login information and the call code of the target application, the target application is used to provide the user with target service capabilities; if the user login information is verified, the target server is determined from multiple servers corresponding to the target application using the call code of the target application, and a service call request is sent to the target server; wherein the service call request is used to request the target server to send the call interface information of the target application to the service platform; by receiving the call interface information of the target application and calling the target application using the call interface information, the target application providing target service capabilities can be distributed and deployed on multiple servers, and the service platform can authenticate the platform login request sent by the user, thereby determining the target server from multiple servers to call the target application and providing the user with target service capabilities, improving the calling efficiency of the target application while improving the security and scalability of the overall system. Attached Figure Description
[0021] To more clearly illustrate the technical solutions in the exemplary embodiments of this disclosure, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 A flowchart illustrating the invocation method of an application provided in an exemplary embodiment of this disclosure is shown;
[0023] Figure 2 A schematic diagram of the structure of an application invocation device provided in an exemplary embodiment of this disclosure is shown;
[0024] Figure 3 A schematic diagram of the structure of an electronic device provided in an exemplary embodiment of this disclosure is shown;
[0025] Figure 4 A schematic diagram of the structure of a computer system provided in an exemplary embodiment of this disclosure is shown. Detailed Implementation
[0026] 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.
[0027] 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.
[0028] The term "comprising" and its variations as used herein are open-ended, 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. It should be noted that the concepts of "first", "second", etc., used in this disclosure are only used to distinguish different devices, modules, or units, and are not intended to limit the order of functions performed by these devices, modules, or units or their interdependencies.
[0029] 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".
[0030] 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.
[0031] Locally deployed SaaS service capability invocation refers to establishing a unified local SaaS service resource pool, cloudifying the software and hardware corresponding to the SaaS service capabilities on the resource pool, and then invoking the SaaS service capabilities through a unified interface and unified login.
[0032] SaaS service capability invocation based on containerized deployment refers to packaging SaaS services into standardized software products by establishing standardized hardware container resources, and then quickly deploying the SaaS services into standardized containers through Secure Access Service Edge (SASE) to achieve rapid invocation of SaaS services.
[0033] In related technologies, application invocation typically involves multi-factor authentication of user information to accurately determine the application the user needs to invoke, and then presenting the corresponding SaaS service to the user through an Application Programming Interface (API) or other means. However, this invocation method has the following drawbacks: all user information needs to be stored in the SaaS service resource pool (or SaaS service platform) in advance, making the invocation of SaaS service capabilities overly dependent on the SaaS service resource pool (or SaaS service platform); and all applications corresponding to SaaS service capabilities must be designed according to the required specifications before being centrally deployed in the SaaS service resource pool (or SaaS service platform). This results in high management and performance requirements for the SaaS service resource pool (or SaaS service platform) when the number of applications corresponding to SaaS service capabilities is large, which is not conducive to achieving rapid invocation of SaaS service capabilities.
[0034] Therefore, in order to solve the above problems, the exemplary embodiments of this disclosure provide an application invocation method, which effectively reduces the load of the SaaS service platform and improves the efficiency of the SaaS service platform by distributing the application corresponding to the SaaS service capability; at the same time, by using user authentication, the same SaaS service capability can be provided to users through multiple application providers, which effectively improves the management efficiency of the SaaS service platform; finally, by using user authentication, the required SaaS service capability can be quickly provided to users based on different user requests and the application.
[0035] The exemplary embodiments of this disclosure provide an application invocation method that can be executed by a service platform or by a chip applied to the service platform.
[0036] For example, the service platform described above may be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms. This exemplary embodiment does not limit the scope of the disclosure.
[0037] The SaaS service platform can pre-store call-related information for multiple applications. Each application has corresponding call interface information, and an association is established between the call-related information and the call interface information. Each application is used to provide users with corresponding SaaS service capabilities, and the call-related information may include, but is not limited to, call codes, operation interfaces, etc.
[0038] The exemplary embodiments disclosed herein can introduce a microservice architecture, deploying each application corresponding to a SaaS service capability as an independent microservice, distributing the applications across multiple servers, and the SaaS service platform becoming a "service mesh" that manages and schedules the applications on these servers.
[0039] At this point, by invoking the association between relevant information and API information, the SaaS service platform can be functionally integrated with multiple applications. Through applications deployed in a distributed manner on multiple servers, the SaaS service platform and SaaS service capabilities can be deeply integrated, providing a foundation for the unified display and invocation of different SaaS service capabilities through a single SaaS service platform.
[0040] In practical applications, users first initiate a login request to the SaaS service platform. This login request can carry the user's login information and the call code of the target application, which is used to provide the user with the target SaaS service capabilities. After receiving the login request, the SaaS service platform performs identity authentication on the user's login information.
[0041] For example, user authentication information can be saved to a third-party identity authentication center. After receiving a login request from the platform, the SaaS service platform interacts with the third-party identity authentication center through the OpenID Connect protocol to obtain the user's authentication information from the third-party identity authentication center and uses the user's authentication information to perform identity authentication on the user's login information.
[0042] For example, blockchain can also be used as a decentralized identity verification system. User authentication information (or identity information) can be encrypted and stored on the blockchain to ensure that the user's identity is not tampered with or leaked. When a user needs to access SaaS service capabilities, the authentication process is automatically executed through a smart contract to verify the validity of the user's identity, thereby improving system efficiency and security.
[0043] Then, after the SaaS service platform verifies the user's login information, it uses the call code of the target application to obtain multiple servers corresponding to the target application, determines the target server from among the multiple servers corresponding to the target application, and sends a service call request to the target server. The service call request is used to ask the server to determine whether the user is a real user or an automated program to avoid invalid calls. After receiving the service call request, the target server verifies the authenticity of the user's login operation.
[0044] For example, human-machine recognition can be introduced, and the authenticity of the user's login operation can be authenticated through methods such as CAPTCHA authentication or image authentication, requiring the user to provide additional verification information to ensure the authenticity of the user's identity when logging in.
[0045] Finally, after the target server verifies the authenticity of the user's login operation, it returns the API call information of the target application to the SaaS service platform.
[0046] For example, after receiving the API call information of the target application from the target server, the SaaS service platform uses an API gateway model to uniformly manage and schedule multiple preset API calls for the target SaaS service capabilities. Based on the API gateway, functions such as monitoring, authentication, and traffic control of API access can be implemented, improving system security and scalability.
[0047] By using adaptive API interface technology, the API interface is dynamically adjusted based on user request data and network environment data to show users the target SaaS service capabilities to be invoked.
[0048] In practical applications, users can perform operations directly on the SaaS service platform, and all operation logs are returned to the SaaS service platform through API calls.
[0049] In some embodiments, when determining the target server from multiple servers corresponding to the target application, the SaaS service platform can first obtain the relative position between each server and the user, and determine the server with the shortest relative position to the user among the multiple servers as the preset server; then, it uses a machine learning-based load balancing prediction model to predict the call request judgment result of the target application in the preset server, so as to ensure that the SaaS service platform can respond to the user's service needs in a timely manner.
[0050] Historical service request data and historical network load data of the target application can be collected from a preset server as training samples to train the network model to be built, resulting in a load balancing prediction model. Then, during the inference phase, the preset server corresponding to the target application is obtained using the call encoding of the target application. The current service request data, current network load data, and historical access data of the user from the preset server are then retrieved. These data are input into the load balancing prediction model to obtain the call request judgment result of the target application on the preset server. This call request judgment result determines whether the target application can be successfully called from the preset server. Specifically, the call request judgment result indicates that the target application can be called from the corresponding server.
[0051] If the judgment result of the call request of the target application in the preset server meets the preset call request judgment result, then the preset server is determined as the target server, and a service call request is sent to the target server.
[0052] In some embodiments, the preset server further includes multiple candidate applications providing the target SaaS service capability, wherein the call request judgment results of each candidate application in the preset server all satisfy the preset call request judgment result; if the call request judgment result of the target application in the preset server does not satisfy the preset call request judgment result, the method further includes:
[0053] Obtain multiple candidate applications that provide the target SaaS service capabilities from the preset server, and obtain the similarity between each candidate application and the target application; determine the candidate application with the highest similarity to the target application from the multiple candidate applications as the target application; determine the preset server as the target server, and send a service call request to the target server.
[0054] For example, when obtaining multiple candidate applications that provide the target SaaS service capability in a preset server, multiple applications that provide the target SaaS service capability in the preset server can be obtained first. Then, the call request judgment result of each application can be predicted using a load balancing prediction model. If the call request judgment result meets the preset call request judgment result, the application can be identified as a candidate application.
[0055] Then, after identifying multiple candidate applications on the preset server that offer the same SaaS service capabilities as the target application, the similarity between each candidate application and the target application can be obtained. The candidate application with the highest similarity to the target application is then selected as the target application. The preset server is then designated as the target server, and a service call request is sent to the target server. At this point, the target application can be called first from the server with the shortest relative location to the user to improve call efficiency. Furthermore, it can be ensured that the application ultimately called has the highest similarity to the target application corresponding to the call code carried in the user's login request, thereby guaranteeing a good user experience.
[0056] In some embodiments, the plurality of servers further includes a plurality of candidate servers; wherein each candidate server includes at least one candidate application that provides the target service capability, the similarity between at least one candidate application and the target application satisfies a preset similarity, and the call request judgment result of at least one candidate application in each candidate server satisfies a preset call request judgment result; the method may further include:
[0057] If the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, then multiple candidate servers are obtained; the relative position between each candidate server and the user is obtained, and the candidate server with the shortest relative position with the user among the multiple candidate servers is updated as the preset server; among the candidate applications included in the candidate server with the shortest relative position with the user among the multiple candidate servers, the candidate application with the highest similarity to the target application is updated as the target application.
[0058] For example, when obtaining multiple candidate servers corresponding to the target application, multiple servers corresponding to the target application can be obtained first. Then, the load balancing prediction model can be used to predict the call request judgment results of the target application in each server. If the call request judgment results meet the preset call request judgment results, the server can be determined as a candidate server.
[0059] As can be seen, the exemplary embodiments of this disclosure can dynamically adjust the servers that can call the target application by combining real-time monitoring data from multiple servers before calling the target application from the server, so as to ensure that the SaaS service platform can respond to the user's service needs in a timely manner and provide the user with better response speed and user experience.
[0060] In some embodiments, to further ensure the security of the SaaS service platform, an abnormal login behavior detection mechanism can be introduced. This mechanism establishes a user login behavior model based on factors such as the user's login pattern, geographical location, and device information. When abnormal situations occur (such as login from a different location or frequent login failures), the system will trigger an alarm or require the user to perform additional verification to prevent unauthorized access and fraudulent activities.
[0061] Based on this, an exemplary embodiment of this disclosure provides a method for invoking an application, applied to a service platform, which can be executed by the service platform or by a chip applied to the service platform. Here, the service platform can be referred to above, and will not be repeated here.
[0062] Figure 1 A flowchart illustrating the invocation method of an application provided in an exemplary embodiment of this disclosure is shown. Figure 1 As shown, the application's calling methods include:
[0063] S101, Receive a platform login request sent by the user; wherein, the platform login request carries the user's login information and the call code of the target application, and the target application is used to provide the target service capabilities to the user;
[0064] S102, if the user login information is verified, the target server is determined from multiple servers corresponding to the target application using the call code of the target application, and a service call request is sent to the target server; wherein, the service call request is used to request the target server to send the call interface information of the target application to the service platform;
[0065] S103: Receive the API call information of the target application and use the API call information to call the target application.
[0066] Specifically, the aforementioned service platform can be the SaaS service platform described above. In this exemplary embodiment, multiple application call codes can be pre-stored within the SaaS service platform, each application having corresponding call interface information. Simultaneously, an association between the call codes and the call interface information is established. Each application is used to provide users with corresponding SaaS service capabilities, and the same target SaaS service capability can be provided by multiple different applications. Here, the providers of the multiple different applications corresponding to the same target SaaS service capability can be the same or different, and this exemplary embodiment does not specifically limit this.
[0067] The platform login request mentioned above can carry user login information and the call code of the target application. The target application is used to provide the user with the target service capabilities, which can be the target SaaS service capabilities mentioned above.
[0068] For example, when a user wants to invoke the capabilities of a target SaaS service, they can select the invocation code of the target application from a list of invocation codes pre-stored by the SaaS service platform for providing the target SaaS service capabilities. Then, the user's login information and the invocation code of the target application can be added to the platform login request, and the platform login request can be sent to the SaaS service platform, which then receives the login request.
[0069] When the SaaS service platform receives a login request, it decodes the request to obtain the user login information and the call code of the target application. Then, it verifies the user login information. If the user login information is verified, it uses the call code of the target application to determine the target server from among multiple servers corresponding to the target application and sends a service call request to the target server. This service call request can be used to request the target server to send the target application's API information to the service platform. This allows the SaaS service platform to invoke the target application using this API information, thereby providing the user with the corresponding target SaaS service capabilities.
[0070] Here, the target application is distributed across multiple servers. The service platform manages and schedules the target application across these servers in a unified manner. When the service platform receives a login request from a user, it authenticates the login request, thereby identifying the target server from among the multiple servers to call the target application and provide the user with the target service capabilities. This improves the calling efficiency of the target application while enhancing the security and scalability of the overall system.
[0071] According to the technical solution of the example embodiment of this disclosure, by receiving a platform login request sent by a user, wherein the platform login request carries the user's login information and the call code of the target application, the target application is used to provide the user with target service capabilities; if the user login information is verified, the target server is determined from multiple servers corresponding to the target application using the call code of the target application, and a service call request is sent to the target server; wherein the service call request is used to request the target server to send the call interface information of the target application to the service platform; receiving the call interface information of the target application and calling the target application using the call interface information, the target application providing target service capabilities can be distributed and deployed on multiple servers, and the service platform can authenticate the platform login request sent by the user, thereby determining the target server from multiple servers to call the target application and providing the user with target service capabilities, improving the calling efficiency of the target application while improving the security and scalability of the overall system.
[0072] In some embodiments, determining the target server from a plurality of servers corresponding to the target application may include:
[0073] The call code of the target application is used to obtain multiple servers corresponding to the target application, and the relative position of each server to the user is obtained.
[0074] Based on the relative position of each server to the user, a preset server is determined from multiple servers;
[0075] Predict the result of the call request from the target application in the preset server;
[0076] If the call request judgment result of the target application in the preset server meets the preset call request judgment result, then the preset server is determined as the target server.
[0077] Specifically, since the same target application can be deployed in a distributed manner on multiple servers, the target application that the user wants to call can be determined first based on the call code of the target application, and then the multiple servers corresponding to the target application can be obtained.
[0078] Considering that in actual invocation, the target application is preferentially invoked from the server closest to the user, the exemplary embodiments of this disclosure can also, after obtaining multiple servers corresponding to the target application, obtain the relative position of each server to the user; and then, based on the relative position of each server to the user, determine a preset server from the multiple servers. For example, the server with the shortest relative position to the user among the multiple servers can be determined as the preset server.
[0079] Before calling the target application from the preset server, it is necessary to pre-determine whether the call to the target application from the preset server can be successful to avoid invalid calls and wasting user time. Based on this, the exemplary embodiment of this disclosure can predict in advance the call request judgment result of the target application in the preset server, and the call request judgment result of the target application in the preset server is used to determine whether the call to the target application from the preset server can be successful.
[0080] If the call request judgment result of the target application in the preset server meets the preset call request judgment result, then the preset server is determined as the target server. Here, the preset call request judgment result can be set to: the target application can be called from the corresponding server.
[0081] Based on this, the exemplary embodiment of this disclosure pre-determines whether the target application can be successfully called from the preset server before calling the target application from the preset server. If the judgment result of the target application's call request in the preset server meets the preset call request judgment result, the preset server is determined as the target server, thereby improving the success rate of calling the target application and thus enhancing the user experience.
[0082] In some embodiments, predicting the result of the call request of the target application in the preset server may include:
[0083] Obtain a pre-built load balancing prediction model, and obtain the current service request data and current network load data of the target application in the preset server, as well as the user's historical access data;
[0084] The current service request data, current network load data, and historical access data are input into the load balancing prediction model to obtain the call request judgment result of the target application in the preset server.
[0085] Specifically, historical service request data and historical network load data of the target application in a preset server can be collected as training samples to train the network model to be built, thereby obtaining a load balancing prediction model. Here, the network model to be built can be a conventional load balancing prediction model or a custom load balancing prediction model, and the exemplary embodiments of this disclosure do not specifically limit it in this regard.
[0086] During the inference phase, the preset server corresponding to the target application can be obtained first. Then, the current service request data and current network load data of the target application, as well as the user's historical access data, can be obtained from the preset server. The current service request data, current network load data, and user's historical access data are input into the load balancing prediction model to obtain the call request judgment result of the target application in the preset server.
[0087] Based on this, the exemplary embodiments of this disclosure can utilize a pre-built load balancing prediction model to predict the judgment result of the call request of the target application in the preset server, so as to improve the success rate of calling the target application from the preset server and respond to the user's demand for the target service in a timely manner.
[0088] In some embodiments, the preset server may further include multiple candidate applications that provide the target service capability, and the call request judgment results of each candidate application in the preset server all satisfy the preset call request judgment result; the method may further include:
[0089] If the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, then obtain multiple candidate applications that provide the target service capabilities in the preset server.
[0090] Obtain the similarity between each candidate application and the target application;
[0091] The candidate application with the highest similarity to the target application among multiple candidate applications is identified as the target application; and the preset server is identified as the target server.
[0092] Specifically, the preset server may also include multiple candidate applications that provide the target service capabilities. Both the multiple candidate applications and the target application can provide the target service capabilities to the user, but their providers are different, and they may be the same or different in terms of functional implementation.
[0093] For example, multiple applications that provide the target service capability in a preset server can be obtained first. Then, the call request judgment result of each application can be predicted using a load balancing prediction model. If the call request judgment result meets the preset call request judgment result, the application can be identified as a candidate application.
[0094] At this point, if there is only one candidate application, it can be updated to the target application; if there are multiple candidate applications, further screening of the multiple candidate applications is required to re-determine the target application.
[0095] For example, the similarity between each candidate application and the target application can be obtained; the candidate application with the highest similarity to the target application among multiple candidate applications can be identified as the target application.
[0096] Based on this, the exemplary embodiments of this disclosure can, in the event that the target application corresponding to the call code carried in the platform login request cannot be successfully invoked, preferentially invoke other applications that provide the target service capabilities from the server closest to the user, so as to quickly respond to the user's demand for the target service capabilities.
[0097] In some embodiments, the plurality of servers further includes a plurality of candidate servers; wherein each candidate server includes at least one candidate application that provides the target service capability, the similarity between at least one candidate application and the target application satisfies a preset similarity, and the call request judgment result of at least one candidate application in each candidate server satisfies a preset call request judgment result; the method may further include:
[0098] If the judgment result of the target application's call request in the preset server does not meet the preset call request judgment result, then multiple candidate servers are obtained;
[0099] Obtain the relative position between each candidate server and the user, and based on the relative position between each candidate server and the user, re-determine the preset server from multiple candidate servers;
[0100] Among at least one candidate application included in the preset server, the candidate application with the highest similarity to the target application is updated to the target application.
[0101] Specifically, if the default server does not include other applications that provide the target service capabilities besides the target application, then other servers that provide the target service capabilities can be re-determined, and the application that provides the target service capabilities is deployed on these other servers.
[0102] For example, multiple servers can be obtained first, and candidate servers can be selected from them. Each candidate server includes at least one candidate application that provides the target service capability. The call request judgment results of the candidate applications on the candidate servers meet the preset call request judgment results. The call request judgment results of the candidate applications on the candidate servers can be predicted using the load balancing prediction model described earlier.
[0103] If there is only one candidate server, then if the judgment result of the target application's call request in the preset server does not meet the preset call request judgment result, the candidate server will be updated to the preset server, and the candidate application with the highest similarity to the target application among at least one candidate application included in the candidate server will be updated to the target application.
[0104] If there are multiple candidate servers, and the result of the target application's call request judgment in the preset servers does not meet the preset call request judgment result, multiple candidate servers are obtained. The relative position between each candidate server and the user is obtained, and the preset server is re-determined from the multiple candidate servers based on the relative position between each candidate server and the user. For example, the candidate server with the shortest relative position to the user among the multiple candidate servers can be determined as the preset server.
[0105] At the same time, among at least one candidate application included in the preset server, that is, among at least one candidate application included in the candidate server determined as the preset server, the candidate application with the highest similarity to the target application is updated to the target application.
[0106] Based on this, the exemplary embodiment of this disclosure can, in the event that the target application corresponding to the call code carried in the platform login request cannot be successfully invoked, preferentially invoke other applications that provide the target service capabilities from the server that is closer to the user, so as to quickly respond to the user's demand for the target service capabilities.
[0107] As can be seen, the exemplary embodiments of this disclosure can dynamically adjust the servers that can call the target application by combining real-time monitoring data from multiple servers before calling the target application from the server, so as to ensure that the SaaS service platform can respond to the user's service needs in a timely manner and provide the user with better response speed and user experience.
[0108] In some embodiments, the service invocation request can also be used to request the target server to verify the authenticity of the user's login operation; receiving the invocation interface information of the target application may include:
[0109] Receive login verification information sent by the target server based on the service call request;
[0110] In response to the user's verification reply to the login operation verification information, send verification reply information to the target server;
[0111] If the verification response information meets the preset verification response information, the system receives the API call information of the target application sent by the target server.
[0112] Specifically, the aforementioned service call request can also be used to request the target server to verify the authenticity of the user's login operation. An exemplary embodiment of this disclosure can, after receiving login operation verification information sent by the target server based on the service call request, respond to the user's verification reply operation regarding the login operation verification information by sending verification reply information to the target server; and if the verification reply information satisfies preset verification reply information, receive the target application's call interface information sent by the target server.
[0113] Here, the login verification information can be either CAPTCHA authentication or image authentication as mentioned above.
[0114] Based on this, the example embodiments of this disclosure can introduce human-machine recognition on the server side, and authenticate the user's login operation through verification code authentication or image authentication, requiring the user to provide additional verification information to ensure the authenticity of the user's identity when performing the login operation.
[0115] In some embodiments, the method may further include:
[0116] Obtain the pre-stored user authentication information; use the user authentication information to verify the user login information; if the user login information matches the user authentication information, determine that the user login information has passed verification.
[0117] Specifically, the user's authentication information can be stored in a third-party identity authentication center. After receiving a login request from the platform, the service platform interacts with the third-party identity authentication center through the OpenID Connect protocol to obtain the user's authentication information from the third-party identity authentication center. The user's authentication information is then used to authenticate the user's login information. If the user's login information matches the user's authentication information, the user's login information is deemed to have been verified.
[0118] Blockchain can also be used as a decentralized identity verification system. User authentication information is encrypted and stored on the blockchain to ensure that user identities are not tampered with or leaked. When a user needs to access a target service, a smart contract automatically executes the authentication process to verify the validity of the user's identity, thereby improving system efficiency and security.
[0119] Based on this, the example embodiments disclosed herein can authenticate the user login information carried in the platform login request, thereby determining the target server from multiple servers to call the target application, ensuring security while providing users with better response speed and user experience.
[0120] The above-described at least one technical solution adopted in the exemplary embodiments of this disclosure can achieve the following beneficial effects: by receiving a platform login request sent by a user; wherein the platform login request carries the user's login information and the call code of the target application, the target application is used to provide the user with target service capabilities; if the user login information is verified, the target server is determined from multiple servers corresponding to the target application using the call code of the target application, and a service call request is sent to the target server; wherein the service call request is used to request the target server to send the call interface information of the target application to the service platform; by receiving the call interface information of the target application and calling the target application using the call interface information, the target application providing target service capabilities can be distributed and deployed on multiple servers, and the service platform can authenticate the platform login request sent by the user, thereby determining the target server from multiple servers to call the target application and providing the user with target service capabilities, improving the calling efficiency of the target application while improving the security and scalability of the overall system.
[0121] The foregoing primarily describes the solutions provided by exemplary embodiments of this disclosure. It is understood that, in order to achieve the above functions, the electronic device includes corresponding hardware structures and / or software modules for performing each function. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein, this disclosure can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this disclosure.
[0122] The exemplary embodiments of this disclosure can divide the electronic device into functional units according to the above method examples. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into a single processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in the exemplary embodiments of this disclosure is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.
[0123] In the case of dividing each functional module according to its corresponding function, an exemplary embodiment of this disclosure provides an application invocation device, which can be an electronic device or a chip applied to an electronic device. Figure 2 A schematic diagram of the structure of an application invocation device provided in an exemplary embodiment of this disclosure is shown. Figure 2As shown, the device 200 includes:
[0124] The communication module 201 is used to receive a platform login request sent by a user; wherein the platform login request carries the user's login information and the call code of the target application, and the target application is used to provide the user with the target service capabilities;
[0125] Processing module 202 is used to determine the target server from multiple servers corresponding to the target application by using the call code of the target application when the user login information is verified.
[0126] The communication module 201 is also used to send a service call request to the target server; wherein, the service call request is used to request the target server to send the call interface information of the target application to the service platform;
[0127] The communication module 201 is also used to receive the call interface information of the target application;
[0128] Module 203 is invoked to invoke the target application using the API call information.
[0129] In some embodiments, the processing module 202 is further configured to obtain multiple servers corresponding to the target application using the call code of the target application, and obtain the relative position between each server and the user; determine a preset server from the multiple servers based on the relative position between each server and the user; predict the call request judgment result of the target application in the preset server; and if the call request judgment result of the target application in the preset server satisfies the preset call request judgment result, then determine the preset server as the target server.
[0130] In some embodiments, the processing module 202 is further configured to obtain a pre-built load balancing prediction model, and obtain the current service request data and current network load data of the target application in the preset server, as well as the user's historical access data; input the current service request data, current network load data and historical access data into the load balancing prediction model to obtain the call request judgment result of the target application in the preset server.
[0131] In some embodiments, the preset server further includes multiple candidate applications that provide the target service capabilities, and the call request judgment results of each candidate application in the preset server all satisfy the preset call request judgment result.
[0132] The processing module 202 is further configured to, if the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, obtain multiple candidate applications that provide the target service capability in the preset server; obtain the similarity between each candidate application and the target application; determine the candidate application with the highest similarity to the target application among the multiple candidate applications as the target application; and determine the preset server as the target server.
[0133] In some embodiments, the plurality of servers further include a plurality of candidate servers; wherein each candidate server includes at least one candidate application that provides the target service capability, the similarity between at least one candidate application and the target application satisfies a preset similarity, and the call request judgment result of at least one candidate application in each candidate server satisfies a preset call request judgment result.
[0134] The processing module 202 is further configured to: if the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, obtain multiple candidate servers; obtain the relative position between each candidate server and the user, and based on the relative position between each candidate server and the user, re-determine the preset server from the multiple candidate servers; and update the candidate application with the highest similarity to the target application to the target application among at least one candidate application included in the preset server.
[0135] In some embodiments, the service call request is also used to request the target server to verify the authenticity of the user's login operation;
[0136] The communication module 201 is also used to receive login operation verification information sent by the target server based on the service call request; in response to the user's verification reply operation for the login operation verification information, send verification reply information to the target server; and if the verification reply information meets the preset verification reply information, receive the call interface information of the target application sent by the target server.
[0137] In some embodiments, the processing module 202 is further configured to obtain pre-stored user authentication information; verify user login information using the user authentication information; and determine that the user login information has passed verification if the user login information matches the user authentication information.
[0138] An exemplary embodiment of this disclosure also provides an electronic device, including: at least one processor; a memory for storing at least one processor-executable instruction; wherein the at least one processor is configured to execute the instruction to implement the steps of the method disclosed in the exemplary embodiment of this disclosure.
[0139] Figure 3A schematic diagram of the structure of an electronic device provided in an exemplary embodiment of this disclosure is shown. For example... Figure 3 As shown, the electronic device 300 includes at least one processor 301 and a memory 302 coupled to the processor 301, which can perform the corresponding steps in the methods disclosed in the exemplary embodiments of this disclosure.
[0140] The processor 301 described above can also be referred to as a Central Processing Unit (CPU), which can be an integrated circuit chip with signal processing capabilities. Each step in the method disclosed in the exemplary embodiments of this disclosure can be implemented by the integrated logic circuitry in the hardware of the processor 301 or by instructions in software form. The processor 301 described above can be a general-purpose processor, a digital signal processor (DSP), an ASIC, a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in conjunction with the exemplary embodiments of this disclosure can be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor. The software modules can be located in the memory 302, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The processor 301 reads information from the memory 302 and, in conjunction with its hardware, completes the steps of the above method.
[0141] Furthermore, various operations / processes according to this disclosure, implemented via software and / or firmware, can be transmitted from a storage medium or network to a computer system with a dedicated hardware architecture, for example, Figure 4 The computer system 400 shown is equipped with the programs that constitute the software. When various programs are installed, the computer system is able to perform various functions, including functions such as those described above. Figure 4 A schematic diagram of the structure of a computer system provided in an exemplary embodiment of this disclosure is shown.
[0142] Computer system 400 is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. Electronic devices may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0143] like Figure 4 As shown, the computer system 400 includes a computing unit 401, which can perform various appropriate actions and processes based on a computer program stored in a read-only memory (ROM) 402 or a computer program loaded from a storage unit 408 into a random access memory (RAM) 403. The RAM 403 may also store various programs and data required for the operation of the computer system 400. The computing unit 401, ROM 402, and RAM 403 are interconnected via a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.
[0144] Multiple components in the computer system 400 are connected to the I / O interface 405, including: an input unit 406, an output unit 407, a storage unit 408, and a communication unit 409. The input unit 406 can be any type of device capable of inputting information into the computer system 400. The input unit 406 can receive input numerical or character information and generate key signal inputs related to user settings and / or function control of the electronic device. The output unit 407 can be any type of device capable of presenting information and may include, but is not limited to, a monitor, speaker, video / audio output terminal, vibrator, and / or printer. The storage unit 408 may include, but is not limited to, a hard disk and an optical disk. The communication unit 409 allows the computer system 400 to exchange information / data with other devices via a network such as the Internet, and may include, but is not limited to, a modem, network card, infrared communication device, wireless communication transceiver, and / or chipset, such as Bluetooth™ device, WiFi device, WiMax device, cellular communication device, and / or the like.
[0145] The computing unit 401 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 401 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 401 performs the various methods and processes described above. For example, in some embodiments, the methods disclosed in the exemplary embodiments of this disclosure can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 408. In some embodiments, part or all of the computer program can be loaded and / or installed on an electronic device via ROM 402 and / or communication unit 409. In some embodiments, the computing unit 401 can be configured to perform the methods disclosed in the exemplary embodiments of this disclosure by any other suitable means (e.g., by means of firmware).
[0146] This exemplary embodiment also provides a computer-readable storage medium, wherein when the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the methods disclosed in this exemplary embodiment.
[0147] The computer-readable storage medium in the exemplary embodiments of this disclosure may 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. The aforementioned computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specifically, the aforementioned computer-readable storage medium may include electrical connections based on one or more wires, a portable computer disk, a hard disk, 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.
[0148] 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.
[0149] This disclosure also provides an exemplary embodiment of a computer program product, including a computer program, wherein the computer program, when executed by a processor, implements the methods disclosed in the exemplary embodiments of this disclosure.
[0150] In embodiments of this disclosure, computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof. These programming languages include, but are 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.
[0151] 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.
[0152] The modules, components, or units described in the exemplary embodiments of this disclosure may be implemented in software or hardware. The names of the modules, components, or units do not, in some cases, constitute a limitation on the module, component, or unit itself.
[0153] The functions described above in this document can be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary hardware logic components that can be used include: field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.
[0154] The above description is merely an 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.
[0155] While specific embodiments of this disclosure have been described in detail by way of example, those skilled in the art should understand that the examples are for illustrative purposes only and not intended to limit the scope of this disclosure. Those skilled in the art should understand that modifications can be made to the above embodiments without departing from the scope and spirit of this disclosure. The scope of this disclosure is defined by the appended claims.
Claims
1. A method for invoking an application, characterized in that, Applications to service platforms include: Receive a platform login request sent by a user; wherein the platform login request carries the user's login information and the call code of the target application, and the target application is used to provide the user with the target service capability; If the user login information is verified, the call code of the target application is used to obtain multiple servers corresponding to the target application, and the relative position between each server and the user is obtained; based on the relative position between each server and the user, a preset server is determined from the multiple servers; Obtain a pre-built load balancing prediction model, and obtain the current service request data and current network load data of the target application in the preset server, as well as the user's historical access data; input the current service request data, the current network load data, and the historical access data into the load balancing prediction model to obtain the call request judgment result of the target application in the preset server; if the call request judgment result of the target application in the preset server meets the preset call request judgment result, then the preset server is determined as the target server; A service call request is sent to the target server; wherein the service call request is used to request the target server to verify the authenticity of the user's login operation, and after the verification is successful, send the call interface information of the target application to the service platform; the service platform pre-stores the call code of the target application and establishes an association between the call code of the target application and the call interface information. Receive the API call information of the target application, and use the API call information to call the target application; The preset server further includes multiple candidate applications that provide the target service capability, and the call request judgment results of each of the candidate applications in the preset server all satisfy the preset call request judgment result; the method further includes: If the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, then multiple candidate applications that provide the target service capability in the preset server are obtained. Obtain the similarity between each candidate application and the target application; The candidate application with the highest similarity to the target application among the multiple candidate applications is identified as the target application; and the preset server is identified as the target server. The plurality of servers further includes a plurality of candidate servers; wherein each candidate server includes at least one candidate application providing the target service capability, the similarity between the at least one candidate application and the target application satisfies a preset similarity, and the call request judgment result of at least one candidate application in each candidate server satisfies the preset call request judgment result; the method further includes: If the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, then the multiple candidate servers are obtained; Obtain the relative position between each of the candidate servers and the user, and based on the relative position between each of the candidate servers and the user, re-determine the preset server from the plurality of candidate servers; Among at least one candidate application included in the preset server, the candidate application with the highest similarity to the target application is updated to the target application.
2. The method according to claim 1, characterized in that, The step of receiving the API call information of the target application includes: Receive login operation verification information sent by the target server based on the service call request; In response to the user's verification reply operation regarding the login operation verification information, a verification reply information is sent to the target server; If the verification response information meets the preset verification response information, the system receives the API call information of the target application sent by the target server.
3. The method according to claim 1, characterized in that, The method further includes: Obtain the user authentication information of the user that has been stored in advance; The user login information is verified using the user authentication information; If the user login information matches the user authentication information, the user login information is determined to be verified.
4. An application invocation device, characterized in that, Applications to service platforms include: A communication module is used to receive a platform login request sent by a user; wherein the platform login request carries the user's login information and the call code of a target application, and the target application is used to provide the user with target service capabilities; The processing module is configured to, when the user login information is verified, use the call code of the target application to obtain multiple servers corresponding to the target application, and obtain the relative position between each server and the user; and determine a preset server from the multiple servers based on the relative position between each server and the user. The processing module is further configured to acquire a pre-built load balancing prediction model, and acquire the current service request data and current network load data of the target application in the preset server, as well as the user's historical access data; input the current service request data, the current network load data, and the historical access data into the load balancing prediction model to obtain the call request judgment result of the target application in the preset server; if the call request judgment result of the target application in the preset server satisfies the preset call request judgment result, then the preset server is determined as the target server; The communication module is also used to send a service call request to the target server; wherein, the service call request is used to request the target server to verify the authenticity of the user's login operation, and after the verification is successful, send the call interface information of the target application to the service platform; the service platform pre-stores the call code of the target application and establishes an association between the call code of the target application and the call interface information. The communication module is also used to receive the API call information of the target application; The calling module is used to call the target application using the calling interface information; The preset server also includes multiple candidate applications that provide the target service capability, and the call request judgment result of each of the candidate applications in the preset server satisfies the preset call request judgment result; The processing module is further configured to, if the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, obtain multiple candidate applications that provide the target service capability in the preset server; obtain the similarity between each candidate application and the target application; determine the candidate application with the highest similarity to the target application among the multiple candidate applications as the target application; and determine the preset server as the target server; The plurality of servers further includes a plurality of candidate servers; wherein each candidate server includes at least one candidate application that provides the target service capability, the similarity between the at least one candidate application and the target application satisfies a preset similarity, and the call request judgment result of at least one candidate application in each candidate server satisfies the preset call request judgment result. The processing module is further configured to: if the judgment result of the call request of the target application in the preset server does not meet the preset call request judgment result, obtain the plurality of candidate servers; obtain the relative position between each candidate server and the user, and based on the relative position between each candidate server and the user, re-determine the preset server from the plurality of candidate servers; and update the candidate application with the highest similarity to the target application to the target application among at least one candidate application included in the preset server.
5. An electronic device, characterized in that, include: At least one processor; Memory for storing the at least one processor-executable instruction; The at least one processor is configured to execute the instructions to implement the steps of the method as described in any one of claims 1 to 3.
6. A computer program product, characterized in that, It includes a computer program, wherein when the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 3.
Citation Information
Patent Citations
Service calling request sending method and device, electronic equipment and readable storage medium
CN114827161A
Server calling method and related equipment
CN115686812A
Distributed video conference system, application method, equipment and medium
CN115883772A