CRISPY,一个新的远程框架

在名为CRISPY Web服务的新文章中,Sachin Mahajan讨论了一个名为CRISPY的新框架(Communication per Remote Invocation for different kinds of Services via ProxYs) - 一个远程调用API,支持多种传输方式包括: RMI,EJB,JAX-RPC,REST,XML-RPC,direct Java invocation,等等。所有的调用都可以同步或异步执行。援引CRISPY项目网站的说法,CRISPY:

...的工作方式是使用属性一类配置一个服务管理器,它将被用于调用远程API。CRISPY是一个简洁的Java代码库,其API位于你的客户端代码和你的代码必须访问的服务两者之间。它提供了一层抽象,解耦了客户端代码与要访问的服务及其位置与底层实现。这一想法的特别之处在于,所有的这些调用都是简单的Java对象调用(远程调用或本地调用是透明的)。

CRISPY的主要优势是

  • ...易于使用。
  • ...最少的配置。
  • 你可以从Java对象调用远程方法,就像本地调用一样。
  • 你不需要知道,(远程)技术是如何工作的。
  • 你可以容易地更改所用的技术(比如从XML-RPC换到RMI)。
  • 服务不需了解一个远程接口或一个远程异常(RMI是如何的)。
  • 其参数可以是一个复杂的对象(不需要编写串行器(数据编制)或者反串行器(数据编出)的部分)。

CRISPY同时还提供了对于拦截器以及/或修改器更好的调用控制。拦截器在方法调用的前后都可以使用,可被用于日志记录,时间安排,等等。修改器同样可用于方法调用的前后。它们可被用于转换/扩展/丰富调用参数,比如,加入安全头部,转换/扩展/丰富执行结果。

CRISPY框架的主要组件包括:

  • 服务管理器-这是创建服务的工厂。
  • 属性-用于配置服务管理器。
  • 服务接口- 普通的Java类。
  • 代理/执行器-所有来自服务接口的调用都会委派给代理/执行器。

CRISPY同时还可以与其它的流行框架相结合。一张关于现有已实现集成的框架的列表中包括了SpringFramework,HiveMind(Jakarta),PicoContainer(codehaus),OSGi,AspectJ,等等。

TheServerSide.com网站的讨论将CRISPY与APache WSIF,Spring remoting以及其它提供相同功能的框架进行了比较-对多种传输方式提供统一的调用模型。

在许多需要将客户端代码与调用协议和服务位置解耦的情况中,CRISPY都能得到很好的应用。

查看英文原文:CRISPY, a New Remoting Framework

你可能感兴趣的:(CRISPY,一个新的远程框架)