瘦客户机软件开发环境的制作方法

文档序号:6456346阅读:537来源:国知局
专利名称:瘦客户机软件开发环境的制作方法
瘦客户机软件开发环境
背景
现今的软件开发环境,如微软@ Visual Studio、 Eclipse等,都是基于厚 客户机原理的。在这种环境中,常常具有在该开发环境变得可用之前,可 能花几小时来安装的数千兆字节软件安装。在其中安装该软件开发应用程 序的机器必须具有足够的资源来处理通常可能需要大量的RAM和其它系 统资源的编译。这对本地开发机器造成沉重的负担。
此外,这种软件开发环境的用户在不使用某种第三方代码共享机制(诸 如用电子邮件向某人发送项目或使用管理源代码的版本控制系统等)的情 况下,不能够容易地与朋友和/或同事共享他们的工作。用电子邮件发送项 目的一个问题是通常可能有大量的相关源代码文件,且该电子邮件的收件 人也必须在其计算机上安装了该软件开发应用程序。版本控制系统的一个 问题是它们通常也受限于厚客户机安装,且通常由于公司安全限制而可能 只可由同 一特定公司的同事访问。
概述
公开了用于提供瘦客户机软件开发环境的各种技术和方法。提供了可 在客户机计算机上的痩客户机用户界面中显示的基于服务器的软件开发应 用程序。该基于服务器的开发应用程序具有处理编译任务的基于服务器的 编译程序,该编译任务通常可能是资源密集型的。从客户机计算机接收输 入以使用该基于服务器的软件开发应用程序来与软件开发项目交互。将该 软件开发项目存储在可以从该软件开发应用程序访问的位置中。从客户机 计算机接收编译选择来使用该基于服务器的软件开发应用程序编译该软件 开发项目。响应于来自该客户机计算机的编译选择,用该基于服务器的软 件开发应用程序来生成经编译的应用程序,并使用如文件下载特征之类的 方法来将该经编译的应用程序提供给该客户机计算机。在一实现中,在该瘦客户机用户界面中向用户提供各种开发特征,仅 举几个非限制性的示例,如命令填充、句法着色、和参数帮助。在另一实 现中,共享特征允许来自不同的客户机计算机的多个用户访问(如审阅、 修订和/或对该项目注释)该软件开发项目。 一个或多个安全设置可以控制 一个或多个用户对该项目的访问。在一实现中,创建该项目的用户控制谁 可以访问该项目。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一 些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。
附图简述


图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的基于服务器的软件开
发应用程序的图示。
图3是图1的系统的一个实现的处理流程图,其示出在提供可以在瘦 客户机用户界面中访问的基于服务器的软件开发应用程序时所涉及的各阶 段。
图4是图1的系统的一个实现的处理流程图,其示出在使用瘦客户机 软件开发项目共享特征时所涉及的各阶段。
图5是图1的系统的一个实现的逻辑图,其示出在提供可以在瘦客户 机用户界面中访问的基于服务器的软件开发应用程序时所涉及的各组件。
图6是图1的系统的一个实现的模拟屏幕,其示出用于基于服务器的 软件开发应用程序的、允许用户创建项目或继续现有项目的痩客户机用户 界面。
图7是图1的系统的一个实现的模拟屏幕,其示出用于基于服务器的 软件开发应用程序的、允许用户编写源代码、编译该源代码并査看结果的 瘦客户机用户界面。
详细描述为促进对本发明的原理的理解,现将对图中所示的各实施方式加以参 考,同时也将用具体语言描述它们。不过,需要理解的是,并无意由此作
范围上的限制。在所述实施方式中的任何改变和进一步更改,以及在此所 述的原理的进一步应用都可以预期将是本领域技术人员通常能想到的。
该系统可以在软件开发应用程序的一般上下文中描述,但是该系统还 用于除此之外的其它目的。在一实现中,此处所描述的一种或多种技术可
作为诸如微软⑧Visual Studio、 Eclipse等软件开发程序中的特征来实现,或 可以来自允许用户创建用于一个或多个操作系统平台的软件的任何其它类 型的程序或服务。在一实现中,提供了可由用户在瘦客户机用户界面中访 问的基于服务器的软件开发应用程序。基于服务器的编译程序执行编译和 其它资源密集型任务,这样用户的计算机将不必执行这些任务。 一个特定 用户的软件开发项目文件可以任选地在多个用户之间共享。
如图1所示,用于实现该系统的一个或多个部分的示例性计算机系统 包括诸如计算设备100和/或130等的一个或多个计算设备。在其最基本的 配置中,计算设备100和/或130通常包括至少一个处理单元(分别是102 和132)和存储器(分别是104和134)。取决于计算设备的确切配置和类 型,存储器104或134可以是易失性的(如RAM)、非易失性的(如ROM、 闪存等)或是两者的某种组合。该最基本配置在图1中由线106和136来 例示。
另外,设备100和/或130还可具有附加的特征/功能。例如,设备IOO
和/或130还可包含附加存储(可移动和/或不可移动),其中包括但不限于
磁盘、光盘或磁带。这样的附加存储在图1中由可移动存储(分别是108
和138)和不可移动存储(分别是110和140)示出。计算机存储介质包括
以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息
的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。 存储器104和134、可移动存储108和138以及不可移动存储110和140
都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、 ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或 其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备100和/或130访问的任何其它介质。任何这样的 计算机存储介质都可以是设备100和/或130的一部分。
计算设备100和/或130包括允许计算设备100和/或130通过网络116 彼此通信和/或与一个或多个其它计算设备(分别是150、 160和170)通信 的一个或多个通信连接。通信连接114和144是通信介质的示例。通信介 质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指 令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语"已 调制数据信号"指的是其一个或多个特征以在信号中编码信息的方式被设 定或更改的信号。作为示例而非限制,通信介质包括诸如有线网络或直接 线缆连接之类的有线介质,以及诸如声学、RF、红外线和其它无线介质之 类的无线介质。如此处所使用的术语计算机可读介质包括存储介质和通信 介质两者。
在一实现中,计算设备100是使用通信连接114和144通过网络116 与服务器计算机130通信的客户机计算机。在这一实现中,客户机计算设 备100的瘦客户机(例如,浏览器)用户界面118访问用户软件开发项目 数据150 (如果有),和服务器计算设备130上的用于执行一个或多个软件 开发任务的基于服务器的软件开发应用程序200。可以理解,用户软件开发 项目数据150和/或基于服务器的软件开发应用程序200可以存储在同一计 算机或不同的计算机上,但为简明起见将它们示出在同一服务器计算设备 130上。在一实现中,客户机计算设备100的瘦客户机用户界面118是基于 浏览器的用户界面,而服务器计算设备130是web服务器。
计算设备100和130还可以具有诸如键盘、鼠标、笔、语音输入设备、 触摸输入设备等输入设备(分别是114和134)。还可以包括诸如显示器、 扬声器、打印机等输出设备(分别是116和136)。这些设备在本领域中公 知且无需在此处详细讨论。
现在转向图2并继续参考图1,示出了在计算设备100上操作的基于 服务器的软件开发应用程序200。基于服务器的软件开发应用程序200是驻 留在计算设备100上的应用程序之一。然而,可以理解,基于服务器的软 件开发应用程序200可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或与图l所示不同的变型。另选地或另外地,基于服
务器的软件开发应用程序200的一个或多个部分可以是系统存储器104的 一部分、可以在其它计算机和/或应用程序115上、或可以是计算机软件领 域的技术人员能想到的其它此类变型。
基于服务器的软件开发应用程序200包括程序逻辑204,其负责执行 在此描述的一些或全部技术。程序逻辑204包括用于提供可在至少一个 客户机计算机上的瘦客户机用户界面中显示的基于服务器的软件开发应用 程序的逻辑206;用于提供作为该开发应用程序的一部分的基于服务器的编 译程序的逻辑208,该编译程序可用于基于客户机计算机请求编译而向特定 目的地提供一个或多个经编译的文件;用于从至少一个客户机计算机接收 输入以使用瘦客户机用户界面访问该开发应用程序的逻辑210;用于存储在 客户机计算机访问基于服务器的软件开发应用程序时该客户机计算机所创 建的至少一个用户项目的逻辑212;用于基于该项目的一组安全设置来使该 用户项目对一个或多个用户可用(例如,审阅、修订和/或注释)的逻辑214; 用于提供诸如命令填充、句法着色和参数帮助等多个开发特征的逻辑216; 以及用于操作该应用程序的其它逻辑220。
现转向图3-4并继续参照图1-2,其更详细地描述了用于实现基于服务 器的软件开发应用程序200的一个或多个实现的各个阶段。图3是示出在 提供可以在瘦客户机用户界面中访问的基于服务器的软件开发应用程序 200时所涉及的各阶段的处理流程图。在一种形式中,图3的过程至少部分 地被实现在计算设备100的操作逻辑中。该过程在开始点240处开始,提 供可在客户机计算机上的瘦客户机用户界面中显示的基于服务器的软件开 发应用程序(阶段242)。在一实现中,瘦客户机用户界面可在来自各种操 作系统平台的使用某些基于AJAX或另一技术的命令的web浏览器中访问 (阶段242)。在一实现中,提供了多种开发特征,仅举几个非限制性的示 例如命令填充、句法着色和参数帮助等(阶段242)。另选地或另外地, 在瘦客户机用户界面正确运作之前,首先从基于服务器的开发应用程序将 一个或多个web组件下载到该特定客户机计算机。基于服务器的软件开发 应用程序可能占据多于或少于l千兆字节的服务器存储空间(阶段242)。从客户机计算机接收输入以使用该软件开发应用程序来与一软件开发
项目交互(阶段244)。该软件开发项目由该软件开发应用程序存储(例如, 在服务器计算机上、在客户机计算机上等)并且可由其访问(阶段246)。 该软件开发项目可以任选地具有用于指定一个或多个用户可以拥有对该项 目的什么访问权限——如只读、只写、复制保护等——的一个或多个安全 设置(阶段248)。在一个实现中,创建该项目的用户可修改控制所述访问 权限的安全设置(阶段248)。另选地或另外地,其他用户(如项目经理或 网络管理员)可被授予修改一个或多个项目的安全设置的许可。
从客户机计算机接收编译选择来使用该软件开发应用程序编译该软件 开发项目(阶段250)。用该软件开发应用程序由基于服务器的编译程序来 生成经编译的应用程序(或一个或多个组件)(阶段252)。此处所使用的 术语"编译"被定义为源代码到诸如可执行(EXE)文件、动态链接库(DLL)、 控件、插件等可执行格式的转换。如通过使一个或多个文件(可执行文件、 DLL、插件、控件等)可用于下载,来向目的地计算机(如客户机计算机 或另一计算机)提供该经编译的应用程序(阶段254)。另选地或另外地, 举一非限制性的示例,如在涉及web部件或web应用程序扩展开发时,编 译程序所生成的文件可以由服务器来自动地部署。如软件领域普通技术人 员可理解的,用于该经编译的一个或多个文件的其它文件下载和/或文件部 署场景也是可能的。该过程在结束点256处结束。
图4示出在使用瘦客户机软件开发项目共享特征时所涉及的各阶段的 一个实现。在一种形式中,图4的过程至少部分地被实现在计算设备100 的操作逻辑中。该过程在开始点270处开始,提供具有基于服务器的编译 程序的基于服务器的软件开发应用程序(阶段272)。该软件开发应用程序 可由多个客户机计算机通过瘦客户机用户界面(如在接收到正确的登录凭 证后允许客户机计算机访问的一个瘦客户机用户界面)来访问(阶段272)。 从第一客户机计算机接收输入以使用该基于服务器的软件开发应用程序来
创建软件开发项目(且可任选地,接收指定哪些用户可以访问该项目的安 全设置)(阶段274)。将该软件开发项目存储在可以从该基于服务器的软 件开发应用程序访问的存储位置中(例如,在同一或不同的计算机上)(阶段276)。从第二客户机计算机接收访问该软件开发项目的输入(阶段278)。 向该第二客户机计算机提供该软件开发项目(阶段280)。该软件开发应用 程序可任选地从该第二客户机计算机接收与该项目一起存储的注释和/或修 订(阶段280)。该过程结束于结束点282。
图5是图1的系统的一个实现的逻辑图,其示出在提供可以在痩客户 机用户界面中访问的基于服务器的软件开发应用程序400(图1和图2上的 200)时所涉及的各组件。示出了客户机组件402和服务器组件404。客户 机组件包括如在诸如微软⑧Internet Explorer、 Firefox等浏览器中的那些之 类的瘦客户机用户界面406。瘦客户机用户界面406可以使用Atlas或另一 AJAX库等来实现某些功能。服务器组件404包括句法着色408、命令填充 410、参数帮助412、 web服务层414、和开发环境后端416。句法着色408、 命令填充410、和参数帮助412都只是基于服务器的软件开发应用程序所提 供的各类型的开发特征的非限制性示例。web服务层指的是允许在开发环 境后端416和瘦客户机406之间发生通信的功能。开发环境后端416负责 提供诸如项目上下文、语义上下文、句法着色等应用程序的功能。
图6是图1的系统的一个实现的模拟屏幕430,其示出用于基于服务 器的软件开发应用程序的、允许用户创建项目434或继续现有项目432的 瘦客户机用户界面。图7是图1的系统的一个实现的模拟屏幕450,其示出 用于基于服务器的软件开发应用程序的,允许用户编写源代码458、使用连 编(BUILD)特征452编译该源代码并在编译窗口 460中査看编译结果的 瘦客户机用户界面。该项目可以使用保存(SAVE)选项452来保存,并可 任选地使用共享(SHARE)选项456来与其他用户共享。在键入短语 "CONSOLE"后命令填充特征462被示出,以显示用于填充该命令的各个 选项。尽管为保持简洁而未示出,但还可以使用句法着色来改变不同类型 的句法的颜色以使用户更容易区分。 一个非限制性示例是以与实际命令不 同的颜色来提供注释。还可以提供参数帮助,如向用户示出给定过程调用 接受哪些参数,以帮助用户完成对该过程的调用的编写。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理 解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。落入在此所 述和/或所附权利要求所描述的实现的精神的范围内的所有等效方案、更改 和修正都期望受到保护。
例如,计算机软件领域普通技术人员会认识到客户机和/或服务器布 置、用户界面屏幕内容、和/或在此讨论的示例中所述的数据布局可在一台 或多台计算机上不同地组织,以包括比示例中所描绘的更少或更多的选项 或特征。
权利要求
1.一种用于提供瘦客户机开发环境的方法,所述方法包括以下步骤提供能在客户机计算机上的瘦客户机用户界面中显示的基于服务器的软件开发应用程序(242)从所述客户机计算机接收输入以使用所述基于服务器的软件开发应用程序来与软件开发项目交互(244)从所述客户机计算机接收编译选择以使用所述基于服务器的软件开发应用程序来编译所述软件开发项目(250);用所述基于服务器的软件开发应用程序生成经编译的应用程序(252);以及向目的地计算机提供所述经编译的应用程序(254)。
2. 如权利要求1所述的方法,其特征在于,所述经编译的应用程序是 通过使至少一个文件能用于下载来提供给所述目的地计算机的。
3. 如权利要求1所述的方法,其特征在于,所述至少一个文件包括可 执行程序(254)。
4. 如权利要求1所述的方法,其特征在于,所述目的地计算机是所述 客户机计算机(254)。
5. 如权利要求1所述的方法,其特征在于,所述基于服务器的软件开 发应用程序支持对多个操作系统平台的开发(242)。
6. 如权利要求1所述的方法,其特征在于,所述软件开发项目能由多 个用户访问(272)。
7. 如权利要求1所述的方法,其特征在于,所述基于服务器的软件开 发应用程序能用于允许创建所述软件开发项目的用户指定多个用户的任一 个是否具有一个或多个访问权限(248)。
8. 如权利要求1所述的方法,其特征在于,所述软件开发项目能被存 储在服务器计算机上(246)。
9. 如权利要求1所述的方法,其特征在于,所述软件开发项目能被存 储在所述客户机计算机上(246)。
10. 如权利要求1所述的方法,其特征在于,所述基于服务器的软件开发应用程序占据服务器上的至少1千兆字节的存储空间以提供多个软件开发特征(242)。
11. 如权利要求1所述的方法,其特征在于,所述基于服务器的软件 开发应用程序能用于向所述客户机计算机提供从包括命令填充、句法着色 和参数帮助的组中选择的开发特征(242)。
12. 如权利要求1所述的方法,其特征在于,所述基于服务器的软件 开发应用程序能用于使用至少一些基于AJAX技术的命令来提供所述瘦客 户机用户界面(242)。
13. —种具有用于使得计算机执行如权利要求1所述的步骤的计算 机可执行指令的计算机可读介质(200)。
14. 一种具有用于使得计算机执行以下步骤的计算机可执行指令的 计算机可读介质,所述步骤包括提供能在至少一个客户机计算机上的瘦客户机用户界面中显示的基于 服务器的软件开发应用程序(206),所述基于服务器的软件开发应用程序 包括基于服务器的编译程序(208);从所述至少一个客户机计算机接收输入,以使用所述痩客户机用户界 面访问所述基于服务器的软件开发应用程序(210);以及存储在所述客户机计算机访问所述基于服务器的软件开发应用程序时 所述客户机计算机所创建的至少一个用户项目(212)。
15. 如权利要求14所述的计算机可读介质,其特征在于,所述基于 服务器的软件开发应用程序还能用于提供从包括命令填充、句法着色和参 数帮助的组中选择的开发特征(216)。
16. —种用于基于服务器的软件开发项目共享的方法,所述方法包括 以下步骤提供具有基于服务器的编译程序的基于服务器的软件开发应用程序, 所述软件开发应用程序能由多个客户机计算机通过瘦客户机用户界面来访 问(272);从所述多个客户机计算机的第一客户机计算机接收输入,以使用所述基于服务器的软件开发应用程序创建软件开发项目(274);将所述软件开发项目存储在能从所述基于服务器的软件开发应用程序 访问的存储位置中(276);从所述多个客户机计算机的第二客户机计算机接收输入,以访问所述 软件开发项目(278);以及向所述第二客户机计算机提供所述软件开发项目(280)。
17. 如权利要求16所述的方法,其特征在于,从所述第二客户机计 算机接收关于所述软件开发项目的注释,并且其中所述注释与所述软件开 发项目存储在一起(280)。
18. 如权利要求16所述的方法,其特征在于,在所述第一客户机计 算机和第二客户机计算机访问所述基于服务器的软件开发应用程序之前,要求所述第一客户机计算机和第二客户机计算机提供正确的登录凭证 (272)。
19. 如权利要求16所述的方法,其特征在于,所述基于服务器的软 件开发应用程序允许第一用户指定多个用户的任一个是否能具有对所述项 目的一个或多个访问权限(274)。
20. —种具有用于使得计算机执行如权利要求16所述的步骤的计算 机可执行指令的计算机可读介质(200)。
全文摘要
公开了用于提供瘦客户机软件开发环境的各种技术和方法。提供了可在客户机计算机上的瘦客户机用户界面中显示的基于服务器的软件开发应用程序。该基于服务器的开发应用程序具有基于服务器的编译程序。从客户机计算机接收输入以使用该基于服务器的软件开发应用程序来与软件开发项目交互。将该软件开发项目存储在可以从该软件开发应用程序访问的位置中。从客户机计算机接收编译选择来使用该基于服务器的软件开发应用程序编译该软件开发项目。用该基于服务器的软件开发应用程序来生成经编译的应用程序,并将该经编译的应用程序提供给该客户机计算机。共享特征允许来自不同的客户机计算机的多个用户访问该软件开发项目。
文档编号G06F17/00GK101529414SQ200780040104
公开日2009年9月9日 申请日期2007年10月5日 优先权日2006年10月27日
发明者L·A·伯格斯特龙, V·G·拉吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1