かなり大きな質問であり、本当の答えはありません。あなたは本当に構築されているアプリのニーズが何であるかを決定する必要があります。
RMIに関しては、RMIホストを提供するサーバープロセスが必要です。Glassfishが1つ提供します。ただし、Glassfishを使用している場合は、永続層としてJPA/EJB3を使用することをお勧めします。これは単に、オープンソースの世界のために再バッジされたOracleのTopLinkです。
TomcatにRMIレイヤーが付属しているかどうかはわかりませんが、Tomcat用に開発してから少し経ちました。それは何よりもまずサーブレットエンジンです。クライアントとサーバー間のRESTインターフェースを検討している場合は、それが適切な選択です(ただし、Glassfishはサーブレットエンジンも提供します)。
本当にHibernateを使用したい場合で、クライアントとサーバー間のトランスポートとしてRMIが必要な場合は、Springを割引しないでください。Hibernateを呼び出すSpringBeanを定義するRMIサーバーエンジンがあります。アプリケーションサーバーは必要ありません(Springが提供するものを除いて)。
MVCに関する限り、クライアントの観点からは、Swingがビューを処理し、ネイティブJavaがモデルとコントローラーを実装します。この場合、モデルは、RMIサーバーコンポーネントによって公開されるサービスによって提供されるDTOになります。Hibernateはサーバープロセスに限定され、サービスにはほとんどビューがないと思います。クライアントコードのモデルは、サービスへのRPCを作成するDTOとその周辺のフレームワークになります。
お役に立てれば