| 
														
															@@ -1,7 +1,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @startuml OfflineTranmission 
														 | 
														
														 | 
														
															 @startuml OfflineTranmission 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 header Message OfflineTranmission 
														 | 
														
														 | 
														
															 header Message OfflineTranmission 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 left to right direction 
														 | 
														
														 | 
														
															 left to right direction 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-skinparam actorStyle awesome 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 skinparam usecase { 
														 | 
														
														 | 
														
															 skinparam usecase { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     BackgroundColor<< Publisher >> Pink 
														 | 
														
														 | 
														
															     BackgroundColor<< Publisher >> Pink 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -10,34 +9,55 @@ skinparam usecase { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     BorderColor<< Subscriber >> Green 
														 | 
														
														 | 
														
															     BorderColor<< Subscriber >> Green 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-package PublisherSite { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    actor "Publisher" as Publisher  #pink;line:red;line.bold;text:red 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+component PublisherSite { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (Parent) as (parentPub) << Publisher >> 
														 | 
														
														 | 
														
															     (Parent) as (parentPub) << Publisher >> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     usecase "Parent" as parentPub 
														 | 
														
														 | 
														
															     usecase "Parent" as parentPub 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    () "Proxy" as proxy1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    [PublisherObservable] as PublisherObs #Pink;line:Red;line.bold;text:Black 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    port "Proxy" as proxy1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    database "buffer" as buffer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-package SubscriberSite { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    () "Proxy" as proxy2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    () "Proxy" as proxy3 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+component SubscriberSite { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (Parent) as (parentSub) << Subscriber >> 
														 | 
														
														 | 
														
															     (Parent) as (parentSub) << Subscriber >> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    actor "Subscriber" as Subscriber1   #YellowGreen;line:green;line.bold;text:Green 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    actor "Subscriber" as Subscriber2   #cyan;line:blue;line.bold;text:blue 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    [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 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-' note "<b><size:18>Blue COLOR</size></b> is the \nfirst triggering mechanism for \noffline transmission." as N1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-' note "<b><size:18>Red COLOR</size></b> is the \nfirst line of streaming." as N2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-' note "Internet Connection Interrupted" as N3 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-proxy1 <-- Publisher #line:Red;text:Red : Publish data to \ndesignated subsriber \nover proxy 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-parentPub <-- Publisher : If internet is \ndown, NOTIFY \nparent publisher 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-proxy2 --> Subscriber1  #line:Red;text:Red : Receive data \nfrom Publisher 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+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 
														 | 
														
														 | 
														
															 parentPub --> parentSub #line:blue;line.bold;text:Blue : Notify Internet \nWas Offline \nPlease Subscribe \nAgain 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-proxy2 . proxy1 #line:Red;text:Red : Internet Connection \nInterruption 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-' N3 . proxy2 #line:Red;text:Red  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+proxy1 *..* proxy2 #line:Red;text:Red : Internet Connection \nInterruption 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+proxy1 == buffer : Store data \nin buffer should \nthe internet connection \nstatus is offline 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-proxy3 <-- Subscriber2 #line:Blue;text:Blue : Subcribe to Publisher \nvia new Proxxy 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-proxy1 . proxy3 #line:Blue;text:Blue : Subscribe to proxy \n to continue receiving \ndata 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-Subscriber2 <-- parentSub #line:Blue;text:Blue : Instantiate a \nnew Subsscriber 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-parentSub <-- Subscriber1 : Persists data \nreceived from \nPublisher 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+proxy2 -* SubscriberObs1  #line:Red;text:Red : Receive data \nfrom Publisher 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+proxy3 *- SubscriberObs2 #line:Blue;text:Blue : Subcribe to Publisher \nvia new Proxxy or \nexisting Proxy 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+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 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @enduml 
														 | 
														
														 | 
														
															 @enduml 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+/' Briedf description 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Follow the red line first. It represents a normal flow of data/message transfer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+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.  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+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.  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+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 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+online. Meanwhile, there would be, ideally speaking, internal mechanism to deal 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+with the ongoing data transmission that is occuring at the publisher's site. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+So, when the internet connection is back online, and upon receiving the notification 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from the parent of the publisher's site, it would then instantaite a new subcriber 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+to subscribe to the previously subscribed publisher, and continue to receive the 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+stream data. The publisher will of course stream the buffered data that failed to 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+transmit to the relevant party.'/ 
														 |