WO2020063252A1 - Procédé et dispositif pour isoler une dépendance de multiples versions - Google Patents

Procédé et dispositif pour isoler une dépendance de multiples versions Download PDF

Info

Publication number
WO2020063252A1
WO2020063252A1 PCT/CN2019/103533 CN2019103533W WO2020063252A1 WO 2020063252 A1 WO2020063252 A1 WO 2020063252A1 CN 2019103533 W CN2019103533 W CN 2019103533W WO 2020063252 A1 WO2020063252 A1 WO 2020063252A1
Authority
WO
WIPO (PCT)
Prior art keywords
isolated
dependent
module
dependency
dependent package
Prior art date
Application number
PCT/CN2019/103533
Other languages
English (en)
Chinese (zh)
Inventor
韩晓飞
Original Assignee
京东数字科技控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 京东数字科技控股有限公司 filed Critical 京东数字科技控股有限公司
Publication of WO2020063252A1 publication Critical patent/WO2020063252A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present invention relates to the field of computer technology, and in particular, to a method and device for implementing multi-version dependency isolation.
  • the embodiments of the present invention provide a method and device for implementing multi-version dependency isolation, which can solve the problem that the project appearing in the process of using dependency isolation for spring boot must be a spring boot project, and a spring plugin must be used to compile the plug-in and coupling. The problem is too high.
  • a method for implementing multi-version dependency isolation includes: adding a comment to a method to be isolated; and placing a dependency package to be referenced in the method to be isolated to In the reference directory file; the annotation corresponds to the reference directory one by one; when the method to be isolated is executed, the reference directory file in which the dependent package is placed is determined according to the annotation; and a custom class loader is used to load the reference directory file Describes the dependencies in a directory file.
  • a method for implementing multi-version dependency isolation includes: using a custom class loader to load a dependency package to obtain an object instance of the dependency package; starting a container and initializing the container.
  • the function processor registers the dependent package object instance into the functional processor; when executing the method to be isolated, if a reference needs to be referenced, the dependent package object instance is removed from the functional processor and executed.
  • a device for implementing multi-version dependency isolation including: an annotation module for adding annotations to a method to be isolated; and a placing module for: isolating the method to be isolated
  • the dependent packages that need to be referenced are placed in the reference directory file; the annotations correspond to the reference directories one by one; an execution module is configured to: when executing the method to be isolated, determine the placement of the dependent packages according to the annotations A reference directory file; a loading module, configured to: use a custom class loader to load a dependent package in the reference directory file.
  • a device for implementing multi-version dependency isolation including: a loading module, configured to: use a custom class loader to load a dependent package to obtain an object instance of the dependent package; a registration module For: starting a container and initializing a function processor in the container, registering the dependent package object instance in the function processor; a reference module, for: when executing a method to be isolated, if a dependency needs to be referenced, Then take out and execute the dependent package object instance from the function processor.
  • an electronic device including: one or more processors; a storage device for storing one or more programs, and when the one or more programs are used by the one Or multiple processors, so that the one or more processors implement the method for implementing multi-version dependency isolation as proposed in the embodiment of the present invention.
  • a computer-readable medium on which a computer program is stored, and when the program is executed by a processor, the method for implementing multi-version dependency isolation as proposed in the embodiment of the present invention is implemented.
  • An embodiment of the above invention has the following advantages or beneficial effects: Because the technical means of adding annotations are used, the projects that can be solved in the process of using spring boot for dependency isolation must be spring boot projects, and spring plugins must be used to compile plugins And the degree of coupling is too high, which achieves the technical effect of relying on coexistence of multiple versions without distinguishing project types and ensuring that the versions rely on normal provision of functions. At the same time, the running dependent version can be switched in real time to avoid system abduction without the upgrade function. upgrade.
  • FIG. 1 is a schematic diagram of a main process of a method for implementing multi-version dependency isolation according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of main modules of an apparatus for implementing multi-version dependent isolation according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of a real-time isolation model according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a module isolation model according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a real-time isolation processing process according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of a module isolation processing process according to an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a telnet command processing model according to an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of combining and packaging multiple web modules into a dependent plug-in according to an embodiment of the present invention.
  • FIG. 9 is a system architecture diagram according to an embodiment of the present invention.
  • FIG. 10 is a schematic diagram of a service deployment workflow according to an embodiment of the present invention.
  • FIG. 11 is an exemplary system architecture diagram to which embodiments of the present invention can be applied.
  • FIG. 12 is a schematic structural diagram of a computer system suitable for implementing a terminal device or a server according to an embodiment of the present invention.
  • Maven is a software project management and understanding tool. Based on the concept of the Project Object Model (POM), Maven can manage project construction, reporting, and documentation from a central information. Is an open source component of the Apache community.
  • POM Project Object Model
  • Parental delegation Refers to the Java class loading model. The higher the class loader is, the earlier the class loader loads the classes under its loading path.
  • Spring boot for dependency isolation must require that the project is a spring boot project and must be compiled with the spring boot compilation plugin to take effect. Just separating conflicting dependencies into different file directories guarantees that there are no dependency conflicts. It does not substantially resolve dependency conflicts and allows conflicting dependencies to provide functions at the same time. Spring itself is a third-party dependency, and it has many indirect dependencies that are not conducive to the upgrade and maintenance of later business systems, and the coupling is too tight.
  • FIG. 1 is a schematic diagram of a main process of a method for implementing multi-version dependency isolation according to an embodiment of the present invention. As shown in FIG. 1, an embodiment of the present invention provides a method for implementing multi-version dependency isolation, including:
  • Step S101 Add a comment to the method to be isolated
  • Step S102 Place the dependent packages that need to be referenced in the method to be isolated into a reference directory file; the annotations correspond to the reference directories one by one;
  • Step S103 When the method to be isolated is executed, determine a reference directory file placed by the dependent package according to the annotation;
  • Step S104 Use a custom class loader to load the dependent packages in the reference directory file.
  • the project must be a spring boot project
  • the plugin must be compiled using spring boot, and the degree of coupling is too high, thereby achieving no distinction between project types. Realize the coexistence of multiple versions and ensure that each version depends on the normal provision of functions. At the same time, it can switch the running dependent version in real time to avoid the technical effects of upgrading the system without using the upgrade function.
  • the method further includes: receiving a telnet command; and performing at least one of the following dependent packages on the dependent package according to the telnet command.
  • the method before executing the method to be isolated, the method further includes: monitoring a service request, and determining a redirect address according to the service request; and determining the method to be isolated according to a domain name of the redirect address.
  • Multiple web modules can be implemented as a dependency plug-in, and cross-server calls are turned into internal calls for calls between internal systems.
  • An embodiment of the present invention provides a method for implementing multi-version dependency isolation, which includes: using a custom class loader to load a dependency package to obtain an object instance of the dependency package; starting a container and initializing a function processor in the container, and The dependent package object instance is registered in the function processor; when the method to be isolated is executed, if the dependency needs to be referenced, the dependent package object instance is taken from the function processor and executed.
  • the embodiments of the present invention can solve the problem that the project that appears in the process of dependency isolation using spring boot must be a spring boot project, spring plugin must be used to compile plugins, and the degree of coupling is too high, so as to achieve the distinction of project types and achieve multi-version coexistence. It also guarantees that each version depends on the normal provision of functions, and at the same time, it can switch the running dependent version in real time to the technical effect, and avoid the abduction and upgrade of the system that does not use the upgrade function.
  • the method further includes: receiving a telnet command; and performing at least one of the following operations on the dependent package object instance according to the telnet command: Select, traverse, add, delete, move to the backup area. Users can use the telnet command to perform dependent isolation related operations, which has greater maneuverability.
  • the method before executing the method to be isolated, the method further includes: monitoring a service request, determining a redirection address according to the service request, and determining the method to be isolated according to a domain name of the redirection address.
  • Multiple web modules can be implemented as a dependency plug-in, and cross-server calls are turned into internal calls for calls between internal systems.
  • FIG. 2 is a schematic diagram of main modules of an apparatus for implementing multi-version dependent isolation according to an embodiment of the present invention. As shown in FIG. 2, an embodiment of the present invention provides a device 200 for implementing multi-version dependency isolation, including:
  • Annotation module 201 configured to: add annotations to the method to be isolated;
  • a placing module 202 is configured to: place the dependent packages to be referenced in the method to be isolated into a reference directory file; the annotations correspond to the reference directory one by one;
  • An execution module 203 is configured to: when executing the method to be isolated, determine a reference directory file placed by the dependent package according to the annotation;
  • a loading module 204 is configured to load a dependent package in the reference directory file by using a custom class loader.
  • the placing module 202 is further configured to: receive a telnet command; and perform at least one of the following operations on the dependent package according to the telnet command: selecting, traversing, adding, deleting, and moving to a backup area.
  • the execution module 204 is further configured to monitor a service request, determine a redirection address according to the service request, and determine the method to be isolated based on a domain name of the redirection address.
  • An embodiment of the present invention provides a device for implementing multi-version dependency isolation, including: a loading module for loading a dependent package using a custom class loader to obtain an object instance of the dependent package; and a registration module for: starting a container And initialize the function processor in the container, and register the dependent package object instance in the function processor; the reference module is used to: when executing the method to be isolated, if the dependency needs to be referenced, the function is processed from the function The processor fetches and executes the dependent package object instance.
  • the registration module is further configured to: receive a telnet command; perform at least one of the following operations on the dependent package object instance according to the telne command: select, traverse, add, delete, move to a backup area .
  • the reference module is further configured to: monitor a service request, determine a redirection address according to the service request, and determine the method to be isolated according to a domain name of the redirection address.
  • the device of the present invention provides two isolation schemes through a custom class loader: real-time isolation and module isolation for different business scenario requirements.
  • FIG. 3 is a schematic diagram of a real-time isolation model according to an embodiment of the present invention.
  • a tool kit is provided for real-time isolation of the device.
  • the user needs to add a @isolation annotation to the method to be isolated and refer to the method by a third party Dependency packages are placed in the src / resources / isolation directory file, and URLClassLoader in the toolkit will load reference dependencies from this directory during execution.
  • FIG. 4 is a schematic diagram of a module isolation model according to an embodiment of the present invention.
  • a module plug-in is provided for the module isolation of the device, and the plug-in module is separately packaged into modules requiring special processing through Fat, Plugin and Facade A jar package, the original business system only needs to reference the jar.
  • the Plugin module needs to start the container Fat. Fat will initialize the built-in function processors and register them in the container.
  • the Facade module will register business service instances in each function processor. When referencing directly from The module fetches the object instance.
  • FIG. 5 is a schematic diagram of a real-time isolation processing process according to an embodiment of the present invention.
  • a Java class is loaded by an instance of java.lang.ClassLoader.
  • the class loader itself is a class so the Bootstrap class loader acts as the bootstrap class loader and is the parent of all other ClassLoader instances. It is the first loader to be executed. It mainly loads jars in the $ JAVA_HOME / jre / lib directory. Then there are Extension ClassLoader and SystemClassLoader. Since java is a parent-delegated loading mode, the subclass loader will only be called if the appealing class loader cannot load.
  • PluginManagerService is used to coordinate plug-in management in a multi-module coexistence scenario
  • FacadeManagerService is used to manage instance management of business service references
  • ClassloaderService is used to instantiate dependent objects
  • PluginDeployService is used For the plug-in release
  • FacadeDeployService is used to release the RegistryService for service registration.
  • Each plug-in is a business module to maintain a dependency list.
  • InjectionService is used to inject reference instances into the service.
  • TelnetServerService is used to implement telnet commands and receive operation instructions.
  • FIG. 7 is a schematic diagram of a telnet command processing model according to an embodiment of the present invention. As shown in FIG. 7, the present invention implements a JVM-based socket and an IO package to implement a telnet command for a runtime dependent plug-in.
  • Fat completes the initialization of the built-in telnet processor in 1, a telnet port will be opened for monitoring and plugging the container and the plug-in in the container.
  • the container of this device is implemented based on the java SET set.
  • the user can send the show / stop–fat–name_version.jar / start–fat–name_version.jar command to implement the instruction operation on the container.
  • the Fat module receives instructions, it will choose to traverse, add, and delete (move to the backup area) services according to different instructions.
  • FIG. 8 is a schematic diagram of combining and packaging multiple web modules into dependent plugins according to an embodiment of the present invention; as shown in FIG. 8, multiple web modules are merged and coexist.
  • the device of the present invention implements the integration and packaging of multiple web modules into a dependent plug-in through a built-in web server.
  • the Fat module needs to weave the interceptor APIGetwayFilter to the isolation module when it initializes the ClassLoader, and publish it as a web application after the container initialization is complete.
  • the loader listens to the business request, it redirects the request to the isolation module according to the port. All requests are forwarded to the loader, and the loader is configured with a redirection address.
  • the domain name of the address is the domain name of the server where the module is isolated, and different module services are distinguished by ports.
  • FIG. 9 is a system architecture diagram according to an embodiment of the present invention. As shown in FIG. 9:
  • Plug-in container which is responsible for the management of the plug-in package when it is started; the container has the function of managing plug-ins and applications; after the container is successfully started, it will automatically resolve the Plugin and facade dependencies contained in the classpath, complete the isolation load, and start them in order of priority;
  • Plugin Built-in plug-in, FatJar that meets the requirements of a specific directory format, can package one or more ordinary Java jars into a standard format FatPlugin; FatPlugin will include a configuration file, usually including plug-in class import and export configuration, Resource import and export configuration, plug-in startup priority, etc .; at runtime, the container will use a separate PluginClassLoader to load the plug-in, and build a class load index table and resource load index table based on the plug-in configuration, so that plug-ins and plug-ins, and between plug-ins and applications Isolated from each other
  • An application module is an organizational unit of an engineering application and its dependent packages. It contains all dependencies and configurations required for application startup.
  • FIG. 10 is a schematic diagram of a service deployment workflow according to an embodiment of the present invention. As shown in FIG. 10, the service deployment workflow is as follows:
  • This block mainly contains two parts: the first part is the class that ExtClassloader is responsible for loading; the second part is the class provided by JDK but cannot be loaded from ExtClassloader, but it will be run locally They are added to the classpath of the SystemClassloader, and these classes may be put into some three-party toolkits, such as sun.tools.attach.BsdVirtualMachine in tool.jar. This part is also mainly derived from engineering practices to avoid classes being Loaded more than once, which caused an error.
  • An embodiment of the present invention provides an electronic device including: one or more processors; a storage device configured to store one or more programs, and when the one or more programs are executed by the one or more processors , So that the one or more processors implement the method for implementing multi-version dependency isolation provided by the embodiment of the present invention.
  • An embodiment of the present invention provides a computer-readable medium on which a computer program is stored.
  • the program is executed by a processor, the method for implementing multi-version dependency isolation provided by the embodiment of the present invention is implemented.
  • FIG. 11 illustrates an exemplary system architecture 1100 of a method or apparatus for implementing multi-version dependency isolation to which embodiments of the present invention can be applied.
  • the system architecture 1100 may include terminal devices 1101, 1102, 1103, a network 1104, and a server 1105.
  • the network 1104 is used to provide a medium for a communication link between the terminal devices 1101, 1102, 1103 and the server 1105.
  • the network 1104 may include various connection types, such as wired, wireless communication links, or fiber optic cables, and so on.
  • the user can use the terminal devices 1101, 1102, 1103 to interact with the server 1105 through the network 1104 to receive or send messages and the like.
  • Various communication client applications can be installed on the terminal devices 1101, 1102, and 1103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, and the like (only examples).
  • the terminal devices 1101, 1102, 1103 may be various electronic devices having a display screen and supporting web browsing, including, but not limited to, smart phones, tablet computers, laptop computers, and desktop computers.
  • the server 1105 may be a server that provides various services, for example, a background management server that provides support for a shopping website browsed by the user using the terminal devices 1101, 1102, and 1103 (for example only).
  • the background management server can analyze and process the received product information query request and other data, and feed back the processing results (such as target push information and product information-just examples) to the terminal device.
  • the method for implementing multi-version dependency isolation provided by the embodiment of the present invention is generally executed by the server 1105, and accordingly, a device for implementing multi-version dependency isolation is generally provided in the server 1105.
  • terminal devices, networks, and servers in FIG. 11 are merely exemplary. According to implementation needs, there can be any number of terminal devices, networks, and servers.
  • FIG. 12 shows a schematic structural diagram of a computer system 1200 suitable for implementing a terminal device according to an embodiment of the present invention.
  • the terminal device shown in FIG. 12 is only an example, and should not impose any limitation on the functions and scope of use of the embodiments of the present invention.
  • the computer system 1200 includes a central processing unit (CPU) 1201, which can be loaded into a random access memory (RAM) 1203 according to a program stored in a read-only memory (ROM) 1202 or loaded from a storage portion 1208. Instead, perform various appropriate actions and processes.
  • RAM random access memory
  • ROM read-only memory
  • various programs and data required for the operation of the system 1200 are also stored.
  • the CPU 1201, the ROM 1202, and the RAM 1203 are connected to each other through a bus 1204.
  • An input / output (I / O) interface 1205 is also connected to the bus 1204.
  • the following components are connected to the I / O interface 1205: an input portion 1206 including a keyboard, a mouse, and the like; an output portion 1207 including a cathode ray tube (CRT), a liquid crystal display (LCD), and the speaker; a storage portion 1208 including a hard disk and the like And a communication section 1209 including a network interface card such as a LAN card, a modem, and the like.
  • the communication section 1209 performs communication processing via a network such as the Internet.
  • the driver 1210 is also connected to the I / O interface 1205 as needed.
  • a removable medium 1211 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 1210 as needed, so that a computer program read therefrom is installed into the storage section 1208 as needed.
  • the process described above with reference to the flowchart may be implemented as a computer software program.
  • the disclosed embodiments include a computer program product including a computer program carried on a computer-readable medium, the computer program containing program code for performing the method shown in the flowchart.
  • the computer program may be downloaded and installed from a network through the communication portion 1209, and / or installed from a removable medium 1211.
  • CPU central processing unit
  • the computer-readable medium shown in the present invention may be a computer-readable signal medium or a computer-readable storage medium or any combination of the foregoing.
  • the computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Programming read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
  • a computer-readable storage medium may be any tangible medium containing or storing a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device.
  • the computer-readable signal medium may include a data signal transmitted in baseband or transmitted as a part of a carrier wave, in which a computer-readable program code is carried. Such a propagated data signal may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • the computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, and the computer-readable medium may send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device .
  • Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, which contains one or more of the logic functions used to implement the specified logic.
  • Executable instructions may also occur in a different order than those marked in the drawings. For example, two successively represented boxes may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved.
  • each block in the block diagram or flowchart, and combinations of blocks in the block diagram or flowchart can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with A combination of dedicated hardware and computer instructions.
  • the modules described in the embodiments of the present invention may be implemented by software or hardware.
  • the described module may also be provided in the processor, for example, it may be described as: a processor including an annotation module, a placement module, an execution module, and a loading module.
  • the names of these modules do not in any way constitute a limitation on the module itself.
  • the annotation module can also be described as a "module for adding annotations”.
  • the present invention also provides a computer-readable medium.
  • the computer-readable medium may be included in the device described in the foregoing embodiments, or may exist alone without being assembled into the device.
  • the computer-readable medium carries one or more programs.
  • the device includes: adding a comment to the method to be isolated; and quoting the method to be isolated.
  • the dependent package is placed in the reference directory file; the annotation corresponds to the reference directory one by one; when the method to be isolated is executed, the reference directory file placed by the dependent package is determined according to the annotation; and a custom class is used for loading A loader that loads the dependent packages in the reference directory file.
  • the projects that can be resolved in the process of using spring boot for dependency isolation must be spring boot projects, spring plugins must be compiled, and the degree of coupling is too high.
  • the running dependent versions can be switched in real time to avoid the system abduction upgrade without using the upgrade function.

Abstract

La présente invention se rapporte au domaine technique des ordinateurs, et concerne ainsi un procédé et un dispositif pour isoler une dépendance de multiples versions. Un mode de réalisation spécifique du procédé consiste à : ajouter une annotation dans un procédé à isoler ; placer un paquetage de dépendance qui doit être référencé dans le procédé à isoler dans un fichier de répertoire de référence, l'annotation correspondant individuellement à un répertoire de référence ; déterminer le fichier de répertoire de référence dans lequel le paquetage de dépendance est placé selon l'annotation lors de l'exécution du procédé à isoler ; charger le paquetage de dépendance dans le fichier de répertoire de référence par utilisation d'un chargeur de classe personnalisée. Le mode de réalisation spécifique est apte à résoudre des problèmes, tels que le degré de couplage trop élevé qui se produit lors de la réalisation d'une isolation de dépendance par utilisation d'un amorçage à ressort, permettant ainsi d'obtenir l'effet technique de multiples versions dépendantes coexistant sans distinction de type d'élément et de garantir que chaque dépendance de version fournit normalement des fonctions, tandis qu'une version dépendante de l'exécution peut être commutée en temps réel pour empêcher un système n'utilisant pas de fonction de mise à niveau de détourner une mise à niveau.
PCT/CN2019/103533 2018-09-29 2019-08-30 Procédé et dispositif pour isoler une dépendance de multiples versions WO2020063252A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811151298.0 2018-09-29
CN201811151298.0A CN110968340A (zh) 2018-09-29 2018-09-29 一种实现多版本依赖隔离的方法和装置

Publications (1)

Publication Number Publication Date
WO2020063252A1 true WO2020063252A1 (fr) 2020-04-02

Family

ID=69949296

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/103533 WO2020063252A1 (fr) 2018-09-29 2019-08-30 Procédé et dispositif pour isoler une dépendance de multiples versions

Country Status (2)

Country Link
CN (1) CN110968340A (fr)
WO (1) WO2020063252A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068903B (zh) * 2020-09-21 2024-05-03 深圳市欢太科技有限公司 应用程序的加载方法、应用程序的加载装置、介质与设备
CN112416459B (zh) * 2020-11-23 2024-03-01 杭州当虹科技股份有限公司 一种解决微服务之间版本强依赖的系统
CN112486512A (zh) * 2020-11-25 2021-03-12 湖南麒麟信安科技股份有限公司 基于容器和堆叠文件系统的Linux通用软件适配方法及系统
CN115794416B (zh) * 2023-02-02 2023-04-07 徐工汉云技术股份有限公司 基于Storm和Nacos的数据热切换方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301662A1 (en) * 2007-05-31 2008-12-04 International Business Machines Corporation Method for versioning classes loaded in an osgi-enabled j2ee environment
US20140059527A1 (en) * 2012-08-24 2014-02-27 Ca, Inc. Injection of updated classes for a java agent
CN107656775A (zh) * 2017-10-18 2018-02-02 国云科技股份有限公司 一种基于ClassLoader的自定义类查找方法
CN108304175A (zh) * 2018-01-29 2018-07-20 口碑(上海)信息技术有限公司 代码文件隔离打包方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997075B2 (en) * 2013-07-23 2015-03-31 Red Hat, Inc. System and method for dynamic class management
CN105404524B (zh) * 2014-09-15 2019-01-15 阿里巴巴集团控股有限公司 Java应用中的类加载隔离方法及装置
CN107608677B (zh) * 2017-09-05 2020-11-03 腾讯科技(深圳)有限公司 一种编译处理方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301662A1 (en) * 2007-05-31 2008-12-04 International Business Machines Corporation Method for versioning classes loaded in an osgi-enabled j2ee environment
US20140059527A1 (en) * 2012-08-24 2014-02-27 Ca, Inc. Injection of updated classes for a java agent
CN107656775A (zh) * 2017-10-18 2018-02-02 国云科技股份有限公司 一种基于ClassLoader的自定义类查找方法
CN108304175A (zh) * 2018-01-29 2018-07-20 口碑(上海)信息技术有限公司 代码文件隔离打包方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BARACKHUSSEINOBAMA, THE WAY OF JAVA CUSTOM CLASSLOADER TO IMPLEMENT ISOLATE RUNNING OF DIFFERENT VERSIONS OF JAR PACKAGES, 14 June 2017 (2017-06-14), pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/t894690230/article/details/73252331.> *

Also Published As

Publication number Publication date
CN110968340A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
WO2020063252A1 (fr) Procédé et dispositif pour isoler une dépendance de multiples versions
US10481884B2 (en) Systems and methods for dynamically replacing code objects for code pushdown
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US20110078667A1 (en) Static code analysis for packaged application customization
CN110865889B (zh) 组件间传递事件的方法和装置
CN110716720A (zh) 一种实现应用热部署的方法和装置
US8887122B2 (en) Find and track information of interface usage of software libraries by other software
CN109670299A (zh) 一种创建Python沙盒环境的方法及电子设备
WO2014056371A1 (fr) Procédé et appareil pour déterminer une plage de fichiers à faire migrer
US20230259358A1 (en) Documentation enforcement during compilation
US8516455B2 (en) Dynamic loading of kernel extensions
CN108376074B (zh) 一种基于嵌入式系统的RancherOS ros核心模块移植方法
US20140007053A1 (en) Dynamically configuring an integrated development environment
CN114840195B (zh) 一种针对iOS SDK静态库的私有化方法
CN113778388A (zh) 程序开发方法和装置
US20070277170A1 (en) Merger driven application installation
WO2022183810A1 (fr) Procédé et appareil de mise à jour de module d&#39;extension, dispositif électronique, système et support de stockage
CN113495747B (zh) 一种灰度发布方法和装置
CN117093286B (zh) 插件生成方法、装置、设备及计算机可读存储介质
EP4102357A1 (fr) Organisateur d&#39;environnement de développement avec commutation et partage d&#39;état améliorés
CN117056317B (zh) 数据处理方法、装置、设备及计算机可读存储介质
US20230074580A1 (en) Runtime-tailored security policies for applications
Kiss Build automation systems against CI lock-in-A comparative study of Dagger and Mage
Docker Docker documentation
Wilkes et al. From script to framework

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19865522

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19865522

Country of ref document: EP

Kind code of ref document: A1