涉及信息访问的系统和方法

文档序号:6480557阅读:138来源:国知局

专利名称::涉及信息访问的系统和方法
技术领域
:本发明涉及一种系统和方法,分别用于在具有分布式应用程序的环境中,提供在具有支持通用标记语言的协议的系统和信息存储装置或服务/信息/内容提供者之间的通信。特别是,本发明涉及对秘密保护网络中信息存储装置中的信息的访问。
背景技术
:当信息请求端请求访问驻留于信息提供端中的信息,或者当应用程序向提供端请求信息时,尤其不是请求对动态信息的查询时,没有令人满意的已知的有效技术来应对这些情况。所有的已知技术都非常依赖于应用程序包括的或者与应用程序相关的信息存储装置的执行结构,例如使用的表格。SQL(结构化查询语言)就是一种这样的技术,它特别适于要查询符合特定的给出标准的一条或多条信息的情况。SQL需要被高度指定的输入数据,这以充分了解数据库和关系的结构为前提。利用动态输入参数动态地获取相应的动态答案,尤其是不返回到相应位置是不可能的。一般而言,当通过基于IP的数据通信网络请求访问信息时,需要若干TCP(传输控制协议)连接设备。特别地,已知系统也不能容易地被修改来满足终端用户的需要,以保护整个网络中位于不同应用程序或信息提供地点的个人简档中包含的数据。一般而言,没有令人满意的解决方案来用于特别是在具有分布式应用程序的环境中访问来自信息存储装置的信息,而不用了解并适合特定信息存储装置的结构和内容的应用程序。通过使用在访问系统和信息存储装置之间的硬编码链接来解决该问题是已知的。然而,从商业的角度来说,利用硬编码链接的解决方案是不利的。在没有SW(软件)程序员参与的情况下是很难或不可能作出改变的。当例如数据库中的信息结构频繁变化时该问题变得尤其明显,因为此时软件开发必须是可扩展的。如果运行该应用程序的公司不是一个SW公司,那么必须经常雇佣SW程序员,或者换句话说提供具有全局支持体制的SW综合者将是昂贵的。在财政上这一点是不可行的。迄今为止,通过执行硬编码链接解决的另一个问题是应用程序可能需要被定制以用于许多具有不同内容的不同数据库结构。特别的是,将从例如数据库获取的答复与请求文档或查询中的“位置”相联系或相关联是一个问题。通常将答复返回到文档是容易的,但是对于如何将其与相关查询的相应“位置”相关联到现在为止仍然没有解决方案。特别的是,当利用通用标记语言,例如XML时,没有解决方案来解决上面谈到的问题,在这种情况下,在例如XMLDOM节点树(查询)和数据库之间的链接是硬编码SQL语句,正如上面所谈到的,这是不利的。特别的是,对于终端用户实际上也没有简单的方式来以用户友好的方式控制什么信息应该发布给谁等。而且,更为普遍地,没有简单的和用户友好的已知过程使动态信息或消息能够在两个应用程序之间交换。当希望不显示使用的数据库的结构等时,也没有令人满意的有效的解决方案可用于业务间(inter-business)通信。
发明内容因此,本发明的一个目的在于提供一种系统和方法,分别通过这种系统和方法,访问例如数据库的信息存储装置能够被提供,而不必依赖于访问应用程序和例如数据库之间的硬编码链接,并且以通用的标准方式独立于或无关于特定信息存储装置的结构和内容是什么。本发明的另一个目的在于提供一种解决方案,通过这种解决方案,当使用通用标记语言时,可以以容易和直接的方式使查询答案返回到请求文档中的相应位置。特别的是,目的在于提供一种解决方案,根据该解决方案,信息存储装置的接口能够以标准的方式适配而无需了解信息存储装置的软件开发。所需要的也是一种能够高效地处理信息请求端和信息提供或存储端之间的信息/消息交换的装置。也需要一种独立于任何信息存储装置的执行、结构和关系而运行的装置。还需要一种易于使用并对于其运行来说不复杂的装置。特别需要一种能够用于涉及动态信息的查询的装置。最具体的是,需要的上述的这种装置能够适当地考虑到个人隐私,也就是说同时可以支持控制对终端用户个人档案(profile)中数据的访问。因此,如开始所分别提到的一种系统和方法被提出,其具有独立权利要求的特征。优选实施例由所附的从属权利要求给出。这里的系统也可以被解释为装置或节点。以下将参照附图并以非限定的方式进一步描述本发明,其中图1非常示意性地说明一种通过应用程序向信息存储装置请求信息的系统,图2示意性地说明一种利用XML向提供应用程序请求信息的应用程序,所述提供应用程序转换与存储信息的信息存储装置进行通信的请求,图3显示了另一个实施例,其中XML表格用于请求和提供数据,并且其中协议信息是外部存储的,图4显示了一个其中验证是利用个人档案保护网络执行的实施例,图5显示了一个描述在请求包括被实施为DOM节点树对象的XML表格时的流程的流程图,图6是一个示意性地说明当请求文档被实施为XMLDOM节点树时的本发明思想的框图,图7是用于从信息存储装置获取信息的过程的稍微更详细的说明,图8是用于设定信息存储装置中的信息的过程的说明,图9是一个说明实现本发明思想的主要功能步骤的简化流程图,以及图10是一个说明本发明思想的一种实施方式的流程图。具体实施例方式首先,将简要解释本说明书中使用的几个概念。这里可以将请求系统看作请求和/或提供应用程序。在最有利的实施方式中,通用标记语言是XML(可扩展标记语言)。两方之间的协议尤其包括DTD(文档类型定义),并且在下文中将其称为DTD协议,也就是,指定哪些数据或什么类型的数据被允许在两方之间交换的协议。一种表格能够专门用于请求目的,该表格可以包括利用关于数据要被“设置”或“获取”的信息进行标记的XML(节点)树以及请求的数据本身,如果合适的话。DTD描述了XML文档中内容的结构的模型。该模型指定了哪些元素是必须提供的,哪些元素是可选的,它们的属性是什么以及它们相互之间是可以如何被构造的。作为比较,HTML(超文本标记语言)只有一个DTD;通过使用XML,为用户应用程序产生专有DTDs成为可能,其中用户应用程序提供对控制为应用程序创建的XML文档的内容和结构的过程的完全的控制。利用文档类型声明,DTD与XML文档相关联。在这里,文档类型定义DTD是文档类型(或分类)的内容模型的XML描述。文档类型声明是XML文件中解释某一DTD属于一个文档的提议(submission)。特别的是,表格包括具有查询的XML(节点)树,例如在属性的表格中,该属性可以在向表格填充时被给定数值。在特定实施方式中,属性包括“来自”、“获取”、“空”、“错误”、“设置”中的一个或多个,从阅读中应该会清楚这些属性的含义。在一个实施方式中,被标记的XML表格包括XML字符串。在有利实施方式中,被标记的XML表格包括XML对象(DOM节点树对象)。DOM是如由W3C-万维网联盟定义的文档对象模型的缩写。DOM是XML的基于标准化树的应用程序接口(API)。对象表格预先假定各个应用程序中,也就是在请求应用程序和信息提供应用程序中提供变换/解析装置,以利用XSL变换样式表(XSLT)将XML对象变换为XML字符串,并将XML字符串解析为XML对象。在特定实施方式中,服务器装置分别与请求和提供应用程序相关联。XML字符串对于用户来说是“可见的”,即它能够被读取,与“不可见的”也就是不可读取的XML对象形成对比。根据本发明,(提供)应用程序包括用于将接收到的XML表格查询转换为例如SQL格式的数据库调用以获取所请求的信息的装置,所请求的信息在被检索时被输入/填充到表格中以转发给请求应用程序(如果是取出或“获取”(检索)操作)。特别地,应用程序既可以运行为请求应用程序,也可以运行为提供应用程序。然而,对于一对应用程序,协议也可以基于这样的假设其中一个应用程序总是作为请求者,而另一个总是作为提供者或存储者。应该清楚的是,本发明并不限于SQL的实施方式,相反,用于访问信息存储装置的任何访问协议或语言都可以被使用,例如LDAP(轻型目录访问协议)或任何其他类似的协议。XML请求,例如XML表格完全独立于任何信息存储/提供装置(例如数据库或类似装置)以及任何应用程序的结构实施。在有利实施方式中,提供验证装置以用于验证请求。验证装置可以包括存储在协议信息存储装置中的终端用户控制的用户特定DTDs。来自请求应用程序的填充XML表格可以对照相应的终端用户特定DTD进行验证以确定请求是否被允许。根据一个实施例,由系统向信息请求应用程序提供的每个服务都被指定唯一的DTD(文档类型定义)。DTD可以说是由规则组成,所述规则通过定义哪些数据被允许在两部分或两端之间传送以及要传送的相关数据来控制例如请求端和提供端之间的通信。每个信息提供应用程序将与中央服务器装置具有一致的“通用DTD”。这包括信息提供方将发布的数据字段的最大数量。特定的终端用户可以通过与中央服务器装置交互而创建用户特定的DTD,并从而减少与它们的ID相关的允许被发布的数据。而且,中央服务器装置向信息请求应用程序提供“通用DTD”,以描述在任何终端用户指定减少要发布的数据之前提供什么特定的服务。特别地,为协议指定“通用”或基本DTD,其可以用于构建基本XML表格。这种基本DTD可以应用于与类似服务相关的应用程序之间的信息交换,即相同的基本XML表格可以用于第一应用程序,其与相同类型或类别的若干第二应用程序交换信息。如果执行了验证,则DTD应该和XML表格一起被传送,否则包括DTD是可选的。然而同样对于验证过程,不是总是强制地包括DTD。在包括验证的最有利的实施方式中,访问装置(例如插入式服务器装置)被提供于各个请求和提供应用程序中,或与各个请求和提供应用程序相关。这些访问装置与一个或多个中央保护服务器装置进行通信,并且它们一起构成了个人保护档案网络。中央保护服务器装置包括个人保护档案存储装置,或者与个人保护档案存储装置进行通信。特别地,个人保护档案存储装置存储了终端用户唯一的保护档案,该档案指定了个人档案中的哪些数据应该对哪个应用程序来说是可访问的/不可访问的。终端用户保护档案优选为受终端用户控制并包括用户特定DTDs。特别地,应用程序和与其相关的访问装置通过XML传送对象中的XML对象(例如XML节点树容器中的XML节点树,例如使用RMI(远程方法调用)或CORBATM)进行通信。特别地,与请求应用程序相关的访问装置将在中央保护服务器装置中利用从请求应用程序所提供的有关通用协议(通用或基本DTD)的信息找到用户特定DTD,也就是个人保密文档。填充的XML表格是对照用户特定DTD而验证的。图1仅仅以示意的方式显示了支持XML并将请求提供给分布式环境中的应用程序2的(外来的)系统或节点1,其中应用程序2包括变换装置3(例如组件)以将请求变换为例如SQL请求,例如DB调用(或更为普遍地访问信息存储装置的访问请求),检索信息并将信息返回至(例如XMLDOM节点树的)(XML)请求中的相应位置/节点,以下将特别参考图6-8进行更为详细地描述。尽管在下文中主要涉及SQL请求,但应该清楚的是,也能够使用例如LDAP或类似的。图2非常示意性地说明了两个通信应用程序,这里表示为信息请求应用程序A10和信息提供应用程序B20。每个应用程序10、20可以包括协议存储器(未示出)或与其通信,该协议存储器用于保存有关在各个应用程序之间所建立的协议的信息。因此,可以假设两个应用程序(这里是应用程序A和B)之间的协议存储在两个相应的应用程序中。应用程序的协议存储器在被实施的情况下可以包括多个不同的协议,例如用于每一其它应用程序的一个协议,利用该协议,相关的应用程序已经推断出一个协议,并定义哪些或什么类型的信息被允许在各对应用程序之间交换。在图中说明了每个相应的应用程序包括XML请求处理器,该处理器实际上包括软件(也就是不必是特定的装置),用于当请求被发送时产生要填充的XML表格。在这个第一实施例中,假设应用程序A10向应用程序B20请求信息。应该清楚的是,本发明的思想不限于XML“表格”,也不必是请求和提供应用程序,主要思想涉及在(这里)应用程序B(也就是任何分布式应用程序)和信息存储装置(DB)23之间的过程。正如在协议信息存储器(未示出)中可提供的,特别是在DTD(文档类型定义)协议的表格中的应用程序A和B之间所建立的协议,其由XML表格处理功能使用以创建XML表格(例如,以XMLDOM节点树的形式),在属性表格中的查询依据具体的请求而被给定数值。因此,当XML表格已经创建时,属性被给定数值,并且涉及所请求的信息的利用信息(在属性和元素数据中)标记的XML表格通过IP网络(例如使用HTTP)被传送到应用程序B20,以作为XML传输文件(例如作为XML字符串)。在优选实施方式中,XML节点树包括XMLDOM节点树。替代地,XML树被实施为XML字符串。如果XML表格被构建为对象,则为了传输的目的需要变换为XML传输字符串。应用程序B20中接收到的XML表格将被变换为数据库调用,这里具体是在变换装置中。特别的是变换为SQL请求,以从存储请求信息的数据库23中访问/取出如由查询所指示的数据。当已从数据库23检索到请求的信息时,具体通过对属性和元素数据给出相应数值来填充表格,也就是根据本发明如从数据库23所检索到的信息。如果请求代之以涉及数据的设置,则“请求的”数据通过例如SQL来访问,并设置与属性相应的数据。然后,完成的XML表格被返回至应用程序A10,并且可以将填充过的表格提供给用户。图2只是示意性地说明了运行,其中给出了包括属性的XML表格,所述属性要被给定数值以定义哪些信息被请求(用于设置或获取的目的)以及当返回至请求应用程序时包含所请求的信息(如果相关的话)。如果XML表格被实施为字符串,则不需要变换/解析装置,除了变换(转换)为数据库调用(SQL请求)。然而,如果XML表格是以XMLDOM节点树的形式表示的,则为了在应用程序(以及用于将字符串格式的表格转换为DOM节点树的解析装置)之间的传输而需要变换装置。本发明特别涉及变换为SQL请求,并将答复返回至请求文档(例如XML节点树的节点)中的相应位置。图3示意性地说明了有点不同的实施方式,其中请求应用程序100向提供应用程序200请求信息,在应用程序100、200之间已经建立协议。这里假设,协议信息被存储在与请求应用程序100和提供应用程序200进行通信的外部协议存储器30C中。协议存储器30C和提供应用程序200之间的通信这里是通过虚线表示的,因为当请求应用程序100向提供应用程序200请求信息(或想要访问提供/存储端上的数据)时,对于提供应用程序200来说没有必要获取协议(至少当不需要验证时不获取,而且根据有利实施方式也不是绝对必须的)。这里假设,已经以文档类型定义DTD的形式创建了协议。假设请求应用程序100和提供应用程序200之间的协议在这里用DTD1表示。当应用程序100想要从应用程序200获取信息时,DTD1被获取,并且XMLDOM节点树对象(或XML字符串)在请求应用程序100中的XML表格处理器中被建立。XML节点树中的属性被给定(指定)与请求的数据相关的数值。有关属性的例子是“来自”、“获取”、“设置”、“空”、“错误”。在这个应用程序中,所有实施例都是参照用于从提供端检索(取出)数据的设备而描述的。本发明的思想当然也适用于放入数据的思想,也就是用于在提供端或在信息存储地点设置数据。当属性已被给定相应的数值时,如果XML表格是以字符串的形式,则将XML表格作为可选地包括DTD1的XML字符串传送到提供应用程序200。在提供应用程序200中,在变换装置中(也就是软件不必被提供在“装置”中),对数据库调用执行SQL格式的变换,该调用被转发至数据库230。随后,请求的数据被返回至提供应用程序,并填充在XML表格中以作为有关属性和元素数据的数值。表格作为XML字符串(可选地具有所包括的DTD;在这个特定情况中是DTD1)被返回至请求应用程序。在一个有利实施方式中,XML树形式被实施为XMLDOM节点树对象。所述对象必须被转换为字符串以从请求应用程序A100传送到提供应用程序B200。在提供端利用DOM解析器将XML字符串解析为对象形式。然而,对于转发到请求应用程序,XMLDOM节点树必须被变换为XML节点字符串。图4描述了一个特定的实施方式,其包括如2001年10月12日在美国提交的专利申请号为09/976,500的专利申请“ASYSTEMANDAMETHODRELATINGT0ACCESSCONTROL”中描述的验证过程,并且其内容被并入本文中以供参考。参考图3,假设信息请求应用程序101想要从信息提供应用程序201取出(获取)信息,而不知道在哪儿能找到信息本身。在这个实施方式中,假设与中央服务器装置311的通信是通过连接请求应用程序101的访问装置111提供的。这种实施方式的优势在于从保密网络,也就是从中央服务器装置311获取关于请求的事务是否可能的快速响应,甚至不必涉及信息提供应用程序201的访问装置211(或者信息提供应用程序本身)。与早期涉及提供端的情况相比,由信息提供端的访问装置211上被拒绝的事务所导致的负载将会显著降低。因此,当信息请求应用程序101想要设置或获取在信息提供者或存储器中的信息时,请求应用程序101向“它的”访问装置111作出XML请求。请求应用程序不知道信息提供者的地址。进一步假设访问装置111存储了公共密钥和私有密钥。节点的私有密钥PKI(私有密钥基础设施)可以例如被存储为密钥对象,例如安全的对象文件。在特定实施方式中,经由RMI发送(I)请求,并且所述请求优选地包括-与请求相关并由请求应用程序所使用的用户标识(ID),-DTDID(等同于服务ID)-事务ID,-请求应用程序的ID,-网关ID,以及-XML节点树容器。XML节点树容器包含XML(节点)树,该XML(节点)树由请求应用程序想要获取什么信息或想要在哪些个人数据字段中设置数据、更新数据等来进行标记。标记的XML(节点)树例如被描述为表格,XML节点树表格。XML节点树容器是用于在请求应用程序及其访问装置111之间传输XML节点树的对象。I表示请求应用程序101对访问装置111的请求。访问装置111找到通用DTD;也就是在传送个人数据、通用XSLT文件、中央服务器装置的公共密钥、DNS(域名服务器)名称和IP地址(对于DTDID,来自主中央服务器装置的基于一个或多个IP号码的URL,如果存在每个都具有ID的多于一个的中央服务器装置的话)时还未适合于特定用户偏好的DTD。在一种实施方式中可选的是查询特定中央服务器装置ID,如果其在数据库(DB-A12)中被利用特定中央服务器装置公共密钥指定的话。这在中央服务器装置不是具有相同公共密钥的组中的一员而是使用了相同域名的一员时可以被使用。中央服务器装置ID的相关信息、DTD信息等由访问装置111从相关的数据库121获取。然后,请求应用程序101的访问装置111将请求发送(II)给中央服务器装置301以查找这个特定服务的具体DTD和用户终端ID。特别是使用了HTTP,并且请求特别地包括-请求应用程序访问装置111的标识;-具有私有密钥的请求应用程序访问装置的数字签名,-请求应用程序101使用的终端用户ID,-DTDID(等同于服务ID),-事务ID,-网关ID,以及-请求应用程序ID。然后,访问装置111等待和期待来自中央服务器装置301的响应。同时,请求应用程序的访问装置111可选地可以利用DTDID(服务ID)的通用DTD来验证XML节点树。这构成了基本的验证,并且在第一次使用DTD的时候,从服务器被启动并运行时进行验证以便限制请求应用程序的访问装置111上的负载。包括控制逻辑的中央服务器311比照访问装置111的公共密钥来检查请求的认证,该请求包括访问装置的标识,IP地址(可选地)和数字签名。然后,将请求应用程序用户ID和DTDID映射到信息提供应用程序用户ID上。应该注意的是,请求应用程序所使用的终端用户标识能够或通常不同于信息提供应用程序所使用的终端用户标识。也就是,对于同一个终端用户,应用程序能够使用不同的ID。信息提供应用程序201用户ID是利用信息提供应用程序201的访问装置211的公共密钥通过日期/时间进行加密的,以使它只能由信息提供应用程序访问装置211读取和理解。每当请求应用程序101的访问装置111作出请求时,加密模式都应该不同。中央服务器311从存储保护档案信息321的数据库获取终端用户特定DTD的数字签名,所述终端用户特定DTD是利用中央服务器装置311的私有密钥标记的。为了获得好的性能,所有DTD可以提前标记。“带外”信息元素也被标记。(在这里,“带外”信息指的是系统级通信层,例如包括访问装置的控制信息。例如,这可以实施为向前方向的HTTPPOST和向后方向的网络跟踪器(cookie)。)然后,中央服务器装置311将消息III返回至包含终端用户特定DTD的请求应用程序访问装置111以作为带内信息。(在这里,“带内”指的是在应用程序数据通信层例如在XML文档层的信息。)中央服务器装置311也返回“带外”信息,例如-终端用户特定DTD的数字签名,-中央服务器装置“带外”信息的数字签名,-中央服务器装置的标识,-加密的终端用户ID,即信息提供应用程序终端用户ID,-使用期限,-待用时间,-响应时间,-信息提供应用程序201的访问装置211的域名,-它的IP地址,以及-各个访问装置111、211的公共密钥。来自请求应用程序101(经由其访问装置111)的事务ID、请求应用程序101的用户ID和信息提供应用程序的加密用户ID将被记录在中央服务器装置301中。在请求应用程序101的访问装置111中,中央服务器装置311的数字签名及其公共密钥被认证。请求访问装置111利用通用XSLT文件(特定DTDID的XSLT文件)将XML节点树变换为XML传输文件(字符串)(XSL变换;XSL例如是注明日期为1999年11月10目的XSL变换(XSLT)版本1.0,W3CRec.和2000年12月12日的XSL变换(XSLT)版本1.1W3C工作草案中描述的,这些文档在此被并入以供参考)。请求应用程序访问装置111比照接收到的终端用户特定DTD来验证XML传输文件(字符串)。接下来XML文件将被标记。如果存在某种请求,经由XML属性对于该访问是不允许的,则通过访问装置111、211之一将错误消息返回至请求应用程序101。然而,如果验证能够在没有错误的情况下完成,则请求应用程序访问装置111将IV发送到信息提供应用程序的访问装置211,其中-XML传输(字符串)(作为带内信息)和带外信息,例如以网络跟踪器的形式,也就是具有访问装置111的私有密钥的XML传输文件(字符串)的数字签名,-带外信息的数字签名(服务器ID),来自中央服务器装置301,-加密的终端用户ID(信息提供应用程序的用户ID),-使用期限,-待用时间,-响应时间,-信息提供端的验证,-DTDID,以及-各个访问装置111、211的公共密钥。不是所有的数字签名都是必要的,其中一些是可选的,这取决于所需要的安全程度。在这里,请求应用程序访问装置111使用HTTP以与信息提供端的访问装置进行通信(IV)。如果在预定时间间隔内,请求应用程序访问装置111未接收到任何来自信息提供应用程序的访问装置211的响应,则请求应用程序访问装置111将断开(TCP;传输控制协议)连接。在预定的从信息提供端的同一个访问装置获取响应的多次尝试之后也将清空会话数据。如果存在例如一个群组、多个访问装置或双重访问装置或类似装置,则可能在信息提供应用程序的其他访问装置上进行一次或多次尝试之后可以实现。当信息提供应用程序访问装置211接收到请求(IV)时,利用DTDID检索-中央服务器的公共密钥,-中央服务器的ID和通用DTD,以及-来自其数据库221的特定DTDID的通用XSLT文件。请求端访问装置111将XML传输文件的数字签名比照来自带外信息(DTDID、中央服务器ID和相对于数据库221的带外信息的中央服务器311签名)的请求端访问装置的公共密钥进行验证。XML请求是比照来自中央服务器311的终端用户特定DTD进行验证的。如果请求是无效的,则将错误消息返回至访问装置111。如果请求是有效的,则信息提供端用户ID被解密。如果提供端的会话仍然有效,或者就象带外信息所给定的那样正在进行,那么就没有必要解密信息提供端用户ID,因为会话仍然以解密的形式存在。然后,XML文件被解析为XML节点树,并且这里信息提供应用程序201是通过向XML节点树容器发送所产生的事务ID、经由RMI的DTD的ID而被调用的。每当服务器被启动时,每个新的DTDID都可以由信息提供端访问装置211比照通用DTD来进行验证。在设置“放入”情况下,该通用DTD表示信息提供应用程序准备发布或已经修改的最大数目的数据元素。对于特定的会话,并且与信息提供应用程序进行201通信,访问装置211将使用带外参数使用期限(或待用时间)(V)。然后,信息提供应用程序201检查应该在XML节点树表格获取或设置什么信息,并发送响应VII到相应的访问装置211,该访问装置211包含由请求的信息填充的XML节点树以及与完成状态相关的信息。在将信息从信息存储器23取回(VI)到XML节点树容器中的相应访问装置211中之后,将XML节点树从信息提供应用程序201返回。然后,信息提供应用程序访问装置211将从应用程序201接收到的XML节点树变换为具有那个DTDID的通用XSLT文件的XML传输文件。然后,利用新的XML传输返回文件经由HTTPS将回答返回至请求应用程序101的访问装置111(VIII)。VI涉及到SQL请求的本发明的变换,以及正如下文将更充分描述的把信息、答复返回至相应的位置/节点。在图5的流程图中,示意性地说明了XML表格如何用于请求和提供数据。在该实施方式中,实施XML的对象形式。首先(100)假设建立了请求应用程序A4和提供应用程序B4之间的通用协议(通用DTD)。(当然协议可以是早已获得的,并且在较早阶段已经被建立,这与应用程序的运行无关,然而,在这个实施方式中存在已建立的协议)。利用通用协议,创建DTD协议以定义哪些信息被允许在A4和B4之间交换(101)。如在前一步骤中,DTD协议(DTDID)可以是早已获得的。应该清楚的是,本发明的思想不依赖于任何协议的建立,这只涉及特定的实施方式。然后,使用DTDID来构建XML表格,这里实施为XMLDOM节点树对象,其具有表示将要包含在表格中的查询的属性(102)。然后,在A4中通过对相关的属性给定相应的数值来填充表格,在下文中将进一步说明(103)。随后,XMLDOM节点树对象,也就是对象形式的填充表格将被变换为XML传输字符串,例如利用XSLT、XSL样式表、(可扩展样式表语言)(104)。将标记过的XML节点树(也就是,标记是在于属性和元素数据被给定数值,例如获取)作为XML传输字符串发送到提供应用程序B4(105)。在提供端,也就是在B4端,利用XMLDOM解析器将XML传输字符串解析为XML对象(106)。在提供端,XML表格的请求也被变换为例如SQL格式(结构化查询语言)的数据库调用,其被发送到存储信息的相关数据库(107)。然后,所请求的信息从数据库返回到B4(108)。依据来自数据库的信息,通过对属性和元素数据给定相应的数值来在XMLDOM节点树(表格)上填充所检索的信息(109)。这将在下文中进一步描述。随后,例如使用上述的XSLT将XML节点树对象(表格)变换为XML传输字符串(110)。XML传输字符串被返回到包括请求应用程序A4的请求端(111)。在备选的实施方式中,XML表格被实施为字符串,并作为字符串传输。涉及协议的建立和DTD协议(DTDID)(或找到DTD协议)的创建的步骤与图5的步骤100、101相对应。在这里,DTD协议用于将XML表格实施为具有属性的字符串,所述属性表示将要包含在表格中的查询。在请求应用程序中,通过对选择的/相关的属性给定(分配)数值(涉及要请求的信息的相应数值)来填充表格。然后,以所描述的方式标记的XML树表格(作为字符串)被发送到提供应用程序,其中利用SAX解析器(与参考图5所讨论的基于对象的API相反,SAX是XML的简单API,它是基于事件的应用编程接口)将标记的XML字符串的请求转换为SQL格式的数据库调用。SQL请求被发送到存储请求信息的相关数据库。当数据库已经检索到信息时,信息被传送到提供应用程序,并由提供应用程序进行接收。利用所请求的信息,通过对属性和元素数据给定依据或相应于检索的信息的相应数值来填充(使用SAX解析器)XML表格。然后,完成的即填充过的XML表格作为XML字符串被返回到请求应用程序。与信息存储装置(DB)通信的提供和/或请求应用程序需要针对具有不同内容的不同数据库结构而被定制,这是上文所提到的问题。当在XML表格已被解析为XMLDOM节点树时要对例如SQL语句/命令进行变换的时候,进一步出现了一个特定的问题。这是由于属性数值和节点元素名称的组合必须要被变换为SQL语句/命令的事实。在XML字符串的实施例中,也就是不存在实施的DOM节点树,变换为SQL语句也是必要的。在这种情况下,在XML字符串中查询相应元素(标记)的步骤是必要的,以便确定在字符串中哪个位置插入从数据库获取的信息。在这方面最困难的问题是将应答(也就是答复来自信息存储装置如数据库的请求)返回至XMLDOM节点树的相应位置。这一点由下文解决。图6以解释性的方式显示了XMLDOM节点树和数据库。常规方式的XMLDOM节点树包括根节点、元素节点和属性节点。为了在变换装置中变换为SQL语句,使用XSLT将LP(位置路径)的XPath实施为指针。用于如何实现的规则被建立在XSLT(i)中。先决条件是XML文件的结构是已知的(例如来自如上所述的XML验证),但属性和元素的内容是未知的。这意味着多个XSLT样式表都是可用的,并根据DTD来选择其中一个。因此,在变换步骤过程中一起使用XSLT与XPath。变换的结果将是具有位置路径信息和产生的SQL语句的已变换字符串或目标字符串。对于GET(获取)操作,位置路径信息指示应该在XMLDOM节点树中什么位置插入从信息存储装置(例如数据库)检索的信息数据。SQL语句指定如何从信息存储装置(例如数据库)中检索信息。对于SET(设置)操作,位置路径信息指示应该在XMLDOM节点树中哪个位置获取要设置在信息存储装置中的信息。SQL指定如何将信息设置在信息存储装置中。在XSLT变换期间,在绝对元素/节点路径(也就是位置路径信息)中匹配“获取”或“设置”属性数值是利用XPath语法实现的。XPath用于查找相应的节点元素。节点元素中所匹配的“获取”或“设置”属性数值使得同一目标字符串中的通用变量名(用户名)能够被添加(ii)到SQL语句/命令。完全的变换目标字符串将包含到相关元素节点的路径的Xpath语法,从而表示回答数据的导航,所述回答数据是要被返回并放入相关的元素/文本节点的。接着程序代码的相关部分使用SQL语句/命令,并将通用变量名翻译为作为带外信息获得的实变量名。因此,当文档被转换为SQL时,文档转换的Java类通过JDBC而用于数据库(iii,iv)。因此,所有“标记的变量”被实变量交换并被其取代,接着运行于目标字符串文件的程序逐行地“行程完(pathout)”运行于XSLT变换所得到的文件的SQL命令和LP。特别地,替换标记用于定义用户的ID,这里称为用户B。这被称为用户BID替换标记(通用变量名)。如上所提到的,用户BID是通过替换如在替换标记中给定的ID而添加的。如上所提到的,这是作为带外信息(用户BID)获得的。随后,通过实施位置路径导航将回答返回至XMLDOM节点树(v),并且利用路径的XPath语法可以找到相应的节点(文本节点)。图7显示了利用本发明思想的例如用于获取某人地址的GET操作的过程。这里假设在提供应用程序中(从具有上文使用的术语的请求应用程序)接收到了XML表格。提供应用程序是与信息存储装置(这里例如是数据库)进行通信的应用程序。在附图中,Address=“get”是属性,get是自变量,并且元素数据(文本节点)要被插入在><之间。表格被提供(i’)至XMLDOM解析器,该解析器将其解析(ii’)为XMLDOM节点树,该节点树具有根、元素节点、文本节点、属性等。然后,由JAVA代码对请求进行操作以执行上述的XSLT变换(iii’)。为此,从XSLT表存储装置获取相应的XSLT表(取决于DTD),并将其提供(iv’)给XSLT变换装置。这样得到了目标字符串(v’),该目标字符串具有位置路径信息和带有通用变量名(标记)的SQL语句。这也能够表示输入目标字符串。然后,Java类代码对输入目标字符串(具有通用变量名)进行操作以由实变量名“数值”替换所述通用变量名(vi’)。实变量名是作为带外数据获得的(vii’)。这样得到了具有实变量名的输出目标字符串。(这意味着例如用户B替换标记已被实用户BID替换。)然后,利用JAVA类程序代码执行SQL语句(viii’),该JAVA类程序代码包括由图中虚线指示的两部分,一部分使用具有实际的实变量名的目标字符串来执行SQL语句(ix’),而另一部分提供位置路径信息,该信息涉及应该在XMLDOM节点树中哪里(位置)插入检索到的信息。然后,使用位置路径信息将检索到的信息插入到相关的节点(x’)。通过XSLT变换,检索到的信息(数据)被提供至表格(xi’,xii’)。图8是与图7类似的图,但代之以显示了根据本发明思想的例如用于设置某人地址的用于SET操作的过程。这里假设,在提供应用程序中(从请求应用程序,参照用于GET操作的相应过程)接收到了XML表格。这里假设提供应用程序与信息存储装置(例如数据库)进行通信。在图8中,Address=“set”是属性,set是自变量,并且元素数据(文本节点)被设置在><、>data<之间,其中data是从文本节点获取并要设置在数据库中的数据,例如实际地址。和在GET情况下一样,表格被提供(i’)至XMLDOM解析器,该解析器将其解析(ii’)为XMLDOM节点树,该节点树具有根、元素节点、文本节点、属性等。然后,由Java代码对请求进行操作以执行上述的XSLT变换(iii’)。为此,从XSLT表存储装置获取相应的XSLT表(取决于DTD),并将其提供(iv’)给XSLT变换装置。变换将提供目标字符串(v’),该目标字符串具有位置路径信息和带有通用变量名(标记)的SQL语句。这也能够表示输入目标字符串。然后,Java类代码对所述输入目标字符串(具有通用变量名)进行操作以由实变量名替换通用变量名。这样将得到具有实变量名(数值)的输出目标字符串(vi’)。实变量名是作为带外数据获得的(vii’)。(这意味着例如用户B替换标记已被实用户BID替换。)要设置的数据是利用来自目标字符串的位置路径信息从文本节点获取的。获取的数据被插入到相应标记的SQL语句中(vii”),例如ValueToReplace。例如,通过在SQL语句中查询要插入数据所处的SQL替换标记可以找到相应的标记。然后,利用Java类程序代码执行SQL语句(viii’),该Java类程序代码包括由图8中虚线指示的两部分,一部分使用具有实际的实变量名的目标字符串来执行SQL语句(ix’),而另一部分提供位置路径信息,该信息涉及应该在XMLDOM节点树的哪里(位置)插入数据(例如结果)。然后,使用位置路径信息将结果插入到相关的节点(x’)。例如,结果可以涉及执行操作的结果,例如如果成功则是“O.K.”。通过XSLT变换,这被提供至表格(xi’,xii’)。在图9的流程图中显示了主要功能步骤。首先假设在XMLDOM节点树(参照图6)中找到了请求(查询)(200)。在变换装置中,例如“提供”应用程序的组件,XSLT文件(如早期更全面估计的相应或选择的XSLT文件)用于产生SQL语句。通过使用XPath建立了位置路径(LP)(201)。然后通过实变量代替标记(202)。随后,产生的SQL语句被向信息存储装置(例如数据库)调用(203)。当从数据库(在变换装置中)接收到返回信息时,LP用于将返回(答复)数据信息提供给XMLDOM节点树的相应(文本)节点(204),也就是提供至XMLDOM节点树的相应位置。图10是与图9类似的流程图,但稍微更为详细地显示了步骤。在第一步中(300),找到来自DOM节点树的查询,利用XSLT文件执行变换,并找到用于查询的XPathLP,以便提供变换的文档文件/字符串。在特定实施方式中为变换的文档调用JavaTM类(301),也参照图6、7。然后,通过实变量代替标记(302)。然后,Java类通过具有SQL语句的JDBC调用数据库(303)。接着由Java类接收答复数据,该Java类也用于根据位置路径将答复数据返回至XMLDOM节点树的相应位置(304)。然后检查变换的XMLDOM文档是否完成(305)。如果是,则该过程完成,否则重复步骤303、304,直到变换的DOM文档是完整的。然后该过程结束(306)。根据本发明,无论是什么数据库,提供和请求应用程序(它也可能是相同的)都不需要适于该数据库结构,所有需要的是提供(找到)或写入另一个或新的XSLT,并且利用具有请求的位置路径信息。这是非常有优势的。因此,不需要如开始所提到的硬编码链接。位置路径被用于这种目的是不为人所知的,除了例如用于在XML文件之间转换。下面显示了如本申请中早期讨论的XML表格形式的请求文档的例子。用于“Get”操作的XML表格的例子<Privacy><AddressAddress=″get″></Address><ShoesizeShoeSize=″get″></Shoesize>(1)(2)</Privacy>(1)=要由XSLT查找的数据查询的标记(2)=要插入的数据XSLT变换文件可以是如下XSLT变换文件<?xmlversion=″1.0″?><xslstylesheetxmlnsxsl=http//www.w3.org/1999/XSL/Transformversion=″1.0″><xsloutputmethod=″text″/><xsltemplatematch=″/″><xslapply-templatesselect=″//Address″/>(5)<xslapply-templatesselect=″//Shoesize″/>(5)</xsltemplate>(5)=要由XPath匹配的位置路径(LP)。XSLT变换文件(SQL选择)<xsltemplatematch=″Shoesize″><xsliftest=″@ShoeSize[.=′get′]″><xsltext>
//Shoesize
SELECTShoeSizeFROMDatabasetableWHEREUserIDB1=′UserIDB1′(4)
(3)</xsltext></xslif></xsltemplate><xsltemplatematch=″Address″><xsliftest=″@Address[.=′get′]″><xsltext>
//Address
SELECTAddressFROMDatabasetableWHEREUserIDB1=′UserIDB1′(4)
(3)</xsltext></xslif></xsltemplate></xslstylesheet>(3)=分隔符(&#10)(4)=输入数据将在文本解析器中被替换下面显示了用于“Set”的XML表格的例子<Privacy><AddressAddress=″set″>Kista</Address><ShoesizeShoeSize=″set″>37</Shoesize></Privacy>以及随后继续的XSLT变换文件、XSLT变换文件(SQL更新)XSLT变换文件(SQL更新)<xsltemplatematch=″ShoeSize″><xsliftest=″@ShoeSize[.=′set′]″><xsltext>
//ShoeSize
UPDATEDatabasetableSETShoeSize=′ValuelToReplace′WHEREUserIDB1=′UserID′
</xsltext></xslif></xsltemplate><xsltemplatematch=″Address″><xsiiftest=″@Address[.=′set′]″><xsltext>
//Address
UPDATEDatabasetableSETAddress=′Value2ToReplace′WHEREUserIDB1=′UserIDB1′
</xsltext></xslif></xsltemplate></xslstylesheet>ValueToReplace(1)、(2)必须这样选择以使它们能够被查询到,并且来自XML树的信息能够被输入到那里。应该清楚的是,这些关于XML表格和XSLT变换文件的例子只是为了解释和示例的目的给出。同样,本发明的其他方面当然也不限于具体说明的实施例,但是相反地,能够在不背离所附权利要求书的范围的情况下以多种方式进行改变。权利要求1.一种系统,用于在包括分布式应用程序和服务/信息/内容提供者或信息存储装置的环境中,提供在具有支持通用标记语言的协议的请求系统和信息存储装置之间的通信,其特征在于分布式应用程序包括或相关于使用用于访问信息存储装置的访问协议,将以通用标记语言的文档形式的对信息存储装置的请求变换/转换为访问请求的装置,所述访问请求与指向表示该请求的通用标记语言的文档中的位置的指针相关,所述信息存储装置访问请求被调用为对信息存储装置的常规查询,并且其中所述变换/转换装置将与信息存储装置访问请求有关的答复返回至如由指针所给定(指示)的请求文档中的相应位置,从而使得能够独立于信息存储装置的结构和内容而从信息存储装置获取数据。2.根据权利要求1所述的系统,其特征在于通用标记语言是XML。3.根据权利要求2所述的系统,其特征在于文档包括XMLDOM节点树文档。4.根据权利要求3所述的系统,其特征在于XML结构是由变换装置所知的,但属性的内容以及DOM节点树的属性值是未知的。5.根据权利要求4所述的系统,其特征在于XSLT变换文件用于产生信息存储装置访问查询,所述访问查询与指针相联系/相关联。6.根据权利要求5所述的系统,其特征在于指针包括XPath指针、XPath位置路径。7.根据权利要求5或6所述的系统,其特征在于指针包括XMLDOM元素名。8.根据权利要求5、6或7所述的系统,其特征在于信息存储装置访问请求是利用XSLT文件和XPath位置路径产生的,并且其中在执行了产生的信息存储装置访问请求之后,利用位置路径(LP)导航将答复返回至XMLDOM节点树中的相应位置(节点)。9.根据权利要求8所述的系统,其特征在于请求是由信息提供应用程序从信息请求应用程序作为XML传输字符串接收的,在与信息存储装置通信的提供端利用XMLDOM解析器将XML传输字符串解析为XML对象。10.根据权利要求8所述的系统,其特征在于请求是由信息提供应用程序从信息请求应用程序作为标记的XML传输字符串接收的,并且其中标记的XML字符串的请求被变换/转换为对信息存储装置的调用。11.根据权利要求8所述的系统,其特征在于同一信息存储装置访问请求/查询用于同一信息存储装置的不同数据元素以便提高信息请求/回答的性能,所述信息存储装置例如是数据库、表格。12.根据权利要求9所述的系统,其特征在于它用于秘密保护网络中,并且其中文档包括利用关于协议的信息在请求节点上产生的XML表格,所述协议例如是转发给信息提供端作为XML表格(字符串)的DTD,该表格是在利用信息存储装置访问请求从信息存储装置检索到数据之后被填充的,并被返回至提供应用程序的DOM节点树/字符串中的相应位置。13.根据权利要求5-12中任一项所述的系统,其特征在于XMLDOM节点树文档是比照转换装置中存储的DTD或方案进行验证的。14.根据权利要求8-12中任一项所述的系统,其特征在于XMLDOM节点树是利用由DTDID所给定的选择的XSLT文件进行变换的,并且其中实施XSLT和XPath字符串/文件以提供变换。15.根据权利要求13或14所述的系统,其特征在于JavaTM用于利用信息存储装置访问请求/语句经由JDBC来调用信息存储装置,并且其中访问数据的JavaTM类使用位置路径来将答复数据返回至XMLDOM节点树中的相关节点。16.根据以上任何一项权利要求所述的系统,其特征在于XPath语法用于提供对绝对节点元素路径的“获取”或“设置”属性值的匹配,并且其中通过匹配的属性值,能够将通用变量名添加到同一变换的字符串或目标字符串中的信息存储装置访问请求语句/命令。17.根据以上任何一项权利要求所述的系统,其特征在于SQL用于信息存储装置访问请求。18.根据权利要求1-16中任一项所述的系统,其特征在于LDAP用于信息存储装置访问请求。19.至少根据权利要求9和16所述的系统,其特征在于通用变量名由程序代码翻译成从带外数据获得的实名,所述带外数据是从信息提供应用程序接收的。20.一种方法,用于在包括分布式应用程序的环境中,提供在具有支持通用标记语言的协议的系统和信息存储装置之间的通信,其特征在于它包括以下步骤-向/从由应用程序包括的或相关的转换/变换装置提供/接收通用标记语言的请求文档;-利用信息存储装置访问协议/语言将请求变换/转换为信息存储装置访问请求,所述访问请求与指向通用标记语言的请求文档中的相应位置并表示该请求的指针相关;-作为对信息存储装置的常规查询来调用信息存储装置访问请求;-将与查询有关的答复数据返回至如由指针给定的请求文档中的相应位置,从而使得能够独立于所述信息存储装置的结构和内容而从信息存储装置获取和适当地分配信息数据。21.根据权利要求20所述的方法,其特征在于通用标记语言是XML,并且其中请求文档包括XMLDOM节点树,其元素和属性的内容是未知的。22.根据权利要求21所述的方法,其特征在于变换/转换步骤包括-查找/选择XSLT;-利用找到的/所选择的XSLT执行变换;-利用XPath位置路径作为指针功能来建立位置,例如XMLDOM节点树的节点元素;-将节点元素路径的XPath指针(语法)添加到信息存储装置访问请求以提供目标字符串,所述目标字符串包括关于答复信息数据的返回位置(节点)的信息;-利用XPath指针将答复返回至XMLDOM节点树的相关位置(节点)。23.根据权利要求22所述的方法,其特征在于它在变换步骤中包括以下步骤-利用XPath来匹配与XMLDOM节点树的绝对节点元素的路径有关的“获取”或“设置”属性值,以提供通用变量名;-将通用变量名添加到信息存储装置访问请求,从而提供公共(单个)变换字符串或目标字符串。24.根据权利要求23所述的方法,其特征在于它进一步包括以下步骤-利用通用变量名作为提供端用户ID的替换标记;-获取提供端用户的ID作为带外信息;-利用作为带外信息获取的实际ID来替换该替换标记的通用变量名,以便访问信息存储装置中的相应记录来检索请求的信息,以及-利用位置路径信息来将返回(答复)数据导航到XMLDOM节点树中的相应节点。25.根据权利要求22-24中任一项所述的方法,其特征在于它包括以下步骤-将多个信息存储装置访问请求语句/命令连接成一个访问请求语句/命令,从而将XPath语法以存储数组存储在例如存储装置中,以便在请求信息和获取请求的信息的时候提高性能。26.根据权利要求20-25中任一项所述的方法,其特征在于它用于秘密保护网络中,XML表格是在请求应用程序端被创建的,以用于经由从信息存储装置取出所述信息的提供应用程序来请求信息。27.根据权利要求20-26中任一项所述的方法,其特征在于对于信息存储装置访问请求使用SQL,从而提供SQL语句/命令。28.根据权利要求20-26中任一项所述的方法,其特征在于LDAP用于信息存储装置访问请求。29.根据权利要求20-28中任一项所述的方法,其特征在于信息存储装置包括数据库(DB)。全文摘要本发明涉及一种系统(节点、设备),用于在包括分布式应用程序和服务/信息/内容提供者或信息存储装置的环境中,提供在具有支持通用标记语言的协议的请求系统和信息存储装置之间的通信。分布式应用程序包括或相关于使用用于访问信息存储装置的访问协议,将通用标记语言的文档形式的对信息存储装置的请求变换/转换为访问请求的装置,所述访问请求与指向表示请求的通用标记语言的文档中的位置的指针相关。所述信息存储装置访问请求被调用为对信息存储装置的常规查询,并且所述变换/转换装置将与信息存储装置访问请求有关的答复返回至如由指针给定(指示)的请求文档中的相应位置,从而使得能够独立于信息存储装置的结构和内容而从信息存储装置获取数据。文档编号G06F17/30GK1771496SQ200480007811公开日2006年5月10日申请日期2004年3月18日优先权日2003年3月22日发明者P·杨申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1