Diễn Đàn Tin Học » Tutorial Room » Thiết kế, Phát triển Web & Đồ hoạ » XML-RPC Giới thiệu về XML-RPC Được viết bởi Nguyễn Bá Thành @ Diễn Đàn Tin Học
Ghi chú: bài viết đồng thời được lưu trữ ở http://www.diendantinhoc.net/tute/xmlrpc/intro.php
XML-RPC là gì?
XML-RPC là một cài đặt RPC (Remote Procedure Call) trên nền giao thức HTTP, sử
dụng XML để mã hoá và trao đổi dữ liệu.
Bạn có thể tìm hiểu thêm chi tiết về XML-RPC ở các địa chỉ:
- Trang chủ XML-RPC: http://www.xmlrpc.com
- XML-RPC cho người mới nhập môn: http://davenet.scripting.com/1998/07/14/xmlRpcForNewbies
[Trở về đầu trang]
Vậy RPC là gì?
Khi bạn viết chương trình, ắt hẳn bạn cũng đã quen với các khái niệm thủ
tục và hàm. Các đoạn chương trình lặp đi lặp lại bạn viết lại thành 1 hàm (hay thủ tục)
và sau đó khi dùng chỉ cần gọi thủ tục hoặc hàm đó với các tham số thích hợp. Các thủ tục hoặc hàm đó bạn có thể:
- Để chung trong 1 file nguồn cùng với chương trình chính,
- Để trong 1 file nguồn khác và được include vào file nguồn chính khi cần,
- Được biên dịch sẵn và để trong 1 thư viện hoặc unit để các chương trình khác
của bạn (cùng được viết bằng 1 ngôn ngữ) sử dụng,
- Được biên dịch sẵn để trong file DLL để các chương trình (được viết bằng
các ngôn ngữ khác nhau) sử dụng.
Điểm chung của tất cả các phương thức trên là các hàm và thủ tục cần gọi đều
nằm trên cùng 1 máy với nơi gọi chúng. Tuy nhiên bạn có thể thấy là nơi gọi
và hàm cần gọi có thể được tách rời nhau ra: từ chung file, đến khác file,
rồi đến khác ngôn ngữ.
RPC - Remote Procedure Call (lời gọi hàm xa) - là một mở rộng của lời gọi hàm
(procedure call) theo cách cổ điển. Giờ đây hàm cần gọi và nơi gọi hàm có thể nằm ở 2 máy tính
khác nhau; thậm chí có thể cách xa nhau nửa vòng trái đất, nối với nhau qua
mạng internet.
Một địa chỉ khá hay để tham khảo cho người mới bắt đầu với XML-RPC là XML-RPC
for newbies, các khái niệm về XML-RPC đựoc giải thích khá cặn kẽ và trình bày rất dễ hiểu
cho người mới làm quen với XML-RPC.
[Trở về đầu trang]
XML-RPC là một cài đặt của RPC, vậy còn RPC "nào khác" nữa không?
Dĩ nhiên là còn chứ. RPC là nền tảng của lập trình phân tán (distributed programming).
Các giao thức xây dựng trên RPC đã xuất hiện từ rất lâu và có thể đã trở
nên quen thuộc với bạn mà bạn không để ý tới. Ví dụ:
CORBA: CORBA là một trong những giao thức được sử dụng khá phổ biến để phát triển
các ứng dụng phân tán (distributed) hướng đối tượng (object-oriented). Bạn
sẽ hay gặp CORBA trong các chương trình đa tầng với qui mô "xí nghiệp" (multi-tier
enterprise application). Các địa chỉ tham khảo hữu ích về CORBA là trang chủ
của OMG (Object Management Group) và OMG CORBA.
DCOM: Nếu bạn là tín đồ của Microsoft thì chắc hẳn là bạn không xa lạ gì với thuật
ngữ này. DCOM là cú "đáp trả" của Micrsoft đối với CORBA. Bạn có thể ghé thăm
trang chủ của DCOM để tìm hiểu thêm chi tiết.
SOAP: Rất có thể bạn đã nghe nhiều đến SOAP trong thời gian gần đây. SOAP cũng
là một cài đặt RPC trên HTTP. Bạn có thể tìm hiểu thêm về SOAP ở trang chủ
của SOAP.
[Trở về đầu trang]
Tại sao sử dụng XML-RPC?
XML-RPC khá đơn giản so với CORBA, DCOM và SOAP. Và hơn thế, XMl-RPC hoạt động khá tốt
và cài đặt tương đối đơn giản với các ngôn ngữ lập trình web phổ biến như PHP,
Perl, Python. Với lý do đó, XML-RPC là sự lựa chọn khá lý tưởng để phát triển
các ứng dụng web qui mô nhỏ.
Và dĩ nhiên, XML-RPC vẫn có thể được cài đặt với các ngôn ngữ lập trình desktop
như C/C++, Java, và thậm chí với Microsoft .NET
[Trở về đầu trang]
Một ví dụ ứng dụng XML-RPC
Bạn hãy xem bài viết Sử dụng XML-RPC (PHP) để lấy bài viết trên Tutorial Room.
[Trở về đầu trang]
Tài liệu tham khảo:
- XML-RPC
Homepage
- XML-RPC for newbies
- Microsoft DCOM
- OMG & OMG CORBA website
- SOAP website
|