設計
最初に必要なのは、サーバーでJavaコードを実行できるようにするためのものです。
いくつかのオプションがあります。最も人気のあるテクノロジーの2つは、GlassfishとApacheTomcatです。
大まかに言えば、Apache Tomcatは単純なクライアント/サーバー通信には十分であり、より複雑なことを行う必要がある場合はGlassfishが使用されます。どちらも、サーブレット(Javaで記述された本質的に自己完結型のサーバークラス)をサーバー側で実行できるようにします。
要求を受信するたびにJVM(Java仮想マシン)を起動することにより、クライアントとの通信を処理します。JavaサーブレットはJVM内で実行でき、応答をクライアントに返送する前に、必要に応じて何らかの処理を実行します。新しい要求はそれぞれ、サーブレットの新しいインスタンスで実行されます。これにより、複数の同時リクエストの処理が簡単になります(より複雑なスレッド化は必要ありません)。
ネットワーク(サーバーとの間でデータを送受信する)
ネットワークの状況では、クライアントはPC、Android電話、またはインターネットに接続できるその他のデバイスにすることができます。サーバーに関する限り、クライアントがHTTP(サーバーが理解する標準プロトコル)を使用して通信できる場合、サーバーはどのような種類のデバイスであるかを気にしません。これは、PCデスクトップクライアントサーバーアプリケーションのソリューションが電話のソリューションに似ていることを意味します。
Apache HTTPコンポーネントなどのライブラリを使用して、デバイスとサーバー間のHTTP要求と応答の処理を容易にすることができます。もちろん、Socketsを使用してこれを行うための独自のクラスを作成することもできますが、これは、特にこれまでに行ったことがない場合は、非常に時間がかかります。
データの保存
時間があれば、情報を保存するために何らかのデータベースを実装することをお勧めします。これらには、データ回復メカニズム、データの高速検索のためのインデックス作成、データの整合性の確保、データの構造化の改善など、多くの利点があります。データベースを使用する場合は、MySQLをお勧めします。これは無料で、さらに重要なことに、十分に文書化されています。
余談ですが、 JDBCは、Javaを使用してデータベースと通信するために使用できます。
インラインハイパーリンクについて申し訳ありません-どうやら私の評判は2つ以上投稿するのに十分なほど高くありません!
出典:同様の設計を実装した個人的な経験。