从交互式开发环境递增地编译软件制品的制作方法

文档序号:9932630阅读:430来源:国知局
从交互式开发环境递增地编译软件制品的制作方法
【专利说明】从交互式开发环境递増地编谭软件制品
[000。 背景
[0002] 许多软件开发者使用交互式开发环境(IDE) W便开发软件。开发者使用IDEW便开 发计算机系统内的各类型的模型,W及W便定制那些模型。
[0003] 示例性集成开发环境解说性地为包括多个不同工具而使得开发者能够开发并测 试需要被开发的代码并且W便按需定制计算机系统的开发工具或开发环境。作为示例,IDE 可包括允许计算机程序员开发软件的源代码编辑器、一个或多个构建自动化工具W及调试 器。一些IDE解说性地包括编译器、解释器、或运两者它们可包括版本控制系统和各种工具 来简化图形用户界面的构建。它们还可包括类浏览器、对象浏览器、W及类层级图,W用于 面向对象的软件开发。从而,开发者可使用IDE来生成代码和元数据,连同对代码和元数据 的定制,运些代码和元数据可用于开发在给定组织中使用的系统。
[0004] 在使用IDE生成或定制软件时,应用开发者在应用内对具体概念(也被称为类型) 建模,并且在需要时编写代码。大型应用(开发者常使用IDE来开发大型应用)可包括数千个 不同的类型。从而,开发和定制运些类型是相对大的任务。
[0005] 作为示例,一些计算机系统包括业务系统,如企业资源规划化RP)系统、客户关系 管理(CRM)系统、业务线化OB)系统,等等。运些类型的计算机系统通常具有被建模和定制的 数千个不同的类型。作为示例,一些此类业务系统通常仅不同的表格就有数千个,更别提许 多其它类型。
[0006] 业务系统不是仅有的具有大量类型的计算机系统类型。例如,游戏系统或各种其 它类型的系统通常也具有在软件系统中建模的数千个不同的类型。
[0007] 此类计算机系统可被经解释代码或经编译代码表示。在开发者开发或定制经编译 代码时,开发者通常希望对开发或定制工作,并且随后运行代码来确保该代码如同开发者 期望的那样工作。在经编译代码环境中,运已要求编译器重新编译整个系统,W便用新开发 或定制的代码来运行该系统。原因在于:目前,编译器很大程度上仅是在需要编译时运行的 可执行代码。当编译完成时,编译器失去其存储器和其构建的任何高速缓存。在开发环境 中,运可能是非常耗时的,而且可能增加项目的开发阶段的时间和成本,而且还可能导致开 发者体验中的困扰。
[000引提供W上讨论仅用作一般的背景信息,并不旨在用作帮助来确定所要求保护的主 题的范围。
[0009] 概述
[0010] -种交互式开发环境接收用于开发或定制已建模类型的开发者输入。编译代理从 IDE接收编译该开发者正在开发或定制的已建模类型的请求。编译代理将编译器作为长久 运行服务来托管,该长久运行服务维持先前编译的类型的高速缓存并且基于开发者所做的 改变来确定可单独加载的类型中的哪些要被重新编译,并且仅编译所标识的那些类型。经 重新编译的类型也被存储在高速缓存中。
[0011] 提供W上讨论仅用作一般的背景信息,并不旨在用作帮助来确定所要求保护的主 题的范围。
[0012] 提供本概述W便W简化的形式介绍W下在详细描述中进一步描述的一些概念。本 概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求 保护的主题的范围。所要求保护的主题不限于解决在背景中提及的任何或所有缺点的实 现。
[0013] 附图简述
[0014] 图1是一个解说性开发架构的框图。
[0015] 图2是解说图1中所示的架构在开发期间执行编译操作时的操作的一个实施例的 流程图。
[0016] 图3是解说用于图1中所示的编译代理的管理组件在管理编译代理的操作时的一 个实施例的流程图。
[0017] 图4A和4B示出了被部署在云计算架构中的图1中所示的架构的各个实施例。
[001引图5-9示出了移动设备的各实施例。
[0019] 图10是一个解说性计算环境的框图。
[0020] 详细描述
[0021] 图1示出开发架构100的一个解说性框图。图1示出了开发架构100包括交互式开发 环境(IDE)102、连同编译代理104W及元数据和代码存储106。图1还示出IDE 102和编译代 理104可与运行时环境108交互,该运行时环境托管使用IDE 102开发或定制的计算机系统。
[0022] 此外,图1示出了开发者110解说性地与IDE 102交互来执行在运行时环境108服务 的计算机系统中运行的应用元素112(例如,类型)的开发或定制。每个应用元素解说性地包 括元数据114,并且还可包括代码116。图1还示出了 IDE 102解说性地包括处理器118和数据 存储120。
[0023] 编译代理104解说性地执行在由IDE 102发送的编译请求112中请求的编译操作。 编译代理104解说性地包括高速缓存124、管理组件126W及处理器128。在编译操作被执行 后,代理104可解说性地将响应130提供回IDE 102。所有运些操作在下面参考图2和3更详细 地讨论。
[0024] 编译代理104还解说性地提供已编译类型132给运行时环境108,在该运行时环境 108处已编译类型可被存储在数据存储134中W供在运行时期间执行。运行时环境108解说 性地包括应用服务器136和运行时翻译器/定位器138。运行时翻译器/定位器138解说性地 定位运行该计算机系统所需的应用元素的类型,并且按需加载所述类型。它们被解说性地 从数据存储134加载到应用服务器136中,在应用服务器136处它们可在运行时期间被执行。
[0025] 元数据和代码存储106解说性地存储与各种不同类型的应用元素(例如,类型)相 对应的元数据和代码。例如,其可由IDE 102和编译代理104访问。
[0026] 图2是解说图1中所示的开发架构100在开发软件系统时的操作的一个实施例的流 程图。要注意,开发者110解说性地与IDE 102所生成的用户界面显示交互W便选择运行时 环境108所使用的应用服务器中的应用元素 W供调试或开发。开发者110可通过独立的开发 者设备(诸如个人计算机、平板、另一移动设备等)或直接与IDE 102交互。开发者110还可通 过网络与IDE 102交互。仅作为示例,在图1中开发者110被示出为直接与IDE 102交互。
[0027] IDE 102首先解说性地接收标识开发者希望建模或定制的应用元素(诸如可编译 类型)的开发者输入。运由图2中的框150指示。作为响应,IDE 102解说性地从元数据和代码 存储106或从运行时环境108获得所标识的应用元素的源代码表示。运由图2中的框152指 示。该源代码表示还可包括元数据114、代码116、或其它信息118。
[00%]任选地,在开发或定制操作被执行后,编译代理104还可解说性地访问来自存储 106的元数据和代码W预加载要被加载W供开发者110运行所开发或所定制的代码的所有 所需的应用元素(例如,可编译类型)。代理104解说性地将其编译为可单个加载的类型并将 其高速缓存在高速缓存124中。运由图2中的框154指示。IDE 102随后接收针对所标识的应 用元素的定制输入,使得开发者实际上使用IDE 102来定制或开发该可编译类型。接收定制 输入W及定制应用元素由图4中的框156指示。
[0029] 在某个点,在开发者110已向现有模型做出期望数量的定制、或者已从头开发了一 定数量的模型之后,开发者110可能希望使代码被编译代理104编译。运将使得开发者110能 够运行新开发或定制的代码来查看该代码是否按照期望执行。回忆一下:编译代理104可能 已经访问了来自数据存储106的多个已建模的类型并将其预加载到了高速缓存124中。而 且,编译代理104可能已经基于开发者110先前所做的改变或开发者先前执行的开发而编译 了从IDE 102接收的多个可编译类型。那些已编译的类型可能已经存在于高速缓存124中。 从而,编译代理104接收来自IDE 102的编译请求122。在一个实施例中,编译代理104通过服 务合同方法调用来接收编译请求122中的编译参数。作为示例,所展示的服务合同可W类似 于下表1中示出的服务合同。
[0030] 亲 1
[0031]
[0032]
[0033] 要领会,编译代理104也可按其它方式接收编译请求122。使编译代理104接收标识 开发者110在IDE 102处所做的改变或开发的编译请求由图2中的框158指示。
[0034] 编译代理104随后访问高速缓存124来标识需要被编译的元素(例如,已建模的类 型)使得开发者110所做的开发和定制能够被运行并被开发者110检查。在一个实施例中,编 译代理104通过标识哪些特定的已建模类型已经被开发者110改变、或者哪些已建模类型已 经被添加来完成此操作,并且仅编译那些已建模类型W及必须被编译W便所开发或定制的 代码运行的任何其它已建模类型。
[0035] 编译代理104检查高速缓存124来确定要被编译的已建模类型中的任何
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1