Computer systems have evolved from early centralized computing systems into distributed computing systems. Distributed computing paradigms have also experienced a development from client-server paradigm to current mobile agent paradigm. Traditionally, Remote Procedure Call (RFC) is used in client-server paradigm. A client sends data to its server to invoke the execution of a remote static procedure on the server side and receives the results from the server after the computation is finished. RPC normally requires great amounts of data to be transferred across the network. Although the rapid growth of the Internet, especially the World Wide Web, provides an astounding amount of interconnected computing resources, most users' access to Internet resources are primarily restricted by the available network bandwidth. Compared to the speed of CPUs, the speed of network is still far behind. This fact stimulates seeking alternatives for moving data across a network to improve the computing efficiency.