これは明確な問題ではありません。スペクトルの2つの極値を検討してください。
独自のクライアントソフトウェアはHTTPクライアントであり、HTML応答をレンダリングします。どのHTTPサーバーでも動作します。サービスに使用するHTTPサーバーは、たまたまGPLコンポーネントを使用しています。
GPLライセンスのコンポーネントを使用するプログラムがあります。そのプログラムの操作で任意のポイントを選択し、プログラムを2つのプログラムに分割します。2つのプログラムは、まったく不要なネットワークホップを介して通信します。GPLライセンスのすべてのコンポーネントを最初のプログラムとライセンスにGPLで配置し、他のプログラムのライセンスをGPLに互換性のないライセンスに設定します。
最初のケースは明らかに大丈夫です。2番目のケースは明らかに大丈夫ではありません。あなたはあなたの特定のケースについて多くの情報を与えていません、そして、たとえあなたがそうしたとしても、あなたが正しいかどうかを決定できるのは裁判所の判決だけです。
GPL FAQには、相互運用可能な、個別にライセンスされたプログラムについて次のように書かれています:
ただし、多くの場合、GPLで保護されたソフトウェアを独自のシステムと一緒に配布できます。これを有効に行うには、無料プログラムと非無料プログラムが腕の長さで通信することを確認する必要がありますで、それらが効果的に単一のプログラムになるような方法で結合されてい。
これとGPLでカバーされたソフトウェアを「組み込む」との違いは、一部は実質的な問題であり、一部は形式的です。実質的な部分は次のとおりです。2つのプログラムを結合して、1つのプログラムの2つの部分になると、2つの別個のプログラムとして扱うことはできません。したがって、GPLはすべてをカバーする必要があります。
クライアントが「同じプログラムの2つの部分」の標準を満たしている(したがってそれぞれがGPLの下でライセンスされている)サーバーであると思うかどうかを決定する必要があります。GPL FAQには、このトピックに関する別の質問に関するさらに詳しい説明があります。
2つの別個のプログラムと、2つの部分を持つ1つのプログラムの間の境界線はどこですか?これは法的問題であり、最終的に裁判官が決定します。適切な基準は、通信のメカニズム(exec、パイプ、rpc、共有アドレス空間内の関数呼び出しなど)と通信のセマンティクスの両方に依存すると考えています(交換される情報の種類。
...
対照的に、パイプ、ソケット、およびコマンドライン引数は、2つの別々のプログラム間で通常使用される通信メカニズムです。そのため、通信に使用される場合、モジュールは通常別個のプログラムです。しかし、通信のセマンティクスが十分に親密であり、複雑な内部データ構造を交換している場合、それも、2つの部分を組み合わせてより大きなプログラムにすることを検討する基礎となります。
したがって、ネットワーク通信は確かに「通信のメカニズム」テストに合格しますが、クライアント/サーバーペアが「通信のセマンティクス」テストのどこに該当するかは不明です。