> For the complete documentation index, see [llms.txt](https://potoyang.gitbook.io/spring-in-action-v4/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://potoyang.gitbook.io/spring-in-action-v4/untitled-9.md).

# 第 15 章　使用远程服务

本章内容：

* 访问和发布 RMI 服务
* 使用 Hessian 和 Burlap 服务
* 使用 Spring 的 HTTP invoker
* 使用 Spring 开发 Web 服务

想象一下，我们被困在一个荒凉的小岛上，这听上去就像是一场梦境变成了现实。毕竟，谁不想在海滩上静静地独处，可以幸福地不顾外面世界的纷纷扰扰呢？

但是在一个荒岛上，我们不可能总是享受冰镇果汁朗姆酒和日光浴，就算我们能享受这样宁静的隐居生活，但是过不了多久我们就会感到饥饿、厌烦和孤独。在这样的时光里，我们只能以椰子和用叉子所捕的鱼为生。我们终究还是需要食物、新的衣服以及其他供给。而且如果不能和其他人取得联系，不久我们就只能和排球说话了！

我们开发的很多应用就像被遗弃的荒岛。表面上看，它们好像能自给自足，但实际上，它们可能还需要和其他系统相互合作，这些系统既包括组织内部的也包括组织外部的。

例如，采购系统需要与厂商的供应链系统通信；公司的人力资源系统可能需要集成薪金系统；或者，薪金系统需要和打印、邮寄工资等外部系统进行通信。无论哪种情况，我们的应用都需要和其他系统进行交互，远程访问它们的服务。

作为一个 Java 开发者，我们有多种可以使用的远程调用技术，包括：

* 远程方法调用（Remote Method Invocation，RMI）；
* Caucho 的 Hessian 和 Burlap；
* Spring 基于 HTTP 的远程服务；
* 使用 JAX-RPC和 JAX-WS 的 Web Service。

不管我们选择哪种远程调用技术，Spring 为使用这几种不同的技术访问和创建远程服务都提供了广泛的支持。在本章，我们将学习 Spring 如何简化和完善这些远程调用服务。但是首先，让我们先简要了解一下远程调用是如何在 Spring 中工作的。
