TWI534623B - 在單機中實現多人操作的控制系統與方法 - Google Patents
在單機中實現多人操作的控制系統與方法 Download PDFInfo
- Publication number
- TWI534623B TWI534623B TW103118571A TW103118571A TWI534623B TW I534623 B TWI534623 B TW I534623B TW 103118571 A TW103118571 A TW 103118571A TW 103118571 A TW103118571 A TW 103118571A TW I534623 B TWI534623 B TW I534623B
- Authority
- TW
- Taiwan
- Prior art keywords
- interface
- virtual
- virtual machine
- network
- peripheral device
- Prior art date
Links
Landscapes
- Computer And Data Communications (AREA)
Description
一種周邊裝置的控制系統與方法,特別有關於一種在單機中實現多人操作的控制系統與方法。
隨著計算機性能的快速提昇,使得計算機可以運行至少一個以上的虛擬機器(Virtual Machine)。而每一虛擬機器的硬體資源也可以由使用者自行設定。並且每一個虛擬機器可以運行各自獨立的作業系統。舉例來說,計算機具有虛擬機器A與虛擬機器B。虛擬機器A可以被分配單核心(single thread)、2Gigabytes記憶體、10 Gigabytes硬碟空間與Linux作業系統。虛擬機器可以被分配雙核心(dual thread)、4Gigabytes記憶體、50 Gigabytes硬碟空間與Windows作業系統。不同的使用者可以登入各自的虛擬機器,並在虛擬機器中執行相關的應用程式。
雖然不同的虛擬機器可以提供各自的服務,但是實體的硬體資源是無法讓多個使用者同時共用。以計算機的RS-232接口為例。實體的計算機的使用者一旦佔用RS-232接口,虛擬機器A與虛擬機器B就無法即時使用計算機所佔用的RS-232接口。對於計算機的其他控制介面也會面臨相同的問題。
本發明提供一種在單機中實現多人操作的控制系統,可以實現多個使用者在同一計算機中操作各自的周邊裝置。
本發明的在單機中實現多人操作的控制系統包括橋接裝置與主控電腦。橋接裝置,具有第二網路接口與異質介面接口,異質介面接口連接第二周邊裝置;主控電腦,其係包括儲存單元、實體控制介面、第一網路接口與第一處理單元,第一處理單元電性連接於儲存單元、實體控
制介面與第一網路接口,儲存單元存儲主作業系統與虛擬機程序,實體控制介面電性連接於第一周邊裝置,第一網路接口連接橋接裝置的第二網路接口,第一處理單元運行主作業系統,主作業系統接收第一操作命令,由主作業系統透過實體控制介面驅動第一周邊裝置;其中,第一處理單元運行虛擬機程序並產生虛擬機器,在虛擬機器中運行虛擬作業系統,虛擬機程序將虛擬機器的虛擬網路接口映射至第一網路接口,虛擬作業系統中運行中介程序,中介程序用於偵測橋接裝置,並根據橋接裝置的種類對虛擬作業系統生成對應異質介面接口的虛擬控制介面,中介程序對所接收的第二操作命令轉換為網路封包,中介程序並透過第一網路接口驅動第二周邊裝置。
本發明更提出一種在單機中實現多人操作的控制方法,其係
包括以下步驟:主控電腦電性連接第一周邊裝置;主控電腦網路連接於橋接裝置,橋接裝置更電性連接第二周邊裝置;主控電腦中生成至少一虛擬機器,並在虛擬機器上運行虛擬作業系統;由主控電腦的虛擬機程序監控虛擬機器的網路傳輸,並將虛擬機器的虛擬網路接口所傳輸的網路封包轉發至主控電腦的第一網路接口;由主控電腦向第一周邊裝置發送第一操作命令;虛擬機器將所接收的第二操作命令轉換為第一網路封包;虛擬機器透過虛擬網路接口與第一網路接口向第二周邊裝置發送具有第二操作命令的第一網路封包。
本發明所提供的在單機中實現多人操作的控制系統與方法可以降低計算機的設置成本與維護成本,並且在同一計算機上可以提供多位使用者進行各自的周邊裝置的操作。
有關本發明的特徵與實作,茲配合圖式作最佳實施例詳細說明如下。
100‧‧‧控制系統
110‧‧‧主控電腦
111‧‧‧第一處理單元
112‧‧‧儲存單元
113‧‧‧實體控制介面
114‧‧‧第一網路接口
120‧‧‧橋接裝置
121‧‧‧第二處理單元
122‧‧‧第二網路接口
123‧‧‧異質介面接口
130‧‧‧第一周邊裝置
140‧‧‧第二周邊裝置
151‧‧‧主作業系統
152‧‧‧中介程序
153‧‧‧虛擬機程序
160‧‧‧終端設備
300‧‧‧虛擬機器
310‧‧‧虛擬作業系統
320‧‧‧虛擬網路接口
330‧‧‧虛擬控制介面
第1圖係為本發明的架構細部示意圖。
第2圖係為本發明的運作流程示意圖。
第3A圖係為對第一周邊裝置的操作示意圖。
第3B圖係為本發明的虛擬機器列表示意圖。
第4A圖係為本發明的客戶端透過終端設備連接虛擬機器與第二周邊裝置的架構示意圖。
第4B圖係為本發明的第二操作命令的傳輸流程示意圖。
請參考第1A圖所示,其係為本發明的系統示意圖。本發明的控制系統100包括主控電腦110、橋接裝置120、第一周邊裝置130、第二周邊裝置140與終端設備160。主控電腦110電性連接於第一周邊裝置130。主控電腦110網路連接於橋接裝置120與終端設備160。
主控電腦110包括第一處理單元111、儲存單元112、實體控制介面113與第一網路接口114。第一處理單元111電性連接於儲存單元112、實體控制介面113與第一網路接口114。實體控制介面113電性連接於第一周邊裝置130。實體控制介面113的種類可以是但不限定為第二代個人系統接口(personal system/2,PS/2)、並列串口(parallel port)、序列串口(serial port)或數位輸入/輸出(digital I/O,D/IO)或通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART)。舉例來說,第一周邊裝置130可能為條碼讀取機(barcode reader)、印表機、收銀台錢箱(cash box)或鍵盤等。
儲存單元112用於存儲主作業系統151(Operation System)、中介程序152(agent process)與虛擬機程序153(Virtual Machine program)。第一處理單元111運行主作業系統151。在主作業系統151的運行過程中,第一處理單元111另執行虛擬機程序153。虛擬機程序153用於生成至少一虛擬機器,而每一虛擬機器可以運行各自獨立的作業系統。對於虛擬機器所運行的作業系統在本發明中將其定義為虛擬作業系統。例如:虛擬處理器、虛擬記憶體、虛擬硬碟、虛擬控制介面與虛擬網路接口等。
虛擬作業系統啟動後,虛擬作業系統會運行中介程序152。中介程序152用於偵測橋接裝置120,並根據橋接裝置120的種類對虛擬作業系統生成對應異質介面接口123的虛擬控制介面。以及中介程序152對所接收的操作命令進行網路封包的拆解與轉換。關於中介程序152的詳細作動方式將於後文進行詳述。使用者可以藉由終端設備(terminal device)與網
路的方式登入虛擬機器,並對虛擬作業系統上的相關軟體或硬體進行操作。所述的終端設備160可能為個人電腦、筆記型電腦、平板電腦或行動電話(mobile phone)等。對於登入虛擬機器的使用者而言,使用者所操作的作業環境與主作業系統151的相關環境是完全不同的。虛擬機器雖然是共用主控電腦110的硬體資源,但各虛擬機器的資源多寡可以由使用者自定。
橋接裝置120包括第二處理單元121、第二網路接口122與
異質介面接口123。第二處理單元121電性連接第二網路接口122與異質介面接口123。主控電腦110的第一網路接口114連接於橋接裝置120的第二網路接口122。第一網路接口114(與第二網路接口122)的種類可以是但不限定為有線的乙太網路,也可以是無線網路(wireless network)。異質介面接口123電性連接於第二周邊裝置140。異質介面接口123的種類可以為PS/2、並列串口、序列串口或數位輸入/輸出或通用異步收發傳輸器。舉例來說,第二周邊裝置140可能為條碼讀取機、印表機、收銀台錢箱或鍵盤等。
第二處理單元121將來自於主控電腦110的網路封包轉換為
第二周邊裝置140的操作命令或識別資訊。或者,第二處理單元121將來自於第二周邊裝置140的回應訊息轉換為網路封包並傳回主控電腦110。在此將本發明中主控電腦110傳向橋接裝置120的網路封包定義為第一網路封包。而橋接裝置120傳向主控電腦110的網路封包則另定義為第二網路封包。
此外,為能識別不同使用者對於周邊裝置的操作。因此在本
發明中分別指派兩使用者,分別為使用者A與使用者B。若是有兩台以上的虛擬機器,同時也可以由三名以上的使用者對主控電腦110與虛擬機器進行操作。使用者A可操作主控電腦110的主作業系統151與第一周邊裝置130。而使用者B可操作虛擬作業系統與第二周邊裝置140。在本發明中對於使用者A對第一周邊裝置130的操作命令定義為第一操作命令,使用者B對第二周邊裝置140的操作命令定義為第二操作命令。
本發明中主控電腦110傳向橋接裝置120的網路封包定義為第一網路封包。而橋接裝置120傳向主控電腦110的封包則另定義為第二
網路封包。在本發明中所述的網路可以是網際網路(internet)也可以是區域網路(intranet)。而為方便說明,以下係以區域網路作為解說,但實際上熟悉本領域者可以將其技術應用在網際網路之中。請配合第2圖所示,其係為本發明的控制流程示意圖。本發明的控制流程包括以下步驟:步驟S210:主控電腦電性連接第一周邊裝置;步驟S220:主控電腦網路連接於橋接裝置,橋接裝置更電性連接第二周邊裝置;步驟S230:主控電腦中生成至少一虛擬機器,並在虛擬機器上運行虛擬作業系統;步驟S240:虛擬機程序監控虛擬機器的網路傳輸,並將虛擬機器的虛擬網路接口轉發至第一網路接口;步驟S250:由主控電腦向第一周邊裝置發送第一操作命令或接收來自於第一周邊裝置所返回的回應訊息;步驟S260:虛擬機器將所接收的第二操作命令轉換為第一網路封包;步驟S270:虛擬機器透過虛擬網路接口與第一網路接口向第二周邊裝置發送具有第二操作命令的第一網路封包;步驟S280:第二周邊裝置執行第二操作命令,並輸出回應訊息至橋接裝置;步驟S290;橋接裝置根據連線通道的數量對回應訊息進行分段,並對每一分段的結果轉換並輸出為多個第二網路封包;以及步驟S300:將第二網路封包發送至虛擬機器。
首先,將主控電腦110電性連接第一周邊裝置130。主控電腦110網路連接於橋接裝置,橋接裝置120更電性連接第二周邊裝置140。使用者A可以透過實體控制介面113對第一周邊裝置130進行操作。而第一周邊裝置130在完成操作後,也可以返回一回應訊息給主控電腦110,請參考第3A圖所示。
主控電腦110中生成至少一虛擬機器300,並在每一台虛擬機器300上運行各自的虛擬作業系統310。虛擬機程序153會根據使用者的設定,從而調派硬體資源給虛擬機器300。請參考第3B圖所示,其係為本
發明的虛擬機器列表示意圖。舉例來說,虛擬機程序153會監控各台虛擬機器300的網路傳輸,並分時調用第一網路接口114給主控電腦110與各台虛擬機器300。虛擬機器300至少包括虛擬作業系統310、虛擬網路接口320與虛擬控制介面330。
虛擬機器300啟動後,虛擬機器300會載入虛擬作業系統
310。虛擬作業系統310會連帶運行中介程序152。而中介程序152可以是獨立的應用程序,也可以內建於虛擬作業系統310之中。中介程序152透過虛擬網路接口320與第一網路接口114用於偵測橋接裝置120是否存在。
當橋接裝置120接獲設備搜尋命令後,橋接裝置120會返回對應的識別資訊。識別資訊記錄橋接裝置120的串口種類、串口數量、第二周邊裝置140的種類或者是橋接裝置120的型號。
中介程序152根據識別資訊生成虛擬控制介面330,而虛擬
控制介面330係對應橋接裝置120的異質介面接口123。同時,中介程序152根據識別資訊,用於建立位址空間(address space)與多個連線通道(channel)。位址空間的大小是根據第二周邊裝置140的種類所決定。而連線通道的數量可根據第二周邊裝置140所決定,或者預設成固定數量。位址空間用於模擬第二周邊裝置140在連接虛擬機器300時的記憶體空間。中介程序152透過位址空間與多個連線通道用以模擬第二周邊裝置140與主控電腦110間的匯流排的傳輸方式。
使用者B可以透過所述的終端設備160登入至虛擬機器300
中,並操作虛擬作業系統310的相關硬體。使用者B可以從虛擬作業系統310中看到第二周邊裝置140的存在,請參考第4A圖所示。在第4A圖中實線所代表的是實體線路的連接,而虛線代表的是虛擬線路的連接。當使用者B透過虛擬機器300向第二周邊裝置140發出第二操作命令(或操作資料)時,中介程序152會對操作命令進行分段的處理,請配合第4B圖所示,其係為本發明的第二操作命令的傳輸流程示意圖。
在本發明中中介程序152會根據連線通道的數量對操作命
令進行網路封包的分段處理。因此中介程序152會輸出與連線通道相同數量的分段結果。中介程序152根據切分後的操作命令進而取得對應的每一
個資料偏移量(offset)。由於每一個資料偏移量所傳輸的順序受到控制,因此可以確保收發的兩方(虛擬機器300與第二周邊裝置140)都可以確認接收的順序。而此一方式可以透過硬體方式所實現,且硬體處理的速度相較於軟體層解析的速度更加來的有效率。
為能方便說明經過切分後的操作命令(或操控資料),將每一
切分的部分定義為已切分區塊。中介程序152將已切分區塊與對應的資料偏移量透過連線通道依序的進行轉換為第一網路封包,並將第一網路封包發送給橋接裝置120。
橋接裝置120將第一網路封包進行重組,並得到相應的第二
操作命令。橋接裝置120將第二操作命令發送至第二周邊裝置140。第二周邊裝置140執行第二操作命令後,第二周邊裝置140返回相應的回應訊息給橋接裝置120。橋接裝置120根據前述的切分處理將回應訊息轉換為多個第二網路封包。橋接裝置120將第二網路封包發送至對應的虛擬機器300。
本發明所提供的在單機中實現多人操作的控制系統與方法
可以降低計算機的設置成本與維護成本,並且在同一計算機上可以提供多位使用者進行各自的周邊裝置的操作。不同的使用者可以操作所屬的虛擬作業系統310,也可以控制各自虛擬作業系統310所屬的第二周邊裝置140。
雖然本發明以前述之較佳實施例揭露如上,然其並非用以限
定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
100‧‧‧控制系統
110‧‧‧主控電腦
111‧‧‧第一處理單元
112‧‧‧儲存單元
113‧‧‧實體控制介面
114‧‧‧第一網路接口
120‧‧‧橋接裝置
121‧‧‧第二處理單元
122‧‧‧第二網路接口
123‧‧‧異質介面接口
130‧‧‧第一周邊裝置
140‧‧‧第二周邊裝置
151‧‧‧主作業系統
152‧‧‧中介程序
153‧‧‧虛擬機程序
160‧‧‧終端設備
Claims (9)
- 一種在單機中實現多人操作的控制系統,可同時提供多組的輸入或輸出周邊裝置進行操作,該控制系統包括:一橋接裝置,具有一第二網路接口與一異質介面接口,該異質介面接口連接一第二周邊裝置;以及一主控電腦,其係包括一儲存單元、一實體控制介面、一第一網路接口與一第一處理單元,該第一處理單元電性連接於該儲存單元、該實體控制介面與該第一網路接口,該儲存單元存儲一主作業系統與一虛擬機程序,該實體控制介面電性連接於一第一周邊裝置,該第一網路接口連接該橋接裝置的該第二網路接口,該第一處理單元運行該主作業系統,該主作業系統接收一第一操作命令,由該主作業系統透過該實體控制介面驅動該第一周邊裝置;其中,該第一處理單元運行該虛擬機程序並產生一虛擬機器,在該虛擬機器中運行一虛擬作業系統,該虛擬機程序將該虛擬機器的一虛擬網路接口映射至該第一網路接口,該虛擬作業系統中運行一中介程序,該中介程序用於偵測該橋接裝置,並根據該橋接裝置的種類對該虛擬作業系統生成對應該異質介面接口的一虛擬控制介面,該中介程序對所接收的一第二操作命令轉換為網路封包,該中介程序並透過該第一網路接口驅動該第二周邊裝置。
- 如請求項1所述之在單機中實現多人操作的控制系統,其中更包括一終端設備,該終端設備網路連接於該虛擬機器與該虛擬作業系統,該終端設備透過該虛擬作業系統取得該虛擬控制介面用於連接該橋接裝置與該異質介面接口,使得該終端設備向該第二周邊裝置發出該第二操作命令。
- 如請求項1所述之在單機中實現多人操作的控制系統,其中該中介程序透過該第一網路接口發出一設備搜尋命令,該設備搜尋命令用於搜尋網路中的該橋接裝置,該橋接裝置接收該設備搜尋命令後,該橋接裝置向該虛擬機器發出該識別資訊。
- 如請求項3所述之在單機中實現多人操作的控制系統,其中該中介程序根據所接收的該識別資訊建立一位址空間與多個連線通道,該連線通道 用於傳輸該操作指令的一資料偏移量。
- 如請求項4所述之在單機中實現多人操作的控制系統,其中該中介程序根據該些連線通道對該第一操作命令分段並將每一分段封裝為一第一網路封包,該主控電腦透過該第一網路接口向該橋接裝置發送該些第一網路封包。
- 如請求項1所述之在單機中實現多人操作的控制系統,該橋接裝置接獲該第二周邊裝置所返回的一回應訊息,該橋接裝置根據該些連線通道對該回應訊息分段並將分段結果輸出為多個第二網路封包,該橋接裝置將該些第二網路封包傳送至該主控電腦。
- 一種在單機中實現多人操作的控制方法,其係包括以下步驟:一主控電腦電性連接一第一周邊裝置;該主控電腦網路連接於一橋接裝置,該橋接裝置更電性連接一第二周邊裝置;該主控電腦中生成至少一虛擬機器,並在該虛擬機器上運行一虛擬作業系統;由該主控電腦的一虛擬機程序監控該虛擬機器的網路傳輸,並將該虛擬機器的一虛擬網路接口所傳輸的網路封包轉發至該主控電腦的一第一網路接口;由該主控電腦向該第一周邊裝置發送一第一操作命令;該虛擬機器將所接收的一第二操作命令轉換為一第一網路封包;以及該虛擬機器透過該虛擬網路接口與該第一網路接口向該第二周邊裝置發送具有該第二操作命令的該些第一網路封包。
- 如請求項7所述之在單機中實現多人操作的控制系統,其中在該虛擬機器發送該第二操作命令的步驟中更包括:於該虛擬機器中運行一中介程序;該中介程序根據所接收的該識別資訊建立一位址空間與多個連線通道;以及由該中介程序根據該些連線通道的數量對該第二操作命令進行切分,取得每一分段結果的一資料偏移量。
- 如請求項7所述之在單機中實現多人操作的控制系統,其中該第二周邊裝置接收該第二操作命令後,該第二周邊裝置更執行以下步驟:該第二周邊裝置執行該第二操作命令,並輸出一回應訊息至該橋接裝置;該橋接裝置根據該些連線通道的數量對該回應訊息進行分段,並對每一分段的結果轉換並輸出為多個第二網路封包;以及將該些第二網路封包發送至該虛擬機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103118571A TWI534623B (zh) | 2014-05-27 | 2014-05-27 | 在單機中實現多人操作的控制系統與方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103118571A TWI534623B (zh) | 2014-05-27 | 2014-05-27 | 在單機中實現多人操作的控制系統與方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201544956A TW201544956A (zh) | 2015-12-01 |
TWI534623B true TWI534623B (zh) | 2016-05-21 |
Family
ID=55407084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103118571A TWI534623B (zh) | 2014-05-27 | 2014-05-27 | 在單機中實現多人操作的控制系統與方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI534623B (zh) |
-
2014
- 2014-05-27 TW TW103118571A patent/TWI534623B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201544956A (zh) | 2015-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540312B2 (en) | Scalable pooled NVMe storage box that comprises a PCIe switch further connected to one or more switches and switch ports | |
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
EP3242217B1 (en) | Systems and methods for flexible hdd/ssd storage support | |
US11556491B2 (en) | Data transmission method and apparatus used in virtual switch technology | |
WO2014032233A1 (zh) | 虚拟机热迁移的系统和方法 | |
WO2018019262A1 (zh) | 云桌面系统、云桌面、云终端及组播方法 | |
WO2015014198A1 (en) | Data packet processing | |
US20110261686A1 (en) | Priority Pause (PFC) in Virtualized/Non-Virtualized Information Handling System Environment | |
US20150113112A1 (en) | Managing Network Connection of a Network Node | |
WO2019047843A1 (zh) | 用于传输数据处理请求的方法和装置 | |
CN104021069A (zh) | 基于分布式虚拟机系统的软件性能测试的管理方法和系统 | |
US9654421B2 (en) | Providing real-time interrupts over ethernet | |
US11736403B2 (en) | Systems and methods for enhanced autonegotiation | |
US10931601B2 (en) | Method and apparatus for conditional broadcasting of network configuration data | |
US10700978B2 (en) | Offloading at a virtual switch in a load-balanced group | |
TWI534623B (zh) | 在單機中實現多人操作的控制系統與方法 | |
TW201701152A (zh) | 網路伺服系統 | |
US20240154874A1 (en) | Bare metal detection method and system, and related component | |
CN104090650A (zh) | 在单机中实现多人操作的控制系统与方法 | |
TWM492465U (zh) | 在單機中實現多人操作的控制系統 | |
US20220247830A1 (en) | Proxy management controller system | |
KR101659580B1 (ko) | 가상 데스크탑 인프라 제공 장치 및 방법 | |
JP6317833B1 (ja) | 監視システム、監視方法、情報処理装置および監視プログラム | |
CN117331707A (zh) | 数据传输系统、方法及计算设备 | |
JP2009032235A (ja) | 単一の識別コードでインターネットおよび磁気記憶装置アクセスサービスを提供するハードディスクレス型コンピュータシステム、およびそのデータ送受信方法 |