SlideShare a Scribd company logo
Ortocloud
XPages, Weather e NoSQL su Bluemix
Da dove nasce l’idea?
A maggio 2016 IBM lancia un concorso ICS dedicato a bluemix.
Consegna entro settembre 2016
Da dove nasce l’idea ?
Daniele vuole migliorare il suo orto
Anche quest’anno niente peperoni!
Maledetto tempo!
Servirebbe una app che…
Gius cosa ne pensi di questa idea
per il concorso?
Fine agosto iniziamo!
Secondo al contest IBM ICS
http://bit.ly/2huvLyd
Valutata dai giudici per la creatività e l’idea
Il primo classificato Frank van der Linden è qui con noi a raccontare il
suo HR Assistant (sviluppato in collaborazione con Belsoft)
Vinti 250$ da dividere in due!
Ortocloud ingredienti
XPages runtime
Weather company Data
XPages noSQL Database
Dati e Algoritmi
Ortocloud ingredienti
Wether company Data
XPages runtime
Weather company Data
XPages noSQL Database
Dati e Algoritmi
Weather API Piani
Piano Chiamate API
Gratuito 10 chiamate al minuto
Standard 150 chiamate al minuto
Premium 375 chiamate al minuto
Utilizzare Weather Company Data for IBM Bluemix per integrare i dati meteo di
The Weather Company nelle applicazioni IBM Bluemix.
Questo servizio consente di richiamare i dati meteorologici per un'area specificata
da una geoposizione.
I dati consentono di creare applicazioni che risolvono problemi di business effettivi
in cui il meteo ha un impatto rilevante sugli esiti.
Weather API
• Weather.com è stata una recente acquisizione di IBM
• Fornisce le API a questo URL https://twcservice.mybluemix.net/rest-api/
• Credenziali di accesso JSON
meteo.java
Classe di interfaccia tra API Weather e XPages
Funzione GetWeatherJson
private String GetWeatherJson( String myUrlStr ) {
StringBuffer buffer = new StringBuffer();
try{
URL myUrl = new URL(myUrlStr);
HttpsURLConnection urlCon = (HttpsURLConnection) myUrl.openConnection();
urlCon.setRequestProperty("Method", "GET");
urlCon.setRequestProperty("Accept", "application/json");
urlCon.setConnectTimeout(5000);
urlCon.addRequestProperty("Authorization", GetAuth() );
urlCon.connect();
int respcode=urlCon.getResponseCode();
switch (respcode) {
case 200: InputStream is = urlCon.getInputStream();
InputStreamReader isR = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isR);
String line = "";
while( (line = reader.readLine()) != null ){
buffer.append(line);
}
reader.close();
break;
return buffer.toString(); }
}
GetAuth()
private String GetAuth () {
String up= BM_W_USR+":"+BM_W_PWD ;
String auth = new String(Base64.encodeBase64(up.getBytes()) );
return "Basic "+auth;
}
Esempi di API usate
//@return The ten-day intraday forecast API returns the geocode weather forecasts in 6-hour periods for the current day up to ten days.
public String GetGeoForecastDaily10day( String lat , String lon) {
return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/daily/10day.json?"+PAR_UNITS);
}
// @return The ten-day intraday forecast API returns the geocode weather forecasts in 6-hour periods for the current day up to ten days.
public String GetGeoForecastIntraday10day( String lat , String lon) {
return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/intraday/10day.json?"+PAR_UNITS);
}
//@return The five-day forecast API returns the geocode weather forecasts for the current day up to five days.
public String GetGeoForecastDaily5day( String lat , String lon) {
return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/daily/3day.json?"+PAR_UNITS);
}
Geo localizzazione (js client)
Utilizzando HTML5 è possibile geolocalizzare la posizione dell’utente
collegato in modo da avere latitudine e longitudine che verranno
passate all’API di Weather per ottenere
Le risposte necessarie
Weather History - API Almanacco
Servizi per la posizione ed almanacco
È possibile utilizzare i servizi per la posizione per ricercare un luogo
tramite nome o coordinate (latitudine e longitudine) per richiamare
una serie di luoghi per corrispondono alla richiesta.
È possibile richiamare dati meteorologici mensili o giornalieri
cronologici forniti dalle stazioni di osservazione di National Weather
Service per un periodo di tempo compreso tra 10 e 30 anni o più.
XPages noSQL Database
XPages runtime
Weather company Data
XPages noSQL Database
Dati e Algoritmi
XPages noSQL Database
XPages noSQL Database
• Backend dei dati degli ortaggi
• Anagrafica degli ortaggi + Foto
• NSF in Softlayer
• Servizio in Beta su Bluemix
• Semplice da utilizzare per chi conosce IBM Domino/Notes
• Comodo e rapido per le query dal runtime XPages
XPages noSQL Database (backend)
XPages noSQL Database
• E’ un servizio sperimentale, quindi non supporta
• Vincolata a todo.nsf (non è possibile creare più istanze NSF)
• Va fatto un «eredita da template» non fate replace del todo.nsf! (si è
cancellato il database)
XPages runtime
XPages runtime
Weather company Data
XPages noSQL Database
Dati e Algoritmi
XPages runtime
XPages runtime
Un docker XPages su bluemix
Tool per semplice deploy integrato in IBM Domino Designer
Necessario installare ExtLibrary 9.0.1 v17
RAD
Semplice passaggio da on - premises a bluemix
VCAP_SERVICES
JSON Completo che contiene le
credenziali dei diversi servizi in
binding sul runtime XPages.
Credenziali, path, tags etc…
Nelle XPages si utilizza la classe
bluemixContext per accedere a
questo JSON.
E’ necessario installare le
ultime extension library
(9.0.1 v17) di OpenNTF.org
Accedere a VCAP_Services
Da JSS (Java Server Side)
bluemixContext
Da Java
 FacesContext facesContext = FacesContext.getCurrentInstance();
 XSPContext context = XSPContext.getXSPContext(facesContext);
 BluemixContext bc=(BluemixContext)facesContext.getApplication().
getVariableResolver().resolveVariable(facesContext, "bluemixContext");
XPages runtime - console
System.out.println come su IBM Domino
Dati e Algoritmi
XPages runtime
Weather company Data
XPages noSQL Database
Dati e Algoritmi
Dati e Algoritmi
Ortocloud individua la tua posizione e propone i migliori ortaggi che è
possibile piantare nel tuo giardino a partire dalla data odierna.
L’assistenza cognitiva viene realizzata da un algoritmo che analizzando i
dati storici delle temperature della tua località e quelle del database
degli ortaggi, suggerisce i possibili ortaggi
Dati
Il basilico
carote
API Bluemix Weather Company Data
Usiamo tre API basate sulla località:
• Current conditions
osservazione meteo corrente
• Weather Forecast
le condizioni meteo fino ai prossimi 10 giorni
• Weather Almanac Montly
lo storico delle condizioni meteo passate mese per mese
Bluemix Weather Company Data in azione
Usiamo tre API basate sulla località:
• Current conditions
osservazione meteo corrente
• Weather Almanac Montly
lo storico delle condizioni meteo passate
mese per mese
• Weather Forecast
le condizioni meteo fino ai prossimi 10
giorni
Ranking scelta ortaggi
Dati + Dati=rank
Rank=Dati Almanacco+Database Vegetali
Usiamo i dati di almanacco per la località per determinare quanto i
diversi vegetali sono adatti ai range di temperatura previsti nei tempi
di maturazione previsti.
Almanacco di Genova
-4
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
Genova avg_hi avg_lo
Il basilico
Almanacco di Genova
-4
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
Genova avg_hi avg_lo
basilico
carote
Almanacco di Genova
-4
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
Genova avg_hi avg_lo
carota
basilico
Almanacco di Genova
-4
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
Genova avg_hi avg_lo
carota
basilico
Ranking sui vegetali per la location e la data
codice
demo
https://ortocloud.mybluemix.net
Vantaggi di Bluemix
In 90 secondi pubblichi la tua applicazione (non c’è bisogno di
conoscere nulla di admin)
Ci vuole davvero poco ad imparare ad usarlo
Un sacco di servizi pronti all’uso che puoi sfruttare e provare
(compreso Watson)
Molta documentazione sui servizi
Nuova Console di gestione più rapida
Il futuro applicativo di IBM
A cosa prestare attenzione
Numero di chiamare API Weather (10 al minuto)
Come modificare NSF (no replace!)
Il supporto bluemix non è proprio fast! (ma risponde)
Le API dovrebbero coprire il 100% del territorio mondiale… abbiamo
trovato alcuni BUG che hanno fixato
Riferimenti
Codice sorgente
 https://extlib.openntf.org/main.nsf/project.xsp?r=project/ortocloud
 https://github.com/dominopoint/ortocloud
Documentazione weather API
 https://console.ng.bluemix.net/docs/services/Weather/index.html
IBM ICS Contest
 https://console.ng.bluemix.net/docs/services/Weather/index.html
Ortocloud l'applicazione per fare orto su Bluemix

More Related Content

Viewers also liked

IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
Dominopoint - Italian Lotus User Group
 
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
Dominopoint - Italian Lotus User Group
 
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
Dominopoint - Italian Lotus User Group
 
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
Dominopoint - Italian Lotus User Group
 
IBM Bluemix
IBM BluemixIBM Bluemix
the future of work
the future of workthe future of work
Bluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopointBluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopoint
Dominopoint - Italian Lotus User Group
 
Speed up the cloud adoption with SoftLayer Cloud Services - dominopoint
Speed up the cloud adoption with SoftLayer Cloud Services - dominopointSpeed up the cloud adoption with SoftLayer Cloud Services - dominopoint
Speed up the cloud adoption with SoftLayer Cloud Services - dominopoint
Dominopoint - Italian Lotus User Group
 
Keynote apertura Dominopoint Days 2013, #dd13
Keynote apertura Dominopoint Days 2013, #dd13Keynote apertura Dominopoint Days 2013, #dd13
Keynote apertura Dominopoint Days 2013, #dd13
Dominopoint - Italian Lotus User Group
 

Viewers also liked (12)

IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
 
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
 
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
 
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Crossware MailSignature
 
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
 
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
 
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
the future of work
the future of workthe future of work
the future of work
 
Bluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopointBluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopoint
 
Speed up the cloud adoption with SoftLayer Cloud Services - dominopoint
Speed up the cloud adoption with SoftLayer Cloud Services - dominopointSpeed up the cloud adoption with SoftLayer Cloud Services - dominopoint
Speed up the cloud adoption with SoftLayer Cloud Services - dominopoint
 
Keynote apertura Dominopoint Days 2013, #dd13
Keynote apertura Dominopoint Days 2013, #dd13Keynote apertura Dominopoint Days 2013, #dd13
Keynote apertura Dominopoint Days 2013, #dd13
 

Similar to Ortocloud l'applicazione per fare orto su Bluemix

Azure functions
Azure functionsAzure functions
Azure functions
Andrea Tosato
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
PRAGMA PROGETTI
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
Alessio Biasiutti
 
L'impatto dei Servizi Applicativi
L'impatto dei Servizi ApplicativiL'impatto dei Servizi Applicativi
L'impatto dei Servizi Applicativi
michelemanzotti
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDB
Stefano Dindo
 
ETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data FactoryETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data Factory
Leonardo Marcucci
 
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
Dominopoint - Italian Lotus User Group
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
Mariano Fiorentino
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
Giuliano Latini
 
Dream report presentazione it-mg emt2
Dream report presentazione it-mg emt2Dream report presentazione it-mg emt2
Dream report presentazione it-mg emt2
Enzo M. Tieghi
 
Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015
CRS4 Research Center in Sardinia
 
Le novita di MongoDB 3.6
Le novita di MongoDB 3.6Le novita di MongoDB 3.6
Le novita di MongoDB 3.6
MongoDB
 
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Roberto Albano
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
Luca Masini
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
Nicolò Carandini
 
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
Paolo Musolino
 
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
Todi Appy Days
 
Arduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'AmbrosioArduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'Ambrosio
firenze-gtug
 

Similar to Ortocloud l'applicazione per fare orto su Bluemix (20)

Azure functions
Azure functionsAzure functions
Azure functions
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
L'impatto dei Servizi Applicativi
L'impatto dei Servizi ApplicativiL'impatto dei Servizi Applicativi
L'impatto dei Servizi Applicativi
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDB
 
ETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data FactoryETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data Factory
 
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
 
Presentazione
PresentazionePresentazione
Presentazione
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 
Dream report presentazione it-mg emt2
Dream report presentazione it-mg emt2Dream report presentazione it-mg emt2
Dream report presentazione it-mg emt2
 
Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015
 
Le novita di MongoDB 3.6
Le novita di MongoDB 3.6Le novita di MongoDB 3.6
Le novita di MongoDB 3.6
 
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
 
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
 
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
 
Arduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'AmbrosioArduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'Ambrosio
 

More from Dominopoint - Italian Lotus User Group

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
Dominopoint - Italian Lotus User Group
 
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
Dominopoint - Italian Lotus User Group
 
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
Dominopoint - Italian Lotus User Group
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13
Dominopoint - Italian Lotus User Group
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
Dominopoint - Italian Lotus User Group
 
Tivoli Storage Manager - backup and restore for Domino, #dd13
Tivoli Storage Manager - backup and restore for Domino, #dd13Tivoli Storage Manager - backup and restore for Domino, #dd13
Tivoli Storage Manager - backup and restore for Domino, #dd13
Dominopoint - Italian Lotus User Group
 
XPages Mobile, #dd13
XPages Mobile, #dd13XPages Mobile, #dd13
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
Dominopoint - Italian Lotus User Group
 
IBM Connection - customize it, #dd13
IBM Connection - customize it, #dd13IBM Connection - customize it, #dd13
IBM Connection - customize it, #dd13
Dominopoint - Italian Lotus User Group
 
IBM Smart Cloud, #dd13
IBM Smart Cloud, #dd13IBM Smart Cloud, #dd13

More from Dominopoint - Italian Lotus User Group (11)

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
 
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
 
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
Back to the Future: Understand and Optimize your IBM Notes and Domino Infrast...
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
 
Tivoli Storage Manager - backup and restore for Domino, #dd13
Tivoli Storage Manager - backup and restore for Domino, #dd13Tivoli Storage Manager - backup and restore for Domino, #dd13
Tivoli Storage Manager - backup and restore for Domino, #dd13
 
XPages Mobile, #dd13
XPages Mobile, #dd13XPages Mobile, #dd13
XPages Mobile, #dd13
 
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
Dati, dati, dati! - Sfruttare le potenzialità delle XPages con Google Chart T...
 
IBM Connection - customize it, #dd13
IBM Connection - customize it, #dd13IBM Connection - customize it, #dd13
IBM Connection - customize it, #dd13
 
IBM Smart Cloud, #dd13
IBM Smart Cloud, #dd13IBM Smart Cloud, #dd13
IBM Smart Cloud, #dd13
 
Domino e HTML5, #dd13
Domino e HTML5, #dd13Domino e HTML5, #dd13
Domino e HTML5, #dd13
 

Ortocloud l'applicazione per fare orto su Bluemix

  • 1. Ortocloud XPages, Weather e NoSQL su Bluemix
  • 2. Da dove nasce l’idea? A maggio 2016 IBM lancia un concorso ICS dedicato a bluemix. Consegna entro settembre 2016
  • 3. Da dove nasce l’idea ? Daniele vuole migliorare il suo orto Anche quest’anno niente peperoni! Maledetto tempo! Servirebbe una app che… Gius cosa ne pensi di questa idea per il concorso? Fine agosto iniziamo!
  • 4. Secondo al contest IBM ICS http://bit.ly/2huvLyd Valutata dai giudici per la creatività e l’idea Il primo classificato Frank van der Linden è qui con noi a raccontare il suo HR Assistant (sviluppato in collaborazione con Belsoft) Vinti 250$ da dividere in due!
  • 5. Ortocloud ingredienti XPages runtime Weather company Data XPages noSQL Database Dati e Algoritmi
  • 7. Wether company Data XPages runtime Weather company Data XPages noSQL Database Dati e Algoritmi
  • 8. Weather API Piani Piano Chiamate API Gratuito 10 chiamate al minuto Standard 150 chiamate al minuto Premium 375 chiamate al minuto Utilizzare Weather Company Data for IBM Bluemix per integrare i dati meteo di The Weather Company nelle applicazioni IBM Bluemix. Questo servizio consente di richiamare i dati meteorologici per un'area specificata da una geoposizione. I dati consentono di creare applicazioni che risolvono problemi di business effettivi in cui il meteo ha un impatto rilevante sugli esiti.
  • 9. Weather API • Weather.com è stata una recente acquisizione di IBM • Fornisce le API a questo URL https://twcservice.mybluemix.net/rest-api/ • Credenziali di accesso JSON
  • 10. meteo.java Classe di interfaccia tra API Weather e XPages
  • 11. Funzione GetWeatherJson private String GetWeatherJson( String myUrlStr ) { StringBuffer buffer = new StringBuffer(); try{ URL myUrl = new URL(myUrlStr); HttpsURLConnection urlCon = (HttpsURLConnection) myUrl.openConnection(); urlCon.setRequestProperty("Method", "GET"); urlCon.setRequestProperty("Accept", "application/json"); urlCon.setConnectTimeout(5000); urlCon.addRequestProperty("Authorization", GetAuth() ); urlCon.connect(); int respcode=urlCon.getResponseCode(); switch (respcode) { case 200: InputStream is = urlCon.getInputStream(); InputStreamReader isR = new InputStreamReader(is); BufferedReader reader = new BufferedReader(isR); String line = ""; while( (line = reader.readLine()) != null ){ buffer.append(line); } reader.close(); break; return buffer.toString(); } }
  • 12. GetAuth() private String GetAuth () { String up= BM_W_USR+":"+BM_W_PWD ; String auth = new String(Base64.encodeBase64(up.getBytes()) ); return "Basic "+auth; }
  • 13. Esempi di API usate //@return The ten-day intraday forecast API returns the geocode weather forecasts in 6-hour periods for the current day up to ten days. public String GetGeoForecastDaily10day( String lat , String lon) { return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/daily/10day.json?"+PAR_UNITS); } // @return The ten-day intraday forecast API returns the geocode weather forecasts in 6-hour periods for the current day up to ten days. public String GetGeoForecastIntraday10day( String lat , String lon) { return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/intraday/10day.json?"+PAR_UNITS); } //@return The five-day forecast API returns the geocode weather forecasts for the current day up to five days. public String GetGeoForecastDaily5day( String lat , String lon) { return GetWeatherJson(BASE_URL+"/v1/geocode/"+lat+"/"+lon+"/forecast/daily/3day.json?"+PAR_UNITS); }
  • 14. Geo localizzazione (js client) Utilizzando HTML5 è possibile geolocalizzare la posizione dell’utente collegato in modo da avere latitudine e longitudine che verranno passate all’API di Weather per ottenere Le risposte necessarie
  • 15. Weather History - API Almanacco Servizi per la posizione ed almanacco È possibile utilizzare i servizi per la posizione per ricercare un luogo tramite nome o coordinate (latitudine e longitudine) per richiamare una serie di luoghi per corrispondono alla richiesta. È possibile richiamare dati meteorologici mensili o giornalieri cronologici forniti dalle stazioni di osservazione di National Weather Service per un periodo di tempo compreso tra 10 e 30 anni o più.
  • 16. XPages noSQL Database XPages runtime Weather company Data XPages noSQL Database Dati e Algoritmi
  • 18. XPages noSQL Database • Backend dei dati degli ortaggi • Anagrafica degli ortaggi + Foto • NSF in Softlayer • Servizio in Beta su Bluemix • Semplice da utilizzare per chi conosce IBM Domino/Notes • Comodo e rapido per le query dal runtime XPages
  • 20. XPages noSQL Database • E’ un servizio sperimentale, quindi non supporta • Vincolata a todo.nsf (non è possibile creare più istanze NSF) • Va fatto un «eredita da template» non fate replace del todo.nsf! (si è cancellato il database)
  • 21. XPages runtime XPages runtime Weather company Data XPages noSQL Database Dati e Algoritmi
  • 23. XPages runtime Un docker XPages su bluemix Tool per semplice deploy integrato in IBM Domino Designer Necessario installare ExtLibrary 9.0.1 v17 RAD Semplice passaggio da on - premises a bluemix
  • 24. VCAP_SERVICES JSON Completo che contiene le credenziali dei diversi servizi in binding sul runtime XPages. Credenziali, path, tags etc… Nelle XPages si utilizza la classe bluemixContext per accedere a questo JSON. E’ necessario installare le ultime extension library (9.0.1 v17) di OpenNTF.org
  • 25. Accedere a VCAP_Services Da JSS (Java Server Side) bluemixContext Da Java  FacesContext facesContext = FacesContext.getCurrentInstance();  XSPContext context = XSPContext.getXSPContext(facesContext);  BluemixContext bc=(BluemixContext)facesContext.getApplication(). getVariableResolver().resolveVariable(facesContext, "bluemixContext");
  • 26. XPages runtime - console System.out.println come su IBM Domino
  • 27. Dati e Algoritmi XPages runtime Weather company Data XPages noSQL Database Dati e Algoritmi
  • 28. Dati e Algoritmi Ortocloud individua la tua posizione e propone i migliori ortaggi che è possibile piantare nel tuo giardino a partire dalla data odierna. L’assistenza cognitiva viene realizzata da un algoritmo che analizzando i dati storici delle temperature della tua località e quelle del database degli ortaggi, suggerisce i possibili ortaggi
  • 29. Dati
  • 32. API Bluemix Weather Company Data Usiamo tre API basate sulla località: • Current conditions osservazione meteo corrente • Weather Forecast le condizioni meteo fino ai prossimi 10 giorni • Weather Almanac Montly lo storico delle condizioni meteo passate mese per mese
  • 33. Bluemix Weather Company Data in azione Usiamo tre API basate sulla località: • Current conditions osservazione meteo corrente • Weather Almanac Montly lo storico delle condizioni meteo passate mese per mese • Weather Forecast le condizioni meteo fino ai prossimi 10 giorni
  • 35. Dati + Dati=rank Rank=Dati Almanacco+Database Vegetali Usiamo i dati di almanacco per la località per determinare quanto i diversi vegetali sono adatti ai range di temperatura previsti nei tempi di maturazione previsti.
  • 42. Ranking sui vegetali per la location e la data
  • 45. Vantaggi di Bluemix In 90 secondi pubblichi la tua applicazione (non c’è bisogno di conoscere nulla di admin) Ci vuole davvero poco ad imparare ad usarlo Un sacco di servizi pronti all’uso che puoi sfruttare e provare (compreso Watson) Molta documentazione sui servizi Nuova Console di gestione più rapida Il futuro applicativo di IBM
  • 46. A cosa prestare attenzione Numero di chiamare API Weather (10 al minuto) Come modificare NSF (no replace!) Il supporto bluemix non è proprio fast! (ma risponde) Le API dovrebbero coprire il 100% del territorio mondiale… abbiamo trovato alcuni BUG che hanno fixato
  • 47. Riferimenti Codice sorgente  https://extlib.openntf.org/main.nsf/project.xsp?r=project/ortocloud  https://github.com/dominopoint/ortocloud Documentazione weather API  https://console.ng.bluemix.net/docs/services/Weather/index.html IBM ICS Contest  https://console.ng.bluemix.net/docs/services/Weather/index.html

Editor's Notes

  1. This is the deck cover. Change the user icon with your picture. Do not change picture dimensions. Remove image if you do not wish to publish your own picture on deck cover.
  2. Your slides here
  3. Your slides here
  4. Your slides here
  5. Your slides here
  6. Your slides here
  7. Your slides here
  8. Your slides here
  9. Do not remove. Keep this as last slide