22 research outputs found
An approach to implementing dynamic adaptation in c
This paper describes TRAP/C++, a software tool that enables new adaptable behavior to be added to existing C++ programs in a transparent fashion. In previous investigations, we used an aspectoriented approach to manually define aspects for adaptation infrastructure, which were woven into the original application code at compile time. In follow-on work, we developed TRAP, a transparent shaping technique for automatically generating adaptation aspects, where TRAP/J is a specific instantiation of TRAP. This paper presents our work into building TRAP/C++, which was intended to be a port of TRAP/J into C++. Designing TRAP/C++ required us to overcome two major hurdles: lack of reflection in C++ and the incompatibility between the management of objects in C++ and the aspect weaving technique used in TRAP/J. We used generative programming methods to produce two tools, TrapGen and TrapCC, that work together to produce the desired TRAP/C++ functionality. Details of the TRAP/C++ architecture and operation are presented, which we illustrate with a description of a case study that adds dynamic auditing capabilities to an existing distributed C++ application
Using Process Technology to Control and Coordinate Software Adaptation
We have developed an infrastructure for end-to-end run-time monitoring, behavior/performance analysis, and dynamic adaptation of distributed software. This infrastructure is primarily targeted to pre-existing systems and thus operates outside the target application, without making assumptions about the target's implementation, internal communication/computation mechanisms, source code availability, etc. This paper assumes the existence of the monitoring and analysis components, presented elsewhere, and focuses on the mechanisms used to control and coordinate possibly complex repairs/reconfigurations to the target system. These mechanisms require lower level effectors somehow attached to the target system, so we briefly sketch one such facility (elaborated elsewhere). Our main contribution is the model, architecture, and implementation of Workflakes, the decentralized process engine we use to tailor, control, coordinate, etc. a cohort of such effectors. We have validated the Workflakes approach with case studies in several application domains. Due to space restrictions we concentrate primarily on one case study, briefly discuss a second, and only sketch others
Towards a Taxonomy of Aspect-Oriented Programming.
As programs continue to increase in size, it has become increasingly difficult to separate concerns into well localized modules, which leads to code tangling- crosscutting code spread throughout several modules. Thus, Aspect-Oriented Programming (AOP) offers a solution to creating modules with little or no crosscutting concerns. AOP presents the notion of aspects, and demonstrates how crosscutting concerns can be taken out of modules and placed into a centralized location.
In this paper, a taxonomy of aspect-oriented programming, as well as a basic overview and introduction of AOP, will be presented in order to assist future researchers in getting started on additional research on the topic. To form the taxonomy, over four-hundred research articles were organized into fifteen different primary categories coupled with sub-categories, which shows where some of the past research has been focused. In addition, trends of the research were evaluated and paths for future exploration are suggested
State Controlled Object Oriented Programming
In this thesis, we examine an extension to the idea of object oriented programming to make programs easier for people and compilers to understand. Often objects behave differently depending on the history of past operations as well as their input that is their behavior depends on state. We may think of the fields of an object as encoding two kinds of information: data that makes up the useful information in the object and state that controls its behavior. Object oriented languages do not distinguish these two. We propose that by specifying these two, programs become clearer for people to write and understand and easier for machines to transform and optimize.
We introduce the notion of state controlled object oriented programming, abbreviated as “SCOOP”, which encompasses explicit support of state in objects. While introducing an extension to object oriented programming, our objective is to minimize any burden on the programmer while programming with SCOOP. Static detection of the current state of an object by programming languages has been a challenge. To overcome this challenge without compromising our objective, a technique is presented that advances contemporary work.
We propose an implementation scheme for a SCOOP compiler that effectively synchronizes the external and internal representation of state of objects. As an implication of this scheme, SCOOP would provide the memento design pattern by default.
We also show how a portion of an object particular to its state can be replaced dynamically, allowing state dependent polymorphism. Further, we discuss how programs coded in SCOOP can be model checked
Separating Introspection and Intercession to Support Metamorphic Distributed Systems
Many middleware platforms use computational reflection to support adaptive functionality. Most approaches intertwine the activity of observing behavior (introspection) with the activity of changing behavior (intercession). This paper explores the use of language constructs to separate these parts of reflective functionality. This separation and "packaging" of reflective primitives is intended to facilitate the design of correct and consistent adaptive middleware. A prototype implementation is described in which this functionality is realized through extensions to the Java programming language. A case study is described in which "metamorphic" socket components are created from regular socket classes and used to realize adaptive behavior on wireless network connections
Spiritual formation in theological education utilizing classical spiritual disciplines
https://place.asburyseminary.edu/ecommonsatsdissertations/1637/thumbnail.jp
Recommended from our members
Orchestrating the Dynamic Adaptation of Distributed Software with Process Technology
Software systems are becoming increasingly complex to develop, understand, analyze, validate, deploy, configure, manage and maintain. Much of that complexity is related to ensuring adequate quality levels to services provided by software systems after they are deployed in the field, in particular when those systems are built from and operated as a mix of proprietary and non-proprietary components. That translates to increasing costs and difficulties when trying to operate large-scale distributed software ensembles in a way that continuously guarantees satisfactory levels of service. A solution can be to exert some form of dynamic adaptation upon running software systems: dynamic adaptation can be defined as a set of automated and coordinated actions that aim at modifying the structure, behavior and performance of a target software system, at run time and without service interruption, typically in response to the occurrence of some condition(s). To achieve dynamic adaptation upon a given target software system, a set of capabilities, including monitoring, diagnostics, decision, actuation and coordination, must be put in place. This research addresses the automation of decision and coordination in the context of an end-to-end and externalized approach to dynamic adaptation, which allows to address as its targets legacy and component-based systems, as well as new systems developed from scratch. In this approach, adaptation provisions are superimposed by a separate software platform, which operates from the outside of and orthogonally to the target application as a whole; furthermore, a single adaptation possibly spans concerted interventions on a multiplicity of target components. To properly orchestrate those interventions, decentralized process technology is employed for describing, activating and coordinating the work of a cohort of software actuators, towards the intended end-to-end dynamic adaptation. The approach outlined above, has been implemented in a prototype, code-named Workflakes, within the Kinesthetics eXtreme project investigating externalized dynamic adaptation, carried out by the Programming Systems Laboratory of Columbia University, and has been employed in a set of diverse case studies. This dissertation discusses and evaluates the concept of process-based orchestration of dynamic adaptation and the Workflakes prototype on the basis of the results of those case studies
A framework for configuration and management of resources and components in open distributed multimedia systems
Orientador: Mauricio Ferreira MagalhãesTese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de ComputaçãoResumo: Em sistemas multimídia distribuídos existe uma diversidade de dispositivos de hardware, sistemas operacionais e tecnologias de comunicação. Para tratar os requisitos destas aplicações, os componentes do sistema precisam interagir entre eles considerando os aspectos de QoS de cada um dos elementos envolvidos. Neste contexto, esta tese apresenta o Cosmos ? um framework baseado em componentes proposto para dar suporte à configuração e gerenciamento de recursos em sistemas multimídia. Como prova de conceito do Cosmos, o framework definido foi usado no projeto do middleware AdapTV ? um middleware para sistemas de televisão digital interativa. O projeto do AdapTV explora os principais componentes dos modelos que foram definidos no Cosmos: o modelo de descrição de aplicações de forma independente de linguagens; o modelo de interconexão, que trata as questões de comunicação entre componentes heterogêneos usando diferentes tecnologias de comunicação; e o modelo de gerenciamento de QoS, que permite o monitoramento e a adaptação do sistema. Estes modelos foram explorados na implementação de um protótipo do middleware AdapTV e de uma aplicação distribuída que realiza a captura, transmissão e apresentação de um fluxo de vídeo. Para dar suporte à reusabilidade, o modelo explora o conceito de propriedades para estabelecer acordos de configuração (estáticos e dinâmicos) envolvendo negociações entre os requisitos dos componentes e as características da plataformaAbstract: Distributed multimedia applications involve a diversity of hardware devices, operating systems and communication technologies. In order to fulfill the requirements of such applications, their constituting components need to interact with each other, as well as to consider QoS issues related to devices and transmission media. In such a context, this thesis presents the Cosmos component-based framework for configuration and management of resources of open, distributed multimedia systems. As a proof of concept, the framework was used in the design of the AdapTV middleware ? a middleware for interactive television which explores the major components of the Cosmos, including: the model to describe and represent applications independently of language aspects; the interconnection model that allows communication between components in heterogeneous and distributed multimedia environments; and the QoS management model that provides support for adaptation in the middleware player, triggered by QoS and user requirements changes. These models have been explored in the implementation of a prototype, which includes the AdapTV middleware and a distributed application example that captures, transmits and presents a video flow. In order to provide a generic and reusable approach, and to establish configuration agreements among component requirements and platform features, the framework explores the concept of propertiesDoutoradoEngenharia de ComputaçãoDoutor em Engenharia Elétric