4.2 H IỆN THỰC HỆ THỐNG
4.2.1 Hiện thực cơ sở hạ tầng phục vụ tìm kiếm
Để hiện thực cơ sở hạ tầng phục vụ tìm kiếm thì việc sử dụng UDDI registry mà ta có khả năng can thiệp (chỉnh sửa mã nguồn) là rất cần thiết. Trong phạm vi luận văn này, juddi (một dự án mã nguồn mở hiện thực UDDI registry bằng Java) được sử dụng [11].
UDDI registry này hiện hỗ trợ đặc tả UDDI phiên bản 2 chứ chưa hỗ trợ đặc tả UDDI phiên bản 3, cho nên nó có một số hạn chế như chưa hỗ trợ các cấu trúc trong phiên bản 3 của đặc tả UDDI (ví dụ keyedReferenceGroup, cần thiết để đăng ký ngữ nghĩa của dịch vụ Web vào UDDI registry).
Tuy nhiên việc thêm các hỗ trợ cho phiên bản 3 hoàn toàn có thể tiến hành một cách đơn giản. Việc sử dụng dự án mã nguồn mở này giúp tiết kiệm công sức phát triển hệ thống và giúp ta chủ động khi cần thay đổi hay thêm tính
Mô hình hoạt động của juddi như sau:
Hình 20 Mô hình hoạt động của juddi
Cách thao tác để liên lạc với juddi được thể hiện trong flowchart sau:
HTTP request HTTP response
UDDI request UDDI response
HTTP response
Web browser
Web server
Java servlet
HTTP request
Datastore sub-module
Authenticator sub-module
UUID generator sub-module Unmarshall the request
Invoke the UDDI function Marshall the response
Application
SOAP request SOAP response
[12]
Hình 21 Lưu đồ về cách thao tác trên juddi Start
Create a request object, say regobj
Create a RegistryEngine object, say regen
Invoke the function using regen.execute(regobj)
Get the result through a RegistryObject
Stop RegistryObject is a
simple interface which inherits
Serializable interface RegistryEngine class supports lookup mechanism to invoke suitable UDDI function based on the request
UDDI request can be any request as listed in UDDI specification
We need to look at structures of various request classes
We need to look at the callback mechanism that RegistryEngine supports We need to look at internal design of UDDI functions (how they process the requests) We need to know what the results are
Thiết kế cơ sở dữ liệu mà juddi hỗ trợ hiện nay như sau (ở đây chỉ nêu sơ đồ thực thể – mối liên kết, chi tiết thuộc tính của từng thực thể được trình bày trong phuù luùc):
Hình 22 Lược đồ thực thể – mối quan hệ được dùng trong juddi
juddi được phát triển với hướng mở: Mỗi thành phần trong juddi đều có phần hiện thực mặc định, ngoài ra người dùng có thể tự phát triển một phần thay thế hay nâng cao để tăng cường tính năng của juddi phục vụ nhu cầu sử dụng cuûa mình.
Để xác định quyền của người sử dụng khi tiến hành các chức năng đăng ký hay loại bỏ đăng ký (phần publish), juddi sử dụng cách mã hóa mật khẩu truy
Trong phần thao tác trên cơ sở dữ liệu thì juddi có phần hiện thực mặc định trong đó hỗ trợ nhiều loại hệ quản trị cơ sở dữ liệu khác nhau và có hỗ trợ giao dịch. Trong bản cài đặt juddi không hỗ trợ sẵn MS SQL Server nhưng trong quá trình thực hiện luận văn này, tác giả đã tiến hành các thao tác cần thiết để sử dụng juddi với MS SQL Server.
Để thao tác trên UDDI registry thuận tiện thì cần có phần quản lý thông tin trong UDDI registry phục vụ cho một nhà xuất bản cũng như phục vụ cho những người có nhu cầu tìm kiếm các dịch vụ Web trên UDDI registry. Trong phạm vi luận văn, chức năng thu nhỏ của một trình duyệt UDDI registry được hiện thực để giúp truy xuất các thông tin này.
Các công cụ đã được tìm hiểu để áp dụng gồm UDDI4J [14], phần hỗ trợ chức năng client trong juddi, Microsoft UDDI SDK. Phần hiện thực cụ thể của luận văn sử dụng Microsoft UDDI SDK [7] trong chương trình viết bằng VB.NET để cung cấp các chức năng thu nhỏ của trình duyệt UDDI registry.
Một phần giao diện người dùng phục vụ tương tác với UDDI registry được trình bày dưới đây:
Hình 24 Giao diện người dùng để thêm Publisher