Tải bản đầy đủ (.pdf) (116 trang)

Sử dụng XSLT trong IBM Data Studio Developer để chuyển đổi các thông điệp dịch vụ Web dữ liệu (Data Web Services) ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.58 MB, 116 trang )

Sử dụng XSLT trong IBM Data Studio Developer để chuyển đổi các thông
điệp dịch vụ Web dữ liệu (Data Web Services)
Cách sử dụng đặc tính XSLT trong dịch vụ Web dữ liệu để tùy biến các thông điệp
vào và ra của dịch vụ Web
Kavitha Pullela, Kỹ sư phát triển phần mềm, IBM
Michael Schenker, Kỹ sư phần mềm, IBM
Tóm tắt: IBM® Dịch vụ Web dữ liệu là một phần của IBM Data Studio
Developer, một nền công cụ đồng nhất cho các máy chủ cơ sở dữ liệu IBM. Dịch
vụ Web dữ liệu có thể được sử dụng để thể hiện các thao tác cơ sở dữ liệu và các
thủ tục đã được lưu trữ như là các dịch vụ Web mà không phải lập trình. Bạn có
thể tùy biến thêm các thông điệp mà các ứng dụng khách gửi và nhận từ các dịch
vụ Web. Bài viết này hướng dẫn bạn cách áp dụng các phép biến đổi XSL cho các
thông điệp vào và ra để phù hợp với đa dạng khách hàng.
Trước khi bắt đầu
Tìm hiểu xem mình mong đợi gì từ bài viết này và làm thế nào để có được kết quả
cao nhất
Lời giới thiệu
Một đặc tính rất mạnh của các dịch vụ Web dữ liệu là khả năng ứng dụng các biến
đổi XSL phía máy chủ cho các phản hồi và yêu cầu dịch vụ Web. Đặc tính này
cho phép bạn tùy biến định dạng của các thông điệp mà khách hàng nhìn thấy. Đặc
tính này đặc biệt quan trọng trong các trường hợp mà các yêu cầu định dạng dịch
vụ Web cho các tổ chức, các ngành chỉ rõ là các thông điệp dịch vụ cần phải có
dạng như thế nào.
Các dịch vụ Web dữ liệu có định dạng thông điệp mặc định khi có yêu cầu dịch vụ
Web và các thông điệp phản hồi. Định dạng thông điệp và các tên thẻ XML trong
các thông điệp đó phụ thuộc vào tên thao tác dịch vụ Web, tập kết quả tên các
cột, Trong một số trường hợp, do yêu cầu định dạng thông điệp hoặc chỉ đơn
giản là bởi vì bạn muốn giấu các tên thẻ ngầm định, bạn có thể không muốn để
cho khách hàng nhìn thấy các tên thẻ ngầm định đó. Sử dụng đặc tính XSLT phía
máy chủ, chúng ta có thể làm cho các yêu cầu XML đến và các kết quả đi có dạng
khác với định dạng thông điệp ngầm định của dịch vụ Web dữ liệu.


Nói chung, các dịch vụ Web có thể được xây dựng bằng cả cách tiếp cận từ trên
xuống (top-down) hoặc từ dưới lên (bottom-up). Với cách tiếp cận từ trên xuống,
bạn bắt đầu với một đặc tả dịch vụ (ví dụ, một tệp WSDL) rồi tiếp theo, chạy đoạn
mã phía dưới để sao cho phù hợp với đặc tả đó. Với cách tiếp cận từ dưới lên, bạn
bắt đầu với một Java bean hoặc một câu lệnh SQL và đưa ra kết quả là các dịch vụ
Web. Sử dụng các dịch vụ Web dữ liệu, bạn bắt đầu với các thao tác DML (ví dụ,
các truy vấn) và hiển thị chúng như là các dịch vụ Web. Do đó, đặc trưng là kiểu
phát triển chương trình từ dưới lên. Tuy nhiên, bằng cách áp dụng XSLT vào các
thông điệp dịch vụ, trong nhiều trường hợp, bạn có thể chiếu định dạng dịch vụ
của các thông điệp dạng bottom-up sang thiết kế top-down. Cách này làm giảm
bớt một số yêu cầu định dạng dịch vụ kiểu top-down trong khi cho phép bạn phát
triển các dịch vụ Web bottom-up. Việc chuyển đổi cũng có thể được sử dụng để
chuyển dữ liệu đến cho khách hàng dưới định dạng có thể đọc được ví dụ như là
HTML, JSON, RSS feeds hay bất cứ định dạng văn bản(text) nào mà có thể là kết
quả từ một phép biến đổi XSL
Bài viết này hướng dẫn để bạn tạo ra và triển khai các dịch vụ Web dữ liệu IBM
trên một máy chủ ứng dụng và cũng đưa ra một cái nhìn tổng quát toàn diện về
việc làm thế nào để sử dụng đặc tính XSLT để tùy biến các thông điệp đến và đi
của một dịch vụ Web minh họa cho vừa vào lược đồ XML tùy biến của bạn.

Hình 1. Áp dụng XSLT – Tùy chọn các định dạng phân tán



Các mục tiêu
Trong bài viết này bạn sẽ học:
 Sử dụng đặc tính XSLT, mà giờ đây đặc tính này là một phần của các dịch
vụ Web dữ liệu.
 Tạo ra một lược đồ ngầm định cho một dịch vụ Web minh họa.
 Ứng dụng các phép biến đổi kiểu Web để hiển thị đầu ra dưới các định

dạng HTML, JSON và RSS.
 Ứng dụng các lược đồ tùy biến của bạn cho các thông điệp SOAP.


Các điều kiện tiên quyết
Bài viết này viết cho các lập trình viên cơ sở dữ liệu, những người đã quen thuộc
với IBM Data Studio và biết làm thế nào để thực hiện các thao tác thông thường
như là tạo một kết nối cơ sở dữ liệu, một dự án phát triển dữ liệu và các tập lệnh
SQL hoặc các thủ tục lưu trữ. Nếu bạn chưa quen thuộc với các thao tác này thì
trước tiên bạn nên hoàn thành giáo trình "IBM Data Studio: Get started with Data
Web Services" (developerWorks, 11 - 2007). Các kiến thức cơ sở về XSLT, XSD,
và XPath được giới thiệu ở giáo trình này. Bởi vì tất cả các ví dụ trong tài liệu
hướng dẫn này đều dựa trên WebSphere® Application Server Community Edition
server như là môi trường đích, nên ở đây chúng ta giả sử rằng người đọc đã cài đặt
Data Studio Developer 1.2 với WebSphere Application Server Community Edition
server và đã thiết lập kết nối với cơ sở dữ liệu DB2 SAMPLE.
Các yêu cầu hệ thống
Để chạy các ví dụ trong tài liệu hướng dẫn này, bạn cần:
 IBM Data Studio Developer 1.2 cài đặt trên Windows
 IBM WebSphere Application Server Community Edition 1.1.0.2
 DB2 Versions 8 or 9 for Linux, Unix and Windows với cơ sở dữ liệu
SAMPLE đã được tạo sẵn.
Tạo một dịch vụ Web đơn giản
Bài viết này sử dụng một ứng dụng Web đơn giản để minh họa các đặc tính XSLT.
Phần này mô tả cách bạn tạo ra dịch vụ Web này bằng cách sử dụng IBM Data
Studio Developer. Dịch vụ Web này dựa trên cơ sở dữ liệu DB2 SAMPLE. Bài
viết "IBM Data Studio: Get started with Data Web Services" (developerWorks, 11
- 2007) chỉ cho bạn cách làm thế nào để có thể tạo ra một kết nối cơ sở dữ liệu và
một khởi tạo WebSphere Application Server Community Edition server. Bài viết
này giả sử rằng bạn đã có kết nối cơ sở dữ liệu DB2 SAMPLE và WebSphere

Application Server Community Edition server đã được cài đặt.
Tạo một dự án phát triển dữ liệu
1. Tạo một dự án phát triển dữ liệu bằng cách nhấn chuột phải vào khoảng
trống trong Data Project Explorer và chọn New > Data Development
Project.

Hình 2. Tạo một dự án phát triển dữ liệu mới

2. Đặt tên dự án ProjectXSLT, và nhấn Next.

Hình 3. Các tùy chọn để tạo một dự án mới

3. Sử dụng kết nối với cơ sở dữ liệu DB2 SAMPLE mà chúng ta đã thiết lập
trước đây, rồi nhấn Finish.

Hình 4. Các tùy chọn để tạo một dự án mới

4. Dự án mới trong Data Project Explorer cần phải có dạng như sau:

Hình 5. Dự án phát triển dữ liệu đã được tạo ra

Tạo ra một dịch vụ Web mới trong dự án
1. Tạo ra một dịch vụ Web mới bằng cách nhấn chuột phải vào thư mục Web
Services trong dự án phát triển dữ liệu của bạn và chọn New Web Service.

Hình 6. Tạo một dịch vụ Web

2. Đặt tên cho dịch vụ Web MyWebServiceXSLT và để urn:example như là
namespace (không gian tên) URI. Không gian tên URI được sử dụng trong
WSDL để làm cho dịch vụ Web cũng như các lược đồ XML phù hợp với

các thông điệp vào và ra của XML. Bằng cách tuân thủ các quy định về
việc tạo URI, bạn có thể đưa vào bất cứ chuỗi kí tự nào. nhấn Finish.

Hình 7. Các tùy chọn để tạo một dịch vụ Web

3. Đến bây giờ thì dự án phát triển dữ liệu của bạn cần phải có dạng như Hình
8. Sử dụng thủ thuật này, bạn đã tạo ra một “lớp vỏ” cho dịch vụ Web dữ
liệu, và giờ đây thì dịch vụ Web dữ liệu này đã có thể được đưa vào sử
dụng với các thao tác cơ sở dữ liệu.

Hình 8. Dự án với dịch vụ Web mới đã được tạo ra

Thêm các thao tác cơ sở dữ liệu vào dịch Web
1. Bạn có thể thêm các thao tác cơ sở dữ liệu và lưu các thủ tục vào dịch vụ
Web của bạn bằng cách nhấn chuột phải vào dịch vụ Web và chọn New
Operation.

Hình 9. Thêm các thao tác cơ sở dữ liệu vào dịch vụ Web

2. Đặt tên cho thao tác getAllEmp và định nghĩa thao tác đó, như đã được chỉ
ra trong Hình 10 rồi chọn Finish.

Hình 10. Định nghĩa một thao tác mới

3. Một cách khác là bạn có thể tạo ra một thao tác cơ sở dữ liệu bằng cách
nhấn chuột phải vào thư mục SQL Scripts và chọn New > SQL or
XQuery Script. Tạo ra một thao tác khác bằng cách sử dụng phương thức
này.

Hình 11. Một cách khác để định nghĩa thao tác cơ sở dữ liệu


4. Đặt tên cho tập lệnh (script) getOneEmp, chọn các thiết lập khác như đã
được chỉ ra trong Hình 12, rồi nhấn Finish.

Hình 12. Định nghĩa một thao tác cơ sở dữ liệu khác

5. Sử dụng SQL editor để soạn thảo tệp đã được tạo ra như Hình 13:

Hình 13. Soạn thảo tệp

6. Kéo tập lệnh từ thư mục SQL Scripts thả vào thư mục dành cho dịch vụ
Web mà bạn đã tạo ra. Bước này biến SQL tập lệnh thành thao tác trong
dịch vụ Web.

Hình 14. Kéo thả tập lệnh

7. Định nghĩa dịch vụ Web đã hoàn thành. Bây giờ thì dịch vụ Web với 2 thao
tác (getOneEmp và getAllEmp) cần có dạng như Hình 15:

Hình 15. Ví dụ của dịch vụ Web đã được định nghĩa

Trong phần sau, bạn sẽ sinh ra lược đồ ngầm định cho thông điệp vào và ra.
Sinh ra một lược đồ ngầm định cho thông điệp vào và ra
Phần này hướng dẫn bạn cách lấy lược đồ ngầm định cho các thông điệp vào và ra.
Khi bạn sử dụng Data Studio Developer để thêm một thao tác vào dịch vụ Web dữ
liệu, thì một phép chiếu lược đồ XML ngầm định được sinh ra cho các thông điệp
vào và ra của thao tác đó. Để sinh ra một XSLT tập lệnh, bạn phải biết được lược
đồ của XML mà bạn bắt đầu với (hoặc là bạn muốn chiếu đến) bởi vì lược đồ này
định nghĩa các định dạng thông điệp đến và đi XML ngầm định và có thể được sử
dụng làm điểm bắt đầu để phát triển các XSL tập lệnh. Bạn có thể sử dụng công cụ

dịch vụ Web dữ liệu để lấy lược đồ ngầm định cho một thao tác.
Lấy lược đồ ngầm định
1. Sau khi bạn thêm một thao tác vào dịch vụ Web, nhấn chuột phải thao tác
đó và chọn Manage XSLT.

Hình 16. Quản lý tùy chọn XSLT

2. Nhấn Generate Default.

Hình 17. Sinh lược đồ ngầm định

3. Giữ tên tệp ngầm định hoặc thay đổi nó nếu bạn muốn, rồi nhấn Save.

Hình 18. Lưu tệp

4. Nhấn Finish trong thủ thuật định dạng các phép biến đổi XSL (Configure
XSL Transformations).

Hình 19. Sinh ra tùy chọn lược đồ ngầm định

5. Làm mới lại (refresh) thư mục ProjectXSLT và bây giờ bạn cần có tệp
lược đồ ngầm định thêm vào trong thư mục XML Schema trong dự án của
mình.

Hình 20. Lược đồ ngầm định trong thư mục XML

6. Chúng ta cũng thực hiện thủ tục giống như trên để tạo ra lược đồ ngầm định
cho getOneEmp. nhấn chuột phải thao tác đó, chọn Manage XSLT. nhấn
Generate Default, rồi nhấn Save để lưu tệp.


Hình 21. Sinh lược đồ cho thao tác getOneEmp

7. Nhấn Finish. Làm mới lại dự án và bạn sẽ thấy tệp lược đồ ngầm định cho
thao tác getOneEmp trong thư mục XML Schema.

Hình 22. Lược đồ ngầm định trong thư mục XML

Tìm hiểu lược đồ ngầm định
Lược đồ ngầm định được sinh ra bao gồm hai định nghĩa phần tử. Định nghĩa phần
tử cho thông điệp vào thì giống như thao tác (getOneEmp) và định nghĩa phần tử
cho thông điệp ra thì tên được đặt dưới dạng tên của thao tác cộng thêm phần đuôi
“Response” (getOneEmpResponse). Các tham số vào của truy vấn SQL được liệt
kê ở thông điệp vào. Hình 1 thể hiện lược đồ đã được sinh ra cho thao tác
getOneEmp:

Ví dụ 1. Lược đồ ngầm định đã được sinh ra

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="
xmlns:xsd="
targetNamespace="urn:example" xmlns:tns="urn:example">
<element name="getOneEmp">
<complexType>
<sequence>
<element name="empno" type="xsd:string" nillable="true"/>
</sequence>
</complexType>
</element>
<element name="getOneEmpResponse">
<complexType>

<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="row">
<complexType>
<sequence>
<element name="EMPNO" type="xsd:string"/>
<element name="FIRSTNME" type="xsd:string"/>
<element name="MIDINIT" type="xsd:string" nillable="true"/>
<element name="LASTNAME" type="xsd:string"/>
<element name="WORKDEPT" type="xsd:string" nillable="true"/>
<element name="PHONENO" type="xsd:string" nillable="true"/>
<element name="HIREDATE" type="xsd:date" nillable="true"/>
<element name="JOB" type="xsd:string" nillable="true"/>
<element name="EDLEVEL" type="xsd:short"/>
<element name="SEX" type="xsd:string" nillable="true"/>
<element name="BIRTHDATE" type="xsd:date" nillable="true"/>
<element name="SALARY" type="xsd:decimal" nillable="true"/>
<element name="BONUS" type="xsd:decimal" nillable="true"/>
<element name="COMM" type="xsd:decimal" nillable="true"/>
</sequence>
</complexType>
</element>
</sequence>

×