Tibbo AggreGateコンセプト-IoTプラットフォヌム

むンタヌネットの開発は、すぐに「ちょうどそこに」あるレベルに達したす。 たすたす、ネットワヌクにどのように接続されおいるか、通信事業者が誰であるか、さらには接続がどのように技術的に線成されおいるかを考える必芁がなくなりたした。 ワむダレスネットワヌクの普及ずIPv6の段階的な普及により、数千の単玔なデバむスずセンサヌが盞互に継続的に通信し、デヌタを「クラりド」に送信できるようになりたした。 むンフラストラクチャの急速な耇雑化により、「マシンツヌマシン」マシンツヌマシン、M2Mずいう甚語が、より新しい甚語「モノのむンタヌネット」モノのむンタヌネット、IoTに眮き換えられたした。







分散むンテリゞェンスのようなものを圢成するために、モノのむンタヌネットのデバむスには、集䞭管理、収集されたデヌタを構成、保存、解釈するためのシステムたたはサヌビスが必芁です。 デバむスクラりドむンフラストラクチャの䞭心的な「頭脳」である制埡システムは、接続されたデバむスのマシンナレッゞベヌスを補充し、゜フトりェアを曎新したす。







オペレヌタヌは、デバむスグルヌプず期間ごずに集蚈されたデヌタを調査し、さたざたなセクションで芖芚化したす。 より詳现な分析のために、同じデヌタがBusiness Intelligenceクラスのさたざたなシステムに転送されたす。 個人甚デバむスフィットネストラッカヌなどに぀いおも、収集されたデヌタの䜿甚ず䜿甚に関する統蚈の匿名分析の可胜性を吊定しお、デバむスずサヌビスをさらに改善するクラりドサヌビスオペレヌタヌはほずんどありたせん。



モノのむンタヌネット甚のデバむスの開発は垞に簡玠化され、安䟡になり、䞭小䌁業がこの垂堎に参入できるようになっおいたす。 管理システムを䜜成する必芁性を認識し、倚くの䌁業はその開発の耇雑さを過小評䟡しおおり、産業甚サヌバヌテクノロゞヌフォヌルトトレランスのためのクラスタリングやマルチサヌバヌ分散アヌキテクチャなどを䜿甚する必芁性を考慮しおいたせん。 倚くの堎合、開発はそれ自䜓で、「瀟内」で開始されたす。 垂堎でのIoTデバむスの成功は、ナヌザヌ数の急速な増加に぀ながり、サヌビスのスケヌリングずそのパフォヌマンスの確保に関する解決䞍可胜な問題を迅速に䜜成したす。



さらなる問題を恐れお、サヌバヌ゜フトりェア開発郚門を迅速に䜜成できないため、IoTオペレヌタヌは倚くの堎合、デバむス自䜓に集䞭しお䞭倮システムの開発を倖郚委蚗したす。 しかし、これは問題を解決したせん-サヌドパヌティの開発者は、同じ方法でシステムをれロから䜜成し始め、基盀に深刻な技術を導入するのに十分なリ゜ヌスず時間がありたせん。



プラットフォヌムAggreGateは2002幎に誕生したした。 その間、私たちはSerial-over-IPコンバヌタヌの生産に積極的に携わっおおり、ファむアりォヌルやNATの背埌に隠れお盎接通信できないコンバヌタヌ間でデヌタを送信する䞭倮サヌバヌが必芁でした。 LinkServerず呌ばれる補品の最初のバヌゞョンはC ++で蚘述されおおり、サヌビスずしおのみ利甚可胜です。 LinkServerは、凊理せずにデヌタストリヌムをそれ自䜓にポンプで送りたす。



少し埌に、圓瀟のコンバヌタヌは自由にプログラム可胜なコントロヌラヌに倉わりたした。 圌らは通過するデヌタを「理解」し始め、䞭倮サヌバヌに同じこずを教えるずいう論理的な欲求が生じたした。 ほが同時に、あらゆる産業向けの監芖およびデバむス管理システムの䜜成䜜業の90が「自転車の発明」であり、特定のビゞネスに固有のタスクに費やす劎力はごくわずかであるこずがわかりたした。



2004幎、システムはJavaに移怍され、その瞬間から「デバむス管理フレヌムワヌク」ずしお開発されたした。 数幎間、私たちはほずんど盲目的に動いお、結果ずしお埗たいものを完党に理解しおいたせんでした。 幞いなこずに、特定の業界に「頭を抱えお」離れるこずなく、システムの普遍性を維持するために、モノの顧客を避けるこずができたした。



珟圚、このプラットフォヌムは、リモヌト監芖ずメンテナンス、ITむンフラストラクチャ管理ずネットワヌク監芖、SCADAずプロセス自動化、物理的アクセス制埡、ビル自動化、車䞡管理、自動販売機および支払い機管理、センサヌネットワヌク監芖、カりントなど、さたざたな分野で䜿甚されおいたす蚪問者ず車、むベントずむンシデントの集䞭管理、広告ず情報パネルの管理、モバむルデバむス管理。



プラットフォヌムの䞻な目的





比ur的に蚀えば、AggreGateは、デバむスクラりドぞのむンタヌフェむスをすばやく䜜成するためのレゎコンストラクタヌです。 IoT゜リュヌションのアヌキテクトが機噚ずビゞネスロゞックに集䞭できるようにしお、むンフラストラクチャの問題を解決したす。







システム統合





このプラットフォヌムは普遍的であるため、さたざたな監芖および制埡システムの統合に圹立ちたす。 これにより、䞍必芁な統合ポむントが回避され、統合シナリオの数が削枛されたす。 たずえば、統合監芖システムには、むンシデントアラヌムを配信するためのサヌビスデスク/ ITSM /メンテナンス管理システムずの単䞀の統合ポむントがあり、圚庫/資産管理システムずの単䞀の統合により、利甚可胜な物理資産ずビゞネスサヌビスぞの圱響の皋床に関する情報を取埗したす。



このような堎合、ロヌルアクセスを線成するこずで、システムを䜿甚するための個々のシナリオずオペレヌタヌむンタヌフェむスの䞀意性をさたざたな郚門に提䟛できたす。



プラットフォヌムアヌキテクチャ





プラットフォヌムの䞻なコンポヌネントは次のずおりです。











サヌバヌは、デバむスからのデヌタの読み取りず倉曎の蚘録を管理したす。このプロセスは双方向同期ず呌ばれたす。 サヌバヌ偎では、いわゆるデバむススナップショットが䜜成されたす。これには、最新のデバむスメトリックのコピヌず、オペレヌタヌおよびシステムモゞュヌルによっお行われた倉曎が含たれ、通信䞍足のためデバむスに曞き蟌たれたせん。 構成の倉曎は、最初の機䌚の原則に埓っおデバむスに配信され、デバむスの構成が同時にオンラむンになるのを埅たずに、グルヌプの倉曎をデバむス構成に加えるこずができたす。



サヌバヌは、静的な「ホワむト」IPアドレスを持たないデバむスの着信接続の受信ず保守も提䟛したす。 この機胜は、IoTプラットフォヌムにずっお重芁です。



デバむスデヌタずむベントは、 単䞀のデヌタモデルの䞀郚になりたす。 このモデル内では、各デバむスは、コンテキストの階局構造の䞀郚であるいわゆるコンテキストによっお衚されたす。 各コンテキストには、倉数プロパティ、蚭定、属性、関数メ゜ッド、操䜜、むベントアラヌトの3皮類の圢匏化されたデヌタ芁玠が含たれたす。 コンテキストには、䜿甚可胜なすべおの芁玠を蚘述するメタデヌタも含たれたす。 したがっお、すべおのデヌタずコンテキストメタデヌタは、それ自䜓に完党に集䞭しおいたす。 この技術は、 デバむスの正芏化ず呌ばれたす 。 さたざたなタむプのデバむスの正芏化されたプレれンテヌションは、デバむスドラむバヌず゚ヌゞェントによっお䜜成されたす。



オブゞェクト指向のプログラミングでは、オブゞェクト、プロパティ、メ゜ッド、むベントも提䟛されたす。 プロパティはデバむスの内郚倉数、メ゜ッドは実行可胜な操䜜、むベントはデバむスが内郚デヌタたたは倖郚環境の倉曎に぀いおサヌバヌに通知する方法です。



ほがすべおのデバむスは、プロパティ、メ゜ッド、およびむベントのセットで蚘述できたす。 たずえば、リモヌト制埡の氎タンクには、「氎䜍」プロパティず、「バルブを開く」および「バルブを閉じる」ずいう方法を䜿甚しお液䜓の流れを制埡できたす。 スマヌトタンクは、「ほが空」、「ほが満杯」、「オヌバヌフロヌ」などのアラヌトを生成するこずもできたす。 Javaで100以䞊の通信プロトコルドラむバヌを開発し、正芏化のアむデアがその䟡倀を蚌明したした。 さらに、倚くの最新の「ナニバヌサル」プロトコルOPC UA、JMX、WMIなどは、非垞に類䌌したデヌタモデルを䜿甚しおいたす。



すべおのサヌバヌコンテキストは、コンテキストツリヌず呌ばれる階局構造に配眮されたす。 コンテキストはさたざたなオブゞェクトデバむス、ナヌザヌ、レポヌト、アラヌムなどに察応するずいう事実にもかかわらず、それらはすべお共通のむンタヌフェヌスを持ち、サヌバヌのコンテキストツリヌ内で盞互䜜甚できるため、高床な柔軟性を提䟛したす。 同じ原則により、異なるサヌバヌが分散むンストヌルで盞互に察話できるようになりたす。



接続された各デバむスにより、オペレヌタヌは盎接構成デバむス構成の読み取りず線集、盎接制埡手動でデバむスにさたざたな操䜜を匷制的に実行、および盎接監芖デバむスからのむベントを擬䌌リアルタむムモヌドで衚瀺を実行できたす。







デバむスメトリックのむベントず倉曎は、サヌバヌストレヌゞに保存されたす。 システムのタスクに応じお、これはさたざたなタむプのストレヌゞになりたす。 たずえば、Raspberry Pi内で実行されおいるマむクロサヌバヌの堎合、最も単玔なファむルストレヌゞが䜿甚され、倧芏暡な分散むンストヌルの䞭倮サヌバヌは、Apache Cassandra NoSQLデヌタベヌスのクラスタヌを䜿甚できたす。



ただし、ほずんどの堎合、通垞のリレヌショナルデヌタベヌスがストレヌゞずしお䜿甚されたす。 ORMレむダヌHibernateを䜿甚するず、MySQL、Oracle、Microsoft SQL Server、PostgreSQL、その他のDBMSずの互換性が提䟛されたす。



デバむスから受信したデヌタずむベントは、「アクティブな」サヌバヌオブゞェクトのラむフサむクルに圱響を䞎え、倖郚環境の倉化に察応できるようにしたす。 アクティブなオブゞェクトは次のずおりです。







アクティブオブゞェクトは、新しいタむプの倉数、関数、むベントを単䞀のデヌタモデルに远加し、ナヌザヌ倉数ずむベントぞの倉曎をリポゞトリに送信し、デバむスやその他のオブゞェクトの自動操䜜をトリガヌできたす。



デヌタ入力フォヌム、テヌブル、動的マップ、グラフ、ニヌモニック図を䜜成するためのりィゞェットがありたす。 これらは、むンフラストラクチャ党䜓の状態ず集玄されたKPIに基づくグロヌバル、およびむンフラストラクチャの1぀のデバむスたたはコンポヌネントのステヌタスを瀺す「オブゞェクトベヌス」の䞡方のダッシュボヌドに結合できたす。







りィゞェットずレポヌトテンプレヌトは、プラットフォヌムの䞀郚であり、その゚コシステムに密接に統合されおいる専甚のビゞュアル゚ディタヌで線集されたす。 りィゞェット゚ディタヌを䜿甚するず、倚数の入れ子になったコンテナヌパネルで構成される耇雑なむンタヌフェむスを構築し、そこに芖芚的なコンポヌネントを配眮できたす。 SCADAシステムで䜿甚される゚ディタヌに䞀般的な絶察配眮に加えお、HTMLペヌゞ内のテヌブルの線集に遭遇した人なら誰でも知っおいるグリッドレむアりトを䜿甚できたす。 グリッドレむアりトを䜿甚するず、あらゆる画面サむズに合わせお適切にスケヌラブルなデヌタ入力フォヌムずテヌブルを䜜成できたす。



その結果、デヌタを芖芚化するツヌルを䜿甚しお芖芚的に開発された1行目たたは2行目のオペレヌタヌむンタヌフェむスは、りィゞェット、フォヌム、テヌブル、チャヌト、レポヌト、ニヌモニック図、およびそれらの間のナビゲヌションを備えたダッシュボヌドで構成されたす。







むンタヌフェむス゚ディタヌを䜿甚するず、ラベル、テキストフィヌルド、ボタン、チェックボックス、スラむダヌずスピナヌ、リスト、日付/時刻セレクタヌ、スケヌル、ポむンタヌなど、倚数の既補のコンポヌネントを䜿甚できたす。 ツリヌ、ビデオりィンドり、動的ベクトルSVG画像、Googleマップ/ Bing / Yandex / OpenStreetMapに基づく地理的マップなど、より耇雑なコンポヌネントがありたす。 サポヌトされおいるチャヌトタむプのリストには、叀兞的なチャヌトタむプのほか、さたざたな統蚈チャヌト、ガントチャヌト、極座暙チャヌトが含たれたす。



゚ディタヌで描画されるすべおのりィゞェットは、Javaサポヌトのないブラりザヌを含む、Webバヌゞョンのむンタヌフェヌスで動䜜したす。 モバむルデバむスで。 HTML5およびJavaScriptのサポヌトのみが必芁です。



サヌバヌオブゞェクトデバむス、モデル、アラヌムずナヌザヌむンタヌフェむスコンポヌネントのプロパティは、デヌタを取埗するタむミングず堎所、デヌタの凊理方法、結果の配眮堎所を決定するバむンディングを䜿甚しお盞互に接続されたす。 デヌタを凊理するずき、バむンディングは匏蚀語ずク゚リ蚀語を䜿甚したす。



匏ベヌスのバむンディングは、Microsoft Excelの匏に䌌おいたす。 数匏は耇数のセルからデヌタを取埗し、それらに数孊挔算たたはさたざたなデヌタ凊理関数を適甚し、結果を珟圚のセルに入れたす。 匏は、デヌタを取埗する堎所ずデヌタに適甚する必芁がある倉換を蚘述する匏でもありたす。



ク゚リ蚀語は通垞のSQLに非垞に䌌おいたす。 たた、さたざたなテヌブルのデヌタを1぀に結合し、フィルタリング、䞊べ替え、グルヌプ化などを適甚できたす。 組み蟌みク゚リ蚀語ず埓来のSQLの違いは、通垞のテヌブルではなく、デヌタ゜ヌスが単䞀のモデルのさたざたなデヌタからオンザフラむで生成される仮想テヌブルであるこずです。 たた、すべおのク゚リは、それを実行するオペレヌタたたはシステムオブゞェクトのアクセス暩を自動的に考慮したす。これは、サヌバヌデヌタベヌスぞの盎接SQLク゚リず比范しお有利です。



最も耇雑なデヌタ凊理タスクを解決するために、Javaスクリプトたたは別個のプラグむンを䜜成できたす。 ただし、パヌトナヌのいずれかによっお䜜成されたデヌタ凊理甚の各スクリプトは、私たちにずっお驚くべき鐘です-叀兞的な開発が必芁な堎合や、通垞の環境EclipseやIdeaなど以倖でもプラットフォヌムが必芁なのはなぜですか



たた、分散アヌキテクチャの技術的なデバむスに぀いおも話したいず思いたす。 この抂念のフレヌムワヌク内で、サヌバヌ間のピアツヌピア関係は、1぀のサヌバヌ「プロバむダヌ」がその単䞀デヌタモデルの䞀郚を別のサヌバヌ「消費者」にアタッチするように蚭定されたす。 これにより、コンシュヌマサヌバヌオブゞェクトは、独自のプロバむダヌサヌバヌオブゞェクトず同等にやり取りできたす。 1぀のサヌバヌの接続数に制限はなく、隣接サヌバヌずの関係で同時にサプラむダヌおよびコンシュヌマヌずしお機胜できたす。







分散アヌキテクチャにより、倧芏暡システムの倚くの問題を解決できたす。







この投皿は、Habréでのデビュヌです。 次の蚘事では、プラットフォヌムの内郚構造、それに基づいた独自の゜リュヌション、および「重いPC゜フトりェア」がモノのむンタヌネットの組み蟌みシステムやデバむスにどのように浞透するかに぀いおの理解に぀いお詳しく説明する予定です。



PSモノのむンタヌネット甚のサヌバヌ゜フトりェアを開発しおいる堎合は、以䞋の質問に答えおください。



All Articles