JNDN và dịch vụ Naming của Corba

0
374

Kiến trúc JNDI cung cấp một hệ thống đặt tên chuẩn độc lập API được xây dựng bởi một điều khiển hệ thống đặt tên đặc biệt. Lớp này giúp ta cách ly ứng dụng từ nguồn dữ liệu thực tế, và bởi vậy nó không có ý nghĩa với các ứng dụng truy nhập một LDAP, RMI, DNS, hay dịch vụ khác. Nói cách khác, JNDI là độc lập (của) bất kỳ sự thi hành dịch vụ thư mục đặc biệt nào, và bất kỳ thư mục nào có thể được sử dụng miễn là bạn cung cấp dịch vụ (hay các điều khiển) cho nó như hình sau:

Điều này là ghi nhớ quan trọng về JNDI, nó cung cấp cả một giao diện lập trình ứng dụng (API) lẫn một giao diện nhà cung cấp dịch vụ (SPI). Điều này thực sự có ý nghĩa – cho ứng dụng của bạn tương tác với naming hay một dịch vụ thư mục ở đó phải là một nhà cung cấp dịch vụ JNDI cho naming và dịch vụ thư mục đặc biệt – giống như trình điều khiển JDBC kế thừa giá trị của giao diện JDBC cho hệ thống dữ liệu đặc biệt. Như các ứng dụng đang phát triển, bạn không cần phải lo lắng về JNDI SPI. Bạn chỉ cần chắc chắn rằng bạn có một nhà cung cấp dịch vụ cho mỗi naming hay thư mục bạn muốn sử dụng.

Cũng dựa vào đặc tả JNDI của Java nhưng Corba xây dựng một cơ chế lưu trữ tên và tham chiếu của đối tượng khác với dịch vụ Naming của RMI.

Corba phân ra khái niệm NamingContext và NamingCompoment tương tự khái niệm file và thư mục mà ta vẫn quen thuộc.

Namingcontext là một đối tượng có khả năng dẫn tham chiếu đến một NamingCompoment hay NamingContext khác. NamingContext được đặt tên dựa vào NamingCompoment.

NamingCompoment là một thành phần chứa tên (tương tự nhãn hoặc tên file) có khả năng ràng buộc tên với một đối tượng bất kỳ nào đó (đối tượng phải là đối tượng Corba)

NamingCompoment và NamingContext quan hệ với nhau theo cấu trúc hình cây tương tự cấu trúc cây thư mục của hệ thống tệp trên đĩa. Hình 3.4 là một ví dụ về cách lưu trữ của dịch vụ COS Naming trong Corba. Dịch vụ này chính là chương trình tnameserv.exe mà ta đã có dịp tìm hiểu qua khi cài đặt chương trình in ra chuỗi “hello Corba”

Như bạn thấy ở hình trên Market là một đối tượng NamingContext. Nó cho phép tìm ra 3 thành phần tên: stock, shelf và penel. Bản thân stock, shelf là hai NamingContext. Stock chứa hai thành phần mang tên Toys và Fruit. Shelf chứa một thành phần mang tên Book. Đối tượng Object A được ràng buộc với tên Toys trong khi đối tượng Object B Object C được ràng buộc bởi tên Fruit và Book.

Thử hình dung COS Naming là một cây thư mục. Nếu đứng từ Market để tham chiếu đến đối tượng Object A bạn phải chỉ đường dẫn như sau: Market\sotck\Toys. Muốn tham chiếu đến Object C bạn chỉ đường dẫn Market\panel hoặc Market\shelf\book. Tuy nhiên bạn đang đứng ở vị trí Stock bạn chỉ cần tham chiếu đến Object A theo cách: stock\toys. Đó chính là ngữ cảnh (context) mà bạn sẽ gặp sau này trong dịch vụ của Corba. Với một đối tượng tuỳ theo mà ta có cách truy xuất theo tên của đối tượng khác nhau.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây