博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

https://book.systemsapproach.org/applications/problem.html

在本书的开头,我们谈到了人们希望在计算机网络上运行的应用程序--从网络浏览器到视频会议工具,无所不包。在中间的几章中,我们一次一次地开发了使这种应用成为可能所需的网络基础设施。现在我们已经绕了一圈,回到了网络应用。这些应用程序一部分是网络协议(从它们与其他机器上的同伴交换信息的意义上说),一部分是传统的应用程序(从它们与窗口系统、文件系统以及最终与用户交互的意义上说)。本章探讨了当今一些流行的网络应用。

对应用程序的研究使我们在本书中一直强调的系统方法深入人心。也就是说,建立有效的网络应用的最好方法是了解网络所能提供的构件,以及这些构件之间如何相互作用。因此,例如,一个特定的网络应用可能需要利用一个可靠的传输协议、认证和隐私机制以及底层网络的资源分配能力。当应用程序的开发者知道如何最好地利用这些设施时,应用程序往往工作得最好(也有很多应用程序没有很好地利用现有网络能力的反例)。应用程序通常也需要自己的协议,在许多情况下,使用与我们在之前对下层协议的研究中所看到的相同的原则。因此,我们在本章中的重点是如何把已经描述过的想法和技术放在一起,以建立有效的网络化应用。换句话说,如果你想象自己在写一个网络应用,那么根据定义,你也将成为一个协议设计者(和实现者)。

我们将通过研究各种熟悉的和不太熟悉的网络应用来进行。这些应用包括交换电子邮件和网上冲浪,整合企业间的应用,视频会议等多媒体应用,管理一组网络元素,以及新兴的点对点和内容分发网络。这个清单绝不是详尽的,但它确实有助于说明设计和构建应用程序的许多关键原则。应用程序需要挑选适当的构件,这些构件在网络内部或主机协议栈的其他层中都是可用的,然后增强这些基础服务,以提供应用程序所需的精确通信服务。