跟踪和定位web服务更新过程中的改变的方法和装置的制作方法

文档序号:7663856阅读:118来源:国知局
专利名称:跟踪和定位web服务更新过程中的改变的方法和装置的制作方法
技术领域
本发明涉及web服务(网上服务程序)的客户端程序,尤其涉 及用于跟踪和定位web服务客户端程序更新过程中的web服务改变 的方法和装置。
背景技术
web服务的兴起使越来越多的人依赖基于web服务的软件来做 生意。例如,现在有许多服务提供商提供Web服务(或者叫做online API)供用户调用,例如Google的Map服务、Flickr的图片服务、 YouTube 的视频月艮务 。 ProgrammableWeb 网站 (http:〃www.programmableweb.com/apis )歹'J出了现在比较'流4亍的 Web服务。用户通过调用或者集成这些Web月良务可以方l更地构建自 己的应用程序。例如,用户调用eBay提供的eCommerce Web服务 和Google的Map服务,可以方便的构造出一个应用程序,用来查询 商品的价格及供应商的地理位置。
但是这些在线提供的API(应用程序接口 )频繁地定期或不定期 改变。这些容易改变的web服务对其用户提出了挑战,即,如何容易 地被通知所述改变并且以高效方式适应于所述改变。
例如,以ebay提供的web服务作为例子,在2004年4月(以 下数据来自于O'Reilly的白皮书《Web Services in Action: Integrating with the eBay Marketplace 》 (http:〃cascadetg,com/downloads/ whitepaper ebaywebservices.pdf)):
超过200,000的eBay卖家使用基于基于eBay Web服务的应用
程序;eBay上使用基于API的软件的卖家平均每分钟产生595个新销 售单以及10202美元;
eBay卖家4吏用的商品显示查询J3艮务功能,40。/。通过eBay的Web 服务进行;
eBay每个月支持超过l,OOO,OOO,OOO次API调用;
这些数据在近两年中增长的很快。根据我们对eBay提供的Web 服务进行的进一步观察和分析,我们还发现
eBay提供的Web服务按计划每月公布两次版本通知(release note),其中指示改变的调用、模式(schema)改变、新功能等等;
在多数版本通知中最常出现的是模式改变;
一个高效的开发人员需要2天时间来调整其代码以适应新版本 的web月良务。
由此可见的一个技术问题是作为开发人员的用户如何跟踪其目 标web服务的改变并且高效地进行适应性修改。
当前web服务提供者公布所述新版本的web服务时,所述新服 务被版本序号或时间戳加以标记。同时,所述版本通知或更新指南也 被发布,以帮助开发人员改变其客户端程序代码。大多数的版本通知 是html网页并以RSS/Atom feed或电子邮件发布给所述服务的客户。 例如,eBay的web月l务版本(参见http:〃developer.ebay.com/)由其 自己定义的版本号标记,并且在新版本公布时发送给开发人员。 Amazon的web服务是通过添加时间戳到Web服务的地址空间 (namespace)来标记服务版本,开发人员可以通过电子邮件-皮通知、 或订购版本通知页的RSSfeed。
但是,现有技术的方案有如下缺陷
-服务提供者依据他们自己的内容和格式而公布所述版本通 知,所述版本通知不能被客户定制。因此,每个服务请求者都需要阅 读整个版本通知,然后才知道是否包含涉及自己程序的改变,是否需 要更改其客户端应用程序。
-通常所述版本通知很长并且所述客户端应用程序很大。因此开发人员很难找到哪些代码需要改变以适应于所述目标服务的改变。
-版本通知定期频繁地(例如每两周)发布,但是开发人员可 能由于出差等多种原因无法每次都及时阅读并更新其应用程序。例 如,开发人员出差几个月之后回来,发现需要手工处理很多个版本通 知,这是很大的工作量,而且容易出错。
举例来进行说明。首先,如附图la所示,服务提供者发送版本 通知l,用户基于其自己的应用程序确认出相关的部分,即元素A改 变为元素A1、元素B改变为元素B1、元素C改变为元素C1。接下 来,用户根据所述改变修改其相应代码。但是,有时候用户可能因为 某些原因而遗漏某些改变,例如本次的改变不是很重要并且不会影响 所述应用程序的使用。因此用户将来可能会遗忘本次改变。然后问题 就出现了。假设用户忘记了第一个改变,即忘记了元素A改变为元素 Al。现在服务提供者发送版本通知2,如附图lb所示,其中元素A1 改变为元素A2、元素Bl改变为元素B2、元素Cl改变为元素C2。 显然,对于所述开发人员而言,很难认识到其客户端代码中的旧元素 A已经被改变为A2,因为他已经忘记了第一次A变化到Al,所以在 他的应用程序中没有A1。很遗憾,他在将来会失去A的所有改变, 从而可能导致其应用程序不可用。而当这种情况发生时,对于用户而 言是极难找出问题在哪里。

发明内容
为了解决上述问题,本发明提出了一种新的方法和装置,用于跟 踪并且定位跟客户端应用程序相关的web服务变更从而方便客户端 应用程序进行改变。
为了实现该目的,本发明设计了一种方法和装置,其不仅帮助用 户动态高效地记录web服务的相关改变而无需太多人工工作量,更重 要的是它能够自动定位应用程序中何处应该进行更改以及相应的更 改历史。
本发明独特地提供了一种跟踪和定位web服务改变的方法和装置,用于在web服务用户端保持目标web服务的改变历史。本发明 的方法和装置可以被实现为一种插件,其能够被置于web服务的用户 端应用程序的开发平台中。可选的,本发明的方法和装置也可以实现 在web服务提供者的服务器中,或者提供在独立于web服务的用户 和提供者的第三方。
本发明的优点在于以下至少之一能够为每一个用户本地定制所 述版本通知或API升级指南(服务描述文件);所述用户所关注的目 标web服务的改变历史能够被本地跟踪并且本地存储;本发明还可以 把所有改变转换为标准的原语描述,从而可以在客户端统一各种web 服务提供者对服务变化的描述,消除了不同web服务提供者之间的差 异。用户能够使用上述改变历史轻松地在本地更新其客户端代码,更 为自动化的客户端代码更新提供了基础。
本发明一方面提供了一种用于记录web服务改变历史的改变历 史记录方法,包括接收步骤,用于接收包括web服务的改变描述的 版本通知;转换步骤,用于从所述版本通知中找出与用户使用元素相 关的改变描述;历史生成及保存步骤,用于基于所述与用户使用元素
户端本地。
本发明另一方面提供了一种用于记录web服务改变历史的改变 历史记录装置,包括转换引擎,用于接收包括web服务改变描述的 版本通知,以及从所述版本通知中找出与所述用户使用元素相关的改 变描述;历史生成装置,用于从所述转换引擎接收所述与用户使用元 素相关的改变描述,并生成与所述用户使用元素相关的改变历史。
本发明再一方面还提供了一种改变更新支持器的实现,用于根据 版本通知来更新客户端应用程序,所述改变更新支持器包括如前所 述的改变历史记录装置;版本通知接收装置,用于接收新的版本通知 并输入到所述改变历史记录装置中,所述版本通知包括web服务的改 变描述;代码检索装置,用于从客户端应用程序中检索用户使用元素 并输入到所述改变历史记录装置中;以及其中所述改变历史记录装置输出所述用户使用元素的改变历史。


这里结合以下描述和附图描述某些图示的范例方法和装置。结合 附图考虑下面的详细描述,其它的优点和新颖的特征可以显而易见。 发明本身的构思及其优选使用方式和实施例通过参照如下附图和具 体实施方式而被更好地理解,其中
附图la和lb显示了现有技术中发布版本通知的例子。
附图2显示了本发明的改变历史记录方法的一种优选实施方式。
附图3显示了本发明的改变历史记录方法和装置被实施在web
服务的客户开发平台。
附图4显示了根据本发明一个优选实施方式的改变历史记录器 的结构框图。
附图5显示了附图4所示的改变历史记录器的实施细节。
附图6 - 7显示了应用本发明解决背景技术所提出的技术问题的例子。
附图8显示了应用本发明到Amazon E-Commerce Web月l务的例子。
附图9显示了本发明的改变历史记录器被实现在web服务提供 者的例子。
具体实施例方式
参考附图2,显示了本发明的提出的改变历史记录方法的一种优 选实施方式。所述方法用于记录web服务改变历史,包括接收步骤 201,用于接收包括web服务的改变描述的版本通知,所述版本通知 包括对web服务的改变描述;转换步骤202,用于根据预定的转换规 则,对所述版本通知进行转换,并且从转换后的版本通知中找出与用 户使用元素相关的改变描述,以生成一个定制化版本通知,其中所述 用户使用元素至少包括:用户的应用程序所使用到的web服务、操作、
9消息、数据元素、类型、属性之一或其组合;历史生成步骤203,用
相关的改变历史,并将改变历史保存在本地。
根据本发明的一个优选实施方式,上述转换规则包括把各种格式 的版本通知翻译为标准的改变描述原语。例如,本发明优选的一组标 准改变描述原语为"增加(ADD),,、"删除(REMOVE),,和"更新 (UPDATE)",下文将进一步详述。
参看附图3,显示了实现上述改变历史记录方法的装置的优选实 施例。在这个实施例中,改变历史记录器304被实施在客户端。具体 而言,是被实施在当前web服务的客户端开发平台301中。所述改变 历史记录器304可以实现为被驻留在客户端的改变更新支持器302 中。所述改变历史记录器304能够保持该web服务客户端应用程序 303所使用的服务元素的改变历史305。基于所述改变历史记录器304, 所述改变更新支持器302可以帮助用户根据所述新版本通知来更新所 述客户端应用程序303。这样,所述客户端的用户就可以轻+>地找出 在哪里改变其客户端代码。
如本领域的技术人员所能够理解的,在本发明所提出的改变历史 记录器304的基础上,客户端的所述改变更新支持器305可以为用户 提供多方面的辅助,包括根据改变历史记录器304所记录的改变历史 来提示更新客户端应用程序的部分,甚至自动根据所述改变历史自动 更新代码。下文将结合本发明提供的改变历史记录器对这些扩展功能 做进一步介绍。
参见附图4,显示了根据本发明的一个范例实施例的改变历史记 录器304的框图。
所述改变历史记录器304包含两个部件,转换引擎402以及历史 生成器403。
一方面,所述转换引擎402从web服务提供者接收一个新的版 本通知,将其转换为预定格式。如本领域的技术人员所了解的,可以 使用本领域的已有技术,例如通过email、 RSS接收器、Atom接收器、FTP等技术来接收版本通知。下文将对该转换步骤进行进一步的说 明。
另一方面,所述转换引擎402接收所述用户的"用户使用元素" (Consumer Used Element) 401,通常包括用户开发其应用程序所用 到的服务(service)、操作(operation)、 消息(message)、数据 元素(element)、类型(type)、属性(attribute)等等。可以通过 开发人员手工输入而得到所述用户使用元素401。也可以利用代码检 索和文本匹配等现有技术来得到。例如,目前每个web服务提供者都 提供WSDL文件(例如Amazon Web服务的WSDL文件可以从网 址
http:〃webservices.amazon.com/AWSECommerceService/AWSECommerceSer vice.wsdl 得到),其中描述了其提供的原始web服务的细节。因为 WSDL是一种Extensible Markup Language ( XML )语言,所以可 使用各种XML解析工具,或者使用现有的WSDL解析器解析该原始 web服务的WSDL文件,以得到该web服务中的所有元素名称,现 有的WSDL解析器很多,例如使用WSDL4J[3]、C+ + WSDL Parser4
等。然后,在开发人员开发了其客户端应用程序之后,可以使用一个 简单的代码读取器来比较该客户端应用程序中所使用的元素和从 WSDL文件中得到的所有web服务元素的名称,从中找出用户使用元 素的名称。
在接收了所述用户使用元素401和所述新版本通知404之后,所 述转换引擎402对该新版本通知404进行搜索,从中找出与所述用户 使用元素401相关的改变描述(如附图la中的"Element A changes to elementAl"就是与A有关的的改变描述),并对这部分改变描述按 照一定的转换规则进行转换,然后发送给所述历史生成器403。
所述历史生成器403从所述转换引擎402接收与所述用户使用元 素相关的改变描述,然后根据预定的历史格式把这部分改变描述记录 为改变历史(change history) 305,还可在本地或远程地保存所述改 变历史305。如本领域技术人员所理解的,所述改变历史可以被用来帮助开发 人员修改其应用程序代码。这可以通过程序的静态或者动态自动更新 实现,或者通过通知机制通知用户手工更改代码实现。
参照附图5,说明本发明的改变历史记录器的一个优选结构。应 当理解,附图5的实施例仅是说明性描述而不是限制性描述。本领域 的技术人员可以基于附图4的教导以各种实施方式来实现本发明的改 变历史记录器的具体结构。
所述改变历史记录器304中的所述转换引擎402具有3个部件用 于支持所述转换功能版本通知解析器503、版本通知翻译器504以 及定制化版本通知生成器505。
所述版本通知解析器503进行的操作是解析所述版本通知501 并且获取web服务改变的描述。目前,不同的web服务提供商所提 供的版本通知的格式也不相同,例如google、 eBay、 Amazon等web 服务提供者所提供的版本通知都使用其自己定义的格式。可使用诸如 XML解析技术(例如可用于读取RSS文件或Atom文件的DOM、 SAX)对其解析,并转换为所需格式。
此外,由于不同的web服务提供者所提供的版本通知通常使用 不同的改变描述原语(Change Description Primitive ),因此需要将 其映射为统一的改变描述原语。
本发明的一个优选实施方式采用3个改变描述原语506:增加 (ADD)、删除(REMOVE)和更新(UPDATE),来统一地翻译所 接收的版本通知。所述增加(ADD)原语是指一些新的服务元素(包 括服务、操作、消息等)被添加到所述目标服务。所述删除(REMOVE ) 原语是指有些服务元素被从所述目标服务中删除。所述更新 (UPDATE)原语是指目标服务中的元素被重新命名或改变赋值。所 有改变都可以用上述三种标准原语之一描述。
相应的,预定的转换规则可以如下所示
陽"ADDED"、 "NEW"等被映射为"ADD";
画"DELETE"、 "CANCEL"、 "REMOVE"等被映射为"REMOVE";
12画"CHANGE TO"、 "CHANGED TO"等被映射为"UPDATE"。
所述版本通知翻译器504接收解析后的版本通知之后,根据上述 的转换规则对解析后的版本通知进行翻译转换,其中所得到的内容采 用了统一的改变描述原语。
如本领域技术人员所理解的,上述转换规则仅仅是示例性的。转 换规则可以由web服务提供者或客户应用程序的开发人员来提供,其 中显示了所述版本通知中的改变描述原语和用户预定的改变描述原
语之间的映射关系。
这样,各种格式的版本通知的改变描述原语都被统一地翻译转
换,例如"改变成(CHANGE TO)"、"被改变为(CHANGED TO )"都 被统一翻译为"更新(UPDATE)"原语。经过上述处理之后,版本通 知中的所有改变都使用所述3个标准原语加以描述。这样的好处一是 可以在客户端统一各种web服务提供者对服务变化的描述,消除了不 同web服务提供者之间的差异;二是为后续的更新客户端程序提供了 支持,后续程序可以读懂标准原语描述的变化来帮助用户自动更新程 序。
然后,所述定制化版本通知生成器505会根据一个用户使用元素 分。 ^ 一'"、'、、、
如前所述,所述用户使用元素列表502描述了哪部分服务元素已 经被所述客户端应用程序使用,它可以通过开发人员手工输入而得 到,也可以利用代码检索和文本匹配等现有技术来得到。根据所述用 户使用元素列表502,定制化版本通知生成器505找出与所述用户使 用元素相关的改变部分,产生定制化的改变描述,然后发送给所述历 史生成器403。
根据本发明的一个优选方式,如附图5所示,所述历史生成器 403包括历史创建器507和历史存储库509。
所述历史存储库509存储所述客户端应用程序调用的每个服务的改变历史文件。例如,客户端应用程序调用两个服务, 一个是
Amazon E-commercc web服务,另一个是Google Map web服务。然 后,客户可以有两个改变历史文件来保持这两个服务的改变历史。所 述历史存储库509能够存储这两个文件的内容。所述改变历史可以是 一个数据库、文件系统或甚至是一个文件。例如,如果所述历史存储 库被实施为数据库,则所述改变历史文件被解析,然后文件内容被保 存为数据库中的表项。如果历史存储库509被实施为文件系统,则所 述改变历史被写在文件上直接保存在该文件系统中。
Web服务的用户端的所述开发人员能够访问该历史存储库509 以得到所述改变历史。
历史创建器507用于创建新的改变历史记录。例如,从所述历史 存储库509获取已经创建的改变历史记录,根据预定的历史描述格式 508来把新的改变描述插入其中以产生新的改变历史记录。如本领域 技术人员所容易理解的,所述历史描述格式508可以由所述客户应用 程序开发人员或所述服务的用户端根据需要而给出定义。
参见附图6-7,显示了本发明如何克服背景技术所提出的技术问 题的一个例子。附图6的系统与附图3的系统基本相同。仍然考虑背 景技术部分所举的例子,所接收的版本通知1至n可以是附图la和 lb所示的版本通知1和版本通知2。当版本通知l到达时,根据转换 规则对其转换,并选择与客户应用程序相关的改变部分。
这里假设在所述客户应用程序中只使用了服务元素A、 B和C。 则定制化的版本通知如附图7a所示。其它从D到Z的服务元素被省 略。
与使用元素A、 B、 C相关的改变历史如附图7b所示。当前用 户4吏用元素4皮更新为Al、 Bl、 Cl。
经过一段时间版本通知2到达。如附图7c所示,版本通知2被 定制化为只保留与使用元素Al、 Bl、 Cl相关的改变描述。版本通知 2中,元素A1重新命名为A2, B1重新命名为B2。
然后,与使用元素A、 B、 C相关的改变历史如附图7d所示的树状数据结构。在本实施例中,历史描述格式仅仅使用了术语"到(to)" 和"在...之中(in...)"来保持版本通知中的改变链。
此时,如果开发人员希望更新其客户端代码,参照附图7d很容
哪些部分。
下面参见附图8,<吏用Amazon E-Commerce Web月艮务和Eclipse 开发平台给出一个实例说明本发明的"改变历史记录器"的工作过程。 注意,在本实施例中,所述改变历史记录器是被实施在客户端的应用 程序开发平台中,即Eclipse开发平台。
客户端应用程序8030完成的功能是根据用户输入,调用 Amazon e-commcrcc Web服务8040的itemSearch()方法,查询相关 的商品,并打印出所有商品属性。
Amazon通过RSS方式发布自己的版本通知。如本领域人员所知 的,可以使用RSS接收阅读器8021来接收这些版本通知。在本实施 例中,使用代码检索的方法找到用户使用到的Amazon e-commerce Web服务元素。在本实施例中用户使用的web服务8040是 itemSearch()方法。根据Amazon发布的wsdl文件,该itemSearch() 方法的输入输出消息定义为 ItemSearchRequest 、 ItemSearchResponse; 所述消息的数据元素为Item Attributes, 等等。 上述的方法Itemsearch、消息Itemsearchrequest、 Itemsearchresponse 和数据元素ItemAttributes等的具体细节都被定义在wsdl文件中(参 见如下网址的内容
http:〃webservices.amazon.com/AWSECommerceService/AWSECommer ceService.wsd17)。
如本领域的技术人员所公知的,上述"方法"、"消息"、"数 据元素"之间的逻辑层次从高到低的简化表示如下 Itemsearch
Itemsearchrequest ItemsearchresponseItemAttributes
在本实施例中,通过代码检索器8022,发现了当前用卢的应用 程序调用了哪些服务元素,包括Itemsearch方法;Itemsearchr叫uest 和Itemsearchresponse消息;ItemAttributes数据元素等。但是,在本 技术领域,通常不选择"方法"(例如,Itemsearch )和"消息"(例 如,Itemsearchrequest和Itemsearchresponse )作为用户使用元素。 这是因为版本通知中基本上很少涉及"方法"和"消息"的改变。版 本通知中绝大多数的改变都发生在"消息"之下的级别(例如,涉及 ItemAttributes这一 "数据元素"级别、甚至更低的"属性,,级别的 改变)。因此在本例中选择ItemAttributes作为用户使用元素。
需要注意的是,由于选择了 ItemAttributes作为用户使用元素, 则某些改变-例如增加(add)新"方法,,、或新"消息"的改变-是本发明所不能检查出来的。但是,已经存在的客户端程序不会调用 新的方法,因此涉及增加新方法的改变对于客户端程序的用户而言也 是不关心的。此外,对于web服务提供的"方法",输入和/或输出 消息通常总是固定的,实际的版本通知中不会出现增加新消息的情 况。此外,版本通知中也基本不会有更新(update)"方法,,或"消 息"之类的改变,因为实际上具体改变都发生并且归类于"消息"之 下的级别。
在这个例子中,基于用户j吏用元素"ItemAttributes"生成相关 的改变历史之后,代码更新主要是由用户手工完成。代码更新器8024 的作用是把相关变化反映在eclipse的编辑窗口上。
Amazon的Amazon E-Commerce Service8040的版本通知参见如 下网址
如附图8所示,Amazon在3个月内发布了 3次版本通知,发布 曰期分别是2006-9-11、 2006-11-8、 2006-11-14,其发布网址如下所示yiD=n
http:〃developer.amazonwebservices.com/connect/entry.is.pa externalID=480&categor yID=17
vID=17。
如附图8所示,上述3个版本通知依次通过RSS生成器8041发 送,并输入到RSS接收阅读器8021,然后被输入到本发明的改变历 史记录器8023中。在改变历史记录器8023中,上述版本通知根据预 定的变换规则被转换为标准的改变描述原语。
对于Amazon E-commerce Web月艮务的版本通知,预定义如下 的转换规则
"new features"对应于"add"; "resolved issues "对应于"update"。
(在Amazon的上述3个版本通知中未发现关于"remove"内 容的改变,所以暂不需要相关remove的转换规则。)
与此同时,代码检索客户端应用程序。如前所述,在本实施例中, 通过前述的服务元素查找部分(即,代码检索器)发现了当前用户的 应用程序调用了哪些服务元素。结果包括Itemsearch方法; Itemsearchrequest和Itemsearchresponse消息;ItemAttributes数据 元素等。在本示例中选择ItemAttributes作为用户使用元素(用于示 例,不限于此)。
确定了用户使用元素为ItemAttributes之后,以"ItemAttributes" 为关键字进行检索版本通知。对每一次的版本通知,对每一个用户使 用元素,都使用关键字进行遍历查找,找到与之对应的描述,就把含 有这个关键字的一段话或者相关表的一行都记录下来,保存在变化历 史的这个关键字之下。
以本例中的用户使用元素"ItemAttributes"为例,每当版本通 知到达(例如,2006-9-11的版本通知、2006-11-8的版本通知、2006-11-14的版本通知),我们就以ItemAttributes为关键字进行遍历 查找,把含有关键字"ItemAttributes"的一段话或者相关表的一行都 记录下来,保存在变化历史的这个关键字之下,从而根据所述用户使 用元素ItemAttributes得到定制化的改变历史记录。
最终所记录的改变历史记录可以以html文件方式保存在改变历 史记录器8023中。根据一个优选实施例,其内容如下所示
Change history of Amazon E-commerce Web service
Element ItemAttributes
Add attributes (in release note 2006-09-11):
AnalogVideoFormat —Video format ClubType — Type of golf club CompatibleDevices — Compatible devices DataLinkProtocol — Datalink protocol DisplayColorSupport — Color depth supported by the display FilmColorType — Type of film FormFactor — External memory type Genre — Specifies the genre of the item
HandOrientation — Specifies whether the golf club is for people who are right handed or left handed
HardDisklnterface — Specifies the hard drive interface, such as SCSI HardwarePlatform — Specifies the computer hardware platform LensType — Type of camera lens MediaType — Type of storage media OperatingSystem — Computer's operating system OpticalSensorResolution — Resolution of optical sensors ProductTypeName — Name of the product type ProductTypeSubcategory — Subcategory of the product type RemovableStorage — Type of removable storage media. See MediaType RequiredVoltageRange — Maximum voltage allowed. SkilLevel — Specifies the skill level recommended ShaftMaterialType — Type of material used in the shaft of a golf club SupportedMediaSize — Specifies the storage media sizes supported
Add attributes (in release note 2006-09-11):
18In the JP locale, ItemAttributes now returns a new element, IsPreannounce. If the value is present in the response, the item is being announced before being released.
Update attribute s戸方o/ to s戸/ o/ (in release note 2006-09-11》
In the JP locale, the symbol that represents a copyright was being returned incorrectly. Now, the copyright symbol is returned correctly in the Feature item attribute, which is returned by the ItemAttributes response group.
Update attribute丄/s/iV/ce to丄/s/iV/ce (in release note 2006-11-14):
In the DE locale, the ListPrice in ItemAttributes response group returned was incorrect. This problem has been fixed. Most items, however, do not have ListPrice values.
注symbol禾卩ListPrice两个attributes没有换名,所以描述是Update attribute to sjw760/禾口 Update attribute丄z、/iV/ce to丄/WiV/ce
如附图8所示,上述改变历史被输入到代码更新器8024中,以 帮助用户在Eclipse开发平台上更新代码。
例如,如果用户在2006年9月10日到2006年11月15日之间 都没有更新过自己的客户端程序,那么11月15日后当他打开Eclipse 编辑窗口的时候,程序中可能需要调整的部分就会高亮显示出来。例 如附图8所示的服务客户端程序8030中,代码部分的ItemAttributes 被高亮显示。点击这个高亮部分,就会弹出提示框,链接到如上所示 的变化历史记录。这样用户就能方便的发现自己需要更新的代码部 分,例如,需要在返回消息处理部分添加对"IsPreannounce"元素的解 析和处理。
上述例子中,改变历史按照时间先后顺序依次列出。2006-11-08 的版本通知中没有涉及ItemAttributes的改变,因此没有关于 2006-11-08版本通知的改变。此外,改变历史还按照改变描述原语 "ADD" 、"UPDATE"被分类,其中上述3个版本通知中没有 "REMOVE"类的改变。
应该注意到,上述给出的改变历史的格式仅是范例性的。如本领 域技术人员所了解的,在一种优选实施方式中所述改变历史记录器可产生一个树状结构的改变历史记录,我们称之为改变历史记录树。在
这个树状结构中,每个根节点都是一个Web服务元素,例如方法,消 息,消息参数,这个根节点中每一层的节点记录在一次版本通知中跟该 根节点元素相关的变化。根节点是在服务元素第一次变化,即第一次出 现在版本通知中加进改变历史记录树中的。如图7d所示,三个才艮节点 分别为服务元素A, B, C,根节点下面记录在每一次版本通知中跟A, B, C三个元素相关的变化。三个根节点,元素A,B,C是在收到版本通知1 时加进改变历史记录树中的。这样,通过索引该改变历史记录树结构, 用户能够轻松高效地找出发生改变时某个类是如何改变的。此外,还 可以检测用户最频繁使用的服务元素,并根据用户的调用频率按优先 顺序排列所述改变历史的内容。因此,用户可以找到对其应用程序影 响最显著的最重要的改变。
在上述例子中,本发明的方法和装置被实现为一种插件,其被置 于web服务的用户端应用程序的开发平台中。
可选的,本发明的方法和装置也可以实现在web服务提供者端 的服务器9000中,如附图9所示。在附图9的系统中,web服务9004 提供多个方法可被客户端调用,web服务客户端应用程序9013通过 网络可以调用 一个或多个web服务提供的方法。web服务客户端应用 程序9013的开发者9012可以请求他感兴趣的定制化的版本通知。 Web服务提供者9000可以监控被调用的web服务9004的执行状态, 例如由服务调用监视器9003来监控用户对web服务9004的调用操 作,因此可以由web服务提供者9000来检测每个用户使用的月艮务元 素。web服务提供者9000还可以检测每个用户最频繁使用的服务元 素。另一方面,由web服务提供者9000根据用户请求以及上述监控 的执行状态来为该用户定制版本通知或API更新指南,还可以根据调 用频率来优先排序版本通知或API更新指南的内容。举例而言,web 服务提供者9000提供有定制化版本通知产生器卯02,用于接收版本 通知9001。所述定制化版本通知产生器卯02响应于开发用户9012的 请求,基于服务调用监视器9003监控得到的用户使用元素,对版本通知9001进行定制化处理,然后发送定制化的版本通知到改变预订 器9011,其中所述改变预订器9011也位于web服务客户端9010。从 而开发用户9012可以从改变预订器卯11获取定制化的版本通知。所 述开发用户9012可以基于所述定制化版本通知来更新web服务客户 端应用程序卯13。
附图9所述的实施方式具有如下额外优点如果用户遗漏某些服 务改变元素,web服务提供者为其可以找到。此外,所述版本通知或 API更新指南文档的内容可以根据每个用户的调用频率按优先顺序排 列。因此,每个用户可以找到对应用程序影响最显著的最重要的改变。
所述使用频率可以是,例如web服务提供者两次发布版本通知的 时间间隔内客户端调用该服务元素的使用次数。在服务器端,服务器 可以监控用户调用的频率。另一方面,在客户端也有这样的技术可以 实现,这是由客户端程序运行环境来提供的,经过简单的处理,客户 端程序运行环境,例如IBM WebSphere Application Server (WAS), 就可以监控某段时间内客户端调用Web服务的次数。
如本领域的技术人员所理解的,可替换的,本发明的方法和装置 也可以提供在独立于web服务用户和提供者的第三方。
除非另有说明,本发明所述的功能可用硬件或软件或它们的结合 来运行。然而,在一优选实施列中,除非另有说明,这些功能是由处 理器,如计算机或电子数据处理器,按照编码,如计算机程序编码, 的集成电路来执行的。 一般来说,为了实现本发明的实施例而执行的 方法可以是操作系统或特定应用程序的一部分、程序、模块、对象或 指令序列。本发明的软件通常包括将由本地计算机呈现成机器可读格 式的众多指令,因此是可执行指令。此外,程序包括相对于程序来说 驻留在本地或在存储器中找到的变量和数据结构。另外,各种程序可 以根据在本发明的特定实施例中实现它们的应用方法来识别。当携带 指向本发明的功能的计算机可读指令时,这样的信号承栽媒体代表本 发明的实施例。
尽管是参考典型的具体实施方式
对本发明进行的描述,但应该理解本发明并不限于所披露的典型具体实施方式
。下述权利要求的范围 符合最宽泛的解释,以至于包括所有修改、等价结构和功能。
权利要求
1. 一种用于记录web服务改变历史的改变历史记录方法,包括接收步骤,用于接收包括web服务的改变描述的版本通知;转换步骤,用于从所述版本通知中找出与用户使用元素相关的改变描述;历史生成步骤,用于基于所述与用户使用元素相关的改变描述来生成并保存与所述用户使用元素相关的改变历史。
2. 根据权利要求l所述的改变历史记录方法,其中所述转换步 骤还包括版本通知解析步骤,用于解析所接收的版本通知; 版本通知翻译步骤,用于根据预定的转换规则把所述解析后的版本通知翻译为标准的改变描述原语;定制化版本通知产生步骤,用于根据所述翻译后的版本通知和所述用户使用元素来生成一个定制化版本通知,所述定制化版本通知包括与所述用户使用元素相关的改变描述。
3. 根据权利要求l所述的改变历史记录方法,其中所述历史生 成步骤包括历史创建步骤,接收与所述用户使用元素相关的改变描述,基于 先前产生的改变历史来生成关于所述用户使用元素的新的改变历史。
4. 根据权利要求1所述的改变历史记录方法,还包括 检测用户调用的服务元素的使用频率,并根据用户的使用频率按优先顺序排列所述改变历史的内容。
5. 根据权利要求l所述的改变历史记录方法,还包括按照记录树结构来排列所述改变历史的内容。
6. —种用于记录web服务改变历史的改变历史记录装置,包括转换引擎,用于接收包括web服务改变描述的版本通知,以及 从所述版本通知中找出与用户使用元素相关的改变描述;历史生成装置,用于从所述转换引擎接收所述与用户使用元素相 关的改变描述,并生成与所述用户使用元素相关的改变历史。
7. 根据权利要求6所述的改变历史记录装置,其中所述转换引 擎还包括版本通知解析装置,用于解析所接收的版本通知; 版本通知翻译装置,用于接收解析后的版本通知,根据预定的转 换规则把所述解析后的版本通知翻译为标准的改变描述原语;定制化版本通知产生装置,用于接收所述翻译后的版本通知和所 述用户使用元素,并基于所述用户使用元素来生成一个定制化版本通 知,所述定制化版本通知包括与所述用户使用元素相关的改变描述。
8. 根据权利要求6所述的改变历史记录装置,其中所述历史生 成装置包括历史存储库,用于存储先前产生的改变历史;以及历史创建装置,用于从所述转换引擎接收与所述用户使用元素相关的改变描述,并基于历史存储库中存储的改变历史来生成关于所述用户使用元素的改变历史。
9. 根据权利要求6所述的改变历史记录装置,其中所述历史生 成装置还检测用户调用的服务元素的使用频率,并根据用户的使用频 率按优先顺序排列所述改变历史的内容。
10. 根据权利要求6所述的改变历史记录装置,其中所述历史 生成装置按照记录树结构来排列所述改变历史的内容。
11. 根据权利要求6所述的改变历史记录装置被设置在用户 端应用程序的开发平台中,以帮助用户更新其应用程序。
12. 根据权利要求6所述的改变历史记录装置,被设置在所述 web服务提供者的服务器中,以向用户发送关于用户使用元素的改变 历史。
13. 根据权利要求6所述的改变历史记录装置,被设置在独立 于所述web服务的用户和提供者的第三方,以向用户发送关于用户使 用元素的改变历史。
14. 一种改变更新支持器,用于根据版本通知来更新客户端应 用程序,所述改变更新支持器包括权利要求6所述的改变历史记录装置;版本通知接收装置,用于接收新的版本通知并输入到所述改变历 史记录装置中,所述版本通知包括web服务的改变描述;代码检索装置,用于从客户端应用程序中检索用户使用元素并输 入到所述改变历史记录装置中;以及其中所述改变历史记录装置输出所述用户使用元素的改变历史。
15. 根据权利要求14的改变更新支持器,还包括 代码更新辅助装置,用于从改变历史记录装置接收与用户使用元素相关的改变历史,并将其呈现给用户。
全文摘要
本发明涉及客户端web服务,尤其涉及用于跟踪和定位客户端网上服务程序更新过程中的网上服务改变的方法和装置。本发明的方法和装置可以被实现在web服务的用户端应用程序的开发平台中,也可以实现在web服务提供者的服务器中,或者提供在独立于web服务的用户和提供者的第三方。本发明能够为每一个用户本地定制化所述版本通知或API升级指南。所述用户所关注的目标web服务的改变历史能够被本地跟踪并且本地存储,从而用户能够使用上述改变历史轻松地在本地更新其客户端代码。
文档编号H04L12/24GK101425922SQ200710168209
公开日2009年5月6日 申请日期2007年10月31日 优先权日2007年10月31日
发明者茹 房, 俪 王, 滢 陈 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1