Upload
spring-by-pivotal
View
1.191
Download
2
Embed Size (px)
Citation preview
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
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
https://github.com/pivotal/IoT-ConnectedCar
B A C K T O T H E BEGINNING
REALLY COOL IoT PROJECT
COVERED BY AN
NDA
CONNECTED
CAR
P R E D I C T T H E DESTINATION
PREDICT THE RANGE
PIECES ARE THE
SAME
I o T I S A B O U T OPERATIONAL EFFECIENCIES
GE Video?
1% I S A
BIG DEAL
W O R L D W I D E 1 BILLION CARS
2 0 3 5 2 BILLION CARS
BARRELS PER DAY 120 MILLION
AS MUCH CARBON AS
CONNECTED
CAR
Storage
Ingest Process Analyze Edge
Applications React
Edge
Applications React
Process Analyze
Storage
Ingest
HOW DOES THIS
WORK?
START IN THE
CAR
ON BOARD DIAGNOSTICS
OBD II
01 0D !01 0D !18 DA F1 11 03 41 0D 30 !> !
PHONE PROVIDES CONNECTIVITY
127.0.0.1:9000
{ ! "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 !} !
TCP SOCKET OVER
BLUETOOTH HTTP POST
OVER CELLULAR
O N T H E SERVER
EASY 1
MATURE 2
NOT DEPENDENT 3
SPRING CLOUD STREAM
EVOLUTION OF DATA APPLICATIONS
MONOLITHS
EXISTING INTEGRATION AND BATCH
DATA MICROSERVICES
CLOUD NATIVE
DEVELOPED AND TESTED IN ISOLATION
APPLY MICROSERVICES PATTERNS
OPERATIONALLY EASY TO
GOVERN
DATA INTEGRATION AS A SERVICE
COMPOSTION OF MICROSERVICES
<?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
OPERATIONAL AND ORCHESTRATION COVERAGE
WARS AND APP SERVERS
DECOMPOSE INTO BOOT MICROSERVICES
SPRING CLOUD STREAMS
SPRING XD EXTREME DATA
Processor Sink
Bus
Source
transformer
Redis
http
filter
hdfs type-transformer
python gemfire
transformer http filter hdfs
type-transformer
python
Gemfire
REST
Hadoop
Gemfire
transformer http filter hdfs
type-transformer
python
Gemfire
REST
Hadoop
Gemfire
/** ! * 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) {
!
REALTIME DATA SCIENCE
1 PREDICT JOURNEY
2 PREDICT RANGE
HOW DOES I T
WORK?
STORE SENSOR
DATA
OFFLINE BATCH TRAINING
J O U R N E Y CLUSTERS
INITIAL PREDICTION
DRIVING HOME TO WORK
DRIVING WORK TO HOME
… !"Predictions": { ! "ClusterPredictions": { ! "0": { ! "EndLocation": [ ! 32.98525175453122, ! -96.70940837440399 ! ], ! "MPG_Journey": 25.60900810315203, ! "Probability": 0.63736 ! }, !… !
REALTIME EVALUATION
●
●
●
●
●
●
●
●
●
●
●
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
RANGE PREDICTION
R E A LT I M E DASHBOARD
GEMFIRE 1
REST 2
YOEMAN 3
ANGULARJS 4
SOLUTION AT SCALE
100,000’s OF CLIENTS
MILLIONS OF MESSAGES
PER MINUTE OVER
100 GB
IoT
ISSUES
COMPATIBILITY
CONNECTIVITY
SECURITY
A D D I T I O N A L USE CASES
Q U A L I T Y FEEDBACK
F L E E T MANAGEMENT
Spring XD
Data Science Data Warehouse
Gemfire
Greenplum
A C C I D E N T ASSISTANCE
IoT PRESENTS UNIQUE CHALLENGES
IF YOU CAN BRIDGE THE GAPS
SPRING CLOUD MAKES THE REST EASY
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