修士論文を書き始めたばかりです。私の任務は、アパートの暖房を最適化するシステムを作成することです。アパートには、現在の温度を測定するセンサーがあります。
これらの温度とその他の手段を使用して最適化が行われ、信号が温度を調整するアパートに送り返されます。最適化は、すべてのアパートメントをループする循環方式で 24 時間年中無休で行われます。
したがって、システムはセンサーと通信し、最適化を行い、データを記録する必要があります。さらに、現在の電力/水の消費量を確認できるように、webb ベースのユーザー インターフェイスをアパートに提供する必要があります。
システムは C#/.Net で記述されます。
私は大規模なシステムを構築した経験がなく、.Net の経験も限られています。これについての私の最初の考えは、最上位レベルで 2 つのインターフェイスが提供される N 層アーキテクチャを持つことです。ユーザー用の 1 つの Web インターフェイスと、センサー用のある種のインターフェイス (アーキテクチャの下に最適化アルゴリズムがあります)。
アーキテクチャのさらに下にあるコンポーネントをできるだけ再利用したいと考えていますが、最適化アルゴリズムを残りの部分からできるだけ分離したいという制限があります。つまり、アルゴリズムのクラッシュは、システムの残りの部分に影響を与えるべきではありません (おそらくセンサー インターフェイスを除く)。
それで、私の質問はです。最適化部分はどのように実装すればよいですか? Windows サービスを作成する必要がありますか、それとも独自のスレッドで実行する必要がありますか?
Windows サービスが適切な選択である場合、階層のさらに下にあるコンポーネントを使用することは可能ですか? つまり、データベース リポジトリ、すべてのオブジェクトなどです。
アーキテクチャの選択は良いですか。そうでない場合、なぜですか?
システムを設計/実装する際に考慮すべき特別なことはありますか?
ノート。この段階では、センサーとシステム間の通信がどのように行われるかは明確ではありません。
良い1日を!