- PR -

コンテナって?

投稿者投稿内容
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-10-27 00:14
引用:

サーブレットの説明を新人にしていて、「コンテナって何ですか?」と聞かれてとっさに沈黙しました。



技術的に「コンテナ」というと、先にメモリに「データ+処理」をキャッシュしておいて
高速に処理を行う技術をさすと思ってます。

あらかじめ「固定データ」はもちろん、処理内容(*.class)をハードディスクから、
メモリに読み込んでおいて
かつ、サービス依存の処理(特定のファイルを読み込む等)を
行っておけば、「サービス」の「コンテナ」、たいていの場合サーブレット
に関しては「サービス」をいち早く受け付けることが出来るわけです。

と私の場合は説明しますが。

いい感じですね。質問が来るというのは。今の人は質問すらしない。。。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-27 09:30
引用:

加納正和さんの書き込み (2006-10-27 00:14) より:
技術的に「コンテナ」というと、先にメモリに「データ+処理」をキャッシュしておいて
高速に処理を行う技術をさすと思ってます。

あらかじめ「固定データ」はもちろん、処理内容(*.class)をハードディスクから、
メモリに読み込んでおいて
かつ、サービス依存の処理(特定のファイルを読み込む等)を
行っておけば、「サービス」の「コンテナ」、たいていの場合サーブレット
に関しては「サービス」をいち早く受け付けることが出来るわけです。



「キャッシュ」とか「高速に」とかは本質ではないように思うのですがどうでしょうか。
私の捉え方ですと、
「規定の形でプログラムを記述することで、面倒ごとをなにかやってくれる」
ぐらいの意味合いで考えています。
もちろん、「高速に」動けばそれに越したことはありませんし、
そのためにキャッシュなど行ったりするでしょうね。

しかし、こうなると「フレームワーク」と「コンテナ」の違いはなんだ?
という話になると思うのですが、私なりの答えは
開発時のライブラリとしてみたものがフレームワーク、
実行時の環境としてみたものがコンテナ、
という分け方なのかなと。

このあたりはどうもはっきりした定義がなさそうなので、
異論のある方はがんがん突っ込んで欲しいところですね。

Java側の業界でよく用いられるのは

・DIコンテナ(231,000 件)
・EJBコンテナ(116,000 件)
・サーブレットコンテナ(39,100 件)
・IoCコンテナ(23,800 件) -> 今ではDIコンテナと呼ばれる

といった類でしょうか。括弧内はgoogleでの件数です。
やはり今はDIコンテナがホットな話題なのでしょうかね。

なお、O/Rマッピングのフレームワークもコンテナと呼ばれることが
それなりにあるようです。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-10-27 10:27
引用:

nagiseさんの書き込み (2006-10-27 09:30) より:
しかし、こうなると「フレームワーク」と「コンテナ」の違いはなんだ?


フレームワークは文字通りアプリケーションの「骨組み」です。
骨組みに肉付け(部品を足す)ことで、アプリケーションを完成させることができます。
O/Rマッピングフレームワークのように、アプリケーションの特定のレイヤのみの
「骨組み」である場合もありますが。

一方コンテナは、コンポーネントの動作環境を提供するものです。コンポーネントは
単独では実行できず、コンテナに放り込むことで動作することができます。ただし、
コンテナにコンポーネントを入れてもそれでアプリケーションができるわけではなく、
あくまで部品としてのコンポーネント(サーブレット、EJBなど)が動作できるように
なるだけです。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2006-10-27 11:36
るぱんです。

個人的に・・・ですが、ドライバーとスタブと言う概念のドライバーに当たるものではないかと考えているのですが、自分自身でコレ!って説明できないのがつらいですね。
会議室デビュー日: 2006/10/17
投稿数: 13
投稿日時: 2006-10-28 01:22
一番簡単に表現すると、ファミコンかな

カートリッジ----コネクタでのIF----本体
サーブレット----サーブレットAPI---Tomcat等

MSXでも良いが、世代的に無理と思われる。
まぁ、本体の種類を考えるとゲームボーイの方が良いかなw

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-28 01:41
サーブレットは、サーバアプリケーション用のフレームワークでもあり、
そのフレームワークで作られたコンポーネントを実行するコンテナでもありますが、

Servlet API/JSPがフレームワークに該当し、
サーブレットのAPIを実装したクラスを
HTTP経由で実行させるのが、コンテナになります。

一言でサーブレットといっても見方によって、
フレームワークにもなりますし、コンテナにもなるので、
少々混乱するかもしれませんね。

スキルアップ/キャリアアップ(JOB@IT)