低レベルのタスクを実行し、いくつかの UI を表示し、外部サーバーと通信する必要がある Windows 8 用の製品に取り組んでいます。低レベルのタスクを実行するには、間違いなく Windows サービスが必要です。同時に、プッシュ通知、ライブ タイルなどの Windows App Store アプリの優れた機能を UI に使用したいと考えています。この設計では、サービスとアプリの両方が外部サーバーと通信します。
フローは次のようになります。Windows サービスがサーバーに情報を送信し、サーバーが App Store アプリにプッシュ通知を送信します。
このシナリオでは展開がうまくいかないことは理解していますが、ここでは脇に置きましょう。私の問題: サーバーは、サービスとアプリが同じマシン上にあり、その結果、リンクされていることをどのように認識しますか? つまり、Windows サービスがサーバーに情報を送信するとき、サーバーはプッシュ通知の送信先をどのように認識しますか? 私が必要としているのは、ある種の共有された固有の識別情報です。
私は、App Store アプリとデスクトップ アプリの間のプロセス間通信の欠如について、多くの議論 (通常はイライラする性質のもの) を見てきました。私の場合、次の 2 つのオプションがあります。
サービスとアプリでまったく同じ一意の識別子を生成します。アプリはシステム固有の情報にあまりアクセスできないように見えるため、これはありそうもないことです。これについて私が間違っていることを示していただきたいです。
サーバーまたはアプリで一意の識別子を生成し、それを他のコンポーネントに伝達します。これを行う潜在的な方法:
- アプリで識別子を作成し、ファイルに保存してから、サービスからファイルにアクセスします。
- ある種のローカル ソケット ソリューション (これは機能しないと読みましたが、試したことはありません)
もちろん、オプション 2 は、Windows 8 アプリの認証要件に違反する可能性が高いようです。特に:
Windows ストア アプリは、ローカル メカニズム (ファイルやレジストリ キーなど) を介してローカル デスクトップ アプリケーションまたはサービスと通信してはなりません。
どんなアドバイスでも大歓迎です。