|
发表于 2008-3-25
|
|阅读模式
接口分类(http接口、api接口、RPC接口、RMI、webservice、Restful等概念)7 K0 n. O F6 h1 g# I( ^
( b b O9 e! l. j4 Q7 N0 F4 n' Z h ! i' Q8 t3 X% M$ E0 b8 h
http接口:基于HTTP协议的开发接口.这个并不能排除没有使用其他的协议。$ H- e/ ^/ O+ o7 n" e( m
/ G! { L/ h5 [+ D: T
api接口:API(Application Programming Interface)应用程序编程接口,应用也包括网络应用程序,就像api文档基本上就是使用说明书,API接口可以简单理解成“应用程序使用接口”。
9 |8 Q r9 Q$ G" A; i6 o4 y8 s; l9 {2 M4 V8 l
RPC接口:Remote Procedure Calls 远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。 RPC(远程过程调用)是一项广泛用于支持分布式应用程序(不同组件分布在不同计算机上的应用程序)的技术。RPC 的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果。 没有语言限制。$ N3 u0 X) {+ \+ m
) K# U, \( w* V: c. S9 i: B# E; ? RMI:RMI(Remote Method Invocation,远程方法调用)RMI是针对于java语言的, RMI 允许您使用Java编写分布式对象 M$ g$ i( f: L( C
; n4 y0 J" b2 Q" U Webservice接口:Webservice是系统对外的接口,比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
" O2 ^6 U6 s4 _- q, _1 x, ]: q4 m5 O8 u" N: V
RESTful : 简称 REST,是描述了一个架构样式的网络系统,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为:
0 D: j: k0 K/ a2 _ Q0 p+ J- ?. ?1 Y# q7 F
1.网络上的所有事物都可以被抽象为资源(resource)
7 O2 j0 A- ]# l o7 |' B" B: Y% t6 q/ k
2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
% K U% b5 ` M6 g# I7 {6 d6 k( m' v+ Y& i
3.所有的操作都是无状态的' k0 U1 v6 e3 M2 v% O$ V/ V) U0 v
/ p# k0 N; ~ p& D$ k4 E关于RPC和RMI的区别,各类博客有很多,我就不说了。Webservice和RESTful ,我不知道你说的是那个(Webservice这个是个大类,包括RESTful )你可以看看 SOAP Webservice和RESTful Webservice 的区别。不要刻意去混淆找区别,有些是从不同角度、层次而言。也有可能同一个东西兼顾(不同层次、角度的兼顾)。在如今这个软件泛滥的年代,不同的人叫法不同很多,偷换概念的也有很多。http和webservice接口区别
' g+ B( s/ @7 e; c* O; \/ t4 b+ {3 u+ ]
http和webservice接口区别
9 z" J6 G6 C/ h+ I7 Ehttpservice通过post和get得到你想要的东西 v T2 i+ q0 o& q( [5 n
webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型; C! O' x5 N1 i. A
/ ?, u# i# V, W3 V. C$ M 5 {5 h1 d* F$ u9 \8 D( N
http协议传输的都是字符串了,webservice则是包装成了更复杂的对象。; F, }# X1 x p) X* f7 s
2 P/ d [5 m& a! q& f) W9 ~% J
hessian类似于webservice,但是它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。
7 N* F+ F5 a: d; \! k
& z9 D$ m J% y; k8 ^以hessan的java实现为例,它可以传输Map、List、以及自定义的各种数据接口;比http的纯字符串也方便的多,省却了解析http返回值的步骤 |
|