《連載 | 物聯網架構ServerSuperIO教程》1.4種通訊模式機制。附小文:招.NET開發,結果他轉JAVA了,一切都是為了生活

來源:互聯網
上載者:User

標籤:nbsp   png   產品   指令   tty   優先順序   匹配   聊天記錄   物聯網架構   

 

最近學習一個架構,感謝網名:唯笑志在 分享  

原博主原地址:http://www.cnblogs.com/lsjwq/

一、感慨

      上大學的時候,沒有學過C#,花了5塊錢在地壇書市買了一本教程,也就算是正式入行了。後來深造,學過JAVA,後來迫於生計,打算轉JAVA了。後來考慮考慮,自己寫的架構還是有很大發展餘地,後來還是在C#的陣地上堅持了下來。從一開始的雛形,到SuperIO的產品化,再到伺服器端的ServerSuperIO,也是慢慢演化而來。後期打算把ServerSuperIO移植到嵌入式裝置上,以及完善開發文檔。本來不想提這些,但是今天打算招一個C#開發人員(B/S方面),是群友,可是人家要轉JAVA開發了,也只能說緣分不到,無法在一起做事,後面附一些聊天記錄,供大家職業發展參考。

 

二、答疑

        有人問,你這個架構和SuperSocket、netty......有什麼區別?ServerSuperIO是通訊架構不?是;ServerSuperIO支援高並發不?理論上支援;ServerSuperIO支援跨平台不?在Ubuntu上跑過。但是這些並不是ServerSuperIO起初設計的初發點,它繼承了SuperIO的設計思想,後期才逐步的向服務端發展,加強通訊能力、跨平台等等。

        ServerSuperIO是一個物聯網架構,首先是以裝置(感應器)為核心構建的架構,裝置(感應器)的協議無關性,可以隨意掛載裝置驅動在架構下運行。所以ServerSuperIO本質上協調裝置驅動(協議)、IO通道(COM和NET)、運行機制(模式)之間的關係,使之無縫結合、運行。

        一直在工業領域混,做整合系統、遠程監測監控等等,所以ServerSuperIO不僅僅是一個通訊架構,更多的是結合了工作實踐經驗,本著能夠解決實質問題。

 

三、運行控制模式

1、輪詢模式

    這是架構最早的運行模式,串口和網路通訊時都可以使用這種控制模式。當有多個裝置 串連到通訊平台時,通訊平台會輪詢調度裝置進行通訊任務。某一時刻只能有一個裝置發送請求命令、等待接收返回資料,這個裝置完成發送、接收(如果遇到逾時 情況,則自動返回)後,下一個裝置才進行通訊任務,依次輪詢裝置。

    應用情境是這樣的,服務端與裝置進行通訊遵循呼叫應答的方式,也就是IO可用的情況下,服務端先發起通訊命令請求,裝置根據命令資訊,檢驗通過後返回資料給服務端。這種通訊模式很好理解,每個裝置的通訊都遵循排隊的原則。但是如果某個裝置的命令需要及時發送,怎麼辦?ServerSuperIO架構是支援裝置優先順序別調度的,例如:對某個裝置要進行即時的檢測,需要連續發送命令,那麼就需要對裝置進行進階別設定,發送請求資料命令。

    通訊結構如:

 

2、併發模式

    網路通訊的情況下,輪詢模式顯然效率比較低,那麼可以採用併發模式。並發通訊模式是集中發送給所有裝置請求指令,架構是採用迴圈同步方式發送請求命令給每個IO通道對應的裝置,當然也可以採用並行非同步方式集中發送請求命令。硬體裝置接收到指令後進行校正,校正成功後返回對應指令的資料,通訊平台非同步監聽到資料資訊後,進行接收操作,然後再進行資料的分發、處理等。

    那麼這裡就涉及到IO通道接收到的資料是非同步接收的,如何才能和裝置驅動匹配上(把資料分發到裝置驅動上),這是能過DeviceCode和DeviceIP兩種方式來實現的。DeviceCode可以是裝置地址或是裝置編碼,DeviceIP是預先設定好的參數,要求終端裝置的IP地址是固定的。

    通訊結構如:

 

3、自控模式

    只有網路通訊時可以使用這種控制模式。自控通訊模式與並發通訊模式類似,區別在於發送指令操作交給裝置驅動本身進行控制,或者說交給二次開發人員,二次開發人員可以通過時鐘定時用事件驅動的方式發送指令資料。硬體設 備接收到指令後進行校正,校正成功後返回對應指令的資料,通訊平台非同步監聽到資料資訊後,進行接收操作,然後再進行資料的分發、處理等。

    自控通訊模式可以為二次開發人員提供精確的定時請求即時資料機制,使通訊機制更靈活、自主,如果多個裝置驅動使用同一個IO通道的話,時間控制會有偏差。

    同樣涉及到資料的分發,和併發模式一樣。

    通訊結構如:

 

4、單例模式

    只有網路通訊時可以使用這種控制模式。在一個服務執行個體內只能有一個裝置驅動,相當於一個裝置驅動對應著N多個硬體裝置終端。更適合通訊的資料協議有固定的標準,以命令關鍵字處理不同的資料。適用於高並發的硬體終端裝置主動上傳資料,伺服器端根據資料資訊進行處理和返回相應的資料。

    通訊結構如:

 

四、招.NET開發,結果他轉JAVA了,一切都是為了生活

     最近工作比較忙,開發、解決問題、招聘......,連看手機的時間都沒有了,吃飯也是匆匆了事。為了更好的推進平台化建設,確實需要人,也為將來儲備人才,在群裡和網友聊聊,本來小夥前期還是挺感興趣的。今天問問他的想法,結果打算轉JAVA了,也是我文章前頭感慨的原因。我為了生存,他也為了生存,都是可以理解的。

     聊天記錄如下,請參考:

《連載 | 物聯網架構ServerSuperIO教程》1.4種通訊模式機制。附小文:招.NET開發,結果他轉JAVA了,一切都是為了生活

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.