Ánh xạ các ngôn ngữ mô hình dữ liệu, mô hình dữ liệu và dữ liệu

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tích hợp tác tử SNMP với các hệ thống quản trị mạng dựa trên XML Luận văn ThS. Công nghệ thông tin 60 48 15 (Trang 78 - 82)

Có 2 mục đích khi thiết kế thuật toán ánh xạ. Mục đích trước tiên là muốn các tài liệu XML càng thuận tiện trong việc đọc và xử lý càng tốt. Dữ liệu quản trị phải dựa trên định dạng XML. Tất nhiên việc có được một cấu trúc XML thuần khiết sẽ làm thuật toán chuyển đổi phức tạp hơn so với hầu hết các thuật toán khác thiên về ánh xạ SMI 1:1 và trông giống như một ‘SMI được XML hóa’. Đáng chú ý nhất là các phương pháp từ các tác giả Mazumdar, James W. Hong và các cộng sự, Martin-Flatin và Klie/Strauß. Các phương pháp này được so sánh dựa trên một số điểm chính trong bảng 4.1. Mục đích thứ hai là giảm mất mát thông tin trong quá trình chuyển đổi. Các định nghĩa XML Schema được tạo ra cần chứa gần như tất cả các thông tin của mô đun MIB SMI. Sau đây, các đặc điểm quan trọng nhất của thuật toán ánh xạ sẽ được mô tả và so sánh giữa một số phương pháp chuyển đổi.

Bảng 4.1: So sánh các phương pháp ánh xạ SNMP-to-XML

Mazumdar Hong và cộng sự Martin-Flatin Klie/Strauß

Thiết kế mô hình dữ liệu XML

Được điều khiển bởi khả năng sử dụng trong các ứng dụng XML

Được điều khiển bởi thiết kế MIB SMI

Được điều khiển thiết kế MIB SMI

Được điều khiển bởi khả năng sử dụng trong các ứng dụng XML Tách mô hình dữ liệu và dữ liệu

strict (kiểu dữ liệu, các OID và mô hình truy cập chỉ tùy ý trong các tài liệu XML)

not strict (các phần của OID và phân cấp cây MIB đầy đủ trong tài liệu XML)

not strict (các phần của kiểu dữ liệu và thông tin OID trong các tài liệu XML)

strict (không có kiểu, OID và mô hình truy cập dữ liệu trong các tài liệu XML)

Các MIB SMI được ánh xạ đến

Các định nghĩa XML Schema theo mô đun (Một cho bảng và nhóm vô hướng, một cho định nghĩa kiểu, và một cho MIB trong đó bao gồm những định nghĩa XML Schema theo mô đun khác)

Các định nghĩa XML Schema Các DTD hoặc định nghĩa XML Schema (thường dành cho MIB) Các định nghĩa XML Schema (dành cho MIB) Trạng thái thực hiện Trình biên dịch MIB được thực hiện, cổng thực hiện theo phương pháp Trình biên dịch MIB và một vài phương pháp cổng được thực hiện Thực hiện nguyên mẫu nghiên cứu ('JAMAP), biên tập MIB chưa được thực hiện

Trình biên dịch MIB và cổng được thực hiện, có sẵn như nguồn mở

4.3.2. Cấu trúc XML của dữ liệu quản trị

Bước đầu tiên khi thiết kế cấu trúc tài liệu XML là xác định phạm vi của nó. Có thể đặt ra một số giới hạn về phạm vi. Ví dụ, mỗi tài liệu XML có thể đại diện cho dữ liệu phiên bản của một mô đun MIB đặc trưng tại một agent đã được xác định và thời điểm xác định. Các tài liệu XML theo phương pháp của Hong và cộng sự được thiết kế theo cách này. Ngoài ra còn có thể giới hạn khoảng các đối tượng MIB đặc biệt như các bảng và các nhóm vô hướng. Điều này làm tăng khả năng đọc tài liệu vì chỉ có một phân đoạn MIB được đưa ra, nhờ vậy cấu trúc tài liệu khá đơn giản. Các tài liệu XML theo phương pháp của Mazumdar được thiết kế theo cách này. Klie/Strauß đưa ra một thành tố gốc độc lập với các MIB đặc trưng, các agent hoặc thời điểm để đảm bảo có được các tài liệu với phạm vi dữ liệu linh hoạt hơn. Agent, nhóm SNMPv1 và thời điểm được đặt trong các thành tố <context> mức 2. Theo cách này, người ta có thể lưu dữ liệu từ nhiều agent hoặc các snapshot ở các thời điểm khác nhau trên cùng một tài liệu, vì thành tố gốc có thể lưu trữ một lượng tùy ý các thành tố mức 2 này. Tuy nhiên cấu trúc văn bản XML sẽ trở nên phức tạp hơn một chút so với 2 phương pháp còn lại vì có sử dụng thêm một mức thành tố.

Có 2 cách xử lý cây OID của một MIB. Cách thứ nhất là ánh xạ trực tiếp tất cả các nút trong MIB sang các thành tố lồng nhau trong tài liệu phiên bản XML. Các chuyên gia về SNMP đều khá quen thuộc với kiểu ánh xạ như vậy vì cây tài liệu XML mô tả chính xác cây OID đã biết. Cả 3 phương pháp trên đều sử dụng kiểu ánh xạ trực tiếp này. Theo quan điểm của Klie/Strauß, kiểu ánh xạ trực tiếp sẽ dẫn đến những tài liệu phiên bản XML phức tạp không cần thiết. Vì vậy một hệ phân cấp thành tố ‘phẳng hóa’ được thiết kế và cố gắng tránh phân cấp sâu

các thành tố. Các nhóm đối tượng vô hướng và các dòng trong bảng được ánh xạ vào các thành tố ở mức 3 (mức bên dưới <context>) bất kể vị trí của nó trên cây OID. Hệ phân cấp phẳng hóa dễ đọc hơn nhiều so với một cấu trúc thành tố lồng nhau sâu. Thông tin OID của một nút được đặt vào mệnh đề <xsd: appinfo> nhằm giữ lại thông tin này cho các ứng dụng dựa trên nó.

Việc đặt tên duy nhất trong SMI dựa trên cặp mô tả modulename. Trong XML, việc đặt tên duy nhất có thể thực hiện bằng cách sử dụng các vùng không gian tên của XML. Do đó, các mô đun SMI sẽ được ánh xạ sang vùng không gian tên XML. Phương pháp của Mazumdar sử dụng nhiều tệp tin định nghĩa XML Schema, trong đó mỗi tệp được sử dụng để định nghĩa một vùng không gian tên thông thường, mỗi một tệp lược đồ dành cho mọi thành phần chứa dữ liệu. Phương pháp của Hong không sử dụng các không gian tên, nhưng mỗi mô đun MIB được ánh xạ sang một tệp tin định nghĩa XML Schema riêng. Theo Klie/Strauß, ánh xạ mỗi mô đun MIB sang một tệp tin định nghĩa XML Schema duy nhất có khả năng tự định nghĩa vùng không gian tên của nó.

Các mệnh đề INDEX trong mô đun MIB được sử dụng để xác định các đối tượng sẽ chỉ được dùng để định danh các dòng bảng. Các đối tượng cột được sử dụng trong mệnh đề INDEX không được ánh xạ sang các thành tố con mà nó được ánh xạ sang các thuộc tính của thành tố hàng trong bảng. Đoạn lệnh <xsd:key> được tạo thêm để xác nhận rằng sự kết hợp các đối tượng cột này có vai trò như một khóa duy nhất định danh một hàng trong bảng XML. Theo phương pháp của Mazumdar, chỉ có một thuộc tính chỉ mục duy nhất chứa các chuỗi kết nối giá trị các đối tượng chỉ mục. Điều này có thể gây ra những vấn đề phức tạp. Phương pháp của Hong và Klie/Strauß đặt giá trị của các biến chỉ mục vào trong các thuộc tính. Để tránh sự lặp lại, các đối tượng chỉ mục chỉ được liệt kê với vai trò là các thuộc tính chứ không phải một thành tố thông thường.

Trong SMI, có những đoạn mã rắc rối được dùng để biểu diễn các cấu trúc dữ liệu lồng nhau như các bảng mở rộng và các bảng này cho phép chia sẻ một danh sách tiếp đầu ngữ của các đối tượng chỉ mục với bảng khác. Đây chính là điểm yếu trong tính đơn giản của SNMP. Trong XML, có một cách trực quan và nhẹ nhàng hơn dùng để biểu hiện các mối quan hệ tương tự nhau: chính sách ngăn chặn thành tố. Do đó, các đối tượng cột của các hàng trong bảng mở rộng theo phương pháp của Klie/Strauß sẽ được bổ sung vào như các thành tố con của các hàng cha chung. Tuy nhiên, cách này chỉ có thể thực hiện được nếu bảng mở rộng là một phần của cùng một mô đun MIB vì các mô đun MIB không thể chứa các tham chiếu (khả năng trong tương lai) tới các mô đun của MIB mở rộng.

Điều tương tự cũng được ứng dụng đối với các bảng con, và các bảng con này sẽ được ánh xạ vào các thành tố con của các thành tố cha của chúng trong bảng.

4.3.3. Ánh xạ các kiểu dữ liệu

Kiểu và các định nghĩa TEXTUAL-CONVENTION trong các mô đun MIB được ánh xạ sang các kiểu XML Schema được trích ra từ các kiểu cơ bản với các mệnh đề thích hợp <xsd:restriction>. Ánh xạ này được tự động chấp nhận ngoại trừ các kiểu cơ bản được xác định trong một định nghĩa XML Schema thủ công đơn giản. Điểm khác nhau giữa các phương pháp đã được đề cập chỉ là ngưỡng tập trung đến ánh xạ kiểu cơ bản. Bảng 4.2 cho thấy chi tiết hơn về ánh xạ kiểu cơ bản.

Bảng 4.2: Ánh xạ các kiểu SMI vào các kiểu XML

Kiểu SMI Kiểu XML Schema xây dựng

INTEGER, Integer32 xsd:int

Unsigned32, Counter32 xsd:unsignedInt

Counter64 xsd:unsignedLong

INTEGER enumeration xsd:NMTOKEN

OCTET STRING xsd:hexBinary or xsd:string

BITS xsd:list of xsd:NMTOKEN

IpAddress xsd:string with regexp restriction OBJECT IDENTIFIER xsd:string with regexp restriction

Vùng giá trị có thể được giới hạn bởi <xsd:minInclusive>

<xsd:maxInclusive> đối với kiểu số. Tương tự như vậy, với < xsd:minLength >

<xsd:maxLength> có thể giới hạn chiều dài của các chuỗi ký tự. Loại ánh xạ này được hỗ trợ bởi tất cả các phương pháp đã đề cập. Tuy nhiên cũng có một số hạn chế như có nhiều khoảng (ví dụ như -1| 60..600, trong DISMAN- EXPRESSION-MIB::exp-ResourceDeltaMinimum) có thể không được biểu hiện trong XML Schema theo cách đơn giản. Kiểu đồng bộ với một kiểu con cho mỗi khoảng con có thể giải quyết được vấn đề này. Tuy nhiên các kiểu đồng bộ là ‘đường cụt’ do có hiện tượng kế thừa sâu hơn.

Với mệnh đề DISPLAY HINT, các tác giả MIB chỉ ra, cách họ nghĩ dữ liệu sẽ được hiển thị thế nào. Vì thế, Klie/Strauß biên dịch các display hint đồng thời trả về các dữ liệu phiên bản trong các tài liệu XML. Do đó, nếu kiểu dữ liệu định nghĩa trong MIB có display hint thì lời hint này sẽ được dùng để giới hạn sâu hơn vùng giá trị của kiểu XML Schema được ánh xạ. Ví dụ như, kiểu số

nguyên (Integer) có thể cần thêm thẻ <xsd:fractionDigits> cho phép xác định số khoảng thập phân. Đối với kiểu chuỗi (String), thậm chí các đoạn display hint phức tạp cũng có thể được tự động biên dịch sang cấu trúc <xsd:pattern> trong định nghĩa XML Schema theo biểu thức thông thường nhằm hạn chế khoảng giá trị. Trong trường hợp này, 2 thẻ <xsd:minLength> và <xsd:maxLength> không được sử dụng vì các biểu thức thông thường được sinh ra thường bao hàm cả những giới hạn về độ dài. Nên lưu rằng những giới hạn về độ dài này có thể khác biệt so với giới hạn độ dài được định nghĩa trong MIB vì giới hạn của MIB tương ứng với độ dài của chuỗi octet 8 bit chưa được định dạng trong khi giới hạn được hàm chứa trong thẻ <xsd:pattern> tương ứng với chuỗi đã được định dạng.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tích hợp tác tử SNMP với các hệ thống quản trị mạng dựa trên XML Luận văn ThS. Công nghệ thông tin 60 48 15 (Trang 78 - 82)

Tải bản đầy đủ (PDF)

(106 trang)