WSNWARE - WSN Java Middleware
_________________________________________________________________________
Version
1.3.000 [Aspasia]
Coding Language : Java (6 or later)
Category : WSN, Middleware, RAD, GUI
Platform : OSGI Containers (R4)
License : Open source. Creative Commons BY-NC-SA/3.0
HomePage : http://wsnware.sourceforge.net/
Founder and
main developer : Alessandro Polo <www.alessandropolo.name>
Last Update : $Id: README 322 2011-09-28 18:41:18Z alex $
Star(t) date : 2011-03
First release : 2011-05-30 - 1.0.0-RC1
Final release : 2011-09-28 - 1.3.0-RC2
_________________________________________________________________________
*************************************************************************
= What is it? =
WSNWARE is an open source Java/OSGi middleware, designed for monitoring,
controlling and standardizing Wireless Sensor Network.
WSNWARE is a normalized message oriented middleware, messages are transformed
by incoming/outgoing adapters, which are specific to the application (as RAW packet is).
WSNWARE provides a set of bundles which can be used by developers for
building high-level WSN applications in RAD style, also thanks to OSGi
environment, modularization and interoperability.
Ready-to-use platform adapters and real-world samples are provided as well:
* TinyOS2, Java.com RXTX and their examples,
* high level filters (statistical, noise-channel),
* GUI expositors (real-time tables, charting),
* GUI controllers and dynamic IDE,
* Multilateration application example
= Requirements =
In order to run (or doing anything with) WSNWARE:
* Java Developer Kit (JDK) 1.6 or later (could be downgraded to 1.4)
* configured JAVA_HOME (pointing to JRE folder)
* Any OSGI 4.x container such as Apache Felix, Equinox.
Although you probably want to build and extend the WSNWARE framework
(as creating new modules and applications), then some little more setup
is required, please refer to BUILDING file.
WSNWARE middleware can run without any real WSN platform/SDK (such as TinyOS, ZigBee),
if you want to connect such platform with WSNWARE you need a compatible adapter layer:
TinyOS2 and Java.Comm adapters are already implemented and ready to be used.
Given a generic WSN connected through a gateway-mote to a PC-like base station (or network)
and its custom software layer (network, HW, platform specific).
We assume the base station is working as a promisquous gateway node.
In other words, the adapter between wsn/platform and WSNWARE is (eventually) aware of all information,
the most important feature is intercepting network packets.
In most cases, such adapter will just translate RAW messages (i.e. TinyOS) into WSNWARE Message objects.
We assume the network (nodes) is someway programmed to expose some services
i.e. broadcast sensor data as usual) which should be treated as stateless I/O (datagrams).
Newsbie shouldn't be scared, this is the default TinyOS approach within its SDK and samples.
= Building =
Please refer to BUILDING file.
Note that latest-release binary distribution is available.
= Quick Installation =
If you are not familiar to OSGi or you just want to test quickly WSNWARE,
you could skip some configuration steps and use Pax-Runner (download
http://paxrunner.ops4j.org and unpack archive).
Please note that if you want to develope WSNWARE-based applications,
you should read BUILDING and follow the 'Full Installation' section,
Pax-Runner support is provided for quick demonstrations and as deployment example.
In a shell execute:
pax-run --args=http://wsnware.sf.net/bundles/pax.args http://wsnware.sf.net/bundles/pax.profile.txt
There is a video tutorial showing this procedure on WSNWARE website.
Anyway the full installation is strongly suggested.
= Full Installation =
Download latest full-distribution archive and unpack it somewhere
(or checkout WSNWARE SVN repository and build locally).
You will also find binaries (bundles' jars) in 'bin' folder.
Choose (install) your preferred OSGi runtime container,
Apache Felix (http://felix.apache.org) is strongly suggested.
In general, to deploy bundles in the OSGi container,
you may just copy bundles (jars) into 'bundles' (or 'deploy') folder,
but then you will have to overwrite files on each update/(re)build.
A better approach is installing bundles from a local or remote location,
(or from local maven repository) by executing:
install <bundle-url>
There is a video tutorial showing this procedure on WSNWARE website.
Note that you may not need all bundles, moreover some of them have
external dependencies (such as osgi-consortium, felix.gogo.runtime, ..),
they are available on OSGi productor website (such as http://felix.apache.org)
= Running =
Once bundles are installed properly (see them by executing 'lb' or 'list'),
just start them as usual (start <bundle-id>). Some of them are "runnable"
applications, such as WSNWARE IDE, Injector, and wsnware-demo* bundles.
= Web References =
WSNWARE is actually distributed on SourceForge as ZIP distribution
including source code and documentation.
* Website http://wsnware.sourceforge.net
Access latest source code executing:
svn co https://wsnware.svn.sourceforge.net/svnroot/wsnware
Video Tutorials:
* http://wsnware.sourceforge.net/videos/WSNWARE.Video.QuickStart.PaxRunner.1.HQ.mp4
* http://wsnware.sourceforge.net/videos/WSNWARE.Video.QuickStart.1.HQ.mp4
Other important links are:
* Apache Felix http://felix.apache.org
* Apache Karaf http://karaf.apache.org
* PaxRunner http://paxrunner.ops4j.org
* OSGi specifications http://www.osgi.org
= Contribute =
Join the SourceForge project or mail to contact@alessandropolo.name
The project has been created for ELEDIA group (DISI @ UniTN.it).