Heterogeneous system migration method and apparatus, electronic device, and storage medium

CN122963611APending Publication Date: 2026-10-23BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611272832.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-08-20
Publication Date
2026-10-23

AI Technical Summary

Benefits of technology

[0013]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122963611A_ABST
    Figure CN122963611A_ABST
Patent Text Reader

Abstract

The disclosure provides a heterogeneous system migration method, device, electronic equipment and storage medium, relates to the field of computers, and particularly to the field of system migration and reconstruction. The specific implementation scheme of the heterogeneous system migration method is as follows: the source code of a to-be-migrated system is parsed to obtain data dependency relationships between a plurality of logical units in the to-be-migrated system; a first logical unit in the plurality of logical units is migrated from the to-be-migrated system to a target system according to the data dependency relationships; the first logical unit represents a logical unit irrelevant to business processing logic; the technology stack of the to-be-migrated system is different from that of the target system; and in response to determining that the first logical unit has been migrated to the target system, a second logical unit in the plurality of logical units is migrated from the to-be-migrated system to the target system according to the data dependency relationships; the second to-be-migrated object represents a logical unit related to business processing logic.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer science, and more particularly to the field of system migration and reconfiguration technology, specifically to methods, apparatuses, electronic devices, and storage media for migrating heterogeneous systems. Background Technology

[0002] Large-scale search display services carry a massive number of business processing strategies. In order to meet the ever-growing business needs of users, these business processing strategies will be continuously iterated and updated, or new business processing strategies will be launched.

[0003] When the original system's technology stack can no longer meet the needs of massive iterative updates and policy deployments, how to efficiently migrate large-scale search and display services to a new technology stack that can meet these needs without affecting business request response has become an urgent technical problem to be solved. Summary of the Invention

[0004] This disclosure provides a method, apparatus, electronic device, and storage medium for migrating heterogeneous systems.

[0005] According to one aspect of this disclosure, a heterogeneous system migration method is provided, comprising: parsing the source code of the system to be migrated to obtain the data dependencies between multiple logical units in the system to be migrated; migrating a first logical unit among the multiple logical units from the system to be migrated to the target system according to the data dependencies; wherein the first logical unit represents a logical unit unrelated to business processing logic; the technology stacks of the system to be migrated and the target system are different; and in response to determining that the first logical unit has been migrated to the target system, migrating a second logical unit among the multiple logical units from the system to be migrated to the target system according to the data dependencies; wherein the second object to be migrated represents a logical unit related to business processing logic.

[0006] According to another aspect of this disclosure, a heterogeneous system migration apparatus is provided, including a parsing module, a first migration module, and a second migration module.

[0007] The parsing module is used to parse the source code of the system to be migrated, and to obtain the data dependencies between multiple logical units in the system to be migrated.

[0008] The first migration module is used to migrate the first logical unit from the system to be migrated to the target system according to the data dependency relationship; wherein, the first logical unit represents a logical unit that is not related to the business processing logic; the technology stacks of the system to be migrated and the target system are different.

[0009] The second migration module is used to migrate the second logical unit from the system to be migrated to the target system in response to determining that the first logical unit has been migrated to the target system, according to the data dependency relationship; wherein, the second object to be migrated represents the logical unit related to the business processing logic.

[0010] According to another aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method described above.

[0011] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions, wherein the computer instructions are used to cause the computer to perform the methods described above.

[0012] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the method described above.

[0013] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0014] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:

[0015] Figure 1 This illustration schematically shows an exemplary system architecture to which heterogeneous system migration methods and apparatus can be applied according to embodiments of the present disclosure;

[0016] Figure 2 A flowchart illustrating a heterogeneous system migration method according to an embodiment of the present disclosure is shown schematically;

[0017] Figure 3A This illustration schematically shows a business logic unit being migrated from a system to be migrated to a target system according to an embodiment of the present disclosure;

[0018] Figure 3B This illustration schematically shows a business logic unit being migrated from a system to be migrated to a target system according to an embodiment of the present disclosure;

[0019] Figure 4 This illustration schematically depicts an asynchronous service invocation process during the migration of an asynchronous service unit from a system to be migrated to a target system, according to an embodiment of the present disclosure.

[0020] Figure 5 This illustration schematically depicts a scenario where, during the migration of architectural logic units from the system to be migrated to the target system, the system to be migrated and the target system collaboratively respond to pending requests, according to an embodiment of this disclosure.

[0021] Figure 6 This schematically illustrates a diagram of a back-end service unit being migrated from a target system in a system box to be migrated, according to an embodiment of the present disclosure.

[0022] Figure 7 A block diagram of a heterogeneous system migration apparatus according to embodiments of the present disclosure is schematically shown; and

[0023] Figure 8 A block diagram of an electronic device suitable for implementing a heterogeneous system migration method according to an embodiment of the present disclosure is shown schematically. Detailed Implementation

[0024] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.

[0025] The massive business logic and strategies carried in large-scale search display services are usually implicitly passed through global state. This means that cross-system migration can only be carried out at the product line or larger granularity level. Because can only be carried out at the product line or larger granularity level during migration, migration risks are relatively concentrated, resulting in a higher probability of system anomalies and affecting the response of normal business requests during the migration period.

[0026] In view of this, the embodiments of this disclosure obtain the data dependencies between multiple logical units by parsing the source code of the system to be migrated. Each logical unit can run independently to implement its corresponding business strategy. Migrating each logical unit based on these data dependencies preserves these dependencies during the migration process, reducing the probability of disruption to business logic during migration and minimizing the impact of heterogeneous system migration on the response to normal business requests. Simultaneously, prioritizing the migration of logical units unrelated to business processing logic decouples multiple logical units with different iteration frequencies. This eliminates the need for frequently iterated, business-processing-related logical units to be synchronously updated on both the system to be migrated and the target system, reducing redundant overhead in iterative development and further improving the efficiency of heterogeneous system migration.

[0027] In the technical solutions disclosed herein, the collection, storage, use, processing, transmission, provision, disclosure, and application of any type of information, such as user personal information, comply with the provisions of relevant laws and regulations, necessary confidentiality measures have been taken, and they do not violate public order and good morals.

[0028] In the technical solution disclosed herein, the user's authorization or consent is obtained before acquiring or collecting the user's personal information.

[0029] Figure 1 The illustration schematically depicts an exemplary system architecture to which heterogeneous system migration methods and apparatus can be applied according to embodiments of the present disclosure.

[0030] like Figure 1 As shown, the exemplary system architecture 100 may include a system to be migrated 101 and a target system 102.

[0031] System 101, to be migrated, can be implemented using a technology stack based on PHP (Hypertext Preprocessor) + HHVM (Hip-Hop Virtual Machine). However, because the various business strategies and processing logic frameworks in System 101 are distributed across different stages of the code, they are difficult to manage and extend. Strategy dependencies are passed through implicit global state, resulting in complex logic. There is a lack of reasonable architectural design between general search and vertical search, leading to repeated development of the same requirements in different services, making it difficult to meet the continuous iteration needs of massive business display strategies in a large-scale search display service.

[0032] The Go technology stack has at least the following advantages over the PHP+HHVM technology stack:

[0033] Go is an ahead-compiled language that directly generates machine code executable by the CPU (Central Processing Unit), with no interpretation or compilation overhead at runtime. PHP, on the other hand, relies on just-in-time (JIT) compilation by HHVM. While it can convert frequently accessed code into machine code, it involves a "warm-up" process and consumes additional compilation thread resources, and unlike Go, it cannot perform full-process chain optimization during compilation.

[0034] Go, based on GMP (Goroutine-Machine-Processor, Go's runtime concurrency scheduling model), uses lightweight user-space coroutines, with context switching completed in user space and the stack space dynamically scaling. PHP, on the other hand, relies on the operating system's multi-process model, requiring switching to kernel mode, and each process occupies a fixed number of MB of memory, resulting in a huge difference in the order of magnitude of the concurrent units that can be created.

[0035] Go is a statically typed, strongly typed language, meaning that memory layout and function offsets can be determined at compile time, allowing the compiler to perform aggressive inlining and dead code elimination optimizations. PHP, on the other hand, uses dynamic typing, where variable structure is determined at runtime, hindering deep compilation optimizations, and type errors can only be exposed at runtime.

[0036] Therefore, in the face of the massive iterative needs of large-scale search display services, the code, configuration files and stored data contained in each logical unit of the system to be migrated can be migrated to the target system 102 implemented with the Go technology stack.

[0037] During the migration process, since the architectural logic units are unrelated to the business processing logic, the iteration update frequency is low. The architectural logic units that are unrelated to the business processing logic can be migrated from the system to be migrated 101 to the target system 102 first, so as to reduce the additional overhead of synchronous iteration updates of the two systems.

[0038] After all the architectural logic units have been migrated to the target system 102, the business logic units will then be migrated from the system to be migrated 101 to the target system 102.

[0039] In this embodiment of the disclosure, the technology stack types of the system to be migrated 101 and the target system 102 are exemplary, and the heterogeneous system migration method of this embodiment of the disclosure is applicable to any heterogeneous system with different technology stacks.

[0040] Figure 2 A flowchart illustrating a heterogeneous system migration method according to an embodiment of the present disclosure is shown schematically.

[0041] like Figure 2 As shown, the heterogeneous system migration method 200 may include operations S210 to S230.

[0042] In operation S210, the source code of the system to be migrated is parsed to obtain the data dependencies between multiple logical units in the system to be migrated.

[0043] In operation S220, according to data dependencies, the first logical unit among multiple logical units is migrated from the system to be migrated to the target system.

[0044] In operation S230, in response to determining that the first logical unit has been migrated to the target system, the second logical unit among the multiple logical units is migrated from the system to be migrated to the target system according to the data dependency relationship.

[0045] The technology stacks of the system to be migrated and the target system are different. A technology stack can be a collection of all the technologies, tools, frameworks, and methods required to build, run, and maintain a software application or system. Therefore, when migrating heterogeneous systems, due to the differences in compiled languages, the migration of each logical unit can essentially be understood as a logical rewrite.

[0046] For systems that carry massive amounts of business logic and are to be migrated, the migration process can be lengthy. If business iterations and updates are paused during the migration, or if the migration is carried out as a whole product line, the migration risks will be concentrated. If a failure occurs, it will affect the request response of all users.

[0047] Therefore, this embodiment of the disclosure analyzes the source code of the system to be migrated, and divides the code that is scattered across different product lines and different business strategy frameworks into multiple logical units.

[0048] The first logical unit can represent a logical unit unrelated to business processing logic, such as an architectural logical unit. An architectural logical unit can include, but is not limited to, rate limiting units, parameter processing units, retrieval request units, and rendering units. The data dependencies between multiple first logical units can represent the dependencies between the parameter objects required by each first logical unit at runtime.

[0049] For example, search requests typically rely on structured results after parameter processing. If parameter validation fails, the search process will be directly short-circuited.

[0050] The second logical unit can represent a logical unit related to business processing logic. For example, each second logical unit can independently run a business strategy. The data dependencies between multiple second logical units can be the data dependencies between multiple business strategies.

[0051] For example, there is a post-dependency relationship between personalized recommendation strategies and diversity distribution strategies. This is because diversity distribution can only be prioritized after the personalized strategy has converted user profiles into weighting factors, thus resulting in content from the same author or category not being displayed consecutively.

[0052] In large-scale search display services, business logic is often updated periodically to meet user needs. However, the primary logical units unrelated to the business logic typically have a lower iteration frequency. Therefore, based on data dependencies, the primary logical units unrelated to the business logic can be migrated from the system to be migrated to the target system first.

[0053] Because the iteration frequency of the first logic unit is low, the probability of needing to synchronously iterate and update both the system to be migrated and the target system during the migration is also reduced, thus saving R&D costs for synchronous iterative updates of the first logic unit.

[0054] After the first logical unit is migrated to the target system, the second logical unit related to business processing logic is migrated next. During the migration of the second logical unit, pending requests from clients can be processed collaboratively by the system to be migrated and the target system, thereby reducing the impact of system migration on the response to pending requests and achieving a smooth migration of heterogeneous systems without interrupting business operations.

[0055] Meanwhile, the data dependencies obtained by parsing the source code provide a basis for the migration order of heterogeneous systems. By migrating each logical unit in this order, and by preserving the data dependencies between the logical units, the system to be migrated and the target system can collaboratively process pending requests received during the system migration according to the data dependencies, effectively reducing redundant communication overhead between heterogeneous systems.

[0056] For example, pending requests can be scheduled to the target system, where each logical processing unit processes them according to their data dependencies. Even if some logical units have not completed the migration, the operations to be performed by the unmigrated logical units are placed after those that have been migrated. Therefore, the intermediate processing results of the target system can be sent to the system to be migrated, where the subsequent logical operations are completed, forming an orderly collaborative processing chain.

[0057] In addition, when the second logical unit needs to be iteratively updated, in order not to affect the response of business requests, the logical unit to be updated can be updated synchronously in the system to be migrated and the target system. This way, when the target system encounters an error in processing the pending request, the pending request can be promptly scheduled to the system to be migrated for further processing.

[0058] This disclosure discloses embodiments that analyze the source code of the system to be migrated to obtain the data dependencies between multiple logical units. Each logical unit can run independently to implement its corresponding business strategy. Migrating each logical unit based on these data dependencies preserves these dependencies during the migration process, reducing the probability of disruption to business logic during migration and minimizing the impact of heterogeneous system migration on the response to normal business requests. Simultaneously, prioritizing the migration of logical units unrelated to business processing logic decouples multiple logical units with different iteration frequencies. This eliminates the need for frequently iterated, business-processing-related logical units to be synchronously updated on both the system to be migrated and the target system, reducing redundant overhead in iterative development and further improving the efficiency of heterogeneous system migration.

[0059] In large-scale search display services, the migration process of the second logical unit associated with business processing logic is lengthy. The second logical unit can include both a first logical subunit and a second logical subunit. The processing operations of the second logical subunit depend on the processing results of the first logical subunit.

[0060] According to embodiments of this disclosure, in response to determining that a first logical unit has been migrated to a target system, migrating a second logical unit from a system to be migrated to the target system according to data dependencies may include the following operation: in response to determining that a first logical sub-unit has been migrated to the target system, migrating a second logical sub-unit from a system to be migrated to the target system.

[0061] For example, when parsing source code, the data dependencies between multiple logical units can be represented as a directed acyclic graph (DAG). Each node in this DAG represents a logical unit, and each edge represents a data dependency between the two logical units connected to that edge. Typically, multiple logical units with data dependencies can form a DAG subgraph, which can correspond to business strategy units. For example, video-related logical units may include, but are not limited to, multiple sub-units such as search, sorting, highlight slicing, and rendering; these sub-units constitute a subgraph associated with video business strategies.

[0062] By using directed acyclic graphs (DAGs) to describe the data dependencies between logical units, a graph syntax tree can be generated based on a text-readable graph description language. This graph execution engine then executes logical operators serially or in parallel according to the graph description, achieving efficient and flexible task orchestration. This enables the migration of a second logical sub-unit from the system to be migrated to the target system in response to the determination that the first logical sub-unit has been migrated to the target system.

[0063] For example, there is a post-dependency relationship between personalized recommendation strategies and diversity distribution strategies. During the migration of heterogeneous systems, the logical sub-units used to implement the diversity distribution strategy can be migrated from the system to be migrated to the target system after the logical sub-units used to implement the personalized recommendation strategy have been migrated to the target system.

[0064] Multiple logical sub-units with data dependencies are migrated sequentially according to the migration order determined by data dependencies. This achieves a finer-grained migration compared to product line migration while preserving the data dependencies between multiple logical sub-units. From a business perspective, this can be understood as preserving the dependencies between multiple business strategies, thereby reducing business logic confusion caused by fine-grained migration and minimizing the additional communication overhead between heterogeneous systems to avoid affecting business processing.

[0065] Figure 3AThe illustration shows a schematic diagram of the migration of business logic units from the system to be migrated to the target system according to an embodiment of the present disclosure.

[0066] like Figure 3A As shown, a business logic unit may include a logical subunit P that has no data dependency relationship with any logical subunit, as well as a combination of subunits formed by logical subunits A, B, C and D.

[0067] According to embodiments of this disclosure, the second logic unit further includes a third logic subunit that has no data dependency relationship with any of the logic subunits in the second logic unit, such as logic subunit P.

[0068] In response to determining that the first logical unit has been migrated to the target system, the second logical unit among multiple logical units is migrated from the system to be migrated to the target system according to the data dependency relationship. The migration may also include the following operation: before performing the migration operation on multiple logical sub-units that have data dependencies on each other, the third logical sub-unit is migrated from the system to be migrated to the target system.

[0069] like Figure 3A As shown, after the architectural logic unit has been migrated from the system to be migrated 101 to the target system 102, the migration operation for the business logic unit is started.

[0070] Since logical subunit P has no data dependency relationship with any logical subunit in the business logic unit, logical subunit P is migrated to the target system 102 first.

[0071] After logical subunit P is migrated to target system 102, since the business strategy corresponding to logical subunit P has no dependency on any other strategy, logical subunit P can be developed and iterated and updated independently, unaffected by updates to other business strategies. This allows for independent development only on logical subunit P in the target system during subsequent iterative updates, eliminating the need for redundant development of another set of code on the system to be migrated, thus reducing the overhead of code iteration.

[0072] like Figure 3A As shown, for a subunit combination, the migration order can be determined according to the dependency relationship between each logical subunit in the subunit combination, that is, the dependent subunit migrates before the dependent subunit.

[0073] Therefore, the logic subunits A, B, C, and D can be migrated sequentially in the following order.

[0074] In the relevant examples, due to the implicit propagation of dependencies between strategies in the global state, migration and canary testing can only be carried out at the product line level. When a test fails, it is difficult to attribute and analyze the cause of the test failure because a large number of business logic frameworks are gathered in the product line.

[0075] In view of this, in response to determining that the first logical subunit has been migrated to the target system, the migration of the second logical subunit from the system to be migrated to the target system may include the following operations: in response to determining that the first logical subunit has been migrated to the target system, performing a grayscale test on the first logical subunit to obtain a grayscale test result; and in response to determining that the grayscale test result indicates that the grayscale verification has passed, migrating the second logical subunit from the system to be migrated to the target system.

[0076] Figure 3B The illustration shows a schematic diagram of the migration of business logic units from the system to be migrated to the target system according to an embodiment of the present disclosure.

[0077] like Figure 3B As shown, after logical subunit A is migrated from the system to be migrated 101 to the target system 102, logical subunit A and logical subunit A1 can be tested separately based on the gray-scale test request. For ease of distinction, logical subunit A1 here refers to logical subunit A that has been migrated to the target system 102.

[0078] Gray-scale test requests can be obtained by proportionally dividing real user requests from clients. These gray-scale test requests can be scheduled to the system to be migrated 101 and the target system 102 respectively. The system to be migrated 101 processes the gray-scale test requests based on logical subunit A, obtaining the processing result Fa. The target system 102 processes the gray-scale test requests based on logical subunit A1, obtaining the processing result Fb.

[0079] It should be noted that since the logical units in the heterogeneous system have not been fully migrated at this point, the system to be migrated 101 and the target system 102 need to work together when processing grayscale test requests. During the collaborative processing, only the strategy corresponding to logical sub-unit A is the only different factor; the processing logic, input data, or intermediate data of the other logical units are the same.

[0080] Therefore, the pass / fail status of the grayscale test can be determined based on the difference between the processing result Fa and the processing result Fb. If the difference is less than a predetermined threshold, the grayscale test is passed, and the migration of logic subunit B can continue. If the difference is greater than or equal to the predetermined threshold, the grayscale test is failed, and the operation of repairing logic subunit A1 is performed on the target system 102, so that logic subunit A1 can implement the same or similar strategy logic as logic subunit A.

[0081] Meanwhile, in order to reduce the impact on normal business requests from clients, when the gray-scale test fails, the final processing result of the system to be migrated can be fed back to the client as request response data.

[0082] The embodiments disclosed herein can perform migration at the logical unit level. Since each logical unit corresponds to a business strategy, it can be understood as migrating at the business strategy level. Compared with coarse-grained migration of product lines, a gray-scale strategy can be implemented for each logical unit, reducing the difficulty of attribution analysis. Abnormal logical units can be repaired in a timely manner based on the attribution results, enabling the target system to be launched as soon as possible through gray-scale testing, further improving the efficiency of heterogeneous system migration.

[0083] In large-scale search and display services, the internal system contains caches at the minute or even day level, which cannot meet the real-time requirements of highly time-sensitive elements, such as real-time play counts and likes. Therefore, these highly real-time-demanding information can be obtained by calling asynchronous services as supplementary information related to pending requests.

[0084] However, since the technology stacks of the system to be migrated and the target system are different, when this supplementary information is used by two systems with different technology stacks, cross-language data sharing requires multiple serialization and de-virtualization column operations. This double serialization overhead seriously affects the request response speed.

[0085] In view of this, embodiments of the present disclosure may further include the following operations: in response to determining that the third logical unit has been migrated to the target system, a request to be processed is sent to the target system, so that the target system obtains supplementary information by calling an asynchronous service based on the third logical unit and writes the supplementary information into a shared storage area; and the system to be migrated reads the supplementary information from the shared storage area and performs a deserialization operation so that the unmigrated logical units in the system to be migrated can generate response information for responding to the request to be processed based on the supplementary information.

[0086] Multiple logical units include a third logical unit for obtaining supplementary information associated with the pending request by invoking an asynchronous service, such as asynchronous service invocation.

[0087] Figure 4 The illustration schematically depicts an asynchronous service invocation process during the migration of an asynchronous service unit from a system to be migrated to a target system, according to an embodiment of the present disclosure.

[0088] like Figure 4 As shown, a shared storage area 103 can be created between the system to be migrated and the target system in a sidecar mode. This shared storage area 103 is used to store supplementary information obtained by calling asynchronous services based on asynchronous service unit calls.

[0089] When a pending request is received from a client, it can be scheduled to the target system 102. The target system 102 analyzes the actual needs of the pending request, initiates an asynchronous service call request, such as an asynchronous summary request, and uses the asynchronous call logic unit to obtain supplementary information associated with the pending request, such as video views and likes.

[0090] During system migration, this supplementary information will still be used by the system to be migrated; for example, the rendering unit needs to render this supplementary information. If the supplementary information is directly sent from the target system 102 to the system to be migrated 101, due to the different compilation languages ​​of the two systems, the target system 102 needs to serialize the supplementary information before sending it to the system to be migrated 101. The system to be migrated 101, as the receiver, needs to deserialize the received information before proceeding with subsequent processing. Therefore, in the processing chain for the pending request, each piece of supplementary information obtained based on asynchronous service calls needs to undergo serialization and deserialization operations, resulting in high communication latency.

[0091] Therefore, this embodiment utilizes the shared storage area 103 to write the supplementary information obtained by the target system 102 directly into the shared storage area 103 as a raw serialized byte stream without performing a serialization operation. When the system to be migrated 101 needs to process this supplementary information, it can directly read all the supplementary information from the shared storage area 103 at once and only need to perform a deserialization operation once, thereby reducing the overhead of double serialization.

[0092] In addition, the shared storage area 103 can be deployed on the same server as the system to be migrated 101 and the target system 102 in a sidecar mode, replacing remote network communication with inter-process communication, thereby reducing remote communication overhead and further improving the response speed of pending requests during system migration.

[0093] In some embodiments, supplementary information obtained during system migration can be written to the target system 102 as a global data object. The system to be migrated can obtain the full supplementary information through an in-process query interface, thereby further reducing sidecar communication overhead. Both the system to be migrated 101 and the target system 102 use a unified interface to obtain supplementary information externally.

[0094] During system migration, the target system initiates an asynchronous service call to directly write the acquired supplementary information into the shared storage area, while the system to be migrated only needs to read it directly from the shared storage area, reducing the additional overhead of dual serialization between heterogeneous systems.

[0095] In some embodiments, in order to meet the personalized needs of different users, the system to be migrated is usually configured with multiple asynchronous call strategies, each corresponding to a logical subunit.

[0096] Because the iteration frequency of asynchronous call strategies is lower than that of business strategies, and the number of call strategies matching the requests to be processed is determined by the actual needs of the requests, migrating one by one will lead to time degradation due to insufficient parallel window time. Specifically, during heterogeneous system migration, to reduce the impact of system migration on business, information is usually required to be written bidirectionally to both the system to be migrated and the target system. Therefore, it is essential to ensure that parallel operation is performed without delay during peak business periods. This allowed migration time window is usually fixed. If there are 100 million summary records, and each operation takes 10ms, the total time would be approximately 278 hours. Even with 100 concurrent threads, it would be impossible to complete the migration within a short 2-hour window.

[0097] Therefore, embodiments of this disclosure synchronously migrate multiple third logic sub-units from the system to be migrated to the target system.

[0098] For example, multiple third logical sub-units can be merged into a single migration operation. Within a fixed time window, a controllable and smooth hardware load can be used to smoothly migrate massive amounts of tasks. This solves the problem of time degradation caused by insufficient parallel window time when migrating multiple logical sub-units one by one in asynchronous call service units.

[0099] To reduce the impact on business requests during the migration of massive business logic units, embodiments of this disclosure may further include the following operations: in response to determining that multiple first logic units of the system to be migrated have been migrated to the target system and receiving a request to be processed, sending the request to be processed to the target system so that the target system can use multiple first logic units to process the request to be processed and generate intermediate data; and sending the intermediate data to the system to be migrated so that the system to be migrated can use second logic units to process the request to be processed based on the intermediate data and generate response information.

[0100] Figure 5 The illustration schematically depicts a scenario where, during the migration of architectural logic units from the system to be migrated to the target system, the system to be migrated and the target system collaboratively respond to pending requests, according to an embodiment of the present disclosure.

[0101] like Figure 5 As shown, the requests to be processed can be first scheduled to the target system 102, where the architecture logic unit 102, which has been migrated to the target system, processes the requests and generates intermediate data.

[0102] Then, the intermediate data can be serialized and transmitted over the network to the system 101 to be migrated. The business logic units within the system 101 to be migrated...

[0103] After receiving intermediate data, the system 101 to be migrated can deserialize the intermediate data and process the processed data using the business logic unit to finally generate response information for responding to the pending request.

[0104] This collaborative processing approach not only ensures the stable operation of business during system migration, but also promptly dispatches pending requests to the system to be migrated for processing when any logical unit in the target system malfunctions. The entire process is seamless for the user, further reducing the impact of heterogeneous system migration on user experience.

[0105] As the number of logical units on the target system increases, pending requests from clients are gradually migrated to the target system. For the development of new business strategies during the system migration, these can be developed directly on the target system. As the business strategies are continuously iterated and updated, the business strategies on the system to be migrated are gradually decommissioned, reducing the maintenance overhead of long-term dual-system iterative development.

[0106] In some embodiments, the plurality of logical units includes a fourth logical unit for recording operational information of other logical units. The heterogeneous system migration method may further include the following operation: in response to determining that the grayscale test results for the plurality of logical units that have been migrated to the target system indicate that the grayscale verification has passed, the fourth logical unit is migrated from the system to be migrated to the target system.

[0107] According to embodiments of this disclosure, the fourth logical unit may include, but is not limited to, a rendering unit, a log writing unit, and a post-task unit.

[0108] Figure 6 This illustration schematically depicts the migration of a back-end service unit from a target system in a system box to be migrated, according to an embodiment of this disclosure.

[0109] like Figure 6 As shown, the architectural logic unit, business logic unit, and asynchronous service unit have all been migrated to the target system 102. After the migration operation of each logic unit is completed, a canary release test can be performed. If the canary release test is successful, other logic units are then migrated to promptly determine whether the logic units migrated to the target system can implement the business logic or business functions implemented in the system to be migrated. Compared with product line migration in related examples, this reduces the risk of system migration affecting business request response.

[0110] Once the architectural logic unit, business logic unit, and asynchronous service unit have all been migrated to the target system 102, a joint canary test can be performed on the architectural logic unit, business logic unit, and asynchronous service unit using canary test requests. If the canary test passes, the subsequent service unit is migrated. If the canary test fails, the abnormal logic unit is repaired.

[0111] In this embodiment of the disclosure, the coverage of gray-scale testing can be gradually expanded from the granularity of business strategy and the combination of logical sub-units that store data dependencies with each other, as well as from the granularity of multiple logical units. This gray-scale migration mechanism facilitates the timely discovery of potential risks in the migration process of heterogeneous systems. Subsequent migration operations are only performed after each level of gray-scale testing has passed, realizing a smooth migration from the system to be migrated to the target system and further improving the stability of the target system going live.

[0112] The specific reason for migrating the fourth logical unit is that if the fourth logical unit is migrated in advance, taking the fourth logical unit as a rendering unit as an example, the processing result data of the system to be migrated needs to be sent back to the target system for rendering, which will introduce additional serialization and communication overhead, offsetting the benefits of migration.

[0113] To further improve the stability of heterogeneous system migration, the previous difference comparison analysis can be performed on key data such as search requests, advertising requests, and output data to determine whether there are potential regression problems in the target system.

[0114] In addition, pixel-level difference comparison analysis can be performed on different types of page resources to determine the visual effect of the processing results of the target system.

[0115] In addition, online traffic can be gradually introduced into the target system for long-term stress testing to ensure the stability of the target system.

[0116] Finally, after the target system passes the gray-scale testing and various stability tests, it will be deployed to replace the system to be migrated in handling pending requests from clients.

[0117] Figure 7 A block diagram of a heterogeneous system migration apparatus according to an embodiment of the present disclosure is shown schematically.

[0118] like Figure 7 As shown, the heterogeneous system migration device 700 may include a parsing module 710, a first migration module 720, and a second migration module 730.

[0119] The parsing module 710 is used to parse the source code of the system to be migrated to obtain the data dependencies between multiple logical units in the system to be migrated.

[0120] The first migration module 720 is used to migrate the first logical unit among multiple logical units from the system to be migrated to the target system according to the data dependency relationship; wherein, the first logical unit represents a logical unit that is not related to the business processing logic; the technology stacks of the system to be migrated and the target system are different.

[0121] The second migration module 730 is used to migrate the second logical unit from the system to be migrated to the target system according to the data dependency relationship in response to determining that the first logical unit has been migrated to the target system; wherein, the second object to be migrated represents a logical unit related to business processing logic.

[0122] According to embodiments of this disclosure, the second logic unit includes a first logic subunit and a second logic subunit; wherein the processing operation of the second logic subunit depends on the processing result of the first logic subunit. The second migration module 730 may include a first migration submodule, configured to migrate the second logic subunit from the system to be migrated to the target system in response to determining that the first logic subunit is being migrated to the target system.

[0123] According to embodiments of this disclosure, the second migration module 730 may further include: a grayscale testing submodule and a second migration submodule.

[0124] The grayscale testing submodule is used to perform grayscale testing on the first logical subunit in response to determining that the first logical subunit has been migrated to the target system, and to obtain the grayscale test results.

[0125] The second migration submodule is used to migrate the second logical subunit from the system to be migrated to the target system in response to the determination that the grayscale test result indicates that the grayscale verification has passed.

[0126] According to embodiments of this disclosure, the second logical unit further includes a third logical subunit that has no data dependency with any of the logical subunits in the second logical unit. The second migration module 730 may further include a third migration submodule, used to migrate the third logical subunit from the system to be migrated to the target system before performing migration operations on multiple logical subunits that have data dependencies on each other.

[0127] According to embodiments of this disclosure, the plurality of logical units include a third logical unit for obtaining supplementary information associated with the pending request by invoking an asynchronous service.

[0128] The heterogeneous system migration device 700 may also include a first sending module and a processing module.

[0129] The first sending module is used to send the pending request to the target system in response to determining that the third logical unit has been migrated to the target system, so that the target system can obtain supplementary information by calling the asynchronous service based on the third logical unit and write the supplementary information into the shared storage area.

[0130] The processing module is used to read supplementary information from the shared storage area of ​​the system to be migrated and perform deserialization operations so that the unmigrated logical units in the system to be migrated can generate response information to respond to the pending requests based on the supplementary information.

[0131] According to embodiments of this disclosure, the third logic unit includes a plurality of third logic sub-units; the heterogeneous system migration device 700 may further include: a third migration module, used to synchronously migrate the plurality of third logic sub-units from the system to be migrated to the target system.

[0132] According to embodiments of this disclosure, the heterogeneous system migration apparatus 700 may further include a second transmission module and a third transmission module.

[0133] The second sending module is used to send the request to be processed to the target system in response to determining that multiple first logical units of the system to be migrated have been migrated to the target system and receiving the request to be processed, so that the target system can use the multiple first logical units to process the request to be processed and generate intermediate data.

[0134] The third sending module is used to send intermediate data to the system to be migrated, so that the system to be migrated can use the second logic unit to process the request to be processed based on the intermediate data and generate response information.

[0135] According to embodiments of this disclosure, the plurality of logic units includes a fourth logic unit for recording operational information of other logic units. The heterogeneous system migration apparatus 700 may further include a fourth migration module, configured to migrate the fourth logic unit from the system to be migrated to the target system in response to determining that grayscale test results for the plurality of logic units already migrated to the target system indicate that grayscale verification has passed.

[0136] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.

[0137] According to an embodiment of the present disclosure, an electronic device includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the methods described above.

[0138] According to embodiments of the present disclosure, a non-transitory computer-readable storage medium stores computer instructions, wherein the computer instructions are used to cause a computer to perform the methods described above.

[0139] According to an embodiment of this disclosure, a computer program product includes a computer program that, when executed by a processor, implements the method described above.

[0140] Figure 8 A block diagram of an electronic device suitable for implementing a heterogeneous system migration method according to embodiments of the present disclosure is illustrated schematically. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0141] like Figure 8 As shown, device 800 includes a computing unit 801, which can perform various appropriate actions and processes based on a computer program stored in read-only memory (ROM) 802 or a computer program loaded from storage unit 808 into random access memory (RAM) 803. RAM 803 may also store various programs and data required for the operation of device 800. The computing unit 801, ROM 802, and RAM 803 are interconnected via bus 804. Input / output (I / O) interface 805 is also connected to bus 804.

[0142] Multiple components in device 800 are connected to I / O interface 805, including: input unit 806, such as keyboard, mouse, etc.; output unit 807, such as various types of monitors, speakers, etc.; storage unit 808, such as disk, optical disk, etc.; and communication unit 809, such as network card, modem, wireless transceiver, etc. Communication unit 809 allows device 800 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0143] The computing unit 801 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as heterogeneous system migration methods. For example, in some embodiments, the heterogeneous system migration method can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed on device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the heterogeneous system migration method described above can be performed. Alternatively, in other embodiments, the computing unit 801 can be configured to perform heterogeneous system migration methods by any other suitable means (e.g., by means of firmware).

[0144] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0145] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

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

[0147] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0148] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0149] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, distributed system servers, or servers incorporating blockchain technology.

[0150] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.

[0151] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.

Claims

1. A method for migrating heterogeneous systems, comprising: The source code of the system to be migrated is analyzed to obtain the data dependencies between multiple logical units in the system to be migrated; According to the data dependencies, the first logical unit among the plurality of logical units is migrated from the system to be migrated to the target system; wherein, the first logical unit represents a logical unit unrelated to business processing logic; the technology stacks of the system to be migrated and the target system are different; and In response to determining that the first logical unit has been migrated to the target system, the second logical unit among the plurality of logical units is migrated from the system to be migrated to the target system according to the data dependency relationship; wherein, the second object to be migrated represents a logical unit related to the business processing logic.

2. The method according to claim 1, wherein, The second logic unit includes a first logic subunit and a second logic subunit; wherein the processing operation of the second logic subunit depends on the processing result of the first logic subunit; The step of migrating the second logical unit from the system to be migrated to the target system according to the data dependency relationship, in response to determining that the first logical unit has been migrated to the target system, includes: In response to determining that the first logical subunit has been migrated to the target system, the second logical subunit is migrated from the system to be migrated to the target system.

3. The method according to claim 2, wherein, The step of migrating the second logical subunit from the system to be migrated to the target system in response to determining that the first logical subunit has been migrated to the target system includes: In response to determining that the first logical subunit has been migrated to the target system, a grayscale test is performed on the first logical subunit to obtain the grayscale test result; In response to determining that the grayscale test result indicates that the grayscale verification has passed, the second logic subunit is migrated from the system to be migrated to the target system.

4. The method according to claim 2, wherein, The second logic unit also includes a third logic subunit that has no data dependency relationship with any of the logic subunits in the second logic unit; The step of migrating the second logical unit from the system to be migrated to the target system according to the data dependency relationship, in response to determining that the first logical unit has been migrated to the target system, further includes: Before performing migration operations on multiple logical sub-units that have data dependencies on each other, the third logical sub-unit is migrated from the system to be migrated to the target system.

5. The method according to any one of claims 1-4, wherein, The plurality of logical units includes a third logical unit for obtaining supplementary information associated with the pending request by invoking an asynchronous service; the method further includes: In response to determining that the third logical unit has migrated to the target system, a pending request is sent to the target system, so that the target system obtains the supplementary information by calling an asynchronous service based on the third logical unit, and writes the supplementary information into a shared storage area; and The system to be migrated reads the supplementary information from the shared storage area and performs a deserialization operation so that the unmigrated logic units in the system to be migrated can generate response information based on the supplementary information to respond to the pending request.

6. The method according to claim 5, wherein, The third logic unit includes multiple third logic sub-units; the method further includes: The plurality of third logic sub-units are migrated synchronously from the system to be migrated to the target system.

7. The method according to any one of claims 1-4, wherein, The method further includes: In response to determining that multiple first logical units of the system to be migrated have been migrated to the target system, and receiving a pending request, the pending request is sent to the target system so that the target system uses multiple first logical units to process the pending request and generate intermediate data; and The intermediate data is sent to the system to be migrated, so that the system to be migrated can use the second logic unit to process the request to be processed based on the intermediate data and generate response information.

8. The method according to any one of claims 1-7, wherein, The plurality of logical units includes a fourth logical unit for recording operational information of other logical units; the method further includes: In response to determining that the grayscale test results for multiple logic units that have been migrated to the target system indicate that the grayscale verification has passed, the fourth logic unit is migrated from the system to be migrated to the target system.

9. A heterogeneous system migration device, comprising: The parsing module is used to parse the source code of the system to be migrated to obtain the data dependencies between multiple logical units in the system to be migrated. A first migration module is configured to migrate a first logical unit from the system to be migrated to the target system according to the data dependency relationship; wherein the first logical unit represents a logical unit unrelated to business processing logic; the technology stacks of the system to be migrated and the target system are different; and The second migration module is configured to, in response to determining that the first logical unit has been migrated to the target system, migrate the second logical unit among the plurality of logical units from the system to be migrated to the target system according to the data dependency relationship; wherein the second object to be migrated represents a logical unit related to the business processing logic.

10. An electronic device, comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-8.

11. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-8.

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