The smart society programming framework is a set of Java libraries implementing the innovative programming model for Hybrid Diversity-Aware Collective Adaptive Systems (HDA-CAS), developed within the Work Package 7 (WP7) of the EU-funded FP7 SmartSociety project. The outcome of the project is a (tool)set of software components that are interoperable and can be used together to build a HDA-CAS platform. More details on the toolset can be found on http://smartcollectives.com/.
In short, these tools allow developing platforms to manage collectives (teams) of hybrid peers (software services, humans, sensors). However, coupling and getting these components to work together may not be a simple task. The role of the programming framework is to ease this task, and offer a more human-friendly interface for using the components together and integrating the power of the SmartSociety components right into their Java programs.
The Learning Curve
In order to understand the fundamental notions of peer and collective as used in the programming framework, and the complex assumptions they entail, as well as how the different SmartSociety components are envisioned to interoperate, we propose a minimal set of readings/tutorial videos which should help the reader understand the context and the commonly used terminology properly, before being able to move to the examples. Further resources are found on the cited websites.
Some of the landing pages of the scenarios contain an additional readme, and some are fully explained through the associated video code walk-through, explaining the setup and the execution of the scenario, as well as discussing the important parts in the code. Each scenario is an independent Java application. After working through the demo videos, the user should be able to write a simple SmartSociety application on his own. We suggest starting from the Scenario 1 and working the way up in the given order.
Please note that the Scenario 3 assumes making use of the remote PeerManager server, and thus cannot be run independently. The remaining scenarios were developed with local mockups, and are thus fully self-contained and runnable independently.