第6回 最適な設計はホスト時代の流儀に同じ?
もっとパフォーマンスUPを狙った改造をする |
ちなみにこの方法は、もう少しエレガントにサーブレットに応用することができます。サーブレットには、initメソッドという、サーブレットが一番初めに呼び出されたときに一度だけ起動するメソッドを記述することができます。これを応用して、サーブレットが最初に起動したinitメソッドの中で、データソースを獲得してデータベースに接続しておき、この接続状態を複数で稼働するサーブレットの業務ロジックの中で使いまわすという方法です。
1 .....<中略>.....
|
initメソッドの中の16行目と17行目で、データソースを探し出して獲得しています。獲得されたデータソースは、11行目の変数に格納されていることに注意してください。
22行目以降は、業務処理が記述されているdoPostメソッドです。このメソッドの中の26行目にデータソースを使って、DBにアクセスする記述があります。多くのユーザーがこのサーブレットにアクセスしてくると、このdoPostメソッドが同時にマルチ実行されます。DBにアクセスする場合も、すでにinit処理の中でネームサービスを使ってデータソースの在りかを特定しているので、いちいちWebアプリケーションサーバ上のデータソースを探しにいく手間も省け、パフォーマンスの悪化を防ぐことができます。
いろいろとプログラムのお作法の話をしましたが、皆さんもサーバ・サイドJavaから他システムへ連携する場合は、直接他システムへ連携させる手法と接続マネージャを経由する手法が、混在しないように、いまから標準を決めておくといいでしょう。
まとめ |
クライアント・サーバの世界では、ミドルソフトへの直接アクセスが当然であったのに、サーバ・サイドJavaの世界になると、その方法をそのまま踏襲しては、問題があることが分かりました。その例として接続マネージャを使った例で解説してきました。このようにサーバ・サイドJavaのシステムを効率的に動かすには、ホスト側にあるWebアプリケーションサーバが提供してくれた接続マネージャのような仕組みを使い、Webアプリケーションサーバの恩恵を受けられるように作ることが重要です。こういうお作法をうまく守りながらシステム構築を勧めていくことが重要になってくるのです。今回お話しした内容のポイントは、以下の2点でした。
-
eビジネスアプリは、ホスト集中形態のシステムである
- eビジネスアプリケーションは、Webアプリケーションサーバの恩恵を受けながら、決まったお作法の下で作成される必要がある
今回は、eビジネスアプリケーションの基幹連携の手法にはクライアント・サーバシステムのそれとは違いがあることに焦点を絞って解説してきましたが、次回は、さらに一歩話を進めて、いま、さらに重要になってきているセキュリティの話をしてみたいと思います。この解説では、第4回に出てきたサーブレットを題材に使っていますが、実はこのサーブレットの中にもセキュリティの問題が出てくる部分があるのです。次回はこれを分かりやすく解説してみたいと思います。
6/6 |
INDEX |
||
第6回 最適な設計はホスト時代の流儀に同じ? | ||
eビジネス・アプリケーションは基幹連携の方法に違いがある |
||
連載記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (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に関する基礎知識を解説する。
|
|