当前位置: 首页 > 专利查询>微软公司专利>正文

代码部署协助制造技术

技术编号:7534240 阅读:140 留言:0更新日期:2012-07-12 23:21
本发明专利技术涉及代码部署协助。通过自动代码生成,更具体地是部署代码的自动生成来协助计算机编程。可分析应用,且可根据分析以及特定执行环境来生成包括安装、维护(例如,更新/升级)以及移除(例如,卸载)代码的部署代码。

【技术实现步骤摘要】

本专利技术涉及代码部署。
技术介绍
分布式计算指的是其中程序或应用的不同部分在两个或更多个通过诸如因特网等网络通信的自治计算机上并发运行的计算机处理。这些计算机彼此交互以实现共同目标。通常在多个计算机之间分配工作以完成靠单个或特定计算机的处理能力不可能的任务。或者,仅仅为加速处理,可跨多个计算机分配工作。可采用各种网络体系结构、模型等来通信地耦合许多计算机并启用分布式计算。最为众所周知的体系结构之一是客户机服务器即双层体系结构。此处,在担当内容或服务提供者的服务器以及请求所提供的内容或服务的客户机之间划分工作。一些特定的服务器类型包括但不限于web、应用、数据库、邮件、文件,和打印机服务器。示例性的客户机类型包括web浏览器和电子邮件客户端等等。常规地还采用其它多层体系结构,诸如包括演示、应用(也被称为业务逻辑、逻辑、中间)以及数据层的三层体系结构,该体系结构相应地分隔演示、引用功能,以及数据存储和访问。作为对比,单层体系结构在单个位置中包括演示、应用和数据。不幸的是,开发分布式应用是非常繁重的过程。具体地,需要考虑其上将执行程序的各部分的不相似的环境。例如,计算机可能具有不同的文件系统、操作系统以及硬件组件。此外,程序员需要对多种分布式编程技术(例如,超文本标记语言(HTML)、JavaScript、可扩展标记语言(XML)、结构化查询语言(SQL)、简单对象访问协议(SOAP)...)具有超过肤浅的理解。此外,程序员需要提前对于如何跨两个或更多层划分程序作出决策,并被迫致力于异步回调以及其它耗时的分布式编程问题,这可能会过早地固定分布边界并负面地影响丰富且广泛到达的分布式应用的开发。存在减少分布式编程的负担的层划分技术。更具体地,可对于单个层指定应用,该单个层随后可划分成支持跨层的分布式执行的多个层。
技术实现思路
下面呈现了简化的
技术实现思路
,以便提供对所公开主题的某些方面的基本概念。本
技术实现思路
不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言ο简而言之,本专利技术一般涉及代码部署协助。在一些情况中,代码部署十分麻烦。例如,当第一执行引擎由第二执行引擎主存时,第二执行引擎或环境可指定非常具体的协议来对于第一,或客,执行引擎或环境来部署应用。例如,每一代码(例如,方法、数据类型...)和依赖代码可能需要按照特定次序向主执行环境注册。部署组件和相关联功能可用于自动生成部署代码以减轻程序员的负担。更具体地,可分析应用并查明在应用的部署中可能有用的信息(包括依赖性信息等)。至少部分基于从应用代码本身获得的信息,包括安装、维护(例如,更新/升级)和移除(例如,卸载)代码的部署代码可对特定的执行引擎自动生成。 为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本专利技术的其他优点和新颖特征将变得显而易见。附图说明图1是便于应用部署的系统的框图。图2是代表性部署组件的框图。图3是便于分布式编程的系统的框图。图4是代表性层划分组件的框图。图5是包括应用层和数据层的常规的两层体系结构的框图。图6是包括应用层和数据层的示例性的两层体系结构的框图。图7是包括应用层和数据层的示例性分布式处理系统的框图。图8是应用部署的方法的流程图。图9是安装代码的方法的流程图。图10是更新代码的方法的流程图。图11是卸载代码的方法的流程图。图12是示出用于本公开各方面的合适的操作环境的示意性框图。具体实施例方式以下的细节一般针对便于应用代码的部署。在一些情况中,应用代码部署可仅涉及将应用代码复制到计算机上的特定位置。然而,在其它情况中,部署可能十分麻烦。例如,给定主执行环境和客执行环境,主执行环境可为了安全性和/或可靠性原因而命令对特定部署协议的使用。作为示例而非限制,数据库服务器等可允许代码运行以加速执行,且包括用于代码注册的特定协议。可对于维护(例如,更新、升级、版本化…)以及卸载应用代码来强迫执行类似的协议。为了减轻这种负担,可实施分析应用代码并至少部分地基于分析的结果自动生成安装、维护和/或移除代码的机制。根据一个实施例,这样的机制可结合层划分技术来使用。现在参考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。首先参考图1,示出了便于应用代码部署等的系统100。系统100包括主执行引擎110,该主执行引擎包括客执行引擎120。换言之,主执行引擎110定义了主存客执行引擎120的第一执行环境,而客执行引擎定义了第二执行环境。主执行引擎110和客执行引擎120之间的关系可导致可能的安全性或可靠性问题。例如,客执行引擎执行的应用可潜在地、负面地影响主执行引擎110和/或由其执行的代码。因此,主执行引擎110可对于部署或以其它方式与针对客执行引擎120的应用交互来强加特定协议。这些协议可被设计成减少潜在的安全性和/或可靠性风险,并且对程序员而言可能是麻烦的。而且,负担的程度可根据协议的复杂度变化,程序的复杂度可基于主执行引擎110与客执行引擎120之间的信任程度而变化。在某些情况中,负担是压倒性的,使得程序员完全避免利用特定的技术。系统100还包括通信地耦合到主执行引擎110并间接耦合到客执行引擎120的部署组件130。部署组件130可减轻与部署针对客执行引擎120而非主执行引擎110的计算机应用(例如,指定可由基于处理器的设备执行的一个或多个特定任务的用户代码)相关联的许多负担(如果不是全部)。更具体地,部署组件130可生成可由主执行引擎110执行来相对于客执行引擎120部署应用或其部分之类的代码。根据一个实施例,部署组件130可生成部署代码并将其提供给主执行引擎110以便执行。在另一实施例中,可输出部署代码以便检查,例如由诸如管理员的授权实体检查,且如果代码被认为是可接受的,则授权实体可对于主执行引擎110启动执行。根据一个非限定性的实施例,主执行引擎110和客执行引擎120可驻留在数据层中(例如,数据库、数据库服务器...)。例如,主执行引擎110可以是关系型的(例如,SQL(结构化查询语言)处理器),而客执行引擎120可支持对于一个或多个通用编程语言(例如,面向对象、过程、函数...混合)(例如,SQL-CLR(结构化查询语言-公共语言运行时))指定的代码的执行。在这种情况中,主执行引擎110可要求应用在执行之前按照复杂的方式注册。例如,协议可命令应用片段(例如,方法、函数...)以及依赖应用片段链按照特定次序的注册。作为示例,协议可要求1)复制代码;幻注册代码;幻注册数据类型;4)注册第一方法力)注册第二方法,等等。这对程序员而言是十分麻烦的,以致于程序员通常选择避开以这种方式部署的系统、环境、体系结构等。部署组件130可从程序员身上移除许多这种负担(如果不是全部),并因此鼓励对具有繁重的部署协议的系统、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D·范费尔岑H·J·M·梅杰
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术