GithubHelp home page GithubHelp logo

alg-nju / mipa Goto Github PK

View Code? Open in Web Editor NEW
1.0 5.0 0.0 17.74 MB

Automatically exported from code.google.com/p/mipa

License: GNU General Public License v3.0

Shell 0.04% Java 99.69% Batchfile 0.27%

mipa's Introduction

Updates

  • The project is exported from googlecode on April 2015.
  • August 01, 2011, MIPA documentation updated. Part of the system design is provided in chapters in Part 2 of the documentation.

MIPA (Middleware Infrastructure for Predicate detection in Asynchronous environments)

Pervasive applications are undergoing changes as more and more mobile devices are augmented with sensing and controlling abilities, besides the basic abilities of computation and communication. We call such devices C3S (Computation, Communication, Control, and Sensing) devices. Examples of C3S devices include mobile robots patrolling in a chemical plant for safety management and smart phones equipped with a variety of sensors.

C3S devices can provide rich context information for the applications, and pervasive applications are typically designed to be context-aware, i.e., intelligently adapting their behavior to the environment. However, enabling context-awareness through C3S devices is faced with severe challenges, as detailed below.

The contexts of interest to a pervasive application often span a geographically large area, and contain rich semantics. This is often beyond the ability of one single C3S device. Thus, a group of autonomous but also coordinating C3S devices should be deployed. Take a chemical plant scenario for example. A group of mobile robots are deployed to periodically patrol the plant for safety management. The robots need to proceed in certain formation to cover all possible spots of hazardous material leak. Appropriate spreading of multiple robots can also enable the robots to collect contexts with better quality, e.g., to sense the average temperature in the plant.

The coordination among the C3S devices is intrinsically asynchronous. There is no global clock available among the C3S devices. Constrained resources and task scheduling of the C3S devices (often embedded systems) may lead to unpredictable computation delay. The growing adoption of wireless communications, which are prone to bandwidth shortage, network congestion, unpredictable routings, and retransmission, leads to unpredictable communication delay. All these characteristics of the C3S devices and their communication networks lead to the intrinsic asynchrony among the contexts they collect.

One possible solution to cope with the asynchrony is clock synchronization. However, clock synchronization may not enable correct and fault-tolerant coordination among the autonomous C3S devices. Thus, it cannot enable context-awareness despite of the asynchrony in pervasive scenarios enriched of coordinating C3S devices. Specifically, each C3S device only has its own local clock, which cannot be perfectly synchronized. The uncertainty caused by the skew among the clocks may lead to incorrect behavior. Besides, clock synchronization schemes make assumptions on process execution speeds and communication delay. These assumptions may not be guaranteed for the autonomous C3S devices. A group of robots are prone to incorrect behavior even if one single assumption is violated. The inaccuracy of synchronization and the potential violation of assumptions make reasoning based on time and timeouts a delicate and error-prone undertaking. Furthermore, periodic clock synchronization may be unaffordable in terms of energy consumption, or be hampered due to device autonomy and administrative boundaries such as privacy concerns and security issues. Consequently, it is more practical to have few or, better, no synchrony assumption in scenarios of coordinating C3S devices.

To enable context-awareness for pervasive applications enriched with C3S devices, we introduce the predicate detection theory and propose the Predicate-Detection-based Context-Awareness (PD-CA) framework, which consists of three essential parts:

  • Logical time is used to cope with the asynchrony among contexts collected from the asynchronous system of coordinating C3S devices. Temporal orders among asynchronous contextual events resulting from message causality are encoded and decoded via the logical vector clock. Global snapshot of the asynchronous system of C3S devices is redefined under the notion of logical time. Dynamic behavior of the C3S devices are modeled over sequences of global snapshots.
  • Specification of predicates enables the applications to express their concerns on properties of the contexts. Based on the modeling above, the specification can delineate local contextual properties on local states of one C3S device, global contextual properties on snapshots of the system of C3S devices, and dynamic behavioral properties on sequences of snapshots.
  • Context-awareness is enabled by detection of the specified contextual property at runtime. The detection is such a persistent process that new emerging contexts trigger the incremental detection of the specified property.

Under the guidance of the PD-CA framework, we develop the Middleware Infrastructure for Predicate detection in Asynchronous environments (MIPA). In context-aware computing scenarios, MIPA first receives contextual properties from the applications. It then decomposes the global contextual properties to local ones, with which MIPA instructs each C3S device to collect the related contexts. MIPA detects the specified contextual properties with the contexts in an online and incremental manner and informs the applications when the properties are satisfied. MIPA adopts a layered architecture to support this context processing process.

MIPA can simplify the development of context-aware applications in asynchronous pervasive computing environments. Based on the PD-CA framework, the context-aware adaptation logic of the application is constructed in a condition-action manner. The contextual property serves as the condition of context-aware behavior.

Please refer to our research papers below. If you have any comments or suggestions, please feel free to contact Yu Huang (http://cs.nju.edu.cn/yuhuang/).

Key Citations

  1. Yiling Yang, Yu Huang, Xiaoxing Ma, Jian Lu, Enabling Context-awareness by Predicate Detection in Asynchronous Pervasive Computing Environments, IEEE Transactions on Computers, 65(2):522-534, Feb. 2016.

  2. Yiling Yang, Yu Huang, Jiannong Cao, Xiaoxing Ma, Jian Lu, Design of a Sliding Window over Distributed and Asynchronous Event Streams, IEEE Transactions on Parallel and Distributed Systems, 25(10):2551-2560, Oct. 2014.

  3. Yiling Yang, Yu Huang, Jiannong Cao, Xiaoxing Ma, Jian Lu, Formal Specification and Runtime Detection of Dynamic Properties in Asynchronous Pervasive Computing Environments, IEEE Transactions on Parallel and Distributed Systems, 24(8):1546-1555, Aug. 2013.

  4. Yu Huang, Yiling Yang, Jiannong Cao, Xiaoxing Ma, Xianping Tao, Jian Lu, Runtime Detection of the Concurrency Property in Asynchronous Pervasive Computing Environments, IEEE Transactions on Parallel and Distributed Systems, 23(4): 744-750, Apr. 2012.

  5. Hengfeng Wei, Yu Huang, Jiannong Cao, Xiaoxing Ma, Jian Lu, Formal Specification and Runtime Detection of Temporal Properties for Asynchronous Context, In proc. of the International Conference on Pervasive Computing and Communications (PerCom), Mar. 2012.

  6. Yu Huang, Xiaoxing Ma, Jiannong Cao, Xianping Tao and Jian Lu, Concurrent Event Detection for Asynchronous Consistency Checking of Pervasive Context, in proc. of the 7th Annual IEEE Intl. Conf. on Pervasive Computing and Communications (PerCom), 2009.

INSTALL

See more in ./INSTALL file.

Any Questions?

For more detail, please visit https://github.com/alg-nju/mipa

mipa's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mipa's Issues

BUG: Buffer repeat triggering new CGS

What steps will reproduce the problem?
1.when add a state into lattice, may trigger other state in buffer


What is the expected output? What do you see instead?
when add a state into lattice, stop the current while repeat, start a new
repeat.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 1 Jan 2010 at 11:52

BUG: 'firstflag' bug

What steps will reproduce the problem?
Run SCP algorithm.

What is the expected output? What do you see instead?
firstflag should change to false, when normal process send debug message to
checker. But firstflag is always true.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 28 Aug 2009 at 8:14

BUG: IndexOutOfBoundsException throwed out by sub checker of OGA

What steps will reproduce the problem?
1. Set message dispatcher delay excess 5000ms.
2. Run the MIPA system.

What is the expected output? What do you see instead?
The message dispatcher will throw out IndexOutOfBoundsException.

Please use labels and text to provide additional information.
The bug of sub checker of OGA and checker of SCP.

Original issue reported on code.google.com by [email protected] on 7 Sep 2009 at 11:43

ENHANCEMENT: Linear-Extension-Buffer to be improved

What steps will reproduce the problem?

The Linear-Extension-Buffer is currently not well-written. One unified 
(while) loop should be OK.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 5 Feb 2010 at 3:00

BUG: Guarantee the "Linear-Extension-FIFO" on the checker

What steps will reproduce the problem?

1. A local state arrives at the checker

2. This local state triggers iterative checking in the CGS-Buffer, in order 
to generate CGSs.


What is the expected output? What do you see instead?

A: The linear extension should be in accordance with the sequence in which 
the local states arrives at the checker. Currently, we can still obtain a 
legal linear extension. However, the sequence is not in accordance with the 
sequence in which the local states arrive.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 5 Feb 2010 at 2:55

FEATURE: unregistry of predicate

MIPA should support the function of unregistry of predicate. This function 
includes detaching events, destroying normal processes and checkers, and 
releasing the resources taken by the predicate.


Original issue reported on code.google.com by [email protected] on 5 Dec 2010 at 2:41

ENHANCEMENT: redundancy in buffer storage can be removed

What steps will reproduce the problem?
1.state from normal process store in the buffer
2.keep the old cgs state in the buffer

What is the expected output? What do you see instead?
the buffer should only store the untreated state

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 1 Jan 2010 at 12:08

BUG: check message in receive function

What steps will reproduce the problem?
1. Use lattice to check WCP
2. when normal process receive control message 

What is the expected output? What do you see instead?
Receive action is an event and should send check message.But due to the WCP
control message is bonded to LP value change, it may be omit. It is to be
Proved.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 23 Nov 2009 at 2:22

BUG: Start script problem in Windows

What steps will reproduce the problem?

1. Run MIPA in Windows with bat script.

What is the expected output? What do you see instead?

If CLASSPATH is set in the user or system environment with dot in file path, 
it will output the error message that can't find some files.


Original issue reported on code.google.com by [email protected] on 22 Nov 2009 at 8:25

BUG: Message dispatcher

What steps will reproduce the problem?
Always.

What is the expected output? What do you see instead?
Message Dispatcher will lose some messages.

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 6 Sep 2009 at 1:49

ENHANCEMENT: Evolution of the lattice

What steps will reproduce the problem?

The current implementation of the "grow the lattice" procedure is too 
cumbersome.

A neat recursion-based implementation is expected.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 5 Feb 2010 at 3:02

TEST: test result of support for multi modes of MIPA

Purpose:
 MIPA should can be run in multi modes: real and simulate. Test whether 
support for multi modes of MIPA is correct.

How to test:
 The result of SIMULATE mode(no delay in message passing) should be 
similar to that of REAL mode(all processes are on the same computer, the 
delay can be ignored). By test of SCP, the expected result is that the 
size of checked intervals on the same input in different modes should be 
similar.

Files:
 data:
    light with 10000 data.
    RFID.
 log:
    real_NormalProcess0:result of when LP in NP0 is true in real mode.
    real_NormalProcess1:result of when LP in NP1 is true in real mode.
    real_found_interval:result of checked SCP in real mode.
    simulate_NormalProcess0:result of when LP in NP0 is true in simulate 
mode.
    simulate_NormalProcess1:result of when LP in NP1 is true in simulate 
mode.
    simulate_found_interval:result of checked SCP in simulate mode.

Test result:
 the checked SCP result of real mode is 50, as same as that of simulate 
mode.


Original issue reported on code.google.com by [email protected] on 28 Dec 2009 at 8:17

Attachments:

BUG: AbstractFIFOChecker

What steps will reproduce the problem?
1.run lattice SCP checker.

What is the expected output? What do you see instead?
The checker is blocked, but the NPs are still running.

Original issue reported on code.google.com by [email protected] on 19 Mar 2010 at 12:16

BUG: Flexible deletion and re-construction of the lattice required

What steps will reproduce the problem?

Currently, the system has only one lattice during the repetitive detection 
of SCP. Actually, we should have one lattice for each SCP.

Current structure of the program does not sufficiently support flexible 
deletion and re-creation of lattice (one lattice for detection of the SCP 
once)

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 5 Feb 2010 at 5:08

BUG: cannot use Event and State simultaneously

What steps will reproduce the problem?
1. use "state-based system model" and "event-based system model" 
simultaneously, during both the design and the implementation of checker and 
non-checker algorithms.
2.
3.

What is the expected output? What do you see instead?

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 3 Mar 2010 at 10:03

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.