第5回 クライアント・サーバとの根本的な違いを理解する
インフラと業務ロジックを分けてしまう発想 |
このようなサーバ・サイドJavaを採用するが故に出てくる、クライアント・サーバとのアーキテクチャの違いやプログラム・デザインの制限という観点では、いま盛んにeビジネスアプリケーションの作成で行われているサーブレットからビーンを活用するというMVCモデルを使う手法は、理にかなっているかもしれません。
なぜならサーブレットの業務処理がたとえマルチスレッドで同時に複数動いたとしても、そこからビーンを新たにnewして活用すれば、ビーンの中ですべての処理を完結させることができるわけです。
ビーンの中で、たとえメソッドが自由に参照できる変数をグローバル領域に持っていたとしても、マルチで稼働する業務ロジックごとにこのビーンは新しくnewされて動きます。ということは、ビーンの処理自体がそれぞれ個別に処理されることになりますので、ほかのビーン処理と混ざり合って変数が参照されるようなことはまったくありません。
こうすることで、ビーンでプログラムを作る人は、それがサーブレットという特殊なインフラで動くということを意識することなく、自由に業務処理だけに専念してプログラムを記述出来るようになるわけです。
図14 サーブレットからビーンを活用する |
サーバ・サイドJavaのインフラは、非常にいいものです。しかしそれに特化してシステムを作ると、どこか微妙にうまくいかない個所も出てくるものです。いま解説したように、ビーンを活用するというデザイン手法を混在させながらシステム構築することで、問題ある個所を、また違った技法で解決することができます。このように知識や技術はただそれだけで活用するのではなく、うまくそれらを連携させて活用したり運用することで、スマートなサーバ・サイドJavaを実現させることが重要でしょう。
さて、クライアント・サーバ技術者の観点からサーブレットの改善点を探るアプローチを進めてきましたが、だいぶページ数も長くなってきました。
次回は「eビジネスアプリケーションの基幹連携の方法に違いがあること」の個所に焦点をおいて解説していくことにしましょう。こんどもサーバ・サイドJavaの技術や仕組みだけでなく、それをどううまく応用してシステム構築を進めるべきか、そういうノウハウが見えてくる内容にしたいと思います。
5/5 |
連載記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|