Page 1
SPRINGONE2GX WASHINGTON, DC
Unless otherwise indicated, these sl ides are © 2013-2015 Pivotal Software, Inc. and l icensed under a Creat ive Commons Attr ibut ion-NonCommercial l icense: ht tp: / /creat ivecommons.org/ l icenses/by-nc/3.0/
IoT Realized The Connected Car
By Phil Berman, Michael Minella, and Derrick Shields @pivotalphil, @michaelminella
Page 2
Michael Minella Twitter: @michaelminella Podcast: http://javaOffHeap.com or @OffHeap Website: http://spring.io Derrick Shields Website: http://pivotal.io
Phil Berman Twitter: @pberman Website: http://pivotal.io
Page 4
https://github.com/pivotal/IoT-ConnectedCar
Page 5
B A C K T O T H E BEGINNING
Page 6
REALLY COOL IoT PROJECT
Page 10
P R E D I C T T H E DESTINATION
Page 11
PREDICT THE RANGE
Page 12
PIECES ARE THE
SAME
Page 13
I o T I S A B O U T OPERATIONAL EFFECIENCIES
Page 15
1% I S A
BIG DEAL
Page 16
W O R L D W I D E 1 BILLION CARS
Page 17
2 0 3 5 2 BILLION CARS
Page 18
BARRELS PER DAY 120 MILLION
Page 19
AS MUCH CARBON AS
Page 21
Storage
Ingest Process Analyze Edge
Applications React
Page 22
Edge
Applications React
Process Analyze
Storage
Ingest
Page 24
HOW DOES THIS
WORK?
Page 26
ON BOARD DIAGNOSTICS
OBD II
Page 27
01 0D !01 0D !18 DA F1 11 03 41 0D 30 !> !
Page 28
PHONE PROVIDES CONNECTIVITY
127.0.0.1:9000
Page 29
{ ! "vehicle_speed":103, ! "obd_standards":2, ! "intake_manifold_pressure":"", ! "accelerator_throttle_pos_e":14, ! "engine_load":89, ! "maf_airflow":33, ! "latitude":"32.897554", ! "vin":"1HGCM82633A004352", ! "bearing":"343.922580", ! "catalyst_temp":779, ! "relative_throttle_pos":12, ! "fuel_level_input":89, ! "fuel_system_status":[2,0], ! "accelerator_throttle_pos_d":29, ! "acceleration":"0.953", ! "throttle_position":21, ! "barometric_pressure":97, ! "control_module_voltage":13, ! "longitude":"-96.810236", ! "distance_with_mil_on":0, ! "coolant_temp":94, ! "intake_air_temp":34, ! "rpm":1593, ! "short_term_fuel":-2, ! "time_since_engine_start":4054, ! "absolute_throttle_pos_b":38, ! "long_term_fuel":3 !} !
Page 30
TCP SOCKET OVER
BLUETOOTH HTTP POST
OVER CELLULAR
Page 36
SPRING CLOUD STREAM
Page 38
EVOLUTION OF DATA APPLICATIONS
Page 40
EXISTING INTEGRATION AND BATCH
Page 41
DATA MICROSERVICES
Page 43
DEVELOPED AND TESTED IN ISOLATION
Page 44
APPLY MICROSERVICES PATTERNS
Page 45
OPERATIONALLY EASY TO
GOVERN
Page 46
DATA INTEGRATION AS A SERVICE
Page 47
COMPOSTION OF MICROSERVICES
Page 48
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<job id="ioSampleJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1"> <tasklet> <chunk reader="itemReader" processor="itemProcessor" writer="itemWriter"
commit-interval="2" />
</tasklet> </step> </job>
<bean id="itemProcessor" class="org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor" />
</beans>
ZERO CODING
Page 49
OPERATIONAL AND ORCHESTRATION COVERAGE
Page 51
WARS AND APP SERVERS
Page 52
DECOMPOSE INTO BOOT MICROSERVICES
Page 53
SPRING CLOUD STREAMS
Page 54
SPRING XD EXTREME DATA
Page 55
Processor Sink
Bus
Source
Page 56
transformer
Redis
http
filter
hdfs type-transformer
python gemfire
Page 57
transformer http filter hdfs
type-transformer
python
Gemfire
REST
Hadoop
Gemfire
Page 58
transformer http filter hdfs
type-transformer
python
Gemfire
REST
Hadoop
Gemfire
Page 59
/** ! * Perfo
rms the domain t
ransformation in
to an acme motor
s specific domai
n
model. ! * ! * @auth
or gfoster!
* ! */ !public c
lass AcmeMotorEn
richingTransform
er implements Tr
ansformer{ !
! @Bean !public M
essage<?> transf
orm(final Messag
e<?> message) { !
final Object pay
load = message.g
etPayload(); !
Map<String, Obje
ct> = new HashMa
p<>(); !
try { !
if (
payload != null)
{ !
map = mapper.r
eadValue(payload
.toString(),
Map.class);
} ! map.put(“times
tamp”,
System.currentTi
meMillis());
} !
map.put(“guid”
, UUID.randomUUI
D()); !
} !
} catch (fina
l Exception e) {
!
Page 60
REALTIME DATA SCIENCE
Page 61
1 PREDICT JOURNEY
Page 63
HOW DOES I T
WORK?
Page 64
STORE SENSOR
DATA
Page 65
OFFLINE BATCH TRAINING
Page 66
J O U R N E Y CLUSTERS
Page 70
INITIAL PREDICTION
Page 71
DRIVING HOME TO WORK
Page 72
DRIVING WORK TO HOME
Page 73
… !"Predictions": { ! "ClusterPredictions": { ! "0": { ! "EndLocation": [ ! 32.98525175453122, ! -96.70940837440399 ! ], ! "MPG_Journey": 25.60900810315203, ! "Probability": 0.63736 ! }, !… !
Page 74
REALTIME EVALUATION
Page 75
●
●
●
●
●
●
●
●
●
●
●
0.05
0.10
0.15
0.20
0.25
0 1 2 3 4 5 6 7 8 9 10Minute
Med
ian
Log−
Loss
PERFORMANCE OF CLASSIFICATION
Page 77
R E A LT I M E DASHBOARD
Page 82
SOLUTION AT SCALE
Page 83
100,000’s OF CLIENTS
Page 84
MILLIONS OF MESSAGES
Page 85
PER MINUTE OVER
100 GB
Page 90
A D D I T I O N A L USE CASES
Page 91
Q U A L I T Y FEEDBACK
Page 92
F L E E T MANAGEMENT
Page 93
Spring XD
Data Science Data Warehouse
Gemfire
Greenplum
Page 94
A C C I D E N T ASSISTANCE
Page 95
IoT PRESENTS UNIQUE CHALLENGES
Page 96
IF YOU CAN BRIDGE THE GAPS
Page 97
SPRING CLOUD MAKES THE REST EASY
Page 98
Unless otherwise indicated, these sl ides are © 2013-2015 Pivotal Software, Inc. and l icensed under a Creat ive Commons Attr ibut ion-NonCommercial l icense: ht tp: / /creat ivecommons.org/ l icenses/by-nc/3.0/ 98
Visit spring.io for more information about Spring Cloud
Attend the keynote tonight to learn more about the connected fleet app
Learn More. Stay Connected.
@springcentral Spring.io/video