Chuyển đến nôi dung chính

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

Khi bạn đăng ký với trang developerWorks lần đầu tiên, một tiểu sử của của bạn được tạo ra. Chọn các thông tin về tiểu sử của bạn (tên, nước/vùng, và nơi làm việc) đã được hiện lên màn hình, thông tin này sẽ được hiện kèm với nội dung mà bạn đăng tải. Bạn có thể cập nhật thông tin này bất kỳ lúc nào.

Thông tin gửi đi được đảm bảo an toàn.

  • Đóng [x]

Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

Thông tin gửi đi được đảm bảo an toàn.

  • Đóng [x]

Chuẩn bị thi chứng chỉ XML và các công nghệ có liên quan, Phần 1: Kiến trúc

Tìm hiểu để sử dụng XML ở đâu và khi nào trong thiết kế hệ thống

Mark Lorenz, Kiến trúc sư cao cấp, Hatteras Software, Inc.
Mark Lorenz là người sáng lập Hatteras Software, một hãng tư vấn về hướng đối tượng, và là tác giả của nhiều cuốn sách về phát triển phần mềm. Ông đã có chứng chỉ phân tích và thiết kế hướng đối tượng (OOAD), XML, RAD và Java. Ông đã sử dụng XHTML, các dịch vụ web, Ajax, JSF, Spring, BIRT, và các công cụ dựa trên Eclipse có liên quan để phát triển các ứng dụng Java doanh nghiệp

Tóm tắt:  Kiến trúc và các yêu cầu hiệu năng của hệ thống phần mềm ảnh hưởng đến quyết định của bạn về các công nghệ XML nào là thích hợp nhất cho các nhu cầu của ứng dụng của bạn. Hướng dẫn này về kiến trúc giúp cho bạn cách làm thế nào để nhận thấy rõ sử dụng công nghệ XML khi nào và ở đâu trong thiết kế hệ thống. Đây là hướng dẫn đầu tiên trong loạt năm bài hướng dẫn mà bạn có thể sử dụng để giúp chuẩn bị cho Bài thi 142, XML và Các công nghệ có liên quan, để nhận chứng chỉ của IBM.

Xem thêm bài trong loạt bài này

Ngày:  11 09 2009
Mức độ:  Trung bình

Hoạt động:  5469 lần đọc

Kiến trúc XML

Phần này của hướng dẫn sẽ thảo luận về cách sử dụng hiệu quả nhất các công nghệ XML khi đã biết các khía cạnh riêng biệt của kiến trúc hệ thống của bạn. Đến cuối phần này, bạn sẽ:

  • Nhận biết các vùng của hệ thống của bạn khi chúng liên quan đến việc sử dụng XML.

  • Chọn các công nghệ XML tối ưu cho các phần khác nhau của hệ thống của bạn, có tính đến hiệu năng và bảo đảm an ninh.

  • Hiểu cách ràng buộc XML với Java như thế nào.

Những cách sử dụng XML có rất nhiều, chẳng hạn như Asynchronous JavaScript and XML (Ajax - JavaScript không đồng bộ và XML) cho các trang Web động và Rich Site Summary (RSS - Tóm tắt Web phong phú) cho các blog và các nguồn cung cấp dữ liệu. Tương lai sẽ còn mang lại nhiều hơn nữa. Loạt bài này tập trung vào các công nghệ cốt lõi, bao gồm Simple API for XML (SAX - API đơn giản cho XML), Document Object Model (DOM - Mô hình đối tượng tài liệu), DTD, lược đồ XML, XPath, XLink và XQuery.

Bạn có thể thấy ở đây một món xúp chữ cái (alphabet soup) các từ viết tắt. Chỉ cần đọc các bài viết kỹ thuật và bạn sẽ tìm thấy XDI, RDF, REST, SVG, XUL và nhiều hơn nữa. Cần chuẩn bị cho điều đó, vì XML không chỉ là một chủ đề nóng, đó là chủ đề siêu nóng. Tại sao có bấy nhiêu khuyếch trương ? Lý do chính là ở chỗ XML cung cấp các khả năng mô hình dữ liệu xuyên nhiều nền tảng, xuyên nhiều ngôn ngữ, cũng giống như Java cung cấp sự hỗ trợ logic ứng dụng xuyên nhiều nền tảng. Hãy điểm qua một số cách sử dụng XML đã ảnh hưởng lớn đến thị trường thế giới trong thời gian gần đây:

  • Các nguồn cấp tin (RSS và Atom).

  • Web động (Ajax).

  • Blogs (Representational State Transfer hay REST - Chuyển đổi trạng thái tiêu biểu).

  • Service-Oriented Architecture (SOA - Kiến trúc hướng dịch vụ) và các dịch vụ Web.

Các cách sử dụng này được mô tả trong Hình 1Hình 2, trong đó cho thấy làm thế nào bạn có thể tích hợp các công nghệ XML vào trong một kiến trúc ứng dụng cho kinh doanh điện tử (e-business) và Web động, một cách tương ứng.


Hình 1. Thương mại điện tử sử dụng các công nghệ XML
Hình 1. Thương mại điện tử sử dụng các công nghệ XML

Hình 2. Web động sử dụng các công nghệ XML
Hình 2. Web động sử dụng các công nghệ XML

Để được hưởng lợi từ bất kỳ cách sử dụng nào trong số này, bạn cần có kiến thức cơ bản về các công nghệ XML, đó là những gì mà loạt bài hướng dẫn này cung cấp.

Kiến trúc là gì và nó liên hệ đến XML như thế nào?

"Một kiến trúc là một khung công tác để đưa vào các thay đổi có kỷ luật". -- Tom DeMarco

Nếu bạn đã từng nhận được một cuộc gọi yêu cầu hỗ trợ vào lúc đêm khuya dành cho một hệ thống với một kiến trúc tồi tệ, bạn sẽ biết sự lựa chọn khôn ngoan các công nghệ mà bạn sử dụng là quan trọng như thế nào. Kiến trúc có mặt dưới nhiều khía cạnh khác nhau, bao gồm cả khía cạnh vật lý và khía cạnh logic. Hình 3 cho thấy một ví dụ của kiến trúc vật lý.


Hình 3. Ví dụ về một kiến trúc vật lý
Hình 3. Ví dụ về một kiến trúc vật lý
"Tổ chức cơ bản của một hệ thống, được thể hiện trong các thành phần của nó, các mối quan hệ của chúng với nhau và môi trường và các nguyên tắc cai quản thiết kế và sự tiến triển của nó". -- ANSI/IEEE 1471-2000, Cách làm thực hành được khuyến cáo cho việc mô tả kiến trúc của các hệ thống đòi hỏi nhiều phần mềm.

Các định nghĩa về kiến trúc hệ thống có rất nhiều. Với mục đích của hướng dẫn này, hãy xem kiến trúc hệ thống phần mềm như là:

  • Việc xây dựng trên đỉnh một cấu trúc hiện có, ở nơi có sẵn (chẳng hạn như việc mở rộng một khung công tác và việc sử dụng lại các thành phần chung).

  • Việc phân tán xuyên nhiều quá trình và bộ xử lý khi tích hợp đối với các yêu cầu, bằng các giao diện đã công bố tới mỗi mảnh của hệ thống.

Một công nghệ cụ thể có thể trợ giúp một số lĩnh vực nào đó trong một kiến trúc và không giúp được cho các lĩnh vực khác. Trong ví dụ hệ thống từ Hình 3, XML có thể đóng một vai trò trong nhiều lĩnh vực:

  • Trình duyệt
    Bạn có thể biểu hiện các trang Web bằng cách sử dụng nội dung XML và các bảng định kiểu (stylesheets) XSL có liên quan. XSLT hỗ trợ khả năng này cũng như việc chuyển đổi sang nhiều định dạng khác.

  • Yêu cầu của máy khách
    Một XMLHttpRequest là trái tim của Ajax.

  • Trả lời của máy chủ
    Khi một XMLHttpRequest quay lại chỗ bạn, các nội dung đáp ứng có thể dưới dạng XML. Nhưng ngay cả khi chúng không là XML, trình duyệt sẽ sử dụng DOM để thao tác trang Web. Như bạn sẽ thấy trong Phần 3 của loạt bài hướng dẫn này, DOM được xây dựng từ XML.

  • Các dịch vụ Web
    SOAP là một giao thức dựa trên-XML để trao đổi thông tin thông qua HTTP (nói cách khác, qua Web). Cách sử dụng chính của nó là để yêu cầu các dịch vụ Web từ xa. Nó là một con cháu (successor) của XML Remote Procedure Call (RPC - Gọi thủ tục từ xa qua XML).

  • Java Message Service (JMS - Dịch vụ thông báo Java)
    JMS là để gửi các thông báo giữa các quá trình một cách không đồng bộ. Các vấn đề kết nối và độ trễ được bỏ qua với việc giao nhận có bảo đảm. Nội dung XML của các thông báo cung cấp một ngôn ngữ chung, để cho tất cả các bên có thể hiểu được, bất kể chúng sử dụng ngôn ngữ nào hay chúng đang chạy trên nền tảng nào.

  • Lập báo cáo
    Bên cạnh việc biểu hiện cho các trình duyệt Web, PDA, và các thiết bị khác, bạn có thể biểu hiện XML cho các báo cáo. Ngoài việc hữu ích cho biểu hiện nội dung trang Web, bạn cũng có thể sử dụng XSLT để biểu hiện các báo cáo theo nhiều định dạng.

  • Cơ sở dữ liệu
    Đây không còn là cơ sở dữ liệu như thời của cha mẹ bạn nữa. Không muốn bị gạt ra ngoài các cơ hội của XML, cả IBM® và Oracle đã xuất bản các cơ sở dữ liệu XML được thiết kế riêng cho một hệ điều hành nào đó, lưu trữ các cấu trúc tài liệu XML và hỗ trợ XQuery. Bài thứ ba của loạt bài này sẽ trình bày chi tiết hơn, nhưng hiện giờ hãy ghi nhớ rằng về cơ bản XML là văn bản thuần, do đó, bạn có thể lưu trữ nó trong các tệp tin phẳng (flat file) và các cơ sở dữ liệu ngay cả khi bạn không có một cơ sở dữ liệu hiểu XML.

BIRT

BIRT - Business Intelligence and Reporting Tools (Các công cụ báo cáo và tinh thông nghiệp vụ) là một khung công tác dựa trên Eclipse mã nguồn mở được viết bằng Java để hỗ trợ việc thiết kế các báo cáo với kết quả đầu ra có dạng HTML và PDF. Các thiết kế báo cáo được lưu trữ trên đĩa như các tệp tin XML .rptdesign (xem Tài nguyên).

Đây chỉ là một ví dụ kiến trúc. Cuốn sách của Kevin Dick, XML: A Managers Guide ( (XML: Một hướng dẫn cho các nhà quản lý) (trang 216; xem Tài nguyên), liệt kê năm ứng dụng doanh nghiệp khác nhau đã nhận được các lợi ích đáng kể từ việc sử dụng XML:

  1. Tự động hóa lực lượng lao động của công ty.

  2. Quản lý tri thức.

  3. Phối hợp các đối tác kinh doanh.

  4. Tích hợp ứng dụng.

  5. Tích hợp dữ liệu.

Điều quan trọng là XML có thể được sử dụng trong nhiều lĩnh vực khác nhau, bao gồm cả của bạn.

OK, bây giờ bạn có một số ý niệm về việc XML có thể góp phần mình ở đâu, chọn các công nghệ nào và những chỗ nào trong hệ thống của bạn thực sự sử dụng nó? Tôi sẽ đề cập đến một số các lý do trong phần này của hướng dẫn, vì vậy, hãy đọc tiếp.


Sử dụng XML với một ứng dụng hiện có

Một trong những thế mạnh của XML là khả năng được các hệ thống khác nhau hiểu được nó. Nếu bạn có một ứng dụng hiện tại, cho dù nó được viết bằng C và chạy trên máy Linux® hoặc bằng mã Java chạy trên máy Microsoft® Windows®, bạn có thể tích hợp ứng dụng có sẵn vào các phần khác của hệ thống thông qua các giao tiếp dựa trên XML.

Ngoài ra, một số sản phẩm và khung công tác sử dụng XML cho các tệp tin cấu hình. Ví dụ, struts sử dụng một tệp tin struts-config.xml để định nghĩa cách thức kiểm soát servlet sẽ làm việc như thế nào; các ứng dụng Web sử dụng các tệp tin web.xml để định nghĩa làm thế nào để triển khai ứng dụng để chạy trên một máy chủ. Các cách sử dụng XML thứ yếu đang liên tục xuất hiện. Các ứng dụng của bạn chắc chắn có thể sử dụng tốt những khả năng này.

Tôi sẽ tập trung vào vấn đề cốt lõi, đó là sử dụng tích hợp các công nghệ XML với các ứng dụng của bạn. Bảng 1 liệt kê một số các đặc trưng của các ứng dụng và đưa ra lời khuyên các công nghệ XML có thể đóng vai trò khi nào.


Bảng 1. Lời khuyên về sử dụng XML

Đặc trưng

Thảo luận

Lời khuyên

Các đích và các định dạng xuất ra (PDA, trình duyệt, iPod, PDF)

Càng nhiều kiểu kết quả xuất ra hơn, thì càng có nhiều lợi ích từ chuyển đổi XML hơn.

Sử dụng XML khi yêu cầu nhiều định dạng kết quả đầu ra.

Kích cỡ nội dung

Nội dung càng lớn hơn, càng có nhiều rào cản hiệu năng mà bạn sẽ phải vượt qua bằng cách sử dụng XML. Điều này dẫn tới việc xem xét các lựa chọn thay thế, như là nén, hoặc định dạng hoàn toàn khác, chẳng hạn như Ghi chú cú pháp trừu tượng số Một (ASN.1 -Abstract Syntax Notation One), trong đó mất lợi ích dễ đọc đối với con người

Sử dụng XML khi hiệu quả gửi thông báo và xử lý không quan trọng bằng tính liên tác và khả năng sẵn sàng của các công cụ tiêu chuẩn.

Tính liên tác

Sức mạnh lớn nhất của XML được cho là ở định dạng thông suốt cho nhiều ngôn ngữ, thông suốt cho nhiều nền tảng mà các hệ thống khác nhau có thể hiểu được.

Sử dụng XML khi bạn phải giao tiếp với nhiều hệ thống khác nhau.

Tìm kiếm

XML hỗ trợ các truy vấn tương đối đơn giản thông qua XPath và các truy vấn phức tạp hơn với XQuery mới hơn. Trong quá trình đang hoàn thiện, các công nghệ XML tương đối yếu hơn về mặt tìm kiếm. Vẫn còn phải đợi để xem cơ sở dữ liệu hiểu XML có thể giúp đỡ trong việc này không, vì nó lưu trữ XML dưới dạng một cấu trúc cây. Xem cơ sở dữ liệu hiểu-XML (XML-aware databases).

Không sử dụng các tài liệu XML khi tìm kiếm là rất quan trọng. Thay vào đó, lưu trữ nội dung này trong một cơ sở dữ liệu hoặc sử dụng một cơ sở dữ liệu hiểu XML.

Tóm tắt

Các công nghệ XML là yếu về việc tóm tắt dữ liệu -- ví dụ, đối với các báo cáo. Xem XML-aware databases.

Không sử dụng các tài liệu XML khi việc tóm tắt là rất quan trọng. Thay vào đó, lưu trữ các nội dung trong một cơ sở dữ liệu hoặc sử dụng một cơ sở dữ liệu hiểu XML.

Quy mô dự án

Để sử dụng XML, bạn cần có một trình phân tích cú pháp (parser) và mã để làm việc với các sự kiện hoặc cây XML.

Đối với các dự án nhỏ với các yêu cầu đơn giản, bạn có thể không muốn chịu chi phí phụ thêm của XML.


Cơ sở dữ liệu hiểu-XML

Các nhà cung cấp cơ sở dữ liệu muốn hỗ trợ các dự án khi sử dụng các công nghệ XML, nhưng các cơ sở dữ liệu quan hệ không dễ dàng để lưu trữ và lấy ra các tệp tin XML. IBM đã giới thiệu một phiên bản DB2® mới, trước đây được gọi là Viper, có hỗ trợ lưu trữ và lập chỉ mục dữ liệu XML theo định dạng được thiết kế riêng cho một hệ điều hành nào đó (nói cách khác, nó không kéo XML ra một bên để phù hợp với mô hình quan hệ). Các cơ sở dữ liệu có lưu trữ XML đều hỗ trợ XQuery, nó là cái tương đương của SQL đối với XML.

Các lựa chọn thay thế XML văn bản thuần

Các lựa chọn thay thế hiệu quả hơn cho XML văn bản thuần đang được xem xét, bao gồm cả XML nhị phân và XML nén (xem Tài nguyên).

Như vậy, các khả năng của cơ sở dữ liệu mới này có nghĩa thế nào với các dự án của bạn? Vấn đề chính là bạn có thể nhận được các thế mạnh tiêu biểu của các cơ sở dữ liệu, ví dụ như việc tìm kiếm và việc tóm tắt, với dữ liệu XML theo định dạng được thiết kế riêng cho một hệ điều hành nào đó của nó.

Hiệu năng

Trong phần này của hướng dẫn, tôi sẽ thảo luận về một số vấn đề có thể ảnh hưởng đến hiệu năng khi sử dụng các công nghệ XML.

Chọn một mô hình xử lý phù hợp

Như được phác thảo trong cuốn sách, Thiết kế Dịch vụ Web với Nền tảng J2EE 1.4: Jax-rpc, SOAP và các công nghệ XML ( Designing Web Services with the J2EE™ 1.4 Platform: JAX-RPC, SOAP, and XML Technologies) (xem Tài nguyên), bạn có thể chọn một trong bốn mô hình xử lý XML chính, có sẵn thông qua các API sau đây:

1. SAX: Cung cấp một mô hình lập trình dựa trên sự kiện.

2. DOM: Cung cấp một mô hình lập trình duyệt đi qua cây trong bộ nhớ.

3. Ràng buộc dữ liệu XML: Cung cấp một mô hình lập trình ràng buộc lớp của Java trong bộ nhớ.

4. XSLT: Cung cấp một mô hình lập trình dựa trên khuôn mẫu.

SAX và DOM là các mô hình lập trình phổ biến nhất. Cùng với XSLT, hai mô hình này có sẵn thông qua API Java để xử lý XML (JAXP). Mô hình ràng buộc dữ liệu XML có sẵn thông qua các công nghệ JAXB.

Tất cả các sự lựa chọn này sẽ được thảo luận sau trong loạt bài hướng dẫn này, nhưng ta hãy xem xét tác động của mô hình xử lý đối với hiệu năng. Bảng 2 so sánh một số thuộc tính của trình phân tích cú pháp SAX với trình phân tích cú pháp DOM.


Bảng 2. Các trình phân tích cú pháp: SAX so với DOM

SAX

DOM

Dựa vào sự kiện.

Thao tác cây.

Khả năng co giãn tới kích cỡ lớn với ít thay đổi trong việc sử dụng bộ nhớ.

Các tài liệu lớn hơn chiếm nhiều bộ nhớ hơn.

Phải ghi vào tài liệu mới để thay đổi các nội dung.

Có thể thao tác tài liệu trong bộ nhớ.

Khó khăn hơn để quản lý các sự thay đổi phức tạp.

Dễ dàng hơn để thực hiện các thay đổi phức tạp.

Nói chung, nhanh hơn.

Tương đối chậm hơn.

Có nhiều kiểm soát hơn đối với việc phân tích cú pháp, nhưng bạn cũng phải làm nhiều việc hơn.

Nói chung, bạn phải làm ít việc hơn.

Các yêu cầu của hệ thống, như trong hầu hết các trường hợp, thường quyết định việc sử dụng trình phân tích cú pháp nào. Một số ví dụ bao gồm:

  • Hợp nhất các tài liệu
    Điều này chắc chắn đòi hỏi phải làm việc với một cây DOM. Tôi đau đầu khi nghĩ rằng phải làm việc này bằng cách sử dụng SAX soát từng thẻ một.

  • Các thiết bị nhỏ
    Nếu bộ nhớ là ưu tiên hàng đầu thì SAX sử dụng rất ít. DOM phải xây dựng một cấu trúc cây của toàn bộ tài liệu.

  • Tìm kiếm các thẻ cụ thể
    Nếu một sự kiện cụ thể xảy ra bất cứ khi gặp một thẻ nào đó, SAX sẽ làm việc tốt.

  • Thao tác phức tạp
    Nếu cần phải thay đổi các phần khác nhau của tài liệu dựa trên giá trị từ các phần khác của tài liệu, thì hầu như chắc chắn là sử dụng trình phân tích cú pháp DOM sẽ dễ dàng hơn.

Cuối cùng, bạn cũng có thể sử dụng cả hai trong trình phân tích cú pháp song song với nhau. Ví dụ, bạn có thể phân tích cú pháp một số lượng các tài liệu nhỏ với trình phân tích cú pháp SAX để lấy ra các thông tin mà bạn cần để hợp nhất vào trong một tài liệu hiện có và sửa đổi tài liệu bằng cách sử dụng trình phân tích cú pháp DOM và thao tác cây.

StAX

Một API mới được gọi là Streaming API for XML (StAX- API luồng cho XML) được phát hành vào cuối năm 2006. Đó là một API kéo, trái ngược với mô hình đẩy của SAX, vì vậy nó vẫn duy trì kiểm soát với các ứng dụng hơn là kiểm soát trình phân tích cú pháp. StAX cũng có thể sửa đổi tài liệu đang được phân tích cú pháp. Xem Tài nguyên để biết thêm chi tiết.

Nhớ sẵn (caching) các bảng định kiểu

Nếu bạn sử dụng XSLT để chuyển đổi các tài liệu XML sang các định dạng khác nhau, bạn có thể ghi nhớ sẵn các Khuôn mẫu (Template) của bảng định kiểu an toàn luồng xử lý (thread-safe stylesheet Templates) đã biên dịch trong bộ nhớ và tái sử dụng chúng cho những người dùng cá nhân để tạo Các trình chuyển đổi (Transformer) riêng của họ (xem Hình 4). Điều này dẫn đến một dấu vết nhỏ hơn (footprint) của ứng dụng của bạn và nó tiết kiệm thời gian để phân tích cú pháp và biên dịch các bảng định kiểu.


Hình 4. Nhớ sẵn bảng định kiểu XSLT
 Hình 4. Nhớ sẵn bảng định kiểu XSLT

Sử dụng các không gian tên

Như bạn có thể đã biết, các không gian tên được sử dụng để khai báo các tên trong tài liệu độc lập với các tên được khai báo ở nơi khác. Điều này có thể trở thành vấn đề khi các bảng định kiểu và các tài liệu khác được tích hợp thông qua các câu lệnh include hay import. Nó cũng có thể là một vấn đề nếu bạn hợp nhất nhiều tài liệu, mỗi tài liệu đều có ngữ pháp riêng của chúng. Nếu bạn sử dụng một dấu hai chấm trong một tên phần tử hoặc tên thuộc tính, bạn có thể phân biệt giữa các tiền tố của vùng tên (ở phía bên trái của hai chấm) và tên trong bối cảnh của vùng tên (hay nói cách khác, cục bộ địa phương trong vùng tên). Ví dụ, xmlns:prefix=URI sẽ cho phép bạn sử dụng các tên như thế này: prefix:myname.

Một hướng dẫn sắp tới trong loạt bài này sẽ thảo luận nhiều hơn về các không gian tên. Tuy nhiên, tại thời điểm này tôi sẽ đề cập đến không gian tên ảnh hưởng đến hiệu năng như thế nào. Như bạn đã thấy trước đó, SAX là một trình phân tích cú pháp dựa vào sự kiện. Khi trình phân tích cú pháp bắt gặp một khai báo vùng tên, nó sẽ gửi cho ứng dụng một cuộc gọi startPrefixMapping và một cuộc gọi endPrefixMapping. Các cuộc gọi lại này làm chậm việc xử lý ứng dụng của bạn. Điều quan trọng không phải là tránh hoàn toàn các không gian -- thực ra, nhiều khả năng là bạn không thể làm thế -- mà đúng hơn là sử dụng chúng một cách tiết kiệm thôi, nếu bạn nghĩ rằng hiệu năng sẽ là một vấn đề.

Ràng buộc với các lớp Java

Như bạn đã biết, các tài liệu XML chứa các thẻ và nội dung khác dưới định dạng thuần văn bản. Điều này gây ra suy giảm hiệu năng. Điều gì xảy ra nếu bạn có thể tăng tốc việc này? Tôi sẽ thảo luận về hai cách: JAXB và XSLT Compiler (XSLTC - Trình biên dịch XSLT).

JAXB

JAXB nhận các tài liệu XML và tạo ra một cây ngữ nghĩa của các đối tượng Java biểu diễn các nội dung tài liệu (xem Hình 5). Sau đó bạn có thể thao tác các đối tượng này theo các quy tắc được định nghĩa trong lược đồ XML có liên quan, mà trước đó bạn đã biên soạn và đã sử dụng để tạo ra một khung công tác ràng buộc JAXB. Bạn cũng có thể sử dụng khung công tác này để tuần tự hóa cây đó thành một tài liệu XML kết quả.

Ngoài việc xử lý các tài liệu nhanh hơn, JAXB cho phép bạn thao tác XML thông qua các đối tượng Java. JAXB cũng làm cho dễ dàng theo kịp với những thay đổi của lược đồ.


Hình 5. JAXB
Hình 5. JAXB

Lưu ý: JAXB không hỗ trợ việc sử dụng các DTD -- bạn phải sử dụng lược đồ XML như là ngôn ngữ lược đồ của bạn.

Các lược đồ

Về mặt kỹ thuật, các DTD, XML Schemas (các Lược đồ XML) S (chữ hoa) và RELAX NG tất cả đều là các kiểu của lược đồ XML (XML schema - s chữ thường). Các Lược đồ XML (XML Schemas) (S chữ hoa) được gọi đầy đủ là Lược đồ XML W3C (W3C XML Schemas). Trong hướng dẫn này, bất cứ khi nào bạn nhìn thấy Lược đồ XML (XML Schema), hãy hiểu rằng đó là ngôn ngữ W3C chứ không phải là mô tả tài liệu lược đồ nói chung.

Trình biên dịch XSLT

Bạn biết Phép biến đổi XSL là gì. Trình biên dịch XSLT (XSLTC) bổ sung thêm khía cạnh biên dịch vào hỗn hợp này. XLSTC gồm hai phần (xem Hình 6). Phần đầu tiên là một trình biên dịch tạo ra một translet, đó là một tập hợp các lớp Java, từ một bảng định kiểu XSL. Phần thứ hai là một trình xử lý, áp dụng translet vào một cá thể tài liệu XML để biến đổi nó thành một định dạng kết quả đầu ra mong muốn. Điều này cho phép bạn phân tích cú pháp bảng định kiểu chỉ một lần và sử dụng lại nó về sau và vì vậy tăng tốc độ xử lý.


Hình 6. XSLTC
Hình 6. XSLTC

Bảo đảm an ninh

Các ứng dụng phải có đặc tính bảo đảm an ninh dữ liệu từ đầu đến cuối khi chúng truyền thông qua Internet. Không có một ai mà máy tính của mình bị nhiễm vi rút hoặc trang Web của mình bị tấn công còn nghi ngờ về tầm quan trọng của việc bảo đảm an ninh thông tin của công ty.

Vậy thì những gì đã sẵn có để bảo đảm an ninh truyền thông liên quan đến XML? Tại tâm điểm của nó, việc gửi các nội dung tài liệu XML trên Internet một cách an toàn kéo theo cả mã hóa XML lẫn chữ ký số XML.

Việc mã hóa XML bao gồm việc chuyển đổi nội dung thành một dạng khó hiểu để bảo vệ bí mật. Tất nhiên, người nhận được nhằm đến phải có khả năng chuyển đổi trở lại dạng ban đầu của nó. Việc mật mã hóa XML cũng có một số khả năng duy nhất, ví dụ như có thể mã hóa các phần tử cụ thể hay các nội dung của phần tử. Điều này rất hữu ích, ví dụ, khi tiến hành các giao dịch bán hàng giữa một khách hàng, một nhà cung cấp và các ngân hàng của khách hàng, ở đó các bên khác nhau cần phải đọc các phần nhất định của các nội dung tài liệu nhưng không đọc được các phần khác.

Chữ ký số XML xử lý tính toàn vẹn của bảo đảm an ninh XML (hay nói cách khác, nó xác định liệu nội dung đã bị thay đổi dưới bất kỳ hình thức nào hay không). Giống như việc mã hóa, bạn đồng nhiệm của nó, chữ ký số XML cho phép mức độ chi tiết mịn hơn -- nói cách khác, bạn có thể ký riêng các phần của các tài liệu.

Các vấn đề có liên quan đến chữ ký số XML, ví dụ như duy trì thứ tự của các thuộc tính trong thao tác tài liệu, đảm bảo tài liệu có thể được kiểm tra ở đầu tiếp nhận của một đường truyền thông. Điều này vượt ra ngoài phạm vi của hướng dẫn này, nhưng bạn có thể đọc thêm về nó trên trang Web JavaWorld (xem Tài nguyên).

2 của 5 | Trang trước | Trang sau

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Nguồn mở
ArticleID=427437
TutorialTitle=Chuẩn bị thi chứng chỉ XML và các công nghệ có liên quan, Phần 1: Kiến trúc
publish-date=09112009
author1-email=mlorenz@nc.rr.com
author1-email-cc=