Electronic device and software distribution method thereof
The electronic device analyzes usage patterns and performance metrics to identify and mitigate risks in software distribution, ensuring efficient and stable deployment by selecting the optimal method.
Patent Information
- Application Number
- PCT/KR2025/015815
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-10-11
- Filing Date
- 2025-10-02
- Publication Date
- 2026-04-16
AI Technical Summary
Existing software distribution methods, such as rolling deployment, face compatibility issues due to traffic congestion and coexistence of old and new software versions, necessitating a solution that identifies and mitigates risks based on usage patterns and performance.
An electronic device and method that analyzes usage information, identifies risks associated with different distribution methods, and determines an optimal distribution method by considering factors like infrastructure configuration, failure levels, and computing costs, then performs build tests before distributing updated software.
This approach enables efficient and stable software distribution with minimal user inconvenience by selecting the most suitable method, reducing the risk of compatibility issues and optimizing resource usage.
Smart Images

Figure KR2025015815_16042026_PF_FP_ABST
Abstract
Description
Electronic device and its software distribution method
[0001] This application claims the benefit of priority based on Korean Patent Application No. 10-2024-0138752 dated October 11, 2024, and all contents disclosed in the document of said Korean Patent Application are incorporated herein as part of this specification.
[0002] The embodiments disclosed in this document relate to an electronic device and a method for distributing software thereof.
[0003] Various technologies related to application deployment, including software and microservices, have been developed and commercialized. For example, devices designed for software deployment can package software via the web and deliver it to user devices. For instance, software can be deployed in edge computing environments using cost-conscious microservice-based deployment technologies.
[0004] These software distribution technologies can be classified into various types depending on their characteristics. For example, a distributor can distribute software to service users through one of all-at-once distribution, rolling distribution, canary distribution, and blue / green distribution.
[0005] However, the aforementioned deployment methods have inherent disadvantages due to their characteristics. For example, while Rolling deployment is easy to manage as it does not require the addition of new instances, it can lead to compatibility issues due to traffic congestion on existing instances or the coexistence of existing and new software versions.
[0006] Therefore, there is a need for technology that identifies the risks associated with each of multiple distribution methods based on software usage patterns and the performance of distribution devices, along with the characteristics of each distribution method, and determines the optimal target distribution method.
[0007] According to one embodiment of the present disclosure, when information necessary to determine a software distribution method is confirmed, an electronic device and a software distribution method thereof can be provided, which can identify risks for each of a plurality of distribution methods based on the confirmed information, determine a target distribution method based on the identified risks, and distribute updated software to a software usage server based on the target distribution method.
[0008] The technical problems to be solved by the embodiments of the present disclosure are not limited to the technical problems described above, and other technical problems can be inferred from the following embodiments.
[0009] An electronic device according to one embodiment of the present disclosure may include a memory for storing at least one instruction and a processor operatively connected to said memory. For example, when the at least one instruction is executed by said processor, the electronic device may be configured to obtain usage information of said first software from at least one external device on which said first software is distributed, identify risk information of a plurality of distribution methods for distributing said second software based on the state information of said electronic device and said usage information, determine a target distribution method among said plurality of distribution methods based on said risk information, and distribute said second software based on said target distribution method.
[0010] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies a code change corresponding to the target distribution method and changes a first infrastructure configuration to a second infrastructure configuration for distributing the second software to the at least one external device based on the code change.
[0011] In an electronic device according to one embodiment of the present disclosure, the at least one instruction, when executed by the processor, may be configured such that the electronic device performs a build test including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test for the at least one external device based on the second infrastructure configuration, and if the result of the build test satisfies a specified condition, the second software is distributed based on the target distribution method.
[0012] In an electronic device according to one embodiment of the present disclosure, the second infrastructure configuration may be modified such that at least some of the number of instances according to the first infrastructure configuration, the operating performance of the electronic device, the routing information of the at least one external device, and the distribution cycle correspond to the target distribution method.
[0013] In an electronic device according to one embodiment of the present disclosure, the usage information may include at least a portion of a first infrastructure configuration regarding the first software, traffic of the first software, and user information corresponding to at least one external device.
[0014] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies a usage history including the usage amount and usage time of the first software of the at least one external device based on the traffic, identifies a distribution period for distributing the second software based on the usage history, and determines the target distribution method based on the risk information and the distribution period.
[0015] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies a non-distribution period in which usage exceeds a specified amount based on the usage history, and identifies the remaining period excluding the non-distribution period from the total period for distributing the second software as the distribution period.
[0016] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies a failure level using the expected failure time and average TPS (transactions per second) when distributing the second software through each of the plurality of distribution methods based on the state information and the usage information, and determines the target distribution method based on the risk information including the failure level.
[0017] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies the expected computing cost when distributing the second software through each of the plurality of distribution methods based on the state information and the usage information, and determines the target distribution method based on the risk information including the computing cost.
[0018] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device identifies the risk information calculated by applying a first weight and a second weight to the degree of failure and the computing cost, respectively.
[0019] In an electronic device according to one embodiment of the present disclosure, the at least one instruction may be configured such that, when executed by the processor, the electronic device provides a distribution method determination screen including risk information through a display unit, and when a determination input for the distribution method determination screen is obtained, the target distribution method corresponding to the determination input is identified.
[0020] A software distribution method performed by an electronic device according to one embodiment of the present disclosure may include: obtaining usage information of the first software from at least one external device on which the first software is distributed; identifying risk information of a plurality of distribution methods for distributing the second software based on state information of the electronic device and the usage information; identifying a target distribution method determined based on the risk information among the plurality of distribution methods; and distributing the second software based on the target distribution method.
[0021] A software distribution method performed by an electronic device according to one embodiment of the present disclosure may further include: identifying code changes corresponding to the target distribution method; changing a first infrastructure configuration to a second infrastructure configuration for distributing the second software to the at least one external device based on the code changes; performing a build test based on the second infrastructure configuration, including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test for the at least one external device; and distributing the second software based on the target distribution method if the result of performing the build test satisfies a specified condition.
[0022] In a software distribution method performed by an electronic device according to one embodiment of the present disclosure, the usage information may include at least some of a first infrastructure configuration regarding the first software, traffic of the first software, and user information corresponding to the at least one external device. For example, the software distribution method may further include an operation of identifying a usage history including the usage amount and usage time of the first software of the at least one external device based on the traffic, an operation of identifying a distribution period for distributing the second software based on the usage history, and an operation of determining the target distribution method based on the risk information and the distribution period.
[0023] A software distribution method performed by an electronic device according to one embodiment of the present disclosure may further include, based on the usage history, an operation of identifying a period during which distribution is impossible when the usage exceeds a specified amount, and an operation of identifying the remaining period excluding the period during which distribution is impossible from the total period for distributing the second software as the distribution period.
[0024] According to the embodiments disclosed in this document, updated software can be efficiently and stably distributed to external devices while minimizing inconvenience to service users through an optimal distribution method.
[0025] According to the embodiments disclosed in this document, a convenient and user-friendly distribution method decision algorithm can be provided by providing the user with identified risks for each of a plurality of distribution methods and allowing the user to select a distribution method that meets their needs.
[0026] The effects of the invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description in the claims.
[0027] FIG. 1 is a block diagram of an electronic device according to one embodiment of the present disclosure.
[0028] FIG. 2 is a drawing for illustrating an example of a software distribution system according to one embodiment of the present disclosure.
[0029] FIG. 3 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0030] FIG. 4 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0031] FIG. 5 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0032] In describing the embodiments, technical details that are well known in the technical field to which this disclosure belongs and are not directly related to this disclosure are omitted. This is intended to convey the essence of this disclosure more clearly without obscuring it by omitting unnecessary explanations.
[0033] For the same reason, some components in the attached drawings have been exaggerated, omitted, or schematically depicted. Additionally, the size of each component does not entirely reflect its actual dimensions. Identical or corresponding components in each drawing have been assigned the same reference numbers.
[0034] The advantages and features of the present disclosure and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below but may be implemented in various different forms. The embodiments provided are merely to ensure that the disclosure is complete and to fully inform those skilled in the art of the scope of the invention, and the present disclosure is defined only by the scope of the claims. Throughout the specification, the same reference numerals refer to the same components.
[0035] At this time, it will be understood that each block of the process flow diagrams and combinations of the flow diagrams can be executed by computer program instructions. Since these computer program instructions can be loaded into the processor of a general-purpose computer, a special-purpose computer, or other programmable data processing equipment, the instructions executed through the processor of the computer or other programmable data processing equipment create means for performing the functions described in the flow diagram block(s). Since these computer program instructions can also be stored in computer-available or computer-readable memory that can be directed toward the computer or other programmable data processing equipment to implement functions in a specific way, the instructions stored in such computer-available or computer-readable memory can also produce a manufactured item containing means of instruction for performing the functions described in the flow diagram block(s). Since computer program instructions can also be loaded onto a computer or other programmable data processing equipment, the instructions that execute the computer or other programmable data processing equipment by creating a process that is executed by a computer through a series of operation steps performed on the computer or other programmable data processing equipment can also provide steps for executing the functions described in the flow diagram block(s).
[0036] Additionally, each block may represent a module, segment, or part of code containing one or more executable instructions for executing a specific logical function(s). It should also be noted that in some alternative execution examples, the functions mentioned in the blocks may occur out of order. For instance, two blocks described in succession may actually be executed substantially simultaneously, or the blocks may be executed in reverse order according to their corresponding functions.
[0037] In this embodiment, the term "part" refers to a software or hardware component, such as an FPGA or ASIC, and the "part" performs certain roles. However, the meaning of "part" is not limited to software or hardware. The "part" may be configured to reside in an addressable storage medium or configured to operate one or more processors. Thus, for example, the "part" includes components such as software components, object-oriented software components, class components, and task components, as well as processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functions provided within the components and "parts" may be combined into a smaller number of components and "parts" or further separated into additional components and "parts." Furthermore, the components and "parts" may be implemented to operate one or more CPUs within a device or secure multimedia card.
[0038] The expression “at least one of a, b, and c” described throughout the specification may include ‘a alone’, ‘b alone’, ‘c alone’, ‘a and b’, ‘a and c’, ‘b and c’, or ‘a, b, and c all’.
[0039] The "terminal" mentioned below may be implemented as a computer or portable terminal capable of connecting to a server or other terminal via a network. Here, the computer includes, for example, a notebook, desktop, or laptop equipped with a web browser, and the portable terminal is a wireless communication device that ensures portability and mobility, and may include all types of handheld-based wireless communication devices such as IMT (International Mobile Telecommunication), CDMA (Code Division Multiple Access), W-CDMA (W-Code Division Multiple Access), LTE (Long Term Evolution), communication-based terminals, smartphones, tablet PCs, etc.
[0040] Embodiments of the present disclosure are described below with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0041] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.
[0042] FIG. 1 is a block diagram of an electronic device (100) according to one embodiment of the present disclosure.
[0043] Referring to FIG. 1, the electronic device (100) may include a memory (110) and a processor (120). According to an embodiment, the electronic device (100) illustrated in FIG. 1 may further include a communication circuit (130) and / or a display unit (140). For example, the electronic device (100) may further include at least one component (e.g., a display, an input device, or an output device) in addition to the components illustrated in FIG. 1.
[0044] According to one embodiment, the electronic device (100) can transmit data for the use of software to at least one external device and distribute updated software. For example, the electronic device (100) may be implemented as at least one of a notebook, desktop, laptop, and server computing device for the distribution, management, operation, and updating of software.
[0045] According to one embodiment, the memory (110) may include volatile memory and / or non-volatile memory.
[0046] According to one embodiment, the memory (110) may store data used by at least one component of the electronic device (100) (e.g., processor (120)). For example, the data may include software (or related instructions), input data, or output data. In one embodiment, the instructions may cause the electronic device (100) to perform operations defined by the instructions when executed by the processor (120).
[0047] According to one embodiment, the memory (110) may store instructions or data. For example, the memory (110) may store at least one instruction that causes the electronic device (100) (or the processor (120) to perform various operations when executed by the processor (120). For example, a program (or at least one instruction) stored in the memory (110) may be executed by the processor (120).
[0048] According to one embodiment, the memory (110) may include a plurality of storage devices of different types. For example, the memory (110) may include volatile and / or non-volatile storage media. For example, the memory (110) may include at least one of RAM (random-access memory), ROM (read-only memory), eMMC (Embedded Multi-Media Card), or any combination thereof. For example, the memory (110) may store data required for the distribution, management, and operation of software.
[0049] According to one embodiment, the processor (120) may be implemented as a computer or a similar device according to hardware, software, or a combination thereof. Hardware-wise, the processor (120) may be implemented in the form of an electronic circuit that processes electrical signals to perform control functions, and software-wise, it may be implemented in the form of a program that drives the hardware processor (120). According to one embodiment, the processor (120) may be operatively connected to a component included in the electronic device (100) (e.g., memory (110), communication circuit (130), and / or display unit (140)) to control the connected component.
[0050] According to one embodiment, the processor (120) may include a central processing unit, an application processor, a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
[0051] Meanwhile, unless otherwise specifically mentioned in the following description, the operation of the electronic device (100) may be interpreted as being performed under the control of the processor (120).
[0052] According to one embodiment, the communication circuit (130) establishes a wired communication channel and / or a wireless communication channel between the electronic device (100) and an external electronic device (e.g., the first server (210) and / or the second server (220) of FIG. 2), and can transmit and receive data with the external electronic device through the established communication channel. According to one embodiment, the communication circuit (130) can receive battery charging data from the external electronic device and / or the external server.
[0053] Here, communication, that is, the transmission and reception of data, can be performed via wired or wireless means. To this end, the communication circuit (130) may include a wired communication module that connects to the internet, etc., via a LAN (Local Area Network), a mobile communication module that connects to a mobile communication network via a mobile communication base station to transmit and receive data, a short-range communication module that uses a communication method of the WLAN (Wireless Local Area Network) family such as Wi-Fi or a communication method of the WPAN (Wireless Personal Area Network) family such as Bluetooth or Zigbee, a satellite communication module that uses a GNSS (Global Navigation Satellite System) such as GPS (Global Positioning System), or a combination thereof.
[0054] According to one embodiment, the display unit (140) may include a display that outputs various user interfaces. For example, the display unit (140) may provide at least one visual content including information regarding a plurality of distribution methods for distributing software.
[0055] For example, the display unit (140) may provide a distribution method determination screen including risk information identified by the processor (120). The distribution method determination screen may include, for example, at least some of risk information for each of a plurality of distribution methods, information on a recommended distribution method, and a distribution method determination guide.
[0056] For example, when the display unit (140) obtains a decision input from a distributor, it can provide various information regarding a target distribution method corresponding to the decision input. The display unit (140) may, for example, include a touch screen display capable of obtaining a touch input in one area. When a decision input for an icon corresponding to a target distribution method is obtained, the display unit (140) can provide various information regarding a target distribution method corresponding to the decision input.
[0057] For example, the display unit (140) can provide the distributor with a distribution process based on a target distribution method in real time. The display unit (140) can provide, for example, at least some of the distribution process of new software, distribution status, software usage information of at least one external device, traffic information, and status information of the electronic device (100).
[0058] Hereinafter, with reference to FIG. 2, a method for an electronic device (100) according to the present disclosure to distribute software to at least one external device (e.g., a first server (210) and / or a second server (220)) is described.
[0059]
[0060] FIG. 2 is a drawing for illustrating an example of a software distribution system according to one embodiment of the present disclosure.
[0061] According to one embodiment, an electronic device (100) according to the software distribution system illustrated in FIG. 2 can provide various data for the use of software to at least one external device (e.g., a first server (210) and / or a second server (220)) and distribute updated software.
[0062] According to one embodiment, the electronic device (100) may be implemented as at least one of a notebook, desktop, laptop, and server computing device for the distribution, management, operation, and update of software. The electronic device (100) may be electrically connected to at least one external device for the use of software through a communication circuit (130).
[0063] According to one embodiment, the first server (210) and the second server (220) may include an interface, a hardware / software device, that enables at least one user to execute and use software distributed and operated by the electronic device (100). For example, at least one user may use software distributed and operated by the electronic device (100) through the first server (210) or the second server (220).
[0064] According to one embodiment, the electronic device (100) can obtain usage information of the first software from at least one external device on which the first software is distributed.
[0065] For example, the electronic device (100) can obtain usage information regarding the first software that has been distributed to at least one external device by using the communication circuit (130).
[0066] According to one embodiment, the electronic device (100) can identify risk information of a plurality of distribution methods for distributing the second software based on the state information and usage information of the electronic device (100).
[0067] For example, the electronic device (100) can check real-time status information of the electronic device (100). The real-time status information may include real-time operating performance of the electronic device (100).
[0068] For example, usage information regarding the first software may include at least some of the operational performance of an electronic device (100) for the distribution, management, and / or operation of the first software, a first infrastructure configuration regarding the first software, traffic of the first software, and user information corresponding to at least one external device. The first infrastructure configuration may include, for example, the number of instances used by the first server (210) and / or the second server (220), the distribution cycle of the first software, and / or routing information of at least one external device. In other words, usage information regarding the first software may include status information of the electronic device (100) identified during the process of distributing, managing, and operating the first software, and information regarding the usage history of the first software being used by at least one external device.
[0069] For example, the electronic device (100) can identify a second software in which at least a portion of the first code information included in the first software has been changed to second code information. The second software may be input by a distributor and / or may be generated by the electronic device (100) itself. The electronic device (100) can identify code changes including, for example, a difference between the first code information and the second code information.
[0070] According to one embodiment, the electronic device (100) can determine a target distribution method based on risk information among a plurality of distribution methods.
[0071] For example, the electronic device (100) may identify a usage history including the usage and usage time of the first software of at least one external device based on traffic, identify a distribution period for distributing the second software based on the usage history, and determine a target distribution method based on risk information and the distribution period. For example, the electronic device (100) may identify a period during which distribution is not possible when the usage exceeds a specified amount based on the usage history of the first software, and identify the remaining period excluding the period during which distribution is not possible from the total period for distributing the second software as the distribution period. In other words, the electronic device (100) may determine that the risk is relatively high if distribution is carried out during the period during which distribution is not possible when the usage exceeds a specified amount within the total period set for distribution, and may identify a distribution period to perform distribution only during the remaining period excluding that period. For example, the electronic device (100) may determine a distribution method that includes a distribution period that is substantially identical or most similar to the identified distribution period among a plurality of distribution methods as the target distribution method.
[0072] For example, the electronic device (100) may identify the degree of failure using the expected failure time and average TPS (transactions per second) when distributing the second software through each of the multiple distribution methods based on status information and usage information, and determine a target distribution method based on risk information including the degree of failure. The electronic device (100) may, for example, identify the expected computing cost when distributing the second software through each of the multiple distribution methods and determine a target distribution method based on risk information including computing costs. The electronic device (100) may, for example, determine a distribution method with low risk (or low failure degree and / or computing cost) as a target distribution method based on risk information identified based on the degree of failure and / or computing cost.
[0073] For example, the failure level can be identified based on traffic generated through at least one external device, the average failure time and TPS of each of the multiple distribution methods. For example, assuming the average failure time of the first distribution method is 60 seconds and the TPS is 200, the failure level of the first distribution method can be identified as 12,000.
[0074] For example, computing costs may be identified based on at least some of the unit hour rates, instance types, instance operating costs, and instance performance required to distribute software through each of the multiple distribution methods. For example, computing costs may be identified as relative costs for each of the multiple distribution methods. For example, assuming that a first distribution method requires a first number of instances corresponding to a specified type and a second distribution method requires a second number of instances corresponding to a specified type, and that the second number is greater than the first number, the second distribution method may be identified as having computing costs that are greater than the first distribution method by the ratio of the second number to the first number.
[0075] For example, the electronic device (100) can calculate risk information by applying a first weight and a second weight to the degree of failure and computer cost, respectively. For example, the first weight may be greater than the second weight, but this is exemplary and the embodiments of the present disclosure are not limited thereto, and the first weight and the second weight may be set values that can be changed by the control of the distributor. According to one embodiment of the present disclosure, the first weight may be greater than the second weight. In other words, the electronic device (100) can determine a distribution method with a low degree of failure as a target distribution method, even if the cost is relatively high.
[0076] For example, the electronic device (100) may identify a target distribution method based on a decision input for a distribution method determination screen.
[0077] The electronic device (100) may, for example, check risk information including the degree of failure and computer costs, and provide a distribution method determination screen including the risk information checked through the display unit (140). The distribution method determination screen may, for example, include at least some of risk information for each of a plurality of distribution methods, information on a recommended distribution method, and a distribution method determination guide.
[0078] The electronic device (100) can identify a target distribution method corresponding to the determination input when, for example, it obtains a determination input for a distribution method determination screen from a distributor (e.g., a touch input for an area of the display unit (140)). The electronic device (100) can configure a pipeline for distributing the second software based on the identified target distribution method.
[0079] According to one embodiment, the electronic device (100) can distribute the second software based on a target distribution method.
[0080] For example, the electronic device (100) may identify code changes corresponding to a target distribution method and change a first infrastructure configuration for distributing the second software to at least one external device based on the code changes to a second infrastructure configuration. The second infrastructure configuration may, for example, be modified by the electronic device (100) such that at least some of the number of instances according to the first infrastructure configuration, the operating performance of the electronic device, the routing information of the at least one external device, and the distribution cycle correspond to the target distribution method.
[0081] For example, the electronic device (100) can build a deployment pipeline including a Source phase, a Build phase, and a Deploy phase based on a second infrastructure configuration. In the Source phase, for example, the electronic device (100) can identify a target deployment method and code changes corresponding to the second software. In the Build phase, for example, the electronic device (100) can process the code corresponding to the second software to be deployed by building (or compiling software) and performing build tests based on the code changes. In the Deploy phase, for example, the electronic device (100) can deploy the second software containing the code that passed the Build phase to at least one external device.
[0082] For example, the electronic device (100) may perform a build test on at least one external device based on a second infrastructure configuration, including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test. If the result of the build test satisfies a specified condition, the electronic device (100) may distribute the second software to at least one external device based on a target distribution method. The electronic device (100) may perform the build test based, for example, on code changes corresponding to the target distribution method and / or the second software. In other words, the electronic device (100) may perform the build test on at least one external device based on code changes. Based on the build test, if at least some of the repeatability, execution speed, and maintainability of the second software satisfy predefined criteria, the electronic device (100) may determine that the result of the build test satisfies the specified condition.
[0083]
[0084] FIG. 3 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0085] According to one embodiment, the electronic device (100) can perform the operations disclosed in FIG. 3. For example, at least some of the components included in the electronic device (100) (e.g., memory (110), processor (120), communication circuit (130), and display unit (140) of FIG. 1) may be configured to perform the operations of FIG. 3.
[0086] In the following embodiments, the operations S310 to S340 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Additionally, content corresponding to or overlapping with the above description in relation to FIG. 3 may be briefly explained or omitted.
[0087] According to one embodiment, the electronic device (100) can obtain infrastructure information and traffic information (S310).
[0088] For example, infrastructure information may include the operational performance of the electronic device (100) that is the subject of the distribution, the number of instances for the distribution, management and operation of the first software, the distribution cycle, and at least some of the routing information of at least one external device.
[0089] For example, traffic information may include the usage history of the first software. The traffic information may include, for example, the usage amount and usage time of the first software of at least one external device. Based on the traffic information, the electronic device (100) may identify a non-distribution period during which usage exceeds a specified amount, and identify the remaining period excluding the non-distribution period from the total period for distributing the second software as the distribution period.
[0090] According to one embodiment, the electronic device (100) can identify risk information of the distribution method based on acquired information and provide it to the user (S320).
[0091] For example, the electronic device (100) can identify risk information of a distribution method based on at least some of the infrastructure information and traffic information, and can provide a distribution method determination screen including the risk information through the display unit (140).
[0092] According to one embodiment, the electronic device (100) can receive input from the user regarding the determination of the target distribution method (S330).
[0093] For example, when the electronic device (100) receives a decision input for a region of the display unit (140), it can determine a target distribution method corresponding to the decision input.
[0094] According to one embodiment, the electronic device (100) can configure a pipeline based on a target distribution method (S340).
[0095] For example, the electronic device (100) can build a deployment pipeline including a Source phase, a Build phase, and a Deploy phase based on a second infrastructure configuration according to a target deployment method.
[0096]
[0097] FIG. 4 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0098] According to one embodiment, the electronic device (100) can perform the operations disclosed in FIG. 4. For example, at least some of the components included in the electronic device (100) (e.g., memory (110), processor (120), communication circuit (130), and display unit (140) of FIG. 1) may be configured to perform the operations of FIG. 4.
[0099] In the following embodiments, the operations S410 to S440 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Additionally, content corresponding to or overlapping with the above description in relation to FIG. 4 may be briefly explained or omitted.
[0100] According to one embodiment, the electronic device (100) can receive information on the use of the first software from at least one external device on which the first software is distributed (S410).
[0101] For example, the electronic device (100) may receive usage information from at least one external device by using a communication circuit (130). The usage information may include, for example, a first infrastructure configuration regarding the first software, traffic of the first software, and at least some of user information corresponding to at least one external device.
[0102] According to one embodiment, the electronic device (100) can identify risk information of a plurality of distribution methods for distributing the second software based on the state information and usage information of the electronic device (S420).
[0103] For example, the electronic device (100) can identify risk information for each of the multiple deployment methods based on the degree of failure and / or computing cost.
[0104] According to one embodiment, the electronic device (100) can identify a target distribution method determined based on risk information among a plurality of distribution methods (S430).
[0105] For example, the electronic device (100) can identify a deployment method with low failure rate and / or computing cost as a target deployment method. The electronic device (100) may also identify a target deployment method based on a deployment method determination input obtained from a distributor, for example.
[0106] According to one embodiment, the electronic device (100) can distribute the second software based on a target distribution method (S440).
[0107] For example, the electronic device (100) can identify code changes corresponding to a target distribution method and change a first infrastructure configuration to a second infrastructure configuration for distributing the second software to at least one external device based on the code changes.
[0108] For example, the electronic device (100) may perform a build test including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test for the at least one external device based on an infrastructure configuration. The electronic device (100) may, for example, distribute the second software to the at least one external device based on a target distribution method if the result of the build test satisfies specified conditions.
[0109]
[0110] FIG. 5 is a flowchart of the operation of a software distribution method according to one embodiment of the present disclosure.
[0111] According to one embodiment, the electronic device (100) can perform the operations disclosed in FIG. 5. For example, at least some of the components included in the electronic device (100) (e.g., memory (110), processor (120), communication circuit (130), and display unit (140) of FIG. 1) may be configured to perform the operations of FIG. 4.
[0112] In the following embodiments, the operations S510 to S560 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Additionally, content corresponding to or overlapping with the above description in relation to FIG. 5 may be briefly explained or omitted.
[0113] According to one embodiment, the electronic device (100) can identify the degree of failure and computing cost of each of the multiple distribution methods based on status information and usage information (S510).
[0114] For example, the electronic device (100) can identify the degree of failure by using the expected failure time and average TPS when distributing the second software through each of the multiple distribution methods based on status information and usage information. The degree of failure can be identified based on traffic generated through at least one external device, the average failure time and TPS of each of the multiple distribution methods. For example, assuming the average failure time of the first distribution method is 60 seconds and the TPS is 200, the degree of failure of the first distribution method can be identified as 12,000.
[0115] For example, the electronic device (100) can identify the expected computing cost when distributing the second software through each of the multiple distribution methods based on state information and usage information. The computing cost can be identified based on at least some of the unit hour rate, instance type, instance operating cost, and instance performance required to distribute the software through each of the multiple distribution methods. For example, the computing cost can be identified as a relative cost for each of the multiple distribution methods. For example, assuming that the first distribution method requires a first number of instances corresponding to a specified type and the second distribution method requires a second number of instances corresponding to a specified type, and that the second number is greater than the first number, the second distribution method can be identified as having a computing cost greater than the first distribution method by the ratio of the second number to the first number.
[0116] According to one embodiment, the electronic device (100) can calculate a first value by applying a first weight to the degree of failure (S522).
[0117] According to one embodiment, the electronic device (100) can calculate a second value by applying a second weight to the computing cost (S524).
[0118] For example, the electronic device (100) can calculate risk information by applying a first weight and a second weight to the degree of failure and computer cost, respectively. For example, the first weight may be greater than the second weight, but this is exemplary and the embodiments of the present disclosure are not limited thereto, and the first weight and the second weight may be set values that can be changed by the control of the distributor. According to one embodiment of the present disclosure, the first weight may be greater than the second weight. In other words, the electronic device (100) can determine a distribution method with a low degree of failure as a target distribution method, even if the cost is relatively high.
[0119] According to one embodiment, the electronic device (100) can identify risk information including a first value and a second value and determine a recommended distribution method based on the risk information (S530).
[0120] For example, the electronic device (100) can determine, based on risk information, the distribution method with the lowest sum of the first value and the second value as the recommended distribution method.
[0121] According to one embodiment, the electronic device (100) can provide a distribution method determination screen containing information regarding a recommended distribution method through a display unit (140) (S540).
[0122] For example, the distribution method decision screen may include at least some of risk information for each of the multiple distribution methods, information on the recommended distribution method, and a distribution method decision guide.
[0123] According to one embodiment, the electronic device (100) can check whether a decision input is received (or acquired) within a specified time (S540).
[0124] For example, the decision input may include a touch input for one area of the display unit (140) (e.g., an icon corresponding to the target distribution method).
[0125] For example, if a decision input is received within a specified time (e.g., operation S540 - Yes), the electronic device (100) can perform operation S560.
[0126] For example, if a decision input is not received within a specified time (e.g., operation S540 - No), the electronic device (100) may perform operation S555.
[0127] According to one embodiment, the electronic device (100) can distribute the second software to at least one external device based on a recommended distribution method (S555).
[0128] According to one embodiment, the electronic device (100) can distribute the second software to at least one external device based on a target distribution method corresponding to a decision input (S560).
[0129]
[0130] The electronic device according to the embodiments described above may include a processor, memory for storing and executing program data, permanent storage such as a disk drive, a communication port for communicating with an external device, and user interface devices such as a touch panel, a key, an icon, etc. Methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable code or program instructions executable on the processor. Here, computer-readable recording media include magnetic storage media (e.g., ROM (read-only memory), RAM (random-access memory), floppy disks, hard disks, etc.) and optical reading media (e.g., CD-ROM, DVD (Digital Versatile Disc)). The computer-readable recording medium may be distributed across networked computer systems, allowing computer-readable code to be stored and executed in a distributed manner. The medium may be readable by a computer, stored in memory, and executed by a processor.
[0131] Various embodiments of the present disclosure may be represented by functional block configurations and various processing steps. These functional blocks may be implemented by various numbers of hardware and / or software configurations that execute specific functions. For example, the embodiments may employ integrated circuit configurations such as memory, processing, logic, look-up tables, etc., which can execute various functions by the control of one or more microprocessors or other control devices. Similar to how components may be implemented as software programming or software elements, the embodiments may be implemented in programming or scripting languages such as C, C++, Java, assembler, etc., including various algorithms implemented as combinations of data structures, processes, routines, or other programming configurations. Functional aspects may be implemented as algorithms executed on one or more processors. Additionally, the embodiments may employ prior art for electronic configuration, signal processing, and / or data processing. Terms such as “mechanism,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical and physical configurations. The above terms may include the meaning of a series of software processes (routines) in conjunction with processors, etc.
[0132] The aforementioned embodiments are merely examples, and other embodiments may be implemented within the scope of the claims set forth below.
Claims
1. In an electronic device, Memory for storing at least one instruction; and A processor operatively connected to the above memory; comprising, When the above at least one instruction is executed by the processor, the electronic device: Acquiring usage information of the first software from at least one external device on which the first software is distributed, and Based on the status information of the electronic device and the usage information, risk information of a plurality of distribution methods for distributing the second software is identified, and Among the above multiple distribution methods, a target distribution method is determined based on the above risk information, and Configured to distribute the second software based on the above target distribution method, Electronic device.
2. In Paragraph 1, When the above at least one instruction is executed by the processor, the electronic device: Identify code changes corresponding to the above target deployment method, and A first infrastructure configuration for distributing the second software to the at least one external device based on the above code changes, configured to change the first infrastructure configuration to the second infrastructure configuration. Electronic device.
3. In Paragraph 2, When the above at least one instruction is executed by the processor, the electronic device: Based on the above second infrastructure configuration, a build test is performed for at least one external device, including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test. If the result of performing the above build test satisfies the specified conditions, the second software is configured to be distributed based on the above target distribution method, Electronic device.
4. In Paragraph 2, The second infrastructure configuration is modified such that at least some of the number of instances according to the first infrastructure configuration, the operating performance of the electronic device, the routing information of the at least one external device, and the distribution cycle correspond to the target distribution method. Electronic device.
5. In Paragraph 1, The above usage information is, A first infrastructure configuration regarding the first software, traffic of the first software, and at least some of user information corresponding to at least one external device, Electronic device.
6. In Paragraph 5, When the above at least one instruction is executed by the processor, the electronic device: Identifying a usage history including the usage and usage time of the first software of the at least one external device based on the above traffic, and Identify the distribution period for distributing the second software based on the above usage history, and Configured to determine the target distribution method based on the above risk information and the above distribution period, Electronic device.
7. In Paragraph 6, When the above at least one instruction is executed by the processor, the electronic device: Based on the above usage history, identify periods during which distribution is not possible when usage exceeds a specified amount, and Among the total period for the distribution of the second software, configured to identify the remaining period excluding the period during which distribution is not possible as the distribution period, Electronic device.
8. In Paragraph 1, When the above at least one instruction is executed by the processor, the electronic device: Based on the above status information and the above usage information, the degree of failure is identified using the expected failure time and average TPS (transactions per second) when distributing the second software through each of the above multiple distribution methods, and Configured to determine the target distribution method based on the risk information including the degree of failure mentioned above, Electronic device.
9. In Paragraph 8, When the above at least one instruction is executed by the processor, the electronic device: Based on the above status information and the above usage information, identify the expected computing cost when distributing the second software through each of the above plurality of distribution methods, and Configured to determine the target deployment method based on the risk information including the above computing costs, Electronic device.
10. In Paragraph 9, When the above at least one instruction is executed by the processor, the electronic device: Configured to identify the risk information calculated by applying a first weight and a second weight to the degree of failure and the computing cost, respectively. Electronic device.
11. In Paragraph 9, When the above at least one instruction is executed by the processor, the electronic device: A screen for determining a distribution method including the above-mentioned risk information is provided through a display unit, and When a decision input for the above distribution method decision screen is obtained, the target distribution method corresponding to the above decision input is configured to be identified. Electronic device.
12. In a software distribution method performed by an electronic device, An operation of obtaining usage information of the first software from at least one external device on which the first software is distributed; An operation to identify risk information of a plurality of distribution methods for distributing second software based on the status information of the electronic device and the usage information; An operation to identify a target distribution method determined based on the risk information among the plurality of distribution methods above; and The operation of distributing the second software based on the above target distribution method; comprising, Software distribution methods.
13. In Paragraph 12, The above software distribution method is, An operation to identify code changes corresponding to the above target deployment method; The operation of changing the first infrastructure configuration to the second infrastructure configuration for distributing the second software to the at least one external device based on the above code changes; Based on the above second infrastructure configuration, an operation to perform a build test including at least some of a system test, a smoke test, a build verification test (BVT), a build acceptance test (BAT), and a regression test for at least one external device; and If the result of performing the above build test satisfies a specified condition, the operation of distributing the second software based on the target distribution method; further comprising Software distribution methods.
14. In Paragraph 12, The above usage information is, It includes at least a portion of the first infrastructure configuration regarding the first software, the traffic of the first software, and user information corresponding to at least one external device, and The above software distribution method is, An operation to identify a usage history including the usage amount and usage time of the first software of the at least one external device based on the above traffic; An action of identifying a distribution period for distributing the second software based on the above usage history; and The operation of determining the target deployment method based on the above risk information and the above deployment period; further comprising Software distribution methods.
15. In Paragraph 14, The above software distribution method is, An action to identify a period during which distribution is not possible when usage exceeds a specified amount, based on the above usage history; and The operation of identifying the remaining period, excluding the period during which distribution is impossible, as the distribution period among the total period for the distribution of the second software; further comprising Software distribution methods.
Citation Information
Patent Citations
A software deployment method and system
CN109918089B
Container deployment method and device based on SaaS software, equipment and medium
CN114217820A
Automated deployment of applications
US10459709B1
Automated software deployment
US20160239280A1
Predicting a success rate of deploying a software bundle
US20200019393A1