【论计算机网络中服务的概念论文】什么是计算机

论计算机网络中服务的概念论文

论计算机网络中服务的概念论文 论计算机网络中服务的概念全文如下:
摘要: 由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算 机组成的计算机环境的主要区别是什么呢――服务!这种只有几台孤立计算机的 典型环境是家庭和那些很小的非技术性的办公室,而典型的结构化计算机环境则 是由技术人员操作大量的计算机,通过共享方便的通信、优化的资源等服务来互 相联结在一起。当一台家用电脑通过互联网或通过ISP连接到因特网上,他就是 使用了ISP或其他人提供的服务才进入网络的。

由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算 机组成的计算机环境的主要区别是什么呢――服务!这种只有几台孤立计算机的 典型环境是家庭和那些很小的非技术性的办公室,而典型的结构化计算机环境则 是由技术人员操作大量的计算机,通过共享方便的通信、优化的资源等服务来互 相联结在一起。当一台家用电脑通过互联网或通过ISP连接到因特网上,他就是 使用了ISP或其他人提供的服务才进入网络的。办公室环境也能提供同样甚至更 多的服务。

典型的办公室环境包含很多服务,主要有DNS、电子邮件、认证服务、 联网以及打印等等。这些服务非常重要,一旦没有了这些服务会对你产生很大的 影响。其它典型的服务还包括各种远程接入方法、网络证书服务、软件仓库、备 份服务、连接因特网、DHCP、文件服务等等。如此多的服务确实令人厌倦,但 这也证明了系统管理员团队所创造并维护的服务是如此之多。你给用户的每一个 技术支持都包含了系统管理员团队提供的服务在里面。

提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了 服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。只有在 这几个方面都符合要求的服务才是真正的服务。

系统管理员的主要职责之一就是为用户提供他们所需要的服务,这是 一项持续性的工作。随着技术的进步和用户工作的开展,用户的要求也会越来越 高,结果系统管理员就必须花费大量的时间来设计并创建新的服务,创建的新服 务的质量决定了以后系统管理员们对它们提供技术支持时所花费时间和精力的多少,同时也决定了用户的满意程度。

一、 服务的基本问题 创建一个稳定、可靠的服务是一个系统管理员的重要工作。在进行这 项工作时系统管理员必须考虑许多基本要素,其中最重要的就是在设计和开发的 各个阶段都要考虑到用户的需求。要和用户进行交流,去发现用户对服务的要求 和预期,然后把其它的要求如管理要求等列一个清单,这样的清单只能让系统管 理员团队的人看到。在这样一个过程中"是什么"比"怎么样"更重要,否则在具体 执行时很容易就会陷入泥潭而失去目标。

服务应该建立在服务器级的机器上而且机器应该放在合适的环境中, 作为服务器的机器应当具备适当的可靠性和性能。服务和服务所依赖的机器应该 受到监控,一旦发生故障就发出警报或产生故障记录清单。

大多数服务都依赖其它服务,通过进一步理解服务是如何进行的,会 使你洞悉这个服务所依赖的其它的服务。例如,几乎所有的服务都依靠域名服务 (DNS)。要给一个服务配置机器名或域名,要靠DNS;要想在日志文件中包含所使 用服务或服务访问过的主机名,要用到DNS;如果你进入一台主机通过它的服务 联系别的机器,也要用到DNS。同样,几乎所有的服务都依靠网络,其实网络也 是一种服务。DNS是依靠网络的,所以所有依赖DNS的服务也依靠网络。有一些 服务是依靠email的(而email是依赖DNS和网络的),还有别的服务依靠访问其它计 算机上的共享文件,也有许多服务也依靠身份认证和授权服务来对人们进行区分, 特别是在那些基于认证机制而又具有不同级别服务权限的环境中。某些服务如 DNS的故障,会引起所有依赖DNS的其它服务的一连串的失败。所以在构建一个 服务时,了解它所依赖的其它服务是非常重要的。

作为服务一部分的机器和软件应当依赖那些建立在相同或更高标准 上的主机和软件,一个服务的可靠性和它所依赖的服务链中最薄弱环节的可靠性 是相当的。一个服务不应该无故的去依赖那些不是服务一部分的主机。

为了可靠性和安全性,对服务器的访问权限应当进行限制,只有系统 管理员才能具有访问权限。使用机器的人和机器上运行的程序越多,发生内存溢 出或突然出现其它故障、服务中断的机会就越大。用户使用计算机时总喜欢多装 点东西,这样他们就能方便的存取自己需要的数据和使用其它的服务。但是服务 器应该是尽可能的简单,简单化可以让机器更加可靠,发生问题时更容易调试。服务器在满足服务运转正常的前提下应当安装最少的东西,只有系统管理员们具 有安装权限,而且系统管理员们登录服务器时应该也只是为了维护。从安全的角 度来看,服务器比普通的台式机更敏感。入侵者一旦获得了服务器的管理员权限, 他所能做的破坏比获得台式机管理员权限所能做的破坏大的多!越少的人具有管 理员权限,服务器运行的东西就越少,入侵者获得权限的机会就越小,入侵者被 发现的机会就越大。

系统管理员在构建一个服务时必须要作几个决策,比如从哪个厂家买 设备、对于一个复杂的服务用一台还是多台服务器、构建服务时要留多大的冗余 度。一个服务应该尽可能的简单,尽可能小的依赖性,这样才能提高可靠性和易 维护性。

另一个使服务易于维护的方法是使用标准硬件、标准软件、标准配置 以及把文件放在标准位置,对服务进行集中管理。例如,在一个公司中,用一个 或两个大的主要的打印服务器比零星分布的几百个小服务器使服务更容易得到 支持。最后,也是非常重要的是在执行一些新服务时,服务所在的机器在用户端 配置时最好使用基于服务的名字,而不是用真实的主机名,这样服务才会不依赖 于机器。如果你的操作系统不支持这个功能,那就去告诉你的操作系统销售商这 对你很重要,同时要考虑是否使用别的具有这个功能的操作系统。

一旦服务建好并完成了测试,就要逐渐转到用户的角度来进行进一步 的测试和调试。

1. 用户的要求 建立一个新服务应该从用户的要求开始,用户才是你建立服务的根本 原因。如果建立的服务不合乎用户的需要,那简直就是在浪费精力。

很少有服务不是为了满足用户的需求而建立的,DNS就是其中之一。

其它的如邮件服务和网络服务都是明显为了用户的需求建立的。用户需要他们的 邮件用户端具备某些功能,而且不同的用户想要在网络上作不同是事情,这些都 依靠提供服务的系统设置情况。其它的服务如电子购物系统则更是以用户为导向 的了。系统管理员们需要理解服务怎样影响用户,以及用户的需求又如何反过来 对服务的设计产生影响。

搜集用户的需求应该包括下面这些内容:他们想怎样使用这些新服务、需要哪些功能、喜欢哪些功能、这些服务对他们有多重要,以及对于这些服务他 们需要什么级别的可用性和技术支持。如果可能的话,让用户试用一下服务的试 用版本。不要让用户使用那些很麻烦或是不成功的系统和项目。尽量计算出使用 这个服务的用户群有多大以及他们需要和希望获得什么样的性能,这样才能正确 的计算。

2. 操作上的要求 对于系统管理员来说,新服务的有些要求不是用户直接可见的。比如 系统管理员要考虑到新服务的管理界面、是否可以与已有的服务协同操作,以及 新服务是否能与核心服务如认证服务和目录服务等集成到一起。

系统管理员们还要考虑怎样规划一个服务,因为随着公司规模的增长, 所需要的服务当然也会比当初预期的有所增长,所以系统管理员们还得想办法在 增长服务规模的同时不中断现存的服务。

一个相对成熟的方法是升级服务的路径。一旦有了新版本,如何进行 升级呢是否得中断现在的服务呢是否要触及桌面呢能不能慢慢地逐渐升级,在整 个公司发生冲突之前先在一些人中进行测试呢所以要尽量把服务设计得容易升 级,不用中断现有的服务就能升级,不要触及桌面而且能慢慢地逐渐升级。

从用户期望的可靠性水平以及系统管理员们对系统将来要求的可靠 性的预期,系统管理员们就能建立一个用户期望的功能列表,其内容包括群集、 从属设备、备份服务器或具有高可用性的硬件和操作系统。

系统管理员们需要考虑到由服务主机位置和用户位置而引起的网络 性能问题。如果远程用户通过低带宽、高等待时间连接,那这样的服务该怎么完 成呢有没有一种方法可以让各个地方的用户都获得好的或比较好的服务呢销售 商很少测试用他们的产品连接时是否高等待时间的――即RTT值是否比较大 ――每个人从程序员到销售员都忽略了这个问题。人们只是确信内部测试的结果。

3. 开放的体系结构 一个新服务,不管在什么情况下,只要可能,就应该建立在使用开发 式协议和文件格式的体系结构上。特别是那些在公共论坛上记录成文的协议和文件格式,这样销售商才能依据这些标准生产出通用的产品。具有开放体系结构的 服务更容易和其它遵循相同标准的服务集成到一起。

开放的反义词是私有,使用私有协议和文件格式的服务很难和其它产 品共同使用,因为私有协议和文件格式的改变可以不发布通知,也不要求得到协 议创造者的许可。当销售商扩展到一个新领域,或者试图保护自己的市场而阻止 创造一个公平竞争的环境时,他们会使用私有协议。

有时销售商使用私有协议就是为了和别的销售商达成明确的许可协 议,但是会在一个销售商使用的新版本和另一个销售商使用的兼容版本之间存在 明显的延迟,两个销售商所用的版本之间也会有中断,而且没有提供两个产品之 间的接口。这种情况对于那些依靠它们的接口同时使用两种产品的人来说,简直 是一场恶梦。

商业上使用开放协议的例子很简单:它使你能够建立更好的服务,因 为你可以选择最好的服务器和用户端软件,而不必被迫地选择,比如在选择了最 好的用户端后,又被迫选择不是最理想的服务器。用户想要那些具有他们需要的 功能,而又易于使用的应用程序,而系统管理员们却希望服务器上的应用程序易 于管理,这两个要求常常是冲突的。一般来说,或者用户或者系统管理员们有更 大权利私下做一个另对方惊奇的决定。如果系统管理员们做了这个决定,用户会 认为他们简直是法西斯,如果用户做了这个决定,这会成为一个难以管理的包袱, 最终使得用户自己不能得到很好的服务。

一个好的解决方法就是选择基于开放标准的协议,让双方都能选择自 己的软件。这就把用户端应用程序的选择同服务器平台的选择过程分离了,用户 自由的选择最符合自己需要、偏好甚至是平台的软件,系统管理员们也可以独立 地选择基于他们的可靠性、规模可设定性和可管理性需要的服务器解决方案。系 统管理员们可以在一些相互竞争的服务器产品中进行选择,而不必被囿于那些适 合某些用户端应用程序的服务器软件和平台。在许多情况下,如果软件销售商支 持多硬件平台,系统管理员们甚至可以独立地选择服务器硬件和软件。

我们把这叫做用户选择和服务器选择分离的能力。开放协议提供了一 个公平竞争的场所,并激起销售商之间的竞争,这最终会使我们受益。

开放协议和文件格式是相当稳定的,不会经常改动(即使改动也是向 上兼容的),而且还有广泛的支持,能给你最大的产品自主选择性和最大的机会获得可靠的、兼容性好的产品。

使用开放系统的另一个好处是和其它系统连接时不再需要额外的网 关。网关是不同系统能连接在一起的黏合剂。虽然网关能节省你的时间,但使用 开放协议的系统彻底避免了使用网关。网关作为一项额外的服务也需要计划、设 计、监测以及本章所讲的其它关于服务的每一样东西,减少服务可是一件好事。

当下次有销售人员向你推销一些忽略IETF(因特网工程任务组)标准 和其它工业标准的产品,如日历管理系统、目录服务等的时候,想想这些教训吧! 虽然销售商会承诺再卖给或者免费送给你性能优越的网关产品。使用标准协议就 是使用IETF的标准,而不是销售商的私有标准,销售商的私有协议以后会给你带 来大麻烦的。

4. "简单"的价值 在建立一个新服务时,简单是首先要考虑的因素。在能满足所有要求 的解决方案中,最简单的才是最可靠、最容易维护、最容易扩展以及最易于和其 它系统集成到一起的。过度复杂将导致混乱、错误、使用困难以及明显的运行速 度下降,而且使安装和维护的成本增加。

当系统规模增长的时候,还会变得更复杂,这是生活常识。所以,开 始尽可能的简单可以避免系统过早出现"太复杂"的情况。想一想,如果有两个销 售人员都打算推销他们的系统,其中一个系统有20个功能,另外一个有40个功能, 我们就可以认为功能多的软件可能会有更多的错误,它的销售商就更难以有时间 维护他的系统代码。

有时,用户或系统管理员们的一两个要求就会使系统的复杂度增加很 多。如果在设计阶段遇到这样的要求,就值得去寻找为什么会有这种要求,并估 价其重要性,然后向用户或系统管理员们解释,这样的要求能够满足,但要以降 低可靠性、支持水平和可维护性为代价。根据这些,再让他们重新决定是坚持这 样的要求,还是放弃。

三、其它需要考虑的问题 建立一个服务除了要求可靠、可监测、易维护支持,以及要符合所有 的我们基本要求和用户的要求外,还要考虑到一些特别的事情。如果可能的话, 应该让每个服务使用专门的机器,这么作可以让服务更容易得到支持和维护,也能减少忘记一些服务器机器上的小的服务的机会。在一些大公司,使用专门的机 器是一条基本原则,而在小公司,由于成本问题,一般达不到这个要求。

还有一个观念就是在建立服务时要以让服务完全冗余为目标。有些重 要的服务不管在多大的公司都要求完全冗余。由于公司的规模还会增长,所有你 要以让所有的服务都完全冗余为目标。

1. 使用专门的机器 理想的情况,服务应该建立在专门的机器上。大网站应该有能力根据 服务的要求来调整到这个结构,而小网站却很难做到。每个服务都有专门的机器 会使服务更可靠,当发生可靠性问题是也容易调试,发生故障的范围更小,以及 容易升级和进行容量计划。

从小公司成长起来的大网站一般有一个集中管理的机器作为所有重 要服务的核心,这台机器提供名字服务、认证服务、打印服务、邮件服务等等。

最后,由于负荷的增长,机器不得不分开,把服务扩展到别的服务器上去。常常 是在这之前,系统管理员们已经得到了资金,可以买更多的管理用的机器,但是 觉得太麻烦,因为有这么多的服务依赖这机器,把它们都分开太难了。当把服务 从一台机器上分开时,IP地址的依赖最难处理了,有些服务如名字服务的IP地址 都在用户那里都已经记得很牢固了,还有一些IP地址被安全系统如路由器、防火 墙等使用。

把一个中心主机分解到许多不同的主机上是非常困难的,建立起来的 时间越长,上面的服务越多,就越难分解。使用基于服务的名字会有所帮助,但 是必须整个公司都使用标准化的、统一的、始终如一的名字。

2. 充分的冗余 充分的冗余是指有一个或一系列复制好的服务器,能在发生故障的时 候接管主要的故障设备。冗余系统应该可以作为备份服务器连续的运行,当主服 务器发生故障时能自动连上线,或者只要少量的人工干预,就能接管提供服务的 故障系统。

你选择的这类冗余是依赖于服务的。有些服务如网页服务器和计算区 域,可以让自己很好的在克隆好的机器上运行。别的服务比如大数据库就不行, 它们要求连接更牢固的崩溃恢复系统。你正在使用的用来提供服务的软件或许会告诉你,冗余是以一种有效的、被动的、从服务器的形式存在的,只有在主服务 器发生故障并发出请求时,冗余系统才会响应。不管什么情况,冗余机制必须要 确保数据同步并保持数据的完整。

如果冗余服务器连续的和主服务器同步运行,那么冗余服务器就可以 用来分担正在正常运行的负荷并能提高性能。如果你使用这种方法,一定要注意 不要让负荷超出性能不能接受的临界点,以防止某个服务器出现故障。在到达临 界点之前要为现存系统增加更多的并行服务器。

有些服务和网站每时每刻的功能都集成在一起,所以它们在网站建立 的早期就做到充分冗余了。别的仍然被忽视,直到网站变得很大,出现了一些大 的、明显的故障。

名字服务和认证服务是典型的、首先要充分冗余的服务。这么做的部 分原因是软件就是设计得要有辅助服务器,部分原因是它确实很重要。其它重要 的服务如邮件服务、打印服务和网络服务,在以后才能被考虑到,因为要为它们 作完全冗余会更复杂而且很昂贵。

在你做每一件事的时候,都要考虑到在哪儿作完全冗余才能让用户最 受益,然后就从那儿开始吧。

冗余的另一个好处就是容易升级。可以进行滚动升级。每次有一台主 机被断开、升级、测试然后重新开始服务。单一主机的故障不会停止整个服务, 虽然可能会影响性能。如果你真的搞杂了一个升级那就关掉电源等你冷静下来再 去修它。

四、结束语 啰啰嗦嗦说了这么多,我想大家对如何建立一个服务并使之符合用户 的需求也有了一定的了解。希望通过这些介绍,系统管理员可以用它来了解自己 所建立的服务是否完善,用户可以以之去衡量自己所接受到的服务是否所有应该 得到的,希望从两个方面的要求来促进服务,使计算机网络上的服务更上一层楼。