1,788 research outputs found
Microevolution of Pervasive Services
The pervasive computing vision of the future communication infrastructure is that we will be everywhere connected with invisible devices, which may consume and provide computational resources over the network. Resources are often abstracted as autonomous services, which must be "continually" evolved at run time to satisfy changing requirements. This paper discusses the design, development and evaluation of the Microevolution of Pervasive Services framework, which aims at supporting the run-time small-scale evolution of services through code mobility. Indeed, the framework provides (i) a dispatching mechanism to migrate Java code throughout the pervasive networking environment, and (ii) a microevolution manager that exploits Java reflection mechanisms to optimize code transmission.</p
Engineering Emergent Semantics into Pervasive Resource Discovery
Pervasive environments are composed as spontaneous aggregation of heterogeneous and independent devices, which may seamlessly consume, but also provide, software resources over the network. As result, applications emerge from the dynamic composition of the resources available within the environment. This requires applications of being semantic-aware, to reason about and learn from the environment. However, due to the inherent high degree of dynamism characterizing pervasiveenvironments, semantics cannot be established a-priori, rather it should "emerge" from online negotiations among involved parties. This paper, formalizes emergent semantics principles into formal foundations, and shows, as proof of concept, how to engineer such foundations into a fully distributedsemantic service discovery.</p
PACE: A data-flow coordination language for asynchronous network-based applications
Network-based applications usually rely on the explicit distribution of components, which interact by means of message passing. Assembling components into a workflow is challenging due to the asynchronism inherent to the underlying message-passing communication model. This paper presents the PaCE language, which aims at coordinating asynchronous network-based components by exploiting the data-flow execution model. Specifically, PaCE has been designed for dealing with components compliant with the P-REST architectural style for pervasive adaptive systems. Moreover PaCE provides reflective features enabling run-time adaptation and evolution of workflows.</p
Resource-oriented middleware abstractions for pervasive computing
The pervasive computing vision of the future communication and computational infrastructure is that we will be everywhere virtually connected with invisible computers, embedded in the environment. In this context, the challenge is to provide a middleware support that allows applications to have minimal assumptions about the environment while being able to dynamically adapt to the surrounding context. Specifically, the middleware should (i) deal with the run-time growth of the application in terms of involved resources (flexibility), (ii) accommodate heterogeneous and unforeseen functionalities into the running application (genericity), and (iii) discover new functionality at run time and rearrange the application accordingly (dynamism). To this extent, we devised the P-REST (Pervasive REST) architectural style and built the P RIME (P-rest Runtime) middleware to support it. PRIME allows a quick and effective development and execution P-REST applications by leveraging functional programming and code mobility.</p
RESTful service architectures for pervasive networking environments
Computing facilities are an essential part of the fabric of our society, and an ever-increasing number of computing devices is deployed within the environment in which we live. The vision of pervasive computing is becoming real. To exploit the opportunities offered by pervasiveness, we need to revisit the classic software development methods to meet new requirements: (1) pervasive applications should be able to dynamically configure themselves, also benefiting from third-party functionalities discovered at run time and (2) pervasive applications should be aware of, and resilient to, environmental changes. In this chapter we focus on the software architecture, with the goal of facilitating both the development and the run-time adaptation of pervasive applications. More specifically we investigate the adoption of the REST architectural style to deal with pervasive environment issues. Indeed, we believe that, although REST has been introduced by observing and analyzing the structure of the Internet, its field of applicability is not restricted to it. The chapter also illustrates a proof-of-concept example, and then discusses the advantages of choosing REST over other styles in pervasive environments.</p
Building design-time and run-time knowledge for QoS-based component assembly
Modern software systems are required to dynamically adapt to changing workloads, scenarios, and objectives and to achieve a certain Quality of Service (QoS). Guaranteeing QoS requirements is not trivial, as run-time uncertainty might invalidate the design-time rationale, where software components have been selected by means of off-line analysis. In this work, we propose a QoS-based feedback approach that makes a combined use of design-time predictions and run-time measurements to manage QoS data over time and support software architects while selecting software components that best fit QoS requirements. We illustrate the feasibility and efficacy of the approach on a case study, where the quantitative evaluation shows how the analysis effectively identifies the sources of QoS violations and indicates possible solutions to achieve QoS requirements
QoS-based Feedback for Service Compositions
The Service Oriented Architecture is boosting a fast move from developing applications as stand-alone systems, to developing applications as composition of autonomous and heterogeneous services. Service compositions are required to adapt dynamically to changing workloads, scenarios and objectives, and to achieve a certain Quality of Service (QoS). Guaranteeing such requirements is not a trivial task, since run-time variability makes the process of devising service compositions challenging for software designers. In this paper, we exploit the QoS analysis at run time to support software design, highlighting service compositions where QoS predictions are not reliable enough. To this end, we propose a QoS-based feedback framework that makes use of design-time and run-time knowledge to manage QoS data over time, and support software architect while devising a service composition that best fits QoS requirements. We illustrate the feasibility and effectiveness of the approach on a case study from the e-health domain.</p
- …
