词条 | PHPRPC |
释义 | PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。 目前该协议的最新版本为 3.0。该版本目前已有以下几种语言的实现: ASP:提供 JScript 和 VBScript 两种语言的支持。 ActionScript:提供 ActionScript 2.0 和 ActionScript 3.0 两个版本的支持。 Java:支持 JDK 1.4 以上的所有版本,它还支持 Google Android 开发包。另外,它还有单独的 J2ME 版本,支持 CLDC-1.1 和 MIDP-1.0。 JavaScript:提供两个版本的实现,一个使用纯 Javascript 实现,另一个需要调用一个 swf 文件,两个版本都支持跨域的远程过程调用,但是使用 swf 的版本不限制参数长度,并且有更好的安全控制机制。这两个版本已经通过完整测试的浏览器包括 IE 5+,Netscape 7+,Firefox,Mozilla,Opera,Safari,Epiphany,Camino 与 Konqueror。并且纯 JavaScript 版本还通过了 Pocket IE、Opera Mini、Opera Mobile、iPhone、Android 等手持设备浏览器的测试。 .NET:支持 .NET 框架下所有的语言(如 C#、VB.NET、VC.NET、Delphi.NET 等),并且支持目前所有版本的 .NET Framework 和 .NET Compact Framework,当然它也支持 Mono。 PHP:支持 PHP4 与 PHP5,同样支持正处于开发阶段的 PHP6。 Perl:目前该版本尚不成熟,有待完善。 Delphi/Kylix:提供 Delphi 7.0 和 Kylix 客户端的支持,不但可以支持 Win32 原生程序开发,而且还支持 Linux 程序开发。最新版本还支持 Delphi 2009 Windows 原生程序开发。 Python:支持 Python 2.5 与 Python 2.6,而且支持在 Google App Engine 上应用。 Ruby:该版本支持 Ruby 1.8.5 及其更高版本。服务器除了支持以 cgi、fcgi、scgi、lsapi 方式运行外,还支持以独立服务器 ( mongrel、thin、ebb 或 webrick ) 方式运行。 其中 ASP、.NET、Java 和 PHP 版本除了提供客户端实现外,还提供了服务器端实现。 PHPrpc的特点轻量级PHPRPC 与 SOAP 不同,虽然 SOAP 号称是简单对象存取协议,但是实际上它一点都不简单,甚至可以说,它的协议内容是一般人所无法理解的。除了复杂的定义,它还具有复杂且混乱的实现,且不要说在异构系统中部署应用,即使在同一种语言下部署,它也绝对算得上是重量级的。而 PHPRPC 却是轻量级的,它的协议相当简单,从仅靠我一人之力就可以实现出十几种语言的版本这个事实就可以很容易的看出来。它的数据表示也相当高效,不论在处理还是传输上都比 SOAP 要快得多。它在部署和使用时,更加简单,它的 .NET 版本甚至比微软为 .NET 提供的 WebService 都容易使用,你甚至不需要借助 Visual Studio 就可以轻松构建 PHPRPC for .NET 的应用。其它语言版本的部署和使用跟 .NET 版本差不多,甚至更加简单。 安全在安全方面,PHPRPC 并没有像 SOAP 那样专门制定一个 WS-Security 来解决安全性问题。而是内置了加密传输机制,虽然这个加密机制没有 WS-Security 那么复杂,但绝对是从众多的安全加密机制中精选出来的。它可以保证你的数据在非加密的 HTTP 网络上安全传输。 跨网际PHPRPC 是工作于 HTTP 协议之上的远程调用协议,因此它具有与 SOAP 同样的好处——它可以自由的在 Internet 上被广泛的部署应用。在这个互联网应用占据主导地位的年代,它比那些基于私有通讯协议的远程调用在应用上更具优势。 跨语言、跨平台、跨环境PHPRPC 目前支持十几种编程语言,而且这些支持的编程语言都是目前被广泛使用的主流编程语言。这些语言支持不同的平台与环境,因此在跨语言的同时,也实现了跨平台,跨环境。而且随着 PHPRPC 的发展,你将发现 PHPRPC 会支持更多的语言,包括你所见过、使用过,以及从来没有听说过的语言。 跨域PHPRPC 最大的一个亮点就是它支持在浏览器环境中通过 JavaScript 来调用服务器端的函数与方法,它将你以前用传统的 ajax 方式做不到或者很难做到的事情变得轻而易举!而在这个亮点中更大的亮点是,它还支持在浏览器环境中直接跨域调用。而且在跨域方面,它还针对不同的应用作了不同的实现。这是 SOAP 所做不到的。 复杂对象传输你可以在各种不同的语言之间通过 PHPRPC 自由的交换数据,不论是基本数据类型,还是复杂对象,它都可以帮你轻松传输。虽然 SOAP 也声称可以在各种语言之间交换复杂数据,可是实际应用却完全不是那么回事,在许多语言中你甚至不得不手工去构造那些晦涩难懂的 XML,来传输所谓的自定义类型,这种意义上的自定义类型传输甚至还不如字符串传输更容易被理解。而在 PHPRPC 中你却完全不需要做这种无意义且损伤脑细胞的事情,你会发现你将可以用前所未有的简单方式在不同的语言之间传输复杂对象,简单到就像在同一个程序中传输它们一样。 引用参数传递PHPRPC 还支持引用参数传递,你除了可以通过远程函数或方法的返回值得到结果外,你还可以通过参数来返回数据,尽管大多数情况下你用不到这个特性,不过一旦需要,你会发现非常有用。 内容输出重定向除了通过返回值和参数来得到返回数据以外,你还可以通过输出的方式来返回数据,而且通过该方式返回较大量的数据时,比通过返回值来返回数据还要高效。 分级错误处理在远程调用时,对于某些语言来说,并不是所有的错误都会影响结果,因为这些错误可能只是警告类信息,在这种情况下,PHPRPC 在返回结果的同时,也会返回警告信息。只有当发生致命错误时,才会只返回错误信息。这种处理方式可以让调用者得到更多想要的信息。 会话支持对于支持会话的服务器,你可以在你的远程函数或方法中使用会话,这将十分有效的帮助你对状态进行管理。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。