8. Kết quả nghiên cứu, đóng góp của luận án
2.1.3.3. Module quản lý không gian địa chỉ
Mô hình không gian địa chỉ là một trong những nền móng xây dựng nên chuẩn OPC UA. So với chuẩn cũ OPC, dữ liệu đã được mô hình lại, từ những chỗ chỉ là nhóm các dữ liệu thô trở thành một công nghệ hiện đại, độc lập với các nền tảng, an toàn và
52
có khảnăng mô hình hóa những hệ thống thông tin phức tạp. Một số chức năng của mô hình mới này có thể kểra như sau:
Sử dụng kỹ thuật hướng đối tượng, bao gồm cây phân cấp các kiểu đối tượng.
Thông tin về kiểu đối tượng có thểđược lấy ra theo cùng một cách với thông tin của đối tượng.
Có nhiều điểm chung với mô hình mạng ngữ nghĩa.
Kiểu quan hệ giữa các nút cũng có thể kế thừa tương tựnhư các kiểu đối tượng.
Mô hình không gian địa chỉluôn được thực hiện ở phía Server.
Mô hình quản lý của Server: Không gian địa chỉ có thể rất lớn, vì thế trách nhiệm quản lý không gian địa chỉ có thể là của một hoặc nhiều hơn đối tượng NodeManager. Tuy nhiên, yêu cầu bắt buộc là phải có một đối tượng CoreNodeManager để quản lý phần không gian nút chuẩn được định nghĩa trong đặc tả. Những đối tượng NodeManager bổ sung có thể dùng để quản lý những trường hợp như không gian nút
quá lớn, không thểlưu giữ tất cả trong bộ nhớ, hoặc khi có thểđưa ra nhưng thuật toán tối ưu cho việc quản lý không gian nút.
Từ những phân tích ở trên, việc xây dựng các đối tượng quản lý không gian nút
như hình vẽ sau:
Hình 2.11. INodeManager và các đối tượng quản lý không gian địa chỉ
INodeManager: Giao diện chung cho tất cảcác đối tượng quản lý.
MasterNodeManager: Đối tượng quản lý chung, Server chỉ làm việc với đối
tượng này.
BasicNodeManager: Đối tượng sử dụng trong SDK, lưu giữ không gian nút trong bộ nhớdưới dạng một từđiển.
CoreNodeManager: Đối tượng quản lý không gian nút mô tả trong đặc tả, là những nút có thểđược yêu cầu nhiều nhất, là “trái tim” của không gian địa chỉ.
class NodeM anager
«i nterface» INodeManager + AddNodes() : void + AddReferences() : voi d + DeleteNodes() : voi d + DeleteReferences() : voi d
+ GenereateNew NodeId() : NodeId
+ SetReadVal ueCal lback() : voi d
+ TranslateBrowsePath() : void
M asterNodeM anager BasicNodeM anager
CoreNodeM anger ListOfINodeM anager «derive» «deri ve» «use» «use» «deri ve»
53
ListOfINodeManager: Danh sách các đối tượng quản lý. MasterNodeManager sử dụng nó với những phần không gian nút đặc biệt.
Để hiểu về cách hoạt động của mô hình này, ta đưa ra biểu đồ hoạt động cho
trường hợp Client gửi một request truy vấn không gian nút.
Hình 2.12. Biểu đồ hoạt động - Client gửi yêu cầu truy vấn
Client gửi yêu cầu đến Server, Server chuyển trách nhiệm xử lý này cho MasterNodeManager. MasterNodeManager dựa trên tham số gửi từ Client đểxác định xem NodeManager nào đang quản lý thông tin đó và gọi đến NodeManager này để lấy kết quả gửi lại cho Server và cho Client.
Các xử lý của Server để đáp ứng Client: Ở trên tác giả đã trình bày mô hình chung của module, ở phần này, tác giả sẽ trình bày cách xử lý cho một vài dịch vụ cơ
bản. Những xử lý này là xử lý của CoreNodeManager hoặc 1 NodeManager cụ thể, những xử lý chung của MasterNodeManager sẽ không nhắc lại khi nói đến từng dịch vụ.
- Dịch vụ duyệt không gian nút (Browse Service)
Những tham số chính truyền vào từ client:
Bảng 2.1. Các tham số dịch vụ duyệt không gian nút
Tên Giải thích
NodeID Mã của nút cần duyệt
BrowseDirection Chiều để duyệt. Có thể là: Forward, Inverse hoặc Both.
ReferenceTypeId Mã của tham chiếu. Ta chỉ duyệt theo những tham chiếu
thuộc loại tham chiếu ứng với id này
IncludeSubtype Giá trị bool, chỉ ra là có duyệt theo các loại tham chiếu kế
thừa từ loại tham chiếu cho bởi biến ReferenceTypeId hay
không
NodeClassMask Chỉ duyệt những nút thuộc về những class được cho trong giá trị này.
54
Quy trình cần thực hiện minh họa trong hình vẽ:
Hình 2.13. Biểu đồ hoạt động dịch vụ duyệt không gian nút
act Brow se New
Check NodeId
Return Error
Create ReferenceDescription
list
Get Node information Get next ReferenceDescription Return ReferenceDescription list Check ReferenceDescription Add to ReferenceDescription list Invalid Valid No ReferenceDescription Yes No
55
- Dịch vụ đọc giá trị thuộc tính (Read Service)
Các tham số Client truyền vào:
Bảng 2.2. Các tham số dịch vụđọc giá trị thuộc tính
Tên Giải thích
NodeId Mã của nút
AttributeId Mã của thuộc tính
IndexRange Trong trường hợp giá trị thuộc tính là một mảng, thì tham số này định nghĩa vị trí các phần tử cần lấy
DataEncoding Cách mã hóa dữ liệu gửi lại.
Quy trình để cần thực hiện minh họa bởi hình vẽ:
Hình 2.14. Biểu đồ hoạt động dịch vụđọc giá trị thuộc tính
act Read AD Check NodeId Return Error Check AttributeId Return Error Get Node Read Attribute Return attribute v alue and status
code
Not Exist
Exi st
56 - Dịch vụ thêm nút (AddNodes Service)
Các tham số truyền vào:
Bảng 2.3. Các tham số của dịch vụ thêm nút
Tên Giải thích
ParentNodeId Mã của nút cha, nút cần thêm là con của nút này ReferenceTypeId Mã của kiểu tham chiếu nối từ nút cha đến nút con
RequestedNewNodeId Mã của nút mới, nếu giá trị này không được xác định
bởi client thì server sẽ tự gán id cho nút BrowseName Tên của nút trong không gian địa chỉ
NodeClass Chỉ ra nút thuộc kiểu nào
NodeAttributes Giá trị các thuộc tính của nút mới
Việc kiểm tra một nút mới có được phép tạo ra trong không gian nút hay không rất phức tạp và được quy định bởi rất nhiều ràng buộc trong đặc tả OPC UA. Quy trình
được thực hiện như hình vẽ:
Hình 2.15. Biểu đồ hoạt động dịch vụ tạo nút mới
act Add Node
Check ParenNodeId, Reference TypeId, RequestedNew NodeId Return Error Generate new nodeId Create ne w node Assign attribute to new node Add node to Address s pace
Crea t reference to type node
Return ne w node id and sta tus code
i nval i d
new node i d i s needed
57