论计算机网络中服务的概念(2)
作者:佚名; 更新时间:2014-12-05
中断现在的服务呢?是否要触及桌面呢?能不能慢慢地逐渐升级,在整个公司发生冲突之前先在一些人中进行测试呢?所以要尽量把服务设计得容易升级,不用中断现有的服务就能升级,不要触及桌面而且能慢慢地逐渐升级。
从用户期望的可靠性水平以及系统管理员们对系统将来要求的可靠性的预期,系统管理员们就能建立一个用户期望的功能列表,其内容包括群集、从属设备、备份服务器或具有高可用性的硬件和操作系统。
系统管理员们需要考虑到由服务主机位置和用户位置而引起的网络性能问题。如果远程用户通过低带宽、高等待时间连接,那这样的服务该怎么完成呢?有没有一种方法可以让各个地方的用户都获得好的或比较好的服务呢?销售商很少测试用他们的产品连接时是否高等待时间的――即RTT值是否比较大――每个人从程序员到销售员都忽略了这个问题。人们只是确信内部测试的结果。
3. 开放的体系结构
一个新服务,不管在什么情况下,只要可能,就应该建立在使用开发式协议和文件格式的体系结构上。特别是那些在公共论坛上记录成文的协议和文件格式,这样销售商才能依据这些标准生产出通用的产品。具有开放体系结构的服务更容易和其它遵循相同标准的服务集成到一起。
开放的反义词是私有,使用私有协议和文件格式的服务很难和其它产品共同使用,因为私有协议和文件格式的改变可以不发布通知,也不要求得到协议创造者的许可。当销售商扩展到一个新领域,或者试图保护自己的市场而阻止创造一个公平竞争的环境时,他们会使用私有协议。
有时销售商使用私有协议就是为了和别的销售商达成明确的许可协议,但是会在一个销售商使用的新版本和另一个销售商使用的兼容版本之间存在明显的延迟,两个销售商所用的版本之间也会有中断,而且没有提供两个产品之间的接口。这种情况对于那些依靠它们的接口同时使用两种产品的人来说,简直是一场恶梦。
商业上使用开放协议的例子很简单:它使你能够建立更好的服务,因为你可以选择最好的服务器和用户端软件,而不必被迫地选择,比如在选择了最好的用户端后,又被迫选择不是最理想的服务器。用户想要那些具有他们需要的功能,而又易于使用的应用程序,而系统管理员们却希望服务器上的应用程序易于管理,这两个要求常常是冲突的。一般来说,或者用户或者系统管理员们有更大权利私下做一个另对方惊奇的决定。如果系统管理员们做了这个决定,用户会认为他们简直是法西斯,如果用户做了这个决定,这会成为一个难以管理的包袱,最终使得用户自己不能得到很好的服务。
一个好的解决方法就是选择基于开放标准的协议,让双方都能选择自己的软件。这就把用户端应用程序的选择同服务器平台的选择过程分离了,用户自由的选择最符合自己需要、偏好甚至是平台的软件,系统管理员们也可以独立地选择基于他们的可靠性、规模可设定性和可管理性需要的服务器解决方案。系统管理员们可以在一些相互竞争的服务器产品中进行选择,而不必被囿于那些适合某些用户端应用程序的服务器软件和平台。在许多情况下,如果软件销售商支持多硬件平台,系统管理员们甚至可以独立地选择服务器硬件和软件。
我们把这叫做用户选择和服务器选择分离的能力。开放协议提供了一个公平竞争的场所,并激起销售商之间的竞争,这最终会使我们受益。
开放协议和文件格式是相当稳定的,不会经常改动(即使改动也是向上兼容的),而且还有广泛的支持,能给你最大的产品自主选择性和最大的机会获得可靠的、兼容性好的产品。
使用开放系统的另一个好处是和其它系统连接时不再需要额外的网关。网关是不同系统能连接在一起的黏合剂。虽然网关能节省你的时间,但使用开放协议的系统彻底避免了使用网关。网关作为一项额外的服务也需要计划、设计、监测以及本章所讲的其它关于服务的每一样东西,减少服务可是一件好事。
当下次有销售人员向你推销一些忽略IETF(因特网工程任务组)标准和其它工业标准的产品,如日历管理系统、目录服务等的时候,想想这些教训吧!虽然销售商会承诺再卖给或者免费送给你性能优越的网关产品。使用标准协议就是使用IETF的标准,而不是销售商的私有标准,销售商的私有协议以后会给你带来大麻烦的。
4. "简单"的价值
在建立一个新服务时,简单是首先要考虑的因素。在能满足所有要求的解决方案中,最简单的才是最可靠、最容易维护、最容易扩展以及最易于和其它系统集成到一起的。过度复杂将导致混乱、错误、使用困难以及明显的运行速度下降,而且使安装和维护的成本增加。
当系统规模增长的时候,还会变得更复杂,这是生活常识。所以,开始尽可能的简单可以避免系统过早出现"太复杂"的情况。想一想,如果有两个销售人员都打算推销他们的系统,其中一个系统有20个功能,另外一个有40个功能,我们就可以认为功能多的软件可能会有更多的错误,它的销售商就更难以有时间维护他的系统代码。
有时,用户或系统管理员们的一两个要求就会使系统的复杂度增加很多。如果在设计阶段遇到这样的要求,就值得去寻找为什么会有这种要求,并估价其重要性,然后向用户或系统管理员们解释,这样的要求能够满足,但要以降低可靠性、支持水平和可维护性为代价。根据这些,再让他们重新决定是坚持这样的要求,还是放弃。
三、其它需要考虑的问题
建立一个服务除了要求可靠、可监测、易维护支持,以及要符合所有的我们基本要求和用户的要求外,还要考虑到一些特别的事情。如果可能的话,应该让每个服务使用专门的机器,这么作可以让服务更容易得到支持和维护,也能减少忘记一些服务器机器上的小的服务的机会。在一些大公司,使用专门的机器是一条基本原则,而在小公司,由于成本问题,一般达不到这个要求。
还有一个观念就是在建立服务时要以让服务完全冗余为目标。有些重要的服务不管在多大的公司都要求完全冗余。由于公司的规模还会增长,所有你要以让所有的服务都完全冗余为目标。
1. 使用专门的机器
理想的情况,服务应该建立在专门的机器上。大网站应该有能力根据服务的要求来调整到这个结构,而小网站却很难做到。每个服务都有专门的机器会使服务更可靠,当发生可靠性问题是也容易调试,发生故障的范围更小,以及容易升级和进行容量计划。
从小公司成长起来的大网站一般有一个集中管理的机器作为所有重要服务的核心,这台机器提供名字服务、认证服务、打印服务、邮件服务等等。最后,由于负荷的增长,机器不得不分开,把服务扩展到别的服务器上去。常常是在这之前,系统管理员们已经得到了资金,可以买更多的管理用的机器,但是觉得太麻烦,因为有这么多的服务依赖这机器,把它们都分开太难了。当把服务从一台机器上分开时,IP地址的依赖最难处理了,有些服务如名字服务的IP地址都在用户那里都已经记得很牢固了,还有一些IP地址被安全系统如路由器、防火墙等使用。
把一个中心主机分解到许多不同的主机上是非常困难的,建立起来的时间越长,上面的服务越多,就越难分解。使用基于服务的名字会有所帮助,但是必须整个公司都使用标准化的、统一的、始终如一的名字。
2. 充分的冗余
充分的冗余是指有一个或一系列复制好的服务器,能在发生故障的时候接管主要的故障设备。冗余系统应该可以作为备份服务器连续的运行,当主服务器发生故障时能自动连上线,或者只要少量的人工干预,就能接管提供服务的故障系统。
你选择的这类冗余是依赖于服务的。有些服务如网页服务器和计算区域,可以让自己很好的在
从用户期望的可靠性水平以及系统管理员们对系统将来要求的可靠性的预期,系统管理员们就能建立一个用户期望的功能列表,其内容包括群集、从属设备、备份服务器或具有高可用性的硬件和操作系统。
系统管理员们需要考虑到由服务主机位置和用户位置而引起的网络性能问题。如果远程用户通过低带宽、高等待时间连接,那这样的服务该怎么完成呢?有没有一种方法可以让各个地方的用户都获得好的或比较好的服务呢?销售商很少测试用他们的产品连接时是否高等待时间的――即RTT值是否比较大――每个人从程序员到销售员都忽略了这个问题。人们只是确信内部测试的结果。
3. 开放的体系结构
一个新服务,不管在什么情况下,只要可能,就应该建立在使用开发式协议和文件格式的体系结构上。特别是那些在公共论坛上记录成文的协议和文件格式,这样销售商才能依据这些标准生产出通用的产品。具有开放体系结构的服务更容易和其它遵循相同标准的服务集成到一起。
开放的反义词是私有,使用私有协议和文件格式的服务很难和其它产品共同使用,因为私有协议和文件格式的改变可以不发布通知,也不要求得到协议创造者的许可。当销售商扩展到一个新领域,或者试图保护自己的市场而阻止创造一个公平竞争的环境时,他们会使用私有协议。
有时销售商使用私有协议就是为了和别的销售商达成明确的许可协议,但是会在一个销售商使用的新版本和另一个销售商使用的兼容版本之间存在明显的延迟,两个销售商所用的版本之间也会有中断,而且没有提供两个产品之间的接口。这种情况对于那些依靠它们的接口同时使用两种产品的人来说,简直是一场恶梦。
商业上使用开放协议的例子很简单:它使你能够建立更好的服务,因为你可以选择最好的服务器和用户端软件,而不必被迫地选择,比如在选择了最好的用户端后,又被迫选择不是最理想的服务器。用户想要那些具有他们需要的功能,而又易于使用的应用程序,而系统管理员们却希望服务器上的应用程序易于管理,这两个要求常常是冲突的。一般来说,或者用户或者系统管理员们有更大权利私下做一个另对方惊奇的决定。如果系统管理员们做了这个决定,用户会认为他们简直是法西斯,如果用户做了这个决定,这会成为一个难以管理的包袱,最终使得用户自己不能得到很好的服务。
一个好的解决方法就是选择基于开放标准的协议,让双方都能选择自己的软件。这就把用户端应用程序的选择同服务器平台的选择过程分离了,用户自由的选择最符合自己需要、偏好甚至是平台的软件,系统管理员们也可以独立地选择基于他们的可靠性、规模可设定性和可管理性需要的服务器解决方案。系统管理员们可以在一些相互竞争的服务器产品中进行选择,而不必被囿于那些适合某些用户端应用程序的服务器软件和平台。在许多情况下,如果软件销售商支持多硬件平台,系统管理员们甚至可以独立地选择服务器硬件和软件。
我们把这叫做用户选择和服务器选择分离的能力。开放协议提供了一个公平竞争的场所,并激起销售商之间的竞争,这最终会使我们受益。
开放协议和文件格式是相当稳定的,不会经常改动(即使改动也是向上兼容的),而且还有广泛的支持,能给你最大的产品自主选择性和最大的机会获得可靠的、兼容性好的产品。
使用开放系统的另一个好处是和其它系统连接时不再需要额外的网关。网关是不同系统能连接在一起的黏合剂。虽然网关能节省你的时间,但使用开放协议的系统彻底避免了使用网关。网关作为一项额外的服务也需要计划、设计、监测以及本章所讲的其它关于服务的每一样东西,减少服务可是一件好事。
当下次有销售人员向你推销一些忽略IETF(因特网工程任务组)标准和其它工业标准的产品,如日历管理系统、目录服务等的时候,想想这些教训吧!虽然销售商会承诺再卖给或者免费送给你性能优越的网关产品。使用标准协议就是使用IETF的标准,而不是销售商的私有标准,销售商的私有协议以后会给你带来大麻烦的。
4. "简单"的价值
在建立一个新服务时,简单是首先要考虑的因素。在能满足所有要求的解决方案中,最简单的才是最可靠、最容易维护、最容易扩展以及最易于和其它系统集成到一起的。过度复杂将导致混乱、错误、使用困难以及明显的运行速度下降,而且使安装和维护的成本增加。
当系统规模增长的时候,还会变得更复杂,这是生活常识。所以,开始尽可能的简单可以避免系统过早出现"太复杂"的情况。想一想,如果有两个销售人员都打算推销他们的系统,其中一个系统有20个功能,另外一个有40个功能,我们就可以认为功能多的软件可能会有更多的错误,它的销售商就更难以有时间维护他的系统代码。
有时,用户或系统管理员们的一两个要求就会使系统的复杂度增加很多。如果在设计阶段遇到这样的要求,就值得去寻找为什么会有这种要求,并估价其重要性,然后向用户或系统管理员们解释,这样的要求能够满足,但要以降低可靠性、支持水平和可维护性为代价。根据这些,再让他们重新决定是坚持这样的要求,还是放弃。
三、其它需要考虑的问题
建立一个服务除了要求可靠、可监测、易维护支持,以及要符合所有的我们基本要求和用户的要求外,还要考虑到一些特别的事情。如果可能的话,应该让每个服务使用专门的机器,这么作可以让服务更容易得到支持和维护,也能减少忘记一些服务器机器上的小的服务的机会。在一些大公司,使用专门的机器是一条基本原则,而在小公司,由于成本问题,一般达不到这个要求。
还有一个观念就是在建立服务时要以让服务完全冗余为目标。有些重要的服务不管在多大的公司都要求完全冗余。由于公司的规模还会增长,所有你要以让所有的服务都完全冗余为目标。
1. 使用专门的机器
理想的情况,服务应该建立在专门的机器上。大网站应该有能力根据服务的要求来调整到这个结构,而小网站却很难做到。每个服务都有专门的机器会使服务更可靠,当发生可靠性问题是也容易调试,发生故障的范围更小,以及容易升级和进行容量计划。
从小公司成长起来的大网站一般有一个集中管理的机器作为所有重要服务的核心,这台机器提供名字服务、认证服务、打印服务、邮件服务等等。最后,由于负荷的增长,机器不得不分开,把服务扩展到别的服务器上去。常常是在这之前,系统管理员们已经得到了资金,可以买更多的管理用的机器,但是觉得太麻烦,因为有这么多的服务依赖这机器,把它们都分开太难了。当把服务从一台机器上分开时,IP地址的依赖最难处理了,有些服务如名字服务的IP地址都在用户那里都已经记得很牢固了,还有一些IP地址被安全系统如路由器、防火墙等使用。
把一个中心主机分解到许多不同的主机上是非常困难的,建立起来的时间越长,上面的服务越多,就越难分解。使用基于服务的名字会有所帮助,但是必须整个公司都使用标准化的、统一的、始终如一的名字。
2. 充分的冗余
充分的冗余是指有一个或一系列复制好的服务器,能在发生故障的时候接管主要的故障设备。冗余系统应该可以作为备份服务器连续的运行,当主服务器发生故障时能自动连上线,或者只要少量的人工干预,就能接管提供服务的故障系统。
你选择的这类冗余是依赖于服务的。有些服务如网页服务器和计算区域,可以让自己很好的在
上一篇:新世纪的软件产业与集成电路产业
热门论文