430 likes | 452 Views
CRISMA for C2-SENSE. Peter Kutschera, AIT. TOC. What is CRISMA? The famous CRISMA catalogue Main concepts Architecture Overview Mashups with WireCloud CRISMA deployment. What is CRISMA?. Modelling crisis management for improved action and preparedness EU FP7 Project Goals:
E N D
CRISMA for C2-SENSE Peter Kutschera, AIT
TOC • What is CRISMA? • The famous CRISMA catalogue • Main concepts • Architecture Overview • Mashups with WireCloud • CRISMA deployment
What is CRISMA? • Modelling crisis management for improved action and preparedness • EU FP7 Project • Goals: • Build a framework that allows easy implementation of concrete applications • Focus on preparedness, planning, training • Decision support system by comparing different options • Has to embed a lot of models • Pilot applications dealing with following hazards: • toxic gas, earthquake, forest fire, flooding, power outages because of bad Nordic weather
The famous CRISMA catalogue • Central project documentation repository for CRISMA users • Description of: • Application Architectures • Building Block and Model specifications (including interfaces) • Reference Implementations and other software components • Links to sources, demonstrators, background documentations • Licenses, IPR conditions • Input provided by every partner • Now available for the public – in fact it’s now part of many deliverables • https://crisma-cat.ait.ac.at/
Main concepts • Worldstate: • Describes the CRISMA-relevant state of the world at a certain time stamp • If something changes a new wordstate is created • A series of timestamps describes a situation progress • Different possible decisions are modelled as forks creating a tree of worldstates: The decision tree
Main concepts • OOI • Object Of Interest • Anything that is relevant for the actual use case and can change over time • Ambulances • Patients • … • There is a management GUI to define OOIs and there properties • Ambulances maximum speed • Patients health • …
Models • Models are used to calculate the consequences • Of external events (e.g. earthquake) • Of decisions (e.g. sending ambulances) • Model input are OOI and other data • Model results create a single or a series of worldstates • Models are wrapped by WPS
Indicators • Indicators are used to get an overview of a situation • Number of patients • Time-Interval needed for rescue • Structured data like number of patients grouped by health status • …
KPI and ICC • Used for decision macking in a DSS • Compare wordstates under the assumption of specific goals • Indicator (Key Performance Indicator, KPI) • KPI: a single number (Length of a time interval, number of collapsed buildings, ..) • Criteria • Depending on a specific goal (Minimum recovery time, minimum recovery costs,..). Describes the importance of a single indicator value • Costs • The weighted sum from the indicators. This result depends on the goal
ICC https://www.youtube.com/watch?v=8IVl07sZoDg
ICMM • A central datastore / catalogue • Knows about worldstates • Relations between worldstates • Specific data stores • Indicator and ICC data • Knows about models and indicator services • Method to access them (e.g. WPS) • Concrete access data (e.g. WPS endpoint URL) • REST / JSON interface
GUI • Different GUIs exists within CRISMA • WireCloud • Web-Based • Different generic widgets can be combined to create a use-case specific GUI • Extendable by adding use-case specific widgets • Traditional Web-GUI • Use-case specific • Can also include WireCloud widgets • Installed application • Can also include WireCloud widgets
Modify widget size/position/name/ visibility WireCloud Combine various widgets to an application Put parts of the application on different tabs
Main components • WireCloud: GUI • ICMM: Something between database and catalogue; holds WorldStates and (references to) data and services • OOI-WSR: Datastore for No-GIS data • Models: Any model behind an WPS. Uses / manipulates ICMM, OOI-WSR and other data • Indicators: Technically a model. Calculates indicator values for ICMM, OOI-WSR and maybe other data and stores them in ICMM • PubSub: Publish-Subscribe service (FI-WARE Orion) • A WMS for background maps
Architecture Overview(Just the C2-SENSE relevant part) C2-SENSE: ESB C2-SENSE: Emergency Maps Tool PubSub GUI WMS In C2-SENSE: NoMapDatastrore In C2-SENSE this would mean incoming sensor data, messages,… In C2-SENSE: Limit Service ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS New data ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS There are new data over there ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS There are new data over there ICMM & OOI Models Indicator WPS
Communication within CRISMA Show mashup Get background maps PubSub GUI WMS Get data ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS There are new data over there ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS Get data Calculate Indicators Store result (new data) ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS There are new data over there ICMM & OOI Models Indicator WPS
Communication within CRISMA PubSub GUI WMS There are new data over there ICMM & OOI Models Indicator WPS
Communication within CRISMA Refresh screen PubSub GUI WMS Get data ICMM & OOI Models Indicator WPS
Modify widget size/position/name/ visibility CRISMA Application GUI Combine various widgets to an application Put parts of the application on different tabs
Wiring Connect Input/Output endpoints graphically
Marketplace Upload widgets to local or public (FI-Ware Standard) marketplace
Mashups with WireCloud ENVIROFI example • http://catalogue.envirofi.eu/news/envirofi-wirecloud-demo CRISMA “pilot C” example • https://crisma-cat.ait.ac.at/pilot/Accidental-spillage-from-a-container-at-large-city-port-%28Israel%29/documentation Application Mashup - Wirecloud - User and Programmer Guide • https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Application_Mashup_-_Wirecloud_-_User_and_Programmer_Guide
CRISMA deployment • Initial situation at project start: as in every international project. • Each partner provides one or more services. • These are used by other partners over the internet. • The interfaces are essential: Common data model, REST and JSON, OGC WPS,… • Later demonstrations (e.g. project review in Brussels): • Internet to slow, not reliable • Some partners are just updating something, so service is not available and incompatible afterwards • Pilot implementations and deployment: • Have dedicated service instances • Have them locally – great for development, essential at deployment time for security and policy reasons
Initial Situation • Each CRISMA Application consists of a set of services • CRISMA-external services might also be used (e.g. background maps from a public WMS) • Typically services are distributed and accessed over the public internet • This even allows failover by the usage of alternative services if a service is not available • But in security sensitive and crisis management use cases the usage of wide area networks is not permitted • Security concerns • Expected loss of network connectivity Image: Stolen from the internet
CRISMA Applications need a lot of services • Example: Resource Management Training • CRISMA services • ICMM • OOI-WSR • Agents Resource Model plus WPS • BasicIndicators including WPS • PubSub Service • WireCloud Service for the GUI • External services • Map-Data for background maps
One Server per Service? • It would be (sort of) simple to install a 19” rack • Unnecessary expensive • Hardware • Licenses • Power consumption • Lot of systems needing permanent maintenance Image: CC; Author Jfreyre; http://commons.wikimedia.org/wiki/File:Rack001.jpg
One Server to rule all Services? • Install all services on one machine • Will work in some cases only – we actually did this for PilotEv1 • But: • Technical problem: Some services need specific and different operating systems • Logistical problem: Services are delivered by different partners – messy integration, responsibilities become unclear • Some services might really need an own server for performance reasons
One Virtual Server per Service? • Virtualization allows to install all services as virtual machines on one real, big machine • Lot of overhead – Each service needs a full operating system installed • Better resource utilization compared to individual servers but still unnecessary expensive • Big hardware needed • Licenses • Lot of systems needing permanent maintenance • Some services might really need an own server for performance reasons
Containers? • Containers are the newest hype when delivering services to the cloud (e.g. Docker) • Small • Minimal overhead • Much more lightweight than virtual machines in terms of size and resources needed • Very easy to build and deploy • And they can also be used in a local setup • But: • Limited to some operating systems (Linux in the moment)
Combine solutions! • Deliver services as containers where possible • Limited to some operation systems • Docker can be used • Deliver virtual machines where needed • E.g. Windows-based services • Vagrant can be used • Deliver dedicated server machines for services with extreme performance needs • E.g. earthquake simulation model
Virtual machines / docker images so far • Crisma GUI • WireCloud Service for the GUI (Docker image) • Crisma Core Service • ICMM (Docker image) • Resource Management • OOI-WSR (VM) • Resource Model • Agents Resource Model (VM) • WPS for Resource Model (Docker image) • Indicators • WPS interface + Implementation (Docker image) • Context Broker • Orion (Docker image) • Crisma-external Services • OSM tile cache (Docker image)
Example: Pilot C OOI-WSR Resource Model crisma-pilotC.ait.ac.at FireWall Docker
Real server running ESXi (VM-Ware) Example: Pilot C OOI-WSR Virtual machines (VM-Ware) Resource Model crisma-pilotC.ait.ac.at FireWall Docker Containers (Docker)
Deployment example: Easy • Deployment to a demonstration / customer machine is very easy • Setup host machine with VM ESXi • Copy VM images needed • Deploy docker containers • Configure the internal services: Nothing needed • All services communicate using the internal network, so no changes needed • Even the GUI works using the internal network only! • Only network change is the external visible address. • This is handled by the FireWall VM (Apache virtual host config) • Only if there are external services used access needs to be configured
Application development is more work .-) • Adopt CRISMA to the users business case / problem domain • Implement specific data models (ICMM, OOI-WSR) • Implement new models or at least build an interface to existing specific models (WPS) • Implement indicators • Implement user specific GUI components