Wireless Sensor Networks are increasingly being deployed in enterprise scenarios involving multiple actors. the capabilities of sensors must be shared across many applications and sensors must cooperate across federat...
详细信息
Wireless Sensor Networks are increasingly being deployed in enterprise scenarios involving multiple actors. the capabilities of sensors must be shared across many applications and sensors must cooperate across federations spanning administrative domains. this paper describes our efforts towards constructing federated wireless sensor systems. It leverages and details key building blocks designed to achieve federation and sharing: a component model with distributed event-based communication, a policy-driven control infrastructure for resources and communications, a deployment architecture and a mechanism to establish and propagate trust into the wireless sensor network. the building blocks focus on the specific and necessary in-network extensions, such as extensions to sensor run-time, middleware and programming abstractions, rather than the backend challenges. the combination of the building blocks creates a security middleware that supports multiparty federated sensor networks. An estimate of the total cost of federation in terms of footprint is provided and first experiences of application of the middleware are reported upon.
Aspect-oriented programming provides a convenient high-level model to define several kinds of dynamic analyses, in particular thanks to recent advances in exhaustive weaving in core libraries. Casting dynamic analyses...
详细信息
Aspect-oriented programming provides a convenient high-level model to define several kinds of dynamic analyses, in particular thanks to recent advances in exhaustive weaving in core libraries. Casting dynamic analyses as aspects allows the use of a single weaving infrastructure to apply different analyses to the same base program, simultaneously. However, even if dynamic analysis aspects are mutually independent, their mere presence perturbates the observations of others: this is due to the fact that aspectual computation is potentially visible to all aspects. Because current aspect composition approaches do not address this kind of computational interference, combining different analysis aspects yields at best unpredictable results. It is also impossible to flexibly combine various analyses, for instance to analyze an analysis aspect. In this paper we show how the notion of execution levels makes it possible to effectively address these composition issues. In order to realize this approach, we explore the practical and efficient integration of execution levels in a mainstream aspect language, AspectJ. We report on a case study of composing two out-of-the-box analysis aspects in a variety of ways, highlighting the benefits of the approach.
Manually implementing equals (for object comparisons) and hashCode (for object hashing) methods in large software projects is tedious and error-prone. this is due to many special cases, such as field shadowing, compar...
详细信息
Manually implementing equals (for object comparisons) and hashCode (for object hashing) methods in large software projects is tedious and error-prone. this is due to many special cases, such as field shadowing, comparison between different types, or cyclic object graphs. Here, we present JEqualityGen, a source code generator that automatically derives implementations of these methods. JEqualityGen proceeds in two states: it first uses source code reflection in MetaAspectJ to generate aspects that contain the method implementations, before it uses weaving on the bytecode level to insert these into the target application. JEqualityGen generates not only correct, but efficient source code that on a typical large-scale Java application exhibits a performance improvement of more than two orders of magnitude in the equality operations generated, compared to an existing system based on runtime reflection. JEqualityGen achieves this by generating runtime profiling code that collects data. this enables it to generate optimised method implementations in a second round.
General-purpose middleware must often be specialized for resource-constrained, real-time and embedded systems to improve their response-times, reliability, memory footprint, and even power consumption. Software engine...
详细信息
General-purpose middleware must often be specialized for resource-constrained, real-time and embedded systems to improve their response-times, reliability, memory footprint, and even power consumption. Software engineering techniques, such as aspect-oriented programming (AOP), feature-oriented programming (FOP), and reflection make the specialization task simpler, albeit still requiring the system developer to manually identify the system invariants, and sources of performance and memory footprint bottlenecks that determine the required specializations. Specialization reuse is also hampered due to a lack of common taxonomy to document the recurring specializations. this paper presents the GeMS (generative Middleware Specialization) framework to address these challenges. We present results of applying GeMS to a Distributed Real-time and Embedded (DRE) system case study that depict a 21-35% reduction in footprint, and a 3̃6% improvement in performance while simultaneously alleviating 9̃7% of the developer efforts in specializing middleware.
While dynamic code evolution in object-oriented systems is an important feature supported by dynamic languages, there is currently only limited support for dynamic code evolution in high-performance, state-of-the-art ...
详细信息
While dynamic code evolution in object-oriented systems is an important feature supported by dynamic languages, there is currently only limited support for dynamic code evolution in high-performance, state-of-the-art runtime systems for statically typed languages, such as the Java Virtual Machine. In this tool demonstration, we present the Dynamic Code Evolution VM, which is based on a recent version of Oracle's state-of-the-art Java HotSpot (TM) VM and allows unlimited changes to loaded classes at runtime. Based on the Dynamic Code Evolution VM, we developed an enhanced version of the Mantisse GUI builder (which is part of the NetBeans IDE) that allows adding GUI components without restarting the application under development. Furthermore, we redesigned the dynamic AOP framework HotWave to take advantage of the enhanced dynamic code evolution capabilities. the new version, HotWave2, now supports most AspectJ constructs, including around() advice and static cross-cutting. We will demonstrate boththe enhanced Mantisse GUI builder as well as HotWave2, weaving several aspects for dynamic analysis in sizable applications at runtime.
Highly concurrent and reliable data objects are vital for parallel programming. Lock-free shared data objects are highly concurrent and guarantee that at least one operation, from a set of concurrently executed operat...
详细信息
Developing pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge......
详细信息
ISBN:
(纸本)9781605584942
Developing pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge... Besides requiring various areas of expertise, programming such applications involves writing a lot of administrative code to glue technologies together and to interface with both hardware and software components. this paper proposes a generativeprogramming approach to providing programming, execution and simulation support dedicated to the pervasive computing domain. this approach relies on a domain-specific language, named DiaSpec, dedicated to the description of pervasive computing systems. Our generative approach factors out features of distributed systems technologies, making DiaSpec-specified software systems portable. the DiaSpec compiler is implemented and has been used to generate dedicated programming frameworks for a variety of pervasive computing applications, including detailed ones to manage the building of an engineering school.
the proceedings contain 19 papers. the topics discussed include: reusable, generic program analyses and transformations;toward foundations for type-reflective metaprogramming;transactional pointcuts: designation reifi...
ISBN:
(纸本)9781605588629
the proceedings contain 19 papers. the topics discussed include: reusable, generic program analyses and transformations;toward foundations for type-reflective metaprogramming;transactional pointcuts: designation reification and advice of interrelated join points;extending aspectJ for separating regions;a language and framework for invariant-driven transformations;JavaGI in the battlefield: practical experience with generalized interfaces;classifying java class transformations for pervasive virtualized access;advanced runtime adaptation for java;hotwave: creating adaptive tools with dynamic aspect-oriented programming in java;generating safe template languages;abstract parsing for two-staged languages with concatenation;synthesis of fast programs for maximum segment sum problems;a generativeprogramming approach to developing pervasive computing systems;and algorithms for user interfaces.
Programs can be composed from features. We want to verify automatically that all legal combinations of features can be composed safely without errors. Prior work on this problem assumed that features add code monotoni...
详细信息
ISBN:
(纸本)9781605584942
Programs can be composed from features. We want to verify automatically that all legal combinations of features can be composed safely without errors. Prior work on this problem assumed that features add code monotonically. We generalize prior work to enable features to add and remove code, describe our analyses and implementation, and review case studies. We observe that more expressive features increase the complexity of developed programs rapidly - up to the point where tools and automated concepts as presented in this paper are indispensable for verification.
Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. the principal attraction of MMS is that families of language constructs ca...
详细信息
Modular Monadic Semantics (MMS) is a well-known mechanism for structuring modular denotational semantic definitions for programming languages. the principal attraction of MMS is that families of language constructs can be independently specified and later combined in a mix-and-match fashion to create a complete language semantics. this has proved useful for constructing formal, yet executable, semantics when prototyping languages. In this work we demonstrate that MMS has an additional software engineering benefit. In addition to composing semantics for various language constructs, we can use MMS to compose various differing semantics for the same language constructs. this capability allows us to compose and reuse orthogonal language tasks such as type checking and compilation. We describe algebra combinators, the principal vehicle for achieving this reuse, along with a series of applications of the technique for common language processing tasks. (C) 2010 Elsevier B.V. All rights reserved.
暂无评论