.NETベースのAPI(つまりAutoCAD)と通信して、データを取得し、コマンドを送信し、イベントに反応するというタスクがあります。
前者の場合はC#DLL、前者の場合はPythonアプリの両方に自然なツールを使用して、API操作と適切なプログラムロジック(主にPythonで実装済み)を分離したいと思います。後者。
これら2つの部分を接続するために、ZeroMQメッセージでJSONを交換し始めました。私は開発の初期段階にありますが、ZeroMQがメッセージの配信/注文を保証しないことを最近発見したので、これが実行可能な方法であるかどうかについては予約があります。現在、私のアプリは非常に基本的なREQ/REPペアであり、メッセージ形式にある種の「recipient-function」フィールドを追加することで、イベントへの反応とさまざまなコマンドの実行を処理する予定です。
ZMQを使用したい理由は、いつかソフトウェアをより大規模なマルチユーザーの分散ソリューションに拡張できる可能性があるためです。
私は素人プログラマなので、このアーキテクチャについてのアドバイスをお願いします。問題が発生したときに、メッセージの信頼性/順序付けに対処することを計画する必要がありますか? ZMQの周りにある種のRESTラッパーを開発することを検討すべきですか?
ZeroMQはおそらくこれに対する私の最初の選択ではないでしょうが、それは実行可能であるはずです。 ZeroMQのマニュアルには、REQ/REPソケットの信頼性に関するセクションがあります。それ以外に必要なものはありますか?注文に関しては、単純な1アップカウンターが機能しますか? TCPのように機能します。メッセージを受信する前にメッセージを受信し、前のメッセージを待って、欠落しているメッセージの繰り返しを要求する応答を送信する場合があります。