Khía cạnh quan trọng của xác thực cấu trúc và nội dung của các cá thể tài liệu XML là khả năng dò vết các thất bại về xác thực. Phần 1của bàinày minh hoạ việc xác thực cấu trúc và nội dung của các cá thể tài liệu XML thông qua lược đồ XML và Schematron. Việc xác thực đã được thực hiện qua thiết bị IBM® WebSphere® DataPower® SOA. Trong bài này, hãy xem cách IBM DB2® pureXML™ có thể bổ sung hơn nữa thiết bị SOA WebSphere DataPower bằng cách cung cấp một log kiểm toán dễ truy cập và truy vấn.
24 trang |
Chia sẻ: haohao89 | Lượt xem: 1734 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu WebSphere DataPower và DB2 pureXML: DB2 pureXML như log kiểm toán cho WebSphere DataPower, để 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 2: DB2 pureXML như log
kiểm toán cho WebSphere DataPower
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: Khía cạnh quan trọng của xác thực cấu trúc và nội dung của các cá thể
tài liệu XML là khả năng dò vết các thất bại về xác thực. Phần 1 của bài này minh
hoạ việc xác thực cấu trúc và nội dung của các cá thể tài liệu XML thông qua lược
đồ XML và Schematron. Việc xác thực đã được thực hiện qua thiết bị IBM®
WebSphere® DataPower® SOA. Trong bài này, hãy xem cách IBM DB2®
pureXML™ có thể bổ sung hơn nữa thiết bị SOA WebSphere DataPower bằng
cách cung cấp một log kiểm toán dễ truy cập và truy vấn. Kịch bản minh hoạ trong
bài này có thể áp dụng được cho bất kỳ tình huống mà các cá thể tài liệu XML
đang được trao đổi.
Các điều kiện tiên quyết
The ideas presented in this article follow on from Phần 1 của bài này, “Xác thực
lược đồ và nội dung XML trong ngữ cảnh của DataPower và DB2 pureXML”
(developerWorks, 5.2008) Xin tham khảo bài viết đó để có nền tảng lý thuyết về
chủ đề này.
Giới thiệu
Bài viết trước trong loạt bài này minh hoạ việc xác thực cấu trúc và nội dung của
các cá thể tài liệu XML thông qua thiết bị SOA IBM WebSphere DataPower trước
khi lưu lại các cá thể tài liệu XML trong một cơ sở dữ liệu DB2 pureXML.
Đích của bài viết này là minh họa cách sử dụng của một cơ sở dữ liệu DB2
pureXML như log kiểm toán dễ truy cập và truy vấn cho thiết bị WebSphere
DataPower (xem Hình 1). Ngoài việc ghi log các cá thể tài liệu XML, thông tin
kiểm tra còn có thể gộp vào các chi tiết về việc định tuyến, chuyển đổi hoặc xác
thực các cá thể tài liệu XML qua thiết bị WebSphere DataPower.
Hình 1. Kịch bản log kiểm toán DB2 pureXML
Ý tưởng cơ sở của kịch bản này là ở chỗ thiết bị WebSphere DataPower lưu lại các
kết quả xác thực trong một cơ sở dữ liệu log kiểm toán DB2 pureXML, sau khi
thực hiện xác thực lược đồ XML và Schematron về các cá thể tài liệu XML nhận
được từ đầu trình nộp. Một thí dụ đối với đầu gửi đi có thể là một máy khách
XForms hoặc thậm chí một hệ thống thông tin khác đang trao đổi các cá thể tài
liệu XML. thiết bị SOA WebSphere DataPower lưu lại một thông báo thành công
hoặc thất bại trong cơ sở dữ liệu log kiểm toán, chứa thông tin chi tiết về nguyên
nhân xác thực thất bại. Không quan tâm đến kết quả xác thực, thiết bị WebSphere
DataPower cũng chuyển giao cá thể tài liệu XML được xác thực cho đầu tiếp
nhận, mà có thể là, chẳng hạn như, một cơ sở dữ liệu DB2 pureXML khác, hoặc
thậm chí một ứng dụng hoặc hệ thống thông tin khác.
Một lợi ích chính của giải pháp minh hoạ ở đây là ở chỗ nó có thể được áp dụng
cho bất kỳ kịch bản nào nơi mà các cá thể tài liệu XML được trao đổi. Việc trao
đổi các cá thể tài liệu XML có thể là, chẳng hạn như, giữa hai hệ thống thông tin
hoặc ứng dụng thông qua các dịch vụ Web. Một bài viết tương tự với nhan đề "Sử
dụng DB2 9 pureXML với WebSphere ESB" (developerWorks, 6.2008) mô tả
cách sử dụng DB2 pureXML như một log kiểm toán cho Bus Dịch vụ Doanh
nghiệp WebSphere (WESB).
Thiết lập kịch bản
Các mục sau đây mô tả việc cài đặt kịch bản đơn giản, như minh hoạ trong Hình 2,
hiển thị cách sử dụng một cơ sở dữ liệu DB2 pureXML như là một log kiểm toán
cho thiết bị SOA WebSphere DataPower. Để giữ cho kịch bản ngắn gọn và đơn
giản, giả định rằng các cá thể tài liệu XML được chuyển từ máy khách đến thiết bị
WebSphere DataPower, thiết bị này xác thực các cá thể tài liệu XML và sau đó
chuyển giao chúng cho một cơ sở dữ liệu DB2 pureXML khác.
Hình 2. Kịch bản mẫu log kiểm toán DB2 pureXML
Để cài đặt kịch bản minh hoạ trong Hình 2, làm theo các bước phác thảo sau đây:
Bước 1: Tạo ra các tài liệu XML, lược đồ XML, Schematron và đầu tiếp
nhận
Bước 2: Tạo ra cơ sở dữ liệu log kiểm toán DB2 pureXML
Bước 3: Lập cấu hình thiết bị SOA WebSphere DataPower
Bước 1: Tạo ra các tài liệu XML, lược đồ XML, Schematron và đầu tiếp nhận
Kịch bản minh hoạ trong Hình 2 là một phiên bản được mở rộng của kịch bản sử
dụng trong Phần 1 của loạt bài này. Bước thứ nhất để cài đặt kịch bản sử dụng
trong bài này là làm theo các bước 1 và 2 của Phần 1.
Bước 2: Tạo ra cơ sở dữ liệu log kiểm toán DB2 pureXML
Mục này mô tả việc cài đặt cơ sở dữ liệu DB2 pureXML, hoạt động như một log
kiểm toán để xác thực các kết quả từ thiết bị WebSphere DataPower.
Như đã minh họa trong các Liệt kê 1 và 2 dưới đây, việc cài đặt cơ sở dữ liệu log
kiểm toán chỉ gồm có một bảng và một thủ tục được lưu lại:
Liệt kê 1. Cài đặt cơ sở dữ liệu log kiểm toán DB2 pureXML
DROP DATABASE AUDIT@
CREATE DATABASE AUDIT@
CONNECT TO AUDIT@
CREATE SCHEMA DB2ADMIN@
CREATE TABLE DB2ADMIN.AUDIT
(ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS
IDENTITY,
AUDITINFO XML,
RECORD XML)@
Liệt kê 2. Cài đặt thủ tục được lưu giữ để chèn thông tin kiểm tra vào bảng
Kiểm tra
CREATE PROCEDURE insertAuditRecord (IN xmlAuditInfo XML, IN
xmlRecord XML)
SPECIFIC insertAuditRecord
P1: BEGIN
INSERT INTO DB2ADMIN.AUDIT (AUDITINFO, RECORD)
VALUES (xmlAuditInfo, xmlRecord);
END P1@
Thủ tục đã lưu lại insertAuditRecord, rồi được bộc lộ qua một Dịch vụ Web Dữ
liệu, như trong Hình 3 dưới đây, nó có nghĩa là thủ tục được lưu lại có thể được
gọi thông qua các truy vấn SOAP hoặc REST:
Hình 3. Tổng quan cấu hình cơ sở dữ liệu log kiểm toán DB2 pureXML
Bài này sẽ không đề cập các chi tiết sâu hơn về cách tạo ra Các Dịch vụ Web Dữ
liệu. Nếu bạn cần nhiều thông tin hơn, xin đọc bài hướng dẫn "IBM Data Studio:
bắt đầu với Các Dịch vụ Dữ liệu Web" (developerWorks, 11.2007).
Bước 3: Lập cấu hình thiết bị SOA WebSphere DataPower
Nền tảng lý thuyết về thiết bị SOA WebSphere DataPower liên quan đến kịch bản
này được giới thiệu trong Bước 3 của bài viết đầu trong loạt bài này.
Bước thứ nhất 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 mà đang được gửi đến giải pháp này trên thiết bị DataPower sẽ được
xác thực đối với một lược đồ XML riêng. Để lập cấu hình việc xác thực lược đồ
XML, bổ sung một hành động xử lý xác thực lược đồ XML vào luật xử lý, như
trong Hình 4, Số 3:
Hình 4. Lập cấu hình tường lửa XML của thiết bị SOA DataPower
Hành vi mặc định của việc xác thực lược đồ XML là nếu hành động xác thực thất
bại, thiết bị 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 máy khách mà lúc đầu đã gử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 nào đặc biệt về lý do hành động
xác thực bị thất bại.
Để vô hiệu hoá hành vi mặc định và cung cấp nhiều thông tin hơn về xác thực thất
bại, chúng ta sẽ gộp cả một hành động đang gặp lỗi trong luật, như trong Hình 4,
Số 2. Hành động đang gặp lỗi khiến giải pháp gọi một luật khác gọi là Luật #2
(như trong Hình 5, Số 1). Nếu Luật #2 được gọi, nó thực thi kiểu trang XSL như
trong Liệt kê 3.
Hình 5. Ảnh chụp màn hình của cấu hình tường lửa thiết bị SOA XML
DataPower
Sau khi thực hiện Luật #2, hành vi mặc định đối với hành động đang gặp lỗi là hủy
bỏ giải pháp xử lý, nó có thể bị vô hiệu hoá để tiếp tục xử lý. Trong kịch bản này,
hành động đang gặp lỗi được lập cấu hình để tiếp tục xử lý nếu xảy ra bất kỳ lỗi
nghiêm trọng nào trong khi xác thực lược đồ XML.
Liệt kê 3. Kiểu trang XSL đọc các chi tiết xác thực thất bại và chèn bản ghi
kiểm tra vào cơ sở dữ liệu log kiểm toán DB2 pureXML
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:dp=""
extension-element-prefixes="dp"
exclude-result-prefixes="dp">
<dp:url-open
target=""
response="ignore"
data-type="xml"
content-type="text/xml">
Kiểu trang XSL trong Liệt kê 3 thu được thông báo lỗi riêng giải thích lý do hành
động xác thực bị thất bại và chèn thông báo lỗi vào cơ sở dữ liệu log kiểm toán
thông qua Dịch vụ Web Dữ liệu của cơ sở dữ liệu log kiểm toán DB2 pureXML.
Kiểu trang sau đó chuyển giao cá thể tài liệu XML gốc cho đầu tiếp nhận.
Bây giờ có hai mục còn lại mà thiết bị DataPower cần thực hiện. Mục thứ nhất là
áp dụng kiểu trang XSL Schematron vào cá thể tài liệu XML truy vấn sắp tới. Sau
khi xác thực Schematron, thiết bị WebSphere DataPower chuyển giao kết quả xác
thực Schematron cho Dịch vụ Web Dữ liệu của cơ sở dữ liệu log kiểm toán, nó
chèn kết quả xác thực vào cơ sở dữ liệu log kiểm toán DB2 pureXML. Không cần
để ý đến đến kết quả xác thực, thiết bị DataPower cũng chuyển giao cá thể tài liệu
XML truy vấn cho đầu tiếp nhận. Việc xác thực Schematron và việc chuyển giao
đạt được thông qua một hành động chuyển đổi kiểu trang XSL khác, như trong
Hình 4, Số 4, nó thực thi kiểu trang XSL như minh hoạ trong Liệt kê 4:
Liệt kê 4. Kiểu trang XSL thực thi kiểu trang XSL, chèn kết quả vào cơ sở dữ
liệu log kiểm toán DB2 pureXML, và chuyển giao cá thể tài liệu XML cho
đầu tiếp nhận
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:dp=""
extension-element-prefixes="dp"
exclude-result-prefixes="dp">
<dp:url-open
target=""
response="ignore"
data-type="xml"
content-type="text/xml">
All validation Steps completed successfully!
<dp:url-open
target=""
response="xml"
data-type="xml"
content-type="text/xml">
Trình diễn
cURL là một thiết bị dòng lệnh truyền các tệp đến một URL đặc biệt, hỗ trợ các
giao thức đa dạng, có cả HTTP và có sẵn để tải về (xem Tài nguyên).
Sau khi cài đặt thành công mẫu thí dụ này, bây giờ là lúc cho thấy thiết bị
DataPower SOA, DB2 pureXML và Các Dịch vụ Dữ liệu Web hành động cùng
nhau. Các tài liệu XML đã được định nghĩa trước trong bài này, sẽ được sử dụng
trong trình diễn này.
Để bắt đầu, ba cá thể tài liệu XML được gửi đến thiết bị SOA WebSphere
DataPower qua công cụ dòng lệnh cURL. Việc trình nộp các cá thể tài liệu XML
mẫu được minh hoạ trong Liệt kê 5 dưới đây:
Liệt kê 5. Trình nộp các cá thể tài liệu XML mẫu
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_1.xml
<ns1:insertPatientResponse
xmlns:ns1="urn:example"
xmlns:xsi=""/>
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_2.xml
<ns1:insertPatientResponse
xmlns:ns1="urn:example"
xmlns:xsi=""/>
cpichle@DAIRYFARM /tmp $ curl --data-binary @simple_3.xml
<ns1:insertPatientResponse
xmlns:ns1="urn:example"
xmlns:xsi=""/>
cpichle@DAIRYFARM /tmp $
Sau khi trình nộp các cá thể tài liệu XML mẫu, có thể kiểm tra thông tin kiểm tra
và đầu tiếp nhận, được mô tả trong các mục sau đây.
Thông tin kiểm toán
Lợi ích chính của việc sử dụng DB2 pureXML như một log kiểm toán đối với thiết
bị SOA WebSphere DataPower là ở chỗ nó cung cấp một log dễ truy cập.
Chúng ta mong đợi ba thông báo lỗi khác nhau và một thông báo thành công trong
cơ sở dữ liệu log kiểm toán kết quả như là kết quả của việc trình nộp ba cá thể tài
liệu XML mẫu sang thiết bị SOA DataPower. Cá thể tài liệu XML thứ nhất vi
phạm luật Schematron, tài liệu thứ hai vi phạm cấu trúc đã định nghĩa trong lược
đồ XML và luật Schematron, và cá thể tài liệu XML thứ ba phù hợp với cả lược
đồ XML lẫn Schematron.
Bây giờ đã có thể truy vấn cơ sở dữ liệu log kiểm toán DB2 pureXML cho các kết
quả xác thực các cá thể tài liệu XML. Lệnh truy vấn để thực hiện việc này được
minh hoạ trong Liệt kê 6. Lưu ý rằng lệnh truy vấn được cung cấp không trả về
các cá thể tài liệu XML gốc chứa trong log kiểm toán.
Liệt kê 6. Các bản ghi kiểm tra truy vấn trong cơ sở dữ liệu log kiểm toán
DB2 pureXML
C:\scenario_2\>db2 CONNECT TO AUDIT
Database Connection Information
Database server = DB2/NT 9.5.1
SQL authorization ID = CPICHLE
Local database alias = AUDIT
C:\scenario_2\>db2 SELECT ID, AUDITINFO FROM DB2ADMIN.AUDIT
ID AUDITINFO
-- -------------------------------------------------------------------
22 First name must not be 'christian'!
23 cvc-particle 3.1: in
element person with anonymous type, found (in
default namespace), but next item should be
identification
24 First name must not be 'christian'!
25 All validation Steps completed successfully!
4 record(s) selected.
C:\scenario_2\>
Ngoài các thông báo lỗi và thông báo thành công, cơ sở dữ liệu log kiểm toán còn
lưu lại các cá thể tài liệu XML mà các thông báo thuộc về chúng. Truy vấn để lấy
ra tất cả các thông báo và các cá thể tài liệu XML được minh hoạ trong Liệt kê 7:
Liệt kê 7. Truy vấn khác để lấy ra các bản ghi log kiểm toán đầy đủ chứa cá
thể tài liệu XML gốc
C:\scenario_2\>db2 SELECT ID, AUDITINFO, RECORD FROM
DB2ADMIN.AUDIT
Đầu tiếp nhận
Do thiết bị SOA WebSphere DataPower thực hiện việc xác thực ba cá thể tài liệu
XML, chúng ta có thể mong đợi ba bản ghi tại đầu tiếp nhận. Ở thí dụ trong bài
này, đầu tiếp nhận là một cơ sở dữ liệu DB2 pureXML riêng biệt. Cơ sở dữ liệu có
thể được truy vấn, như minh hoạ trong Liệt kê 8:
Liệt kê 8. Các cá thể tài liệu XML truy vấn lưu trữ trong cơ sở dữ liệu đầu
DB2 pureXML
C:\scenario_2\>db2 CONNECT TO HOSPITAL
Database Connection Information
Database server = DB2/NT 9.5.1
SQL authorization ID = CPICHLE
Local database alias = HOSPITAL
C:\scenario_2\>db2 SELECT ID, COMMENT, RECORD FROM
DB2ADMIN.PATIENT
ID COMMENT RECORD
-- ------- ----------------------------------------------------------
13 <person
xmlns:xsi=
xsi:noNamespaceSchemaLocation="simple.xsd">
1
christian
pichler
14 <person
xmlns:xsi=""
xsi:noNamespaceSchemaLocation="simple.xsd">
christian
pichler
15 <person
xmlns:xsi=""
xsi:noNamespaceSchemaLocation="simple.xsd">
3
keith
wells
3 record(s) selected.
C:\scenario_2\>
Tóm tắt
Bài viết này đã minh hoạ cách sử dụng thực tế và thuận tiện của DB2 pureXML
như một log kiểm toán đối với thiết bị SOA WebSphere DataPower. Kịch bản
được trình bày có thể áp dụng cho các loại kịch bản ở nơi mà các cá thể tài liệu
XML đang được trao đổi. Bài này cho thấy cách DB2 pureXML thêm giá trị phụ
vào kịch bản do nó cung cấp một log kiểm toán dễ dàng truy vấn. Các thông tin
log kiểm toán được lưu trong cơ sở dữ liệu sẵn sàng dùng để xử lý và phân tích
sâu hơn các thất bại của việc xác thực cá thể tài liệu XML. Bài này một lần nữa
cho thấy rằng sự kết hợp giữa thiết bị SOA WebSphere DataPower và DB2
pureXML cung cấp một môi trường mạnh và linh hoạt để thực hiện việc xác thực
cá thể tài liệu XML.
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
Bước 1: Tạo ra các tài liệu XML, lược đồ XML, Schematron và đầu tiếp
nhận
Bước 2: Tạo ra cơ sở dữ liệu log kiểm toán DB2 pureXML
Bước 3: Lập cấu hình thiết bị SOA WebSphere DataPower
Trình diễn
Tóm tắt
Lời cảm ơn