機械設計專門研究如何利用機巧的配置來解決問題, 所謂機巧的配置不限固體、流體或是軟體, 隨著網路數位科技的不斷精進, 機械設計工程師也必須熟練網際協同環境中近端與遠端的搭配使用.

以下有一個例子, 可以用來展示機械設計專題如何在近端與遠端中執行設計工作.

所謂近端, 指的是機械設計工程師身旁所使用的電腦, 可以是在實體操作系統或者是虛擬操作系統, 可以連上廣域網路, 也可以暫時從網路連線中斷線, 以便專心在近端的工作目錄中工作.

所謂遠端, 指的是位於廣域網路上的電腦, 通常是雲端伺服器, 至少提供全球資訊網伺服與 Git 伺服. 遠端主機的功能主要讓身處各地的工程師, 可以透過網路連線, 以 Git 分散式版次管理系統進行產品設計協同.

前面提到機械設計事涉機巧的配置, 因此我們在近端工作時, 會希望能夠得到與遠端伺服器相同的結果, 其中若以網際協同的架構來說, 代表在近端的文字資料, 當使用者在編寫時, 能夠採用 Markdown 格式, 然後再經由程式方法轉換為 html, 至於關鍵字的搜尋也希望兩端相同, 都採 Javascript 完成.

這時, 假如近端有廣域網路連線, 則協同資料中可以使用 cdn 來簡化工作, 否則一律採用相對目錄擷取所需要的 Javascript 程式庫.

剩下的工作就是在近端, 啟動一個專門測試用的 https 伺服器, 讓之後在遠端工作時欲呈現的結果, 預先在近端進行 Debug.

因為整個 KMOL 團隊都是採用 Leo Editor 進行協同工作, 並且所有遠端的資料伺服都採用 https, 因此只要使用下列的多執行緒按鈕, 就可以在近端啟動一個或多個 https 伺服器.

首先, 利用:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt

建立所需的 localhost.key 與 localhost.crt

然後配合更動各 https 伺服器的埠號, 每按下一次按鈕, 就會配合各 .leo 專案, 產生對應 https 伺服.

 
import os
import subprocess
import threading
import http.server, ssl

def domake():
    # build directory
    os.chdir("./../")
    server_address = ('localhost', 9443)
    httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket(httpd.socket,
                                   server_side=True,
                                   certfile='localhost.crt',
                                   keyfile='localhost.key',
                                   ssl_version=ssl.PROTOCOL_TLSv1)
    print("9443 https server started")
    httpd.serve_forever()

# 利用執行緒執行 https 伺服器
make = threading.Thread(target=domake)
make.start()

這個按鈕的實際應用請參考:

2016fall 電腦輔助設計實習課程分班網誌

2016fall 計算機程式分班課程網誌


Comments

comments powered by Disqus