IoT用のCまたはC ++の共通API


9

ドキュメント、プログラミングインターフェイスのセットという意味で、IoT用のCまたはC ++の共通または通常のAPI(またはライブラリ)は何ですか?(たとえば、POSIXはオペレーティングシステム用、QtはGUI用などです)。

この短いページが私の質問の動機です(私はIoTの静的ソースコード分析ツールの開発に興味があります)。私は、法的基準だけでなく、さまざまな産業分野で一般的に使用されているAPIまたはライブラリ(CまたはC ++、およびそれらの既存のヘッダーファイルを含む)も探しています。Web API(一部のHTTPリクエストを定義する規約)や、APIやライブラリを実装していないネットワークプロトコルだけには興味がありません。

(私は自分でIoTアプリケーションを開発することに興味はありませんが、IoTソフトウェアの開発者を支援するためにソースコードを操作および分析するソフトウェアエンジニアリングツールを開発したいと思います)

ヘルスケア、ロジスティクス、交通、スマートグリッド、スマートビルディングなど、業界固有のIoT APIまたはライブラリにも興味があります。CまたはC ++ APIまたはライブラリである限り。


私は静的ソースコード分析に取り組んでいる研究グループに所属しており、IoTソフトウェア開発者を支援するために、CまたはC ++ソースコードを分析するツールを開発したいと考えています。

しかし、私はこれに取り組む前に資金を調達する方法を見つける必要があります。

IoTプラットフォームをターゲットとするソースコード(必要に応じてC、C ++、およびAdaで...)を作成する開発者およびエンジニア向けに、専用ツール(できれば既存のテクノロジーよりもオープンソース)を開発することをお勧めします。このツールは、対象のソフトウェア開発キットに統合されます。このツールは、これらのソフトウェアフレームワークに固有のコーディングルール、不変条件、および適切な方法に対するソースコードの有効性を分析およびチェックすることにより、IoTソフトウェア開発者を支援します。主な目的は、ソフトウェアの品質を向上させ、市場投入までの時間を短縮することです。必要に応じて、ツールは特定のソースコードの最適化を実行して、ソフトウェアのパフォーマンスを向上させたり、コードサイズを縮小したりできます。


NB。このIoT Eclipse Webページには、いくつかの標準がリストされています。それらのソースコードアナライザーを開発する価値がある場合、それらを実装するAPIとライブラリ(および他のIoTデファクトドメイン固有の標準)に興味があります。


@Basileこれは商用ですか、FOSSですか?いずれにせよ、あなたの進捗状況を追跡する方法はありますか?私はUTLを監視するか、メーリングリストのようになりますので、非常に歓迎し、それが数ヶ月、あるいは何年もかかることがあります実現
MawgはREINSTATEモニカ言う

私は数十年以来主にフリーソフトウェアに取り組んでいるので、それがFOSSになることを願っています。しかし、私はこれに取り組むためにいくつかのコンソーシアムに参加する必要があります(またはいくつかの研究開発助成金や他の資金を得るために)。
Basile Starynkevitch 2017

1
CMSISのような意味ですか?keil.com/pack/doc/CMSIS/General/html/index.html
pjc50

1
MQTTとMosquittoは、IoTに関しては非常に人気があります。たぶん、Libmosquitto APIはコードアナライザーの良いターゲットでしょうか。
Bence Kaulics

1
特に興味があるIoTの側面はありますか?Bence Kaulicsが提案したように通信側(MQTT、CoAP、6LoWPANなど)、またはAndroid ThingsUbuntu IoTなどのIoTプラットフォーム全体があります。どの部分に取り組みたいですか?
Aurora0001

回答:


8

バジル、ここでは細かい違いが欠けていると思います。

IoTのPosixライクスタンダードといえば、プロトコルをラップするライブラリのことだと思います。

テレフォニーおよび衛星通信用のプロトコルスタックを実装して()数十年にわたって採用されてきた人として、これらのプロトコルは必要に応じてすでに厳密に定義されていると(おそらくご存じのとおり)言えるでしょう。たとえば、Zigbeeはhttps://en.wikipedia.org/wiki/IEEE_802.15.4によって管理されています

これらの規格では、送信するメッセージを規定し、バイト0がこれを意味し、バイト1から4がそれを意味することを定義しているため、異なる製造元のデバイスが相互に通信できるようになっています(とにかく理論です。ストーリー;-)

すでに述べたように、どのプロトコルでも、多数の製造元が存在する可能性があります。また、特定の製造元では、複数のソフトウェアライブラリが存在する可能性がありますが、これは問題です。

各プロトコルをラップする複数のAPIが利用可能である限り、タスクは非常に困難です。

悲しいことに、1つの会社が支配的になった場合にのみ、Posixに似たAPIが存在します。主要政府が多額の資金を投じる可能性は低いかもしれませんが、私はそれが起こっているのを見ることができません。オープンソースコミュニティによるLinuxのような取り組みとしての唯一の他のチャンスです。


ところで、私はあなたが単なる別の静的コードアナライザではなく、一般的なコードではなく特定の特定のAPIを対象としていることを十分に明確にしていないと思います。あなたは、IMOのように、しかし明示的には十分ではないと言っています。それを正確に定義すると、プロジェクトが実際に何であるかがわかります。あなたがすでに知っているなら、あなたはそれを強調しないようです(しかし、多分私は十分に読んでいない、2つの会議の間に急いでいます)。

POSIX APIの構文は、調査するすべてのAPIの構文と同様に、コンパイラーによってポリシングされます。したがって、ユニット化されたリソースの使用、割り当てられたリソースの解放ではないなど、潜在的に危険なコードを探していると思いますが、それは正しいですか。

それは素晴らしいプロジェクトのように思えますが、私はこの質問にスターを付けました。


ここに画像の説明を入力してください


1
私は、APIのセマンティクスに関心があります(それらの構文だけでなく、またはほとんどが)。そして、はい、私はあなたが言及していること(そしてはるかに)のためにそのAPIを使用してコードを分析したいと思います。これは現在のところ大まかなアイデアであり(そして私はそれをニーズに適応させます)、それでも資金を調達する方法(特に共同のR&Dプロジェクト)を見つけようとしています。
バジルスタリンケビッチ2017

ところで、Qtの例は、API(およびライブラリ)が、法的基準でなくても重要になる可能性があることを示しています。
Basile Starynkevitch 2017

5

さまざまなネットワーキングプロトコルの標準はすでに十分に定義されています。あなたが見つけたいと思っているのは、IoTデバイスに固有の標準的な動作を実装するAPIです。Light()関数のようなもので、ライトをオン、オフ、または明るさのほんの一部に薄暗くすることができます。武装または武装解除できるDoorSensor()、またはドアオープンまたはドアクローズイベントのアラートに登録できます。そういうこと。ただし、アプリケーション固有ではないAPIライブラリについては知りません。

誰かが持っている場合、Domoticzで何かを見つけるかもしれません。C ++で書かれたオープンソースのホームオートメーションコントローラーです。


5

迅速な対応として、IoTには特別な種類のライブラリがあるとは思いません。IoTは基本的に「新しい組み込みシステム」であり、名前を変更してクラウドへの接続を追加しただけだと思います。

私がC ++プログラミングに使用しているものに答えると、私のリファレンスページはhttp://www.cplusplus.com/になります。

基本的にIoTの場合、使用するプロトコル(USB、TCP / IP、UDP、ZigBeeなど)に関係なく、通信ライブラリが必要です。

さらに、通信がある場合は、セキュリティ/暗号化が必要です。

残りは、ハードウェアのどの部分を制御または測定するかによって異なります。このようなハードウェアにライブラリ(API /ファームウェア)が必要です。

きっとここに足りないことがたくさんあります…他の人の答えを見てみましょう


2
基本的に、IoTは組み込みコンピューティング、おそらくは組み込みLinuxシステムの新しい流行語に過ぎないという私の直感を確認していますか?
Basile Starynkevitch 2017

@BasileStarynkevitchデバイスクラスによって異なります。フィットネストラッカーは(時計に取り付けられた電話の内線番号とは対照的に)Linuxを実行しません。セルフパワードノードはLinuxを実行しません。分散ノードを実行するハブノード)はおそらくLinuxを実行します。したがって、エッジからクラウドに拡張するスタックについての私の話。
Sean Houlihane 2017

1
それは大丈夫です。これらのデバイスで一般的に使用される APIまたはライブラリは何ですか。
Basile Starynkevitch 2017

1
ZigBeeはネットワークプロトコルのように見えるため、範囲外です。しかし、C ++またはCで一般的に利用可能なAPI の実装 ZigBeeは興味深いものになるだろう
バジーレStarynkevitch

4

組み込み、安全な通信、プロビジョニング(デバイス管理)、およびOTA更新。これは大きなソフトウェアパッケージであり、開発用の新しいタイプのプラットフォームとしても出現しています。

クラウドソリューションを提供するプロバイダーはいくつかありますが、通常は独自のクライアントAPIと選択されたエンドポイントオペレーティングシステムを備えています。

私の知る限り、さまざまなワイヤレスプロトコルが特定のソフトウェアスタックを実際に指示することはないため、クライアントAPIではなく、全体像を基に選択する必要があります。決定的な要因の1つは、アプリケーションのスタックにとってオープンソースが重要かどうかです。


1
私はIoTアプリケーションを開発していませんが、IoTソフトウェア開発者のために静的ソースコード分析ツールを開発したいと考えています。
Basile Starynkevitch 2017

1
わかりました。それで、(推測)4または5の関連するスタックがあり、数年後に2つまたは3つが支配的になるようにしたい場合は、それらすべてを考慮する必要があります。
Sean Houlihane 2017

1
正確にどのようなAPIまたはライブラリ(CまたはC ++)を考えていますか?あなたの答えでそれらに名前を付けてください!
Basile Starynkevitch 2017

1
そのようなAPIに取り組んでいるチームを知っている場合は、私の質問を転送してgcc-melt.org/IoT-03-interest-Starynkevitch.html
Basile Starynkevitch 2017

3

あなたの目的はBOOSTに似ていると思います:

Boost C ++ライブラリ

彼らは「既存の慣行」を確立し、Boostライブラリが最終的な標準化に適するようにリファレンス実装を提供することを目指しています。

おそらく、BoostはIoTの主要プレーヤーになる可能性があります。確かに、C ++にはいくつかの大きな改善が加えられています。


1
コメントは詳細な議論のためのものではありません。この会話はチャットに移動しました
anonymous2

2

IoTivityは、OCF仕様のリファレンス実装です。ドキュメントとソースコードはGitHubリポジトリで見つけることができます

機能のリストから

  • 制約のあるデバイスへの展開のためにCで記述されたコア機能
  • CおよびC ++から利用可能なほとんどの機能

それらのフレームワークAPIにより、Bluetooth、Wi-Fi、ZigBee、Z-Waveなどのさまざまなプロトコルを介した検出、データ送信、データ管理(収集、保存、分析)およびデバイス管理(プロビジョニング、診断など)が可能になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.