首页 / 应用程序生成器

应用程序生成器失效专利 发明

技术内容

本发明涉及远程可执行的计算机程序。更具体地说,本发明涉及定 制的远程访问、后台数据库应用程序的创建和使用。远程可访问应用程 序开发的现有系统和技术苦于在能力和简便使用方面存在局限性。因 此,有必要对远程应用程序的生成和使用技术有更进一步的贡献和改 善。 概述 本发明的一个目标是提供一种经改进的、用于产生和使用后台数 据库应用程序的系统和方法。 这个目标及其它目标可以通过这里公开的本发明的不同形式来实 现,本领域的技术人员将会想到给出的本发明。 本发明的一个形式提供了一种用于产生应用程序的、基于网络的 用户界面(UI)。该应用程序配置信息保存在一个数据库中,该数据库 具有应用程序本身使用的数据。生成应用程序的链接,用于程序设计者 或其他用户的远程访问,而产生的应用程序配置信息被输出,使用一种 脚本解释器(引擎)在各种各样的客户端平台上进行远程执行,以将配 置文件转换为用户界面组件、业务规则,并且将UI组件映射到后端(服 务器端)数据库字段。 附图的简短说明 附图1是根据本发明一个实施例的远程可访问应用程序的生成和使 用系统的方框图。 附图2是本发明一个实施例中典型的客户端、应用程序生成器服务 器和数据库服务器组件的方框图。 附图3是根据本发明的一个实施例的典型的客户端装置和应用程序 生成器服务器间通信的信号映射。 附图4是描述根据本发明的一个实施例的应用程序生成器服务器操 作的流程图。 附图5是用于远程使用主效率应用程序(hosted productivity application)以及一个或多个产生的应用程序系统的方框图。 示出实施例的描述 为了加深对本发明原理的理解,现在对在附图中示出的实施例做一 些说明,并且对其使用专用语言来描述。然而,可以理解的是并不是因 此而限制本发明的范围;描述或示出的实施例的任何变化和更进一步的 修改,以及其中示出本发明原理的更进一步应用都是可以想到的,即这 些通常都可以由与本发明有关技术领域的技术人员想到。 一般地,关于附图1-4描述的应用程序的生成和使用系统以及方 法为用户提供了一个简单而有效的方法来创建后台数据库应用程序(即, 那些允许一个或多个用户登录、修改、查看和删除保存在远离客户端装 置数据库中的数据的应用程序)。这些应用程序能够由程序设计者以及 有权访问应用程序生成器(“APPGEN”)服务器的人作为主应用程序来 使用。为便于这种访问,这种系统可以产生一个统一资源定位器(URL)、 超级连接或访问应用程序的这种用户使用的其它连接。在有些形式中, 配置信息可以输出到一个配置文件,该配置文件可由任何各式各样的客 户端装置中的脚本引擎或其它客户端软件读取,以给出用于登录数据应 用程序的用户界面、执行业务规则和对输入数据验证要求,在应用程序 法中产生数据的输出报告,维持同步,等等。这些形式将在下文中更详 细地加以论述。 附图1示出系统20的总体框图,包括应用程序生成器服务器30、数 据库服务器40、网络50,以及客户端装置,其包括工作站60a、服务器60b、 手持装置60c和网络蜂窝式电话60d(这些客户端装置一般地被称为“典 型的客户端”或“客户端装置”60)。在这个说明性的实施例中,任何 客户端装置60可以经过网络50访问应用程序生成器服务器30。在该实施 例中,这些连接不一定是恒定不变的(或者几乎是恒定不变的)。例如, 经过网络蜂窝式电话技术的访问多少比陆地线路连接更昂贵,因此移动 电话连接通常仅仅在需要时才提出和采取。另一方面,应用程序生成器 服务器30和数据库服务器40间的连接,最好是通过一个非常可靠的媒 体,如本领域所众所周知的。然而,网络50通常可以是局域网(LAN)、 例如国际互联网络的广域网(WAN)、或本领域的技术人员可能想到的 其它网络类型的形式。 一般而言,客户端装置60经过网络50连接到应用程序服务器30,其 使用由客户端装置60的用户提供的配置信息创建一个应用程序。这些应 用程序配置信息保存在数据库服务器40中待将来使用。程序设计者或客 户端装置60的其它用户然后访问APPGEN服务器30中的应用程序,添加、 使用和删除所需要的应用程序数据。数据库服务器40存储这些数据,以 用于后来由用户控制的编辑、查看以及删除。 继续参考附图1的同时现在考虑附图2,其显示了典型客户端60、 APPGEN服务器30和数据库服务器40的组成部分。在该实例中,典型的客 户端60具有处理器61、一个或多个输入组件62、随机存取存储器(RAM) 63、一个或多个输出组件64、只读存储器(ROM)和/或电可擦除可编程 只读存储器(EEPROM)64、存储器67,以及一个或多个网络与通信组件 69。应当注意,典型的客户端60可以包括超过一个处理器或CPU以及一 个或多个类型的存储器,其中存储器63、65和67表示一个或者多个类型。 处理器61可以包括配置为独立单元的一个或者多个组件。换句话说,多 组件形式的时候,处理器61可以具有位于相对于其它组件远端的一个或 多个组件。处理器61的一个或多个组件可以是包括数字电路、模拟电路 或者两者结合的电子种类。在一个实施例中,处理器61是一个传统的、 集成电路微处理器方案,例如由INTEL公司提供的一个或多个PENTIUM III或PENTIUM4处理器,或由MOTOROLA公司提供的一个或多个680x0微 处理器。 存储器元件63、65和67可以包括一种或多种固体电子元件存储器、 磁存储器或者光存储器,仅仅举了几个例子。作为非限制实例,存储器 63、65和67可以包括固体电子元件RAM、顺序可访问存储器(SAM)(例 如先进先出(FIFO)类或者后进先出(LIFO)类)、可编程只读存储器 (PROM)、电可编程只读存储器(EPROM),或EEPROM;光盘存储器(例 如DVD或CD-ROM);磁性编码硬盘、软盘、磁带或盒式磁盘媒体;或任 何这些存储器类型的结合。同样地,存储器63、65和67可以是易失的、 非易失性的、或易失的和非易失性的种类的混合式结构。 一个或多个操作者输入组件62可以包括例如键盘、鼠标、跟踪球、 光笔和/或扩音器,仅举几个典型的例子。同样,一个或多个输出组件64 可以包括例如监视器或其它查看装置,或扩音器。一个或多个网络/通信 组件69可以包括一个或多个网络接口卡(NICs)、其它卡、接口或能够 通过一个或多个有线的或者无线网络提供连接的其它装置,包括本领域 公知的的网络50。 在这个实施例中,APPGEN服务器30包括处理器31、RAM 33、ROM 35、 存储器37和一个或多个网络/通信元件39,尽管它们可以不必包含任何具 体客户端60对应部分的相同部件,但是它们分别提供对应元件61、63、 65、67和69相同的功能。同样地,数据库服务器40包括处理器41、RAM43、 ROM45、存储器47和一个或多个网络/通信元件49,同样其分别提供对应 元件61、63、65、67和69相似的功能,然而它们可以或可以不必包含典 型客户端60或APPGEN服务器30部分对应的同样的元件。 典型客户端装置60和APPGEN服务器30间发送的一系列示例性信号 作为非限制实例如图3所示,并且现在继续参考附图1的组成部分加以讨 论。在这个实例中,从客户端60到APPGEN服务器30的配置信息信号70表 示应用程序的用户选择配置参数,该应用程序是用户希望产生的应用程 序。这个信息由用户使用本领域已知的一种或多种方法输入,例如通过 使用客户端应用程序或一系列HTML表格。 在这个实例中提供的用于输入配置信息的用户界面,优选的适合 于创建连接的客户端装置60类型,并且优选的为用户提供几个有效选项 用于数据字段的配置,所述数据字段由这些应用程序的用户所使用,以 及创建用户希望允许的数据的处理。存在于这个示范性实施例中的其它 配置信息包括:允许查看的用户的第一组用户名,修改,和删除这些应 用程序的数据(读写访问),仅允许查看这些数据(只读访问)的用户 的第二组用户名,用户界面配置(包括用户界面单元例如按钮、列表、 标签和输入单元,其具有外形、特征和位置),等等。这些配置信息保存 在数据库42中,其有效地创建一个具有所请求配置可用的新的应用程 序。创建事件(70a)被确认,一列可用的应用程序在响应信号71上被提 供。 该新的应用程序的创建者或所有者在信号72上提交一个新的认证 管理功能请求。这些功能可以包括,例如编辑、修订、扩充或者删除在 信号70中提供的全部或者部分配置信息。这种请求的认证可以包括或使 用本领域公知的任何合适的用户和/或装置认证技术,例如基于HTTP的 “基本”或“摘要”认证、基于表格的用户名/密码输入、生物测定技 术,等等。如果APPGEN服务器30确定这种管理功能的执行是由授权执行 这些操作(或取决于授权方案的颗粒性的“那些操作”)的用户所请求, 那么它执行(72a)所请求的应用程序管理功能(因此更新数据库42), 并且在信号73上向客户端提供性能和UI更新的结果。 接下来,所有者使用任何可行的技术(参见上述信号72的讨论)验 证他或她自己,向服务器30发送一个注册信号74。APPGEN服务器30然后 开始(74a)一个经用户会话。使用确认信号75,服务器30确认客户端装 置60的服务器注册是成功的。APPGEN服务器30然后传输信号76给客户端 装置60。信号76传递信息给客户端装置60,以启动通过用户使用的用户 界面显示,以在应用程序的数据上执行查看、编辑、报表以及删除操作。 利用这个用户界面,认证用户在信号77上向APPGEN服务器30发送新的数 据。随着用户的输入,呈现在客户端装置60上的用户界面最好执行业务 逻辑规则。这些规则可以包括,例如显示规则,基于向其他的字段执行给 定公式显示值的用户界面字段,取决于数据字段或计算值的显示风格等 等,表格登录规则(字段的大小限制,数据格式,必要条件等等),数据库 更新规则以及数据验证规则。当接收到新的数据,APPGEN服务器30经过 数据库服务器40更新(77a)数据库42,然后确认这种更改,经过信号78 更新客户端装置60上的用户界面。 在另一个操作中,客户端装置60的用户修改现有的应用程序数据。 当修改已经通过由用户界面执行的验证和更新条件,那么客户端装置60 向APPGEN服务器30发送一个“经修改的数据”信号79。APPGEN服务器30 再次确认修改并且因此更新(77a)数据库42。APPGEN服务器30以信号80 响应,其再次更新客户端装置60上的用户界面并且确认更改。 在另一项处理中,客户端装置60的用户删除现有的应用程序数据。 遵循通常的合法性和更新检验,客户端装置60发送信号81,向APPGEN服 务器30请求删除来自数据库42的数据。在自身验证过程成功地完成之后, APPGEN服务器30更新(77a)数据库42并且以信号82响应,所述信号确认 这种更改并且更新客户端装置60上的用户界面。只要任何合法性或更新 验证失败,那么用于纠正的错误信息和/或提示,使用本领域公知的装置 和方法,经过客户端装置60呈现给用户。当用户的修改完成之后,他或 她退出应用程序,该事件即是通过客户端装置60向APPGEN服务器30发送 退出信号83实现的。APPGEN服务器30结束(83a)这种用户会话,并且 可以选择性地更新(未示出)客户端装置60上的用户界面,以反映这种 会话的成功结束。 当只允许只读访问的用户组中的一个用户经过用户注册信号84访 问登录APPGEN服务器30时,APPGEN服务器30开始(84a)一个用户会话, 同样经过信号85确认,并且给出一个用户界面(不同于由信号76描述的 用户界面),该用户界面用于经过信号86的应用程序只读使用。这种用 户界面为用户提供了一个装置,用于查看(也许是有限的部分)与这个 应用程序有关的数据。利用这个用户界面,客户端装置60的用户可以通 过检索查询信号87提交一个查询,该查询用于检索应用程序数据所有或 者选择部分的一个具体视图。与数据库服务器40连接的APPGEN服务器30 检索数据库42中有关的数据,并且提供需要经过搜索结果信号88创建所 请求视图的信息。当用户已经结束查询和查看这种数据时,用户退出应 用程序,客户端装置60向APPGEN服务器30发送用户注销信号89,其结束 (89a)这种特许用户会话。 现在结合附图2的元件,本发明的一些实施例中所执行的步骤将在 附图4中加以描述。处理过程100从“开始”点101开始,并且在方框103 中初始化服务器。这种初始化让服务器准备接收来自远程装置的连接, 检验和一个或者多个由这种服务器使用的数据库的连接,以用于存储和 检索应用程序和应用程序数据,以及执行其它初始化任务,如本领域技 术人员所执行的。服务器然后等待来自远程装置的输入连接。 服务器在输入块105接收一个输入信号。在不同的示例性实施例中, 这种输入信号可能采取HTTP请求、远程过程调用、异步信息送达的形式, 或本领域技术人员能想到的其它信号。然后,一般地,服务器决定到达信 号的类型,然后采取将在下文中描述的适当的操作和/或提供一个适当的 响应。在不同的实施例中,每个输入信号可以是在处理器31执行的一个 单独的线程中处理,在一个事件或轮询循环中的单个线程或使用其它本 领域技术人员能想到的技术。 在判定块110,确定输入信号是否表示这样一个请求,该请求由远 程装置的用户请求以验证访问该服务器的一个或多个应用程序。如果是 这样的话(在判定块110中肯定的结果),服务器在方框111中正如以上所 讨论的那样来验证用户。如果授权处理过程失败(在判定块113中否定 的结果)服务器返回到等待输入信号(“等待状态”处理方框105),使 用本领域公知的技术随意地以一个表示试图认证失败的信号作出响应。 如果认证成功(在判定块113肯定的结果),则服务器在方框115开始一个 新用户会话,如本领域公知的。这种处理过程一般地包括会话标识符的 分配,其存储在服务器中,并且在会话期间提交来自客户端的每个请求。 服务器然后在方框117响应输入信号,这是通过提供足够的信息向用户 显示(经过客户端60的输出组件)一列通用的应用程序,然后返回到它 的等待状态。 如果输入信号不是请求一个新的验证会话(在判定块110否定的结 果),则服务器决定输入信号是否一个结束会话、或“退出”服务器的 请求。如果是这样的话(在判定块120肯定的结果),那么服务器在方框125 中释放用户会话有关的资源并且使会话标识符无效。然后服务器返回到 它的等待状态。 如果输入信号不是结束注册会话的请求(在判定块120否定的结 果),则服务器决定输入信号是否是创建一个新的应用程序的请求(判 定块130)。如果是这样的话(在判定块130肯定的结果),则在方框131 服务器提示用户该新的应用程序的配置信息。在输入块133服务器接收 那些配置信息并且在方框135将它存储在系统数据库42中。正如以上的 讨论,这些提示/接收/存储过程可以包含提供一个或多个HTML表格、反 复验证以及接收附加配置信息、限制有效特性输入等等。 配置获取处理过程(方框131,133以及135)将会从用户处获得一 个或多个应用程序数据库中建立字段的名称和数据类型、数据输入的字 段长度以及有效性规则等等。在一些实施例中,配置信息同时(明确地 或内隐地)确定用于新记录的缺省值、显示格式(当前值、日期、时间、 指数记数法等等)、表示一个具体的字段是否可由用户编辑的标记、和 /或在每一管理者、控制者以及用户群中的用户默认UT表格。配置信息 可以包括一个或多个预先配置数据类型、自定义数据类型或二者结合的 索引。它最初可以取自现有的应用程序配置的副本,或可以是从暂存区 中创建。一旦配置信息已经接收并且存储,服务器就返回到它的等待状 态。 如果输入信号不是产生一种新的应用程序的请求(判定块130否定 的结果),则服务器决定这种输入信号是否是向现有的应用程序添加数 据的请求(判定块140)。如果是(判定块140肯定的结果),服务器在 方框145中确认和存储这种新建的数据、更新客户端的用户界面来反映 这种数据的接收。服务器然后返回到它的等待状态。 如果输入信号不是一个添加新建数据的请求(在判定块140否定的 结果),则服务器决定输入信号是否是一个为应用程序输出该配置信息 的请求(判定块150)。如果是这样的话(在判定块150肯定的结果),那 么服务器产生一个配置文件并且将该文件传输给客户端装置。服务器然 后返回到它的等待状态。在这个实施例中,配置文件可以由客户端脚本 引擎解释来给出一个用户界面,所述用户界面用于该输出的应用程序, 使客户端装置的用户“执行”该应用程序而脱离服务器,包括认证、UI 以及添加、删除、编辑以及查看该应用程序的数据。用户界面同时允许 客户端装置的用户同步进行这种具有服务器上应用程序数据的远程修改 的数据(参见下面方框175的讨论)。该配置文件可以采取数据库文件、 XML(或其扩展)文件、由多用途的脚本引擎可执行的脚本的形式,或 本领域技术人员可能想到的其它表格。 如果输入信号不是应用程序输出的请求(在判定块150否定的结 果),那么服务器决定输入信号是否是一个产生连接到应用程序的请求 (判定块160)。如果是这样的话(在判定块160肯定的结果),那么服务 器产生一个连接,例如文本URL、包含URL的数据文件、建立指定连接可 执行程序或其它本领域的技术人员能够想到的形式。这种连接以一种编 码的或者未编码的格式可以包含指定应用程序的标识符,用于产生连接 的标识符、经过连接允许使用该应用程序访问的级别或范围、用于使用 该连接的认证参数(例如用户或组标识符、使用的特定口令以及可接受 的认证协议)、连接上的时间限制或者使用计数限制和/或连接中的其 它元素。换句话说或另外,一个或多个这些连接数据元素可以保存在数 据库42中,并且由产生的连接中的数据库主键所参考。一旦该连接产生 并且可用或发送给该客户端装置,那么服务器返回到它的等待状态。 如果输入信号不是产生应用程序连接的请求(判定块160否定的结 果),则服务器决定这种输入信号是否是对具有存储在这种服务器中应 用程序数据的远程数据(判定块170)进行同步的请求。如果是这样的 话(在判定块170肯定的结果),在方框175服务器继续同步在这种远程 装置具有服务器端应用程序数据的数据。同步可以使用任何适当的方法 进行。当同步完成,服务器返回到它的等待状态。如果输入信号不是同 步请求(在判定块170否定的结果),则服务器决定这种输入信号是否是 关闭命令(判定块180)。如果不是(在判定块180否定的结果),服务 器处理一个默认操作,例如返回到它的等待状态,在客户端装置显示一个 错误信息(未显示),或其它本领域技术人员能够想到的操作。如果这 种输入信号是一个关闭命令(在判定块180肯定的结果),则这种服务器 关闭并且处理过程100在“结束”点199结束。 本发明更进一步的实施例现在结合附图5中的系统200加以讨论。 客户端260访问应用程序服务器220上的主应用程序(例如,字处理或电 子表格应用程序),其由本领域众所周知的应用程序服务供应商(ASP) 210操作。应用程序服务器220和应用程序生成器服务器230进行通信, 其也是由ASP 210操作。在这个实施例中,向所产生的应用程序的所有 者和/或用户提供工具,以创建数据登记项表格,其与应用程序连接, 然而经过应用程序服务器220处理的应用程序可用来添加、编辑、查看 和/或删除这种产生的应用程序的原始数据(和/或它的脱机副本)。同 样地,提供工具以产生来自所产生的应用程序的数据报告,其在这种主 应用程序中是以直接可用的、可查看的以及可处理的形式。在主应用程 序上输入和/或修改的数据可以在本地存储(在客户端上),并且后来与 这种产生的应用程序数据库同步,或可以以穿越(pass-through)方 式操作来实时更新这种产生的应用程序数据,同时使用这种表格做出校 订。 代替附图5中示出的系统,效率应用程序和/或它们操作的文档驻 留在客户端,而且包括这种到所产生应用程序数据的连接。在一些这样 的实施例中,用于客户端效率应用程序的本地网络和数据库为所产生的 应用程序数据平衡地提供连接。在其它这种实施例中,客户端效率应用 程序被加强来访问那些数据。 虽然本发明的一些方面已经相当详细地加以论述,但是可以理解 的是本领域的技术人员不经过过多实验就可以得到各种各样的修改。例 如,不同的实施例可以利用一个或多个以下变化:任何适合于系统中装 置的有线协议都是可以使用的,并且可以提供附加的网络和/或连接; 关于数据库40(附图1和2)的数据库功能可以结合关于APPGEN服务器30 描述的功能,以用于在单个计算机系统上执行,或如上所述用于那些装 置的功能可以分配给几个计算装置;代理服务器可以放在网络50和 APPGEN服务器30之间,根据它们的来源、内容或其它特征或条件来重新 定向输入查询;负荷平衡技术可以用来在服务器端处理过程和/或通过 这种系统路由信号;根据网络地址、应用程序标识符或其它数据元素, 用户和/或装置标识符可以明确地或内隐地互换(正如以上的讨论);并 且使用本领域公知的技术,提供从外部文件输入用户数据和/或数据库。 在另一个实施例中,输出配置文件存储在服务器上(或实时产生), 然而是使用浏览器插件或者其它代理机构按要求在客户端上执行的。这 种用户代理经常提供附加输入/输出和/或处理过程能力,而非天然地存 在于一个给出的用户环境中,并且在本发明中起到杠杆作用来删除一些 资源,其来自如上所述涉及脚本读取实施例中的客户端装置。 在另一个实施例中,数据可以在产生的应用程序之间交换。例如, 参考附图5,一个“地址薄”应用程序232可以连接到APPGEN服务器230 上的“产品出货”应用程序234。使用产品出货应用程序234创建的发货 单和发货标签可以从地址薄应用程序232中检索当前姓名和地址信息; 同样地,例如地址薄232可以给一个具体的联系人显示有关最近的发货数 据。 在另一个实施例中,参考附图1,APPGEN服务器30可以给出一个″ 网络服务″接口由客户装置60使用,而不呈现出由用户控制。使用本领 域公知的技术,通过自动化数据交换及其他网络服务方法,客户端装置 可以包含应用程序间的自动化数据交换,而无需用户干涉。 所有出版物、现有的应用程序及其他这里引用的文档在此一并引 用以作参考,如同每一个已经分别结合参考并完全阐明。 虽然本发明已经以附图和上述说明示出和详细描述,但是这些被认 为是说明性的,而非在性质上的限制,可以理解的是仅仅示出和描述了 优选的实施例,相关领域技术人员能够想到的所有变化和修改都是被希 望保护的。 相关申请的引用 优先权要求共同未定的美国暂定专利申请60/291744,其申请日是 2001年5月17日。 背景