74 research outputs found
Event-driven Adaptation in COP
Context-Oriented Programming languages provide us with primitive constructs
to adapt program behaviour depending on the evolution of their operational
environment, namely the context. In previous work we proposed ML_CoDa, a
context-oriented language with two-components: a declarative constituent for
programming the context and a functional one for computing. This paper
describes an extension of ML_CoDa to deal with adaptation to unpredictable
context changes notified by asynchronous events.Comment: In Proceedings PLACES 2016, arXiv:1606.0540
The cost of securing IoT communications
More smart objects and more applications on the Internet of Things (IoT) mean more security challenges. In IoT security is crucial but difficult to obtain. On the one hand the usual trade-off between highly secure and usable systems is more impelling than ever; on the other hand security is considered a feature that has a cost often unaffordable. To relieve this kind of problems, IoT designers not only need tools to assess possible risks and to study countermeasures, but also methodologies to estimate their costs. Here, we present a preliminary methodology, based on the process calculus IoT-LySa, to infer quantitative measures on systems evolution. The derived quantitative evaluation is exploited to establish the cost of the possible security countermeasures
An Abstract Semantics for Inference of Types and Effects in a Multi-Tier Web Language
Comment: In Proceedings WWV 2011, arXiv:1108.208
Securing IoT communications: at what cost?
IoT systems use wireless links for local communication, where locality depends on the
transmission range and include many devices with low computational power such as sensors.
In IoT systems, security is a crucial requirement, but difficult to obtain, because standard cryptographic techniques have a cost
that is usually unaffordable.
We resort to an extended version of the process calculus LySa, called IoTLySa,
to model the patterns of communication of IoT devices.
Moreover, we assign rates to each transition
to infer quantitative measures on the specified systems.
The derived performance evaluation can be exploited to
establish the cost of the possible security countermeasures
Tracking sensitive and untrustworthy data in IoT
The Internet of Things (IoT) produces and processes large amounts of data. Among
these data, some must be protected and others must be carefully handled because they
come from untrusted sources. Taint analysis techniques can be used to for marking data and for monitoring their propagation at run time, so to determine how they influence the rest of the computation.
Starting from the specification language IoT-LySa, we propose
a Control Flow Analysis for statically predicting how tainted data spread across an IoT system and for checking whether those computations considered security critical are not affected by tainted data
Adaptivity: Linguistic Mechanisms and Static Analysis Techniques
Adaptive systems modify their behaviour in order to run always and everywhere. Their
structure is therefore subject to continuous changes, which however could compromise
the correct behaviour of applications and break the guarantees on their non-functional
requirements. Effective mechanisms are thus required to adapt software to the new
added functionalities and to changes of the operational environment, namely the context in which applications are plugged in. These mechanisms must also maintain the
applications properties after adaptation occurs.
Consequently, a shift in programming technologies and methodologies is needed to manage adaptivity successfully. Since every system, be it adaptive or not, has to be programmed, programming languages need to natively support adaptivity. Furthermore, having adaptivity as a linguistic construct enables us to design and to develop more
adequate verification tools that can help to prevent system failures due to erroneous or
unexpected changes.
This thesis addresses adaptivity, adopting an approach firmly based on programming languages and formal methods. In particular, we have two main concerns. The first one consists of introducing appropriate linguistic primitives to describe the context and to express adaptation. The second one is about the design of verification tools, based on static analysis techniques, in order to ensure that the software maintains its consistency after adaptation
A Context-Oriented Extension of F#
Context-Oriented programming languages provide us with primitive constructs
to adapt program behaviour depending on the evolution of their operational
environment, namely the context. In previous work we proposed ML_CoDa, a
context-oriented language with two-components: a declarative constituent for
programming the context and a functional one for computing. This paper
describes the implementation of ML_CoDa as an extension of F#.Comment: In Proceedings FOCLASA 2015, arXiv:1512.0694
Typing Context-Dependent Behavioural Variation
Context Oriented Programming (COP) concerns the ability of programs to adapt
to changes in their running environment. A number of programming languages
endowed with COP constructs and features have been developed. However, some
foundational issues remain unclear. This paper proposes adopting static
analysis techniques to reason on and predict how programs adapt their
behaviour. We introduce a core functional language, ContextML, equipped with
COP primitives for manipulating contexts and for programming behavioural
variations. In particular, we specify the dispatching mechanism, used to select
the program fragments to be executed in the current active context. Besides the
dynamic semantics we present an annotated type system. It guarantees that the
well-typed programs adapt to any context, i.e. the dispatching mechanism always
succeeds at run-time.Comment: In Proceedings PLACES 2012, arXiv:1302.579
- …