CN104854558A - 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品 - Google Patents

用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品 Download PDF

Info

Publication number
CN104854558A
CN104854558A CN201380065346.3A CN201380065346A CN104854558A CN 104854558 A CN104854558 A CN 104854558A CN 201380065346 A CN201380065346 A CN 201380065346A CN 104854558 A CN104854558 A CN 104854558A
Authority
CN
China
Prior art keywords
software
new
source code
code
load balancer
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201380065346.3A
Other languages
English (en)
Other versions
CN104854558B (zh
Inventor
B·约翰森
S·彼得森
P·安德森
A·查蒂拉
A·弗兰岑
J·马洛伊
T·尼尔森
T·哈马姆
R·特伦布莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN104854558A publication Critical patent/CN104854558A/zh
Application granted granted Critical
Publication of CN104854558B publication Critical patent/CN104854558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

用于使用编译和部署服务(300)进行软件构建和负载处理的系统、方法和计算机程序产品。一种用于使用编译和部署服务(300)进行软件构建和负载处理的方法包括在该服务(300)处接收新的软件。该方法进一步包括在该服务(300)处将所接收的新的软件与数据库(525,725)中的数据进行比较,其中该数据包括活动软件。该方法进一步包括在该服务(300)处基于该比较而将所述新的软件与活动软件合并到一个或多个负载模块(335,550a,550b)中。该方法进一步包括将该一个或多个负载模块部署到一个或多个目标处理单元(340,400,410)。

Description

用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品
技术领域
本发明总体上涉及改善软件构建和负载处理,尤其涉及用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品。
背景技术
通常,在构建软件应用之后,源代码、配置文件和其它加工材料被生成、编译并封装至负载模块中。一旦构建了这些负载模块,该负载模块就可以被运送至执行环境,它们在那里被加载并且可能链接至处理单元。
图1是图示出典型构建过程的流程图。可以使用生成器120提供或自动创建源文件110。例如使用通用的帧、类、原型、模板、方面或其它本体论模型,生成器120可以使用配置文件100自动生成源文件110。生成器120还可以包括一种或多种编程工具,诸如模板处理器或集成开发环境(IDE)。
源文件110可以由编译器130编译为目标文件140。编译器130可以是将以一种编程语言编写的源代码变换为另一种计算机语言的计算机程序或程序集合。例如,编译器130可以将源代码从高级编程语言转译为较低级别的语言,诸如汇编语言或机器代码。
在如图1所示的典型构建过程中,编译器130可以将源文件110转换为目标文件140。目标文件140例如可以包含能够重新定位的格式的机器代码。由于目标文件140可能无法直接执行,所以它们可以被输入到归档器150中。归档器150可以是链接器或链接编辑器,其取得编译器130所生成的一个或多个目标文件并且将它们组合为单个可执行程序或负载模块160。计算机应用可以包括若干模块160,并且所有模块都并非必然包含于单个目标文件140中。例如,目标文件140可以包含由归档器150所分解的符号,该归档器150将目标文件链接至统一的可执行程序或负载模块160。结果,负载模块160可以包括可执行和可链接格式(ELF)归档、JAR(Java归档)或TAR(磁带归档)文件、Debian(DEB)或PRM封包,或者其它容器。
一旦针对软件应用构建了负载模块,该软件应用的类型可以确定该负载模块如何从构建地点发送以便被加载到处理单元上。目前,在将负载单元发送至处理单元时,经常假设新的负载单元并不对该处理单元上的已有软件形成干扰。此外,经常假设新的负载模块与处理单元上的诸如中间件和操作系统的基础软件架构相兼容。在一些情况下,新的负载模块可以在处理单元上的沙箱中进行测试。沙箱允许新的负载模块相对于实际处理单元环境进行测试而并没有对实际设备的操作形成干扰的风险。
图2是图示负载模块被加载到处理单元上的流程图。在典型的加载过程中,最差的情况是在负载模块160被加载到处理单元200上时并未执行检查。在其它情况下—诸如当使用如apt或yum的封装管理器时—在新的封装被加载到处理单元200上或者对现有封装进行更新时执行基本依赖性检查。违反一种或多种依赖性的封装可能不会被加载。
图1和图2所示的以上构建和加载过程在其中软件变化相对不频繁的静态环境中能够良好工作。例如,当前处理在桌面设置或小型服务器群中可能是够用的。然而,在现代环境中,以上构建和加载处理存在着问题。例如,在大型数据中心和云部署中,常规容器或封装系统并不够用。此外,由于数据中心和云环境中的状态频繁变化,所以需要频繁的负载模块部署。另外,特别是在云环境中,必须能够对功能软件进行封装并且将其部署在动态分配的虚拟机上。
复杂应用还经常在多个处理单元200上进行扩展。应用经常跨多个处理单元200,从而安装和更新必须跨多个处理单元200进行协调。例如,软件可能需要被加载到执行特定任务的处理单元200上,作为结果,不同软件在加载到处理单元上时必须一起工作。处理单元200和服务还可以在具有不同要求的用户之间进行共享。此外,新的软件可能对现有软件形成干扰,并且因此当在处理单元上执行时导致错误和故障时间。
因此,需要克服当前的软件构建和负载处理的缺陷。
发明内容
特定实施例针对用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品。
在某些实施例中,软件被加载到被布置为提供编译和部署服务的服务器(或服务)上。例如,该服务提供了被配置为允许存储目标处理单元所采用的所有活动软件的数据库。活动软件可以处于源格式或者中间格式。例如,中间格式可以是针对目标环境的本地目标代码。
在一个特定实施例中,提供了一种用于使用编译和部署服务进行软件构建和负载处理的方法。该方法包括在该服务处接收新的软件。该方法进一步包括在该服务处将所接收到的新的软件与数据库中的数据进行比较,其中该数据包括活动软件。该方法进一步包括在该服务处基于该比较而将该新的软件和活动软件合并到一个或多个负载模块中。此外,该方法进一步包括将该一个或多个负载模块部署到一个或多个目标处理单元。
在某些实施例中,该新的软件可以是被封装至容器中的源代码。在该实施例中,该比较步骤进一步包括在源级别上针对之前所定义的约束和活动软件对源代码进行检查。此外,该合并步骤进一步包括在该服务处将该源代码和活动软件进行合并和编译。
在某些实施例中,该新的软件可以是被封装至容器中的经编译的源代码,该容器具有描述经编译的源代码的属性的新的清单。在该实施例中,该数据库中的数据包括与该活动软件相关联的一个或多个现有清单文件。该比较步骤进一步包括提取新的清单并且相对于预定义的约束和一个或多个现有清单对该新的清单进行检查。
在一些实施例中,该新的软件是中间格式的源代码。在该实施例中,该方法的比较步骤进一步包括相对于预定义的约束和活动软件对该中间格式的源代码进行检查。此外,该合并步骤进一步包括对该中间格式的源代码进行完全编译。在一些实施例中,该合并步骤进一步包括在语句和表达式的级别上将中间格式的源代码与活动软件进行合并。
在一些实施例中,该方法进一步包括在该服务处接收所接收到的新的软件的一个或多个代码特性,其中该数据库数据包括所存储的该活动软件的特性。该方法进一步包括在该服务处作为该数据比较的一部分将所接收到的新的软件的代码特性与所存储的活动软件的代码特性进行比较。
在其它实施例中,该目标处理单元包括一个或多个SGSN节点和负载平衡器,该新的软件包括SGSN软件和新的负载平衡器规则,并且该数据包括现有的负载平衡器规则。
在一些实施例中,该方法的比较步骤进一步包括使用一个或多个负载平衡器检查和编译器相对于现有负载平衡器规则对新的负载平衡器规则进行检查。该方法的合并步骤进一步包括将新的负载平衡器规则中与现有负载平衡器规则共有的部分进行合并,并且报告与现有负载平衡器规则冲突的新的负载平衡器规则。
在一些实施例中,该方法的比较步骤进一步包括在一个或多个SGSN检查器和编译器检查SGSN软件。
在一些实施例中,该目标处理单元通过处理器架构、操作系统和/或新的软件的预期使用中的一个或多个进行归类。
根据特定实施例,提供了一种用于使用编译和部署服务进行软件构建和负载处理的系统。该系统包括编译和部署服务,其包括服务器,耦合至该服务器的处理器,耦合至该处理器的存储器,和电子耦合至该服务器的数据库。该处理器被配置为接收新的软件。该处理器进一步被配置为将所接收到的新的软件与数据库中的数据进行比较,其中该数据包括活动软件。该处理器进一步被配置为基于该比较而将该新的软件和活动软件合并到一个或多个负载模块中。此外,该处理器进一步被配置为将该负载模块部署到目标处理单元。
在某些实施例中,新的软件是被封装至容器中的源代码,并且该处理器可以进一步被配置为在源级别上针对之前所定义的约束和活动软件对源代码进行检查。该处理器还可以进一步被配置为将该源代码和活动软件进行合并和编译。
在其他实施例中,该新的软件是被封装至容器中的经编译的源代码,该容器具有描述经编译的源代码的属性的新的清单。在该实施例中,该数据库中的数据可以包括与该活动软件相关联的一个或多个现有清单文件。此外,该处理器可以进一步被配置为提取新的清单并且相对于预定义的约束和一个或多个现有清单对该新的清单进行检查。
在一些实施例中,该新的软件是中间格式的源代码,并且该处理器可以进一步被配置为相对于预定义的约束和活动软件对该中间格式的源代码进行检查。该处理器还可以进一步被配置为对该中间格式的源代码进行完全编译。在一些实施例中,该处理器可以进一步被配置为在语句和表达式的级别上将中间格式的源代码与活动软件进行合并。
在一些实施例中,该系统进一步包括处理器,其进一步被配置为接收所接收到的新的软件的一个或多个代码特性,其中该数据库数据包括所存储的该活动软件的特性。该处理器可以进一步被配置为作为该数据比较的一部分将所接收到的新的软件的代码特性与所存储的活动软件的代码特性进行比较。
在其它实施例中,该目标处理单元包括一个或多个SGSN节点和负载平衡器,该新的软件包括SGSN软件和新的负载平衡器规则,并且该数据包括现有的负载平衡器规则。在一些实施例中,该系统可以包括处理器,其进一步被配置为相对于现有负载平衡器规则对新的负载平衡器规则进行检查。该处理器可以进一步被配置为将新的负载平衡器规则中与现有负载平衡器规则共有的部分进行合并。该处理器还可以进一步被配置为报告与现有负载平衡器规则冲突的新的负载平衡器规则。在一些实施例中,该系统可以进一步包括一个或多个SGSN检查器和编译器,其中该处理器进一步被配置为使用该一个或多个SGSN检查器和编译器检查新的SGSN软件。
根据另一个实施例,提供了一种包括计算机可读介质的非瞬态计算机程序产品,该计算机可读介质存储具体化在该介质中的计算机可读程序代码。该计算机程序产品包括用于使得设备接收新的软件的程序代码。该计算机程序产品包括用于使得设备将所接收到的新的软件与数据库中的数据进行比较的程序代码,其中该数据包括活动软件。该计算机程序产品包括用于使得设备基于该比较而将该新的软件和活动软件合并到一个或多个负载模块中的程序代码。此外,该计算机程序产品包括用于使得设备将该负载模块部署到一个或多个目标处理单元的程序代码。
在某些实施例中,该新的软件是被封装至容器中的源代码。该计算机程序产品进一步包括用于使得设备在源级别上针对之前所定义的约束和活动软件对源代码进行检查的程序代码。该计算机程序产品进一步包括用于使得设备将该源代码和活动软件进行合并和编译的程序代码。
在其他实施例中,该新的软件是被封装至容器中的经编译的源代码,该容器具有描述经编译的源代码的属性的新的清单。此外,该数据库中的数据包括与该活动软件相关联的一个或多个现有清单文件。该计算机程序产品进一步包括用于使得设备提取新的清单并且相对于预定义的约束和一个或多个现有清单对该新的清单进行检查的程序代码。
在一些实施例中,该新的软件是中间格式的源代码。该计算机程序产品进一步包括用于使得设备相对于预定义的约束和活动软件对该中间格式的源代码进行检查的程序代码。该计算机程序产品进一步包括用于使得设备在语句和表达式的级别上将中间格式的源代码与活动软件进行合并的程序代码。
附图说明
结合于此并且形成该说明书的一部分的附图图示了本公开的各个实施例,并且连同描述一起进一步用来对本公开的原理加以解释并且使得本领域技术人员能够进行并使用这里所公开的实施例。在附图中,同样的附图标记指代相同或功能相似的要素。
图1是图示典型构建过程的流程。
图2是图示被加载到处理单元上的负载模块的流程图。
图3是图示依据示例性实施例的使用部署服务进行部署的流程图。
图4是图示依据示例性实施例的对应用处理器进行服务的负载平衡器的流程图。
图5是图示依据示例性实施例的检查以及构建新的SGSN相关软件的最终阶段的流程图。
图6是图示依据示例性实施例的使用部署服务进行部署的方法的流程图。
图7是示意性图示出依据示例性实施例的服务的功能框图。
具体实施方式
特定实施例针对用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品。
新的软件可以被加载到对负载模块的创建和部署进行管理的服务上。该服务可以用作将新的软件负载模块部署至处理单元的中介。在一些实施例中,该服务是包含数据库的服务器。该数据库可以包含当前在目标处理单元上执行的所有活动软件,之前被该服务所接收并且被部署到目标处理单元的软件,和/或与目标处理单元相关的诸如约束的其它信息。该活动软件可以以多种不同格式进行存储,包括例如源格式或中间格式。在一些实施例中,该中间格式可以是针对目标处理单元环境的本地目标代码。
在一些实施例中,该服务可以以源格式或者以一些预编译的中间代码来接收新的软件。在一个示例性实施例中,该中间代码允许该服务针对与目标处理单元的兼容性对该代码进行检验和检查。一旦针对兼容性进行了检查,该服务就能够将新的软件与之前上传至该服务并且存储在数据库中的软件进行合并。在一些实施例中,新的负载单元能够从所合并的软件生成并且被部署至目标处理单元。
现在参考图3,示出了图示根据示例性实施例的使用部署服务进行部署的流程图。在一个示例性实施例汇总,服务300接收要被部署在处理单元340上的新的软件。在一些实施例中,可以是源文件和/或中间代码310的新的软件可以由预编译器封装到一个或多个容器320中。服务300可以接收一个或多个容器320。在示例性实施例中,任何上传的容器320都包含适合部署服务300针对与活动软件和目标处理单元信息的兼容性而对容器320内的代码进行检验和检查的格式的代码310,其中活动软件和目标处理单元信息可以存储在数据库中。
在一个示例性实施例中,服务300确保所接收到的新的软件与活动或现有软件一起工作。一种优势在于,可能在其被部署到处理单元340之前确保新的软件与活动软件一起进行工作。另一个优势在于,可能针对与处理单元340上的现有软件的兼容性而对来自不同供应方的软件进行检查而无需公开源代码。
在创建新的中间代码并且利用活动软件对该中间代码进行检查时存在多种可能性。例如,在一个实施例中,源代码310可以在被服务300所接收之前被封装至容器320中。服务300可以针对预定义的约束和/或数据库中的活动代码而对源代码进行检查或比较。如果所有约束都得到满足,则新的代码可以与其它活动软件一起被编译并合并到负载模块330中。经编译的格式例如可以包括本地目标代码或者诸如用于Java虚拟机(JVM)的中间虚拟机代码。
在一些实施例中,源代码310可以被编译和封装至容器320中,并且描述容器中的代码的清单可以随容器320进行传送。通常,与包括源和中间代码的代码相关的特性可以由服务300所接收。服务300可以接收容器320内的代码以及描述容器内的代码的属性(即,代码特性)的清单。在一些实施例中,当服务300接收到容器320内的代码时,服务300提取描述代码的清单并相对于预定义的约束(即代码特性)以及数据库中所存储的活动的或之前上传的代码的其它清单对其进行检查。如果所有约束都得到满足,则服务300可以将经编译的新的软件或者容器320内的代码与数据库中所存储的其它活动软件进行合并以形成一个或多个负载模块330。
在某些实施例中,源代码310可以被编译为人类无法读取但是能够利用程序进行检验的中间格式。半编译代码310可以被封装在容器320内并且被服务300所接收。服务300可以针对兼容性、相对于预定义的约束(即,代码特性)以及数据库中所存储的活动代码对该半编译代码进行检查。如果所有约束都被满足,则代码可以被编译为其最终格式并且与其它活动软件合并到负载模块330中。该编译格式例如可以包括本地目标代码或者诸如用于Java虚拟机(JVM)的中间虚拟机代码。
以上和其它实施例的一个优势在于,新的软件310、320并不需要以源格式进行上传并且因此无法由人轻易地进行检验。然而,新的软件能够以其所有复杂性而为服务300上所实施的一致性检查器所用。例如,新的软件可以由服务的一致性检查器针对任何可能的不一致性或约束而在低至语句和表达式的级别进行检查。另一个优势在于,可能在低至语句和表达式的级别将半编译代码与其它的活动代码进行复杂合并。因此,服务300可能接收应用的多个部分并且在针对兼容性和其它约束进行检查时将其与整个应用完全合并。此外,服务300可能将来自不同供应方的软件部分合并为一个应用。
在一些实施例中,该数据库包含目标处理单元340的分类,例如包括处理器架构、操作系统等。数据库还可以包含涉及到处理单元340或活动软件的预期使用的分类信息,而使得处理单元340可以仅接收预期用于该处理单元的新软件。这些分类和分类信息可以作为与新软件或活动软件相关联的代码特性的一部分而被包括。
此外,在一些实施例中,服务300可以将负载模块330部署至处理单元340。一旦构建处理开始,服务300就可以针对被新的软件变化所影响到的目标处理单元340生成或重新构建负载模块330。在重新构建或构建负载模块330之后,服务300就将负载模块330加载或激活至目标处理单元340。
现在参考图4,示出了图示根据一些实施例的为应用处理器进行服务的负载平衡器的流程图。在一些实施例中,一些处理单元用作运行应用410的一些其它处理单元的负载平衡器400。该应用可以包括从网络接受分组的任何应用,例如包括web服务器、sip服务器、移动管理实体(MME)节点、家庭订户服务器(HSS)节点等。
应用处理器410的配置是动态的并且可以随时间有所变化。在一些实施例中,当配置发生变化时,负载平衡器400的软件进行更新以便适应新的和/或经更新的应用。在一些实施例中以及根据图4中的设置,该系统当前可以在处理单元410上运行Web和SIP服务器二者。例如,可能期望对一些处理单元410进行重新配置以作为SGSN节点进行运行。结果,SGSN软件将需要在一些处理单元410上安装。此外,负载平衡器400上的软件可能需要被更新而使得负载平衡器400可以将来自无线电网络的连接分布至对它们进行处理的具体应用处理器。
图5是图示根据示例性实施例的检查以及构建新的SGSN相关软件的最终阶段的流程图。如以上示例中所描述的,可能期望对某些处理单元进行重新配置以在仅具有web服务器和SIP服务器的系统中运行SGSN节点。根据一些实施例,服务300可以接收新的SGSN软件包510或者新的软件,以及与该新的SGSN软件包510相关联的负载平衡器规则520。
在一些实施例中,服务300可以通过SGSN检查器和编译器540a运行新的SGSN软件包510。在一些实施例中,SGSN检查器和编译器540a可以将新的SGSN软件与例如服务300所能够访问的数据库中存储的活动SGSN软件或处理单元约束进行比较。如果SGSN软件包510成功完成SGNS检查器540a所执行的比较,则新的SGSN软件包510可以被编译为能够被一个或多个处理单元所理解的代码并且被加载到SGSN负载模块550a。
在一些实施例中,负载平衡器规则520被预编译为人类无法读取但是能够被服务300上的规则编译器的下一个阶段所解析的格式。在示例性实施例中,针对现有负载平衡器规则525对新的负载平衡器规则520进行检查。现有负载平衡器规则525例如可以存储在能够由服务300所访问的数据库中。在一些实施例中,存在对新的负载平衡器规则520进行比较和编译的负载平衡器检查器和编译器540b。负载平衡器检查器和编译器540所执行的比较可以包括确定新的负载平衡器规则520中的哪些部分和现有负载平衡器规则525共有。该比较还可以包括确定并报告新的负载平衡器规则520和现有负载平衡器规则520冲突的部分。这些负载平衡器规则可以作为与新的软件或活动软件相关联的代码特性的部分而被包括。
在一些实施例中,负载平衡器检查器和编译器540可以将所有新的负载平衡器规则520与现有负载平衡器规则525进行合并,或者其可以仅合并规则对子集,诸如共有规则。此外,合并规则可以被编译为能够被负载平衡器所理解的代码并且被封装到负载模块550b中。在一些实施例中,如果发生错误—例如如果新的负载平衡器规则520将与现有负载平衡器规则525发生冲突—则旧的软件版本将不会从目标处理单元被去除。此外,可以将错误报告发送回发起该事务的用户。
现在参考图6,示出了图示根据示例性实施例的使用部署服务进行部署的方法的流程图。在一些实施例中,根据步骤S600,该服务接收新的或经修改的软件。如以上所解释的,所接收的软件可以为许多不同格式,包括源代码格式、中间格式、具有描述代码的清单的编译格式,等等。
在一些实施例中,依据步骤S610,该服务将所接收的新的软件与数据库中的数据进行比较。该数据例如可以包括当前部署在目标处理单元上的活动软件,之前已经在该服务接收的软件,与软件和/或目标处理单元相关的约束,与软件和/或目标处理单元相关的代码特性,等等。除了评估其它约束和代码特性之外,该比较例如可以包括针对所接收的新的软件与活动软件之间的不一致性进行检查,针对例如操作系统要求的兼容性进行检查。
依据步骤S620,在一些实施例中,该服务基于步骤S610的比较将新的软件与活动软件合并为一个或多个负载模块。如以上所解释的,该新的软件可以为源代码格式或者中间格式,并且可能另外需要被编译以便与活动代码合并到负载模块中。此外,基于该比较,新软件以其整体或者子集—诸如仅新的和活动软件之间共有的组件—可以与活动软件进行合并并且被构建为负载模块。
在一些实施例中,依据步骤S630,一个或多个负载模块可以被部署至一个或多个目标处理单元。该部署例如可以基于数据库中所包含的与处理单元相关的数据。
现在参考图7,示出了示意性图示出根据示例性实施例的服务的功能框图。服务300可以包括处理器或其它处理器件,存储器或其它存储器件,以及网络接口或者其它联网器件。在一个示例性实施例中,该设备包括数据处理系统700(例如,以下的一个或多个:微处理器、专用集成电路—ASIC、现场可编程门阵列(FPGA)、逻辑电路和其它电路)、数据存储系统725(例如,非易失性存储器,诸如硬盘、闪存或其它存储单元)以及网络接口720。
数据存储系统725可以包括一个或多个非易失性存储设备和/或一个或多个易失性存储设备(例如,随机访问存储器(RAM))。在服务300包括数据处理系统700和微处理器的情况下,计算机可读程序代码可以被存储在计算机可读介质中,诸如但并不局限于磁性介质(例如,硬盘)、光学介质(例如,DVD)、存储器设备(例如,随机访问存储器)等。在一些实施例中,计算机可读程序代码被配置为使得当被处理器所执行时,该代码使得该设备执行以上所描述的步骤。在其它实施例中,该设备被配置为在不需要代码的情况下执行以上所描述的步骤。
此外,网络接口720可以提供用于连接至网络730的器件。网络接口720被配置为使得能够使用有线和/或无线连接而与通信网络730进行通信。在示例性实施例中,处理单元也能够连接至网络730。网络730例如可以是GPSR核心网络、互联网等。
在该服务是服务器的实施例中,服务器300可以包括用于传送和接收数据的网络接口720,具有用于控制服务器设备300的操作的处理器的数据处理系统700,以及用于存储计算机可读指令(即,软件)和数据的数据存储系统725。网络接口720和数据存储系统725耦合至数据处理系统700并与之进行通信,数据处理系统700控制其操作以及它们之间的数据流程。
这里所描述的方法能够在以上所描述的服务300中实施。在这样的实施例中,方法动作利用存储在数据存储系统725的计算机可读介质中并且能够由数据处理系统700所执行的计算机可读程序代码来实现。如本领域技术人员将会意识到的,这样的计算机可读程序代码可以以任意适当方式来实现并提供,例如在制造期间安装、在后续时间上传等。此外,数据存储系统725、数据处理系统700以及网络接口720包括软件和/或固件,除了被配置为在使得能够实施所要描述的方法之外,上述软件和/或固件被配置为在网络中操作时控制该服务的总体操作。然而,出于避免不必要的细节的目的,在本公开中并不针对该总体操作进行进一步描述。
以上所描述的实施例呈现了若干优势。例如,通过使用服务来自动解决软件封装之间的复杂依赖性,在软件被部署在复杂的数据中心和/或云环境中时减少错误数量。此外,使用服务可以通过借助将共有规则集合自动映射至具体处理单元上的新软件而使得新软件的部署自动化来简化软件的管理和部署。
此外,使用服务可以在软件整合中引入新的可能性。例如,能够针对确保新软件能够应用于所预期的系统并且所预期的操作环境与该软件相兼容的约束集合对该软件进行检查。此外,使用服务可以允许软件的复杂合并,因此创建了现有软件和新版本的合成。
虽然上文中已经描述了本发明的各个实施例,但是应当理解的是,它们仅是作为示例而非限制被给出。因此,本发明的宽度和范围并不应当受任何以上所描述的示例性实施例所限制。此外,以上所描述的要素的任何组合在其所有可能的变化形式中都被本发明所覆盖,除非这里以其它方式有所指示或者以由上下文以其它方式明确否定。
此外,虽然以上所描述并且在图中所图示的处理作为步骤的序列被示出,但是这样做仅是为了进行说明。因此,预见到可以增加一些步骤,可以省略一些步骤,步骤的顺序可以重新安排,并且一些步骤可以并行执行。

Claims (24)

1.一种用于使用编译和部署服务(300)进行软件构建和负载处理的方法,包括:
在所述服务(300)处接收新的软件;
在所述服务(300)处将所述接收的新的软件与数据库(525,725)中的数据进行比较,其中所述数据包括活动软件;
在所述服务(300)处基于所述比较而将所述新的软件与活动软件合并到一个或多个负载模块(335,550a,550b)中;以及
将所述一个或多个负载模块部署到一个或多个目标处理单元(340,400,410)。
2.根据权利要求1所述的方法,其中所述新的软件是被封装至容器(320,520)中的源代码(310,510),其中
所述比较步骤进一步包括在源级别上针对之前所定义的约束和所述活动软件对所述源代码进行检查,并且
所述合并步骤进一步包括在所述服务处将所述源代码与所述活动软件进行合并和编译。
3.根据权利要求1所述的方法,其中
所述新的软件是被封装至容器(320,520)中的经编译的源代码(310,510),所述容器具有描述所述经编译的源代码的属性的新的清单,
所述数据库中的所述数据包括与所述活动软件相关联的一个或多个现有清单文件;并且
所述比较步骤进一步包括提取所述新的清单并且相对于预定义的约束和所述一个或多个现有清单对所述新的清单进行检查。
4.根据权利要求1所述的方法,其中所述新的软件是中间格式的源代码(310,320,510,520),其中
所述比较步骤进一步包括相对于预定义的约束和所述活动软件对所述中间格式的源代码进行检查;并且
所述合并步骤进一步包括对所述中间格式的源代码进行完全编译。
5.根据权利要求4所述的方法,其中所述合并步骤进一步包括在语句和表达式的级别上将所述中间格式的源代码与所述活动软件进行合并。
6.根据权利要求1-5中任一项所述的方法,进一步包括:
在所述服务(300)处接收所述接收到的新的软件的一个或多个代码特性,其中所述数据库数据包括所存储的所述活动软件的特性;并且
在所述服务(300)处作为所述数据比较的一部分将所接收到的新的软件的代码特性与所述存储的活动软件的代码特性进行比较。
7.根据权利要求1-6中任一项所述的方法,其中所述目标处理单元(340)包括一个或多个SGSN节点和负载平衡器(400),所述新的软件包括SGSN软件(510)和新的负载平衡器规则(520),并且所述数据包括现有的负载平衡器规则(525)。
8.根据权利要求7所述的方法,其中所述比较步骤进一步包括使用一个或多个负载平衡器检查器和编译器(540b),相对于所述现有负载平衡器规则对所述新的负载平衡器规则进行检查,其中所述合并步骤进一步包括将所述新的负载平衡器规则中与所述现有负载平衡器规则共有的部分进行合并,并且报告与所述现有负载平衡器规则冲突的所述新的负载平衡器规则。
9.根据权利要求7或8所述的方法,其中所述比较步骤进一步包括在一个或多个SGSN检查器和编译器(540a)处检查所述SGSN软件。
10.根据权利要求1-9中任一项所述的方法,其中所述目标处理单元通过处理器架构、操作系统和所述新的软件的预期使用中的一个或多个进行归类。
11.一种用于使用编译和部署服务进行软件构建和负载处理的系统,包括:
服务器(300);
耦合至所述服务器的处理器(700);
耦合至所述处理器的存储器(725);以及
电子耦合至所述服务器的数据库;
其中所述处理器被配置为:
接收新的软件;
将所述接收到的新的软件与数据库(525,725)中的数据进行比较,其中所述数据包括活动软件;
基于所述比较而将所述新的软件和活动软件合并到一个或多个负载模块(330,550a,550b)中;以及
将所述一个或多个负载模块部署到一个或多个目标处理单元(340,400,410)。
12.根据权利要求11所述的系统,其中所述新的软件是被封装至容器(320,520)中的源代码(410,510),并且其中所述处理器进一步被配置为:
在源级别上针对之前所定义的约束和所述活动软件对所述源代码进行检查;以及
将所述源代码与所述活动软件进行合并和编译。
13.根据权利要求11所述的系统,其中所述新的软件是被封装至容器(320,520)中的经编译的源代码(310,510),所述容器具有描述所述经编译的源代码的属性的新的清单,并且所述数据库中的所述数据包括与所述活动软件相关联的一个或多个现有清单文件,并且其中所述处理器进一步被配置为:
提取所述新的清单并且相对于预定义的约束和所述一个或多个现有清单对所述新的清单进行检查。
14.根据权利要求11所述的系统,其中所述新的软件是中间格式的源代码(310,320,510,520),并且其中所述处理器进一步被配置为:
相对于预定义的约束和所述活动软件对所述中间格式的源代码进行检查,以及
对所述中间格式的源代码进行完全编译。
15.根据权利要求14所述的系统,其中所述处理器进一步被配置为在语句和表达式的级别上将所述中间格式的源代码与所述活动软件进行合并。
16.根据权利要求11-15中任一项所述的系统,其中所述处理器进一步被配置为:
接收所述接收到的新的软件的一个或多个代码特性,其中所述数据库数据包括所存储的所述活动软件的特性,以及
作为所述数据比较的一部分将所接收到的新的软件的代码特性与所述存储的活动软件的代码特性进行比较。
17.根据权利要求11-16中任一项所述的系统,其中所述目标处理单元(340)包括一个或多个SGSN节点和负载平衡器(400),所述新的软件包括SGSN软件(510)和新的负载平衡器规则(520),并且所述数据包括现有的负载平衡器规则(525)。
18.根据权利要求17所述的系统,进一步包括一个或多个负载平衡器检查器和编译器(540b),其中所述处理器进一步被配置为:
相对于所述现有负载平衡器规则对所述新的负载平衡器规则进行检查;
将所述新的负载平衡器规则中与所述现有负载平衡器规则共有的部分进行合并;以及
报告与所述现有负载平衡器规则冲突的所述新的负载平衡器规则。
19.根据权利要求17或18所述的系统,进一步包括一个或多个SGSN检查器和编译器(540a),其中所述处理器进一步被配置为:
使用所述一个或多个SGSN检查器和编译器检查所述新的SGSN软件。
20.根据权利要求11-19中任一项所述的系统,其中所述目标处理单元通过处理器架构、操作系统和所述新的软件的预期使用中的一个或多个进行归类。
21.一种包括计算机可读介质(725)的非瞬态计算机程序产品,所述计算机可读介质(725)存储具体化在所述介质中的计算机可读程序代码,所述计算机程序产品包括:
用于使得设备(300)接收新的软件的程序代码;
用于使得所述设备将所述接收到的新的软件与数据库(525,725)中的数据进行比较的程序代码,其中所述数据包括活动软件;
用于使得所述设备基于所述比较而将所述新的软件和所述活动软件合并到一个或多个负载模块(330,550a,550b)中的程序代码;以及
用于使得所述设备将所述负载模块部署到一个或多个目标处理单元(340,400,410)的程序代码。
22.根据权利要求21所述的非瞬态计算机程序产品,其中所述新的软件是被封装至容器(320,520)中的源代码(310,510),所述计算机程序产品进一步包括:
用于使得所述设备在源级别上针对之前所定义的约束和所述活动软件对所述源代码进行检查的程序代码,以及
用于使得所述设备将所述源代码和所述活动软件进行合并和编译的程序代码。
23.根据权利要求21所述的非瞬态计算机程序产品,其中
所述新的软件是被封装至容器(320,520)中的经编译的源代码(310,510),所述容器具有描述所述经编译的源代码的属性的新的清单,
所述数据库中的所述数据包括与所述活动软件相关联的一个或多个现有清单文件,以及
所述所述计算机程序产品进一步包括:
用于使得所述设备提取所述新的清单并且相对于预定义的约束和所述一个或多个现有清单对所述新的清单进行检查的程序代码。
24.根据权利要求21所述的非瞬态计算机程序产品,其中所述新的软件是中间格式的源代码(310,510),并且所述计算机程序产品进一步包括:
用于使得所述设备相对于预定义的约束和所述活动软件对所述中间格式的源代码进行检查的程序代码;以及
用于使得所述设备在语句和表达式的级别上将所述中间格式的源代码与所述活动软件进行合并的程序代码。
CN201380065346.3A 2012-12-14 2013-12-13 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品 Active CN104854558B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261737605P 2012-12-14 2012-12-14
US61/737,605 2012-12-14
PCT/EP2013/076506 WO2014090982A1 (en) 2012-12-14 2013-12-13 Systems, methods, and computer program products for a software build and load process using a compilation and deployment service

Publications (2)

Publication Number Publication Date
CN104854558A true CN104854558A (zh) 2015-08-19
CN104854558B CN104854558B (zh) 2018-10-23

Family

ID=49759335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380065346.3A Active CN104854558B (zh) 2012-12-14 2013-12-13 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品

Country Status (8)

Country Link
US (2) US9189227B2 (zh)
EP (1) EP2932374B1 (zh)
JP (1) JP5965080B2 (zh)
CN (1) CN104854558B (zh)
IL (1) IL238981B (zh)
MX (1) MX342205B (zh)
RU (1) RU2628176C2 (zh)
WO (1) WO2014090982A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027742A (zh) * 2015-09-08 2018-05-11 阿姆Ip有限公司 处理数字内容

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458661B2 (en) 2006-03-31 2013-06-04 Ebay Inc. Distributed parallel build system
CN104854558B (zh) 2012-12-14 2018-10-23 瑞典爱立信有限公司 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品
US10749985B2 (en) * 2015-05-19 2020-08-18 Amazon Technologies, Inc. Custom communication channels for application deployment
US9733915B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Building of compound application chain applications
US9658836B2 (en) 2015-07-02 2017-05-23 Microsoft Technology Licensing, Llc Automated generation of transformation chain compatible class
US9785484B2 (en) 2015-07-02 2017-10-10 Microsoft Technology Licensing, Llc Distributed application interfacing across different hardware
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US9712472B2 (en) 2015-07-02 2017-07-18 Microsoft Technology Licensing, Llc Application spawning responsive to communication
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US9733993B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Application sharing using endpoint interface entities
US9860145B2 (en) 2015-07-02 2018-01-02 Microsoft Technology Licensing, Llc Recording of inter-application data flow
US10031724B2 (en) 2015-07-08 2018-07-24 Microsoft Technology Licensing, Llc Application operation responsive to object spatial status
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
US10686908B2 (en) 2016-11-18 2020-06-16 Sap Se Embedded database as a microservice for distributed container cloud platform
US10237118B2 (en) * 2016-11-18 2019-03-19 Sap Se Efficient application build/deployment for distributed container cloud platform
CN107621963B (zh) * 2017-09-21 2020-11-27 深圳市融壹买信息科技有限公司 一种软件部署方法、软件部署系统及电子设备
US10572294B1 (en) * 2018-01-03 2020-02-25 Amazon Technologies, Inc. Automated application footprint discovery for application migration to containers
US10769057B2 (en) 2018-05-09 2020-09-08 International Business Machines Corporation Identifying potential errors in code using machine learning
US10884893B2 (en) 2018-08-24 2021-01-05 International Business Machines Corporation Detecting software build errors using machine learning
US11080174B2 (en) * 2019-05-01 2021-08-03 Red Hat, Inc. Detecting and handling discrepancies between external circuit breakers and internal circuit breakers
US20220138068A1 (en) * 2019-07-02 2022-05-05 Hewlett-Packard Development Company, L.P. Computer readable program code change impact estimations
US11275571B2 (en) * 2019-12-13 2022-03-15 Sap Se Unified installer
CN111552508B (zh) * 2020-04-29 2023-03-14 杭州数梦工场科技有限公司 应用程序版本构建方法、装置、电子设备
US11347499B1 (en) 2020-12-16 2022-05-31 Red Hat, Inc. Merging multiple package files into a merged package file
CN114816559A (zh) * 2022-03-07 2022-07-29 支付宝(杭州)信息技术有限公司 模块加载方法、装置、存储介质及电子设备
US20240045786A1 (en) * 2022-08-04 2024-02-08 Airbiquity Inc. Build system supporting code audits, code verification, and software forensics
CN115167874B (zh) * 2022-08-19 2023-04-14 禾多科技(北京)有限公司 自动驾驶软件镜像部署方法、装置、电子设备和可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212759A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种手机软件集成测试方法
US20090300580A1 (en) * 2007-12-20 2009-12-03 Hsbc Technologies Inc. Automated methods and systems for developing and deploying projects in parallel

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561800A (en) * 1993-05-19 1996-10-01 Hewlett-Packard Company Method and apparatus for incrementally linking modified routines into software
US5940623A (en) * 1997-08-01 1999-08-17 Cummins-Allison Corp. Software loading system for a coin wrapper
JP2000122871A (ja) * 1998-10-14 2000-04-28 Hitachi Ltd アプリケーション配布方法
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US7096465B1 (en) * 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6397385B1 (en) * 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
US6438743B1 (en) * 1999-08-13 2002-08-20 Intrinsity, Inc. Method and apparatus for object cache registration and maintenance in a networked software development environment
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7246351B2 (en) * 2001-02-20 2007-07-17 Jargon Software System and method for deploying and implementing software applications over a distributed network
JP2002261927A (ja) * 2001-03-05 2002-09-13 Nippon Telegr & Teleph Corp <Ntt> プログラムダウンロード方法
US6748380B2 (en) * 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
US7055149B2 (en) * 2001-07-25 2006-05-30 Lenovo (Singapore) Pte Ltd. Method and apparatus for automating software upgrades
US7774772B2 (en) * 2001-09-28 2010-08-10 Siebel Systems, Inc. Method and apparatus to perform an application software migration
DE10158991A1 (de) * 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren und Installation von einem Softwaremodul in einem Gerät
US7577948B2 (en) * 2003-07-02 2009-08-18 Upgradedetect, Inc. System and method for providing computer upgrade information
FR2857471B1 (fr) * 2003-07-10 2008-09-26 Open Plug Procede de gestion des composants logiciels integres dans un systeme embarque
US7594219B2 (en) * 2003-07-24 2009-09-22 International Business Machines Corporation Method and apparatus for monitoring compatibility of software combinations
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
WO2005045671A1 (en) * 2003-10-27 2005-05-19 American Power Conversion Corporation System and method for updating a software program
US20050177826A1 (en) * 2004-02-05 2005-08-11 Miller James S. Versioning support in object-oriented programming languages and tools
US7607126B2 (en) * 2004-05-21 2009-10-20 Bea Systems, Inc. System and method for external override of annotations
US7788536B1 (en) * 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
AU2006205055A1 (en) * 2005-01-13 2006-07-20 Hsbc North America Holdings Inc. Framework for configuration and release management of group systems software
US8341622B1 (en) * 2005-12-15 2012-12-25 Crimson Corporation Systems and methods for efficiently using network bandwidth to deploy dependencies of a software package
US8185576B2 (en) * 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US8060871B2 (en) * 2006-03-30 2011-11-15 Microsoft Corporation Servicing software through versioning
WO2007113533A1 (en) * 2006-03-31 2007-10-11 British Telecommunications Public Limited Company Xml-based transfer and a local storage of java objects
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8701102B2 (en) * 2007-06-27 2014-04-15 Microsoft Corporation Techniques for automatic software provisioning
US8869140B2 (en) * 2008-05-09 2014-10-21 Sap Se Deploying software modules in computer system
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
JP5239964B2 (ja) * 2009-03-16 2013-07-17 ブリヂストンスポーツ株式会社 ゴルフクラブ、シャフト挿入深さ変更方法及びシャフト交換方法
US8327351B2 (en) * 2009-04-30 2012-12-04 Sap Ag Application modification framework
US8849717B2 (en) * 2009-07-09 2014-09-30 Simon Cooper Methods and systems for upgrade and synchronization of securely installed applications on a computing device
US8972974B2 (en) * 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US8627309B2 (en) * 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
US8438541B2 (en) * 2010-06-15 2013-05-07 International Business Machines Corporation Software change management extension for uniformly handling artifacts with relaxed contraints
US8826265B2 (en) * 2011-10-24 2014-09-02 Texas Instruments Incorporated Data concentrator initiated multicast firmware upgrade
CN104854558B (zh) 2012-12-14 2018-10-23 瑞典爱立信有限公司 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212759A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种手机软件集成测试方法
US20090300580A1 (en) * 2007-12-20 2009-12-03 Hsbc Technologies Inc. Automated methods and systems for developing and deploying projects in parallel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PAUL M. DUVALL: "《Continuous Integration:Patterns and Anti-Patterns》", 《HTTP://MIRRORS.PDP-11.RU/_VAX/WWW.BANDWIDTHCO.COM/DOWNLOADS/CHARTS/PROGRAMMING/CONTINUOUS%20INTEGRATION%20-%20PATTERNS%20AND%20ANTI%20PATTERNS.PDF》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027742A (zh) * 2015-09-08 2018-05-11 阿姆Ip有限公司 处理数字内容
CN108027742B (zh) * 2015-09-08 2021-06-22 阿姆Ip有限公司 处理数字内容

Also Published As

Publication number Publication date
JP2016505952A (ja) 2016-02-25
EP2932374B1 (en) 2023-11-15
MX342205B (es) 2016-09-21
US20140181800A1 (en) 2014-06-26
US9189227B2 (en) 2015-11-17
US20150378718A1 (en) 2015-12-31
IL238981A0 (en) 2015-07-30
US9760365B2 (en) 2017-09-12
WO2014090982A1 (en) 2014-06-19
EP2932374A1 (en) 2015-10-21
RU2015128277A (ru) 2017-01-18
JP5965080B2 (ja) 2016-08-03
RU2628176C2 (ru) 2017-08-15
IL238981B (en) 2018-03-29
CN104854558B (zh) 2018-10-23
MX2015006815A (es) 2015-09-07

Similar Documents

Publication Publication Date Title
CN104854558A (zh) 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品
US11868231B2 (en) System and method for evaluating code by a hybrid of local and cloud-based computers
US10409587B2 (en) Method for programming vehicle electronic control modules
CN104077140B (zh) 用于持续集成的自动化编译方法和编译装置
CN108509185B (zh) 用于任意软件逻辑建模的系统和方法
CN103327080B (zh) 创建物联网控制系统的方法及装置
CN111399853A (zh) 机器学习模型与自定义算子的模板化部署方法
CN107526676B (zh) 一种跨系统测试方法及装置
CN104932973A (zh) 一种版本兼容测试方法和装置
CN109284106A (zh) 业务规则的发布管理方法、电子装置及可读存储介质
CN104102489A (zh) 一种第三方数据库app构建系统及构建方法
CN105591779A (zh) 网元巡检方法及装置
Benouda et al. Automatic code generation within MDA approach for cross-platform mobiles apps
CN115794106A (zh) 一种轨道交通二进制协议数据配置式解析的方法及系统
CN106713001A (zh) 一种网络巡检方法及装置
CN110968339B (zh) 前端构建工具的方法、装置以及电子设备
CN112858876A (zh) 一种自适应的芯片自动化测试方法
CN105493033A (zh) 声明性配置元素
US10055516B1 (en) Testing open mobile alliance server payload on an open mobile alliance client simulator
CN115934093A (zh) 小程序跨端应用方法、相关装置及计算机存储介质
CN114356379A (zh) 基于备份的服务升级方法、装置、设备及存储介质
CN112953721A (zh) 一种ipa文件的解析方法、装置、设备及存储介质
CN100442721C (zh) 一种基于ocl的配置重用方法及系统
CN105204383A (zh) 应用伺服系统的生成方法和装置
US20210357785A1 (en) Predictive analytics system and method for implementing machine learning models into prediction systems

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant