Thứ Năm, 4 tháng 3, 2010

Giới thiệu về XML-RPC

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


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.


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.


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

Không có nhận xét nào: