fiware primer - learn fiware in 60 minutes
TRANSCRIPT
MILAN 20/21.11.2015
FIWARE PrimerLearn FIWARE in 60 Minutes
Federico M. FaccaCREATE-NET. FIWARE [email protected], @chicco785 (twitter)
MILAN 20/21.11.2015
FEDERICO M. FACCA
What is FIWARE?
FIWARE’s offer• Building blocks• Platform• Lab• Ops
FIWARE’s offer
FIWARE Platform
An OpenStack-based cloud platform that allows the easy deployment and composition of FIWARE services to create new applications
FIWARE Lab Nodes
16 FIWARE Lab Nodes• Currently 16 nodes in Europe
providing up to 3000+ cores, 6TB+ Ram, 750TB+ HD• 1 node in Mexico providing 1200+
cores• 1 node in Brazil is being deployed in
these days
…and more to follow!• Discussions with several European
regions and with Brazil and Chile already started• Discussions with other regions and
countries with high potential• Open Call deadline on 16th
November
8
FIWARE Smart Cities: Santander
Real-time open data coming from large deployment of sensors (4500 IoT devices, 150 mobile sensor units, 2500 RFIDs) offered through standard FI-WARE APIs
Open data sets captured from sensors since August 2013 uploaded on Big Data platform and ready for analysis
Reference FI-WARE application examples available (e.g. Management of Parque de las Llamas public lighting)
60+ cities from 12 countries joined the Open and Agile Smart Cities (OASC) initative commiting to adopt common principles: • Open APIs• Standard Data Models • Open Data/APIs publication platform• Driven by implementation
FIWARE OPS
Deployment
Federation Management
Connectivity Management
Service Offer Management
1
2
3
4
10
Budget for FIWARE/FIWARE Lab (phases 1 & 2)126 M€ = (89 + 37) M€
countries
270 150companiespartners
400 M€ = (300 + 100) M€Budget (RTD + funding for entrepreneurs)
>1.000SMEs and start-ups
27
facts
Learning the keyFIWARE technology
13
Where to start from?
14
Common Authorization, Access Control and Privacy management framework for all FIWARE GE interfaces Authorization, Access Control framework
in the short term
Privacy Management capabilities to be integrated next
15
Creating your identity in FIWARE Access the Account Portal and click in “Sign Up” option
16
Sending Protected Requests to a FIWARE Service
Authentication Example
GET /GE_URL_path HTTP/1.1Host: GE_hostnameX- Auth-Token: access_token
Secure your backend
Install PEP Proxy• git clone https://github.com/ging/fi ‐
ware-pep‐proxy.git• cd fi‐ware‐pep‐proxy/
npm install• //Hostname to forward authenticated
requestsconfig.app_host = 'www.google.es';//Port where the HTTP server is runningconfig.app_port = '80';
• sudo node server
17
Support cloud native applications development using cutting edge cloud technologies
OpenStack-based IaaS to provide computing and storage capacity across multiple data centers
Docker-based PaaS to deploy and compose scalable applications
18
Deploying FIWARE GEs on the FIWARE Lab (using a Virtual Machine)
Launch a GE from the cloud portal (http://cloud.lab.fiware.org)• Click on images• Launch the selected GE
Configure the VM• Set flavor• Set security groups• Set network
19
Deploying FIWARE GEs on the FIWARE Lab (using Docker Compose) Configure the Lab
• Create a security group “docker-machine-sg” with ports 2376 and 22 open
• Allocate at least one floating IP to your project.
• Take a look a the VM images that are used to when creating a docker host.
Set-up docker on your local workstation• install docker $ wget -qO- https://get.docker.com/ | sh
• install docker machine$ curl -L
https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_linux-amd64.zip >machine.zip && \ unzip machine.zip && \ rm machine.zip && \ mv docker-machine* /usr/local/bin
Set-up a docker machine• Set Openstack environment
variables>export OS_REGION_NAME='Spain2‘>export OS_TENANT_NAME='john-smith cloud' >export OS_USERNAME='[email protected]'' >export OS_PASSWORD='secret'' >export OS_AUTH_URL='http://cloud.lab.fi-ware.org:4730/v2.0/' >export OS_AUTH_STRATEGY='keystone‘
• Create docker machine>docker-machine create -d openstack --openstack-flavor-
id="2" --openstack-image-name="Ubuntu Server 14.04.1 (x64)" --openstack-net-name="node-int-net-01" --openstack-floatingip-pool="public-ext-net-01" --openstack-sec-groups="docker-machine-sg" docker-host
Launch composition• Describe docker-compose.yml
mongo: image: mongo:2.6command: --smallfiles
orion:image: fiware/orionlinks:
- mongoports:
- ":1026“command: -dbhost mongo
• Deploy composition>docker-compose up –d
20
NGSI: the SNMP of the Internet of Things
Measures as values of attributes characterizing context entities
Just need to change the value of an attribute to trigger an action on a device
21
Playing with Context information 1
Updating contextPOST
<cb_host>:<cb_port>/v1/contextEntities/type/Rating/id/LeBistro::Client1234 {
"attributes" : [{ "name" : "score", "type" : "integer", "value" : "4" } ]
}
Querying a contextGET <cb_host>:<cb_port>/v1/contextEntities/type/Restaurant/id/LeBistro //getting a JSON response such as the following one:
{ "contextElement": { "attributes": [ {
"name": "name", "type": "string", "value": "Le Bistro" },…],
}, "statusCode": { "code": "200", "reasonPhrase": "OK" }
}
22
Playing with Context information 2
Subscribe to context changesPOST <cb_host>:<cb_port>/v1/subscribeContext
{"entities": [
{ "type": "Rating", "isPattern": "true", "id": ".*"
} ], "attributes": [ "score" ], "reference": "http://backend.niceeating.foo.com:1028/ratings", "duration": "P1M", "notifyConditions": [
{ "type": "ONCHANGE", "condValues": [ "score" ] } ]
}
23
IoT: Plug, Configure & Play Connection of devices supporting most
popular protocols (MQTT, CoAP, …) should just imply to plug, configure & play
Provide a framework that eases the incorporation of new protocols
24
Playing with IoT devices 1
Create an IDAS ServicePOST
<idas_host>:<idas_port>/iot/services Headers: {'content-type': 'application/json’; 'X-Auth-Token' : [TOKEN]; "Fiware-Service: OpenIoT”; "Fiware-ServicePath: /"} Payload: { "services": [
{ "apikey": "4jggokgpepnvsb2uv4s40d59ov",
"token": "token2","cbroker":
"http://0.0.0.0:1026", "entity_type": "thing",
"resource": "/iot/d" } ]
}
Register your IoT device• POST
<idas_host>:<idas_port>/iot/devices Headers: …Payload:{"devices": [
{"device_id": ”[DEV_ID]","entity_name":
”[ENTITY_ID]","entity_type": "thing",“timezone":
”Europe/Madrid","attributes": [
{"object_id":
"t", "name":
"temperature","type": "int“ } ],
"static_attributes": …}
]}
25
Playing with IoT devices 2
Send Observations related to your IoT device• POST <idas_host>:
<idas_port>/d?k= <apikey>&i= <device_IDHeaders:
{'content-type':
'application/text’;'X-Auth-Token' :
[TOKEN];"Fiware-Service:
OpenIoT”;"Fiware-ServicePath: /“}
Payload: ‘ t|25‘
Reading measurements sent by your IoT device• GET
<cb_host>:<cb_port>/v1/contextEntities/type/thing/id/[ENTITY_ID]
26
Powerful framework for publication of datasets and APIs
Leveraging on CKAN (welcome on board !)
Support to self-publication by third parties
Integration with FIWARE Store GE in order to support how access rights are obtained by users
27
Publish Open Data Sets in the FIWARE Data portal (http://data.lab.fiware.org)
Add Dataset
Provide basic information
Upload data
Provide metadata
28
Integration of FIWARE Advanced Web-based User Interface GEs with NGSI
Shared Context Information
End-to-End connection from UI to IoT resources
A reference FIWARE Cloud Native App Architecture
Cloud Patterns Cloud Patterns in FIWARE
31
Let’s start from the basic:cattle and pets
Cloud Native Applications Legacy Applications
32
Let’s bring in a couple moreof cloud patterns
Horizontal Auto-Scaling Pattern Queue Centric Workflow Pattern
33
Let’s mix them with a couple of FIWARE ingredients
Queue Centric Workflow(HA Orion Context Broker)
Auto-scaling front-end(consumers)
Workers(consumers/producers)
CDN(ObjectStorage)
NGSI
NGSI
Find out more
Example Apps FIWARE Catalogue FIWARE University FIWARE ASK #MYFIWARESTORY
Don’t miss the Lab Session this afternoon!
Be aware!!! Build a Context Aware Application using FIWARE
Presented by Attilio Broglio
Room BL27.0.6
14:10 - 16:00
http://fiware.org
http://lab.fiware.org
Follow @Fiware on Twitter !
Join us!
MILAN 20/21.11.2015 - SPEAKER’S NAME
Leave your feedback on Joind.in!https://m.joind.in/event/codemotion-milan-2015