CN113326145A - 管理app的方法及系统 - Google Patents
管理app的方法及系统 Download PDFInfo
- Publication number
- CN113326145A CN113326145A CN202110205518.9A CN202110205518A CN113326145A CN 113326145 A CN113326145 A CN 113326145A CN 202110205518 A CN202110205518 A CN 202110205518A CN 113326145 A CN113326145 A CN 113326145A
- Authority
- CN
- China
- Prior art keywords
- app
- remote
- computing system
- target computing
- user
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及管理app的方法及系统,尤其是管理app的计算机实现的方法以及布置和配置为执行计算机实现的方法步骤的计算机系统。计算机实现的方法包括:向用户提供远程app开发用户界面(UI)以开发app,其中远程app开发UI通信联接至远程app管理平台;远程app管理平台基于用户与远程应用开发UI的交互创建app;经由提供给用户且通信地联接至远程app管理平台的远程app管理UI从用户分别接收与app的使用类型和目标计算系统有关的信息;使目标计算系统从远程app管理平台接收app和与适合于app的使用类型和目标计算系统的环境有关的信息;以及使目标计算系统在环境中使用app。
Description
技术领域
本公开主要针对软件管理系统,尤其是用于管理应用程序的系统,其可被用于管理、构建、测试、部署和迭代此类应用程序(在本文中统称为产品系统)。
背景技术
近来,数量越来越多的计算机软件产品以应用程序(在本专利文件中简称为“app”)的形式用于个人需求和商业需求。此类app可以在移动环境中以及在云计算平台上和“内部”使用,并且可以提供特定的功能集。本发明主要涉及此类app的管理。
当前,存在支持app管理的产品系统和解决方案。此类产品系统可以从改进中受益。
发明内容
各种公开的实施方式包括可用于促进管理app的方法和计算机系统。
根据本发明的第一方面,一种管理app的计算机实现的方法可以包括:向用户提供远程app开发用户界面(UI)以开发app,其中远程app开发UI被通信地联接至远程app管理平台;远程app管理平台基于用户与远程app开发UI的交互来创建app;经由被提供给用户并且通信地联接至远程app管理平台的远程app管理UI从用户分别接收与app的使用类型和目标计算系统有关的信息;使目标计算系统从远程app管理平台接收app以及与适合于app的使用类型和目标计算系统的环境有关的信息;以及使目标计算系统在环境中使用app。
根据本发明的第二方面,一种计算机系统可以被布置和配置为执行管理app的计算机实现的方法的步骤。尤其是,所描述的计算机系统可以被布置和配置为执行以下步骤:向用户提供远程app开发用户界面(UI)以用于开发app,其中远程app开发UI通信地联接至远程app管理平台;远程app管理平台基于用户与远程app开发UI的交互来创建app;经由被提供给用户并且通信地联接至远程app管理平台的远程app管理UI从用户分别接收与app的使用类型和目标计算系统有关的信息;使目标计算系统从远程app管理平台接收app以及与适合于app的使用类型和目标计算系统的环境有关的信息;以及使目标计算系统在环境中使用app。
根据本发明的第三方面,可以使用可执行指令对计算机可读介质进行编码,可执行指令在被执行时使所描述的计算机系统执行所描述的管理app的方法。作为实例,所描述的计算机可读介质可以是非暂时性的并且可以进一步是存储设备上的软件组件。
前述已经相当广泛地概述了本公开的技术特征,以便本领域技术人员可以更好地理解以下的详细描述。在下文中将描述形成权利要求主题的本公开的附加特征和优点。本领域技术人员将理解,他们可以容易地将所公开的概念和特定实施方式用作修改或设计实现本公开的相同目的的其他结构的基础。本领域技术人员还将认识到,此类等效构造不会脱离本公开的最广泛形式的精神和范围。
另外,在进行下面的详细描述之前,应当理解,在整个专利文件中提供了某些单词和短语的各种定义,并且本领域的普通技术人员将理解,在许多(如果不是大多数)情况下,此类定义适用于此类定义的单词和短语的先前及将来的使用。尽管某些术语可以包括各种各样的实施方式,但是所附权利要求可以明确地将这些术语限制到特定的实施方式。
附图说明
图1示出了示例性系统的功能框图,该示例性系统有助于在产品系统以及示例性目标计算系统中管理app。
图2至图3示出了其他示例性目标计算系统的功能框图。
图4示出了另一示例性远程app管理平台的功能框图。
图5示出了有助于在产品系统中管理app的示例性方法的流程图。
图6示出了其中可以实现实施方式的数据处理系统的框图。
具体实施方式
现在将参考附图描述与用于在产品系统中管理app的系统和方法有关的各种技术,其中相同的附图标记始终表示相同的元件。以下讨论的附图以及用于描述本专利文件中的本公开的原理的各种实施方式仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,可以以任何适当布置的装置来实现本公开的原理。应当理解,被描述为由某些系统元件执行的功能可以由多个元件执行。类似地,例如,一个元件可以被配置为执行被描述为由多个元件执行的功能。将参考示例性的非限制性实施方式来描述本专利文件的众多创新性教导。
app通常是指在执行时进行特定所需任务的软件程序。通常,在包含一个或多个操作系统(“OS”)、虚拟机(例如,支持JavaTM编程语言)、设备驱动等的运行时环境中执行多个app。
可以使用传统的源代码来创建、编辑和表示app。此类传统源代码的实例包括C、C++、Java、Flash、Python、Perl和其他表示app的基于脚本的方法。可以通过经过适当训练的用户的手动编码来完成开发、创建和管理此类基于脚本的app或此类基于脚本的app的一部分。
开发人员经常使用应用程序开发框架(“ADF”)(其本身就是应用程序或app)来实现/开发所需的app。ADF提供了一组预定义的代码/数据模块,可以在app开发中直接/间接使用它们。ADF还可以提供诸如集成开发环境(“IDE”)、代码生成器、调试器等之类的工具,这些工具有助于开发人员以更快/更简单的方式编码/实现app所需的逻辑。
通常,ADF通过提供可重新利用的组件来简化app开发,这些组件可以被app开发人员用来定义用户界面(“UI”)和app逻辑,例如,通过选择组件来执行所需的任务并定义外观、行为和所选组件的交互。一些ADF基于模型-视图-控制器设计模式,该模式促进松散联接并简化app的开发和维护。
根据另一种方法,还可以使用基于视觉模型的表示来创建、编辑和表示app。与传统的源代码实现方式不同,可以通过在视觉建模环境中绘制、移动、连接和/或断开逻辑元素的视觉描绘来创建、编辑和/或表示此类app。app的基于视觉模型的表示可以使用符号、形状、线条、颜色、阴影、动画和/或其他视觉元素来表示逻辑、数据或存储结构或用户界面元素。为了对传统的基于脚本的app进行编程,通常需要程序员根据一组复杂的编程语法规则来键入详细的脚本。相反,在一些情况下,可以通过连接各种逻辑元素(例如动作块和/或决策块)以创建定义app操作的视觉流程图来完成对基于视觉模型的app进行编程的操作。类似地,可以通过在虚拟工作空间中绘制、放置或连接逻辑元素的视觉描绘,而不是在脚本中键入详细命令,来完成在基于视觉模型的app中定义数据结构(例如变量类型、数据库对象或类)和/或用户界面元素(例如下拉框、列表、文本输入框)。因此,与传统的基于脚本的app相比,基于视觉模型的app可以更直观地进行编程和/或编辑。
为简洁起见,除非特别指出,否则对“模型”、“视觉模型”或“应用程序”或“app”的引用应理解为是指基于视觉模型的app。在一些情况下,此类基于视觉模型的app可以代表用于在计算机系统上执行的完整的独立app。基于视觉模型的app也可以代表离散模块,这些离散模块被配置为执行特定任务或功能,但不代表完整的app,而是可以将这些离散模块插入更大的app中,或与其他离散模块组合以执行更复杂的程序任务。此类离散模块的实例可以包括用于验证ZIP码、用于从气象馈送接收关于当前天气的信息和/或用于渲染图形的模块。
视觉模型可以两种形式表示:内部表示以及一个或多个关联的视觉表示。内部表示可以是根据建模环境用来捕获和定义app(或app的一部分)的操作的文件格式来编码的文件。例如,内部表示可以定义app可接收何种输入、app可提供何种输出、app据其可得出结果的算法和操作、app可显示何种数据、app可存储何种数据等。内部表示还可用于指示执行环境如何在运行时期间执行app的逻辑。内部表示可以非人类可读代码(例如二进制代码)的形式存储。内部表示也可以根据二进制存储的JSON(Java脚本对象符号)格式和/或XML格式存储。在运行时,执行引擎可以使用内部表示来编译和/或生成可执行的机器代码,该代码在由处理器执行时使处理器实现模型的功能。
内部表示可以与一个或多个视觉表示相关联。视觉表示可以包含描述app逻辑如何进行的视觉元素,但这些视觉元素并非旨在进行编译或执行。这些视觉表示可以包含例如向用户显示app将如何运行的流程图或决策树。视觉模型还可以在视觉上描绘将要从用户接收的数据、将要存储的数据以及将要显示给用户的数据。这些视觉模型也可以是交互式的,其允许用户以直观的方式操纵模型。例如,视觉表示可以被配置为默认显示特定程度的细节(例如分支的数量、所显示参数的数量、所显示逻辑的粒度)。然而,用户可以与视觉表示进行交互,以显示所需程度的细节—例如,用户可以显示或隐藏逻辑分支和/或显示或隐藏参数集。默认情况下,与视觉模型元素有关的细节可以从视图中隐藏,但是可以在用户点击适当元素时显示在屏幕上的滑动窗口或弹出窗口中。用户还可以放大或缩小模型、和/或平移模型的不同部分,以检查模型的不同部分。用户还可以将逻辑分支从模型的一个部分复制或粘贴到另一部分,或将逻辑分支从第一个模型复制/粘贴到第二个模型。在一些情况下,模型的一些部分可以包含到模型的其他部分的链接,使得如果用户单击链接,该用户将被自动带到模型的另一部分。如果在模型环境中显示模型,则查看用户可以与模型进行交互,以至少一些与此相同的方式,查看用户可以与视觉表示进行交互。换言之,视觉表示可以被配置为模仿模型在视觉建模环境中显示时的外观。单个内部表示可以对应于使用不同样式或格式规则以显示app逻辑的多个视觉表示。例如,对应于相同内部表示的多个视觉表示可以在使用被包括或省略的颜色、元素以及使用符号、形状、线条、颜色和/或阴影来描绘逻辑流程的方面彼此不同。
参考图1,示出了示例性计算机系统或数据处理系统100的功能框图,其有助于管理app 120。另外,图1中示出了与示例性计算机系统或数据处理系统100交互的示例性目标计算系统150。处理系统100可以包括远程app管理平台124,该远程app管理平台包括至少一个处理器102,该至少一个处理器被配置为执行来自由处理器102访问的内存104的至少一个应用程序软件组件106。应用程序软件组件106可以被配置(即编程)为使处理器102执行本文描述的各种动作和功能。例如,所描述的应用程序软件组件106可以包括和/或对应于app开发应用程序的一个或多个组件,该app开发应用程序被配置为生成产品数据并将其存储在诸如数据库的数据储存器108中。此外,所描述的应用程序软件组件106可以包括和/或对应于app管理应用程序的一个或多个组件。
作为实例,远程app管理平台124可以是基于云的、基于互联网的和/或由提供app开发和管理支持的提供商操作,包括例如支持基于低代码和/或视觉模型的app开发。用户可以位于目标计算系统150的附近或其他任何地方,例如使用移动设备连接至远程app管理平台124,例如经由互联网,其中移动设备可以包括输入设备110和显示设备112。
目标计算系统150可以包括至少一个处理器152,其被配置为执行来自由处理器152访问的内存154的至少一个app软件组件156。app软件组件156可以被配置(即编程)为使处理器152执行本文描述的各种动作和功能。
可以适于包括本文描述的app创建和/或管理功能的产品系统的实例可以包括美国马萨诸塞州波士顿市的Mendix公司的低代码软件平台。该平台提供了用于构建、测试、部署、迭代和管理app的工具并且是基于视觉模型驱动的软件开发。然而,应当理解,本文描述的系统和方法可以用在其他产品系统(例如PLM、PDM、ALM系统)和/或在数据库中生成和存储产品数据的任何其他类型的系统。另外,可用作本文所描述的一个或多个数据存储的数据库的实例包括数据库服务器应用程序,诸如Oracle、Microsoft SQL Server或可用于存储数据记录的任何其他类型的数据存储器。
应当理解,在复杂的app开发和/或管理环境中管理app可能既困难又耗时。例如,可能需要用户的高级编码或软件管理知识,或者需要有意识地进行许多选项的选择,这两者都涉及许多手动步骤,这是一个漫长而又低效的过程。
为了能够增强对app 120的管理,所描述的产品系统或处理系统100可以包括至少一个输入设备110和至少一个显示设备112(诸如显示屏)。所描述的处理器102可以被配置为通过显示设备112生成GUI 114。此类GUI可以包括诸如按钮、链接、搜索框、列表、文本框、图像、滚动条之类的GUI元素),用户可使用这些GUI元素通过输入设备110来提供输入,该输入导致创建app 120。尤其是,该GUI可以包含面对用户的远程app开发122,用于开发app120。
在示例性实施方式中,应用程序软件组件106和/或处理器102可以被配置为向用户提供app开发UI 122以开发app 120。远程app开发UI 122可以通信地联接至远程app管理平台124。为了创建app 120,app软件组件106和/或处理器100可以被配置为捕获用户与远程app开发UI 122的交互。应用程序软件组件106和/或处理器102可以被配置为基于用户与远程app开发UI 122的交互通过远程app开发UI 122来开发和创建app 120。
作为实例,所提供的app开发UI 122可以与上述的ADF、IDE或基于视觉模型的表示进行交互,并且可以用于开发app 120。可以使用显示设备112向用户显示app开发UI 122。用户可以使用输入设备110经由其输入向远程app开发UI 122提供其app开发意图。
作为实例,可以经由远程app开发UI 122向用户显示表征app 120的模型的视觉表示。此类实例可以在上述涉及低代码app开发的上下文中进行,该低代码app开发可涉及基于视觉模型的app开发。在示例性实施方式中,当已经基于用户与远程app开发UI 122的交互实现了表征app 124的模型和/或视觉表示(例如app的功能和/或界面)时,使用远程app开发UI 122和/或远程app管理平台124的app 120的创建或生成可能已经完成。app 120的创建可以例如包括通过远程app管理平台124分别(自动)创建代码和/或(自动)创建app120的app包或二进制文件。
在示例性实施方式中,app软件组件106和/或处理器102可以被配置为经由远程app管理UI 128从用户分别接收与app 120的使用类型和目标计算系统150有关的信息,远程app管理UI被提供给用户并通信地联接至远程app管理平台124。可以将远程app管理UI128被提供给用户以管理app 120。在一些实例中,用户还可以经由远程app管理UI 128来管理一个或多个app 120、环境、app的使用类型和/或一个或多个目标计算系统150。作为实例,目标计算系统150可以是以下的目标设备:在其上应使用所创建的app 120或使所创建的app 120可以例如给一个或多个用户使用。
在示例性实施方式中,远程app管理UI 128可以提供对app的可用的使用类型的选择和/或对可用的目标计算系统的选择。在一些实例中,用户可以定义在远程app管理UI128和/或远程app管理平台124中尚不可用的app的使用类型和/或目标计算系统。对于定义特定目标计算系统150,作为实例,用户可以提供互联网地址,允许远程app管理平台124与目标计算系统和/或目标计算系统的特有特性进行通信,例如包括处理器、内存、数据储存器、操作系统、接口、地理位置或它们任何组合的类型和数量。
还应当理解,在一些实例中,用户可以通过浏览器或客户端访问远程app开发UI122和/或远程app管理UI 128。在一些示例性实施方式中,远程app开发UI 122和远程app管理UI 128的功能可在一个统一的远程app交互UI中可用,该统一的远程app交互UI通信地联接至远程app管理平台124并提供给用户用于交互。
应用程序软件组件106和/或处理器102可以进一步被配置为使得目标计算系统150从远程app管理平台124接收app 120以及与适合于app 120的使用类型和目标计算系统150的环境126有关的信息。作为实例,环境126可以包括对于目标计算系统152的处理器152使用(例如运行)由用户指示的app可能必需的软件组件。在示例性实施方式中,关于环境126的信息可以包括环境126,使得目标计算系统150可以从远程app管理平台124接收合适的环境。
在示例性实施方式中,关于环境126的信息可以包括环境126的标识符和/或特有特性126,其特别适合于由用户指示的使用类型和目标计算系统150。示例性实施方式可以包括这样的场景:其中目标计算系统150可以访问可能是可用的合适的环境126,例如在目标计算系统150的数据储存器上、或通过目标计算系统150从另一个来源(例如因特网)检索合适的环境126。在示例性实施方式中,合适的环境126可以附加地或可替代地可用于远程app管理平台124。
作为实例,远程app管理平台124可以访问适合于app 120的不同使用类型和不同目标计算系统150的各种环境126。这些环境126可以例如存储在数据储存器108中。远程app管理平台124可以确定哪个环境126适合于给定的使用类型和给定的目标计算系统150。远程app管理平台124可以实现由目标计算系统150检索特别地适合于用户所指示的使用类型和目标计算系统150的环境126。在一些实例中,可以存在确定针对app 120的给定使用类型和目标计算机系统150的合适的环境126的步骤。这例如可以是允许借助目标计算机系统150上的最低性能来使用该app 120。
在示例性实施方式中,目标计算系统150可以主动地从远程app管理平台124检索和/或拉取app 120和与环境126有关的信息。这可能意味着远程app管理平台124可能没有主动地推送app 120和与环境126有关的信息到目标计算系统150。因此,用于传输app 120和与环境126有关的信息的数据传输只能在目标计算系统150主动从远程app管理平台124请求此数据时或之后开始。作为实例,目标计算系统150主动从远程app管理平台124检索和/或拉取环境126。
作为实例,数据连接140可以通信地连接远程app管理平台124和目标计算系统150。还应当理解,在一些实例中,数据连接被配置为用于远程app管理平台124和目标计算系统150之间的双向通信。数据连接140可以例如是使用移动宽带、Wi-Fi等的无线的、或有线的。
在示例性实施方式中,应用程序软件组件106和/或处理器102可以进一步被配置为使目标计算系统150在环境126中使用app 120。
在示例性实施方式中,可以使目标计算系统150提供环境126,用于在目标计算系统150上的环境126中使用app 120。
作为实例,目标计算系统150可包括本地、远程或移动设备、本地或远程计算平台、平台即服务、或它们任何组合的至少一个处理器152。
本地设备可以例如包括台式计算机、电视、与智能家用电器、家庭娱乐或家庭自动化等有关的设备。在工业环境中,本地设备可以例如包括边缘设备。此类边缘设备可以例如包括现场设备,如传感器、电动机、泵、阀、逆变器、执行器、机器人等,或者可以包括控制设备,如可编程逻辑控制器(PLC)等,或它们任意组合。此外,在工业环境中,本地设备可以包括与工业控制系统有关的设备,例如监督控制和数据采集(SCADA)或与分布式控制系统(DCS)有关的控制设备。
在示例性实施方式中,移动设备可以包括智能电话、手持计算机、平板计算机、智能手表等。作为实例,本地计算平台可以包括计算机系统资源,尤其是数据储存和计算能力,例如“内部”管理和操作,即在用户或使用软件的用户所属的组织的内部。在示例性实施方式中,此类本地计算平台(但通常还有任意种类的目标计算系统150)可以涉及运行由美国北卡罗来纳州罗利(Raleigh)市的红帽(Red Hat)公司开发的OpenShift容器平台。该容器平台是一个内部平台即服务,它是围绕由Kubernetes在Red Hat Enterprise Linux的基础上编排和管理的Docker容器构建的。Docker容器是美国加利福尼亚州旧金山市的Docker公司的产品,并且Kubernetes是一个开放源代码的容器编排系统,用于自动化应用程序部署、扩展和管理,是美国加利福尼亚州山景城的Google公司的产品。
在示例性实施方式中,远程计算平台包括例如由诸如AWS、微软、谷歌、IBM、阿里巴巴之类的大型云基础设施提供商管理和操作的按需云计算平台。此类远程计算平台有时也称为基础架构即服务。还应当理解,在一些实例中,平台即服务可以包括云计算服务,该云计算服务提供了允许客户开发、运行和管理app的平台,而无需构建和维护通常与开发和启动app相关联的基础架构的复杂性。此类平台即服务可以例如包括德国慕尼黑和柏林的西门子股份公司的MindSphere。更通常地,目标计算系统150还可以包括物联网(IoT)操作系统,特别是工业物联网(IIoT)系统。
在一些实例中,例如,当目标计算系统150涉及本地或远程计算平台或平台即服务时,环境126可以还包括与地理区域、账户类型和/或账户持有者、账户类型和/或子帐户持有者有关的信息以及与拟使用(例如部署)的app 120的储存空间有关的详细信息。
还应当理解,在一些实例中,目标计算系统150可以经由安全数据连接140通信地联接至远程app管理平台124。这可以是上述数据连接140的实施方式。安全数据连接140可以包括安全通信信道、虚拟专用网(VPN),对要传输的数据进行加密或密码保护,例如端到端加密、客户端到服务器加密、或它们任何组合。
作为实例,安全数据连接140包括WebSocket连接。
作为实例,app 120的使用分别包括开发、测试、接受、部署、供应、操作、运行app120、或它们任何组合。
作为实例,测试app 120可以包括检查由用户开发的app 120的功能和/或性能是否符合用户的相应期望,例如在目标计算系统150的环境126中。在示例性实施方式中,部署app 120可以包括向用户发布app 120,然后用户可以安装和/或激活所发布的app 120以满足其具体的个人或业务需求。例如,可以将app 120部署并供应给用户以在目标计算系统150上使用app 120,该目标计算系统可以被实施为移动设备或本地或远程计算平台或平台即服务。在一些实例中,使用可以包括操作app 120并且甚至包括启动或停止以操作/运行app 120。这可能暗示,用户可以触发或促使目标计算系统150以启动或停止从而操作/运行app 120。例如,当用户已经输入了已停止/正在运行的app 120应当被启动/停止以运行/操作时,该使用可以被更新。
还应当理解,在一些实例中,关于环境126的信息包括与app 120需要在目标计算系统150上使用的运行时资源有关的信息。
在示例性实施方式中,运行时系统也称为运行时环境,可以主要实现执行模型的部分。运行时系统或运行时环境可以解决许多问题,包括app内存的布局、程序如何访问变量、在过程之间传递参数的机制、与操作系统的接口等等。编译器可能会取决于具体运行时系统进行假设,以生成正确的代码。通常,运行时系统将负责设置和管理堆栈和堆,并且可能包含诸如垃圾收集、线程或语言中内置的其他动态功能之类的功能。
作为实例,目标计算系统150上可能有一个环境126或多个环境126可用,其中多个环境126可以用于类似或不同类型的app使用。
作为实例,应用程序软件组件106和/或处理器102可以被配置为从远程app管理平台124向目标计算系统150发送触发消息,以触发对app 120的使用准备,该准备包括使目标计算系统150从远程app管理平台124检索与目标计算系统150的目标设置有关的信息,并根据目标设置来设置目标计算系统150。
在示例性实施方式中,目标计算系统150可以仅在从远程app管理平台124接收到触发消息时或之后才主动开始准备。因此,仅在接收到触发消息时,目标计算系统150才可以检索和/或从远程app管理平台124中拉取有关目标计算系统150的目标设置的信息。这可能意味着远程app管理平台124可能不会主动将目标设置推送到目标计算系统150。因此,仅在目标计算系统150主动向远程app管理平台124请求该数据时或之后,才可以开始用于传输目标设置和后续准备的数据传输。
作为实例,目标设置可以包括上述针对Kubernetes的OpenShift容器平台,该平台可以使app的供应、管理和拓展自动化。
在示例性实施方式中,与目标计算系统150的目标设置有关的信息可以包括数据,例如库和/或可执行文件,其是目标计算系统150根据目标设置来设置目标计算系统150所需的。作为实例,与目标设置有关的信息可以包括可在目标计算系统150上运行并且可执行准备的脚本。
示例性实施方式可以包括如下的场景,在该场景中目标计算系统150可以访问根据目标设置来设置目标计算系统150所需的数据,例如在目标计算系统150的数据储存器上,或通过目标计算系统150从另一来源(例如因特网)检索所需的数据。在示例性实施方式中,所需的数据可以附加地或可替代地可用于远程app管理平台124,其中所需的数据可以例如被储存在数据储存器108中。
如果需要,目标计算系统150可以从远程app管理平台124或从另一来源(例如因特网)检索根据目标设置来设置目标计算系统150所需的数据。
在示例性实施方式中,目标设置还包括至少一个软件容器158,用于在目标计算系统150上的环境126中使用app 120,其中,应用程序软件组件106和/或处理器102可以进一步被配置为使目标计算系统150提供软件容器158并将app 120安装在软件容器158中。
在一些示例性实施方式中,软件容器158或简单的容器可以是正在运行的进程,对其施加了一些附加的封装特征,以使其与主机以及其他容器隔离。容器隔离的最重要方面之一可能是每个容器可以与其自己的专用文件系统进行交互。该文件系统可以例如由美国加利福尼亚州圣弗朗西斯科市的Docker公司的Docker镜像提供。
下文中,提供了软件容器158的供应以及在软件容器158中安装app120的示例性实施方式。作为实例,将由目标计算系统150从远程app管理平台124检索的app 120可用于创建或检索用于app 120的完整和可执行版本的镜像或虚拟设备。此类映像可以包括运行app所需的所有内容,例如代码或二进制文件、运行时、依赖性、配置文件、环境变量、库以及所需的任何其他文件系统对象。进一步,此类(Docker)镜像可以包括模板,该模板可以从镜像注册表或镜像数据库(例如从Docker公司)获取或检索。可以直接由目标计算系统150或远程app管理平台124完成获取或检索镜像的操作,然后,可以使检索到的镜像可用于目标计算系统150的检索。如果镜像被部署到Docker环境,然后可以将其作为Docker容器执行。然后,docker run命令可以由给定镜像来创建容器。Docker镜像也可能是可重复使用的资产,可以部署在任何主机上。
例如,目标计算系统150从远程app管理平台124检索到的app 120包括表征该app120的模型,该模型可以被放入容器158中,以便将app 120安装在容器158中。然后,可以供应app 120的依赖性,其中,该依赖性可以例如包括与app 120或app 120的使用有关的数据库和文件储存详细信息。可以安排通过内联网/互联网公开app 120的网络资源。可以提供用于app 120的使用的用户界面。可以创建用于使用镜像、运行容器158或使用app 120的一个或多个数据库。容器可以与数据库连接。可以为app 120的完整和可执行版本创建(Docker)镜像。可以将app 120插入安装在目标计算系统150中的监视和日志记录系统。
作为实例,目标设置还至少包括被配置为与远程app管理平台124通信的通信模块160、被配置为使用app 120的操作模块162以及被配置为储存构建软件容器158所需的镜像模板166的模板存储库164,并且其中操作模块162通信地连接至通信模块160和模板存储库164。
通信模块160和/或操作模块162可以是被实现为分别在目标计算系统150上运行的软件的功能。通信模块160可以被配置为例如经由数据连接140从远程app管理平台124接收数据并将数据发送到该远程app管理平台,该数据连接可以是安全数据连接140。
作为实例,操作模块162可以支持构建app镜像,然后将app镜像推送(即储存)在模板存储库164中。进一步,操作模块162可以为每个使用的app 120供应数据库和文件储存文件夹。作为实例,操作模块162可以支持使用app 120,例如,操作模块162可以运行app 120。此外,操作模块162可以支持配置app 120,例如支持管理app常量和/或计划的事件。
模板储存库164可以存储镜像模板166,例如上述(Docker)镜像模板166,包括可从镜像注册表或镜像数据库中获取或检索的模板。
还应当理解,在一些实例中,仅当从远程app管理平台124接收到的触发消息是有效触发消息时,应用程序软件组件106和/或处理器102可以被配置为使得目标计算系统150才开始准备。
作为实例,触发消息可以包括与远程app管理平台124、目标计算系统150、app120、环境126、数据连接140、使用类型、使用app 120的用户权限有关的信息、或它们任何组合。管理app 120和/或目标计算系统150的用户可以提供与所涉及项目有关的可接受的信息,例如,经由远程app管理UI 128或直接提供到目标计算系统150。供应可接受的信息可以使目标计算系统150检查从远程app管理平台124接收到的触发消息是否包括与所涉及项目有关的信息,其与用户提供的有关所涉及项目的信息一致。在一致的情况下,所接收的触发消息可以被接受为有效触发消息。在示例性实施方式中,管理app 120和/或目标计算系统150的用户可以提供与所涉及项目有关的可接受的信息。
在示例性实施方式中,app软件组件106和/或处理器102可以被配置为使目标计算系统150自动完成对app 120的使用的准备。
作为实例,准备的自动完成可以包括不需要在目标计算系统150的位置处的用户或管理员的本地干预或动作。这可能意味着,例如,对于准备工作的完成,仅需要用户与远程app管理UI 128、以及可选地与远程app开发UI 122和/或远程app管理平台124交互。
还应当理解,在一些实例中,对于在远程app管理平台124处可用的创建的app120,唯一需要的输入可以是与app 120的使用类型和目标计算系统150有关的信息,其中可以通过与远程app管理UI 128交互的用户来提供信息。这意味着,在这些实例中,可以不需要该用户或其他用户的其他交互或输入来自动完成对目标计算系统150的环境126中的app120的使用的准备。
因此,可以实现目标计算系统150的某种“一键式”准备或部署,这对于用户而言可能非常方便。
在示例性实施方式中,应用程序软件组件106和/或处理器102可以被配置为在接收到app 120和与环境126有关的信息之后,使目标计算系统150自动使用app 120。
作为实例,app 120的自动使用可以包括不需要在目标计算系统150的位置处的用户或管理员的本地干预或动作。这可能意味着,例如,对于app 120的使用,仅要求用户与远程app管理UI 128、以及可选地与远程app开发UI 122和/或远程app管理平台124交互。
还应当理解,在一些实例中,对于要在目标计算系统150处使用的创建的app 120,唯一需要的输入可以是与app 120的使用类型和目标计算系统150有关的信息,其中可以通过与远程app管理UI 128交互的用户来提供该信息。这意味着,在这些实例中,对于自动使用目标计算系统150处的环境126中的app 120,可能不需要该用户或其他用户的其他交互或输入。
因此,可以在目标计算系统150处实现对app 120和环境126的某种“一键式”使用,这对于用户而言可能非常方便。
还应当理解,在一些实例中,远程app管理平台124可以还包括远程app管理模块134,其被配置为支持对app 120的管理;远程app开发模块136,其被配置为支持app开发;数据存储器108,其被配置为存储app 120和/或环境126;远程平台门户130,其被配置为分别支持对至少一个目标计算系统150、环境126、app 120、用户或它们任何组合的管理,其中远程平台门户130通信地连接至远程app管理模块134、远程app开发模块136和数据储存器108;以及远程通信模块132,其通信地连接至远程平台门户130,并被配置为与目标计算系统150(例如通信模块160)通信。
远程app管理模块134可以启用或促进管理app 120。作为实例,远程app管理模块134可以通信地连接至远程app管理UI 128,其可以被提供给用户以输入与app 120的使用类型和目标计算系统150有关的信息。远程app开发模块136可以启用或促进开发或创建app120。作为实例,远程app开发模块136可以通信地连接至远程app开发UI 122,其可以被提供给用户用于输入开发或创建app所需的信息。远程app开发模块136可以是例如ADF、IDE或与之交互,从而允许使用上面提到的并且可以被用于开发app 120的基于视觉模型的表示来进行app开发。可以使用数据储存器108来存储一个或多个开发的或创建的app 120和一个或多个环境126,例如适合在特定目标计算系统150上使用特定app 120的环境126。远程app开发模块136可以与数据储存器108通信地联接,例如用于传输可能正在开发中或已经完成的app 120。
远程平台门户130可用于在远程app管理平台124中注册一个或多个目标计算系统150。可能需要此注册以允许远程app管理平台124与相应的目标计算系统150进行通信,例如,以允许准备相应的目标计算系统150供app 120使用,并且作为实例,以允许如上所描述的在相应的目标计算系统150上使用app 120。远程平台门户130可以进一步用于管理或编排多个目标计算系统150、环境126、app 120、用户或它们任何组合。作为实例,远程平台门户130可以支持相应目标计算系统150的准备以供app120使用,并且作为实例,可以支持如上所描述的在相应的目标计算系统150上使用app 120。这可以例如通过远程平台门户130检索或收集用于相应目的所需的数据来实现,其中数据可以包括例如特定的app 120和合适的环境126。然后可以将所提及数据传送到远程通信模块132,该远程通信模块可以使该数据可用于相应的目标计算系统150检索。
在此上下文中,可以理解管理或编排目标计算系统150,使得可以由远程平台门户130执行或触发管理动作或任务,然后在目标计算系统150处或由目标计算系统执行与app120的使用准备和/或app 120的使用有关的操作动作或任务。这些管理动作或任务可以例如不包括与app 120的使用准备和/或app 120的使用不相关的其他维护或操作动作或任务。
远程通信模块132可以被配置用于经由数据连接140与目标计算系统进行通信,该数据连接可以例如包括安全数据连接。
作为实例,应用程序软件组件106和/或处理器102可以被配置为从用户接收与至少一个第一其他用户出于给定目的访问app的权限有关的信息,该给定目的包括开发、使用、执行、管理app 120或它们任何组合;并且仅对具有合适访问权限的至少一个第一其他用户授权出于给定目的的对app 120的访问。
在示例性实施方式中,提供关于这些访问权限的信息的用户可以被认为是例如与一个或多个app使用案例、项目、app有关的管理员、项目所有者等。此外,被授权访问权限的第一其他用户(们)可以被认为是与一个或多个app或项目有关的管理者、开发人员、敏捷专家、业务工程师、产品所有者等。在一些示例性实施方式中,也可能仅存在一个第一其他用户。
作为实例,用于访问app 120的授权的权限可以包括:有权限的第一其他用户可以访问远程app管理平台124,例如,包括远程app开发UI 122和/或远程app管理UI 128或目标计算系统150,例如,然而,仅是为了访问app 120以对app 120进行被允许的使用。
还应当理解,在一些实例中,提供与访问权限有关的信息的用户经由远程app管理UI 128提供此信息。
在示例性实施方式中,提供与访问权限有关的信息的用户可以选择对与基于角色的访问控制一致的至少一个其他第一用户授权访问权限,例如包括根据他们在组织、项目公司等中的相应角色来对相应的第一其他用户授权访问权限。为此,远程app管理UI 128可以向用户提供相应的访问权限授权选项以供选择。
还应当理解,在一些实例中,应用程序软件组件106和/或处理器102可以被配置为从用户接收与至少一个第二其他用户用于访问远程计算平台124、目标计算系统150、环境126或其任何组合的权限有关的信息;并且仅对具有合适访问权限的至少一个第二其他用户授权对远程计算平台124、目标计算系统150、环境126或其任何组合的访问。
在示例性实施方式中,提供与这些访问权限有关的信息的用户可以被认为是例如关于远程app管理平台124和/或目标计算系统150的目标计算系统150的管理者或所有者、监督管理员等。此外,被授权访问权限的至少一个第二其他用户可以被认为是例如关于一个或多个app或项目的管理员、开发人员、管理者等。在一些示例性实施方式中,也可能仅存在一个第二其他用户。
还应当理解,在一些实例中,提供与访问权限有关的信息的用户经由远程app管理UI 128提供此信息。
在示例性实施方式中,提供与访问权限有关的信息的用户可以选择对与基于角色的访问控制一致的至少一个其他第二用户授权访问权限,例如包括根据他们在组织、项目公司等中的相应角色来对相应的第二其他用户授权访问权限。为此,远程app管理UI 128可以向用户提供相应的访问权限授权选项以供选择。
作为实例,其他第二用户可以是有权对上述其他第一用户授权访问权限的用户。该概念可以涉及级联的授权访问权限,其中对第二其他用户授权访问权限的用户可能有权定义第二其他用户可以对其他第一用户授权哪些访问权限。
在示例性实施方式中,应用程序软件组件106和/或处理器102可以被配置为使目标计算系统150将与环境126和/或app 120有关的备份数据储存在备份存储库中。所储存的备份数据可以例如是被选择使得能够快速恢复环境126和/或app 120。作为实例,备份可以以给定的频率进行,例如每小时、每天等,或由给定事件触发,例如另外的用户被授权对app的访问权限或正在使用该app,或当对目标计算系统150执行备份、更新或关闭操作时等。
还应当理解,在一些实例中,应用程序软件组件106和/或处理器102可以被配置为使目标计算系统150使用app 120和/或环境126的至少两个副本。
通常,软件副本可用于共享信息,以确保冗余资源之间的一致性,从而提高可靠性、容错性或可访问性。作为实例,至少两个副本可以是相应的app 120和/或环境126的精确副本,并且可以被独立地使用和/或安装在目标计算系统150上。作为实例,副本可以包括主动复制(通过在每个副本上处理相同的请求来执行)或被动复制(包括在单个副本上处理每个请求并将结果传输到其他副本)。
通常,应当理解,该专利文件中提出的概念可以有助于实现可以(几乎)完全自动化的软件环境,从而可以不需要操作团队来对其进行管理。作为实例,自动化可以包括例如相应的目标计算系统150、相应的环境126、相应的app 120的相应使用的部署和维护,甚至可能包括app 120的开发的自动化。关于软件或app管理的此类自动化概念有时被称为“低操作”或甚至“无操作”,意味着操作和/或维护计算系统或软件(例如相应的目标计算系统150,包括准备在相应的目标计算系统150上的app 120的使用准备和/或app 120的使用)所需的工作量很小或根本不需要。此类方法的优点在于,不需要专业IT人员操作或管理相应的目标计算系统150,从而允许非专业人员为此目的并降低成本。
另外,应当理解,此专利文件中呈现的概念可促进“多云”使用案例,即,例如在单个异构架构中使用多个云计算和存储服务。这可以通过将至少两个不同的目标计算平台150标识为云计算和存储服务来实现,例如包括至少一个“内部”云基础架构或服务。此类多云方法可以由本应用管理概念支持,因为它可以允许所创建的app 120从一个目标计算系统150到另一目标计算系统的容易的移植性。
所描述的实例可以通过启用所描述的app的增强管理来为用户提供管理app的有效方式。因此,通过减轻或至少最小化对具有高级编码知识或手动做出许多有意识的选择的用户或管理员的需求,所描述的实例可总体上降低app以及此类app的管理的总体拥有成本。此类有效的app管理可以在任何行业(例如航空航天与国防、汽车与交通运输、消费品与零售、电子与半导体、能源与公用事业、工业机械与重型设备、船舶或医疗设备与制药)中得到利用。此类app管理还可适用于面临快速管理自己的app需求的消费者。
特别地,以上实例同样适用于计算机系统100,例如远程app管理平台124,其被布置和配置为执行管理app 120的计算机实现的方法的步骤,并分别执行本专利文件中说明的相应计算机可读介质。
图2示出了另一示例性目标计算系统150的功能框图。根据该实例,目标计算系统150包括用于在目标计算系统150上的环境126中使用app120的软件容器158。
如图2所示,内存154可以包括软件容器158。在其他实例中,软件容器158可以被包括在应用程序软件组件156中。软件容器158可以用于安装app 120,然后可以使用该app。目标计算系统150的相应设置可以是上述目标计算系统150的目标设置的一部分。
图3示出了与远程app管理平台124交互的又一示例性目标计算系统150的功能框图。根据该实例,目标计算系统150包括被配置为与远程app管理平台124通信的通信模块160、被配置为使用app 120的操作模块162以及被配置为储存构建软件容器158所需的镜像模板166的模板存储库164。操作模块162通信地连接至通信模块160和模板存储库164。通信模块160可以经由数据连接140与远程app管理平台124通信,该数据连接可以是安全数据连接。
图4示出了与目标计算机系统150交互的另一示例性远程app管理平台124的功能框图。在该实例中,远程app管理平台124可以包括上面已经解释的远程app管理模块134、远程app开发模块136、数据储存器108、远程平台门户130和远程通信模块132。远程app开发模块136可以与数据储存器108通信地联接,例如用于传输可能正在开发中或已经完成的app120。进一步,远程平台门户130可以通信地连接至远程app管理模块134、远程app开发模块136、数据储存器108和远程通信模块132,远程通信模块可以被配置为经由数据连接140与目标计算系统150通信,该数据连接可以例如包括安全数据连接。
重要的是要注意,尽管本公开包括在全功能系统和/或一系列动作的上下文中的描述,但是本领域技术人员将理解,本公开的机制和/或描述的动作的至少一部分能够以计算机可执行指令的形式分布,该计算机可执行指令以各种形式中的任何一种被包含在非暂时性机器可用、计算机可用或计算机可读介质中,并且本公开内容同等地适用,而无论用于实际执行分发的特定类型的指令或数据承载介质或存储介质。非暂时性机器可用/可读或计算机可用/可读介质的实例包括:ROM、EPROM、磁带、软盘、硬盘驱动器、SSD、闪存、CD、DVD和蓝光光盘。计算机可执行指令可包括例程、子例程、程序、应用程序、模块、库、执行线程等。更进一步,方法的动作的结果可以被储存在计算机可读介质中、显示在显示设备上和/或诸如此类。
现在参考图5,示出了促进管理app的方法500。该方法可以在502开始,并且该方法可以包括通过至少一个处理器的操作来执行的多个动作。
这些动作可以包括动作504,向用户提供远程app开发用户界面(UI)以开发app,其中,远程app开发UI通信地联接至远程app管理平台;动作506,远程app管理平台基于用户与远程app开发UI的交互来创建app;动作508,经由远程app管理UI从用户接收与app的使用类型和目标计算系统有关的信息,该远程app管理UI被提供给用户并且通信地联接至远程app管理平台;动作510,使目标计算系统从远程app管理平台接收app以及与适合于app的使用类型和目标计算系统的环境有关的信息;以及动作512,使目标计算系统在环境中使用该app。在514,可结束该方法。
应当理解,方法900可以包括先前关于管理app的计算机实现的方法所讨论的其他动作和特征。
例如,方法可以包括以下动作:从远程app管理平台向目标计算系统发送触发消息以触发对app的使用的准备;使目标计算系统从远程app管理平台检索与目标计算系统的目标设置有关的信息,以及根据目标设置来设置目标计算系统。
进一步,该方法可以包括以下动作:使目标计算系统提供软件容器并将app安装在软件容器中,其中目标设置还包括至少一个软件容器,用于在目标计算系统上的环境中使用app。
该方法的示例性实施方式还可以包括以下动作:仅在从远程app管理平台接收到的触发消息是有效触发消息时,才使目标计算系统开始准备。
该方法的其他示例可以还包括以下动作:使目标计算系统自动完成对app的使用的准备。
根据一些实例,该方法可以包括以下动作:使目标计算系统在接收到app和与环境有关的信息之后自动使用该app。
该方法的示例性实施方式还可以包括以下动作:从用户接收与至少一个第一其他用户出于给定目的访问app 120的权限有关的信息,该给定目的包括开发、使用、执行、管理app 120或它们任何组合;以及仅对具有合适访问权限的至少一个第一其他用户授权出于给定目的的对app 120的访问。
该方法的其他实例可以还包括以下动作:从用户接收与至少一个第二其他用户的用于访问远程计算平台124、目标计算系统150、环境126或其任何组合的权限有关的信息;以及仅向具有合适访问权限的至少一个第二其他用户授权对远程计算平台124、目标计算系统150、环境126或其任何组合的访问。
如前所述,可以由一个或多个处理器执行与这些方法有关的动作(除了任何描述的手动动作之外,诸如通过输入设备手动进行选择的动作)。此类处理器可以被包括在一个或多个数据处理系统中,例如,其执行可操作以使一个或多个处理器执行这些动作的软件组件。在示例性实施方式中,此类软件组件可以包含与例程、子例程、程序、应用程序、模块、库、执行线程等相对应的计算机可执行指令。进一步,应当理解,软件组件可以由诸如Java、JavaScript、Python、C、C#、C++之类的软件环境/语言/框架或能够产生组件和图形用户界面的被配置为执行本文所描述的动作和功能的任何其他软件工具来编写和/或产生。
图6示出了数据处理系统1000(也称为计算机系统)的框图,在该数据处理系统中,实施方式可以被实现为例如产品系统的一部分,和/或由软件或以其他方式可操作地配置以执行本文所描述的过程的其他系统。数据处理系统1000可以包括例如远程app管理平台124和/或上述计算机系统或数据处理系统100。所描绘的数据处理系统包括至少一个处理器1002(例如CPU),其可以连接至一个或多个桥/控制器/总线1004(例如北桥、南桥)。总线1004之一例如可以包括一个或多个I/O总线,诸如PCI Express总线。在所描绘的实例中还连接至各种总线的可以包括主内存1006(RAM)和图形控制器1008。图形控制器1008可以连接至一个或多个显示设备1010。还应当注意,在一些实施方式中,一个或多个更多的控制器(例如图形、南桥)可以与CPU集成(在同一芯片或裸片上)。CPU体系结构的实例包括IA-32、x86-64和ARM处理器体系结构。
连接至一条或多条总线的其他外围设备可以包括通信控制器1012(以太网控制器、WiFi控制器、蜂窝控制器),用于连接至局域网(LAN)、广域网(WAN)、蜂窝网络和/或其他有线或无线网络1014或通信设备。
连接至各种总线的其他组件可以包括一个或多个I/O控制器1016,诸如USB控制器、蓝牙控制器和/或专用音频控制器(连接至扬声器和/或麦克风)。还应当理解,各种外围设备可以(经由各种端口和连接)连接至I/O控制器,包括输入设备1018(例如键盘、鼠标、指示器、触摸屏、触摸板、绘图板、轨迹球、按钮、小键盘、游戏控制器、游戏板、摄像机、麦克风、扫描仪、捕获运动手势的运动感测设备)、输出设备1020(例如打印机、扬声器)或任何其他类型的可用于提供输入或接收来自数据处理系统的输出的设备。另外,应当理解,被称为输入设备或输出设备的许多设备可以既提供输入又接收与数据处理系统通信的输出。例如,处理器1002可以被集成到壳体(诸如平板电脑)中,该壳体包括用作输入设备和显示设备的触摸屏。进一步,应当理解,一些输入设备(诸如膝上型计算机)可以包括多个不同类型的输入设备(例如触摸屏、触摸板、键盘)。另外,应当理解,连接至I/O控制器1016的其他外围硬件1022可以包括被配置为与数据处理系统通信的任何类型的设备、机器或组件。
连接至各种总线的另外的组件可以包括一个或多个储存控制器1024(例如SATA)。储存控制器可以连接至储存设备1026,诸如一个或多个储存驱动器和/或任何相关联的可移动介质,其可以是任何合适的非暂时性机器可用或机器可读存储介质。实例包括非易失性设备、易失性设备、只读设备、可写设备、ROM、EPROM、磁带存储器、软盘驱动器、硬盘驱动器、固态驱动器(SSD)、闪存、光盘驱动器(CD、DVD、蓝光)和其他已知的光、电或磁存储设备驱动器和/或计算机介质。另外,在一些实例中,诸如SSD之类的存储设备可以直接连接至诸如PCI Express总线之类的I/O总线1004。
根据本公开的实施方式的数据处理系统可以包括操作系统1028、软件/固件1030和数据储存器1032(其可以被储存在储存设备1026和/或存储器1006上)。此类操作系统可以采用命令行界面(CLI)外壳和/或图形用户界面(GUI)外壳。GUI外壳允许在图形用户界面中同时显示多个显示窗口,每个显示窗口为不同应用程序或同一应用程序的不同实例提供界面。用户可以通过诸如鼠标或触摸屏之类的点击设备来操纵图形用户界面中的光标或指示器。可以改变光标/指针的位置和/或可以生成诸如点击鼠标按钮或触摸触摸屏的事件以启动期望的响应。可以在数据处理系统中使用的操作系统的实例可以包括MicrosoftWindows、Linux、UNIX、iOS和Android操作系统。另外,数据储存器的实例包括数据文件、数据表、关系数据库(例如Oracle、Microsoft SQL Server)、数据库服务器或能够储存数据的任何其他结构和/或设备,其可以由处理器检索。
通信控制器1012可以连接至网络1014(不是数据处理系统1000的一部分),如本领域技术人员已知的,该网络可以是任何公共或私有数据处理系统网络或网络的组合,包括因特网。数据处理系统1000可以通过网络1014与一个或多个其他数据处理系统(诸如服务器1034)通信(也不是数据处理系统1000的一部分)。然而,可替代的数据处理系统可以对应于实现为分布式系统的一部分的多个数据处理系统,其中与多个数据处理系统相关联的处理器可以通过一个或多个网络连接进行通信,并且可以共同执行被描述为由单个数据处理系统执行的任务。因此,应当理解的是,当涉及数据处理系统时,此类系统可以跨组织在分布系统中的多个数据处理系统之间实现,该分布式系统经由网络彼此通信。
此外,术语“控制器”是指控制至少一个操作的任何设备、系统或其一部分,无论该设备是以硬件、固件、软件还是至少两个相同的组合来实现。应当注意,与任何特定控制器相关联的功能可以是本地或远程的集中式或分布式。
另外,应当理解,数据处理系统可以被实现为虚拟机架构或云环境中的虚拟机。例如,处理器1002和相关联的组件可以对应于在一个或多个服务器的虚拟机环境中执行的虚拟机。虚拟机体系结构的实例包括VMware ESCi、Microsoft Hyper-V、Xen和KVM。
本领域普通技术人员将理解,针对数据处理系统描绘的硬件可以针对特定实现而变化。例如,该实例中的数据处理系统1000可以对应于计算机、工作站、服务器、PC、笔记本计算机、平板电脑、移动电话和/或可用于处理数据并执行的任何其他类型的装置/系统。本文描述的功能和特征与本文讨论的数据处理系统、计算机、处理器和/或控制器的操作相关联。所提供的实例仅出于解释的目的而提供,并不意味着暗示关于本公开的架构限制。
另外,应当注意,本文描述的处理器可以位于远离本文描述的显示和输入设备的服务器中。在此类实例中,所描述的显示设备和输入设备可以被包括在通过有线或无线网络(可以包括因特网)与服务器(和/或在服务器上执行的虚拟机)通信的客户端设备中。在一些实施方式中,此类客户端设备例如可以执行远程桌面应用或可以对应于门户设备,该门户设备与服务器执行远程桌面协议以便将输入从输入设备发送到服务器并接收来自服务器的视觉信息以通过显示设备显示。此类远程桌面协议的实例包括Teradici的PCoIP、Microsoft的RDP和RFB协议。在此类实例中,本文描述的处理器可以对应于在服务器的物理处理器中执行的虚拟机的虚拟处理器。
如本文所使用的,术语“组件”和“系统”旨在涵盖硬件、软件、或硬件与和软件的组合。因此,例如,系统或组件可以是进程、在处理器上执行的进程、或处理器。另外,组件或系统可以位于单个设备上,也可以分布在多个设备上。
另外,如本文所使用的,处理器对应于被配置为经由硬件电路、软件和/或固件处理数据的任何电子设备。例如,本文描述的处理器可以对应于微处理器、CPU、FPGA、ASIC或能够在数据处理系统中处理数据的任何其他集成电路(IC)或其他类型的电路中的一个或多个(或组合),其形式可以是控制板、计算机、服务器、移动电话和/或任何其他类型的电子设备。
本领域技术人员将认识到,为了简单和清楚起见,此处未描绘或描述适用于本公开的所有数据处理系统的完整结构和操作。相反,仅描绘和描述了本公开所独有的或对于理解本公开所必需的大部分数据处理系统。数据处理系统1000的其余构造和操作可以符合本领域已知的各种当前实施方式和实践中的任何一种。
另外,应当理解,除非在一些实例中明确限制,否则本文中使用的词或短语应当被广义地解释。例如,术语“包括”和“包含”及其派生词是指包括但不限于。除非上下文另外明确指出,否则单数形式“一个”、“一种”和“该”也意图包括复数形式。此外,本文所使用的术语“和/或”是指并涵盖一个或多个相关联的所列项目的任何和所有可能的组合。术语“或”是包括性的,意味着和/或,除非上下文另有明确指示。短语“与其关联”和“与之关联”及其派生词可能表示包括、包括在其中、与其互连、包含、包含在其中、连接至或与其连接、联接至或与其联接、与其通信、与其合作、交织、并置、接近、受其约束或带有、具有、有某物的特性等。
而且,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种元件、功能或动作,但是这些元件、功能或动作不应受到这些术语的限制。相反,这些数字形容词用于区分不同的元件、功能或动作。例如,第一元件、功能或动作可以被称为第二元件、功能或动作,并且类似地,第二元件、功能或动作可以被称为第一元件、功能或动作,而不背离本公开的范围。
另外,诸如“处理器被配置为”执行一个或多个功能或过程的短语可以意味着处理器被可操作地配置为或可操作地被配置为经由软件、固件和/或有线电路来执行功能或过程。例如,被配置为执行功能/过程的处理器可以对应于正在执行软件/固件的处理器,该处理器被编程为使得处理器执行功能/过程,和/或可以对应于处理器,其具有在内存或存储设备中的软件/固件,其可以被获得以由处理器执行以执行功能/过程。还应注意,“被配置为”执行一个或多个功能或过程的处理器也可能对应于专门制造或“连线”以执行功能或过程的处理器电路(例如ASIC或FPGA设计)。此外,被配置为执行一个以上功能的元件(例如处理器)之前的短语“至少一个”可以对应于每个执行功能的一个或多个元件(例如处理器)并且还可以对应于分别执行一个或多个不同功能中的不同功能的两个或多个元件(例如处理器)。
另外,术语“邻近于”可以表示:元件相对靠近另一个元件但不与其接触;或者,除非上下文另外明确指出,否则该元件与另一部分接触。
尽管已经详细描述了本公开的示例性实施方式,但是本领域技术人员将理解,在不脱离本公开的最广泛形式的精神和范围的情况下,可以进行本文公开的各种改变、替换、变化和改进。
本专利文件中的描述均不应理解为暗示任何特定元件、步骤、动作或功能是必不可少的元素、必须将其包括在权利要求范围内:专利主题的范围仅由授权的权利要求限定。
Claims (15)
1.一种管理app(120)的计算机实现的方法,包括:
向用户提供远程app开发用户界面(122)以开发所述app(120),其中,所述远程app开发用户界面(122)通信地联接至远程app管理平台(124);
所述远程app管理平台(124)基于所述用户与所述远程应用开发用户界面(122)的交互来创建所述app(120);
经由被提供给所述用户并且通信地联接至所述远程app管理平台(124)的远程app管理用户界面(128)从所述用户分别接收与所述app(120)的使用类型和目标计算系统(150)有关的信息;
使所述目标计算系统(150)从所述远程app管理平台(124)接收所述app(120)以及与适合于所述app(120)的所述使用类型和所述目标计算系统(150)的环境(126)有关的信息;以及
使所述目标计算系统(150)在所述环境(126)中使用所述app(120)。
2.根据权利要求1所述的计算机实现的方法,其中,所述目标计算系统(150)经由安全数据连接(140)通信地联接至所述远程app管理平台(124)。
3.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述app(120)的使用分别包括开发、测试、接受、部署、供应、操作、运行app(120)或它们的任何组合。
4.根据前述权利要求中任一项所述的计算机实现的方法,其中与所述环境(126)有关的信息包括与所述app(120)在所述目标计算系统(150)上的使用所需的运行时资源有关的信息。
5.根据前述权利要求中任一项所述的计算机实现的方法,还包括:
从所述远程app管理平台(124)向所述目标计算系统(150)发送触发消息以触发对所述app(120)的使用的准备,所述准备包括使所述目标计算系统(150):
从所述远程app管理平台(124)检索与所述目标计算系统(150)的目标设置有关的信息,以及
根据所述目标设置来设置所述目标计算系统(150)。
6.根据权利要求5所述的计算机实现的方法,其中,所述目标设置还包括至少一个软件容器(158),用于在所述目标计算系统(150)上的所述环境(126)中使用所述app(120),
所述方法还包括:
使所述目标计算系统(150)提供所述软件容器(158)并将所述app(120)安装在所述软件容器(158)中。
7.根据权利要求5或6所述的计算机实现的方法,
其中,所述目标设置还至少包括被配置为与所述远程app管理平台(124)通信的通信模块(160)、被配置为使用所述app的操作模块(162)和被配置为储存用于构建软件容器(158)所需的镜像模板(166)的模板存储库(164),并且
其中,所述操作模块(162)被通信地连接至所述通信模块(160)和所述模板存储库(164)。
8.根据权利要求5至7中任一项所述的计算机实现的方法,还包括:
如果从所述远程app管理平台(124)接收到的所述触发消息是有效触发消息,则使所述目标计算系统(150)仅开始所述准备。
9.根据权利要求5至8中任一项所述的计算机实现的方法,还包括:
使所述目标计算系统(150)自动地完成所述app(120)的使用的准备。
10.根据前述权利要求中任一项所述的计算机实现的方法,还包括:使所述目标计算系统(150)在接收到所述app(120)和与所述环境有关的信息(126)之后自动地使用所述app(120)。
11.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述远程app管理平台(124)还包括:
远程app管理模块(134),被配置为支持对所述app(120)的管理;
远程app开发模块(136),被配置为支持app开发;
数据储存器(108),被配置为储存所述app(120)和/或所述环境(126);
远程平台门户(130),被配置为分别支持对至少一个目标计算系统(150)、环境(126)、app(120)、用户或它们的任何组合的管理,其中,所述远程平台门户(130)被通信地连接至所述远程app管理模块(134)、所述远程app开发模块(136)和所述数据储存器(108);以及
远程通信模块(132),被通信地连接至所述远程平台门户(130)并被配置为与所述目标计算系统(150)通信。
12.根据前述权利要求中任一项所述的计算机实现的方法,还包括:
从所述用户接收与至少一个第一其他用户出于给定目的访问所述app(120)的权限有关的信息,所述给定目的包括开发、使用、执行、管理app(120)或它们的任何组合;以及
仅对具有合适访问权限的所述至少一个第一其他用户授权出于所述给定目的的对所述app(120)的访问。
13.根据前述权利要求中任一项所述的计算机实现的方法,还包括:
从所述用户接收与至少一个第二其他用户的用于访问远程计算平台(124)、目标计算系统(150)、所述环境(126)或它们的任何组合的权限有关的信息;以及
仅对具有合适访问权限的所述至少一个第二其他用户授权对所述远程计算平台(124)、所述目标计算系统(150)、所述环境(126)或它们的任何组合的访问。
14.一种计算机系统(100、124),其被布置和配置为执行根据前述权利要求中任一项所述的计算机实现的方法的步骤。
15.一种使用可执行指令编码的计算机可读介质,所述可执行指令在被执行时使根据权利要求14所述的计算机系统(124)执行根据权利要求1至13中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20160123.4 | 2020-02-28 | ||
EP20160123.4A EP3872625A1 (en) | 2020-02-28 | 2020-02-28 | Method and system for managing an app |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113326145A true CN113326145A (zh) | 2021-08-31 |
Family
ID=69742963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110205518.9A Pending CN113326145A (zh) | 2020-02-28 | 2021-02-24 | 管理app的方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210271458A1 (zh) |
EP (1) | EP3872625A1 (zh) |
CN (1) | CN113326145A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12003525B2 (en) * | 2021-04-02 | 2024-06-04 | Siemens Aktiengesellschaft | Development security operations on the edge of the network |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015526830A (ja) * | 2012-08-28 | 2015-09-10 | ブイシーイー カンパニー エルエルシー | 既存のコンピューティング環境内に配備される統合コンピューティング・プラットフォーム |
US9021431B2 (en) * | 2013-01-07 | 2015-04-28 | Abb Inc. | System and method for developing, deploying and implementing power system computer applications |
US10037204B2 (en) * | 2014-04-22 | 2018-07-31 | Delphix Corp. | Version control of applications |
EP3128418A1 (en) * | 2015-08-03 | 2017-02-08 | Wipro Limited | System and method for provisioning and deployment of application environment on hybrid cloud platform |
US9690558B2 (en) * | 2015-09-02 | 2017-06-27 | Sap Portals Israel Ltd | Orchestrating the lifecycle of multiple-target applications |
AU2016349939A1 (en) * | 2015-11-03 | 2018-05-17 | The Stainless Steel Monument Company Pty Ltd | A design system and method |
-
2020
- 2020-02-28 EP EP20160123.4A patent/EP3872625A1/en active Pending
-
2021
- 2021-02-10 US US17/173,204 patent/US20210271458A1/en active Pending
- 2021-02-24 CN CN202110205518.9A patent/CN113326145A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210271458A1 (en) | 2021-09-02 |
EP3872625A1 (en) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001818B2 (en) | Extensible IDE platform with open APIs | |
EP3798817B1 (en) | User interface logical and execution view navigation and shifting | |
US11681512B2 (en) | Industrial automation smart object inheritance | |
EP3798757B1 (en) | System and method for developing industrial applications | |
EP3726373B1 (en) | Creating an app method and system | |
US20220317833A1 (en) | Preferential automation view curation | |
EP4296803A1 (en) | Device configuration object template with user interaction for device properties generator | |
CN113326145A (zh) | 管理app的方法及系统 | |
US20230152790A1 (en) | System model smart object configuration | |
US12014172B2 (en) | Presentation design dynamic generation from data model server | |
US20240103850A1 (en) | Presentation design to background service binding | |
US20240103851A1 (en) | Presentation design to automation device binding | |
US11835941B2 (en) | Industrial automation smart object parent/child data collection propagation | |
US20240019850A1 (en) | Extensible profiles for industrial control modules | |
US20240086182A1 (en) | Method for connecting a web socket session with an object instance with automation device association | |
WO2023036399A1 (en) | Managing an app, especially developing an app comprising an event artifact, method and system |
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 |