実際のプロジェクトではどのようなサーバーを目にしますか?
1) Web サービスはステートレスである必要があります: 基本的に、すべてのリクエストでユーザー名/パスワードを送信する必要があり、すべてのリクエストで HTTPS を使用する必要があり、必要に応じて毎回 User オブジェクトを認証してロードします。
2) Web サービスのセッション: Web コンテナーのように、少なくとも認証済みのユーザー オブジェクトを保存し、セッション ID に似たものを保持できるため、リクエストごとにユーザーを認証、読み込み、確認する必要がありません。
3) スティッキー サービス (リクエスト間で永続的なサービス): https://jax-ws.dev.java.net/nonav/2.1/docs/statefulWebservice.html
ステートフル サービス (および Web アプリケーション セッション) のスケーラビリティの問題は理解していますが、ショッピング カートなど、何らかの状態が必要になる場合があります。ただし、この状態をデータベースに入れる (バックエンドをある種のセッションarghとして使用する) か、状態全体をクライアントに渡すこともできます (クライアントはショッピング カート全体を再送信する責任を負います)。
実際のところ、少なくとも Web アプリケーションの場合、セッションは多くの状況で大いに役立ちます。システムが「Web サーバーがダウンした場合、ユーザーは何をしていても最初からやり直さなければならない」ことを受け入れる場合、またはそれが受け入れられない場合はセッション クラスターを試すことができる場合、スケーラビリティの問題は無視できます。
Web サービスの場合はどうですか? Web サービスは Web アプリケーションとは大きく異なり、オプション 1) (常にステートレス) を受け入れると結論付けたいと思いますが、実際のプロジェクトの経験に基づいた他の意見を聞くことができれば幸いです。