分布式web服务架构

分布式web服务架构


  说到分布式web服务确实是一个很大的话题,大家可能首先会想到应用服务集群与数据服务集群。
一旦谈到服务集群,大家会想到一系列相关技术:负载均衡技术、主备技术、缓存同步技术等。
这里主要谈论一下应用服务器的 面向web服务交互方式。


  web service是这个领取不可能绕过的话题, 在传统企业系统集成一提到web service大家就回想到soa(面向服务架构)。
服务化以后, 部分业务逻辑被抽离出来并以服务提供方(服务端)方式对服务调用方(客户端)提供服务。
SOA为理念的架构,使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。


常用方式有这些:
RPC(Remote Procedure Call): 面向方法的远程过程调用。
SOAP(Simple Object Access Protocol): 面向简单对象访问的服务架构。
REST(Representational state transfer): 面向资源的服务架构。
EBS(Enterprise Service Bus): 面向消息的企业服务总线架构。


REST与RPC的互联网常用的两种交互方式,这里简单做一下比较:
1. REST支持抽象的工具是资源,RPC支持抽象的工具是过程。
2. RPC是以动词为中心的, REST是以名词为中心的
3. REST支持数据流和管道,RPC不支持数据流和管道。
4. RPC中没有统一接口的概念,接口设计风格可以完全不同,
RPC也不支持操作语义对于中间组件的可见性,带来客户端与服务器端的紧耦合;
REST使用了平台中立的消息,支持统一接口的REST风格,可以达到最小的耦合度。


比较了三种架构风格之间的差别之后,从面向实用的角度来看,REST架构风格可以为Web开发者带来三方面的利益:
1.简单性
可以充分利用大量HTTP服务器端和客户端开发库、Web功能测试/性能测试工具、HTTP缓存、HTTP代理服务器、防火墙。
这些开发库和基础设施早已成为了常规通用组件了,解决了大多数工程方面的问题。
2.扩展性
充分利用好通信链各个位置的HTTP缓存组件,可以带来更好的可扩展性。
3.统一接口
文本协议的统一接口带来了最大限度的松耦合,允许服务器端和客户端程序在很大范围内相对独立地进化。


主要因为这些方面的综合表现,这使得REST(restful)在互联网架构中广泛被采用,占据着统治地位 ,:
扩展性
松耦合
客户端实现语言无关
性能
安全性


你可能感兴趣的:(base)