1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn học phần phát triển phần mềm phân tán tên đề tài chủ đề i – nghiên cứu về name service

49 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chủ Đề I – Nghiên Cứu Về Name Service
Tác giả Bùi Văn Hùng, Vũ Hoài Nam, Nghiêm Ngọc Nga
Trường học Khoa Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 49
Dung lượng 5,41 MB

Cấu trúc

  • 13.1 Giới thiệu (6)
    • 13.1.1 Tên, Địa Chỉ Và Các Thuộc Tính Khác (7)
  • 13.2 Dịch Vụ Tên Và Hệ Thống Tên Miền (12)
    • 13.2.1 Không Gian Tên (13)
    • 13.2.2 Phân Giải Tên (19)
    • 13.2.3 Hệ Thống Tên Miền (23)
  • 13.3 Dịch Vụ Thư Mục (35)
  • 13.4 Nghiên Cứu Điển Hình: Dịch Vụ Tên Toàn Cầu (36)
  • 13.5 Nghiên Cứu Điển Hình: Dịch Vụ Thư Mục X.500 (41)
  • 13.6 Tóm Tắt (48)
  • 13.7 Tài Liệu Tham Khảo (49)

Nội dung

Các vấn đề thiết kế cơ bản cho các dịch vụ tên, chẳng hạn như cấu trúc và quản lý không gian tên được dịch vụ công nhận và các hoạt động mà dịch vụ tên hỗ trợ, được phác thảo và minh họa

Giới thiệu

Tên, Địa Chỉ Và Các Thuộc Tính Khác

Bất kỳ quá trình nào yêu cầu quyền truy cập vào một tài nguyên cụ thể phải có tên hoặc số nhận dạng cho tài nguyên đó Ví dụ về tên con người có thể đọc được là các tên tệp như /etc/passwd, URL như http://www.cdk5.net/ và tên miền Internet như www.cdk5.net Thuật ngữ định danh đôi khi được sử dụng để chỉ các tên chỉ được giải thích bởi các chương trình Tham chiếu đối tượng từ xa và xử lý tệp NFS là ví dụ về mã định danh Số nhận dạng được chọn cho hiệu quả mà chúng có thể được tra cứu và lưu trữ bằng phần mềm Needham [1993] phân biệt giữa một cái tên thuần túy và các tên khác Tên thuần túy chỉ đơn giản là các mẫu bit không được giải thích Tên không thuần túy chứa thông tin về đối tượng mà chúng đặt tên; Đặc biệt, chúng có thể chứa thông tin về vị trí của đối tượng Tên thuần túy luôn phải được tra cứu trước khi chúng có thể được sử dụng Ở thái cực khác từ một tên thuần túy là địa chỉ của một đối tượng: một giá trị xác định vị trí của đối tượng chứ không phải chính đối tượng. Địa chỉ có hiệu quả để truy cập các đối tượng, nhưng các đối tượng đôi khi có thể được di chuyển, vì vậy địa chỉ không đủ làm phương tiện nhận dạng Ví dụ: địa chỉ email của người dùng thường phải thay đổi khi họ di chuyển giữa các tổ chức hoặc nhà cung cấp dịch vụ Internet; Bản thân họ không được đảm bảo để đề cập đến một cá nhân cụ thể theo thời gian Chúng tôi nói rằng một tên được giải quyết khi nó được dịch thành dữ liệu về tài nguyên hoặc đối tượng được đặt tên, thường là để gọi một hành động trên nó Sự liên kết giữa một tên và một đối tượng được gọi là ràng buộc Nói chung, tên bị ràng buộc với các thuộc tính của các đối tượng được đặt tên, thay vì thực hiện chính các đối tượng. Một thuộc tính là

Hình 13.1: Tên miền đặt tên đã soạn được sử dụng để truy cập tài nguyên từ URL Địa chỉ

ID tài nguyên (số IP, số cổng, tên đường dẫn) Địa chỉ mạng 2:60:8C:2:B0:5 m ộ t

Máy chủ web 55.55.55.55 8888 WebExamples/earth.html

Socket tệp giá trị của một thuộc tính được liên kết với một đối tượng Một thuộc tính chính của một thực thể thường có liên quan trong một hệ thống phân tán là địa chỉ của nó Chẳng hạn:

• DNS ánh xạ tên miền đến các thuộc tính của máy chủ: địa chỉ IP của nó, loại mục nhập (ví dụ: tham chiếu đến máy chủ thư hoặc máy chủ khác) và, ví dụ, khoảng thời gian mục nhập của máy chủ sẽ vẫn hợp lệ.

• Dịch vụ thư mục X500 có thể được sử dụng để ánh xạ tên của một người vào các thuộc tính bao gồm địa chỉ email và số điện thoại của họ.

• Dịch vụ đặt tên và dịch vụ thương mại CORBA đã được trình bày trong Chương 8 Dịch vụ Đặt tên ánh xạ tên của một đối tượng từ xa lên tham chiếu đối tượng từ xa của nó, trong khi Dịch vụThương mại ánh xạ tên của một đối tượng từ xa lên tham chiếu đối tượng từ xa của nó, cùng với một số thuộc tính tùy ý mô tả đối tượng theo thuật ngữ mà người dùng có thể hiểu được Lưu ý rằng một 'địa chỉ' có thể được coi là một tên khác phải được tra cứu hoặc nó có thể chứa một tên như vậy Địa chỉ IP phải được tra cứu để có được địa chỉ mạng như địa chỉEthernet Tương tự, các trình duyệt web và ứng dụng email sử dụng DNS để diễn giải tên miền trong URL và địa chỉ email.Hình 13.1 cho thấy phần tên miền của URL được giải quyết đầu tiên thông qua DNS thành địa chỉ IP và sau đó, ở bước nhảy cuối cùng của định tuyến Internet, thông qua ARP đến địa chỉ Ethernet cho máy chủ web Phần cuối cùng của URL được giải quyết bởi hệ thống tệp trên máy chủ web để định vị tệp có liên quan.

Tên và dịch vụ: Nhiều tên được sử dụng trong một hệ thống phân tán dành riêng cho một số dịch vụ cụ thể Ví dụ: người dùng của trang web mạng xã hội twitter.com, có tên như @magmapoetry mà không có dịch vụ nào khác giải quyết Ngoài ra, khách hàng có thể sử dụng tên dịch vụ cụ thể khi yêu cầu dịch vụ thực hiện thao tác trên một đối tượng hoặc tài nguyên được đặt tên mà nó quản lý Ví dụ: tên tệp được cung cấp cho dịch vụ tệp khi yêu cầu xóa tệp và mã định danh quy trình được trình bày cho dịch vụ quản lý quy trình khi yêu cầu gửi tín hiệu

Các tên này chỉ được sử dụng trong ngữ cảnh của dịch vụ quản lý các đối tượng được đặt tên, ngoại trừ khi máy khách giao tiếp về các đối tượng được chia sẻ.

Tên đôi khi cũng cần thiết để chỉ các thực thể trong một hệ thống phân tán nằm ngoài phạm vi của bất kỳ dịch vụ đơn lẻ nào Các ví dụ chính của các thực thể này là người dùng (với tên riêng và địa chỉ email), máy tính (với tên máy chủ như www.cdk5.net ) và chính các dịch vụ (như dịch vụ tệp hoặc dịch vụ máy in) Trong phần mềm trung gian dựa trên đối tượng, tên đề cập đến các đối tượng từ xa cung cấp dịch vụ hoặc ứng dụng Lưu ý rằng nhiều tên trong số này phải có thể đọc được và có ý nghĩa đối với con người, vì người dùng và quản trị viên hệ thống cần tham khảo các thành phần chính và cấu hình của các hệ thống phân tán, lập trình viên cần tham khảo các dịch vụ trong chương trình và người dùng cần giao tiếp với nhau thông qua hệ thống phân tán và thảo luận về những dịch vụ nào có sẵn trong các phần khác nhau của nó Với kết nối được cung cấp bởi Internet, các yêu cầu đặt tên này có khả năng phạm vi trên toàn thế giới.

Mã định danh tài nguyên thống nhất: Số nhận dạng tài nguyên thống nhất (URI) [Berners-Lee et al 2005] xuất phát từ nhu cầu xác định tài nguyên trên Web và các tài nguyên Internet khác như hộp thư điện tử Một mục tiêu quan trọng là xác định các tài nguyên một cách mạch lạc, để tất cả chúng có thể được xử lý bởi các phần mềm phổ biến như trình duyệt URI 'thống nhất' ở chỗ cú pháp của chúng kết hợp vô thời hạn nhiều loại định danh tài nguyên riêng lẻ (nghĩa là lược đồ URI) và có các quy trình quản lý không gian tên toàn cầu của lược đồ Ưu điểm của tính đồng nhất là nó giảm bớt quá trình giới thiệu các loại định danh mới, cũng như sử dụng các loại định danh hiện có trong bối cảnh mới, mà không làm gián đoạn việc sử dụng hiện có

Ví dụ: nếu ai đó phát minh ra một loại URI 'widget' mới, thì URI bắt đầu widget: sẽ phải tuân theo cú pháp URI toàn cục, cũng như bất kỳ quy tắc cục bộ nào được xác định cho lược đồ nhận dạng widget Các URI này sẽ xác định tài nguyên widget theo cách được xác định rõ Nhưng ngay cả phần mềm hiện có không truy cập tài nguyên widget vẫn có thể xử lý URI widget - ví dụ: bằng cách quản lý các thư mục chứa chúng Chuyển sang một ví dụ về việc kết hợp các số nhận dạng hiện có, điều đó đã được thực hiện cho các số điện thoại bằng cách tiền tố chúng với tên lược đồ và chuẩn hóa đạitel diện của chúng, như trong điện thoại: + 1-816-555-1212 Các URI điện thoại này được thiết kế để sử dụng như liên kết web khiến các cuộc gọi điện thoại được thực hiện khi được gọi.

Bộ định vị tài nguyên thống nhất: Một số URI chứa thông tin có thể được sử dụng để định vị và truy cập tài nguyên; một số khác là tên tài nguyên thuần túy Thuật ngữ quen thuộc Bộ định vị tài nguyên thống nhất (URL) thường được sử dụng cho các URI cung cấp thông tin vị trí và chỉ định phương pháp truy cập tài nguyên, bao gồm các URL 'http' được giới thiệu trong Phần 1.6 Ví dụ: http://www.cdk5.net/ xác định một trang web tại đường dẫn đã cho ('/') trên www.cdk5.net máy chủ lưu trữ và chỉ định rằng giao thức HTTP được sử dụng để truy cập nó Một ví dụ khác là URL 'mailto', chẳng hạn như mailto:fred@flintstone.org, xác định hộp thư tại địa chỉ đã cho

URL là số nhận dạng hiệu quả để truy cập tài nguyên Nhưng họ phải chịu bất lợi là nếu một tài nguyên bị xóa hoặc nếu nó di chuyển, giả sử từ trang web này sang trang web khác, có thể có các liên kết treo lủng lẳng đến tài nguyên chứa URL cũ Nếu người dùng nhấp vào một liên kết lủng lẳng đến tài nguyên web, thì máy chủ web sẽ phản hồi rằng tài nguyên không được tìm thấy hoặc - tệ hơn, có lẽ - cung cấp một tài nguyên khác hiện chiếm cùng một vị trí.

Tên tài nguyên thống nhất: Tên tài nguyên thống nhất

(URN) là URI được sử dụng làm tên tài nguyên thuần túy thay vì bộ định vị Ví dụ: URI: mid:0E4FC272-5C02-11D9-B115-

000A95B55BC8@hpl.hp.com là một URN xác định email có chứa nó trong trường 'Message- Id' của nó URI phân biệt thư đó với bất kỳ thư email nào khác Nhưng nó không cung cấp địa chỉ của tin nhắn trong bất kỳ cửa hàng nào, vì vậy cần phải có thao tác tra cứu để tìm thấy nó

Một cây con đặc biệt của URI bắt đầu bằng urn: đã được dành riêng cho URN - mặc dù, như ví dụ giữa: cho thấy, không phải tất cả các URN đều là urn: URI Các URI urnprefix sau này đều có dạng urn:nameSpace:nameSpace- specificName Ví dụ: urn:ISBN:0-201-62433-8 xác định sách mang tên 0-201-62433-8 trong lược đồ đặt tên ISBN tiêu chuẩn Một ví dụ khác, tên (được phát minh) urn:doi:10.555/music-pop-1234 đề cập đến ấn phẩm được gọi là music-pop-1234 trong sơ đồ đặt tên của nhà xuất bản được gọi là 10.555 trong lược đồ Mã định danh đối tượng kỹ thuật số (DOI) [www.doi.org].

Có các dịch vụ phân giải (dịch vụ tên, theo thuật ngữ của chương này) như Hệ thống xử lý [www.handle.net] để phân giải các URN như DOI thành các thuộc tính tài nguyên, nhưng không có dịch vụ nào được sử dụng rộng rãi Thật vậy, vẫn tiếp tục có cuộc tranh luận trong cộng đồng nghiên cứu Web và Internet về mức độ cần thiết của một loại URN riêng biệt. Một trường phái tư tưởng là 'URL thú vị không thay đổi' - nói cách khác, mọi người nên gán URL cho các tài nguyên với sự đảm bảo về tính liên tục tham chiếu của chúng Chống lại quan điểm đó là quan sát rằng không phải ai cũng có thể đưa ra những đảm bảo như vậy, điều này đòi hỏi phải duy trì quyền kiểm soát tên miền và quản lý tài nguyên một cách cẩn thận.

Dịch Vụ Tên Và Hệ Thống Tên Miền

Không Gian Tên

Không gian tên là tập hợp tất cả các tên hợp lệ được công nhận bởi một dịch vụ cụ thể Dịch vụ sẽ cố gắng tra cứu một tên hợp lệ, mặc dù tên đó có thể chứng minh không tương ứng với bất kỳ đối tượng nào - tức là không bị ràng buộc. Không gian tên yêu cầu định nghĩa cú pháp để tách tên hợp lệ khỏi tên không hợp lệ Ví dụ: ' ' không được chấp nhận là tên DNS của máy tính, trong khi www.cdk99.net là hợp lệ(mặc dù nó không bị ràng buộc).

Tên có thể có cấu trúc bên trong đại diện cho vị trí của chúng trong không gian tên phân cấp như tên đường dẫn trong hệ thống tệp hoặc trong hệ thống phân cấp tổ chức như tên miền Internet; hoặc chúng có thể được chọn từ một bộ định danh số hoặc tượng trưng phẳng Một lợi thế quan trọng của hệ thống phân cấp là nó làm cho không gian tên lớn dễ quản lý hơn Mỗi phần của tên phân cấp được giải quyết liên quan đến một ngữ cảnh riêng biệt có kích thước tương đối nhỏ và cùng một tên có thể được sử dụng với ý nghĩa khác nhau trong các ngữ cảnh khác nhau, để phù hợp với các tình huống sử dụng khác nhau Trong trường hợp hệ thống tệp, mỗi thư mục đại diện cho một ngữ cảnh Do đó, /etc/passwd là một tên phân cấp với hai thành phần Phần đầu tiên, 'etc', được giải quyết liên quan đến ngữ cảnh '/', hoặc root, và phần thứ hai, 'passwd', liên quan đến ngữ cảnh '/etc'. Tên /oldetc/passwd có thể có ý nghĩa khác vì thành phần thứ hai của nó được giải quyết trong một ngữ cảnh khác Tương tự, cùng một tên /etc/passwd có thể phân giải các tệp khác nhau trong ngữ cảnh của hai máy tính khác nhau

Không gian tên phân cấp có khả năng vô hạn, vì vậy chúng cho phép một hệ thống phát triển vô thời hạn Ngược lại, không gian tên phẳng thường là hữu hạn; Kích thước của chúng được xác định bằng cách cố định độ dài tối đa cho phép cho tên Một lợi thế tiềm năng khác của không gian tên phân cấp là các ngữ cảnh khác nhau có thể được quản lý bởi những người hoặc tổ chức khác nhau.

Cấu trúc của URL 'http' đã được giới thiệu trong Chương 1. Không gian tên URL cũng bao gồm các tên tương đối như /hình ảnh/hình1.jpg Khi một trình duyệt hoặc máy khách web khác gặp phải một tên tương đối như vậy, nó sử dụng tài nguyên trong đó tên tương đối được nhúng để xác định tên máy chủ lưu trữ và thư mục mà tên đường dẫn này đề cập đến

Tên DNS là chuỗi được gọi là tên miền Một số ví dụ là www.cdk5.net (máy tính), , net com và ac.uk (ba ví dụ sau là tên miền).

Không gian tên DNS có cấu trúc phân cấp: tên miền bao gồm một hoặc nhiều chuỗi được gọi là thành phần tên hoặc nhãn,được phân tách bằng dấu phân cách '.' Không có dấu phân cách ở đầu hoặc cuối tên miền, mặc dù thư mục gốc của không gian tên DNS đôi khi được gọi là '.' cho mục đích quản trị Các thành phần tên là các chuỗi không thể in rỗng không chứa '.' Nói chung, tiền tố của tên là một phần ban đầu của tên chỉ chứa 0 hoặc nhiều thành phần toàn bộ Ví dụ: trong DNS www và www.cdk5 đều là tiền tố của www.cdk5.net. Tên DNS không phân biệt chữ hoa chữ thường, vì vậy www.cdk5.net và WWW.CDK5.NET có cùng ý nghĩa.

Máy chủ DNS không nhận ra tên tương đối: tất cả các tên được gọi đến thư mục gốc toàn cục Tuy nhiên, trong triển khai thực tế, phần mềm máy khách giữ một danh sách các tên miền được gắn tự động vào bất kỳ tên thành phần đơn nào trước khi giải quyết Ví dụ: tên www được trình bày trong miền cdk5.net có thể đề cập đến www.cdk5.net ; Phần mềm máy khách sẽ nối thêm cdk5.net miền mặc định và cố gắng giải quyết tên này Nếu điều này không thành công, thì các tên miền mặc định khác có thể được thêm vào; Cuối cùng, tên (tuyệt đối) www sẽ được trình bày cho thư mục gốc để giải quyết (một thao tác tất nhiên sẽ thất bại trong trường hợp này) Tuy nhiên, các tên có nhiều hơn một thành phần thường được trình bày nguyên vẹn cho DNS, dưới dạng tên tuyệt đối.

Bí danh: Bí danh là tên được xác định để biểu thị thông tin giống như tên khác, tương tự như liên kết tượng trưng giữa tên đường dẫn tệp Bí danh cho phép các tên thuận tiện hơn được thay thế cho các tên tương đối phức tạp và cho phép các tên thay thế được sử dụng bởi những người khác nhau cho cùng một thực thể Một ví dụ là việc sử dụng phổ biến các công cụ rút ngắn URL, thường được sử dụng trong các bài đăng trên Twitter và các tình huống khác trong đó không gian ở mức cao

Ví dụ: sử dụng chuyển hướng web, http://bit.ly/ctqjvH đề cập đến http://cdk5.net/additional/rmi/programCode/ShapeListClient.j ava Một ví dụ khác, DNS cho phép các bí danh trong đó một tên miền được xác định là viết tắt của một tên miền khác Bí danh thường được sử dụng để chỉ định tên của các máy chạy máy chủ web hoặc máy chủ FTP Ví dụ: tên www.cdk5.net là bí danh của cdk5.net Điều này có lợi thế là khách hàng có thể sử dụng một trong hai tên cho máy chủ web và nếu máy chủ web được di chuyển sang máy tính khác, chỉ cần cập nhật mục nhập cho cdk5.net trong cơ sở dữ liệu DNS Đặt tên miền: Tên miền đặt tên là một không gian tên tồn tại một cơ quan quản trị tổng thể duy nhất chịu trách nhiệm gán tên trong đó Cơ quan này kiểm soát tổng thể tên nào có thể bị ràng buộc trong miền, nhưng có thể tự do ủy thác nhiệm vụ này

Tên miền trong DNS là tập hợp các tên miền; về mặt cú pháp, tên miền là hậu tố chung của các tên miền trong đó, nhưng nếu không thì không thể phân biệt được, ví dụ, tên máy tính.

Ví dụ: là một tên miền chứa net cdk5.net Lưu ý rằng thuật ngữ 'tên miền' có khả năng gây nhầm lẫn, vì chỉ một số tên miền xác định tên miền (những tên miền khác xác định máy tính).

Việc quản lý tên miền có thể được phân cấp thành tên miền phụ Tên miền dcs.qmul.ac.uk - Khoa Khoa học Máy tính tại Queen Mary, Đại học London ở Anh - có thể chứa bất kỳ tên nào mà khoa muốn Nhưng bản thân tên miền dcs.qmul.ac.uk phải được thỏa thuận với chính quyền trường đại học, những người quản lý tên miền qmul.ac.uk Tương tự, qmul.ac.uk phải được thỏa thuận với cơ quan đăng ký ac.uk, v.v.

Trách nhiệm đối với tên miền đặt tên thường đi đôi với trách nhiệm quản lý và cập nhật phần tương ứng của cơ sở dữ liệu được lưu trữ trong máy chủ tên có thẩm quyền và được sử dụng bởi dịch vụ định danh Dữ liệu đặt tên thuộc các miền đặt tên khác nhau nói chung được lưu trữ bởi các máy chủ tên riêng biệt do các cơ quan tương ứng quản lý.

Kết hợp và tùy chỉnh không gian tên: DNS cung cấp một không gian tên toàn cục và đồng nhất, trong đó một tên nhất định đề cập đến cùng một thực thể, bất kể quy trình nào trên máy tính nào tra cứu tên Ngược lại, một số dịch vụ tên cho phép các không gian tên riêng biệt - đôi khi là không gian tên không đồng nhất - được nhúng vào chúng; Và một số dịch vụ tên cho phép không gian tên được tùy chỉnh để phù hợp với nhu cầu của từng nhóm, người dùng hoặc thậm chí các quy trình.

Hợp nhất: Thực tiễn gắn các hệ thống tệp trong UNIX và

NFS (xem Phần 12.3) cung cấp một ví dụ trong đó một phần của không gian tên này được nhúng thuận tiện vào một không gian tên khác Nhưng hãy xem xét cách hợp nhất toàn bộ hệ thống tệp UNIX của hai (hoặc nhiều) máy tính được gọi là và đỏ xanh Mỗi máy tính có gốc riêng, với các tên tệp chồng chéo Ví dụ: /etc/passwd đề cập đến một tệp có màu đỏ và một tệp khác có màu xanh lam Cách rõ ràng để hợp nhất các hệ thống tệp là thay thế gốc của mỗi máy tính bằng 'siêu root' và gắn kết hệ thống tệp của mỗi máy tính trong siêu root này, giả sử là / đỏ và / xanh Người dùng và chương trình sau đó có thể tham khảo / red / etc / passwd và / blue / etc / passwd Nhưng quy ước đặt tên mới tự nó sẽ khiến các chương trình trên hai máy tính vẫn sử dụng tên cũ /etc/passwd gặp trục trặc Một giải pháp là để lại nội dung gốc cũ trên mỗi máy tính và nhúng các hệ thống tệp được gắn / và đỏ / xanh của cả hai máy tính (giả sử rằng điều này không tạo ra xung đột tên với nội dung gốc cũ) Đạo đức là chúng ta luôn có thể hợp nhất các không gian tên bằng cách tạo ra một ngữ cảnh gốc cấp cao hơn, nhưng điều này có thể gây ra vấn đề về khả năng tương thích ngược. Khắc phục sự cố tương thích, lần lượt, để lại cho chúng tôi không gian tên lai và sự bất tiện khi phải dịch tên cũ giữa những người dùng của hai máy tính.

Phân Giải Tên

Đối với trường hợp phổ biến của không gian tên phân cấp, phân giải tên là một quá trình lặp đi lặp lại hoặc đệ quy, theo đó một tên được trình bày nhiều lần cho ngữ cảnh đặt tên để tra cứu các thuộc tính mà nó đề cập đến Ngữ cảnh đặt tên hoặc ánh xạ trực tiếp một tên nhất định vào một tập hợp các thuộc tính nguyên thủy (chẳng hạn như của người dùng) hoặc ánh xạ nó vào ngữ cảnh đặt tên tiếp theo và tên dẫn xuất để trình bày cho ngữ cảnh đó Để giải quyết một cái tên, trước tiên nó được trình bày cho một số ngữ cảnh đặt tên ban đầu; Độ phân giải lặp lại miễn là các ngữ cảnh và tên dẫn xuất khác được xuất ra Chúng tôi đã minh họa điều này ở đầu Phần 13.2.1 với ví dụ về /etc/passwd, trong đó 'etc' được trình bày theo ngữ cảnh '/', và sau đó 'passwd' được trình bày cho ngữ cảnh '/etc'.

Một ví dụ khác về bản chất lặp đi lặp lại của độ phân giải là việc sử dụng bí danh Ví dụ: bất cứ khi nào máy chủ DNS được yêu cầu phân giải bí danh như www.dcs.qmul.ac.uk , trước tiên máy chủ sẽ phân giải bí danh thành một tên miền khác (trong trường hợp này là traffic.dcs.qmul.ac.uk), phải được giải quyết thêm để tạo địa chỉ IP

Nói chung, việc sử dụng bí danh làm cho các chu kỳ có thể có mặt trong không gian tên, trong trường hợp đó độ phân giải có thể không bao giờ chấm dứt Hai giải pháp khả thi là, từ bỏ quy trình giải quyết nếu nó vượt qua ngưỡng số lượng nghị quyết hoặc để quản trị viên phủ quyết bất kỳ bí danh nào sẽ giới thiệu chu kỳ.

Máy chủ định danh và điều hướng: Bất kỳ dịch vụ tên nào, chẳng hạn như DNS, lưu trữ cơ sở dữ liệu rất lớn và được sử dụng bởi một dân số lớn sẽ không lưu trữ tất cả thông tin đặt tên của nó trên một máy tính máy chủ duy nhất Một máy chủ như vậy sẽ là một nút cổ chai và một điểm thất bại quan trọng Bất kỳ dịch vụ tên nào được sử dụng nhiều nên sử dụng sao chép để đạt được tính sẵn sàng cao Chúng ta sẽ thấy rằng DNS chỉ định rằng mỗi tập hợp con của cơ sở dữ liệu của nó được sao chép trong ít nhất hai máy chủ độc lập với lỗi

Chúng tôi đã đề cập ở trên rằng dữ liệu thuộc về miền đặt tên thường được lưu trữ bởi một máy chủ định danh cục bộ được quản lý bởi cơ quan chịu trách nhiệm về tên miền đó Mặc dù, trong một số trường hợp, một máy chủ định danh có thể lưu trữ dữ liệu cho nhiều miền, nhưng nhìn chung đúng khi nói rằng dữ liệu được phân vùng thành các máy chủ theo miền của nó Chúng ta sẽ thấy rằng trong DNS, hầu hết các mục nhập đều dành cho máy tính cục bộ Nhưng cũng có các máy chủ định danh cho các tên miền cao hơn, chẳng hạn như yahoo.com và ac.uk, và cho thư mục gốc.

Việc phân vùng dữ liệu ngụ ý rằng máy chủ tên cục bộ không thể trả lời tất cả các câu hỏi mà không có sự trợ giúp của các máy chủ tên khác Ví dụ: máy chủ định danh trong miền dcs.qmul.ac.uk sẽ không thể cung cấp địa chỉ IP của máy tính trong miền cs.purdue.edu trừ khi nó được lưu trong bộ nhớ cache - chắc chắn không phải là lần đầu tiên nó được yêu cầu

Quá trình định vị dữ liệu đặt tên từ nhiều máy chủ tên để phân giải tên được gọi là điều hướng Phần mềm phân giải tên máy khách thực hiện điều hướng thay mặt cho khách hàng Nó giao tiếp với các máy chủ định danh khi cần thiết để phân giải tên Nó có thể được cung cấp dưới dạng mã thư viện và được liên kết với các máy khách, ví dụ như trong việc triển khai BIND cho DNS (xem Phần 13.2.3) hoặc trong Grapevine [Birrell et al 1982] Giải pháp thay thế, được sử dụng với X500, là cung cấp độ phân giải tên trong một quy trình riêng biệt được chia sẻ bởi tất cả các quy trình máy khách trên máy tính đó.

Một mô hình điều hướng mà DNS hỗ trợ được gọi là điều hướng lặp lại (xem Hình 13.2) Để giải quyết tên, máy khách trình bày tên cho máy chủ tên cục bộ, máy chủ này cố gắng giải quyết nó Nếu máy chủ tên cục bộ có tên, nó sẽ trả về kết quả ngay lập tức Nếu không, nó sẽ đề xuất một máy chủ khác có thể trợ giúp Việc giải quyết tiến hành tại máy chủ mới, với điều hướng tiếp theo khi cần thiết cho đến khi tên được định vị hoặc được phát hiện là không bị ràng buộc.

Vì DNS được thiết kế để chứa các mục nhập cho hàng triệu tên miền và được truy cập bởi số lượng lớn khách hàng, nên sẽ không khả thi khi có tất cả các truy vấn bắt đầu từ máy chủ gốc, ngay cả khi nó được sao chép nhiều Cơ sở dữ liệuDNS được phân vùng giữa các máy chủ theo cách cho phép nhiều truy vấn được thỏa mãn cục bộ và các truy vấn khác được thỏa mãn mà không cần phải giải quyết từng phần của

NS3 NS1 tên riêng biệt Sơ đồ phân giải tên trong DNS được mô tả chi tiết hơn trong Phần 13.2.3.

Hình 13.2: Điều hướng lặp lại

Một máy khách lặp đi lặp lại liên hệ với máy chủ tên NS1–NS3 để phân giải tên

NFS cũng sử dụng điều hướng lặp lại trong độ phân giải của tên tệp, trên cơ sở từng thành phần (xem Chương 12) Điều này là do dịch vụ tệp có thể gặp liên kết tượng trưng khi phân giải tên Một liên kết tượng trưng phải được diễn giải trong không gian tên hệ thống tệp của máy khách vì nó có thể trỏ đến một tệp trong thư mục được lưu trữ tại một máy chủ khác Máy khách phải xác định đây là máy chủ nào, bởi vì chỉ có máy khách biết các điểm gắn kết của nó.

Trong điều hướng đa hướng, một máy khách multicast tên cần giải quyết và loại đối tượng cần thiết cho nhóm máy chủ tên. Chỉ máy chủ chứa các thuộc tính được đặt tên mới phản hồi yêu cầu Tuy nhiên, thật không may, nếu tên được chứng minh là không bị ràng buộc, yêu cầu sẽ được chào đón bằng sự im lặng Cheriton và Mann [1989] mô tả một sơ đồ điều hướng dựa trên đa hướng trong đó một máy chủ riêng biệt được bao gồm trong nhóm để phản hồi khi tên yêu cầu không bị ràng buộc.

Một giải pháp thay thế khác cho mô hình điều hướng lặp lại là mô hình trong đó máy chủ tên điều phối độ phân giải của tên và chuyển kết quả trở lại tác nhân người dùng Ma [1992] phân biệt điều hướng điều khiển máy chủ không đệ quy và đệ quy (Hình 13.3) Trong điều hướng điều khiển máy chủ không đệ quy, bất kỳ máy chủ tên nào cũng có thể được chọn bởi máy khách Máy chủ này giao tiếp bằng multicast hoặc lặp đi lặp lại với các đồng nghiệp của nó theo phong cách

4 khách hàng khách hàng Đệ quy Điều khiển máy chủ

Không đệ quy Điều khiển máy chủ

NS3 được mô tả ở trên, như thể nó là một máy khách Trong điều hướng điều khiển máy chủ đệ quy, máy khách một lần nữa liên hệ với một máy chủ duy nhất Nếu máy chủ này không lưu trữ tên, máy chủ sẽ liên hệ với một đồng nghiệp lưu trữ tiền tố (lớn hơn) của tên, từ đó cố gắng giải quyết nó Quy trình này tiếp tục đệ quy cho đến khi tên được giải quyết. Nếu một dịch vụ tên trải rộng trên các miền quản trị riêng biệt, thì các máy khách thực thi trong một miền quản trị có thể bị cấm truy cập vào các máy chủ định danh thuộc về một miền khác như vậy Hơn nữa, ngay cả các máy chủ định danh cũng có thể bị cấm phát hiện ra việc đặt tên dữ liệu trên các máy chủ định danh trong một miền quản trị khác Sau đó, cả điều hướng do máy chủ điều khiển và không đệ quy đều không phù hợp và điều hướng do máy chủ điều khiển đệ quy phải được sử dụng Máy chủ định danh được ủy quyền yêu cầu dữ liệu dịch vụ tên từ các máy chủ tên được chỉ định do các cơ quan quản trị khác nhau quản lý, trả về các thuộc tính mà không tiết lộ nơi lưu trữ các phần khác nhau của cơ sở dữ liệu đặt tên.

Hình 13.3: Điều hướng không đệ quy và đệ quy do máy chủ điều khiển

Máy chủ định danh NS1 giao tiếp với các máy chủ tên khác thay mặt cho máy khách

Bộ nhớ đệm: Trong DNS và các dịch vụ tên khác, phần mềm và máy chủ phân giải tên máy khách duy trì bộ nhớ cache của kết quả phân giải tên trước đó Khi khách hàng yêu cầu tra cứu tên, phần mềm phân giải tên sẽ tham khảo bộ nhớ cache của nó Nếu nó giữ một kết quả gần đây từ một tra cứu trước đó cho tên, nó sẽ trả về cho khách hàng; nếu không, nó thiết lập về việc tìm kiếm nó từ một máy chủ Máy chủ đó, lần lượt, có thể trả về dữ liệu được lưu trong bộ nhớ cache từ các máy chủ khác.

Bộ nhớ đệm là chìa khóa cho hiệu suất của dịch vụ định danh và hỗ trợ duy trì tính khả dụng của cả dịch vụ định danh và các dịch vụ khác bất chấp sự cố máy chủ định danh Vai trò của nó trong việc tăng cường thời gian phản hồi bằng cách lưu thông tin liên lạc với các máy chủ định danh là rõ ràng Bộ nhớ đệm có thể được sử dụng để loại bỏ các máy chủ định danh cấp cao – đặc biệt là máy chủ gốc – khỏi đường dẫn điều hướng, cho phép giải quyết tiến hành mặc dù có một số lỗi máy chủ

Hệ Thống Tên Miền

Hệ thống tên miền là một thiết kế dịch vụ tên có cơ sở dữ liệu đặt tên chính được sử dụng trên Internet Nó được nghĩ ra chủ yếu bởi Mockapetris và được chỉ định trong RFC 1034 [Mockapetris 1987] và RFC 1035 DNS đã thay thế sơ đồ đặt tên Internet ban đầu, trong đó tất cả các tên và địa chỉ máy chủ được giữ trong một tệp chính trung tâm duy nhất và được FTP tải xuống cho tất cả các máy tính yêu cầu chúng [Harrenstien et al 1985] Đề án ban đầu này đã sớm được nhìn thấy có ba thiếu sót lớn:

Nó không mở rộng quy mô cho số lượng lớn máy tính. Các tổ chức địa phương muốn quản lý hệ thống đặt tên của riêng họ.

Một dịch vụ tên chung là cần thiết - không phải là một dịch vụ chỉ phục vụ cho việc tra cứu địa chỉ máy tính. Các đối tượng được đặt tên bởi DNS chủ yếu là máy tính - chủ yếu là địa chỉ IP được lưu trữ dưới dạng thuộc tính - và những gì chúng tôi đã đề cập trong chương này là tên miền đặt tên được gọi đơn giản là tên miền trong DNS Tuy nhiên, về nguyên tắc, bất kỳ loại đối tượng nào cũng có thể được đặt tên và kiến trúc của nó cung cấp phạm vi cho nhiều triển khai khác nhau Các tổ chức và phòng ban trong đó có thể quản lý dữ liệu đặt tên của riêng họ Hàng triệu tên bị ràng buộc bởi DNS Internet và các tra cứu được thực hiện chống lại nó từ khắp nơi trên thế giới Bất kỳ tên nào cũng có thể được giải quyết bởi bất kỳ khách hàng nào Điều này đạt được bằng cách phân vùng phân cấp cơ sở dữ liệu tên, bằng cách sao chép dữ liệu đặt tên và bằng bộ nhớ đệm.

Tên miền: DNS được thiết kế để sử dụng trong nhiều triển khai, mỗi triển khai có thể có không gian tên riêng Tuy nhiên, trên thực tế, chỉ có một cái được sử dụng rộng rãi và đó là cái được sử dụng để đặt tên trên Internet Không gian tên DNS Internet được phân vùng cả về mặt tổ chức và theo địa lý Các tên được viết với tên miền cấp cao nhất ở bên phải Các tên miền tổ chức cấp cao nhất ban đầu (còn được gọi là tên miền chung) được sử dụng trên Internet là:

– Tổ chức thương mại giá o dụ c

– Các trường đại học và các tổ chức giáo dục khác

– Cơ quan chính phủ Hoa

Mil – Tổ chức quân sự Hoa m Kỳ ạn g

– Các trung tâm hỗ trợ mạng lớn

– Các tổ chức không được đề cập ở trên

Int – Tổ chức quốc tế

Các tên miền cấp cao mới như và biz mobi đã được thêm vào từ đầu những năm 2000 Danh sách đầy đủ các tên miền chung hiện tại có sẵn từ Internet Assigned Numbers Authority [www.iana.org I ]

Ngoài ra, mỗi quốc gia đều có tên miền riêng: chú ng tôi

Các quốc gia, đặc biệt là những quốc gia khác ngoài Hoa Kỳ thường sử dụng tên miền phụ của riêng họ để phân biệt tổ chức của họ Ví dụ, Vương quốc Anh có các tên miền co.uk và ac.uk, tương ứng với com và edu tương ứng ( là viết tắtac của 'cộng đồng học thuật').

Lưu ý rằng, mặc dù hậu tố Vương quốc Anh nghe có vẻ địa lý, một tên miền như doit.co.uk có thể có dữ liệu đề cập đến máy tính trong văn phòng Tây Ban Nha của Doit Ltd., một công ty danh nghĩa của Anh Nói cách khác, ngay cả các tên miền nghe có vẻ địa lý cũng thông thường và hoàn toàn độc lập với vị trí thực tế của chúng.

Truy vấn DNS: Internet DNS chủ yếu được sử dụng để phân giải tên máy chủ đơn giản và để tra cứu máy chủ thư điện tử, như sau: Độ phân giải tên máy chủ: Nói chung, các ứng dụng sử dụng DNS để phân giải tên máy chủ thành địa chỉ IP Ví dụ: khi trình duyệt web được cung cấp URL chứa tên miền www.dcs.qmul.ac.uk, nó sẽ thực hiện yêu cầu DNS và lấy địa chỉ IP tương ứng Như đã được chỉ ra trong Chương 4, các trình duyệt sau đó sử dụng HTTP để giao tiếp với máy chủ web tại địa chỉ IP đã cho, sử dụng số cổng dành riêng nếu không có cổng nào được chỉ định trong URL Các dịch vụ FTP và SMTP hoạt động theo cách tương tự; ví dụ: một chương trình FTP có thể được cung cấp tên miền ftp.dcs.qmul.ac.uk và có thể thực hiện một cuộc điều tra DNS để lấy địa chỉ IP của nó và sau đó sử dụng TCP để giao tiếp với nó tại số cổng dành riêng.

Vị trí máy chủ thư: Phần mềm thư điện tử sử dụng DNS để phân giải tên miền thành địa chỉ IP của máy chủ thư - tức là máy tính sẽ chấp nhận thư cho các miền đó Ví dụ: khi địa chỉ tom@dcs.rnx.ac.uk được giải quyết, DNS được truy vấn với địa chỉ dcs.rnx.ac.uk và ký hiệu loại 'mail' Nó trả về một danh sách các tên miền của các máy chủ lưu trữ có thể chấp nhận thư cho dcs.rnx.ac.uk, nếu điều đó tồn tại (và, tùy chọn, các địa chỉ IP tương ứng) DNS có thể trả về nhiều tên miền để phần mềm thư có thể thử các lựa chọn thay thế nếu máy chủ thư chính không thể truy cập được vì một số lý do DNS trả về giá trị tùy chọn số nguyên cho mỗi máy chủ thư, cho biết thứ tự thử máy chủ thư.

Một số loại truy vấn khác được triển khai trong một số cài đặt nhưng ít được sử dụng hơn so với các loại truy vấn vừa đưa ra là: Độ phân giải ngược: Một số phần mềm yêu cầu trả về tên miền với địa chỉ IP Đây chỉ là sự đảo ngược của truy vấn tên máy chủ thông thường, nhưng máy chủ tên nhận truy vấn chỉ trả lời nếu địa chỉ IP nằm trong miền riêng của nó.

Thông tin máy chủ: DNS có thể lưu trữ kiểu kiến trúc máy và hệ điều hành với tên miền của máy chủ Có ý kiến cho rằng tùy chọn này không nên được sử dụng ở nơi công cộng, vì nó cung cấp thông tin hữu ích cho những người cố gắng truy cập trái phép vào máy tính.

Về nguyên tắc, DNS có thể được sử dụng để lưu trữ các thuộc tính tùy ý Một truy vấn được chỉ định bởi một tên miền, lớp và loại Đối với tên miền trên Internet, lớp là IN Loại truy vấn chỉ định xem địa chỉ IP, máy chủ thư, máy chủ định danh hoặc một số loại thông tin khác là bắt buộc Một tên miền đặc biệt, in-addr.arpa, tồn tại để giữ địa chỉ IP để tra cứu ngược Thuộc tính class được sử dụng để phân biệt, ví dụ, cơ sở dữ liệu đặt tên Internet với các cơ sở dữ liệu đặt tên DNS (thử nghiệm) khác Một tập hợp các kiểu được định nghĩa cho một cơ sở dữ liệu nhất định; những người cho cơ sở dữ liệu Internet được đưa ra trong Hình 13.5.

Máy chủ định danh DNS: Các vấn đề về quy mô được xử lý bằng cách kết hợp phân vùng cơ sở dữ liệu đặt tên và sao chép và lưu vào bộ nhớ đệm các phần của nó gần với các điểm cần thiết Cơ sở dữ liệu DNS được phân phối trên một mạng lưới máy chủ logic Mỗi máy chủ nắm giữ một phần của cơ sở dữ liệu đặt tên - chủ yếu là dữ liệu cho miền cục bộ Các truy vấn liên quan đến máy tính trong miền cục bộ được thỏa mãn bởi các máy chủ trong miền đó Tuy nhiên, mỗi máy chủ ghi lại tên miền và địa chỉ của các máy chủ tên khác, để các truy vấn liên quan đến các đối tượng bên ngoài miền có thể được thỏa mãn

Dữ liệu đặt tên DNS được chia thành các vùng Một vùng chứa dữ liệu sau:

• Dữ liệu thuộc tính cho các tên trong một miền, trừ bất kỳ miền phụ nào do các cơ quan cấp thấp hơn quản lý Ví dụ: một vùng có thể chứa dữ liệu cho Queen Mary, Đại học London - qmul.ac.uk - ít hơn dữ liệu do các phòng ban nắm giữ (ví dụ: Khoa Khoa học Máy tính - dcs.qmul.ac.uk).

• Tên và địa chỉ của ít nhất hai máy chủ định danh cung cấp dữ liệu có thẩm quyền cho khu vực Đây là những phiên bản dữ liệu vùng có thể được dựa vào là cập nhật hợp lý.

• Tên của máy chủ định danh chứa dữ liệu có thẩm quyền cho các tên miền phụ được ủy quyền; và 'dán' dữ liệu cung cấp địa chỉ IP của các máy chủ này

• Các tham số quản lý vùng, chẳng hạn như các tham số chi phối bộ nhớ đệm và sao chép dữ liệu vùng.

Dịch Vụ Thư Mục

Chúng tôi đã mô tả cách dịch vụ định danh lưu trữ các bộ sưu tập cặp và cách các thuộc tính được tra cứu từ tên Điều tự nhiên là phải xem xét kép của sự sắp xếp này, trong đó các thuộc tính được sử dụng làm giá trị cần tra cứu Trong các dịch vụ này, tên văn bản có thể được coi là một thuộc tính khác Đôi khi người dùng muốn tìm một người hoặc tài nguyên cụ thể, nhưng họ không biết tên của nó, chỉ biết một số thuộc tính khác của nó Ví dụ: người dùng có thể hỏi: 'Tên của người dùng có số điện thoại 020-555 9980 là gì?' Tương tự như vậy, đôi khi người dùng yêu cầu một dịch vụ, nhưng họ không quan tâm đến thực thể hệ thống nào cung cấp dịch vụ đó, miễn là dịch vụ có thể truy cập thuận tiện Ví dụ: người dùng có thể hỏi, 'Máy tính nào trong tòa nhà này là Macintosh chạy hệ điều hành Mac OS X?' hoặc 'Tôi có thể in hình ảnh màu có độ phân giải cao ở đâu?'

Dịch vụ lưu trữ các tập hợp các ràng buộc giữa tên và thuộc tính và tra cứu các mục nhập khớp với thông số kỹ thuật dựa trên thuộc tính được gọi là dịch vụ thư mục.

Ví dụ như Active Directory Services của Microsoft, X.500 và người anh em họ LDAP (được mô tả trong Phần 13.5), Univers [Bowman et al 1990] và Hồ sơ [Peterson 1988] Dịch vụ thư mục đôi khi được gọi là dịch vụ trang vàng và các dịch vụ tên thông thường được gọi tương ứng là dịch vụ trang trắng, tương tự như các loại danh bạ điện thoại truyền thống Dịch vụ thư mục đôi khi còn được gọi là dịch vụ tên dựa trên thuộc tính.

Dịch vụ thư mục trả về tập hợp các thuộc tính của bất kỳ đối tượng nào được tìm thấy để khớp với một số thuộc tính được chỉ định Vì vậy, ví dụ: yêu cầu 'TelephoneNumber = 020 555 9980' có thể trả về {'Name = John Smith', 'TelephoneNumber

= 020 555 9980', 'emailAddress john@dcs.gormenghast.ac.uk', } Khách hàng có thể chỉ định rằng chỉ một tập hợp con của các thuộc tính được quan tâm - ví dụ: chỉ địa chỉ email của các đối tượng phù hợp. X.500 và một số dịch vụ thư mục khác cũng cho phép các đối tượng được tra cứu bằng các tên văn bản phân cấp thông thường Dịch vụ Khám phá và Thư mục Phổ quát (UDDI), được trình bày trong Phần 9.4, cung cấp cả dịch vụ trang trắng và trang vàng để cung cấp thông tin về các tổ chức và dịch vụ web mà họ cung cấp

UDDI sang một bên, thuật ngữ dịch vụ khám phá thường biểu thị trường hợp đặc biệt của dịch vụ thư mục cho các dịch vụ được cung cấp bởi các thiết bị trong môi trường mạng tự phát Như Mục 1.3.2 đã mô tả, các thiết bị trong mạng tự phát có khả năng kết nối và ngắt kết nối không thể đoán trước Một sự khác biệt cốt lõi giữa dịch vụ khám phá và các dịch vụ thư mục khác là địa chỉ của dịch vụ thư mục thường được biết đến và được cấu hình sẵn trong các máy khách, trong khi một thiết bị vào môi trường mạng tự phát phải dùng đến điều hướng đa hướng, ít nhất là lần đầu tiên nó truy cập dịch vụ khám phá cục bộ Mục 19.2.1 mô tả chi tiết các dịch vụ khám phá Các thuộc tính rõ ràng mạnh hơn tên gọi của các đối tượng:

Các chương trình có thể được viết để chọn các đối tượng theo thông số kỹ thuật thuộc tính chính xác nơi tên có thể không được biết đến Một ưu điểm khác của các thuộc tính là chúng không để lộ cấu trúc của các tổ chức với thế giới bên ngoài,cũng như các tên được phân vùng theo tổ chức Tuy nhiên, sự đơn giản tương đối của việc sử dụng tên văn bản khiến chúng khó có thể được thay thế bằng đặt tên dựa trên thuộc tính trong nhiều ứng dụng.

Nghiên Cứu Điển Hình: Dịch Vụ Tên Toàn Cầu

Dịch vụ tên toàn cầu (GNS) được thiết kế và triển khai bởi Lampson và các đồng nghiệp tại Trung tâm nghiên cứu hệ thống DEC [Lampson 1986] để cung cấp các cơ sở cho vị trí tài nguyên, địa chỉ thư và xác thực Các mục tiêu thiết kế của GNS đã được liệt kê ở cuối Phần 13.1; Chúng phản ánh thực tế rằng một dịch vụ tên để sử dụng trong internetwork phải hỗ trợ cơ sở dữ liệu đặt tên có thể mở rộng để bao gồm tên của hàng triệu máy tính và (cuối cùng) địa chỉ email cho hàng tỷ người dùng Các nhà thiết kế của GNS cũng nhận ra rằng cơ sở dữ liệu đặt tên có khả năng tồn tại lâu dài và nó phải tiếp tục hoạt động hiệu quả trong khi nó phát triển từ quy mô nhỏ đến quy mô lớn và trong khi mạng lưới mà nó dựa trên phát triển Cấu trúc của không gian tên có thể thay đổi trong thời gian đó để phản ánh những thay đổi trong cấu trúc tổ chức Dịch vụ phải phù hợp với những thay đổi về tên của các cá nhân, tổ chức và nhóm mà nó nắm giữ và những thay đổi trong cấu trúc đặt tên như những thay đổi xảy ra khi một công ty được tiếp quản bởi một công ty khác Trong mô tả này, chúng tôi tập trung vào những tính năng của thiết kế cho phép nó phù hợp với những thay đổi như vậy

Cơ sở dữ liệu đặt tên lớn tiềm năng và quy mô của môi trường phân tán trong đó GNS được dự định hoạt động làm cho việc sử dụng bộ nhớ đệm trở nên cần thiết và khiến việc duy trì tính nhất quán hoàn toàn giữa tất cả các bản sao của mục nhập cơ sở dữ liệu trở nên cực kỳ khó khăn Chiến lược nhất quán bộ nhớ cache được áp dụng dựa trên giả định rằng các bản cập nhật cho cơ sở dữ liệu sẽ không thường xuyên và việc phổ biến chậm các bản cập nhật là chấp nhận được, vì khách hàng có thể phát hiện và khôi phục từ việc sử dụng dữ liệu đặt tên lỗi thời.

GNS quản lý một cơ sở dữ liệu đặt tên bao gồm một cây các thư mục chứa tên và giá trị Các thư mục được đặt tên theo tên đường dẫn nhiều phần được gọi là thư mục gốc hoặc liên quan đến thư mục làm việc, giống như tên tệp trong hệ thống tệp UNIX Mỗi thư mục cũng được gán một số nguyên, đóng vai trò là mã định danh thư mục duy nhất (DI) Trong phần này, chúng tôi sử dụng tên in nghiêng khi đề cập đến DI của một thư mục, để

EC là định danh của thư mục EC Một thư mục chứa một danh sách các tên và tài liệu tham khảo Các giá trị được lưu trữ ở lá của cây thư mục được tổ chức thành cây giá trị, để các thuộc tính được liên kết với tên có thể là các giá trị có cấu trúc

Tên trong GNS có hai phần: Phần đầu tiên xác định một thư mục; Thứ hai đề cập đến một cây giá trị, hoặc một số phần của cây giá trị Ví dụ, xem Hình 13.7, trong đó các DI được minh họa dưới dạng các số nguyên nhỏ (mặc dù chúng thực sự được chọn từ một loạt các số nguyên để đảm bảo

Vư ơn g qu ốc An h

Peter.Smith mật khẩu hộp thư

Alpha Bêta Gamma tính duy nhất) Các thuộc tính của người dùng Peter.Smith trong thư mục QMUL sẽ được lưu trữ trong cây giá trị có tên

Cây giá trị bao gồm một mật khẩu, có thể được tham chiếu là và một số địa chỉ thư, mỗi địa chỉ sẽ được liệt kê trong cây giá trị dưới dạng một nút duy nhất với tên

.

Cây thư mục được phân vùng và lưu trữ trong nhiều máy chủ, với mỗi phân vùng được sao chép trong một số máy chủ Tính nhất quán của cây được duy trì khi đối mặt với hai hoặc nhiều bản cập nhật đồng thời - ví dụ: hai người dùng có thể đồng thời cố gắng tạo các mục có cùng tên và chỉ một người thành công Các thư mục được sao chép trình bày một vấn đề nhất quán thứ hai; Điều này được giải quyết bằng thuật toán phân phối cập nhật không đồng bộ đảm bảo tính nhất quán cuối cùng, nhưng không đảm bảo rằng tất cả các bản sao luôn cập nhật.

Hình 13.7: Cây thư mục GNS và cây giá trị cho người dùng Peter.Smith

Thích ứng với sự thay đổi: Bây giờ chúng ta chuyển sang các khía cạnh của thiết kế có liên quan đến việc hỗ trợ tăng trưởng và thay đổi cấu trúc của cơ sở dữ liệu đặt tên Ở cấp độ khách hàng và quản trị viên, sự tăng trưởng được cung cấp thông qua việc mở rộng cây thư mục theo cách thông thường Nhưng chúng tôi có thể muốn tích hợp các cây đặt

Vư ơn g qu ốc An h

Vư ơn g qu ốc An h

Ch ún g tôi tên của hai dịch vụ GNS riêng biệt trước đây Ví dụ, làm thế nào chúng ta có thể tích hợp cơ sở dữ liệu bắt nguồn từ thư mục EC được hiển thị trong Hình 13.7 với một cơ sở dữ liệu khác cho BẮC MỸ? Hình 13.8 cho thấy một gốc mới, WORLD, được giới thiệu phía trên rễ hiện có của hai cây sẽ được hợp nhất Đây là một kỹ thuật đơn giản, nhưng nó ảnh hưởng như thế nào đến các khách hàng tiếp tục sử dụng các tên được gọi là 'gốc' trước khi tích hợp diễn ra? Ví dụ: < / UK / AC / QMUL, Peter.Smith> là tên được khách hàng sử dụng trước khi tích hợp Nó là một tên tuyệt đối (vì nó bắt đầu bằng ký hiệu cho gốc, '/'), nhưng gốc mà nó đề cập đến là EC, không phải WORLD EC và BẮC MỸ là nguồn gốc hoạt động - bối cảnh ban đầu dựa trên những tên bắt đầu bằng gốc '/' sẽ được tra cứu.

Hình 13.8: Hợp nhất cây dưới một gốc mới

Hình 13.9: Tái cấu trúc thư mục

Sự tồn tại của các định danh thư mục duy nhất có thể được sử dụng để giải quyết vấn đề này Gốc làm việc cho mỗi chương trình phải được xác định là một phần của môi trường thực thi của nó (giống như được thực hiện cho thư mục làm việc của chương trình) Khi một khách hàng trong Cộng đồng Châu Âu sử dụng tên của biểu mẫu < / UK / AC / QMUL, Peter.Smith>, tác nhân người dùng cục bộ của nó, nhận thức được gốc làm việc, tiền tố mã định danh thư mục EC(#599), do đó tạo ra tên < # 599 / UK / AC / QMUL, Peter.Smith> Tác nhân người dùng chuyển tên dẫn xuất này trong yêu cầu tra cứu đến máy chủ GNS Tác nhân người dùng có thể xử lý tương tự với các tên tương đối được đề cập đến các thư mục làm việc Khách hàng nhận thức được cấu hình mới cũng có thể cung cấp tên tuyệt đối cho máy chủ GNS, được tham chiếu đến thư mục siêu gốc khái niệm chứa tất cả các định danh thư mục - ví dụ: - nhưng thiết kế không thể giả định rằng tất cả các máy khách sẽ được cập nhật để tính đến thay đổi đó

Kỹ thuật được mô tả ở trên giải quyết vấn đề logic, cho phép người dùng và chương trình máy khách tiếp tục sử dụng các tên được xác định liên quan đến gốc cũ ngay cả khi một gốc thực mới được chèn vào, nhưng nó để lại một vấn đề thực hiện: trong cơ sở dữ liệu đặt tên phân tán có thể chứa hàng triệu thư mục, làm thế nào dịch vụ GNS có thể xác định vị trí một thư mục chỉ được cung cấp định danh của nó, Chẳng hạn như # 599? Giải pháp được GNS áp dụng là liệt kê các thư mục được sử dụng làm gốc hoạt động, chẳng hạn như EC, trong một bảng 'thư mục nổi tiếng' được giữ trong thư mục gốc thực hiện tại của cơ sở dữ liệu đặt tên Bất cứ khi nào gốc thực của cơ sở dữ liệu đặt tên thay đổi, như trong Hình 13.8, tất cả các máy chủ GNS đều được thông báo về vị trí mới của gốc thực Sau đó, họ có thể giải thích tên của dạng WORLD /

EC / UK / AC / QMUL (được gọi là gốc thực) theo cách thông thường và họ có thể giải thích tên của mẫu # 599 / UK / AC / QMUL bằng cách sử dụng bảng 'thư mục nổi tiếng' để dịch chúng thành tên đường dẫn đầy đủ bắt đầu từ gốc thực.

GNS cũng hỗ trợ tái cấu trúc cơ sở dữ liệu để phù hợp với sự thay đổi của tổ chức Giả sử rằng Hoa Kỳ trở thành một phần của Cộng đồng châu Âu (!) Hình 13.9 cho thấy cây thư mục mới Nhưng nếu cây con của Hoa Kỳ chỉ đơn giản được chuyển đến thư mục EC, các tên bắt đầu WORLD / NORTH AMERICA / US sẽ không còn hoạt động nữa Giải pháp được GNS thông qua là chèn một 'liên kết tượng trưng' thay cho mục nhập ban đầu của Hoa Kỳ (được in đậm trong Hình 13.9). Quy trình tra cứu thư mục GNS diễn giải liên kết như một chuyển hướng đến thư mục Hoa Kỳ ở vị trí mới của nó.

Thảo luận về GNS: GNS có nguồn gốc từ Grapevine

[Birrell et al 1982] và Clearinghouse [Oppen và Dalal 1983],hai hệ thống đặt tên thành công được phát triển chủ yếu cho mục đích gửi thư của Tập đoàn Xerox GNS giải quyết thành công nhu cầu về khả năng mở rộng và cấu hình lại, nhưng giải pháp được áp dụng để hợp nhất và di chuyển cây thư mục dẫn đến yêu cầu về cơ sở dữ liệu (bảng các thư mục nổi tiếng) phải được sao chép ở mọi nút Trong một mạng quy mô lớn, việc cấu hình lại có thể xảy ra ở bất kỳ cấp độ nào và bảng này có thể phát triển đến kích thước lớn, mâu thuẫn với mục tiêu khả năng mở rộng.

Nghiên Cứu Điển Hình: Dịch Vụ Thư Mục X.500

X.500 là một dịch vụ thư mục theo nghĩa được định nghĩa trong Phần 13.3 Nó có thể được sử dụng theo cách tương tự như một dịch vụ tên thông thường, nhưng nó chủ yếu được sử dụng để đáp ứng các truy vấn mô tả và được thiết kế để khám phá tên và thuộc tính của người dùng hoặc tài nguyên hệ thống khác Người dùng có thể có nhiều yêu cầu khác nhau để tìm kiếm và duyệt trong một thư mục người dùng mạng, tổ chức và tài nguyên hệ thống để có được thông tin về các thực thể mà thư mục chứa Việc sử dụng cho một dịch vụ như vậy có thể khá đa dạng Chúng bao gồm từ các yêu cầu tương tự trực tiếp với việc sử dụng danh bạ điện thoại, chẳng hạn như truy cập 'trang trắng' đơn giản để lấy địa chỉ thư điện tử của người dùng hoặc truy vấn

'trang vàng' nhằm mục đích, ví dụ, lấy tên và số điện thoại của nhà để xe chuyên sửa chữa một loại xe cụ thể, đến việc sử dụng thư mục để truy cập các chi tiết cá nhân như vai trò công việc, thói quen ăn kiêng hoặc thậm chí hình ảnh chụp ảnh của các cá nhân

Các truy vấn như vậy có thể bắt nguồn từ người dùng, trong ví dụ 'trang vàng' được đề cập ở trên hoặc từ các quy trình, khi chúng có thể được sử dụng để xác định các dịch vụ nhằm đáp ứng yêu cầu chức năng.

Các cá nhân và tổ chức có thể sử dụng dịch vụ thư mục để cung cấp một loạt các thông tin về bản thân và các tài nguyên mà họ muốn cung cấp để sử dụng trong mạng Người dùng có thể tìm kiếm thư mục cho thông tin cụ thể chỉ với một phần kiến thức về tên, cấu trúc hoặc nội dung của nó.

Các tổ chức tiêu chuẩn ITU và ISO đã xác định Dịch vụ Thư mục X.500 [ITU / ISO 1997] là một dịch vụ mạng nhằm đáp ứng các yêu cầu này Tiêu chuẩn đề cập đến nó như một dịch vụ để truy cập thông tin về 'các thực thể trong thế giới thực', nhưng nó cũng có khả năng được sử dụng để truy cập thông tin về các dịch vụ và thiết bị phần cứng và phần mềm X.500 được chỉ định là một dịch vụ cấp ứng dụng trong bộ tiêu chuẩn Kết nối Hệ thống Mở (OSI), nhưng thiết kế của nó không phụ thuộc đáng kể vào các tiêu chuẩn OSI khác và nó có thể được xem như một thiết kế cho dịch vụ thư mục mục đích chung Chúng tôi phác thảo thiết kế của dịch vụ thư mục X.500 và việc triển khai nó ở đây Độc giả quan tâm đến mô tả chi tiết hơn về X.500 và các phương pháp thực hiện nó nên nghiên cứu cuốn sách của Rose về chủ đề này [Rose 1992] X.500 cũng là cơ sở cho LDAP (được thảo luận dưới đây) và nó được sử dụng trong dịch vụ thư mục DCE [OSF 1997].

Hình 13.10: Kiến trúc dịch vụ X.500

Dữ liệu được lưu trữ trong các máy chủ X.500 được tổ chức theo cấu trúc cây với các nút được đặt tên, như trong trường hợp các máy chủ tên khác được thảo luận trong chương này, nhưng trong X.500, một loạt các thuộc tính được lưu trữ tại mỗi nút trong cây và có thể truy cập không chỉ bằng tên mà còn bằng cách tìm kiếm các mục nhập với bất kỳ sự kết hợp bắt buộc nào của các thuộc tính

Cây tên X.500 được gọi là Cây thông tin thư mục (DIT) và toàn bộ cấu trúc thư mục bao gồm dữ liệu được liên kết với các nút, được gọi là Cơ sở thông tin thư mục (DIB) Dự định có một DIB tích hợp duy nhất chứa thông tin được cung cấp bởi các tổ chức trên toàn thế giới, với các phần của DIB nằm trong các máy chủ X.500 riêng lẻ Thông thường, một tổ chức cỡ trung bình hoặc lớn sẽ cung cấp ít nhất một máy chủ Khách hàng truy cập thư mục bằng cách thiết lập kết nối với máy chủ và đưa ra yêu cầu truy cập Khách hàng có thể liên hệ với bất kỳ máy chủ nào với một yêu cầu Nếu dữ liệu cần thiết không nằm trong phân đoạn DIB do máy chủ được liên hệ nắm giữ, nó sẽ gọi các máy chủ khác để giải quyết truy vấn hoặc chuyển hướng máy khách đến một máy chủ khác

Trong thuật ngữ của tiêu chuẩn X.500, các máy chủ là Directory Service Agents (DSA) và các máy khách của chúng được gọi là Directory User Agents (DUA) Hình 13.10 cho thấy kiến trúc phần mềm và một trong một số mô hình điều hướng có thể, với mỗi quy trình máy khách DUA tương tác với một

Pháp (quốc gia)Vương quốc Anh (quốc gia)Hy Lạp (quốc gia)

BT Plc (tổ chức)Đại học Gormenghast (tổ chức)

Khoa Khoa học Máy tính (organizationalUnit)

Dịch vụ máy tính (organizationalUnit)

Nhân viên phòng ban (organizationalUnit)

Sinh viên nghiên cứu (organizationalUnit) ely (applicationProcess)

Alice Flintstone (người) Pat King (người) James Healey (người)

Janet Papworth (người) quy trình DSA duy nhất, truy cập các DSA khác khi cần thiết để đáp ứng các yêu cầu.

Mỗi mục trong DIB bao gồm một tên và một tập hợp các thuộc tính Như trong các máy chủ tên khác, tên đầy đủ của một mục nhập tương ứng với một đường dẫn qua DIT từ gốc của cây đến mục nhập Ngoài tên đầy đủ hoặc tuyệt đối, DUA có thể thiết lập ngữ cảnh, bao gồm nút cơ sở và sau đó sử dụng tên tương đối ngắn hơn cung cấp đường dẫn từ nút cơ sở đến mục nhập được đặt tên.

Hình 13.11 cho thấy một phần của Cây thông tin thư mục bao gồm Đại học Gormenghast ở Anh và Hình 13.12 là một trong những mục DIB liên quan Cấu trúc dữ liệu cho các mục trong DIB và DIT rất linh hoạt Mục nhập DIB bao gồm một tập hợp các thuộc tính, trong đó một thuộc tính có một loại và một hoặc nhiều giá trị Loại của mỗi thuộc tính được biểu thị bằng tên loại (ví dụ: countryName, organizationName, commonName, telephoneNumber, hộp thư ,objectClass) Bạn có thể xác định các loại thuộc tính mới nếu bắt buộc Đối với mỗi khác biệt.

Hình 13.11: Một phần của cây thông tin thư mục X.500 tên kiểu Có một định nghĩa kiểu tương ứng, bao gồm mô tả kiểu và định nghĩa cú pháp trong ký hiệu ASN.1 (ký hiệu chuẩn cho định nghĩa cú pháp) xác định biểu diễn cho tất cả các giá trị cho phép của kiểu.

Các mục DIB được phân loại theo cách tương tự như các cấu trúc lớp đối tượng được tìm thấy trong các ngôn ngữ lập trình hướng đối tượng Mỗi mục nhập bao gồm một thuộc tính objectClass, xác định lớp (hoặc lớp) của đối tượng mà một mục nhập đề cập đến Organization organizationalPerson, và document là tất cả các ví dụ về giá trị objectClass Các lớp tiếp theo có thể được định nghĩa khi chúng được yêu cầu. Định nghĩa của một lớp xác định thuộc tính nào là bắt buộc và thuộc tính nào là tùy chọn cho các mục nhập của lớp nhất định Các định nghĩa của các lớp được tổ chức trong một hệ thống phân cấp kế thừa trong đó tất cả các lớp ngoại trừ một (được gọi là topClass) phải chứa thuộc tính objectClass và giá trị của thuộc tính objectClass phải là tên của một hoặc nhiều lớp Nếu có một số giá trị objectClass, đối tượng kế thừa các thuộc tính bắt buộc và tùy chọn của mỗi lớp Tên của một mục nhập DIB (tên xác định vị trí của nó trong DIT) được xác định bằng cách chọn một hoặc nhiều thuộc tính của nó làm thuộc tính phân biệt Các thuộc tính được chọn cho mục đích này được gọi là Tên phân biệt (DN) của mục nhập.

Alice Flintstone, Nhân viên bộ phận, Khoa

Khoa học Máy tính,Đại học Gormenghast, GB

Alice.L.Flint stone Alice.Flintst one Alice Flintstone

A Họ Flintstone Đá lửa số điện thoại

Uid Alf alf@dcs.gormenghas t.ac.uk thư Alice.Flintstone@dcs.go rmenghast.ac.uk phòngSố phòng

Z42 lớp người dùng Nghiên cứu viên

Bây giờ chúng ta có thể xem xét các phương thức mà thư mục được truy cập Có hai loại yêu cầu truy cập chính: đọc: Một tên tuyệt đối hoặc tương đối (một tên miền trong thuật ngữ X.500) cho một mục nhập được đưa ra, cùng với một danh sách các thuộc tính cần đọc (hoặc một dấu hiệu cho thấy tất cả các thuộc tính là bắt buộc) DSA định vị mục nhập được đặt tên bằng cách điều hướng trong DIT, chuyển các yêu cầu đến các máy chủ DSA khác nơi nó không giữ các phần có liên quan của cây Nó truy xuất các thuộc tính cần thiết và trả lại chúng cho máy khách search: Đây là yêu cầu truy cập dựa trên thuộc tính Tên cơ sở và biểu thức bộ lọc được cung cấp dưới dạng đối số Tên cơ sở chỉ định nút trong DIT mà từ đó tìm kiếm sẽ bắt đầu; Biểu thức bộ lọc là một biểu thức boolean sẽ được đánh giá cho mọi nút bên dưới nút cơ sở Bộ lọc chỉ định một tiêu chí tìm kiếm: một sự kết hợp hợp lý của các bài kiểm tra về các giá trị của bất kỳ thuộc tính nào trong một mục nhập Lệnh tìm kiếm trả về danh sách tên (tên miền) cho tất cả các mục bên dưới nút cơ sở mà bộ lọc đánh giá là TRUE Ví dụ, một bộ lọc có thể được xây dựng và áp dụng để tìm tên chung của các thành viên của nhân viên chiếm phòng Z42 trong Khoa Khoa học Máy tính tại Đại học Gormenghast (Hình 13.12) Một yêu cầu đọc sau đó có thể được sử dụng để có được bất kỳ hoặc tất cả các thuộc tính của các mục DIB đó.

Tìm kiếm có thể khá tốn kém khi nó được áp dụng cho các phần lớn của cây thư mục (có thể nằm trong một số máy chủ) Các đối số bổ sung có thể được cung cấp để tìm kiếm để hạn chế phạm vi, thời gian cho phép tìm kiếm tiếp tục và kích thước của danh sách các mục nhập được trả về.

Quản trị và cập nhật DIB: Giao diện DSA bao gồm các hoạt động để thêm, xóa và sửa đổi các mục Kiểm soát truy cập được cung cấp cho cả truy vấn và hoạt động cập nhật, vì vậy quyền truy cập vào các phần của DIT có thể bị hạn chế đối với một số người dùng hoặc lớp người dùng nhất định DIB được phân vùng, với kỳ vọng rằng mỗi tổ chức sẽ cung cấp ít nhất một máy chủ nắm giữ các chi tiết của các thực thể trong tổ chức đó Các phần của DIB có thể được sao chép trong một số máy chủ.

Ngày đăng: 31/03/2024, 17:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN