乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      架構物聯(lián)網(wǎng):一種新的解決方案

       quasiceo 2016-01-22

      幾周前我們在捷克的Linux大會“OpenAlt”上提出了這樣的觀點:物聯(lián)網(wǎng)(IoT)是基于微服務的。我們打算覆蓋所有實現(xiàn)層級,將難題放到一起。也就是說,使用所有從邊緣設備中所收集的數(shù)據(jù),經(jīng)過數(shù)據(jù)集成與分析之后,得出完整的物聯(lián)網(wǎng)解決方案。

      物聯(lián)網(wǎng)架構

      下面的架構圖是對我們觀點的高度概括。其中,很容易找到與物聯(lián)網(wǎng)網(wǎng)關連接的所謂邊緣設備。

      一般情況下,網(wǎng)關會將設備所傳輸?shù)娜魏斡布c供應商特定協(xié)議轉化為一致而更易集成的東西,方便在集成時使用,類似TCP和任何頂端的標準化信息協(xié)議之類的。

      一直只有一個網(wǎng)關嗎?這個網(wǎng)關只使用硬件特定協(xié)議嗎?兩者的答案都是否定的。在不同位置上可能會有各種類型的多個網(wǎng)關,如果邊緣設備足夠智能的話,其中一些甚至使用的是TCP協(xié)議。更重要的是負責數(shù)據(jù)聚合的網(wǎng)關,其邏輯功能可能就是簡單的路由器與消息轉換器。

      再來看集成組件,也是核心業(yè)務邏輯所在之處。這個架構類似于優(yōu)秀的經(jīng)典SOA(服務導向架構)。這里可以/應該使用SOA原則。

      稍后,集成組件可以與復雜的系統(tǒng)(如JBoss業(yè)務流程管理系統(tǒng))進行通訊,并進行決策與高等數(shù)據(jù)分析。
      圖片描述

      那么網(wǎng)關與集成組件之間具體有什么不同呢?我們在其原理中提過這種區(qū)別。不過在具體的實現(xiàn)上,是否有什么不同呢?

      令人驚訝的是,并沒有區(qū)別。使用我們的辦法,通過Bulldog、SilverspoonSilverWare所提供的微服務實現(xiàn)工具,兩者實現(xiàn)的基礎結構模塊完全相同。

      想要區(qū)分特定微服務的含義,有多個維度的抽象。其中包括數(shù)據(jù)協(xié)議(低級硬件協(xié)議、簡單的信息傳遞、TCP等),服務層(也就是來自優(yōu)秀經(jīng)典SOA架構)以及特定服務所需的計算能力。

      正是如此:微服務的目的及其規(guī)范是在系統(tǒng)創(chuàng)建時由開發(fā)者設定的??梢哉f微服務就像是干細胞。微服務與干細胞一樣,是根據(jù)所使用的地方以及用法來發(fā)揮具體功用的。

      概念

      我們?yōu)槭裁磿J為自己的解決方案“正確”呢?

      首先,我們希望覆蓋所有級別的抽象。我們有物聯(lián)網(wǎng)架構所有層面的組件與開發(fā)工具。將傳感器與Arduino相連很有趣,但下一步是什么呢?如何整合才能存儲大數(shù)據(jù)并執(zhí)行分析呢?

      其次,我們是開放的,依靠現(xiàn)有標準,只是協(xié)助集成現(xiàn)有的解決方案。因此,無需學習全新的東西,只要理解單個結構模塊,任何人都可以馬上動手去開發(fā)復雜的系統(tǒng)。同時,我們嘗試避免供應商的封鎖。所有的相關組件、系統(tǒng)、設備等任何東西都可以很容易地替換。

      最后,我們希望達到最簡,可以用簡單、容易理解的服務來構建復雜的系統(tǒng)。這些服務可以在基于ARM的設備上與云端小型虛擬機上運行。啟動更多服務實例可以讓性能更強,因此擴展也很簡單。

      實現(xiàn)

      我們的解決方案包括三個要素。

      使用Bulldog庫來控制以及與邊緣設備通訊。這個庫提供了一定程度的抽象,允許開發(fā)者修改邊緣設備與ARM board而無需重構代碼。

      為了將代碼轉化成有意義的協(xié)議,我們使用了Silverspoon——這是一套Apache Camel組件。這些提供了設備特定協(xié)議與外部世界間的網(wǎng)關。我們認為,鑒于其具有路由功能、可擴展性、集成性及發(fā)送消息的能力,Apache Camel非常適合扮演物聯(lián)網(wǎng)網(wǎng)關。因此我們在Apache Camel中加入了Bulldog組件。

      為了發(fā)展網(wǎng)關、集成與業(yè)務邏輯,我們創(chuàng)建了SilverWare——這是一個極簡的微服務平臺。微服務可以按照Apache Camel路由、CDI組件、信息隊列/主題、Vert.x 還有很多其他的(其中一些還沒有實現(xiàn))來進行創(chuàng)建。因此在你的公司里,這些結構模塊的任何一個都可能已經(jīng)存在了,而且能夠很容易地轉換或直接按照微服務部署。讓我們受益的還有:簡單的Maven項目依賴、一些容易理解的注釋、小型可執(zhí)行jar文件、部署以創(chuàng)建Docker鏡像的能力。

      為了方便分析,我們推薦用NoSQL或時序數(shù)據(jù)庫(比如InfluxDB)現(xiàn)代化分析工具(比如ElasticSearch、Grafana、Kibana)來進行集成。

      此外,一個完整的系統(tǒng)肯定應當包含以業(yè)務流程與規(guī)則的形式存在的高級業(yè)務邏輯。為此,用JBoss業(yè)務流程管理系統(tǒng)來集成也是可行的。

      應用架構如下圖,點擊查看源代碼
      圖片描述

      原文鏈接:Architecting the Internet of Things


      (責編/錢曙光,關注架構和算法領域,尋求報道或者投稿請發(fā)郵件qianshg@csdn.net,交流探討可加微信qshuguang2008,備注姓名+公司+職位)

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多