Dịch vụ tên và thư mục
Khi đề cập tới truyền thông, vấn đề tên và địa chỉ là rất cần thiết. Khi tạo yêu cầu một dịch vụ hoặc truy cập tới một đối tượng theo nghĩa TTLQT đòi hỏi bắt buộc đầu tiên là phải định vị được dịch vụ hoặc đối tượng. Dịch vụ là đối tượng được trừu tượng ...
Khi đề cập tới truyền thông, vấn đề tên và địa chỉ là rất cần thiết. Khi tạo yêu cầu một dịch vụ hoặc truy cập tới một đối tượng theo nghĩa TTLQT đòi hỏi bắt buộc đầu tiên là phải định vị được dịch vụ hoặc đối tượng. Dịch vụ là đối tượng được trừu tượng hóa. Chúng thường được QT trình bày bằng một điểm truy cập dịch vụ. Đối tượng có thể là người dùng, máy tính, đường TT hoặc các tài nguyên khác, chẳng hạn file. Dịch vụ và đối tượng thường được định danh bằng tên kết cấu. Như là một chọn lựa, nếu tên là chưa biết, điểm vào dịch vụ hoặc đối tượng được mô tả thông qua sử dụng thuộc tính phù hợp với chúng. Do dịch vụ hoặc đối tượng có nghĩa rất rõ ràng, vấn đề tên của chúng là tương tự nhau. Khi nghiên cứu về dịch vụ tên và thư mục, dùng thuật ngữ mục đối tượng để chỉ cả dịch vụ lẫn đối tượng.
Giải pháp tên và địa chỉ
, theo nghĩa hẹp là các toán tử tra cứu (look-up). Khi cho một tên hoặc một vài thuộc tính của một mục đối tượng thì thu được thêm nhiều thông tin thuộc tính. Thuật ngữ dịch vụ tên và dịch vụ thư mục thường được sử dụng hoán đổi nhau. Dịch vụ tên là cách tổng quát mô tả một đối tượng được địa chỉ hoá và do đó có thể xác định được đối tượng thông qua địa chỉ. Khái niệm dịch vụ thư mục trong nhiều trường hợp, được dùng để chỉ dịch vụ tên đặc biệt như dịch vụ thư mục của hệ thống file. Trong các trường hợp khác, nó không bị hạn chế bởi thông tin địa chỉ mà còn được dùng để trình bày một dịch vụ đặt tên chung nhất đối với tất cả các kiểu tra cứu thuộc tính trên những loại đối tượng khác nhau. X500 được CCITT định nghĩa là ví dụ cho dịch vụ kiểu này. Những dịch vụ tên mức cao được xây dựng dựa trên dịch vụ thư mục chuẩn.
Mục đối tượng bất kỳ trong hệ thống phải được đặt tên (hoặc định danh) và được định vị trước khi sử dụng. Hoạt động định vị đối tượng được gọi là QT giải pháp (resolution), cần đến một loạt các thao tác tra cứu (hoặc ánh xạ). Mỗi mục đối tượng có một địa chỉ logic trong HĐH và một địa chỉ vật lý trong mạng. QT giải pháp gồm hai phần: Giải pháp tên ánh xạ tên tới địa chỉ logic và Giải pháp địa chỉ ánh xạ địa chỉ logic tới đường truyền vật lý trong mạng.
Tên là dấu hiệu định hướng ứng dụng của đối tượng. Địa chỉ đại diện cho đối tượng, mang thông tin cấu trúc nào đó thích hợp để HĐH quản lý và định vị đối tượng. QT giải pháp tên ánh xạ tên tới địa chỉ. Đối tượng được xác định bằng tên, và đối tượng được định vị thông qua địa chỉ. Tên thường là duy nhất nhưng cùng một tên có thể có nhiều địa chỉ. ánh xạ tên một phục vụ tới các địa chỉ cổng của nó được coi là ví dụ về giải pháp tên.
Giải pháp địa chỉ ánh xạ địa chỉ tới các đường truyền mà theo đó định vị vật lý một đối tượng. Sự khác nhau giữa một địa chỉ và một đường truyền là đường truyền là mức thấp nhất của TT và không còn mức nào thấp hơn, trong khi đó địa chỉ lại bao gồm những thông tin định danh đối tượng trung gian giữa tên và đường truyền. Việc ánh xạ cổng phục vụ tới các cổng Ethernet của nó được coi là ví dụ về giải pháp địa chỉ.
Giải pháp tên là một chức năng cơ bản của HĐH phân tán, trong khi giải pháp địa chỉ là bài toán của mạng. Phần này tập trung vào giải pháp tên, ánh xạ tên tới địa chỉ chuẩn trong HĐH. Dịch vụ tên được thi hành bằng một hoặc nhiều phục vụ tên. Nhấn mạnh đặc biệt là giải pháp tên được gọi thường xuyên và kéo theo một số phục vụ tên.
Thuộc tính đối tượng và cấu trúc tên
Mục đối tượng được đặc trưng bằng các thuộc tính của nó. Ví dụ, người dùng có thể có thuộc tính là địa vị, file có thể có thuộc tính là số hiệu phiên bản, ngày khởi tạo, và các thuộc tính khác. Trong giải pháp tên, quan tâm riêng tới hai thuộc tính đối tượng đặc biệt, đó là tên và địa chỉ. Tên là thuộc tính với giá trị duy nhất để định danh. Địa chỉ cũng là thuộc tính, ngoại trừ một điều rằng nó là kết quả ra của QT giải pháp tên. Tập hợp tất cả các tên, được tổ chức qua dịch vụ tên cùng các thuộc tính và địa chỉ tương ứng của chúng, được gọi là không gian tên. Một không gian tên rộng lớn chứa các lớp đối tượng khác nhau, có thể được cấu trúc tới các kiểu đơn nhất của nó. Ví dụ, đối tượng có thể được phân lớp thành người dùng, máy tính hoặc file... Những kiểu đối tượng này trở thành thuộc tính để tổ chức không gian tên.
Tên của một mục đối tượng có thể là một thuộc tính đơn giản nhưng cũng có thể chứa nhiều thuộc tính có cấu trúc nội tại hoặc không. Cấu trúc-tên chỉ dựa theo một thuộc tính được gọi là cấu trúc tên phẳng (flat). Một cấu trúc tên-phẳng là một thuộc tính tượng trưng. Yêu cầu duy nhất đối với cấu trúc phẳng là cách đặt tên phải duy nhất trong toàn hệ thống. Cách này là đơn giản nhất và rõ ràng cho tính trong suốt định vị và độc lập. Bất lợi lớn nhất là cách đặt tên này rất khó thực hiện đồng thời trên diện rộng vì rất khó quản lý và cung cấp tên do tên không có cấu trúc.
Nếu tên được phân ra thành nhiều thuộc tính thì có thể lợi dụng thứ tự các thuộc tính. Chẳng hạn, người sử dụng với thuộc tính tên là <A>, thuộc tính tổ chức là <FOT> và thuộc tính quốc gia là <VN> thì có thể tạo ra thành một thuộc tính tổng hợp là <A.FOT.VN> như thuộc tính tên. Theo sơ đồ phổ dụng hơn (dùng trong mạng Internet là Domain Name Service - dịch vụ tên miền), tên là thuộc tính cấu trúc phân cấp. Tổng quát hơn, khi không cho thứ tự các thuộc tính thì có thể định vị đối tượng nhờ tập hợp tất cả các thuộc tính. Ví dụ U=A, C=FOT, O=VN khi đó U, C, và O đại diện cho các thuộc tính là tên, cơ quan và quốc gia. Những tên này được xác định dựa vào việc ghép nối kế tiếp các thuộc tính (giải pháp này dựa vào tên cấu trúc phân cấp) hoặc dựa vào chỉ tập hợp các thuộc tính (giải pháp dựa vào thuộc tính với cấu trúc tùy ý). Hai giải pháp tên này tương tự như trang trắng (white page) và trang vàng (yellow page) tương ứng trong sổ danh mục điện thoại.
Việc phân chia thuộc tính cho giải pháp tên của đối tượng có thể căn cứ vào tính chất vật lý, theo tổ chức hoặc theo chức năng.
Một cấu trúc tên được phân chia theo vật lý cho phép định rõ thông tin vị trí về đối tượng, ví dụ <user.host.network>. Một cấu trúc tên được phân chia theo cách tổ chức dựa vào cấu trúc hành chính nhà nước. Ví dụ như <user.department.organization>. Cả hai cách phân chia trên đều mang tính phân cấp, nghĩa là có mối quan hệ giữa các thuộc tính, trạm chủ (host) nằm trong mạng (network), phòng (department) nằm trong cơ quan (organization).
Thuộc tính D.vụ/đối tượng | Cấu trúc tên | Phân chia thuộc tính |
< thuộc tính><tên, thuộc tính, địa chỉ><tên, kiểu, thuộc tính, điạ chỉ> | - cấu trúc phẳng- giải pháp cấu trúc phân cấp dựa theo tên(chẳng hạn, trang trắng)- giải pháp dựa theo thuộc tính phi cấu trúc | - vật lý- tổ chức- chức năng |
Hình 4.17. Thuộc tính đối tượng và cấu trúc tên
Dùng tên phân cấp rất hiệu quả cho giải pháp tên và quản lý không gian tên. Một số cách đặt tên khác không theo cấu trúc phân cấp chặt chẽ. Ví dụ như thuộc tính nghề nghiệp là <professor>, thuộc tính chuyên môn là <computer science> không được phân chia giống như tên theo tính chất vật lý hoặc tính chất tổ chức của đối tượng. Cách phân chia này được gọi là căn cứ theo chức năng và hợp lý hơn đề xuất giải pháp tên dựa theo thuộc tính phi cấu trúc. Hình 4.17 mô tả các cách khác nhau dùng thuộc tính làm đặc trưng cho mục đối tượng và trình bày cấu trúc tên.
Không gian tên và cơ sở thông tin
Không gian tên và thông tin đối tượng của nó trong hệ phân tán là rất đồ sộ. Để hiệu quả giải pháp và quản lý tên, cần một mô hình thông tin làm cơ sở thi hành cơ sở dữ liệu không gian tên. Theo thuật ngữ X.500, mô hình dữ liệu quan niệm để lưu giữ và trình bày thông tin đối tượng được gọi là cơ sở thông tin thư mục DIB (Directory Information Base). Dịch vụ thư mục (DS) theo chuẩn CCIIT X.500 cung cấp quy tắc cấu trúc và cú pháp đặc tả DIB trong cây thông tin thư mục phân cấp DIT (Directory Information Tree). Hình 4.18 cho ví dụ về DIT. Mỗi mục đối tượng trong DIB được biểu diễn bằng một nút của cây DIT. Các thuộc tính tương ứng với mục đối tượng là tập các thuộc tính từ nút tới gốc cây. Cấu trúc cây có nhiều ưu điểm vì mỗi nút trong cây có đường đi duy nhất tới gốc. Đường đi dùng để định danh duy nhất đối tượng với tên phi cấu trúc trong giải pháp hướng thuộc tính. Thuộc tính dùng cho mục đích đặt tên được gọi là thuộc tính nhận biết (distinguished). Nếu các thuộc tính nhận biết của cùng một kiểu được nhóm lại theo từng mức của cây thì việc ghép nối các thuộc tính nhận biết dọc theo đường đi trở thành tên cấu trúc của đối tượng. Hình 4.18 trình bày cây thông tin thư mục với kiến trúc nhóm các kiểu thuộc tính nhận biết (country, organization, user). Cấu trúc cây phân cấp là hợp lý cho giải pháp tên.
Không gian tên rộng lớn và cây DIT tương ứng của nó có thể được phân tích và phân tán thành miền tên (naming domain) và ngữ cảnh tên (naming context). Miền tên là không gian tên con với một quyền quản trị đơn để quản lý tên. Ngữ cảnh tên là cây con bộ phận của DIT. Hình 4.18 đưa ra 5 ngữ cảnh tên (A, B, C, D, E) trong các vùng có biên rời nét. Ngữ cảnh tên là đơn vị cơ bản để phân tán cơ sở thông tin tới nhà cung cấp dịch vụ thư mục (Directory Service Agent - DSA), là phục vụ cho dịch vụ tên. Có 3 DSA trong vùng với biên liền nét trong hình 4.18 quản lý năm ngữ cảnh tên. Mỗi ngữ cảnh tên cũng tạo nên một cây. Mỗi một DSA duy trì các kết nối tới các DSA khác cộng tác của dịch vụ tên.
Bộ cung cấp thư mục người dùng Directiry User Agent (DUA) thay QT người dùng thực hiện việc khởi tạo QT giải pháp tên. Yêu cầu giải pháp được gửi từ một DSA này tới một DSA khác cho tới khi tìm được đối tượng trong DIT và trả về cho DUA. Mặc dù sơ đồ giải pháp là có cấu trúc-dựa theo tên hoặc phi cấu trúc-dựa theo thuộc tính, tương tác giữa các DSA vẫn có thể thực hiện theo một trong bốn kiểu được trình bày trong hình 4.19.
Trong kiều mắt xích (chaining mode), yêu cầu được chuyển tiếp từ DSA đến DSA cho tới khi tên được giải quyết. Kết quả được gửi trả lại dọc theo đường cũ (mắt xích truy hồi) hoặc trực tiếp tới DUA (mắt xích ngoài). Mắt xích truy hồi là mode thông dụng đối với giải pháp tên cấu trúc. Kiểu mắt xích ngoài đòi hỏi ít TĐ hơn song mỗi TĐ cần mang địa chỉ của DUA nguồn. Mặt hạn chế chính của mắt xích ngoài là ở chỗ nó không cho phép mô hình lập trình RPC và Client/Server.
Trong kiểu chuyển tiếp (referral mode), khi một DSA không giải quyết được tên yêu cầu từ DUA thì nó gợi ý một DSA khác cho DUA. Kiểu này có thể được dùng cho cả giải pháp tên và giải pháp thư mục.
Trong kiểu đa phân phát (multicast mode), một yêu cầu được định danh và được gửi đồng thời tới các DSA. Một trong những lời đáp có giá trị được DUA chọn. Kiểu này thích hợp khi thông tin cấu trúc là không có sẵn.
Một phương án hợp lý khi kết hợp các mode thao tác khác nhau. Ví dụ, sau bước mắt xích có thể là bước chuyển tiếp.
Tồn tại hai công nghệ chung để cải tiến giải pháp tên là lưu giữ tạm (catching) và nhân bản. Tên được dùng và địa chỉ của chúng được lưu tại một vùng lưu trữ cục bộ để giảm bớt yêu cầu giải pháp tên. Các ngữ cảnh tên cũng được định danh trong các DSA khác nhau để rút ngắn đường giải đáp. Cuối cùng, thực thể đối tượng trong thư mục có thể là một bí danh hay một nhóm. Bí danh và Nhóm là những con trỏ tới tên các đối tượng khác và tới các nút lá trong DIT. Bí danh và Nhóm làm cho dịch vụ tên/thư mục mềm dẻo hơn đối với người sử dụng.
Dịch vụ tên là cốt yếu trong mọi hệ phân tán. Dịch vụ tên trong DCE là ví dụ tốt hỗ trợ lớp rộng lớn các sơ đồ tên. Trong hệ tự trị cộng tác, dịch vụ tên được mở rộng để hỗ trợ hạ tầng truyền thông để định danh và định vị mọi đối tượng tự trị trong hệ thống và quản lý kết nối và phân phát dữ liệu giữa các đối tượng. Bộ môi giới nhu cầu đối tượng - The Object Request Broker (ORB) là một phương tiện trung tâm như vậy trong kiến trúc CORBA đối với hệ tự trị cộng tác.