CN108351765B - 用于生成应用的方法、系统和计算机存储介质 - Google Patents

用于生成应用的方法、系统和计算机存储介质 Download PDF

Info

Publication number
CN108351765B
CN108351765B CN201680065043.5A CN201680065043A CN108351765B CN 108351765 B CN108351765 B CN 108351765B CN 201680065043 A CN201680065043 A CN 201680065043A CN 108351765 B CN108351765 B CN 108351765B
Authority
CN
China
Prior art keywords
data
location
template
application
identified
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
Application number
CN201680065043.5A
Other languages
English (en)
Other versions
CN108351765A (zh
Inventor
B·巴拉萨布拉曼兰
E·B-T·科恩
O·科勒
W·J·斯特普尔斯
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108351765A publication Critical patent/CN108351765A/zh
Application granted granted Critical
Publication of CN108351765B publication Critical patent/CN108351765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Abstract

本公开的示例提供在设计表面处接收模板,模板表示用于应用的视觉布局、逻辑和数据方案。接收到的源数据基于数据方案被绑定到模板。至少一个数据存储位置选自所标识的数据存储位置。基于一个数据存储位置的选择,源数据的至少一部分被提取并且被发送到数据存储位置,用于存储。所提取的数据被重新连线,以将数据存储位置处的所提取的数据绑定到模板,使得对使用模板生成的应用的访问提供对数据存储位置处的所提取的数据的访问。

Description

用于生成应用的方法、系统和计算机存储介质
技术领域
本公开的实施例涉及用于生成应用的方法、系统和计算机存储介质。
背景技术
创建可执行计算机程序通常涉及生成算法、检验算法的正确性并且将算法实现为编程语言。该过程通常要求许多区域中的专业知识,包括目标编程语言中的编码。例如,在集成开发者环境(诸如MICROSOFT VISUAL STUDIO)中,存在设计器,以创建针对应用的用户接口形式。为了分配针对应用的存储位置(例如,为了分配应用数据被存储的位置,以由应用用户访问,或者为了分配针对存储位置处的应用数据的访问的类型),开发者通常添加代码以在运行时提供应用数据访问。尽管设计器已经在这些工具中存在了许多年,以及尽管集成开发者环境的极大的生产率提高,添加代码以在运行时提供应用数据访问的过程仍然通常要求开发者写入在运行时影响应用数据访问的代码的技能。另外,开发者通常具有对用于应用的存储位置有限的控制,其中存储位置频繁地由开发者环境指定。
云存储提供用于数据存储的架构,该架构提供逻辑池中的存储位置,其中物理存储位置常常跨越多个服务器和/或多个物理位置。云存储包括公共存储、私有存储和混合公共/私有存储选项。许多云存储服务提供商允许用户控制对其云存储的部分的访问,诸如通过用户凭证和用户配置的许可。
发明内容
本公开的示例提供一种用于使用模板来自动生成应用的系统和方法。通过使用在开发者环境内接收的模板和源数据,应用被自动生成(诸如在设计表面上)。关于应用数据所存储的位置并且该应用数据可以如何被访问的控制被提供给设计器,使得设计器可以指定应用数据将存在在何处、谁可以访问该应用数据、以及应用用户对存储数据可以具有什么类型的访问。应用数据访问表示应用的运行时行为。在不必写代码的情况下,可以生成以下访问,该访问表示应用提供对存储位置处的应用数据的访问的运行时行为。由于应用被自动生成(包括由设计器所选择的数据存储和访问),所以这些应用更可能涉及生成和运行时处的较少的错误。另外,由于应用被自动生成(包括将存储位置处的所存储的数据绑定到使用模板所生成的应用),因而应用还可以针对运行时的效率而被优化。另外,由于应用被自动生成,因而一般而言,应用行为(诸如,应用数据存储和访问)可以利用较少的对系统以及编码的固有知识来生成。
本公开的方面提供了一种开发者环境,任何用户都可以利用该环境来创建应用,而不管其开发经验如何或者缺乏开发经验。一般性的工作场所计算技能(类似于当使用MICROSOFT OFFICE或者类似程序时所采用的技能)被转译为开发环境。由于应用从模板和源数据来自动生成,因而这些应用进一步提高应用的开发中开发者或者用户的效率。另外,开发环境被转译为非开发者用户,以便提供针对任何用户的应用开发,为用户提高了应用开发的速度。
例如,模板在设计表面处被接收,模板包括数据方案。用于模板的数据集被接收,并且数据集基于数据方案被绑定到模板。基于数据集,数据集的至少一部分被标识用于提取。用于数据集的所标识的部分的位置被接收,并且所标识的部分被提取,并被存储在接收到的位置处。被存储在接收到的位置处的所提取的数据被绑定到模板,使得对从模板所生成的应用的访问提供对存储位置处的所提取的数据的访问。由于在不必写代码的情况下,所选择的模板、源数据和位置经由与设计表面的用户交互而被接收,因而除了将开发者能力带给非开发者以生成应用之外,开发者环境提供了增加的用户接口功能。
提供本发明内容以简化形式介绍下文在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题的主要特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
图1是图示用于生成应用的计算设备的示例性框图。
图2是图示用于生成应用的开发者环境的示例性框图。
图3是图示用于应用的数据存储的示例性示图。
图4是图示对计算设备的操作以提取和存储应用数据的示例性流程图。
图5是图示对计算设备的操作以标识用于应用数据的存储位置的示例性流程图。
图6是图示交互式设计表面的示例性示图。
图7A和图7B是图示用于数据存储选择的交互式设计表面的示例性示图。
图8是图示用于实现开发者环境的计算设备的操作环境的示例性框图。
图9是图示用于使用模板生成应用的云计算环境的示例性框图。
对应的参考符号贯穿附图指示对应的部分。
具体实施方式
参考附图,本公开的示例使得能够从模板创建应用。使用代码生成应用通常要求编程、数据能力和兼容性等的知识。本公开的各方面提供使用模板、源数据和设计器选择的数据存储位置的、对应用的自动生成。由于应用从模板自动生成,因而在应用运行时存在降低的错误率,这是因为代码由开发者环境自动生成,所以开发者错误发生的空间较小。
本公开的各方面还实现了提高的经由用户接口交互的用户交互性能和用户效率,因为用户意图由开发者环境基于与设计表面的视觉元素的用户交互来推断。这还有助于实现应用开发中降低的错误率,这也导致运行时降低的错误率。
此外,本文描述的示例使得应用能够利用被控制的数据存储、以高效并且有效的方式来生成和/或修改,以达到提高的性能。通过如在本公开中所描述的来生成和/或修改应用,一些示例通过策略地管理计算、处理、存储器和/或其他资源来降低处理负载和/或提高处理速度。从自动生成的应用标识并且提取数据的部分用于存储在一个或多个所标识的位置处,并且将所标识的位置处的所提取的数据绑定到所生成的应用的效果改进了应用的性能,以及托管应用的设备的性能。此外,一些示例可以通过流线型化至少一些操作(诸如数据存储和数据访问)、通过自动化至少一些操作来节约存储器、减少网络带宽使用、改进操作系统资源分配和/或改进计算设备之间的通信。
再次参考图1,示例性框图图示了用于生成应用的计算设备。在图1的示例中,与用户104相关联的计算设备102表示用于应用设计的系统。计算设备表示执行实现如本文所描述的操作和功能的指令(例如,作为应用程序、操作系统功能、或二者)的任何设备。计算设备可以包括移动计算设备或任何其他便携式设备。在一些示例中,移动计算设备包括移动电话、膝上型电脑、平板电脑、计算板、上网本、游戏设备和/或便携式媒体播放器。计算设备还可以包括不那么便携的设备(诸如台式个人计算机、自助服务终端、桌面设备、工业控制设备、无线充电站和自动汽车充电站)。此外,计算设备可以表示处理单元组或者其他计算设备。
在一些示例中,计算设备具有至少一个处理器106、存储器区域108和至少一个用户接口。处理器包括任何数量的处理单元,并且被编程为执行用于实现本公开的各方面的计算机可执行指令。指令可以由在计算设备内的处理器或多个处理器来执行,或者由计算设备外部的处理器执行。在一些示例中,处理器被编程为执行诸如附图(例如,图4和图5)中所示的指令。
在一些示例中,处理器表示用于执行本文中所描述的操作的模拟技术的实现方式。例如,操作可以由模拟计算设备和/或数字计算设备执行。
计算设备还具有一个或多个计算机可读介质,诸如存储器区域。存储器区域包括与计算设备相关联或可由其访问的任何数量的介质。存储器区域可以在计算设备内部(如图1所示),在计算设备外部(未示出)或两者(未示出)。在一些示例中,存储器区域包括只读存储器和/或接线到模拟计算设备中的存储器。
除了其他数据之外,存储器区域存储一个或多个应用。当由处理器执行时,应用可以操作以在计算设备上执行功能性。示例性应用包括开发者环境110,其可以表示用于设计其他可执行应用的应用。应用可以与对等应用或服务(诸如可经由网络访问的web服务(未示出))进行通信。例如,应用可以表示与在云端执行的服务器端服务相对应的、所下载的客户端应用。在一些示例中,所生成的应用可以被配置为在运行时间期间与云中的数据资源和其他计算资源通信,或者可以在客户端服务与云服务之间共享和/或聚集数据。存储器区域可以存储数据源112,其可以表示本地存储在存储器区域108处的数据、本地存储在存储器区域108处并且与在计算设备102的远程处存储的数据相关联的数据访问点,或者本地数据和远程数据的任何组合。
存储器区域还存储一个或多个计算机可执行部件。示例性部件包括用户接口部件。当由计算设备102的处理器106执行时,用户接口部件114使得处理器106执行操作,包括例如在与开发者环境110的用户交互期间接收用户选择。
在一些示例中,用户接口部件包括用于向用户显示数据并且从用户接收数据的图形卡。用户接口部件还可以包括用于操作图形卡的计算机可执行指令(例如,驱动程序)。进一步地,用户接口部件可以包括显示器(例如,触摸屏显示器或自然用户接口)和/或用于操作显示器的计算机可执行指令(例如,驱动程序)。用户接口部件还可以包括以下各项中的一项或多项以向用户提供数据或从用户接收数据:扬声器、声卡、相机、麦克风、振动马达、一个或多个加速度计、BLUETOOTH品牌通信模块、全球定位系统(GPS)硬件和感光的光传感器。例如,用户可以通过以特定方式移动计算设备来输入命令或操纵数据。在另一示例中,用户可以通过提供由用户接口部件可检测的手势(诸如,接触或者轻叩触摸屏显示器或者自然用户界面)来输入命令或者操纵数据。
开发者环境110提供用于应用设计和生成的设计工具和设计环境。在一些示例中,开发者环境110包括设计表面116、模板库118、设计逻辑120和策略集122。设计表面116可以是开发者环境110的交互式画布或者交互式设计表面。在一些示例中,设计表面116是被显示在交互式计算设备上的交互式图形用户接口的一部分。例如,设计表面116可以是交互式表面,其通信地耦合到手势检测机构(诸如触摸屏的手势检测部件),使得所检测的手势被用于传达与开发者环境、或者开发者环境的元素的交互。
模板库118可以包括一个或多个应用模板,其可以在应用设计中被选择或者被使用。在一些示例中,模板库118可以具有应用模板的表示,该模板可以选自模板数据库124,并且经由与设计表面116的用户交互来定制。在该示例中,模板数据库124可以被定位在计算设备102的远程的位置并且由开发者环境110可访问的位置处,诸如在云存储位置中。在其他示例中,模板数据库124可以被定位在存储器区域108处。模板库118周期性地与模板数据库124同步,以接收与来自模板数据库的模板相关联的更新的元数据。
示例模板可以包括用于但不限于以下各项的应用模板:资产管理应用、目录应用、合同应用、客户关系管理(CRM)应用、仪表板和报告应用、事件和日历应用、时间表应用、费用跟踪和/或报告应用、媒体应用、多媒体应用、个人管理应用、旅行应用、项目管理应用等等。一般而言,示例模板可以是模板类别,其具有用于每个类别的若干应用模板。在一些示例中,每个类别可以具有多层子类别。作为一个示例,模板库118包括资产管理应用模板类别,其具有用于站点检查员应用、图像标签应用和属于资产管理的其他应用的应用模板。模板库可以提供在站点检查员应用下面的另一层模板,也提供各种不同的站点检查员应用模板。在一些示例中,不同的应用模板可以提供不同的视觉布局选项或者不同的数据暴露部件。模板包括文档和方案,文档提供视觉布局和部件,连同地,样本数据根据方案填充。当模板被选择并且源数据被接收时,源数据根据模板方案被连线到模板的视觉布局和部件。
设计逻辑120是开发者环境110的部件,其将源数据绑定到所选择的模板、标识数据存储位置、基于用户选择和/或策略集122提取并且存储应用数据、并且将所提取的数据重新布线或者重新绑定到使用模板所生成的应用。设计逻辑120标识数据存储位置126并且提供所标识的数据存储位置作为连接列表128。连接列表128可以被提供给设计表面116,用于针对应用数据或者应用数据的部分的指定数据存储位置的用户交互和选择。
在一个示例中,基于与用户104相关联的用户凭证,数据存储位置126可以由开发者环境110发现。例如,用户104可以利用与由开发者环境110可访问的用户简档相关联的用户凭证来登录到开发者环境110。在该示例中,用户简档可以存储用户104在与开发者环境110的交互中先前已经使用的数据存储位置和相关联的凭证。在其他示例中,开发者环境110可以基于用户凭证来检测与用户104相关联的数据存储位置,并且促进用户104经由设计表面116提供对所检测的数据存储位置的访问。然而在其他示例中,开发者环境110可以与企业网络相关联,并且对应于企业网络的一个或多个数据存储位置可以被提供,作为可用于在连接列表128中选择的数据存储位置中的一些数据存储位置。在另一示例中,数据存储位置126可以由发现服务提供给开发者环境110。在又一示例中,数据存储位置126可以由例如用户104提供给开发者环境110。
设计逻辑120部分地基于策略集122来标识存储位置、标识用于提取的应用数据并且标识用于所提取的数据的存储位置。策略集122可以包括但不限于:与文件大小相关联的规则和参数、分布列表、与用户相关联的历史数据存储位置、与数据类型相关联的历史数据存储位置、与数据策略相关联的历史数据存储位置、数据存储位置的容量、数据类型、许可、数据灵敏度、数据限制、目标存储访问限制、应用正在如何使用数据、正在由应用采集的数据的类型或者任何其他适合的参数。
除策略集122之外,设计逻辑120可以基于被附接到数据(诸如例如企业数据)的策略来标识用于提取和存储的数据。在一些示例中,在附接到源数据的策略被标识的情况下,设计逻辑120可以实施所附接的策略,而不实施用户选择。在企业数据的示例中,数据存储位置可以基于企业数据策略,或者所生成的应用的分布(例如,应用与谁共享)可以基于与例如应用相关联的企业数据来限制。
作为另一示例,设计逻辑120可以使用策略集122来确定从所选择的模板生成的应用被用于更新对应于库存的记录。由于库存记录是动态的,因而设计逻辑120可以确定库存数据将被存储在共享位置处,诸如云存储位置。设计逻辑120可以标识静态应用数据(诸如例如库存类别),并且确定静态数据将与模板一起被本地存储,使得静态数据被本地存储在所生成的应用处。
图2是图示用于生成应用的开发者环境的示例性框图。开发者环境200是图1中的开发者环境110的一个实现的说明性示例。开发者环境200包括设计表面202和设计逻辑204。
设计表面202可以是用于接收模板、源数据以及与模板和源数据的交互的交互式画布,其由设计逻辑204使用以自动生成应用。例如,设计表面202可以是开发者环境200的一部分,其经由用户接口来显示,并且被配置为接收用户交互。设计表面202可以包括设计工具206,其可以是开发者环境200的应用资源。例如,设计工具206可以包括图1的模板库118。
设计逻辑204可以包括若干算法、规则和参数,用于:使用模板和源数据来自动生成应用,标识源数据用于提取和存储在所标识的存储位置处的部分,并且将在所标识的存储位置处的所提取的数据绑定到所生成的应用,使得对应用的访问提供对所存储的数据的访问,而不管所存储的数据的位置。例如,设计逻辑204可以包括但不限于:数据存储位置机构208、数据提取机构210、数据绑定机构212、数据策略机构214和策略集216。
在示例性操作中,设计表面202可以接收如由模板218所图示的模板选择。模板218可以是具有文档220和方案222的应用模板。文档220包括用于使用模板218生成的应用的视觉部件和视觉布局,以及使用方案222被应用到模板的样本数据。基于方案222映射的样本数据提供了源数据可以如何被应用到模板218的视觉布局和视觉部件的视觉表示,用于应用设计。作为一个说明性示例,文档220可以提供表,并且样本数据可以基于方案222被映射到表。在该示例中,样本数据可以被格式化为电子表格数据,其中电子表格数据基于方案222被映射到模板中的表。作为另一示例,文档220可以提供应用的页面集或者屏幕集,并且方案222可以利用用于个体屏幕的个体样本图像来映射图像的样本数据。
设计表面202还接收源数据224。源数据224由用户提供,在一些示例中通过打开文件或者将文件拖曳到设计表面202上。在这些示例中,源数据224可以包括一个或多个不同的源文件。例如,源数据224可以包括以下各项中的一项或多项:用户数据、远程数据、共享数据、企业数据、公共数据、动态数据、本地数据或者任何其他可访问数据。
在该示例中,数据提取机构210标识用于源数据224的数据类型,包括本地数据226、动态数据228和远程数据230。本地数据226是静态数据,其可以在所生成的应用处被本地维持。动态数据228是可以具有本地起源、但是在应用的运行时可以改变的数据。动态数据可以基于与方案222相关联的规则被标识,诸如例如被映射到文档220的读取/写入部件的数据。远程数据是已经被存储在云存储位置中的数据。远程数据的示例可以包括企业数据或者公共数据。
数据存储位置机构208标识数据存储位置(诸如图1中的数据存储位置126),并且将所标识的位置作为连接列表232提供给设计表面202。连接列表232可以是可用存储位置的交互式列表。对来自连接列表232的存储位置的用户选择触发用户提取机构210来分析源数据224,并且标识源数据224用于提取的至少一部分,以发送到所选择的存储位置。数据存储位置机构还可以使用策略集216、遥测数据234和用户简档236中的任一个来确定可用的存储位置、提供连接列表并且推断默认存储位置,以提供作为连接列表处的建议位置。
遥测数据234可以包括从分布式开发者环境的分析导出的机器学习信息和使用模板所生成的先前应用。例如,遥测数据234可以包括关于数据被存储在何处、什么类型的数据被存储在什么类型的位置处、什么类型的数据被提取等等的信息。用户简档236可以包括对应于与开发者环境200的用户交互的历史信息,以及其他用户信息(诸如用户凭证238)。历史信息可以包括用户已经与谁共享先前生成的应用,用户先前已经选择何处来存储数据或者数据的部分,以及其他历史应用设计以及与用户相关联的开发信息。在一些示例中,用户意图可以部分地基于过去的与开发者环境的用户交互或者过去的对应于所选择的模板的用户选择、所接收的数据或二者来确定。用户意图可以经由与用户简档相关联的应用分析所采集的数据、通过关于过去的用户选择或者交互的数据来推断。在其他示例中,用户意图可以基于遥测技术、与接收到的数据的类型匹配的数据存储位置、可用的数据存储位置和/或被使用在当前应用设计中的其他参数、选择和数据来确定。
数据提取机构210使用策略集216和所标识的存储位置240来确定提取源数据224的哪个部分并且在何处存储所提取的部分。在一些示例中,所标识的存储位置240可以是由数据存储位置机构208所标识的默认存储位置,并且被提供作为连接列表232处的建议存储位置。在缺少不同的存储位置的选择的情况下,建议存储位置可以变为用于存储所提取的应用数据的所标识的存储位置。在其他示例中,所标识的存储位置240可以是来自在连接列表232中所提供的位置的列表的用户选择的存储位置。数据提取结构210还可以访问服务(诸如数据存储位置的后端服务),并且可选地向服务提供凭证以便访问并且存储所提取的数据。在一些示例中,用户凭证可以被存储在用户简档中,或者以其他方式基于由开发者环境200所标识的其他用户凭证被标识。
在说明性示例中,数据提取机构标识源数据224的本地数据226和动态数据228,并且使用策略集216来维持文档220处的本地数据226,同时提取动态数据228,将提取的动态数据发送到所标识的存储位置240。数据绑定机构212将被定位在所标识的存储位置240处的动态数据228重新布线或者重新绑定到文档220。应用生成将文档220转换为公开应用,并且将源数据绑定到应用而不管源数据的存储位置,或者源数据的部分的存储位置。例如,如果文档220作为公开应用与另一用户分享,则该另一用户将具有对动态数据和/或远程数据经由应用被存储的(多个)存储位置的访问权。
数据策略机构214实施附接到源数据224的策略,以及策略集216。作为示例,远程数据230可以包括企业数据,以及相关联的企业策略。分布列表242可以是设计表面202的交互式部分,其提供公开应用的一个或多个接收者的选择。分布列表242可以包括诸如用户集244、用户A 246和用户B 248的接收者。在该示例中,用户集244可以是企业网络中的接收者组,而用户A 246和用户B 248是企业网络外部的接收者。数据策略机构214可以标识与远程数据230相关联的企业数据策略,诸如例如将对企业数据的访问限制为网络内用户的策略。数据策略机构214可以生成用于所生成的应用250的数据访问表达,经由所生成的应用250将对远程数据230的访问提供给用户集244,同时限制用户A 246和用户B 248的访问。在该相同示例中,用户A 246和用户B 248可以具有对所生成的应用250的动态数据228和本地数据226的访问权,而不具有对远程数据230的访问权。
图3是图示用于应用的数据存储的示例性示图。开发者环境300可以是图1中的开发者环境110和/或图2中的开发者环境200的一个实现的说明性示例。
开发者环境300包括开发者环境网络302、数据存储位置304和数据存储位置306。开发者环境网络302可以包括例如用于实现开发者环境的部件的云存储和一个或多个网络设备。在该示例中,模板数据库308在开发者环境网络302处被维持,并且可访问开发者环境的实例。例如,图1中的模板库118可以从模板数据库308填充。在经由用户选择的公开以从所选择的模板和源数据创建应用时,应用被自动生成并且被存储在开发者环境网络302中,由所生成的应用310来表示。所生成的应用310可以由共享该应用的任何用户(诸如选自图2中的分布列表242的用户)可访问,或者在一些示例中可以被公开用于公共访问。
连接服务312提供开发者环境网络302与数据存储位置304之间的通信,因为连接服务312具有与和数据存储位置相关联的后端服务通信所需要的协议和其他信息的知识。
如在图3中所图示的,图2中的源数据224的部分被存储在如由设计逻辑204所确定的一个或多个位置中。在该示例中,所生成的应用310利用存储在所生成的应用处的本地数据314、存储在数据存储位置304处的动态数据316和存储在数据存储位置306处的远程数据318来描绘。
图4是图示对计算设备的操作以生成应用的示例性流程图。在图4中所呈现的示例性操作可以通过例如在图1或图2中所描述的一个或多个部件来执行。
该过程通过在操作402处在设计表面处接收模板开始。模板由例如来自模板库的用户选择而被接收。模板可以表示用于正被设计的应用的类型或者类别的应用模板。
在操作404处,该过程接收对来自数据源的数据的选择。在一些示例中,对数据的选择可以从用户打开文件、或者将文件拖曳到设计表面上而被接收。在一些示例中,数据还可以从超过一个数据源来接收。
在操作406处,该过程使用模板的方案将来自数据源的数据绑定到模板。例如,方案可以是将接收到的数据映射到所选择的模板的部件的数据方案。在操作408处,该过程确定数据将被存储的位置。位置可以是至少部分地基于策略集所确定的一个或多个数据存储位置。
在操作410处,该过程从模板提取数据的至少一部分。该部分可以是对来自数据源的数据的全部选择,或者小于对来自数据源的数据的全部选择。在操作412处,该过程将所提取的数据存储在所确定的位置处。此外,在一些示例中,所选择的数据的超过一个的部分可以被提取,用于存储在不同的位置处。在操作414处,该过程将所存储的数据重新绑定到模板以生成分布式应用,其中该过程此后终止。
图5是图示对计算设备的操作以标识用于应用数据的存储位置的示例性流程图。在图5中所呈现的示例性操作可以通过例如在图1或图2中所描述的一个或多个部件来执行。
在操作502处,该过程开始于使用所选择的模板和所选择的数据来生成应用。模板和数据可以通过以下而被接收:用户例如通过手势(诸如轻叩)在设计表面的设计画布处选择模板,并且从数据源选择数据,以从显示在画布上的模板列表选择用于被包括到应用设计中的模板。
在操作504处,该过程标识针对所生成的应用的应用数据的数据类型。数据类型可以包括但不限于:本地数据、动态数据和远程数据。
在操作506处,该过程确定应用数据的部分是否是本地数据。如果该过程确定应用数据的部分是本地数据,则在操作508处,该过程利用应用维持本地数据。例如,利用应用维持本地数据可以指将本地数据的数据位置绑定到应用。该过程然后可以行进到操作510。
如果在操作506处,该过程确定应用数据的部分不是本地数据,则该过程可以行进到操作510。在操作510处,该过程确定应用数据的部分是否是动态数据。如果过程确定应用数据的部分是动态数据,则在操作512处,该过程将动态数据提取并且存储在所选择的存储位置处。在一些示例中,所选择的存储位置可以是从用户选择接收的所标识的存储位置,或者由开发者环境建议的默认存储位置。
如果该过程确定不存在动态数据作为应用数据的一部分,则该过程在操作514处确定应用数据的部分是否是远程数据。如果做出应用数据的部分是远程数据的确定,则在操作516处,该过程将远程数据维持在当前存储位置处。在操作518处,该过程然后将一个或多个存储位置处的应用数据重新连线到应用,并且在操作520处分布应用,其中该过程此后终止。
图6是图示交互式设计表面(诸如图2中的设计表面202)的示例性示图。设计表面600可以是显示例如开发者环境的图形用户接口的说明性示例。
设计表面600可以包括模板部件602,其可以可选择的部件,以进入应用设计器的模板模式。模板部件602可以是设计工具(诸如图2中的设计工具206)的一个示例。模板部件602的选择可以提供来自例如模板库118的模板的交互式列表。
图7A和图7B描绘了图示用于应用的数据存储位置的用户选择的示例性示图。设计表面700图示了显示用于应用数据的默认数据存储位置的设计表面。设计器意图或者用户意图在存储位置机构中被考虑,以实现该说明性示例中的建议存储位置。用户选择702可以是从默认位置改变数据存储位置或者分配新数据存储位置的用户选择。
设计表面704图示了显示连接列表(诸如图2中的连接列表232)的设计表面。当前存储提供者、或者默认或建议存储提供者可以被指示,以及最近连接(例如,基于过去的用户交互或者用户凭证)和新连接(例如,基于其他可用数据存储位置的发现)。用户选择706可以是控制将应用数据存储到所选择的位置的用户选择。
附加示例
在一些示例中,基于用户的登录凭证,设计逻辑可以知道或者可以推断用于应用数据的存储的可能数据位置。例如,基于与云中的共享存储位置相关联的登录凭证,设计逻辑可以推断共享存储位置作为用于在应用数据中所标识的动态数据的默认存储位置。
在其他示例中,应用模板可以包括用于将数据应用到模板方案的个体逻辑,以及针对模板的、可以由数据策略机构实施的策略。这些模板策略和/或逻辑还可以被数据提取机构用于确定提取应用数据的什么部分,并且数据的所提取的部分将被存储在何处。例如,数据提取机构可以推断具有用于更新、增强或者以其他方式操纵数据的相关联的规则的表将被提取,并且当应用被公开时被推送到共享位置,使得应用的用户具有对共享位置处的表的动态数据的访问权。
数据存储的用户意图还可以基于遥测技术或者机器学习来推断。在示例场景中,用户的默认存储位置可以基于来自过去的用户行为的机器学习,或者基于用于新用户的遥测技术。此外,相同类型的重复手势(诸如交互式连接列表上的重复轻叩)可以被解译为例如用户意图用于不同的选择(诸如通过位置选项来旋转)的指示。
另外,所提取的数据不必存储在相同的位置处,所提取的数据的子集可以被存储在不同的位置处。例如,用户可以选择将一些数据存储在一个位置处,并且其他数据存储在另一位置处。在一些示例中,例如,数据提取机构可以确定基于策略集(诸如归因于存储容量或者数据类型)来将数据存储在多个位置处。然而在其他示例中,例如,数据提取机构可以决定不基于策略集来提取数据或者数据的部分,而是将数据的某些部分保持在本地(诸如归因于带宽限制)。
备选地或者除本文所描述的其他示例之外,示例包括以下各项的任何组合:
-标识数据集的一个或多个数据类型,一个或多个数据类型包括以下各项中的至少一项:本地数据、动态数据或者远程数据;
-其中数据集用于提取的部分至少部分地基于策略集被标识;
-其中数据集用于提取的部分至少部分地基于遥测数据被标识;
-接收用于数据集的部分的第一子集的第一位置;
-接收用于数据集的部分的第二子集的第二位置;
-将第一子集存储在第一位置处,并且将第二子集存储在第二位置处;
-标识用于数据存储的一个或多个位置;
-提供一个或多个位置作为连接列表;
-接收从连接列表的一个或多个位置对位置的选择;
-从一个或多个位置标识默认位置,默认位置至少部分地基于策略集被标识;
-提供默认位置作为连接列表中的建议位置;
-其中数据存储位置机构将连接列表提供给设计表面;
-其中数据存储位置机构从一个或多个所标识的数据存储位置标识默认存储位置,并且提供默认存储位置作为连接列表中的建议存储位置;
-其中设计表面被耦合到模板库,模板库具有若干模板,若干模板中的个体模板包括文档和方案;
-其中源数据包括以下各项中的至少一项:本地数据、动态数据和远程数据;
-其中数据提取机构标识本地数据,并且在模板处维持本地数据存储;
-其中数据提取机构标识远程数据,作为被存储在远程位置处的源数据的子集,并且在远程位置处维持远程数据存储;
-其中数据提取机构标识动态数据,作为将被存储在另一数据存储位置处的源数据的子集,并且提取动态数据以发送到另一数据存储位置;
-其中数据提取机构标识源数据的一个或多个数据类型,一个或多个数据类型包括以下各项中的至少一项:本地数据、动态数据或者远程数据;
-其中源数据用于提取的部分至少部分地基于策略集被标识;
-其中数据存储位置机构将一个或多个所标识的存储位置作为连接列表提供给设计表面;
-其中设计表面接收用于存储源数据的所提取的部分的至少一个所标识的位置,作为来自连接列表的用户选择。
在一些示例中,图4和图5中图示的操作可以被实现为在计算机可读介质上编码的软件指令、被硬件编程或设计成执行操作,或两者兼有。例如,本公开的各方面可以被实现为片上系统或包括多个互连的导电元件的其他电路。
虽然已经用其相关联操作根据各种示例对本公开的各方面进行了描述,但是本领域技术人员将理解,来自任何数目的不同示例的操作的组合也在本公开的各方面的范围内。
虽然没有通过本公开的各方面跟踪个人可标识信息,但是已经参考从用户监视和/或收集的数据对示例进行了描述。在一些示例中,可以向用户提供数据的收集的通知(例如,经由会话框或偏好设置),并且给予用户机会以同意或拒绝监视和/或收集。同意可以采取选择选中同意或不选中同意的形式。
示例性操作环境
图8图示了合适的计算和联网环境800的示例,在其上可以实现图1的示例。计算系统环境800仅是合适的计算环境的一个示例,并不旨在暗示对本公开的使用或功能性的范围的任何限制。计算环境800也不应被解释为具有与示例性操作环境800中所图示的部件中的任一部件或部件的组合有关的任何依赖性或要求。
本公开可与许多其他通用或专用计算系统环境或配置一起操作。可以适用于本公开的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任一系统或设备的分布式计算环境等。
可以在由计算机执行的诸如程序模块之类的计算机可执行指令的一般上下文中描述本公开。通常,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、对象、部件、数据结构等。本公开还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备和/或计算机存储设备的本地计算机存储介质和/或远程计算机存储介质中。如本文所使用的,计算机存储设备指代硬件设备。
参考图8,用于实现本公开的各个方面的示例性系统可以包括具有计算机810形式的通用计算设备。计算机810的部件可以包括但不限于处理单元820、系统存储器830以及将包括系统存储器的各种系统部件耦合至处理单元820的系统总线821。系统总线821可以是以下几种类型的总线结构中的任何一种:存储器总线或存储器控制器、外围总线以及使用多种总线架体系构中的任一种总线架体系构的本地总线。作为示例而非限制,这种体系架构包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及还被称为Mezzanine总线的外围部件互连(PCI)总线。
计算机810通常包括多种计算机可读介质。计算机可读介质可以是可以由计算机810访问的任何可用介质,并且包括易失性介质和非易失性介质以及可移除介质和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性介质和非易失性介质、可移除介质和不可移除介质。存储器831和存储器832是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并且可以由计算机810访问的任何其他介质。然而,计算机存储介质不包括传播信号。相反,计算机存储介质排除传播信号。任何这样的计算机存储介质可以是计算机810的一部分。
通信介质通常在诸如载波或其他传送机制之类的调制数据信号中实现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以对信号中的信息进行编码的方式设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质以及诸如声学、RF、红外和其他无线介质之类的无线介质。
系统存储器830包括具有诸如只读存储器(ROM)831和随机存取存储器(RAM)832之类的易失性存储器和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统833(BIOS)包含帮助在计算机810内的元件之间(诸如在启动期间)传送信息的基本例程,通常被存储在ROM 831中。RAM 832通常包含处理单元820可直接地访问和/或目前正在被操作的数据和/或程序模块。通过示例而非限制,图8图示了操作系统834、应用程序(诸如开发者环境835)、其他程序模块836和程序数据837。
计算机810还可以包括其他可移除/不可移除易失性/非易失性计算机存储介质。仅作为示例,图8图示了从不可移除非易失性磁性介质读取或向其写入的硬盘驱动器841,提供向可移除非易失性存储器852的读取或者写入的通用串行总线(USB)端口851,以及从诸如CD ROM或其他光学介质之类的可移除非易失性光盘856读取或向其写入的光盘驱动器855。可以在示例性操作环境中使用的其他可移除/不可移除,易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840之类的不可移除存储器接口连接至系统总线821,并且USB端口851和光盘驱动器855通常通过诸如接口850之类的可移除存储器接口连接至系统总线821。
如上文所描述的并且在图8中所图示的驱动器及其相关联的计算机存储介质为计算机810提供计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图8中,硬盘驱动器841被图示为存储操作系统844、开发者环境845、其他程序模块846和程序数据847。注意,这些部件可以与操作系统834、开发者环境835、其他程序模块836和程序数据837相同或不同。操作系统844、开发者环境845、其他程序模块846和程序数据847在本文中被给予不同的数字,以说明至少它们是不同的副本。用户可以通过诸如平板电脑或电子数字转换器864、麦克风863、键盘862以及指示设备861(通常被称为鼠标、轨迹球或触摸板)之类的输入设备将命令和信息录入到计算机810中。图8中未示出的其他输入设备可以包括操纵杆、游戏垫、卫星天线、扫描仪等。这些输入设备和其他输入设备通常通过耦合至系统总线的用户输入接口860连接至处理单元820,但是也可以通过其他接口和总线结构(诸如并行端口、游戏端口或通用串行总线(USB))连接。监视器891或其他类型的显示设备还经由诸如视频接口890之类的接口连接至系统总线821。监视器891还可以与触摸屏面板等集成。注意,监视器和/或触摸屏面板可以物理耦合至其中包含有计算设备810的壳体,诸如在平板式个人计算机中。另外,诸如计算设备810之类的计算机还可以包括可以通过输出外围接口894等连接的其他外围输出设备,诸如扬声器895和打印机896。
计算机810可以使用到一个或多个远程计算机(诸如远程计算机880)的逻辑连接在联网环境中操作。远程计算机880可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括相对于计算机810描述的元件中的许多或所有元件,尽管图8中仅图示了存储器存储设备881。图8中描绘的逻辑连接包括一个或多个局域网(LAN)871和一个或多个广域网(WAN)873,但还可以包括其他网络。这样的网络环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接至LAN871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于通过诸如互联网的WAN 873建立通信的其他装置。可以在内部或外部的调制解调器872可以经由用户输入接口860或其他适当的机构连接至系统总线821。诸如包括接口和天线的无线网络部件可以通过诸如接入点或对等计算机之类的合适的设备耦合至WAN或LAN。在联网环境中,相对于计算机810描绘的程序模块或其部分可以被存储在远程存储器存储设备中。作为示例而非限制,图8图示了驻留在存储器设备881上的远程应用程序885。可以理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
关于图9,示例性框图图示了用于应用开发的云计算环境。架构900图示了适于在实现本公开的方面中使用的示例性云计算基础设施。架构900不应被解译为具有与其中所图示的部件中的任何单个部件或者组合有关的任何依赖性或要求。另外,任何数目的节点、虚拟机、数据中心、角色实例或其组合可以被用于实现本公开的示例的范围内的期望的功能。
图9的分布式计算环境包括公共网络902、私有网络904和专用网络906。例如,公共网络902可以是公共云。私有网络904可以是私有企业网络或者私有云,而专用网络906可以是第三方网络或者专用云。在该示例中,私有网络904可以托管客户数据中心910,并且专用网络906可以托管因特网服务提供商912。混合云908可以包括公共网络902、私有网络904和专用网络906的任何组合。例如,专用网络906可以是可选的,以及混合云908包括公共网络902和私有网络904。
公共网络902可以包括数据中心,其被配置为根据结构控制器918托管并且支持操作,包括分布式应用的任务。将理解并且应当领会,图9所示的数据中心914和数据中心916仅是用于容纳一个或多个分布式应用的一个适合的实现的示例,并且不旨在建议关于本公开的示例的使用或者功能的范围的任何限制。数据中心914和数据中心91二者都不应被解译为具有与任何单个资源、资源的组合、服务器的组合(例如,服务器920、服务器922和服务器924)、节点的组合(例如,节点932和934)或者用于访问资源、服务器和/或节点的API集有关的任何依赖性或要求。
数据中心914图示了包括多个服务器(诸如服务器920、服务器922和服务器924)的数据中心。结构控制器918负责自动地管理服务器,并且将任务和其他资源分布在数据中心914内。以示例的方式,结构控制器918可以依赖于服务模型(例如,由拥有分布式应用的客户设计),以提供关于如何、何处并且何时配置服务器922并且如何、何处并且何时将应用926和应用928放置在其上的引导。在一个示例中,分布式应用中的一个或多个角色实例可以被放置在数据中心914的服务器中的一个或多个上,其中一个或多个角色实例可以表示软件的部分、部件程序或者参与分布式应用的角色的实例。在另一示例中,角色实例中的一个或多个可以表示分布式应用可访问的所存储的数据。
数据中心916图示了包括多个节点(诸如节点932和节点934)的数据中心。例如,一个或多个虚拟机可以在数据中心916的节点上运行,诸如节点934的虚拟机936。虽然图9描绘数据中心916的单个节点上的单个虚拟节点,但是任何数目的虚拟节点可以根据本公开的说明性示例在数据中心的任何数目的节点上实现。通常,基于被放置在分布式应用上的需求(例如,处理负载的数量),虚拟机936被分配到分布式应用或者服务应用的角色实例。如本文所使用的,短语“虚拟机”不旨在是限制性的,并且可以指代由处理单元执行以成为分配到其的角色实例的功能的基础的任何软件、应用、操作系统或者程序。另外,虚拟机936可以包括数据中心916内的处理能力、存储位置和其他资产,以适当地支持所分配的角色实例。
在操作中,虚拟机在数据中心的第一节点和第二节点上被动态地分配资源,并且端点(例如,角色实例)被动态地放置在虚拟机上,以满足当前处理负载。在一个实例中,结构控制器930负责自动管理在数据中心916的节点上运行的虚拟机,并且将角色实例和其他资源(例如,软件部件)放置在数据中心916内。以示例的方式,结构控制器930可以依赖于服务模型(例如,由拥有服务应用的客户所设计),以提供关于如何、何处并且何时配置虚拟机(诸如虚拟机936)并且如何、何处并且何时将角色实例放置在其上的引导。
如上文所讨论的,虚拟机可以在数据中心的一个或多个节点内动态地建立和配置。如本文所图示的,节点932和节点934可以是任何形式的计算设备,诸如例如个人计算机、台式计算机、膝上型计算机、移动设备、消费者电子设备、(多个)服务器、图1的计算设备100等。在一个实例中,节点托管并且支持虚拟机的操作,同时托管被创造用于支持数据中心916的其他租户(诸如内部服务938和托管服务940)的其他虚拟机。通常,角色实例可以包括由不同的客户拥有的不同的服务应用的端点。
通常,节点中的每个节点包括,或者被链接到某种形式的计算单元(例如,中央处理单元、微处理器等),以支持在其上运行的(多个)部件的操作。如本文所使用的,短语“计算单元”通常指代具有处理能力和存储存储器的专用计算设备,其支持作为其上软件、应用和计算机程序的执行的基础的操作软件。在一个实例中,计算设备配置有有形硬件元件或机器,其被集成或被操作性地耦合到节点,以使得每个设备能够执行各种过程和操作。在另一实例中,计算单元可以涵盖处理器(未示出),其耦合到由节点中的每个节点容纳的计算机可读介质(例如,计算机存储介质和通信介质)。
驻留在节点上的角色实例支持服务应用的操作,并且可以经由应用编程接口(API)相互连接。在一个实例中,这些相互连接中的一个或多个可以经由网络云(诸如公共网络902)建立。网络云用于相互连接资源(诸如角色实例),这些资源可以跨各种物理主机(诸如节点932和934)分布式放置。另外,网络云促进连接在数据中心916中运行的服务应用的角色实例的通道上的通信。以示例的方式,网络云可以包括但不限于:一个或多个局域网(LAN)和/或广域网(WAN)。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中常见。因此,在本文中未进一步描述网络。
在本文中所图示和所描述的示例以及在本文中未特别描述但是在本公开的各方面的范围内的示例构成了用于从模板自动生成应用的示例性装置。例如,图1和图2所图示的元件(诸如当被编码以执行图4和图5所图示的操作时)构成用于接收对模板的选择的示例性装置、用于接收源数据的示例性装置、以及用于当从模板自动生成应用时确定源数据要被提取并且存储在所标识的位置的部分的示例性装置。
除非另有说明,否则本文中所图示的和描述的本公开的实施例中的操作的执行次序或操作顺序不是必须的。也就是说,除非另有说明,否则操作可以以任何次序执行,并且本公开的示例可以包括与本文中所公开的操作相比的附加的或更少的操作。例如,可以设想,在另一操作之前、同时或之后执行或进行具体操作在本公开的各方面的范围内。
当引入本公开或其示例的各方面的元素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在元件中的一个或多个元素。术语“包括”、“包含”和“具有”旨在是包容性的,并且意指除了所列出的元件之外可以存在附加元件。术语“示例性”旨在意指“示例”。短语“以下各项中的一项或多项:A,B和C”意指“至少一个A和/或至少一个B和/或至少一个C”。
已经详细描述了本公开的各方面,明显的是,在不背离本公开的各方面的范围的情况下,修改和变化是可能的。因为在不背离本公开的各方面的范围的情况下,在上述构造、产品和方法中可以进行各种改变,所以旨在将上述描述中所包含的、并且在附图中被展现的所有内容应被解释为说明性的而非限制性的。
虽然本公开容易受到各种修改和备选构造的影响,但是在附图中示出了其某些图示的示例,并且上文已经进行了详细描述。然而,应当理解,并不旨在将所公开的内容限制于所公开的特定形式,相反,旨在覆盖落入本公开的精神和范围内的所有修改、备选构造和等同物。

Claims (20)

1.一种用于在开发者环境中生成应用的方法,所述方法包括:
在用户接口上实现的设计表面处接收对模板的选择,所述模板包括数据方案;
接收用于所选择的所述模板的数据集;
基于所述数据方案,将所述数据集绑定到所选择的所述模板;
标识所述数据集的用于提取的至少一部分;
基于以下中的至少一项来推断用户意图:与所述开发者环境相关联的过去的用户交互或过去的用户选择、针对与所述数据集相对应的数据类型的数据存储位置匹配、或遥测数据;
基于所推断的所述用户意图来推断用于所述数据集的所标识的所述部分的位置;
提取所述数据集的所标识的所述部分;
将所提取的所述数据存储在所推断的所述位置处;以及
将在所推断的所述位置处的所提取的所述数据绑定到所述模板,使得对所述模板的访问提供对在所推断的所述位置处的所提取的所述数据的访问。
2.根据权利要求1所述的方法,其中标识所述数据集的用于提取的所述部分还包括:
标识来自所述数据集的一个或多个数据类型,所述一个或多个数据类型包括以下中的至少一个:本地数据、动态数据或者远程数据。
3.根据权利要求1所述的方法,其中标识所述数据集的用于提取的所述部分还包括:
基于与所述数据方案相关联的规则来标识动态数据的至少一部分。
4.根据权利要求1所述的方法,其中所述数据集的用于提取的所述部分至少部分地基于遥测数据而被标识。
5.根据权利要求1所述的方法,还包括:
接收用于所述数据集的所标识的所述部分的所推断的所述位置;
标识用于数据存储的一个或多个其他位置;
提供所推断的所述位置和所述一个或多个其他位置作为连接列表;
接收对用于所述数据集的所标识的所述部分的第一子集的第一位置的选择;
接收对用于所述数据集的所标识的所述部分的第二子集的第二位置的另一选择;以及
将所述第一子集存储在所述第一位置处,并且将所述第二子集存储在所述第二位置处。
6.根据权利要求1所述的方法,其中标识所述数据集的用于提取的所述部分还包括:
基于用户简档来标识一个或多个可用的数据存储位置;
提供所述一个或多个可用的数据存储位置作为连接列表;以及
接收从所述连接列表对位置的选择,所选择的所述位置被用作所推断的所述位置。
7.根据权利要求6所述的方法,其中提供所述一个或多个位置作为所述连接列表还包括:
至少部分地基于策略集来从所述一个或多个位置标识默认位置;以及
提供所述默认位置作为所述连接列表中的建议位置。
8.一种用于生成应用的系统,所述系统包括:
开发者环境,在处理器上实现,所述开发者环境被配置为:接收模板和源数据,所述模板包括数据方案;
数据绑定机构,耦合到所述开发者环境,所述数据绑定机构被配置为:基于所述数据方案和策略集将所述源数据绑定到所述模板;
数据存储位置机构,耦合到所述开发者环境,所述数据存储位置机构被配置为:标识一个或多个数据存储位置;以及
数据提取机构,耦合到所述开发者环境,所述数据提取机构被配置为:标识所述源数据的用于从所述模板提取的至少一部分,基于与所述开发者环境相对应的过去的用户交互、过去的用户选择或与遥测数据中的至少一个来推断用户意图,基于所推断的所述用户意图来推断所标识的所述一个或多个数据存储位置中的至少一个数据存储位置,用于所述源数据的所提取的所述部分的存储,以及将所述源数据的所提取的所述部分存储到所推断的所述至少一个数据存储位置,所述数据绑定机构将所述源数据存储在所推断的所述至少一个数据存储位置处的所提取的所述部分重新绑定到所述模板。
9.根据权利要求8所述的系统,其中所述数据存储位置机构向所述开发者环境提供所标识的所述一个或多个数据存储位置作为连接列表。
10.根据权利要求9所述的系统,其中所述数据存储位置机构从所标识的所述一个或多个数据存储位置标识默认存储位置,并且提供所述默认存储位置,作为所述连接列表中的建议存储位置。
11.根据权利要求8所述的系统,还包括:
包括多个模板的模板库,所述多个模板中的单个模板包括文档和数据方案。
12.根据权利要求8所述的系统,其中所述源数据包括以下中的至少一个:本地数据、动态数据和远程数据。
13.根据权利要求12所述的系统,其中所述数据提取机构将所述源数据的至少一部分标识为所述本地数据,并且在所述模板处维持所标识的所述本地数据的存储。
14.根据权利要求12所述的系统,其中所述数据提取机构将所述源数据的至少一部分标识为存储在远程位置处的所述远程数据,并且在所述远程位置处维持所述远程数据的存储。
15.根据权利要求12所述的系统,其中所述数据提取机构将所述源数据的至少一部分标识为所述动态数据,并且提取所述动态数据,以存储在共享的数据存储位置处。
16.一个或多个计算机存储介质,具有存储在其上、用于在开发者环境中生成应用的计算机可执行指令,所述计算机可执行指令在由计算机执行时,使得所述计算机执行包括以下的操作:
接收模板和源数据,所述模板包括数据方案和策略集;
至少部分地基于用户凭证,标识一个或多个数据存储位置;
至少部分地基于数据类型,标识所述源数据的用于提取的至少一部分;
基于以下中的至少一项来推断用户意图:历史用户交互、历史用户选择、针对数据类型的数据存储位置匹配或遥测数据;
基于所推断的所述用户意图,推断所标识的所述一个或多个数据存储位置中的至少一个数据存储位置,用于所标识的所述部分的存储;
提取所标识的所述部分;
在所推断的所述至少一个数据存储位置处存储所提取的所述部分;以及
将在所推断的所述至少一个数据存储位置处存储的所提取的所述部分绑定到所述模板。
17.根据权利要求16所述的一个或多个计算机存储介质,其中所述数据类型是以下中的至少一个:本地数据、动态数据和远程数据。
18.根据权利要求16所述的一个或多个计算机存储介质,其中所述源数据的用于提取的所述部分至少部分地基于所述策略集而被标识。
19.根据权利要求16所述的一个或多个计算机存储介质,其中所标识的所述一个或多个存储位置作为连接列表而被提供给所述开发者环境。
20.根据权利要求19所述的一个或多个计算机存储介质,其中所述开发者环境接收从所述连接列表对所标识的至少一个位置的选择作为用户选择,所标识的所述至少一个位置用于存储所述源数据的所提取的所述部分。
CN201680065043.5A 2015-11-09 2016-11-03 用于生成应用的方法、系统和计算机存储介质 Active CN108351765B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/936,045 US9891890B2 (en) 2015-11-09 2015-11-09 Generation of an application from template
US14/936,045 2015-11-09
PCT/US2016/060211 WO2017083156A1 (en) 2015-11-09 2016-11-03 Generation of an application from template

Publications (2)

Publication Number Publication Date
CN108351765A CN108351765A (zh) 2018-07-31
CN108351765B true CN108351765B (zh) 2021-05-28

Family

ID=57346071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680065043.5A Active CN108351765B (zh) 2015-11-09 2016-11-03 用于生成应用的方法、系统和计算机存储介质

Country Status (4)

Country Link
US (2) US9891890B2 (zh)
EP (1) EP3374856A1 (zh)
CN (1) CN108351765B (zh)
WO (1) WO2017083156A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170242559A1 (en) * 2016-02-18 2017-08-24 Salesforce.Com, Inc. Automation of application creation utilizing flexible frameworks
US9910663B1 (en) 2016-02-23 2018-03-06 Mackson Consulting, LLC Network-independent modular applications
US10338894B2 (en) * 2016-05-02 2019-07-02 Sap Se Generating applications based on data definition language (DDL) query view and application page template
US10042613B2 (en) * 2016-08-19 2018-08-07 International Business Machines Corporation System, method, and recording medium for validating computer documentation
US10326670B2 (en) * 2017-02-16 2019-06-18 Oracle International Corporation System and method for enterprise data distribution
US10691514B2 (en) 2017-05-08 2020-06-23 Datapipe, Inc. System and method for integration, testing, deployment, orchestration, and management of applications
US20180329806A1 (en) * 2017-05-12 2018-11-15 Intuit Inc. Developer experience for application programming interfaces with variability
US10275264B1 (en) * 2017-11-02 2019-04-30 Sap Se Configuration management of remote sources using activator fields
US10699065B2 (en) 2017-11-06 2020-06-30 Microsoft Technology Licensing, Llc Electronic document content classification and document type determination
EP3495968A1 (en) * 2017-12-11 2019-06-12 Tata Consultancy Services Limited Method and system for extraction of relevant sections from plurality of documents
EP3564812B1 (en) * 2018-04-30 2022-10-26 Mphasis Limited Method and system for automated creation of graphical user interfaces
CN109408043B (zh) * 2018-10-19 2021-10-22 中国银行股份有限公司 一种程序生成方法及装置
CN109614078B (zh) * 2018-11-21 2021-09-03 莱诺斯科技(北京)股份有限公司 一种原码帧提取遥测原码值的方法及装置
CN110750909B (zh) * 2019-10-25 2023-10-27 中国建设银行股份有限公司 一种基于模型构建平台的建模方法、装置、设备及介质
CN111008306A (zh) * 2019-12-05 2020-04-14 北京明略软件系统有限公司 一种数据集成方法及装置
US20220350447A1 (en) * 2021-04-28 2022-11-03 Microsoft Technology Licensing, Llc Editor for the creation and modification of data model metadata
US20230334237A1 (en) * 2022-04-14 2023-10-19 Sigma Computing, Inc. Workbook template sharing
CN115113859A (zh) * 2022-08-26 2022-09-27 平安银行股份有限公司 一种代码生成方法及装置
CN116821195A (zh) * 2023-05-31 2023-09-29 郑州富铭科技股份有限公司 一种基于数据库自动生成应用的方法
US11954460B1 (en) * 2023-08-20 2024-04-09 Robert G Baker Method and system for homoiconic low-code/no-code application development

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330006B1 (en) * 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6578000B1 (en) * 1999-09-03 2003-06-10 Cisco Technology, Inc. Browser-based arrangement for developing voice enabled web applications using extensible markup language documents
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US8302072B2 (en) * 2000-06-05 2012-10-30 National Instruments Corporation System and method for programmatically generating a graphical program based on a sequence of motion control, machine vision, and data acquisition (DAQ) operations
US7203900B2 (en) * 2001-09-14 2007-04-10 Canon Kabushiki Kaisha Apparatus and method for inserting blank document pages in a print layout application
US9565275B2 (en) 2012-02-09 2017-02-07 Rockwell Automation Technologies, Inc. Transformation of industrial data into useful cloud information
US7281245B2 (en) * 2002-06-05 2007-10-09 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
AU2003262702A1 (en) * 2002-08-23 2004-03-11 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US7017112B2 (en) * 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US7523395B1 (en) * 2003-05-30 2009-04-21 Oracle International Corporation Web application generator for spreadsheet calculators
US8135755B2 (en) * 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US8683318B1 (en) * 2004-07-14 2014-03-25 American Express Travel Related Services Company, Inc. Methods and apparatus for processing markup language documents
US7721195B2 (en) * 2004-08-24 2010-05-18 Oracle International Corporation RTF template and XSL/FO conversion: a new way to create computer reports
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7458021B2 (en) * 2004-12-23 2008-11-25 Microsoft Corporation System and method for author-driven template switching in the development and modification of web pages
GB0517357D0 (en) * 2005-08-25 2005-10-05 Corizon Ltd User interface generation
US8689137B2 (en) * 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US7475075B2 (en) * 2005-09-09 2009-01-06 Microsoft Corporation Integration rich client views in server presentations
US7831918B2 (en) * 2005-09-12 2010-11-09 Microsoft Corporation Content based user interface design
US7886222B2 (en) * 2006-02-09 2011-02-08 Sap Ag Converter-tool for a non-programmer user, to generate a web based application
US8838627B2 (en) 2006-05-30 2014-09-16 Sap Ag Systems and methods for providing template based output management
US7865481B2 (en) * 2006-06-29 2011-01-04 International Business Machines Corporation Changing documents to include changes made to schemas
WO2008045276A2 (en) * 2006-10-04 2008-04-17 Welch Allyn, Inc. Dynamic medical object information base
US9292306B2 (en) * 2007-11-09 2016-03-22 Avro Computing, Inc. System, multi-tier interface and methods for management of operational structured data
US7792644B2 (en) * 2007-11-13 2010-09-07 Battelle Energy Alliance, Llc Methods, computer readable media, and graphical user interfaces for analysis of frequency selective surfaces
US9110873B2 (en) * 2008-06-27 2015-08-18 Microsoft Technology Licensing, Llc Platform-independent data application description language
US20100077325A1 (en) * 2008-09-24 2010-03-25 Maya Barnea In Situ Editing of GUI Features
US20100162142A1 (en) * 2008-12-22 2010-06-24 Lockheed Martin Corporation Common style sheets for compiled and scripting language applications
US20100211862A1 (en) * 2009-02-18 2010-08-19 Microsoft Corporation Facilitating spreadsheet and database views on common data store
US8560941B2 (en) * 2009-04-08 2013-10-15 Microsoft Corporation Schema based user interface mechanisms
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US20110055744A1 (en) * 2009-08-28 2011-03-03 Ryan Christopher N Visual Linking of Elements to Model Attributes
KR20110028053A (ko) * 2009-09-11 2011-03-17 삼성전자주식회사 위젯 제공 방법 및 이를 적용한 디스플레이 장치
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US8542411B2 (en) * 2010-03-24 2013-09-24 Seiko Epson Corporation Creating and processing a mark-able document
US8751925B1 (en) * 2010-04-05 2014-06-10 Facebook, Inc. Phased generation and delivery of structured documents
US20110270711A1 (en) 2010-04-28 2011-11-03 Sap Ag Managing application interactions with enterprise systems
US9459846B2 (en) * 2011-01-31 2016-10-04 Sap Se User interface style guide compliance
US9020830B2 (en) 2011-03-08 2015-04-28 Apptio, Inc. Hierarchy based dependent object relationships
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US20120278701A1 (en) * 2011-04-28 2012-11-01 International Business Machines Corporation Automatically Generating And Porting A Cascading Style Sheets ('CSS') Style Sheet
US20140053126A1 (en) 2012-02-13 2014-02-20 Mark A. Watson Integrated mobile application development platform
US8997038B2 (en) * 2012-03-30 2015-03-31 Anypresence, Inc. Systems and methods for building and deploying mobile applications
US20140026041A1 (en) * 2012-07-17 2014-01-23 Microsoft Corporation Interacting with a document as an application
US9378026B2 (en) * 2012-07-27 2016-06-28 Daniel A. Dooley Customizable application
US20140047413A1 (en) 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
US20140108971A1 (en) * 2012-08-31 2014-04-17 Salesforce.Com.Inc. Application builder
US9286032B2 (en) * 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
US20140380139A1 (en) * 2013-06-21 2014-12-25 Microsoft Corporation Embedded experience through bidirectional integration of crm applications and spreadsheet applications
US9026897B2 (en) * 2013-07-12 2015-05-05 Logic9S, Llc Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system
CN103414749B (zh) * 2013-07-15 2016-12-28 四川公用信息产业有限责任公司 Web可视化编辑iOS的客户端应用的方法
US9880712B2 (en) * 2013-09-06 2018-01-30 Microsoft Technology Licensing, Llc In-application customization
US11966554B2 (en) * 2013-09-16 2024-04-23 Field Squared, Inc. User interface defined document
KR20150054496A (ko) 2013-11-12 2015-05-20 삼성전자주식회사 클라우드 서비스 제공서버, 개발자 단말장치 및 이를 이용한 어플리케이션 개발 지원 방법
US9729615B2 (en) 2013-11-18 2017-08-08 Nuwafin Holdings Ltd System and method for collaborative designing, development, deployment, execution, monitoring and maintenance of enterprise applications
US9348561B2 (en) * 2014-05-21 2016-05-24 InvestCloud, Inc Tabular format transaction editor
CN104063764B (zh) * 2014-07-01 2015-08-19 成都市卓睿科技有限公司 可视化生成项目代码的装置及方法
US20160188302A1 (en) * 2014-12-30 2016-06-30 Randy Fredrick Automatic generation of metadata-based cross-platform mobile applications

Also Published As

Publication number Publication date
US10481875B2 (en) 2019-11-19
US20180181376A1 (en) 2018-06-28
EP3374856A1 (en) 2018-09-19
WO2017083156A1 (en) 2017-05-18
CN108351765A (zh) 2018-07-31
US9891890B2 (en) 2018-02-13
US20170131974A1 (en) 2017-05-11

Similar Documents

Publication Publication Date Title
CN108351765B (zh) 用于生成应用的方法、系统和计算机存储介质
CN108292231B (zh) 从数据生成应用的方法和系统
US8918448B2 (en) Application component decomposition and deployment
US9600342B2 (en) Managing parallel processes for application-level partitions
US20160313882A1 (en) Support for non-native file types in web application environment
US11120212B2 (en) Creating and modifying applications from a mobile device
CN110832458B (zh) 个性化机器学习模型的隐身模式
CN108287708B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
EP3158440A1 (en) Tenant provisioning for testing a production multi-tenant service
US10467032B2 (en) Dynamic cloud image updates based on subjective customization and user input
US20180285426A1 (en) Systems and methods for package component visualizations
US20150242389A1 (en) Techniques to identify user interface elements associated with model violation events
WO2021033048A1 (en) Artificial intelligence enabled function logic infusion
CN111435348A (zh) 创建用于数据分析功能的运行时可执行程序的方法
US10795540B2 (en) Visualizing migration of a resource of a distributed computing environment
US20220303351A1 (en) ENHANCED PROCESSING OF USER PROFILES USING DATA STRUCTURES SPECIALIZED FOR GRAPHICAL PROCESSING UNITS (GPUs)
US11445040B2 (en) Platform for migration planning of network infrastructures
US20230138668A1 (en) Dynamic identification of cloud storage destination for multi-user files
JP2023544192A (ja) ファンクション実行のためのコンピューティング・リソースのタグ・ドリブン・スケジューリング
US9706013B2 (en) Mobile runtime conditional sections for surveys
KR102624212B1 (ko) 알림 최적화를 위한 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
CN115935380A (zh) 用于容器中的数据的自动加密系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant