Abstract

Abstract This paper presents a comprehensive approach to describe, deploy and adapt component-based applications having dynamic non-functional requirements. The approach is centered on high-level contracts associated to architectural descriptions, which allow the non-functional requirements to be handled separately during the system, design process. This helps to achieve separation of concerns facilitating the reuse of modules that implement the application in other systems. Besides specifying non-functional requirements, contracts are used at runtime to guide configuration adaptations required to enforce these requirements. The infrastructure required to manage the contracts follows an architectural pattern, which can be directly mapped to specific components included in a supporting reflective middleware. This allows designers to write a contract and to follow standard recipes to insert the extra code required to its enforcement in the supporting middleware.

Highlights

  • This paper presents a comprehensive approach to describe, deploy and adapt component-based applications having dynamic non-functional requirements

  • CR-RIO supporting middleware follows an architectural pattern composed by a set of components, namely: one Global Contract Manager (GCM), and Local Contract Managers (LCMs), Contractors and quality of service (QoS) Agents

  • According to the values to be monitored, which were registered by a Contractor, a QoS Agent can issue an out-of-spec notification, which includes relevant resource-related information, allowing the respective Contractor to verify if a resource is no more available or if it does not meet the specification defined in the profile

Read more

Summary

Introduction

This paper presents a comprehensive approach to describe, deploy and adapt component-based applications having dynamic non-functional requirements. The approach is centered on high-level contracts associated to architectural descriptions, which allow the non-functional requirements to be handled separately during the system design process This helps to achieve separation of concerns facilitating the reuse of modules that implement the application in other systems. The specification, setup and adaptation concerns associated to non-functional requirements are generally embedded in the application programming modules in an ad-hoc manner, mixed with the application’s specific code This lack of modularity hinders software evolution and code reuse, making difficult its verification and debugging. Non-functional requirements can be handled by reusable services provided by middleware infrastructures or native systems support This makes it feasible to design a software system based on its architectural description, which includes the functional components, the interactions among those components, and requirements regarding the behavior of system resources. Concluding the article, we comment on some related proposals and provide some conclusions

Framework Elements
The QoS Contract Language
Communication Technology Adaptation
Client-Server Adaptation
Single Server Configuration
Distributed Server Configuration
Supporting Middleware
Implementation Details
Additional remarks
Related Work
Findings
Conclusions
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.