CN108351766B - 从移动设备创建和修改应用 - Google Patents

从移动设备创建和修改应用 Download PDF

Info

Publication number
CN108351766B
CN108351766B CN201680064885.9A CN201680064885A CN108351766B CN 108351766 B CN108351766 B CN 108351766B CN 201680064885 A CN201680064885 A CN 201680064885A CN 108351766 B CN108351766 B CN 108351766B
Authority
CN
China
Prior art keywords
application
data
modification
type
received
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
CN201680064885.9A
Other languages
English (en)
Other versions
CN108351766A (zh
Inventor
B·巴拉萨布拉曼兰
E·科恩
O·科尔
I·库里尼特
S·桑格尔
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 CN108351766A publication Critical patent/CN108351766A/zh
Application granted granted Critical
Publication of CN108351766B publication Critical patent/CN108351766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本公开的示例提供用于从移动设备修改应用。在移动设备处接收用以修改包括一个或多个文档的应用的指令。在移动设备处确定所接收的指令是否与第一类型的修改和/或第二类型的修改相关联。响应于确定所接收的指令与第一类型的修改相关联,在移动设备处修改存储在移动设备处的文档的本地实例。响应于确定所接收的指令与第二类型的修改相关联,在服务器设备处修改存储在服务器设备处的文档的远程实例。本公开的各方面使得移动设备能够策略性地修改应用以支持管理本地资源。

Description

从移动设备创建和修改应用
背景技术
创建可执行计算机程序通常需要广泛的专业知识。例如,创建可执行计算机程序通常涉及生成算法、验证算法的正确性以及将算法实现为编程语言。开发者可以添加代码以在运行时提供应用数据访问。这通常需要开发者具有编写在运行时影响应用数据访问的代码的能力。另外,开发者通常对应用的储存位置的控制有限,储存位置时常由开发者环境指定。与台式计算机相比,移动设备(例如,移动电话、智能电话、平板手机、平板电脑)通常具有更少的本地资源(例如,更慢的处理速度、更少的存储器、更小的屏幕大小)。使用传统的移动设备来创建和/或修改可执行计算机程序可能是单调乏味和/或耗费时间的。然而,由于移动设备的相对便利性和/或增加的连接性,至少一些用户越来越多地使用移动设备。
发明内容
本公开的示例提供了用于从移动设备修改应用的系统和方法。在一些示例中,文档被呈现在移动设备处。文档可以被包括在应用中。在移动设备处接收用以修改应用的指令,并且在移动设备处确定所接收的指令是否与第一类型的修改和/或第二类型的修改相关联。响应于确定所接收的指令与第一类型的修改相关联,在移动设备处修改存储在移动设备处的文档的本地实例。响应于确定所接收的指令与第二类型的修改相关联,在服务器设备处修改存储在服务器设备处的文档的远程实例。
提供本发明内容用于以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。
附图说明
图1是包括耦合到云系统的移动客户端的示例环境的框图。
图2是在其中可以生成和/或修改应用的示例环境的框图。
图3是示例数据集的关系图。
图4是在其中可以生成和/或修改应用的示例环境的框图。
图5和图6是用于修改应用的示例方法的流程图。
图7是可以被用来修改应用的示例计算设备的框图。
对应的附图标记在整个附图中指示对应的部分。
具体实施方式
本文所描述的主题概括地涉及文档修改,并且更具体地涉及从移动设备修改包括一个或多个文档的应用。如本文所述,移动设备可以是指任何移动计算设备,包括但不限于移动电话、智能电话、平板手机、平板电脑、便携式媒体播放器或上网本。例如,移动设备可以包括任何包含便携式电源(例如电池)的计算设备。在一些示例中,在管理与移动设备相关联的资源的同时执行或实现一个或多个操作。可以在移动设备处实现至少一些操作,而可以在可通信地耦合到移动设备的服务器设备处实现其他操作。例如,移动设备可以确定用以修改文档的指令是否与第一类型的修改和/或第二类型的修改相关联。如果指令与第一类型的修改相关联,则存储在移动设备处的文档的实例被修改。另一方面,如果指令与第二种类型的修改相关联,则存储在服务器设备处的文档的实例被修改。
本文所描述的示例确定是否本地或远程地实现至少一些操作以支持管理本地资源。例如,本文所描述的示例可以基于指令是否与第一类型的修改和/或第二类型的修改相关联,来实现一个或多个操作。可以使用包括计算软件、固件、硬件或其组合或子集的计算机编程或工程技术来实现本文所描述的示例。本公开的各方面使得文档、应用和/或包能够以高效和有效的方式而被生成和/或修改进而提高性能。例如,可以在移动设备处本地地实现与第一类型的修改相关联的第一用户指令。另一方面,可以在服务器设备处远程地实现与第二类型的修改相关联的第二用户指令。在这样的示例中,可以在移动设备和/或服务器设备处策略性地实施改变或操纵,以支持管理计算、处理、存储器和/或时间资源。
本文所描述的示例管理与生成和/或修改包、应用和/或文档相关联的一个或多个操作或计算。通过以本公开中所描述的方式生成和/或修改包、应用和/或文档,一些示例通过策略性地管理计算、处理、存储器和/或时间资源来减少处理负载和/或提高处理速度。管理过程的净效应(net effect)改善了移动设备和/或服务器设备在托管包、应用和/或文档方面的性能。另外,一些示例可以通过简化至少一些操作来节省存储器、减少网络带宽使用、改善操作系统资源分配和/或改善计算设备之间的通信、通过将至少一些操作自动化来改善经由用户界面交互的用户效率和/或用户交互性能和/或减少错误率。
此外,本公开的各方面提供了一种开发者环境,使得任何用户——不管其开发经验如何或缺乏开发经验——都可以利用该开发者环境来创建和/或修改包、应用和/或文档。一般工作场所计算技能可以被移动设备翻译成计算编码或程序开发技能。由于应用是根据模板和源数据而被自动生成和/或修改,所以它们进一步提高了开发者或用户在开发和/或修改应用方面的效率。此外,以这样一种方式将开发环境翻译为用于非开发者用户,以便为任何用户提供应用开发,提高了对于用户的开发应用的速度。
例如,可以接收模板,该模板包括用于该模板的数据模式(schema)和数据集合。可以基于数据模式将数据集合绑定到模板(例如,可以填充模板)。除了将开发者能力带给非开发者以用于生成和/或修改包、应用和/或文档之外,还可以生成和/或修改包、应用和/或文档而不必编写代码,从而提供增加的用户界面功能性。
图1是包括云系统110和耦合到云系统110的移动设备或移动客户端120的示例环境100的框图。移动客户端120例如可以与云系统110通信以生成和/或修改一个或多个应用或“app”130(例如,web应用、移动应用、逻辑应用、应用编程接口(API)应用)。在一些示例中,环境100包括一个或多个云系统110,并且移动客户端120可以经由一个或多个网络140而被耦合到一个或多个云系统110。示例网络140包括个域网、局域网、广域网、蜂窝或移动网络以及因特网。可替代地,网络140可以是使得云系统110能够与移动客户端120和/或与另一云系统110通信的任何通信介质。
云系统110被配置为执行一个或多个操作。例如,云系统110可以包括和/或可以访问通信服务器150、认证服务器160和/或应用服务器170。在一些示例中,通信服务器150被配置为控制在一个或多个计算设备(例如,云系统110、通信服务器150、认证服务器160、应用服务器170)与移动客户端120之间的通信(例如,数据流)。可以使用任何有线或无线连接上的任何协议或机制来进行一个或多个计算设备与移动客户端120之间的通信。例如,一个或多个计算设备可以经由网络140来与移动客户端120进行通信。
移动客户端120可以(例如,经由通信服务器150)发起对云系统110的请求以生成、修改和/或访问托管在云系统110上和/或由云系统110托管的一个或多个应用130。例如,移动客户端120可以访问与云系统110相关联的数据以执行一个或多个操作。在一些示例中,认证服务器160被配置为管理、存储和/或访问已注册登录信息180(例如,标识、密码),并且基于已注册登录信息180确定移动客户端120或与移动客户端120相关联的用户190是否被授权访问与云系统110相关联的数据。例如,已注册登录信息180可以与被授权访问与云系统110相关联的数据的已注册移动客户端和/或已注册用户相关联(例如,白名单)。另外地或可替代地,已注册登录信息180可以与未被授权访问与云系统110相关联的数据的已注册移动客户端和/或已注册用户相关联(例如,黑名单)。
认证服务器160可以(例如,经由通信服务器150)从移动客户端120接收用户输入(例如,标识、密码),并将所接收的用户输入与已注册登录信息180进行比较,以确定移动设备客户端120或用户190是否被授权访问与云系统110相关联的数据。例如,在确定所接收的用户输入匹配或对应于与白名单相关联的已注册登录信息180时,认证服务器160确定移动客户端120被授权访问与云系统110相关联的数据,并且选择性地允许移动客户端120访问与云系统110相关联的数据。另一方面,一旦确定所接收的用户输入匹配或对应于与黑名单相关联的已注册登录信息180、或者不匹配或不对应于已注册登录信息180,则认证服务器160确定移动客户端120未被授权访问与云系统110相关联的数据,并且选择性地限制移动客户端120访问与云系统110相关联的数据。
认证服务器160可以(例如,经由通信服务器150)向移动客户端120传输安全令牌(例如,单点登录(SSO)令牌、缩减登录(RSO)令牌)。安全令牌被配置为允许移动客户端120访问与一个或多个计算设备(例如,云系统110、通信服务器150、认证服务器160、应用服务器170)相关联的数据而无需针对每个计算设备提供用户输入。在一些示例中,移动客户端120和/或用户190可以被授权基于与移动客户端120和/或用户190相关联的角色(例如,管理员、创作者、用户、作者、读者、父母、孩子)来访问(或限制访问)一个或多个计算设备和/或执行一个或多个操作。
在一些示例中,应用服务器170被配置为管理和/或存储一个或多个应用130,并且(例如,经由通信服务器150)与移动客户端120通信以允许用户190使用移动客户端120来生成、修改和/或访问一个或多个应用130。应用130可以被配置为执行一个或多个操作,并且可以包括计算软件、固件、硬件或其组合或子集的任何组合。例如,应用130可以被配置为在显示器上呈现一个图像或一系列图像(例如,视频)、播放音频和/或发送服务调用以访问与另一计算设备(例如,云系统110)相关联的数据。
应用130在由处理器执行时进行操作以执行功能性。应用130可以与诸如经由网络140可访问的web服务之类的其他应用或服务通信。例如,应用130可以表示已下载的客户端应用,其与在云系统110处执行的服务器侧服务相对应。在一些示例中,应用130可以被配置为在运行时期间与云系统110通信,或者可以在客户端侧服务和云服务之间共享和/或聚合数据。
图2是在其中可以生成和/或修改(在图1中示出的)一个或多个应用130的示例环境200的框图。在一些示例中,环境200包括一个或多个云系统110。示例云系统110包括被配置为管理和/或存储数据215的数据源210、被配置为生成和/或修改一个或多个文档225的文档服务器220(例如,应用服务器170)、和/或被配置为管理和/或存储一个或多个文档225的文档库230。云系统110可以包括使得云系统110能够如本文所述那样起作用的组件的任何组合。
应用130包括基于数据215生成和/或修改的一个或多个文档225。数据215可以与数据模式相关联。例如,数据215可以被格式化为电子表格(spreadsheet)数据,并且被布置在一行或多行以及一列或多列中。数据215可以包括用户数据、远程数据、共享数据、企业数据、公共数据、动态数据、本地数据或任何其他可访问数据中的一个或多个。
文档服务器220可以包括:例如,模板库240被配置为托管一个或多个模板245;打包器(packager)组件250,被配置为生成包括一个或多个文档225的包(例如,应用130);和/或发布器(publisher)组件260,被配置为发布一个或多个包或应用130。例如,可以通过提取数据215和用数据215填充模板245来生成应用130。另外地或可替代地,可以通过将数据填充的模板245传输到文档库230来发布应用130。
模板库240被配置为管理和/或存储一个或多个模板245和/或与模板245相关联的元数据。可以在应用设计中选择或使用模板245。示例模板245可以包括用于但不限于资产管理应用、目录应用、合同应用、客户关系管理(CRM)应用、仪表板和报告应用、事件和日历应用、时间表应用、费用跟踪和/或报告应用、媒体应用、多媒体应用、个人管理应用、旅行应用、项目管理应用等等的应用模板。
各种模板245可以提供不同的视觉布局选项或不同的数据显露组件。在一些示例中,每个模板245可以与相应的模板模式相关联。例如,模板245可以包括可以与数据215的预定配置(例如,类型、大小)相关联的一个或多个模板字段。可以根据模板模式将数据215映射到模板245。在一些示例中,模板库240可以具有可以经由用户交互来定制的模板245的一个或多个表示。模板245可以与唯一地标识模板245的标识符(例如,模板ID)相关联。
打包器组件250被配置为生成包括一个或多个文档225的包(例如,应用130)。例如,打包器组件250可以从数据源210检索或接收数据215、从模板库240检索或接收模板245、并用数据215填充模板245以生成包的至少一部分。在至少一些示例中,打包器组件250更新与数据源210相关联的连接串。
打包器组件250可以将包传输到发布器组件260,发布器组件260被配置为生成已编译版本的包。发布器组件260被配置为与文档库230通信,使得与该包相关联的文档225可用于由移动客户端120(例如,经由下载)进行检索。在至少一些示例中,文档表示可以被编译成可以由移动客户端120处理的已编译脚本表示。一旦已编译应用130被传输到移动客户端120,移动客户端120可以对应用主机容器组件进行初始化以托管应用130。应用130可以在移动客户端120内部运行,用户能够在移动客户端120上与应用130交互。
例如,第一用户270可以操作或使用第一移动客户端275(例如,移动客户端120)来访问一个或多个云系统110。例如,第一移动客户端275可以检索应用130,并且将包括在应用130中的文档225呈现给第一用户270。在至少一些示例中,第一移动客户端275可以被用来生成一个或多个文档225。例如,第一移动客户端275可以经由网络140来与数据源210、文档服务器220和/或文档库230通信。在一些示例中,第一移动客户端275可以从数据源210检索数据215、从文档服务器220检索模板245、和/或用数据215填充文档模板245以生成文档225。第一移动客户端275可以将生成的文档225传输到文档库230,使得生成的文档225可由另一个计算设备(例如,移动客户端120)(例如,经由下载)用于进行检索。
在一些示例中,文档服务器220和/或文档库230可以包括或被耦合到认证服务器160,认证服务器160确定移动客户端或与移动客户端相关联的用户是否被授权检索文档225。另外地或可替代地,认证服务器160可以被用来确定授予移动客户端和/或用户的授权级别(例如,角色)。例如,第一用户270和/或第一移动客户端275可以与被授权生成和/或修改文档225的创作者角色(例如,具有编辑权限的角色)相关联。另一方面,第二用户280和/或第二移动客户端285可以与被授权访问和/或查看文档225但不生成和/或修改文档225的读者角色(例如,具有读取权限的角色)相关联。
在一些示例中,第一移动客户端275可以允许第一用户270选择从中检索数据215的数据源210,使得可以生成和/或修改文档225。在至少一些示例中,数据源210可以包括或被耦合到认证服务器160,认证服务器160确定第一移动客户端275或第一用户270是否被授权访问数据215。为了识别从中可检索数据215的一个或多个数据源210,第一移动客户端275可以生成服务请求以获得一个或多个可用连接(例如,数据源210)。另外地或可替代地,第一移动客户端275可以生成服务请求以获得期望的连接。在一些示例中,第一移动客户端275被配置为从数据源210检索或接收连接串和/或元数据。
在将第一移动客户端275与数据源210耦合之后,第一移动客户端275可以被用来访问和/或导航在数据源210处管理和/或存储的期望资源(例如,文件、列表)。如图3中所示,数据源210可以管理和/或存储一个或多个资源,诸如数据集310。数据集310可以具有使数据集310能够如本文所述那样起作用的任何模式。例如,数据集310可以包括布置在一个或多个分层级别中的一个或多个元素。在一些示例中,第一移动客户端275被配置为通过在包括一个或多个数据集310的数据集级别315、包括一个或多个表格325的表格级别320、和/或包括一个或多个项目335的项目级别330处和/或在数据集级别315、表格级别320和/或项目级别330上导航和/或遍历数据集310来检索数据。
返回去参考图2,第一移动客户端275包括模板匹配器组件290,其被配置为分析数据215,并至少基于数据215来识别模板245。可替代地,模板匹配器组件290可以在云中可用(例如,作为独立的云系统110或者被包括在另一个云系统110中)。
在一些示例中,模板匹配器组件290被配置为周期性地与模板库240同步,以接收或检索一个或多个模板245和/或与模板245相关联的元数据。模板匹配器组件290可以识别与数据215相关联的数据模式、识别与模板245相关联的模板模式、和/或将数据模式与模板模式进行比较以自动识别模板245。例如,模板匹配器组件290可以识别设备形状因子和表格元数据,并且识别包括一个或多个模板字段的模板245,该模板字段被配置为根据设备形态因子呈现至少一些数据215。在一些示例中,第一移动客户端275可以向用户270呈现一个或多个模板245,用户270可以选择模板245来代替由模板匹配器组件290自动识别的模板245而被使用。
在一些示例中,模板匹配器组件290被配置为识别与已识别模板245相关联的标识符(例如,模板ID)、生成数据215与已识别模板245的模板字段之间的映射、和/或将与数据源210相关联的标识符、映射和/或连接串传输到文档服务器220,或者更具体而言,传输到打包器组件250。在至少一些示例中,打包器组件250可以从模板库240检索或接收与接收到的标识符(例如,模板ID)相对应的模板245,并且根据映射来填充模板245。例如,文档服务器220可以包括屏幕布局生成器,其被配置为基于与模板245相关联的布局和/或与数据源210相关联的数据215来生成一个或多个屏幕。
第一移动客户端275包括允许第一用户270修改和/或编辑包的设计器组件295。在一些示例中,设计器组件295向用户(例如,第一用户270)呈现交互式画布或交互式设计表面。设计器组件295例如可以接收用户指令以修改文档225。在一些示例中,文档服务器220被配置为托管与在第一移动客户端275上运行的应用130相关联的文档225。例如,一个或多个文档225可以被编译成由第一移动客户端275处理的一个或多个文档表示。这使得协作成为可能,因为一个或多个移动客户端120可以访问托管在文档服务器220处的文档表示,并且从移动客户端120对应用130进行一个或多个修改。在至少一些示例中,文档服务器220可以针对已经在第一移动客户端275上本地处理的改变而保持文档的状态。
图4是在其中可以本地地和/或远程地修改(在图1中示出的)一个或多个应用130的示例环境400的框图。文档服务器220可以支持在文档225上的许多操作,并将操作暴露给以文档形式表示文档225的一个或多个移动客户端120(例如,第一移动客户端275)。应用130的远程实例410可以被编译成可以由移动客户端120处理的一个或多个脚本表示。远程实例410可以是例如与托管在文档服务器220处的包(例如,应用130)相关联的一个或多个文档225。
在一些示例中,移动客户端120可以初始化主机容器组件420以托管应用130的本地实例430。以这种方式,应用130可以在移动客户端120内部运行,用户能够在移动客户端120上与应用130交互。本地实例430例如可以是与托管在移动客户端120处的包(例如,应用130)相关联的一个或多个文档225。当用户(经由移动客户端120)与应用130交互时,至少一些交互可以是移动客户端120本地的或自包含在移动客户端120上的。也就是说,交互可以影响应用130的本地实例430。例如,本地更新是对应用130的本地实例430的修改。相反,交互可以影响应用130的远程实例410。例如,远程更新是对应用130的远程实例410的修改。对于远程更新,移动客户端120可以与云系统110(例如,文档服务器220)通信以修改和/或更新应用130的远程实例410。
文档服务器220被配置为修改和/或更新文档表示。例如,通过利用本地编译的规则并生成请求文档服务器220更新文档表示的一个或多个调用,可以在移动客户端120上记录、分析和/或处理本地修改。远程修改可以包括利用与文档服务器220相关联的应用编程接口(API)并且生成请求文档服务器220修改和/或编辑该包的调用,诸如将一个或多个设计改变传输到文档服务器220。在一些示例中,移动客户端120被配置为确定用以修改和/或更新应用130的用户指令是否与第一类型的修改(例如,本地修改)和/或第二类型的修改(例如,远程修改)相关联。
本地操作的示例是主题切换或主题改变。主题切换通过移动客户端120上的应用代码(例如,本地实例430)的本地更新来实现。移动客户端120可以记录用户动作并使用本地编译规则来生成脚本,应用130执行该脚本以产生结果。在至少一些示例中,移动客户端120可以向文档服务器220发出更新请求440,使得可以以异步的非阻塞的方式更新服务器表示(例如,远程实例410)。对服务器表示的更新使得监听文档225的其他移动客户端120能够获得在移动客户端120上进行的一个或多个更新。
远程操作的示例包括切换布局和/或模板布局改变。例如,为了切换布局,移动客户端120接收用户选择,并且移动客户端120基于用户选择生成调用450。例如,可以将调用450传输到文件服务器220,以移除当前布局并应用新布局。在实现调用450时,维持应用130的状态的文档服务器220生成调用,该调用更新在文档服务器220处的应用130的文档表示(例如,远程实例410)。
在一些示例中,文档服务器220包括屏幕布局生成器组件460,该屏幕布局生成器组件460被配置为基于与模板245相关联的布局和/或与数据源210相关联的数据215来生成一个或多个屏幕。可以由增量编译器组件470在文档服务器220处增量地编译对文档225的远程更新,并且增量编译器组件470可以监视对包的改变(例如,增量值480)。例如,增量值480可以包括修改之前的包和修改之后的包之间的一个或多个差异。可以将增量值480传输到移动客户端120。在一些示例中,返回到移动客户端120的响应经过发布器组件250。
通过移动客户端120发送应用文件的本地状态的一个或多个服务器哈希来启用文档225的增量编译和/或增量值480的确定。例如,当生成应用130时,文档服务器220可以将新创建的包传输给移动客户端120。对于后续的远程更新,移动客户端120可以向文件服务器220发送与应用文件的本地状态相关联的哈希列表,并且文档服务器220可以生成与并入了由移动客户端120请求的改变的一个或多个文档225相关联的增量包。在一些示例中,哈希列表可以被用来确定对包的一个或多个改变(例如,增量值480),并且文档服务器220可以将增量值480传输到移动客户端120,移动客户端120可以实时更新预览版本的应用130。
图5是包括使用移动客户端120(例如,第一移动客户端275)来修改应用130的多个操作的示例方法500的流程图。图5中呈现的示例操作例如可以由图1、图2或图4中描述的一个或多个组件来执行。
在510处,在移动客户端120处呈现文档225。包(例如,应用130)可以包括文档225。在520处接收用以修改应用130的指令。例如,用户(例如,第一用户270)可以在移动客户端120处输入指令。在530处,确定所接收的指令是否与第一类型的修改(例如,本地修改)和/或第二类型的修改(例如,远程修改)相关联。响应于确定所接收的指令与第一类型的修改相关联,在540处,存储在移动客户端120处的文档225的本地实例430被修改。另外地或可替代地,响应于确定所接收的指令与第二类型的修改相关联,在550处,存储在云系统110(例如,文档服务器220)处的文档225的远程实例410被修改。
图6是方法500的详细流程图。图6中呈现的示例操作例如可以由图1、图2或图4中描述的一个或多个组件来执行。
在一些示例中,在610处识别数据215,并且在620处识别模板245。例如,用户(例如,第一用户270)可以选择数据源210和/或其数据215,其由移动客户端120分析,并且模板245可以基于分析的数据215而被识别。例如,可以从打开文件的用户那里接收数据215的选择。在至少一些示例中,可以从一个或多个数据源210中选择数据215。可替代地,用户可以选择由移动客户端120分析的模板245,并且数据源210和/或其数据215可以基于模板245而被识别。用户可以例如从模板库240中选择模板245。
在630处,基于所识别的数据和所识别的模板来生成调用以生成应用,并且将调用传输到云系统110(例如,文档服务器220)。响应于接收到该调用,文档服务器220生成包(例如,应用130)。在至少一些示例中,可以基于布局模式和/或数据模式而将数据215绑定到模板245。例如,该模式可以将数据215映射到所选模板245的模板字段。文档服务器220将生成的包传输到移动客户端120,并且在640处从文档服务器220接收一个或多个文档225。
在510处,在移动客户端120处呈现文档225。在520处接收用以修改应用130的指令,并且移动客户端120确定所接收的指令是否与第一类型的修改(例如,本地修改)和/或第二类型的修改(例如,远程修改)相关联。与主题改变相关联的指令例如可以被确定为与第一类型的修改相关联。在至少一些示例中,移动客户端120可以确定所接收的指令与主题改变相关联,并且基于该确定,将所接收的指令与第一类型的修改相关联。另一方面,与模板布局改变相关联的指令可以被确定为与第二类型的修改相关联。在至少一些示例中,移动客户端120可以确定所接收的指令与模板布局改变相关联,并且基于该确定,将所接收的指令与第二类型的修改相关联。与数据改变相关联的指令例如可以被确定为与第一类型的修改和/或第二类型的修改相关联。例如,用户可能期望在本地更新至少一些数据215而不修改远程实例410。
在一些示例中,与本地修改相关联的请求可以被传输到文档服务器220以修改文档225的表示,使得访问数据215的用户将访问数据215的已修改表示,而访问数据215的另一用户将访问数据215的未修改表示(例如,没有本地修改的数据215)。可替代地,用户可能期望全局地(例如,本地和远程地)更新至少一些数据215,使得访问数据215的另一用户将访问数据215的已修改表示。
在一些示例中,移动客户端120可以确定所接收的指令是否与数据模式改变相关联。例如,用户可能期望修改与数据集310相关联的数据模式。响应于确定所接收的指令与数据模式改变相关联,移动客户端120可以改变数据模式并且将改变的数据模式匹配到一个模板布局。可替代地,移动客户端120可以生成对文档服务器220的调用以改变数据模式,并将改变的数据模式匹配到模板布局。类似地,在一些示例中,移动客户端120可以确定所接收的指令是否与模板布局改变相关联。例如,用户可能期望修改与模板245相关联的模板布局。响应于确定所接收的指令与模板布局改变相关联,移动客户端120可以改变模板布局,并且将改变的模板布局匹配到一个数据模式。可替代地,移动客户端120可以生成对文档服务器220的调用,以改变模板布局并且将改变的模板布局匹配到数据模式。
响应于确定所接收的指令与第一类型的修改相关联,在540处,修改存储在移动客户端120处的文档225的本地实例430。另外地或可替代地,响应于确定所接收的指令与第二类型的修改相关联,存储在云系统110(例如,文档服务器220)处的文档225的远程实例410被修改。例如,可以在650处生成对修改文档225的远程实例410的调用,并且可以将该调用传输到文档服务器220以修改文档225的远程实例410。
图7是可以被用来在(图1中示出的)环境100中生成可延迟数据流的示例操作环境700的框图。操作环境700仅是计算和联网环境的一个示例,并不旨在对本公开的使用范围或功能性提出任何限制。操作环境700不应被解释为具有与示例操作环境700中所图示出的组件中的任何一个或组合相关的任何依赖性或要求。
本公开可与许多其他计算和联网环境或配置一起操作。虽然本文参照作为或包括(在图1、图2和图4中示出的)移动客户端120的操作环境700来图示和描述了本公开的一些示例,但是本公开的各方面可与任何计算系统或设备(例如,云系统110、通信服务器150、认证服务器160、应用服务器170、数据源210、文档服务器220、文档库230、模板库240、打包器组件250、发布器组件260、第一移动客户端275、第二移动客户端285、主机容器组件420、屏幕布局生成器组件460、增量编译器组件470)一起操作,所述计算系统或设备执行指令以实现与操作环境700相关联的操作和功能性。
例如,操作环境700可以包括移动设备、移动电话、平板手机、平板电脑、便携式媒体播放器、上网本、膝上型电脑、台式计算机、个人计算机、服务器计算机、计算台、信息亭、桌面设备、工业控制设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络计算机、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。操作环境700可以表示一组处理单元或其他计算设备。另外,本文所描述的任何计算设备可以被配置为执行本文所描述的任何操作,包括由另一个计算设备执行的本文所描述的一个或多个操作。
参考图7,用于实现本公开的各个方面的示例系统可以包括计算机710形式的通用计算设备。计算机710的组件可以包括但不限于处理单元720、系统存储器725以及将包括系统存储器725在内的各种系统组件耦合到处理单元720的系统总线730。系统总线730可以是使用各种总线架构的任何一种的若干类型的总线架构中的任何一种,包括存储器总线或存储器控制器、外围总线和本地总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线和也称为夹层总线的外围组件互连(PCI)总线。
系统存储器725包括与处理单元720相关联或可由处理单元720访问的任何数量的介质。例如,系统存储器725可以包括易失性和/或非易失性存储器形式的计算机储存介质,诸如只读存储器(ROM)731和随机存取存储器(RAM)732。ROM 731可以存储支持在诸如启动期间在计算机710内的元件之间传送信息的基本输入/输出系统733(BIOS)。RAM 732可以包含处理单元720可立即访问的和/或在其上当前正在操作的数据和/或程序模块。例如,系统存储器725可以存储计算机可执行指令、通信数据、认证数据、文档数据和其他数据。
处理单元720可以被编程为执行用于实现本公开的各方面的计算机可执行指令,诸如附图(例如,图5和图6)中所图示的那些。作为示例而非限制,图7图示出了操作系统734、文档程序735、其他程序模块736和程序数据737。处理单元720包括任何数量的处理单元,并且指令可以由处理单元720或由操作环境700内的多个处理器执行或由操作环境700外部的处理器执行。
系统存储器725可以包括例如模板匹配器组件290和/或设计器组件295。另外地或可替代地,系统存储器725可以包括打包器组件250、发布器组件260、主机容器组件420、屏幕布局生成器组件460和/或增量编译器组件470。在编程或执行这些组件之后,操作环境700和/或处理单元720被转换成专用微处理器或机器。例如,模板匹配器组件290在由处理单元720执行时使得处理单元720分析数据215、基于数据215来识别模板245、以及基于已分析的数据和已识别的模板245来传输用以生成包的请求215;和/或设计器组件295在由处理单元720执行时使得处理单元720接收所生成的包、接收用以修改所生成的包的指令、确定所接收的指令是否与第一类型的修改和/或第二类型的修改相关联、以及基于该确定来修改该包的本地实例430和/或该包的远程实例410。虽然处理单元720被示为与系统存储器725分离,但是本公开的实施例设想了系统存储器725可以在处理单元720上,诸如在一些嵌入式系统中。
计算机710还可以包括其他可移除/不可移除、易失性/非易失性计算机储存介质。仅举例来说,图7图示出了从不可移除、非易失性磁介质读取或向其写入的硬盘驱动器741,从可移除、非易失性磁盘743(例如,软盘、盒式磁带)读取或向其写入的磁盘驱动器742,以及从可移除、非易失性光盘745(例如,压缩盘(CD)、数字多功能盘(DVD))读取或向其写入的光盘驱动器744。可以在示例操作环境中使用的其他可移除/不可移除、易失性/非易失性计算机储存介质包括但不限于闪存卡、数字录像带、固态RAM、固态ROM等。硬盘驱动器741可以通过诸如接口746的不可移除存储器接口而被连接到系统总线730,并且磁盘驱动器742和光盘驱动器744可以通过诸如接口747的可移除存储器接口而被连接到系统总线730。
如上所述并且在图7中图示出的驱动器及其相关联的计算机储存介质可以是计算机710提供计算机可读指令、数据结构、程序模块和其他数据的储存。在图7中,例如,硬盘驱动器741被图示为存储操作系统754、文档程序755、其他程序模块756和程序数据757。注意,这些组件可以与操作系统734、文档程序735、其他程序模块736和程序数据737相同或不同。操作系统754、文档程序755、其他程序模块756和程序数据757在本文中被赋予不同的数字,以图示出至少它们是不同的副本。
计算机710包括各种计算机可读介质。计算机可读介质可以是可由计算机710访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和不可移除介质。
作为示例而非限制,计算机可读介质可以包括计算机储存介质和通信介质。计算机储存介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。ROM 731和RAM 732是计算机储存介质的示例。计算机储存介质是有形的并且与通信介质是相互排斥的。用于本公开目的的计算机储存介质本身不是信号。示例计算机储存介质包括但不限于硬盘、闪存驱动器、固态存储器、RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、CD、DVD或其他光盘储存器、盒式磁带、磁带、磁盘储存器或其他磁储存设备或可以被用来存储所需信息并可由计算机710访问的任何其他介质。计算机储存介质以硬件来实现并且排除载波和传播信号。任何这样的计算机储存介质可以是计算机710的一部分。
通信介质通常以诸如载波或其他传送机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“已调制数据信号”意指具有以对信号中的信息进行编码的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质以及诸如声学、RF、红外线和其他无线介质之类的无线介质。
用户可以通过诸如指点设备761(例如,鼠标、轨迹球、触摸板)、键盘762、麦克风763和/或电子数字化仪764(例如,平板电脑)之类的一个或多个输入设备来将命令和信息输入到计算机710中。未在图7中示出的其他输入设备可以包括操纵杆、游戏手柄、控制器、卫星天线、照相机、扫描仪、加速度计等。这些和其他输入设备可以通过耦合到系统总线730的用户输入接口765而被耦合到处理单元720,但可以通过诸如并行端口、游戏端口或通用设备串行总线(USB)之类的其他接口和总线结构而被连接。
诸如文本、图像、音频、视频、图形、警报等的信息可以经由诸如监视器766、打印机767和/或扬声器768之类的一个或多个呈现设备而被呈现给用户。在图7中未示出的其他呈现设备可以包括投影仪、振动组件等。这些和其他呈现设备可以通过耦合到系统总线730的视频接口769(例如,用于监视器766或投影仪)和/或输出外围接口770(例如,用于打印机767、扬声器768和/或振动组件)而被耦合到处理单元720,但可以通过诸如并行端口、游戏端口或USB之类的其他接口和总线结构而被连接。在一些示例中,呈现设备与被配置为从用户接收信息的输入设备(例如,电容式触摸屏面板、包括振动组件的控制器)集成。注意,监视器766和/或触摸屏面板可以物理地耦合到在其中并入了计算机710的外壳,诸如在平板型个人计算机中。
计算机710可以使用到一个或多个远程计算机(例如远程计算机780)的逻辑连接而在联网环境中操作。远程计算机780可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且典型地包括上文相对于计算机710所描述的许多或全部元件——尽管在图7中仅图示出了存储器储存设备781。图7中描绘的逻辑连接包括一个或多个局域网(LAN)782和一个或多个广域网(WAN)783,但也可以包括其他网络。这种联网环境在办公室、企业范围的计算机网络、内联网和因特网中都是常见的。
当在LAN联网环境中使用时,计算机710通过网络接口或适配器784而被耦合到LAN782。当在WAN联网环境中使用时,计算机710可以包括调制解调器785或用于建立在诸如因特网的WAN 783上的通信的其他手段。调制解调器785可以是内部的或外部的,其可以经由用户输入接口765或其他适当的机制而被连接到系统总线730。诸如包括接口和天线的无线联网组件可以通过诸如接入点或对等计算机之类的适当设备而被耦合到LAN 782或WAN783。在联网环境中,相对于计算机710描绘的程序模块或其部分可以被存储在远程存储器储存设备中。作为示例而非限制,图7将远程文档程序786图示为驻留在存储器储存设备781上。可以理解,所示出的网络连接是示例,并且可以使用在计算机之间建立通信链路的其他手段。
图7的框图仅仅是图示了可以结合本公开的一个或多个示例使用的示例系统,并且不旨在以任何方式进行限制。此外,未示出本领域中已知的计算设备的外围设备或组件,但是可与本公开的各方面一起操作。图7中的各种元件的至少一部分功能性可以由图7中的其他元件或者由未在图7中示出的实体(例如,处理器、web服务、服务器、文档、计算设备等)来执行。
本文所描述的主题使计算设备能够确定在移动设备处本地地实现操作还是在服务器设备处远程地实现操作。例如,可以基于指令是否与第一类型的修改和/或第二类型的修改相关联来本地和/或远程地实现一个或多个操作。以这种方式,移动设备可以被配置为管理本地资源,同时使用户能够以高效且有效的方式生成和/或修改包、应用和/或文档。
虽然结合示例计算系统环境进行了描述,但是本公开的示例能够用许多其他通用或专用计算系统环境、配置或设备来实现。
可以适用于本公开的各方面的公知计算系统、环境和/或配置的示例包括但不限于:移动计算设备、个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、游戏操作台、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、可穿戴或附件形状因子的移动计算和/或通信设备(例如手表、眼镜、头戴式耳机或耳机)、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。这样的系统或设备可以以任何方式接受来自用户的输入,包括来自诸如键盘或指点设备的输入设备、经由手势输入、接近输入(诸如通过悬停)、和/或经由语音输入。
可以在由一个或多个计算机或其他设备以软件、固件、硬件或其组合执行的计算机可执行指令(诸如程序模块)的一般上下文中描述本公开的示例。计算机可执行指令可以被组织成一个或多个计算机可执行组件或模块。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构。本公开的各方面可以用任何数量和组织的这样的组件或模块来实现。例如,本公开的各方面不限于在附图中图示出和在本文中所描述的特定计算机可执行指令或特定组件或模块。本公开的其他示例可以包括具有比本文所图示出和描述的更多或更少功能性的不同的计算机可执行指令或组件。本公开的示例还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器储存设备的本地和/或远程计算机储存介质中。
本文所图示和描述的示例以及未在本文中具体描述但在本公开的各方面的范围内的示例构成了用于使用移动设备或移动客户端来修改包、应用和/或文档的示例装置。例如,图1、图2、图4和/或图7中所图示的元件诸如在被编码来执行图5和图6中所图示的操作时至少构成用于呈现包、应用和/或文档的示例装置,用于确定指令是否与第一类型的修改和/或第二类型的修改相关联的示例装置,用于修改包、应用和/或文档的本地实例的示例装置,和/或用于修改包、应用和/或文档的远程实例的示例装置。
除非另有说明,否则本文所图示出和描述的本公开的示例中的操作的执行或实行的顺序不是必需的。也就是说,除非另有说明,否则可以以任何顺序来执行操作,并且本公开的示例可以包括比本文所公开的更多或更少的操作。例如,预期在另一操作之前、与另一操作同时或在另一操作之后执行或实行特定操作是在本公开的各方面的范围内。
当介绍本公开的各方面或其示例的要素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在一个或多个要素。术语“包括”、“包含”和“具有”旨在是包含性的并且意指除了列出的要素之外可以存在附加要素。短语“下列中的一个或多个:A、B和C”意指“A中的至少一个和/或B中的至少一个和/或C中的至少一个”。
已经详细描述了本公开的各方面,显而易见的是,在不脱离所附权利要求限定的本公开的各方面的范围的情况下,修改和变化是可能的。由于在不脱离本公开的各方面的范围的情况下可以对上述构造、产品和方法进行各种改变,所以意图是包含在以上描述中并且在附图中示出的所有内容应被解释为是说明性的而不是处在限制的意义上。
作为替代或除了本文所述的其他示例之外,示例包括以下的任何组合:
-分析数据;
-基于数据识别模板;
-分析模板;
-基于模板识别数据;
-基于数据和模板传输用以生成包的请求;
-接收包,
-呈现文档;
-接收用以修改应用的指令;
-确定指令是否与第一类型的修改和/或第二类型的修改相关联;
-确定指令是否与数据模式改变相关联;
-确定指令是否与模板布局改变相关联;
-确定指令是否与主题改变相关联;
-将指令与第一类型的修改相关联;
-确定指令是否与模板布局改变相关联;
-将指令与第二类型的修改相关联;
-修改存储在移动设备处的文档的本地实例;
-修改存储在服务器设备处的文档的远程实例;
-生成用以修改文档的远程实例的调用;
-改变数据模式;
-将数据模式与模板布局匹配;
-改变模板布局;
-将模板布局与数据模式匹配;和
-传输用以修改文档表示的请求。
在一些示例中,附图中图示出的操作可以被实现为编码在计算机可读介质上的软件指令、被编程或设计来执行操作的硬件或两者。例如,本公开的各方面可以被实现为芯片上的系统或包括多个互连的导电元件的其他电路。
虽然已经根据各种示例及其相关联的操作描述了本公开的各方面,但本领域技术人员将会理解,来自任何数量的不同示例的操作的组合也在本公开的各方面的范围内。

Claims (20)

1.一种用于提供分布式应用开发环境的计算机实现的方法,所述方法包括:
在移动设备处存储应用的本地实例,其中所述应用包括由所述应用执行的编译的脚本;
由所述移动设备的处理器运行所述应用的所述本地实例;
在所述移动设备处,经由所述分布式应用开发环境的应用设计器组件来接收用以修改所述应用的指令;
在所述移动设备处确定接收的所述指令是否与第一类型的修改或第二类型的修改中的至少一个相关联;
响应于确定接收的所述指令与所述第一类型的修改相关联,在所述移动设备处至少通过如下来修改在所述移动设备处存储的所述应用的所述本地实例:
由所述移动设备的所述处理器生成所述应用的所述本地实例执行的脚本,以及
由所述应用的所述本地实例执行生成的所述脚本,其产生所述应用的修改的本地实例;以及
响应于确定接收的所述指令与所述第二类型的修改相关联:
向服务器设备传输用以修改在所述服务器设备处存储的所述应用的远程实例的接收的所述指令;
在所述移动设备处接收修改的所述应用的编译的脚本表示,
在所述移动设备处,将修改的所述应用的接收的所述编译的脚本表示存储为所述应用的修改的本地实例,以及
由所述移动设备的所述处理器运行所述应用的所述修改的本地实例。
2.根据权利要求1所述的计算机实现的方法,其中接收的所述指令与主题改变相关联,所述第一类型的修改包括所述主题改变。
3.根据权利要求1所述的计算机实现的方法,其中确定接收的所述指令是否与所述第一类型的修改或所述第二类型的修改中的至少一个相关联包括:
确定接收的所述指令是否与数据模式改变相关联;以及
响应于确定接收的所述指令与所述数据模式改变相关联,改变数据模式以及将改变的所述数据模式与模板布局相匹配。
4.根据权利要求1所述的计算机实现的方法,其中接收的所述指令与数据改变相关联,所述第一类型的修改包括所述数据改变。
5.根据权利要求1所述的计算机实现的方法,还包括:呈现所述应用中包括的文档。
6.根据权利要求1所述的计算机实现的方法,其中接收的所述指令与模板布局改变相关联,所述第二类型的修改包括所述模板布局改变。
7.根据权利要求1所述的计算机实现的方法,其中确定接收的所述指令是否与所述第一类型的修改或所述第二类型的修改中的至少一个相关联包括:
确定接收的所述指令是否与模板布局改变相关联;以及
响应于确定接收的所述指令与所述模板布局改变相关联,改变模板布局以及将改变的所述模板布局与数据模式相匹配。
8.根据权利要求1所述的计算机实现的方法,其中接收的所述指令与数据改变相关联,所述第二类型的修改包括所述数据改变。
9.一种计算设备,包括:
存储器,所述存储器存储:
计算机可执行指令;和
应用的本地实例;以及
处理器,所述处理器执行所述计算机可执行指令以:
从远程数据管理源接收包括控制数据集的导航的数据模式的数据集,
分析接收的所述数据集,其中所述分析识别接收的所述数据集的所述数据模式;
基于接收的所述数据以及识别的所述数据模式,选择模板;
基于识别的所述数据模式,生成接收的所述数据集和选择的所述模板之间的映射;
基于接收的所述数据集、选择的所述模板和生成的所述映射,向远程应用服务器传输用以来生成包的请求;
从所述远程应用服务器接收生成的所述包,所述包包括所述应用,所述应用被存储为所述存储器中的所述本地实例;
运行所述应用的所述本地实例;
接收用以修改所述应用的指令;
确定接收的所述指令是否与第一类型的修改或第二类型的修改中的至少一个相关联;
响应于确定接收的所述指令与所述第一类型的修改相关联,
修改所述应用的所述本地实例;以及
运行所述应用的修改的所述本地实例;以及
响应于确定接收的所述指令与所述第二类型的修改相关联,
生成调用以将接收的所述指令传输至所述远程应用服务器以修改所述应用的远程实例;
从所述远程应用服务器接收修改的应用的编译的脚本表示;
将所述修改的应用的接收的所述编译的脚本表示作为所述应用的修改的本地实例存储在所述存储器中;以及
运行所述应用的所述修改的本地实例。
10.根据权利要求9所述的计算设备,其中所述处理器被配置为执行所述计算机可执行指令以:
确定接收的所述指令是否与主题改变相关联;以及
响应于确定接收的所述指令与所述主题改变相关联,将接收的所述指令与所述第一类型的修改相关联。
11.根据权利要求9所述的计算设备,其中所述处理器被配置为执行所述计算机可执行指令以呈现包括在所述应用中的文档。
12.根据权利要求9所述的计算设备,其中所述处理器被配置为执行所述计算机可执行指令以:
确定接收的所述指令是否与模板布局改变相关联;以及
响应于确定接收的所述指令与所述模板布局改变相关联,将接收的所述指令与所述第二类型的修改相关联。
13.根据权利要求9所述的计算设备,其中所述处理器被配置为执行所述计算机可执行指令以将模板布局与数据模式相匹配。
14.一种系统,包括:
本地存储器;
处理器,所述处理器本地地与所述本地存储器耦合;
模板匹配器组件,所述模板匹配器组件在所述本地存储器上实现并且由所述处理器执行,所述模板匹配器组件被配置为:
分析从远程数据管理源接收的数据集,所述数据集包括控制所述数据集的导航的数据模式,
至少基于所述分析,识别与所述数据集相关联的数据模式,
基于识别的所述数据模式来选择模板,
基于识别的所述数据模式,生成接收的所述数据集和选择的所述模板之间的映射,以及
基于接收的所述数据集、选择的所述模板和生成的所述映射,向远程应用服务器传输用以来生成包的请求;以及
设计器组件,所述设计器组件在所述本地存储器上实现并且由所述处理器执行,所述设计器组件被配置为:
从所述应用服务器接收所述包,所述包包括应用,所述应用包括由所述应用执行的编译的脚本,
将所述应用作为所述应用的本地实例存储在所述本地存储器中,
运行所述应用的所述本地实例,
接收用以修改接收的所述应用的用户指令,
确定接收的所述用户指令是否与第一类型的修改或第二类型的修改中的至少一个相关联,以及
响应于确定接收的所述指令与所述第一类型的修改相关联,修改所述应用的所述本地实例,将所述应用的修改的所述本地实例存储在所述本地存储器中,以及由所述处理器运行所述应用的修改的所述本地实例。
15.根据权利要求14所述的系统,其中所述设计器组件被配置为确定接收的所述指令与主题改变相关联,并且将接收的所述用户指令与所述第一类型的修改相关联。
16.根据权利要求14所述的系统,其中所述设计器组件被配置为确定接收的所述指令与数据模式改变相关联,改变与分析的所述数据相关联的所述数据模式,并且将改变的所述数据模式与模板布局相匹配。
17.根据权利要求14所述的系统,其中所述处理器被配置为呈现包括在所述包中的文档。
18.根据权利要求14所述的系统,其中所述设计器组件被配置为确定接收的所述指令与模板布局改变相关联,并且将接收的所述用户指令与所述第二类型的修改相关联。
19.根据权利要求14所述的系统,其中所述设计器组件被配置为确定接收的所述指令与模板布局改变相关联,改变与识别的所述模板相关联的模板布局,并且将改变的所述模板布局与另一数据模式相匹配。
20.根据权利要求14所述的系统,其中所述设计器组件被配置为确定接收的所述指令与数据改变相关联,并且确定所述数据改变是否与所述第一类型的修改或所述第二类型的修改中的至少一个相关联。
CN201680064885.9A 2015-11-09 2016-11-03 从移动设备创建和修改应用 Active CN108351766B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/936,601 2015-11-09
US14/936,601 US10546058B2 (en) 2015-11-09 2015-11-09 Creating and modifying applications from a mobile device
PCT/US2016/060212 WO2017083157A1 (en) 2015-11-09 2016-11-03 Creating and modifying applications from a mobile device

Publications (2)

Publication Number Publication Date
CN108351766A CN108351766A (zh) 2018-07-31
CN108351766B true CN108351766B (zh) 2021-05-14

Family

ID=57389523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680064885.9A Active CN108351766B (zh) 2015-11-09 2016-11-03 从移动设备创建和修改应用

Country Status (4)

Country Link
US (2) US10546058B2 (zh)
EP (1) EP3374858B1 (zh)
CN (1) CN108351766B (zh)
WO (1) WO2017083157A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559438B (zh) * 2015-09-24 2019-12-31 阿里巴巴集团控股有限公司 一种基于目标网络平台的程序上传方法和装置
US9886245B2 (en) * 2016-02-24 2018-02-06 Helix Data Solutions LLC Software development tool using a workflow pattern that describes software applications
GB2562199B (en) * 2017-02-03 2022-02-16 Worldpay Ltd Terminal for conducting electronic transactions
CN112783508B (zh) * 2021-02-01 2022-05-24 北京百度网讯科技有限公司 文件的编译方法、装置、设备以及存储介质
US20230334237A1 (en) * 2022-04-14 2023-10-19 Sigma Computing, Inc. Workbook template sharing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658608A (zh) * 2004-01-30 2005-08-24 捷讯研究有限公司 用于提供可修改通用应用内容的系统和方法
US7233951B1 (en) * 2004-02-18 2007-06-19 Microsoft Corporation Spreadsheet grid-like control for a web-based collaboration system
CA2539474C (en) * 2003-09-17 2012-04-03 Research In Motion Limited System and method for dynamic generation and customization of web service client applications for terminals

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2361341A (en) * 2000-03-03 2001-10-17 Knowhow Systems Ltd Document creation and delivery
US7127705B2 (en) 2000-09-06 2006-10-24 Oracle International Corporation Developing applications online
EP1215573A1 (en) * 2000-12-13 2002-06-19 Sun Microsystems, Inc. Local and remote processing
US20070028166A1 (en) * 2002-04-10 2007-02-01 Allen Hundhausen System and processes for dynamic document construction
US8136109B1 (en) 2002-04-19 2012-03-13 Tibco Software Inc. Delivery of data and formatting information to allow client-side manipulation
CA2387328C (en) 2002-05-24 2012-01-03 Diversinet Corp. Mobile terminal system
US7620948B1 (en) * 2003-08-29 2009-11-17 Adobe Systems Incorporated Client side software updating
US20060129972A1 (en) 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
US7890926B2 (en) 2005-01-04 2011-02-15 Vaakya Technologies Private Limited System and method for application development and deployment
US20080046557A1 (en) 2005-03-23 2008-02-21 Cheng Joseph C Method and system for designing, implementing, and managing client applications on mobile devices
US7813910B1 (en) 2005-06-10 2010-10-12 Thinkvillage-Kiwi, Llc System and method for developing an application playing on a mobile device emulated on a personal computer
US7971194B1 (en) 2005-06-16 2011-06-28 Sap Portals Israel Ltd. Programming language techniques for client-side development and execution
CA2578466A1 (en) 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US8589955B2 (en) 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices
US9195525B2 (en) * 2008-10-21 2015-11-24 Synactive, Inc. Method and apparatus for generating a web-based user interface
US8108779B1 (en) * 2008-12-16 2012-01-31 Adobe Systems Incorporated Collaborative editing operations
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US8694954B2 (en) 2010-11-29 2014-04-08 Norman Ortiz System and methods for mobile application development using mobile devices
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US9495533B2 (en) 2011-09-29 2016-11-15 Oracle International Corporation Mobile application, identity relationship management
US9104444B2 (en) * 2011-11-30 2015-08-11 Verizon Patent And Licensing Inc. Mobile application configuration
WO2013118505A1 (ja) * 2012-02-09 2013-08-15 パナソニック株式会社 マルチメディアコンテンツ編集サーバ、マルチメディアコンテンツ編集方法、プログラム及び集積回路
US20140053126A1 (en) 2012-02-13 2014-02-20 Mark A. Watson Integrated mobile application development platform
US9043750B2 (en) 2012-10-09 2015-05-26 Sap Se Automated generation of two-tier mobile applications
US9529816B2 (en) * 2013-01-25 2016-12-27 Konica Minolta Laboratory U.S.A., Inc. Arbitrating among concurrent editors of shared documents
US9038019B2 (en) 2013-02-05 2015-05-19 Sap Se Paige control for enterprise mobile applications
US10318625B2 (en) * 2014-05-13 2019-06-11 International Business Machines Corporation Table narration using narration templates
US9582301B2 (en) * 2014-09-17 2017-02-28 International Business Machines Corporation Method of defining javascript objects
US10581950B2 (en) * 2015-03-06 2020-03-03 Vmware, Inc. Local operation of remotely executed applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2539474C (en) * 2003-09-17 2012-04-03 Research In Motion Limited System and method for dynamic generation and customization of web service client applications for terminals
CN1658608A (zh) * 2004-01-30 2005-08-24 捷讯研究有限公司 用于提供可修改通用应用内容的系统和方法
US7233951B1 (en) * 2004-02-18 2007-06-19 Microsoft Corporation Spreadsheet grid-like control for a web-based collaboration system

Also Published As

Publication number Publication date
US20170132197A1 (en) 2017-05-11
US10546058B2 (en) 2020-01-28
WO2017083157A1 (en) 2017-05-18
EP3374858B1 (en) 2020-07-22
EP3374858A1 (en) 2018-09-19
US11120212B2 (en) 2021-09-14
CN108351766A (zh) 2018-07-31
US20200134257A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
US10990367B2 (en) Application development method, tool, and device, and storage medium
US11593094B2 (en) Application management within deployable object hierarchy
CN108292231B (zh) 从数据生成应用的方法和系统
CN108351765B (zh) 用于生成应用的方法、系统和计算机存储介质
US11120212B2 (en) Creating and modifying applications from a mobile device
US9948700B2 (en) ADFDI support for custom attribute properties
US11157270B2 (en) Multi-platform pattern-based user interfaces
US8302093B2 (en) Automated deployment of defined topology in distributed computing environment
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US11095648B2 (en) Dashboard as remote computing services
JP2016522649A (ja) バンドルパッケージ署名
US10523591B2 (en) Discovering resource availability across regions
CN108351888B (zh) 生成可推迟数据流
US20190310879A1 (en) Systems and methods for automatically managing scripts for execution in distributed computing environments
CN112947920A (zh) 用于相机效果的脚本生成方法以及系统
Komarasamy et al. SYSTEMATIC WAY OF PROCESSING AND FETCHING DATA USING DATA MINING
Ciliberti Mobile, Social, and Cloud Technologies
Shashi Designing Applications for Google Cloud Platform

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