※この記事は丸太式 Advent Calendarの17日目です
前提
バックエンドはJavaで構築することが前提です。今Javaプログラマなので。
構成と妄想
クライアント <- JSON -> Web <- JMS -> AP <- JPA -> DB
- それぞれのサーバはスケールアウト出来る物とします。
そのためにはセッションはDBに格納する必要がありますね。
今の段階ではXOOPS CubeのDBセッションみたいな管理方法をイメージしています。 - あえて特定のプロダクトに依存しない書き方をしています。
それぞれの実装は好きな物を組み合わせることが出来ます(EclipseLink or Hibernate, ActiveMQ or RabbitMQ, Tomcat or Jetty, ...)。
まあ、プロダクト間の差異を吸収するのはフレームワークの仕事ですしね。 - 基本的にはAPIを通じてアプリケーションを利用することになります。
そのため、クライアントがWebブラウザだろうがSwingアプリだろうがSWTアプリだろうが全く気にしません。
ただし、Webサーバにプログラムと一緒にビューをデプロイするのはあまり好みではないです。 - The Twelve-Factor Appの影響を大いに受けています。
従ってWeb/APそれぞれのサーバに特別なミドルウェアはインストールしない想定です。
Webは組み込みTomcatかJettyを使えば良いですし、ActiveMQならアプリケーションに埋め込めるのでメッセージブローカーをインストールする必要はありません。RabbitMQはどうなのかな?
まとめ
「なんていうか・・・すごく言葉にしづらいんだけど・・・・・・あんまりまとまっていませんね!」
タイトルに「2014.12」って付けてしまったので、またそのうちやるかも。