# 2.6.Remote interaction patterns

* Remote control的目的是遙控遠端電腦, 或是觸發遠端電腦中的程式, 而如果可以同時控制兩台以上的電腦則可以讓他們進行一些交互動作, 例如自動化測試.
* 而讓多台電腦進行交互動作並讓彼此知道訊息, 有許多種方式可以實作, 我將模式大致上歸納為兩種:&#x20;
  * 1.相互獨立型
    * 當我們希望兩台機器(A, B)有相互的動作, 而且兩台機器上面所執行的process各自是獨立的, 不會因對方process的啟動結束時間影響自己
    * 並且我們希望當他們的process執行到某個時間時(或是結束時)可以通知對方, 一般來說我們可以由第三台機器C來統一對這兩台機器(A, B)做remote control:
    * 例如測試機器A的FBWF功能時, 可以先用C初始化A的測試環境, 再以B開始對A進行測試, 其中B可以對A不斷的單向監控, 例如監控A是否重開機完成了, 藉以知道目前A的狀態

      ![](https://117590093-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8MrI9JbdRm_9nH%2F-M4M0I_MusDflHE0g_CK%2F-M4M0_C8oCyshELsk4K2%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202017-01-21%20%E4%B8%8B%E5%8D%882.36.07.png?generation=1586302967982751\&alt=media)
  * 2.主從監控型:
    * 在某些情形下, 我們想讓兩台機器(A, B)有相互的動作, 而且兩台機器上面所執行的process各自是獨立的
    * 但是我們希望B機器process的起始可以被A機器trigger, B機器的process結束時也可以通知A機器
    * 例如A, B一邊是server, 一邊是client時, 彼此需要互相配合ㄡ

      ![](https://117590093-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8MrI9JbdRm_9nH%2F-M4M0I_MusDflHE0g_CK%2F-M4M0_CAx67ndwblUqLt%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202017-01-21%20%E4%B8%8B%E5%8D%882.41.10.png?generation=1586302968046339\&alt=media)
