Tiểu luận kết thúc môn học: Hệ phân tán

PHẦN I. GIỚI THIỆU Hệ thống máy tính đang trải qua một cuộc cách mạng. Từ năm 1945 cho đến năm 1985, các máy tính rất lớn và rất đắt. Hầu hết các tổ chức chỉ có rất ít máy tính và không biết cách nối chúng. Đến giữa những năm 1980, hai mở rộng trong kỹ thuật đã thay đổi tình hình đó. Thứ nhất là sự phát triển vi xử lý, từ CPU chỉ có 8 bit đã phát triển thành 16, 32, 64 bit. Nhiều CPU đã có một năng lực tính toán của một siêu máy tính nhưng với giá thấp. Sự phát triển thứ hai là sự phát minh mạng máy tính tốc độ cao, mạng cục bộ (Local-area networks-LAN) cho phép hàng trăm máy tính có thể kết nối được với nhau để trao đổi thông tin. Mạng diện rộng (Wide-area network-WAN) cho phép hàng triệu máy tính trên trái đất có thể được kết nối với tốc độ truyền dữ liệu từ 64Kbps đến gigabits mỗi giây. Kết quả của những cải tiến về mặt kỹ thuật đem lại sự kết nối dễ dàng nhiều hệ thống máy tính với nhau để tạo một mạng cao tốc. Chúng thường được gọi là mạng máy tính hoặc hệ phân tán. Để xây dựng được một hệ phân tán hoạt động hiệu quả và tối ưu, nhà thiết kế phải giải quyết rất nhiều vấn đề có tính chiến lược. Tiểu luận nhằm trình bày một số vấn đề cơ bản khi xây dựng một hệ phân tán và đưa ra một số giải pháp nhằm giải quyết các vấn đề đó. Đồng thời tiểu luận còn đưa ra một số ví dụ minh họa cho những vấn đề và giải pháp trên. Tiểu luận gồm bốn phần. Phần 1:Định nghĩa một hệ phân tán. Phần 2: Những mục tiêu khi xây dựng hệ phân tán. Phần này nhằm giới thiệu bốn mục tiêu cơ bản khi thiết kế và xây dựng hệ phân tán, đó là dễ dàng kết nối ngưởi sử dụng với tài nguyên; trong suốt đối với người sử dụng và ứng dụng; có khả năng thêm bớt các dịch vụ mà không ảnh hưởng đến các dịch vụ đã có-tính mở; dễ dàng thay đổi theo sự thay đổi quy mô của hệ thống-tính co giãn. Đồng thời nêu ra một số vấn đề và giải pháp chung mà người thiết kế cần chú ý. Phần 3: Trình bày một số vấn đề và giải pháp cụ thể liên quan đến truyền thông, tiến trình, định danh, đồng bộ hóa, nhân bản, tính chịu lỗi và an toàn trên hệ phân tán. Phần 4: Đưa ra trọn vẹn hai ví dụ về hệ phân tán hướng tư liệu đó là World Wide Web và Lotus Note nhằm minh họa cho những vấn đề và giải pháp cụ thể đã đề cập ở phần 3.

doc49 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3449 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tiểu luận kết thúc môn học: Hệ phân tán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
a ®æi. HTTP cho phÐp tµi liÖu cã mét thÎ ®­îc biÓu diÔn nh­ mét x©u ký tù, ®Ó ®em vÒ mét tµi liÖu nÕu nã phï hîp víi mét thÎ nµo ®ã. Thao t¸c Put lµ ®èi lËp víi thao t¸c Get. Mét client cã thÓ yªu cÇu mét server l­u tr÷ mét tµi liÖu d­íi mét tªn ®· cho. TÊt nhiªn, mét server sÏ kh«ng mï qu¸ng thùc hiÖn thao t¸c Put, mµ chØ chÊp nhËn yªu cÇu nh­ vËy tõ sù ñy quyÒn cña nh÷ng client. Thao t¸c Post lµ cã phÇn t­¬ng tù ®Ó l­u mét tµi liÖu, ngo¹i trõ mét client sÏ yªu cÇu d÷ liÖu ®Ó ®­îc thªm vµo c¸c tµi liÖu Thao t¸c Delete ®­îc dïng ®Ó yªu cÇu mét server xãa ®i tµi liÖu mµ cã tªn trong th«ng ®iÖp ®· göi ®Õn server. Tuy nhiªn, thùc sù xãa hay kh«ng lµ tïy vµo giíi h¹n an ninh kh¸c nhau. Ngay c¶ b¶n th©n server còng cã thÓ kh«ng cã quyÒn thÝch hîp ®Ó xãa tµi liÖu ®· chØ ra. TÊt c¶ giao tiÕp gi÷a mét client vµ mét server x¶y ra th«ng qua th«ng ®iÖp. HTTP chØ nhËn ra th«ng ®iÖp yªu cÇu vµ th«ng ®iÖp tr¶ lêi. Mét th«ng ®iÖp yªu cÇu gåm cã ba phÇn. Dßng yªu cÇu lµ b¾t buéc, gåm thao t¸c nhËn biÕt mµ client muèn server ®­a ra; mét tham chiÕu ®Õn tµi liÖu cã liªn quan víi mét yªu cÇu vµ mét tr­êng ph©n biÖt ®­îc sö dông ®Ó nhËn ra phiªn b¶n cña HTTP client ®ang chê ®îi. Mét th«ng ®iÖp tr¶ lêi b¾t ®Çu víi mét dßng tr¹ng th¸i chøa mét sè phiªn b¶n vµ mét m· tr¹ng th¸i ba bÝt. M· lµ gi¶i thÝch ng¾n gän víi mét côm tõ nguyªn b¶n mµ ®­îc göi theo nh­ lµ mét phÇn cña dßng tr¹ng th¸i. Mét th«ng ®iÖp yªu cÇu hoÆc tr¶ lêi cã thÓ chøa thªm nh÷ng headers. VÝ dô, nÕu mét client ®· yªu cÇu mét thao t¸c Post ®èi víi tµi liÖu cã thuéc tÝnh chØ ®äc, server sÏ tr¶ lêi víi th«ng b¸o cã m· tr¹ng th¸i lµ 405 (“Method Not Allowed”) theo víi mét tiªu ®Ò th«ng b¸o Allow chØ râ quyÒn cña thao t¸c. Mét vÝ dô kh¸c, mét client cã thÓ ®­îc quan t©m chØ trong mét tµi liÖu nÕu nã ch­a ®­îc söa ®æi tõ mét thêi gian T. Trong tr­êng hîp ®ã, yªu cÇu Get cña client ®­îc t¨ng lªn víi mét tiªu ®Ò th«ng b¸o If-Modified-Since chØ râ gi¸ trÞ T. Cã nhiÒu tiªu ®Ò kh¸c nhau mµ client cã thÓ göi ®Õn server gi¶i thÝch c¸i g× nã cã thÓ chÊp nhËn nh­ mét tr¶ lêi. VÝ dô, mét client cã thÓ chÊp nhËn tr¶ lêi mµ ®· ®­îc nÐn sö dông c«ng cô nÐn gzip cã s½n trªn hÇu hÕt c¸c m¸y cµi Windows vµ UNIX. Trong tr­êng hîp ®ã client sÏ göi mét tiªu ®Ò th«ng b¸o Accept-Encoding theo víi yªu cÇu cña nã víi néi dung lµ “Accept-Encoding:gzip”. Còng nh­ vËy, mét tiªu ®Ò th«ng b¸o Accept cã thÓ ®­îc dïng ®Ó chØ râ nh÷ng trang Web HTML ®ã cã thÓ ®­îc tr¶ vÒ. Tiªu ®Ò th«ng b¸o Location vµ Referer ®­îc sö dông ®Ó göi mét lÇn n÷a mét tµi liÖu ®Õn mét client. Göi tiÕp mét tr¶ lêi sö dông con trá chuyÓn tiÕp ®Ó ®Þnh vÞ mét tµi liÖu. Khi mét client ph¸t ra mét yªu cÇu cho tµi liÖu D, server cã thÓ tr¶ lêi víi mét tiªu ®Ò Location, chØ râ r»ng client nªn ph¸t l¹i yªu cÇu, nh­ng bÊy giê ®èi víi tµi liÖu D’. Khi sö dông tham chiÕu ®Õn D’, client cã thÓ thªm mét tiªu ®Ò Referer chøa tham chiÕu ®Õn D ®Ó chØ ra nguyªn nh©n cña sù göi l¹i. Nãi chung tiªu ®Ò th«ng ®iÖp nµy ®­îc sö dông ®Ó chØ ra hÇu hÕt c¸c tµi liÖu ®· yªu cÇu cña client. Tiªu ®Ò Upgrade ®­îc sö dông ®Ó chuyÓn qua mét giao thøc kh¸c. 4.1.3 TiÕn tr×nh Web lµm chØ ®­îc sö dông hai lo¹i tiÕn tr×nh: browsers ®Ó ng­êi sö dông cã thÓ truy cËp tµi liÖu Web vµ Web servers ®Ó tr¶ lêi cho nh÷ng yªu cÇu browser. Browsers cã thÓ ®­îc hç trî bëi ch­¬ng tr×nh trî gióp. Còng nh­ vËy, servers cã thÓ ®­îc bao bäc bëi nh÷ng ch­¬ng tr×nh thªm vµo ch¼ng h¹n nh­ kÞch b¶n CGI. Mét phÇn quan träng nhÊt cña Web client lµ Web browser. Nã cho phÐp ng­êi dïng ®em vÒ mét trang Web tõ server vµ sau ®ã hiÓn thÞ chóng trªn mµn h×nh. Mét Browser cung cÊp mét giao diÖn bëi siªu liªn kÕt ®Ó ng­êi sö dông cã thÓ chän chóng b»ng thao t¸c bÊm chuét. Mét trong nh÷ng vÊn ®Ò mµ ng­êi thiÕt kÕ Web browser ph¶i gi¶i quyÕt lµ mét browser ph¶i ®­îc dÔ dµng më réng ®Ó cã thÓ cung cÊp bÊt kú mét lo¹i tµi liÖu nµo ®­îc tr¶ vÒ tõ mét server. TiÕp cËn nµy nh»m ®­a ra nh÷ng ph­¬ng tiÖn nh­ nh÷ng plug-in. Mét plug-in lµ mét ch­¬ng tr×nh nhá mµ cã thÓ ®­îc t¶i xuèng mét browser ®Ó ®iÒu khiÓn mét lo¹i tµi liÖu riªng biÖt. Plug-ins ®­a ra mét chuÈn giao diÖn cho browser vµ cÇn mét chuÈn giao diÖn tõ browser. Khi mét browser b¾t gÆp mét kiÓu tµi liÖu mµ cÇn mét plug-in vµ nã n¹p plug-in côc bé. Plug-in ®­îc xãa khái browser khi nã lµ kh«ng cÇn thiÕt n÷a. Mét tiÕn tr×nh client-side th­êng ®­îc sö dông lµ Web proxy. Tr­íc tiªn, tiÕn tr×nh nµy ®­îc dïng ®Ó cho phÐp mét browser ®iÒu khiÓn nh÷ng giao thøc tÇng øng dông kh¸c. VÝ dô, ®Ó chuyÓn mét file tõ mét FTP server, browser cã thÓ ph¸t ra mét yªu cÇu HTTP ®Õn mét proxy FTP côc bé, FTP ®em file vÒ vµ g¸n cho mét th«ng ®iÖp tr¶ lêi HTTP. Browser Web proxy FTP server HTTP Request HTTP Response FTP Request FTP Response Sö dông mét Web proxy Ngµy nay, hÇu hÕt nh÷ng Web browser ®Òu cã kh¶ n¨ng hç trî ®a d¹ng nh÷ng giao thøc do ®ã kh«ng cÇn nh÷ng proxy. Tuy nhiªn, nh÷ng Web proxy lµ vÉn cßn phæ biÕn, nh­ng víi lý do kh¸c. Nã dïng ®Ó cung cÊp mét cache chia sÎ b»ng mét sè browser. Khi yªu cÇu mét tµi liÖu, mét browser cã thÓ chuyÓn yªu cÇu cña nã ®Õn mét Web proxy côc bé. Proxy sÏ kiÓm tra liÖu yªu cÇu tµi liÖu lµ trong cache côc bé cña nã hay kh«ng tr­íc khi giao dÞch víi server. Mét Web server lµ mét ch­¬ng tr×nh ®iÒu khiÓn yªu cÇu HTTP b»ng c¸ch ®em vÒ tµi liÖu yªu cÇu vµ tr¶ l¹i nã cho client. VÊn ®Ò quan träng liªn quan ®Õn client-server lµ mét Web server cã thÓ bÞ qu¸ t¶i. Mét gi¶i ph¸p thiÕt thùc lµ nh©n b¶n mét server trªn mét côm tr¹m lµm viÖc, vµ dïng mét lèi vµo ®Ó h­íng nh÷ng yªu cÇu client ®Õn mét b¶n sao. Web server Web server Web server Front end Request Response Front end ®iÒu khiÓn yªu cÇu vµo vµ ®¸p øng LAN Nguyªn t¾c sö dông cña mét cluster cña tr¹m lµm viÖc ®Ó thùc hiÖn mét dÞch vô Web. Mét khÝa c¹nh chñ yÕu cña sù tæ chøc nµy lµ thiÕt kÕ cña lèi vµo v× nã cã thÓ trë thµnh mét chç gi¶m hiÖu suÊt. Nãi chung, mét ®iÒu kh¸c biÖt ®­îc lµm gi÷a nh÷ng lèi vµo ho¹t ®éng nh­ lµ chuyÓn m¹ch cña tÇng giao vËn vµ nh÷ng ho¹t ®éng nµy ë tÇng øng dông. Khi mét client ph¸t ra mét yªu cÇu HTTP, nã thiÕt lËp mét kÕt nèi TCP ®Õn server. Mét chuyÓn m¹ch tÇng giao vËn chuyÓn d÷ liÖu däc theo kÕt nèi TCP ®Õn mét trong nh÷ng server, tïy thuéc vµo mét sè kÝch th­íc t¶i träng cña server. Trë ng¹i chÝnh cña tiÕp cËn nµy lµ chuyÓn m¹ch kh«ng thÓ tÝnh to¸n néi dung cña yªu cÇu HTTP ®­îc göi theo kÕt nèi TCP. Nã chØ cã thÓ dùa trªn sù quyÕt ®Þnh göi l¹i cña nã ë trªn t¶i träng server. Mét tiÕp cËn tèt h¬n lµ triÓn khai content-aware ph©n t¸n yªu cÇu, b»ng lèi vµo thø nhÊt kiÓm tra mét yªu cÇu HTTP vµo vµ sau ®ã quyÕt ®Þnh server nã sÏ h­íng yªu cÇu ®Õn. M« h×nh nµy cã thÓ ®­îc tæ hîp víi ph©n t¸n néi dung th«ng qua mét côm nh÷ng server. Ph©n t¸n Content-aware cã nh÷ng thuËn lîi kh¸c nhau. VÝ dô, nÕu lèi vµo lu«n lu«n h­íng nh÷ng yªu cÇu cïng mét tµi liÖu ®Õn cïng mét server, server ®ã cã thÓ cÊt gi÷ tµi liÖu kÕt qu¶ trong thêi gian tr¶ lêi cao h¬n. Thªm vµo ®ã, cã thÓ ph©n t¸n sù tËp trung nh÷ng tµi liÖu ë gi÷a nh÷ng server thay v× ph¶i nh©n b¶n mçi tµi liÖu ®èi víi mçi server. 4.1.4/ §Þnh danh Web sö dông mét s¬ ®å ®Þnh danh ®¬n ®Ó tham chiÕu ®Õn c¸c tµi liÖu, ®­îc gäi lµ Uniform Resource Identifiers (URI). URI cã hai d¹ng. Mét Uniform Resource Locator (URL) lµ mét tham chiÕu phô thuéc vÞ trÝ ®Õn mét tµi liÖu. Mét URL chøa th«ng tin ®Ó truy xuÊt mét tµi liÖu. B»ng c¸ch nµo ®Ó truy cËp mét tµi liÖu th­êng ®­îc ph¶n ¸nh bëi tªn cña s¬ ®å mµ lµ mét phÇn cña URL, ch¼ng h¹n nh­ http, ftp, telnet. N¬i mét tµi liÖu ®­îc ®Þnh vÞ th­êng ®­îc g¾n vµo mét URL bëi tªn DNS cña server ®Ó mét yªu cÇu truy xuÊt cã thÓ ®­îc göi, mÆc dï mét ®Þa chØ IP còng cã thÓ ®­îc sö dông. Sè l­îng cæng ë trªn server sÏ tiÕp nhËn nh÷ng yªu cÇu còng lµ mét phÇn cña URL. Mét URL còng chøa tªn cña tµi liÖu ®­îc tra cøu bëi server ®ã. Scheme Host name Pathname http:// www.cs.vu.nl /home/steen/mbox ChØ sö dông mét tªn DNS Scheme Host name Port Pathname http:// www.cs.vu.nl 80 /home/steen/mbox KÕt hîp mét tªn DNS víi mét sè hiÖu cæng Scheme Host name Port Pathname http:// 130.37.24.11 80 /home/steen/mbox KÕt hîp mét ®Þa chØ IP víi mét sè hiÖu cæng Nh÷ng cÊu tróc th­êng dïng cña URLs NÕu server ®­îc tham chiÕu bëi tªn DNS cña nã, tªn ®ã sÏ cÇn thiÕt ®Ó ®­îc ph©n tÝch cho ®Þa chØ IP cña server. Sö dông sè hiÖu cæng ®­îc chøa trong URL, client cã thÓ tiÕp xóc víi server sö dông giao thøc ®­îc ®Þnh danh bëi s¬ ®å, vµ chuyÓn nã tªn cña tµi liÖu mµ nh÷ng d¹ng phÇn cuèi cña URL. Mét d¹ng tµi liÖu ®­îc hç trî bëi URLs d÷ liÖu. Trong mét URL nh­ vËy, b¶n th©n tµi liÖu ®­îc g¾n vµo mét URL, t­¬ng tù nh­ g¾n vµo d÷ liÖu cña mét file trong mét inode. URLs cßn ®­îc dïng víi nh÷ng môc ®Ých kh¸c. VÝ dô, mét telnet URL ®­îc dïng ®Ó thiÕt lËp mét phiªn telnet ®Õn mét server. Còng cã nh÷ng URLs cho giao tiÕp telephone-base URL tel chØ g¾n vµo mét sè ®iÖn tho¹i vµ cho client thiÕt lËp mét cuéc gäi th«ng qua m¹ng ®iÖn tho¹i. Trong tr­êng hîp nµy client sÏ ®Æc tr­ng lµ mét thiÕt bÞ ch¼ng h¹n nh­ mét ®iÖn tho¹i cÇm tay. Modem URL cã thÓ ®­îc sö dông ®Ó thiÕt lËp mét kÕt nèi modem-base víi m¸y tÝnh kh¸c. URNs lµ mét tham chiÕu ®Þnh vÞ ®éc lËp ®Õn nh÷ng tµi liÖu. Mét URN cã cÊu tróc ba phÇn. Scheme Host name Pathname http:// www.cs.vu.nl /home/steen/mbox CÊu tróc chung cña mét URN. MÆc dï ®Þnh nghÜa mét kh«ng gian ®Þnh danh URN lµ kh¸ dÔ nh­ng gi¶i quyÕt mét URN lµ rÊt khã kh¨n, v× URNs xuÊt ph¸t tõ nh÷ng kh«ng gian ®Þnh danh kh¸c nhau cã thÓ cã nh÷ng cÊu tróc kh¸c nhau. 4.1.5 §ång bé hãa Do sù ph¸t triÓn m¹nh mÏ cña Web nªn nã ph¶i ®­îc cung cÊp sù hç trî cho nh÷ng cËp nhËt hiÖn t¹i cña nh÷ng tµi liÖu bëi mét nhãm céng t¸c nh÷ng ng­êi sö dông hoÆc nh÷ng tiÕn tr×nh. V× lý do nµy, mét më réng cña HTTP ®· ®­îc ®­a ra gäi lµ Web Distributed Authoring and Versioning (WebDAV). WebDAV cung cÊp mét c¬ chÕ ®Ó khãa mét tµi liÖu chia sÎ, t¹o, xãa, sao chÐp vµ di chuyÓn tµi liÖu tõ Web server tõ xa. §Ó ®ång bé hãa nh÷ng truy cËp x¶y ra ®ång thêi ®Ó chia sÎ mét tµi liÖu, WebDAV cung cÊp mét kü thuËt kho¸ ®¬n gi¶n. Cã hai lo¹i khãa ghi. Mét khãa ghi ®Æc biÖt cã thÓ ®­îc thiÕt kÕ cho mét client ®¬n, nã sÏ ng¨n chÆn bÊt cø client nµo söa ch÷a tµi liÖu chia sÎ trong khi nã bÞ khãa. Mét khãa chia sÎ cho phÐp nhiÒu client cËp nhËt tµi liÖu cïng mét lóc. Ên ®Þnh mét khãa ®­îc lµm b»ng c¸ch chuyÓn mét thÎ khãa ®Õn client yªu cÇu. Server sÏ Ên ®Þnh client nµo hiÖn t¹i cã thÎ khãa. BÊt cø khi nµo client muèn söa ch÷a tµi liÖu, nã göi mét yªu cÇu cæng HTTP ®Õn server, kÌm theo víi thÎ khãa. ThÎ chØ ra r»ng client cã quyÒn truy cËp ghi vµo tµi liÖu, ®èi víi lý do nµy server sÏ thùc hiÖn yªu cÇu. Mét vÊn ®Ò thiÕt kÕ quan träng ®­a ra ®ã lµ kh«ng cÇn thiÕt ®Ó duy tr× mét kÕt nèi gi÷a client vµ server trong khi ®ang cÇm khãa. Client cã thÓ c¾t kÕt nèi víi server sau khi giµnh ®­îc khãa vµ kÕt nèi l¹i víi server khi göi mét yªu cÇu HTTP. Khi mét client lµm “r¬i” mét thÎ khãa, server ph¶i phôc håi l¹i khãa. WebDAV kh«ng chØ ra c¸ch ®Ó server ®iÒu khiÓn t×nh huèng nµy nh­ng cho phÐp më ®Ó bæ sung. Lý do lµ gi¶i ph¸p tèt nhÊt sÏ tïy thuéc vµo nh÷ng tµi liÖu mµ WebDAV lµ ®ang sö dông. 4.1.6/ Caching vµ nh©n b¶n §Ó c¶i tiÕn sù thùc hiÖn cña Web, caching client-side lu«n ®ãng vai trß quan träng trong thiÕt kÕ Web client. H¬n n÷a, ®Ó gi¶m t¶i träng cña nh÷ng Web server, cÇn ph¶i nh©n b¶n Web site vµ ®Æt c¸c b¶n sao lªn Internet. GÇn ®©y, kü thuËt ®Ó nh©n b¶n Web ngµy cµng ph¸t triÓn trong khi caching dÇn dÇn mÊt ®i tÝnh phæ biÕn. a/ Web Proxy Caching Client-side caching xuÊt hiÖn t¹i hai vÞ trÝ. Thø nhÊt, hÇu hÕt browser ®­îc trang bÞ víi mét ph­¬ng tiÖn caching ®¬n gi¶n. BÊt cø khi nµo mét tµi liÖu ®­îc ®em vÒ, nã ®­îc l­u tr÷ trong cache cña browser tõ n¬i nã ®­îc t¶i lÇn tiÕp theo. Client cã thÓ cÊu h×nh caching b»ng c¸ch chØ ra khi nµo kiÓm tra nhÊt qu¸n sÏ x¶y ra. Thø hai, mét site cña client th­êng ch¹y mét Web proxy. Nh­ ®· ®­îc gi¶i thÝch, mét Web proxy chÊp nhËn nh÷ng yªu cÇu tõ nh÷ng client côc bé vµ chuyÓn chóng ®Õn Web server. Khi mét tr¶ lêi ®i vµo, kÕt qu¶ ®­îc chuyÓn ®Õn client. ThuËn lîi cña tiÕp cËn nµy ®ã lµ proxy cã thÓ cÊt gi÷ kÕt qu¶ vµ tr¶ l¹i kÕt qu¶ ®ã ®Õn mét client kh¸c, nÕu cÇn thiÕt. Nãi c¸ch kh¸c, mét Web proxy cã thÓ thùc hiÖn mét chia sÎ cache. Caching cã thÓ t¹i nh÷ng browser, t¹i nh÷ng proxy hoÆc còng cã thÓ bao phñ mét miÒn, v× vËy cÇn cã mét s¬ ®å caching cã thø tù nh»m gi¶m sù t¾c nghÏn m¹ng. Nh÷ng giao thøc nhÊt qu¸n cache kh¸c nhau ®· ®­îc triÓn khai trong Web. §Ó b¶o ®¶m mét tµi liÖu ®­îc tr¶ l¹i tõ cache lµ nhÊt qu¸n, mét sè Web proxy göi mét ®iÒu kiÖn yªu cÇu get HTTP ®Õn server víi tiªu ®Ò yªu cÇu If-modified-Since, chØ râ lÇn s÷a ®æi cuèi cïng liªn quan víi tµi liÖu ®· cÊt gi÷. ChØ nÕu tµi liÖu ®· bÞ thay ®æi tõ thêi gian ®ã, server sÏ tr¶ toµn bé tµi liÖu. NÕu kh«ng th×, Web proxy cã thÓ tr¶ l¹i phiªn b¶n ®· cÊt gi÷ cña nã ®Õn mét yªu cÇu client côc bé. Kh«ng may, chiÕn l­îc nµy yªu cÇu proxy tiÕp xóc mét server ®èi víi mçi yªu cÇu. §Ó c¶i tiÕn hiÖu suÊt ë gi¸ trÞ nhÊt qu¸n yÕu h¬n, sù më réng sö dông Squid Web proxy Ên ®Þnh mét thêi gian kÕt thóc Texprie mµ tïy thuéc c¸ch ®©y bao l©u tµi liÖu ®­îc söa ®æi cuèi cïng khi nã ®­îc cÊt gi÷. §Æc biÖt, nÕu Tlast_modified lµ thêi gian söa ®æi cuèi cïng cña mét tµi liÖu vµ Tcache lµ thêi gian ®· cÊt gi÷ th×: Texprie= a( Tcache - Tlast_modified ) + Tcache víi a=0.2 (gi¸ trÞ nµy ®· ®­îc lÊy tõ kinh nghiÖm thùc tiÔn). Cho ®Õn khi Texprie , tµi liÖu ®­îc xem nh­ hîp lÖ vµ proxy sÏ kh«ng tiÕp xóc víi server. Sau thêi gian kÕt thóc, the proxy yªu cÇu server göi mét b¶n míi, trõ khi nã ch­a bÞ söa ®æi. Nh÷ng tµi liÖu mµ ch­a bÞ söa ®æi trong mét thêi gian dµi sÏ kh«ng bÞ kiÓm tra vÒ sù söa ®æi ngay khi nh÷ng tµi liÖu ®· söa ®æi hiÖn thêi. §iÒu tåi tÖ lµ mét proxy cã thÓ tr¶ vÒ mét tµi liÖu hîp lÖ mµ cò h¬n phiªn b¶n ®­îc l­u hiÖn t¹i ë server. TÖ h¬n, kh«ng cã c¸ch ®Ó client biÕt r»ng nã võa nhËn ®­îc mét tµi liÖu ®· lçi thêi. Giao thøc pull-based ®Ó server cho biÕt nh÷ng proxy mµ mét tµi liÖu ®· ®­îc söa ®æi b»ng c¸ch göi mét mÊt hiÖu lùc. VÊn ®Ò víi c¸ch tiÕp cËn nµy ®èi víi Web proxy, lµ c¸i mµ server cã thÓ cÇn ®Ó l­u vÕt mét l­îng lín c¸c proxy, ch¾c ch¾n dÉn ®Õn mét vÊn ®Ò co gi·n. Mét trong nh÷ng vÊn ®Ò nh÷ng nhµ thiÕt kÕ Web proxy caches lµ gi¶i quyÕt víi caching t¹i nh÷ng proxy khi nh÷ng tµi liÖu bÞ chia sÎ bëi nh÷ng client kh¸c nhau. Mét c¸ch ®Ó x©y dùng nh÷ng cache rÊt lín mµ cã thÓ phôc vô mét sè l­îng lín client lµ sö dông nh÷ng caches céng t¸c. Trong cache céng t¸c, bÊt cø khi nµo mét cache kh«ng xuÊt hiÖn t¹i mét Web proxy, tr­íc hÕt proxy kiÓm tra mét sè nh÷ng proxy l¸ng giÒng dÓ xem nÕu mét trong chóng cã chøa mét tµi liÖu ®· yªu cÇu. NÕu kiÓm tra nh­ vËy bÞ lçi, proxy h­íng yªu cÇu ®Õn Web server chÞu tr¸ch nhiÖm ®èi víi tµi liÖu. Cache céng t¸c cã thÓ liªn quan ®Õn mét nhãm nhá nh÷ng client. Nh÷ng nhãm nh­ vËy cã thÓ ®­îc phôc vô b»ng c¸ch sö dông mét cache proxy ®¬n. VÊn ®Ò kh¸c cña Web proxy caches lµ chóng cã thÓ ®­îc sö dông chØ ®èi víi nh÷ng tµi liÖu tÜnh, ®ã lµ nh÷ng tµi liÖu mµ kh«ng ®­îc sinh ra trªn ®­êng ®i bëi Web serer khi tr¶ lêi nh÷ng yªu cÇu cña client. Trong mét vµi tr­êng hîp, cã thÓ chuyÓn sù ph¸t sinh cña tµi liÖu tõ server ®Õn proxy cache, nh­ caches ®éng ®· ®­a ra. Web server 3.H­íng yªu cÇu ®Õn server 1.Nh×n vµo cache côc bé HTTP yªu cÇu 2. Yªu cÇu cache proxy l¸ng giÒng Web proxy Client Client Client Cache Web proxy Client Client Client Cache Nguyªn t¾c cña cache céng t¸c Trong tiÕp cËn nµy, khi ®em vÒ mét tµi liÖu mµ ®­îc sinh ra mét c¸ch b×nh th­êng, server sÎ tr¶ l¹i mét applet mµ ®­îc caches t¹i proxy. Proxy ph¸t sinh tr¶ lêi cho yªu cÇu cña client b»ng c¸ch ch¹y applet. Applet ®­îc l­u gi÷ trong cache ®Ó lÇn tiÕp theo cho yªu cÇu nh­ vËy ®­îc sö dông. Chó ý r»ng b¶n th©n applet còng cã thÓ trë thµnh lçi thêi nÕu nã bÞ söa ®æi ë server. b/ Nh©n b¶n server Cã hai c¸ch nh©n b¶n server x¶y ra trong Web. Thø nhÊt, nh÷ng Web sites qu¸ t¶i dïng nh÷ng côm Web server ®Ó c¶i tiÕn thêi gian tr¶ lêi. Nãi chung, kiÓu nh©n b¶n nµy trong suèt ®èi víi client. Thø hai, mét d¹ng nh©n b¶n kh«ng trong suèt mµ ®­îc triÓn khai réng r·i ®Ó lµm mét phiªn b¶n sao chÐp cña mét Web site cã s½n t¹i mét server kh¸c. C¸ch nµy còng ®­îc gäi lµ mirroring. Mét client ®­îc ®Ò nghÞ chän gi÷a nhiÒu server ®Ó truy xuÊt Web site. GÇn ®©y, mét d¹ng nh©n b¶n thø ba ®ang ®­îc phæ biÕn. Trong d¹ng nµy, sù lùa chän server ®­îc ph©n t¸n trªn Internet ®­a ra nh÷ng ph­¬ng tiÖn cho tæ chøc tµi liÖu Web b»ng c¸ch nh©n b¶n nh÷ng tµi liÖu trªn nh÷ng server ®­îc biÕt nh­ mét Content Distribution Network (CDN) 4.1.7/ TÝnh chÞu lçi TÝnh chÞu lçi trong Web chñ yÕu ®¹t ®­îc th«ng qua client-side caching vµ nh©n b¶n server. Nh÷ng ph­¬ng thøc kh«ng ®Æc biÖt ®­îc hîp nhÊt, vÝ dô, HTTP ®Ó gióp ®ì tÝnh chÞu lçi hoÆc kh«i phôc lçi. Tuy nhiªn, tÝnh s½n sµng cao trong Web lµ ®¹t ®­îc th«ng qua dù phßng mµ sö dông kü thuËt cã s½n trong dÞch vô chñ yÕu nh­ lµ DNS. 4.1.8/ An toµn V× sù më réng cña Internet, ®Æt ra vÊn ®Ò quan träng lµ x©y dùng mét kiÕn tróc an toµn ®Ó b¶o vÖ client vµ server chèng l¹i sù tÊn c«ng nguy hiÓm. HÇu hÕt vÊn ®Ò an toµn trong Web gi¶i quyÕt viÖc thiÕt lËp mét kªnh ch¾c ch¾n gi÷a mét client vµ server. TiÕp cËn næi bËt ®Ó thiÕt lËp mét kªnh an toµn trªn Web lµ dïng Secure Socket Layer (SSL). MÆc dï SSL ch­a tõng ®­îc chuÈn hãa, hÇu hÕt Web client vµ server hç trî nã. GÇn ®©y, mét n©ng cÊp cña SSL ®· bÞ lo¹i bá trong RFC 2246, b©y giê ®­îc ®­a ra nh­ Transport Layer Security Protocol (TLS) TLS lµ mét giao thøc an toµn øng dông ®éc lËp mµ ®­îc ph©n tÇng hîp lý trªn ®Ønh cña mét giao thøc tÇng giao vËn. V× lý do ®¬n gi¶n, TLS vµ SSL thùc hiÖn dùa trªn TCP. TLS cã thÓ cung cÊp mét sù ®a d¹ng cña nh÷ng giao thøc bËc cao bao gåm HTTP. HTTP FTP Telnet ... TLS TÇng giao vËn TÇng m¹ng TÇng liªn kÕt d÷ liÖu TÇng vËt lý VÞ trÝ cña TLS trong ng¨n chång giao thøc Internet. B¶n th©n TLS d­îc tæ chøc thµnh hai tÇng. Lâi cña giao thøc ®­îc lµm tõ TLS record protocol layer, c¸i mµ thùc hiÖn mét kªnh an toµn gi÷a mét client vµ mét server. TÝnh chÝnh x¸c cña kªnh ®­îc x¸c ®Þnh trong suèt cµi ®Æt cña nã, nh­ng cã thÓ bao gåm sù ph©n m¶nh vµ nÐn cña th«ng ®iÖp, c¸i mµ ®­îc ¸p chung vµo víi sù x¸c thùc th«ng b¸o, tÝnh toµn vÑn. ThiÕt lËp mét kªnh an toµn chia thµnh hai giai ®o¹n. Giai ®o¹n thø nhÊt, client b¸o tin cho server thuËt to¸n m· hãa vµ giao thøc nÐn nã hç trî mµ nã cã thÓ sö dông. Server thùc hiÖn sùa lùa chän vµ b¸o c¸o l¹i cho client Giai ®o¹n thø hai, server yªu cÇu x¸c thùc b¶n th©n nã b»ng c¸ch chuyÓn ®Õn client mét giÊy chøng nhËn chøa ®ùng khãa ®­îc ký hiÖu bëi mét chøng nhËn thÈm quyÒn CA. Client x¸c thùc b»ng c¸ch göi mét chøng nhËn ®Õn server. Server Client Possibilities [K+S]CA Choices [K+C]CA K+S([R]C) TLS víi sù x¸c thùc lÉn nhau. Client sinh ra mét sè ngÉu nhiªn mµ sÎ ®­îc sö dông bëi hai mÆt ®Ó x©y dùng mét khãa phiªn vµ göi sè nµy ®Õn server. Nã ®­îc viÕt l¹i thµnh mËt m· víi khãa chung cña server. H¬n n÷a, nÕu x¸c thùc client ®­îc yªu cÇu, client ký hiÖu sè víi khãa riªng cña nã. T¹i ®iÓm nµy server cã thÓ x¸c minh nhËn d¹ng cña client, sau khi kªnh an toµn ®­îc thiÕt lËp. 4. 2/ Lotus Notes 4.2.1 Kh¸i qu¸t chung cña Lotus Notes Gièng nh­ Web, mét hÖ thèng Lotus Notes ®­îc tæ chøc nh­ mét hÖ thèng client-server. Cã bèn thµnh phÇn chÝnh cïng chung trong mét hÖ thèng Lotus Notes: Client, server, database vµ mét tÇng middleware. Mçi client vµ server cã nhiÒu c¬ së d÷ liÖu liªn kÕt côc bé. Mçi c¬ së d÷ liÖu thµnh lËp mét tËp hîp cña notes, víi mét nót lµ khãa d÷ liÖu nguyªn tè trong bÊt cø hÖ thèng Notes. Local OS Notes object services Notes Application Local OS Notes object services Notes Application Client Server Share database Local database Network Tæ chøc chung cña hÖ thèng Lotus notes Mét client ch¹y mét øng dông yªu cÇu truy xuÊt d÷ liÖu, cã thÓ so s¸nh ®­îc víi chøc n¨ng cña mét Web browser. Mét ph©n biÖt chñ yÕu víi browser lµ ng­êi sö dông kh«ng chØ ®äc c¬ së d÷ liÖu mµ cßn cã thÓ söa ®æi chóng. Ngoµi ra, Notes cßn cã mét bé c«ng cô ph©n biÖt mµ cho phÐp ng­êi sö dông thiÕt kÕ vµ duy tr× nh÷ng c¬ së d÷ liÖu cña hä. Lotus Notes servers gäi lµ Domino servers. Mét server qu¶n lý tËp hîp mèi quan hÖ cña nh÷ng c¬ së d÷ liÖu. NhiÖm vô chÝnh cña nã lµ cung cÊp tõ xa nh÷ng clients vµ nh÷ng servers kh¸c truy xuÊt vµo nh÷ng c¬ së d÷ liÖu nµy. ChÝnh v× vËy, ch­¬ng tr×nh server chÝnh gåm cã nh÷ng modules ®Ó nhËn nh÷ng yªu cÇu ®Õn tõ m¹ng, duy tr× liªn kÕt vµ phiªn ®Ó xö lý tõ xa, vµ duy tr× th«ng tin trªn c¬ së d÷ liÖu côc bé. H¬n n÷a, cã nhiÒu nhiÖm vô kh¸c liªn quan ®Õn qu¶n lý c¬ së d÷ liÖu vµ nh÷ng ch­¬ng tr×nh ph©n biÖt th­êng ch¹y trªn server. Nh÷ng tµi liÖu trªn Web lµ hÇu hÕt ®­îc biÓu diÔn b»ng nh÷ng file. Trong khi ®ã, Lotus Notes l­u tr÷ vµ qu¶n lý tµi liÖu th«ng qua c¬ së d÷ liÖu. §©y lµ sù kh¸c nhau lín nhÊt gi÷a Web server vµ Domino Server Client, server vµ c¬ së d÷ liÖu ®­îc g¾n kÕt víi nhau th«ng qua mét thµnh phÇn middlewware ph©n biÖt gäi lµ Notes Object Services (NOS). Middleware nµy biÓu diÔn mét líp trªn ®Ønh cña hÖ ®iÒu hµnh c¬ së vµ m¹ng mµ cho phÐp client vµ server giao tiÕp vµ truy xuÊt côc bé vµ chia sÎ c¬ së d÷ liÖu. HiÓu theo th«ng th­êng, nã gåm cã nh÷ng thµnh phÇn ®Ó gäi thñ tôc tõ xa, l­u tr÷ ph­¬ng tiÖn, gäi l¹i chøc n¨ng... a/ M« h×nh tµi liÖu Khãa d÷ liÖu nguyªn tè trong mét hÖ thèng Lotus Notes ®­îc gäi lµ mét nót, vÒ c¬ b¶n nã lµ mét danh s¸ch nh÷ng b¶n tin. Mét b¶n tin lµ mét phÇn tö ®Ó l­u d÷ liÖu liªn quan víi mét nót, mçi b¶n tin x¸c ®Þnh lo¹i d÷ liÖu mµ nã l­u. Mçi nót còng cã thÓ cã mét danh s¸ch nh÷ng nót liªn quan tham chiÕu ®Õn nh­ lµ nót con cña nã. H¬n n÷a mçi nót cã thÓ cã h¬n mét liªn kÕt cha, dÉn ®Õn mét ph©n cÊp cña nh÷ng nót. Ph©n cÊp nµy ph¶n ¸nh mét kh¸i niÖm nguån gèc cña hÖ thèng Notes, ®ã lµ cung cÊp mét hÖ thèng mµ cho phÐp ng­êi sö dông göi notes, vµ ®Ó göi ®¸p l¹i cho notes. Mèi quan hÖ gi÷a göi vµ ®¸p l¹i ®­îc duy tr× bëi quan hÖ cha con, t­¬ng tù c¸ch lµm viÖc cña Network News. Cã nhiÒu kiÓu kh¸c nhau cña notes, víi mét ph©n lo¹i dùa vµo thiÕt kÕ notes vµ qu¶n lý notes. ThiÕt kÕ notes ®­îc dïng ®Ó hiÓn thÞ vµ ®iÒu khiÓn nh÷ng tµi liÖu, qu¶n lý note ®­îc dïng ®Ó qu¶n lý mét c¬ së d÷ liÖu note. Mét note d÷ liÖu t­¬ng tù víi mét tµi liÖu Web: nã biÓu diÔn mét tµi liÖu mµ cã thÓ dÔ dµng ®­îc biÓu diÔn cho mét ng­êi sö dông, nh­ng cã thÓ bao gåm nh÷ng lo¹i d÷ liÖu kh¸c nhau ch¼ng h¹n nh­ lµ ©m thanh, phim, tranh ¶nh, v¨n b¶n ®¬n gi¶n, biÓu t­îng... Notes d÷ liÖu còng ®­îc gäi lµ tµi liÖu. Mét note form ®Þnh nghÜa c¸ch mét tµi liÖu ®­îc biÓu diÔn cho ng­êi sö dông, b»ng c¸ch nghÜa vÞ trÝ vµ sù miªu t¶ cña nh÷ng item cña nã nh­ nh÷ng tr­êng. Mét vµi tr­êng cã thÓ chia sÎ gi÷a nh÷ng mÉu kh¸c nhau. Cã nhiÒu qu¶n lý notes, ch¼ng h¹n mét ACL note ®­îc dïng cho l­u tr÷ mét danh s¸ch ®iÒu khiÓn truy xuÊt. HoÆc notes cung cÊp ph­¬ng tiÖn nh©n b¶n c¬ së d÷ liÖu Notes cã thÓ tham chiÕu lÉn nhau bëi siªu liªn kÕt, ®­îc gäi lµ notelinks. Mét notelink nhËn biÕt c¬ së d÷ liÖu vµ note ®­îc chøa trong c¬ së d÷ liÖu ®ã. 4.2.2 TruyÒn th«ng Lotus Notes sö dông mét hÖ thèng RPC c¬ së cho tÊt c¶ vÊn ®Ò truyÒn th«ng gi÷a clients vµ servers. HÖ thèng Notes RPC trong suèt ®èi víi tÊt c¶ clients. Khi mét server nhËn mét yªu cÇu RPC, nã b¾t ®Çu mét nhiÖm vô ®éc lËp ®Ó ®iÒu khiÓn vÊn ®Ò cña truyÒn th«ng liªn quan ®Õn RPC ®ã, t­¬ng tù tiÕp cËn h­íng kÕt nèi ®­îc cho phÐp bëi hÖ thèng RPC kh¸c. Notes cung cÊp nhiÒu ph­¬ng tiÖn truyÒn th«ng liªn tiÕn tr×nh linh ®éng ®Ó trao ®æi th«ng tin gi÷a nh÷ng tiÕn tr×nh ®ang ch¹y trªn cïng mét m¸y. Tuy nhiªn, kh«ng gièng nh­ nh÷ng hÖ ph©n t¸n kh¸c, nã kh«ng thªm vµo nhiÒu ph­¬ng tiÖn truyÒn th«ng gi÷a nh÷ng tiÕn tr×nh trªn nhiÒu m¸y kh¸c nhau. HÇu hÕt truyÒn th«ng x¶y ra th«ng qua nh÷ng giao diÖn hoµn toµn x¸c ®Þnh, biÓu diÔn bëi hÖ thèng RPC Notes. Mét ngo¹i lÖ ®­îc h×nh thµnh bëi hÖ thèng con Notes ®Ó ®iÒu khiÓn E-mail. th«ng ®iÖp Notes E-mail lu«n ®­îc göi trong ®Þnh d¹ng MIME, vµ hÖ thèng con cã thÓ sö dông nhiÒu lo¹i giao thøc truyÒn mail ch¼ng h¹n SMTP. §Ó dÔ dµng ph¸t triÓn nh÷ng øng dông bËc cao ch¼ng h¹n nh­ hÖ thèng dßng c«ng viÖc. Notes cung cÊp nhiÒu ph­¬ng tiÖn ®Ó tù ®éng göi mail nh­ lµ mét ph¶n øng víi sù kiÖn mµ xuÊt hiÖn trong mét c¬ së d÷ liÖu. 4.2.3 TiÕn tr×nh Notes ph©n biÖt râ rµng gi÷a client vµ server. PhÇn mÒm client-side gåm cã ch­¬ng tr×nh cho phÐp mét ng­êi dïng t¸c ®éng víi server, gåm cã mét Web browser. H¬n n÷a, cã mét ch­¬ng tr×nh ph©n biÖt ®Ó thiÕt kÕ vµ thùc thi nh÷ng øng dông Notes. Ch­¬ng tr×nh nµy ®­îc so s¸nh víi nhiÒu c«ng cô ph¸t triÓn m« h×nh c¬ së d÷ liÖu øng dông: nã cho phÐp mét ng­êi sö dông thiÕt kÕ notes, víi nh÷ng forms, views, events, tasks... PhÇn mÒm server-side gåm cã mét ch­¬ng tr×nh chÝnh víi mét sè nhiÖm vô ®­îc x©y dùng ë trong ®ã, ch¼ng h¹n ®Ó ®iÒu khiÓn nh÷ng yªu cÇu vµo, më vµ ®ãng c¬ së d÷ liÖu côc bé, gi÷ l¹i c¬ së d÷ liÖu thÝch hîp vµ qu¶n lý nh÷ng côm servers. Bªn c¹nh nh÷ng nhiÖm vô nµy, cã mét sè l­îng lín server nhiÖm vô thªm vµo mµ ch¹y nh­ mét tiÕn tr×nh ph©n biÖt trªn cïng mét m¸y nh­ lµ server chÝnh, vµ ®­îc ®iÒu khiÓn bëi server chÝnh. Server chÝnh vµ nh÷ng server nhiÖm vô cña nã h×nh thµnh mét Domino server. TruyÒn th«ng gi÷a c¸c tiÕn tr×nh cña mét Domino server x¶y ra sö dông tÇng NOS ®· m« t¶ tr­íc ®©y. NOS cung cÊp ®a d¹ng c¸c ph­¬ng tiÖn truyÒn th«ng liªn tiÕn tr×nh, còng gièng nh­ ®iÒu kiÖn ®Ó truy xuÊt vµ qu¶n lý nh÷ng c¬ së d÷ liÖu côc bé. §Ó c¶i tiÕn tÝnh chÞu lçi vµ hiÖu suÊt, Domino servers cã thÓ ®­îc nhãm l¹i mét côm, mét tËp hîp cña 2 ®Õn 6 m¸y ch¹y cïng mét server víi nh÷ng b¶n sao y hÖt nhau cña c¬ sö d÷ liÖu. Mét côm Notes t­¬ng tù víi mét côm Web, nh­ng ®­îc tæ chøc h¬i kh¸c. §ã lµ cluster trong suèt víi client; mét client sÏ biÕt nã ®ang giao tiÕp víi mét côm server vµ ®­îc yªu cÇu chän mét server ®Ó nã trùc tiÕp thØnh cÇu. Local OS Notes object services Main server program Server task Server task Tæ chøc chung Domino server. Th«ng th­êng, ®Ó truy cËp mét note trong mét c¬ së d÷ liÖu cô thÓ, client sÏ cã mét tham chiÕu ®Õn note ®ã. Tr­íc tiªn client giao tiÕp víi server cña c¬ së d÷ liÖu, server tr¶ l¹i danh s¸ch cña c¸c server trong cïng mét côm server. NÕu server mµ client khëi ®éng giao tiÕp lµ qu¸ bËn, client sÏ t×m mét server kh¸c trong cluster. Khi server thø hai ®­îc yªu cÇu ®Ó x©y dùng mét danh s¸ch thø tù cña nh÷ng server cã s½n trong côm server. Thø tù ®­îc x¸c ®Þnh bëi khèi l­îng c«ng viÖc ph¶i lµm cña mçi server trong ®ã server cã khèi l­îng c«ng viÖc Ýt nhÊt ®­îc ë trªn ®Ønh cña danh s¸ch. Client sau ®ã tiÕp xóc víi server ®Çu tiªn trªn danh s¸ch ®Ó xem liÖu nã cã thÓ ®iÒu khiÓn ®­îc yªu cÇu kh«ng. NÕu kh«ng nã tiÕp tôc lÆp l¹i víi nh÷ng server tiÕp theo. 3. Request Cluster cã 3 server Server Server Server Client 2. Least-loaded server Danh s¸ch server trong cluster 1. Yªu cÇu mét server §iÒu khiÓn yªu cÇu trong mét côm cña Domino servers Khèi l­îng c«ng viÖc ph¶i lµm W cña mét server ®­îc tÝnh to¸n bëi mçi server nh­ mét hµm sè cña sè lÇn tr¶ lêi, tr¶ vÒ mét gi¸ trÞ gi÷a 0 vµ 100. §Æc biÖt, nÕu Tresponse lµ thêi gian tr¶ lêi hiÖn t¹i vµ Topt lµ thêi gian tr¶ lêi tèi ­u, W ®­îc tÝnh lµ W=max{0,100-( Tresponse/ Topt)} Server cã gi¸ trÞ W nhá lµ bËn h¬n server cã W lín. Thêi gian tr¶ lêi hiÖn t¹i ®­îc tÝnh to¸n trªn mét tËp biÓu diÔn cña nh÷ng hµm trong mçi phót. NÕu kh«ng cã yªu cÇu nµo cã nhu cÇu xö lý, W sÏ lµ 100 ph¶n ¸nh thêi gian tèi ­u cho yªu cÇu vµo tiÕp theo. 4.2.4/ §Þnh danh §Þnh danh lµ h­íng c¬ së d÷ liÖu, nã biÓu diÔn mét vai trß kh¸c so víi nh÷ng hÖ ph©n t¸n ®· ®Ò cËp. VÝ dô, bëi v× notes ®­îc l­u ë trong nh÷ng c¬ së d÷ liÖu, chóng d­îc truy xuÊt bëi gi¶i ph¸p ®Þnh danh. Mét c¬ së d÷ liÖu ®­îc biÓu diÔn bëi mét file ®¬n, vµ nh­ vËy ®­îc ®Þnh danh sö dông ®Þnh danh quy ­íc cña hÖ thèng file n»m d­íi mét sù thi hµnh Notes. Bªn c¹nh nh÷ng c¬ së d÷ liÖu vµ nh÷ng file kh¸c, cã nhiÒu thùc thÓ kh¸c ë trong Notes mµ cÇn ph¶i ®­îc ®Þnh danh ch¼ng h¹n nh­ users, servers, public keys... Th«ng tin nµy ®­îc chøa trong mét c¬ së d÷ liÖu ®Æc biÖt ®­îc gäi lµ Domino Directory, mµ cã thÓ ®­îc truy xuÊt gièng nh­ bÊt kú mét c¬ së d÷ liÖu Notes kh¸c. §Þnh danh character-string vÒ c¬ b¶n ®­îc hç trî trong hai c¸ch. Thø nhÊt Notes ®­a ra dÞch vô Distinguished name, thùc hiÖn bëi LDAP. Nh÷ng dÞch vô th­ môc nµy cã thÓ ®­îc sö dông ®Ó truy xuÊt c¬ së d÷ liÖu, nh­ng còng ®Ó tæ chøc ph©n cÊp mét kh«ng gian ®Þnh danh. D¹ng thø hai cña ®Þnh danh character-string lµ th«ng qua nh÷ng URL. Ph­¬ng tiÖn nµy ®­îc cung cÊp ®Ó cho phÐp truy xuÊt ®Õn nh÷ng Domino Server sö dông Web. H¬n n÷a, cÇn ph¶i thùc hiÖn Web servers dùa trªn Notes. Mét Note URL gåm cã ba phÇn chÝnh: tªn DNS cña mét Domino server cã kh¶ n¨ng ®iÒu khiÓn yªu cÇu HTTP, tªn ®­êng dÉn cña mét c¬ së d÷ liÖu Notes côc bé cho server, vµ mét phÇn thø ba cho truy xuÊt hiÖn thêi mét note ®· nhËn diÖn trong c¬ së d÷ liÖu ®ã. PhÇn thø ba gåm cã mét identifier, tªn cña mét to¸n tö, vµ nh÷ng tham sè lùa chän cho to¸n tö ®ã. Domino server lµ chÞu tr¸ch nhiÖm thùc hiÖn tªn to¸n tö ë trong note ®· nhËn d¹ng. Liªn quan ®Õn mét UNID lµ originator ID (OID) ®­îc sö dông ®Ó nhËn d¹ng mét tr­êng hîp ®Æc biÖt cña mét note. OID chøa UNID cña Note, nh­ng trong phÇn thªm gåm cã mét d·y sè 2 byte vµ mét nh·n thêi gian 8 byte. Hai c¸i nµy ®­îc dïng ®Ó b¶o vÖ vµ gi¶i quyÕt xung ®ét mµ cã thÓ xuÊt hiÖn khi mét note ®· nh©n b¶n ®ång thêi ®­îc cËp nhËt. Mét c¬ së d÷ liÖu ID kh«ng thùc sù lµ identifier nh­ng mét nh·n thêi gian cho biÕt khi mét c¬ së d÷ liÖu ®­îc t¹o ra hoÆc thêi gian cuèi cïng nã ®­îc phôc håi sau khi nµo server bÞ háng (crash). Nã cã thÓ ®­îc xem nh­ mét identifier víi mét ph¹m vi mµ bÞ giíi h¹n bëi Domino server trong tr¸ch nhiÖm cña nã. Mét Node ID ®­îc sö dông ®Ó nhËn d¹ng duy nhÊt mét note trong mét c¬ së d÷ liÖu cô thÓ. Mçi c¬ së d÷ liÖu dïng mét b¶ng tra cøu ph©n biÖt mµ nh÷ng s¬ ®å mét Note ID cho vÞ trÝ vËt lý cña nã trong c¬ së d÷ liÖu. KÕt qu¶, bÊt cø mét c¬ së d÷ liÖu ®­îc tæ chøc, chØ cã b¶ng tra cøu cÇn thiÕt ®Ó l¾p vµo trong khi tÊt c¶ note IDs cña nã cßn l¹i gièng nhau. Nh©n b¶n ID ®­îc dïng ®Ó chØ ra mét nhãm nh÷ng c¬ së d÷ liÖu tham gia trong nh©n b¶n. NÕu hai c¬ së d÷ liÖu cã cïng mét nh©n b¶n ID, th× tÊt c¶ nh÷ng cËp nhËt ®· thùc hiÖn t¹i mét c¬ së d÷ liÖu sÏ ®­îc nh©n cho c¸i kh¸c. VÒ nguyªn t¾c, b¶n nh©n ID lµ duy nhÊt trªn toµn cÇu, nh­ng bëi v× nã chØ dùa trªn nh·n thêi gian, tÝnh duy nhÊt lµ kh«ng b¶o ®¶m. Mét nh©n b¶n ID ®¬n thuÇn ®­îc sö dông ®Ó nhËn diÖn mét tËp hîp cña nh÷ng c¬ së d÷ liÖu mµ chia sÎ cïng mét cËp nhËt. 4.2.5/ §ång bé hãa Notes cung cÊp nhiÒu c¬ chÕ khãa ®Ó b¶o ®¶m lo¹i trõ lÉn nhau truy xuÊt ®Õn nh÷ng c¬ së d÷ liÖu cña nã. H¬n n÷a, nã hç trî nh÷ng giao dÞch. Tuy nhiªn, nh÷ng c¬ chÕ ®ång bé hãa nµy ®­îc thùc hiÖn kh«ng ph©n t¸n theo nghÜa chóng bÞ giíi h¹n trong nh÷ng to¸n tö trªn mét Domino server ®¬n. 4.2.6/ Nh©n b¶n Nh©n b¶n trong Notes chñ yÕu ¸p vµo nh÷ng tµi liÖu, ®ã lµ d÷ liÖu notes. Mét vai trß chÝnh trong nh©n b¶n ®­îc thùc hiÖn bëi sù nèi kÕt nh÷ng tµi liÖu, c¸i mµ notes ®­îc chøa trong mét th­ môc Domino ®Ó m« t¶ chÝnh x¸c khi nµo nh©n b¶n, nh©n b¶n nh­ thÕ nµo vµ nh©n b¶n c¸i g×. Mçi Domino server cã mét hoÆc nhiÒu h¬n nhiÖm vô nh©n b¶n liªn quan mµ thùc hiÖn mét l­îc ®å nh©n b¶n nh­ ®· m« t¶ bëi mét sù kÕt nèi tµi liÖu. Cã mét sè l­îc ®å nh©n b¶n kh¸c nhau. L­îc ®å ngÇm ®Þnh lµ pull-push, trong ®ã mét nh©n b¶n thiÕt lËp mét kÕt nèi ®Õn mét server ®Ých vµ sau ®ã ®Èy nh÷ng cËp nhËt cña nã cho server ®ã. H¬n n÷a, nã kÐo vÒ tÊt c¶ nh÷ng cËp nhËt mµ ®· x¶y ra t¹i server ®Ých. Còng cã thÓ nh©n b¶n x¶y ra theo l­îc ®å pull-pull trong ®ã hai b¶n nh©n ë hai server kh¸c nhau kÐo nh÷ng cËp nhËt tõ m¸y kh¸c. L­îc ®å Pull-only vµ push-only lµ nh÷ng l­îc ®å theo mét h­íng duy nhÊt. Cã ba thao t¸c cËp nhËt ®ã lµ söa ®æi, thªm vµ xãa mét tµi liÖu. B»ng c¸ch nµo ®Ó biÕt ®­îc liÖu mét tµi liÖu ®· bÞ thay ®æi hay ch­a. Mét tµi liÖu ®· thay ®æi ph¶i ®­îc phæ biÕn cho c¸c b¶n sao. L­u l¹i mét thay ®æi cho mét note ®­îc lµm b»ng c¸ch cËp nhËt d·y sè vµ nh·n thêi gian trong ID khëi ®Çu (OID) cña mét tµi liÖu. Gi¸ trÞ cò ®­îc sao chÐp vµo mét danh s¸ch tiÓu sö liªn quan víi tµi liÖu. Mét tµi liÖu míi ®­îc thªm vµo ®­îc x¸c nhËn b»ng c¸ch sinh ra mét tµi liÖu míi, duy nhÊt toµn cÇu OID. §Ó x¸c nhËn mét tµi liÖu bÞ xãa, mét ®¸nh dÊu xãa ®­îc ®Æt trong vÞ trÝ cña tµi liÖu ®· bÞ xãa trong c¬ së d÷ liÖu. VÒ nguyªn t¾c, mét ®¸nh dÊu xãa kh«ng thÓ bÞ xãa cho ®Õn khi tÊt c¶ b¶n sao tµi liÖu liªn quan cña nã thùc sù ®· bÞ xãa. Th«ng th­êng khi nh©n b¶n x¶y ra, tÊt c¶ nh÷ng cËp nhËt ®­îc phæ biÕn gi÷a nh÷ng b¶n sao. Nh÷ng b¶n sao ®­îc nhËn diÖn nh­ nh÷ng c¬ sö d÷ liÖu cã cïng ID b¶n sao. Dï hai b¶n sao tæ chøc bªn trong theo mét c¸ch gièng nhau nh­ng còng kh«ng quan träng. ChØ nh÷ng ®iÒu mµ néi dung nh÷ng b¶n sao l¹i cña mét tµi liÖu chøa trong c¶ hai c¬ së d÷ liÖu ®­îc gi÷ nhÊt qu¸n. Nh÷ng b¶n sao l¹i nµy ®­îc tæ chøc nh­ vËy bëi UNID liªn quan cña chóng. a/ Gi¶i quyÕt xung ®ét VÊn ®Ò liªn quan víi nh©n b¶n cña Notes ®ã lµ xung ®ét cã thÓ xuÊt hiÖn. NÕu nh÷ng b¶n sao cña cïng mét tµi liÖu ®­îc cËp nhËt ®éc lËp, mét xung ®ét write-write xuÊt hiÖn khi nh÷ng cËp nhËt ®­îc ph¸t t¸n chËm h¬n. Notes gi¶i quyÕt nh÷ng xung ®ét nµy nh­ sau: Gi¶ sö nh©n b¶n x¶y ra theo l­îc ®å pull-push trªn hai b¶n sao A vµ B. Nh÷ng cËp nhËt ®· thùc hiÖn t¹i B ®­îc kÐo vµo bëi A, sau ®ã nh÷ng cËp nhËt ®· thùc hiÖn t¹i A ®­îc ®Èy sang B. T¹i thêi gian cña nh©n b¶n, mét danh s¸ch cña nh÷ng ID khëi ®Çu ®­îc x©y dùng cho mçi b¶n nh©n. Khi danh s¸ch cho B chøa mét UNI mµ danh s¸ch A kh«ng cã, th× mét tµi liÖu míi ®­îc thªm vµo B, c¸i mµ ®­îc kÐo vµo bëi A. §iÒu nµy gièng nh­ nh÷ng tµi liÖu míi ®­îc thªm vµo A ®­îc ®Èy sang B. NÕu c¶ hai danh s¸ch chøa nh÷ng OID gièng hÖt nhau, th× nh÷ng ID nµy chuyÓn ®Õn nh÷ng tµi liÖu mµ ®­îc xem nh­ lµ gièng nhau trong A vµ B. Kh«ng cÇn thiÕt ®Ó truyÒn bÊt kú cËp nhËt nµo. Gi¶ sö r»ng cã mét note N trªn danh s¸ch cña A vµ trªn danh s¸ch cña B, nh­ng cã hai b¶n sao kh¸c nhau NA vµ NB cña N. Hai b¶n sao nµy cã cïng UNID, nh­ng OID kh¸c nhau. Khi ®ã, nhiÖm vô nh©n b¶n ë A sÏ nh×n vµo danh s¸ch tiÓu sö cña mçi b¶n sao. NÕu mét danh s¸ch lµ danh s¸ch con cña c¸i kia, th× kh«ng x¶y ra xung ®ét v× chØ mét b¶n sao nµy ®­îc cËp nhËt. Khi ®ã, b¶n sao cËp nhËt cã thÓ ®­îc chuyÓn ®Õn b¶n nh©n kia sau khi danh s¸ch tiÓu sö vµ nh÷ng OID cã thÓ ®­îc ®ång nhÊt. Tuy nhiªn, nÕu hai danh s¸ch tiÓu sö lµ kh¸c nhau th× cã mét xung ®ét mµ cÇn thiÕt ®­îc gi¶i quyÕt. Notes cho phÐp tµi liÖu ®­îc trén b»ng c¸ch kiÓm tra nh÷ng item cÊu thµnh mét note. BÊt cø khi nµo mét item bÞ thay ®æi, d·y sè mµ phÇn cña IOD ®­îc t¨ng lªn vµ g¸n cho item. B»ng c¸ch nµy, mét sù hiÖu chØnh cña item ®­îc thùc hiÖn. Tr­êng hîp hai danh s¸ch tiÓu sö lµ gièng nhau cho ®Õn khi d·y sè k. NÕu tÊt c¶ sù thay ®æi cho A mµ x¶y ra sau d·y sè k ®· ®­îc ¸p vµo nh÷ng item kh¸c h¬n nh÷ng thay ®æi cho B sau k, hai tµi liÖu cã thÓ ®­îc trén l¹i mét c¸ch an toµn. V× kh«ng cã mét xung ®ét trong söa ®æi. Replica A Replica B Replica C OID A OID B OID C Hai tµi liªu trén an toµn víi nh÷ng xung ®ét OID Trong tÊt c¶ nh÷ng tr­êng hîp kh¸c, mét xung ®ét kh«ng thÓ gi¶i quyÕt ®­îc x¸c nhËn. Notes cho mét tµi liÖu nh­ lµ mét “Winner” vµ cho nh÷ng c¸i kh¸c lµ “Loser”. B¶n sao víi d·y sè cao nhÊt trong OID cña nã lµ ®­îc khai b¸o “Winner”. b/ Côm nh©n b¶n Nh©n b¶n ®· th¶o luËn tr­íc ®©y ¸p dông cho mét tËp hîp nh÷ng server ph©n t¸n trªn diÖn réng. Trong tr­êng hîp côm server, mét c¸ch tiÕp cËn kh¸c ®­îc cho phÐp. Thay v× sù lËp danh môc nh©n b¶n ho¹t ®éng b»ng viÖc kÕt nèi nh÷ng tµi liÖu, mét cËp nhËt ngay lËp tøc ®­îc ®Èy vµo tÊt c¶ c¸c b¶n nh©n trong côm. §èi víi môc ®Ých nµy, mçi server duy tr× mét hµng ®îi cña sù kiÖn cËp nhËt ®Ó ghi vµo nh÷ng sù kiÖn b»ng nhiÒu to¸n tö c¬ së d÷ liÖu mµ ®­îc thùc hiÖn côc bé. Cø mçi gi©y, mét nhiÖm vô nh©n b¶n ®Æc biÖt kiÓm tra hµng ®îi ®Ó t×m nh÷ng cËp nhËt cÇn ®­îc phæ biÕn cho nh÷ng server kh¸c trong côm. CËp nhËt nh­ vËy ®­îc göi ®Õn nh÷ng b¶n nh©n kh¸c vµ sù kiÖn t­¬ng øng ®­îc xãa khái hµng ®îi. 4.2.7/ TÝnh chÞu lçi-(Dung sai lçi) Notes kh«ng cung cÊp bÊt kú mét c¬ chÕ cô thÓ ®Ó che dÊu lçi. Hç trî næi bËt nhÊt cho tÝnh chÞu lçi gåm cã mét hÖ thèng con phôc håi mµ ®­îc tÝch hîp vµo c¬ së d÷ liÖu thùc hiÖn trªn mét server ®¬n. 4.2.8/ An toµn C¬ së cña an ninh trong bÊt kú hÖ thèng Notes n»m trong sù x¸c thùc nh÷ng ng­êi sö dông. Mét lÇn mét ng­êi sö dông ®· x¸c thùc, truy cËp cã thÓ ®­îc c«ng nhËn cho notes trong nh÷ng c¬ së d÷ liÖu cña mét server. Cã mét c¬ chÕ më réng ®Ó ®iÒu khiÓn truy xuÊt cña ng­êi dïng vµo notes vµ nh÷ng phÇn cña mét notes. Notes dïng mËt m· khãa chung ®Ó x¸c thùc ng­êi sö dông vµ nh÷ng server. Sù x¸c thùc x¶y ra b»ng c¸ch chuyÓn mét chøng nhËn chøa mét khãa chung. N¬i nhËn chøng nhËn ph¶i ch¾c ch¾n r»ng khãa chung nã chøa thuéc vÒ n¬i göi ®­îc nhËn d¹ng. Notes chó ý ®Æc biÖt tíi x¸c nhËn giÊy mét chøng nhËn. Trong ng÷ c¶nh cña an ninh, Notes ph©n biÖt ba lo¹i thùc thÓ: mét ng­êi dïng, mét server vµ mét chøng nhËn. Mét trong ba thùc thÓ ®­îc biÕt trong hÖ thèng bëi mét ®Æc ®iÓm nhËn d¹ng mµ ®­îc biÓu diÔn nh­ mét file chøa nh÷ng khãa vµ nh÷ng chøng nhËn QuyÒn truy xuÊt (Access Control) Notes cung cÊp mét hç trî më réng cho ®iÒu khiÓn truy xuÊt nh÷ng thµnh phÇn cña nã. Cã mét sù ph©n biÖt gi÷a nh÷ng phÇn kh¸c nhau cña hÖ thèng. §èi víi nh÷ng server, nh÷ng danh s¸ch ®iÒu khiÓn truy xuÊt ®­îc gi÷ ®óng chÝnh x¸c cña nh÷ng ng­êi sö dông, nh÷ng nhãm ng­êi sö dông vµ server cã thÓ ph¸t ra nh÷ng yªu cÇu ®Õn mét server. §èi víi tr¹m lµm viÖc, Notes duy tr× nh÷ng danh s¸ch quyÒn thùc thi (ECL), nã ®Þnh râ giíi h¹n trªn m· kh¶ thi mµ ®­îc göi ®Õn mét tr¹m lµm viÖc nh­ lµ mét phÇn ®äc mét note. Cã mét sù hç trî më réng ®Ó ®iÒu khiÓn truy xuÊt ®Õn c¬ së d÷ liÖu. Mçi c¬ së d÷ liÖu cã mét ACL liªn quan mµ ®­îc ®Þnh râ mét c¸ch chÝnh x¸c ai cã thÓ lµm g×. Cã b¶y møc truy xuÊt c¬ së d÷ liÖu, ph¹m vi tõ møc qu¶n lý mµ ng­êi dïng ®­îc phÐp thªm, xãa vµ thay ®æi ®Õn mét møc “kh«ng truy xuÊt”. Cã nhiÒu quyÒn truy xuÊt c¬ sö d÷ liÖu liªn quan ®Õn nhiÒu lo¹i kh¸c nhau cña Notes mµ cã thÓ ®­îc l­u tr÷ trong mét c¬ së d÷ liÖu. Mçi tµi liÖu cã ACL liªn quan ®Õn b¶n th©n nã. Truy xuÊt cã thÓ ®­îc ®iÒu khiÓn ®Õn møc cña nh÷ng item, n¬i mét item cã thÓ cïng cã mét khãa liªn kÕt bÝ mËt ®Ó b¶o vÖ xa h¬n. Nã còng cã thÓ chØ ra r»ng ch¾c ch¾n nh÷ng phÇn chia ra cña mét tµi liÖu ®­îc che dÊu víi nh÷ng ng­êi kh«ng ®­îc quyÒn hoÆc nh÷ng dÊu hiÖu nªn x¶y ra khi mét tµi liÖu ®­îc göi ®Õn mét site tõ xa. 4.3/ So s¸nh cña WWW vµ Lotus Notes World Wide Web vµ Lotus Notes lµ hai hÖ thèng ph©n t¸n sö dông réng r·i nhÊt mµ dùa trªn mét m« h×nh cña nh÷ng tµi liÖu. C¶ Web vµ Lotus Notes chÊp nhËn mét m« h×nh client-server trong ®ã mét server qu¶n lý tËp hîp nh÷ng tµi liÖu mµ cã thÓ ®­îc truy xuÊt bëi c¸c client tõ xa. TËp hîp nh÷ng tµi liÖu lµ ph©n t¸n trªn nhiÒu server. Trong Web mét tµi liÖu vÒ c¬ b¶n lµ mét file v¨n b¶n chøa nhiÒu lo¹i lÖnh ®¸nh dÊu trong ng«n ng÷ HTML hoÆc mét sè ng«n ng÷ kh¸c. Ngoµi ra, nh÷ng tµi liÖu nµy cã thÓ kÌm theo nh÷ng lo¹i tµi liÖu kh¸c nh­ ©m thanh, h×nh ¶nh vµ phim, kÞch b¶n, aplet. Trong Lotus Notes, thµnh phÇn d÷ liÖu chÝnh trong Notes lµ mét danh s¸ch cña nh÷ng item nhá ®­îc gäi lµ mét note. Mét note lµ mét cÊu tróc d÷ liÖu liªn kÕt chÆt chÏ víi c¬ së d÷ liÖu. Lotus Notes qu¶n lý mét hÖ thèng thùc thÓ sö dông nh÷ng note. Web sö dông nh÷ng c¬ chÕ ph©n biÖt cho nh÷ng vÊn ®Ò nh­ vËy. 4.3.1/ TruyÒn th«ng TruyÒn th«ng trong Web x¶y ra bëi mét giao thøc truyÒn nh÷ng tµi liÖu, gäi lµ HTTP. HTTP chØ râ nh÷ng thao t¸c ®èi víi nh÷ng tµi liÖu vµ lµ chñ yÕu ®­îc giíi h¹n ®Ó lÊy mét tµi liÖu vµ thay thÕ mét tµi liÖu ë mét server. TruyÒn th«ng trong Lotus Notes ®­îc ®iÒu khiÓn bªn trong bëi mét hÖ thèng con RPC truyÒn thèng. H¬n n÷a, Notes nhÊn m¹nh truyÒn th«ng bËc cao th«ng qua E-mail. TruyÒn th«ng gi÷a nh÷ng tiÕn tr×nh trªn cïng mét m¸y còng ®­îc ®iÒu khiÓn kh¸c nhau. Trong Web, client vµ server lµ phô thuéc chÆt chÏ trªn mét hÖ ®iÒu hµnh c¬ së. Ng­îc l¹i, Notes sö dông mét tÇng ph©n biÖt lµ NOS, ®Ó che dÊu sù kh¸c nhau gi÷a nh÷ng hÖ ®iÒu hµnh client vµ server. TiÕp cËn nµy lµm t¨ng tÝnh c¬ ®éng cña nh÷ng øng dông Notes. 4.3.2/ TiÕn tr×nh Trong WWW, Web client quan träng nhÊt lµ mét browser ®­a ra mét giao diÖn ®å häa ®Ó ng­êi dïng cã thÓ ®em vÒ vµ hiÓn thÞ tµi liÖu vµ nh÷ng ph­¬ng tiÖn ®Ó so¹n th¶o nh÷ng tµi liÖu, ®ång thêi cã thÓ më réng th«ng qua Plug-ins. Trong Lotus Notes, mét client còng ®­îc ®­a ra mét giao diÖn ®å häa ®Ó thÊy nh÷ng l­u tr÷ notes trong c¬ së d÷ liÖu tõ xa. H¬n n÷a, Notes client nãi chung ®­îc trang bÞ víi mét øng dông ph©n biÖt ®Ó thiÕt kÕ Notes th«ng qua forms, views... Sù tæ chøc cña server còng t­îng tù, nh­ng Web server truyÒn thèng ®­îc biÕn ®æi ®Ó ho¹t ®éng trªn nh÷ng hÖ thèng file cßn Notes Domino server gièng mét c¬ së d÷ liÖu truyÒn thèng. TÝnh mÒm dÎo Server-side ®­îc cung cÊp trong Web bëi nh÷ng ch­¬ng tr×nh CGI. Nh÷ng ch­¬ng tr×nh nµy ®­îc b¾t ®Çu nh­ nh÷ng tiÕn tr×nh ph©n biÖt vµ cã thÓ ho¹t ®éng trªn c¬ së d÷ liÖu. Web server còng cã thÓ cung cÊp nh÷ng moduls cã kh¶ n¨ng t¶i ®éng gäi lµ servlets. Domino server ®­îc cÊu tróc nh­ mét ch­¬ng tr×nh chÝnh mµ ch¹y nh­ lµ mét tiÕn tr×nh ®¬n. NhiÒu nhiÖm vô thªm vµo ®­îc thùc hiÖn bëi nh÷ng server thµnh phÇn, lµ nh÷ng ch­¬ng tr×nh mµ ®­îc b¾t ®Çu vµ thùc thi mét c¸ch song song víi ch­¬ng tr×nh chÝnh. Nh÷ng server thµnh phÇn ®­îc so s¸nh víi c¸c ch­¬ng tr×nh CGI cña Web. C¶ Web vµ Notes ®Òu ®­îc më réng víi sù cung cÊp côm server, trong ®ã nhiÒu server céng t¸c ®Ó ®iÒu khiÓn yªu cÇu tõ nh÷ng client. Sù kh¸c nhau gi÷a hai lo¹i lµ sù trong suèt ®­îc hç trî. Web clients kh«ng biÕt sù thËt chóng ®ang göi yªu cÇu ®Õn mét côm server. Ng­îc l¹i, Notes client ®­îc x©y dùng mét danh s¸ch nh÷ng server trong nhãm ®Ó göi nh÷ng yªu cÇu cña nã khi cÇn thiÕt. 4.3.3/ §Þnh danh. Sù kh¸c nhau trong ®Þnh danh gi÷a hai hÖ thèng lµ liªn quan trùc tiÕp ®Õn tiÕp cËn h­íng file trong Web, vµ sö dông nh÷ng c¬ së d÷ liÖu trong Notes. Trong Web, nh÷ng tµi liÖu ®­îc ®Þnh danh bëi mét URN hoÆc URL, Nh÷ng URL hiÖn nay ®­îc sö dông bëi Web nãi chung chøa mét tªn t­¬ng øng víi tªn ®­êng dÉn côc bé cña file chøa tµi liÖu khi ®­îc l­u ë server. Ng­îc l¹i, nh÷ng URN ®­îc dïng ®Ó sö dông nh­ nh÷ng nhËn d¹ng ®éc lËp vÞ trÝ. Trong Notes, nh÷ng tµi liÖu cã liªn quan UNID, lµ mét nhËn d¹ng ®óng. UNID ®­îc dïng ®Ó ®Þnh danh vµ truy xuÊt Notes, Kh«ng cã tªn chuæi ký tù liªn quan víi mét nót cho ng­êi sö dông t×m kiÕm notes trong mét c¬ së d÷ liÖu. Tuy nhiªn, Notes cung cÊp mét giao diÖn ®Þnh danh cho Web bëi URL mµ ®­îc ®Ýnh kÌm mét UNID, theo víi tªn cña server vµ c¬ së d÷ liÖu n¬i mµ ®Þnh danh notes ®­îc l­u tr÷. 4.3.4/ §ång bé hãa Khi nãi ®Õn ®ång bé hãa, c¶ Web vµ Notes chØ cung cÊp hç trî tèi thiÓu. Trong c¶ hai hÖ thèng, ®ång bé hãa bÞ h¹n chÕ ë c¬ chÕ côc bé ®Ó ng¨n l¹i; kh«ng cã sù hç trî ®Ó ng¨n l¹i nhiÒu lo¹i tµi liÖu ph©n t¸n däc theo nhiÒu server. 4.3.5/ Cache vµ nh©n b¶n Caching lu«n lu«n ®ãng vai trß næi bËt trong Web, më réng co gi·n. Caching th­êng cã hiÖu qu¶ bëi v× nhiÒu tµi liÖu trong Web hÇu nh­ Ýt thay ®æi. NhiÒu giao thøc nhÊt qu¸n cache ®­îc ®Ò nghÞ vµ thùc hiÖn trong Web. Trong khi ®ã, tµi liÖu cã thÓ bÞ thay ®æi, nh­ng sù thay ®æi ®ã vÉn kh«ng ®Ó ý thÊy nh÷ng b¶n sao ®· cached. Trong Notes, Client-side caching th­êng kÐm hiÖu qu¶, v× nh÷ng tµi liÖu ®­îc chia sÎ vµ th­êng xuyªn ®­îc thay ®æi. Nh©n b¶n trong Web ®· ®­îc hç trî trong d¹ng ph¶n chiÕu toµn bé sites. Víi sù ra ®êi cña Content Delivery Networks (CDNs), nh©n b¶n ®éng dÇn dÇn phæ biÕn. Nh©n b¶n ®ãng vai trß quan träng trong Notes vµ ®­îc hç trî bëi thuËt to¸n di truyÒn. TiÕp cËn nµy ®· dÉn ®Õn nh÷ng xung ®ét write-write. Notes lµm nhiÒu cè g¾ng ®Ó gi¶i quyÕt xung ®ét mét c¸ch tù ®éng, nh­ng kh«ng thÓ ®iÒu khiÓn tÊt c¶ tÝnh huèng. Khi sù can thiÖp b»ng tay lµ cÇn thiÕt, Notes quyÕt ®Þnh mét tµi liÖu “th¾ng”, gi¸ng cÊp nh÷ng tµi liÖu kh¸c thµnh “thua” nh­ng gi÷ chóng nh­ vËy ®Ó ng­êi sö dông cã thÓ quyÕt ®Þnh gi¶i quyÕt xung ®ét. 4.3.6/ TÝnh chÞu lçi Web vµ Notes øng dông kü thuËt t­¬ng tù ®Ó ®¹t ®­îc tÝnh chÞu lçi. Trong Web, sù tin cËy cña truyÒn th«ng lµ hoµn toµn dùa trªn TCP vµ sö dông nhiÒu côm Web server ®Ó më réng kh¶ n¨ng vµ c¶i tiÕn hiÖu suÊt cña Web server ®¬n. NhiÒu biÖn ph¸p ®· ®­îc ®­a ra vµ ®­îc thùc hiÖn, hÇu hÕt nhê vµo mét server front-end ®Æc biÖt ®Ó s¾p xÕp nh÷ng yªu cÇu vµo theo kÝp cho nh÷ng server chÝnh. Trong Notes, nh÷ng ph­¬ng tiÖn ®Æc biÖt ®­îc cung cÊp ®Ó hç trî côm Domino server trong ®ã c¬ së d÷ liÖu ®­îc nh©n b¶n sö dông mét giao thøc nhÊt qu¸n m¹nh cã liªn quan. Trong giao thøc nµy, th«ng th­êng nh÷ng cËp nhËt ®­îc truyÒn b¸ mçi gi©y mét lÇn. Trong c¶ hai hÖ thèng, c¬ chÕ phôc håi ®­îc giíi h¹n cho nh÷ng server ®¬n háng vµ kh«ng cã ®iÒu chØnh mét c¸ch cô thÓ cho nh÷ng hÖ thèng ph©n t¸n. 4.3.7/ An toµn Trong Web, an toµn nãi chung ®­îc thiÕt lËp bëi TLS, c¸i mµ cho phÐp thiÕt lËp mét kªnh ch¾c ch¾n gi÷a mét client vµ mét server, sau khi ®iÒu khiÓn truy xuÊt cã thÓ x¶y ra. Sù cÊp phÐp nãi chung phô thuéc server. Notes sö dông nh÷ng giÊy chøng nhËn nh­ lµ c¬ së ®Ó cÊp phÐp, nh­ng chó ý riªng biÖt ®Ó x¸c nhËn tÝnh hîp lÖ cña nh÷ng giÊy chøng nhËn. Nã sö dông m« h×nh quyÒn cña nã ®Ó quyÕt ®Þnh liÖu khãa chung chøa trong mét chøng nhËn cã thÓ tin cËy hay kh«ng. Nãi chung, quyÒn ®­îc thiÕt lËp bëi sù ph©n cÊp l­îc ®å ®Þnh danh mµ ®­îc cÊu h×nh trong suèt cµi ®Æt server. B»ng c¸ch sö dông nh÷ng chøng nhËn tr¸i ng­îc, hai hÖ thèng Notes kh¸c nhau cã thÓ biÓu diÔn ñy th¸c lÉn nhau, cho phÐp client sö dông server cña hÖ thèng kh¸c. §iÒu khiÓn truy xuÊt trong Notes ®­îc biÓu diÔn bëi nh÷ng notes ®Æc biÖt chøa ACLs. Cã nhiÒu quyÒn truy cËp kh¸c nhau thªm vµo ®ã c¸c møc truy xuÊt kh¸c nhau, më ra nhiÒu c¬ héi cho tïy biÕn cao ®iÒu khiÓn truy cËp. PhÇn III. KÕt luËn Mét hÖ ph©n t¸n ®­îc x©y dùng nh»m vµo bèn môc tiªu c¬ b¶n ®ã lµ chia sÎ tµi nguyªn, trong suèt ®èi víi ng­êi sö dông, cã kh¶ n¨ng thªm bít c¸c dÞch vô mµ kh«ng ¶nh h­ëng ®Õn c¸c dÞch vô ®· cã, dÔ dµng thay ®æi theo sù thay ®æi quy m« cña hÖ thèng. §Ó x©y dùng ®­îc hÖ ph©n t¸n ®¶m b¶o ®­îc c¸c môc tiªu trªn lµ mét viÖc hÕt søc khã kh¨n vµ phøc t¹p. Nã ®ßi hái trong qu¸ tr×nh thiÕt kÕ vµ x©y dùng, cÇn ph¶i quan t©m gi¶i quyÕt nhiÒu vÊn ®Ò quan träng. §Æc biÖt, ®ã lµ mét sè vÊn ®Ò liªn quan ®Õn truyÒn th«ng, tiÕn tr×nh, ®Þnh danh, ®ång bé hãa, nh©n b¶n, chÞu lçi vµ an toµn. Ch¼ng h¹n lµ vÊn ®Ò chuÈn giao thøc, vÊn ®Ò di tró m· vµ ®a luång truyÒn th«ng, vÊn ®Ò vÒ tæ chøc kh«ng gian tªn, vÊn ®Ò ng¨n chÆn xung ®ét gi÷a c¸c tiÕn tr×nh, vÊn ®Ò nhÊt qu¸n cËp nhËt khi nh©n b¶n, kü thuËt phôc hçi lçi, vÊn ®Ò qu¶n lý giÊy phÐp truy xuÊt vµ quyÒn truy xuÊt tµi nguyªn chia sÎ... TruyÒn th«ng liªn tiÕn tr×nh lµ trung t©m cña hÖ ph©n t¸n. Trong ®ã giao thøc truyÒn th«ng gi¶i quyÕt vÊn ®Ò c¬ b¶n lµ nh÷ng m¸y kh¸c nhau cã thÓ giao tiÕp ®­îc víi nhau. TiÕn tr×nh ®ãng vai trß chñ yÕu cña hÖ ph©n t¸n, v× chóng h×nh thµnh mét c¬ së cho viÖc truyÒn th«ng gi÷a c¸c m¸y kh¸c nhau. Víi sù hç trî cña kü thuËt ®a luång vµ di tró m· ®· n©ng cao hiÖu suÊt cña hÖ ph©n t¸n. §Þnh danh ®­îc dïng ®Ó chia sÎ tµi nguyªn, ®Ó nhËn diÖn duy nhÊt c¸c thùc thÓ, ®Ó t×m ®Õn nh÷ng vÞ trÝ... §ång bé hãa nh»m gióp qu¶n lý ®­îc c¸c tiÕn tr×nh sao cho chóng x¶y ra theo mét thø tù ®óng vµ h¹n chÕ x¶y ra xung ®ét gi÷a c¸c tiÕn tr×nh. Nh©n b¶n nh»m n©ng cao ®é tin cËy vµ hiÖu suÊt cña hÖ ph©n t¸n. Kh¶ n¨ng chÞu lçi nh»m gióp hÖ thèng cã thÓ tiÕp tôc ho¹t ®éng ngay c¶ khi nã cã mét sè thµnh phÇn bÞ háng, ®ång thêi hÖ thèng cã kh¶ n¨ng tù phôc håi l¹i nh÷ng lçi ®ã. An toµn gi¶i quyÕt vÊn ®Ò nh÷ng truy xuÊt vµ chia sÎ tµi nguyªn khi kh«ng ®­îc phÐp. ViÖc gi¶i quyÕt c¸c vÊn ®Ò nµy chÝnh lµ gi¶i quyÕt nh÷ng môc tiªu c¬ b¶n cña hÖ ph©n t¸n. World Wide Web vµ Lotus Notes lµ hai hÖ ph©n t¸n h­íng t­ liÖu phæ biÕn mµ dùa trªn m« h×nh tµi liÖu. Trong m« h×nh nµy mét tham chiÕu mét tµi liÖu kh¸c cã thÓ ®­îc khëi ®éng b»ng c¸ch kÐo nh÷ng tµi liÖu ®­îc tham chiÕu vµ hiÓn thÞ nã trªn user. Nh÷ng tµi liÖu nãi chung ®­îc duy tr× t¹i nh÷ng server cho nh÷ng client truy xuÊt. B»ng c¸ch tham chiÕu gi÷a c¸c tµi liÖu th«ng qua server ®· lµm cho viÖc ph©n t¸n chóng trªn toµn thÕ giíi trë thµnh ®¬n gi¶n. Mét vÊn ®Ò quan träng trong nh÷ng hÖ thèng ph©n t¸n h­íng t­ liÖu mµ gãp phÇn vµo tÝnh co gi·n cña chóng, lµ m« h×nh truy xuÊt nh÷ng tµi liÖu. Mét tµi liÖu th­êng duy tr× bëi chØ mét ng­êi dïng ®¬n hoÆc mét nhãm nhá nh÷ng ng­êi dïng. Ng­îc l¹i mét tµi liÖu cã thÓ ®äc bëi nhiÒu ng­êi sö dông. M« h×nh truy xuÊt nµy lµm nã dÔ dµng h¬n ®Ó hç trî caching vµ nh©n b¶n. Lêi kÕt: §Ó hoµn thµnh ®­îc ®Ò tµi nµy, ngoµi sù nç lùc vµ cè g¾ng cña b¶n th©n, t¸c gi¶ ®· nhËn ®­îc sù gióp ®ì qóy b¸u cña Quý ThÇy, GS.TS.NguyÔn Thóc H¶i. Lµ mét häc viªn chuyªn ngµnh Tin häc vµ dï rÊt t©m ®¾c víi ®Ò tµi ®ang nghiªn cøu nh­ng víi thêi gian cã h¹n vµ khèi l­îng kiÕn thøc cña b¶n th©n cßn Ýt ái nªn ch¾c ch¾n tiÓu luËn kh«ng tr¸nh khái nh÷ng h¹n chÕ trong viÖc tiÕp cËn, nghiªn cøu vµ tr×nh bµy. T¸c gi¶ xin kÝnh träng c¶m ¬n sù gióp ®ì quý b¸u cña Quý ThÇy vµ mong ®­îc ®ãn nhËn tõ Quý ThÇy sù gãp ý ®Ó gióp b¶n th©n t¸c gi¶ cã ®­îc hiÓu biÕt ®óng h¬n ®èi víi vÊn ®Ò ®ang nghiªn cøu ®ång thêi mong ®­îc sù l­îng thø cho nh÷ng s¬ suÊt trong tiÓu luËn nµy. Tµi liÖu tham kh¶o 1-NguyÔn Thóc H¶i-M¹ng m¸y tÝnh vµ c¸c hÖ thèng më-NXBGD-1997 2-Andrew S.Tanenbaum and Maarten van Steen-Distributed Systems Principles and Paradigms-2002 Môc lôc Néi dung Trang Më ®Çu ......................................................................................................................................................... 1 Néi dung ........................................................................................................................................ ............ 2 KÕt luËn ................................................................................................................................................... 13 Tµi liÖu tham kh¶o ............................................................................................................................. 14

Các file đính kèm theo tài liệu này:

  • docDownload- Tiểu luận cao học- Hệ phân tán.doc