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

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.

pdf21 trang | Chia sẻ: haohao89 | Lượt xem: 1867 | Lượt tải: 1download
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
Tài liệu liên quan