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
24 trang | 
Chia sẻ: haohao89 | Lượt xem: 1893 | 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