概念满天飞的年代,我们来对一些术语进行解释一波。


JNI(Java Native Interface):它提供了若干的API实现了Java和其他语言的通信,且这些必须符合jni规范,常常用于调用动态链接库和驱动程序等。但是程序不再跨平台。要想跨平台,必须在不同的系统环境下重新编译本地语言部分。


JTA(Java Transaction API):JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。在数据库应用中,因为我们常常只用到一个数据源,例如JDBC的Connection提供的单个数据源的事务,所以是由数据库自己提供事务管理的。但是在分布式事务中, 不可能由任何"一个"数据源实现事务,于是JTA中的事务是由"事务管理器"实现的,它会在多个数据源之间统筹事务。


JMS(Java Message Service):JMS是java的消息服务,是一系列的接口及相关语义的集合,通过这些接口和和其中的方法,JMS客户端如何去访问消息系统,完成创建、发送、接收和读取企业消息系统中消息。JMS支持两种消息模型,Point-toPoint(P2P)和Publish/Subscribe(Pub/Sub),即点对点和发布订阅模型。


JNDI(Java Naming and Directory Interface):提供基于java技术的统一接口的多个命名和目录服务的应用。您可以使用这个行业标准建立强大的和便携式的目录功能的应用程序。命名服务:就像DNS 一样,通过命名服务器提供服务,大部分的J2EE 服务器都含有命名服务器。  目录服务:一种简化的RDBMS 系统,通过目录具有的属性保存一些简单的信息。

RMI(Remote Method Invocation):远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。只要按照RMI规则设计程序,可以不必再过问在RMI之下的网络细节了,如:TCP和Socket等等。任意两台计算机之间的通讯完全由RMI负责。调用远程计算机上的对象就像本地对象一样方便。缺点是只能基于JAVA语言,客户机与服务器紧耦合。


RPC(Remote Procedure Call):即远程过程调用协议,调用远程计算机上的服务,就像调用本地服务一样。RPC可以很好的解耦系统,如WebService就是一种基于Http协议的RPC。RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。(dobbo)