[go: up one dir, main page]

BR112024008227B1 - METHOD AND APPARATUS FOR MANAGING CLIENT APPLICATION NETWORK TRAFFIC - Google Patents

METHOD AND APPARATUS FOR MANAGING CLIENT APPLICATION NETWORK TRAFFIC

Info

Publication number
BR112024008227B1
BR112024008227B1 BR112024008227-0A BR112024008227A BR112024008227B1 BR 112024008227 B1 BR112024008227 B1 BR 112024008227B1 BR 112024008227 A BR112024008227 A BR 112024008227A BR 112024008227 B1 BR112024008227 B1 BR 112024008227B1
Authority
BR
Brazil
Prior art keywords
data
traffic data
user
information
analyzing
Prior art date
Application number
BR112024008227-0A
Other languages
Portuguese (pt)
Inventor
Xing Yao
Zhongwei Huang
Lei Wang
Chaoyang Shang
Junyu Du
Jun Dai
Original Assignee
Beijing Bytedance Network Technology Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bytedance Network Technology Co., Ltd filed Critical Beijing Bytedance Network Technology Co., Ltd
Publication of BR112024008227B1 publication Critical patent/BR112024008227B1/en

Links

Abstract

MÉTODO E APARELHO PARA GERENCIAR TRÁFEGO DE REDE DE APLICAÇÃO CLIENTE. De acordo com modalidades da presente divulgação, é provido um método, aparelho, dispositivo e meio de armazenamento para gerenciar dados de tráfego de uma aplicação cliente. O método descrito na presente invenção compreende: detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor; analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base em tipos de dados de tráfego; e de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados. Desta forma, ao analisar os dados de tráfego em diferentes camadas da transmissão e restringir os dados de tráfego que não satisfazem a contenção de troca de dados, é possível prevenir de forma eficaz que os dados de usuário sejam transmitidos para servidores não autorizados via vários tipos de dados de tráfego.METHOD AND APPARATUS FOR MANAGING CLIENT APPLICATION NETWORK TRAFFIC. According to embodiments of the present disclosure, a method, apparatus, device, and storage medium are provided for managing traffic data of a client application. The method described in the present invention comprises: detecting a transmission of user data from a target user from the client application to a server; analyzing the transmission traffic data at different transmission layers based on traffic data types; and, based on a determination that the analysis indicates that the traffic data satisfies a data exchange constraint corresponding to the target user, transmitting the traffic data to a server in compliance with the data exchange constraint. Thus, by analyzing the traffic data at different transmission layers and restricting traffic data that does not satisfy the data exchange constraint, it is possible to effectively prevent user data from being transmitted to unauthorized servers via various traffic data types.

Description

[001] Este pedido reivindica prioridade do Pedido de Patente Chinesa N° 202111258204.1 depositado junto à Administração Nacional de Propriedade Intelectual da China em 27 de outubro de 2021 e intitulado “METHOD AND APPARATUS FOR MANAGING NETWORK TRAFFIC OF CLIENT APPLICATION”, o conteúdo do qual é incorporado na presente invenção por referência em sua totalidade.[001] This application claims priority from Chinese Patent Application No. 202111258204.1 filed with the National Intellectual Property Administration of China on October 27, 2021, and entitled “METHOD AND APPARATUS FOR MANAGING NETWORK TRAFFIC OF CLIENT APPLICATION”, the content of which is incorporated into the present invention by reference in its entirety.

CAMPOFIELD

[002] Várias implementações da presente divulgação se referem ao campo de computador e, mais especificamente, a um método, aparelho, dispositivo e meio de armazenamento de computador relacionado a uma aplicação cliente.[002] Various implementations of the present disclosure relate to the computer field and, more specifically, to a computer method, apparatus, device, and storage medium related to a client application.

ANTECEDENTESBACKGROUND

[003] Com o desenvolvimento da tecnologia da Internet, diferentes variedades de aplicações de Internet tornaram-se uma parte importante da vida das pessoas. Tais aplicações geram uma enorme quantidade de dados todos os dias, o que acarreta vários problemas de segurança de dados, tais como a proteção de soberania dos dados. Por exemplo, alguns países podem proibir tipos específicos de dados de usuários de serem enviados para servidores do ROW (resto do mundo).[003] With the development of Internet technology, various Internet applications have become an important part of people's lives. These applications generate a huge amount of data every day, which raises various data security issues, such as protecting data sovereignty. For example, some countries may prohibit specific types of user data from being sent to ROW (rest of the world) servers.

[004] Para algumas aplicações globalizadas, tais desafios são ainda mais significativos. Estas aplicações globalizadas podem necessitar prover serviços para usuários em múltiplas regiões diferentes com base na mesma arquitetura técnica. No entanto, estas regiões podem ter diferentes contenções de segurança de dados, por exemplo, requisitos de proteção da soberania de dados específicos, o que agrava adicionalmente a dificuldade da proteção de segurança de dados.[004] For some globalized applications, these challenges are even more significant. These globalized applications may need to provide services to users in multiple different regions based on the same technical architecture. However, these regions may have different data security constraints, for example, specific data sovereignty protection requirements, which further exacerbates the difficulty of data security protection.

SUMÁRIOSUMMARY

[005] Em um primeiro aspecto da presente divulgação, é provido um método para gerenciar dados de tráfego de uma aplicação cliente. O método compreende: detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor; analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base em tipos dos dados de tráfego; e de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego a um servidor em conformidade com a contenção de troca de dados.[005] In a first aspect of the present disclosure, a method is provided for managing traffic data of a client application. The method comprises: detecting a transmission of user data of a target user from the client application to a server; analyzing the traffic data of the transmission at different layers of the transmission based on types of the traffic data; and according to a determination that the analysis indicates that the traffic data satisfies a data exchange contention corresponding to the target user, transmitting the traffic data to a server in compliance with the data exchange contention.

[006] Em um segundo aspecto da presente divulgação, é provido um aparelho para gerenciar dados de tráfego de uma aplicação cliente. O aparelho compreende: um módulo iniciador configurado para iniciar uma detecção de uma transmissão de dados de usuário de um usuário alvo da aplicação cliente para um servidor; um módulo de gerenciamento configurado para: em resposta a ser ativado pelo módulo iniciador, analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base nos tipos dos dados de tráfego; e de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados.[006] In a second aspect of the present disclosure, an apparatus is provided for managing traffic data of a client application. The apparatus comprises: an initiator module configured to initiate a detection of a transmission of user data from a target user of the client application to a server; a management module configured to: in response to being activated by the initiator module, analyze the traffic data of the transmission at different layers of the transmission based on the types of the traffic data; and according to a determination that the analysis indicates that the traffic data satisfies a data exchange contention corresponding to the target user, transmit the traffic data to a server in compliance with the data exchange contention.

[007] Em um terceiro aspecto da presente divulgação, é provido um dispositivo eletrônico compreendendo: uma memória e um processador; em que a memória armazena uma ou mais instruções de computador, em que a uma ou mais instruções de computador são executadas pelo processador para desempenhar o método de acordo com o primeiro aspecto da presente divulgação.[007] In a third aspect of the present disclosure, there is provided an electronic device comprising: a memory and a processor; wherein the memory stores one or more computer instructions, wherein the one or more computer instructions are executed by the processor to perform the method according to the first aspect of the present disclosure.

[008] Em um quarto aspecto da presente divulgação, é provido um meio de armazenamento legível por computador, com uma ou mais instruções de computador armazenadas no mesmo, em que a uma ou mais instruções de computador são executadas por um processador para desempenhar o método de acordo com o primeiro aspecto da presente divulgação.[008] In a fourth aspect of the present disclosure, there is provided a computer-readable storage medium with one or more computer instructions stored thereon, wherein the one or more computer instructions are executed by a processor to perform the method according to the first aspect of the present disclosure.

[009] Em um quinto aspecto da presente divulgação, é provido um produto de programa de computador compreendendo uma ou mais instruções de computador, em que a uma ou mais instruções de computador são executadas por um processador para desempenhar o método de acordo com o primeiro aspecto da presente divulgação.[009] In a fifth aspect of the present disclosure, there is provided a computer program product comprising one or more computer instructions, wherein the one or more computer instructions are executed by a processor to perform the method according to the first aspect of the present disclosure.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[010] Os recursos, vantagens e aspectos acima das modalidades da presente divulgação se tornarão mais aparentes com referência à seguinte descrição detalhada em conjunto com os desenhos anexos. Nos desenhos, os mesmos números de referência ou similares indicam os mesmos elementos ou similares, em que:A Fig. 1 mostra um diagrama de blocos esquemático de um sistema de proteção de segurança de dados de acordo com as modalidades da presente divulgação;A Fig. 2 mostra um diagrama de blocos esquemático de um subsistema de segurança de computação de acordo com algumas modalidades da presente divulgação;A Fig. 3A mostra um exemplo de ambiente de implantação no qual um subsistema de troca de dados é implantado de acordo com algumas modalidades da presente divulgação;A Fig. 3B mostra uma implementação de DES em um data center interno (IDC) no lado do TTP e um ROW IDC (RoW (resto do mundo) IDC) onde o não-TTP está localizado de acordo com algumas modalidades da presente divulgação;A Fig. 3C mostra um diagrama de blocos de um exemplo de arquitetura de acordo com algumas modalidades da presente divulgação;A Fig. 3D mostra um fluxograma de um processo de troca de dados de acordo com algumas modalidades da presente divulgação;A Fig. 3E mostra um fluxograma de um exemplo de fluxo de dados de vários processamentos de dados implementados como DES de acordo com algumas modalidades da presente divulgação;A Fig. 3F mostra um diagrama de blocos esquemático da arquitetura de troca de dados relacionada a um canal de MQ de acordo com algumas modalidades da presente divulgação;A Fig. 3G mostra um diagrama de blocos esquemático da arquitetura de troca de dados relacionada a um canal de HDFS de acordo com algumas modalidades da presente divulgação;A Fig. 3H mostra uma vista esquemática de um canal de armazenamento de objeto alvo (TOS) para copiar dados a partir de TTP IDC ao Row IDC de acordo com algumas modalidades da presente divulgação;A Fig. 3I mostra uma vista esquemática de um canal de TOS para copiar dados a partir do RoW IDC para TTP IDC de acordo com algumas modalidades da presente divulgação;A Fig. 3J mostra um diagrama de sequência de mensagem em um canal de TOS de acordo com algumas modalidades da presente divulgação;A Fig. 3K mostra um diagrama de blocos esquemático da arquitetura de troca de dados relacionada a um canal de invocação de serviço de acordo com algumas modalidades da presente divulgação;A Fig. 3L mostra um exemplo de troca de dados a partir de não-TTP para TTP em um canal de invocação de serviço de acordo com algumas modalidades da presente divulgação;A Fig. 3M mostra um exemplo de troca de dados a partir de TTP para não- TTP em um canal de invocação de serviço de acordo com algumas modalidades da presente divulgação;A Fig. 4A mostra um fluxograma de um método de gerenciamento de dados de tráfego de uma aplicação final móvel de acordo com algumas modalidades da presente divulgação;A Fig. 4B mostra uma vista esquemática de um processo de análise e interceptação para um tipo nativo de dados de tráfego de acordo com algumas modalidades da presente divulgação;A Fig. 4C mostra uma vista esquemática de um processo de análise e interceptação para um tipo WebView de dados de tráfego de acordo com algumas modalidades da presente divulgação;A Fig. 4D mostra uma vista esquemática de um processo de análise e interceptação para dados de tráfego do tipo SDK de terceiros de acordo com algumas modalidades da presente divulgação;A Fig. 4E mostra um diagrama de módulo de um subsistema de sandbox de segurança de acordo com algumas modalidades da presente divulgação;A Fig. 5 mostra um fluxograma de um exemplo de processo de gerenciamento de uma política de recomendação de acordo com algumas modalidades da presente divulgação;A Fig. 6 mostra um exemplo de diagrama de blocos de um aparelho para troca de dados de acordo com algumas modalidades da presente divulgação; eA Fig. 7 mostra um diagrama de blocos de um dispositivo exemplar para implementar as modalidades da presente divulgação.[010] The above features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the drawings, the same or similar reference numerals indicate the same or similar elements, wherein: Fig. 1 shows a schematic block diagram of a data security protection system according to embodiments of the present disclosure; Fig. 2 shows a schematic block diagram of a computing security subsystem according to some embodiments of the present disclosure; Fig. 3A shows an example deployment environment in which a data exchange subsystem is deployed according to some embodiments of the present disclosure; Fig. 3B shows a DES implementation in an internal data center (IDC) on the TTP side and a ROW IDC (RoW (rest of world) IDC) where the non-TTP is located according to some embodiments of the present disclosure; Fig. 3C shows a block diagram of an example architecture according to some embodiments of the present disclosure; Fig. 3D shows a flowchart of a data exchange process according to some embodiments of the present disclosure; Fig. 3E shows a flowchart of an example data flow of various data processing implemented as DES according to some embodiments of the present disclosure; Fig. 3F shows a schematic block diagram of the data exchange architecture related to an MQ channel according to some embodiments of the present disclosure; Fig. 3G shows a schematic block diagram of the data exchange architecture related to an HDFS channel according to some embodiments of the present disclosure; Fig. 3H shows a schematic view of a target object store (TOS) channel for copying data from TTP IDC to Row IDC according to some embodiments of the present disclosure; Fig. 3I shows a schematic view of a TOS channel for copying data from RoW IDC to TTP IDC according to some embodiments of the present disclosure; Fig. 3J shows a message sequence diagram in a TOS channel according to some embodiments of the present disclosure; Fig. 3K shows a schematic block diagram of the data exchange architecture related to a channel service invocation according to some embodiments of the present disclosure; Fig. 3L shows an example of data exchange from non-TTP to TTP in a service invocation channel according to some embodiments of the present disclosure; Fig. 3M shows an example of data exchange from TTP to non-TTP in a service invocation channel according to some embodiments of the present disclosure; Fig. 4A shows a flowchart of a method of managing traffic data of a mobile end application according to some embodiments of the present disclosure; Fig. 4B shows a schematic view of an analysis and interception process for a native type of traffic data according to some embodiments of the present disclosure; Fig. 4C shows a schematic view of an analysis and interception process for a WebView type of traffic data according to some embodiments of the present disclosure; Fig. 4D shows a schematic view of an analysis and interception process for third-party SDK type traffic data according to some embodiments of the present disclosure disclosure; Fig. 4E shows a module diagram of a security sandbox subsystem according to some embodiments of the present disclosure; Fig. 5 shows a flowchart of an example process of managing a recommendation policy according to some embodiments of the present disclosure; Fig. 6 shows an example block diagram of an apparatus for exchanging data according to some embodiments of the present disclosure; and Fig. 7 shows a block diagram of an exemplary device for implementing embodiments of the present disclosure.

DESCRIÇÃO DETALHADA DAS MODALIDADESDETAILED DESCRIPTION OF THE MODALITIES

[011] As modalidades serão descritas com mais detalhes com referência aos desenhos anexos, nos quais algumas modalidades da presente divulgação foram ilustradas. No entanto, a presente divulgação pode ser implementada de várias maneiras e, portanto, não deve ser interpretada como limitada às modalidades divulgadas na presente invenção. Pelo contrário, essas modalidades são providas para a compreensão minuciosa e completa da presente divulgação e para transmitir completamente o escopo da presente divulgação aos técnicos no assunto. Deve ser entendido que os desenhos e modalidades da presente divulgação são usados apenas para ilustração, ao invés de limitar o escopo de proteção da presente divulgação.[011] The embodiments will be described in more detail with reference to the accompanying drawings, in which some embodiments of the present disclosure have been illustrated. However, the present disclosure can be implemented in various ways and, therefore, should not be construed as limited to the embodiments disclosed in the present invention. Rather, these embodiments are provided for the thorough and complete understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art. It should be understood that the drawings and embodiments of the present disclosure are used only for illustration, rather than to limit the scope of protection of the present disclosure.

[012] Na descrição das modalidades da presente divulgação, os termos “compreendem” e suas variantes usadas na presente invenção devem ser lidas como termos abertos que significam “inclui, mas não está limitado a”. O termo “com base em” deve ser lido como “com base pelo menos em parte em”. O termo “uma modalidade” ou “a modalidade” deve ser lido como “pelo menos uma modalidade”. Os termos “primeiro”, “segundo”, e afins, podem se referir a objetos diferentes ou iguais. Outras definições, explícitas e implícitas, podem ser incluídas abaixo.[012] In describing the embodiments of the present disclosure, the terms “comprise” and their variants used in the present invention should be read as open terms meaning “includes, but is not limited to”. The term “based on” should be read as “based at least in part on”. The term “an embodiment” or “the embodiment” should be read as “at least one embodiment”. The terms “first”, “second”, and the like, may refer to different or the same objects. Other definitions, explicit and implicit, may be included below.

[013] O princípio básico e diversos exemplos de implementações da presente divulgação serão ilustrados com referência aos desenhos anexos.[013] The basic principle and various examples of implementations of the present disclosure will be illustrated with reference to the accompanying drawings.

Arquitetura Geral do Sistema de Proteção de Segurança de DadosGeneral Architecture of the Data Security Protection System

[014] De acordo com as modalidades da presente divulgação, é provido um sistema de proteção de segurança de dados. A Fig. 1 mostra um diagrama de blocos esquemático de um sistema de proteção de segurança de dados 1000 de acordo com as modalidades da presente divulgação. Conforme mostrado na Fig. 1, o sistema de proteção de segurança de dados 1000 compreende uma pluralidade de subsistemas para proteger, a partir de diferentes dimensões, a segurança de dados relevantes gerados durante o uso de uma aplicação alvo por um usuário.[014] According to embodiments of the present disclosure, a data security protection system is provided. Fig. 1 shows a schematic block diagram of a data security protection system 1000 according to embodiments of the present disclosure. As shown in Fig. 1, the data security protection system 1000 comprises a plurality of subsystems for protecting, from different dimensions, the security of relevant data generated during a user's use of a target application.

[015] De modo geral, para apoiar a operação da aplicação alvo, por um lado, o usuário precisa operar a aplicação alvo 1080, por exemplo, através de um dispositivo eletrônico apropriado. Por outro lado, uma plataforma de aplicação alvo 1030 precisa ser implantada em um ambiente de computação apropriado (por exemplo, ambiente de computação em nuvem), para operar vários tipos de serviços para apoiar a operação normal da aplicação alvo 1080.[015] Generally speaking, to support the operation of the target application, on the one hand, the user needs to operate the target application 1080, for example, through an appropriate electronic device. On the other hand, a target application platform 1030 needs to be deployed in an appropriate computing environment (e.g., cloud computing environment) to operate various types of services to support the normal operation of the target application 1080.

[016] Em algumas modalidades, o sistema de proteção de segurança de dados 1000 pode primeiro garantir a segurança dos dados gerados durante a operação da aplicação alvo 1080 a partir do ponto de vista da segurança dos códigos operacionais. Conforme mostrado na Fig. 1, o sistema de proteção de segurança de dados 1000 pode compreender um subsistema de computação de segurança 1060, que pode ser usado para garantir a segurança de códigos correspondentes à aplicação alvo 1080 e garantir a segurança de códigos correspondentes à plataforma de aplicação alvo 1030.[016] In some embodiments, the data security protection system 1000 may first ensure the security of data generated during the operation of the target application 1080 from the viewpoint of the security of the operational codes. As shown in Fig. 1, the data security protection system 1000 may comprise a security computing subsystem 1060, which may be used to ensure the security of codes corresponding to the target application 1080 and ensure the security of codes corresponding to the target application platform 1030.

[017] Um arquivo operacional de serviço compilado pelo subsistema de computação 1060 pode ser implantado na plataforma de aplicação alvo 1030, por exemplo, e um arquivo de instalação (por exemplo, arquivo apk) da aplicação alvo compilado pelo subsistema de computação 1060 pode ser emitido para uma loja de aplicativos 1120, por exemplo. A implementação específica do subsistema de computação de segurança 1060 será discutida em detalhes abaixo em conjunto com a Fig. 2.[017] A service operational file compiled by the computing subsystem 1060 may be deployed to the target application platform 1030, for example, and an installation file (e.g., apk file) of the target application compiled by the computing subsystem 1060 may be issued to an application store 1120, for example. The specific implementation of the security computing subsystem 1060 will be discussed in detail below in conjunction with Fig. 2.

[018] Em algumas modalidades, conforme mostrado na Fig. 1, o subsistema de computação de segurança 1060 pode ser com base em infraestrutura de nuvem 1070. Em algumas modalidades, a infraestrutura em nuvem 1070 pode ser provida por um parceiro confiável, por exemplo. Na presente divulgação, o “parceiro confiável” também pode ser referido como parceiro tecnológico confiável (TTP), que pode compreender, por exemplo, qualquer indivíduo, empresa ou organização tecnicamente confiável em uma região específica (por exemplo, país ou jurisdição específica).[018] In some embodiments, as shown in Fig. 1, the security computing subsystem 1060 may be based on cloud infrastructure 1070. In some embodiments, the cloud infrastructure 1070 may be provided by a trusted partner, for example. In the present disclosure, the “trusted partner” may also be referred to as a trusted technology partner (TTP), which may comprise, for example, any technically trusted individual, company, or organization in a specific region (e.g., specific country or jurisdiction).

[019] Em algumas modalidades, conforme mostrado na Fig. 1, o sistema de proteção de segurança de dados 1000 pode compreender um ambiente de segurança confiável 1010 provido pelo TTP. Ao contrário da implantação de uma plataforma de aplicação tradicional, a plataforma de aplicação alvo 1030 pode ser implantada no ambiente de segurança confiável 1010 para aumentar a segurança dos dados gerados pela plataforma de aplicação alvo 1030, assim como a transparência e credibilidade do mecanismo operacional da mesma.[019] In some embodiments, as shown in Fig. 1, the data security protection system 1000 may comprise a trusted security environment 1010 provided by the TTP. Unlike deploying a traditional application platform, the target application platform 1030 may be deployed in the trusted security environment 1010 to increase the security of the data generated by the target application platform 1030, as well as the transparency and credibility of the operational mechanism thereof.

[020] Em algumas modalidades, a aplicação alvo 1080 pode prover aos usuários serviços de recomendação de conteúdo através de algoritmos de recomendação. Tal recomendação de conteúdo pode compreender, mas não se limita a, recomendação de conteúdo multimídia, recomendação de usuário, recomendação de produto, etc. Considerando que cada vez mais sistemas de recomendação atualmente usam aprendizado de máquina para desempenhar a função de recomendação, pode ser difícil garantir a imparcialidade da recomendação ao gerenciar o mecanismo de recomendação apenas a partir do nível do código.[020] In some embodiments, the target application 1080 may provide users with content recommendation services through recommendation algorithms. Such content recommendation may comprise, but is not limited to, multimedia content recommendation, user recommendation, product recommendation, etc. Considering that more and more recommendation systems currently use machine learning to perform the recommendation function, it may be difficult to ensure the fairness of the recommendation when managing the recommendation engine only from the code level.

[021] Conforme mostrado na Fig. 1, o sistema de proteção de segurança de dados 1000 pode compreender adicionalmente um subsistema de gerenciamento de recomendação 1050, que pode, por exemplo, garantir a imparcialidade do mecanismo de recomendação na aplicação alvo 1080, ao testar o algoritmo de recomendação operado pela plataforma de aplicação alvo 1030. A implementação específica do subsistema de gerenciamento de recomendação 1050 será descrita em detalhes abaixo.[021] As shown in Fig. 1, the data security protection system 1000 may further comprise a recommendation management subsystem 1050, which may, for example, ensure the fairness of the recommendation engine in the target application 1080 by testing the recommendation algorithm operated by the target application platform 1030. The specific implementation of the recommendation management subsystem 1050 will be described in detail below.

[022] Em algumas modalidades, considerando que quando a plataforma de aplicação alvo 1030 opera um serviço para apoiar a operação normal da aplicação alvo 1080, a plataforma de aplicação alvo 1030 pode precisar interagir com aplicações ou data centers (também referidos como aplicações do ROW ou data centers do ROW) fora da região alvo (por exemplo, um país ou jurisdição específica) onde está atualmente implantado.[022] In some embodiments, considering that when the target application platform 1030 operates a service to support the normal operation of the target application 1080, the target application platform 1030 may need to interact with applications or data centers (also referred to as ROW applications or ROW data centers) outside of the target region (e.g., a specific country or jurisdiction) where it is currently deployed.

[023] De modo geral, a região alvo costuma adotar leis ou regulamentações para conter a comunicação de dados gerados na região atual com o exterior. Tipos específicos de dados gerados na região alvo podem ser proibidos de serem transmitidos ao exterior. A fim de garantir a conformidade da plataforma de aplicação alvo 1030 no processo de comunicação com o exterior, o subsistema de proteção de segurança de dados pode compreender um subsistema de troca de dados 1040. De maneira similar, o subsistema de troca de dados 1040 pode ser implantado no ambiente de segurança confiável 1010 para garantir a transparência e credibilidade de sua operação.[023] Generally, the target region often adopts laws or regulations to restrict the communication of data generated in the current region with the outside world. Specific types of data generated in the target region may be prohibited from being transmitted to the outside world. To ensure compliance of the target application platform 1030 during external communication, the data security protection subsystem may comprise a data exchange subsystem 1040. Similarly, the data exchange subsystem 1040 may be deployed in the trusted security environment 1010 to ensure the transparency and credibility of its operation.

[024] Em algumas modalidades, conforme mostrado na Fig. 1, o subsistema de troca de dados 1040 pode compreender uma pluralidade de canais de dados para diferentes tipos de transmissão de dados. Por exemplo, os dados de multimídia gerados na plataforma de aplicação alvo 1030 podem se comunicar com uma aplicação do ROW 1140 e/ou um data center do ROW 1150 através de um respectivo canal de dados no subsistema de troca de dados 1040 via uma rede de distribuição de conteúdo 1130 provida por terceiros.[024] In some embodiments, as shown in Fig. 1, the data exchange subsystem 1040 may comprise a plurality of data channels for different types of data transmission. For example, multimedia data generated on the target application platform 1030 may communicate with an application of the ROW 1140 and/or a data center of the ROW 1150 through a respective data channel on the data exchange subsystem 1040 via a content distribution network 1130 provided by a third party.

[025] Como outro exemplo, para alguns dados internos específicos gerados na plataforma de aplicação alvo 1030, ela pode se comunicar com o data center do ROW 1150 e um departamento de desenvolvimento do ROW 1160 através de um respectivo canal de dados, por exemplo, através de um cabo óptico direto. A implementação específica do subsistema de troca de dados 1040 será descrita em detalhes em conjunto com as Figs. 3A a 3M.[025] As another example, for some specific internal data generated on the target application platform 1030, it may communicate with the data center of the ROW 1150 and a development department of the ROW 1160 via a respective data channel, e.g., via a straight-through optical cable. The specific implementation of the data exchange subsystem 1040 will be described in detail in conjunction with Figs. 3A-3M.

[026] Adicionalmente, para garantir a segurança da comunicação de saída e de entrada da plataforma de aplicação alvo 1030, em algumas modalidades, o subsistema de segurança de dados 1000 pode compreender adicionalmente um subsistema de firewall de aplicação 1020. O subsistema de firewall de aplicação 1020 pode ser implantado no ambiente de segurança confiável 1010, o qual pode ser usado para monitorar a comunicação de dados a partir da aplicação alvo 1080 para a plataforma de aplicação alvo 1030, a comunicação de dados a partir da plataforma de aplicação alvo 1030 para a aplicação alvo 1080 e/ou a comunicação de dados a partir da plataforma de aplicação alvo 1030 para uma aplicação de terceiros 110, etc.[026] Additionally, to ensure the security of outgoing and incoming communication from the target application platform 1030, in some embodiments, the data security subsystem 1000 may further comprise an application firewall subsystem 1020. The application firewall subsystem 1020 may be deployed in the trusted security environment 1010, which may be used to monitor data communication from the target application 1080 to the target application platform 1030, data communication from the target application platform 1030 to the target application 1080, and/or data communication from the target application platform 1030 to a third-party application 110, etc.

[027] Desta forma, a plataforma de proteção de segurança de dados 1000 não só pode garantir a segurança e conformidade da comunicação de dados entre a plataforma de aplicação alvo 1030 e o exterior através do subsistema de troca de dados 1040, mas também pode garantir a segurança e conformidade da comunicação entre a plataforma de aplicação alvo 1030 e vários objetos domésticos (por exemplo, a aplicação alvo 1080 ou uma aplicação de terceiros 1110, etc.) através do subsistema de firewall de aplicação 1020.[027] In this way, the data security protection platform 1000 can not only ensure the security and compliance of data communication between the target application platform 1030 and the outside through the data exchange subsystem 1040, but can also ensure the security and compliance of communication between the target application platform 1030 and various home objects (e.g., the target application 1080 or a third-party application 1110, etc.) through the application firewall subsystem 1020.

[028] Em algumas modalidades, em relação à aplicação alvo 1080, para garantir a conformidade e credibilidade de sua operação, o sistema de proteção de segurança de dados 1000 pode compreender adicionalmente um subsistema de sandbox de segurança 1090 gerenciado pelo TTP, o qual habilita diferentes tipos de comunicação de rede envolvidos na lógica de negócios de aplicação 1100 da aplicação alvo 1080 a ser protegida pelo subsistema de sandbox de segurança 1090. Desta forma, o sistema de proteção de segurança de dados 1000 pode impedir que a aplicação alvo 1080 inicie comunicação de dados não compatível, por exemplo, através de programas backdoor. A implementação detalhada do subsistema de sandbox de segurança 1090 será descrita em conjunto com as Figs. 4A a 4E abaixo.[028] In some embodiments, with respect to the target application 1080, to ensure compliance and credibility of its operation, the data security protection system 1000 may further comprise a security sandbox subsystem 1090 managed by the TTP, which enables different types of network communication involved in the application business logic 1100 of the target application 1080 to be protected by the security sandbox subsystem 1090. In this way, the data security protection system 1000 may prevent the target application 1080 from initiating non-compliant data communication, for example, through backdoor programs. The detailed implementation of the security sandbox subsystem 1090 will be described in conjunction with Figs. 4A-4E below.

[029] Assim, com base no sistema de proteção de segurança de dados 1000 da presente divulgação, o TTP pode gerenciar e monitorar vários aspectos, tais como segurança de código e segurança de dados durante todo o ciclo de vida, a partir do desenvolvimento até a operação da aplicação alvo, garantindo assim a segurança de dados associada com a aplicação alvo e também garantindo a conformidade de sua operação.[029] Thus, based on the data security protection system 1000 of the present disclosure, the TTP can manage and monitor various aspects such as code security and data security throughout the life cycle from development to operation of the target application, thereby ensuring the data security associated with the target application and also ensuring the compliance of its operation.

Subsistema de Computação de SegurançaSecurity Computing Subsystem

[030] O subsistema de computação de segurança 1060 será descrito em detalhes abaixo com referência à Fig. 2. A Fig. 2 mostra um diagrama de blocos esquemático do subsistema de computação de segurança 1060 de acordo com as modalidades da presente divulgação.[030] The security computing subsystem 1060 will be described in detail below with reference to Fig. 2. Fig. 2 shows a schematic block diagram of the security computing subsystem 1060 in accordance with embodiments of the present disclosure.

[031] Conforme mostrado na Fig. 2, o subsistema de computação de segurança 1060 pode compreender, por exemplo, um ambiente de código de segurança 2010, que pode ser provido pelo TTP. O processo de trabalho do subsistema de computação de segurança 1060 será descrito em conjunto com a submissão do novo código desenvolvido 2140.[031] As shown in Fig. 2, the security computing subsystem 1060 may comprise, for example, a security code environment 2010, which may be provided by the TTP. The work process of the security computing subsystem 1060 will be described in conjunction with the submission of the newly developed code 2140.

[032] Conforme mostrado na Fig. 2, quando os desenvolvedores precisam implantar o novo código desenvolvido 2140, eles podem submeter o código desenvolvido 2140 ao ambiente de código de segurança 2010 através de um gateway de sincronização 2150 provido pelo TTP. Por conseguinte, o código desenvolvido 2140 será sincronizado com uma biblioteca de código 2160 no ambiente de código de segurança 2010.[032] As shown in Fig. 2, when developers need to deploy new developed code 2140, they can submit the developed code 2140 to the secure code environment 2010 through a synchronization gateway 2150 provided by the TTP. Accordingly, the developed code 2140 will be synchronized with a code library 2160 in the secure code environment 2010.

[033] Em algumas modalidades, quando os desenvolvedores precisam usar o novo código desenvolvido 2140 para compilação, o desenvolvedor pode enviar uma solicitação de construção para um sistema de construção de artefato 2080 através do gateway de sincronização 2150.[033] In some embodiments, when developers need to use newly developed code 2140 for compilation, the developer may send a build request to an artifact build system 2080 through the synchronization gateway 2150.

[034] Alternativamente, quando a biblioteca de códigos 2160 recebe o novo código desenvolvido 2140, a biblioteca de códigos 2160 também pode enviar automaticamente um evento de fusão de código ao sistema de construção de artefato 2080 para disparar o sistema de construção de artefato 2080 para começar o processo de construção de artefato (por exemplo, código executável).[034] Alternatively, when code library 2160 receives newly developed code 2140, code library 2160 may also automatically send a code merge event to artifact build system 2080 to trigger artifact build system 2080 to begin the artifact (e.g., executable code) build process.

[035] Quando o processo de construção é iniciado, um módulo de retirar código 2090 pode obter um arquivo de código para construção a partir da biblioteca de código 2160. Em algumas modalidades, o arquivo de código para construção pode ser especificado pelos desenvolvedores ou determinado automaticamente pelo sistema de construção de artefato 2080.[035] When the build process is initiated, a code-removal module 2090 may obtain a code file for building from the code library 2160. In some embodiments, the code file for building may be specified by developers or determined automatically by the artifact build system 2080.

[036] Adicionalmente, um módulo de compilação 2100 pode compilar código retirado a partir da biblioteca de código 2160 pelo módulo de retirar código 2090, por exemplo, para compilá-lo em código intermediário.[036] Additionally, a compilation module 2100 may compile code retrieved from the code library 2160 by the code retrieve module 2090, for example, to compile it into intermediate code.

[037] Em algumas modalidades, considerando que algum código de terceiros é normalmente introduzido durante o processo de compilação de código, o subsistema de computação de segurança 1060 também precisa garantir a segurança do código de terceiros introduzido.[037] In some embodiments, considering that some third-party code is typically introduced during the code compilation process, the security computing subsystem 1060 also needs to ensure the security of the introduced third-party code.

[038] Conforme mostrado na Fig. 2, o subsistema de computação de segurança 1060 pode compreender um gateway independente de terceiros 2030 para checar e confirmar a segurança de uma biblioteca de terceiros 2020 requerida a ser introduzida. Deve-se entender que tal biblioteca de terceiros pode ser uma biblioteca de enlace compilada ou o próprio código fonte, por exemplo.[038] As shown in Fig. 2, the security computing subsystem 1060 may comprise an independent third-party gateway 2030 for checking and confirming the security of a third-party library 2020 required to be introduced. It should be understood that such a third-party library may be a compiled link library or the source code itself, for example.

[039] A biblioteca de terceiros 2020 passando pela checagem de segurança pode ser adicionada a uma biblioteca de artefato 2040. Conforme mostrado na Fig. 2, durante o processo de construção de artefato, o módulo de compilação 2100 pode obter, a partir da biblioteca de artefato 2040, outro artefato do qual depende um artefato atual a ser compilado, por exemplo, um artefato historicamente compilado ou um artefato gerado com base na biblioteca de terceiros 2020.[039] The third-party library 2020 passing the security check may be added to an artifact library 2040. As shown in Fig. 2, during the artifact construction process, the compilation module 2100 may obtain, from the artifact library 2040, another artifact on which a current artifact to be compiled depends, for example, a historically compiled artifact or an artifact generated based on the third-party library 2020.

[040] Adicionalmente, o módulo de compilação 2100 pode compilar o código retirado a partir da biblioteca de código 2160 e o artefato obtido a partir da biblioteca de artefato 2040 para gerar código intermediário, de modo que um módulo de varredura de código de segurança 2110 possa desempenhar checagem de segurança de código.[040] Additionally, the compilation module 2100 may compile the code taken from the code library 2160 and the artifact obtained from the artifact library 2040 to generate intermediate code, so that a security code scanning module 2110 may perform code security checking.

[041] Deve-se entender que o módulo de varredura de código de segurança 2110 gerenciado por TTP pode desempenhar qualquer processo de varredura de código adequado para checagem de segurança. Tais regras de varredura são desconhecidas dos desenvolvedores, de modo que a segurança do código compilado para os artefatos finais pode ser garantida.[041] It should be understood that the TTP-managed security code scanning module 2110 can perform any code scanning process suitable for security checking. Such scanning rules are unknown to the developers, so that the security of the code compiled into the final artifacts can be guaranteed.

[042] Em algumas modalidades, um módulo de upload 2120 pode desempenhar os respectivos uploads de acordo com o resultado do módulo de varredura de código de segurança 2110. Se o módulo de varredura de código de segurança 2110 determinar que o código intermediário obtido a partir da compilação é seguro, então o módulo de upload 2120 fazer upload de um arquivo executável obtido a partir da compilação para a biblioteca de artefato 2040.[042] In some embodiments, an upload module 2120 may perform respective uploads according to the result of the security code scanning module 2110. If the security code scanning module 2110 determines that the intermediate code obtained from the compilation is secure, then the upload module 2120 uploads an executable file obtained from the compilation to the artifact library 2040.

[043] Adicionalmente, se o módulo de varredura de código de segurança 2110 determinar que o código intermediário obtido a partir da compilação é seguro, o módulo de upload 2120 pode fazer upload das informações de assinatura do arquivo executável para um módulo de gerenciamento de assinatura de artefato 2060.[043] Additionally, if the security code scanning module 2110 determines that the intermediate code obtained from the compilation is secure, the upload module 2120 may upload the executable file signature information to an artifact signature management module 2060.

[044] Pelo contrário, se o módulo de varredura de código de segurança 2110 determinar que existem riscos respectivos no código intermediário atual, então o módulo de upload 2120 pode fazer upload dos riscos correspondentes para um sistema de rastreamento de problemas 2070 para formar um relatório de análise de risco. Por conseguinte, o arquivo executável obtido a partir da compilação pode ser proibido de sofrer upload na biblioteca de artefato 2040.[044] Conversely, if the security code scanning module 2110 determines that there are respective risks in the current intermediate code, then the upload module 2120 may upload the corresponding risks to an issue tracking system 2070 to form a risk analysis report. Accordingly, the executable file obtained from the compilation may be prohibited from being uploaded to the artifact library 2040.

[045] Em algumas modalidades, o código desenvolvido 2140 na biblioteca de código 2160 pode ser provido em um ambiente confiável para checagem manual. Se for determinado que existem riscos no código desenvolvido 2140, então o resultado também poderá ser relatado ao sistema de rastreamento de problemas 2070.[045] In some embodiments, the developed code 2140 in the code library 2160 may be provided in a trusted environment for manual checking. If it is determined that risks exist in the developed code 2140, then the result may also be reported to the issue tracking system 2070.

[046] Em algumas modalidades, se o módulo de varredura de código de segurança 2110 determinar que existem riscos respectivos no código intermediário atual, então o módulo de upload 2120 pode notificar um módulo de callback 2130 para marcar o respectivo código na biblioteca de código 2160 como código de risco.[046] In some embodiments, if the security code scanning module 2110 determines that respective risks exist in the current intermediate code, then the upload module 2120 may notify a callback module 2130 to mark the respective code in the code library 2160 as risk code.

[047] Em algumas modalidades, o sistema de rastreamento de problemas 2070 mantido pelo TTP pode enviar as informações de relatório de risco recebidas aos desenvolvedores ou mantenedores do código desenvolvido 2140 para lembrar que o código desenvolvido atual 2140 não pode passar na checagem de segurança e, portanto, não pode ser implantado.[047] In some embodiments, the issue tracking system 2070 maintained by the TTP may send the received risk report information to the developers or maintainers of the developed code 2140 to remind them that the current developed code 2140 cannot pass the security check and therefore cannot be deployed.

[048] Em algumas modalidades, se o código desenvolvido 2140 passar pela checagem de segurança, ele poderá ser compilado em um arquivo executável e posteriormente adicionado à biblioteca de artefato 2040 para ser implantado através via um gateway de implantação 2050.[048] In some embodiments, if the developed code 2140 passes the security check, it may be compiled into an executable file and subsequently added to the artifact library 2040 to be deployed via a deployment gateway 2050.

[049] Em algumas modalidades, antes de implantar o artefato (isto é, o arquivo executável) obtido a partir da biblioteca de artefatos 2040, o gateway de implantação 2050 pode verificar através do sistema de gerenciamento de assinatura de artefato 2060 se a assinatura do artefato é válida. Após a validade da assinatura do artefato ser confirmada, o gateway de implantação 2050 pode implantar o artefato gerado com base no código desenvolvido 2140 na rede.[049] In some embodiments, before deploying the artifact (i.e., the executable file) obtained from the artifact library 2040, the deployment gateway 2050 may verify through the artifact signature management system 2060 whether the artifact signature is valid. After the validity of the artifact signature is confirmed, the deployment gateway 2050 may deploy the artifact generated based on the developed code 2140 to the network.

[050] Em algumas modalidades, o artefato pode ser um programa de aplicação executado em um dispositivo cliente e, então, o gateway de implantação 2050 pode emitir um arquivo de instalação gerado (por exemplo, arquivo apk) para uma respectiva loja de aplicativos para sofrer download pelos usuários. Desse modo, as modalidades da presente divulgação podem garantir que os arquivos de instalação que podem sofrer download e instalados pelos usuários sejam sempre emitidos pelo ambiente de código de segurança 2010 via o gateway de implantação 2050.[050] In some embodiments, the artifact may be an application program running on a client device, and then the deployment gateway 2050 may issue a generated installation file (e.g., apk file) to a respective application store for download by users. Thus, embodiments of the present disclosure may ensure that installation files that may be downloaded and installed by users are always issued by the secure code environment 2010 via the deployment gateway 2050.

[051] Em algumas modalidades, o artefato pode ser um programa de serviço a ser implantado na plataforma de aplicação alvo 1030, por exemplo. Especificamente, o mantenedor da aplicação alvo pode iniciar uma solicitação para implantar um artefato específico na plataforma de aplicação alvo 1030 para a plataforma de implantação. Por conseguinte, após a solicitação ser aprovada, a plataforma de aplicação alvo 1030 pode obter a partir da biblioteca de artefato 2040 o artefato específico a ser implantado e autenticar a assinatura do artefato específico. Após a assinatura do artefato passar pela autenticação, o artefato pode ser implantado na plataforma de aplicação alvo 1030 através de uma máquina virtual ou contêiner, por exemplo.[051] In some embodiments, the artifact may be a service program to be deployed to the target application platform 1030, for example. Specifically, the maintainer of the target application may initiate a request to deploy a specific artifact to the target application platform 1030 to the deployment platform. Accordingly, after the request is approved, the target application platform 1030 may obtain from the artifact library 2040 the specific artifact to be deployed and authenticate the signature of the specific artifact. After the artifact signature passes authentication, the artifact may be deployed to the target application platform 1030 via a virtual machine or container, for example.

[052] Desse modo, com base no subsistema de computação de segurança discutido, as modalidades da presente divulgação podem efetivamente monitorar o processo de tradução de código em um programa de aplicativo ou programa de serviço que será implantado e usado, a partir de vários ciclos, tais como upload de código, escrita de código, compilação de código e referenciamento de bibliotecas de terceiros. Desta maneira, as modalidades da presente divulgação podem efetivamente evitar várias vulnerabilidades de segurança ou riscos de conformidade introduzidos no código fonte.[052] Thus, based on the discussed security computing subsystem, embodiments of the present disclosure can effectively monitor the code translation process into an application program or service program that will be deployed and used, from various cycles such as code uploading, code writing, code compilation, and referencing third-party libraries. In this manner, embodiments of the present disclosure can effectively prevent various security vulnerabilities or compliance risks introduced into the source code.

Subsistema de Troca de DadosData Exchange Subsystem

[053] A operação de aplicações envolve a interação de dados entre plataformas de aplicações sob a jurisdição de diferentes países e regiões. Por exemplo, no exemplo mostrado na Fig. 1, é desejável interagir dados entre a plataforma de aplicação alvo 1030 e uma plataforma de aplicação alvo onde a mesma aplicação está operando no exterior, para prover a interação de dados global da aplicação. Conforme descrito acima, o subsistema de troca de dados (DES) 1040 pode apoiar a sincronização de dados públicos da aplicação alvo e outros dados que atendam às regras entre diferentes plataformas e garantir a segurança e conformidade dos dados sendo trocados. Em geral, o DES 1040 é configurado para detectar se os dados entre diferentes plataformas atendem a uma contenção de troca de dados. As contenções de troca de dados podem compreender contenções que são estabelecidas para atender às leis e regulamentações nacionais ou regionais, e contenções que são estabelecidas devido a requisitos de empresas, organizações e/ou outros aspectos de proteção de usuário, etc.[053] Application operation involves data interaction between application platforms under the jurisdiction of different countries and regions. For example, in the example shown in Fig. 1, it is desirable to exchange data between the target application platform 1030 and a target application platform where the same application is operating abroad, to provide global application data interaction. As described above, the data exchange subsystem (DES) 1040 may support the synchronization of public data of the target application and other data that meets the rules between different platforms and ensure the security and compliance of the data being exchanged. In general, the DES 1040 is configured to detect whether data between different platforms meets a data exchange contention. Data exchange contentions may include contentions that are established to comply with national or regional laws and regulations, and contentions that are established due to company, organizational, and/or other user protection requirements, etc.

[054] Por exemplo, em países ou regiões com requisitos de proteção da soberania de dados específicos, o TTP ser requerido a conduzir inspeções envolvendo a proteção da soberania de dados. Portanto, em muitos casos envolvendo troca de dados entre plataformas, é necessário proteger a segurança e a conformidade da troca de dados. Em particular, após a preparação da sala de computadores do TTP, a troca de dados entre fora e a sala de computadores do TTP será restrita, e espera-se que os dados interagidos com a parte TTP sejam checados pela proteção de soberania de dados. Nesses exemplos, a contenção à troca de dados pode compreender regras se referindo aos requisitos de proteção de soberania de dados de países ou regiões específicos.[054] For example, in countries or regions with specific data sovereignty protection requirements, the TTP may be required to conduct inspections involving data sovereignty protection. Therefore, in many cases involving data exchange between platforms, it is necessary to protect the security and compliance of data exchange. In particular, after the TTP computer room is set up, data exchange between outside parties and the TTP computer room will be restricted, and data interacted with by the TTP party is expected to be checked for data sovereignty protection. In these examples, data exchange restrictions may include rules referring to the data sovereignty protection requirements of specific countries or regions.

[055] Tais dados interativos podem ser divididos em dois aspectos. Um aspecto inclui dados de intercomunicação entre plataformas e o outro inclui dados de operação e manutenção, tais como acesso ou operação de uma plataforma pela equipe de operação e manutenção da plataforma. Os dados de intercomunicação são usados principalmente para sincronização entre duas plataformas para garantir a integridade funcional das aplicações, e tais dados precisam passar através do sistema DES para checagens de segurança e conformidade. Os dados de intercomunicação incluem, por exemplo, dados de negócios online, dados offline, etc. A checagem de dados de operação e manutenção visa garantir que as operações da equipe de operação e manutenção no plano de controle de operação e manutenção também estejam em conformidade.[055] Such interactive data can be divided into two aspects. One aspect includes inter-platform communication data, and the other includes operation and maintenance data, such as platform access or operation by the platform's operation and maintenance team. Intercommunication data is primarily used for synchronization between two platforms to ensure the functional integrity of applications, and such data needs to pass through the DES system for security and compliance checks. Intercommunication data includes, for example, online business data, offline data, etc. Operation and maintenance data checks aim to ensure that the operations of the operation and maintenance team in the operation and maintenance control plan are also compliant.

[056] A Fig. 3A mostra um exemplo de ambiente de implantação 3001 onde um DES 1040 é implantado de acordo com algumas modalidades da presente divulgação.[056] Fig. 3A shows an example deployment environment 3001 where a DES 1040 is deployed in accordance with some embodiments of the present disclosure.

[057] Na Fig. 3A, uma parte TTP 3027 se refere a um ambiente que necessita de supervisão e contenção de TTP em um país ou região específica. A parte TTP 3027 pode envolver vários componentes para operação, gerenciamento e manutenção de uma aplicação alvo, por exemplo, incluindo um sistema de negócios 3028, uma plataforma de operação 3029, um armazenamento online 3030, um armazenamento offline 3031, etc. A parte TTP 3028 compreende adicionalmente uma plataforma de operação e manutenção 3032, e a equipe de operação e manutenção precisa acessar a plataforma de operação e manutenção 3032 para realizar o acesso, gerenciamento ou manutenção da aplicação alvo.[057] In Fig. 3A, a TTP part 3027 refers to an environment that requires TTP supervision and containment in a specific country or region. The TTP part 3027 may involve various components for operating, managing, and maintaining a target application, for example, including a business system 3028, an operation platform 3029, an online storage 3030, an offline storage 3031, etc. The TTP part 3028 further comprises an operation and maintenance platform 3032, and the operation and maintenance personnel need to access the operation and maintenance platform 3032 to perform access, management, or maintenance of the target application.

[058] De maneira similar, uma parte não-TTP 3020 se refere a um ambiente ao qual pertencem um ou mais países ou regiões diferentes do país ou região específica, que é livre da contenção de troca de dados do país ou região onde a parte TTP 3027 está localizada. A parte não-TTP 3020 pode envolver vários componentes para operação, gerenciamento e manutenção de uma aplicação alvo, por exemplo, incluindo um sistema de negócios 3020, uma plataforma de operação 3021, um armazenamento online 3022, um armazenamento offline 3023, etc. A parte não-TTP 3020 compreende adicionalmente uma plataforma de operação e manutenção 3024, e a equipe de operação e manutenção precisa acessar a plataforma de operação e manutenção 3024 para realizar o acesso, gerenciamento ou manutenção de uma aplicação local ou plataforma de aplicação.[058] Similarly, a non-TTP part 3020 refers to an environment to which one or more countries or regions other than the specific country or region belong, which is free from the data exchange contention of the country or region where the TTP part 3027 is located. The non-TTP part 3020 may involve various components for operation, management, and maintenance of a target application, for example, including a business system 3020, an operation platform 3021, an online storage 3022, an offline storage 3023, etc. The non-TTP part 3020 further comprises an operation and maintenance platform 3024, and operation and maintenance personnel need to access the operation and maintenance platform 3024 to perform access, management, or maintenance of a local application or application platform.

[059] O tráfego de usuário doméstico fluirá através de alguns componentes da parte TTP 3027, e o tráfego de usuário do ROW fluirá através de alguns componentes da parte não-TTP 3020. Conforme usado na presente invenção, o “tráfego de usuário doméstico” refere-se ao tráfego de usuários gerado em plataformas de aplicações sob a jurisdição do país ou região específica, e o “tráfego de usuário do ROW” refere-se ao tráfego de usuário gerado em plataformas de aplicações sob a jurisdição de um ou mais outros países ou regiões diferentes do país ou região específica.[059] Domestic user traffic will flow through some components of the TTP portion 3027, and ROW user traffic will flow through some components of the non-TTP portion 3020. As used herein, “domestic user traffic” refers to user traffic generated on application platforms under the jurisdiction of the specific country or region, and “ROW user traffic” refers to user traffic generated on application platforms under the jurisdiction of one or more other countries or regions other than the specific country or region.

[060] No ambiente da Fig. 3A, os dados de intercomunicação compreendem o tráfego de usuário doméstico e o tráfego de usuário do ROW interagido entre a parte TTP e a parte não-TTP. Os dados de intercomunicação passarão pelo DES 1040 para checagens em aspectos de segurança de dados, conformidade e afins. Além disso, um gateway operacional 3026 pode adicionalmente ser estabelecido para desempenhar checagens de segurança e conformidade de dados nos dados de operação e manutenção.[060] In the environment of Fig. 3A, the intercommunication data comprises home user traffic and user traffic of the interacted ROW between the TTP portion and the non-TTP portion. The intercommunication data will pass through the DES 1040 for checks on aspects of data security, compliance, and the like. Furthermore, an operational gateway 3026 may additionally be established to perform data security and compliance checks on the operation and maintenance data.

[061] Como será discutido em detalhes abaixo, no DES 1040, diferentes canais de dados podem ser estabelecidos de acordo com o tipo de dados para checar os dados a serem trocados em um respectivo canal. A Fig. 3A mostra esquematicamente alguns canais, incluindo um canal de armazenamento de objeto alvo (TOS), um canal de fila de mensagem (MQ), um canal de dados agregados offline, um canal de log, um canal de invocação de serviço, etc.[061] As will be discussed in detail below, in the DES 1040, different data channels may be established according to the data type to check the data to be exchanged on a respective channel. Fig. 3A schematically shows some channels, including a target object store (TOS) channel, a message queue (MQ) channel, an offline aggregate data channel, a log channel, a service invocation channel, etc.

[062] Para ambas as partes da troca de dados, elas podem ter seus próprios DESes para alcançar a proteção de dados, por exemplo, para proteger dados recebidos e/ou dados enviados.[062] For both parties to the data exchange, they may have their own DESes to achieve data protection, for example, to protect incoming data and/or outgoing data.

[063] A Fig. 3B mostra adicionalmente a implementação do DES 1040 no data center interno (IDC) da parte TTP e no data center interno do RoW (RoW IDC) onde o não-TTP está localizado.[063] Fig. 3B further shows the implementation of the DES 1040 in the internal data center (IDC) of the TTP part and in the internal data center of the RoW (RoW IDC) where the non-TTP is located.

[064] Na Fig. 3B, um TTP IDC 3056 refere-se a um IDC da aplicação alvo operando no país ou região específica, o qual está sob teste de proteção de dados do TTP. Um ROW IDC 3059 refere-se a um IDC da aplicação alvo operando em um ou mais países ou regiões diferentes do país ou região específica, o qual pode estar sujeito à contenção de proteção de dados de outros países ou regiões.[064] In Fig. 3B, a TTP IDC 3056 refers to an IDC of the target application operating in the specific country or region, which is under data protection testing of the TTP. A ROW IDC 3059 refers to an IDC of the target application operating in one or more countries or regions other than the specific country or region, which may be subject to data protection containment of other countries or regions.

[065] Conforme mostrado na Fig. 3B, um DES 1040A é implementado no TTP IDC 3056 e usado para detectar dados recebidos e/ou enviados. Um DES 1040B é implementado no ROW IDC 3059 e usado para detectar dados recebidos e/ou enviados. Tanto o DES 1040A quanto o DES 1040B podem ser considerados como instâncias de implantação específicas do DES 1040.[065] As shown in Fig. 3B, a DES 1040A is implemented in the TTP IDC 3056 and used to detect received and/or sent data. A DES 1040B is implemented in the ROW IDC 3059 and used to detect received and/or sent data. Both the DES 1040A and the DES 1040B can be considered as specific implementation instances of the DES 1040.

[066] A partir da perspectiva do TTP IDC 3056, os dados recebidos ou enviados podem incluir vários tipos de dados, que serão descritos com exemplos.[066] From the perspective of the TTP IDC 3056, the data received or sent may include various types of data, which will be described with examples.

[067] Conforme mostrado na Fig. 3B, para o TTP IDC 3056, os dados recebidos de fora podem incluir uma solicitação de usuário, por exemplo, uma solicitação proativa iniciada por um usuário em um país ou região específica através de uma aplicação alvo 3058 operando dentro. Como será descrito em outras partes deste relatório descritivo, em algumas modalidades, a solicitação de usuário pode passar adicionalmente através de um gateway de firewall 3057 no TTP IDC 3056 e/ou um sandbox móvel para proteção de segurança. A solicitação de usuário chegará a uma plataforma de aplicação doméstica 3041 no TTP IDC 3056 para processamento posterior. Em alguns exemplos, a plataforma de aplicação doméstica 3041 pode compreender vários serviços, gateways de fornecedores, armazenamento e outros componentes. Além disso, se a solicitação de usuário for transferida para um data center diferente do TTP IDC 3056, a solicitação de usuário será entregue ao DES 1040A para proteção de dados.[067] As shown in Fig. 3B, for the IDC TTP 3056, the data received from outside may include a user request, for example, a proactive request initiated by a user in a specific country or region via a target application 3058 operating within. As will be described elsewhere in this specification, in some embodiments, the user request may further pass through a firewall gateway 3057 at the IDC TTP 3056 and/or a mobile sandbox for security protection. The user request will reach a home application platform 3041 at the IDC TTP 3056 for further processing. In some examples, the home application platform 3041 may comprise various services, vendor gateways, storage, and other components. Furthermore, if the user request is transferred to a data center other than the IDC TTP 3056, the user request will be delivered to the DES 1040A for data protection.

[068] Em algumas modalidades, para o TTP IDC 3056, os dados recebidos de fora podem compreender adicionalmente uma solicitação de fornecedor iniciada por um fornecedor 3055, por exemplo, solicitando um serviço específico de uma plataforma de aplicação doméstica. Por exemplo, um fornecedor terceirizado pode invocar uma interface de programa de aplicação (API) de uma plataforma de aplicação doméstica, por exemplo, OpenAPI. Uma vez que não pode ser confirmado se o fornecedor terceirizado é um usuário doméstico, a solicitação do fornecedor será enviada via um gateway de terceiros 3040 no TTP IDC 3056 para o gateway do fornecedor na plataforma de aplicação doméstica 3041 para checar, para determinar se é um usuário doméstico. Se o fornecedor iniciando a solicitação for um usuário doméstico, então a solicitação do fornecedor poderá ser respondida normalmente. Se o fornecedor iniciando a solicitação for um usuário do ROW, então a solicitação do fornecedor passará através do DES 1040A antes de ser transferida.[068] In some embodiments, for the IDC TTP 3056, the data received from outside may further comprise a vendor request initiated by a vendor 3055, e.g., requesting a specific service from a home application platform. For example, a third-party vendor may invoke an application program interface (API) of a home application platform, e.g., OpenAPI. Since it cannot be confirmed whether the third-party vendor is a home user, the vendor request will be sent via a third-party gateway 3040 in the IDC TTP 3056 to the vendor gateway in the home application platform 3041 to check to determine whether it is a home user. If the vendor initiating the request is a home user, then the vendor request may be responded to normally. If the vendor initiating the request is a ROW user, then the vendor request will pass through the DES 1040A before being transferred.

[069] Em algumas modalidades, para o TTP IDC 3056, os dados recebidos de fora podem compreender adicionalmente dados que são sincronizados a partir do ROW IDC 3059 para o TTP IDC 3056. Por exemplo, se os dados recebidos a partir do exterior precisarem de auditoria de segurança de dados, os dados recebidos a partir do exterior também precisarão ser processados pelo DES 1040A.[069] In some embodiments, for the TTP IDC 3056, the data received from outside may additionally comprise data that is synchronized from the ROW IDC 3059 to the TTP IDC 3056. For example, if the data received from outside needs data security auditing, the data received from outside will also need to be processed by the DES 1040A.

[070] Em algumas modalidades, para o TTP IDC 3056, os dados recebidos de fora podem compreender adicionalmente as operações de operação e manutenção do TTP IDC 3056 pela equipe de operação e manutenção, por exemplo, mudanças no TTP IDC 3056. Tais operações podem incluir mudanças no tipo de código, mudanças no tipo de configuração, manutenção de log, etc. As mudanças de tipo de código podem compreender a inicialização de novas funções, a liberação de arquivos binários e assim por diante. As mudanças de tipo de código podem ser executadas pela equipe doméstica de operação e manutenção da plataforma de aplicação no país ou região. As mudanças de tipo de configuração podem incluir habilitar ou desabilitar alguns ajustes da aplicação alvo, escalonar a configuração de tráfego e assim por diante. Em alguns casos, as mudanças de configuração podem ser desempenhadas pela equipe de operação e manutenção de plataforma do ROW para plataformas de aplicação de operação multinacionais. Claro, isso depende dos requisitos de gerenciamento das diferentes aplicações. A manutenção de log refere-se à manutenção de um log 3044 no TTP IDC 3056.[070] In some embodiments, for the TTP IDC 3056, the data received from outside may additionally comprise operation and maintenance operations of the TTP IDC 3056 by the operation and maintenance team, for example, changes to the TTP IDC 3056. Such operations may include code type changes, configuration type changes, log maintenance, etc. Code type changes may comprise initializing new functions, releasing binary files, and so on. Code type changes may be performed by the domestic operation and maintenance team of the application platform in the country or region. Configuration type changes may include enabling or disabling some settings of the target application, scaling traffic configuration, and so on. In some cases, configuration changes may be performed by the platform operation and maintenance team of the ROW for multinational operation application platforms. Of course, this depends on the management requirements of the different applications. Log maintenance refers to maintaining a 3044 log at TTP IDC 3056.

[071] Em algumas modalidades, a equipe de operação e manutenção doméstica ou do ROW pode desempenhar operações de operação e manutenção no TTP IDC 3056 sob condições de isolamento de rede para garantir adicionalmente a proteção da soberania dos dados. Conforme mostrado na Fig. 3B, a equipe de operação e manutenção doméstica inicia a operação de operação e manutenção sob o isolamento de rede, e a operação de operação e manutenção será distribuída via um balanceador de carga 3045 para ser distribuída ao código 3042, uma plataforma de operação e manutenção 3043 ou o log 3044 no TTP IDC 3056. Além do isolamento de rede, a operação de operação e manutenção da equipe de operação e manutenção doméstica será sujeita adicionalmente à checagem de segurança via o gateway operacional 3046 e depois distribuída para o código 3042, a plataforma de operação e manutenção 3043 ou o log 3044 no TTP IDC 3056.[071] In some embodiments, the home or ROW operation and maintenance team may perform operation and maintenance operations on the IDC TTP 3056 under network isolation conditions to further ensure data sovereignty protection. As shown in Fig. 3B, the home operation and maintenance team initiates the operation and maintenance operation under network isolation, and the operation and maintenance operation will be distributed via a load balancer 3045 to be distributed to the code 3042, an operation and maintenance platform 3043, or the log 3044 on the IDC TTP 3056. In addition to network isolation, the operation and maintenance operation of the home operation and maintenance team will be further subjected to security checking via the operational gateway 3046 and then distributed to the code 3042, the operation and maintenance platform 3043, or the log 3044 on the IDC TTP 3056.

[072] Em algumas modalidades, para o TTP IDC 3056, os dados enviados de dentro podem incluir uma solicitação de terceiros a qual é iniciada a partir da plataforma de aplicação doméstica 3041 durante a operação da plataforma de aplicação, para solicitar um serviço de terceiros 3054, por exemplo, uma solicitação de terceiros em uma rede pública. A solicitação de terceiros também necessita de proteção de dados pelo DES 1040A.[072] In some embodiments, for the TTP IDC 3056, the data sent from within may include a third-party request which is initiated from the home application platform 3041 during operation of the application platform, to request a third-party service 3054, e.g., a third-party request on a public network. The third-party request also requires data protection by the DES 1040A.

[073] Em algumas modalidades, para o TTP IDC 3056, os dados enviados de dentro podem compreender adicionalmente dados que são sincronizados a partir do TTP IDC 3056 para o ROW IDC 3059. Por exemplo, durante a operação da aplicação alvo, os conteúdos do usuário armazenados no TTP IDC 3056 podem precisar ser sincronizados com o ROW IDC 3059. De acordo com algumas regulamentações sobre a proteção da soberania de dados, tais dados podem ser os principais dados que o DES 1040A precisa revisar.[073] In some embodiments, for the TTP IDC 3056, the data sent from within may additionally comprise data that is synchronized from the TTP IDC 3056 to the ROW IDC 3059. For example, during the operation of the target application, user contents stored in the TTP IDC 3056 may need to be synchronized with the ROW IDC 3059. According to some regulations on data sovereignty protection, such data may be the main data that the DES 1040A needs to review.

[074] Em algumas modalidades, para o TTP IDC 3056, os dados enviados de dentro podem compreender adicionalmente dados de sincronização de código. Por exemplo, em alguns casos, devido a requisitos de checagem, tal como a proteção da soberania dos dados, pode ser requerida uma revisão do código da aplicação alvo ou da plataforma da aplicação. A fim de não vazar o código e ao mesmo tempo atender aos requisitos de proteção da soberania de dados, o código pode ser sincronizado com um ambiente de isolamento de segurança 3051 para revisão. O ambiente de isolamento de segurança 3051 pode ser, por exemplo, um ambiente físico, tal como uma sala de computadores que não é conectada à Internet, uma sala de computadores monitorada e afins, ou um ambiente de computação virtual com proteção de segurança, etc.[074] In some embodiments, for the TTP IDC 3056, the data sent from within may additionally comprise code synchronization data. For example, in some cases, due to verification requirements, such as data sovereignty protection, a code review of the target application or application platform may be required. In order to prevent code leaks while meeting data sovereignty protection requirements, the code may be synchronized with a security isolation environment 3051 for review. The security isolation environment 3051 may be, for example, a physical environment, such as a computer room that is not connected to the Internet, a monitored computer room, and the like, or a virtual computing environment with security protection, etc.

[075] A partir do ponto de vista do ROW IDC 3059, o DES 1040B nele implantado também pode desempenhar proteção de segurança em dados recebidos de fora e em dados enviados de dentro similares. Por exemplo, uma solicitação de usuário que é gerada pelo usuário através da aplicação alvo 3058 operando no exterior também pode ser protegida pelo DES 1040B após atingir uma plataforma de aplicação do ROW 3048 (que pode compreender vários tipos de serviços e armazenamento) via o balanceador de carga 3047. No aspecto de operação e manutenção, a equipe de operação e manutenção do ROW também pode desempenhar a operação de operação e manutenção na plataforma de aplicação do ROW 3048 via um gateway de cristal 3049 com isolamento de rede. Tais operações de operação e manutenção podem estar sob proteção de dados via o DES 1040B.[075] From the perspective of the ROW IDC 3059, the DES 1040B deployed therein can also perform security protection on data received from outside and on data sent from inside similarly. For example, a user request that is generated by the user through the target application 3058 operating outside can also be protected by the DES 1040B after reaching an application platform of the ROW 3048 (which can comprise various types of services and storage) via the load balancer 3047. In the operation and maintenance aspect, the operation and maintenance personnel of the ROW can also perform operation and maintenance operation on the application platform of the ROW 3048 via a crystal gateway 3049 with network isolation. Such operation and maintenance operations can be under data protection via the DES 1040B.

[076] Para dados sendo protegidos no DES 1040A ou 1040B, as soluções e o processamento para proteção da soberania de dados também podem diferir dependendo dos diferentes tipos de dados.[076] For data being protected under DES 1040A or 1040B, the solutions and processing for protecting data sovereignty may also differ depending on the different types of data.

[077] Nas modalidades da presente divulgação, no DES 1040 (por exemplo, o DES 1040A ou 1040B), os dados podem ser pré-processados de acordo com o tipo de dados para formatar os formatos de dados normalizados, simplificando e facilitando assim as inspeções subsequentes sobre proteção da soberania de dados e acelerando o processo de troca de dados.[077] In embodiments of the present disclosure, in the DES 1040 (e.g., the DES 1040A or 1040B), data may be pre-processed according to the data type to format the standardized data formats, thereby simplifying and facilitating subsequent inspections on data sovereignty protection and accelerating the data exchange process.

[078] Desse modo, o DES 1040 pode ser dividido em diferentes porções de processamento de acordo com o tipo de dados. Por exemplo, de acordo com a fonte de dados, o DES 1040A pode compreender um canal de dados de usuário doméstico para processar dados se referindo a usuários em um país ou região específica; um canal de dados de usuário do ROW para processamento de dados se referindo a usuários no exterior; um canal de dados de tecnologia de engenharia para processamento de dados de engenharia, operação e manutenção, tais como código, parâmetros e outros dados de pesquisa e desenvolvimento, dados de operação e manutenção, etc. Adicionalmente, os dados em cada canal podem ser divididos adicionalmente dependendo das técnicas de processamento, tais como geração de dados, transmissão, recepção e armazenamento. Conforme descrito abaixo, divididos por técnicas, os dados em diferentes canais podem ser divididos em um ou mais dados de fila de mensagens (MQ), dados agregados offline, dados de armazenamento de objeto alvo (TOS) e dados de invocação de serviço ou outros tipos de dados.[078] Thus, the DES 1040 may be divided into different processing portions according to the data type. For example, according to the data source, the DES 1040A may comprise a domestic user data channel for processing data relating to users in a specific country or region; a ROW user data channel for processing data relating to users overseas; an engineering technology data channel for processing engineering, operation, and maintenance data, such as code, parameters, and other research and development data, operation and maintenance data, etc. Additionally, the data in each channel may be further divided depending on the processing techniques, such as data generation, transmission, reception, and storage. As described below, divided by techniques, the data in different channels may be divided into one or more of message queue (MQ) data, offline aggregate data, target object store (TOS) data, and service invocation data, or other data types.

[079] Para os dados que passam pela revisão de proteção de soberania de dados, os dados no formato normalizado podem ser convertidos de volta em dados no formato original e providos a um respectivo destino. De acordo com a solução da presente divulgação, devido a diferentes fontes de dados, diferentes tipos de dados diferem no formato de dados, técnica de processamento e outros aspectos. Através do pré-processamento e pós-processamento normalizados, a complexidade no estágio de revisão subsequente de proteção da soberania dos dados pode ser reduzida. Além disso, com a atualização das fontes de dados e expansões/mudanças técnicas, é possível mudar apenas o pré-processamento e pós-processamento de dados, ao invés de fazer mudanças complexas no processamento no estágio de determinação de contenção de troca de dados. Portanto, a arquitetura de troca de dados tem grande flexibilidade e escalabilidade.[079] For data undergoing data sovereignty protection review, the normalized format data can be converted back to the original format data and provided to a corresponding destination. According to the solution of the present disclosure, due to different data sources, different types of data differ in data format, processing techniques, and other aspects. Through normalized pre-processing and post-processing, the complexity in the subsequent data sovereignty protection review stage can be reduced. Furthermore, with the update of data sources and technical expansions/changes, it is possible to only change the data pre-processing and post-processing, rather than making complex processing changes at the data exchange contention determination stage. Therefore, the data exchange architecture has great flexibility and scalability.

[080] Com referência aos desenhos anexos, é apresentada abaixo uma descrição detalhada de algumas modalidades específicas.[080] With reference to the accompanying drawings, a detailed description of some specific embodiments is presented below.

Arquitetura Geral e Fluxo de Dados de DESGeneral Architecture and Data Flow of DES

[081] A Fig. 3C mostra um diagrama de blocos de um exemplo de um DES 1040 de acordo com algumas modalidades da presente divulgação. No exemplo da Fig. 3C, o DES 1040 é mostrado como sincronizando dados entre a plataforma de aplicação doméstica 304 e uma plataforma de aplicação externa (coletivamente referida como plataforma de aplicação do ROW 3048) para a aplicação alvo e desempenhando uma determinação de uma contenção de troca de dados.[081] Fig. 3C shows a block diagram of an example of a DES 1040 according to some embodiments of the present disclosure. In the example of Fig. 3C, the DES 1040 is shown as synchronizing data between the home application platform 304 and an external application platform (collectively referred to as the ROW application platform 3048) for the target application and performing a determination of a data exchange contention.

[082] Conforme mostrado na Fig. 3C, o DES 1040 pode compreender um adaptador de DES 3061, um centro de DES e um adaptador de DES 3070. O centro de DES pode compreender centros de DES para diferentes tipos de canais de dados, por exemplo, um centro de DES 3065A para dados de usuários domésticos, um centro de DES 3065B para dados de usuários do ROW e um centro de DES 3065C para dados de tecnologia de engenharia, etc. Os centros de DES 3065A, 3065B e 3065C possuem diferentes capacidades de sincronização. Para fins de descrição abaixo, os centros de DES 3065A, 3065B e 3065C podem ser referidos coletivamente como o centro de DES 3065.[082] As shown in Fig. 3C, the DES 1040 may comprise a DES adapter 3061, a DES hub, and a DES adapter 3070. The DES hub may comprise DES hubs for different types of data channels, for example, a DES hub 3065A for home user data, a DES hub 3065B for ROW user data, and a DES hub 3065C for engineering technology data, etc. The DES hubs 3065A, 3065B, and 3065C have different synchronization capabilities. For purposes of description below, the DES hubs 3065A, 3065B, and 3065C may be collectively referred to as the DES hub 3065.

[083] O adaptador de DES 3061 é conectado com a plataforma de aplicação doméstica 3041 para receber dados a serem sincronizados e detectados via o DES 1040 a partir da plataforma de aplicação doméstica 3041, enviar dados recebidos a partir da plataforma de aplicação doméstica 3041 e detectados pelo DES 1040 para a plataforma de aplicação do ROW 3048 e receber dados para serem sincronizados e detectados pelo DES 1040 a partir da plataforma de aplicação do ROW 3048. Os adaptadores de DES 3061 e 3070 estão ambos interconectados com o centro de DES 3065 para transferir dados para o centro de DES 3065.[083] The DES adapter 3061 is connected with the home application platform 3041 to receive data to be synchronized and detected via the DES 1040 from the home application platform 3041, send data received from the home application platform 3041 and detected by the DES 1040 to the ROW application platform 3048, and receive data to be synchronized and detected by the DES 1040 from the ROW application platform 3048. The DES adapters 3061 and 3070 are both interconnected with the DES hub 3065 to transfer data to the DES hub 3065.

[084] Cada centro de DES 3065 é configurado para detectar dados ao usar uma contenção de troca de dados para garantir a segurança e conformidade dos dados trocados entre duas plataformas de aplicação. Normalmente, os dados que atendem à contenção de troca de dados serão entregues a um respectivo destino através do DES 1040, enquanto os dados que não atendem à contenção de troca de dados poderão ser rejeitados pelo DES 1040.[084] Each DES hub 3065 is configured to detect data when using a data exchange containment to ensure the security and compliance of data exchanged between two application platforms. Typically, data that meets the data exchange containment will be delivered to a respective destination via the DES 1040, while data that does not meet the data exchange containment may be rejected by the DES 1040.

[085] O adaptador de DES 3061 e 3070 pode ser configurado para desempenhar pré-processamento e pós-processamento em dados a serem transferidos para o centro de DES 3065, de modo que o centro de DES 3065 possa determinar se a contenção de troca de dados é atendida com base nos dados normalizados correspondentes para vários tipos de dados.[085] The DES adapter 3061 and 3070 may be configured to perform pre-processing and post-processing on data to be transferred to the DES center 3065, so that the DES center 3065 can determine whether data exchange contention is met based on the corresponding normalized data for various data types.

[086] Em algumas modalidades, o adaptador de DES 3061 e o centro de DES 3065 no DES 1040 podem ser implementados no TTP IDC 3065 juntamente com a plataforma de aplicação doméstica 3041, e o adaptador de DES 3070 pode ser implementado no ROW IDC 3059 juntamente com a plataforma de aplicação do ROW 3048.[086] In some embodiments, the DES adapter 3061 and the DES hub 3065 in the DES 1040 may be implemented in the TTP IDC 3065 along with the home application platform 3041, and the DES adapter 3070 may be implemented in the ROW IDC 3059 along with the ROW application platform 3048.

[087] Em algumas modalidades, diferentes componentes no DES 1040 podem ser isolados para garantir adicionalmente um isolamento de dados mais eficaz. Esse isolamento de dados pode ser implementado ao implantar diferentes componentes em diferentes data centers. Em algumas modalidades, o isolamento de dados pode ser realizado ao aplicar tecnologia de data center privado virtual (VPC). Por exemplo, conforme mostrado na Fig. 3C, o adaptador de DES 3061 pode ser implementado em VPC1, e vários centros de DES podem ser implementados em VPC2, e o adaptador de DES 3070 pode ser implementado em VPC3. A determinação da segurança e conformidade dos dados no centro de DES 3065 pode ser desempenhado por TTP. No caso de isolamento de dados, VPC1 e VPC3 não possuem uma conexão de comunicação direta entre eles, enquanto VPC1 e VPC3 possuem, cada um, uma conexão de comunicação direta com VPC2 e podem comunicar dados/informações. Através do isolamento de dados trazido pela tecnologia VPC, o centro de DES 3065 implantado em VPC2 pode ser uma área confiável de TTP (referida como área confiável de TTP).[087] In some embodiments, different components in DES 1040 may be isolated to further ensure more effective data isolation. This data isolation may be implemented by deploying different components in different data centers. In some embodiments, data isolation may be accomplished by applying virtual private data center (VPC) technology. For example, as shown in Fig. 3C, DES adapter 3061 may be deployed in VPC1, and multiple DES hubs may be deployed in VPC2, and DES adapter 3070 may be deployed in VPC3. Determining the security and compliance of data in DES hub 3065 may be performed by TTP. In the case of data isolation, VPC1 and VPC3 do not have a direct communication connection between them, while VPC1 and VPC3 each have a direct communication connection with VPC2 and can communicate data/information. Through the data isolation brought by VPC technology, the DES 3065 center deployed in VPC2 can be a TTP trusted area (referred to as TTP trusted area).

[088] Em algumas modalidades, o adaptador de DES 3061 pode compreender uma entrada de DES 3062, que pode desempenhar o processamento de plano de controle, por exemplo, aplicar para criar e gerenciar canais de dados, regras de registro, etc. pela equipe de operação e manutenção, e pode visualizar os dados no canal por TTP. O adaptador de DES 3061 pode compreender adicionalmente um proxy de DES 3063 que pode desempenhar o processamento de plano de dados, tal como verificação de dados, filtragem de dados, conversão de dados, amostragem de dados, detecção de log, etc. De maneira similar, em algumas modalidades, o adaptador de DES 3070 pode compreender uma entrada de DES de plano de controle 3072 e um proxy de DES de plano de dados 3073.[088] In some embodiments, the DES adapter 3061 may comprise a DES gateway 3062, which may perform control plane processing, e.g., apply to create and manage data channels, logging rules, etc. by operation and maintenance personnel, and may view the data in the channel by TTP. The DES adapter 3061 may further comprise a DES proxy 3063 that may perform data plane processing, such as data verification, data filtering, data conversion, data sampling, log detection, etc. Similarly, in some embodiments, the DES adapter 3070 may comprise a control plane DES gateway 3072 and a data plane DES proxy 3073.

[089] Em algumas modalidades, para canais de dados de usuários domésticos, o centro de DES 3065A pode compreender um centro de registro de DES para registrar contenções de troca de dados, dados de configuração, etc. O centro de DES 3065A pode compreender adicionalmente canais refinados, incluindo canais de invocação de serviço para dados de invocação de serviço, canais de MQ para dados de MQ, canais de HDFS para dados agregados offline (onde HDFS é referido como sistema de arquivos distribuídos Hadoop) e canais de TOS para dados de TOS. Os dados agregados offline compreendem, por exemplo, dados do tipo de ambiente virtual integrado altamente paralelo (HIVE).[089] In some embodiments, for home user data channels, the DES center 3065A may comprise a DES logging center for logging data exchange contentions, configuration data, etc. The DES center 3065A may further comprise fine-grained channels, including service invocation channels for service invocation data, MQ channels for MQ data, HDFS channels for offline aggregate data (where HDFS is referred to as Hadoop distributed file system), and TOS channels for TOS data. The offline aggregate data comprises, for example, highly parallel integrated virtual environment (HIVE) type data.

[090] Os dados de invocação de serviço compreendem dados para invocações de serviço remoto usando vários protocolos de rede ou protocolos de invocação, tais como protocolo de HTTP ou protocolo de RPC. Os dados de MQ podem compreender dados apoiando o protocolo MQ e protocolo similar, por exemplo, incluindo dados armazenados em vários bancos de dados (por exemplo, banco de dados MySQL, Redis). Os dados agregados offline podem compreender dados em sistemas de arquivos com base na tecnologia HDFS e dados em sistemas de arquivos com base em outras técnicas. Os dados TOS compreendem arquivos de objeto, tais como vídeo, áudio, imagem, documento e outros arquivos de mídia.[090] Service invocation data comprises data for remote service invocations using various network protocols or invocation protocols, such as HTTP protocol or RPC protocol. MQ data may comprise data supporting the MQ protocol and similar protocol, for example, including data stored in various databases (e.g., MySQL database, Redis). Offline aggregate data may comprise data in file systems based on HDFS technology and data in file systems based on other techniques. TOS data comprises object files, such as video, audio, image, document, and other media files.

[091] Em algumas modalidades, embora não mostrado na Fig. 3C, o centro de DES 3065B para canais de dados de usuários do ROW e o centro de DES 3065C para canais de dados de tecnologia de engenharia também podem compreender componentes similares ao centro de DES 3065A.[091] In some embodiments, although not shown in Fig. 3C, the DES hub 3065B for ROW user data channels and the DES hub 3065C for engineering technology data channels may also comprise similar components to the DES hub 3065A.

[092] A Fig. 3D mostra um fluxograma de um processo de troca de dados 300 de acordo com algumas modalidades da presente divulgação. O processo 300 pode ser implementado no DES 1040.[092] Fig. 3D shows a flowchart of a data exchange process 300 according to some embodiments of the present disclosure. The process 300 may be implemented in the DES 1040.

[093] Conforme mostrado na Fig. 3D, no bloco 3301, o DES 1040 obtém dados originais a serem trocados por uma aplicação alvo entre uma primeira plataforma (por exemplo, a plataforma de aplicação doméstica 3014) e uma segunda plataforma (por exemplo, a plataforma de aplicação do ROW 3048). Dependendo da direção de troca, os dados originais podem ser a partir da primeira plataforma e podem ser recebidos pelo adaptador de DES 3061 no DES 1040. Ou os dados originais podem ser a partir da segunda plataforma e podem ser recebidos pelo adaptador de DES 3070 no DES 1040.[093] As shown in Fig. 3D, at block 3301, the DES 1040 obtains original data to be exchanged by a target application between a first platform (e.g., the home application platform 3014) and a second platform (e.g., the ROW application platform 3048). Depending on the exchange direction, the original data may be from the first platform and may be received by the DES adapter 3061 at the DES 1040. Or the original data may be from the second platform and may be received by the DES adapter 3070 at the DES 1040.

[094] No bloco 3302, o DES 1040 processa os dados originais com base no tipo dos dados originais para obter dados normalizados correspondentes ao tipo. O processamento dos dados originais (também referido como pré- processamento) pode ser determinado de acordo com o tipo dos dados originais. O tipo de dados originais pode compreender, por exemplo, dados de MQ, dados agregados offline, dados de TOS ou dados de invocação de serviço, etc. Adicionalmente, em alguns casos, o processamento de dados originais também pode ser determinado de acordo com várias fontes de dados. Por exemplo, de acordo com a fonte de dados, os dados originais podem ser divididos em dados de usuários domésticos, dados de usuários do ROW ou dados de tecnologia de engenharia. Diferentes tipos de dados correspondem a diferentes formatos e os dados normalizados correspondentes podem ser gerados de diferentes maneiras.[094] In block 3302, the DES 1040 processes the original data based on the type of the original data to obtain normalized data corresponding to the type. The processing of the original data (also referred to as preprocessing) may be determined according to the type of the original data. The type of the original data may comprise, for example, MQ data, offline aggregated data, TOS data, or service invocation data, etc. Additionally, in some cases, the processing of the original data may also be determined according to multiple data sources. For example, according to the data source, the original data may be divided into home user data, ROW user data, or engineering technology data. Different data types correspond to different formats, and the corresponding normalized data may be generated in different ways.

[095] Em algumas modalidades, uma vez que as técnicas usadas pela fonte de dados diferem, o mesmo tipo de dados pode ser provido em formatos diferentes, o que acrescenta requisitos ao processamento técnico. Portanto, um formato normalizado pode ser especificado. No estágio de pré-processamento, o formato dos dados originais pode ser convertido para um formato especificado sob o tipo através da conversão de formato, para normalizar os dados.[095] In some embodiments, since the techniques used by the data source differ, the same type of data may be provided in different formats, which adds requirements to the technical processing. Therefore, a normalized format may be specified. In the preprocessing stage, the format of the original data may be converted to a format specified under the type through format conversion, to normalize the data.

[096] Por exemplo, para dados de MQ, os dados de MQ em diferentes formatos podem ser examinados para analisar conteúdos de mensagens encapsuladas em diferentes formatos. Para dados agregados offline e dados de TOS, diferentes solicitações a partir de sistemas de arquivos ou sistemas de dados em diferentes formatos para invocar esses dados podem ser convertidas em solicitações de chamada de arquivo implementadas por API uniforme. Para invocação de serviço, as solicitações de invocação de serviço geradas sob diferentes protocolos podem ser convertidas em solicitações de invocação de serviço em um protocolo uniforme.[096] For example, for MQ data, MQ data in different formats can be examined to analyze message contents encapsulated in different formats. For offline aggregate data and TOS data, different requests from file systems or data systems in different formats to invoke that data can be converted into file call requests implemented by uniform API. For service invocation, service invocation requests generated under different protocols can be converted into service invocation requests in a uniform protocol.

[097] Para pré-processamento específico em diferentes tipos de dados, uma descrição mais detalhada será apresentada a seguir.[097] For specific preprocessing on different data types, a more detailed description will be presented below.

[098] No bloco 3303, o DES 1040 determina se os dados normalizados atendem a uma contenção de troca de dados. Por exemplo, o centro de DES 3065 no DES 1040, especialmente o centro de DES 3065 de um tipo de dados correspondente, pode checar se a contenção de troca de dados é atendida ou não. Através do pré-processamento normalizado, o centro de DES 3065 não precisa examinar os dados originais por diferentes técnicas, de modo que a segurança e a conformidade dos dados possam ser checados de forma mais conveniente ao usar regras.[098] In block 3303, the DES 1040 determines whether the normalized data meets a data exchange contention. For example, the DES center 3065 in the DES 1040, especially the DES center 3065 of a corresponding data type, can check whether the data exchange contention is met or not. Through normalized preprocessing, the DES center 3065 does not need to examine the original data by different techniques, so that data security and compliance can be checked more conveniently when using rules.

[099] No bloco 3304, se for determinado que os dados normalizados atendem a contenção de troca de dados, o DES 1010 converte os dados normalizados nos dados originais. Caso a contenção de troca de dados seja atendida, os dados têm permissão para serem sincronizados entre plataformas. A fim de garantir a sincronização correta dos dados, o DES 1040 processará adicionalmente os dados normalizados para converter os dados normalizados nos dados originais, os quais possuem um formato original.[099] In block 3304, if it is determined that the normalized data meets the data exchange contention, the DES 1010 converts the normalized data to the original data. If the data exchange contention is met, the data is allowed to be synchronized across platforms. In order to ensure correct data synchronization, the DES 1040 will further process the normalized data to convert the normalized data to the original data, which has an original format.

[0100] No bloco 3305, o DES 1040 desempenha uma troca dos dados originais entre a primeira plataforma e a segunda plataforma. Assim, a troca de dados atendendo à segurança e conformidade pode ser realizada.[0100] In block 3305, the DES 1040 performs an exchange of the original data between the first platform and the second platform. Thus, the exchange of data meeting security and compliance can be performed.

[0101] Em algumas modalidades, como brevemente mencionado acima, uma pluralidade de canais de dados correspondentes a diferentes tipos de dados originais pode ser criada entre diferentes plataformas, e diferentes tipos de dados originais serão entregues aos canais de dados correspondentes para processamento. Cada canal de dados pode compreender um componente de pré-processamento, um componente de pós-processamento e um componente de confirmação sobre contenção de troca de dados, que são adequados para processar este tipo de dados originais. Além disso, ou alternativamente, cada canal de dados pode ser registrado com uma contenção de troca de dados a ser aplicada ao tipo específico de dados originais. Desta forma, é possível realizar a separação de pré-processamento, confirmação de contenções de troca de dados e de pós-processamento para diferentes tipos de dados.[0101] In some embodiments, as briefly mentioned above, a plurality of data channels corresponding to different types of source data may be created between different platforms, and different types of source data will be delivered to the corresponding data channels for processing. Each data channel may comprise a pre-processing component, a post-processing component, and a data exchange contention confirmation component, which are suitable for processing this type of source data. Additionally, or alternatively, each data channel may be registered with a data exchange contention to be applied to the specific type of source data. In this way, it is possible to perform the separation of pre-processing, data exchange contention confirmation, and post-processing for different types of data.

[0102] Canais de dados correspondentes a diferentes tipos de dados podem ser criados, atualizados e excluídos de forma flexível. Assim, se o pré- processamento e pós-processamento da mudança de dados ou a contenção de troca de dados para o tipo específico de dados precisar ser atualizado, a mudança ou atualização poderá ser desempenhado no respectivo canal de dados sem qualquer impacto em outros canais de dados. Além disso, de acordo com as necessidades dos negócios, se um novo tipo de dados originais precisa ser trocado entre a primeira plataforma e a segunda plataforma e o novo tipo de dados também estiver sujeito à checagem de proteção da soberania dos dados, então um novo canal de dados poderá ser criado entre a primeira plataforma e a segunda plataforma para processar o novo tipo de dados originais.[0102] Data channels corresponding to different data types can be flexibly created, updated, and deleted. Thus, if pre-processing and post-processing of data changes or data exchange containment for a specific data type needs to be updated, the change or update can be performed in the respective data channel without any impact on other data channels. Furthermore, according to business needs, if a new type of raw data needs to be exchanged between the first platform and the second platform, and the new type of data is also subject to data sovereignty protection checks, a new data channel can be created between the first platform and the second platform to process the new type of raw data.

[0103] A Fig. 3E mostra um fluxograma de um exemplo de fluxo de dados 3005 de vários tipos de processamento de dados desempenhados no DES 1040 de acordo com algumas modalidades da presente divulgação. O fluxo de dados 3005 envolve um fluxo de dados de plano de controle e um fluxo de dados de plano de dados.[0103] Fig. 3E shows a flowchart of an example data flow 3005 of various types of data processing performed in the DES 1040 in accordance with some embodiments of the present disclosure. The data flow 3005 involves a control plane data flow and a data plane data flow.

[0104] No plano de controle, a equipe de operação e manutenção pode configurar um ou mais tipos de canais de dados no DES 1040 e desempenhar a atualização e manutenção dos canais. Conforme mostrado na Fig. 3E, a equipe de operação e manutenção doméstica pode, via a entrada de DES 3062, solicitar a configuração de um tipo de dados específico e um canal para processar o tipo de dados específico e registrar um diretório de dados 3081 indicando o tipo de dados específico e uma definição de dados 3082 similar aos dados específicos para um centro de registro de DES 3066. A definição de dados 3082 pode especificar informações de canal para processar diferentes tipos de dados no DES 1040 e pode compreender uma solução de pré-processamento e uma solução de pós-processamento sobre um respectivo tipo de dados.[0104] In the control plane, the operation and maintenance personnel may configure one or more types of data channels in the DES 1040 and perform update and maintenance of the channels. As shown in Fig. 3E, the domestic operation and maintenance personnel may, via the DES input 3062, request the configuration of a specific data type and a channel for processing the specific data type, and register a data directory 3081 indicating the specific data type and a data definition 3082 similar to the specific data to a DES registration center 3066. The data definition 3082 may specify channel information for processing different types of data in the DES 1040 and may comprise a pre-processing solution and a post-processing solution over a respective data type.

[0105] De maneira similar, a equipe de operação e manutenção do ROW pode, via a entrada de DES 3072, solicitar a configuração de um tipo de dados específico e um canal para processar o tipo de dados específico. A equipe de operação e manutenção do ROW também pode registrar um diretório de dados 3084 indicando o tipo de dados específicos e uma definição de dados 3085 similar aos dados específicos para o centro de registro de DES 3066. A definição de dados 3085 pode especificar informações de canal para processar diferentes tipos de dados no DES 1040 e pode compreender uma solução de pré- processamento e uma solução de pós-processamento sobre um tipo de dados correspondente.[0105] Similarly, the ROW operation and maintenance staff may, via the DES input 3072, request the configuration of a specific data type and a channel for processing the specific data type. The ROW operation and maintenance staff may also register a data directory 3084 indicating the specific data type and a data definition 3085 similar to the specific data to the DES registration center 3066. The data definition 3085 may specify channel information for processing different data types in the DES 1040 and may comprise a pre-processing solution and a post-processing solution over a corresponding data type.

[0106] No plano de dados, diferentes tipos de dados passarão pelos seus respectivos canais no DES 1040. Conforme mostrado na Fig. 3E, para dados de invocação de serviço, uma solicitação de invocação de serviço é trocada entre um cliente ou servidor 3086 no lado do TTP IDC e um cliente ou um servidor 3090 no lado do ROW IDC. A fim de fazer com que a solicitação de invocação de serviço atenda aos requisitos de proteção de soberania de dados, a solicitação de invocação de serviço é processada no canal de invocação de serviço no DES 1040.[0106] In the data plane, different types of data will pass through their respective channels in the DES 1040. As shown in Fig. 3E, for service invocation data, a service invocation request is exchanged between a client or server 3086 on the TTP IDC side and a client or a server 3090 on the ROW IDC side. In order to make the service invocation request meet data sovereignty protection requirements, the service invocation request is processed on the service invocation channel in the DES 1040.

[0107] No exemplo da Fig. 3E, o canal de invocação de serviço pode compreender pelo menos um módulo de pré-processamento 3087 no proxy de DES 3063, um proxy de HTTP 3088 no centro de DES 3065 e um módulo de roteamento 3089 no proxy de DES 3073. A solicitação de invocação de serviço a partir do cliente ou servidor 3086 no lado de TTP IDC é transferida ao módulo de pré-processamento 3087. O módulo de pré-processamento 3087 processa a solicitação de invocação de serviço usando uma solução de pré-processamento de dados especificada na definição de dados 3082 e envia a solicitação de invocação de serviço normalizado ao proxy de HTTP 3088.[0107] In the example of Fig. 3E, the service invocation channel may comprise at least a preprocessing module 3087 in the DES proxy 3063, an HTTP proxy 3088 in the DES center 3065, and a routing module 3089 in the DES proxy 3073. The service invocation request from the client or server 3086 on the TTP IDC side is transferred to the preprocessing module 3087. The preprocessing module 3087 processes the service invocation request using a data preprocessing solution specified in the data definition 3082 and sends the normalized service invocation request to the HTTP proxy 3088.

[0108] Neste exemplo, supõe-se que a solicitação de invocação de serviço esteja formatada em uma solicitação que se adequa a um protocolo uniforme, isto é, protocolo de HTTP. Portanto, o proxy de HTTP 3088 pode, após determinar que a solicitação de invocação de serviço normalizado atende à contenção de troca de dados, prover a solicitação de invocação de serviço normalizado através do módulo de roteamento 3089 para o cliente ou servidor 3090 no outro lado. Antes de ser provido ao cliente ou servidor 3090, a solicitação de invocação de serviço normalizado é convertida novamente em uma solicitação de invocação de serviço que se adequa a um protocolo original.[0108] In this example, it is assumed that the service invocation request is formatted into a request that conforms to a uniform protocol, i.e., HTTP protocol. Therefore, HTTP proxy 3088 may, after determining that the normalized service invocation request meets the data exchange contention, provide the normalized service invocation request through routing module 3089 to client or server 3090 on the other side. Before being provided to client or server 3090, the normalized service invocation request is converted back into a service invocation request that conforms to an original protocol.

[0109] Para dados de MQ, tal tipo de dado original é processado no canal de MQ no DES 1040. No exemplo da Fig. 3E, o canal de MQ pode compreender pelo menos um módulo de pré-processamento 3092 no proxy de DES 3063, um transmissor de MQ 3094 no centro de DES 3065 e um módulo de roteamento 3097 no proxy de DES 3073.[0109] For MQ data, such original data type is processed in the MQ channel in the DES 1040. In the example of Fig. 3E, the MQ channel may comprise at least a preprocessing module 3092 in the DES proxy 3063, an MQ transmitter 3094 in the DES center 3065, and a routing module 3097 in the DES proxy 3073.

[0110] Os dados originais 3091 do tipo MQ são transferidos para o módulo de pré-processamento 3092. O módulo de pré-processamento 3092 usa uma solução de pré-processamento de dados especificada na definição de dados 3082 para processar os dados originais 3091 para obter dados normalizados 3093. Os dados normalizados 3093 são extraídos pelo transmissor de MQ 3094, por exemplo, extraídos via um kit de desenvolvimento de software (SDK) de terceiros. Após passar na checagem de contenção de troca de dados, o SDK envia por push os dados normalizados 3096 que atendem às regras para o ROW IDC. Os dados normalizados 3095 que não atendem às regras são rejeitados. O módulo de roteamento 3097 roteia os dados normalizados 3096 que atendem às regras para um destino correspondente. Antes de serem transmitidos para o destino correspondente, os dados normalizados 3093 são convertidos novamente nos dados originais correspondentes 3098.[0110] The original MQ-type data 3091 is transferred to the preprocessing module 3092. The preprocessing module 3092 uses a data preprocessing solution specified in the data definition 3082 to process the original data 3091 to obtain normalized data 3093. The normalized data 3093 is extracted by the MQ transmitter 3094, for example, extracted via a third-party software development kit (SDK). After passing the data exchange contention check, the SDK pushes the normalized data 3096 that meets the rules to the ROW IDC. The normalized data 3095 that does not meet the rules is rejected. The routing module 3097 routes the normalized data 3096 that meets the rules to a corresponding destination. Before being transmitted to the corresponding destination, the normalized data 3093 is converted back to the corresponding original data 3098.

[0111] Para dados agregados offline e dados de TOS, os dados originais são processados no canal de HDFS e no canal de TOS no DES 1040, respectivamente. Com o propósito de brevidade, a Fig. 3E mostra um exemplo de um canal. Contudo, deve-se entender que o canal de HDFS e o canal de TOS podem compreender componentes que são mostrados. No exemplo da Fig. 3E, o canal de HDFS e o canal de TOS podem compreender pelo menos um módulo de pré- processamento 3100 no proxy de DES 3063, um transmissor de arquivo 3103 no centro de DES 3065 e um módulo de roteamento 3105 no DES 3073.[0111] For offline aggregated data and TOS data, the original data is processed in the HDFS channel and the TOS channel in DES 1040, respectively. For the purpose of brevity, Fig. 3E shows an example of a channel. However, it should be understood that the HDFS channel and the TOS channel may comprise components that are shown. In the example of Fig. 3E, the HDFS channel and the TOS channel may comprise at least a preprocessing module 3100 in DES proxy 3063, a file transmitter 3103 in DES center 3065, and a routing module 3105 in DES 3073.

[0112] Como os dados do tipo de dados agregados offline ou tipo TOS são armazenados em um sistema de arquivos ou outro sistema de armazenamento, o módulo de pré-processamento 3100 pode iniciar uma solicitação para invocar uma API de transferência de arquivos para um gerenciador de transferência de arquivo 3102 para obter dados originais 3099 do tipo de dados agregados offline ou tipo de TOS. Os dados originais 3099 são transferidos para o módulo de pré- processamento 3100. O módulo de pré-processamento 3100 pode usar uma solução de pré-processamento de dados especificada na definição de dados 3082 para processar os dados originais 3099 para obter dados normalizados 3101.[0112] As data of the offline aggregate data type or TOS type is stored in a file system or other storage system, the preprocessing module 3100 may initiate a request to invoke a file transfer API to a file transfer manager 3102 to obtain original data 3099 of the offline aggregate data type or TOS type. The original data 3099 is transferred to the preprocessing module 3100. The preprocessing module 3100 may use a data preprocessing solution specified in the data definition 3082 to process the original data 3099 to obtain normalized data 3101.

[0113] Como o processamento de dados do tipo MQ, os dados normalizados 3101 são extraídos pelo transmissor de arquivo 3103, por exemplo, via SDK. Após passar na checagem de contenção de troca de dados, o SDK envia por push os dados normalizados 3104 que atendem às regras para o ROW IDC. Os dados normalizados que não atendem às regras são rejeitados e não podem ser transferidos para o ROW IDC. O módulo de roteamento 3105 roteia os dados normalizados 3104 que atendem às regras para um destino correspondente. Antes de serem transmitidos para o destino correspondente, os dados normalizados 3104 são convertidos novamente nos dados originais correspondentes 3106.[0113] Like MQ-type data processing, normalized data 3101 is extracted by file transmitter 3103, e.g., via SDK. After passing the data exchange contention check, the SDK pushes normalized data 3104 that meets the rules to the IDC ROW. Normalized data that does not meet the rules is rejected and cannot be transferred to the IDC ROW. Routing module 3105 routes normalized data 3104 that meets the rules to a corresponding destination. Before being transmitted to the corresponding destination, normalized data 3104 is converted back to the corresponding original data 3106.

[0114] Deve-se entender que a Fig. 3E mostra apenas o processamento de dados enviados a partir do TTP IDC ao ROW IDC no DES 1040. Para um fluxo de dados na direção oposta, este também pode ser processado através de um processo similar no DES 1040, e o DES 1040 pode reter um componente correspondente para apoiar o respectivo processamento, especialmente um componente no adaptador de DES.[0114] It should be understood that Fig. 3E only shows the processing of data sent from the TTP IDC to the ROW IDC in the DES 1040. For a data flow in the opposite direction, this may also be processed through a similar process in the DES 1040, and the DES 1040 may retain a corresponding component to support the respective processing, especially a component in the DES adapter.

[0115] Uma discussão detalhada é apresentada abaixo para alguns exemplos de implementações para diferentes tipos de dados no DES 1040.[0115] A detailed discussion is presented below for some example implementations for different data types in DES 1040.

Exemplo de Implementação de Troca de Dados para Dados de MQData Exchange Implementation Example for MQ Data

[0116] A Fig. 3F mostra um diagrama de blocos esquemáticos da arquitetura de troca de dados 3006 envolvendo um canal de MQ de acordo com algumas modalidades da presente divulgação. A arquitetura de troca de dados 3006 pode ser implementada no DES 1040 para desempenhar proteção de segurança de dados em dados do tipo MQ. No exemplo da Fig. 3F, é mostrada uma troca de dados a partir do TTP IDC ao ROW IDC.[0116] Fig. 3F shows a schematic block diagram of the data exchange architecture 3006 involving an MQ channel in accordance with some embodiments of the present disclosure. The data exchange architecture 3006 may be implemented in the DES 1040 to perform data security protection on MQ type data. In the example of Fig. 3F, a data exchange from the TTP IDC to the ROW IDC is shown.

[0117] Conforme mostrado na Fig. 3F, um banco de dados fonte 3110 no TTP IDC gera uma entidade de dados de MQ a serem transferidos. Os dados de MQ podem compreender dados de MQ podem incluir mensagens tais como dados de mudança ou eventos de customização de negócios, e diferentes mensagens podem ter diferentes formatos. Os dados de MQ gerados pelo banco de dados fonte 3110 são colocados em uma fila de mensagens fonte 3112.[0117] As shown in Fig. 3F, a source database 3110 in the TTP IDC generates an entity of MQ data to be transferred. The MQ data may comprise messages such as change data or business customization events, and different messages may have different formats. The MQ data generated by the source database 3110 is placed in a source message queue 3112.

[0118] No exemplo da Fig. 3F, o adaptador de DES 3061 compreende adicionalmente um pré-adaptador de DES 3120 além da entrada de DES 3062. O pré-adaptador de DES 3120 pode ser implementado como parte do proxy de DES 3063 para desempenhar o pré-processamento nos dados de MQ do TTP IDC ao ROW IDC. O pré-adaptador de DES 3120 pode ser configurado para processar dados de MQ em diferentes formatos em dados de MQ normalizados em um formato normalizado e prover os dados de MQ normalizados a um transmissor de MQ 3094 para determinar se a contenção de troca de dados é atendida ou não.[0118] In the example of Fig. 3F, the DES adapter 3061 further comprises a DES pre-adapter 3120 in addition to the DES input 3062. The DES pre-adapter 3120 may be implemented as part of the DES proxy 3063 to perform pre-processing on the MQ data from the TTP IDC to the ROW IDC. The DES pre-adapter 3120 may be configured to process MQ data in different formats into normalized MQ data in a normalized format and provide the normalized MQ data to an MQ transmitter 3094 to determine whether data exchange contention is met or not.

[0119] Os dados (ou mensagem) de MQ também podem compreender dados gerados sob diferentes protocolos, os dados sob cada protocolo tendo um formato customizado, de modo que é requerido um pré-processamento diferente. Conforme mostrado na Fig. 3F, o pré-adaptador de DES 3120 pode compreender um examinador 3122 que é configurado para examinar diferentes tipos de dados de MQ originais para converter diferentes tipos de dados originais em dados normalizados em um formato normalizado. Conforme mostrado na Fig. 3F, o pré-adaptador de DES 3120 pode compreender um examinador MySQL para examinar dados gerados através do protocolo MySQL, por exemplo, dados de captura de mudança de dados (CDC); um examinador Redis para examinar dados gerados através do protocolo Redis, tais como dados de CDC; um examinador de documentos para examinar dados no banco de dados de documentos, especialmente dados de CDC; um examinador gráfico para examinar dados em um banco de dados gráfico, especialmente dados de CDC; um examinador de MQ para examinar diferentes tipos de dados de eventos de negócios enviados através de uma fila de mensagens, etc. Deve-se entender que o examinador 3122 é escalável de maneira flexível, em que mais, menos ou outros examinadores podem ser estabelecidos para examinar um respectivo tipo de dados de MQ.[0119] The MQ data (or message) may also comprise data generated under different protocols, the data under each protocol having a custom format, so that different preprocessing is required. As shown in Fig. 3F, the DES pre-adapter 3120 may comprise a examiner 3122 that is configured to examine different types of original MQ data to convert different types of original data into normalized data in a normalized format. As shown in Fig. 3F, the DES pre-adapter 3120 may comprise a MySQL examiner for examining data generated through the MySQL protocol, for example, change data capture (CDC) data; a Redis examiner for examining data generated through the Redis protocol, such as CDC data; a document examiner for examining data in the document database, especially CDC data; a graph examiner for examining data in a graph database, especially CDC data; an MQ examiner for examining different types of business event data sent through a message queue, etc. It should be understood that the examiner 3122 is flexibly scalable, in that more, fewer, or other examiners can be established for examining a respective type of MQ data.

[0120] Os dados de MQ normalizados obtidos a partir do exame também podem estar na forma de uma fila de mensagens e podem ser colocados em uma fila 3124 de mensagens normalizadas. No VPC2 do TTP IDC, o transmissor de MQ 3094 encarregado pelos dados de MQ pode extrair os dados de MQ normalizados examinados a partir da fila de mensagens normalizadas 3124 através do SDK para segurança de dados e checagens de conformidade. Os dados de MQ normalizados que não atendem à checagem de segurança e conformidade de dados são rejeitados pelo transmissor de MQ 3094 e gravados em um log rejeitado 3126. Os dados de MQ normalizados que atendem à contenção de troca de dados são enviados por push via o SDK para um pós- adaptador de DES 3130 no adaptador de DES 3070.[0120] The normalized MQ data obtained from the scan may also be in the form of a message queue and may be placed in a normalized message queue 3124. In the VPC2 of the TTP IDC, the MQ transmitter 3094 in charge of the MQ data may pull the scanned normalized MQ data from the normalized message queue 3124 via the SDK for data security and compliance checks. Normalized MQ data that does not meet the data security and compliance check is rejected by the MQ transmitter 3094 and written to a reject log 3126. Normalized MQ data that meets the data exchange contention is pushed via the SDK to a DES post-adapter 3130 on the DES adapter 3070.

[0121] O pós-adaptador de DES 3130 pode ser implementado como parte do proxy de DES 3073 para desempenhar pós-processamento nos dados de MQ normalizados a partir do TTP IDC para o ROW IDC para transferir dados para um destino. Os dados de MQ normalizados que atendem à contenção de troca de dados são enviados por push ao pós-adaptador de DES 3130 via o SDK.[0121] The DES post-adapter 3130 may be implemented as part of the DES proxy 3073 to perform post-processing on the normalized MQ data from the IDC TTP to the IDC ROW to transfer data to a destination. The normalized MQ data that meets the data exchange contention is pushed to the DES post-adapter 3130 via the SDK.

[0122] O pós-adaptador de DES 3130 pode compreender um reprodutor de dados 3132 para desempenhar pós-processamento nos dados de MQ normalizados. Especificamente, o pós-adaptador de DES 3130 pode ser configurado para converter os dados de MQ normalizados em dados de MQ originais. Portanto, o pós-adaptador de DES 3130 pode compreender reprodutores correspondentes a diferentes tipos de dados de MQ, para conversão de um formato normalizado para os respectivos formatos customizados. Conforme mostrado na Fig. 3F, o pós-adaptador DES 3130 pode compreender um reprodutor de MySQL para converter dados de MQ normalizados em dados de MQ que se adequam ao protocolo MySQL; um reprodutor de Redis para converter dados de MQ normalizados em dados de MQ que se adequam ao protocolo Redis; um reprodutor de documentos para converter dados de MQ normalizados em dados originais na forma de gráfico; um reprodutor de MQ para converter dados de MQ normalizados em dados originais que se adequam ao protocolo MQ, etc.[0122] The DES post-adapter 3130 may comprise a data player 3132 for performing post-processing on the normalized MQ data. Specifically, the DES post-adapter 3130 may be configured to convert the normalized MQ data into original MQ data. Therefore, the DES post-adapter 3130 may comprise players corresponding to different types of MQ data for converting from a normalized format to respective custom formats. As shown in Fig. 3F, the DES post-adapter 3130 may comprise a MySQL player for converting normalized MQ data into MQ data that conforms to the MySQL protocol; a Redis player for converting normalized MQ data into MQ data that conforms to the Redis protocol; a document player for converting normalized MQ data into original data in graph form; an MQ player to convert normalized MQ data into original data that conforms to the MQ protocol, etc.

[0123] Os dados de MQ originais convertidos podem ser colocados em uma fila 3134 de mensagens normalizadas e podem ser sincronizados com uma fila de mensagens alvo 3135. A fila de mensagens alvo 3135 é usada para salvar dados de MQ que são indiretamente sincronizados a partir de uma fila de mensagens fonte 3112 via o DES 1040. O banco de dados alvo 3136 pode obter dados de MQ desejados a partir da fila de mensagens alvo 3135.[0123] The converted original MQ data may be placed in a normalized message queue 3134 and may be synchronized with a target message queue 3135. The target message queue 3135 is used to save MQ data that is indirectly synchronized from a source message queue 3112 via the DES 1040. The target database 3136 may obtain desired MQ data from the target message queue 3135.

[0124] A Fig. 3F mostra apenas os componentes envolvidos na troca de dados a partir do TTP IDC para o ROW IDC. O exemplo na Fig. 3F mostra a troca de dados a partir do ROW IDC para o TTP IDC. O DES 1040 pode compreender componentes similares para processar a troca de dados nesta direção, por exemplo, o adaptador de DES 3070 pode compreender um pré-adaptador de DES com funções similares ao pré-adaptador de DES 3120, e o adaptador de DES 3061 pode compreender um pós-adaptador de DES com funções similares ao pós- adaptador de DES 3130. Com o propósito de brevidade, o processamento nesta direção não é detalhado.[0124] Fig. 3F shows only the components involved in the data exchange from the TTP IDC to the ROW IDC. The example in Fig. 3F shows the data exchange from the ROW IDC to the TTP IDC. The DES 1040 may comprise similar components for processing the data exchange in this direction, for example, the DES adapter 3070 may comprise a DES pre-adapter with similar functions to the DES pre-adapter 3120, and the DES adapter 3061 may comprise a DES post-adapter with similar functions to the DES post-adapter 3130. For the purpose of brevity, the processing in this direction is not detailed.

[0125] Deve-se entender que o componente para processar a troca de dados agregados offline no DES, conforme mostrado na Fig. 3F, é meramente exemplificativo. Em outros exemplos, dependendo das necessidades, diferentes módulos funcionais podem ser adicionalmente refinados, combinados e afins de outra maneira, e podem compreender adicionalmente mais, menos ou diferentes módulos funcionais.[0125] It should be understood that the component for processing offline aggregated data exchange in the DES, as shown in Fig. 3F, is merely exemplary. In other examples, depending on the needs, different functional modules may be further refined, combined, and the like in another manner, and may further comprise more, fewer, or different functional modules.

Exemplo de Implementação de Troca de Dados para Dados Agregados OfflineData Exchange Implementation Example for Offline Aggregated Data

[0126] A Fig. 3G mostra um diagrama de blocos esquemático da arquitetura de troca de dados 3500 envolvendo o canal de HDFS de acordo com algumas modalidades da presente divulgação. A arquitetura de troca de dados 3500 pode ser implementada no DES 1040 para desempenhar proteção de segurança de dados em dados agregados offline. No exemplo da Fig. 3G, é mostrada uma troca de dados agregados offline entre um HDFS 3502 no lado do TTP IDC e um HDFS 3504 no lado do ROW IDC. Alguns dados agregados offline entre o HDFS 3502 e o HDFS 3504 podem precisar ser sincronizados entre si.[0126] Fig. 3G shows a schematic block diagram of the data exchange architecture 3500 involving the HDFS channel according to some embodiments of the present disclosure. The data exchange architecture 3500 may be implemented in DES 1040 to perform data security protection on offline aggregate data. In the example of Fig. 3G, an offline aggregate data exchange between an HDFS 3502 on the TTP IDC side and an HDFS 3504 on the ROW IDC side is shown. Some offline aggregate data between the HDFS 3502 and the HDFS 3504 may need to be synchronized with each other.

[0127] Conforme mostrado na Fig. 3G, na arquitetura de troca de dados 3500, um detector de transferência de dados 3510 no lado do TTP IDC é responsável por detectar se os dados agregados offline a serem transferidos para o HDFS 3504 no outro lado estão armazenados no HDFS 3052. Onde dados agregados offline a serem transferidos são encontrados, um remetente de transferência de dados 3520 pode remeter uma solicitação de transferência de dados para um transmissor de arquivo 3550. Antes da solicitação ser remetida ao transmissor de arquivo, um módulo de pré-processamento de dados 3530 é configurado para desempenhar o pré-processamento de dados para processar dados agregados offline em dados normalizados.[0127] As shown in Fig. 3G, in the data exchange architecture 3500, a data transfer detector 3510 on the TTP IDC side is responsible for detecting whether offline aggregated data to be transferred to the HDFS 3504 on the other side is stored in the HDFS 3052. Where offline aggregated data to be transferred is found, a data transfer sender 3520 may forward a data transfer request to a file transmitter 3550. Before the request is forwarded to the file transmitter, a data preprocessing module 3530 is configured to perform data preprocessing to process offline aggregated data into normalized data.

[0128] No transmissor de arquivos 3550, um servidor de transferência de dados 3556 é configurado para controlar serviços de transferência de dados com base em uma contenção de troca de dados. Se o servidor de transferência de dados 3556 determinar que os dados normalizados pré-processados a partir do HDFS 3502 se adequam à contenção de troca de dados, então um trabalho de transferência 3558 pode ser invocado para transferir os dados normalizados ao ROW IDC através de uma tarefa de transferência 3562 sob o trabalho de transferência 3558. Em algumas modalidades, o trabalho de transferência 3558 pode adicionalmente, opcionalmente, uma tarefa de verificação de dados 3560, que pode ser configurada para desempenhar a verificação de dados de acordo com as necessidades. Os dados normalizados passam por um gateway de HDFS 3564 e podem ser processados para obter dados agregados offline originais que são então salvos no HDFS 3504.[0128] In the file transmitter 3550, a data transfer server 3556 is configured to control data transfer services based on a data exchange contention. If the data transfer server 3556 determines that the preprocessed normalized data from the HDFS 3502 meets the data exchange contention, then a transfer job 3558 may be invoked to transfer the normalized data to the ROW IDC via a transfer task 3562 under the transfer job 3558. In some embodiments, the transfer job 3558 may optionally additionally have a data verification task 3560, which may be configured to perform data verification as needed. The normalized data passes through an HDFS gateway 3564 and may be processed to obtain original offline aggregated data that is then saved in the HDFS 3504.

[0129] De maneira similar, na arquitetura de troca de dados 3500, um detector de transferência de dados 3570 no lado do ROW IDC é responsável por detectar se os dados agregados offline a serem transferidos para o HDFS 3502 no lado do TTP IDC estão armazenados no HDFS 3054. Onde dados agregados offline a serem transferidos são encontrados, um remetente de transferência de dados 3572 pode remeter uma solicitação de transferência de dados para um transmissor de arquivo 3550. Antes da solicitação ser remetida ao transmissor de arquivo, um módulo de pré-processamento de dados 3570 é configurado para desempenhar o pré-processamento de dados para processar dados agregados offline em dados normalizados.[0129] Similarly, in the data exchange architecture 3500, a data transfer detector 3570 on the ROW IDC side is responsible for detecting whether offline aggregated data to be transferred to the HDFS 3502 on the TTP IDC side is stored in the HDFS 3054. Where offline aggregated data to be transferred is found, a data transfer sender 3572 may forward a data transfer request to a file transmitter 3550. Before the request is forwarded to the file transmitter, a data preprocessing module 3570 is configured to perform data preprocessing to process offline aggregated data into normalized data.

[0130] No transmissor de arquivo 3550, se o servidor de transferência de dados 3556 determinar que os dados normalizados pré-processados a partir do HDFS 3504 se adequam à contenção de troca de dados, então um trabalho de transferência 3554 pode ser invocado para transferir os dados normalizados ao TTP IDC através de uma tarefa de transferência 3552 sob o trabalho de transferência 3554. Os dados agregados offline originais são obtidos através do processamento dos dados normalizados e depois salvos no HDFS 3502.[0130] At file transmitter 3550, if data transfer server 3556 determines that preprocessed normalized data from HDFS 3504 fits the data exchange contention, then a transfer job 3554 may be invoked to transfer the normalized data to the TTP IDC via a transfer task 3552 under transfer job 3554. The original offline aggregated data is obtained by processing the normalized data and then saved to HDFS 3502.

[0131] Deve-se entender que os componentes para processar a troca de dados agregados offline no DES, conforme mostrado na Fig. 3G, são meramente exemplificativos. Em outros exemplos, dependendo das necessidades, diferentes módulos funcionais podem ser adicionalmente refinados, combinados e afins de outra maneira, e podem compreender adicionalmente mais, menos ou diferentes módulos funcionais.[0131] It should be understood that the components for processing offline aggregated data exchange in DES as shown in Fig. 3G are merely exemplary. In other examples, depending on the needs, different functional modules may be further refined, combined, and the like in another manner, and may further comprise more, fewer, or different functional modules.

Exemplo de Implementação de Troca de Dados para Armazenamento de ObjetosExample of Data Exchange Implementation for Object Storage

[0132] Em geral, o canal de TOS pode determinar se um arquivo de objeto atende à contenção de troca de dados e copiar o arquivo de objeto de um IDC fonte (por exemplo, o TTP IDC ou ROW IDC) para um IDC de destino (por exemplo, o ROW IDC ou TTP IDC) onde a contenção é atendida. O arquivo de objeto pode ser, por exemplo, um arquivo de vídeo, áudio, imagem, documento ou outro arquivo de mídia.[0132] In general, the TOS channel may determine whether an object file meets data exchange contention and copy the object file from a source IDC (e.g., the TTP IDC or ROW IDC) to a destination IDC (e.g., the ROW IDC or TTP IDC) where contention is met. The object file may be, for example, a video, audio, image, document, or other media file.

[0133] Em algumas modalidades, o arquivo de objeto pode ser copiado a partir de um armazenamento de objeto através de API para determinar se a contenção de troca de dados é atendida e enviar por push o arquivo de objeto ao armazenamento de objeto no destino final através de API. Na troca de dados do arquivo de objeto, é determinado se a contenção de troca de dados é atendida através de uma solicitação de cópia correspondente ao arquivo de objeto. Detalhes do canal de TOS serão descritos com referência à Fig. 3H à Fig. 3J.[0133] In some embodiments, the object file may be copied from an object store via API to determine whether data exchange contention is met and push the object file to the object store at the final destination via API. Upon data exchange of the object file, it is determined whether data exchange contention is met by a corresponding copy request to the object file. Details of the TOS channel will be described with reference to Fig. 3H to Fig. 3J.

[0134] A Fig. 3H mostra uma vista esquemática de um canal de armazenamento de objeto alvo (TOS) 3600 para copiar dados a partir do TTP IDC ao ROW IDC de acordo com algumas modalidades da presente divulgação. Neste exemplo, os dados a serem trocados são um arquivo de objeto, que é armazenado em um armazenamento de objeto 3606 no TTP IDC e desejado a ser trocado a um armazenamento de objeto 3607 no ROW IDC.[0134] Fig. 3H shows a schematic view of a target object store (TOS) channel 3600 for copying data from the TTP IDC to the ROW IDC in accordance with some embodiments of the present disclosure. In this example, the data to be exchanged is an object file, which is stored in an object store 3606 in the TTP IDC and desired to be exchanged to an object store 3607 in the ROW IDC.

[0135] Na Fig. 3H, uma API 3605 no TTP IDC é configurada para enviar por push a solicitação de cópia para um nó de trabalho 3605 e receber a partir do nó de trabalho 3605 um resultado de cópia que é trocado a partir do ROW IDC no outro lado. Conforme retratado, quando um fluxo de dados começa 3601, a solicitação de cópia para o arquivo de objeto a ser trocado é transferida ao nó de trabalho 3605 através de uma API 3602 (também referida como DES-TOS API). A solicitação de cópia pode indicar informações relacionadas ao arquivo de objeto a ser trocado, por exemplo, um formato (vídeo, áudio, texto, etc.) do arquivo de objeto, um identificador do arquivo de objeto e outros metadados de arquivo, etc. A solicitação de cópia tem um formato normalizado.[0135] In Fig. 3H, an API 3605 in the TTP IDC is configured to push the copy request to a worker node 3605 and receive from the worker node 3605 a copy result that is exchanged from the ROW IDC on the other side. As depicted, when a data flow begins 3601, the copy request for the object file to be exchanged is transferred to the worker node 3605 via an API 3602 (also referred to as DES-TOS API). The copy request may indicate information related to the object file to be exchanged, e.g., a format (video, audio, text, etc.) of the object file, an identifier of the object file, and other file metadata, etc. The copy request has a normalized format.

[0136] O nó de trabalho 3605 dentro da área confiável de VPC2 é configurado para desempenhar uma determinação da contenção de troca de dados em resposta à solicitação de cópia para o arquivo alvo. Especificamente, o nó de trabalho 3605 pode determinar a partir da solicitação de cópia normalizada se o arquivo de objeto a ser trocado atende a contenção de troca de dados.[0136] The worker node 3605 within the trusted area of VPC2 is configured to perform a data exchange contention determination in response to the copy request for the target file. Specifically, the worker node 3605 may determine from the normalized copy request whether the object file to be exchanged meets the data exchange contention.

[0137] Em algumas modalidades, no lado do TTP IDC, um registro da contenção de troca de dados pode ser iniciado no estágio inicial ou quando necessário posteriormente. Quando o registro de contenção começa 3622, a contenção de troca de dados usada pode ser registrada em um centro de registro de DES 3624 na área confiável de TTP através de uma entrada de DES 3620 no TTP IDC. O registro da contenção de troca de dados pode ser implementado ao invocar a API 3602. O nó de trabalho 3605 pode acessar a contenção de troca de dados a ser usada atualmente através do centro de registro de DES 3624.[0137] In some embodiments, on the TTP IDC side, a record of the data exchange contention may be initiated at the initial stage or when needed later. When the contention record begins 3622, the used data exchange contention may be recorded in a DES record center 3624 in the TTP trusted area through a DES entry 3620 in the TTP IDC. Recording of the data exchange contention may be implemented by invoking the API 3602. The worker node 3605 may access the currently used data exchange contention through the DES record center 3624.

[0138] Em algumas modalidades, a contenção de troca de dados pode indicar uma lista branca de arquivos de objeto que têm permissão para serem trocados ou uma lista negra de arquivos de objeto que não têm permissão para serem trocados, e em cada lista, objetos de arquivo que têm permissão ou não têm permissão para serem trocados podem ser identificados por formatos, identificadores e afins de arquivos de objeto.[0138] In some embodiments, data exchange containment may indicate a whitelist of object files that are allowed to be exchanged or a blacklist of object files that are not allowed to be exchanged, and in each list, file objects that are allowed or not allowed to be exchanged may be identified by object file formats, identifiers, and the like.

[0139] Ao desempenhar a contenção de troca de dados, o nó de trabalho 3605 permite que a solicitação de cópia que atenda à contenção de troca de dados seja executada. Se a solicitação de cópia tiver permissão para ser executada, o nó de trabalho 3605 acessa o armazenamento de objetos 3606 no TTP IDC para copiar o arquivo de objeto ao armazenamento de objetos 3607 no ROW IDC. Para solicitações ilegais (isto é, solicitações de cópia que não atendam à contenção de troca de dados), estas serão rejeitadas e, portanto, não poderão ser executadas. O nó de trabalho 3605 pode escrever o arquivo de objeto copiado no armazenamento de objeto 3607 através de uma API 3610 no ROW IDC. Assim, o fluxo de dados termina 3611.[0139] Upon fulfilling data exchange contention, worker node 3605 allows the copy request that meets the data exchange contention to execute. If the copy request is allowed to execute, worker node 3605 accesses object store 3606 in the IDC TTP to copy the object file to object store 3607 in the IDC ROW. Illegal requests (i.e., copy requests that do not meet the data exchange contention) will be rejected and therefore cannot be executed. Worker node 3605 may write the copied object file to object store 3607 via an API 3610 in the IDC ROW. Thus, the data flow ends 3611.

[0140] A Fig. 3I mostra uma vista esquemática de um canal de TOS 3650 para copiar dados a partir do ROW IDC ao TTP IDC de acordo com algumas modalidades da presente divulgação. Neste exemplo, um arquivo de objeto a ser trocado é armazenado no armazenamento de objeto 3607 no ROW TTP IDC e deseja-se que seja trocado para o armazenamento de objeto 3606 no TTP IDC.[0140] Fig. 3I shows a schematic view of a TOS channel 3650 for copying data from the ROW IDC to the TTP IDC in accordance with some embodiments of the present disclosure. In this example, an object file to be exchanged is stored in object store 3607 in the ROW TTP IDC and is desired to be exchanged to object store 3606 in the TTP IDC.

[0141] Na Fig. 3I, a API 3610 no ROW IDC é configurada para enviar por push a solicitação de cópia para o nó de trabalho 3605 e receber a partir do nó de trabalho 3605 um resultado de cópia que é trocado a partir do TTP IDC no outro lado. Conforme mostrado na Fig. 3I, quando um fluxo de dados começa 3651, a solicitação de cópia para o arquivo de objeto a ser trocado é transferida ao nó de trabalho 3605 através da API 3610. A solicitação de cópia pode indicar informações relacionadas ao arquivo de objeto a ser trocado, por exemplo, um formato (vídeo, áudio, texto, etc.) do arquivo de objeto, um identificador do arquivo de objeto e outros metadados de arquivo, etc. A solicitação de cópia tem um formato normalizado. O nó de trabalho 3605 dentro da área confiável de VPC2 pode determinar, a partir da solicitação de cópia normalizada, se o arquivo de objeto a ser trocado atende à contenção de troca de dados.[0141] In Fig. 3I, API 3610 on the ROW IDC is configured to push the copy request to worker node 3605 and receive from worker node 3605 a copy result that is exchanged from the TTP IDC on the other side. As shown in Fig. 3I, when a data flow begins 3651, the copy request for the object file to be exchanged is transferred to worker node 3605 via API 3610. The copy request may indicate information related to the object file to be exchanged, e.g., a format (video, audio, text, etc.) of the object file, an identifier of the object file, and other file metadata, etc. The copy request has a normalized format. Worker node 3605 within the trusted area of VPC2 may determine from the normalized copy request whether the object file to be exchanged meets data exchange contention.

[0142] Em algumas modalidades, no lado do ROW IDC, um registro da contenção de troca de dados pode ser iniciado no estágio inicial ou quando necessário posteriormente. Quando o registro de contenção começa 3632, a contenção de troca de dados usada pode ser registrada em um centro de registro de DES 3624 na área confiável de TTP através de uma entrada de DES 3630 no ROW IDC. O registro da contenção de troca de dados pode ser implementado ao invocar a API 3610. O nó de trabalho 3605 pode acessar a contenção de troca de dados a ser usada atualmente através do centro de registro de DES 3624.[0142] In some embodiments, on the ROW IDC side, a record of the data exchange contention may be initiated at the initial stage or when needed later. When the contention record begins 3632, the used data exchange contention may be recorded in a DES record center 3624 in the TTP trusted area through a DES entry 3630 in the ROW IDC. Recording of the data exchange contention may be implemented by invoking the API 3610. The worker node 3605 may access the currently used data exchange contention through the DES record center 3624.

[0143] Ao desempenhar a contenção de troca de dados, o nó de trabalho 3605 permite que a solicitação de cópia que atenda à contenção de troca de dados seja executada. Se a solicitação de cópia tiver permissão para ser executada, o nó de trabalho 3605 acessa o armazenamento de objetos 3607 no ROW IDC para copiar o arquivo de objeto ao armazenamento de objetos 3607 no TTP IDC. Para solicitações ilegais (isto é, solicitações de cópia que não atendam à contenção de troca de dados), estas serão rejeitadas e, portanto, não poderão ser executadas. O nó de trabalho 3605 pode escrever o arquivo de objeto copiado no armazenamento de objeto 3606 através da API 3602 no TTP IDC. Assim, o fluxo de dados termina 3652.[0143] Upon fulfilling data exchange contention, worker node 3605 allows the copy request that meets the data exchange contention to execute. If the copy request is allowed to execute, worker node 3605 accesses object store 3607 in the IDC ROW to copy the object file to object store 3607 in the IDC TTP. Illegal requests (i.e., copy requests that do not meet the data exchange contention) will be rejected and therefore cannot be executed. Worker node 3605 may write the copied object file to object store 3606 via API 3602 in the IDC TTP. Thus, the data flow terminates 3652.

[0144] Deve-se entender que os componentes para processar a troca de dados de TOS no DES, conforme mostrado nas Figs. 3H e 3I são meramente exemplificativos. Em outros exemplos, dependendo dos requisitos, diferentes módulos funcionais podem adicionalmente ser refinados, fusionados e afins de outra maneira, e podem compreender adicionalmente mais, menos ou diferentes módulos funcionais.[0144] It should be understood that the components for processing the TOS data exchange in the DES as shown in Figs. 3H and 3I are merely exemplary. In other examples, depending on the requirements, different functional modules may further be refined, merged, and the like in another manner, and may further comprise more, fewer, or different functional modules.

[0145] A Fig. 3J mostra uma sequência de mensagens 3012 no canal de TOS de acordo com algumas modalidades da presente divulgação. A sequência de mensagens 3012 na Fig. 3J envolve um TTP 3701, equipe de operação e manutenção 3702, equipe de trabalho de plataforma 3703, uma entrada de DES 3704, uma API 3705, o nó de trabalho 3605 e um armazenamento de objeto 3708.[0145] Fig. 3J shows a sequence of messages 3012 on the TOS channel according to some embodiments of the present disclosure. The sequence of messages 3012 in Fig. 3J involves a TTP 3701, operation and maintenance personnel 3702, platform work personnel 3703, a DES entry 3704, an API 3705, the worker node 3605, and an object store 3708.

[0146] Dependendo da direção da troca de dados, a entrada de DES 3704, a API 3705 e o armazenamento de objetos 3708 na Fig. 3J podem ser componentes correspondentes em qualquer uma das Figs. 3H e 3I. Por exemplo, no canal de TOS 3600 para copiar dados a partir do TTP IDC ao ROW IDC, conforme mostrado na Fig. 3H, a entrada de DES 3704 compreende a entrada de DES 3620 mostrada na Fig. 3H, a API 3705 compreende a API 3602 mostrada na Fig. 3H, e o armazenamento de objetos 3708 compreende o armazenamento de objetos 3606 na Fig. 3H. No canal de TOS 3650 para copiar dados a partir do ROW IDC ao TTP IDC, a entrada de DES 3704 compreende a entrada de DES 3630 mostrada na Fig. 3I, a API 3705 compreende a API 3610 mostrada na Fig. 3I e o armazenamento de objetos 3708 compreende o armazenamento de objetos 3607 na Fig. 3I.[0146] Depending on the direction of data exchange, the DES input 3704, the API 3705, and the object store 3708 in Fig. 3J may be corresponding components in any of Figs. 3H and 3I. For example, in the TOS channel 3600 for copying data from the TTP IDC to the ROW IDC as shown in Fig. 3H, the DES input 3704 comprises the DES input 3620 shown in Fig. 3H, the API 3705 comprises the API 3602 shown in Fig. 3H, and the object store 3708 comprises the object store 3606 in Fig. 3H. In the TOS channel 3650 for copying data from the ROW IDC to the TTP IDC, the DES entry 3704 comprises the DES entry 3630 shown in Fig. 3I, the API 3705 comprises the API 3610 shown in Fig. 3I, and the object store 3708 comprises the object store 3607 in Fig. 3I.

[0147] Na sequência de mensagens 3012, a equipe de operação e manutenção 3702 registra 3711 uma contenção de troca de dados para a entrada de DES 3704, que pode conter a cópia de um arquivo de objeto entre o armazenamento de objeto 3606 e 3607 em diferentes IDCs. Após a conclusão do registro, a entrada de DES 3704 poderá enviar 3714 uma resposta à equipe de operação e manutenção. A entrada de DES 3704 registra 3712 informações de contêiner sobre a contenção de troca de dados para a API 3705, e a API 3705 pode enviar 3713 uma resposta para a entrada de DES 3704 após o registro ser concluído. As regras registradas via a entrada de DES 3704 podem ser armazenadas em cache 3715 na API 3705 e também podem ser armazenadas em cache 3716 no nó de trabalho 3605.[0147] In message sequence 3012, operation and maintenance personnel 3702 registers 3711 a data exchange contention to DES entry 3704, which may contain copying an object file between object storage 3606 and 3607 in different IDCs. After registration is complete, DES entry 3704 may send 3714 a response to operation and maintenance personnel. DES entry 3704 registers 3712 container information about the data exchange contention to API 3705, and API 3705 may send 3713 a response to DES entry 3704 after registration is complete. Rules registered via DES entry 3704 may be cached 3715 in API 3705 and may also be cached 3716 on worker node 3605.

[0148] A equipe de trabalho de plataforma 3703 pode iniciar 3717 uma solicitação de cópia do arquivo de objeto para a API 3705. A API 3705 pode desempenhar uma autenticação 3718. O nó de trabalho 3605 pode retirar 3719 a solicitação de cópia a partir da API 3705 e desempenhar 3720 uma determinação da contenção de troca de dados no arquivo de objeto a ser copiado. Se o arquivo de objeto tiver permissão para ser copiado, o nó de trabalho 3605 desempenha 3721 a cópia de arquivo para copiar o arquivo de objeto correspondente a partir do armazenamento de objeto 3706. Independentemente do resultado da determinação da troca de dados, o nó de trabalho 3605 retornará 3722 um feedback à API 3705. Onde o arquivo de objeto tem permissão para ser copiado, o feedback compreende o arquivo de objeto copiado. Quando o arquivo de objeto não tem permissão para ser copiado, o feedback é usado para indicar que a solicitação de cópia foi rejeitada.[0148] Platform worker team 3703 may initiate 3717 an object file copy request to API 3705. API 3705 may perform authentication 3718. Worker node 3605 may retrieve 3719 the copy request from API 3705 and perform 3720 a determination of data exchange contention on the object file to be copied. If the object file is permitted to be copied, worker node 3605 performs 3721 file copy to copy the corresponding object file from object store 3706. Regardless of the outcome of the data exchange determination, worker node 3605 will return 3722 feedback to API 3705. Where the object file is permitted to be copied, the feedback comprises the copied object file. When the object file is not allowed to be copied, feedback is used to indicate that the copy request was rejected.

[0149] Em algumas modalidades, a equipe de trabalho de plataforma 3703 pode chamar de volta 3723 a API 3705, e um ID de solicitação de cópia pode ser retornado 3724 a partir da API 3705 para a equipe de trabalho de plataforma 3703. Em algumas modalidades, o TTP 3701 pode visualizar a situação 3725 sobre cópias de arquivos de objetos históricos através da entrada de DES 3704 para confirmar se a troca de arquivos de objetos em um período de tempo passado atende aos requisitos de contenções de troca de dados. A entrada de DES 3704 pode retornar 3726 como resultado da visualização.[0149] In some embodiments, the platform work team 3703 may call back 3723 the API 3705, and a copy request ID may be returned 3724 from the API 3705 to the platform work team 3703. In some embodiments, the TTP 3701 may view the status 3725 about historical object file copies through the DES entry 3704 to confirm whether the exchange of object files in a past time period meets the data exchange contentions requirements. The DES entry 3704 may return 3726 as a result of the viewing.

Exemplo de Implementação de Proteção de Troca de Dados para Invocação de ServiçoExample of Implementing Data Exchange Protection for Service Invocation

[0150] A Fig. 3K mostra um diagrama de bloco esquemático da arquitetura de troca de dados 3800 envolvendo um canal de invocação de serviço de acordo com algumas modalidades da presente divulgação. A arquitetura de troca de dados 3800 pode ser implementada no DES 1040 para desempenhar proteção de segurança de dados em dados do tipo de invocação de serviço. No exemplo da Fig. 3L, é mostrada uma invocação de serviço de troca de dados entre um serviço de plataforma alvo 3802 no lado do TTP IDC e um serviço de plataforma ROW (não-TTP) 3804 no lado do ROW IDC. Por exemplo, um serviço no serviço de plataforma alvo 3802 pode precisar invocar um serviço no serviço de plataforma do ROW 3804 e vice-versa, um serviço no serviço de plataforma do ROW 3804 pode precisar invocar um serviço no serviço de plataforma alvo 3802.[0150] Fig. 3K shows a schematic block diagram of the data exchange architecture 3800 involving a service invocation channel in accordance with some embodiments of the present disclosure. The data exchange architecture 3800 may be implemented in the DES 1040 to perform data security protection on service invocation type data. In the example of Fig. 3L, a data exchange service invocation is shown between a target platform service 3802 on the TTP IDC side and a ROW (non-TTP) platform service 3804 on the ROW IDC side. For example, a service on the target platform service 3802 may need to invoke a service on the ROW platform service 3804, and vice versa, a service on the ROW platform service 3804 may need to invoke a service on the target platform service 3802.

[0151] Diferentes plataformas de serviço podem aplicar diferentes protocolos de invocação de serviço, tais como o protocolo de HTTP ou o protocolo de Thrift RPC. Em algumas modalidades da presente divulgação, espera-se que dados normalizados, por exemplo, dados de protocolo de HTTP possam ser processados ao desempenhar proteção de soberania de dados na área confiável de VPC.[0151] Different service platforms may apply different service invocation protocols, such as the HTTP protocol or the Thrift RPC protocol. In some embodiments of the present disclosure, it is expected that normalized data, e.g., HTTP protocol data, may be processed when performing data sovereignty protection in the VPC trusted area.

[0152] Na Fig. 3K, no plano de controle, o plano de controle não-TTP é usado para registro de canal, atualização e detecção da arquitetura de canal; o plano TTP/TTP é usado para aprovação de solicitação de canal, proibição de canal, detecção de canal, etc. No plano de dados, um balanceador de carga de HTTP 3810 é um produto balanceador L7 da TTP Cloud, que é um componente chave para garantir que todo o tráfego de canal de DES-RPC passe pela área confiável de VPR. Um canal de HTTP é um canal entre os canais de DES-RPC que apoia o protocolo de HTTP. Um canal de Thrift RPC é um canal entre os canais de DES-RPC que apoia o protocolo de Thrift RPC. Antes de ser enviado ao balanceador de carga de HTTP do TTP, o canal de Thrift RPC será empacotado no canal de HTTP.[0152] In Fig. 3K, in the control plane, the non-TTP control plane is used for channel registration, update, and channel architecture detection; the TTP/TTP plane is used for channel request approval, channel prohibition, channel detection, etc. In the data plane, an HTTP load balancer 3810 is a TTP Cloud L7 load balancer product, which is a key component in ensuring that all DES-RPC channel traffic passes through the VPR trust zone. An HTTP channel is a channel between DES-RPC channels that supports the HTTP protocol. A Thrift RPC channel is a channel between DES-RPC channels that supports the Thrift RPC protocol. Before being sent to the TTP HTTP load balancer, the Thrift RPC channel will be packaged in the HTTP channel.

[0153] No estágio de registro de canal, o canal de DES-RPC usa informações de canal e definição de dados para declarar. As informações de canal podem compreender um tipo de canal, tal como Thrift RPC ou HTTP. As informações de canal podem compreender adicionalmente tuplos de chamada de RPC. Os tuplos de chamada podem incluir src dc, serviços de src, dst dc, serviços de dst, métodos de rpc/percursos de http.[0153] At the channel registration stage, the DES-RPC channel uses channel information and data definition to declare. The channel information may comprise a channel type, such as Thrift RPC or HTTP. The channel information may further comprise RPC call tuples. The call tuples may include src dc, src services, dst dc, dst services, rpc methods/http paths.

[0154] A definição de dados pode depender da direção do fluxo de dados. Para um fluxo de dados de não-TTP para TTP, o Thrift IDL com anotações de conformidade será usado para declarar a resposta. Para um fluxo de dados de TTP para não-TTP, o Thrift IDL com anotações de conformidade será usado para declarar a solicitação. Em algumas modalidades, apenas quando o canal de DESRPC passa no registro de conformidade, o canal de DES-RPC fica disponível.[0154] The data definition may depend on the direction of the data flow. For a non-TTP to TTP data flow, the Thrift IDL with conformance annotations will be used to assert the response. For a TTP to non-TTP data flow, the Thrift IDL with conformance annotations will be used to assert the request. In some embodiments, only when the DESRPC channel passes the conformance record will the DES-RPC channel become available.

[0155] Deve-se entender que os componentes para processamento da invocação de serviço de troca de dados no DES, conforme mostrado na Fig. 3K, são meramente exemplificativos. Em outros exemplos, dependendo das necessidades, diferentes módulos funcionais podem ser adicionalmente refinados, combinados e afins de outra maneira, e podem compreender adicionalmente mais, menos ou diferentes módulos funcionais.[0155] It should be understood that the components for processing the data exchange service invocation in DES, as shown in Fig. 3K, are merely exemplary. In other examples, depending on the needs, different functional modules may be further refined, combined, and the like in another manner, and may further comprise more, fewer, or different functional modules.

[0156] A Fig. 3L mostra um exemplo de troca de dados de não-TTP para TTP no canal de invocação de serviço mostrado na Fig. 3K de acordo com algumas modalidades da presente divulgação. Conforme mostrado na Fig. 3L, uma invocação iniciada pelo serviço A 3901 em uma região do ROW será encaminhada por um proxy de HTTP 3902 ou um proxy de Thrift 3903 para um balanceador de carga TTP HTTP 3905. O serviço A 3901 pode ser um exemplo de serviço de plataforma do ROW mostrado na Fig. 3K. Para uma solicitação de HTTP, a invocação será encaminhada pelo proxy de HTTP 3902 para o balanceador de carga de HTTP 3905. Para uma solicitação de Thrift, a invocação será encaminhada pelo proxy de Thrift 3903 para o balanceador de carga de HTTP 3905.[0156] Fig. 3L shows an example of non-TTP to TTP data exchange in the service invocation channel shown in Fig. 3K in accordance with some embodiments of the present disclosure. As shown in Fig. 3L, an invocation initiated by service A 3901 in a region of the ROW will be forwarded by an HTTP proxy 3902 or a Thrift proxy 3903 to an HTTP TTP load balancer 3905. Service A 3901 may be an example platform service of the ROW shown in Fig. 3K. For an HTTP request, the invocation will be forwarded by HTTP proxy 3902 to HTTP load balancer 3905. For a Thrift request, the invocation will be forwarded by Thrift proxy 3903 to HTTP load balancer 3905.

[0157] Sugere-se que a descoberta de serviço a partir do proxy de serviço correspondente no ROW IDC, tal como o proxy de HTTP 3902 ou o proxy de Thrift 3903 para o balanceador de carga de HTTP 3905 de área confiável da VPC, seja implementada através de DNS, e sugere-se que a descoberta de serviço da solicitação correspondente à área de TTP IDC deverá usar descoberta de serviço customizado/universal.[0157] It is suggested that service discovery from the corresponding service proxy in the IDC ROW, such as the HTTP proxy 3902 or the Thrift proxy 3903 to the VPC trust area HTTP load balancer 3905, be implemented via DNS, and it is suggested that service discovery of the corresponding request to the IDC TTP area should use custom/universal service discovery.

[0158] O balanceador de carga de HTTP 3905 pode compreender um plugin de conformidade 3906. Para uma solicitação ilegal, o plugin de conformidade 3906 retornará um erro. Para uma invocação de Thrift RPC, a solicitação será empacotada por HTTP para gerar uma nova solicitação de HTTP. O corpo da nova solicitação de HTTP é um arquivo binário de Thrift.[0158] The HTTP load balancer 3905 may comprise a compliance plugin 3906. For an illegal request, the compliance plugin 3906 will return an error. For a Thrift RPC invocation, the request will be HTTP-wrapped to generate a new HTTP request. The body of the new HTTP request is a Thrift binary file.

[0159] Na área confiável de VPC, o balanceador de carga de HTTP 3905 do TTP encaminha solicitações ao proxy de HTTP 3907 e o proxy de Thrift 3908 do TTP respectivamente, e o proxy de HTTP 3907 e o proxy de Thrift 3908 encaminham solicitações ao serviço B 3908 e serviço C 3910 como serviços alvo, respectivamente. Para uma invocação de Thrift rpc, o proxy de Thrift 3908 restaura uma solicitação de Thrift original a partir da nova solicitação de HTTP gerada antes de enviar a solicitação.[0159] In the VPC trust area, TTP's HTTP load balancer 3905 forwards requests to TTP's HTTP proxy 3907 and Thrift proxy 3908 respectively, and HTTP proxy 3907 and Thrift proxy 3908 forward requests to service B 3908 and service C 3910 as target services respectively. For a Thrift rpc invocation, Thrift proxy 3908 restores an original Thrift request from the new HTTP request generated before sending the request.

[0160] O proxy de TTP HTTP 3907 e o proxy de Thrift 3908 checam as respostas antes de enviá-las ao balanceador de carga de TTP HTTP 3905. Para uma resposta que não passe na checagem de conformidade, um erro será retornado. Além disso, para a invocação de Thrift RPC, a resposta de Thrift será empacotada por HTTP para gerar uma nova resposta de HTTP. O corpo da nova resposta de HTTP é um arquivo binário de Thrift.[0160] The HTTP TTP proxy 3907 and the Thrift proxy 3908 check responses before sending them to the HTTP TTP load balancer 3905. For a response that does not pass the compliance check, an error will be returned. Additionally, for the Thrift RPC invocation, the Thrift response will be HTTP-wrapped to generate a new HTTP response. The body of the new HTTP response is a Thrift binary file.

[0161] A Fig. 3M mostra um exemplo de troca de dados de TTP para não- TTP no canal de invocação de serviço mostrado na Fig. 3K de acordo com algumas modalidades da presente divulgação. Conforme mostrado na Fig. 3M, uma invocação iniciada pelo serviço A de TTP 3951 será encaminhada por um proxy de TTP HTTP 3952 e um proxy de Thrift 3953 para um balanceador de carga de TTP HTTP 3955. Para uma solicitação de HTTP, a invocação será encaminhada pelo proxy de HTTP 3952 para o balanceador de carga de HTTP 3955. Para uma solicitação de Thrift, a invocação será encaminhada pelo proxy de Thrift 3953 para o balanceador de carga de HTTP 3955.[0161] Fig. 3M shows an example of TTP to non-TTP data exchange on the service invocation channel shown in Fig. 3K in accordance with some embodiments of the present disclosure. As shown in Fig. 3M, an invocation initiated by TTP service A 3951 will be forwarded by a TTP HTTP proxy 3952 and a Thrift proxy 3953 to a TTP HTTP load balancer 3955. For an HTTP request, the invocation will be forwarded by the HTTP proxy 3952 to the HTTP load balancer 3955. For a Thrift request, the invocation will be forwarded by the Thrift proxy 3953 to the HTTP load balancer 3955.

[0162] Para uma solicitação ilegal, um erro será retornado. Para uma resposta que não passe na checagem de conformidade, um erro será retornado. Para a invocação de Thrift RPC, a solicitação será empacotada por HTTP para gerar uma nova resposta de HTTP. O corpo da nova resposta de HTTP é um arquivo binário de Thrift.[0162] For an illegal request, an error will be returned. For a response that fails the compliance check, an error will be returned. For Thrift RPC invocation, the request will be HTTP-wrapped to generate a new HTTP response. The body of the new HTTP response is a Thrift binary file.

[0163] O balanceador de carga de HTTP 3955 do TTP encaminha solicitações para proxy de HTTP não-TTP (isto é, ROW) 3957 e um proxy de Thrift 3958, respectivamente. Em seguida, o proxy de HTTP 3957 e o proxy de Thrift 3958 encaminham solicitações para o serviço B 39598 e o serviço C 3960 do ROW.[0163] The TTP HTTP load balancer 3955 forwards requests to non-TTP HTTP proxy (i.e., ROW) 3957 and a Thrift proxy 3958, respectively. Then, the HTTP proxy 3957 and the Thrift proxy 3958 forward requests to the ROW's B service 39598 and C service 3960.

[0164] Para uma invocação de Thrift rpc, o proxy de Thrift restaura uma solicitação de Thrift original a partir da nova solicitação de HTTP gerada antes de enviar a solicitação.[0164] For a Thrift rpc invocation, the Thrift proxy restores an original Thrift request from the new HTTP request generated before sending the request.

[0165] O proxy de HTTP não-TTP 3957 e o proxy de Thrift 3958 enviam respostas ao balanceador de carga de TTP HTTP 3955. Para a invocação de Thrift RPC, a resposta de Thrift será empacotada por HTTP para gerar uma nova resposta de HTTP. O corpo da nova resposta de HTTP é um arquivo binário de Thrift.[0165] The non-TTP HTTP proxy 3957 and the Thrift proxy 3958 send responses to the HTTP TTP load balancer 3955. For the Thrift RPC invocation, the Thrift response will be HTTP-marshalled to generate a new HTTP response. The body of the new HTTP response is a Thrift binary file.

Subsistema de Sandbox de SegurançaSecurity Sandbox Subsystem

[0166] Uma aplicação cliente precisa se comunicar com um servidor para transmitir dados. Os dados de tráfego da aplicação cliente podem transmitir uma grande quantidade de dados de usuário. Portanto, há a necessidade de um método que possa gerenciar os dados de tráfego da aplicação cliente, de modo que os dados de usuário não sejam transmitidos para um servidor não aprovado via os dados de tráfego da aplicação cliente. Por exemplo, no cenário de proteção da soberania de dados, o método pode prevenir que os dados de usuário sejam transmitidos a um servidor em um país sem soberania de dados.[0166] A client application needs to communicate with a server to transmit data. The client application's traffic data may transmit a large amount of user data. Therefore, there is a need for a method that can manage the client application's traffic data so that user data is not transmitted to an unauthorized server via the client application's traffic data. For example, in the data sovereignty protection scenario, the method can prevent user data from being transmitted to a server in a country without data sovereignty.

[0167] No entanto, existem grandes variedades de tipos de dados de tráfego de aplicações clientes. As aplicações clientes podem compreender aplicações móveis e aplicações de computador (PC). Os dados de tráfego da aplicação cliente podem compreender dados de tráfego do tipo nativo e dados de tráfego do tipo WebView, etc. Além disso, nem todos os dados de tráfego da aplicação cliente estão sob o gerenciamento e controle do proprietário da aplicação. Por exemplo, os dados de tráfego da aplicação cliente podem compreender dados de tráfego de um anunciante terceiro. Portanto, é muito difícil gerenciar vários tipos de dados de tráfego para aplicações clientes.[0167] However, there are wide varieties of client application traffic data types. Client applications can include mobile applications and desktop (PC) applications. Client application traffic data can include native traffic data and WebView traffic data, etc. Furthermore, not all client application traffic data is under the management and control of the application owner. For example, client application traffic data may include traffic data from a third-party advertiser. Therefore, it is very difficult to manage multiple types of traffic data for client applications.

[0168] Uma modalidade de exemplo da presente divulgação propõe um método para gerenciar dados de tráfego de uma aplicação cliente. O método compreende: detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor; analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base em tipos dos dados de tráfego; e de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego a um servidor em conformidade com a contenção de troca de dados.[0168] An example embodiment of the present disclosure proposes a method for managing traffic data of a client application. The method comprises: detecting a transmission of user data of a target user from the client application to a server; analyzing the traffic data of the transmission at different layers of the transmission based on types of the traffic data; and according to a determination that the analysis indicates that the traffic data satisfies a data exchange contention corresponding to the target user, transmitting the traffic data to a server in compliance with the data exchange contention.

[0169] Desta maneira, ao analisar os dados de tráfego em diferentes níveis de transmissão com base no tipo de dados de tráfego e limitar a transmissão de dados de tráfego que não atendem às contenções de troca de dados, é possível prevenir efetivamente que dados de usuário sejam transmitidos para um servidor não aprovado via vários tipos de dados de tráfego.[0169] In this way, by analyzing traffic data at different transmission levels based on the traffic data type and limiting the transmission of traffic data that does not meet the data exchange contentions, it is possible to effectively prevent user data from being transmitted to an unapproved server via various traffic data types.

[0170] Uma descrição detalhada é apresentada abaixo para ilustrar as modalidades da presente divulgação com referência aos desenhos anexos. Uma aplicação móvel será usada como exemplo para ilustrar a solução da presente divulgação.[0170] A detailed description is presented below to illustrate embodiments of the present disclosure with reference to the accompanying drawings. A mobile application will be used as an example to illustrate the solution of the present disclosure.

[0171] A Fig. 4A mostra um fluxograma de um método exemplar 4100 para gerenciar dados de tráfego de uma aplicação móvel de acordo com algumas modalidades da presente divulgação. O método 4100 pode ser implementado no subsistema de sandbox de segurança 1090 da Fig. 1. A aplicação móvel pode ser a aplicação alvo 1080 na extremidade móvel.[0171] Fig. 4A shows a flowchart of an exemplary method 4100 for managing traffic data of a mobile application in accordance with some embodiments of the present disclosure. The method 4100 may be implemented in the security sandbox subsystem 1090 of Fig. 1. The mobile application may be the target application 1080 on the mobile end.

[0172] No bloco 4102, é detectada uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor. Em outras palavras, se for determinado que um usuário atual é o usuário alvo, então o subsistema de sandbox de segurança 1090 pode detectar a transmissão de dados de usuário do usuário alvo.[0172] In block 4102, a transmission of user data of a target user from the client application to a server is detected. In other words, if it is determined that a current user is the target user, then the security sandbox subsystem 1090 may detect the transmission of user data of the target user.

[0173] Em algumas implementações, os dados de tráfego podem ser roteados para o subsistema de sandbox de segurança 1090 com base na determinação do usuário alvo, de modo que o subsistema de sandbox de segurança 1090 possa detectar e analisar dados de tráfego correspondentes à transmissão dos dados de usuário. O subsistema de sandbox de segurança 1090 pode analisar uma solicitação de rede da aplicação alvo 1080 e limitar uma solicitação de rede que não atenda a uma condição com base em uma contenção de troca de dados.[0173] In some implementations, traffic data may be routed to the security sandbox subsystem 1090 based on the determination of the target user, such that the security sandbox subsystem 1090 may detect and analyze traffic data corresponding to the transmission of the user data. The security sandbox subsystem 1090 may analyze a network request from the target application 1080 and limit a network request that does not meet a condition based on a data exchange contention.

[0174] A contenção de troca de dados pode compreender uma contenção de troca sobre a soberania de dados, por exemplo, regras de proteção de soberania de dados. As regras de proteção de soberania de dados podem ser determinadas de acordo com regulamentações de vários países ou regiões. As regras de proteção da soberania de dados também podem ser determinadas pelos operadores de aplicações (por exemplo, relacionadas a protocolos de uso de dados de usuários).[0174] Data exchange containment may comprise exchange containment over data sovereignty, for example, data sovereignty protection rules. Data sovereignty protection rules may be determined in accordance with regulations of various countries or regions. Data sovereignty protection rules may also be determined by application operators (e.g., related to user data usage protocols).

[0175] As regras de proteção da soberania dos dados podem ser estabelecidas com base em um cenário específico. Por exemplo, as regras de proteção de soberania de dados podem especificar que os dados de usuário de um país com soberania de dados não tem permissão para ser transmitidos a qualquer servidor fora do país com soberania de dados. Em outras implementações, as regras de proteção de soberania de dados podem especificar que os dados privados de usuários de um país com soberania de dados não tem permissão para serem transmitidos para qualquer servidor não registrado. O escopo da presente divulgação não se limita a este respeito.[0175] Data sovereignty protection rules may be established based on a specific scenario. For example, data sovereignty protection rules may specify that user data from a data sovereign country is not permitted to be transmitted to any server outside the data sovereign country. In other implementations, data sovereignty protection rules may specify that private data of users from a data sovereign country is not permitted to be transmitted to any unregistered server. The scope of this disclosure is not limited in this regard.

[0176] Conforme mostrado na Fig. 1, a solicitação de rede da aplicação alvo 1080 é transmitida ao subsistema de firewall de aplicação 1020 após ser analisada e processada pelo subsistema de sandbox de segurança 1090. Os princípios e detalhes do subsistema de sandbox de segurança 1090 serão descritos em detalhes abaixo.[0176] As shown in Fig. 1, the network request from the target application 1080 is transmitted to the application firewall subsystem 1020 after being analyzed and processed by the security sandbox subsystem 1090. The principles and details of the security sandbox subsystem 1090 will be described in detail below.

[0177] O usuário alvo se refere a um usuário para o qual a transmissão de dados do usuário precisa ser detectada e gerenciada. O usuário alvo pode ser um usuário com nacionalidade de um país com soberania de dados. Alternativamente, ou além disso, o usuário alvo também pode ser um usuário determinado de acordo com regras específicas de proteção da soberania de dados. Por exemplo, o usuário alvo pode ser um usuário que tenha a nacionalidade de um país com soberania de dados e esteja localizado geograficamente atualmente no país com soberania de dados.[0177] The target user refers to a user for whom the transmission of user data needs to be detected and managed. The target user may be a user who is a national of a data sovereignty country. Alternatively, or in addition, the target user may also be a user determined in accordance with specific data sovereignty protection rules. For example, the target user may be a user who is a national of a data sovereignty country and is currently geographically located in the data sovereignty country.

[0178] Em algumas implementações, o usuário alvo pode ser determinado com base nas informações de usuário. As informações de usuário podem compreender informações de conta do usuário, informações pessoais, informações de registro, etc. Alternativamente, ou além disso, o usuário alvo pode ser determinado com base nas informações de dispositivo. As informações de dispositivo podem compreender informações de módulo de identidade de assinante (SIM), um endereço IP, informações de provedor de serviços de rede, ajustes de sistema de um dispositivo, ajustes de aplicação, etc.[0178] In some implementations, the target user may be determined based on user information. The user information may comprise user account information, personal information, registration information, etc. Alternatively, or in addition, the target user may be determined based on device information. The device information may comprise subscriber identity module (SIM) information, an IP address, network service provider information, a device's system settings, application settings, etc.

[0179] Em algumas implementações, o usuário alvo pode ser determinado com base em combinações de uma pluralidade de tipos de informações. A pluralidade de tipos de informações pode ter prioridades diferentes. Por exemplo, a prioridade das informações de SIM e das informações de provedor de serviços de rede pode ser mais alta do que a do endereço de IP, dos ajustes de sistema de um dispositivo, dos ajustes de aplicação, etc.[0179] In some implementations, the target user may be determined based on combinations of a plurality of information types. The plurality of information types may have different priorities. For example, the priority of SIM information and network service provider information may be higher than that of the IP address, a device's system settings, application settings, etc.

[0180] Em algumas implementações, a determinação do usuário alvo pode ser com base em uma região onde o usuário alvo está localizado. A região onde o usuário alvo está localizado pode ser determinada usando as informações de usuário ou informações de dispositivo acima para determinar o usuário alvo. Por exemplo, a região onde o usuário está localizado atualmente pode ser determinada usando o ajuste de região no ajuste de sistema de um smartphone e, assim, pode ser determinada se o usuário atual for o usuário alvo. Para outro exemplo, a região onde o usuário alvo está localizado pode ser determinada usando o código de país no cartão SIM e, assim, o usuário alvo pode ser determinado.[0180] In some implementations, determining the target user may be based on a region where the target user is located. The region where the target user is located may be determined using the above user information or device information to determine the target user. For example, the region where the user is currently located may be determined using the region setting in the system setting of a smartphone, and thus it may be determined whether the current user is the target user. For another example, the region where the target user is located may be determined using the country code on the SIM card, and thus the target user may be determined.

[0181] Em algumas implementações, o usuário alvo pode ser determinado quando a aplicação for iniciada pela primeira vez. Em outras palavras, pode ser determinado se o usuário atual é o usuário alvo quando a aplicação for iniciada pela primeira vez. Alternativamente, ou além disso, pode ser determinado se o usuário atual é o usuário alvo durante o registro de usuário. Alternativamente, ou além disso, pode ser determinado se o usuário atual é o usuário alvo quando o usuário efetua login, efetua log out ou troca de conta.[0181] In some implementations, the target user may be determined when the application is first started. In other words, it may be determined whether the current user is the target user when the application is first started. Alternatively, or in addition, it may be determined whether the current user is the target user during user registration. Alternatively, or in addition, it may be determined whether the current user is the target user when the user logs in, logs out, or switches accounts.

[0182] Em algumas implementações, um resultado da determinação pode ser armazenado localmente ou em um servidor. O resultado pode ser determinado após o usuário ser determinado como o usuário alvo pela primeira vez, e pode ser estabelecido que o resultado armazenado seja usado dentro de um período de tempo limiar. Assim, quando o usuário efetuar login posteriormente, o usuário não precisará ser determinado novamente.[0182] In some implementations, a determination result may be stored locally or on a server. The result may be determined after the user is determined as the target user for the first time, and the stored result may be established to be used within a threshold time period. Thus, when the user later logs in, the user does not need to be determined again.

[0183] No bloco 4104, os dados de tráfego da transmissão são analisados em diferentes camadas da transmissão com base nos tipos dos dados de tráfego.[0183] In block 4104, the traffic data of the transmission is analyzed into different layers of the transmission based on the types of the traffic data.

[0184] Os dados de tráfego na aplicação alvo 1080 podem compreender uma pluralidade de tipos de dados de tráfego, tais como dados de tráfego de tipos nativo, WebView e kits de desenvolvimento de software (SDK) de terceiros. Os dados de tráfego do tipo nativo são gerados e processados pelo código de sistema operacional (por exemplo, Android e IOS) na camada de negócios. Os dados de tráfego do tipo nativo podem ser completamente controlados pelo proprietário da aplicação alvo 1080.[0184] Traffic data in the target application 1080 may comprise a plurality of traffic data types, such as native, WebView, and third-party software development kit (SDK) traffic data. Native-type traffic data is generated and processed by operating system code (e.g., Android and iOS) in the business layer. Native-type traffic data may be completely controlled by the owner of the target application 1080.

[0185] Os dados de tráfego do tipo SDK de terceiros são gerados e processados pelo SDK de terceiros. Normalmente, o SDK de terceiros pode acessar a aplicação alvo 1080 para realizar a função de login ou compartilhamento. Os dados de tráfego do tipo SDK de terceiros são gerados e processados por SDKs de terceiros. Deve-se entender que os dados de tráfego do tipo SDK de terceiros geralmente não são completamente controlados pelo proprietário da aplicação.[0185] Third-party SDK traffic data is generated and processed by the third-party SDK. Typically, the third-party SDK may access the target application 1080 to perform login or sharing functions. Third-party SDK traffic data is generated and processed by third-party SDKs. It should be understood that third-party SDK traffic data is generally not completely controlled by the application owner.

[0186] Os dados de tráfego do tipo WebView podem compreender dados de tráfego controlados pelo proprietário da aplicação, por exemplo, dados de tráfego gerados pelo navegador integrado da aplicação ao invocar o código da aplicação nativa. Os dados de tráfego do tipo WebView podem compreender adicionalmente dados de tráfego controlados por terceiros, por exemplo, dados de tráfego gerados e controlados por anunciantes terceiros.[0186] WebView traffic data may comprise traffic data controlled by the application owner, e.g., traffic data generated by the application's built-in browser when invoking native application code. WebView traffic data may additionally comprise traffic data controlled by third parties, e.g., traffic data generated and controlled by third-party advertisers.

[0187] Com base no tipo de dados de tráfego, o subsistema de sandbox de segurança 1090 pode adotar uma respectiva política de análise para gerenciar melhor a transmissão de dados de usuário na aplicação.[0187] Based on the type of traffic data, the security sandbox subsystem 1090 may adopt a respective analysis policy to better manage the transmission of user data within the application.

[0188] No bloco 4106, de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, os dados de tráfego são transmitidos a um servidor em conformidade com a contenção de troca de dados. Diferentes contenções de troca de dados podem ser estabelecidas para diferentes usuários alvo. Por exemplo, podem ser estabelecidas contenções de troca de dados mais rigorosas para usuários alvo com níveis de sensibilidade mais altos. A contenção de troca de dados pode limitar quais dados de usuário podem ser transmitidos para quais servidores. Em algumas implementações, uma contenção de troca de dados correspondente ao usuário alvo pode ser determinada com base nas informações de usuário do usuário alvo ou nas informações de dispositivo correspondentes.[0188] At block 4106, pursuant to a determination that analysis indicates that the traffic data satisfies a data exchange containment corresponding to the target user, the traffic data is transmitted to a server in compliance with the data exchange containment. Different data exchange containments may be established for different target users. For example, more stringent data exchange containments may be established for target users with higher sensitivity levels. Data exchange containment may limit which user data may be transmitted to which servers. In some implementations, a data exchange containment corresponding to the target user may be determined based on the target user's user information or corresponding device information.

[0189] Em algumas implementações, o subsistema de sandbox de segurança 1090 pode compreender uma pluralidade de submódulos para diferentes tipos de dados de tráfego, tais como um submódulo para gerenciar dados de tráfego do tipo nativo, um submódulo para gerenciar dados de tráfego do tipo WebView e um submódulo para gerenciar dados de tráfego do tipo SDK de terceiros. Estes submódulos podem analisar os respectivos tipos de dados de tráfego e restringir ou interceptar dados de tráfego que não atendam à contenção de troca de dados. Detalhes do gerenciamento de diferentes tipos de dados de tráfego serão descritos com referência às Figs. 4B a 4E.[0189] In some implementations, the security sandbox subsystem 1090 may comprise a plurality of submodules for different types of traffic data, such as a submodule for managing native-type traffic data, a submodule for managing WebView-type traffic data, and a submodule for managing third-party SDK-type traffic data. These submodules may analyze the respective types of traffic data and restrict or intercept traffic data that does not meet the data exchange containment. Details of the management of different types of traffic data will be described with reference to Figs. 4B-4E.

[0190] A Fig. 4B mostra uma vista esquemática de um processo de análise e restrição 4200 para dados de tráfego de tipo nativo de acordo com algumas modalidades da presente divulgação. A Fig. 4B mostra um submódulo 4210 para analisar e restringir dados de tráfego do tipo nativo. O submódulo 4210 faz parte do subsistema de sandbox de segurança 1090 e também pode ser uma implementação específica do subsistema de sandbox de segurança 1090.[0190] Fig. 4B shows a schematic view of an analysis and restriction process 4200 for native-type traffic data in accordance with some embodiments of the present disclosure. Fig. 4B shows a submodule 4210 for analyzing and restricting native-type traffic data. Submodule 4210 is part of security sandbox subsystem 1090 and may also be a specific implementation of security sandbox subsystem 1090.

[0191] Conforme mostrado na Fig. 4B, uma camada de lógica de negócios 4220 emite uma solicitação de rede para um OS 4230 subjacente. A camada de lógica de negócios 4220 pode ser uma implementação específica da lógica de negócios de aplicação 1100 mostrada na Fig. 1 em termos de transmissão. O submódulo 4210 pode ser usado como um interceptador para analisar e restringir a solicitação de rede na camada de rede. O submódulo 4210 pode restringir a solicitação de rede ao analisar pontos finais, um parâmetro ou esquema da solicitação de rede. Por exemplo, pode determinar se deve restringir a solicitação de rede dependendo se o esquema foi registrado. Alternativamente, ou além disso, pode determinar se deve restringir a solicitação de rede dependendo se o campo solicitado na solicitação de rede envolve informações sensíveis.[0191] As shown in Fig. 4B, a business logic layer 4220 issues a network request to an underlying OS 4230. The business logic layer 4220 may be a specific implementation of the application business logic 1100 shown in Fig. 1 in terms of transmission. The submodule 4210 may be used as an interceptor to analyze and restrict the network request at the network layer. The submodule 4210 may restrict the network request by analyzing endpoints, a parameter, or schema of the network request. For example, it may determine whether to restrict the network request depending on whether the schema has been registered. Alternatively, or in addition, it may determine whether to restrict the network request depending on whether the requested field in the network request involves sensitive information.

[0192] Em algumas implementações, o submódulo 4210 pode compreender um interceptador para Android e um interceptador para IOS. Além disso, o submódulo 4210 também pode compreender um interceptador para C++. Desta maneira, ao analisar e restringir a solicitação de rede na camada de rede, pode ser melhor avaliado se a solicitação de rede deve ser restringida, com base nas informações de protocolo da solicitação de rede.[0192] In some implementations, submodule 4210 may comprise an interceptor for Android and an interceptor for iOS. In addition, submodule 4210 may also comprise an interceptor for C++. In this way, by analyzing and restricting the network request at the network layer, it may be better evaluated whether the network request should be restricted, based on the protocol information of the network request.

[0193] A Fig. 4C mostra uma vista esquemática de um processo de análise e restrição 4300 para dados de tráfego do tipo WebView de acordo com algumas modalidades da presente divulgação. A Fig. 4C mostra um submódulo 4310 para analisar e restringir dados de tráfego do tipo WebView. O submódulo 4310 pode fazer parte do subsistema de sandbox de segurança 1090 e também pode ser uma implementação específica do subsistema de sandbox de segurança 1090.[0193] Fig. 4C shows a schematic view of an analysis and restriction process 4300 for WebView-type traffic data in accordance with some embodiments of the present disclosure. Fig. 4C shows a submodule 4310 for analyzing and restricting WebView-type traffic data. Submodule 4310 may be part of security sandbox subsystem 1090 and may also be a specific implementation of security sandbox subsystem 1090.

[0194] O submódulo 4310 pode transferir dados de tráfego do tipo WebView para uma interface de rede nativa, de modo que os dados de tráfego do tipo WebView possam ser analisados e restringidos pelo submódulo 4210 para dados de tráfego do tipo nativo. Em algumas implementações, o submódulo 4310 pode usar um mecanismo de gancho de JavaScript (JS) para transferir dados de tráfego do tipo WebView para a interface de rede nativa.[0194] Submodule 4310 may transfer WebView-type traffic data to a native network interface, such that WebView-type traffic data may be parsed and restricted by submodule 4210 to native-type traffic data. In some implementations, submodule 4310 may use a JavaScript (JS) hook mechanism to transfer WebView-type traffic data to the native network interface.

[0195] Conforme mostrado na Fig. 4C, o submódulo 4310 pode compreender um iniciador 4311, um interceptador de URL de navegação 4312 e um interceptador de solicitação interno 4313. O submódulo 4310 pode se comunicar com um navegador integrado 4320 da aplicação, de modo que os dados de tráfego do tipo WebView possam ser gerenciados e detectados pelo submódulo 4310. O iniciador 4311 pode desempenhar injeção de JS quando o navegador integrado 4320 da aplicação for aberto (criado), de modo que os dados de tráfego do tipo WebView possam ser transferidos para a interface de rede nativa usando o mecanismo de gancho. Os dados de tráfego transferidos para a interface de rede nativa podem ser tomados por um módulo de rede nativo.[0195] As shown in Fig. 4C, submodule 4310 may comprise an initiator 4311, a navigation URL interceptor 4312, and an internal request interceptor 4313. Submodule 4310 may communicate with an integrated browser 4320 of the application, so that WebView-type traffic data may be managed and detected by submodule 4310. Initiator 4311 may perform JS injection when the integrated browser 4320 of the application is opened (created), so that WebView-type traffic data may be transferred to the native network interface using the hook mechanism. The traffic data transferred to the native network interface may be taken by a native network module.

[0196] Em algumas implementações, os dados de tráfego podem ser transferidos usando a técnica de gancho de JS da seguinte maneira.[0196] In some implementations, traffic data may be transferred using the JS hook technique as follows.

[0197] O interceptador de URL de navegação 4312 pode analisar e restringir a URL de uma página principal (página inicial). Por exemplo, o interceptador de URL de navegação 4312 pode determinar se deve restringir a solicitação de rede dependendo se o esquema baseado em URL foi registrado. Se a solicitação de rede não for restringida, então o navegador 4320 poderá carregar a página principal.[0197] Navigation URL interceptor 4312 may analyze and restrict the URL of a main page (home page). For example, navigation URL interceptor 4312 may determine whether to restrict the network request depending on whether the URL-based scheme has been registered. If the network request is not restricted, then browser 4320 may load the main page.

[0198] O interceptador de solicitação interna 4313 pode transferir dados de tráfego relacionados a recursos estáticos e dinâmicos da página principal à interface de rede nativa, de modo que estes dados de tráfego possam ser restringidos e analisados pelo submódulo 4210 na camada de rede. O processo de análise e restrição específico é similar aos dados de tráfego do tipo nativo e não é detalhado aqui.[0198] The internal request interceptor 4313 may transfer traffic data related to static and dynamic resources from the main page to the native network interface, so that this traffic data may be restricted and analyzed by the submodule 4210 at the network layer. The specific analysis and restriction process is similar to native-type traffic data and is not detailed here.

[0199] Em algumas implementações, o submódulo 4310 pode adotar diferentes políticas de análise e restrição para dados de tráfego do tipo WebView controlados pelo proprietário da aplicação e dados de tráfego do tipo WebView controlados por terceiros. Por exemplo, para dados de tráfego do tipo WebView controlados por terceiros, apenas pode ser determinado usando o interceptador de URL de navegação 4312 se o URL da página principal foi registrado, sem analisar adicionalmente os recursos estáticos e dinâmicos da página principal.[0199] In some implementations, submodule 4310 may adopt different analysis and restriction policies for application owner-controlled WebView traffic data and third-party controlled WebView traffic data. For example, for third-party controlled WebView traffic data, it may only be determined using navigation URL interceptor 4312 whether the URL of the main page was recorded, without further analyzing the static and dynamic resources of the main page.

[0200] A Fig. 4D mostra uma vista esquemática de um processo de análise e restrição 4400 para dados de tráfego do tipo SDK de terceiros de acordo com algumas modalidades da presente divulgação. A Fig. 4D mostra um submódulo 4410 para analisar e restringir dados de tráfego do tipo SDK de terceiros. O submódulo 4410 pode fazer parte do subsistema de sandbox de segurança 1090 e também pode ser uma implementação específica do subsistema de sandbox de segurança 1090.[0200] Fig. 4D shows a schematic view of an analysis and restriction process 4400 for third-party SDK-type traffic data in accordance with some embodiments of the present disclosure. Fig. 4D shows a submodule 4410 for analyzing and restricting third-party SDK-type traffic data. Submodule 4410 may be part of security sandbox subsystem 1090 and may also be a specific implementation of security sandbox subsystem 1090.

[0201] O submódulo 4410 pode analisar e restringir dados de tráfego do tipo SDK de terceiros na camada de interface de programa de aplicação (API). O submódulo 4410 pode restringir dados de tráfego do tipo SDK de terceiros ao analisar na camada de API se os dados solicitados pela API do SDK de terceiros atendem às contenções de troca de dados.[0201] Submodule 4410 may analyze and restrict third-party SDK-type traffic data at the application program interface (API) layer. Submodule 4410 may restrict third-party SDK-type traffic data by analyzing at the API layer whether the data requested by the third-party SDK's API meets data exchange contentions.

[0202] Em algumas implementações, o submódulo 4410 pode empacotar a API solicitando dados de usuário no SDK de terceiros e adicionar lógica de julgamento com base nas contenções de troca de dados no pacote. Em outras palavras, o submódulo 4410 pode adicionar lógica de julgamento à API do SDK de terceiros para determinar se a API deve ser empacotada. Assim, a camada de lógica de negócios 4220 não invoca diretamente a API do SDK de terceiros, mas invoca a API empacotada à qual a lógica de julgamento foi adicionada.[0202] In some implementations, submodule 4410 may package the API requesting user data in the third-party SDK and add judgment logic based on data exchange contentions in the package. In other words, submodule 4410 may add judgment logic to the third-party SDK's API to determine whether the API should be packaged. Thus, business logic layer 4220 does not directly invoke the third-party SDK's API, but rather invokes the packaged API to which the judgment logic has been added.

[0203] Conforme mostrado na Fig. 4D, o submódulo 4410 pode compreender um módulo de empacotamento para cada SDK de terceiros, tal como um módulo de empacotamento 4412 para SDK 4411, um módulo de empacotamento 4414 para SDK 4413 e um módulo de empacotamento 4416 para SDK 4415. O módulo de empacotamento (por exemplo, módulo de empacotamento 4412) pode empacotar a API no SDK correspondente (por exemplo, SDK 4411) para gerar uma API empacotada correspondente. Em algumas implementações, o submódulo 4410 pode aumentar dinamicamente um módulo de empacotamento para empacotar uma API de um SDK de terceiros.[0203] As shown in Fig. 4D, submodule 4410 may comprise a packaging module for each third-party SDK, such as a packaging module 4412 for SDK 4411, a packaging module 4414 for SDK 4413, and a packaging module 4416 for SDK 4415. The packaging module (e.g., packaging module 4412) may package the API in the corresponding SDK (e.g., SDK 4411) to generate a corresponding packaged API. In some implementations, submodule 4410 may dynamically augment a packaging module to package an API from a third-party SDK.

[0204] Em algumas implementações, uma API de um SDK de terceiros pode ser empacotada da seguinte maneira. O módulo de empacotamento 4412 pode definir uma API que é exposta à camada de negócios e igual à API no SDK 4411. O módulo de empacotamento 4412 pode realizar a API e definir uma categoria de pacote do tipo de dados do SDK 4411.[0204] In some implementations, an API from a third-party SDK may be packaged as follows. Packaging module 4412 may define an API that is exposed to the business layer and equal to the API in SDK 4411. Packaging module 4412 may realize the API and define a package category of the SDK data type 4411.

[0205] A lógica de julgamento pode determinar, com base nas contenções de troca de dados, se a API empacotada do SDK de terceiros pode ser invocada. Em algumas implementações, a lógica de julgamento pode analisar se a API do SDK de terceiros pode ser invocada, com base em um nome do SDK, em um nome da API, em um nome de um parâmetro da API e assim por diante. Se o resultado da decisão for sim, então a API do SDK de terceiros poderá ser invocada e um valor será retornado à camada de negócios. Se o resultado do julgamento for negativo, então a API do SDK de terceiros não é invocada, isto é, os dados de tráfego relacionados à API são restringidos. Deve-se entender que a lógica de julgamento pode mudar com base em um cenário específico. Por exemplo, a lógica de julgamento pode estabelecer que os dados privados de um usuário não tenham permissão para ser enviados ao SDK de terceiros.[0205] The judgment logic may determine, based on data exchange constraints, whether the third-party SDK's packaged API can be invoked. In some implementations, the judgment logic may analyze whether the third-party SDK's API can be invoked based on an SDK name, an API name, an API parameter name, and so on. If the judgment result is yes, then the third-party SDK's API can be invoked and a value is returned to the business layer. If the judgment result is no, then the third-party SDK's API is not invoked; that is, traffic data related to the API is restricted. It should be understood that the judgment logic may change based on a specific scenario. For example, the judgment logic may determine that a user's private data is not allowed to be sent to the third-party SDK.

[0206] Desta maneira, através de análise e restrição na camada de API, o submódulo 4410 pode gerenciar e detectar em rede os dados de tráfego do tipo SDK de terceiros sem a necessidade de conhecer o código interno do SDK de terceiros.[0206] In this way, through analysis and restriction at the API layer, the submodule 4410 can manage and detect third-party SDK-type traffic data in the network without needing to know the internal code of the third-party SDK.

[0207] A Fig. 4E mostra um diagrama de blocos do subsistema de sandbox de segurança 1090 de acordo com algumas modalidades da presente divulgação. Conforme mostrado na Fig. 4E, o subsistema de sandbox de segurança 1090 compreende um módulo iniciador 4520. O módulo iniciador 4520 é configurado para iniciar uma detecção de uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor. O módulo iniciador 4520 pode ativar um módulo de gerenciamento para detectar, gerenciar, analisar e restringir dados de tráfego correspondentes à transmissão de dados de usuário.[0207] Fig. 4E shows a block diagram of the security sandbox subsystem 1090 according to some embodiments of the present disclosure. As shown in Fig. 4E, the security sandbox subsystem 1090 comprises an initiator module 4520. The initiator module 4520 is configured to initiate a detection of a transmission of user data of a target user from the client application to a server. The initiator module 4520 may activate a management module to detect, manage, analyze, and restrict traffic data corresponding to the transmission of user data.

[0208] O módulo de gerenciamento é configurado para analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base nos tipos de dados de tráfego; e transmitir os dados de tráfego a um servidor em conformidade com a contenção de troca de dados de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo.[0208] The management module is configured to analyze the transmission traffic data at different transmission layers based on the traffic data types; and transmit the traffic data to a server in compliance with data exchange contention according to a determination that the analysis indicates that the traffic data satisfies a data exchange contention corresponding to the target user.

[0209] Em algumas implementações, o módulo de gerenciamento pode compreender um submódulo (também referido como um primeiro módulo de gerenciamento) 4210, um submódulo (também referido como um segundo módulo de gerenciamento) 4310 e um submódulo (também referido como um terceiro módulo de gerenciamento) 4410. Os submódulos 4210, 4310 e 4410 podem analisar e restringir dados de tráfego da aplicação cliente.[0209] In some implementations, the management module may comprise a submodule (also referred to as a first management module) 4210, a submodule (also referred to as a second management module) 4310, and a submodule (also referred to as a third management module) 4410. Submodules 4210, 4310, and 4410 may analyze and restrict client application traffic data.

[0210] Em algumas implementações, o submódulo 4210 é configurado para analisar os dados de tráfego na camada de rede de acordo com a determinação de que os dados de tráfego são de um tipo nativo.[0210] In some implementations, submodule 4210 is configured to analyze traffic data at the network layer based on a determination that the traffic data is of a native type.

[0211] Em algumas implementações, o submódulo 4310 é configurado para, com base nos dados de tráfego serem do tipo WebView, transferir os dados de tráfego do tipo WebView para uma interface de rede da aplicação cliente a ser gerenciada por um módulo de rede nativo da aplicação cliente; e analisar os dados de tráfego transferidos na camada de rede.[0211] In some implementations, submodule 4310 is configured to, based on whether traffic data is of type WebView, transfer the WebView traffic data to a network interface of the client application to be managed by a native network module of the client application; and analyze the transferred traffic data at the network layer.

[0212] Em algumas implementações, a transferência de dados de tráfego do tipo WebView para a interface de rede da aplicação móvel compreende: usar um mecanismo de gancho de JavaScript para transferir os dados de tráfego do tipo WebView.[0212] In some implementations, transferring WebView traffic data to the mobile application's network interface comprises: using a JavaScript hook mechanism to transfer the WebView traffic data.

[0213] Em algumas implementações, o submódulo 4410 é configurado para analisar os dados de tráfego na camada de interface de programa de aplicação API com base nos dados de tráfego sendo do tipo SDK de terceiros.[0213] In some implementations, submodule 4410 is configured to analyze traffic data at the API application program interface layer based on the traffic data being of third-party SDK type.

[0214] Em algumas implementações, analisar os dados de tráfego na camada de API compreende: determinar o empacotamento de uma API ao adicionar lógica de julgamento com base na contenção de troca de dados à API do SDK de terceiros; e invocar a API empacotada para usar a lógica de julgamento para analisar os dados de tráfego.[0214] In some implementations, analyzing traffic data at the API layer comprises: determining the packaging of an API by adding judgment logic based on data exchange contention to the third-party SDK's API; and invoking the packaged API to use the judgment logic to analyze the traffic data.

[0215] Em algumas implementações, o módulo iniciador 4520 pode ativar os submódulos 4210, 4310 e 4410 com base na determinação do usuário alvo. Por exemplo, o módulo iniciador 4520 pode determinar durante o registro de usuário se um usuário atual é o usuário alvo. Se o resultado da determinação for sim, então o módulo iniciador 4520 pode ativar os submódulos 4210, 4310 e 4410. Para outro exemplo, o módulo iniciador 4520 pode obter o resultado de determinação de usuário localmente ou a partir de um servidor durante o login do usuário e determinar com base no resultado da determinação se os submódulos 4210, 4310 e 4410 devem ser ativados.[0215] In some implementations, initiator module 4520 may activate submodules 4210, 4310, and 4410 based on a target user determination. For example, initiator module 4520 may determine during user registration whether a current user is the target user. If the determination result is yes, then initiator module 4520 may activate submodules 4210, 4310, and 4410. For another example, initiator module 4520 may obtain the user determination result locally or from a server during user login and determine based on the determination result whether submodules 4210, 4310, and 4410 should be activated.

[0216] O subsistema de sandbox de segurança 1090 pode compreender adicionalmente um módulo de amostragem 4510 para amostragem de dados de tráfego. Em algumas implementações, o módulo de amostragem 4510 pode enviar ao módulo iniciador 4520 um sinal de amostragem para disparar o módulo iniciador 4520. O sinal de amostragem pode indicar uma taxa de amostragem na qual os dados de tráfego são amostrados.[0216] The security sandbox subsystem 1090 may further comprise a sampling module 4510 for sampling traffic data. In some implementations, the sampling module 4510 may send the initiator module 4520 a sampling signal to trigger the initiator module 4520. The sampling signal may indicate a sampling rate at which traffic data is sampled.

[0217] O módulo de amostragem 4510 pode amostrar o usuário alvo e diferentes tipos de dados de tráfego com base em contenções de troca de dados. Por exemplo, o módulo de amostragem 4510 pode amostrar diferentes tipos de dados de tráfego em diferentes taxas de amostragem. Com o módulo de amostragem 4510, não apenas uma porção de dados de tráfego pode ser analisada, mas também o overhead pode ser reduzido e a estabilidade de aplicação pode ser mantida.[0217] The sampling module 4510 may sample target user and different types of traffic data based on data exchange contentions. For example, the sampling module 4510 may sample different types of traffic data at different sampling rates. With the sampling module 4510, not only can a portion of traffic data be analyzed, but also overhead can be reduced and application stability can be maintained.

[0218] Deve-se entender que o subsistema de sandbox de segurança 1090 pode compreender adicionalmente outro módulo ou compreender apenas uma parte dos módulos mostrados na Fig. 4E. Por exemplo, quando a aplicação alvo 1080 é apenas uma aplicação nativa na extremidade móvel, o subsistema de sandbox de segurança 1090 pode não compreender o submódulo 4310 para dados de tráfego do tipo WebView. O escopo da presente divulgação não se limita a este respeito.[0218] It should be understood that the security sandbox subsystem 1090 may additionally comprise another module or comprise only a portion of the modules shown in Fig. 4E. For example, when the target application 1080 is only a native application on the mobile end, the security sandbox subsystem 1090 may not comprise the submodule 4310 for WebView-type traffic data. The scope of the present disclosure is not limited in this regard.

[0219] Em algumas implementações, com base no tipo de dados de tráfego, os dados de tráfego podem adicionalmente ser analisados e restringidos na camada de Soquete. Por exemplo, os dados de tráfego do tipo SDK de terceiros podem ser encaminhados na camada de Soquete, de modo que a solicitação de rede do tipo SDK de terceiros possa ser analisada diretamente. Alternativamente, ou além disso, os dados de tráfego do tipo nativo e os dados de tráfego do tipo WebView podem ser analisados e restringidos na camada de Soquete.[0219] In some implementations, based on the traffic data type, the traffic data may additionally be parsed and restricted at the Socket layer. For example, third-party SDK type traffic data may be forwarded at the Socket layer so that the third-party SDK type network request can be parsed directly. Alternatively, or in addition, native type traffic data and WebView type traffic data may be parsed and restricted at the Socket layer.

[0220] Em algumas implementações, pode ser construído um servidor local como um proxy na aplicação alvo 1080. As solicitações de rede encaminhadas pelo servidor local para servidores externos podem ser gerenciadas ao encaminhar as solicitações de rede da aplicação alvo 1080 ao servidor local e analisar e restringir os dados de tráfego no servidor local. Desta maneira, diferentes tipos de dados de tráfego podem ser analisados e restringidos levando em consideração as informações de protocolo para melhor gerenciar os dados de tráfego da aplicação que não serão transmitidos para servidores externos não autorizados.[0220] In some implementations, a local server may be built as a proxy in the target application 1080. Network requests forwarded by the local server to external servers may be managed by forwarding the network requests from the target application 1080 to the local server and analyzing and restricting the traffic data at the local server. In this manner, different types of traffic data may be analyzed and restricted taking into account protocol information to better manage the application's traffic data that will not be transmitted to unauthorized external servers.

[0221] Os princípios e detalhes da análise e restrição de diferentes tipos de dados de tráfego foram descritos em detalhes com referência às Figs. 4B a 4E. Deve-se entender que as regras de restrição, a lógica de julgamento e as contenções de troca de dados acima são meramente exemplificativas e não se destinam a limitar o escopo da presente divulgação. Por exemplo, diferentes regras de proteção de soberania de dados podem ser estabelecidas de acordo com leis e regulamentações de diferentes países. Além disso, dependendo da definição de uma camada de rede de computadores, os dados de tráfego podem ser analisados e restringidos em camadas próximas ou similares às camadas acima.[0221] The principles and details of analyzing and restricting different types of traffic data have been described in detail with reference to Figs. 4B-4E. It should be understood that the above restriction rules, judgment logic, and data exchange restraints are merely exemplary and are not intended to limit the scope of the present disclosure. For example, different data sovereignty protection rules may be established according to laws and regulations of different countries. Furthermore, depending on the definition of a computer network layer, traffic data may be analyzed and restricted at layers close to or similar to the layers above.

[0222] Além disso, na descrição acima, o subsistema de sandbox de segurança 1090 pode analisar e restringir diretamente os dados de tráfego na aplicação alvo 1080. Em outras palavras, apenas os dados de tráfego que não são restritos pelo subsistema de sandbox de segurança 1090 podem ser transmitidos. Alternativamente, ou além disso, o subsistema de sandbox de segurança 1090 pode não restringir diretamente os dados de tráfego, mas apenas prover um relatório de análise. Neste caso, uma cópia da solicitação de rede pode ser enviada ao sistema de sandbox de segurança 1090 enquanto a solicitação de rede é transmitida normalmente. O sistema sandbox de segurança 1090 pode analisar a cópia da solicitação de rede e prover um relatório de análise.[0222] Furthermore, in the above description, the security sandbox subsystem 1090 may directly analyze and restrict traffic data in the target application 1080. In other words, only traffic data that is not restricted by the security sandbox subsystem 1090 may be transmitted. Alternatively, or in addition, the security sandbox subsystem 1090 may not directly restrict traffic data, but merely provide an analysis report. In this case, a copy of the network request may be sent to the security sandbox system 1090 while the network request is transmitted normally. The security sandbox system 1090 may analyze the copy of the network request and provide an analysis report.

[0223] Em algumas implementações, em relação a múltiplos países com soberania de dados, uma pluralidade de subsistemas de sandbox de segurança 1090 pode ser estabelecida respectivamente para desempenhar o processamento para cada país com soberania de dados, respectivamente. Por exemplo, com base na determinação de uma região onde o usuário alvo está localizado, um subsistema de sandbox de segurança correspondente pode ser iniciado para analisar e restringir dados de tráfego, de modo que a transmissão de dados de usuário na aplicação se adeque às regras de proteção de soberania de dados do país correspondente.[0223] In some implementations, with respect to multiple data sovereignty countries, a plurality of security sandbox subsystems 1090 may be established respectively to perform processing for each data sovereignty country, respectively. For example, based on determining a region where the target user is located, a corresponding security sandbox subsystem may be initiated to analyze and restrict traffic data so that the transmission of user data in the application complies with the data sovereignty protection rules of the corresponding country.

Subsistema de Gerenciamento de RecomendaçãoRecommendation Management Subsystem

[0224] Conforme discutido acima, a aplicação alvo pode prover aos usuários várias recomendações de conteúdo através de um mecanismo de recomendação, tal como recomendação de conteúdo multimídia, recomendação de usuário, recomendação de mercadoria, etc. Em tais aplicações, a imparcialidade de políticas de recomendação se tornou o foco de gerenciamento em muitas regiões. Por exemplo, algumas aplicações podem usar mecanismos de recomendação para orientar os usuários a prestarem atenção a conteúdos específicos que não têm nada a ver com os hábitos do usuário e, portanto, tais mecanismos de recomendação podem não ser compatíveis.[0224] As discussed above, the target application may provide users with various content recommendations through a recommendation engine, such as multimedia content recommendation, user recommendation, product recommendation, etc. In such applications, the fairness of recommendation policies has become the focus of management in many regions. For example, some applications may use recommendation engines to guide users to pay attention to specific content that has nothing to do with the user's habits, and therefore, such recommendation engines may not be compatible.

[0225] Por um lado, algoritmos de recomendação comuns geralmente dependem de modelos de aprendizado de máquina para implementação. Por exemplo, a verificação de nível de código desempenhada pelo subsistema de computação de segurança 1060 pode ser incapaz de detectar efetivamente a imparcialidade dos algoritmos de recomendação. Por outro lado, o treinamento e atualização de modelos de recomendação são muitas vezes intimamente relacionados com dados reais dos usuários, e as pessoas não esperam expor os dados privados dos usuários durante o processo de inspeção, pois isto pode levar a riscos de conformidade de dados.[0225] On the one hand, common recommendation algorithms often rely on machine learning models for implementation. For example, code-level verification performed by the security computing subsystem 1060 may be unable to effectively detect the fairness of recommendation algorithms. On the other hand, the training and updating of recommendation models are often closely related to real user data, and people do not expect to expose users' private data during the inspection process, as this may lead to data compliance risks.

[0226] As modalidades da presente divulgação propõem adicionalmente uma solução para gerenciar uma política de recomendação. A Fig. 5 mostra um fluxograma de um processo 500 para gerenciar uma política de recomendação. O processo 500 pode ser desempenhado pelo subsistema de gerenciamento de recomendação 1050, por exemplo.[0226] Embodiments of the present disclosure further propose a solution for managing a recommendation policy. Fig. 5 shows a flowchart of a process 500 for managing a recommendation policy. Process 500 may be performed by recommendation management subsystem 1050, for example.

[0227] Conforme mostrado na Fig. 5, no bloco 502, o subsistema de gerenciamento de recomendação 1050 obtém um grupo de recursos de objeto associados a um grupo de objetos em uma aplicação alvo, em que o grupo de recursos de objeto é convertido com base em atributos do grupo de objetos, o grupo de objetos que não expressa diretamente os atributos do grupo de objetos.[0227] As shown in Fig. 5, at block 502, the recommendation management subsystem 1050 obtains a group of object features associated with a group of objects in a target application, wherein the group of object features is converted based on attributes of the group of objects, the group of objects not directly expressing attributes of the group of objects.

[0228] Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode obter o grupo de recursos de objeto via uma interface de programa de aplicação API provida pela aplicação alvo. Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode obter o grupo de recursos de objeto associados ao grupo de objetos na aplicação alvo 1080 a partir da plataforma de aplicação alvo 1030 via uma API dedicada.[0228] In some embodiments, the recommendation management subsystem 1050 may obtain the group of object resources via an application program interface API provided by the target application. In some embodiments, the recommendation management subsystem 1050 may obtain the group of object resources associated with the group of objects in the target application 1080 from the target application platform 1030 via a dedicated API.

[0229] Em algumas modalidades, o grupo de recursos de objeto pode ser convertido por um modelo de extração de recurso com base em atributos do grupo de objetos. Dessa maneira, a parte gerencial que recomenda a política ou outro terceiro não pode determinar as informações de atributos originais de objetos com base nos recursos de objeto. Portanto, a segurança de dados na aplicação alvo pode ser garantida.[0229] In some embodiments, the object feature group may be converted by a feature extraction model based on attributes of the object group. In this way, the management party recommending the policy or other third party cannot determine the original attribute information of objects based on the object features. Therefore, data security in the target application may be ensured.

[0230] No bloco 504, o subsistema de gerenciamento de recomendação 1050 extrai um primeiro recurso de objeto e um segundo recurso de objeto a partir do grupo de recursos de objeto, em que uma primeira diferença entre o primeiro recurso de objeto e o segundo recurso de objeto é menor que um primeiro limiar.[0230] At block 504, the recommendation management subsystem 1050 extracts a first object feature and a second object feature from the group of object features, wherein a first difference between the first object feature and the second object feature is less than a first threshold.

[0231] Em algumas modalidades, o grupo de recursos de objeto pode ser representado como uma pluralidade de vetores. Adicionalmente, o subsistema de gerenciamento de recomendação 1050 pode selecionar pelo menos um par de recursos de objeto cuja diferença é menor que o primeiro limiar a partir do grupo de recursos de objeto com base nas diferenças entre vetores.[0231] In some embodiments, the group of object features may be represented as a plurality of vectors. Additionally, the recommendation management subsystem 1050 may select at least one pair of object features whose difference is less than the first threshold from the group of object features based on the differences between vectors.

[0232] No bloco 506, o subsistema de gerenciamento de recomendação 1050 determina um primeiro resultado de recomendação correspondente ao primeiro recurso de objeto e um segundo resultado de recomendação correspondente ao segundo recurso de objeto com base em uma política de recomendação na aplicação alvo.[0232] In block 506, the recommendation management subsystem 1050 determines a first recommendation result corresponding to the first object resource and a second recommendation result corresponding to the second object resource based on a recommendation policy in the target application.

[0233] Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode prover o primeiro recurso de objeto a um modelo de recomendação associado à política de recomendação para determinar o primeiro resultado de recomendação e pode prover o segundo recurso de objeto ao modelo de recomendação para determinar o segundo resultado de recomendação.[0233] In some embodiments, the recommendation management subsystem 1050 may provide the first object resource to a recommendation model associated with the recommendation policy to determine the first recommendation outcome and may provide the second object resource to the recommendation model to determine the second recommendation outcome.

[0234] Em algumas modalidades, para garantir a segurança de uma política recomendada, o subsistema de gerenciamento de recomendação 1050 envia o primeiro recurso de objeto selecionado e o segundo recurso de objeto selecionado via a API provida pela aplicação alvo a um modelo de recomendação que opera remotamente para determinar o primeiro resultado de recomendação e o segundo resultado de recomendação. Por exemplo, o modelo de recomendação pode ser operado pelo mantenedor da aplicação alvo.[0234] In some embodiments, to ensure the security of a recommended policy, the recommendation management subsystem 1050 sends the first selected object resource and the second selected object resource via the API provided by the target application to a recommendation model that operates remotely to determine the first recommendation result and the second recommendation result. For example, the recommendation model may be operated by the maintainer of the target application.

[0235] Em algumas modalidades, o processo de geração do primeiro resultado de recomendação e do segundo resultado de recomendação não afetará o modelo de recomendação que é realmente implantado na aplicação alvo.[0235] In some embodiments, the process of generating the first recommendation result and the second recommendation result will not affect the recommendation model that is actually deployed in the target application.

[0236] Em algumas modalidades, o primeiro resultado de recomendação e o segundo resultado de recomendação podem ser representados como vetores emitidos pelo modelo de recomendação. Desse modo, o subsistema de gerenciamento de recomendação 1050 não pode interpretar diretamente a semântica do primeiro resultado de recomendação e do segundo resultado de recomendação, assim melhorando adicionalmente a segurança dos dados na aplicação alvo.[0236] In some embodiments, the first recommendation result and the second recommendation result may be represented as vectors output by the recommendation model. Thus, the recommendation management subsystem 1050 cannot directly interpret the semantics of the first recommendation result and the second recommendation result, thereby further improving data security in the target application.

[0237] No bloco 508, o subsistema de gerenciamento de recomendação 1050 avalia a política de recomendação com base no primeiro resultado de recomendação e no segundo resultado de recomendação.[0237] In block 508, the recommendation management subsystem 1050 evaluates the recommendation policy based on the first recommendation result and the second recommendation result.

[0238] Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode determinar uma segunda diferença entre o primeiro resultado de recomendação e o segundo resultado de recomendação e determinar a imparcialidade da política de recomendação com base na comparação entre a segunda diferença e um segundo limiar.[0238] In some embodiments, the recommendation management subsystem 1050 may determine a second difference between the first recommendation result and the second recommendation result and determine the fairness of the recommendation policy based on the comparison between the second difference and a second threshold.

[0239] Especificamente, para uma política de recomendação razoável, os resultados de recomendação devem ser similares para dois objetos similares. Portanto, se o subsistema de gerenciamento de recomendação 1050 determinar que a segunda diferença excede o segundo limiar, então poderá determinar que a política de recomendação tem pouca imparcialidade.[0239] Specifically, for a reasonable recommendation policy, the recommendation results should be similar for two similar objects. Therefore, if the recommendation management subsystem 1050 determines that the second difference exceeds the second threshold, then it may determine that the recommendation policy has poor fairness.

[0240] Ou o subsistema de gerenciamento de recomendação 1050 também pode determinar a imparcialidade da política de recomendação com base em uma proporção dos pares de recurso de objeto cuja segunda diferença excede o segundo limiar. Por exemplo, o subsistema de gerenciamento de recomendação 1050 pode amostrar aleatoriamente a pluralidade de grupos de recursos de objeto, e se a proporção dos pares de recurso de objeto cuja segunda diferença excede o segundo limiar exceder uma proporção de limiar, então este pode determinar que a política de recomendação tem pouca imparcialidade.[0240] Or the recommendation management subsystem 1050 may also determine the fairness of the recommendation policy based on a proportion of the object feature pairs whose second difference exceeds the second threshold. For example, the recommendation management subsystem 1050 may randomly sample the plurality of object feature groups, and if the proportion of the object feature pairs whose second difference exceeds the second threshold exceeds a threshold proportion, then it may determine that the recommendation policy has low fairness.

[0241] Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode determinar adicionalmente a imparcialidade da política de recomendação com base na correlação entre os recursos de objeto inseridos no modelo de recomendação e os resultados de recomendação históricos. Especificamente, o subsistema de gerenciamento de recomendação 1050 pode obter um terceiro recurso de objeto a partir da aplicação alvo e um resultado de recomendação histórico para o terceiro recurso de objeto. Adicionalmente, o subsistema de gerenciamento de recomendação 1050 determina a imparcialidade da política de recomendação com base na correlação entre o terceiro recurso de objeto e o resultado de recomendação histórico. Por exemplo, o subsistema de gerenciamento de recomendação 1050 pode determinar se o recurso de objeto coincide às informações de categoria do resultado de recomendação histórico.[0241] In some embodiments, the recommendation management subsystem 1050 may further determine the fairness of the recommendation policy based on the correlation between the object features inputted into the recommendation model and the historical recommendation results. Specifically, the recommendation management subsystem 1050 may obtain a third object feature from the target application and a historical recommendation result for the third object feature. Additionally, the recommendation management subsystem 1050 determines the fairness of the recommendation policy based on the correlation between the third object feature and the historical recommendation result. For example, the recommendation management subsystem 1050 may determine whether the object feature matches the category information of the historical recommendation result.

[0242] Em algumas modalidades, o subsistema de gerenciamento de recomendação 1050 pode determinar representações vetoriais correspondentes ao terceiro recurso de objeto e ao resultado de recomendação histórico e determinar a correlação entre o terceiro recurso de objeto e o resultado de recomendação histórico com base em uma diferença entre as duas representações vetoriais. Por exemplo, se a diferença de vetor entre um objeto e seu resultado de recomendação histórico for maior que um limiar, então o subsistema de gerenciamento de recomendação 1050 pode determinar que a política de recomendação tem pouca imparcialidade.[0242] In some embodiments, the recommendation management subsystem 1050 may determine vector representations corresponding to the third object feature and the historical recommendation result, and determine the correlation between the third object feature and the historical recommendation result based on a difference between the two vector representations. For example, if the vector difference between an object and its historical recommendation result is greater than a threshold, then the recommendation management subsystem 1050 may determine that the recommendation policy has low fairness.

[0243] Em algumas modalidades, conforme mencionado acima, o subsistema de computação de segurança 1060 pode checar adicionalmente o código fonte associado à política de recomendação. Especificamente, o subsistema de computação de segurança 1060 pode obter código fonte correspondente à política de recomendação e avaliar a política de recomendação com base no código fonte ou código intermediário correspondente ao código fonte.[0243] In some embodiments, as mentioned above, the security computing subsystem 1060 may further check the source code associated with the recommendation policy. Specifically, the security computing subsystem 1060 may obtain source code corresponding to the recommendation policy and evaluate the recommendation policy based on the source code or intermediate code corresponding to the source code.

[0244] Em algumas modalidades, a política de recomendação pode ser usada para recomendar pelo menos um conteúdo multimídia a um usuário na aplicação alvo 1080, por exemplo. Exemplos do conteúdo multimídia podem incluir: uma imagem, vídeo, música ou combinações dos mesmos, etc., por exemplo.[0244] In some embodiments, the recommendation policy may be used to recommend at least one multimedia content to a user in the target application 1080, for example. Examples of the multimedia content may include: an image, video, music, or combinations thereof, etc., for example.

Aparelho e Dispositivo ExemplaresExemplary Apparatus and Device

[0245] As modalidades da presente divulgação proveem adicionalmente um aparelho correspondente para desempenhar o método ou processo acima. A Fig. 6 mostra um diagrama de blocos esquemático de um aparelho 600 para tráfego de dados de uma aplicação cliente.[0245] Embodiments of the present disclosure further provide a corresponding apparatus for performing the above method or process. Fig. 6 shows a schematic block diagram of an apparatus 600 for data traffic of a client application.

[0246] Conforme retratado, o aparelho 600 compreende: uma unidade de detecção 610 configurada para detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor; uma unidade de análise 620 configurada para analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base em tipos de dados de tráfego; e uma unidade de transmissão 630 configurada para, de acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem uma contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados.[0246] As depicted, the apparatus 600 comprises: a detection unit 610 configured to detect a transmission of user data of a target user from the client application to a server; an analysis unit 620 configured to analyze the traffic data of the transmission at different layers of the transmission based on traffic data types; and a transmission unit 630 configured to, according to a determination that the analysis indicates that the traffic data satisfies a data exchange contention corresponding to the target user, transmit the traffic data to a server in compliance with the data exchange contention.

[0247] A Fig. 7 mostra um diagrama de blocos esquemático de um dispositivo exemplar 700 para implementar as modalidades da presente divulgação. Por exemplo, o sistema 100 e/ou sistema 400 de acordo com as modalidades da presente divulgação podem ser implementados pelo dispositivo 700. Conforme retratado, o dispositivo 700 compreende uma unidade central de processamento (CPU) 701, que pode executar várias ações e processamento adequados com base em instruções de programa de computador armazenadas em uma memória somente de leitura (ROM) 702 ou nas instruções de programa de computador carregadas em uma memória de acesso aleatório (RAM) 703 a partir de uma unidade de armazenamento 708. Na RAM 703, também estão armazenados vários programas e dados requeridos pela operação do dispositivo 700. A CPU 701, a ROM 702 e a RAM 703 estão conectadas entre si via um barramento 704. Uma interface de entrada/saída (I/O) 705 também é conectada ao barramento 704.[0247] Fig. 7 shows a schematic block diagram of an exemplary device 700 for implementing embodiments of the present disclosure. For example, system 100 and/or system 400 according to embodiments of the present disclosure may be implemented by device 700. As depicted, device 700 comprises a central processing unit (CPU) 701, which may perform various appropriate actions and processing based on computer program instructions stored in a read-only memory (ROM) 702 or on computer program instructions loaded into a random access memory (RAM) 703 from a storage unit 708. In RAM 703, various programs and data required by the operation of device 700 are also stored. CPU 701, ROM 702, and RAM 703 are connected to each other via a bus 704. An input/output (I/O) interface 705 is also connected to bus 704.

[0248] Uma pluralidade de componentes no dispositivo 700 é conectada à interface de I/O 705, incluindo: uma unidade de entrada 706, tais como um teclado, um mouse e afins; uma unidade de saída 707, tais como vários tipos de displays, um alto-falante e afins; uma unidade de armazenamento 708, tais como um disco, um disco óptico e afins; e uma unidade de comunicação 709, tais como um cartão de rede, um modem, um transceptor de comunicação sem fio e afins. A unidade de comunicação 709 permite que o dispositivo 700 troque informações/dados com outros dispositivos via a rede de computadores, tal como a Internet e/ou várias redes de telecomunicação.[0248] A plurality of components in device 700 are connected to I/O interface 705, including: an input unit 706, such as a keyboard, a mouse, and the like; an output unit 707, such as various types of displays, a speaker, and the like; a storage unit 708, such as a disk, an optical disk, and the like; and a communication unit 709, such as a network card, a modem, a wireless communication transceiver, and the like. Communication unit 709 enables device 700 to exchange information/data with other devices via the computer network, such as the Internet and/or various telecommunication networks.

[0249] Os procedimentos e processos descritos acima, tal como o processo 500, podem ser executados pela unidade de processamento 701. Por exemplo, em algumas modalidades, o processo 500 pode ser implementado como um programa de software de computador, que é incluído de maneira tangível em um meio legível por máquina, por exemplo, a unidade de armazenamento 708. Em algumas modalidades, o programa de computador pode ser parcial ou totalmente carregado e/ou montado no dispositivo 700 via a ROM 702 e/ou da unidade de comunicação 709. O programa de computador, quando carregado na RAM 703 e executado pela CPU 701, pode executar uma ou mais ações do processo 500 conforme descrito acima.[0249] The procedures and processes described above, such as process 500, may be executed by processing unit 701. For example, in some embodiments, process 500 may be implemented as a computer software program, which is tangibly included on a machine-readable medium, e.g., storage unit 708. In some embodiments, the computer program may be partially or fully loaded and/or mounted on device 700 via ROM 702 and/or communication unit 709. The computer program, when loaded into RAM 703 and executed by CPU 701, may perform one or more actions of process 500 as described above.

[0250] A presente divulgação pode ser um método, aparelho, sistema e/ou produto de programa de computador. O produto de programa de computador pode compreender um meio de armazenamento legível por computador no qual são carregadas as instruções de programa legíveis por computador para executar vários aspectos da presente divulgação.[0250] The present disclosure may be a method, apparatus, system, and/or computer program product. The computer program product may comprise a computer-readable storage medium onto which are loaded computer-readable program instructions for executing various aspects of the present disclosure.

[0251] O meio de armazenamento legível por computador pode ser um dispositivo tangível que pode manter e armazenar instruções utilizadas por um dispositivo de execução de instruções. O meio de armazenamento legível por computador pode ser, por exemplo, mas não limitado a, tal como um dispositivo de armazenamento eletrônico, um dispositivo de armazenamento magnético, um dispositivo de armazenamento óptico, um dispositivo de armazenamento eletromagnético, um dispositivo de armazenamento semicondutor ou qualquer combinação adequada dos anteriores. Exemplos mais concretos de meio de armazenamento legível por computador (lista não exaustiva) incluem: um disquete de computador portátil, um disco rígido, uma memória de acesso aleatório (RAM), uma memória somente de leitura (ROM), uma memória programável apagável somente de leitura (EPROM ou memória Flash), uma memória de acesso aleatório estática (SRAM), uma memória somente de leitura de disco compacto portátil (CD-ROM), um disco versátil digital (DVD), um stick de memória, um disquete, uma codificação mecânica dispositivo, tais como cartões perfurados armazenados com instruções nos mesmos ou uma projeção em um slot, e qualquer combinação adequada dos acima. O meio de armazenamento legível por computador, conforme usado na presente invenção, não deve ser interpretado como sinais transitórios por si só, tais como ondas de rádio ou outras ondas eletromagnéticas propagadas livremente, ondas eletromagnéticas propagadas através de um guia de ondas ou outros meios de transmissão (por exemplo, pulsos ópticos via cabos de fibra óptica) ou sinais elétricos transmitidos através de fios.[0251] The computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, such as an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More concrete examples of computer-readable storage medium (non-exhaustive list) include: a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as punched cards stored with instructions thereon or a projection in a slot, and any suitable combination of the foregoing. The computer-readable storage medium as used in the present invention should not be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated through a waveguide or other transmission media (e.g., optical pulses via fiber optic cables), or electrical signals transmitted through wires.

[0252] As instruções de programa legíveis por computador descritas na presente invenção podem sofrer download a partir do meio de armazenamento legível por computador para cada dispositivo de computação/processamento, ou para um computador externo ou dispositivo de armazenamento externo via uma rede, por exemplo, a Internet, uma rede de área local, uma rede geograficamente distribuída e/ou uma rede sem fio. A rede pode compreender cabos transmitidos de cobre, fibras de transmissão óptica, transmissão sem fio, roteadores, firewalls, comutadores, computadores de chave de rede e/ou servidores de borda. Um cartão adaptador de rede ou interface de rede em cada dispositivo de computação/processamento recebe instruções de programa legíveis por computador a partir da rede e encaminha as instruções de programa legíveis por computador para armazenamento no meio de armazenamento legível por computador de cada dispositivo de computação/processamento.[0252] The computer-readable program instructions described in the present invention may be downloaded from the computer-readable storage medium to each computing/processing device, or to an external computer or external storage device via a network, e.g., the Internet, a local area network, a geographically distributed network, and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, network key computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage on the computer-readable storage medium of each computing/processing device.

[0253] Instruções de programa legíveis por computador para realizar operações da presente divulgação podem ser instruções de montagem, instruções de arquitetura de conjunto de instruções (ISA), instruções de máquina, instruções dependentes de máquina, microcódigo, instruções de firmware, dados de ajuste de estado ou código fonte ou código objeto escrito em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada a objetos, tais como Java, Smalltalk, C++ ou afins, e linguagens de programação procedurais convencionais, tais como a linguagem de programação “C” ou linguagens de programação similares. As instruções de programa legíveis por computador podem ser executadas inteiramente no computador do usuário, parcialmente no computador do usuário, como um pacote de software stand-alone, parcialmente no computador do usuário e parcialmente em um computador remoto ou inteiramente no computador remoto ou servidor. No último cenário, o computador remoto pode ser conectado ao computador do usuário através de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede geograficamente distribuída (WAN), ou a conexão pode ser feita a um computador externo (por exemplo, através da Internet usando um Provedor de Serviços de Internet). Em algumas modalidades, o conjunto de circuitos eletrônicos incluindo, por exemplo, conjunto de circuitos lógicos programáveis, arranjos de portas programáveis em campo (FPGA) ou arranjos lógicos programáveis (PLA) podem executar as instruções de programa legíveis por computador utilizando informações de estado das instruções de programa legíveis por computador para personalizar os conjuntos de circuitos eletrônicos, a fim de desempenhar aspectos da presente divulgação.[0253] Computer-readable program instructions for performing operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-set data, or source code or object code written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or the like, and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a geographically distributed network (WAN), or the connection may be made to an external computer (e.g., over the Internet using an Internet Service Provider). In some embodiments, the electronic circuitry, including, for example, programmable logic circuitry, field programmable gate array (FPGA), or programmable logic array (PLA), may execute computer-readable program instructions using state information from the computer-readable program instructions to customize the electronic circuitry to perform aspects of the present disclosure.

[0254] Aspectos da presente divulgação são descritos na presente invenção com referência a ilustrações de fluxogramas e/ou diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programas de computador de acordo com modalidades da invenção. Deve-se entender que cada bloco das ilustrações de fluxogramas e/ou diagramas de blocos, e combinações de blocos nas ilustrações de fluxogramas e/ou diagramas de blocos, podem ser implementados por instruções de programa legíveis por computador.[0254] Aspects of the present disclosure are described in the present invention with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer-readable program instructions.

[0255] Essas instruções de programa legíveis por computador podem ser providas a um processador de um computador de propósito geral, computador de propósito especial ou outro aparelho de processamento de dados programáveis para produzir uma máquina, de modo que as instruções, que são executadas via processador do computador ou outro aparelho de processamento de dados programáveis, criem meios para implementar as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de blocos. Estas instruções de programa legíveis por computador também podem ser armazenadas em um meio de armazenamento legível por computador que pode direcionar um computador, um aparelho de processamento de dados programável e/ou outros dispositivos para funcionar de uma maneira particular, de modo que o meio de armazenamento legível por computador tendo as instruções armazenadas no mesmo compreende um artigo de fabricação incluindo instruções que implementam aspectos da função/ato especificado no fluxograma e/ou bloco ou blocos do diagrama de blocos.[0255] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which are executed via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block or blocks of the block diagram. These computer-readable program instructions may also be stored on a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions that implement aspects of the function/act specified in the flowchart and/or block or blocks of the block diagram.

[0256] As instruções de programa legíveis por computador também podem ser carregadas em um computador, outros aparelhos de processamento de dados programáveis ou em outros dispositivos para fazer com que uma série de etapas operacionais sejam desempenhadas no computador, em outros aparelhos programáveis ou em outros dispositivos para produzir um processo implementado por computador, de modo que as instruções que são executadas no computador, outros aparelhos programáveis ou outros dispositivos implementem as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de blocos.[0256] Computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process, such that the instructions that are executed on the computer, other programmable apparatus, or other devices implement the functions/acts specified in the flowchart and/or block or blocks of the block diagram.

[0257] Os fluxogramas e diagramas de blocos nas figuras ilustram a arquitetura, funcionalidade e operação de possíveis implementações de sistemas, métodos e produtos de programas de computador de acordo com várias modalidades da presente divulgação. Nesse sentido, cada bloco no fluxograma ou diagramas de blocos pode representar um módulo, segmento de programa ou porção de código, que compreende uma ou mais instruções executáveis para implementar as funções lógicas especificadas. Deve-se notar também que, em algumas implementações alternativas, as funções observadas no bloco podem ocorrer fora da ordem observada nos desenhos anexos. Por exemplo, dois blocos mostrados em sucessão podem, de fato, ser executados substancialmente simultaneamente ou os blocos podem, às vezes, ser executados na ordem inversa, dependendo da funcionalidade envolvida. Deve- se notar também que cada bloco dos diagramas de blocos e/ou ilustração de fluxograma, e combinações de blocos nos diagramas de blocos e/ou ilustração de fluxograma, podem ser implementados por sistemas baseados em hardware de propósito especial que desempenhem as funções ou ações especificadas, ou por combinações de hardware de propósito especial e instruções de computador.[0257] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of computer systems, methods, and program products in accordance with various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, program segment, or portion of code, comprising one or more executable instructions for implementing the specified logical functions. It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the accompanying drawings. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, may be implemented by systems based on special-purpose hardware that perform the specified functions or actions, or by combinations of special-purpose hardware and computer instructions.

[0258] As descrições das várias modalidades da presente divulgação foram apresentadas para propósitos de ilustração, mas não pretendem ser exaustivas ou limitadas às modalidades divulgadas. Muitas modificações e variações serão evidentes para os técnicos no assunto sem se afastar do escopo e espírito das modalidades descritas. A seleção dos termos usados na presente invenção foi escolhida para melhor explicar os princípios das modalidades, a aplicação prática ou melhorias técnicas em relação às tecnologias encontradas no mercado, ou para habilitar que outros técnicos no assunto entendam as modalidades divulgadas na presente invenção.[0258] The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The selection of terms used in the present invention has been chosen to better explain the principles of the embodiments, the practical application or technical improvements over commercially available technologies, or to enable others skilled in the art to understand the embodiments disclosed in the present invention.

Claims (20)

1. Método para gerenciar dados de tráfego de uma aplicação clientecaracterizado pelo fato de que compreende:detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor;analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base nos tipos de dados de tráfego, em que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo kit de desenvolvimento de software (SDK) de terceiros, analisar os dados de tráfego em uma camada de interface de programa de aplicação (API), em que analisar os dados de tráfego em uma camada de API compreende:determinar uma API de empacotamento ao adicionar uma lógica de decisão com base em uma contenção de troca de dados para uma API do SDK de terceiros; einvocar a API de empacotamento para analisar os dados de tráfego ao usar a lógica de decisão; ede acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem a contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados.1. A method for managing traffic data of a client application, comprising: detecting a transmission of user data of a target user from the client application to a server; analyzing the traffic data of the transmission at different layers of the transmission based on the types of traffic data, wherein analyzing the traffic data at different layers of the transmission comprises: according to a determination that the traffic data is of a third-party software development kit (SDK) type, analyzing the traffic data at an application program interface (API) layer, wherein analyzing the traffic data at an API layer comprises: determining a packaging API by adding decision logic based on a data exchange contention to an API of the third-party SDK; and invoking the packaging API to analyze the traffic data by using the decision logic; and according to a determination that the analysis indicates that the traffic data satisfies the data exchange contention corresponding to the target user, transmitting the traffic data to a server in compliance with the data exchange contention. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fatode que o usuário alvo é determinado com base em pelo menos um dentre:informações de usuário do usuário alvo; einformações de dispositivo correspondentes ao usuário alvo.2. The method of claim 1, wherein the target user is determined based on at least one of: user information of the target user; and device information corresponding to the target user. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fatode que:as informações de usuário compreendem: informações de conta de usuário, informações pessoais e/ou informações de registro; eas informações de dispositivo compreendem: informações de módulo de identidade de assinante, SIM, um endereço IP, informações de provedor de serviços de rede, ajustes de sistema de um dispositivo e/ou ajustes de aplicação.3. The method of claim 2, wherein: the user information comprises: user account information, personal information, and/or registration information; and the device information comprises: subscriber identity module information, SIM, an IP address, network service provider information, system settings of a device, and/or application settings. 4. Método, de acordo com a reivindicação 2, caracterizado pelo fatode que compreende adicionalmente:determinar a contenção de troca de dados correspondente ao usuário alvo com base nas informações de usuário do usuário alvo ou nas informações de dispositivo correspondente.4. The method of claim 2, further comprising: determining the data exchange contention corresponding to the target user based on the user information of the target user or the corresponding device information. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fatode que os tipos dos dados de tráfego compreendem pelo menos um dentre:um tipo nativo de dados de tráfego associado a uma aplicação nativa;um tipo WebView de dados de tráfego associados a um navegador integrado a uma aplicação; eum tipo de SDK de terceiros de dados de tráfego associado a um SDK de terceiros.5. The method of claim 1, wherein the traffic data types comprise at least one of: a native type of traffic data associated with a native application; a WebView type of traffic data associated with a browser integrated into an application; and a third-party SDK type of traffic data associated with a third-party SDK. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fatode que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo nativo, analisar os dados de tráfego em uma camada de rede.6. The method of claim 1, wherein analyzing traffic data at different transmission layers comprises: in accordance with a determination that the traffic data is of a native type, analyzing the traffic data at a network layer. 7. Método, de acordo com a reivindicação 1, caracterizado pelo fatode que analisar os dados de tráfego em diferentes camadas da transmissão compreende: de acordo com uma determinação de que os dados de tráfego são de um tipo WebView, transferir o tipo WebView de dados de tráfego para uma interface de rede da aplicação cliente a fim de serem gerenciados por um módulo de rede nativo da aplicação cliente; eanalisar os dados de tráfego transferidos em uma camada de rede.7. The method of claim 1, wherein analyzing traffic data at different transmission layers comprises: in accordance with a determination that the traffic data is of a WebView type, transferring the WebView type of traffic data to a network interface of the client application to be managed by a native network module of the client application; and analyzing the transferred traffic data at a network layer. 8. Método, de acordo com a reivindicação 7, caracterizado pelo fatode que transferir o tipo WebView de dados de tráfego para a interface de rede da aplicação cliente compreende:transferir o tipo WebView de dados de tráfego usando um mecanismo hook de JavaScript.8. The method of claim 7, wherein transferring the WebView type of traffic data to the network interface of the client application comprises: transferring the WebView type of traffic data using a JavaScript hook mechanism. 9. Dispositivo eletrônico caracterizado pelo fato de que compreende:uma memória e um processador;em que a memória armazena uma ou mais instruções de computador, em que as uma ou mais instruções de computador são executadas pelo processador para desempenhar o método que compreende:detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor;analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base nos tipos de dados de tráfego, em que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo kit de desenvolvimento de software (SDK) de terceiros, analisar os dados de tráfego em uma camada de interface de programa de aplicação (API), em que analisar os dados de tráfego em uma camada de API compreende:determinar uma API de empacotamento ao adicionar uma lógica de decisão com base em uma contenção de troca de dados para uma API do SDK de terceiros; einvocar a API de empacotamento para analisar os dados de tráfego ao usar a lógica de decisão; ede acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem a contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados.9. An electronic device comprising: a memory and a processor; wherein the memory stores one or more computer instructions, wherein the one or more computer instructions are executed by the processor to perform the method comprising: detecting a transmission of user data of a target user from the client application to a server; analyzing the traffic data of the transmission at different layers of the transmission based on the types of traffic data, wherein analyzing the traffic data at different layers of the transmission comprises: according to a determination that the traffic data is of a third-party software development kit (SDK) type, analyzing the traffic data at an application program interface (API) layer, wherein analyzing the traffic data at an API layer comprises: determining a packaging API by adding decision logic based on a data exchange contention for a third-party SDK API; and invoking the packaging API to analyze the traffic data by using the decision logic; and in accordance with a determination that the analysis indicates that the traffic data satisfies the data exchange containment corresponding to the target user, transmit the traffic data to a server in compliance with the data exchange containment. 10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que o usuário alvo é determinado com base em pelo menos um dentre: informações de usuário do usuário alvo; einformações de dispositivo correspondentes ao usuário alvo.10. The device of claim 9, wherein the target user is determined based on at least one of: user information of the target user; and device information corresponding to the target user. 11. Dispositivo, de acordo com a reivindicação 10, caracterizado pelo fato de que:as informações de usuário compreendem: informações de conta de usuário, informações pessoais e/ou informações de registro; eas informações de dispositivo compreendem: informações de módulo de identidade de assinante, SIM, um endereço IP, informações de provedor de serviços de rede, ajustes de sistema de um dispositivo e/ou ajustes de aplicação.11. The device of claim 10, wherein: the user information comprises: user account information, personal information, and/or registration information; and the device information comprises: subscriber identity module information, SIM, an IP address, network service provider information, system settings of a device, and/or application settings. 12. Dispositivo, de acordo com a reivindicação 10, caracterizado pelo fato de que o método compreende adicionalmente:determinar a contenção de troca de dados correspondente ao usuário alvo com base nas informações de usuário do usuário alvo ou nas informações de dispositivo correspondente.12. The device of claim 10, wherein the method further comprises: determining the data exchange contention corresponding to the target user based on the user information of the target user or the corresponding device information. 13. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que os tipos de dados de tráfego compreendem pelo menos um dentre: um tipo nativo de dados de tráfego associado a uma aplicação nativa; um tipo WebView de dados de tráfego associados a um navegador integrado a uma aplicação; eum tipo de SDK de terceiros de dados de tráfego associado a um SDK de terceiros.13. The device of claim 9, wherein the traffic data types comprise at least one of: a native type of traffic data associated with a native application; a WebView type of traffic data associated with a browser integrated into an application; and a third-party SDK type of traffic data associated with a third-party SDK. 14. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo nativo, analisar os dados de tráfego em uma camada de rede.14. The device of claim 9, wherein analyzing the traffic data at different layers of the transmission comprises: in accordance with a determination that the traffic data is of a native type, analyzing the traffic data at a network layer. 15. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo WebView, transferir o tipo WebView de dados de tráfego para uma interface de rede da aplicação cliente a fim de serem gerenciados por um módulo de rede nativo da aplicação cliente; eanalisar os dados de tráfego transferidos em uma camada de rede.15. The device of claim 9, wherein analyzing the traffic data at different layers of the transmission comprises: in accordance with a determination that the traffic data is of a WebView type, transferring the WebView type of traffic data to a network interface of the client application to be managed by a native network module of the client application; and analyzing the transferred traffic data at a network layer. 16. Dispositivo, de acordo com a reivindicação 15, caracterizado pelo fato de que transferir o tipo WebView de dados de tráfego para a interface de rede da aplicação cliente compreende:transferir o tipo WebView de dados de tráfego usando um mecanismo hook de JavaScript.16. The device of claim 15, wherein transferring the WebView type of traffic data to the network interface of the client application comprises: transferring the WebView type of traffic data using a JavaScript hook mechanism. 17. Meio de armazenamento não transitório legível por computador, com uma ou mais instruções de computador armazenadas no mesmo, caracterizado pelo fato de que a uma ou mais instruções de computador são executadas por um processador para desempenhar o método que compreende: detectar uma transmissão de dados de usuário de um usuário alvo a partir da aplicação cliente para um servidor;analisar os dados de tráfego da transmissão em diferentes camadas da transmissão com base nos tipos de dados de tráfego, em que analisar os dados de tráfego em diferentes camadas da transmissão compreende:de acordo com uma determinação de que os dados de tráfego são de um tipo de kit de desenvolvimento de software (SDK) de terceiros, analisar os dados de tráfego em uma camada de interface de programa de aplicação (API), em que analisar os dados de tráfego em uma camada de API compreende:determinar uma API de empacotamento ao adicionar uma lógica de decisão com base em uma contenção de troca de dados para uma API do SDK de terceiros; einvocar a API de empacotamento para analisar os dados de tráfego ao usar a lógica de decisão; ede acordo com uma determinação de que a análise indica que os dados de tráfego satisfazem a contenção de troca de dados correspondente ao usuário alvo, transmitir os dados de tráfego para um servidor em conformidade com a contenção de troca de dados.17. A computer-readable, non-transitory storage medium with one or more computer instructions stored therein, wherein the one or more computer instructions are executed by a processor to perform the method comprising: detecting a transmission of user data of a target user from the client application to a server; analyzing the traffic data of the transmission at different layers of the transmission based on the types of traffic data, wherein analyzing the traffic data at different layers of the transmission comprises: according to a determination that the traffic data is from a type of third-party software development kit (SDK), analyzing the traffic data at an application program interface (API) layer, wherein analyzing the traffic data at an API layer comprises: determining a packaging API by adding decision logic based on a data exchange contention for an API of the third-party SDK; and invoking the packaging API to analyze the traffic data by using the decision logic; and in accordance with a determination that the analysis indicates that the traffic data satisfies the data exchange containment corresponding to the target user, transmit the traffic data to a server in compliance with the data exchange containment. 18. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 17, caracterizado pelo fato de que o usuário alvo é determinado com base em pelo menos um dentre:informações de usuário do usuário alvo; einformações de dispositivo correspondentes ao usuário alvo.18. The non-transitory computer-readable storage medium of claim 17, wherein the target user is determined based on at least one of: user information of the target user; and device information corresponding to the target user. 19. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 18, caracterizado pelo fato de que: as informações de usuário compreendem: informações de conta de usuário, informações pessoais e/ou informações de registro; eas informações de dispositivo compreendem: informações de módulo de identidade de assinante, SIM, um endereço IP, informações de provedor de serviços de rede, ajustes de sistema de um dispositivo e/ou ajustes de aplicação.19. The non-transitory computer-readable storage medium of claim 18, wherein: the user information comprises: user account information, personal information, and/or registration information; and the device information comprises: subscriber identity module information, SIM, an IP address, network service provider information, system settings of a device, and/or application settings. 20. Meio de armazenamento não transitório legível por computador, de acordo com a reivindicação 18, caracterizado pelo fato de que o método compreende adicionalmente:determinar a contenção de troca de dados correspondente ao usuário alvo com base nas informações de usuário do usuário alvo ou nas informações de dispositivo correspondente.20. The non-transitory computer-readable storage medium of claim 18, wherein the method further comprises: determining data exchange contention corresponding to the target user based on the target user's user information or the corresponding device information.
BR112024008227-0A 2021-10-27 2022-10-08 METHOD AND APPARATUS FOR MANAGING CLIENT APPLICATION NETWORK TRAFFIC BR112024008227B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111258204.1 2021-10-27

Publications (1)

Publication Number Publication Date
BR112024008227B1 true BR112024008227B1 (en) 2025-09-02

Family

ID=

Similar Documents

Publication Publication Date Title
US11991155B2 (en) Methods and systems for securing containerized applications
US12401694B1 (en) Method and system for modifying and validating API requests
CN113392415B (en) Data warehouse access control method, system and electronic device
EP4407954A1 (en) Data exchange method, system and apparatus, and device
CN115085950A (en) Microservice security control method, microservice security control device, microservice security control equipment and computer readable storage medium
EP4407948A1 (en) Method and apparatus for managing network traffic of client application
EP4407930A1 (en) Data security protection system
EP4407440A1 (en) Code management method and apparatus
EP4407929A1 (en) Method and apparatus for managing recommendation policy
BR112024008227B1 (en) METHOD AND APPARATUS FOR MANAGING CLIENT APPLICATION NETWORK TRAFFIC
BR112024008239B1 (en) SYSTEM AND METHOD FOR PROTECTING THE SECURITY OF DATA, ELECTRONIC DEVICES AND COMPUTER-READABLE STORAGE MEDIA
Bravi Use of trusted computing techniques to counteract cybersecurity attacks in critical infrastructures
Dei Cas A practical approach to enhance web apis security using a stateless, open-source, pluggable api gateway
JP7810792B2 (en) Data security systems
Berdonces Bonelo OpenID Connect Client Registration API for Federated Cloud Platforms
Mazmudar Mitigator: Privacy policy compliance using Intel SGX
Hawasli azureLang: a probabilistic modeling and simulation language for cyber attacks in Microsoft Azure cloud infrastructure
Kola HubOS: Improving and Redesigning a Local-First, Privacy-by-Design Operating System for Smart Home Applications
CN120956446A (en) A blockchain-based method, system, device, and medium for cross-domain access control of trusted data spaces.
KR20260018794A (en) A bidirectional application programming interface that enables the ability to perform operations in a unidirectional transmission system.
CN120811671A (en) Password service management method, device, equipment and storage medium
CN121144272A (en) Shared file storage system access method, apparatus, device, medium and product
BR112019013586B1 (en) METHOD FOR SEALING ENCLAVE AND SYSTEM DATA