CN103279365B - 部署、合并发行独立应用程序的方法、计算机可读媒体和系统 - Google Patents
部署、合并发行独立应用程序的方法、计算机可读媒体和系统 Download PDFInfo
- Publication number
- CN103279365B CN103279365B CN201310011101.4A CN201310011101A CN103279365B CN 103279365 B CN103279365 B CN 103279365B CN 201310011101 A CN201310011101 A CN 201310011101A CN 103279365 B CN103279365 B CN 103279365B
- Authority
- CN
- China
- Prior art keywords
- application program
- compatibility
- application
- information
- processor
- 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.)
- Active
Links
Classifications
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种方法、计算机可读媒体和系统。该方法的一个实施例包括监听应用程序安装过程;分类该应用程序;确定与该应用程序相关联的信息;以及根据分类和确定的信息安装该应用程序。该安装应用程序可以进一步包括确定一个或多个目标节点的兼容性信息,以及如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中。
Description
技术领域
本发明一般涉及产品线的独立应用程序和/或软件发行版的部署和合并。
背景技术
大型系统(例如,像医疗成像设备和医院管理系统那样的医疗系统)包括不同来源(例如,拥有特定应用程序的业务单位)的多种产品。这些产品是独立开发的,但将通用产品线代码用于,例如,通用外观和感觉(common look andfeel)、运行时基础设施、数据存储库(data repository)、和域特定协议和技术堆栈。
一方面,这些产品本意上是相互独立的,具有内部产品可变性,具有可扩展性,可部署在多台物理或虚拟机上,以及具有它们从与其他开发站点独立地开发产品的开发站点发出的专门装运时间点。另一方面,来自这些独立产品的应用程序由于处在这样应用程序中的大量通用产品线代码,以及因为来自两种独立产品的应用程序往往需要用于专业医疗诊断的更紧密技术耦合(例如,MR+MI、CT+MI),或由于,例如,成本限制,至少需要联合部署在相同硬件盒和软件运行时系统中而相互具有相当大的技术相关性。
如果没有附加的技术解决方案以及在上述限制下,由于那种附加产品与现有系统的许多接触点,无论是利用来自多种独立产品的贡献从头安装医疗系统,还是存在加入现有安装中的一个独立应用程序发行版,系统安装和部署都可能失败或使系统无法使用。
潜在失败的原因是技术冲突。主要冲突是可能不允许独立产品发行版强制(必须)覆盖(文件,数据、内容)在现有系统上,但以目前的技术无法避免,而替换可能是业务关键。更糟糕的是,安装程序(例如,Windows安装程序)不支持智能合并,以及如果这种安装遭受强制覆盖,则可能放弃对产品安装的控制。
下面描述已知部署解决方案的例子。
在一种已知解决方案中,在装运之前最终决定存在可变性选项的所有独立产品并使它们同步,并首先“冻结”,然后在安装完成之后“解冻”所有可变性。因此,在开发时,在所有贡献站点的一个专门“整合”站点上集中地在独立产品的“组合”发行版中解除所有限制。装运给具有实际相同“冻结”设置的一台或多台物理机或一个或多个物理盒。但这种组合交付解决方案不允许产品发行独立性,例如,既没有独立发行时间点也不能,例如,只从一个站点独立装运发行内容。
在另一种已知解决方案中,基于纯粹“永久”向前或向后兼容性的合并以失败告终。例如,微软公司多年来曾承诺Win32API的向后兼容性,但最终放弃了。微软公司承诺.NET框架的兼容性,但失败了。Windows更新程序避免了任何合并,但在对安装发行版的差异询问之后强制替换本地文件,并从部署储备库中下载。本国软件分发机制(例如,根据管理节点包、微软动态目录等)装运软件包,但假设所有进一步决定由目标节点上的一些其他软件作出。
在另一种已知解决方案中,可以用许多版本安装相同产品,用户或应用程序通过人工选择或总是使用自己安装路径挑选合适版本,决不会将产品相互关联也不会将相同产品的多个版本相互关联,但使它们保持独立,将隔离安装子目录树用于每种产品和产品版本以及总是使用分开安装包。这是像Microsoft Visual Studio应用程序和.NET框架、JavaRun-Time、Perl编程语言、Adobe Reader应用程序等等那样,所有供应商使用的默认解决方案。一些软件不顾对同一台机器上的其他基于Java软件的潜在副作用地强迫用户首先安装他们基层运行时系统的正确版本,例如,Java运行时的所需版本。像微软Windows或SAP企业软件的发行版那样,一些软件甚至拒绝在一台机器上存在不止一种,并强迫用户删除相同产品的以前版本。
上述已知解决方案的每一种都不允许应用程序或软件的发行独立性。
发明内容
本发明人认识到,在部署应用程序和/或软件发行版的背景下,发行独立性可以通过新的系统和方法来实现。在至少一个实施例中,该系统和方法使用新的混合自动部署(Hybrid Auto Deployment,HyAD)模块。
本申请的一个实施例包括一种方法。该方法包括监听应用程序安装过程; 分类该应用程序;确定与该应用程序相关联的信息;以及根据分类和确定的信息安装该应用程序。安装应用程序可以进一步包括确定一个或多个目标节点的兼容性信息,以及如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中。
本申请的另一个实施例包括一种方法。该方法包括接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点;以及将该应用程序加入至少一个兼容目标节点中。
本申请的一个实施例包括一种装置。该装置包括存储器、处理器、第一模块(像例如HyAD模块那样)和第二模块(像例如安装程序那样)。该第一模块包括当被该处理器执行时,使该处理器监听应用程序安装过程,分类该应用程序,以及确定与该应用程序相关联的信息的代码段。该第二模块包括当被该处理器执行时,使该处理器根据分类和所确定信息安装该应用程序的代码段。该HyAD模块也可以确定一个或多个目标节点的兼容性信息,以及如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中。该第一模块可以将这种确认用作触发安装程序的最终条件,然后可以导致正确、成功和可用的安装。
本申请的另一个实施例包括一种装置。该装置包括存储器、处理器、和像例如安装程序那样的模块。该模块包括当被该处理器执行时,使该处理器执行如下操作的代码段:接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;以及如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个兼容目标节点中。
本申请的又一个实施例包括一种装置。该装置包括存储器、处理器、和像例如安装程序那样的模块。该模块包括当被该处理器执行时,使该处理器执行如下操作的代码段:接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点;以及在未确认兼容性的那些目标节点上为安装创建附加兼容部署环境(虚拟盒)。
本申请的一个进一步实施例包括一种计算机可读媒体。该计算机可读媒体包括当被处理器执行时,使处理器执行如下操作的代码段:监听应用程序安装过程;分类该应用程序;确定与该应用程序相关联的信息;以及根据分类和确定的信息安装该应用程序。安装该应用程序可以进一步包括确定一个或多个目标节点的兼容性信息,以及如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中。
附图说明
本发明可以从下文给出的示范性实施例的详细描述以及相同元件用相同标号表示、只通过例示给出和因此不限制本发明的附图中得到更全面了解,在附图中:
图1例示了按照至少一个示范性实施例的系统;
图2例示了按照至少一个示范性实施例的预安装方法;
图3例示了按照至少一个示范性实施例的部署方法;
图4例示了按照至少一个示范性实施例的应用程序执行方法;以及
图5例示了按照示范性实施例的计算机断层扫描系统。
应该注意到,这些图形旨在例示用在某些示范性实施例中的方法、结构和/或材料的一般特征以及补充下面提供的书面描述。但是,这些附图未按比例画出和可能未精确反映任何给定实施例的精确结构或性能特征,以及不应该理解为定义或限制示范性实施例所包含的数值或特性的范围。例如,为了清楚起见,可能缩小或放大了微粒、层、区域和/或结构元件的相对厚度和定位。在各种附图中使用相似或相同标号旨在指示相似或相同元件或特征的存在。
具体实施方式
虽然示范性实施例具有各种修改例和替代形式,但在附图中通过例子示出以及在本文中将详细描述这些实施例。但是,应该明白,无意使示范性实施例局限于公开的具体形式,而是相反,这些示范性实施例将涵盖在权利要求书的范围之内的所有修改例、等效例、和替代例。在对图形的整个描述中相同标号都指相同元件。
在更详细地讨论示范性实施例之前,要注意到,一些示范性实施例被描 述成描绘成流程图的进程或方法。尽管流程图将操作描述成顺序进程,但许多操作可能并行地,或同时地执行。另外,可以重新排列操作的次序。这些进程在它们的操作完成时可能终止,但也可能含有未包括在图形中的附加步骤。这些进程可能对应于方法、函数、过程、子例程、子程序等。
其中一些通过流程图例示出来、下面讨论的方法可以通过硬件、软件、固件、中间件、微码、硬件描述语言或它们的任何组合体来实现。当用软件、固件、中间件或微码来实现时,将执行必须任务的程序代码或代码段存储在机器或像存储媒体那样的计算机可读媒体中。这些必要任务将由处理器来执行。
本文公开的特定结构和功能细节仅仅代表描述本发明的示范性实施例的目的。但是,本发明可以以许多可替代形式具体化,不应该理解为只局限于本文所列举的实施例。
应该明白,尽管术语第一、第二等在本文中用于描述各种元件,但这些元件不应该受这些术语限制。这些术语只用于将一个元件与另一个元件区分开。例如,第一元件也可以称为第二元件,并且类似地,第二元件也可以称为第一元件,这都不偏离示范性实施例的范围。如本文所使用,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
应该明白,当一个元件被称为与另一个元件“连接”或“耦合”时,它可以与其他元件直接连接或耦合,或可能存在中间元件。相反,当一个元件被称为与另一个元件“直接连接”或“直接耦合”时,就不存在中间元件。用于描述元件之间的关系的其他词汇也应该以相同方式理解(例如,“之间”与“直接之间”、“相邻”与“直接相邻”等)。
本文使用的术语只用于描述特定实施例的目的,而无意限制示范性实施例。如本文所使用,单数形式“一个”、“一种”和“该”等也旨在包括复数形式,除非上下文另有明确指明。应该进一步明白,动词和/或动名词术语“包含”和/或“包括”当用在本文中时,规定存在所述特征、整数、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的群体。
还应该注意到,在一些替代实现中,标注的功能/动作可以不按标注在图中的次序出现。例如,取决于所牵涉的功能/动作,相继显示的两个图事实上可能被同时执行或有时可能按相反次序执行。
除非另有定义,本文使用的所有术语(包括技术和科学术语)具有这些示范性实施例所属领域的普通技术人员通常所理解相同的含义。应该进一步明白,术语,例如,定义在常用词典中的那些术语应该理解为具有与在相关领域的背景下它们的含义一致的含义,而不应该从理想化或过分正式的意义上来理解,除非本文明确地如此定义。
示范性实施例的一些部分以及对应详细描述用软件,或对计算机存储器内的数据位的操作的算法和符号表示的术语给出。这些描述和表示是本领域的普通技术人员有效地将它们工作的实质高效传达给本领域的其他普通技术人员的描述和表示。一种算法如这里使用该术语那样,或如一般使用它那样,被设想为导致所希望结果的步骤的自洽序列(self-consistent sequence)。该步骤是要求对物理量物理操纵的那些步骤。通常,尽管未必,但这些物理量采取能够存储、传送、组合、和要不然操纵的光、电或磁信号的形式。已经证明,有时,主要为了常用的原因,将这些信号称为位、数值、元素、符号、字符、项、数字等是方便的。
在如下描述中,将针对可以实现成程序模块或功能进程的动作和操作的符号表示(例如,以流程图的形式)描述例示性实施例,这些程序模块或功能进程包括执行特定任务或实现特定抽象数据类型以及可以在现有网络单元上使用现有硬件实现的例程、程序、对象、部件、数据结构等。这样的现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。
然而,应该牢记的是,所有这些和类似术语都要与适当物理量相关联,并且仅仅是应用于这些物理量的方便标记。除非另有特别说明,或如从讨论中明显看出,像“处理”、“计算”或“运算”、“确定”或“显示”等指的是计算机系统或类似电子计算设备的行为和进程,该计算机系统或类似电子计算设备操纵计算机系统的寄存器和存储器内代表物理、电子量的数据并将其转换成计算机系统的存储器或寄存器或其他这样信息存储、传输和显示设备内类似地代表物理量的其他数据。
还要注意,示范性实施例的软件实现方面通常被编码在某种形式的程序存储媒体上,或实现在某些类型的传输媒体上。程序存储媒体可以是磁的(例如,软盘或硬盘驱动器)或光的(例如,致密盘只读存储器或“CD-ROM”),并且可以是只读的或随机访问的。类似地,传输媒体可以是双绞线、同轴电 缆、光纤或技术上已知的一些其他合适传输媒体。示范性实施例不受任何给定实现的这些方面限制。
本申请的一个实施例包括一种装置。该装置包括存储器、处理器、像例如HyAD模块那样的第一模块和像例如安装程序那样的第二模块。第一模块包括当被处理器执行时,使处理器监听应用程序安装过程,分类应用程序,以及确定与应用程序相关联的信息的代码段。第二模块包括当被处理器执行时,使处理器根据分类和所确定信息安装应用程序的代码段。第一模块也可以确定一个或多个目标节点的兼容性信息,以及如果确认了应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。该HyAD模块也可以确定一个或多个目标节点的兼容性信息,以便在将应用程序加入至少一个新目标节点中之前创建新的兼容部署环境。
本申请的一个其他实施例包括一种装置。该装置包括存储器、处理器、和像例如安装程序那样的模块。该模块包括当被处理器执行时,使处理器执行如下操作的代码段:接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;以及如果确认了应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
本申请的又一个实施例包括一种装置。该装置包括存储器、处理器、和像例如安装程序那样的模块。该模块包括当被处理器执行时,使处理器执行如下操作的代码段:接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点;以及将应用程序加入至少一个兼容目标节点中。该HyAD模块也可以确定一个或多个目标节点的兼容性信息,以便在将应用程序加入至少一个新目标节点中之前创建新的兼容部署环境。
图1例示了按照示范性实施例的系统100。如图1所示,系统100包括存储器105、服务器125、存储器150、一个或多个目标节点155和存储器180。存储器150可以是便携式存储器。存储器150可以包括一个或多个便携式存储设备(例如,CD、DVD、SSD)。存储器150可以是可经由例如互联网或内联网与服务器125通信耦合的固定存储器。存储器150可以存储应用程序 或软件发行版(例如,新软件版本或热修复版)。
服务器125可以包括存储器130、处理器135、混合自动部署(HyAD)模块140和像安装程序145那样的另一个模块。服务器125可以是多功能计算设备。服务器125可以与云计算或多计算机/联网环境(例如,医院管理系统)相关联。服务器125可以是独立计算设备。当服务器125是独立计算设备时,服务器125可以与控制计算机控制系统(例如,医疗成像设备或制造装备)相关联。当服务器125是独立计算设备时,服务器125可以配置成与网络(互联网或内联网)通信。
HyAD模块140监听软件发行版的传入安装包的安装过程,并分类安装包。HyAD模块140对安装包的安装和部署作出判定。该安装包可以是,例如,存储在存储器150上的应用程序或软件发行版。HyAD模块140的操作将在下面参照图2-4作更详细描述。
存储器130和处理器135是本领域的普通技术人员所已知的。安装程序145可以与HyAD模块145协作,以便将安装包安装在,例如,一个或多个目标节点155上。安装程序145也可以与安装程序170协作来对安装包进行安装。安装包的安装将在下面参照图2-4作更详细描述。
存储器105可以包括一个或多个存储模块。存储模块可以是单独物理存储器(例如,硬盘驱动器)、单个物理存储器上的单独分区和/或单个物理存储器的单个分区上的单独存储地点。存储模块可以存储与软件(例如,应用程序软件)的安装相关联的信息。存储模块可以存储分发信息110、历史信息115和策略信息120。分发信息110和历史信息115可以从HyAD模块140接收。策略信息120可以是与一个或多个安装包的分发相关联的信息并由管理员输入。
一个或多个目标节点155可以包括存储器160、处理器165、安装程序170和虚拟机175。在一个示范性实施例中,一个或多个目标节点155可以与一个或多个物理机相关联。在另一个示范性实施例中,一个或多个目标节点155可以与运行在一个或多个物理机上的一个或多个虚拟机相关联。在又一个示范性实施例中,一个或者多个目标节点155可以与运行在物理机上的一个或者多个虚拟机相关联。在又一个示范性实施例中,一个或多个目标节点155可以与运行在服务器125上的一个或多个虚拟机相关联。本领域的普通技术人员应该懂得,也可能存在目标节点的其他例子,以及如果需要的话, 也可以按设计选择组合上面的例子。
存储器180可以包括一个或多个存储模块。存储模块可以是单独物理存储器(例如,硬盘驱动器)、单个物理存储器上的单独分区和/或单个物理存储器的单个分区上的单独存储地点。存储模块可以存储与软件(例如,应用程序软件)的安装相关联的信息。存储模块可以存储HyAD部署挂钩(hook)185和HyAD安装挂钩190。HyAD部署挂钩185和HyAD安装挂钩190可以是配置成监听对应用程序的调用的挂钩,以便确定应该在什么地方安装或执行应用程序(例如,一个或多个目标节点155的哪一个)。当监听对应用程序的调用时,可以将挂钩用于确定从什么地方运行应用程序。
在典型的系统中,可以整合到目标系统中的独立产品的代码和配置文件可能必须一直排列在多个层次上以便给出完整的系统。所需排列可能不允许具有独立性,这是生产力、上市时机和创新所希望的。
在典型的系统中,产品线代码的通用性(例如,来自发行主线)可能在一种独立产品的补丁、热修复版(hotfix)、服务包或发行版(release)之间演变。产品本身可能需要改变或通用性强加改变。但是,两种产品的应用程序在同一时间可能需要两种不同通用发行版。通常,在运行时,每个系统只允许一种通用性。因此,软件合并在技术上是不可行的。
许多贡献产品和应用程序的可伸缩部署要求使用多台虚拟和物理机的实地部署可变性。同时,通常规划和保留以及人工地,一次或多次地,站点特定地和产品特定地安装多种独立发行版。但是,通常,安装需要得到保证的部署目标,但取决于站点特定性以及由于独立产品的较不独立交付,可能存在多个目标盒以及多次人工安装/更新运行可能是昂贵的。其结果是,多个站点上的室内部署通常需要知道安装和更新的实地部署目标结构可变性。但是,这种信息库可能是不完整的和脆弱的。对于虚拟和物理机的组合体的多个独立发行版,复杂性和不确定性都会增加。
按照示范性实施例,在HyAD模块140的控制下将产品部署到安装基础(现有或新安装部署)上。可以将HyAD模块140配置成根据HyAD模块140为这个站点上的这种部署收集的信息,以及根据可更新解决策略,决定和管理最终部署类型、和组合或独立产品发行版可能采取的安装和更新路径。HyAD模块140的判定可能是取决于安装程序145的单个发行版的实际安装/更新/升级进程的先决条件。
本申请的一个实施例包括一种方法。该方法包括监听应用程序安装过程;分类应用程序;确定与应用程序相关联的信息;以及根据分类和确定的信息安装应用程序。该安装应用程序可以进一步包括确定一个或多个目标节点的兼容性信息,以及如果确认了应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中。
图2例示了按照示范性实施例的预安装方法。参照图2,在步骤S205中,处理器监听应用程序安装过程。监听应用程序安装过程可以包括,例如,停止或暂停软件发行版安装程序,复制发行版代码和安装参数,以及存储有关安装的状态信息(例如,是较大系统安装的安装部分)。HyAD模块还可以确定一个或多个目标节点的兼容性信息,以便在将应用程序加入至少一个新目标节点之前创建新兼容部署环境,以及配置HyAD挂钩行为,以便配置必要数据连接和与本地和中央存储库的连接。
处理器可以是与HyAD模块140相关联的处理器(例如,处理器135)。尽管下面的每个步骤可能被描述成由处理器135执行,但本领域的普通技术人员应该懂得,HyAD模块140包括处理器135用于执行这些步骤的功能和/或代码。例如,可以使用存储在存储器150中的应用程序或软件发行版(例如,新软件版本或热修复版)启动安装进程。当使用存储在存储器150中的应用程序或软件发行版初始化安装进程时,处理器135可以监听安装过程。
在步骤S210中,处理器135分类与所监听安装过程相关联的应用程序或软件发行版。例如,处理器135可以根据发行描述符(例如,产品名称、发行版/热修复版、产品线基本兼容级别描述符和产品线高级兼容级别描述符、和部署类型描述符)分类应用程序或软件发行版。来自发行描述符的信息可以由HyAD模块140根据策略存储库中的可配置策略加以评估。
基本兼容级别可以是“通用”的兼容性合约(contract),每个发行版精确地声明允许HyAD模块140为每个目标节点计算基本兼容匹配(或在虚拟盒中创建新“通用”运行时环境)的仅有一个最低基本兼容级别。软件发行版另外可以包含允许HyAD模块140计算,例如,与可以利用新应用程序改进的所有工作流的精确匹配,或新应用程序是否要求在安装之前创建专门隔离目录的一个或多个高级兼容级别。
部署类型可以包括一般部署拓扑结构或布局,例如,FAT/Stand-alone,或像RichThin、Thin/Web那样分布,HyAD模块140保证软件发行版的部署, 一个或多个目标节点精确地匹配,以及进一步HyAD挂钩行为相应地起作用,例如,在分布式部署中远程地使用正确中央存储库。按照示范性实施例,将产品名称用作任何安装/更新活动的顶级匹配可以使安装实体一次性从远程地点(例如,服务总部)发送发行版包(包括应用程序或软件发行版)。
在步骤S215中,处理器135确定与应用程序相关联的信息,例如,确定该安装是否是新安装。如果该安装是新安装,则使处理转到步骤S235。否则,使处理继续到步骤S220。例如,在步骤S215中,处理器135可以确定与应用程序发行版或软件发行版相关联的产品名称。处理器135可以将产品名称用作搜索关键字和搜索分发信息110和历史信息115之一或两者。如果在分发信息110和历史信息115之一或两者中找到产品名称,则处理器135可以确定该应用程序或软件发行版不是新安装。如果在分发信息110和历史信息115之一或两者中未找到产品名称,则处理器135可以确定该应用程序或软件发行版是新安装。
在步骤S220中,处理器135确定安装历史信息。例如,处理器135可以将产品名称用作搜索关键字并在历史信息115中搜索与该产品名称相关联的所有安装条目。例如,该搜索可以返回与以前安装(例如,软件发行版和热修复版)相关联的安装信息。
在步骤S225中,处理器135确定以前安装地点。例如,处理器135可以将产品名称用作搜索关键字并在分发信息110中搜索与该产品名称相关联的所有安装条目。例如,该搜索可以返回与以前安装(例如,软件发行版和热修复版)相关联的安装信息。
在步骤S230中,处理器135确定该安装是更新还是新版本。确定该安装是更新还是新版本可以基于在步骤S210中进行的分类。例如,分类成发行版还是热修复版可以基于版本号(例如,2.0、3.2.1等)。版本编号方案是本领域的普通技术人员所已知的。通常,如果最后句点之后的数字不是零(0),则将应用程序或软件发行版分类成热修复版。否则,将应用程序或软件发行版分类成发行版。
在步骤S235中,处理器135确定安装地点。通常,安装地点由与存储在,例如,存储器150中的应用程序或软件发行版捆绑在一起的软件安装程序确定。按照示范性实施例,处理器135使用HyAD模块140、分发信息110、历史信息115和策略信息120确定可以与和应用程序或软件发行版捆绑在一起 软件安装程序已经安装了应用程序或软件发行版的地方不同的安装地点。
例如,处理器135可以根据发行描述符(如上所述)、分发信息110、历史信息115和策略信息120、和现场软件分发源(例如,微软动态目录/ADSI)中的信息确定安装地点(例如,一个或多个目标节点155)。另外,如果在分发信息110和/或历史信息115之一中找到相同版本号,则有效目标节点可能是以前安装地点。
例如,处理器135可以根据产品线基本兼容级别描述符判定是否可以将一组协作应用程序安装在一个或多个目标节点155上。如果是,则处理器135可以触发一次或多次安装或更新(在下面的步骤S250中),其中产品线基本兼容级别描述符表示与一般运行时基本设施、UI控制+形式+风格指南、基本域协议和通用数据类型、应用程序生命周期机制和协议、数据交换、消息交换、和命令交换机制、服务/远程服务/存储库生命周期机制等的受测试兼容性,这些的每一种对于改进的发行独立支持来说可以是向后兼容的。例如,PET/CT(参见下述的图5)工作项的一组新的或更新的应用程序可以应用于软件分发列表中的所有合适物理和虚拟机。
并且,例如,处理器135可以根据产品线高级兼容级别描述符判定是否可以安装一个或多个独立应用程序,以便扩展数组现有协作应用程序。可以在一个或多个目标节点155上一次或多次地将这些新独立应用程序加入这些组的协作应用程序中,从而触发一次或多次安装或更新(在下面的步骤S250中)。按照所需高级能力,产品线高级兼容级别描述符可以表示与用工作项名称的术语表示的专门应用程序工作流、数据端口、图像操纵工具、报告能力等的受测试兼容性。例如,用户可以为PET/CT(参见下述的图5)工作项随机挑选的一个或多个新的或更新的特定应用程序可以应用于软件分发列表中的所有合适物理和虚拟机。
在步骤S240中,处理器135确定兼容性信息。例如,处理器135可以确定运行应用程序或软件所需的最低硬件要求(例如,处理器、存储器、产品线硬件)。例如,处理器135可以确定运行应用程序或软件所需的软件要求(例如,操作系统、相互依存软件/应用程序、和产品线软件)。
在步骤S245中,处理器135确定该安装是否是独立安装。例如,处理器135可以确定该安装是在独立计算机上还是在计算机控制系统(例如,医疗成像设备或制造装备)上。
在步骤S250中,处理器135部署安装,因此根据分类信息安装应用程序。例如,如上面所指,可以在一个或多个目标节点155上一次或多次地将独立应用程序加入这些组的协作应用程序中,从而使处理器135触发一次或多次安装或更新。该应用程序可以通过与一个或多个目标节点155相关联的处理器(例如,处理器165)来安装。安装应用程序可以包括合并安装时来自多个部署站点的应用程序。
如果与一个或多个目标节点155相关联的处理器进行安装,则步骤S250包括转交部署的控制以及在前面步骤中收集的信息(例如,在步骤S240中确定的兼容性信息)。并且,部署安装的讨论将在下面参照图3作更详细描述。
本申请的一个其他实施例包括一种方法。该方法包括接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点;以及将该应用程序加入至少一个兼容目标节点中,或根据当前配置的策略,在加入应用程序之前创建兼容目标节点(例如,虚拟盒)。
本申请的又一个实施例包括一种方法。该方法包括接收与要部署的应用程序相关联的信息,该信息包括应用程序兼容性信息;确定一个或多个目标节点的兼容性信息;以及如果确认了应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
图3例示了按照至少一个示范性实施例的这样部署方法。参照图3,在步骤S305中,处理器(例如,处理器165)通过接收与要部署的应用程序相关联的信息确定要部署安装,该信息包括应用程序兼容性信息。例如,假设至少一个目标节点155要进行安装,处理器165可以从处理器135接收部署安装的触发。可替代地,处理器135可以确定要在服务器125上安装。
在步骤S310中,处理器触发安装或更新。例如,如果在步骤S215中,处理器135确定该安装是新安装,则可以由处理器165触发新安装。例如,如果在步骤S230中,处理器135确定该安装是新版本,则可以由处理器165触发新版本安装。例如,如果在步骤S230中,处理器135确定该安装是更新,则可以由处理器165触发更新。
在步骤315中,处理器165确定一个或多个目标节点的兼容性信息。例如,处理器165可以将与安装相关联的要求与至少一个目标节点155相比较。 该比较可以包括在上述的步骤S240中确定的兼容性信息。例如,处理器165可以读取一组物理节点(例如,目标节点155)上的现有兼容性存储库,并将新应用程序或软件发行版加入匹配的物理节点中,从而根据规定在发行描述符中的一个基本和一个或多个高级兼容级别,将具有或没有隔离机制(下面所述)的应用程序或软件合并到这些物理节点中。
在步骤S320中,如果该安装与一个或几个目标节点兼容,则处理器165使处理转到步骤S325。否则,使处理继续到步骤S330。在步骤S325中,如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则处理器165将与应用程序相关联的现有应用程序传递送给一个或几个兼容目标节点。例如,处理器165可以在与安装兼容的节点上创建虚拟机(例如,虚拟机175)。然后,处理器165可以将现有安装从物理节点转移到新创建的虚拟机,并且传送要保存的所有数据以及为运行时/操作时的必要数据交换和应用程序调用配置虚拟和/或物理机。
可替代地,在步骤S325中,处理器165可以为安装的非兼容元素创建虚拟机并将可应用元素安装在新虚拟机上。在这种情况下,目标节点将包括作为安装的一部分的通用元素(例如,可以在目标节点上执行的元素)。例如,通用元素可以包括不升级的安装元素。本领域的普通技术人员应该懂得,如果不存在与安装兼容的可用目标节点,则可以终止安装的部署(未示出)。
在步骤S330中,处理器165将应用程序加入一个或几个兼容目标节点155中。例如,处理器165可以在与安装兼容的节点上创建虚拟机(例如,虚拟机175)。然后,处理器165可以将安装加入新创建的虚拟机中。如果应用程序或软件发行版是热修复版以及存在所需要的中间热修复版,则处理器165加入包括中间热修复版的应用程序。中间热修复版可以在存储器150中找到,或可替代地,可能需要经由,例如,互联网从一些其他地点下载。
在步骤S335中,处理器165实现隔离策略。HyAD隔离策略可以在任何给定时间隔离达到或未达到一个或多个兼容级别的软件。例如,一种隔离策略可以不包括隔离,换句话说,将软件直接与现有安装合并。另一种隔离策略可以包括硬件/物理节点隔离。取决于独立发行版的发行描述符和部署描述符,这种隔离可以包括软件的安装,例如,产品线基本兼容级别以及可以包括执行HyAD挂钩,以便创建与本地和/或中央存储库的连接。
另一种隔离策略可以包括新虚拟机的创建。取决于独立发行版的发行描 述符和部署描述符,这种隔离可以包括软件的安装,例如,产品线基本兼容级别以及可以包括执行HyAD挂钩,以便创建与本地和/或中央存储库的连接。
又一种隔离策略可以包括为新软件创建隔离目录。在这种隔离策略中,将应用程序或软件与现有安装合并但保持隔离。取决于独立发行版的发行描述符和部署描述符,这种隔离可以包括软件的安装,例如,产品线基本兼容级别以及可以包括执行HyAD挂钩,以便创建与本地和/或中央存储库的连接。
再一种隔离策略可以包括通过产品线的架构在自主HyAD活动中为隔离或安装定义最小允许实体大小。最小允许实体大小可以是安装程序也使用的一个或多个已知“压缩包(cab)”文件中的一致的一组部件或构件。可以在HyAD策略(例如,策略信息120)中为,例如,新虚拟机的初始安装定义这样“压缩包”文件的聚集。
在步骤S340中,处理器165存储部署挂钩。例如,处理器165可以将部署挂钩存储在存储器180中作为HyAD部署挂钩185。在步骤S345中,处理器165存储安装挂钩。例如,处理器165可以将安装挂钩存储在存储器180中作为HyAD安装挂钩185。
当监听对应用程序的调用时,可以使用挂钩(例如,部署和安装挂钩)来确定从哪里运行应用程序。取决于某些条件,挂钩可以用于执行应用程序(或安装)的多种版本。例如,执行应用程序的较早版本可以防止协调应用程序之间的兼容性问题(例如,可以将应用程序的一种版本设计成运行在操作系统的某种版本上)。
本申请的一个其他实施例包括一种方法。该方法包括监听应用程序调用;确定与应用程序调用相关联的应用程序是否含有相关联的挂钩;以及执行来自基于挂钩的地点的应用程序。
图4例示了按照一个示范性实施例的应用程序执行方法。参照图4,在步骤S405中,处理器165监听应用程序调用。例如,参照下面所述的计算机断层扫描(CT)系统,CT系统的用户启动(例如,应用程序调用)应用程序(例如,编辑3D数据)。处理器165在可执行程序开始之前监听这种应用程序调用。
在步骤S410中,处理器165确定应用程序是否含有相关联的挂钩(例如,部署挂钩)。例如,处理器165在存储器180和HyAD部署挂钩185和HyAD安装挂钩190的至少一个中搜索与应用程序调用相关联的应用程序。
在步骤S415中,如果应用程序未含有相关联的挂钩,则使处理转到步骤S420。否则,使处理继续到步骤S425。在步骤S420中,处理器165根据调用执行应用程序。根据调用执行应用程序是本领域的普通技术人员已知的,为了简洁起见,将不作进一步讨论。
在步骤S425中,处理器165根据挂钩重定向应用程序执行。例如,如果应用程序调用是上面所指的“编辑3D数据”调用,则处理器165将根据挂钩执行“编辑3D数据”的适当版本。例如,如果“编辑3D数据”应用程序的最近版本是版本3.1.3,以及与CT系统相关联的通用产品线代码不支持“编辑3D数据”应用程序的版本3.1.3,则处理器165将应用程序调用重定向到CT系统支持的“编辑3D数据”应用程序的版本。
可替代图4的步骤的是,可以将应用程序的调用路径设置成永远执行最近安装版本。这是可以基于硬件或其他安装的兼容级别的设计时(或安装时)判定。
按照示范性实施例,HyAD同时为安装和部署的目的提供了通常不组合而是分开对待、将工具与人工步骤混合、这又决不允许存在灵活性和自主自动化的组合和自动特征。HyAD解决方案允许使用包括两种专用类型的兼容级别和可靠、和专用更细粒度隔离机制的系统独立但紧密协作的产品。
示范性实施例可以与云计算技术兼容。例如,HyAD可以是云的节点控制器的元素。HyAD在实际安装程序运行之前执行,并根据允许范例从自动完全强制安装变成自动协作安装的自动考虑,在需要时利用HyAD挂钩改进安装程序的工作。
按照示范性实施例,HyAD可以在安装程序运行之前自动安装和部署。这使得可以从完全强制安装切换到协作安装。HyAD避免了随着无人照管但独立的发行版生长到相同安装库中的众所周知“动态链接库地狱(dll hell)”。HyAD可以简化安装挂钩或更新独立发行版的挂钩,因为它们保持部署独立。HyAD可以向开发站点提供灵活支持机制,以便根据兼容级别和隔离机制交付独立应用程序发行版。HyAD可以在许多硬件节点被取代之后,例如,为了提高性能和可伸缩性,提供相同软件发行版的重新部署,然后,HyAD将使用与新硬件的参数最佳匹配的HyAD策略,这允许,例如,如何使用可用隔离机制的新方式,因为例如新硬件节点的历史是空的,而软件发行历史仍然有效,并将被HyAD用于相应地安装取代硬件节点。
HyAD可以向开发站点提供灵活支持机制,以便利用自动测试工具(automatedtest harness)就多种部署测量新发行版。可以将热修复版提交给安装库,以及HyAD可以将它们用在适合的所有地方,而无需预先分析什么客户站点运行产品的什么拓扑结构。这可以避免多条热修复线,以及重新测试、装运和对客户站点的管理。
图5例示了用于计算机断层扫描系统的示范性实施例。计算机断层扫描系统1可以是,例如,医疗工作流管理系统。如图5所示,计算机断层扫描系统1可以包括X射线管2、检测器3、系统轴4、ECG引线5、可位移病人床、病人7、注射器的控制线8、控制和算术逻辑单元9、到CT的控制和数据线10、注射器11、和造影剂线12。
如图5所示,计算机断层扫描系统1可以包括控制和算术逻辑单元9,控制和算术逻辑单元9包括带有程序Prg1-Prgn的数据存储器。本领域的普通技术人员应该懂得,可以在示范性实施例的范围内在不同计算机之间分配各个方法步骤和控制任务。这里所示的控制和算术逻辑单元9经由控制和数据线10与实际CT连接,实际CT含有X射线管2、和与之相对,紧固在台架上和可以在圆形轨道上移动以便扫描病人的检测器3。
在扫描操作期间,可以沿着系统轴4的方向位移躺在可以沿着系统轴4的方向位移的床上的病人7,以便在最终分析中,相对于病人的坐标系发生螺旋形扫描。计算机断层扫描系统1另外可以包括集成在算术逻辑单元9中和经由ECG线5扫描病人7的心率的ECG。而且,控制和算术逻辑单元9可以使用控制线8操作注射器11,借助于集成的造影剂泵以及经由描绘的软管12,这种注射器11可以以规定流速将所需造影剂注射到病人7的血液循环中。
按照示范性实施例,存储在算术逻辑和控制单元中的程序Prg1-Prgn可以首先将病人7推入CT的束径中的程度,以便可以进行所谓的心脏动脉预扫描。在这种预描述的情况下,不馈送病人7,而是,可能只在低剂量率的平面中产生心脏的断层图像(tomogram),以便证实(establish)对检查至关重要的动脉造影剂充填。
如果病人7躺在正确预扫描位置上,则注射器11可以以规定流速注射造影剂,操作人员可以使用输出在演示屏幕上的重建断层图像证实什么时候在观察的心脏动脉中存在足够的造影剂充填,或适当程序可以经由自动图像处 理证实在重建图像中是否达到足以良好演示动脉的对比度。
本领域的普通技术人员应该懂得,CT系统1可以包括几个协作应用程序(例如,Prg1-Prgn)。按照示范性实施例,为了提供这些协作应用程序的发行独立版本,可以使用上面参照图2-4所述的方法步骤将软件和应用程序部署在CT系统1上。
例如,CT系统1可以包括像通用产品线代码、3D编辑应用程序、2D编辑应用程序、图像捕获应用程序、病人床移动应用程序、和注射器应用程序那样的几个协作应用程序。如果当前注射器应用程序是1.2.0版本和注射器制造商开发了成为注射器应用程序1.2.1版本的热修复版,则按照示范性实施例,技术人员可以独立安装该热修复版。其结果是,处理器135监听安装(S205),并将安装分类成注射器的热修复版(S215)。处理器确定该安装不是新安装(S215),确定安装到作为目标节点的CT系统1(S235),确定热修复版的硬件相关联要求的兼容性(S240),以及确定安装是独立安装(S245)并初始化热修复版的部署(S250)。
将控制传递给处理器165(作为与算术逻辑单元9相关联的处理器),处理器165确定要为注射器11部署热修复版(S305)。处理器165触发CT系统1上作为热修复版的安装(S310)。处理器165确定与和注射器11和CT系统1相关联的热修复版的兼容性(S315),并将该兼容性与来自步骤S240的信息相比较(步骤S320)。假设该热修复版是兼容的,则在CT系统1上创建新虚拟机,并将该热修复版安装在虚拟机上(S330)。隔离策略是使用虚拟机(S335)。处理器165存储部署挂钩(S245)以及处理器165将热修复版的安装挂钩存储在存储器180中(步骤S250)。
要以规定流速使用造影剂对病人进行扫描。启动扫描,并在为执行装载注射器代码之前,监听注射器应用程序(S405)。在存储器180中为注射器180搜索并找到挂钩。如果热修复1.2.1版本与CT系统1的通常产品线代码兼容,则包括热修复版地执行注射器11的应用程序。否则,使用注射器代码的1.2.0版本地执行注射器11的应用程序。
尽管上面的例子是针对计算机断层扫描系统来描述的,但示范性实施例不局限于此。例如,本申请的示范性实施例的系统可以是另一种类型的成像系统(例如,MRI、PET等)。并且,示范性实施例不局限于临床工作流的扫描(获取)步骤。例如,示范性实施例可以涉及后处理、读取、和报告工作 流步骤。并且,示范性实施例不局限于成像系统。例如,示范性实施例可以涉及临床研究系统或其他卫生保健管理系统。
本发明的可替代实施例可以实现成用在计算机系统上的计算机程序产品。该处理器程序产品是,例如,存储在像磁盘、CD-ROM、ROM或固定盘那样的有形或非短暂数据记录媒体(处理器可读媒体)上的一系列处理器指令、代码段或程序段,或以计算机数据信号的形式具体化,该信号可以在有形媒体或无线媒体,例如,微波或红外线上传输。该一系列处理器指令、代码段或程序段可以构成上述示范性实施例的方法的全部或部分功能,也可以存储在像半导体、磁、光存储设备那样的任何易失性或非易失性存储设备中。
本申请的一个实施例包括一种计算机可读媒体。该计算机可读媒体包括当被处理器执行时,使处理器执行如下操作的代码段:监听应用程序安装过程;分类应用程序;确定与应用程序相关联的信息;以及根据分类和确定的信息安装该应用程序。安装应用程序可以进一步包括确定一个或多个目标节点的兼容性信息,以及如果确认了应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
尽管上面的例子是针对计算机断层扫描系统来描述的,但示范性实施例不局限于此。例如,系统可以是另一种成像系统(例如,MRI、PET等)。并且,示范性实施例不局限于成像系统。例如,示范性实施例可以涉及临床研究系统或其他卫生保健管理系统。并且,本领域的普通技术人员应该懂得,示范性实施例可以涉及像制造装备(例如,机器人)或云计算环境那样,但不局限于这些的使用几个协作应用程序的任何系统。
虽然已经具体示出和描述了示范性实施例,但本领域的普通技术人员应该明白,可以不偏离权利要求书的精神和范围地在形式和细节上加以改变。虽然对本发明作了如此描述,但显而易见,可以以许多方式加以改变。这样的改变不应该被认为偏离了本发明,而是所有这样的修改都要包括在本发明的范围之内。
Claims (37)
1.一种利用混合自动部署模块部署、合并发行独立应用程序的方法,其包含:
监听应用程序安装过程;
分类该应用程序;
确定与该应用程序相关联的信息;以及
根据分类和确定的信息安装该应用程序,
其中
混合自动部署模块在实际安装程序运行之前执行,
与应用程序相关联的信息包括应用程序兼容性信息,
安装应用程序步骤包括:
确定一个或多个目标节点的兼容性信息;以及
如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
2.如权利要求1所述的方法,其中分类应用程序包括将应用程序分类成新应用程序、新发行版和更新版之一。
3.如权利要求1所述的方法,其中分类应用程序包括分类要安装应用程序的系统。
4.如权利要求1所述的方法,其中分类应用程序包括分类有关与应用程序相关联的产品的信息。
5.如权利要求4所述的方法,其中有关与应用程序相关联的产品的信息包括产品名称、产品线高级兼容级别描述符和部署类型描述符的至少一种。
6.如权利要求1所述的方法,其中与应用程序相关联的信息包括安装地点和兼容性信息的至少一种。
7.如权利要求1所述的方法,其中确定与应用程序相关联的信息包括确定安装是否在独立环境和分布式环境之一中。
8.如权利要求7所述的方法,其中独立环境是医疗成像设备。
9.如权利要求1所述的方法,其中确定与应用程序相关联的信息包括确定与应用程序相关联的历史信息。
10.如权利要求9所述的方法,其中历史信息包括安装历史信息和以前安装地点的至少一种。
11.如权利要求9所述的方法,其中与应用程序相关联的信息包括安装地点和兼容性信息的至少一种。
12.如权利要求9所述的方法,其中确定与应用程序相关联的信息包括确定安装是否在独立环境和分布式环境之一中。
13.如权利要求12所述的方法,其中独立环境是医疗成像设备。
14.如权利要求1所述的方法,进一步包含:
实现应用程序隔离策略,以便该应用程序隔离策略将不同版本的应用程序相互隔离。
15.如权利要求14所述的方法,进一步包含:
在至少一个目标节点上创建虚拟机,其中将应用程序加入该虚拟机中以及该虚拟机实现隔离策略。
16.如权利要求1所述的方法,进一步包含:
存储所加入应用程序的部署挂钩和安装挂钩的至少一种,以便将部署挂钩和安装挂钩的至少一种用在调用应用程序之中。
17.一种包括当被处理器执行时,使处理器执行如权利要求1所述的方法的代码段的计算机可读媒体。
18.如权利要求1所述的方法,其中
与应用程序相关联的信息包括应用程序兼容性信息,
安装应用程序步骤包括:
确定一个或多个目标节点的兼容性信息;
如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个目标节点;以及
将应用程序加入至少一个兼容目标节点中。
19.如权利要求18所述的方法,进一步包含:
实现应用程序隔离策略,以便该应用程序隔离策略将不同版本的应用程序相互隔离。
20.如权利要求19所述的方法,进一步包含:
在至少一个兼容目标节点上创建虚拟机,其中将应用程序加入该虚拟机中以及该虚拟机实现隔离策略。
21.如权利要求18所述的方法,进一步包含:
存储所加入应用程序的部署挂钩和安装挂钩的至少一种,以便将部署挂钩和安装挂钩的至少一种用在调用应用程序之中。
22.一种包括当被处理器执行时,使处理器执行如权利要求18所述的方法的代码段的计算机可读媒体。
23.如权利要求1所述的方法,其中安装应用程序步骤包括合并安装时来自多个开发站点的应用程序。
24.一种利用混合自动部署模块部署、合并发行独立应用程序的方法,其包含:
接收与要部署的应用程序相关联的信息,该信息包括安装地点和应用程序兼容性信息;
确定一个或多个目标节点的兼容性信息;以及
如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个目标节点中,
其中,混合自动部署模块在实际安装程序运行之前执行。
25.如权利要求24所述的方法,进一步包含:
实现应用程序隔离策略,以便该应用程序隔离策略将不同版本的应用程序相互隔离。
26.如权利要求25所述的方法,进一步包含:
在至少一个目标节点上创建虚拟机;以及
创建兼容基本安装,其中
将应用程序加入该虚拟机中以及该虚拟机实现隔离策略,以及
连接虚拟机和目标节点以便交换数据和使用可配置所存储挂钩行为连接通用存储库。
27.如权利要求24所述的方法,进一步包含:
存储所加入应用程序的部署挂钩和安装挂钩的至少一种,以便将部署挂钩和安装挂钩的至少一种用在调用应用程序之中。
28.一种包括当被处理器执行时,使处理器执行如权利要求24所述的方法的代码段的计算机可读媒体。
29.一种利用混合自动部署模块部署、合并发行独立应用程序的方法,其包含:
接收与要部署的应用程序相关联的信息,该信息包括安装地点和应用程序兼容性信息;
确定一个或多个目标节点的兼容性信息;
如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点;以及
将该应用程序加入至少一个兼容目标节点中,
其中,混合自动部署模块在实际安装程序运行之前执行。
30.如权利要求29所述的方法,进一步包含:
实现应用程序隔离策略,以便该应用程序隔离策略将不同版本的应用程序相互隔离。
31.如权利要求30所述的方法,进一步包含:
在至少一个兼容或不兼容目标节点上创建虚拟机,其中
将应用程序加入该虚拟机中以及该虚拟机实现隔离策略,以及
连接虚拟机和目标节点以便交换数据和使用可配置所存储挂钩行为连接通用存储库。
32.如权利要求29所述的方法,进一步包含:
存储所加入应用程序的部署挂钩和安装挂钩的至少一种,以便将部署挂钩和安装挂钩的至少一种用在调用应用程序之中。
33.一种包括当被处理器执行时,使处理器执行如权利要求29所述的方法的代码段的计算机可读媒体。
34.一种利用混合自动部署模块部署、合并发行独立应用程序的装置,其包含:
存储器;
处理器;
包括当被该处理器执行时,使该处理器执行如下操作的代码段的第一模块:
监听应用程序安装过程,
分类该应用程序,以及
确定与该应用程序相关联的信息;以及
包括当被该处理器执行时,使该处理器执行如下操作的代码段的第二模块:
根据分类和所确定信息安装该应用程序,
其中
混合自动部署模块在实际安装程序运行之前执行,
与应用程序相关联的信息包括应用程序兼容性信息,
安装应用程序步骤包括:
确定一个或多个目标节点的兼容性信息;以及
如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
35.一种利用混合自动部署模块部署、合并发行独立应用程序的装置,其包含:
存储器;
处理器;以及
包括当被该处理器执行时,使该处理器执行如下操作的代码段的模块:
接收与要部署的应用程序相关联的信息,该信息包括安装地点和应用程序兼容性信息,
确定一个或多个目标节点的兼容性信息,以及
如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将该应用程序加入至少一个兼容目标节点中,
其中,混合自动部署模块在实际安装程序运行之前执行。
36.一种利用混合自动部署模块部署、合并发行独立应用程序的装置,其包含:
存储器;
处理器;以及
包括当被该处理器执行时,使该处理器执行如下操作的代码段的模块:
接收与要部署的应用程序相关联的信息,该信息包括安装地点和应用程序兼容性信息,
确定一个或多个目标节点的兼容性信息,
如果未确认应用程序兼容性信息和至少一个目标节点的兼容性,则将与该应用程序相关联的现有应用程序传送给至少一个兼容目标节点,以及
将应用程序加入至少一个兼容目标节点中,
其中,混合自动部署模块在实际安装程序运行之前执行。
37.一种利用混合自动部署模块部署、合并发行独立应用程序的方法,其包含:
监听应用程序调用;
确定与应用程序调用相关联的应用程序是否含有相关联的挂钩;以及执行来自基于挂钩的地点的应用程序,
其中
混合自动部署模块在实际安装程序运行之前执行,
与应用程序相关联的信息包括安装地点和应用程序兼容性信息,
安装应用程序步骤包括:
确定一个或多个目标节点的兼容性信息;以及
如果确认应用程序兼容性信息和至少一个目标节点的兼容性,则将应用程序加入至少一个目标节点中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/349,983 | 2012-01-13 | ||
US13/349,983 US10140106B2 (en) | 2012-01-13 | 2012-01-13 | Method, computer readable medium and system for deploying and merging release independent applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279365A CN103279365A (zh) | 2013-09-04 |
CN103279365B true CN103279365B (zh) | 2018-11-16 |
Family
ID=48780901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310011101.4A Active CN103279365B (zh) | 2012-01-13 | 2013-01-11 | 部署、合并发行独立应用程序的方法、计算机可读媒体和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10140106B2 (zh) |
CN (1) | CN103279365B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930939B2 (en) * | 2011-06-25 | 2015-01-06 | International Business Machines Corporation | Comparing system engram with product engram to determine compatibility of product with system |
US9058190B2 (en) * | 2011-06-25 | 2015-06-16 | International Business Machines Corporation | Comparing system engram with product engram to determine compatibility with system |
US9742838B2 (en) | 2014-01-09 | 2017-08-22 | Red Hat, Inc. | Locked files for cartridges in a multi-tenant platform-as-a-service (PaaS) system |
JP2015153266A (ja) * | 2014-02-18 | 2015-08-24 | 日本電気株式会社 | ファームウェア管理システム、方法、及び、プログラム |
CN107005421B (zh) * | 2014-09-30 | 2021-06-01 | 微福斯有限责任公司 | 利用阶段和版本策略的基于拓扑的管理方法、系统和介质 |
JP6933913B2 (ja) * | 2017-03-24 | 2021-09-08 | セイコーインスツル株式会社 | 温度表示デバイス発行装置 |
CN107133068A (zh) * | 2017-04-18 | 2017-09-05 | 努比亚技术有限公司 | 移动终端及应用修复方法 |
CN107608707A (zh) * | 2017-07-31 | 2018-01-19 | 努比亚技术有限公司 | 具有热修复功能之应用检测方法、终端及可读存储介质 |
CN110634561B (zh) * | 2019-09-19 | 2022-07-19 | 江苏赛诺格兰医疗科技有限公司 | 一种pet-ct软件的自动部署方法 |
CN112540775A (zh) * | 2020-12-21 | 2021-03-23 | 恩亿科(北京)数据科技有限公司 | 用于程序包兼容性检测的方法及装置、设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650659A (zh) * | 2009-09-15 | 2010-02-17 | 福建升腾资讯有限公司 | XPe操作系统中自动安装保存Activex控件的装置及其方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389588B1 (en) * | 1999-02-04 | 2002-05-14 | Relativity Technologies | Method and system of business rule extraction from existing applications for integration into new applications |
US6996815B2 (en) * | 2000-11-29 | 2006-02-07 | Microsoft Corporation | Method and software tools for intelligent service pack installation |
US7735079B1 (en) * | 2005-02-04 | 2010-06-08 | Symantec Corporation | Securely hooking installations for compatibility with other applications |
US8065204B2 (en) * | 2005-09-29 | 2011-11-22 | Sony Corporation | System and method for software integration and factory deployment |
US20070169114A1 (en) * | 2005-11-09 | 2007-07-19 | Microsoft Corporation | Application suite installer with automatic detection of content and configurable options |
US20070277115A1 (en) * | 2006-05-23 | 2007-11-29 | Bhp Billiton Innovation Pty Ltd. | Method and system for providing a graphical workbench environment with intelligent plug-ins for processing and/or analyzing sub-surface data |
US8667482B2 (en) * | 2007-08-10 | 2014-03-04 | Microsoft Corporation | Automated application modeling for application virtualization |
US8381171B2 (en) * | 2008-01-23 | 2013-02-19 | International Business Machines Corporation | Customized networked-based commerce system packages |
US10459711B2 (en) * | 2008-08-12 | 2019-10-29 | Adobe Inc. | Updating applications using migration signatures |
US8566571B2 (en) * | 2008-12-12 | 2013-10-22 | Novell, Inc. | Pre-boot securing of operating system (OS) for endpoint evaluation |
DE102010012796A1 (de) * | 2010-03-25 | 2012-01-19 | Siemens Aktiengesellschaft | Medizinische Aufnahme verarbeitendes System sowie Verfahren |
US9367302B2 (en) * | 2010-05-27 | 2016-06-14 | Red Hat, Inc. | Generating client qualification to execute package update manager |
US8650558B2 (en) * | 2010-05-27 | 2014-02-11 | Rightware, Inc. | Online marketplace for pre-installed software and online services |
CA2889387C (en) * | 2011-11-22 | 2020-03-24 | Solano Labs, Inc. | System of distributed software quality improvement |
RU2495487C1 (ru) * | 2012-08-10 | 2013-10-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ для определения доверия при обновлении разрешенного программного обеспечения |
-
2012
- 2012-01-13 US US13/349,983 patent/US10140106B2/en active Active
-
2013
- 2013-01-11 CN CN201310011101.4A patent/CN103279365B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650659A (zh) * | 2009-09-15 | 2010-02-17 | 福建升腾资讯有限公司 | XPe操作系统中自动安装保存Activex控件的装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130185706A1 (en) | 2013-07-18 |
CN103279365A (zh) | 2013-09-04 |
US10140106B2 (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279365B (zh) | 部署、合并发行独立应用程序的方法、计算机可读媒体和系统 | |
US20200222020A1 (en) | Imaging protocol manager pushing systems and methods | |
US9542481B2 (en) | Radiology data processing and standardization techniques | |
CN101292904B (zh) | 图像诊断支持系统 | |
CN101107607B (zh) | 程序性医学工作流管理 | |
US10684919B2 (en) | Query with data distribution in a hospital network | |
CN103281954B (zh) | 医用图像显示装置和医用图像保管系统 | |
US20100008553A1 (en) | Structured Medical Data Mapping System | |
CN104182925A (zh) | 图像处理装置、图像处理方法和医学图像设备 | |
CN103946885A (zh) | 用于收集、报告和管理关于医疗诊断程序的信息的方法和技术 | |
CN102804192B (zh) | 具有时间背景的临床决策支持系统 | |
CN1892662A (zh) | 测试临床和/或医疗技术系统以及控制医疗检查流程的方法 | |
CN102667786A (zh) | 协议引导的成像流程 | |
US20230071965A1 (en) | Methods and systems for automated scan protocol recommendation | |
WO2021079792A1 (ja) | 機械学習システムおよび方法、統合サーバ、情報処理装置、プログラムならびに推論モデルの作成方法 | |
US8892577B2 (en) | Apparatus and method for storing medical information | |
CN111684534A (zh) | 用于优化病理学工作流的设备、系统和方法 | |
US20200365267A1 (en) | Decentrally controlled imaging-based patient data extraction | |
JP4991128B2 (ja) | 画像管理システム、画像表示装置、管理サーバ、及び画像データ管理方法 | |
WO2015028369A2 (en) | System and method for reporting multiple medical procedures | |
US20130151197A1 (en) | Automated performance measurement processes and systems | |
JP6157963B2 (ja) | 医療情報提供装置、及び、医療情報通信システム | |
JP5646400B2 (ja) | 画像処理フロー評価方法及び当該方法を実行する画像処理装置 | |
JP7216660B2 (ja) | 下流のニーズを総合することにより読み取り環境を決定するためのデバイス、システム、及び方法 | |
US20200051676A1 (en) | Device, system, and method for optimizing usage of prior studies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220208 Address after: Erlangen Patentee after: Siemens Healthineers AG Address before: Munich, Germany Patentee before: SIEMENS AG |
|
TR01 | Transfer of patent right |