![](https://csdnimg.cn/release/download_crawler_static/88626826/bg3.jpg)
A. Lanoix
等人理论计算机科学电子笔记
279
(
2
)(
2011
)
43
2 i f
($context/child:∈RequestList/attribute:∈deviation)
>
(
50)
3newCache = new(
“
缓存
”
);
$
root,$newCache);
5
bind($root/child:
∈
RequestCache/interface:
∈
getcache,$newCache/interface:
∈
cache);
RequestReceiver组件从网络读取
HTTP
请求并将其传输到RequestReceiver组
件。为了保持响应时间尽可能短,RequestDispatcher可以使用缓存(使用组件
CacheCache)或直接将请求传输到RequestDispatcher组件。请求数(负载)和
相似请求的百分比(偏差)是为RequestList组件定义的两个参数:
•
只有当类似的
HTTP
请求数量很高时,才会使用缓存
•
缓存组件的memorySize必须取决于
服务器的负载
•
缓存中数据的validityDuration还必须取决于服务器的总体负载
•
RequestDispatcher使用的文件服务器(如FileServer1和FileServer2组件)的
数量取决于服务器的总体负载
HttpRequest
请求
获取
RequestReceiver
HttpServer
处理 程序
getDispatcher
getCache
请求
(偏差,负载)
dispatchergetServer
RequestDispatcher
缓存
卡谢什
(
validityDuration
,
memorySize
)
Server1
FileServer1
Server2
FileServer2
图二
. HTTP
服务器架构
我们认为HTTP服务器可以在执行过程中通过以下重新配置操作进行重新配置:
(i)
AddCachetric和RemoveCachetric,分别用于在偏差值增加/减少到50左右时增
加和删除Cachetric分量
(ii)
AddFileServer和removeFileServer,分别用于添加和删除FileServer 2组件
;
(iii)
MemorySizeUp和MemorySizeDown,分别用于增加和减少MemorySize值;
(iv)
DurationValidityUp 和 DurationValidityDown 分 别 增 加 和 减 少 ValidityDuration
值。
作为示例,我们指定了用FScript语言表示的AddCache重配置[11]。当偏差值超
过
50
时,重构包括实例化Cachetron组件。然后,将组件集成到架构中,并与
RequestStream的所需接口建立绑定。最后,启动组件Cachetram