Các định dạng công nghiệp là phần quan trọng của trao đổi thông tin chuẩn hoá giữa các hệ thống thông tin khác nhau thông qua ngành công nghiệp này, gồm chăm sóc y tế, bảo hiểm, kinh doanh tài chính. Các định dạng này dựa trên XML. Lược đồ XML định nghĩa cấu trúc của các tài liệu, theo nó tất cả các tài liệu phải được thực hiện. Ngoài lược đồ XML, một ngôn ngữ nữa dựa trên các phép chuyển đổi kiểu trang XML với tên Schematron có thể được sử dụng để quy định các luật để thực hiện việc xác nhận về nội dung của các tài liệu XML.
21 trang |
Chia sẻ: haohao89 | Lượt xem: 1867 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu WebSphere DataPower và DB2 pureXML: Xác thực lược đồ và nội dung XML thông qua sử dụng WebSphere DataPower và DB2 pureXML, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
WebSphere DataPower và DB2 pureXML, Phần 1: Xác thực lược đồ và nội
dung XML thông qua sử dụng WebSphere DataPower và DB2 pureXML
Susan Malaika, Chuyên viên kỹ thuật cao cấp, IBM Japan
Christian Pichler, Giải pháp máy chủ dữ liệu, IBM
Tóm tắt: Hiểu cách IBM® DB2® pureXML™ với tính năng mạnh, và cung cấp
truy cập linh hoạt và nhanh chóng đến các tài liệu XML được xác thực.
WebSphere DataPower Appliance thực hiện việc xác thực XML, và cơ sở dữ liệu
DB2 pureXML quản lý kho lưu trữ, lập chỉ mục, và các truy vấn XML.
Giới thiệu
Các định dạng công nghiệp là phần quan trọng của trao đổi thông tin chuẩn hoá
giữa các hệ thống thông tin khác nhau thông qua ngành công nghiệp này, gồm
chăm sóc y tế, bảo hiểm, kinh doanh tài chính. Các định dạng này dựa trên XML.
Lược đồ XML định nghĩa cấu trúc của các tài liệu, theo nó tất cả các tài liệu phải
được thực hiện. Ngoài lược đồ XML, một ngôn ngữ nữa dựa trên các phép chuyển
đổi kiểu trang XML với tên Schematron có thể được sử dụng để quy định các luật
để thực hiện việc xác nhận về nội dung của các tài liệu XML. Thậm chí cả DB2
pureXML cũng có khả năng đăng ký lược đồ XML, xác thực tài liệu XML và
chuyển đổi kiểu trang XML, Công cụ SOA WebSphere DataPowers (Các công cụ
SOA WebSphere DataPower Appliances) có thể tuân theo các giải pháp DB2
pureXML. Ví dụ, chúng có thể giảm bớt tải công việc xác thực và chuyển đổi
XML từ bộ xử lý DB2 thông qua việc áp dụng các khả năng XML của IBM
WebSphere DataPower ngoài khía cạnh định tuyến và an ninh của DataPower.
Bài viết này trình bày việc lưu giữ tự nhiên các tài liệu XML trong cơ sở dữ liệu
DB2 pureXML sau khi các tài liệu đã được xác thực thành công qua một
DataPower SOA Appliance, như trong Hình 1. Việc xác thực được thực hiện
thông qua hộp DataPower gồm xác thực các tài liệu XML so với xác thực nội
dung và lược đồ XML của chúng bằng cách sử dụng Schematron. (Để có nhiều chi
tiết hơn về Schematron, xin tham khảo mục Tài nguyên của bài này.)
Hình 1. Kịch bản đơn giản hoá
Một lợi ích chính của giải pháp này là WebSphere DataPower Applicance thực
hiện tất cả các bước xác thực, xử lý lỗi thích hợp, và lồng tài liệu XML vào cơ sở
dữ liệu DB2 pureXML, giảm bớt tải cho các bước xác thực cho bộ xử lý cơ sở dữ
liệu. Xin lưu ý rằng việc lồng vào được thực hiện chỉ khi tài liệu đã qua thành
công tất cả các bước xác thực.
Đây là bài đầu tiên trong loạt hai bài trên WebSphere DataPower và DB2
pureXML. Bài thứ hai sẽ mô tả cách DB2 pureXML có thể được sử dụng như log
kiểm toán dễ truy cập và truy vấn các thông báo XML đang được định tuyến,
chuyển đổi hoặc xác thực thông qua WebSphere DataPower.
Thiết lập kịch bản
Các mục sau cung cấp tổng quan chi tiết về cách kịch bản được thiết lập, gồm mẫu
lược đồ XML, các mẫu tài liệu XML, mẫu Schematron, cơ sở dữ liệu DB2
pureXML, Dịch vụ Web Dữ liệu, và cấu hình của Công cụ SOA WebSphere
DataPower.
Bước 1: Lược đồ XML, các tài liệu XML và Schematron
Bất kỳ định dạng công nghiệp nào dựa trên XML đều có thể được sử dụng trong
kịch bản này, ví dụ khi chúng được sử dụng trong trình diễn trực tuyến DB2
pureXML sẵn có miễn phí và công khai “Các định dạng và Dịch vụ Công nghiệp
và với pureXML” (xem Tài nguyên). Bài này sử dụng một lược đồ XML đơn giản,
như trong Liệt kê 1, và các tài liệu XML tương ứng, như trong các Liệt kê 2, 3 và
5 được tạo.
Liệt kê 1. Lược đồ XML mẫu (simple.xsd)
Dựa trên lược đồ XML định nghĩa trên đây, có hai tài liệu XML mẫu sau đây:
Tài liệu mẫu đầu tiên, như trong Liệt kê 2, là hợp lệ.
Tài liệu mẫu thứ hai, như trong Liệt kê 3, chứa XML đúng ngữ pháp,
nhưng là một tài liệu không hợp lệ theo lược đồ XML tương ứng do phần tử
được yêu cầu bị mất.
Liệt kê 2. Tài liệu XML mẫu 1 (simple_1.xml)
<person xmlns:xsi=""
xsi:noNamespaceSchemaLocation="simple.xsd">
1
christian
pichler
Liệt kê 3. Tài liệu XML mẫu 2 (simple_2.xml)
<person xmlns:xsi=""
xsi:noNamespaceSchemaLocation="simple.xsd">
christian
pichler
Để tiến thêm một bước và xác thực nội dung của các tài liệu XML, một ngôn ngữ
có tên gọi Schematron được sử dụng. Schematron là ngôn ngữ xác thực loại mô tả,
cho phép kiểm tra và kiểm tra chéo nội dung XML thông qua việc nêu rõ các luật
trong XPath, và của các thông báo lỗi theo thói quen mà các luật bị thất bại. Bài
viết này không đề cập đến các chi tiết của Schematron, nhưng quan trọng là biết
Schematron được điều khiển bởi các phép chuyển đổi kiểu trang XML. Trước hết,
các luật Schematron cần phải được định nghĩa trong một định dạng XML, như
trong Liệt kê 4. “Tài liệu các luật” này được chuyển đổi sang một kiểu trang XSL
bằng cách sử dụng kiểu trang XSL Schematron. Kết quả, kiểu trang XSL mới sau
đó được áp dụng cho mỗi tài liệu XML, và nếu nội dung không được như mong
đợi sẽ tạo các thông báo lỗi theo thói quen.
Liệt kê 4. Cài đặt Schematron (simple.sch)
Simple Schematron Validation Example
First name must not be 'christian'!
Thí dụ trên tìm kiếm tên riêng trong một tài liệu XML, kiểm tra xem liệu tên riêng
là “christian” hay không, và in ra một thông báo xác thực thất bại nếu nó gặp.
Trong trường hợp xác thực thất bại, thông báo sẽ là First name must not be
'christian'! (tên riêng không là 'christian'!).
Cuối cùng, một tài liệu XML mẫu được tạo hợp lệ về mặt xác thực đối với lược đồ
XML và đáp ứng luật Schematron định nghĩa trên đây:
Liệt kê 5. Tài liệu XML mẫu 3 (simple_3.xml)
<person xmlns:xsi=""
xsi:noNamespaceSchemaLocation="simple.xsd">
3
keith
wells
Bước 2: Cơ sở dữ liệu DB2 pureXML và Các Dịch vụ dữ liệu Web
Mục này mô tả cài đặt cơ sở dữ liệu DB2 pureXML, dùng như một kho dữ liệu sau
khi các tài liệu XML đã được xác thực. Như trong các Liệt kê 6 và 7, việc cài đặt
gồm một cơ sở dữ liệu chứa một bảng và một thủ tục được lưu trữ:
Liệt kê 6. Cài đặt cơ sở dữ liệu DB2 pureXML (setup_environment.db2)
DROP DATABASE HOSPITAL@
CREATE DATABASE HOSPITAL USING CODESET UTF-8 TERRITORY
US@
CONNECT TO HOSPITAL@
CREATE SCHEMA DB2ADMIN@
CREATE TABLE DB2ADMIN.PATIENT
(ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS
IDENTITY,
COMMENT VARCHAR(500),
RECORD XML)@
Liệt kê 7. Cài đặt thủ tục được lưu trữ để chèn bản ghi vào bảng Patient
(Bệnh nhân)
CREATE PROCEDURE insertPatient (IN xmlRecord XML)
SPECIFIC insertPatient
DYNAMIC RESULT SETS 1
P1: BEGIN
INSERT INTO DB2ADMIN.PATIENT (COMMENT, RECORD) VALUES ('',
xmlRecord);
END P1@
Thủ tục đã lưu trữ insertPatient sau đó được biểu lộ ra qua một Dịch vụ Web Dữ
liệu, như trong Hình 2, nghĩa là thủ tục đã lưu trữ có thể được gọi ra bởi các truy
vấn SOAP hoặc REST.
Hình 2. Tổng quan cấu hình cơ sở dữ liệu DB2 pureXML
Bài này không đề cập đến các chi tiết về cách tạo Các Dịch vụ Dữ liệu Web. Nếu
bạn cần nhiều thông tin hơn, xin đọc bài "Tạo Các Dịch vụ Web dùng cho DB2 9
pureXML" (developerWorks, 06. 2007).
Bước 3: Thiết bị SOA WebSphere DataPower
SOA WebSphere DataPower là thiết bị linh hoạt, có thể được sử dụng để xử lý các
tài liệu XML, trong số nhiều chức năng khác, bằng các cách khác nhau. Các đặc
tính của thiết bị mà được thảo luận trong bài này gồm việc xác thực các tài liệu
XML đối với lược đồ XML và các phép chuyển đổi XSL.
Trước khi đi vào các chi tiết về chính cấu hình, bài viết này cung cấp một số nền
lý thuyết. Thiết bị SOA WebSphere DataPower có thể phục vụ bằng nhiều cách
khác nhau, gồm tường lửa XML, Ủy nhiệm Các Dịch vụ Web, bộ tăng tốc XSL,
và nhiều thứ khác. Kịch bản trong bài này sử dụng tường lửa XML. Mỗi tường lửa
XML chứa ít nhất một cách giải quyết xử lý, và tất cả các cách giải quyết xử lý đó
chứa ít nhất một luật xử lý. Trong mỗi luật xử lý, các hành động xử lý đơn giản có
thể được xác định, mà, ví dụ, xác thực lược đồ XML, định tuyến XPath-based, mã
hóa, chuyển đổi kiểu trang XML và nhiều thứ khác.
Bước đầu tiên là lập cấu hình xác thực lược đồ XML. Nói một cách khác, các tài
liệu XML đang được gửi đến cách giải quyết này về Công cụ DataPower được xác
thực đối với một lược đồ XML riêng. Việc lập cấu hình xác thực lược đồ XML đạt
được bằng cách bổ sung hành động xử lý xác thực lược đồ XML vào luật xử lý,
như trong Hình 3, Số 3:
Hình 3. Cấu hình Tường lửa XML của Thiết bị SOA DataPower
Nếu hành động xác thực thất bại, Công cụ DataPower sẽ phản hồi truy vấn đó với
một thông báo thất bại và mã lỗi HTTP 500 trở lại khách hàng mà lúc đầu đã gửi
đi tài liệu XML. Thông báo lỗi chuẩn cho trường hợp này không chứa bất kỳ
thông tin đặc trưng nào về lý do hành động xác thực thất bại. Để cung cấp nhiều
thông tin hơn, thí dụ này gồm một hành động on-error (đang gặp lỗi) trong luật đó,
như trong Hình 3, Số 2. Hành động on-error tạo cách giải quyết gọi ra một luật
khác tên là Luật #2 (như trong Hình 4, Số 1), nếu xảy ra bất kỳ lỗi nghiêm trọng
trong khi có bất kỳ hành động nào trong luật:
Hình 4. Cấu hình tường lửa XML của Thiết bị SOA DataPower
Nếu luật #2 được gọi ra, nó sẽ thực hiện kiểu trang XSL, như trong Liệt kê 8:
Liệt kê 8. Sample XML document 3 (simple_3.xml)
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:dp=""
extension-element-prefixes="dp"
exclude-result-prefixes="dp">
Kiểu trang XSL trong Liệt kê 8 thu được thông báo lỗi riêng, cho phép giải thích lí
do hành động xác thực thất bại và trả lại nó cho khách hàng đã đưa ra truy vấn.
Bây giờ có hai mục còn lại mà Thiết bị DataPower cần phải thực hiện. Mục đầu
tiên là áp dụng kiểu trang XSL Schematron vào tài liệu XML truy vấn sắp đến.
Nếu Schematron hành động kiểu trang tạo một thông báo lỗi, thông báo lỗi đó cần
phải được gửi trở lại khách hàng mà ban đầu đã gử itruy vấn tài liệu XML. Nếu
không có lỗi, Thiết bị DataPower phải chuyển giao tài liệu XML cho Dịch vụ Web
Dữ liệu DB2 pureXML, dịch vụ mà sau đó sẽ chèn tài liệu XML hợp lệ vào cơ sở
dữ liệu. Việc này đạt được thông qua một hành động chuyển đổi kiểu trang XSL
khác, như trong Hình 3, Số 4, nó thực hiện kiểu trang XSL, trình bày trong Liệt kê
9:
Liệt kê 9. Kiểu trang XSL thực hiện kiểu trang XSL Schematron và thực hiện
việc định tuyến dựa trên nội dung, trên cơ sở kết quả xử lý Schematron
(content_based_routing.xsl)
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:dp=""
extension-element-prefixes="dp"
exclude-result-prefixes="dp">
<dp:url-open
target=""
response="xml" data-type="xml" content-type="text/xml">
Cũng rất quan trọng khi biết liệu việc chèn vào cơ sở dữ liệu DB2 pureXML thông
qua Dịch vụ Web Dữ liệu thành công hay không. Do đó, Tường lửa XML
DataPower sẽ chuyển giao thông báo phản hồi từ Dịch vụ Web Dữ liệu DB2 cho
khách hàng đã gửi từ đầu tài liệu XML truy vấn đến Công cụ DataPower, cho biết
hoạt động lồng vào có thành công hay không.
Trình diễn
cURL là một công cụ dòng lệnh để truyền tệp đến một URL riêng, hỗ trợ các giao
thức đa dạng, có HTTP. Công cụ luôn có sẵn để tải về.
Sau khi đã cài đặt thành công thí dụ này, bây giờ là lúc xem xét Thiết bị
DataPower SOA, DB2 pureXML, và Các Dịch vụ Dữ liệu Web đang hành động
cùng nhau. Các tài liệu XML mà trước đó đã được định nghĩa trong bài này sẽ
được sử dụng trong trình diễn này.
Ví dụ 1
Liệt kê 10. Gửi đi tài liệu XML đầu tiên
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_1.xml
First name must not be 'christian'!
cpichle@DAIRYFARM /tmp $
Liệt kê 10 cho thấy rằng đối với tài liệu XML simple_1.xml, hành động xác thực
lược đồ XML hẳn đã thành công. Tuy nhiên, sự hiện diện của thẻ chứng tỏ
rằng việc xác thực Schematron thất bại vì tên riêng cung cấp là 'christian'.
Ví dụ 2
Liệt kê 11. Gửi đi tài liệu XML thứ hai
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_2.xml
cvc-particle 3.1: in element person with anonymous
type, found (in default namespace), but next item should be
identification
cpichle@DAIRYFARM /tmp $
Liệt kê 11 cho thấy cách Thiết bị DataPower phản hồi việc nhận một tài liệu XML
không phù hợp với lược đồ. Thông báo lỗi chứng tỏ rằng tài liệu XML là không
hợp lệ khi so sánh đối với lược đồ XML, và các chi tiết về lý do việc xác thực lược
đồ bị thất bại được gộp trong thông báo lỗi được công cụ trả về.
Ví dụ 3
Liệt kê 12. Gửi đi tài liệu XML thứ ba
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_3.xml
<ns1:insertPatientResponse xmlns:ns1="urn:example"
xmlns:xsi=""/>
cpichle@DAIRYFARM /tmp $
Sau khi gửi đi tài liệu XML thứ ba (ví dụ simple_3.xml), một thông báo phản hồi
nữa được trả về. Thông báo trả về đã được tạo bởi Dịch vụ Web Dữ liệu, chứng tỏ
rằng việc chèn tài liệu XML vào cơ sở dữ liệu DB2 pureXML đã thành công. Điều
này hàm ý rằng tài liệu được cung cấp đã vượt qua cả bước xác thực lược đồ XML
lẫn xác thực Schematron.
Tóm tắt
Bài viết ngắn và đơn giản này đã chỉ ra cách DB2 pureXML và Thiết bị SOA
WebSphere DataPower có thể nhất trí với nhau để thực hiện các ứng dụng mạnh,
nơi công cụ WebSphere DataPower thực hiện việc xác thực XML, và cơ sở dữ liệu
DB2 pureXML quản lý việc lưu trữ, lập chỉ mục và truy vấn XML. Cả việc xác
thực cấu trúc XML (thông qua lược đồ XML) và xác thực nội dung (thông qua
Schematron) đã được mô tả. Việc kết hợp hai sản phẩm, WebSphere DataPower
và DB2 pureXML, cung cấp việc truy cập linh hoạt và nhanh chóng đến các tài
liệu XML được xác thực.
Lời cảm ơn
Cảm ơn Bob Callaway và những người đã góp phần vào tác phẩm này qua việc
cung cấp các kiến thức và tư vấn hướng dẫn của mình.
Mục lục
Giới thiệu
Thiết lập kịch bản
Trình diễn
Tóm tắt
Lời cảm ơn