1. Architectural Styles for Distributed Systems
(1)Layered architectures(PAD model)
Presentation layer就是人机交互界面,根传统的应用程序业务逻辑的减少。
Application layer也叫事务逻辑层或中间层。这一层主要用于大批量事务处理、事务支持、大型配置、信息传送和网络通信。在这一层,把复杂的业务关系细分为多项功能单一的服务,每项服务都执行一项特殊任务,这些服务可以用相对独立的服务组件来实现其功能。通过分布这些组件,可以平衡数据处理负载,协调逻辑关系,调整业务规模和业务规则。这一层可部署在网络的任何地方,通常称之为应用服务器。
Data layer就是我们传统的数据服务器。如oracle等。
在这种体系结构下,传统的表现层和数据层的业务逻辑,都将集中到业务层管理。这样增加了客户端应用程序的通用性、独立性,也避免了数据层臃肿的存储过程和触发器。另外,也减少了软件配置和版本更新的困难。只需要配置和更新业务层就够了。
(2)Object-based Style
隐藏对象内部状态,通过方法进行所有的交互操作,这是面向对象编程的一个基本原则——数据封装(Data Encapsulation),可以通过接口(Interface)来使用方法。一个对象可能实现多个接口,而给定的一个接口定义可能有多个对象为其提供实现。
(3)Resource-based Architectures
Amazon's Simple Storage Service
(4)Event-based Architectures
Shared Data Space
2. System Architectures
(1) Centralised Organisations
- Basic Client-Server Model
- 2-Tiered Architecture
- 3-Tiered Architecture
(2) Decentralised Organisations
Peer-to-Peer architectures
P2P系统全称是peer-To-peer System,就是对等系统的意思。他的出现使得资源可以在所有的节点间进行数据的共享了,前提是只要他是连上网络的。在P2P系统中,所有的资源和数据对象都分布于各个节点中。
1、P2P系统可以用在一些分布式的应用和服务当中。
2、在P2P中一个好的资源存放算法就显得非常重要。
3、正是因为上面的第2条原因,出现了P2P的中间件,目的就是为了location定位资源对象或者是副本容错的处理,每个资源以GUID的形式来区别标识别。
(3) Hybrid Architectures
Edge-server systems