
Khung công tác xác nhận hợp lệ XML khi sử dụng OASIS CAM (CAMV)
Sử dụng một cách tiếp cận lập trình khai báo để viết các quy tắc xác nhận hợp lệ
dữ liệu XML của bạn
Puneet Kathuria, Kiến trúc sư tư vấn CNTT, IBM
David Webber, Kiến trúc sư cao cấp, INTEGRITYOne Partners
Martin Roberts, Nhà phát triển/nhà thiết kế dự án nguồn mở CAM, Ontology
Systems
Tóm tắt: Trong bài này, chúng tôi trình bày một cách tiếp cận để xác nhận hợp lệ
XML bằng cách sử dụng các khuôn mẫu CAM (Content Assembly Mechanism -
Cơ chế lắp ghép nội dung) của OASIS để hỗ trợ một mảng rộng lớn các trao đổi
thông báo phức tạp với các đối tác kinh doanh khi sử dụng các mô hình nghiệp vụ
B2B hoặc B2C. Các khuôn mẫu CAM đơn giản hóa và thể hiện ra bên ngoài các
quy tắc xác nhận hợp lệ trong khi vẫn cho phép các cổng hoạt động như một cơ
chế chuyển tiếp các thông tin không liên quan trực tiếp. Chúng tôi cũng trình bày
những kinh nghiệm của mình bằng cách sử dụng một thành phần mã nguồn mở
được xây dựng bằng cách sử dụng Eclipse và công nghệ Java™ để cung cấp các
dịch vụ xác nhận hợp lệ cần thiết. Hãy làm theo quá trình phát triển ứng dụng diễn
ra cùng với các đoạn mã mẫu và một ví dụ XML sử dụng lược đồ BOD (Business
Object Document –Tài liệu đối tượng nghiệp vụ) ô tô của STAR (Standards for
Technology in Automotive Retail- Các tiêu chuẩn Công nghệ trong bán lẻ ô tô) và
khuôn mẫu XML của CAM kèm với nó.
Những thách thức kỹ thuật và nghiệp vụ
Trong các trao đổi thông tin phức tạp ngày nay bằng XML và lược đồ XSD lớn
kèm theo, gắn với một loạt các đối tác thương mại, việc hỗ trợ và duy trì xử lý
chính xác tất cả các giao dịch đến sẽ trở thành một thách thức đáng kể. Hiện nay,
các lược đồ XML và các DTD cung cấp khả năng xác nhận hợp lệ hay kiểm tra
nội dung cấu trúc của một tài liệu XML. Một số nhất định các quy tắc xác nhận
hợp lệ cũng có thể được đưa vào như là một phần của các lược đồ XML nhưng
không phải mọi loại xác nhận hợp lệ giao dịch đều có thể được thực hiện bằng
cách sử dụng các lược đồ XML hay các DTD.
Các từ viết tắt thường dùng
API: Application Programming Interface - Giao diện lập trình ứng dụng.

B2B: Business-to-business - Doanh nghiệp với Doanh nghiệp.
B2C: Business-to-consumer - Doanh nghiệp với người tiêu dùng.
DTD: Document Type Definition - Định nghĩa kiểu tài liệu.
HTTP: Hypertext Transfer Protocol - Giao thức truyền siêu văn bản.
JAX-RPC: Java API for XML-Based remote procedure call - Dựa trên API
Java cho XML.
JDOM: Java-based Document Object Model - Mô hình đối tượng tài liệu
dựa trên Java.
J2EE: Java 2 Platform, Enterprise Edition - Nền tảng Java 2, Ấn bản doanh
nghiệp.
OASIS: Organization for the Advancement of Structured Information
Standards - Tổ chức vì sự tiến bộ của Các tiêu chuẩn thông tin có cấu trúc.
UI: User Interface - Giao diện người dùng.
WSDL: Web Services Description Language - Ngôn ngữ mô tả dịch vụ
Web.
XML: Extensible Markup Language - Ngôn ngữ đánh dấu mở rộng.
XPath: XML Path Language - Ngôn ngữ đường dẫn XML.
XSD: XML Schema Definition - Định nghĩa Lược đồ XML.
XSLT: Extensible Stylesheet Transformations - Các phép chuyển đổi bảng
định kiểu mở rộng.
Với sự ra đời của các tiêu chuẩn đặc thù cho ngành nghề như Các tiêu chuẩn công
nghệ trong bán lẻ ô tô (STAR), toàn bộ các bộ sưu tập các định dạng trao đổi
thông báo XML tiêu chuẩn được cung cấp dưới dạng các Lược đồ XML. Cả người
tiêu dùng lẫn nhà cung cấp các dịch vụ Web phải tuân theo các lược đồ này để
được chứng nhận bởi các tiêu chuẩn ngành nghề của mình. Tuy nhiên, các lược đồ
đặc thù cho ngành nghề như vậy thường liên kết lỏng lẻo với việc xác nhận hợp lệ
tối thiểu và có thể được sử dụng chỉ để xác nhận hợp lệ cấu trúc của XML đến.
Cần thêm mã bổ sung để triển khai thực hiện các xác nhận hợp lệ cần thiết, tăng
cường việc kiểm tra lược đồ. Các xác nhận hợp lệ này ngăn chặn các lỗi khi các

ứng dụng hoặc các thành phần đòi hỏi dữ liệu có một cấu trúc cụ thể và tuân thủ
các quy tắc xác nhận hợp lệ nội dung nghiệp vụ.
Cách phổ biến nhất để triển khai thực hiện logic xác nhận hợp lệ cần thiết trong
một dịch vụ Web và các ứng dụng XML đi kèm với nó là viết mã tùy chỉnh; kết
quả là, các quy tắc xác thực hợp lệ bị chôn chặt bên trong các ứng dụng và không
thể sửa đổi, làm tài liệu hoặc chia sẻ dễ dàng được. Tùy thuộc vào số lượng và tính
chất của các xác nhận hợp lệ phải có, mã xác nhận hợp lệ có thể phức tạp và dài
dòng và việc bảo trì nó có thể trở thành một gánh nặng đáng kể khi có thêm nhiều
đối tác hơn nữa. Thêm vào đó còn là thời gian, công sức và các nguy cơ liên quan
đến việc biên dịch lại và triển khai lại mã đó lên một máy chủ sản xuất mỗi khi
logic xác nhận hợp lệ thay đổi.
Ngoài các ứng dụng độc lập, các xác nhận hợp lệ cũng cần thiết khi trưng ra các
dịch vụ thông qua một ESB (Enterprise Service Bus – Kênh dịch vụ mức doanh
nghiệp). Hình 1 mô tả kiến trúc điển hình của một ESB xoay quanh một bus thông
báo. Kênh này cung cấp các dịch vụ chuyển phát thông báo dựa trên các tiêu
chuẩn như SOAP, HTTP và JMS (Java Messaging Service – dịch vụ gửi thông báo
của Java). ESB cho phép các dịch vụ tương tác với nhau dựa vào loại các yêu cầu
chất lượng dịch vụ của từng giao dịch riêng lẻ. Nó cũng hỗ trợ các tiêu chuẩn khác
như SOAP, XML, WSDL, JMS, J2EE, JAX-RPC và v.v..
Hình 1. Cách thực hiện các xác nhận hợp lệ trong một kiến trúc ESB
Một trong những thách thức chính mà các nhà phát triển phải đối mặt là làm thế
nào để thực hiện xác nhận hợp lệ thông báo tại các điểm đầu cuối nhà cung cấp

thông báo và người tiêu dùng thông báo khi tương tác qua ESB. Ví dụ, như trong
Hình 1, một thành phần dịch vụ web có thể yêu cầu thông tin từ một ứng dụng
hiện có. Dịch vụ Web (người tiêu dùng ) sẽ gửi một thông báo yêu cầu thông tin
tới ứng dụng hiện có (nhà cung cấp) thông qua ESB. Thành phần ứng dụng cần
một yêu cầu dưới một định dạng nhất định với thông tin chính xác, do đó nó sẽ
xác nhận hợp lệ thông báo yêu cầu trước khi xử lý nó. Thành phần dịch vụ Web có
một tập các yêu cầu riêng của mình và sẽ xác nhận hợp lệ thông báo đáp ứng. Nếu
hai điểm đầu cuối sử dụng các giao thức hoặc các tiêu chuẩn khác nhau, ESB có
thể chuyển đổi từng thông báo và sẽ thực hiện xác nhận hợp lệ trước khi chuyển
đổi các thông báo.
Mỗi nhà cung cấp và người tiêu dùng có yêu cầu riêng của mình; vì vậy, tùy thuộc
vào số lượng các loại giao dịch và các xác nhận hợp lệ, điều này có thể dẫn đến
một chu kỳ phát triển dài để định nghĩa, tạo và thử nghiệm tất cả các xác nhận hợp
lệ. Giai đoạn ổn định này tiếp diễn cho tới khi mỗi thành phần xác nhận hợp lệ có
thể cung cấp thông tin phản hồi chính xác về xác nhận hợp lệ thông báo cho thành
phần đang gọi nó.
Mô tả giải pháp
Cách tiếp cận của giải pháp mà chúng ta mô tả ở đây là triển khai thực hiện các
dịch vụ xác nhận hợp lệ dựa trên đặc tả kỹ thuật CAM (Content Assembly
Mechanism - Cơ chế lắp ghép nội dung) của OASIS. Cách tiếp cận của khuôn mẫu
CAM của OASIS dựa trên một tiếp cận đơn giản để xử lý và xác nhận hợp lệ nội
dung XML để cho phép các doanh nghiệp tạo ra các mô hình trao đổi chung lẫn
nhau cho các trao đổi của họ bằng XML. Các khuôn mẫu CAM hỗ trợ các quy tắc
dựa trên ngữ cảnh, các danh sách-mã và các xác nhận hợp lệ giữa các trường.
Không thể triển khai thực hiện nhiều xác nhận hợp lệ giữa các trường chỉ riêng
trong một lược đồ XSD; trong các trường hợp khác, trong các lược đồ ngành nghề
đã công bố không thể điều chỉnh tất cả các biến của các xác nhận hợp lệ.
Giải pháp này bao gồm CAM Studio (một trình soạn thảo khuôn mẫu giao diện
người dùng dựa trên Eclipse), được sử dụng để xác định khuôn mẫu CAM. Sau đó
máy xác nhận hợp lệ CAMV cung cấp một bộ các API Java mã nguồn mở được sử
dụng để xác nhận hợp lệ XML với các khuôn mẫu CAM cụ thể đã biên dịch trong
thời gian chạy. Trình soạn thảo khuôn mẫu CAM Studio hỗ trợ các biểu thức
XPath tùy chỉnh bổ sung thêm cho các khuôn mẫu đã tạo ra của nó nhưng giao
diện người dùng có thể xác định hầu hết các quy tắc mà không phải viết bất kỳ các
biểu thức tùy chỉnh nào.

Hình 2 cho thấy các giai đoạn Mô hình, Tạo ra và Thử nghiệm, Triển khai và
Giám sát trong vòng đời phát triển các quy tắc xác nhận hợp lệ:
Hình 2. Vòng đời của các quy tắc xác nhận hợp lệ
Giai đoạn Mô hình
Trong bước này, các thực thể dữ liệu và các phần tử dữ liệu của chúng được nhận
diện cùng với các quy tắc xác nhận hợp lệ tương ứng của chúng. Lược đồ trao đổi
XML cần thiết được thiết kế; hoặc thay vào đó, các phần tử cần thiết được ánh xạ
tới một lược đồ tiêu chuẩn ngành nghề hiện có như là một lược đồ từ STAR (Các
tiêu chuẩn về Công nghệ trong việc bán lẻ ô tô).
Giai đoạn Tạo và Thử nghiệm
Các khuôn mẫu CAM được lắp ghép hoặc được viết ra bằng cách sử dụng trình
soạn thảo CAM Studio. Có ba tùy chọn trình soạn thảo có khả năng được cung cấp
để tạo ra một khuôn mẫu CAM:
1. Tạo từ đầu hoặc làm bằng tay.
2. Sử dụng một Lược đồ XML hiện có.