浏览代码

updated uml diagram for offline transmission handler

Enzo 1 年之前
父节点
当前提交
95c93d5789
共有 1 个文件被更改,包括 33 次插入21 次删除
  1. 33 21
      documentations/offlinetransmission.plantuml

+ 33 - 21
documentations/offlinetransmission.plantuml

@@ -7,50 +7,62 @@ skinparam usecase {
     BorderColor<< Publisher >> Red
     BackgroundColor<< Subscriber >> YellowGreen
     BorderColor<< Subscriber >> Green
+    BackgroundColor<< Interrupt >> Pink
+    BorderColor<< Interrupt >> Red
 }
 
-component PublisherSite {
+skinparam component {
+    PublisherSite 24
+}
+
+component "PublisherSite" as PublisherSite{
     (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 >>
-    [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
 PublisherObs --> parentPub : If internet is \ndown, NOTIFY \nparent publisher
 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
-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
-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
 
 /' Briedf description
 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
 how the components handle the situation.
 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
-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
 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