CN103988200A - 用于web应用的轻量化框架 - Google Patents

用于web应用的轻量化框架 Download PDF

Info

Publication number
CN103988200A
CN103988200A CN201280061101.9A CN201280061101A CN103988200A CN 103988200 A CN103988200 A CN 103988200A CN 201280061101 A CN201280061101 A CN 201280061101A CN 103988200 A CN103988200 A CN 103988200A
Authority
CN
China
Prior art keywords
script
control
distributed storage
framework
cloud platform
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.)
Granted
Application number
CN201280061101.9A
Other languages
English (en)
Other versions
CN103988200B (zh
Inventor
S·伊克曼
D·拉斯基诺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN103988200A publication Critical patent/CN103988200A/zh
Application granted granted Critical
Publication of CN103988200B publication Critical patent/CN103988200B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本文描述的各种技术涉及使用基于脚本语言的框架来开发web应用。可经由基于脚本语言的框架的接口来接收调用。该调用可管理基于脚本语言的框架中所包括的控件。此外,该调用可由参考基于脚本语言的框架的应用来提供。此外,可基于由该调用管理的控件来生成用户界面,并且可基于由该调用管理的控件来访问云平台上的分布式数据存储所提供的基于云的后端服务。

Description

用于web应用的轻量化框架
背景
web应用是可通过诸如因特网等网络来访问的应用。web应用可以用可通过客户机侧web浏览器或客户机设备上的另一应用(例如,移动应用、桌面应用等)来访问和使用的浏览器支持的语言(例如,与标记语言相组合的脚本语言)来编码。由于web浏览器的普遍性以及将web浏览器用作客户机的便利,web应用已经变得逐渐流行。此外,web应用的普及导致了集中式应用市场的增长。
最近,云计算已经变得更加普遍。因此,web应用可被构建在云平台上,在那里web应用可以在云中运行和/或使用云所提供的后端服务。构建在云平台上的应用的常规开发通常涉及具备对各种云平台专用信息(例如,协议、数据结构等)的理解的web程序员,以便从云中读取数据、向云写入数据、使用其它后端服务,等等。除了与开发云平台上的应用相关联的这一复杂性之外,常规的开发经常可能是耗时的。随着集中式应用市场的增长,web程序员逐渐寻求以较少的时间编写跨移动设备和web浏览器工作的强大应用的方法。
概述
本文描述了涉及使用基于脚本语言的框架来开发web应用的各种技术。可展示基于脚本语言的框架的接口。此外,可经由基于脚本语言的框架的接口来接收调用。该调用可管理基于脚本语言的框架中所包括的控件。此外,该调用可由参考基于脚本语言的框架的应用来提供。此外,可基于由该调用管理的控件来生成用户界面,并且可基于由该调用管理的控件来访问云平台上的分布式数据存储所提供的基于云的后端服务。
基于脚本语言的框架可包括被预编程为在被启用时访问基于云的后端服务并生成用户界面的控件集合。根据一示例,可开发提供用于以下操作的调用的应用:启用、禁用基于脚本语言的框架中所包括的控件中的一个或多个、设置该一个或多个控件的属性值等。例如,这些调用可以从应用中所包括的脚本语言代码中生成。由此,可开发采用被结合到基于脚本语言的框架中(例如通过管理控件集合)的功能的应用,而不是通过将自定义代码包括在应用中来执行这一功能。
在各种实施例中,由云平台上的分布式数据存储提供的基于云的后端服务可包括以下各项中的一个或多个:向分布式数据存储写入数据、从分布式数据存储中读取数据、搜索被保存在分布式数据存储中的数据、索引分布式数据存储中的数据,等等。另选地或另外地,可经由云平台上的分布式数据存储和/或直接从基于脚本语言的框架来访问一个或多个第三方服务。
以上概述呈现了简化概述,以提供对本文描述的系统和/或方法的各方面的基本理解。本概述不是本文描述的系统和/或方法的广义概观。它并非意在标识关键/重要元素,亦非意欲描绘这类系统和/或方法的范围。其唯一的目的是要以简化形式给出一些概念以为稍后给出的更加具体的说明之序。
附图简述
图1示出了方便开发web应用的示例性系统的功能框图。
图2示出了方便开发采用第三方服务的web应用的示例性系统的功能框图。
图3示出了用于使用基于脚本语言的框架来开发应用的示例性系统的功能框图。
图4是示出用于开发web应用的示例性方法的流程图。
图5是示出用于开发web应用的另一示例性方法的流程图。
图6示出了示例性计算设备。
详细描述
现在参考附图来描述涉及使用轻量化的客户机侧框架来开发web应用的各种技术,其中在附图中贯穿始终使用相同的附图标记来引述相同的要素。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或更多个方面的透彻理解。但是显然的是,没有这些具体细节也可实践此(诸)方面。在其他实例中,公知的结构和设备以框图形式示出以帮助描述一个或更多个方面。另外,可以理解,被描述为由特定系统组件执行的功能可由多个组件执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。
此外,术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“X采用A或B”旨在表示任何自然的可兼排列。即,短语“X采用A或B”藉由以下实例中任何实例得到满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。
如此处所阐述的,轻量化框架能够方便web程序员进行快速web应用开发。本文描述的轻量化框架可以是基于脚本语言的框架。此外,轻量化框架可使得能够进行设备兼容用户界面创建以及对云平台上的分布式数据存储中所保存的数据和/或由云平台上的分布式数据存储提供或可经由该分布式数据存储获取的基于云的后端服务的访问。相反,用于web应用开发的常规框架通常支持用户界面创建但不支持数据访问。因此,在常规web应用开发中,web程序员经常需要具备云技术、数据结构、协议等的知识,以便开发从云中读取数据、向云写入数据或采用其它基于云的后端服务的web应用。
现在参考附图,图1示出了方便开发web应用的系统100。系统100包括在一示例性实施例中是客户机侧框架的基于脚本语言的框架102。例如,基于脚本语言的框架102可以是特征丰富的轻量化框架。此外,基于脚本语言的框架102能够通过缓解与在应用开发期间执行的常见活动相关联的开销来支持web应用的开发。由于与这些常见活动相关联的功能能够被结合到基于脚本语言的框架102中,因此web程序员无需在应用开发期间执行这些活动,而是能够改为创建使用由基于脚本语言的框架102供应的功能的应用。
开发web应用通常涉及构建用户界面的集合以及构建对后端系统的数据访问(和/或构建后端系统)。用户界面能够收集来自用户的各种形式的输入并且能够处理输入以遵循后端系统的规范。此外,用户界面可以向用户呈现输出。基于脚本语言的框架102通过允许web程序员既管理对后端系统的数据访问也管理使用基本脚本语言代码和/或标记语言代码的用户界面的创建来简化web应用的开发。例如,脚本语言可以是标记语言的示例可以是HTML。然而,应该理解,所要求保护的主题不限于上述示例。
基于脚本语言的框架102包括数据访问组件104和用户界面(UI)创建组件106。数据访问组件104与基于云的后端系统集成。具体而言,数据访问组件104可访问由云平台110上的分布式数据存储108提供的基于云的后端服务。例如,数据访问组件104可以从分布式数据存储108中读取数据、向分布式数据存储108写入数据、采用由分布式数据存储108抽象的第三方基于云的后端服务,等等。数据访问组件104可被设计成自动使用分布式数据存储108;由此,由web程序员开发的web应用能够自动使用分布式数据存储108,且web程序员无需集成对由分布式数据存储108提供的基于云的后端服务的访问。
此外,UI创建组件106可生成用户界面的集合。UI创建组件106可生成能够收集来自用户的各种形式的输入并且能够处理输入以遵循后端系统的规范的用户界面。此外,UI创建组件106可生成能够向用户呈现输出的用户界面。
此外,基于脚本语言的框架102包括控件集合112。根据一示例,基于脚本语言的框架102可包括包含控件112的一个或多个脚本语言库。控件112可由UI创建组件106用来创建用户界面且由数据访问组件104用来访问由云平台110上的分布式数据存储108提供的基于云的后端服务。根据一说明,当来自控件112的给定控件被启用时,UI创建组件106可基于该给定控件来生成用户界面,并且数据访问组件可基于该给定控件来访问由云平台110上的分布式数据存储108提供的基于云的后端服务。由此,该给定控件能够被web程序员利用,而不是web程序员编写自定义代码来提供该给定控件的功能。
基于脚本语言的框架102还可包括接口组件114。该接口组件114可以是用于应用116(例如,web应用)的脚本语言接口,其中应用116可包括脚本语言代码和/或标记语言代码。应用116可经由接口组件114来参考基于脚本语言的框架102以采用被结合到该基于脚本语言的框架102中的功能。此外,应用116可经由接口组件114来向基于脚本语言的框架102提供调用。例如,调用可管理控件112中的一个或多个(例如,调用可管理来自控件112的控件)。根据一示例,调用可以从应用116中所包括的脚本语言代码中生成;由此,应用116可包括能够生成管理控件112中的一个或多个的一个或多个调用的脚本语言代码,其中该一个或多个调用可经由接口组件114被提供给基于脚本语言的框架102。
基于脚本语言的框架102中的控件112可基于应用116中所包括的脚本语言代码来启用或禁用(例如,响应于由应用116经由接口组件114提供的调用)。此外,控件112可具有可由应用116中的脚本语言来管理的属性和效果(例如,响应于由应用116经由接口组件114提供的调用)。根据一示例,控件112中的一个或多个可基于应用116中的脚本语言代码来动态地样式化。作为另一示例,控件112中的一个或多个可具有可响应于应用116中的脚本语言代码来设置的属性范围。
基于脚本语言的框架102可由web程序员在开发应用116时使用。基于脚本语言的框架102提供与数据访问(例如经由数据访问组件104)以及用户界面生成(例如经由UI创建组件106)有关的功能。因此,使用基于脚本语言的框架102可减少web程序员在开发应用116时花费的时间量。因此,基于脚本语言的框架102能够提高应用116的web程序员的使用脚本语言代码和/或标记语言代码来管理数据访问和用户界面创建的能力。
数据访问组件104能够直接访问云平台110上的分布式数据存储108。因此,web程序员能够使用简单的脚本语言代码和/或标记语言代码来生成对分布式数据存储108进行读和/或写的应用116。web程序员能够在不具备云技术、数据结构、协议等的知识的情况下创建应用116。相反,应用116可管理(例如,启用、禁用、设置属性或效果的值、样式化等)控件112中的一个或多个;基于如由应用116管理的控件112中的一个或多个,数据访问组件104能够直接访问云平台110上的分布式数据存储108。
分布式数据存储108被构建在云平台110上。分布式数据存储108可以是云平台110上的可完全伸缩、复制的数据存储。在一示例性实施例中,分布式数据存储108可以是NoSQL存储。此外,分布式数据存储108可被构建在搜索组件118和索引组件120上。搜索组件118可以是提供全文本和/或图像搜索的搜索引擎。作为对搜索组件118和索引组件120的补充或替换,云平台110还可提供其它后端服务。由此,根据一示例,数据访问组件104可使用搜索组件118来搜索分布式数据存储108中的数据,使用索引组件120来索引分布式数据存储108中的数据,等等。
云平台110上的分布式数据存储108通过应用编程接口(API)122的集合来展示。API122可以是具有REST(代表性状态转移)特性的API。此外,API122可被集成到基于脚本语言的框架102中。例如,数据访问组件104可采用API122来访问分布式数据存储108。因此,基于脚本语言的框架102可抽象API122以使得web程序员无需学习如何利用API122。相反,接口组件114可展示可由web程序员用来开发应用116的简单脚本语言接口。作为示例,可以在基于脚本语言的框架102中获取的控件112可经由接口组件114来展示。
此外,第三方服务的集合可被集成到分布式数据存储108中:即,第三方服务1124……以及第三方服务N126,其中N可以是几乎任何整数(此处统称为第三方服务124-126)。因此,分布式数据存储108可提供对第三方服务124-126的API的访问。此处,数据访问组件104可经由云平台110上的分布式数据存储108来访问第三方服务124-126(例如,第三方基于云的后端服务)。第三方服务124-126的示例可包括web搜索服务、图像搜索服务、视频搜索服务、社交网络服务、微博服务、地图服务、半结构化数据库搜索服务、认证服务、云平台服务,等等。然而,将会认识到所要求保护的主题不限于第三方服务124-126的上述示例,而是任何第三方服务都旨在落入所附权利要求书的范围内。
此外,当完成开发时,应用116可被上传到web主存服务(未示出)。由于,应用116可以用脚本语言代码和/或标记语言代码来编写,因此应用116可被嵌入或上传到例如几乎任何网站。当变得可用时,应用116可被检索并加载到客户机设备(未示出)的web浏览器上以供执行。此外,应用116可以是客户机设备不可知的,以使其能够跨现代桌面、膝上型和移动浏览器工作。
以下阐述展示了一种用于开发在基于云的数据存储中维护地址簿的应用的常规方法。web程序员最初可定义数据对象和数据对象之间的关系(例如,人、人所属的组织等)。之后,web程序员可构建用户界面的集合。根据一示例,web程序员可构建用于创建联系人的用户界面、用于将联系人与其它联系人相关联的用户界面、用于更新联系人的用户界面、用于删除联系人的用户界面、用于搜索联系人的用户界面,等等。当开发这些用户界面和定义数据对象时,web程序员可构建后端服务的集合(例如,基于云的后端服务)和/或构建访问后端服务的集合的系统。后端服务的示例可包括用于向基于云的数据存储写入数据的服务、用于从基于云的数据存储读取数据的服务、用于搜索被保存在基于云的数据存储中的数据的服务、用于编辑基于云的数据存储中的数据的服务、用于从基于云的数据存储中删除数据的服务,等等。上述方法对于web程序员而言可能是耗时的。此外,这一开发可涉及对各种协议、数据结构等的重要理解。
相反,基于脚本语言的框架102与云平台110上的分布式数据存储108集成。此外,基于脚本语言的框架102包括可根据应用116中所包括的脚本语言代码来管理的控件集合112。此外,控件112可以在基于脚本语言的框架102内被预编程为访问基于云的后端系统(例如,云平台110上的分布式数据存储108)。由此,web程序员可编写脚本语言代码和/或标记语言代码以管理被集成到云平台110上的分布式数据存储108的丰富后端中的基于脚本语言的框架102的控件112,而不是web程序员必须执行一定范围的后端编程以及用户界面开发。
现在参考图2,所示的是方便开发采用第三方服务的web应用的系统200。系统200包括基于脚本语言的框架102,该基于脚本语言的框架102可以进一步包括数据访问组件104、UI创建组件106、控件集合112以及接口组件114。如上所述,数据访问组件104能够经由API122来直接访问云平台110上的分布式数据存储108。
此外,一个或多个第三方服务可被直接集成到基于脚本语言的框架102中。由此,第三方服务1202……以及第三方服务M204(此处统称为第三方服务202-204)的API可被展示给基于脚本语言的框架102的数据数据访问组件104,其中M可以是几乎任何整数。基于脚本语言的框架102可以抽象第三方服务202-204的API。因此,应用116可包括管理控件112中的一个或多个的脚本语言代码,其中控件112可使得数据数据访问组件104采用第三方服务202-204中的一个或多个,而应用116的web程序员无需具备用于该一个或多个第三方服务202-204的API的数据结构、协议等的知识。由此,web程序员无需在开发应用116时编写访问该一个或多个第三方服务202-204的代码,因为这一集成被结合到基于脚本语言的框架102中。
第三方服务202-204的示例可包括web搜索服务、图像搜索服务、视频搜索服务、社交网络服务、微博服务、地图服务、半结构化数据库搜索服务、认证服务、云平台服务,等等。但是,所要求保护的主题不限于第三方服务202-204的上述示例。根据一示例,第三方服务可被集成到分布式数据存储108和数据访问组件104中(例如,第三方服务可以是第三方服务124-126中的一个以及第三方服务202-204中的一个)。另外地或另选地,第三方服务可被集成到分布式数据存储108或数据访问组件104中(例如,第三方服务可以是第三方服务124-126中的一个或者第三方服务202-204中的一个)。
作为示例,当客户机设备(例如,执行应用116的设备)的网际协议(IP)地址将被提供给第三方服务(例如,以便返回与该IP地址相关的内容)时,一控件(例如来自控件112)可使得数据访问组件104直接向该第三方服务提供该IP地址,而不是间接地向该第三方服务传递该IP地址。由此,数据访问组件104可将IP地址发送到与其直接集成的第三方服务202-204中的一个或多个,而不是将IP地址发送到可经由云平台110上的分布式数据存储108来访问的第三方服务124-126中的一个或多个。
现在转向图3,所示的是用于使用基于脚本语言的框架102来开发应用116的系统300。基于脚本语言的框架102包括数据访问组件104、UI创建组件106以及接口组件114,数据访问组件104可访问基于云的后端系统(例如,图1的云平台上的分布式数据存储108、图2的第三方服务202-204等),UI创建组件106生成用户界面,而接口组件114可以与应用116接口。
此外,基于脚本语言的框架102包括控件112。控件112可以基于例如模型-视图-控制器(MVC)模型。控件112可根据应用116中所包括的脚本语言代码来启用或禁用。例如,当控件112中的一个或多个在应用116中被启用时,所启用的控件112可使得UI创建组件106生成用户界面。此外,控件112可具有可对其应用的属性和效果的范围。根据一说明,控件112中的一个或多个可基于应用116中的脚本语言代码来样式化。例如,控件112中的一个或多个可由应用116来管理以使得UI创建组件106动画化呈现在客户机设备的显示器上的用户界面。可能的动画可被结合到基于脚本语言的框架102中所包括的控件112中。根据另一示例,基于脚本语言的框架102中所包括的控件112彼此可具有依赖性;根据该示例,控件112之间的依赖性可允许UI创建组件106在所生成的用户界面中提供丰富的动画。作为另一示例,控件112可具有多个属性,诸如名称、标题等。
根据一示例,控件112中的一个或多个可管理对应用116的认证。例如,应用116可包括从可用的认证方案集合(例如由不同的第三方服务所提供的)中选择一认证方案的脚本语言代码。之后,所选认证方案能够从后端(例如图1的云平台110上的分布式数据存储108)直到前端地跨系统采用。
此外,UI创建组件106可包括定制组件302,该定制组件可检测其上正在运行应用116的客户机设备的能力并根据检测到的能力来修改基于控件112中的一个或多个所生成的用户界面。例如,如果应用116被加载在智能电话上,定制组件302可检测到该客户机设备包括相机和话筒。根据该示例,定制组件302可修改由UI创建组件106基于控件112中的一个或多个所生成的用户界面以包括与智能电话的相机和话筒相关的特征,而这些特征可以在定制组件302检测到客户机设备缺少相机和话筒时在由UI创建组件106生成的用户界面中省略。通过包括定制组件302,基于脚本语言的框架102可使得应用116能够采用其上正在执行应用116的客户机设备的能力。此外,应用116可通过利用被结合到基于脚本语言的框架102中的定制组件302,在web程序员没有为了支持各种类型的设备而进行编码的情况下跨移动设备、台式设备、膝上型设备等工作。
UI创建组件106还可包括可以分阶段铺排(rollout)应用116的特征的栏栅(flighting)组件304。例如,web程序员可能期望特定用户子集可访问应用116的一特征。因此,栏栅组件304能够在针对该用户子集所生成的用户界面中提供应用116的特征,而在针对应用116的其余用户所生成的用户界面中隐藏该特征。通过在基于脚本语言的框架102中包括栏栅组件304,web程序员无需编写用于允许分阶段铺排应用116的特征的自定义代码。
此外,基于脚本语言的框架102可包括从控件112接收通知并向控件112发送通知的通知组件306。因此,在基于脚本语言的框架102中,通知组件306可以在控件112之间交换信息,这可允许具有控件112之间的依赖性。根据一说明,应用116可以是脚本语言外壳,其可包括生成对多个控件112的调用的脚本语言代码。根据该说明,在应用116内调用的多个控件112可以从通知组件306接收外壳级通知,由此方便多个控件112之间的交互。
例如,两个控件(例如来自控件112)可被包括在网页上;例如一个控件可以是名称的列表视图,而另一控件可以是详细视图。根据该示例,这两个控件可经由通知组件306交换信息。因此,例如如果在该列表视图中选择了(例如点击)一名称,则详细视图可显示对应于列表视图中的所选名称的细节。此外,通知组件306可交换控件112所使用的信息以实现事件链接。因此,控件112的行为可基于事件(例如,加载数据、处理事务、完成动画、接收到用户输入等)来链接。
此外,数据访问组件104可包括可将控件112绑定到数据源(例如,基于云的后端系统)的源绑定组件308。根据一示例,源绑定组件308可将控件112中的两个控件绑定到来自不同源的对象。根据该示例,源绑定组件308可将控件112中的一个控件绑定到来自第一社交网络服务的对象,将控件112中的另一控件绑定到来自第二社交网络服务的对象;但是,可以理解,所要求保护的主题不限于上述示例。由于源绑定组件308可将控件112绑定到不同的数据源,因此数据访问组件104可以对来自各种数据源的信息采用规范化模式。这一模式规范化可允许控件112之间的灵活的信息交换。在各种实施例中,源绑定组件308可将控件112中的一个或多个绑定到开放数据协议(OD数据)源;然而,可以理解,所要求保护的主题不限于此。
图4-5示出了涉及使用基于脚本语言的框架来开发web应用的示例性方法。尽管各方法被示出和描述为顺序地执行的一系列动作,但可以理解和感知的是,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,动作可以与另一动作并发地发生。此外,在一些实例下,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。
图4示出了用于开发web应用的方法400。在402,可展示基于脚本语言的框架的接口。在404,可经由该接口来接收调用。经由该接口接收到的调用可管理基于脚本语言的框架中所包括的控件。此外,该调用可由参考基于脚本语言的框架的应用来提供。例如,该调用可启用控件、禁用控件、设置控件的属性或效果等。在406,可基于如通过调用管理的控件来生成用户界面。在408,可基于如通过调用管理的控件来访问由云平台上的分布式数据存储提供的基于云的后端服务。
现在转向图5,所示的是用于开发web应用的方法500。在502,可展示基于脚本语言的框架的接口,该框架包括被预编程为在被启用时访问基于云的后端服务并生成用户界面的控件集合。在504,可经由该接口来接收启用来自基于脚本语言的框架中所包括的控件集合的控件的调用。该调用可由参考基于脚本语言的框架的应用来提供。在506,可基于通过调用启用的控件来生成用户界面。在508,可基于通过调用启用的控件来访问由云平台上的分布式数据存储提供的基于云的后端服务。
现在参考图6,示出了可以根据本文公开的系统和方法使用的示例性计算设备600的高级图示。例如,计算设备600可以在使用基于脚本语言的框架来开发web应用的系统中使用。作为另一示例,计算设备600可以在执行被构建在基于脚本语言的框架上的web应用的系统中使用。计算设备600包括执行存储在存储器604中的指令的至少一个处理器602。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器602可以通过系统总线606访问存储器604。除了存储可执行指令之外,存储器604还可存储应用、基于脚本语言的框架等等。
计算设备600还包括可由处理器602通过系统总线606访问的数据存储608。数据存储608可包括可执行指令、应用、基于脚本语言的框架等。计算设备600还包括允许外部设备与计算设备600进行通信的输入接口610。例如,输入接口610可被用于从外部计算机设备、从用户等处接收指令。计算设备600也可包括使计算设备600和一个或多个外部设备相对接的输出接口612。例如,计算设备600可以通过输出接口612显示文本、图像等。
另外,尽管被示为单个系统,但可以理解,计算设备600可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备600执行的任务。
如本文所使用的,术语“组件”和“系统”旨在包含用使得在被处理器执行时执行特定功能的计算机可执行指令配置的计算机可读数据存储。计算机可执行指令可包括例程、功能等等。还要理解组件或系统可以位于单个设备上或分布在若干设备之间。
另外,如此处所用的,术语“示例性”旨在是指“充当某事物的图示或示例”。
在此所述的各种功能可以以硬件、软件或其任何组合来实现。如果在软件中实现,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可由计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟(BD),其中盘(disk)往往以磁的方式再现数据,而碟(disc)常常用激光以光学方式再现数据。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括促成计算机程序从一地向另一地转移的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外线、无线电、以及微波之类的无线技术来从web网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合也应被包括在计算机可读介质的范围内。
以上所描述的包括一个或多个实施例的示例。当然,出于描绘前述各方面的目的而描述上述设备或方法的每个可以想到修改和改变是不可能的,但本领域内的普通技术人员可以认识到,各方面的许多另外的组合和置换都是可能的。因此,所描述的各方面旨在包括所有这些属于所附权利要求书的精神和范围内的改变、修改和变型。此外,就在详细描述或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。

Claims (20)

1.一种开发web应用的方法,包括:
展示基于脚本语言的框架的接口;
经由所述接口来接收管理所述基于脚本语言的框架中所包括的控件的调用,其中所述调用是由参考所述基于脚本语言的框架的应用提供的;
基于如通过所述调用管理的控件来生成用户界面;以及
基于如通过所述调用管理的控件来访问由云平台上的分布式数据存储提供的基于云的后端服务。
2.如权利要求1所述的方法,其特征在于,所述调用是从所述应用中所包括的脚本语言代码中生成的。
3.如权利要求1所述的方法,其特征在于,管理所述控件的调用启用所述控件或禁用所述控件。
4.如权利要求1所述的方法,其特征在于,所述控件在所述基于脚本语言的框架内被预编程为访问由所述云平台上的所述分布式数据存储提供的所述基于云的后端服务。
5.如权利要求1所述的方法,其特征在于,还包括基于所述调用来设置所述控件的属性或所述控件的效果中的至少一个的值。
6.如权利要求1所述的方法,其特征在于,基于如通过所述调用管理的控件来访问由所述云平台上的所述分布式数据存储提供的所述基于云的后端服务还包括以下各项中的至少一个:
基于如通过所述调用管理的控件来向所述云平台上的所述分布式数据存储写入数据;
基于如通过所述调用管理的控件来从所述云平台上的所述分布式数据存储中读取数据;
基于如通过所述调用管理的控件来搜索所述云平台上的所述分布式数据存储中的数据;或者
基于如通过所述调用管理的控件来索引所述云平台上的所述分布式数据存储中的数据。
7.如权利要求1所述的方法,其特征在于,基于如通过所述调用管理的控件来访问由所述云平台上的所述分布式数据存储提供的所述基于云的后端服务还包括基于如通过所述调用管理的控件来访问被集成到所述云平台上的所述分布式数据存储中的第三方服务。
8.如权利要求7所述的方法,其特征在于,被集成到所述云平台上的所述分布式数据存储中的所述第三方服务包括以下各项中的一个或多个:web搜索服务、图像搜索服务、视频搜索服务、社交网络服务、微博服务、地图服务、半结构化数据库搜索服务、认证服务或者云平台服务。
9.如权利要求1所述的方法,其特征在于,还包括基于如通过所述调用管理的控件来采用被直接集成到所述基于脚本语言的框架中的第三方服务。
10.如权利要求1所述的方法,其特征在于,所述应用包括提供管理所述基于脚本语言的框架中所包括的多个控件的多个调用的脚本语言代码。
11.如权利要求10所述的方法,其特征在于,还包括在由所述应用提供的所述多个调用管理的所述多个控件之间交换信息。
12.如权利要求10所述的方法,其特征在于,还包括:
将所述多个控件中的第一控件绑定到来自第一数据源的对象;以及
将所述多个控件中的第二控件绑定到来自第二数据源的对象。
13.如权利要求1所述的方法,其特征在于,所述基于脚本语言的框架是客户机侧框架。
14.一种基于脚本语言的框架,包括:
被预编程为在被启用时访问基于云的后端服务并生成用户界面的控件集合;
接收管理来自所述集合的控件的调用的接口组件,其中所述调用是由参考所述基于脚本语言的框架的应用来提供的;
基于如通过所述调用管理的控件来生成用户界面的用户界面(UI)创建组件;以及
基于如通过所述调用管理的控件来访问由云平台上的分布式数据存储提供的基于云的后端服务的数据访问组件。
15.如权利要求14所述的基于脚本语言的框架,其特征在于,所述数据访问组件基于如通过所述调用管理的控件来访问被集成到所述云平台上的所述分布式数据存储中的第三方服务。
16.如权利要求14所述的基于脚本语言的框架,其特征在于,所述数据访问组件基于如通过所述调用管理的控件来利用被直接集成到所述基于脚本语言的框架中的第三方服务。
17.如权利要求14所述的基于脚本语言的框架,其特征在于,还包括在所述集合中的多个控件之间交换信息的通知组件。
18.如权利要求14所述的基于脚本语言的框架,其特征在于,还包括定制组件,所述定制组件检测其上正在运行所述应用的客户机设备的能力并根据所述能力来修改基于所述控件生成的用户界面。
19.如权利要求14所述的基于脚本语言的框架,其特征在于,所述数据访问组件执行以下操作中的至少一个:基于如通过所述调用管理的控件来向所述云平台上的所述分布式数据存储写入数据、基于如通过所述调用管理的控件来从所述云平台上的所述分布式数据存储中读取数据、基于如通过所述调用管理的控件来搜索所述云平台上的所述分布式数据存储中的数据、或者基于如通过所述调用管理的控件来索引所述云平台上的所述分布式数据存储中的数据。
20.一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时致使所述处理器执行动作,所述动作包括:
展示基于脚本语言的框架的接口,所述基于脚本语言的框架包括被预编程为在被启用时访问基于云的后端服务并生成用户界面的控件集合;
经由所述接口来接收启用来自所述基于脚本语言的框架中所包括的所述控件集合的控件的调用,其中所述调用是由参考所述基于脚本语言的框架的应用提供的;
基于如通过所述调用启用的控件来生成用户界面;以及
基于如通过所述调用启用的控件来访问由云平台上的分布式数据存储提供的基于云的后端服务。
CN201280061101.9A 2011-12-12 2012-12-12 用于web应用的轻量化框架 Active CN103988200B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/323,198 US8671417B2 (en) 2011-12-12 2011-12-12 Lightweight framework for web applications
US13/323,198 2011-12-12
PCT/US2012/069318 WO2013090476A1 (en) 2011-12-12 2012-12-12 Lightweight framework for web applications

Publications (2)

Publication Number Publication Date
CN103988200A true CN103988200A (zh) 2014-08-13
CN103988200B CN103988200B (zh) 2018-05-29

Family

ID=48573294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280061101.9A Active CN103988200B (zh) 2011-12-12 2012-12-12 用于web应用的轻量化框架

Country Status (6)

Country Link
US (2) US8671417B2 (zh)
EP (1) EP2791822A4 (zh)
JP (1) JP6137505B2 (zh)
KR (2) KR101993944B1 (zh)
CN (1) CN103988200B (zh)
WO (1) WO2013090476A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351769A (zh) * 2015-11-09 2018-07-31 微软技术许可有限责任公司 作为远程计算服务的仪表板
CN112867989A (zh) * 2018-09-04 2021-05-28 阿韦瓦软件有限责任公司 基于流的组成以及监视服务器系统和方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671417B2 (en) 2011-12-12 2014-03-11 Microsoft Corporation Lightweight framework for web applications
US8943086B2 (en) * 2012-06-29 2015-01-27 Sap Se Model-based backend service adaptation of business objects
US9195477B1 (en) * 2012-10-09 2015-11-24 Sencha, Inc. Device profiles, deep linking, and browser history support for web applications
US9886424B2 (en) 2013-08-30 2018-02-06 Wal-Mart Stores, Inc. Web application framework for extracting content
JP2015114892A (ja) * 2013-12-12 2015-06-22 株式会社リコー サービス提供システム及びサービス提供方法
CN103957255B (zh) * 2014-04-30 2017-08-25 华南理工大学 一种轻量级应用开发云服务平台及其资源的访问方法
US10185706B2 (en) 2014-10-10 2019-01-22 Aktiebolaget Skf Generating web browser views for applications
CN106708483B (zh) * 2015-07-31 2020-01-31 腾讯科技(深圳)有限公司 物联网设备的控制界面的生成方法及生成装置
KR20170110935A (ko) * 2016-03-24 2017-10-12 전자부품연구원 모바일 디바이스에서의 프레임워크
US10476860B1 (en) 2016-08-29 2019-11-12 Amazon Technologies, Inc. Credential translation
US10572315B1 (en) * 2016-08-29 2020-02-25 Amazon Technologies, Inc. Application programming interface state management
US10552442B1 (en) 2016-08-29 2020-02-04 Amazon Technologies, Inc. Stateful database application programming interface
CA3060362A1 (en) 2017-07-24 2019-02-28 Wix.Com Ltd. Editing a database during preview of a virtual web page
CN111294368A (zh) * 2018-12-06 2020-06-16 上海博泰悦臻电子设备制造有限公司 云服务器、智能客户端及其车主服务方法
CN109992267A (zh) * 2019-03-12 2019-07-09 厦门网宿有限公司 一种云应用的客户端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278792A1 (en) * 2004-06-14 2005-12-15 Microsoft Corporation Method and system for validating access to a group of related elements
US20070006136A1 (en) * 2005-04-25 2007-01-04 Hirschberg Peter D Providing a user interface
US7523401B1 (en) * 2003-09-03 2009-04-21 Theoris Software, Llc System and method for providing a browser-based user interface
US20100100823A1 (en) * 2008-10-21 2010-04-22 Synactive, Inc. Method and apparatus for generating a web-based user interface
CN102271121A (zh) * 2010-06-01 2011-12-07 铜陵玉成软件科技有限责任公司 面向业务模型的云计算开发平台实现方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305550B2 (en) * 2000-12-29 2007-12-04 Intel Corporation System and method for providing authentication and verification services in an enhanced media gateway
US7546576B2 (en) 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
WO2004019160A2 (en) 2002-08-23 2004-03-04 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US7555538B2 (en) 2002-12-26 2009-06-30 Research In Motion Limited System and method for building and execution of platform-neutral generic services' client applications
US20070061488A1 (en) * 2004-09-20 2007-03-15 Trilibis Inc. System and method for flexible user interfaces
US20070106946A1 (en) 2005-11-07 2007-05-10 Philip Goetz Method and system for developing interactive Web applications in a unified framework
US8015543B1 (en) * 2007-01-10 2011-09-06 The Mathworks, Inc. Hardware specific code generation
US20090013245A1 (en) 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor xml editor framework
JP5179822B2 (ja) * 2007-09-27 2013-04-10 株式会社日立ソリューションズ 携帯電話、携帯電話スクリプト開発・実行システム
US8745573B2 (en) 2008-06-16 2014-06-03 Beek Fund B.V. L.L.C. Platform-independent application development framework
JP5237058B2 (ja) * 2008-11-11 2013-07-17 Jfeスチール株式会社 コンピュータシステム
US9052908B2 (en) 2010-01-22 2015-06-09 The Regents Of The University Of California Web application development framework
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US20120036494A1 (en) * 2010-08-06 2012-02-09 Genwi, Inc. Web-based cross-platform wireless device application creation and management systems, and methods therefor
US8689181B2 (en) * 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
US9626223B2 (en) * 2011-10-28 2017-04-18 Hewlett Packard Enterprise Development Lp Provisioning IaaS services
US8671417B2 (en) 2011-12-12 2014-03-11 Microsoft Corporation Lightweight framework for web applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523401B1 (en) * 2003-09-03 2009-04-21 Theoris Software, Llc System and method for providing a browser-based user interface
US20050278792A1 (en) * 2004-06-14 2005-12-15 Microsoft Corporation Method and system for validating access to a group of related elements
US20070006136A1 (en) * 2005-04-25 2007-01-04 Hirschberg Peter D Providing a user interface
US20100100823A1 (en) * 2008-10-21 2010-04-22 Synactive, Inc. Method and apparatus for generating a web-based user interface
CN102271121A (zh) * 2010-06-01 2011-12-07 铜陵玉成软件科技有限责任公司 面向业务模型的云计算开发平台实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TUTORIALS POINT: "AJAX and Database Operations", 《HTTP://TUTORIALSPOINT.COM/AJAX/AJAX_DATABASE.HTM》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351769A (zh) * 2015-11-09 2018-07-31 微软技术许可有限责任公司 作为远程计算服务的仪表板
US11095648B2 (en) 2015-11-09 2021-08-17 Microsoft Technology Licensing, Llc Dashboard as remote computing services
CN108351769B (zh) * 2015-11-09 2021-11-12 微软技术许可有限责任公司 作为远程计算服务的仪表板
CN112867989A (zh) * 2018-09-04 2021-05-28 阿韦瓦软件有限责任公司 基于流的组成以及监视服务器系统和方法

Also Published As

Publication number Publication date
US10387123B2 (en) 2019-08-20
JP2015501993A (ja) 2015-01-19
US8671417B2 (en) 2014-03-11
KR20190077106A (ko) 2019-07-02
CN103988200B (zh) 2018-05-29
US20130152107A1 (en) 2013-06-13
KR101993944B1 (ko) 2019-06-27
EP2791822A1 (en) 2014-10-22
US20140149965A1 (en) 2014-05-29
KR20140101361A (ko) 2014-08-19
JP6137505B2 (ja) 2017-05-31
KR102082092B1 (ko) 2020-02-26
EP2791822A4 (en) 2015-05-20
WO2013090476A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
CN103988200A (zh) 用于web应用的轻量化框架
US11656859B2 (en) Data model API for live applications in a cloud collaboration platform
US10365916B2 (en) Providing access to a hybrid application offline
Keogh J2ME: The complete reference
CN102750312B (zh) 跨承租人移动的承租人数据的恢复
CN102187314B (zh) 生成适用于数据集的资源脚本的方法和系统
US8548444B2 (en) Linking a name to a phone number in a text message based on a contact list in a mobile device
US11079909B2 (en) Macro building tool with an information pane and a macro building pane for compiling an ordered macro and determining data dependency
US11409835B1 (en) Systems for launching content for publication
CN105027535A (zh) 使用rest类api的应用的向后兼容特征级版本控制
KR20130126927A (ko) 스프레드시트 객체의 코드리스 공유
CN103503020A (zh) 通过回复电子消息来做出文档变更
US11281438B2 (en) Platform for web services development and method therefor
JP7258490B2 (ja) マイクロブロギングポストのための動的コンテンツプレースホルダ
US20170003987A1 (en) Access operation with dynamic linking and access of data within plural data sources
US9509560B2 (en) Unified configuration for cloud integration
US10108735B2 (en) System and method of embedded application tags
CN101876998B (zh) 一种实现数据编辑的方法和系统
US20220294754A1 (en) User preference based message filtering in group messaging
US20140229912A1 (en) Micro documentation environments
CN104378393A (zh) 一种资源分享方法和相应的装置
US9059992B2 (en) Distributed mobile enterprise application platform
Ganchev et al. A cloud-based service recommendation system for use in UCWW
CN104468608A (zh) 应用程序接入方法、装置
CN111177183B (zh) 一种生成数据库访问语句的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150803

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150803

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant