系统管理员们需要考虑到由服务主机位置和用户位置而引起的网络性能问题。如果远程用户通过低带宽、高等待时间连接,那这样的服务该怎么完成呢?有没有一种方法可以让各个地方的用户都获得好的或比较好的服务呢?销售商很少测试用他们的产品连接时是否高等待时间的――即RTT值是否比较大――每个人从程序员到销售员都忽略了这个问题。人们只是确信内部测试的结果。
3. 开放的体系结构
一个新服务,不管在什么情况下,只要可能,就应该建立在使用开发式协议和文件格式的体系结构上。特别是那些在公共论坛上记录成文的协议和文件格式,这样销售商才能依据这些标准生产出通用的产品。具有开放体系结构的服务更容易和其它遵循相同标准的服务集成到一起。
开放的反义词是私有,使用私有协议和文件格式的服务很难和其它产品共同使用,因为私有协议和文件格式的改变可以不发布通知,也不要求得到协议创造者的许可。当销售商扩展到一个新领域,或者试图保护自己的市场而阻止创造一个公平竞争的环境时,他们会使用私有协议。
有时销售商使用私有协议就是为了和别的销售商达成明确的许可协议,但是会在一个销售商使用的新版本和另一个销售商使用的兼容版本之间存在明显的延迟,两个销售商所用的版本之间也会有中断,而且没有提供两个产品之间的接口。这种情况对于那些依靠它们的接口同时使用两种产品的人来说,简直是一场恶梦。
商业上使用开放协议的例子很简单:它使你能够建立更好的服务,因为你可以选择最好的服务器和用户端软件,而不必被迫地选择,比如在选择了最好的用户端后,又被迫选择不是最理想的服务器。用户想要那些具有他们需要的功能,而又易于使用的应用程序,而系统管理员们却希望服务器上的应用程序易于管理,这两个要求常常是冲突的。一般来说,或者用户或者系统管理员们有更大权利私下做一个另对方惊奇的决定。如果系统管理员们做了这个决定,用户会认为他们简直是法西斯,如果用户做了这个决定,这会成为一个难以管理的包袱,最终使得用户自己不能得到很好的服务。
一个好的解决方法就是选择基于开放标准的协议,让双方都能选择自己的软件。这就把用户端应用程序的选择同服务器平台的选择过程分离了,用户自由的选择最符合自己需要、偏好甚至是平台的软件,系统管理员们也可以独立地选择基于他们的可靠性、规模可设定性和可管理性需要的服务器解决方案。系统管理员们可以在一些相互竞争的服务器产品中进行选择,而不必被囿于那些适合某些用户端应用程序的服务器软件和平台。在许多情况下,如果软件销售商支持多硬件平台,系统管理员们甚至可以独立地选择服务器硬件和软件。
我们把这叫做用户选择和服务器选择分离的能力。开放协议提供了一个公平竞争的场所,并激起销售商之间的竞争,这最终会使我们受益。
开放协议和文件格式是相当稳定的,不会经常改动(即使改动也是向上兼容的),而且还有广泛的支持,能给你最大的产品自主选择性和最大的机会获得可靠的、兼容性好的产品。
使用开放系统的另一个好处是和其它系统连接时不再需要额外的网关。网关是不同系统能连接在一起的黏合剂。虽然网关能节省你的时间,但使用开放协议的系统彻底避免了使用网关。网关作为一项额外的服务也需要计划、设计、监测以及本章所讲的其它关于服务的每一样东西,减少服务可是一件好事。
当下次有销售人员向你推销一些忽略IETF(因特网工程任务组)标准和其它工业标准的产品,如日历管理系统、目录服务等的时候,想想这些教训吧!虽然销售商会承诺再卖给或者免费送给你性能优越的网关产品。使用标准协议就是使用IETF的标准,而不是销售商的私有标准,销售商的私有协议以后会给你带来大麻烦的。
4. "简单"的价值
在建立一个新服务时,简单是首先要考虑的因素。在能满足所有要求的解决方案中,最简单的才是最可靠、最容易维护、最容易扩展以及最易于和其它系统集成到一起的。过度复杂将导致混乱、错误、使用困难以及明显的运行速度下降,而且使安装和维护的成本增加。
