|
MỖI
SÁNG, khi lật tờ báo nào đó và nhìn lướt qua các cột
chữ, chỉ đọc vài dòng ở từng bài báo, bạn biết ngay
chủ đềcủa bài. Có thể chẳng thích thú gì với mấy vụ
án xã hội đen, bạn hờ hững lật qua trang văn
nghệ, thở dài với bóng đá nước nhà ở trang thể thao
và cuối cùng chìm đắm trong suy tư ở phần... rao bán
nhà đất. Ta thường thực hiện những việc như vậy rất
tự nhiên với bất cứ tờ báo nào mà không cần ai hướng
dẫn. Máy tính không có được khả năng “đọc hiểu” sắc
sảo như vậy. Nếu hình dung về một cơ chế tự động tìm
kiếm thông tin trên cái “mạng nhện” khổng lồ Web,
chắc bạn thấy ngay: Thật là khó khi muốn dạy cho máy
tính nhận biết, chọn lọc thông tin cần tìm. Giải
pháp đơn giản nhất là tìm một phương thức sao cho
những dòng văn bản tự mô tả rõ ràng chủ đề, nội dung
của nó để máy tính hiểu được. XML (tức EXtensible
Markup Language - “ngôn ngữ đánh dấu mở rộng được”)
chính là phương thức như vậy.
Từ
khi được công nhận chính thức vào năm 1998, XML lập
tức thu hút sự quan tâm đặc biệt của cộng đồng mạng
vì những lợi ích to lớn do nó mang lại. Dữ liệu được
lưu trữ và trao đổi trên Web dần dần được chuyển
thành dạng XML. Các chương trình có khả năng đọc
hiểu văn bản XML nhanh chóng hình thành trên mọi
lĩnh vực của đời sống xã hội.
“XML
là công nghệ gì mà ghê gớm thế?”. Xin nói ngay với
bạn rằng XML không thể phổ biến như ngày nay nếu nó
thuộc loại... “công nghệ ghê gớm”. Mời bạn thử xem
một đoạn văn bản ở dạng XML như sau:
<Kỹ_thuật_nấu_nướng>
<Món_ăn>
<Tên>BÚN BÒ HUẾ</Tên>
<Các_nguyên_liệu>
<Nguyên_liệu>
<Chủng_loại>thịt giò heo</Chủng_loại>
<Số_lượng
đơn_vị=”g”>800</Số_lượng>
</Nguyên_liệu>
<Nguyên_liệu>
<Chủng_loại>thịt bò nạm</Chủng_loại>
<Số_lượng
đơn_vị=”g”>400</Số_lượng>
</Nguyên_liệu>
...
</Các_nguyên_liệu>
<Cách_thực_hiện>
<Giai_đoạn_1>
Sửa soạn
<Bước_1>Rửa sạch xương bò, chặt khúc</
Bước_1>
<Bước_2>Làm sạch giò heo, chặt khúc to</
Bước_2>
...
</Giai_đoạn_1>
...
</Cách_thực_hiện>
</Món_ăn>
</Kỹ_thuật_nấu_nướng>
Đố
bạn văn bản trên nói về cái gì? “Quá dễ! Chỉ lướt
nhìn cũng biết ngay đó là cách thức làm (ực...) món
bún bò Huế.” Vâng, ta đọc hiểu “thấm thía” nội dung
như trên không có gì khó khăn nhưng nếu chương trình
máy tính cũng đọc hiểu dễ dàng nội dung ấy thì...thế
giới của chúngta sẽ thay đổi nhiều lắm!
Nếu
là một lập trình viên, bạn hiểu ngay sự “đọc hiểu”
của chương trình máy tính nghĩa là gì. Nhìn kỹ, bạn
sẽ thấy: hướng dẫn làm món bún bò Huế như trên không
phải là một văn bản “phẳng phiu” thông thường mà có
cấu trúc dạng cây, thể hiện bởi các thẻ (tag), tức
là những cụm từ đặt giữa cặp dấu ngoặc nhọn < >.
Trong XML, mỗi thẻ khởi đầu, như <Món_ăn> chẳng hạn,
luôn có thẻ kết thúc tương ứng, </Món_ăn>. Mỗi cặp
thẻ giải thích phần nội dung đặt ở giữa chúng. Tập
hợp các thẻ mà bạn “tự biên tự diễn” tạo thành ngôn
ngữ đánh dấu của riêng bạn và những người chấp nhận
ngôn ngữ đánh dấu ấy.
Cấu
trúc cây chặt chẽ của văn bản XML tạo điều kiện rất
thuận lợi cho việc phân tích tự động văn bản ấy và
rút ra thông tin cần thiết. Sức mạnh của XML là sức
mạnh của ý tưởng đơn giản nhưng có tính đột phá.
Ôn
cố tri tân: HTML, SGML và XML
HTML
(Hypertext Markup Language) là ngôn ngữ đánh dấu để
tạo nên những trang Web (Web page) mà hiện nay đã
trở thành bộ phận không thể thiếu của đời sống xã
hội. HTML chỉ dẫn cho trình duyệt Web (Web browser)
biết cách sắp xếp các dòng chữ, hình ảnh. Gọi là
“ngôn ngữ đánh dấu” vì HTML định dạng văn bản, giông
giống như thứ ngôn ngữ của nghề in ngày xưa, khi mà
người ta phải đánh dấu như... mèo quào trên bản thảo
để người thợ sắp chữ tạo ra bản in đúng như mong
muốn.
Vào
một ngày không xưa lắm, cuối năm 1990, Tim
Berners-Lee, đã xây dựng HTML dựa trên ngôn ngữ đánh
dấu tổng quát SGML (Standard Generalized Markup Lan-
guage) do công ty IBM phát triển. Trong khi SGML cho
phép định nghĩa những thẻ tùy ý, Tim Berners-Lee xác
lập những thẻ cố định, tạo nên HTML đơn giản hơn
nhiều so với quy cách mà SGML cho phép. Nói cho rõ,
SGML là một quy cách ngôn ngữ (metalanguage) chứ
không phải ngôn ngữ cụ thể. Ngôn ngữ cụ thể như HTML
được gọi là một ứng dụng (application) của SGML.
Khi
trang Web ngày càng trở nên phức tạp để vươn đến
những dịch vụ đa dạng, HTML vốn được thiết kế chỉ để
trình bày văn bản, ngày càng giống như cái áo cũ
chật chội. Vào giữa năm 1996, Jon Bosak nghĩ đến
việc trở lại với SGML, sử dụng SGML ở dạng đơn giản
thích hợp cho Web. Đó chính là XML.
Để
nội dung văn bản XML có thể xuất hiện trong cửa sổ
trình duyệt Web, hiện nay người ta thường xây dựng
các ứng dụng Web làm nhiệm vụ đọc vào dữ liệu từ văn
bản XML ấy và kết xuất văn bản HTML tương ứng, nhằm
trình bày dữ liệu nhận được theo cách nào đó.
XML
mai mối các hệ thống thông tin
Bạn
thử hình dung tình huống như sau. Hai cơ quan y tế
hợp tác với nhau trong nghiên cứu y học, cần chia sẻ
cho nhau những thông tin về bệnh nhân mà họ đã tích
lũy nhiều năm trong cơ sơ dữ liệu (database) của
mình. Thế nhưng một thực tế thường xảy ra là hai bên
có hệ thống thông tin rất khác nhau, được xây dựng
trong các thời kỳ khác nhau, chẳng theo một chuẩn
chung nào cả.
Lại
có một thực tế không hiếm mà ta có thể giả định:
bệnh viện nói trên có địa chỉ Web, cho phép đăng
nhập (login) cơ sơ dữ liệu của họ thông qua trang
Web nào đó. Thế là công trình nghiên cứu trang trọng
khởi đầu bằng công việc cực kỳ vất vả như sau cho
nhân viên nhập liệu của cơ quan bảo hiểm y tế:
1.
Dùng trình duyệt Web đăng nhập cơ sơ dữ liệu của
bệnh viện.
2.
Xem hồ sơ của từng bệnh nhân.
3.
In hồ sơ bệnh nhân ra giấy.
4.
Nhìn vào tờ giấy vừa in để nhập liệu cho biểu mẫu
quen thuộc nào đó, thêm một mẩu tin (record) vào căn
cứ dữ liệu của cơ quan bảo hiểm y tế.
Mọi
chuyện sẽ được giải quyết ổn thỏa nếu toàn bộ hồ sơ
bệnh nhân cần thiết được biểu diễn ở dạng văn bản
XML và hai bên tham gia trao đổi dữ liệu thống nhất
với nhau về những thẻ được dùng trong văn bản đó.
Sau khi thống nhất như vậy, việc kết xuất hồ sơ bệnh
nhân theo dạng XML từ cơ sơ dữ liệu của bệnh viện
rất dễ dàng, không thành vấn đề. Cơ quan bảo hiểm y
tế cần xây dựng một ứng dụng web để tiếp nhận văn
bản XML từ bệnh viện gửi đến và tự động chuyển vào
cơ sơ dữ liệu của mình. Một lập trình viên chân
chính sẽ hoàn thành ứng dụng Web nêu trên trong...
vài ngày! Có thể bạn chưa tin ngay? Song nếu tìm
hiểu những phương tiện xử lý XML đã có hiện nay, bạn
sẽ thấy rằng nói như trên chẳng có chi là quá đáng.
Ứng
dụng Web
Có
lẽ bạn vẫn thấy ngờ ngợ về cái gọi là ứng dụng Web
(Web application). Không có gì nhiều, đó là các
chương trình máy tính dùng giao thức HTTP hoặc các
giao thức khác của mạng Web để liên lạc với nhau. Có
loại ứng dụng Web đáp ứng yêu cầu của người dùng
cuối, có loại chỉ nhằm đáp ứng yêu cầu của ứng dụng
Web khác. Nếu dựa trên các chuẩn chung, không phụ
thuộc hệ thống máy tính cụ thể, các ứng dụng Web có
thể hợp tác tốt đẹp với nhau. Một ứng dụng Web có
thể gửi yêu cầu ở dạng XML đến nhiều ứng dụng Web
khác, trên phạm vi toàn cầu, để thực hiện nhiệm vụ
của nó. Đó là ý tưởng căn bản của dịch vụ Web (Web
services). Bạn để ý: việc xử lý phân tán như vậy
không chỉ là yêu cầu hiển nhiên của thời đại thương
mại điện tử (nhằm thực hiện tự động mọi giao dịch
thương mại qua Web) mà còn giúp chia sẻ gánh nặng
công việc giữa nhiều máy chủ, gia tăng hiệu suất của
toàn mạng Web.
Nhu
cầu xây dựng những ứng dụng Web là rất lớn! Dù bạn
dùng ngôn ngữ nào để phát triển ứng dụng, bạn chắc
chắn sẽ phải tìm hiểu sâu hơn về XML vì XML là hiện
tại, là tương lai của Web. |