没有合适的资源?快使用搜索试试~ 我知道了~
首页构建自适应软件系统:动态环境下的工程挑战与方法
构建自适应软件系统:动态环境下的工程挑战与方法
需积分: 15 2 下载量 97 浏览量
更新于2024-07-17
收藏 4.7MB PDF 举报
"《工程自适应软件系统》是一本由Yijun Yu、Arosha Bandara、Shinichi Honiden、Zhenjiang Hu、Tetsuo Tamai、Hausi Müller、John Mylopoulos和Bashar Nuseibeh共同编辑的著作,它聚焦于当前社会中日益复杂的软件密集型系统在动态不确定环境中的自我适应性研究。该书是基于日本神山会议系列讨论成果编撰的,这些会议分别于2012年、2013年和2015年举办,作者们不仅积极参与,还在多年的研究反思后,提炼出了一系列关键观点。 本书共分为7章,首先介绍了设计和工程自适应软件系统的基本原则(第1章),探讨了利用自动产生的控制理论解决方案实现软件自我适应的方法(第2章)。接着,章节3关注了构建自我适应授权基础设施所面临的挑战。第4章深入研究了双向转换在自我适应系统中的应用,这提供了一种功能需求的有效实现途径。为了优化性能,第5章论述了并行适应多个服务组合实例的问题。在安全性和隐私保护方面,第6章分析了评估自我保护系统的风险行为。最后,第7章通过一个智能网络物理系统的实际示例,展示了如何在实际环境中实验和测试适应性。 作为神山会议交流的成果,本书汇集了跨学科领域的专业知识,旨在推动下一代自适应软件系统的工程实践。书中涉及的关键知识点包括软件工程、系统工程以及控制理论,这些都是解决复杂环境中自适应系统设计和实现的核心要素。此外,它还强调了质量要求的重要性,如性能、安全和风险管理。这本书不仅为研究者提供了理论框架,也为工程实践者提供了实用的指导,标志着自适应软件系统领域研究的一个重要里程碑,预示着未来进一步探索和发展的广阔前景。"
资源详情
资源推荐
1 Design and Engineering of Adaptive Software Systems 9
Table 1.2 Revoking action
Action Revoke(s
ij
,s
il
)
Precondition Constraint(s
il
)
∧(bound(s
ij
) ∧ (Function(s
il
) | Function(s
ij
))
∧Quality(s
il
) | Quality(G)
∨¬Available(s
ij
))
Trigger Quality(s
il
) | Quality(s
ij
) ∧ available(s
il
)
Effect bound(s
il
) ∧ remove(s
ij
)
Table 1.3 Par_and(s
i1
,s
ij
,s
il
) Composition action
Action Par_and(s
i1
,s
ij
,s
il
)
Precondition Constraint(s
i1
,s
ij
,s
il
) holds
∧(Function(s
i1
) | Function(s
ij
)) ∧ Function(s
i1
) | Function(s
il
))
∧minimal(throughput(G)) ≥ throughput(s
i1
)
∧minimal(throughput(G)) ≥ throughput(s
ij
)
∧minimal(throughput(G)) ≥ throughput(s
il
)
∧available(s
i1
) ∧ available(s
ij
) ∧ available(s
il
)
Trigger throughput(Par_and(s
i1
,s
ij
,s
il
)) ≥ minimal(throughput(G))
Effect bound(s
i1
) ∧ bound(s
ij
) ∧ bound(s
il
)
“Network speed” has a value that is less than 50 kbps, then the service is not
available.
An adaptive system can perform actions to handle changes of user goals, the
environment, or service components. Each action represents a specific procedure
to be carried out by the system. Adaptation actions include adding, removing, or
updating an atomic service; reorganizing the structure of an abstract service plan;
reorganizing the structure of a concrete service chain and adding, removing, or
updating user goals; and adding, removing, or updating an environmental monitor.
For each action there may be associated environmental conditions that need to
be monitored by the system and included in the environment set E. Actions have
associated preconditions, triggers, and effects with usual semantics. All of them
consist of propositions constraining environmental variables and the internal state
of a service component.
For example, when a new atomic service s
il
emerges, s
ij
is an atomic service of
a composite service that suddenly becomes unavailable or waiting to be executed
at the moment, i.e., Functionality(s
il
) = Functionality(s
ij
), and Quality(s
il
)is
obviously better than Quality (s
ij
); the system may take “revoking” action in
Table 1.2.
When a user’s required value exceeds the QoS value of any existing service
e
1
,...,e
n
, the system may execute more than one atomic service (say s
i1
,s
ij
,s
il
)
concurrently (with complete synchronization) to meet the demand. This is shown as
action “Par _and(s
i1
,s
ij
,s
il
) composition” in Table 1.3.
10 S. Hidaka et al.
Table 1.4 Par_or(s
ij
,s
il
) Composition action
Action Par_or(s
ij
,s
il
)
Precondition Constraint(s
ij,
s
il
) holds
∧(Function(s
ij
) == Function(s
il
))
∧minimal(reliability(G)) ≤ reliability(s
ij
) ≤ optimal(reliability(G))
∧minimal(reliability(G)) ≤ reliability(s
il
) ≤ optimal(reliability(G))
∧available(s
ij
) ∧ available(s
il
)
Trigger reliability(Par_or(s
ij
,s
il
)) ≥ reliability(s
ij
)
∧reliability(Par_or(s
ij
,s
il
)) ≥ reliability(s
il
)
Effect bound(s
ij
) ∧ bound(s
il
)
When a user needs a high-reliability service, while every available service has a
certain level of risk, the system may execute more than one atomic service (e.g., s
ij
and s
il
) concurrently (with 1 out of n synchronization) to meet the demand. This is
shownasaction“Par_or(s
ij
,s
il
)”inTable1.4.
The concepts defined above form a basic framework for representing the planning
strategy of composite services. During the service composition process, user goals
are likely to change, the environment variables are often unpredictable, and the
service repository is constantly updated, so the service composition plan has to
adapt to these changes. Strategies can be formed to decide what adaptive actions to
be carried out, based on the user’s goals to be satisfied, the environment conditions
to be monitored, and the service repository dynamically changing. We provide three
categories of strategies according to the type of change: goal-driven adaptation strat-
egy, environment-triggered adaptation strategy, and service-association strategy.
• Goal-driven strategy: Given a softgoal G, if Quality(s
1
,...,s
r
) does not satisfy
the user’s minimal (Quality(G)), we take actions according to the service
repository and the environment variables to satisfy the user’s new softgoal G,
if possible. This corresponds to the scenario when user requirements change at
runtime. Generally, a goal-driven strategy influences the selection of the structure
of an abstract service.
• Environment-triggered strategy: Given a certain runtime context E, where there
are composed but not yet executed services, if a certain constraint on E does
not hold, alternative services are selected to satisfy the environment constraints.
The strategy fits the cases where the environment is not stable and requires
reconfiguration of concrete services.
• Service-dominated strategy: This strategy applies if there is a bounded set of
services that haven’t been executed yet and there is a new service providing
equivalent function and better quality or one of the bounded services becomes
unavailable. Assuming that user goals and the environment stay the same, the
new service can satisfy user goals better, so we take action to add the new service
or remove the unavailable one. This strategy is useful for a dynamically changing
service repository and will result in replacement of the concrete services.
1 Design and Engineering of Adaptive Software Systems 11
1.2.2.2 Adaptive Service Composition Process
This section introduces a generic adaptive service composition process (Fig. 1.2). It
is closely related to the MAPE-K feedback loop, proposed by IBM in Autonomous
Computing White Paper [16], in which “M” corresponds to P7 (monitor for events),
“A” corresponds to P6 (analyze environmental variables), “P” refers to P4 (select
and adapt predefined services, in other words, planning), “E” is P5 (execute
selected services), and “K” includes P1, P2, where initial knowledge are acquired
and domain information is interpreted and categorized. Next we introduce these
proposed functions in detail.
Step 1: The initialization function (P1) receives inputs from the environment and
the users, such as the system goals and the values of environmental variables.
Step 2: The domain information is then interpreted and categorized (P2). The
required goals are used to build the goal model whose leaf goals can be matched
with service functions, to select predefined services. The environmental variables
are monitored according to the process discussed below.
Step 3: The service repository is categorized according to a set of abstract
services which include many concrete atomic services available over
the Internet. The Match abstract services operation (P3) matches the
abstract service {S
0
,...,S
n
,e
1
,...,e
n
} from the service repository with
{F
0
,...,F
m
,e
1
,...,e
n
} refined iteratively from the user’s goals (Function
(G)).
Fig. 1.2 A generic monitoring and adaptation process model
12 S. Hidaka et al.
Step 4: The select and adapt concrete services operation (P4) selects atomic
services or compositions from the abstract service according to user softgoals,
Quality(G). If the Monitor operation (P7) identifies certain Change(S,G, E), the
Select operation (P4) undertakes adaptive action to tackle the problems according
to the current strategy (G×E ×S ×A). During selection and adaptation, machine
learning and AI strategies can be adopted to provide useful feedbacks. The select
and adapt the concrete services (P4) would output a series of selected services.
Step 5: Selected services generated in Step 4 are now executed (P5). The exe-
cution affects the runtime values of the environmental variables, whose change
can be monitored by the monitoring mechanism. And when abnormal behaviors
have been observed, the system will trigger predefined actions to maintain the
expected service effect.
Step 6: The runtime status is analyzed, and new environmental variables may be
obtained (P4). If current values do not satisfy expected values of environmental
variables, the monitor for events operation (P7) identifies the problem.
Step 7: During the execution of the service process (P5), user goals are also
allowed to change, environmental variables are allowed to have uncertain
changes, while service repository is also allowed to change dynamically. These
changes (S,G, E) need to be captured and submitted to the select and adaptation
engine for concrete services (P4).
AsshowninFig.1.2, the steps P4, P5, P6, and P7 form a feedback loop that
executes iteratively to support runtime adaptation. Those changes on the goals and
the service repository come from the user and the platform correspondingly, so they
are not part of the feedback loop.
In summary, the goal-driven runtime service composition adaptation proposed
in this chapter aims to provide a different viewpoint and interpretation to runtime
requirement monitoring and services adaptation. To allow runtime requirements
changes and system adaptation, the software system needs to maintain a goal
refinement model during execution, in which the set of user goals, environment
variables, possible system actions, and triggering rules connecting the previous
three sets can evolve dynamically. The proposed service adaptation architecture, the
different types of rules in the rule base, the monitoring mechanism for collecting the
environmental parameters, and the planning mechanism reasoning about adaptation
strategies are to be further examined in our ongoing future work.
1.2.3 Human Factors
An engineered adaptive system captures the knowledge of human experts such as
business analysts and architects as runtime models and adaptation rules and uses
them as a knowledge base for adaptation decisions. On the other hand, most of
∗
Contributed by Xin Peng.
1 Design and Engineering of Adaptive Software Systems 13
the software systems today can be treated as the so-called socio-technical systems,
in which human, hardware, and software components work in tandem to fulfill
stakeholder requirements [40]. Therefore, human factors are critical for the design
and engineering of adaptive software systems.
Human factors in an adaptive system can be understood and considered from
different perspectives. A human can act as an expert providing knowledge for
runtime adaptation decisions. A human can also be treated as a user, an agent, or
a component of an adaptive system. Human factors from these perspectives need
to be considered together with software techniques such as reconfigurable software
architectures when designing an adaptive system.
1.2.3.1 Human as Expert
In traditional software evolution, human experts such as business analysts and
architects make adaptation decisions based on their business and design knowledge.
Runtime adaptation can be regarded as the automation of human-directed adaptation
based on runtime representations of human knowledge. Some adaptive systems
even can have humans in the adaptation loop, where major changes are demanded
and require human approval or guidance [41]. Moreover, runtime adaptation often
involves both requirements and architectural decisions where different concerns
require different knowledge [13]. Considering human as expert, we need to capture
human knowledge at different layers as knowledge bases of runtime adaptation
and establish some kinds of multilayered control and feedback loops at runtime. A
difficulty of this multilayered loop lies in the complex interaction between different
layers. For example, if a problem (e.g., performance degradation) cannot be handled
by lower-layer adaptation, an adaptation request will be thrown to higher layers. On
the other hand, higher-layer adaptation actions need to be mapped to lower-layer
adaptation actions. This mapping involves complex traceability between different
layers (e.g., requirements and architecture).
1.2.3.2 Human as User
Online systems such as online shopping and games usually serve a large number
of users simultaneously. Each user in this kind of system has his own experience
on the system. And their preferences on quality attributes are usually different. For
example, a response time of 10 s is usually unacceptable for a young person doing
online shopping but may be good enough for an old person. From this perspective,
an adaptive system can plan the overall adaptation by considering personalized
experiences of different users. This can provide more flexibility for system-level
adaptation decisions. For example, the system can allocate less resources for users
who are less sensitive to response time to ensure the satisfaction of more sensitive
users. Considering human as user, an adaptive system can learn user experience and
quality preference by implicitly monitoring user behaviors and feedback using HCI
剩余172页未读,继续阅读
THESUMMERE
- 粉丝: 23
- 资源: 328
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功