首页 > 解决方案 > 如果 Web 服务位置不断变化,可以使用哪种架构

问题描述

您正在编写一个使用天气 Web 服务的程序http://example.org/weather/weather.asmx。它可以工作,但 2 个月后,天气 Web 服务不再可用http://example.org/weather/weather.asmx。相反,它提供于 http://example.com/poschaci/temp.asmx。一个月后,URL 再次更改为http://example.net/w.asmx。一项研究表明,天气 Web 服务永远不会在一个地方提供。它的 URL 将继续变化。

任务1)

哪种架构为您提供了一种可能性,以这样一种方式编写您的程序,即使在这些情况下,它也可以在现在和将来正常工作,而无需重新编程或更改参数或配置文件

任务 2)

概述此架构的功能!简要描述该架构的组件的任务!

我阅读了有关 SOAP、REST 和 WSDL 等的信息,我发现我们需要使用 REST 架构来构建它。想得到这方面的专家建议。

没有代码,因为这是一个理论问题。

不适用

标签: restweb-serviceshttpsoapsoa

解决方案


您可能会将 Web 服务视为接口或 API。你是这个接口的客户端,API。如果界面发生变化,您作为客户需要调整您的呼叫。没有很好的方法来处理这个问题。通常,提供 API 的人需要保持它的稳定性,并为您提供迁移到新版本的方法等等。但我猜你不能向有问题的气象服务部门提出这个要求。现在要处理频繁的接口更改,您可以执行以下操作: - 创建您自己的接口,定义您想要返回的数据,这是一个抽象层。- 根据您的接口编写客户端代码,您可以控制更改 - 通过查询天气服务 1 或天气服务 2 来实现您的接口。这只是数据的映射。天气服务 1 和 2 可能是完全不同的服务,或者您可以考虑使用不同版本的相同服务。您的客户端代码无需更改,只有此映射会在 URL 更改时更改。

此解决方案可帮助您轻松地在上述实现之间进行更改。我描述的是针对您的问题的 OOP 解决方案,因此您需要使用 OOP 语言来实现多态行为。

关于最后一点,您可能会选择将您的服务(我上面所说的接口)公开为 REST 服务。


推荐阅读