新的软件架构: Synergistic Software Architecture

来源:互联网 发布:c语言点滴pdf百度云 编辑:程序博客网 时间:2024/06/04 18:40

网络程序出现,就有了“请求”-“响应”(Request-Response / R-R)式的软件架构,其出现至今已经很久很久了,或许是人类社会中各系统之间的交互规则,决定了B/C/W – S类型的R-R型架构, 该种架构类型满足了人类社会的信息系统需求, 同时也影响了程序工程人员的思想。

这里分析当下B/C/W - S构架中的 S 端:

S端大都以多层服务器架构型来实现的,如下:

 


为了实现服务器处理的高性能,分别对Server Cache DB 层做水平的扩展, 所有的数据交互仍然是R-R型的交互方式, 即请求数据,响应数据。

例如 当用户发来一个请求Request1,时,请求数据,以及处理该请求所需的其它数据流为:
loadbalance  ->  S1  ->  C1  ->  DB1

当数据返回的路线为
DB1  ->  C1  ->  S1 -> loadBalance  -> 用户

然而分析 用户的请求,有:增删改查
其中有些并不需要进行复杂的计算, 像 查找一个数据,删除某数据, 这个任务完全可以由Cache层实现。并不需要Server处理,而Server只注于其自身的业务就行。

而协同架构中, 其于系统的观点,从各个子系统的功能角度出发, 将S端的各子系统放置于平等的地位, 同时利用其主动推送数据的功能, 其架构图如下:


 


在这种架构下,一个请求Request1到来时处理流程如下:

一、在 需要复杂处理的情况下,数据流向为:
1. Request1  -> S1
            ->C1

2. C1  ->  S1 (C1 把所需的数据推送给S1)

3. S1 处理数据后返回给 ->  loadBalance ->  客户

二、在只有查询的情况下

数据请求
Request1  ->  C1

数据返回
C1  -> loadbalance  -> 客户



或许只是R-R的思想影响了你系统的性能, 尝试一下 上面这个方案。 

又或是人性的缺点影响了你系统的性能呢 ?



0 0
原创粉丝点击