ソースを参照

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