CN111435348A - 创建用于数据分析功能的运行时可执行程序的方法 - Google Patents
创建用于数据分析功能的运行时可执行程序的方法 Download PDFInfo
- Publication number
- CN111435348A CN111435348A CN202010024118.3A CN202010024118A CN111435348A CN 111435348 A CN111435348 A CN 111435348A CN 202010024118 A CN202010024118 A CN 202010024118A CN 111435348 A CN111435348 A CN 111435348A
- Authority
- CN
- China
- Prior art keywords
- data analysis
- data
- code
- user
- repository
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种用于创建用于数据分析功能的运行时可执行程序的方法。该方法包括:响应于从用户接收到数据分析请求,从数据分析功能的储存库中选择数据分析功能集合,以在托管环境中或在用户的场所中执行。可以确定用户对数据分析功能集合的使用条件。可以创建用于应用所确定的使用条件的附加代码。可以编译所选择的数据分析功能和附加代码,从而生成可执行代码。可以认证可执行代码。可以部署或提供经认证的可执行代码以供下载到用于经认证的可执行代码的运行时环境。
Description
技术领域
本发明涉及数字计算机系统领域,更具体而言涉及创建用于数据分析功能的运行时可执行程序的方法。
背景技术
随着云计算的兴起,工作载荷可以被转移到云计算基础设施,诸如IBM云。但是,由于数据严重性(data gravity)问题,将数据转移到云基础设施可能会出现问题。数据严重性表明将数据资产转移到云解决方案的难易程度。数据严重性程度越高,越难以将数据转移到云中。
发明内容
各种实施例提供了如独立权利要求的主题所描述的用于创建用于数据分析功能的运行时可执行程序的方法、计算机系统和计算机程序产品。在从属权利要求中描述了有利的实施例。如果本发明的实施例不相互排斥,那么它们可以彼此自由地组合。
一方面,本发明涉及一种用于创建用于数据分析功能的运行时可执行程序的计算机实现的方法。该方法包括提供数据分析功能的储存库,并且响应于从用户接收到数据分析请求,从储存库中选择用于在主机环境中或用户的场所(premises)执行的数据分析功能集合。此外,该方法包括为用户确定该数据分析功能集合的许可证,以执行该数据分析功能集合,并创建用于实现所确定的许可证的附加代码。此外,该方法包括编译所选择的数据分析功能和附加代码,从而生成可执行代码,以及认证该可执行代码。此外,该方法包括部署经认证的可执行代码或提供经认证的可执行代码以供下载到用于经认证的可执行代码的运行时环境。
根据一个实施例,该方法还包括对可执行代码进行测量(instrumenting)或配置,以使得能够在可执行代码的执行期间收集所选择的数据分析功能的使用情况统计信息。例如,这可以使得能够比较相似的功能在资源消耗方面是否表现出很大不同。这可以使得能够基于使用情况统计信息来建议数据分析功能,以供同一用户或其它用户进一步使用。
根据一个实施例,如果根据许可证,用户无权使用所选择的数据功能的全部功能,则创建附加代码,使得数据分析功能集合具有受限的功能。例如,数据分析功能集合可以在采样模式下使用。在采样模式下,用户可以例如仅对小部分数据运行数据分析功能。在另一个示例中,用户可以仅在有限的时间内运行数据分析功能集合。
根据一个实施例,该方法还包括接收关于数据分析功能集合的用户反馈,以及使用用户反馈来更新储存库。这可以启用协作式方法,其中具有不同环境的不同用户提供关于功能的反馈。这可以使得能够建立健壮且可靠的功能储存库。
根据一个实施例,所选择的数据分析功能集合是储存库的更新后的数据分析功能和/或向储存库新添加的数据分析功能和/或储存库的现有数据分析功能。新添加的分析功能可以是在预定义的时间段中添加到储存库的功能,例如,上个月添加的功能。现有数据分析功能是在该预定义的时间段之前存在的功能(例如,它在上个月之前存在)。更新后的功能是被更新的现有功能。例如,用户可以指示这三种类型的功能中的哪种类型要用于分析。这可以提高计算机系统对用户请求的响应准确度。
根据一个实施例,接收到的请求指示从数据源导入的元数据。元数据指示要对数据源的数据执行的一项或多项分析。该方法还包括将元数据作为输入提供给至少一个预定义的机器学习(ML)模型,其中所选择的数据分析功能集合是使用元数据和储存库的数据分析功能作为输入的至少一个机器学习模型的输出。根据一个实施例,该方法还包括:在接收到请求后,自动运行分析以生成另外的元数据,其中输入还包括另外的元数据。这可以进一步提高本方法的准确性,从而提供可靠的结果。元数据还可以包括如由例如其它用户的测量的可执行代码生成的使用情况统计信息。
该实施例还可以由于以下原因是有利的。由于诸如数据集成、主数据管理和分析之类的信息管理领域中自助服务能力的兴起,因此迫切需要提供对各种数据资产在语义上的理解。这就需要将技术概要分析(profiling)能力(例如,列分析、PK发现、PK-FK分析)扩展到需要按领域开发的语义概要分析能力。因此,由于没有单个软件提供者将能够开发包含所有可能的数据域的库或概要分析框架以进行语义概要分析,因此概要分析框架需要针对社区贡献可扩展以具有奖励贡献的能力。但是,对于一个人(例如一个分析人员)可能很难知道特定语义概要分析库是否可用,从而增加了必须在合适的市场中搜索和推荐功能的手段的需求。同样可能的是,不同的人员为特定的数据域语义分类功能并行实现相似但不相同的范围。用于选择数据分析功能的该实施例可以解决这个问题,因为它可以使用机器学习能力提供用户所需的分析功能。此外,使用机器学习模型可以提供对用户请求的准确响应。例如,可以提供对目标系统元数据的基于启用机器学习的评估的关于将使用哪些分析功能的智能推荐。
例如,元数据可以包括数据集的名称、描述、位置和所有者;数据集的所有数据字段的名称、描述和数据类型;用户在数据集上做出的最终标签、术语或注释;对数据集做出的自动数据概要分析(例如,基数、数据格式、频繁值和其它数据属性)的结果;以及对数据集的数据自动分类的结果。ML模型(或预测模型)可以被配置为根据以下提供建议:给定数据集及其数据的性质,对于用户在数据集的某个数据字段上使用特定功能可能是有益的,这将验证某个数据字段的值,例如,比如验证美国电话号码的格式。此外或替代地,ML模型可以推荐针对同一数据集的其它列运行标准化规则,诸如美国邮政地址中规定的规则。此外或替代地,给定数据集的一些列的基数,ML模型可以建议对数据集的记录运行重复项删除(deduplication)以消除数据集的重复条目可能是有益的。
机器学习模型可以例如在使用预定义的训练集训练机器学习算法后生成。训练集可以例如相关联地包括数据分析功能与过去已经由这些功能成功分析的数据的元数据。
至少一个机器学习模型可以是由计算机系统启用的用于处理用户资产的认知能力的一部分。例如,认知能力可以用于执行可以用于分析用户资产的分析功能集合的选择。例如,认知能力可以启用以下:
所选择的功能集合中的所选择的功能可以例如是一个或多个分类器,例如,用于检测特定域的数据。这样的分类器的建议或选择可以基于用户资产上的ML模式(例如,使用指示用户资产的元数据和/或值)。例如,ML模型(诸如朴素贝叶斯分类(NBC)模型)可以预测和选择对用户资产可能具有肯定发现的分类器(域),尽管用户最初并不打算使用该分类器。
在定义或选择功能集合中的一个或多个给定功能(例如诸如分类器)之后,其它功能可以被标识或导出为执行给定的一个或多个功能所必需的,例如,其它功能可以作为预处理步骤的一部分执行。为此,可以提供用户资产所需的基于ML的预处理建议。例如,为了应用某个分类器(例如,由NBC建议的分类器),可能需要在用户资产的预处理(字符串到日期等)步骤中进行适当的变换。为此,例如可以使用决策树,使得它可以帮助评估对所需的预处理或后处理做出正确决策的可能性。
可以基于用户请求或用户资产的预期用途来建议其它功能。例如,如果用户打算检测用户资产中的美国电话号码和美国地址,则系统可以建议用于检测美国信用卡号的其它分类器或用于标准化美国地址的功能,因为通常这些功能经常被其它用户与具有预期的使用功能一起使用。这可以被称为可以使用ML模型执行的交叉销售(cross-selling)。例如,可以将普通最小二乘回归应用于分析功能的实际使用情况统计信息并创建预测模型。
在以上示例中,至少一个机器学习模型包括NBC、决策树和普通最小二乘回归模型。
在另一个示例中,可以在从用户接收到的数据分析请求中指示所选择的分析功能集合。
根据一个实施例,运行时环境包括基于容器的运行时环境,其被配置为仅执行经编译的、经认证的和实现许可证的代码。
根据一个实施例,基于容器的运行时环境包括容器映像的一个或多个容器实例。例如,运行时环境可以例如包括Docker容器,在该Docker容器上将使用所选择的数据分析功能集合执行数据分析。
根据一个实施例,许可证的确定基于用户对储存库的输入,其中用户输入包括进一步上传到储存库的数据分析功能和/或储存库中的数据分析功能的反馈和/或对储存库中的数据分析功能的更改。例如,用户对储存库的内容的贡献越多,许可证或使用条件就越好,例如,用户可以具有更长的时间段来执行所选择的数据分析功能集合。
根据一个实施例,该方法还包括:响应于接收到包括代码段的用户输入,运行相似性检查以确定接收到的代码段是否不是储存库的现有代码的副本;以及基于比较的结果为用户定义或更新许可证。如果某人试图通过复制库功能、对代码注释进行更改并将其添加为不同的功能来通过“滥用”对库做贡献来获得许可证权限—那么本实施例可以检测到这两个代码在代码级别上过于相似,并且会将新功能标记为可能具有恶意意图的模仿(copycat)功能。
根据一个实施例,使用基于证书的数字签名执行认证以对可执行代码进行签名。
根据一个实施例,该方法还包括从用户接收指示运行时环境的数据,其中编译是响应于接收到该数据而执行的。
根据一个实施例,数据分析功能包括数据分类器或数据规则。
在另一方面,本发明涉及一种计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有实施在其上的计算机可读程序代码,该计算机可读程序代码被配置为实现根据前述实施例的方法的所有步骤。
在另一方面,本发明涉及一种用于创建用于数据分析功能的运行时可执行程序的计算机系统。该计算机系统被配置为响应于从用户接收到数据分析请求,从数据分析功能的储存库中选择数据分析功能集合,以在托管环境中或中用户的场所中执行。此外,该计算机系统被配置为:为用户确定该数据分析功能集合的许可证,以执行该数据分析功能集合,并且创建用于应用所确定的许可证的附加代码。此外,计算机系统被配置为编译所选择的数据分析功能和附加代码,从而产生可执行代码,并且认证该可执行代码。此外,计算机系统被配置为部署经认证的可执行代码或提供经认证的可执行代码以供下载到用于经认证的可执行代码的运行时环境。
附图说明
在以下本发明的实施例中,仅通过示例的方式,参考附图进行更详细的说明,其中:
图1示出了根据本公开的实施例的可以应用本公开的示例性环境。
图2描绘了与多个场所连接的云站点的图。
图3描绘了根据本公开的用于创建可执行程序的系统的图。
图4是用于创建用于数据分析功能的运行时可执行程序的方法的流程图。
图5表示根据本发明一实施例的云计算节点;
图6表示根据本发明一实施例的云计算环境;
图7表示根据本发明一实施例的抽象模型层;
具体实施方式
为了说明的目的,将给出本发明的各种实施例的描述,但是这些描述不是穷举性的,也不限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择本文使用的术语是为了最好地解释实施例的原理、对市场上发现的技术的实际应用或技术上的改进,或者使本领域的其它普通技术人员能够理解本文公开的实施例。
由于与将数据移动到云站点相关的问题,本公开提供了一种混合解决方案,该解决方案具有不将数据移动到云站点同时仍然利用云能力的选项。本公开使得能够管理场所中的一些数据资产以及云中的其它数据资产。这可以增加诸如云环境之类的托管环境的灵活性和效率。
但是,由于由托管环境提供的服务或工具受取决于场所及其用户的使用条件或许可证的约束,因此本公开可以具有在该混合解决方案中控制使用条件的另一个优点,特别是在数据在本地场所中处理的情况下。例如,基于场所的许可证可以是以CPU为中心的,而云许可证可以是基于订阅的(例如,每月具有某些量,例如500GB数据)。本公开可以解决个别地控制资源使用(诸如CPU使用和网络带宽)的技术挑战。
术语“数据集”或“资产”是指一个或多个数据元素的集合。数据元素可以是例如文档、数据值或数据记录。例如,可以以文件中包含的相关记录的集合的形式来提供数据集,例如,数据集可以是包含班级中的所有学生的记录的文件。记录是相关数据项的集合,例如,卷号、出生日期、学生的班级。记录表示实体,其中该实体具有不同且独立的存在,例如诸如学生。数据集可以例如是数据库的表或Hadoop文件系统的文件等。在另一个示例中,数据集可以包括诸如HTML页面之类的文档或其它文档类型。该文档可以例如包括患者的数据。
许可证的实现包括检查如由许可证确定或定义的预定义的使用条件,并仅在满足使用条件时才启用分析功能集合的使用。
图1示出了根据本公开的示例的可以应用本公开的示例性环境100。环境100包括经由互联网150连接到云站点140的场所110、120和130。三个场所110、120和130可以不同,因为每个场所都有其自己的相应数据集111、121和131。云站点140也包括相应的数据集141。
本公开的至少一部分可以例如在云站点140中实现。相应地,在图1中示出了云站点部分181和场所部分182。云站点部分181可以包括图2和图3中所示的一个或多个元素,并且场所111、120和130中的一个或多个可以包括图2和图3中的其它一些元素。
可以在云环境中开发计算解决方案。在单个环境中开发和测试诸如数据分类器之类的应用比针对许多不同环境开发应用要更快且更具成本效益。数据集111、121和131从场所到云站点140的移动可能例如由于数据严重性而不是高效的。因此,将应用从云中移出并在不同的场所中执行可能是高效的。即,可以分别在不同场所110、120和130处的不同数据集111、121和131中的至少一个上执行同一应用。此外或替代地,可以在云站点上执行应用,例如,如果在云站点处存在多个用户之间共享的数据,那么这可能是有利的。
执行在一个上下文中开发的应用并在多个其它上下文中执行该应用所涉及的挑战可能是缺乏与上下文相关的适当许可证或使用条件管理;缺乏基于执行上下文推荐批量定价调整的能力;缺乏检测两个贡献之间的代码相似性以避免侵权的能力;缺乏发现代码模式以改善代码模板的能力;缺乏数据认证,以及应用的复杂性,因为应用可能涉及不同类型的分析技术,并且因此涉及可能用户无法管理的大量的库和功能。本方法可以克服这些问题。
图2描绘了根据本公开的示例的与多个场所210、220、230和235连接的云站点240的图。云站点240可以包括云市场。云站点240使最终用户能够订阅,从而创建租户201.1-n。租户是正在使用或被启用以使用云站点240的服务或应用的用户或单元。云站点240包括许可证管理器203,该许可证管理器强制执行许可证合规性,如果租户对诸如功能库204之类的公共库做出定期和/或实质性的功能贡献,那么可选地具有授予新许可证覆盖范围的特征。对于大量使用,可能会使许可证覆盖需求变得更便宜。云站点240还可以包括验证组件(未示出)。验证组件可以被配置为检查代码或功能(诸如步骤409的可执行代码)或储存库(诸如功能库204)的新代码。可以将验证组件配置为执行静态代码分析和/或在受保护的沙箱中运行一些测试,以确保上传的功能不会造成任何危害或意外影响。验证组件还可以被配置为从一个或多个用户请求用户输入或对所添加的代码或功能的确认。
云站点240还包括用户可以访问以确定对于用户的任务(例如,使用特定技术对特定源的分析)是否已经存在功能(例如以及反馈)的功能库(或储存库)204。功能库204还具有用于建议相关功能的特征(例如,建议可以指示例如“进行DW/MDM/SAP/场景的另一个用户也使用了这些其它功能x、y、z”)。这可以基于场景模板分组功能。功能库204还具有部署的机器学习,以学习哪些模式通常被一起使用以建议新的场景模板。功能库204也可以具有机器学习,查看要进行分析的源的目标元数据以基于目标系统元数据提出建议。对于功能库204,其它用户可以提供应使用的内容的推荐、学习路径或对新手进行数据分析的推荐。
云站点240还包括中央云编译器205。中央云编译器205可以被配置为编译新功能,该新功能产生对场所210、220、230和235的运行时209具有适当许可证的可执行程序。中央云编译器205还可以被配置为使用针对场所运行时209的适当许可证来对来自功能库204功能进行重新编译。如果租户201.1-n对所生成的功能代码缺乏正确的许可证权限,则它们将仅在采样模式下工作,利用功能代码处理它预期处理的数据的很小子集。通过使用中央云编译器205,可以无缝升级场所中的运行时209。在运行时209是JVM容器的情况下,这可能是特别有利的。
中央云编译器205可以被配置为提供编译代码的证书创建和新特征的升级。只有经认证的可执行程序才能在场所(例如210)中运行。例如,如果某人试图通过复制库功能、对代码注释进行更改并将其添加为不同的功能来通过“滥用”对库做贡献来获得许可证权限,那么中央云编译器205可以检测到这两个代码在代码级别上过于相似,并且会将新功能标记为可能具有恶意意图的模仿功能。这可能会影响此类用户的使用条件或许可证定义,或者至少维持现有使用条件不变。
云站点240还包括社交协作组件206,该社交协作组件206可以使得能够提供关于云服务的反馈,诸如关于功能库204的功能的反馈。社交协作组件206可以例如使得用户能够标记功能库204中的功能,以增加或减少功能贡献者的声誉。社交协作组件206还可以使得用户能够对功能库204的功能的结果以及相似功能之间的差异的满意度进行评价。
云站点240还包括用户仪表盘207,该用户仪表盘207使得用户能够审查结果并查看例如功能库204的功能的使用行为。
云站点240还包括市场仪表盘208,该市场仪表盘208使得市场所有者能够查看最频繁使用哪些功能。标记的仪表盘208还可以使得能够对功能的反馈(包括使用统计信息)进行聚集,从而使得能够例如比较相似的功能在资源消耗方面是否表现出很大不同。
如图2所示,在场所210、220、230和235中,只有运行时容器(或同一容器的多个实例)209使用中央云编译器205执行由云站点240上的租户创建的经编译的、经认证的和许可证的代码。
图3描绘了根据本公开的用于创建可执行程序的系统300的图。系统300可以包括如参考图2描述的云站点240的组件。这些图中相同编号的元素或者是等效元素或者执行相同的功能。
用户301通过在步骤1中创建新的租户来向系统300订阅(如多边形所示)。对于新用户301,在步骤2中将与订阅相关的适当权利添加到许可证管理器203。例如,权利可以是功能区域、要分析的数据量度量等的混合。注册的用户301然后可以在租户内打开如由云站点240启用的基于云的设计环境。用户301可以在步骤4中从可能需要对其进行分析的目标系统302导入元数据。用户301然后可以使用基于云的设计环境来创建新的数据规则或新的数据分类器,或者可以在步骤5中使用元数据来浏览功能库204。如果在功能库204中找到功能,则可以将该功能用作增强该功能以进行分析的起始点。注意的是,当导航到功能库204时,目标系统302的元数据是导航上下文的一部分。这可以允许基于目标系统的元数据来推荐功能。该推荐可以例如是基于机器学习(基于ML)的推荐。
例如,在从需要分析的目标系统302导入元数据之后,可以使用由系统300提供的认知能力。系统300的认知能力可以通过组件307-309启用。元数据目录307可以例如被配置为向训练组件308提供训练数据。训练组件308可以被配置为在训练数据上训练一种或多种机器学习算法以生成预测模型。所生成的模型可以被存储在存储组件309中,使得它们可以用于基于导入的元数据来提供推荐。例如,由系统300提供的认知能力可以允许用户301和系统300的随后交互以创建用于处理新资产的新数据规则。新规则可以是系统300的现有规则的组合:
S1.系统300:这是我为新资产找到的数据类。有些资产可能无法分类或需要改进的分类算法。
S2.用户301:请为新资产中的asset10和asset11创建新的分类器请求。
S3.用户301:请确保所有邮政编码均有效。
S4.系统300:已找到以下邮政编码的分类资产,并绑定到列出的数据质量规则。如果需要,请编辑指派。提示:对于这种资产类型和相关资产,用户通常还会运行列出的地址验证和地址完整性检查。我对您的资产进行了快速运行,并在下面列出了结果,您还可以在其中激活您的资产的规则。我还添加了应根据适用于您的资产的管理规则执行的规则。
S5.用户301:请使用rule1验证asset10,然后将asset10.plz映射到rule1.zip。
S6.系统300:asset10已被添加到经验证的资产的列表中。
对于步骤S1,系统300自动应用已知的分类器并以非常低的置信度报告结果。因此,在步骤S2中,用户301决定向社区询问更适合新资产的分类器(在敏感数据的情况下,该请求被发送到针对此类数据的预定义专家组)。对于步骤S3,系统300将请求转换成模型,该模型允许识别具有邮政编码(使用同义词)和适当的数据质量规则的数据类的资产。因为系统300已经知道(从先前的运行中获知)具有相同数据类和绑定数据质量(DQ)规则的已经存在的资产,因此它可以使用该信息来建议其它数据质量检查。相同的转换或建议流程可以用于基于治理规则描述来标识所需的验证。作为对用户请求(或管理规则)的响应,系统300可以针对新资产直接运行这些数据质量规则(例如,系统300可以基于操作元数据来决定是否以及如何在交互模式下使用这些规则)并将结果呈现给用户301,然后用户301可以决定针对这些新资产激活附加验证。在步骤S5中,用户301创建新的规则绑定,并且系统还可以获知“plz”是“zip”的同义词。
一旦用户301完成设计新的或更新后的数据规则或分类器(例如,如交互步骤S1-S5所例示的),用户301就提供执行环境的细节(在场所210-235中或云站点240中可用),然后可以在步骤6中触发代表用户301的新规则或更新规则或分类器的代码的编译操作。响应于该触发,中央云编译器205可以被配置为执行以下任务或动作:检查用户301的许可证权限;通过代码相似性分析检查代码是否是“模仿”滥用;编译代码;将测量工具放入代码中以收集使用情况统计信息;验证代码;将创建的可执行程序部署到运行时209中以执行;在存在基于量或基于资源的许可证度量情况下,根据需要触发执行并更新许可证储存库以更新指示剩余量的计数器。在执行时,测试代码收集使用情况统计信息,并将该信息返回给基于云的市场仪表盘208。一旦数据规则或分类器的结果可用,用户301就可以检查它们。然后,用户301可以使用社交协作206在该功能上进行社交协作,例如,向其添加标签等。
图4是用于为储存库(例如,功能库204)的数据分析功能创建运行时可执行程序的方法的流程图。
在步骤401中,中央云编译器205可以从用户301接收数据分析请求。例如,数据分析请求可以是对一个或多个数据属性(诸如邮政编码、城市和颜色属性等)进行分类的请求。数据分析请求可以例如包括指示存储要由用户分析的数据的用户系统的元数据。用户系统可以例如是诸如云站点240之类的托管环境或诸如场所210之类的场所。元数据例如可以指示存储在用户系统中的数据,例如指示数据中包含哪些属性以及用户系统中数据的类型。元数据还可以指示用户系统的技术规范或属性,例如指示用户系统的运行环境,该运行环境使得能够相应地编译代码以便在用户系统上执行。运行时环境可以指示硬件和/或软件的配置。例如,它可以包括特定类别的应用所需的CPU类型、操作系统和系统软件等。
响应于接收到数据分析请求,中央云编译器205可以在步骤403中从储存库204中选择数据分析功能集合以在用户系统中执行。按照上面的示例,中央云编译器205可以选择邮政编码分类器或颜色分类器等。该选择可以例如使用针对系统300描述的认知能力来选择数据分析功能集合。
在步骤405,中央云编译器205可以确定用户使用数据分析功能集合的使用条件或许可证。例如,可以基于许可证期限和条件来确定与用户相关联的使用条件。例如,如果用户具有仅使用一年的所选择的数据分析功能集合的许可证,则可以相应地确定使用条件。
在步骤407中,中央云编译器205可以创建用于指示或反映所确定的使用条件的附加代码。例如,附加代码可以将所选择的分析功能的使用期限限制为一年。
在步骤409,中央云编译器205可以编译所选择的数据分析功能和附加代码,从而产生可执行代码段。例如,可以基于用户系统的技术属性来执行编译。
在步骤411,中央云编译器205可以认证可执行代码。例如,可以使用基于证书的数字签名来执行代码的认证,以对可执行代码进行签名。例如,认证可以指示代码已经通过给定的库(例如,库xyz v17)进行概要分析或验证,以与给定库兼容。
在步骤413中,中央云编译器205可以部署经认证的可执行代码或提供经认证的可执行代码以供下载到用于经认证的可执行代码的用户系统。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图5,其中显示了云计算节点的一个例子。图1显示的云计算节点510仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点510具有计算机系统/服务器512,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器512一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器512可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器512可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图5所示,云计算节点510中的计算机系统/服务器512以通用计算设备的形式表现。计算机系统/服务器512的组件可以包括但不限于:一个或者多个处理器或者处理单元516,系统存储器528,连接不同系统组件(包括系统存储器528和处理单元516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器512典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器512访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)530和/或高速缓存存储器532。计算机系统/服务器512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器512交互的设备通信,和/或与使得该计算机系统/服务器512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,计算机系统/服务器512还可以通过网络适配器520与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机系统/服务器512的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器512一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图6,其中显示了示例性的云计算环境650。如图所示,云计算环境650包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点610,本地计算设备例如可以是个人数字助理(PDA)或移动电话654A,台式电脑654B、笔记本电脑654C和/或汽车计算机系统654N。云计算节点610之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点610进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境650提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图6显示的各类计算设备654A-N仅仅是示意性的,云计算节点610以及云计算环境650可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图7,其中显示了云计算环境650(图6)提供的一组功能抽象层。首先应当理解,图7所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图7所示,提供下列层和对应功能:
硬件和软件层760包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM 系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层762提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层764可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可证。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层766提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及根据本公开的创建用于数据分析功能的运行时可执行程序。
在以下编号的条款中指定了各种实施例。
1.一种用于创建用于数据分析功能的运行时可执行程序的计算机实现的方法,该方法包括:
提供数据分析功能的储存库;
响应于从用户接收到数据分析请求,从储存库中选择数据分析功能集合以在托管环境中或用户的场所中执行;
为用户确定数据分析功能集合的许可证,以执行数据分析功能集合;
创建用于实现所确定的许可证的附加代码;
编译所选择的数据分析功能和附加代码,从而生成可执行代码;
认证可执行代码;
部署经认证的可执行代码或提供经认证的可执行代码以供下载到用于经认证的可执行代码的运行时环境。
2.如条款1所述的方法,还包括配置可执行代码以使得能够在可执行代码的执行期间收集所选择的数据分析功能的使用情况统计信息。
3.如条款1或2所述的方法,如果根据许可证,用户无权使用所选择的数据功能的全部功能,则创建附加代码,使得数据分析功能集合在具有受限功能的情况下使用。
4.如前述条款中的任一项所述的方法,还包括:接收关于数据分析功能集合的用户反馈,以及使用用户反馈来更新储存库。
5.如前述条款中的任一项所述的方法,其中所选择的数据分析功能集合是储存库的更新后的数据分析功能和/或向储存库新添加的数据分析功能和/或储存库的现有数据分析功能,新添加的分析功能是在预定义的时间段中添加到储存库的功能;现有数据分析功能是在该预定义的时间段之前存在的功能;更新后的分析功能是被更新的现有功能。
6.如前述条款中的任一项所述的方法,接收到的请求指示从数据源导入的元数据,所述元数据指示要对数据源的数据执行的一项或多项分析,并且将所述元数据作为输入提供给至少一个预定义的机器学习模型,其中所选择的数据分析功能集合是使用元数据和储存库的数据分析功能作为输入的所述至少一个机器学习模型的输出。
7.如条款6所述的方法,还包括在接收到请求后,自动运行分析以生成另外的元数据,其中所述输入还包括所述另外的元数据。
8.如前述条款中的任一项所述的方法,其中所述运行时环境包括基于容器的运行时环境,所述基于容器的运行时环境被配置为仅执行经编译的代码、经认证的代码和实现许可证的代码。
9.如条款8所述的方法,其中所述基于容器的运行时环境包括容器映像的一个或多个容器实例。
10.如前述条款中的任一项所述的方法,许可证的确定使用用户对储存库的输入来执行,其中用户输入包括进一步上传到储存库的数据分析功能和/或储存库中的数据分析功能的反馈和/或对储存库中的数据分析功能的更改。
11.如前述条款中的任一项所述的方法,还包括:响应于接收到包括代码段的用户输入,运行相似性检查以确定接收到的代码段是否不是储存库的现有代码的副本;以及基于比较的结果为用户定义或更新许可证。
12.如前述条款中的任一项所述的方法,其中所述认证是使用基于证书的数字签名来执行的以对可执行代码进行签名。
13.如前述条款中的任一项所述的方法,还包括:从用户接收指示运行时环境的数据,其中所述编译是响应于接收到该数据而执行的。
14.如前述条款中的任一项所述的方法,其中所述数据分析功能包括数据分类器或数据规则。
这里参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应该理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如互联网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用互联网服务提供商来通过互联网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应该理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (16)
1.一种用于创建用于数据分析功能的运行时可执行程序的计算机实现的方法,所述方法包括:
提供数据分析功能的储存库;
响应于从用户接收到数据分析请求,从所述储存库中选择数据分析功能集合以在托管环境中或用户的场所中执行;
为用户确定所述数据分析功能集合的许可证,以执行所述数据分析功能集合;
创建用于实现所确定的许可证的附加代码;
编译所选择的数据分析功能和所述附加代码,从而生成可执行代码;
认证所述可执行代码;以及
部署经认证的可执行代码或提供经认证的可执行代码以供下载到用于所述经认证的可执行代码的运行时环境。
2.如权利要求1所述的方法,还包括配置所述可执行代码以使得能够在所述可执行代码的执行期间收集所选择的数据分析功能的使用情况统计信息。
3.如权利要求1所述的方法,如果根据所述许可证所述用户无权使用所选择的数据功能的全部功能,则创建所述附加代码,使得所述数据分析功能集合在具有受限功能的情况下使用。
4.如权利要求1所述的方法,还包括:接收关于所述数据分析功能集合的用户反馈以及使用所述用户反馈来更新所述储存库。
5.如权利要求1所述的方法,其中所选择的数据分析功能集合是所述储存库的更新后的数据分析功能、向所述储存库新添加的数据分析功能以及所述储存库的现有数据分析功能中的至少一个,并且其中所述新添加的分析功能是在预定义的时间段中添加到所述储存库的功能,所述现有数据分析功能是在所述预定义的时间段之前存在的功能;并且所述更新后的分析功能是被更新的现有功能。
6.如权利要求1所述的方法,其中接收到的请求指示从数据源导入的元数据,并且其中所述元数据指示要对所述数据源的数据执行的一项或多项分析,并且将所述元数据作为输入提供给至少一个预定义的机器学习模型,其中所选择的数据分析功能集合是使用所述元数据和所述储存库的数据分析功能作为输入的所述至少一个机器学习模型的输出。
7.如权利要求6所述的方法,还包括在接收到所述请求后,自动运行分析以生成另外的元数据,其中所述输入还包括所述另外的元数据。
8.如权利要求1所述的方法,其中所述运行时环境包括基于容器的运行时环境,所述基于容器的运行时环境被配置为仅执行经编译的代码、经认证的代码和实现所述许可证的代码。
9.如权利要求8所述的方法,其中所述基于容器的运行时环境包括容器映像的一个或多个容器实例。
10.如权利要求1所述的方法,其中所述许可证的确定使用对所述储存库的用户输入来执行,并且其中所述用户输入包括进一步上传到所述储存库的数据分析功能、所述储存库中的数据分析功能的反馈和对所述储存库中的数据分析功能的更改中的至少一个。
11.如权利要求1所述的方法,还包括:响应于接收到包括代码段的用户输入,运行相似性检查以确定接收到的代码段是否不是所述储存库的现有代码的副本;以及基于比较的结果为所述用户定义或更新所述许可证。
12.如权利要求1所述的方法,其中所述认证是使用基于证书的数字签名来执行的以对所述可执行代码进行签名。
13.如权利要求1所述的方法,还包括:从所述用户接收指示所述运行时环境的数据,其中所述编译是响应于接收到所述数据而执行的。
14.如权利要求1所述的方法,其中所述数据分析功能包括数据分类器或数据规则。
15.一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质具有实施在其中的计算机可读程序代码,所述计算机可读程序代码被配置为执行根据权利要求1至14中的任一项所述的方法。
16.一种用于创建用于数据分析功能的运行时可执行程序的计算机系统,所述计算机系统被配置用于实现根据权利要求1至14中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/247,734 US20200225941A1 (en) | 2019-01-15 | 2019-01-15 | Method for creating run-time executables for data analysis functions |
US16/247,734 | 2019-01-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111435348A true CN111435348A (zh) | 2020-07-21 |
Family
ID=71516674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010024118.3A Pending CN111435348A (zh) | 2019-01-15 | 2020-01-10 | 创建用于数据分析功能的运行时可执行程序的方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20200225941A1 (zh) |
CN (1) | CN111435348A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11822625B2 (en) * | 2020-01-31 | 2023-11-21 | Salesforce, Inc. | Systems, methods, and apparatuses for licensing and provisioning a software product within a cloud based computing environment |
CN115185489B (zh) * | 2022-05-25 | 2023-10-20 | 中核武汉核电运行技术股份有限公司 | 一种时序数据算法组态系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100125472A1 (en) * | 2008-11-19 | 2010-05-20 | International Business Machines Corporation | Relating code with intellectual property assets |
CN101763280A (zh) * | 2008-09-30 | 2010-06-30 | Ics三重自动化软件有限公司 | 编译模型 |
US8417715B1 (en) * | 2007-12-19 | 2013-04-09 | Tilmann Bruckhaus | Platform independent plug-in methods and systems for data mining and analytics |
US20140201752A1 (en) * | 2013-01-14 | 2014-07-17 | Microsoft Corporation | Multi-tenant license enforcement across job requests |
US9811806B1 (en) * | 2016-09-15 | 2017-11-07 | International Business Machines Corporation | Determining license use for composed container services in cloud platforms |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236100A1 (en) * | 2005-04-19 | 2006-10-19 | Guruprasad Baskaran | System and method for enhanced layer of security to protect a file system from malicious programs |
JP2007102439A (ja) * | 2005-10-04 | 2007-04-19 | Hitachi Ltd | ストレージシステム及びライセンス管理方法 |
US7975217B2 (en) * | 2007-12-21 | 2011-07-05 | Google Inc. | Embedding metadata with displayable content and applications thereof |
JP5847552B2 (ja) * | 2011-11-17 | 2016-01-27 | キヤノン株式会社 | 管理装置、情報処理システムおよび管理方法 |
US10127506B2 (en) * | 2015-08-07 | 2018-11-13 | International Business Machines Corporation | Determining users for limited product deployment based on review histories |
US10409559B2 (en) * | 2016-03-18 | 2019-09-10 | Oracle International Corporation | Single-source-base compilation for multiple target environments |
-
2019
- 2019-01-15 US US16/247,734 patent/US20200225941A1/en not_active Abandoned
- 2019-07-02 US US16/459,673 patent/US20200225942A1/en not_active Abandoned
-
2020
- 2020-01-10 CN CN202010024118.3A patent/CN111435348A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417715B1 (en) * | 2007-12-19 | 2013-04-09 | Tilmann Bruckhaus | Platform independent plug-in methods and systems for data mining and analytics |
CN101763280A (zh) * | 2008-09-30 | 2010-06-30 | Ics三重自动化软件有限公司 | 编译模型 |
US20100125472A1 (en) * | 2008-11-19 | 2010-05-20 | International Business Machines Corporation | Relating code with intellectual property assets |
US20140201752A1 (en) * | 2013-01-14 | 2014-07-17 | Microsoft Corporation | Multi-tenant license enforcement across job requests |
US9811806B1 (en) * | 2016-09-15 | 2017-11-07 | International Business Machines Corporation | Determining license use for composed container services in cloud platforms |
Also Published As
Publication number | Publication date |
---|---|
US20200225942A1 (en) | 2020-07-16 |
US20200225941A1 (en) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151024B2 (en) | Dynamic automation of DevOps pipeline vulnerability detecting and testing | |
US11150893B2 (en) | Collaborative software development tool for resolving potential code-change conflicts in real time | |
US10223106B1 (en) | Customized static source code analysis | |
US10929567B2 (en) | Parallel access to running electronic design automation (EDA) application | |
US10158725B2 (en) | Differentiated service identification in a networked computing environment | |
US10055393B2 (en) | Distributed version control of orchestration templates | |
US10956674B2 (en) | Creating cost models using standard templates and key-value pair differential analysis | |
US11354108B2 (en) | Assisting dependency migration | |
US11061739B2 (en) | Dynamic infrastructure management and processing | |
US10678926B2 (en) | Identifying security risks in code using security metric comparison | |
US11100233B2 (en) | Optimizing operating system vulnerability analysis | |
CN111435348A (zh) | 创建用于数据分析功能的运行时可执行程序的方法 | |
US20110191748A1 (en) | Systems and methods for design time service verification and validation | |
US11195137B2 (en) | Model-driven and automated system for shared resource solution design | |
US11301223B2 (en) | Artificial intelligence enabled function logic infusion | |
US20190138646A1 (en) | Systematic Browsing of Automated Conversation Exchange Program Knowledge Bases | |
US11726778B2 (en) | Translating clusters of a monolith application to microservices | |
US11429360B1 (en) | Computer assisted programming with targeted visual feedback | |
US11442724B2 (en) | Pattern recognition | |
US12010145B2 (en) | Certification of computer pipeline results | |
US11429381B1 (en) | Software application refactoring and modification | |
US20230035522A1 (en) | Certification of computer pipeline results | |
US20230118939A1 (en) | Risk Assessment of a Container Build | |
US20230106490A1 (en) | Automatically improving data annotations by processing annotation properties and user feedback | |
US20230267278A1 (en) | Context-based response generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |