電大計算機系畢業論文範文
當今社會隨著計算機的使用越來越廣泛,其已經滲透到我們的日常生活中的各個方面。下文是小編為大家蒐集整理的關於的內容,歡迎大家閱讀參考!
篇1
淺議計算機網路中服務的概念
摘要:
由系統管理員管理的結構化計算機環境和只有一臺或幾臺孤立計算機組成的計算機環境的主要區別是什麼呢――服務!這種只有幾臺孤立計算機的典型環境是家庭和那些很小的非技術性的辦公室,而典型的結構化計算機環境則是由技術人員操作大量的計算機,通過共享方便的通訊、優化的資源等服務來互相聯結在一起。當一臺家用電腦通過網際網路或通過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. 充分的冗餘
充分的冗餘是指有一個或一系列複製好的伺服器,能在發生故障的時候接管主要的故障裝置。冗餘系統應該可以作為備份伺服器連續的執行,當主伺服器發生故障時能自動連上線,或者只要少量的人工干預,就能接管提供服務的故障系統。
你選擇的這類冗餘是依賴於服務的。有些服務如網頁伺服器和計算區域,可以讓自己很好的在克隆好的機器上執行。別的服務比如大資料庫就不行,它們要求連線更牢固的崩潰恢復系統。你正在使用的用來提供服務的軟體或許會告訴你,冗餘是以一種有效的、被動的、從伺服器的形式存在的,只有在主伺服器發生故障併發出請求時,冗餘系統才會響應。不管什麼情況,冗餘機制必須要確保資料同步並保持資料的完整。
如果冗餘伺服器連續的和主伺服器同步執行,那麼冗餘伺服器就可以用來分擔正在正常執行的負荷並能提高效能。如果你使用這種方法,一定要注意不要讓負荷超出效能不能接受的臨界點,以防止某個伺服器出現故障。在到達臨界點之前要為現存系統增加更多的並行伺服器。
有些服務和網站每時每刻的功能都整合在一起,所以它們在網站建立的早期就做到充分冗餘了。別的仍然被忽視,直到網站變得很大,出現了一些大的、明顯的故障。
名字服務和認證服務是典型的、首先要充分冗餘的服務。這麼做的部分原因是軟體就是設計得要有輔助伺服器,部分原因是它確實很重要。其它重要的服務如郵件服務、列印服務和網路服務,在以後才能被考慮到,因為要為它們作完全冗餘會更復雜而且很昂貴。
在你做每一件事的時候,都要考慮到在哪兒作完全冗餘才能讓使用者最受益,然後就從那兒開始吧。
冗餘的另一個好處就是容易升級。可以進行滾動升級。每次有一臺主機被斷開、升級、測試然後重新開始服務。單一主機的故障不會停止整個服務,雖然可能會影響效能。如果你真的搞雜了一個升級那就關掉電源等你冷靜下來再去修它。
四、結束語
囉囉嗦嗦說了這麼多,我想大家對如何建立一個服務並使之符合使用者的需求也有了一定的瞭解。希望通過這些介紹,系統管理員可以用它來了解自己所建立的服務是否完善,使用者可以以之去衡量自己所接受到的服務是否所有應該得到的,希望從兩個方面的要求來促進服務,使計算機網路上的服務更上一層樓。
>>>下頁帶來更多的