Dịch vụ Web dữ liệu hỗ trợ các họ cơ sở dữ liệu DB2®, máy chủ Informix® Dynamic Server IDS của IBM và nhiều máy chủ dịch vụ Web đại chúng, ví dụ Apache Tomcat v5.5, WebSphere® Applicatio
Trang 1Dịch vụ Web dữ liệu của IBM Data Studio, Phần 1: IBM
Data Studio: Bắt đầu với dịch vụ Web dữ liệu
Phát triển dịch vụ Web dữ liệu đầu tiên của bạn với IBM Data Studio
Michael L Pauser, Nhà phát triển Web, IBM
Tóm tắt: Giải pháp Data Studio của IBM® bao gồm nhiều đặc tính mới, trong số
các đặc tính đó là việc hỗ trợ dịch vụ Web dữ liệu Dịch vụ Web dữ liệu là bộ cung cấp dịch vụ Web thuộc thế hệ kế tiếp cho các máy chủ cơ sở dữ liệu của IBM Dịch vụ Web dữ liệu cung cấp một giao diện dịch vụ Web đầy đủ, hỗ trợ cho REST- style (liên kết HTTP GET/POST) cũng như SOAP trên nền HTTP và sinh
ra WSDL tự động Dịch vụ Web dữ liệu hỗ trợ các họ cơ sở dữ liệu DB2®, máy chủ Informix® Dynamic Server (IDS) của IBM và nhiều máy chủ dịch vụ Web đại chúng, ví dụ Apache Tomcat v5.5, WebSphere® Application Server V6.1 và Community Edition V1.1.1 của IBM
Trước khi bạn bắt đầu
Hãy tìm hiểu bạn sẽ học được gì và làm thế nào để học được nhiều nhất từ hướng dẫn này
Trang 2 Tạo một kết nối tới cơ sở dữ liệu
Tạo một dự án phát triển dữ liệu
Tạo một kịch bản lệnh SQL
Tạo một dịch vụ Web
Bổ xung các tập lệnh SQL
Thêm các thủ tục lưu vào dịch vụ Web
Thêm một máy chủ Web
Triển khai một dịch vụ Web
Kiểm thử dịch vụ Web
Một số yêu cầu
Hướng dẫn này giả thiết rằng sản phẩm sau đã được cài đặt:
Cơ sở dữ liệu DB2 9.5 của IBM cho các hệ điều hành Linux, Unix và
Windows Tuy nhiên, bạn có thể sử dụng bất kỳ cơ sở dữ liệu DB2 nào có
hỗ trợ dịch vụ Web dữ liệu Ngoài ra, bạn cần cài đặt sẵn cơ sở dữ liệu mẫu SAMPLE của DB2 Nếu bạn chưa cài đặt cơ sở dữ liệu SAMPLE, xin tham khảo trung tâm Thông tin DB2 để có các chỉ dẫn cài đặt
Trang 3 Data Studio của IBM phiên bản V1.1 Trong khi cài đặt, cần phải bảo đảm chắc chắn rằng thành phần phát triển dịch vụ Web dữ liệu đã được đánh dấu chọn
Máy chủ ứng dụng WebSphere Application Server Community Edition, V1.1 (WebSphere ASCE) Đây là máy chủ dịch vụ Web miễn phí của IBM Ảnh cài đặt cho WebSphere ASCE có thể được gói kèm trong bộ cài đặt Data Studio IBM Nếu không có, xin tham khảo trang WebSphere
Application Server Community Edition để có thêm thông tin hay để tải ảnh cài đặt WebSphere ASCE
Tạo kết nối tới cơ sở dữ liệu
Để tạo một dịch vụ Web, việc đầu tiên cần làm là tạo một kết nối tới cơ sở dữ liệu của bạn
1 Từ cửa sổ Database Explorer trong Data Studio IBM, bạn mở rộng nút
Connections Nếu bạn thấy hiện đang có một kết nối tới cơ sở dữ liệu
SAMPLE thì chuyển sang mục Create a data development project
2 Chọn nút Connections, nhấp chuột phải và chọn New Connection… Động
tác này khởi động thủ thuật tạo kết nối mới
3 Hoàn tất thủ thuật tạo kết nối mới bằng việc điền các thông tin được yêu cầu Trong đa số trường hợp, bạn sẽ chỉ cần thay đổi giá trị tại các mục
Host, User ID và Password
Trang 4Hình 1 Các tham số kết nối
4 Bạn có thể kiểm tra kết nối bằng cách nhấp nút Test Connection
5 Nhấp nút Finish Cửa sổ thủ thuật tạo kết nối mới đóng lại và đường kết
nối với cơ sở dữ liệu SAMPLE mà bạn vừa mới tạo ra xuất hiện trong cửa
sổ khảo sát cơ sở dữ liệu
Trang 5Hình 2 Kết nối mới tới cơ sở dữ liệu SAMPLE
Tạo một dự án phát triển dữ liệut
Bây giờ sau khi đã tạo được một kết nối tới cơ sở dữ liệu SAMPLE, bạn cần tạo ra một dự án phát triển dữ liệu Các dự án phát triển dữ liệu được sử dụng để phát triển ứng dụng cơ sở dữ liệu Kiểu dự án này được kết hợp với một kết nối đơn trong cửa sổ khảo sát cơ sở dữ liệu Bạn có thể sử dụng các dự án phát triển dữ liệu để phát triển những tài nguyên sau đây:
Phát triển, kiểm thử và triển khai các thủ tục lưu SQL và Java™ và các hàm
Trang 6 Phát triển và triển khai các dịch vụ Web truy nhập dữ liệu bằng cách sử dụng các kịch bản lệnh SQL hay các thủ tục lưu
Hãy theo các bước sau để tạo một dự án phát triển dữ liệu:
1 Từ thanh thực đơn của Data Studio, di chuyển tới File > New > Data
Development Project Động tác này sẽ khởi động thủ thuật tạo dự án phát
triển dữ liệu mới
2 Đổi trường Project name thành Demo
Hình 3 Dự án phát triển dữ liệu
Trang 73 NhấpNext
4 Chọn kết nối tới SAMPLE hiện có
Hình 4 Chọn kết nối
5 NhấpFinish Một dự án phát triển dữ liệu mới có tên "Demo" hiện ra trên
cửa sổ Data Project Explorer
6 Chọn kết nối tới SAMPLE hiện có
Trang 8Hình 5 Dự án dữ liệu mới “Demo”
Tạo một kịch bản lệnh SQL hay một thủ tục lưu
Dịch vụ Web bao gồm các kịch bản lệnh SQL và các thủ tục lưu mà bạn muốn phô bày như các dịch vụ Web Để tạo một kịch bản lệnh SQL, hãy theo các bước sau :
1 Từ cửa sổ khảo sát dự án dữ liệu, chọn nút SQL Scripts, nhấp chuột phải
và chọn New > SQL or XQuery Script Động tác này khởi động thủ thuật
tạo kịch bản lệnh SQL hoặc XQuery mới
2 Thay đổi trường Name thành getAllEmp
Trang 9Hình 6 Tên và công cụ
3 Bạn có hai tùy chọn bộ biên tập khác nhau Bộ biên tập SQL cung cấp một vùng văn bản cảm ngữ cảnh để nhập câu lệnh SQL Bộ dựng SQL cung cấp một phương thức tương tác để xây dựng câu lệnh SQL Trong ví dụ này, hãy sử dụng bộ biên tập SQL tuỳ chọn mặc định
4 Nhấn Finish Thủ thuật đóng lại và một phiếu mới có tên "getAllEmp.sql"
xuất hiện Nó chứa một vùng văn bản cảm ngữ cảnh để bạn nhập câu lệnh SQL
5 Tại vùng văn bản trong phiếu getAllEmp.sql, hãy nhập câu lệnh SQL sau đây:
select * from employee
Trang 11Hình 8 Kịch bản lệnh SQL: getAllEmp.sql
Việc tạo ra các thủ tục lưu được thực hiện cũng bằng cách này Từ cửa sổ khảo sát
dự án dữ liệu, bạn chọn nút Stored Procedures, nhấp chuột phải và chọnNew >
Stored Procedure Cửa sổ New Stored Procedure xuất hiện và hướng dẫn bạn
suốt quá trình tạo ra một thủ tục lưu Tuy nhiên, đối với ví dụ này, thủ tục lưu đã
có trong cơ sở dữ liệu SAMPLE database — vì thế bạn không cần tạo ra một thủ
tục lưu mới
Tạo một dịch vụ Web SQL
Bây giờ khi đã có một kịch bản lệnh SQL, bạn có thể tạo ra một dịch vụ Web
Trang 121 Từ cửa sổ Data Project Explorer, chọn nút Web Services, nhấp chuột phải
và chọn New Web Service Động tác này khởi động thủ thuật tạo dịch vụ
Web mới
2 Thay đổi trường Name thành MyWebService
Hình 9 Định nghĩa một dịch vụ Web mới
3 Nhấp nút Finish Dịch vụ Web "MyWebService” mà bạn vừa mới tạo ra
được liệt kê dưới nút Web Services trong cửa sổ khảo sát dự án dữ liệu
Trang 13Hình 10 MyWebService mới tại cửa sổ Data Project Explorer
Thêm một kịch bản lệnh SQL vào dịch vụ Web
Để thêm một kịch bản lệnh SQL vào dịch vụ Web, hãy theo các bước sau:
1 Từ cửa sổ Data Project Explorer, chọn kịch bản lệnh SQL Trong ví dụ này,
bạn chọn getAllEmp.sql
2 Kéo và thả tệp getAllEmp.sql vào cửa sổ MyWebService
3 Bây giờ dịch vụ Web MyWebService của bạn có một phép toán có tên là
"getAllEmp."
Trang 14Hình 11 Phép toán mới: getAllEmp
Thêm một thủ tục lưu vào dịch vụ Web
Việc thêm một thủ tục lưu vào dịch vụ Web cũng được làm cùng cách như thêm kịch bản lệnh SQL Nếu nút các thủ tục lưu trong cửa sổ khảo sát dự án dữ liệu có một hoặc nhiều thủ tục lưu, bạn có thể đơn giản lựa chọn các thủ tục lưu và kéo-thả chúng lên các dịch vụ Web mong muốn Tuy nhiên, trong ví dụ này bạn sẽ sử dụng một thủ tục lưu đã triển khai trên cơ sở dữ liệu SAMLE, nhưng thủ tục này không tồn tại trong cửa sổ khảo sát dự án dữ liệu Để thêm một thủ tục lưu đã triển khai vào dịch vụ Web, hãy theo các bước sau :
1 Từ cửa sổ khảo sát dự án dữ liệu, nhấn SAMPLE > SAMPLE > Schemas
> {schema id} > Stored Procedures Trong ví dụ này, {schema id} là
DB2ADMIN — schema ID của bạn có thể khác Bạn sẽ phải nhìn thấy một thủ tục lưu có tên "BONUS_INCREASE." Nếu bạn không tìm thấy thủ tục lưu này thì có lẽ bạn đã tạo ra cơ sở dữ liệu SAMPLE sử dụng một schema
Trang 15ID khác
Hình 12 Cửa sổ khảo sát cơ sở dữ liệu: Thủ tục lưu
BONUS_INCREASE
2 Kéo-thả tệp BONUS_INCREASE vàoMyWebService vào trong nhánh
dịch vụ Web tại cửa sổ khảo sát dự án dữ liệu
3 Bây giờ dịch vụ Web MyWebService của bạn có phép toán mang tên
"BONUS_INCREASE."
Trang 16Hình 13 Phép toán mới : BONUS_INCREASE
Thêm một cá thể máy chủ Web
Một cá thể của máy chủ Web đơn giản là một định nghĩa cho máy chủ Web hiện
có Nếu đây là dịch vụ Web đầu tiên của bạn, thì nhiều khả năng là bạn không có bất kỳ một cá thể máy chủ Web nào đã được định nghĩa trong không gian làm việc tại Data Studio IBM Để thêm một cá thể máy chủ Web vào không gian làm việc của mình, hãy theo các bước sau :
1 Từ thanh thực đơn của IBM Data Studio, di chuyển tới Window > Show
View > Other > Server,và chọn nút Servers
Trang 17Hình 14 Cửa sổ Show view
2 Nhấp OK Bây giờ phiếu Servers xuất hiện trong không gian làm việc của
bạn
Hình 15 Phiếu Servers
3 Từ phiếu Servers, nhấp chuột phải trong vùng trắng và chọn New > Server
Thủ thuật máy chủ mới xuất hiện
4 Trên trang Define a New Server, chọn máy chủ Web hỗ trợ dịch vụ Web dữ
liệu bạn muốn Tại ví dụ này, chọn WebSphere Application Server
Community Edition V1.1
Trang 18Hình 16 Xác định máy chủ mới
5 Nhấp Next
6 Trên trang Runtime, hãy định rõ thư mục nơi máy chủ Web của bạn được cài đặt Trong ví dụ này, máy chủ Web WebSphere Application Server Community Edition V1.1 được cài đặt tại thư mục C:\wasce\
Hình 17 Trang runtime mới của New WebSphere Community Edition
Trang 19Server V1.1
7 Nhấp Next Ghi chú: Điều quan trọng ở đây là bạn nhấp nút Next xuyên
suốt các trang thủ thuật máy chủ mới còn lại Nếu không làm thế, có thể dẫn đến kết quả là cá thể mới của máy chủ Web của bạn không hợp lệ
8 Trên trang Server có danh sách nhiều cổng kết nối, mã ID và mật khẩu của người quản trị Trong ví dụ này, hãy chấp nhận các mặc định
Trang 20Hình 18 Máy chủ WebSphere Community Edition Server V1.1 mới
9 Nhấp Next
10 Từ trang Add and Remove Projects, nhấp Next
11 Cuối cùng, trên trang Select Tasks, nhấp Finish để tạo một cá thể máy chủ
Web Trên phiếu Servers bây giờ sẽ liệt kê cá thể máy chủ Web mới
Hình 19 Cá thể máy chủ WebSphere Application Server Community
Trang 21Triển khai dịch vụ Web
Bây giờ khi đã có dịch vụ Web MyWebService, với hai phép toán
BONUS_INCREASE và getAllEmp và một máy chủ Web, bạn sẵn sàng để triển khai MyWebService tại máy chủ Web WebSphere ASCE V1.1 Để triển khai dịch
vụ Web, bạn theo các bước sau :
1 Từ cửa sổ khảo sát dự án dữ liệu, hãy chọn dịch vụ Web để triển khai
Trong ví dụ này, bạn chọn MyWebService Nhấp chuột phải và chọn Build
and Deploy Thủ thuật triển khai dịch vụ Web xuất hiện
Trang 22Hình 21 Triển khai dịch vụ Web
2 Chọn kiểu máy chủ Web và một cá thể đã định nghĩa Trong ví dụ này, bạn
muốn triển khai dịch vụ tại máy chủ Web WebSphere Application Server
Community Edition V1.1
3 Để chọn cá thể máy chủ Web là WebSphere ASCE V1.1 hãy nhấn nút tròn
Server trong khung Web Server Động tác này chỉ định rằng việc triển khai
(dịch vụ Web) sẽ được thực hiện tại máy chủ Web đã chọn Vì trước đó bạn
đã định nghĩa cá thể máy chủ Web của mình, nên cá thể máy chủ Web này
Trang 23sẽ xuất hiện trong hộp thả xuống (drop-down box) của trường Server
Hình 22 Chọn máy chủ Web
4 Tiếp theo bạn chọn các nghi thức truyền thông điệp sẽ dùng trong dịch vụ Web của mình — hoặc là Web-access (REST-style), Web service (SOAP), hoặc cả hai REST-style và SOAP Trong ví dụ này ta chọn cả hai
Hình 23 Chọn nghi thức truyền thông điệp
5 Mục các tham số được dùng để chỉ rõ những thuộc tính bổ sung cho Dịch
vụ Web Nói chung, bạn có thể bỏ qua mục này Tuy nhiên, nếu muốn sử dụng một gốc văn cảnh đặc biệt hay một máy SOAP khác, bạn có thể sử dụng nhóm này để điều chỉnh các giá trị tương ứng
Hình 24 Các tham số
6 Trong khi triển khai bạn có các tùy chọn bổ sung sau :
Trang 24o Đánh dấu hộp chọn cạnh trường Register database connection với máy chủ Web để chỉ thị cho dịch vụ Web dữ liệu cần phải tự động đăng ký kết nối cơ sở dữ liệu đã chọn với máy chủ Web Trong ví dụ này, hãy đánh dấu hộp chọn này Nếu bạn bỏ không chọn tùy chọn này, bạn phải khởi tạo thủ công vùng chứa (pool) cơ sở dữ liệu trong máy chủ Web cũng như điền giá trị cho các thuộc tính bổ sung xuất hiện trong nhóm Parameters
Hình 25 Đăng ký kết nối cơ sở dữ liệu
o Data Studio của IBM bao gồm một bộ khảo sát dịch vụ Web cắm
sẵn Nó cho phép bạn xem và kiểm tra các dịch vụ Web Khi triển
khai các dịch vụ Web dữ liệu bạn có thể đánh dấu hộp chọn Launch
Web Services Explorer after deployment Sau khi hoàn tất triển
khai, bộ khảo sát các dịch vụ Web tự động khởi động
Hình 26 Khởi động bộ khảo sát dịch vụ Web
7 Nhấp Finish Quá trình triển khai dịch vụ Web bắt đầu Sau khi hoàn thành,
cờ báo (*) "dirt" của MyWebService được bật lên và MyWebService liệt kê
cá thể máy chủ Web được triển khai trong nhãn nút của mình
Trang 25Hình 27 Dịch vụ Web đã triển khai
8 Vì hộp chọn khởi chạy bộ khảo sát dịch vụ Web sau khi triển khai được đánh dấu, nên cửa sổ khảo sát dịch vụ Web xuất hiện
Trang 26Hình 28 Cửa sổ khảo sát dịch vụ Web
Sử dụng bộ khảo sát dịch vụ Web để kiểm tra các dịch vụ Web đã được triển
khai
Sử dụng bộ khảo sát các dịch vụ Web, bạn có thể kiểm tra các dịch vụ Web đã được triển khai Hãy nhớ rằng, khi triển khai dịch vụ Web, bạn có lựa chọn đánh
dấu hộp chọn Launch Web Services Explorer after deployment để khởi động
bộ khảo sát dịch vụ Web sau khi triển khai Ngoài ra bạn có thể chọn một dịch vụ
Web, nhấp chuột phải và chọn Launch Web Services Explorer Cả hai cách đều
làm xuất hiện phiếu Web Services Explorer
Trang 27Hình 29 Bộ khảo sát dịch vụ Web
Trong vùng Bindings của cửa số bộ khảo sát các dịch vụ Web sẽ hiển thị các liên kết của các dịch vụ Web Vì khi triển khai bạn đã chọn các nghi thức truyền thông điệp cho truy cập Web (REST-style) và cho dịch vụ Web (SOAP), nên các liên kết
đó sẽ được liệt kê: REST-style gồm có các kiểu HTTP GET và HTTP POST, SOAP gồm có kiểu SOAP Để kiểm tra kiểu liên kết của dịch vụ Web, hãy theo các bước sau :
1 Nhấp chuột vào liên kết MyWebServiceSOAP Màn hình các chi tiết liên
kết WSDL sẽ được hiển thị
Trang 28Hình 30 Màn hình các chi tiết liên kết WSDL
2 Trong vùng Operations, sẽ nhìn thấy hai phép toán của dịch vụ Web của bạn là — BONUS_INCREASE, biểu thị thủ tục lưu và getAllEmp, biểu thị
kịch bản lệnh SQL Nhấp chuột vào BONUS_INCREASE
3 Từ màn hình triệu gọi phép toán WSDL, bạn sẽ thấy rằng phép toán
BONUS_INCREASE có hai tham số nhập: : P_BONUSFACTOR và
P_BONUSMAXSUMFORDEPT Hãy gán giá trị 1.1 cho tham số
P_BONUSFACTOR và gán giá trị 1000 cho tham số
P_BONUSMAXSUMFORDEPT
Trang 29Hình 31 Màn hình triệu gọi phép toán WSDL
4 NhấnGo
5 Vùng Status hiển thị các kết quả của việc thực hiện phép toán Bằng cách
nhấp đúp chuột trên thanh tiêu đề Status, bạn có thể mở rộng vùng này
Hình 32 Vùng Status trong bộ khảo sát các dịch vụ Web
Trang 30Nhấp đúp chuột trên thanh tiêu đề Status lần nữa để trả lại ô Status về kích
thước bình thường của nó Một cách làm khác là nhấp chuột lên siêu liên
kết Source để xem các phong bì yêu cầu dịch vụ (SOAP request) và trả lời
(SOAP response)
Kiểm tra dịch vụ Web bằng cách sử dụng bộ duyệt Web
Trong tệp WSDL của dịch vụ Web chứa nhiều chi tiết, trong đó nhiều điểm triệu gọi dịch vụ Web Bạn có thể truy nhập nội dung của tệp WSDL bằng cách truy nhập URL sau đây từ bất kỳ bộ duyệt Web nào Trong ví dụ này, vì bạn đã triển khai tới máy chủ Web cục bộ, hãy mở URL
http://localhost:8080/DemoMyWebService/wsdl