2

シン クライアント アーキテクチャを使用して Android アプリを開発しています。

クライアント側の基本的な使用例は次のとおりです。

  • ユーザーの承認
  • ユーザーがデータを入力するのを待っている
  • ユーザー入力をサーバーに送信する

サーバーの責任は、データを処理し、結果を送り返すことです。アプリの実現可能性を検証するために、Java とそのソケット API を使用して機能するプロトタイプ サーバーを作成しました。今、私はこのアプリを公開することを検討しています。ソケットは、ネットワーク通信の観点から Java が提供する最低レベルの API であるため、私のアプリには適していないようです。このプロジェクトを数百人のユーザーに対応するようにスケーリングすると、多くのバグが発生する可能性があります。アプリを公開するのは初めてなので、以前にこの種のアプリを開発したことがある方に助けてもらいたいのですが、使用する技術についてアドバイスをお願いします。私は tomcat を検討していますが、それは実際に受け入れられますか?

私のアプリの制限の 1 つは、サーバーが Java コードを簡単に実行できる必要があることです。これは、私が作成した処理部分が Java であり、他の開発者によって作成された多数の他の jar ファイルを使用しているためです。

4

2 に答える 2

1

アプリケーションが何をするかの詳細、および機能的および非機能的要件の詳細なし。あなたにアドバイスすることは次の可能性です。したがって、私は自分自身を一般論に限定します。

  • ソケットレベルのプログラミングは本質的にバグが多いわけではありません。(いくつかの点で) 難しくなりますが、信頼できるソケット コードを作成できます。

  • より高いレベルのプロトコルと抽象化を使用すると、物事が簡素化され、より大規模で複雑なシステムをより迅速に実装できるようになります。ただし、抽象化/プロトコルが実際にやろうとしていることと一致する場合のみ。(たとえば、HTTP はピアツーピア システムには適していません。)

  • 高レベルのプロトコルとフレームワークには、パフォーマンスのペナルティもあります...「無駄のない」低レベルの実装と比較して。

  • 最後に、HTTP には (具体的には) どこにでもあるという利点があります。ブラウザはそれをサポートしており、サーバーサイドなどのツールがたくさんあります。そして、セキュリティ担当者がファイアウォールを通過できる可能性が最も高い.


あなたが尋ねている特定のことはすべて、さまざまな方法で行うことができます。いくつかの方法は、スケーラビリティの観点からある程度優れています。しかし、真のスケーラビリティには、「適切な」テクノロジを選択するのではなく、優れた設計とハードワークが必要です。

実際の問題を理解せずに、Tomcat が適切な (または十分な) 選択であるかどうかを判断することはできません。

于 2013-04-29T10:45:28.053 に答える
1

ユーザーの承認

これにはOAuthを使用できます。

ユーザーがデータを入力するのを待っている

Android には、EditText から Checkbox、RadioButtons など、さまざまな入力オプションが多数あります。Android API を調べると、これらに関するチュートリアルがたくさんあります。

ユーザー入力をサーバーに送信する

ソケットの代わりに、アプリ用の RESTful API を構築することをお勧めします。DropWizardをご覧ください。これは Java ベースであり、非常に使いやすいことがわかりました。

このプロジェクトをスケーリングして、何百人ものユーザーに対応できるようにします

簡単な答え: すべてを Amazon の Elastic Cloud に置きます。サーバーがリソースを使い果たした場合、Amazon は対応するために自動的に追加のマシンを追加し、マシンが不要になった場合はマシンを削除します。

于 2013-04-29T09:38:37.197 に答える