0

我的团队是第一次涉足网络服务。控制 Web 服务和客户端的版本控制问题的常用方法是什么?我们正在使用 IBM RAD 提供的向导生成我们的服务和客户端。服务和客户端运行良好,但我们想知道管理这些将如何成为未来的任务。

- 如果服务发生变化,并且它的界面没有改变,我认为老客户永远不会知道其中的区别并且可以正常工作。

- 如果服务更改以向参数添加新属性,如果不需要设置该值,旧客户端会使用它吗?

- 随着网络服务数量的增长和使用其客户端的应用程序数量的增长,人们如何处理网络服务的版本控制?这种事情的最佳实践是什么?

4

1 回答 1

1

我们使用两种类型的版本控制。一种对客户可见(公共),另一种对客户不可见(私有)。这来自(您已经提到的)客户是否受到影响。

如果客户端受到影响,例如 XSD Schema 定义的更改或 WS 功能的更改,客户端也必须修改其端,我们更改公共版本。我们在 WS 上下文根中增加版本号,这意味着它将具有与以前版本不同的 URL。还要确保代码存档(在我们的例子中是战争)也有公共版本,以免覆盖以前的部署。

例如我们的名为 foo 的 WS 在公共版本 2 中。它的 URL 是http://ourserver:8000/foo_2,war 文件名为 foo_2。我们修改了 XSD 架构,因此客户端必须对更改做出反应。我们更新版本,现在 URL 是http://ourserver:8000/foo_3,war 文件称为 foo_3。以前的版本仍然存在,而客户可以慢慢过渡到新版本。

如果更改不会强制客户采取任何行动,那么我们称之为私有版本控制。这通常与公共版本一起显示为项目名称的一部分。使用前面的示例,我们有一个 WS foo,具有私有版本 5 和公共版本 2。我们为此服务的项目称为 WS_foo_2_5。我们现在更改存储传入数据的顺序。这不会影响客户端,因此我们更改了私有版本。实际上,我们有项目 WS_foo_2_6。我们从中创建一个名为 foo_2 的代码存档,并将其部署为 URL 设置为http://ourserver:8000/foo_2. 通过这种方式,我们修改了版本,而不更改客户端 POV 的任何内容。

于 2013-05-12T17:07:25.820 回答