aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/doc/puml/IntelligentDataCollection.puml
blob: 3a7b9889b29f886177df1d0f0dc0351dfdeaeda7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
@startuml "Intelligent Data Collection"
participant "Vehicle Telematics Module" as VTM
participant "Broker" as iot
database "Telemetry Data" as TDB
participant "Vehicle Status" as vehstat
database "Vehicle Model and Mapping" as VMDB
participant "Intelligent Data Service" as IDS
participant "Analytics Services" as AS
participant "Consuming Services" as CS
actor "Developer/Engineer" as DE
participant "Consuming Application"


DE -> IDS: Model Vehicle Data
IDS -> VMDB: Store Vehicle Models
DE -> IDS: Map Model to Vehicle Data Schemas (i.e. DBC)
IDS -> VMDB: Store Vehicle Model and Mapping
=== Load Vehicle Model Mapping ==
IDS -> iot: Publish message PublishVehicleModelMapping
alt Vehicle Connected
iot -> VTM: Receive PublishVehicleModelMapping
note right of VTM: The vehicle uses the mapping to abstract and transform vehicle network data to the Model.
else else Vehicle Not Connected
vehstat -> IDS: isVehicleSubscribedResponse (Not Subscribed)

create boundary "SMS/Cellular Services" as sms
IDS -> sms: Send SMS Wake up Message
VTM -> iot: Connect
iot -> iot: Authorization check
iot -> VTM: ConnectAck
iot -> vehstat: <VTM_id> Connected
vehstat -> IDS: <VTM_id> Connected
IDS -> iot: Subscribe to <response_topic_id>
iot -> IDS: SUBACK
IDS -> iot: Publish PublishVehicleModelMapping
end
iot -> VTM: Receive PublishVehicleModelMapping
iot -> IDS: PUBACK


== Send Vehicle Data Collection Scheme ==
DE -> IDS: Design Data Collection Scheme
note right of IDS: These services permit identifying just the data needed\n for a specific use case and the collection intervals\n either by event or time based.
alt Vehicle Connected
iot -> VTM: Receive PublishDataCollectionDescriptor
note right of VTM: The vehicle uses the mapping to abstract and transform vehicle network data to the Model.
else else Vehicle Not Connected
vehstat -> IDS: isVehicleSubscribedResponse (Not Subscribed)

create boundary "SMS/Cellular Services" as sms
IDS -> sms: Send SMS Wake up Message
VTM -> iot: Connect
iot -> iot: Authorization check
iot -> VTM: ConnectAck
iot -> vehstat: <VTM_id> Connected
vehstat -> IDS: <VTM_id> Connected
IDS -> iot: Subscribe to <response_topic_id>
iot -> IDS: SUBACK
IDS -> iot: Publish PublishDataCollectionDescriptor
end
iot -> VTM: Receive PublishDataCollectionDescriptor
iot -> IDS: PUBACK

== Publish Data From Vehicle ==

loop Publish as Per Collection Scheme
VTM <-: Event or Interval
VTM -> iot: Connect
VTM -> iot: PublishData
iot -> iot: Authorization check
iot -> VTM: ConnectAck
iot -> vehstat: <VTM_id> Connected
vehstat -> IDS: <VTM_id> Connected
VTM -> iot: PublishData
iot -> IDS: Receive PublishData
IDS -> TD: Store Data
AS -> TD: Retrieve and Transform Data
AS -> CS: Consume Data for Business Purposes
end



@enduml