遠端串列設備的資源切換的處理系統與方法與流程
2023-12-12 13:02:12 3

一種遠端設備的資源切換的處理系統與方法,特別有關於一種遠端串列設備的資源切換的處理系統與方法。
背景技術:
對於計算機而言,串列通信(serialcommunication)是早期被應用在長距離的設備通信中。由於串列通信的穩定性與泛用性,因此現今仍有許多設備仍支持串列通信,例如:條碼讀取器(barcodereader)、印表機或收銀機等設備。
為能同時提供多臺計算機控制同一臺串列設備(例如:印表機),因此有廠商開發出代理伺服器的架構。多臺計算機通過串列電纜連接至代理伺服器,將由代理伺服器調度其中一計算機並連線至串列設備。而其他未能連線的計算機所發出的操作要求將會被暫存於代理伺服器的緩存空間中。由於緩存空間有限,因此過多的操作要求可能會被代理伺服器丟棄。
另外隨著網路的普及化,雖然已有廠商提出結合網路的串列通信設備。一般而言,串列通信轉換為網路傳輸可為兩類:一種是在串列設備中內建網路封包的轉換電路,另一種是在串列設備外設置網路對串列的轉換裝置。雖然所述兩種轉換的方式可以實現連接串列設備更遠距離的傳輸與操作。
但串列通信轉換為網路傳輸的過程中仍存在多項問題。特別是多臺計算機透過網路連線至串列設備時,由於串列設備只能與單一計算機進行通訊與操作。因此當有任一計算機與串列設備連線時,其他的計算機是無法與已連線的串列設備發出任何連線要求或操作要求。而且在乙太網路的傳輸架構中,串列設備在無法處理其他的操作要求時,串列設備將會丟棄其他的操作要求的網路封包。這樣一來,其他未連線的計算機所發出的操作要求都會被串列設備忽視。換言之,其他未連線的計算機的操作要求將會被丟棄,而且無錯誤返回的情況下計算機無法再發送次一個操作要求。
技術實現要素:
本申請所要解決的技術問題在於調配區域網路中的多計算機對一臺串列裝置的共享資源處理。本申請的遠端串列設備的資源切換的處理系統包括串列設備、網路串列裝置、第一計算機與第二計算機。串列設備用於接收操作命令或發送運行結果;網路串列裝置包括運算單元、網路介面與串列介面,運算單元電性連接於網路介面與串列介面,網路串列裝置轉發操作命令至串列設備,或接收來自串列設備的運行結果,運算單元透過網路介面傳輸命令封包或結果封包,運算單元將命令封包轉換為操作命令,運算單元將運行結果轉換為結果封包;第一計算機包括第一處理單元、第一網路介面與第一儲存單元,第一處理單元電性連接於第一網路介面與第一儲存單元,第一處理單元運行第一儲存單元中的第一代理程序,第一代理程序用於將操作命令轉換為命令封包或將結果封包轉換為運行結果,第一網路介面傳輸命令封包與結果封包;第二計算機包括第二處理單元、第二網路介面與第二儲存單元,第二處理單元電性連接於第二網路介面與第二儲存單元,第二計算機偵測網路串列裝置的運作狀態;網路串列裝置接獲來自於第一計算機的連線要求後,網路串列裝置廣播從閒置狀態切換為忙碌狀態,網路串列裝置接收來自第一計算機的命令封包並轉換為操作命令發送至串列設備。
本申請另提出一種遠端串列設備的資源切換的處理方法,所述處理方法包括以下步驟:第一計算機與第二計算機網路連結於網路串列裝置;於網路串列裝置於閒置狀態時並接受來自第一計算機的連線要求,網路串列裝置從閒置狀態切換為忙碌狀態;第一計算機將操作命令轉換為命令封包,並將命令封包傳送至網路串列裝置;當網路串列裝置為忙碌狀態,第二計算機暫存所欲傳送的命令封包;網路串列裝置接收所有命令封包後,網路串列裝置將命令封包轉換為操作命令;網路串列裝置將操作命令發送至串列設備;由串列設備回應運行結果至網路串列裝置,網路串列裝置將運行結果轉換為結果封包;網路串列裝置傳送結果封包至第一計算機;完成傳送結果封包後,網路串列裝置從忙碌狀態切換為閒置狀態。
與現有技術相比,本申請的遠端串列設備的資源切換的處理系統可供多臺計算機透過網路操控單一的串列設備,並保證未連線的計算機所發出的操作要求可以送達串列設備,使串列設備執行每一個計算機所發出的操作要求並回應操作結果。此外,本申請的網路串列裝置不需存儲各計算機所發出的操作要求,進而確保所有計算機的操作要求可以確定被執行。
當然,實施本申請的任一產品必不一定需要同時達到以上所述的所有技術效果。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。
第1a圖係為本申請的系統架構示意圖。
第1b圖係為本申請的系統細部示意圖。
第2圖係為本申請的運作流程示意圖。
第3圖係為本申請的網路串列裝置與各計算機的運作示意圖。
第4a圖係為本申請的各計算機的操作過程示意圖。
第4b圖係為本申請的各計算機的操作過程示意圖。
第4c圖係為本申請的各計算機的操作過程示意圖。
具體實施方式
以下請配合附圖及實施例來詳細說明本申請的實施方式,藉此對本申請如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
請參考圖1a與圖1b所示,其系分別為本申請的系統架構與系統細部示意圖。本申請的遠端串列設備110的資源切換的處理系統包括串列設備110、網路串列裝置120、第一計算機210與第二計算機220。串列設備110電纜連接於網路串列裝置120。串列設備110可以是但不限定為條碼讀取機(barcodereader)、印表機(printer)、收銀機臺(pointofsales)或支援串列傳輸協議(eia-rs-232)的電子設備。網路串列裝置120網路連接第一計算機210與第二計算機220。在本申請中計算機數量並非僅局限兩計算機為說明兩不同的運作狀態所以分別指派為第一計算機210與第二計算機220。
網路串列裝置120包括運算單元121、網路介面122與串列介面123。網路串列裝置120轉發操作命令311至串列設備110,或接收來自串列設備110的運行結果312。運算單元121電性連結網路介面122與串列介面123。網路介面122透過乙太網路或無線網路連接於第一計算機210與第二計算機220。運算單元121透過網路介面傳輸命令封包313或結果封包314。運算單元121將命令封包313轉換為操作命令311,或者是運算單元121也可將運行結果312轉換為結果封包314。
第一計算機210包括第一處理單元211、第一網路介面212與第一儲存單元213。第一處理單元211電性連接於第一網路介面212與第一儲存單元213。第一儲存單元213中至少存儲第一代理程序214。第一代理程序214用於將操作命令311轉換為命令封包313或將結果封包314轉換為運行結果312。第一處理單元211透過第一網路介面212偵測網路串列裝置120的運作狀態。
第二計算機220包括第二處理單元221、第二網路介面222與第二儲存單元223。第二處理單元221電性連接於第二網路介面222與第二儲存單元223。第二儲存單元223中至少存儲第二代理程序224。第二代理程序224用於將操作命令311轉換為命令封包313或將結果封包314轉換為運行結果312。第一代理程序214與第二代理程序224係為相同程序。第二處理單元221透過第二網路介面222偵測網路串列裝置120的運作狀態。第一計算機210與第二計算機220除了可以是個人電腦外,也可以是具有安裝所述代理程序的行動裝置等。
請配合圖2與圖3,其系分別為本申請的網路串列裝置與各計算機的運作流程說明。本申請的遠端串列設備的資源切換的處理方法包括以下步驟:
步驟s210:第一計算機與第二計算機網路連結於網路串列裝置;
步驟s220:於網路串列裝置於閒置狀態時並接受來自第一計算機的連線要求,網路串列裝置從閒置狀態切換為忙碌狀態;
步驟s230:第一計算機將操作命令轉換為命令封包,並將命令封包傳送至網路串列裝置;
步驟s240:當第二計算機偵測網路串列裝置為忙碌狀態,第二計算機暫存所欲傳送的命令封包;
步驟s250:網路串列裝置接收所有命令封包後,網路串列裝置將命令封包轉換為操作命令;
步驟s260:網路串列裝置將操作命令發送至串列設備;
步驟s270:由串列設備回應運行結果至網路串列裝置,網路串列裝置將運行結果轉換為結果封包;
步驟s280:網路串列裝置傳送結果封包至第一計算機;以及
步驟s290:完成傳送結果封包後,網路串列裝置從忙碌狀態切換為閒置狀態。
在本申請中第一計算機210與第二計算機220代表網路串列裝置120於不同運作狀態時的各計算機的對應情況,對於實際情況可以是多臺的第二計算機220於等待網路串列裝置120的連線。在第3圖中縱軸表示時間,橫軸代表各裝置的操作。
首先,第一計算機210與第二計算機220經由網路連接於網路串列裝置120,且網路串列裝置120另連接串列設備110。串列設備110根據種類的不同,因此串列設備110可能會產生操作後的結果回覆。例如:條碼讀取機刷取條碼後會傳回相關訊息至計算機,而印表機僅會單向的接收計算機的資料。
網路串列裝置120於啟動時,網路串列裝置120的運作狀態將是設定為閒置狀態。當網路串列裝置120接受任一計算機的連線要求後,網路串列裝置120將會從閒置狀態變換為忙碌狀態。假設網路串列裝置120於閒置狀態中,由第一計算機210發出連線的要求。網路串列裝置120接受第一計算機210的連線要求,網路串列裝置120的運作狀態將由閒置狀態切換為忙碌狀態。
在網路串列裝置120於忙碌狀態中,網路串列裝置120可以主動的發送訊息通知至各計算機,或由各計算機輪詢時在由網路串列裝置120逐一回應當前的運作狀態。在忙碌狀態中的網路串列裝置120將不會接受其他計算機的連線要求(意即僅與第一計算機210傳輸資料)。
網路串列裝置120確認與第一計算機210連線後,第一計算機210的第一代理程序214會顯示串列設備110已連接的畫面。第一代理程序214將欲發送至串列設備110的操作命令311轉換為多個網路封包,在此將這些網路封包定義為命令封包313。第一計算機210將命令封包313傳送至網路串列裝置120。網路串列裝置120接獲所有的命令封包313後,網路串列裝置120將命令封包313轉換為操作命令311並轉發至串列設備110。
串列設備110完成操作命令311後,串列設備110將回覆運行結果312至網路串列裝置120。網路串列裝置120將運行結果312轉換為多個網路封包,在此對前述的網路封包定義為結果封包314。網路串列裝置120將結果封包314傳送至第一計算機210。當網路串列裝置120完成發送命令封包313後,網路串列裝置120將從忙碌狀態切換為閒置狀態。
當網路串列裝置120於忙碌狀態(系與第一計算機210連線)且第二計算機220欲發出操作命令311時,第二代理程序224會將欲發送的命令封包313暫存於第二儲存單元223中,請參考圖4a~圖4c所示。在圖4a中,第二儲存單元223可以以佇列的方式將命令封包313依序存入。於此同時,第二代理程序224也會持續監聽是否有新的操作命令311被輸入。若有新的操作命令311輸入時,仍是由第二代理程序224將新的操作命令311轉換為命令封包313並儲存於第二儲存單元223中。第二儲存單元223除了可以實體的硬碟外,也可以透過靜態記憶體或快取記憶體等方式實現。
由於第二代理程序224可以根據操作命令311的數量進一步決定暫存空間的容量大小。當網路串列裝置120從忙碌狀態切換為閒置狀態時,網路串列裝置120可以接受第二計算機220的連線要求。第二計算機220將暫存的命令封包313依序的傳送至網路串列裝置120並轉換為操作命令311後發送至串列設備110,如圖4c所示。
在完成操作命令311發送至串列設備110後,第二計算機220除了可以以手動的方式中斷與網路串列裝置120的連線外,也可以透過定時斷線的方式中斷與網路串列裝置120的連線。定時斷線可以是由第二代理程序224接收運行結果312後中斷,也可以設定為經過預設時段過後未有任何命令封包313發出作為中斷觸發的方式。藉此避免任一計算機長期佔用網路串列裝置120,使得其他計算無法取得相關的資源。
本申請的遠端串列設備的資源切換的處理系統可供多臺計算機透過網路操控單一的串列設備,並保證未連線的計算機所發出的操作要求可以送達串列設備,使串列設備執行每一個計算機所發出的操作要求並回應操作結果。此外,本申請的網路串列裝置不需存儲各計算機所發出的操作要求,進而確保所有計算機的操作要求可以確定被執行。
所述裝置與前述的方法流程描述對應,不足之處參考上述方法流程的敘述,不再一一贅述。上述說明示出並描述了本申請的若干優選實施例,但如前所述,應當理解本申請並非局限於本文所披露的形式,不應看作是對其他實施例的排除,而可用於各種其他組合、修改和環境,並能夠在本文所述發明構想範圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本申請的精神和範圍,則都應在本申請所附權利要求的保護範圍內。