Browse Source

updated uml diagram for offline transmission handler

Enzo 1 year ago
parent
commit
95c93d5789
1 changed files with 33 additions and 21 deletions
  1. 33 21
      documentations/offlinetransmission.plantuml

+ 33 - 21
documentations/offlinetransmission.plantuml

@@ -7,50 +7,62 @@ skinparam usecase {
     BorderColor<< Publisher >> Red
     BorderColor<< Publisher >> Red
     BackgroundColor<< Subscriber >> YellowGreen
     BackgroundColor<< Subscriber >> YellowGreen
     BorderColor<< Subscriber >> Green
     BorderColor<< Subscriber >> Green
+    BackgroundColor<< Interrupt >> Pink
+    BorderColor<< Interrupt >> Red
 }
 }
 
 
-component PublisherSite {
+skinparam component {
+    PublisherSite 24
+}
+
+component "PublisherSite" as PublisherSite{
     (Parent) as (parentPub) << Publisher >>
     (Parent) as (parentPub) << Publisher >>
-    usecase "Parent" as parentPub
-    [PublisherObservable] as PublisherObs #Pink;line:Red;line.bold;text:Black
-    port "Proxy" as proxy1
-    database "buffer" as buffer
+    usecase "**Parent**" as parentPub
+    card PublisherObservable as PublisherObs #Pink;line:Red;line.bold;text:Black
+    port "**Proxy**" as proxy1
+    database "**buffer**" as buffer
 }
 }
 
 
-component SubscriberSite {
+component SubscriberSite as SubscriberSite{
     (Parent) as (parentSub) << Subscriber >>
     (Parent) as (parentSub) << Subscriber >>
-    [SubscriberObservable] as SubscriberObs1   #YellowGreen;line:green;line.bold;text:Black
-    [SubscriberObservable] as SubscriberObs2   #cyan;line:blue;line.bold;text:Black
-    port "Proxy" as proxy2
-    port "Proxy" as proxy3
+    usecase "**Parent**" as parentSub
+    card SubscriberObservable as SubscriberObs1   #YellowGreen;line:green;line.bold;text:Black
+    card SubscriberObservable as SubscriberObs2   #cyan;line:blue;line.bold;text:Black
+    port "**Proxy**" as proxy2
+    port "**Proxy**" as proxy3
 }
 }
 
 
+' (X) as (interrupt) << Interrupt >>
+' usecase "X" as interrupt
+
 proxy1 *- PublisherObs #line:Red;text:Red : Publish data to \ndesignated subsriber \nover proxy
 proxy1 *- PublisherObs #line:Red;text:Red : Publish data to \ndesignated subsriber \nover proxy
 PublisherObs --> parentPub : If internet is \ndown, NOTIFY \nparent publisher
 PublisherObs --> parentPub : If internet is \ndown, NOTIFY \nparent publisher
 parentPub --> parentSub #line:blue;line.bold;text:Blue : Notify Internet \nWas Offline \nPlease Subscribe \nAgain
 parentPub --> parentSub #line:blue;line.bold;text:Blue : Notify Internet \nWas Offline \nPlease Subscribe \nAgain
-proxy1 *..* proxy2 #line:Red;text:Red : Internet Connection \nInterruption
-proxy1 == buffer : Store data \nin buffer should \nthe internet connection \nstatus is offline
+' proxy1 *..* interrupt #line:Red;text:Red
+' interrupt *..* proxy2 #line:Red;text:Red
+proxy1 *.(0).> proxy2 #line:Red;text:Red : Internet Disconnected
+' destroy proxy1
+proxy1 == buffer : Store data \nin buffer should \nthe internet \nbe disconnected
 
 
-proxy2 -* SubscriberObs1  #line:Red;text:Red : Receive data \nfrom Publisher
+proxy2 -* SubscriberObs1  #line:Red;text:Red : Subscribe and \nReceive data 
 proxy3 *- SubscriberObs2 #line:Blue;text:Blue : Subcribe to Publisher \nvia new Proxxy or \nexisting Proxy
 proxy3 *- SubscriberObs2 #line:Blue;text:Blue : Subcribe to Publisher \nvia new Proxxy or \nexisting Proxy
-proxy2 *- SubscriberObs2 #line:Blue;text:Blue 
+' proxy2 *- SubscriberObs2 #line:Blue;text:Blue
 proxy1 *..* proxy3 #line:Blue;text:Blue : Subscribe to proxy \n to continue receiving \ndata
 proxy1 *..* proxy3 #line:Blue;text:Blue : Subscribe to proxy \n to continue receiving \ndata
-parentSub -> SubscriberObs2 #line:Orange;text:Orange : Instantiate a \nnew Subscriber upon \nreceiving notification \nfrom Publisher's parent
-parentSub <- SubscriberObs1 : Persists data \nreceived from \nPublisher
-
+parentSub => SubscriberObs2 #line:DarkGreen;line.bold;text:DarkGreen : Instantiate a \nnew Subscriber upon \nreceiving notification \nfrom Publisher's parent
+parentSub -> SubscriberObs1 : Persists data \nreceived from \nPublisher
 @enduml
 @enduml
 
 
 /' Briedf description
 /' Briedf description
 Follow the red line first. It represents a normal flow of data/message transfer
 Follow the red line first. It represents a normal flow of data/message transfer
-during an ideal situation. 
+during an ideal situation.
 The blue lines represents when the internet is done and provides direction as to
 The blue lines represents when the internet is done and provides direction as to
 how the components handle the situation.
 how the components handle the situation.
 So here, the the publisher will produce it's messages/payload to the subscriber
 So here, the the publisher will produce it's messages/payload to the subscriber
-using the imported library to enable remote transmission of the data via proxy. 
+using the imported library to enable remote transmission of the data via proxy.
 The same thing also for the other side, to which they will also need to use the
 The same thing also for the other side, to which they will also need to use the
-same library in order to receive the transmitted data. 
+same library in order to receive the transmitted data.
 
 
-Now, assuming the internet connection is interrupted for whatever reason, then the 
+Now, assuming the internet connection is interrupted for whatever reason, then the
 data will then be stored in the the buffer so to speak or whatever that the publisher
 data will then be stored in the the buffer so to speak or whatever that the publisher
 wants to deal with it. The parent component will then keep track of the records
 wants to deal with it. The parent component will then keep track of the records
 and send it's notification to the subscriber's parents once the internet is back
 and send it's notification to the subscriber's parents once the internet is back