利用统一资源标识符管理应用状态信息

来源:互联网 发布:yum clean all 编辑:程序博客网 时间:2024/06/01 23:13

申请号:CN102597993 B
申请日期:2010年7月9日
申请人:国际商业机器公司

【摘要】
本发明的实施例提供了管理应用状态信息的方法与系统,该信息由统一资源标识符(URI)的子字符串表示,识别网络中的资源。子字符串包含多个嵌套式数据数组。URI解析器与URI生成器将应用状态信息在对象表示(representation)与URI字符串表示之间作转换。最好是,URI是统一资源定位符(URL),应用状态信息由网络应用程序所提供,且URI字符串表示使用JavaScript对象注释(JSON)。

【技术领域】
[0001] 本发明涉及根据统一资源标识符(URI)提供应用状态信息的计算机化方法、根据应用状态信息提供URI的计算机化方法、利用URI管理应用状态信息的计算机化方法、与应用状态信息相关的计算机数据结构、根据URI提供应用状态信息的计算机系统、根据应用状态信息提供URI的计算机系统、利用URI管理应用状态信息的计算机系统、以及利用URI管理应用状态信息的计算机程序产品。

【权利要求(19)】
1.一种根据统一资源标识符URI提供应用状态信息的计算机方法,所述统一资源标识符识别计算机网络中的资源,所述方法包含以下步骤: 提供代表所述URI的字符的字符串; 解析所述字符串,生成利用独立数据数组代表所述应用状态信息的子字符串; 解析所述独立数据数组,生成所述独立数据数组的组件; 所述方法的特征在于以下步骤: 将所生成的组件中的一个识别为附属数据数组; 解析所述附属数据数组,生成所述附属数据数组的组件; 提供由所述数据数组的组件所代表的所述应用状态信息。

2.如权利要求1所述的方法,还包含以下步骤: 以递归方式将所述数据数组的所生成的组件中另外一些组件识别为另外的附属数据数组; 解析所述另外的附属数据数组,生成所述另外的附属数据数组的组件。

3.如权利要求1至2中任一项所述的方法,还包含以下步骤: 从所述组件中的一个组 件提取要由应用程序执行的程序代码部分,所述程序代码部分与函数相关联; 通过调用所述函数而执行所述程序代码部分。

4.如权利要求1-2中任一项所述的方法,其中所述数据数组的每一数组的所述组件包含下列中的一个:有顺序的值以及键与值的配对,其中所述键是字符的字符串,而所述值是下列中的一个:字符的字符串、数字、布尔项、和空值;以及其中特殊字符将代表所述URI的所述字符串的下列部分分开:代表所述应用状态信息的所述子字符串、所述数据数组、所述键以及所述值。

5.如权利要求1-2中任一项所述的方法,其中所述URI的一区段部分包含代表所述应用状态信息的所述子字符串。

6.如权利要求1-2中任一项所述的方法,其中所述应用状态信息的表示利用JavaScript对象注释。

7.如权利要求1-2中任一项所述的方法,其中所述URI是统一资源定位符URL。

8.一种根据应用状态信息提供统一资源标识符URI的计算机方法,所述统一资源标识符识别计算机网络中的资源,所述方法包含以下步骤: 提供所述应用状态信息; 根据所述应用状态信息,构建多个嵌套式数据数组,所述多个嵌套式数据数组具有一个独立数据数组与一个或多个附属数据数组,所述构建是通过以递归方式插入所述附属数据数组作为所述多个嵌套式数据数组的其它数据数组的组件来进行的; 利用所述多个嵌套式数据数组生成代表所述应用状态信息的字符的子字符串; 通过插入所生成的子字符串,生成代表改变后的URI的字符的字符串; 提供所述URI。

9.一种利用统 一资源标识符URI管理应用状态信息的计算机方法,所述统一资源标识符识别计算机网络中的资源,所述方法包含以下步骤: 依据权利要求1的步骤而根据所述URI提供应用状态信息;由应用程序处理所述应用状态信息; 依据权利要求8的步骤而根据所述应用状态信息,提供URI。

10.一种根据统一资源标识符URI提供应用状态信息的计算机系统,所述统一资源标识符识别计算机网络中的资源,所述系统包含: URI管理器,提供代表所述URI的字符的字符串; URI解析器,解析所述字符串以生成利用独立数据数组代表所述应用状态信息的子字符串,以及解析所述独立数据数组以生成所述独立数据数组的组件; 所述系统的特征在于还包括: 所述URI解析器的适配装置,将所生成的组件中的一个组件识别为附属数据数组,解析所述附属数据数组以生成所述附属数据数组的组件,以及提供由所述数据数组的组件所代表的所述应用状态信息。

11.一种根据统一资源标识符URI提供应用状态信息的装置,所述统一资源标识符识别计算机网络中的资源,所述装置包含以下单元: 用于提供代表所述URI的字符的字符串的单元; 用于解析所述字符串,生成利用独立数据数组代表所述应用状态信息的子字符串的单元; 用于解析所述独立数据数组,生成所述独立数据数组的组件的单元; 所述装置的特征在于以下单元: 用于将所生成的组件中的一个识别为附属数据数组的单元; 用于解析所述附属数据数组,生成所述附属数据数组的组件的单元; 用于提供由所述数据数组的组件所代表的所述应用状态信息的单元。

12.如权利要求11所述的装置,还包含以下单元: 用于以递归方式将所述数据数组的所生成的组件中另外一些组件识别为另外的附属数据数组的单元; 用于解析所述另外的附属数据数组,生成所述另外的附属数据数组的组件的单元。

13.如权利要求11至12中任一项所述的装置,还包含以下单元: 用于从所述组件中的一个组件提取要由应用程序执行的程序代码部分的单元,所述程序代码部分与函数相关联; 用于通过调用所述函数而执行所述程序代码部分的单元。

14.如权利要求11-12中任一项所述的装置,其中所述数据数组的每一数组的所述组件包含下列中的一个:有顺序的值以及键与值的配对,其中所述键是字符的字符串,而所述值是下列中的一个:字符的字符串、数字、布尔项、和空值;以及其中特殊字符将代表所述URI的所述字符串的下列部分分开:代表所述应用状态信息的所述子字符串、所述数据数组、所述键以及所述值。

15.如权利要求11-12中任一项所述的装置,其中所述URI的一区段部分包含代表所述应用状态信息的所述子字符串。

16.如权利要求11-12中任一项所述的装置,其中所述应用状态信息的表示利用JavaScript对象注释。

17.如权利要求11-12中任一项所述的装置,其中所述URI是统一资源定位符。

18.一种根据应用状态信息提供统一资源标识符URI的装置,所述统一资源标识符识别计算机网络中的资源,所述装置包含以下单元: 用于提供所述应用状态信息的单元; 用于根据所述应用状态信息,构建多个嵌套式数据数组的单元,所述多个嵌套式数据数组具有一个独立数据数组与一个或多个附属数据数组,所述构建是通过以递归方式插入所述附属数据数组作为所述多个嵌套式数据数组的其它数据数组的组件来进行的; 用于利用所述多个嵌套式数据数组生成代表所述应用状态信息的字符的子字符串的单元; 用于通过插入所生成的子字符串,生成代表改变后的URI的字符的字符串的单元; 用于提供所述URI的单元。

19.一种利用统一资源标识符URI管理应用状态信息的装置,所述统一资源标识符识别计算机网络中的资源,所述装置包含以下单元: 用于依据权利要求11的单元而根据所述URI提供应用状态信息的单元; 用于处理所述应用状态信息的单元; 用于依据权利要求18 的单元而根据所述应用状态信息,提供URI的单元。

【背景技术】
[0002]:IBM®Z/〇S®资源测量设备(RMF)提供性能测量与管理。此产品为操作系统z/OS和大型计算机环境收集性能数据,以监控系统的性能。z/OS RMF分布式数据服务器(DDS)提供性能数据的网络前端,以利用网络浏览器显示这些数据。系统中要被监控的每个资源与许多度量相关联,此度量是硬件或软件的某属性的度量,例如处理器利用率。其细节请参考以下网络的产品文档网页:http://www_03.1bm.com/servers/eserver/zseries/zos/rmf 以及其网页内的文档,例如位于 ftp://ftp.software, ibm.com/eserver/zseries/zos/rmf/ 的文档 RMF_MonitorIII_DataPo;rtal.pdf 与 RMFNewsletter 15.pdf。

[0003] 一般而言,网络浏览器与网络客户端可通过诸如因特网(全球信息网或WWW)或内部网络的网络,访问网络服务器(如RMF DDS) 0为了利用此方式,统一资源定位符(URL)可指定计算机网络中何处可提供可被识别的资源。利用URL,网络客户端可从网络服务器下载信息,以网页的方式观看下载的内容,并利用超链接浏览网页。网络应用程序一般是由网络服务器在服务器端执行的应用程序。下载的内容可包含网络应用程序代码的一部分,此部分是由网络客户端在客户端实施的。

[0004] 以下部分描述URL、网络应用程序以及程序脚本语言(例如JavaScript)的基本信息:统一资源标识符(URI)是URL的统称,其是用以识别因特网(WWW)或内部网络的资源、或替其命名。此识别使得能够利用协议通过网络与资源互动。URI包含许多字符的字符串。URI语法主要提供URI方案名称(以冒号结束)以及阶层(hierarchical)方案特定的部分。URI方案也称作协议。URI方案名称的例子包含“http:”、“f.tp:”等。阶层部分通常始于双前斜线(“//”),接着是权限部分以及选择性路径。URI的各部分通过以下例子来作解释:

[0005] “http://user:password@example.com:8037/over/there/index.dtb ? name =ferret#nose”。权限部分保留选择性用户信息部分(“user:password”)以“O”结束、主机名称(“example, com”),即域名或IP地址,以及在选择性端口号(“8037”)前有一冒号(“:”)。路径部分(“/over/there/index.dtb”)是区段序列,以前斜线(“/”)分开。查询(“? name = ferret”)是选择性部分,由问号(“? ”)分开,此部分包含额外的识别信息,此信息一般是非阶层的信息。查询字符串语法一般不会作定义,但是被组合为〈key〉=〈value〉配对的序列,以分号(“;”)、或“和”符号(“&”)分开。所谓的区段(“itaose”),也称为锚部,是选择性部分,且是以井号(“#,,)与之前部分分开。区段保留额外的识别信息,例如由URI的其它部分所识别的一部分HTML文档。这些部分的URI是如何作安排,以及如何与另一部分分开是方案特定的,且可对于另一协议而有所不同。URI可被分类为统一资源定位符(“URL”)、或统一资源名称(“URN”)。URN定义一项目(item)的身份,而URL提供找寻其位置的方法。所谓的URI参考可以是完整的UR1、或仅有方案特定部分的一个或多个尾端构件的形式。URI参考通常是使用网络文档标记语言。其细节请参考链接 http://en.wikipedia.0rg/wiki 中 /Uniform_Resource_Identif ier 以及 /URI_scheme 以及链接 http://tools.1etf.0rg/html/rfc3986。

[0006] 客户端程序脚本(可使用JavaScript程序脚本语言)通常是嵌于HTML文档中。但此语言也可包含在不同的文件中,而该文档会参照这些文件。在收到请求时,所需文件会由此文件所位于的网络服务器传送到用户的计算机。网络浏览器执行此程序脚本,并接着显示此文档,包含任何来自程序脚本的可观看的输出。若用户以特定方式与此文档互动,客户端程序脚本也可包含让网络浏览器跟随的指令,例如点击某按键、或输入特定文本。这些指令无需与服务器作进一步的通信。JavaScript程序脚本语言的特征在于其是具有第一类功能的动态编程语言,因为此语言将功能视为第一类对象。若编程语言在执行期间执行许多共同行为,这些共同行为是其它编程语言在编译期间会执行的行为的话,则此编程语言可视为是动态的。这些行为可在程序执行期间,利用增加新代码、扩展对象及定义、或修改类型系统而包含程序的扩展。第一类对象是具有固有身份的实体。具体而言,这暗示在执行期间此实体是可被建造的,且可以变量的方式进行存储。JavaScrip程序脚本语言可支持文档对象模型(DOM),此模型是跨平台且语言独立的惯例,用于代表并与HTML以及XML文档内的对象作互动。其细节请参考链接http://en.wikipedia.0rg/wiki中/JavaScript、/Dynamic_programming_language> /First_class_function、/First_class_object、/Scripting_language、以及 /Client_side_scripting、以及链接 http://java.sun.com 与http://www.w3.0rg/DOM。

[0007] JavaScript对象注释(JSON)是一种轻型、基于文本、语言独立的计算机数据互换格式,此格式被用于结构型数据的序列化,可通过网络进行传输。JSON的设计目的是成为最小、可携式、文本型的JavaScript子集。JSON可代表四个原始数据类型(字符串、数字、布尔值与空值)以及二个结构型数据类型(对象与数组(array))。字符串是指一序列的零或大于零的单一码字符。数组(也称为向量或列表)是有顺序的(ordered)零或大于零的值的序列。对象(在文献中也称为相关性数组或映射)是一个没有顺序的零或大于零的名称值配对(name-value pairs),这些配对也称为键数值配对(key-value pairs),其中名称是字符串,而值是字符串、数字、布尔值、空值、另一个对象、或一个数组。用于解析和生成JSON数据的代码可供许多不同类型的编程语言使用。

[0008] JSON的主要应用程序是在AJAX ( “异步JavaScrip与XML”)网络应用编程中,其中JSON是作为XML格式的替代使用。AJAX是在客户端使用的一组相互关联的网络开发技术,用来建立互动网络应用程序或丰富因特网应用程序。利用AJAX,网络应用程序可从网络服务器以异步的方式从背景取回数据,而不会影响现有网页的显示及行为。其细节可参考链接 http://en.wikipedia.0rg/wiki 下的 Associatve_array, /JavaScript, /JSON 与 /Ajax_(programming)以及链接 http://tools.1etf.0rg/html/rfc4627。

[0009] 每个非琐碎的应用程序必须管理其工作状态,此状态也称为应用状态。此应用状态反映各种行动,是应用程序已进行且可能运作过的,以及其它将执行的活动。一般而言,应用状态可由一组变量描述,在随后时间作存储与提取。网络应用程序利用许多技术存储其应用状态,此技术可被分类为服务器端及客户端。通常二种类型都会被使用。服务器端存储是在有安全性考虑的状态下用于网络应用程序。举例而言,在线金融应用程序将已完成的交易存储于网络服务器。网络服务器生成小型文本文档(cookie),也称为浏览器小型文本文档或HTTP小型文本文档,由网络浏览器在用户的计算机上存储一个小型的文本文档。具体而言,小型文本文档是由一个或多个名称值配对组合而成,此配对包含许多信息,例如用户喜好、基于服务器的会话内所使用的信息、或网站所使用的其它数据。此特殊的小型文本文档字符串识别网络应用程序的状态,此状态存储于网络服务器。在每个HTTP请求,网络浏览器将小型文本文档传送到网络服务器。服务器可将此小型文本文档与网络应用程序的客户端状态相关联,且通常会传回一个HTTP响应,其可包含此小型文本文档的更新。 [0010] 然而,在许多网络应用程序中,安全性仅占一小部分。在此情况下,将网络应用程序的状态存储在网络浏览器的URL中比较方便。网络客户端将URL传到网络服务器以提取信息。举例而言,在 URL “http://myshop.com/search ? category = cars&color =red&maxage = 4”中,搜索标准被存储在查询字符串,以找出红色的车子,其车龄不超过四年。应用程序用户可将此URL字符串存储在网络客户端中、将其复制到另一个网络客户端、或将其传送到另一个应用程序用户,以在随后时间利用相同的查询信息访问资源。

[0011] 若数据库查询非常复杂,则URL中的查询字符串可能变的很长且难以读取或修改。每当网络应用程序或用户改变查询字符串时,HTTP请求必须被传送到网络服务器,以在网络客户端反映改变后的URL。网络服务器提取被请求的信息,并回复一个HTTP回应。这个动作可能花费较多的数据处理资源与时间。

[0012] 美国专利申请第2009/0015599号教示一个可拖曳机制,用于识别并沟通应用程序的状态。识别应用状态信息的原数据由以“&”号分开的〈key〉=〈value〉配对序列的方式,表现在URL的一个区段部分内。此原数据在预定间隔作更新,以反映新的应用状态。

【发明内容】
[0013] 因此,本发明的实施例的目的是提供具有复杂的应用状态的表示(representation)的方法、计算机数据结构与计算机系统,此表示容易维护且可在网络中作交换。

[0014] 根据本发明的第一方面,提供一种计算机方法,根据统一资源标识符(URI)提供应用状态信息,此标识符识别计算机网络中的资源。提供代表URI的字符的字符串。此字符串会被解析,而利用独立数据数组生成子字符串,以代表应用状态信息。独立数据数组会被解析,进而生成独立数据数组的组件(element)。其中一个生成的组件会被识别为附属数据数组。此附属数据数组会被解析,进而生成附属数据数组的组件。提供利用数据数组的组件代表的应用状态信息。

[0015] 最好是,用递归的方式,该数据数组的所生成的组件中的一些另外的(further)组件被识别为另外的的附属数据数组。另外的附属数据数组会被解析,以生成另外的附属数据数组的组件。从其中一个组件,程序代码部分可被提取以供应用程序执行。程序代码部分与一函数相关联,通过调用该函数来执行。每个数据数组的组件包含以下其中一者:有顺序的值和配对的键与值。这些键是字符的字符串,而值是以下其中一者:字符的字符串、数字、布尔项、空值。特殊字符将代表URI的字符串的下述部分分开:代表应用状态信息的子字符串、数据数组、键、值。URI的一个区段部分包含代表应用状态信息的子字符串。应用状态信息的表示是使用JavaScript对象注释(JSON)。URI是统一资源定位符(URL)。

[0016] 根据本发明的第二方面,提供一种计算机方法,根据应用状态信息提供统一资源标识符(URI),该统一资源标识符识别计算机网络中的资源。提供应用状态信息。根据此应用状态信息,构建多个嵌套式数据数组,此数组具有一个独立数据数组以及一个或多个附属数据数组,其构建方式是以递归(recursion)方式插入附属数据数组,作为该多个嵌套式数据数组的其它数据数组的组件。生成利用多个嵌套式数据数组代表应用状态信息的字符的子字符串。代表URI的字符的字符串是通过插入所生成的子字符串而生成的。提供URI。

[0017] 最好是,在其中一个组件,程序代码部分会被存储以供应用程序执行。程序代码部分与一函数相关联。

[0018] 根据本发明的第三方面,提供一种计算机方法,利用统一资源标识符(URI)管理应用状态信息,此标识符识别计算机网络中的资源。根据URI,根据第一方面提供应用状态信息。应用程序处理应用状态信息。根据此应用状态信息,根据第二方面提供URI。

[0019] 根据本发明的第四方面,提供一种与应用状态信息相关的计算机数据结构。此数据结构包含统一资源标识符(URI),以识别计算机网络中的资源。URI是以字符的字符串作代表,其包含子字符串,利用多个嵌套式数据数组代表应用程序的应用状态信息,其数组具有一个独立数据数组和一个或多个附属数据数组。每个附属数据数组是多个嵌套式数据数组的另一个数据数组的组件。

[0020] 最好是,其中一个组件包含将由应用程序执行的某部分程序代码。程序代码的某部分与一函数相关联。

[0021] 根据本发明的第五方面,提供一种根据统一资源标识符(URI)提供应用状态信息的计算机系统,该标识符识别计算机网络中的资源。URI管理器提供代表URI的字符的字符串。URI解析器解析此字符串,进而生成子字符串,子字符串利用独立数据数组代表应用状态信息,URI解析器解析独立数据数组,进而生成独立数据数组的组件。URI解析器将其中一个生成的组件识别为附属数据数组,并解析此附属数据数组,进而生成附属数据数组的组件,并提供以数据数组的组件所代表的应用状态信息。

[0022] 根据本发明的第六方面,提供一种根据应用状态信息提供统一资源标识符(URI)的计算机系统,该标识符识别计算机网络中的资源。应用程序提供应用状态信息。根据应用状态信息,URI生成器构建多个嵌套式数据数组,其具有一个独立数据数组和一个或多个附属数据数组,其构建方式是以递归方式插入附属数据数组作为该多个嵌套式数据数组的另一个数据数组的组件。URI生成器生成字符的子字符串,其利用多个嵌套式数据数组代表应用状态信息,URI生成器通过插入所生成的子字符串,生成代表URI的字符的字符串,以及提供此URI。

[0023] 跟据本发明的第七方面,本发明提供一种利用统一资源标识符(URI)管理应用状态信息的计算机系统,该标识符识别计算机网络中的资源。根据代表URI的字符的字符串,URI解析器根据第五方面提供应用状态信息。应用程序处理应用状态信息。根据应用状态信息,URI生成器根据第六方面提供URI。

[0024] 根据本发明的实施例的第八方面,提供一种利用统一资源标识符(URI)管理应用状态信息的计算机程序产品,该标识符识别计算机网络中的资源。此计算机程序产品包含计算机可用介质且具有计算机可用程序代码实施于其中。计算机可用程序代码被配置为执行本发明的实施例的各方面的方法步骤。提供代表URI的字符的字符串。解析此字符串以生成利用独立数据数组代表应用状态信息的子字符串。解析独立数据数组会生成独立数据数组的组件。所生成的其中一个组件会被识别为附属数据数组。解析附属数据数组会生成附属数据数组的组件。提供以数据数组的组件所代表的应用状态信息。

[0025]其它特征与优势可通过本发明的技术而得知。本发明的其它实施例与方面将如下详述,且视为本发明的一部分。参照本发明的描述与附图,可进一步了解本发明的优势与特征。

附图说明

[0026] 本发明的主题在权利要求中作特定指明并清楚地主张。本发明的前述及其它目的、特征及优势可以从以下结合附图的详细描述中得知,其中:

[0027] 图1a-图1c示出根据本发明实施例的提供应用状态信息的方法的流程图;

[0028] 图2a_图2b示出根据本发明实施例的提供统一资源标识符的方法的流程图;

[0029] 图3示出根据本发明实施例的管理应用状态信息的方法的流程图;

[0030] 图4示出根据本发明实施例的管理应用状态信息的系统的方块图;

[0031] 图5示出根据本发明实施例的由网络应用程序管理应用状态信息的方法的流程图;

[0032] 图6示出根据本发明实施例的数据结构的简要方块图;

[0033] 图7a_图7c示出根据本发明实施例的应用状态信息的格式化表示;

[0034] 图8示出根据本发明实施例的包含应用状态信息的URL ;

[0035] 图9示出根据本发明实施例的建立应用状态信息的对象表示的JavaScript代码;以及

[0036] 图1Oa-图1Ob示出根据本发明实施例的解析并生成应用状态信息的URI表示的JavaScript 代石马。

具体实施方式

[0037] 本发明的优选实施例改进在URL字符串中存储应用状态信息的技术。代替将应用状态信息存储在URL的查询字符串中,例如“http://myshop.com/search ? category =cars&color = red&maxage = 4”,本优选实施例以URL的区段或锚部代表同样的信息,例如“http://myshop.com/search# {category cars”, color:“red,,,maxage:“4,,} ”。反向地,所存储的应用状态信息也可从URL提取。

[0038] 在现有技术中,查询字符串仅限于具有键(key)值(value)配对集合的平面数组结构。键与值仅能有原始类型,即字符串、数字及布尔值。这些值非复合物。根据本优选实施例,应用状态信息被序列化为JS0N,并存储于URL。JSON得以代表任意嵌套式的数据结构,并可支持复杂的应用状态信息。[0039] 一般而言,数据数组的字符串表示,例如利用JS0N,具有以下要求,以清楚识别数据数组及其组件。一对预定的定界符必须标示数据数组的开端与尾端,由此表示哪些组件是一起的。组件间预定的分离符显示字符串中组件开始与结束的位置。再者,预定的键或索引分离符可在字符的字符串中清楚的界定键或索引。在JSON的情况下,这些定界符及分离符是单一特殊字符,如下详述。

[0040] 在AJAX网络应用程序中,区段部分前的URL的子字符串(由井字“#”分开)只有从网络服务器重新加载整个网页的情况下才能被改变。然而,区段部分的修改允许客户端的网络应用程序得以本地性地更新其应用程序状态,而无需网络客户端与网络服务器进行通信。此应用程序状态的更新不一定代表网络浏览器中的网页上有视觉改变。

[0041] 网页浏览器或客户端应用程序可提供浏览(navigation)组件,让用户往前或往后到另一个网页或到网页的另一个位置。当用户点击可配置的链接时,网页浏览器可到一个已存储的位置。浏览器历史功能是本优选实施例相对于AJAX应用程序的一个优势,AJAX应用程序不将应用程序状态存储于URL中。

[0042] 本优选实施例提供将窗口应用程序整合到数据框应用程序的API。数据框应用程序可启动窗口应用程序,并在对应的URL中指定其应用程序状态的参数。数据框应用程序也可容易地改变URL,并定义替代的启动目标。

[0043] 为了再现应用程序的情境,用户或技术支持工程师可简单地使用特定的URL,其包含恢复特定应用程序状态的完整信息。

[0044] 本优选实施例的目的是实施在特定环境中,例如IBM z/OS资源管理设备(RMF),其中网络前端可提供定制性能桌上型计算机(PerfDesks)的功能。性能桌上型计算机是网络客户端的窗口,其包含多个性能度量(Metric)。这些度量可被分配给度量群组(MetricGroup)。每个阶层组件(PerfDesks、MetricGroup、Metric)可具有独立的可定制属性。举例而言,对每个组件可指定显示名称。度量及/或度量群组可增加到性能桌上型计算机或从该处移除。度量可包含筛选信息,以指定从网络服务器所提取的信息量。网络客户端应用程序提供用户对话,供定制性能桌上型计算机,并动态地反映网络客户端的数据可视化以及改变的URL中的定制改变。

[0045] 图1a-1c示出了根据统一资源标识符(URI)提供应用状态信息的方法的流程图。URI管理器(也可称作URI管理构件)在步骤101提供代表URI的字符字符串。URI解析器在步骤102解析此字符串,以生成代表应用状态信息的子字符串。在步骤103,URI解析器解析此应用状态信息子字符串,其代表独立数据数组。此解析生成独立数据数组的组件。图1b示出了解析步骤103的子步骤。当URI解析器在步骤111解析独立数据数组时,其在步骤112将一个组件视为附属数据数组,并在步骤113解析此附属数据数组,以生成附属数据数组的组件。回到图la,URI解析器在步骤104提供应用状态信息,其是以数据数组的组件来表示的。图1c示出了解析步骤103的替代子步骤,这些步骤被应用于独立数据数组,以及嵌套式附属数据数组。URI解析器以递归程序解析数据数组。在步骤121,URI解析器试图确定数据数组的第一组件,并在步骤122检查此组件是否存在。若结果为“否”,则图1c的解析程序结束。若结果为“是”,则在步骤123,URI解析器测试此组件是否为附属数据数组。在肯定的情况下,URI解析器在步骤124以递归地执行图1c的子步骤的方式,解析此附属数据数组。在否定的情况下,即当组件具有原始数据类型时,URI解析器在步骤125将组件加入应用状态信息。在步骤124与125之后,URI解析器在步骤126试图确定数据数组的下一个组件,以及操作回到步骤122,以检查此组件是否存在。

[0046] 图2a_2b示出了根据应用状态信息提供URI的方法的流程图。在步骤201,应用程序提供应用状态信息。在步骤202,URI生成器生成应用状态信息子字符串。步骤202的详细子步骤描述于图2b中。URI生成器通过构建代表独立数据数组的子字符串,开始递归程序。在步骤211,URI生成器试图根据应用状态信息确定数据数组的第一组件,并在步骤212测试此组件是否存在。若结果为“否”,则URI生成器结束图2b的程序。若结果为“是”,则URI生成器在步骤213检查此组件是否代表附属数据数组。在肯定的情况下,URI生成器在步骤214通过以递归地执行图2b的子步骤的方式,构建代表附属数据数组的子字符串。在否定的情况下,URI生成器在步骤215将组件插入应用状态信息子字符串。在步骤214与215之后,URI生成器在步骤216试图根据应用状态信息,确定数据数组的下一个组件,以及操作回到步骤212,以检查此组件是否存在。

[0047] 图3示出了利用URI管理应用状态信息的方法的流程图:在步骤301,URI解析器根据URI提供应用状态信息。在步骤302,应用程序处理应用状态信息。应用状态信息可改变。URI生成器在步骤303根据应用状态信息提供URI。

[0048] 图4示出了管理应用状态信息的系统的方块图。该系统包含网络服务器401与网络客户端402,且可能包含外部网络客户端403。网络客户端具有网络应用管理器404,提供网络客户端与网络服务器之间的接口。网络应用管理器控制网络客户端内网络应用程序的执行,并管理统一资源定位符(URL),其识别位于网络服务器上的资源。网络客户端可提供显示URL的地址字段,并允许用户读取及改变此URL。网络应用管理器存储此URL,在步骤405将其发送到网络服务器,并在步骤406接收网络内容,其包含网络客户端将以网络应用程序408执行的程序脚本。在步骤407,网络应用管理器启动网络应用。网络应用包含应用状管理器409,其具有URL解析器410与URL生成器416。当网络应用开始时,URL管理器404 (即网络应用管理器)在步骤409提供URL字符串。URL解析器将URL字符串转换为应用状态对象,并在步骤411将其提供给网络应用程序的应用特定部分412。此应用特定部分执行程序逻辑413,并通过图形用户界面414与用户交换信息。应用特定部分提供415 —应用状态对象,其通常反映改变后的应用状态。URL生成器将应用状态对象转换为URL字符串,并在步骤417将其提供给URL管理器,而URL管理器则将此URL存储为网络应用的目前状态。此URL可能不同于先前所存储的URL。网络客户端的用户可在地址字段读取或修改此URL。在步骤418,URL可通过另一个网络客户端403所存储的应用状态来开启网络应用,反之亦然。在步骤405,URL也可重新被传送到网络服务器401,以在步骤406重新将网络应用加载到网络客户端402。

[0049] 图5示出了由网络应用管理应用状态信息的方法的流程图。在步骤501,网络客户端将HTTL请求传送给网络服务器,该请求包含识别网络服务器上的资源的URL。接着,在步骤502,网络客户端接收HTTP响应,其可包含将以客户端网络应用执行的程序脚本。在步骤503,网络客户端调用(invoke)网络应用。网络应用在步骤504检查URL是否包含应用状态信息。在肯定的情况下,网络应用解析步骤505的URL,以在步骤506提供应用状态对象给运行中的应用程序,此程序可在步骤507执行用户互动。在否定的情况下,网络应用省略解析步骤505。网络应用可在步骤508改变其应用状态,在步骤509生成改变后的URL,以及在步骤510提供URL。接着,在步骤506应用持续运行。回到步骤501,所提供的URL也可被重新传送到网络服务器、或在步骤511被复制以存储为书签、或由另一个网络客户端使用。

[0050] 图6示出了代表应用状态信息的URI字符串的简要方块图。URI字符串601包含具有URI方案名称与阶层式方案特定部分的第一子字符串602,以及代表应用状态信息的第二子字符串603。当第二子字符串603以井字”#”字符开始时,第二子字符串被称作区段或锚部(fragment or anchor part)。第二子字符串603代表独立数据数组。其某些组件是附属数据数组604与605,它们可包含更多附属数据数组606、607与608。

[0051] 图7a_7c在第701到770行显示应用状态对象的格式化表示。此例子为”我的存储控制器(My Storage Console) ”,是RMF性能桌上型计算机的简化。特定的存储控制器的结构具有二个群组成员:”重要存储指示符(Important Storage Indicators) ”以及”非重要指示符(Non-critical Indicators) ”。每个群组成员具有度量,是可指定可视标志、筛选器(filter)对象以及选择性格式器功能。格式化表示包含多个数据数组,是成嵌套式。JSON提供用于数据数组的两个结构式基本数据类型,称为数组(array)与对象(object)。数组是顺序性的值序列,此序列以逗号分开,并包含在方形括号内。一个例子是第704到769行具有二个组件的数组”群组(groups) ”,此二个组件是以整数索引作识别:第706到745行的”群组[0] ”以及第746到768行的”群组[I] ”。此二个组件都具有结构式的数据类型对象,如下详述。另一个例子是第760到764行具有二个组件的数组”有效键(validKeys) ”,此二个组件具有原始数据类型字符串。此对象是键-值配对或名称-值配对的集合,其以逗号分开,并包含在H括号内。图7a-7c显示许多这样的例子:第701到770行中的上层独立数据数组,被称为”状态(state)”,并具有多个键-值配对。键是属字符串类型。在第702与703行中,值是键”视图身份(viewld)”与”标识(label) ”的字符串、以及键”群组”的数组。此值可为布尔项,即是或否,例如在第721、752与757行所示。它也可以是数字”12.9”与”20”,如第715与 716行所示。数字可为整数、小数点或浮点数。或者,此值可为空值,例如第722与753行所示。

[0052] 具有metricld =“23456”的度量在第723到742行中包含键-值配对,其中键”格式器(formatter) ”指向JavaScript函数(function),而此值为类型函数,且包含程序代码部分。函数本身是匿名的。仅有函数的指针被存储在变量”格式器”中。此例子中的函数将整数数字”n”格式化,以作为输入。输出是HTML字符串(“〈span style = X’color: $ {color};\”>”+5^^叩(11)+”〈/邓&11>”),其包含输入数”11”,及其它颜色信息。若数字小于1,以绿色显示。若数字等于1,则”颜色(color)属性的值为”黄色”。数字大于I时,数字为红色。

[0053] 图8示出了包含井字(“#,,)字符后代表图7a_7c所示的应用状态信息的子字符串的URL字符串。

[0054] 图9示出了第901到911行的JavaScript代码,此代码实施一部分的网络应用,以建立图7a_7c所示的应用状态信息的对象表示。每个分配(“ = “)加一个组件到JavaScript对象”状态(state)”。嵌套式组件的识别符是以句号”)分开。二个空的大括号(“H”)建立一初始对象,即包含键-值配对的数据数组。二个空的方形括号(“[]”)建立一初始数组,即包含顺序性的值序列的数据数组。对象的值被分配给各个键。举例而言,在第902行,值”d2af5bea”被分配给键”state, viewld”。当值被分配给数组时,以整数索引来识别它们。举例而言,在第908行,初始对象(“{},,)被分配给数组” state, groups [O].metrics”作为具有索引”[0]”的第一值,在第911行,另一初始对象(“H”)被分配给相同数组作为具有索引” [I]”的第二值。

[0055] 图1Oa示出了实施URL解析器的JavaScrip代码。”restoreState”函数解析代表URL的字符串,并提供代表应用状态信息的JavaScript对象。第1001行的函数定义被称为”restoreState”,因为应用状态是根据 URL 被恢复。JavaScript 对象”window, location,hash”在第1002行传回URL的区段部分,并将其写入字符串”stateStr”。空的JavaScript对象” stateOb j”被建立于第1003行。随后的子函数调用由第1004到1009行的尝试块(tryblock)所围绕。”restoreState”函数在第1005行测试字符串”stateStr ”是否为有效且非空的。在否定的情况下,JavaScript对象” stateOb j ”维持不变,即是空值。在肯定的情况下,第1006行的”restoreState”函数移除字符串” stateStr”的第一字符,即井字(“#,,)分离符。接着,本地的JavaScript函数” eval() ”在第1007行被调用,以取消” stateSrt”字符串的序列,并将取消序列的信息写入JavaScript对象”stateObj”。第1010到1011行的捕捉块(catch block)不包含另外的例外(exception)处理。当在第1010行丢弃例外时,JavaScript对象” stateOb j ”维持空值。当评价步骤成功时,” restoreState”函数在第1012行返回生成的JavaScript对象” stateOb j ”。若URL包含无效对象、无对象、或若有一例外被丢弃,则函数返回空值。

[0056] 图1Ob示出了实施URL生成器的JavaScript码。” storeState”函数根据代表应用状态信息的JavaScript对象” stateObj”,生成并存储代表URL的字符串。第1021行的函数定义被称作” storeState”,因为存储了应用状态信息。字符串” stateStr”与一个识别URL的区段部分的井字字符(“#,,)被创建于第1022行。” storeState”函数在第1023行测试JavaScript对象”stateObj”是否有效或非空的。在否定的情况下,”stateStr”字符串维持初始值,即仅包含井字(“#”)。在肯定的情况下,随后的子函数调用被第1024到1026行中的尝试块所围绕。在第1025行调用本地JavaScript函数” toSourceO ”,将JavaScript对象” stateOb j ”序列化,并将序列化后的信息附加到” stateStr”字符串。第1027到1028行的捕捉块不包含另外的例外处理。当因为JavaScript对象” stateObj”无效而在第1027行丢弃例外时,” stateStr”字符串也维持初始值。在第1032行,生成的字符串” stateStr” 被写入 JavaScript 对象” window, location, hash”,进而设定 URL 的区段部分。

[0057] 某些网络浏览器并不支持第1025行的序列化函数”toSourceO ”。因此,优选实施例利用Dojo工具组所提供的开放源码实现。细节请参考链接http://www.dojotoolkit.0rg/。

[0058] 本发明的替代实施例可使用JSON以外的格式,将应用状态信息序列化,以及JavaScript以外的编程语言,执行网络浏览器中的网络应用。可扩展标记语言(XML)可提供多个嵌套式数据数组的表示,具有与JSON表示相同的结构。产生XML文档的字符可被分为标记或内容。构成标记的所有字符串是以字符”〈“开始,并以下一个”〉“作结束、或以”&”字符开始,并以字符”;”结束。非标记的字符的字符串即为内容。卷标(tag)是以”〈“开始并以”〉“结束的标记构建。基于XML的应用状态信息表示比JSON长很多。细节请参考链接 http://en.wikipedia.0rg/wiki/XML 与 http://www.w3.0rg/XML。

[0059] 替代实施例可使用本地Java实现URI解析器与URI生成器。当提供输入字符串” stateStr”时,Java方法可回复Java对象” stateObj”,反之亦然。此实现可使用应用程序编程接口,以提供解析器,此解析器从XML文档产生文档对象模型(DOM)对象树,和对对象树的组件的访问方法。DOM对象树可由符合org.w3c.dom.Document接口的许多方法进行访问。相反地,XML文档可根据DOM对象树通过调用适当的方式而生成。

[0060] 其它替代实施例可利用JavaScript以外的程序脚本语言,当与一变量相关联时,此语言也可动态地在执行期间执行程序代码部分。这些例子是程序脚本语言Python与Perl。在Python中,eval函数以Python表达式对字符串求值(evaluate)。此字符串可包含常数(literals)、简易表达或或内建函数。当给予Perl—个要执行的文件或作为命令线选项的字符串时,此语言需要解析内容、检查其语法错误,若都无误则执行它。Perl将此功能通过eval命令的方式提供给程序设计者。至于基于编辑器的编程语言C/C++,则没有程序代码部分的执行期间评价,而有许多公共域及商业解译器,可与C应用程序作连结以支持类似C或C++的解译语言。然而,Java不提供新代码的实时生成与评价。Java编辑器的程序调用可提供另一工作区。细节请参考http://effbot.0rg/zone/librarybook-core-eval.htm, http://docstore.mik.ua/orelly/perl/advprog/ch05_01.htm,以及 http://docstore.mik.ua/orelly/perl/advprog/ch05_01.htm。

[0061] 网络应用的执行并不限于网络客户端,也可在网络服务器内执行。UR1、或具体而言URL或URN(存储应用状态信息)也可在网络相关的应用内部中使用,即在网络服务器或网络客户端内。URI可在网络中任何通信伙伴间作交换,例如在二个网络服务器或二个网络客户端之间。

[0062] 本发明并不限定于性能监控器与管理控制器的例子,而可执行于任何需要在网络中识别信息技术资源的应用领域中。

[0063] 在此所使用的词汇仅是供描述特定实施例之用,而不限制本发明。除非有特定指明,在此所使用的单一形式” 一”、” 一个”、及”这个”也包含复数形式。还需知道的是,说明书中所使用的”包含”及/或”包括”等词是指明所述功能、整数、步骤、操作、组件及/或构件的存在,而不排除一个或多个其它功能、整数、步骤、操作、组件、构件及/或其组合的存在或增加。

[0064]以下权利要求中所有手段或步骤加功能组件的对应结构、材料、行为及其均等者,包含执行此功能的任一结构、材料、或行为与其它特定主张的组件的结合,如权利要求的请求项所作的主张。本发明的描述用来进行示出和描述,但所的特定形式不代表穷尽或限制于所公开的本发明。本领域技术人员可对本发明作许多的修改及润饰而不偏离本发明的范畴与精神。实施例是选择用来描述本发明的原则及实际应用,以使本领域的其他技术人员了解本发明,并根据所思及的特定使用对许多实施例作其它润饰。

[0065] 本领域技术人员当知,本发明的各方面可以系统、方法或计算机程序产品的方式实施。因此,本发明的各方面可完全以硬件实施、完全以软件(包含固件、常驻软件、微码等)实施、或结合软件与硬件的方式实施。这些实施例在此可通称为”电路”、”模块”、或”系统”。再者,本发明的各方面可以计算机程序产品的形式实施,此产品位于具有计算机可读程序代码实施于其中的一个或多个计算机可读介质。[0066] 本发明可使用一个或多个计算机可读介质的任一结合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可为例如但不限于电子、磁性、光学、电磁、红外线、或半导体系统、设备、或装置、或前述任一适当结合。计算机可读存储介质的更具体例子(非穷尽列举)可包含:具有一个或多个导线的电连接、可携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、可携式光盘只读存储器(⑶-ROM)、光学存储装置、磁性存储装置、或前述任一适当结合。在此文档的上下文中,计算机可读存储介质可为任何可包含或存储程序的有形介质,供指令执行系统、设备或装置使用,或与其一同使用。

[0067] 计算机可读信号介质可包含传播数据信号,是以位于基带或是载波的一部分的方式,将计算机可读程序代码实施于其中。此传播信号可为任何形式,其包含但不限于电磁、光学或前述任一适当结合。计算机可读信号介质可为任何非计算机可读存储介质的计算机可读介质,其可通信、传播或传输程序,以供指令执行系统、设备或装置使用,或与其一同使用。

[0068] 实施于计算机可读介质的程序代码可利用任何适当的介质进行传输,其包含但不限于无线、有线、光纤缆线、无线电射频(RF)等、或前述任一适当结合。

[0069] 实施本发明各操作的计算机程序码,可以一个或多个编程语言编写,其包含面向对象的编程语言(例如Java、Smalltalk、C++、或其类似者),以及现有的程序性编程语言(例如”C”编程语言、或类似编程语言)。程序代码可以独立软件套件的方式完全执行于用户的计算机、部分执行于用户的计算机执行,部分执行于用户的计算机及部分执行于远程计算机,或完全执行于远程计算机或服务器。在后者的情况,远程计算机可通过包括局域网络(LAN)或广域网络(WAN)的任意网络与用户的计算机相连、或者可与外部计算机相连(例如利用因特网服务提供商通过因特网的方式作连接)。

[0070] 本发明的各方面是参照本发明的实施例的方法、设备(系统)及计算机程序产品的流程图及/或方块图作描述。本领域技术人员知道,流程图及/或方块图的每个方块、流程图及/或方块图的方块的结合,可由计算机程序指令实施。这些计算机程序指令可提供给一般目的计算机、特殊目的计算机、或其它可编程数据处理设备的处理器,以产生机器,使各指令通过计算机或其它可编程数据处理设备的处理器作执行,建立实施流程图及/或方块图方块内所指定的功能/行为的手段。

[0071] 这些计算机程序指令也可存储于计算机可读介质,此介质可指引计算机、或其它可编程数据处理设备,以特定方式运作,使得存储于计算机可读介质的指令产生包含指令的产品,这些指令实施流程图及/或方块图的方块中所指定的功能/行为。

[0072] 计算机程序指令也可加载于计算机、或其它可编程数据处理设备、或其它装置,导致一系列的操作步骤运作于计算机、其它可编程设备、或其它装置,以产生计算机实施的程序,使执行于计算机或其它可编程设备的指令,提供实施流程图及/或方块图的方块中所指定的功能/行为的处理。

[0073] 图中的流程图与方块图显示本发明许多实施例的系统、方法及计算机程序产品可能实施的架构、功能及操作。因此,流程图或方块图中的每个方块可代表代码的一模块、片段、或部分,其包含一个或多个可执行指令,用于实施指定的逻辑功能。需要知道的是,在某些替代实现方式中,方块中所附注的功能可能以不同于图式中的顺序发生。举例而言,二个显示为连续的方块,可能实际上是实质同时执行,或者方块有时会根据涉及的功能而以相反顺序执行。还需知道的是,方块图及/或流程图中的每个方块、及方块图及/或流程图中的方块的结合,可由基于特定目的硬件的系统实施,以运作特定目的硬件及计算机指令的特定功能或行为或其结合。

[0074] 虽然参照本发明的特定实施例作出以上描述,但本领域技术人员知道,这些实施例可作改变而不偏离本发明的原则与精神,本发明的范围当由权利要求作界定。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

0 0