专利名称::网关数据分布引擎的制作方法
技术领域:
:本公开涉及便于移动计算设备上的软件应用的开发,并且更具体来说,涉及便于从网络离线的移动计算设备上的软件应用的开发。
背景技术:
:当前网关服务一般仅支持在线服务消费,这意味着当人们想要从网关服务访问数据时网络接入可以是强制性的并且是必需的。结果是,当网络连接不可用时,可能无法获得网关服务并且人们无法访问相关数据。这在企业用户想要对交易数据和分析任务进行工作而不受该网络连接的限制的企业环境中是无法接受的。此外,网关服务往往是代表性状态传输(representationalstatetransfer,REST)服务,这是因为它们使用可扩展标记语言(XML)作为主要数据格式。因此,与表格数据(例如,基于行的数据或者基于网格的数据)相比该数据的可读性可能要落后些。而且,可能不能够确定响应数据模式(dataschema)和数据内容以及它们背后的数据关系。
发明内容在一个一般实施例中,利用计算系统执行的用于开发移动应用的方法包括从可通信地连接至网络的用户接收对一个或多个网关服务数据类别的选择;从所述用户接收对可操作用于可通信地连接至所述网络的移动设备的操作平台的选择;生成配置文件,其包括对与一个或多个网关服务数据类别关联的网关服务数据的选择以及所述操作平台选择;生成与所述操作平台选择关联的数据存储文件和开发库;将所述配置文件、数据存储文件以及开发库传递到可通信地连接至所述网络的储存库;以及生成包括所述配置文件、数据存储文件以及开发库的应用模板,其中在所述移动设备在通信上从所述网络断开连接时根据所述应用模板在所述移动设备上开发所述移动应用。其它实施例包括相应系统、装置、计算机程序和有形的非瞬时存储介质。这些及其它实施例可以可选地包括一个或多个以下特征将所选择的网关服务数据传递到所述储存库;从所述用户接收对所述应用模板的请求;以及在所述移动设备可通信地连接至所述网络时将所述应用模板从所述储存库导出到所述移动设备;通过应用开发环境将所述应用模板从所述储存库导出到所述移动设备;经由所述网络接收来自根据所述应用模板在所述移动设备上开发的移动应用的同步请求;以及响应于所述同步请求,将经更新的数据存储文件导出到所述移动设备;基本上导出与所选择的一个或多个网关服务数据类别关联的全部网关服务数据到所述移动设备;从所述移动设备接收对所述网关服务数据内多个数据表格中的数据表格的请求;生成包括所请求的数据表格的、经更新的数据存储文件;从所述用户接收对多个数据库功能中一个或多个数据库功能的选择;以及生成包括对所述一个或多个数据库功能的选择的开发库;接收对多个数据库功能中一个或多个数据库功能的预定集合的选择;从所述用户接收对现有配置文件的选择。根据本公开的网关数据分布引擎的各种实施例可以包括一个或多个以下特征。举例来说,网关数据分布引擎可以使伙伴开发者(或者内容顾问)能够在网络接入可用时得到数据并且将数据从网关服务存储(或者配置)到独立于移动设备的专用数据库文件。结果,伙伴开发者(或者内容顾问)可以在不需要网络105时充分利用所生成的数据库文件来查看元数据、检查基于行的具体项目数据以及进一步分析数据关系。此外,本公开可以开放许多公共接口,以便开发者基于服务数据建立在线/离线定制应用。因此,应用开发者可以在透明地访问(读取)经授权的离线数据库时将精力集中在移动卖主提供的业务逻辑以及新特征上。而且,它还可配置为以期望顺序得到必要的网关表格/数据,并且内容顾问可以将精力集中在根据最终用户业务角色和功能的数据分布逻辑上。根据本公开的网关数据分布引擎的各种实施方式还可以包括一个或多个以下特征。举例来说,网关数据分布引擎可以使业务用户能够独立于网络连接执行分析任务。其它特征包括提供另外的通道以接入所述网关服务;便于伙伴建立增强的移动应用;提供一个框架,以便应用开发者透明地访问数据库并且内容顾问通过请求来按需求配置数据库;支持对开发者较容易地查看数据库语义;提高客户端能力上的数据访问调控(leveraging)的性能;提供经由联合表格的交叉应用分析;以及提供在不同移动设备上的透明数据访问。举例来说,更多特征包括在线消费和离线使用;使用全面的数据库视图和接口而非XML源;从网关REST服务动态地生成的专用数据库;提供用于应用开发者透明地访问数据库以及内容顾问通过请求来按需求配置数据的框架;以及无限制地支持各种移动设备。这些一般及特定方面可以使用设备、系统或者方法或者设备、系统或者方法的任意组合来实现。在附图以及下面的说明中阐述了一个或多个实施例的细节。本发明的其他特征、目的和优点将从说明书和附图以及从权利要求中变得明显。图I示出根据本公开的、包括网关数据分布引擎的示范性计算环境;图2示出根据本公开的、包括网关数据分布引擎的示范性计算环境的多层体系结构;图3示出利用和/或由根据本公开的网关数据分布引擎实现的示范性方法;以及图4A-4C示出根据本公开的网关数据分布引擎的示范性图形用户接口。具体实施例方式在一些实施例中,根据本公开的网关数据分布引擎能够便于在一个或多个移动设备从通信网络在通信上断开连接(communicablydisconnected)时这些移动设备的移动应用的开发。例如,网关分布引擎生成应用模板。该应用模板作为开发该移动设备上的移动应用的基础。为了生成该应用模板,网关数据分布引擎接收对网关服务数据类别的选择以及移动设备的操作平台的选择。网关数据分布引擎基于网关服务数据类别的选择以及操作平台选择生成一配置文件。网关数据分布引擎还基于操作平台选择生成数据存储文件(datastorefile)以及开发库。然后,网关数据分布数据引擎将配置文件、数据存储文件以及开发库传递至储存库。应用模板被生成为包括配置文件、数据存储文件以及开发库以使得能够在移动设备从所述网络在通信上断开连接时在该移动设备上根据所述应用模板开发移动应用。图I示出示范性计算环境100。环境100包括服务器计算设备102(“服务器”)、一个或多个客户端计算设备104(“客户端(被分别示作客户端计算设备104a-104c),或者与它们可通信地耦接,它们当中至少一部分通过网络106通信。一般说来,环境100描绘了能够以基本透明的方式提供无状态(stateless)应用的有状态(stateful)运行以及响应于来自其客户端104的请求动态地确定特定应用的操作模式(mode)。在一些实施方式中并且如图I中所示,服务器102包括处理器108a、接口110、存储器112a以及网关数据分布引擎(⑶DE)114。存储器112a能够存储托管应用(hostedapplication)116和/或下面进一步描述的诸如配置文件、数据存储文件和/或开发库文件的文件。在高层次上,服务器102包括可操作用于接收、发送、处理、存储或者管理与环境100关联的数据和信息的电子计算设备。具体地说,图I中示出的服务器102负责从与环境100的客户端104关联的一个或多个客户端应用118接收应用请求以及通过在关联的托·管应用116中处理所接收的请求来对该请求作出响应,并且负责将来自托管应用116的适当响应发送回发出请求的客户端应用118。除了来自图I中示出的外部客户端104的请求之外,还可以从内部用户、外部或者第三方消费者、其它自动化应用以及任意其它适当的实体、个人、系统或者计算机发送与托管应用116关联的请求。如本公开中使用的那样,术语“计算机”意图包含任何适合的处理设备。例如,尽管图I示出单个服务器130,但是环境100可以使用两个或更多服务器102以及除了服务器之外的计算机,包括服务器池,来实现。实际上,服务器102能够是任何计算机或者处理设备,t匕如,刀片服务器、通用个人计算机(PC)'Macintosh、工作站、基于UNIX的工作站或者任何其它适合的设备。换句话说,本公开设想除了通用计算机之外的计算机以及无传统操作系统的计算机。而且,示出的服务器102可以被适配为运行任何操作系统,包括Linux、UNIX、Windows,MacOS或者任何其它适合的操作系统。通过服务器102使用接口110来在连接至网络106的客户端-服务器或者其它分布式环境(包括在环境100内)中与其它系统(例如,客户端104以及可通信地耦接到网络106的其它系统)通信。通常,接口110包括以适当的组合在软件和/或硬件中编码并且可操作用于与网络106通信的逻辑。更具体地说,接口110可以包括支持与通信关联的一个或多个通信协议的软件,以使得网络106或者接口的硬件可操作用于在所示出的环境100之内和之外传送物理信号。一个或多个托管应用116中的每一个都是根据本公开——具体来说,响应于并且结合从所示出的客户端104以及它们的关联客户端应用118接收到的一个或多个请求(下面将进一步描述)——能够运行、改变、删除、生成或者以另外方式管理信息的任何应用、程序、模块、处理过程或者其它软件。在某些情况下,仅一个托管应用116可以位于特定服务器102中。在其它情况下,多个相关和/或无关的托管应用116可以存储在单个服务器102中,或者也可以位于多个其它服务器102上。在某些情况下,环境100可以实现组合托管应用116。例如,组合应用(compositeapplication)的部分可以实现为企业JavaBeans(EnterpriseJavaBeans,EJB)或者设计时(design-time)组件可以具有将运行时实现方式生成为不同平台(诸如,J2EE(Java2平台,企业版)、ABAP(高级商业应用编程)对象、或者微软的.NET,等等)的能力。另外,托管应用116可以代表经由网络106(例如,通过因特网)由远程客户端104或者客户端应用118访问和运行的基于web的应用。而且,尽管与特定托管应用116关联的一个或多个过程被示出为在服务器102内部,但是也可以远程地存储、引用或者运行与特定托管应用122关联的一个或多个过程。例如,特定托管应用116的一部分可以是与远程调用的应用关联的web服务,而托管应用116的另一部分可以是被捆绑的用于在远程客户端104上进行处理的接口对象或者代理。而且,托管应用116的任一个或者全部可以是另一软件模块或者企业应用(未示出)的子模块(childorsub-module)而不脱离本公开的范围。更进一步,托管应用116的一部分可以由直接在服务器102上工作的用户以及在客户端104上远程工作的用户运行。在一些实例中,服务器102可以包括这样的web服务器其中,托管应用116表示由系统的客户端104经由网络106访问和运行以执行托管应用116的经编程的任务或操作的一个或多个基于web的应用。⑶DE114与移动设备104到网络106的连接无关地(例如,不论连接还是没连接至网络106)提供对来自网关服务的数据的访问。更具体地说,⑶DE114与到网络106的接入无关地允许访问网关服务数据以及将其存储到移动设备104上的专用数据库文件。结果,应用开发者可以在不需要网络106的情况下利用所生成的数据库文件来查看元数据、检查基于行的具体项目数据以及进一步分析数据关系。此外,GDDE114可以便于应用开发者基于服务数据构建在线/离线移动应用。因此,应用开发者可以透明地访问(读取)离线数据存储文件。而且,它还可配置为以期望的顺序得到必要的网关表格/数据。每个客户端104都可以是可操作用于至少连接到服务器102或者与服务器102通信和/或使用有线连接或者无线连接经由网络106到服务器102或者与服务器102通信的任一计算设备。而且,如客户端104c所示,每个客户端104都包括处理器108b、存储器112b、图形用户接口(⑶I)120和应用开发环境122。存储器112b可以存储客户端应用118。一般说来,每个客户端104都包括可操作用于接收、发送、处理和存储与环境100关联的任意适当数据的电子计算设备。应当理解,存在任意数量的与环境100关联或者在环境100以外的客户端104。例如,尽管所示环境100包括三个客户端(104a、104b和140c),但是环境100的替换实施方式可以包括可通信地耦接到服务器102的单个客户端104,或者适合于环境100的目的的任意其它数量的客户端。另外,在环境100的所示出的部分以外还可以存在能够经由网络106与环境100交互的一个或多个额外客户端104。而且,术语“客户端”和“用户”可以视情况互换地使用而不脱离本公开的范围。而且,尽管依据由单个用户使用来描述每个客户端104,但是本公开设想许多用户可以使用一个计算机,或者一个用户可以使用多个计算机。如本公开所使用,客户端104意图包含个人计算机、触屏式终端、工作站、网络计算机、kiosk、无线数据端口、智能电话、个人数据助理(PDA)、这些或者其它设备内的一个或多个处理器或者任何其它适合的处理设备。例如,每个客户端104都可以包括计算机,该计算机包括输入设备,诸如小键盘、触摸屏、鼠标或者能够接受用户信息的其它设备;和输出设备,其传达与服务器102(和托管应用116)或者客户104自己的操作关联的信息,包括数字数据、可视信息、客户端应用118或者GUI120。输入和输出设备两者都可以包括固定的或者可移动存储介质,诸如磁存储介质、CD-ROM或者其它适合的介质,用于通过显示器,即,⑶I120,既从客户端104的用户接收输入又提供输出到客户端104的用户。⑶I120可操作用于出于任意适合的目的而与环境100的至少一部分接口,所述目的包括生成客户端应用118的可视表示(在一些实例中,客户的web浏览器)以及与托管应用116的交互,所述交互包括响应于客户端应用118发送的请求而从托管应用116接收到的响应。通常,通过GUI120,向用户提供对由系统或者在系统内部传送的数据的高效且用户友好的呈现。术语“图形用户接口”或者⑶I可以单数或复数形式使用以描述一个或多个图形用户接口以及特定图形用户接口的显示中的每一个。因此,⑶I120可以表示任何图形用户接口,包括但并不限于web浏览器、触摸屏或者处理环境100中的信息并且将信息结果高效地呈现给用户的命令行接口(CLI)。一般说来,⑶I120可以包括多个用户接口(UI)元素,其中一些或者全部与客户端应用118关联,诸如可由用户在客户端104操作的交互字段、下拉列表以及按钮。这些和其它n元素可以与客户端应用118以及在客户端104上运行的其它软件应用的功能有关或者表示这些应用的功能。具体来说,⑶I120可用于呈现托管应用116的基于客户端的透视图,并且可以用于(作为web浏览器或者使用客户端应用118作为web浏览器)查看和导航托管应用116以及位于服务器内部和外部的各种网页,其中一些可以与托管应用116关联。为了呈现位置的目的,⑶I120可以是客户端应用118的一部分或者全部,同时也仅仅是用于显示客户端以及托管应用116的动作和交互的可视表示的工具。在一些实例中,⑶I120和客户应用118可以互换地使用,特别是当客户应用118表示与托管应用116关联的web浏览器时。通常,网络106便于环境100的组件之间(也即,服务器102与客户端104之间)以及与任意其它本地或者远端计算机的无线和/或有线通信,其它本地或者远端计算机诸如另外的客户端、服务器或者可通信地耦接到网络106而图I中未示出的其它设备。网络106在图I中被示出为单个网络,但是其可以是连续或者不连续的网络,而不脱离本公开的范围,只要网络106的至少一部分可以便于发送方与接收方之间的通信即可。网络106可以是企业或者安全网络的全部或者一部分,而在其它实例中,网络106的至少一部分可以表示到因特网的连接。在一些实例中,网络106的一部分可以是虚拟专用网络(VPN),诸如像客户端104与服务器102之间的连接。而且,网络106的全部或者一部分可以包括有线线路或者无线链路。示范性无线链路可以包括802.lla/b/g/n、802.20、WiMAX和/或任何其它合适的无线链路。换句话说,网络106包含可操作用于便于所示环境100的内部和外部的各种计算组件之间的通信的任何内部或者外部网络、网络、子网或者它们的组合。网络106可以在网络地址之间传送例如因特网协议(IP)分组、帧中继帧、异步传输模式(ATM)单元、声音、视频、数据以及其它适合的信息。网络106还可以包括一个或多个局域网(LAN)、无线接入网络(RAN)、城域网络(MAN)、广域网(WAN)、因特网的全部或者一部分、和/或位于一个或多个位置的其它通信系统或者系统。如上所述,服务器102与客户端104分别包括处理器108a和108b。尽管在图I中被分别示出为单个处理器108a和108b,但是可以根据特定需要、期望或者环境100的特定实施例使用两个或更多处理器。每个处理器108都可以是中央处理单元(CPU)、刀片处理器(blade)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它适合的组件。通常,处理器108a和108b执行指令和操控数据以分别执行服务器102和客户端104的操作,并且具体地说,分别执行多个托管应用116中的一个或多个或者多个客户端应用118中的一个或多个。具体地说,服务器的处理器108a运行接收和响应于来自客户端104以及它们各自的客户端应用118的请求所需要的功能,以及执行托管应用116的其它操作所需要的功能。不管具体的实施方式为何,“软件”可以包括有形介质上的、当运行时可操作用于执行这里描述的过程和操作的计算机可读指令、固件、连线的或经编程的硬件或者它们的任意组合。实际上,每个软件组件可以是完全或部分以任何合适的计算机语言编写或描述,所述计算机语言包括C、C++、Java、VisualBasic、ABAP、汇编语言、Perl、任何适合版本的4GL,以及其它语言。应当理解,尽管图I中示出的软件的部分被显示为通过各种对象、方法或者其它过程实现各种特征和功能的独立模块,但是软件视情况可以包括许多子模块、第三方服务、组件、库等等。反之,各种组件的特征和功能视情况可以合并成单个组件。在示出的环境100中,处理器108a运行服务器102上的一个或多个托管应用116。如上所述,服务器102与客户端104分别包括存储器112a和112b。存储器112可以包括任何存储器或者数据库模块并且可以采取易失性或者非易失性存储器的形式,包括但不局限于磁介质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、可移动介质或者任何其它适合的本地或者远程存储器组件。存储器112可以存储各种对象或者数据,包括类、框架、应用、备份数据、业务对象、作业、网页、网页模板、数据库表、存储业务和/或动态信息的储存库、以及包括与服务器102及其一个或多个托管应用116或者客户端104以及它们的一个或多个客户端应用118的目的关联的任何参数、变量、算法、指令、规则、约束或者对其的引用的任何其它适当的信息。另外,存储器112可以包括任意其它适当的数据,诸如VPN应用、固件日志和策略、防火墙策略、安全或者访问日志、打印或者其它报告文件、以及其它数据。环境100还可以包括储存库(repository)123。储存库123可以存储下面将进一步描述的配置文件、数据存储文件和/或开发库文件。尽管图I被描述为包含多个元素或者与多个元素关联,但是并非图I的环境100内示出的全部元素都可以在本公开的每个替换实施方式中使用。另外,这里描述的元素中的一个或多个可以位于环境100之外,而在其它实例中,某些元素可以被包括在一个或多个所描述的其它元素以及所示实施方式中未描述的其它元素内或者被包括作为这些元素的一部分。而且,图I中示出的某些元素可以与其它组件相组合,以及可以用于或者除了这里所描述的那些目的之外的可替换目的或附加目的。图2示出示范性计算环境200的多层体系结构。环境200可以在分布式计算环境上实现,举例来说,诸如图I的环境100。该环境包括网关数据分布引擎(⑶DE)204、应用开发环境206和移动设备208。在一些实施例中,移动设备208可以对应于图I的移动设备104。在一些实施例中,⑶DE204可以对应于图I的⑶DE114。而且,在一些实施方式中,⑶DE204可以处于服务器102上,而应用开发环境可以处于移动设备208上。⑶DE204可以包括web配置层210、储存库层212、数据分布层214和同步层216或者可通信地与web配置层210、储存库层212、数据分布层214和同步层216耦接。web配置层210帮助确定能够由⑶DE204提供的一个或多个网关服务。web配置层210还能够采用网关服务中提供的数据。web配置层210还能够提供用于输入定制配置的接口(例如,⑶I120)。如图所示,web配置层210包括数据选择管理组件218、版本控制管理组件220和公共接口管理组件222。能够根据用户提供的选择(例如,经由⑶I120的选择)动态地生成数据选择管理组件218。数据选择管理组件218连接到⑶DE204以得到诸如对象名称、显示名称、类别和该层级内的其它层的服务层级。可以以树形列表显示该信息,该树形列表能够由用户通过诸如⑶I120的web接口选择。能够采用XML解析器(未示出)从来自⑶DE204的响应(诸如来自网关202的XML响应)中选择数据。所示的版本控制管理组件220管理每个用户对来自⑶DE204的数据的选择,因为每个用户可能每次具有不同的选择。另外,GDDE204提供的服务可以包括新版本或者新特征,因此版本控制管理组件220便于用户(例如,移动设备208的用户)选择特定版本作为基本选择。而且,当采用版本控制管理组件220时,用户可以选择要么从新的数据选择开始,要么从现有的数据选择中编辑。而且,选择信息可以存储为新的配置文件或者覆写(overwrite)现有配置文件。储存库,例如储存库层212上的一个或多个储存库,可以存储⑶DE204的配置文件,由此允许检查⑶DE204提供的服务的历史。公共接口管理组件222利用具有必要功能提供对数据库的透明访问。公共接口管理组件222提供诸如读取表、连接(join)选择、删除行或者添加行的功能以根据设备类型(例如,移动设备208的设备类型)构建库。储存库层212提供存储在来自⑶DE204提供的服务的一个或多个数据库(例如,数据表)中的数据的存储和显示。在一些实施方式中,数据显示在关系视图中。此外,数据库可以根据请求来配置。所示储存库层212可以是根据用户的选择将数据保持在云储存库中并且使数据选择信息传递到其的数据持久层(datapersistentlayer)。而且,可以触发数据收集处理以通过⑶DE204得到数据并且可以将数据收集处理存储在储存库层212中。所示储存库层212连接到web配置层210、数据分布层214和同步层216。具体地说,在一个示范性实施例中,数据收集处理包括两个步骤。在一个步骤中,从⑶DE204提供的服务动态地读取和解析表格模式(tableschema)224。可以收集属性名称、类型、关键标记(keyflag)以及其它信息以创建表格模式224的对应表格226。当用户的选择改变或者请求了数据同步时可以重新加载表格模式224。可以由数据分布层214访问表格模式224以生成所述数据。在另一个步骤中,类似于表格模式224的创建,动态数据227包括从网关202提供的服务动态地读取和解析的特定表格228的数据行。然而,表格228分别采用不同的URL。此外,由于URL不包括来自网关202的响应中的属性类型信息,可以再次使用相应模式信息以检测每个属性的正确类型。所示数据分布层214连接到web配置层210、储存库层212、同步层216和应用开发环境206。数据分布层214包括配置文件230、数据存储文件232和开发库文件234。数据分布层214提供对可以被导入到应用开发环境206中的某种类型的数据存储文件232的控制,并且提供对配置文件和库文件如何经由⑶I出现的控制。图示的配置文件230提供指令给移动设备208上的应用,包括哪些数据表格将被同步以及在同步阶段期间来自网关202的哪些服务应当被连接。配置文件230在应用运行时采用用户的数据选择以及移动设备208上提供的设备信息。因此,配置文件230包括以结构化格式生成的信息。所示的数据存储文件232提供在线消费和离线消费。而且,数据存储文件232提供对无限多种类型移动设备208的支持。具体地说,不同的设备系统,诸如移动设备208,使用和支持不同的数据库系统。因此,针对在其上开发移动应用的每个指定设备生成相应的数据存储文件232。举例来说,设备系统可以包括WindowsMobile、Android、iPhone和Symbian。相应的数据库系统分别包括SqlCe、SQLite、SQLite和RDbNamedDatabase。所示的开发库文件230允许对数据库的透明访问以及对移动设备208的应用的开发。为此,数据分布层20将三个文件(配置文件230、数据存储文件232和开发库文件234)作为项目模板导入到应用开发环境206中。因此,可以基于该项目模板开发移动设备208的应用。所示的同步层216是用于与储存库层212交换数据的双向通道。同步层216当被连接至网络(诸如网络106)时使得离线应用(存储在移动设备208上)能够更新最少量数据(也即,必要数据)。在应用被开发并且部署到移动设备208之后,移动设备208可以利用⑶DE204离线提供的服务(例如,当网络106不可用时)。当网络在线(也即,可用)时,移动设备208还可以请求对应用的数据同步。同步层216包括完全下载模块236和adhoc更新模块238。所示的完全下载模块236提供从移动设备208上的应用下载来自网关202的全部服务数据。而且,该应用将检查配置文件230以得到数据选择信息和设备信息。该应用还可以与数据分布层208通信以请求新的数据存储文件232。在这种情况下,数据存储文件232可以被直接下载到移动设备208中。所示的ad-hoc下载模块238提供与储存库层212的直接通信以得到指定表格的最新数据。作为响应,可以请求数据分布层212生成新的但是较小的数据存储文件228,其仅包括更新的表格。而且,可以下载数据存储文件228到移动设备208并且数据可以被读取并且覆写在初始数据库上。在计算环境200的一个示范性操作中,⑶DE204可以便于生成应用模板,以例如在移动设备208上建立移动应用。例如,用户可以首先选择为了建立移动应用可能期望或者需要的网关服务数据。举例来说,用户可以通过web接口从列表中不同的分类(例如,CRM服务、ACM服务、EAM服务)选择一个或多个网关服务数据,web接口诸如通过应用开发环境206呈现的web接口。接下来,通过单独的或者类似的web接口,用户可以选择设备类型,诸如WindowsMobile、Android、iPhone、Symbian或者其它类型。在一些实施例中,因为每个操作平台都可以使用不同的数据库系统和开发资源,所以用户可以选择将在其上开发应用的设备类型。接下来,通过单独的或者类似的web接口,用户可以选择一个或多个数据库功能(例如,访问数据库及其它功能)。例如,在一些实施例中,可以向用户呈现多组功能以从中选择,每个组包括若干功能。一个或多个组可以包括一组标准数据库功能(可配置的)。这样的组可以包括默认组,如果用户没有进行选择则⑶DE204可以选择默认组。例如,⑶DE204可以提供多个公共接口或者功能。然而,对于指定的开发要求来说不是这些功能全部都是必需的。因此,用户可以选择哪些功能应当包括在库封装中,他们可以利用其来开发定制应用。接下来,可以将指定网关服务数据(也即,基于用户的选择)通过REST请求下载到储存库中(例如,储存库层212上的专用数据库,举例来说,云网络中)。在一些实施例中,xml解析器可以将响应xml转换为给定数据库格式的储存库,其包括动态表格模式和表格数据(根据用户选择)。接下来,举例来说,⑶DE204可以例如在数据分布层214上在配置管理230处生成并且存储配置文件。在一些实施例中,配置文件可以包含数据选择信息、服务版本信息和设备信息。为了在应用部署之后将这些信息保持在移动设备208上,可以生成配置文件。接下来,举例来说,⑶DE204可以例如在数据分布层214上在数据存储文件管理232处生成并且存储数据存储文件。数据存储文件可以包括设备类型的用户选择。在一些实施例中,每个设备系统都可以使用某种数据存储系统,因此数据存储文件可以具有不同的数据格式。接下来,举例来说,⑶DE204可以例如在数据分布层214上在开发管理库234处生成并且存储开发库。开发库可以基于所选择的设备类型和期望的公共功能。还可以在开发阶段期间使用该库,这将帮助伙伴开发者建立具有基本功能的应用。接下来,⑶DE204可以生成包括配置文件、数据存储文件和/或开发库的应用模板。然后可以经由应用开发环境206导入该模板,以便例如当移动设备208从GDDE204断开连接(在通信上)时便于移动应用的开发。图3示出利用网关数据分布引擎和/或由网关数据分布引擎——诸如网关数据分布引擎202——实现的示范性方法300。接收对一个或多个网关服务数据类别的选择(302)。举例来说,在一些方面中,步骤302可以包括选择被存储在web配置层210的数据选择管理组件218中。网关服务数据类别可以被分为不同的类别(例如,客户关系管理(CRM)服务、自适应情况管理(ACM)服务、企业资产管理(EAM)服务)并且可以从经由web接口提供给移动设备208的列表中选择,如图4A中所示。具体地说,图4A示出包括带标签的(tabbed)部分404和内容部分406的⑶I402。举例来说,带标签的部分404包括数据标签408、版本标签410和接口标签412。当带标签的部分404的标签被移动设备208的用户选择时,与所选择的标签相关的内容显示在内容部分406中。当数据标签408被选择时,内容部分406包括网关服务数据类别列表414和所选择的数据列表416。具体地说,所选择的数据列表416包括选择来自列表414的服务。来自列表414的服务可以经由箭头418移到列表416中或者从列表416移出。而且,列表416中的服务的次序可以经由箭头420向上移动或者向下移动。列表414还包括表格422。表格422显不在列表414中所选择的服务的数据模式(从XML转换为基于列的格式)。图标424使能来自列表414的服务的选择或者取消选择。带标签的部分404还包括版本标签410。在一些实施例中,版本标签410可以向用户提供具有版本控制管理220的接口。在一些实施例中,如上所述,因为每个用户(例如,每个移动设备208的)每次可以具有不同的选择,所以可以提供对被管理的版本的控制。在版本标签410中,用户可以选择要么从新数据选择开始要么从现有选择编辑。用户还可以保存选择信息作为新的配置文件或者覆写现有文件。所示的带标签的部分404还包括接口标签412。在一些实施例中,接口标签412可以允许用户选择特定数据库功能;选择可以分组在一起的特定功能集合;和/或不选择可以在其中选择标准功能的那些。接收对可操作用于可通信地连接至网络的移动设备的操作平台的选择(304)。举例来说,在一些方面,步骤304可以包括采用使用不同数据库系统和开发资源的不同操作平台的每个移动设备208。因此,将针对特定移动设备208选择正确的操作平台以使得可以针对特定移动设备208正确地开发应用。生成包括网关服务数据和操作平台选择的配置文件(306)。举例来说,在一些方面,步骤306可以包括包含数据选择信息、服务版本信息和设备信息的配置文件230。生成配置文件230以便在应用部署之后将这些数据保存在移动设备208上。在一些实施方式中,配置文件230可以存储在数据分布层214上。而且,移动设备208可以使用应用开发环境206访问数据分布层214。生成与操作平台选择关联的数据存储文件和开发库(308)。举例来说,在一些方面,步骤308可以包括基于被选择的设备类型生成相应数据存储文件232的GDDE204。每个设备系统采用特定数据存储系统,由此相应地选择数据存储文件。⑶DE202还可以基于所选择的设备类型和期望的公共功能生成开发库文件234。在开发阶段期间可以采用开发库文件234以有助于开发具有基本功能的应用。在一些实施方式中,用户可以选择哪些功能包括在开发库文件234中。配置文件、数据存储文件以及开发库被传递至储存库(310)。举例来说,在一些方面,步骤310可以包括,在生成配置文件230、数据存储文件232和开发库234(“文件”)之后,经由应用开发环境206将文件作为模板导入。生成用于开发移动应用的应用模板(312)。举例来说,在一些方面,步骤312可以包括被集成到应用模板中的必要的数据模式和常用的数据库功能/接口。在生成应用模板期间不需要对网络(例如,网络106)的访问。接收对应用模板的请求(314)。从储存库将应用模板导出到移动设备(316)。应用模板可以例如由开发者用于在当前从网络(例如,网络106或者其它通信网络)断开连接的移动设备上开发移动应用。图4B示出当不连接至网络(诸如网络106)时应用开发者可以采用的⑶I440。⑶I440包括数据管理器442、数据库表格列表444和解决方案管理器446。如图所示,数据管理器442包括开发者可访问的一个或多个数据库的列表。如图所示,数据库表格列表444示出所选择的数据库表格的内容(例如,这里,数据库“Gateway_full,sdf”的表格“es04purchase_order_list.sdf”)。如图所示,解决方案管理器446列出可以作为应用模板导入的配置文件、数据存储文件和/或开发库。可以接收同步请求(318)。举例来说,在一些方面,步骤318可以包括接收同步请求的GDDE204。如果接收了同步请求,则经更新的数据存储文件被导出到移动设备(320)。具体地说,图4C示出数据存储文件232的GUI480,其示出当移动设备208连接到网络(例如,网络106)时应用与数据库的同步。例如,⑶I480可以示出已经通过同步处理更新了特定数据库表格(例如,通过勾号)的用户。已经描述了许多实施方式。然而,应当理解,可以进行各种修改。举例来说,可以执行除了图3中所示的那些方法之外在这里描述的其它方法。而且,示出的方法300的步骤可以以不同次序执行,要么同时执行要么顺序执行。而且,除了方法300中示出的那些步骤之外还可以执行多个步骤,并且方法300中示出的一些步骤可以省略而不脱离本公开。因此,其它实施方式在后附权利要求的范围内。权利要求1.一种利用计算系统执行的用于开发移动应用的方法,该方法包括从可通信地连接至网络的用户接收对一个或多个网关服务数据类别的选择;从该用户接收对可操作用于可通信地连接至该网络的移动设备的操作平台的选择;生成配置文件,其包括对与一个或多个网关服务数据类别关联的网关服务数据的选择以及所述操作平台选择;生成与所述操作平台选择关联的数据存储文件和开发库;将所述配置文件、数据存储文件以及开发库传递到可通信地连接至所述网络的储存库;以及生成包括所述配置文件、数据存储文件以及开发库的应用模板,其中在所述移动设备在通信上从所述网络断开连接时根据所述应用模板在移动设备上开发移动应用。2.如权利要求I所述的方法,还包括将所选择的网关服务数据传递到所述储存库。3.如权利要求I所述的方法,还包括从所述用户接收对所述应用模板的请求;以及在所述移动设备可通信地连接至所述网络时所述应用模板将从所述储存库导出到所述移动设备。4.如权利要求2所述的方法,其中,将所述应用模板从所述储存库导出到所述移动设备包括通过应用开发环境将所述应用模板从所述储存库导出到所述移动设备。5.如权利要求2所述的方法,还包括经由所述网络,接收来自根据所述应用模板在所述移动设备上开发的移动应用的同步请求;以及响应于所述同步请求,将经更新的数据存储文件导出到所述移动设备。6.如权利要求5所述的方法,其中,将经更新的数据存储文件导出到所述移动设备包括基本上将与所选择的一个或多个网关服务数据类别关联的全部网关服务数据都导出到所述移动设备。7.如权利要求5所述的方法,其中,接收所述同步请求包括从所述移动设备接收对网关服务数据内多个数据表格中的数据表格的请求,该方法还包括生成包括所请求的数据表格的、经更新的数据存储文件。8.如权利要求I所述的方法,还包括从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择;以及生成包括对所述一个或多个数据库功能的选择的开发库。9.如权利要求8所述的方法,其中从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择包括接收对多个数据库功能中的一个或多个数据库功能的预定集合的选择。10.如权利要求I所述的方法,其中,生成包括与所选择的一个或多个网关服务数据类别关联的网关服务数据以及所述操作平台选择的配置文件包括从所述用户接收对现有配置文件的选择。11.一种包括被具体实现在有形的非瞬时计算机可读介质上的指令的装置,该指令可操作用于当被运行时导致计算系统执行下列操作从可通信地连接至网络的用户接收对一个或多个网关服务数据类别的选择;从该用户接收对可操作用于可通信地连接至该网络的移动设备的操作平台的选择;生成配置文件,其包括对与一个或多个网关服务数据类别关联的网关服务数据的选择以及所述操作平台选择;生成与所述操作平台选择关联的数据存储文件和开发库;将所述配置文件、数据存储文件以及开发库传递到可通信地连接至所述网络的储存库;以及生成包括所述配置文件、数据存储文件以及开发库的应用模板,其中在所述移动设备在通信上从所述网络断开连接时根据所述应用模板在移动设备上开发移动应用。12.如权利要求11所述的装置,其中,所述操作还包括将所选择的网关服务数据传递到所述储存库。13.如权利要求11所述的装置,其中,所述操作还包括从所述用户接收对所述应用模板的请求;以及在所述移动设备可通信地连接至所述网络时将所述应用模板从所述储存库导出到所述移动设备。14.如权利要求12所述的装置,其中,将所述应用模板从所述储存库导出到所述移动设备包括通过应用开发环境将所述应用模板从所述储存库导出到所述移动设备。15.如权利要求12所述的装置,其中,所述操作还包括经由所述网络,接收来自根据所述应用模板在所述移动设备上开发的移动应用的同步请求;以及响应于所述同步请求,将经更新的数据存储文件导出到所述移动设备。16.如权利要求15所述的装置,其中,将经更新的数据存储文件导出到所述移动设备包括基本上将与所选择的一个或多个网关服务数据类别关联的全部网关服务数据都导出到所述移动设备。17.如权利要求15所述的装置,其中,接收所述同步请求包括从所述移动设备接收对网关服务数据内的多个数据表格中的数据表格的请求,该方法还包括生成包括所请求的数据表格的、经更新的数据存储文件。18.如权利要求11所述的装置,其中,所述操作还包括从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择;以及生成包括对所述一个或多个数据库功能的选择的开发库。19.如权利要求18所述的装置,其中从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择包括接收对多个数据库功能中的一个或多个数据库功能的预定集合的选择。20.如权利要求11所述的装置,其中,生成包括与所选择的一个或多个网关服务数据类别关联的网关服务数据以及所述操作平台选择的配置文件包括从所述用户接收对现有配置文件的选择。21.一种计算系统,包括一个或多个存储器模块;一个或多个处理器;图形用户接口;以及存储在所述一个或多个存储模块上的上下文服务模块,该上下文服务模块当被所述一个或多个处理器运行时可操作以执行以下操作从可通信地连接至网络的用户接收对一个或多个网关服务数据类别的选择;从该用户接收对可操作用于可通信地连接至该网络的移动设备的操作平台的选择;生成配置文件,其包括对与一个或多个网关服务数据类别关联的网关服务数据的选择以及所述操作平台选择;生成与所述操作平台选择关联的数据存储文件和开发库;将所述配置文件、数据存储文件以及开发库传递到可通信地连接至所述网络的储存库;以及生成包括所述配置文件、数据存储文件以及开发库的应用模板,其中在所述移动设备在通信上从所述网络断开连接时根据所述应用模板在移动设备上开发移动应用。22.如权利要求21所述的计算系统,所述操作还包括将所选择的网关服务数据传递到所述储存库。23.如权利要求21所述的计算系统,所述操作还包括从所述用户接收对所述应用模板的请求;以及在所述移动设备可通信地连接至所述网络时将所述应用模板到从所述储存库导出所述移动设备。24.如权利要求22所述的计算系统,其中,将所述应用模板从所述储存库导出到所述移动设备包括通过应用开发环境将所述应用模板从所述储存库导出到所述移动设备。25.如权利要求22所述的计算系统,所述操作还包括经由所述网络,接收来自根据所述应用模板在所述移动设备上开发的移动应用的同步请求;以及响应于所述同步请求,将经更新的数据存储文件导出到所述移动设备。26.如权利要求25所述的计算系统,其中,将经更新的数据存储文件导出到所述移动设备包括基本上将与所选择的一个或多个网关服务数据类别关联的全部网关服务数据都导出到所述移动设备。27.如权利要求25所述的计算系统,其中,接收所述同步请求包括从所述移动设备接收对网关服务数据内的多个数据表格中的数据表格的请求,该方法还包括生成包括所请求的数据表格的、经更新的数据存储文件。28.如权利要求21所述的计算系统,所述操作还包括从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择;以及生成包括对所述一个或多个数据库功能的选择的开发库。29.如权利要求28所述的计算系统,其中从所述用户接收对多个数据库功能中的一个或多个数据库功能的选择包括接收对多个数据库功能中的一个或多个数据库功能的预定集合的选择。30.如权利要求21所述的计算系统,其中,生成包括与所选择的一个或多个网关服务数据类别关联的网关服务数据以及所述操作平台选择的配置文件包括从所述用户接收对现有配置文件的选择。全文摘要本公开的实施方式包括一种方法、系统、装置以及存储介质,用于从可通信地连接至网络的用户接收对一个或多个网关服务数据类别的选择;从所述用户接收对可操作用于可通信地连接至所述网络的移动设备的操作平台的选择;生成配置文件,其包括对与一个或多个网关服务数据类别关联的网关服务数据的选择以及所述操作平台选择;生成与所述操作平台选择关联的数据存储文件和开发库;将所述配置文件、数据存储文件以及开发库传递到可通信地连接至所述网络的储存库;以及生成包括所述配置文件、数据存储文件以及开发库的应用模板,其中在所述移动设备在通信上从所述网络断开连接时根据所述应用模板在所述移动设备上开发所述移动应用。文档编号G06F17/30GK102810090SQ20111014306公开日2012年12月5日申请日期2011年5月30日优先权日2011年5月30日发明者陈颖宇,王志坚申请人:Sap股份公司