CÔNG CỤ PROTÉGÉ CHO XÂY DỰNG OWL-S

Một phần của tài liệu Bài giảng phát triển phần mềm hướng dịch vụ (Trang 104 - 110)

OWL-S là một plugin của công cụ Protégé. Nhưđã trình bầy trong mục 5.4 đây là phần mềm được phát triển bằng Java bởi các nhà nghiên cứu từđại học Stanford. Do đó, trước khi cài đặt plugin OWL-S, ta cần tiến hành các bước sau:

§ Cài đặt máy ảo Java (JVM),

§ Download và cài đặt Protégé từ trang web: http://www.protege.stanford.edu/download.html

§ Download plug-in OWL từđịa chỉ:

http://www.protege.stanford.edu/plugins/owl/download.html

§ Giải nén vào thư mục < Protégé-dir >/plugins.

§ Download và cài đặt Graphviz từđịa chỉ:

http://www.research/att/com/sw/tools/graphviz/download.html

Phần mềm này cần thiết để chạy hệ soạn thảo OWL-S với giao diện đồ họa.

Sau khi hoàn thành các bước trên ta download OWL-S plugin từ địa chỉ

http://owlseditor.semwebcentral.org sau đó giải nén vào thư mục < Protégé-dir >/plugins. Sau khi hoàn thiện cài đặt thì trong thư mục Protégé có cấu trúc như hình 6.6.

Hình 6.6: Hoàn thin cài đặt b son tho OWL-S

Đến đây bạn có thể các project theo định dạng khác nhau chẳng hạn owl hoặc rdf. Phần dưới đây là hướng dẫn xây dựng một dịch vụ OWL-S sử dụng plugin OWL-S.

Giả sử ta muốn xây dựng một dịch vụ web tên là BravoAir [4] cung cấp các chức năng: SearchFlight (tìm kiếm chuyến bay), SelectFlight (lựa chọn chuyến bay mong muốn), và MakeReservation (đặt chỗ). Tương ứng với 3 chức năng này là 3 tiến trình đơn nguyên (atomic process). Trước hết ta cần xác định đầu vào và đầu ra cho các tiến trình đơn nguyên (atomic process) này. Các lược đồ dưới đây minh họa điều đó:

Hình 6.7: Đầu vào và đầu ra ca tiến trình đơn nguyên SearchFlight

Hình 6.8: Đầu vào và đầu ra ca tiến trình đơn nguyên SearchFlight

Hình 6.9: Đầu vào và đầu ra ca tiến trình đơn nguyên SearchFlight

Tương ứng với đầu vào và đầu ra của tiến trình đơn nguyên ta xác định các kiểu lớp (type of class), kiểu tên và tham số (name and parameter type) cho từng tham sốđầu vào và ra của mỗi tiến trình đơn nguyên; hình 6.10 minh họa các tham số của tiến trình đơn nguyên SearchFlight.

Bước tiếp theo tạo ra đồ thị biểu diễn mối liên hệ giữa các tiến trình. Trong trường hợp này, dịch vụ cần tạo khá đơn giản nên đồ thị có thểđược hiển thị dạng cây như hình 6.11.

.

Hình 6.11: Đồ th ca các tiến trình

Tiếp theo ta định nghĩa luồng dữ liệu. Trong trường hợp này đầu ra của tiến trình SearchFlight là FlightItineraries (các hành trình của chuyến bay) có thể là đầu vào của tiến trình SelectFlight. Trong cac trường hợp khác ví dụ như tiến trình là một tiến trình phức hợp thì luồng dữ liệu cần đươc xác định cho các tiến trình con.

Để xây dựng luồng dữ liệu thì các tham số cần được rang buộc (binding) giá trị dữ liệu, giá trị nguồn (dữ liệu đi từ đâu) và giá trị hàm. Ta phải thêm các câu lệnh SearchFlightPerform hay SelectFlightPerform để tạo giới hạn cho khoảng giá trị của tham số đầu vào. Bộ soạn thảo OWL-S sẽ tựđộng tạo ra một biểu diễn luồng dữ liệu trên đồ thị tiến trình. Để vẽ lại đồ thị tiến trình, các nút trên đồ thị có thể phải được khóa lại. các đồ thị con với các nút mầu vàng và chữ mầu xanh thể hiện luồng dữ liệu. Hình 6.12 là luồng dữ liệu cho dịch vụ BravoAir.

Hình 6.12: Lung điu khin và d liu

Bước tiếp đến là tạo OWL-grounding cho dịnh vụ. Trước hết ta cần tạo grounding có tên BravoAirSearchFlightGrounding cho tiến trình SearchFlight, thì biến thể hiện của grounding sẽ là grounding:WSDLAtomicProcessGrounding. Tương tự như vậy đối với các tiến trình SelectFlight và MakeReservation.

Hình 6.13: groundings cho các tiến trình ca dch v BravoAir

Bước tiếp theo là tạo OWL-S profile cho dịnh vụ. Đầu tiên ta cần lựa chọn các tham số

cho profile thường là tập con của tất cả các tham sốđầu vào và đầu ra của các tiến trình. Việc này quyết định bởi người thiết kế dịch vụ sẽ lựa chọn những tham số nào được xuất hiện trong profile của dịch vụ. Trong ví dụ này ta sẽ sử dụng tất cả các tham sốđã được định nghĩa ngoại

trừ các tham số nội bộ như FlightItineraries. Kết quả các tham số trong profile được trình bầy như hình 6.14.

Hình 6.14: Các tham s profile ca dch v (adsbygoogle = window.adsbygoogle || []).push({});

Bước cuối cùng là tạo dịch vụ và đặt tên cho nó. Sau đó liên kết dịch vụ vừa tạo với profile, các tiến trình và grounding mà ta đã tạo ở các bước trước. Ta cũng cần phái gán các biến thể hiện với các thuộc tính thích hợp. Chẳng hạn, biến thể hiện BravoAir_Profile cần có thuộc tính service:presents, BravoReservationFlight được gán cho service:describedBy, hay BravoAir_Grounding được gán cho service:supports.

7.5 BÀI TẬP

1. Hãy xây một dịch vụ Web sử dụng công cụ Protégé và plug-in OWL-S để cung cấp dịch vụ tra cứu điểm các môn học trong một học kỳ cho sinh viên đại học. Cơ sở dữ

liệu sinh viên cần được tạo trên hệ quản trị cơ sở dữ liệu do bạn lựa chọn (như SQL server, MS Access, MySQL v.v..). Cơ sở dữ liệu này có các bảng chứa các thông tin về sinh viên như: mã sinh viên, họ và tên sinh viên, học kỳ (học kỳ mấy?), danh sách các môn học theo từng học kỳ và điểm trung bình của từng môn học.

Trong dịch vụ Web có một phương thức là Tracuu với 2 tham sốđầu vào là mã sinh viên và học kỳ; phương thức này sẽ trả về tên sinh viên, danh sách các môn học và

điểm của từng môn theo học kỳ.

Học viên cũng được yêu cầu phát triển ứng dụng phía client để gọi đến (invoke) phương thức Tracuu và hiển thị thông tin trả về dưới dạng một bảng.

Học viên được yêu cầu tuân thủ các bước như ví dụ quản lý đặt chỗ cho chuyến bay ở

CHƯƠNG 8 KHÁM PHÁ DCH V WEB NG NGHĨA

Một phần của tài liệu Bài giảng phát triển phần mềm hướng dịch vụ (Trang 104 - 110)