因此,本发明的目的是提供一种用于远程图形
用户界面数 据库化的方法和系统。本发明代表下一代的数据库处理。显示 (或
图形用户界面-GUI)由远程设备供应。远程设备发送构件 定义和构件处理的说明至客户端设备。构件处理的说明描述构 件与常驻在客户端设备中的二进制组件对象模型模
块之间的行 为。客户端设备由构件信息创立一个GUI页面。客户端设备需 要一个数据库,该数据库使用由本地二进制组件对象模型模块 调用的本地数据库。该数据库可以常驻于客户端设备、服务器 设备或其它设备中。因为显示是由预先定义的构件产生的,所 以显示图形用户界面编码更小。
因为图形用户界面在服务器上,所以本发明使得维护费用 减少。当
应用软件升级时,只有服务器中的编码升级。这防止 在一个系统中软件的多个版本。当升级的应用软件被装载到客 户端设备上时,该客户端设备具有了该应用软件的升级版本。
本发明提高了安全性。因为应用软件不是永久性地驻留于 客户端设备中,所以客户端设备更难于被黑客入侵。该编码只 在需要知道
基础部分时才是可用的。此外,一个可选择的安全 模块可以被置于客户端设备中以防止黑客入侵,而且所有编码 都是通过数字化签名的。
本发明是轻量型的。本地二进
制模块可只有30K至100K 大小。例如,该数据库查询语言模块和安全模块可以各为50K 大小。临时存储在客户端设备上的非二进制GUI可以为10K至 50K大小。GUI可以被存储在高速缓冲
存储器中。高速缓冲存 储器防止直接内存存取。如果没有变化,GUI可由高速缓冲存 储器装载,或者可以由应用程序服务器装载。小规模的本地二 进制模块及GUI非常适合于在缓慢链接上的嵌入式应用程序和 远程应用程序。
本发明允许对象重用,允许许多不同的应用程序使用组件 对象模型模块。这些不同的应用程序包括销售端、办公室管理 系统以及学校管理系统。
本发明允许远程配置嵌入设备,诸如
打印机和路由器。配置 信息可以被方便地为网络上所有的嵌入设备显示。
应当理解的是,前面的概述以及随后的详细描述都是示例 性和解释性的,并不对本发明的
权利要求构成限制。作为说明 书一部分的
附图举例说明了本发明的
实施例,并与前面的概述 一起用来解释本发明的原理。
现在详细参考本发明优选的实施例,它们的一些实例在附 图中示出。
本发明涉及一种远程图形用户界面数据库化的方法和系 统。常驻客户端设备上的跨平台组件对象模型(XPCOM)模块 常驻客户端设备请求用户确认、配置嵌入设备、产生显示屏幕 以及通过与外部设备通信与数据库
接口。客户端设备使用来自 服务器设备的构件和对象界面数据产生操作性连接于常驻二进 制组件对象模型模块的显示屏幕。此二进制XPCOM模块查询 数据库、查询嵌入设备、确认用户或者产生报告。图1A和1B 表示本发明的基本过程5,6的优选实施例,其中客户端设备 在执行数据库操作6之前请求授权5。术语“数据库”指由数 据库管理系统产生和管理的一套相关文件,其中结构化查询语 言(或等价物)被用于询问和处理数据库中的数据。每一个面 向显示的构件可以被作为一个URL访问。
在图1A中,开始10,通过手工输入用户名、插入
智能卡、
生物测定方法或类似方法,客户端设备上的授权模块20接收用 户登陆信息15。授权模块20提交一个授权请求用于确认25。 一个授权服务器或其它设备处理此请求并发送回客户端设备一 个确认决定。该决定可以作为一个标志位、一个数据字或一个 通过安全信道提供的令牌被提供。如果登陆授权被拒绝30,处 理过程返回以等待新的登陆15。如果该客户端设备接收一个有 效格式的令牌(或者以别的方式确定为有效授权)30,则该客 户端设备存储该授权信息用于以后使用,并且该客户端设备的 用户然后可以选择一个应用程序运行35。用户授权优选地以返 回的令牌提供给客户端设备。这种令牌被用于通过网络来验证 用户,例如访问一种服务(程序)。
图1B表示访问数据库应用程序的过程步骤。在本方法中, 应用程序驻留在服务器中,而数据库转换程序驻留在客户(或 用户)端设备上。对于一个有效的授权50,用户选择一个应用 程序55执行。可选择地,该客户端设备可只运行单个应用程序。 当应用程序不常驻在客户端设备上时,客户端设备发送应用程 序请求60至网络服务器65。应用程序优选地以与网页相同的 方式被访问。应用程序优选地被编写成提供构件及构件处理和 控制信息。应用程序可以是文档对象模型。作为一个例子,这 些构件被以扩展用户界面语言(XUL)编写,而构件处理和控制 信息可以Java描述语言(JavaScript)编码进行描述。请求可以包 括安全信息,诸如令牌,其中网络服务器验证该令牌并发送应 用程序65或其功能部分到客户端设备或拒绝访问客户端设备。 然后该客户端设备通过图形用户界面显示应用程序70,该图形 用户界面通过一对象界面(如Java描述语言对象界面)表示出 构件的集合。该客户端设备询问相关的数据库75。该询问也可 以包括诸如令牌的安全信息。该询问可以是行和项读取形式, 其中数据作为字符串被返回。例如,23可以作为ASCII(用 于信息交换的美国标准编码)字符2和ASCII字符3被返回。 一排字符串(例如,“字符串0”、“字符串1”、“字符串2”、等 等)可以被返回。例如,为了询问包括年龄、名、姓及性别, 包括“23”、“利莎”、“柔思”及“F”的字符串可以被返回。数 据库80可以常驻在服务器设备、客户端设备或其它设备中。当 接受到数据库结果时,数据库结果被显示出来85。继续处理直 到该应用程序数据库询问结束。
图2表示本发明的过程200的更深层示图,其中授权过程 210先于应用程序和数据库搜索过程240。当在212一个用户登 陆时,该客户端设备的内部安全模块显示214显示登陆216。 在一个有效的用户键入密码218或其它用户授权方法(包括指 纹、生物测定方法、按钮键、智能卡等等)之后,安全模块 220询问服务器的授权程序222以确认用户。假设密码已经被 正确输入,服务器发送确认
回执,诸如信息包或令牌,至安全 模块224。在本发明中,授权是一个可选过程。
虽然本发明不限于特定的浏览器环境,但是为Mozilla浏 览器已经提供了一种具体的实现方法。该具体的实现方法优选 使用1.0版本或更高版本的Mozilla或者6.0版本或更高版本的 Netscape浏览器。在该具体的实现方法中,XPAUTH、XPSQL、 XPCOM、XPCONF及XPREPORT是二进制跨平台组件对象模 型(XPCOM模块),即常驻于客户端设备的动态装载和链接的 库模块,其各执行其具体功能。XPCOM模块可以在各种平台 上运行,诸如Windows、VMS、Linux和嵌入式平台等等。只 要浏览器在该平台上运行,XPCOM模块就可在该平台上运行。
XPAUTH是一个XPCOM模块,其使用在每一数据库安全 系统上的可配置的认证方案进行用户授权。可选择地,XPAUTH 可以具有一主模块和用于处理独特的安全协议的模块。 XPAUTH可以访问一个精细度访问控制目录(ACL)或者可以 提供对整个数据库(或网络上提供的其它服务)的访问。ACL 返回一个令牌,该令牌被用于验证对于网络服务器、数据库、 文件服务器、邮件服务器或其它服务器,或者需要具有访问限 制的服务的访问。XPAUTH可以使用Kerberos协议,Kerberos 协议是设计为通过使用密钥密码系统为客户/服务器应用提供 强有力认证的一种网络认证协议。一旦获得认证,XPAUTH保 存信息并在需要的地方产生头信息。
XPSQL包含两部分:XPCOM模块和Java描述语言(JS)数 据库类,从而使数据库应用程序开发者容易使用。XPSQL XPCOM模块通常以C++编写以便更快地执行,但也可以 Python编写以便更快地开发。XPSQL XPCOM模块的一个显要 的优点是:一旦被安装,任何使用一个数据库的应用程序都可 以被编写。虽然数据库应用程序常驻在服务器上并作为一个构 件显示被观察到,一个客户端设备上的用户具有本地地使用整 个应用程序的
印象。根据所使用的数据库,二进制XPSQL XPCOM模块为20K-40K。而Java描述语言文件为大约5k。可 选择地,XPSQL XPCOM模块可以包括一个主模块以及一个或 多个各处理一个独特的本地数据库的其它模块。具体对于一个 本地数据库的每一模块可以具有用于回答通过网络询问的不同 协议。本地数据库的示意性的实施例包括销售端应用程序、医 师办公室管理、帮助台及目录管理等等。作为一个目录管理的 例子,从一个呼叫的识别信息,诸如呼叫者的电话号码,可以 随同引出来自该电话号码的呼叫历史以及和每一个呼叫相关的 描述性的
属性信息。
XPCONF是一个嵌入设备配置XPCOM模块,它与远程应 用服务器通信,并为客户端设备上的嵌入系统配置产生图形用 户界面。嵌入设备是那些需要远程配置的设备(如路由器)。通 常,嵌入设备缺少显示器,因此,需要远程配置。XPCONF可 以被用于一个企业环境中的PC,该企业环境需要为公司局域网 设定标准,该局域网需要一个网管来进行配置。可受益于 XPCONF的其它环境的例子包括可配置的计算机处理的金属片
冲压设备及可配置的自动化运送生产线。
使用一种基于完全的可调整矢量的图形扩展
标记语言 (XML)格式的可调整矢量图形(SVG),XPREPORT模块产生包 括饼图和柱状图的报告。因为SVG是以XML编写的,所以脚 本化图形生成很容易且功能强大。
图2表示应用和数据库搜索过程240的一个具体实施方案。 用户从客户端设备选择一个应用程序242。客户端设备传送该 应用程序请求及一个可选择的令牌至服务器244。该可选择的 令牌可以提供安全信息。该安全信息可以包括授权信息。服务 器取回被请求的应用程序246。该应用程序,优选以XUL和Java Script(JS)编写,然后被发送至客户端设备248。该应用程序可 以是一个完整的经过加密签名的编码或多个加密签名的编码, 即XUL和JavaScript可以被存储在一个Java档案(Java Archive, JAR)文件中并使用Rivest-Shamir-Adleman(RSA)加密方法密 码签名。XUL使用界面构件(如菜单栏和滚动条),并结合诸 如HTML和层叠样式表(CSS)这样的标准来提供功能强大的复 杂的界面。JavaScript提供给XUL界面增强的功能和特征。客 户端设备装入并显示应用程序250。数据库查询和取回过程270 可以
迭代的。例如,跨平台结构化查询语言(XPSQL)模块252 发送一个查询至本地数据库驱动程序254。本地数据库驱动程 序发送查询和任何可选择的安全令牌至数据库256。数据库处 理查询258并把结果260发送回至本地数据库驱动程序262。 然后本地数据库驱动程序把结果发送至XPSQL模块264。如果 必要,该过程可以重复。当该数据库事务处理完成时,客户端 设备显示数据库结果272。以下提供的是基本数据库处理的图 解(XPSQL二进制XPCOM模块位于客户端设备上):
Web SERVER XPSQL(Mozilla) DATABASE
(Web服务器) (数据库)
update apps
<- request app XUL/JS
serv er app -> display app XUL/JS
repeat {
app SQL query ->
app displays result <-database supplies results
}
在本发明方法另一实施例300中,如图3所示,开始310, 客户端设备请求一个应用程序,而且当客户端设备接收到该应 用程序或其有效部分时,该客户端设备查询相关的数据库。如 果客户端设备决定一个应用程序是需要的320,则一个对于应 用程序的请求330被传输至合适的外部设备,诸如一个服务器。 直到该应用程序或其相关部分被接收340,客户端设备才试图 与和该应用程序有关的数据库通信。在这段时间客户端设备可 等待350或执行平行处理。当客户端设备接收到该应用程序时, 客户端设备装入并显示该应用程序360。然后,如果客户端设 备决定一个数据库是否被查询370,则该客户端设备发送一个 查询至相应数据库380。数据库可以是常驻在该客户端设备内 部、应用程序服务器内部、或其它设备内部。客户端设备决定 该数据库结果是否已被接收390。如果没有,则该客户端设备 等待400和/或平行处理;否则,该客户端设备接收并处理数据 库结果410。接着可作出两个决定420、430:1)如果每一最近 的数据库请求提供更多数据和2)如果不是,则让用户作出另 一个数据库请求。如果两个决定都是否定的,则处理过程返回 至决定是否一个应用程序是需要的320。如果任一决定420、430 是肯定的,则数据库处理过程继续370。
通过提供具有一个或多个加密安全索引的数据库,可增强 安全性。一个表(或文件)通常把一个索引关联到一个相关数 据库。在本发明中,每一表可只通过一个加密索引来关联。该 索引可通过一种加密
算法被加密。密钥被用于把一个索引转换 成一个不同索引或用于在一个记录或行内把一个密钥转换成一 个不同的密钥。密钥一般贯穿一个数据库,并且在一个文件或 表内是一个恒量。索引是具体的记录和字段(或行和项)。在以 下提供的实例中,密钥pKey和dKey提供表之间的关联。pKey 和dKey存储在一个表内以便于存取。如果没有主密钥则 phoneKey就不能将索引解码。
NowKey=func(masterKey,tableKey)/* 对于每一个表*/
/*idxP is plain index */
/*idxC is encrypted index */
idxP=func(idxC,nowKey)
idxC=func(idxP,nowKey)
典型的表:
假定下列关联:
pKey=func1(masterKey,phoneKey)
idxC=func2(idxP,pKey)
dKey=func1(masterKey,dateKey)
idxC=func2(idxP,dKey)
例如,使用编目流
水号1:
1=func2(7865,pKey)
7865=func2(1,pKey)
1=func2(5678,dKey)
5678=func2(1,dKey)
图4表示使用XPCONF XPCOM模块配置系统的典型方法 400。可配置的设备被相继访问405。任何可远程配置的设备(如
防火墙)都可以使用本方法。如果确定第一个设备是可远程配 置的,则该设备描述被显示于客户端设备415。如果用户选择 请求可远程配置设备的状态和配置420,则状态和配置信息被 显示425。然后用户可以选择升级该配置430。如果设备配置升 级435导致一个错误440,则该错误信息被显示445,并且用户 可以选择重试升级450。否则,下一设备被访问455。
图5表示远程配置方法的另一实施例500。一个用户请求 一个配置应用程序510(如通过XML请求)。一个配置服务器 提供该请求的配置应用程序520至客户端设备。该客户端设备 显示配置信息530。如果作出需要嵌入设备的状态或配置信息 的决定510,则该嵌入设备被查询。该嵌入设备提供该请求的 配置和状态信息550,然后该信息被显示在客户端设备上560。 用户可以选择改变嵌入设备的配置570,在这种情况下,配置 被改变580并且新的状态或错误信息被显示在客户端设备上 590。然后用户可以选择改变另一嵌入设备的配置570。显示不 是必须位于客户端设备上,但是通常如此。至于XPSQL,授权 是一个对于XPCONF可选择的过程。
图6表示一个描述本发明的功能原理的三层协议模型650。 顶层可以是以XUL、Java Script(JS)、资源描述格式(RDF)、级 联式样式表(CSS)和/或其它适当语言的一种或多种编写的应 用程序,诸如图形用户界面。在XUL中,显示可产生于客户 端。除了JS数据库类之外,该顶层是完全地由开发者决定。应 用程序永久地存储在应用程序或网络服务器上并高速缓存于客 户端设备上。
中间层包括驻留于客户端设备上的二进制 XPCOM模块和XPCONF模块。XPCOM模块给Java Script界 面提供本地属性。底层是本地数据库驱动程序。本地数据库驱 动程序驻留在客户端设备上。该客户端设备可以具有与一个常 驻的XPCOM模块接口的几个本地数据库驱动程序。因为本地 数据库驱动程序可应用于多种平台,所以该数据库是跨平台的。
图7和8表示用于Mozilla应用程序的协议模型。图7表 示基于网页的
应用服务器和Mozilla浏览器的功能的基础方块 图660。该服务器提供GUI界面。Mozilla显示该GUI并控制 诸如XPSQL、XPAUTH、XPCONF和XPREPORT的XPCOM 模块。图8表示服务器、客户端设备、Mozilla及数据库之间 关系的另一视图670。Mozilla浏览器的功能在服务器端设备和 客户端设备之间被分开。服务器端设备包括为Mozilla写的应 用程序。客户端设备具有一个本地数据库驱动程序。数据库可 与客户端设备的唯一联系是通过网络的联系。数据库可以驻留 在服务器端设备、客户端设备或别处。
图9和10表示本发明的基本原理的示例性典型实施例。图 9表示最简单的系统900,其中服务器910与客户端设备920 通信。服务器910提供一个图形用户界面,客户端设备存储一 个XPCOM模块并具有一个显示屏。图10表示具有XPSQL模 块930、安全模块940及报表工具模块950的客户端设备920。 用于这些模块的二进制码可以用闪存、非易失随机读写存储器 或其它合适的存储设备存储在客户端设备920上。
图11所示为按层表示的XPSQL XPCOM模块的功能。层 1表示用于与主模块通信的Java Script界面。层2表示用于保 持本地夹层踪迹的本地数据库注册。层3表示本地夹层。层3 格式化请求至本地数据库驱动程序。层4是本地数据库驱动程 序。层4使用本地数据,但不使用SQL。使用界面定义语言(IDL) 数据说明,数据作为来自二进制码的自变量被传递至作为的整 型值的Java Script代码。因为同时可以打开多个数据库并且可 以接受多个数据库搜索结果(平行处理),所以整型值可被用于 识别数据库或搜索结果。例如,C++二进制码将作为整型值的 信息从一个数据库结构传递到Java Script界面,并且Java Script 界面将把数据和指令从整型值转换为C++二进制码发送至一个 数据库目标。
本发明涉及如图12所示的系统1100,该系统含有通过总 线连接至应用服务器设备1110的多个客户端设备1120、1150 和1140。在本发明中,图形用户界面驻留在服务器设备1110 中,并且XPSQL XPCOM模块驻留在各自的客户端设备1120 中。图13和14举例说明两个选择性的实施例1200、1300,其 中数据库驻留在不同设备中。在图13中,数据库驻留在服务器 设备1110中。在图14中,数据库驻留在第三设备1130中。数 据库也可以驻留在客户端设备中。
图15表示一个系统1400,其中客户端设备1410包含跨平 台授权模块XPAUTH、跨平台SQL模块XPSQL、跨平台配置 模块XPCONF及跨平台及跨平台报表工具模块XPREPORT。 GUI服务器1420为客户端设备1410提供对GUI程序的访问。 客户端设备从驻留在GUI服务器1420中的GUI程序所提供的 构件定义和关联产生一个页面。客户端设备可以通过XPCONF 服务器1450配置一个或多个诸如路由器的嵌入设备。客户端设 备1410查询服务器1430,验证用户登陆码(id)。然后,客户 端设备1410向GUI服务器1420请求一个应用程序。当客户端 设备1410接收到来自GUI服务器1420的应用程序时,客户端 设备1410接着查询数据库服务器1440。通过各种服务器设备 来区分处理过程只是作为举例。由本发明可以预想到其它变化, 如多个XPCOM模块可以驻留在单个设备中。
图16和17表示关于通过客户端设备远程配置的本发明的 两个实施例1500、1600。XPCONF的启用导致基于构件的图 形用户界面的显示。在图16中,XPCONF寄存器(或服务器) 1510通过客户端设备1520控制对嵌入设备(或目标)1530、 1540和1550的访问。在图17中,为进行远程配置,客户端 设备1520直接访问嵌入设备1530、1540和1550。由于XPCONF 是可升级的,所以嵌入设备的各种设布置可以被呈现给用于配 置的客户端设备。
图18和19表示远程配置数据的典型格式。配置信息可以 被实时显示。为整个系统显示配置信息减少了维护费用。每个 XPCONF可配置的嵌入设备,诸如路由器或打印机,应当通过 一个中央XPCONF配置注册设备进行注册,或另外唯一地识别 (如通过域名)。其它配置信息可以包括滤除决定哪些信息包被 允许穿过防火墙以及为安全管理注册和密码。当需要或期望时, 整个配置可以通过GUI被显示。图18表示嵌入设备的树形结 构1700。图19表示嵌入设备的配置屏面1800。可以使用树形 结构和配置屏面的混合。格式化方案可被做成相似优选菜单。 每一配置可作为URL被访问。
本发明可用于各种环境下的各种
数据库管理系统。这些数 据库管理系统包括销售端应用程序、图书馆流通文档、医生帐 目、学校管理系统、雇员名册等等。在一个具体的实施例中, 本发明的方法可以被结合进运行Mozilla1.0或更高版本或 Netscape6.0或更高版本的任何设备中。本发明可以用于通过电 缆或无线通信连接至网络的个人电脑,或可用于
手持设备中。 例如,本发明可以在16M FLASH无线PDA、Linux PC、Windows PC或IBM S390中使用。处理速度可由XUL的显示速度决定。 对于移动式设备,XML码可以被转换成美国国家标准学会 (ANSI)字符集。每一个构件具有一个标识符(TAG)。对于每一 个标识符(TAG)都有二进制数码。该二进制数码可以代替XML 描述应用程序,因此XUL变成二进制XUL(bXUL)。下表表示 一个XML的二进制代表。
标识符(TAG) 二进制 window 0 button 1 box 2 hbox 3 vbox 4
可以相信,通过前面的描述,本发明及其诸多优点将被理 解,并且显然,在不脱离本发明范围和精神或不牺牲本发明的 实质优点的情形下,其部件的形式、构造和排列可作各种改变。 上文描述只是其解释性实施例,下列的权利要求目的是概括和 包含此类改变。