ObjectSquare [2002 年 3 月号]

[OOエンジニアの輪!]

OOエンジニアの輪!

〜 第 14 回 原田洋子さんの巻 〜

今回のゲストは原田洋子さんです。 原田さんは Java Servlet の第一人者で、雑誌や書籍で Java Servlet の紹介をご覧になった読者の方も多いかと思います。最近は XML の分野でも活躍なさっています。



 尊敬する人  宮沢賢治

(彼は童話作家ですが、科学者でもあります。彼の本は童話ではありますが、科学的に正しく書かれているのです。)
 好きな言葉  I DON'T MIND, IF YOU FORGET ME.

(奈良美智さんというアーティストの言葉です。子供の絵をよく描く方です。)


Java Servlet との出会い

インタビュー風景 -- 現在のお仕事についてお話を伺いたいのですが、もともとは大手メーカーさんにいらっしゃったんですよね?

10年くらい勤めてたんですよ。で、後半、5年くらい芝浦にいました。ずっと研究所にいたのですが、途中で組織変更があり、部署ごと別の事業部に移ったんです。

-- 色々なところでのご発言から、生粋の Unix 使いのような印象を受けますが?

会社に入ってからですね、Unix を使ったのは。Sun 3 という機種で覚えまして。

-- 「Java Servlet 最新サーバ・プログラミング(秀和システム、1999年2月24日発行)」の原田さんのご紹介のところで、原田さんがネットワークに携わり始めたのは JUNET の時代からだと書かれていましたが。

Sun 3 に真剣にさわり始めたのは、社内にいた先輩が「面白いからやろうよ。」って声をかけてくれたからなんですよ。苦労しながら UUCP とか覚えて。最初は NetNews ですよね。メールはその前からやってましたけど。

-- Webというよりは、分散処理がご専門だったんですね。

仕事ではそうでしたね。分散がメインの研究室だったので、RMI から始まり、 Jini をやりながら、自分で興味を持った Servlet に取り組んでいました。あとは、ネットワークマネジメントですね。事業部が電話の交換機関係で、いわゆる物理的ネットワーク関係の事業部でしたので、ネットワークマネジメントの方もちょっと研究頼むよみたいな感じだったんですけれども。

-- その中でも原田さんといえば Java Servlet というイメージがありますが、Java Servlet に興味を持たれたきっかけを教えてください。

やっぱり最初は仕事だったんですよ。うちも Java をやろうじゃないかって話になったときに、最初にその中で何をやろうかという議論になりました。分散が結局メインになったんですけど、 RMI って当時は注目を集めていなかったんですよ。ちょっとおまけみたいな感じで。当時 Jeeves っていうα版があって、その評価を頼まれまして。しばらく使ってみて、こういう問題があるとか、こういう風にした方がいいんじゃないか、っていう報告をしていたんですね。仕事としては、ファイナルリリースが出て、 Java Web Server っていう形になったときに一段落ついたんですが、私は「これ面白いな」って思って、個人的にずっとやってたんです。



オブジェクト指向とのかかわり

-- オブジェクト指向との関わりは?原田さんの最近の著作のなかでも、結構 UML を使用されてますね。

実はですね、私はオブジェクト指向を非常に苦労して身に付けたんです。ずっとC言語だったので、オブジェクト指向的なものをやってなかったんですよ。Java をやるちょっと前に C++ をやりまして、それ以来なんですけれど。最初は「コンストラクタって何?」っていう状態でした。そのうち Java で色々プログラムを書くようになって。最初はCを Java で書いただけのプログラムしか書けなかったんですけど、Java House Brewers メーリングリストとかで他の人達の色々なソースコードを見て、「あ、こうやって書くのかな」と思って自分なりに勉強して。慣れてきたら、「あ、これいいじゃん!」っていう感じでですね。インターフェースとか使えるようになってくるとですね、「もう、あ、これはオブジェクト指向でないとだめだよな」っていう感じになりまして。

-- どちらかというとやっぱり Java をきっかけに。

Java きっかけですね。もう本当に。



JSP、Servlet、カスタムタグ、色々あるけれど・・・

-- それでは技術的な話に入りたいと思うんですけど、Web Application っていう意味でいうと、ひとつ悩ましいところとして、プレゼンテーション部分の技術が多種多様あってどれを選んでいいか分からないというのがあると思います。 どう使い分ければいいのか、原田さんも結構聞かれると思うんですが。

聞かれるというほどではないんですけど。今、どうしても JSP が主流ですよね。ただ、私個人としては、JSP はおすすめではなくて。

-- (笑)そうですか。

多分ご自分でテンプレートを作られたと思うんですが、そういうのが1番いいんですよね、本当は。ただ、Web Application って、市場的に需要があって、人が足りないんですよ。人を投入するときに、プログラムが必ずしもできる人じゃなくて。多少やってたにしても何やってたかっていうと Java Script か VB なんですよね。そういう人たちが、Java のオブジェクト指向ばりばりのテンプレートを使うのは、まず無理なんですよ。JSP は簡単に書けるし、入り口として工数的に非常に短くて済むし、どうしても JSP に頼らざるを得ないんですけど、せめてカスタムタグを使ってほしいですね。

-- 使いやすさという意味での JSP のよさがあると思うんですが、同じように、テンプレートエンジがもともと用意されている環境であれば、使う側から見て簡単ですよね。

もう1つあるのはオーサリングツールとの相性問題なんですよ。

-- それも聞きたかったところです。

今、いわゆる商用のサイトでは、デザイナーが作って、技術屋さんが仕方がないのでタグを埋めていく状態なんですけれども、そのときにあまりにもオーサリングツールと入り口が違うとだめなんですね。技術屋さんが仕方がないから全部書き直すということになってしまうんで。デザイナーさんによっては、Java Script を書ける人であれば自分で JSP のタグくらい多少書けるんですよ。そういうレベルの高い方もいらっしゃるんで、そういう方にある程度のところまで作ってもらうというような、役割分担の関係もあって。ただ、どうしてもオーサリングツールが使えないと不便なので、まぁ相性もあって、テンプレートが最近こう・・・

-- 着目されている。

ええ。

-- JSP とかに対応したオーサリングツールって、ないんですかね?

対応してるのはあるらしいですね。

-- あとテンプレートを考慮に入れたときに、オープンソースで出されているテンプレートエンジンとかは結構ありますよね。原田さんの著作の中でも Tomcat とか、いわゆるオープンソースコミュニティの製品を使われることは多いと思うんですが、いわゆる商用プロダクトではないオープンソースのソフトウエアを使うメリットとは?

ひとつはですね、書籍や雑誌で取り上げる理由は「ただ」だってことなんですよね。読者全員がただで入手して試すことができるんですよ。製品で取り上げてしまうと、ものによっては買わないと使えないわけです。それはそれで価値があるんですけれども、私はわりと General な読者を対象にしてるんで、学生さんでも誰でもただで入手して使えるということで、取り上げるのはフリーのオープンソースが多いですね。あと、オープンソースっていうのは、ひとつの今の流れということもあって。ソースコードを読んで、勉強できるというのと、あとはセキュリティ関係ですね。オープンソースはセキュリティホールが見つかりやすいし、見つけてくれる人が比較的多くて、早く対応されることもありますし。製品として十分使えるものがオープンソースとして出てますから。

-- 我々みたいな SI がオープンソースを使うのは、敷居が高い。敷居が高いというのは技術的なことではないんだけれど、それを顧客に使っていただくのはなかなか難しいところがあって。

ああ、わかります。会社に勤めているときにそういう問題がありました。フリーだからサポートが基本的にないですよね。お客様がとても嫌がるんですよ。Apache を入れようとしたんですが、Web Server として非常に素晴らしいし、いいんですけど、フリーのものを入れていいのかっていう不安があったようで。今だったら違うかもしれませんけど。

-- 今はApacheっていえばインストールベースで言えばNo.1ですよね?

No.1ですね。もう商用でも大分動いていると思うんですけど。ただ、ちょっと不安があったようで。何かあったときに、いったい誰がサポートしてくれるのか。サポート体制っていうんですか、担当の営業さんがいて、何かあればその人に言うと技術屋さんが来る、というのがない。そこが不安に思うところのようですね。

-- また元に戻るんですけど、先ほど言った JSP のなかの Taglibs 。あれは、私は使うのはいいですけど、作るのはかなり敷居が高くて。

Jakarta Project のひとつに、Jakarta Taglibs があって、使えそうなタグをたくさん作って用意してるんですよ。あとはベンダーが自分の製品につけて出してるケースも結構あるんですよね。ただ、混ぜて使うと問題になるんで、Jakarta Taglibs の Project が中心になって、仕様が決められつつあります。ですから、ちゃんと固まれば、パラメータの受け渡しとか、コンポーネントとして、完成しているものを使うという形になっていくと思いますね。

-- Taglibs の標準仕様のような感じですか。

そうですね。今 Request for comment 状態で。

-- 頼もしいというか、期待できるお話。

ええ、そうですね。多分それをやると、カスタムタグが広まると思うんですけど。

-- JavaOne の Struts の BOF で、taglibs を使うとパフォーマンスが落ちるという話を聞きました。これは Struts に限ってのことかもしれないんですが、使い方によるんでしょうか?

Taglibs っていうのは、JSP で見るとタグ1つ入ってるものなんですけど、ソースコードを見ると結構大きいのが入って来るんですよ。あれ、コンポーネントなんで、中身の実装は別にして、メソッドをどんどん呼んできますよね。無駄なメソッドも呼ぶんですよ。中身のないものも。たくさん使うとたしかにオーバーヘッドは大きいかもしれないですね。カスタムタグのインスタンスをプールしておくタグプールという方法が出てきました。

-- その辺はうまく使ってみて使い分けるというか、その便利さを取るんでしょうか?

あとは、1つのページにそんなにたくさん詰め込まないことですね(笑)。

-- デザインの問題ですね(笑)。



EJB はなくても開発はできる?

インタビュー風景 -- 最近の Servlet っていうのは、Sun が出してる ServerSide テクノロジーのひとつだと思うんですが、Servlet でどこまでやるべきか。どこまでできるのか。これは、技術的な話にとどまらないんですが、実際のところ、どういう場合に Servlet のみで開発して、どういう場合に EJB を使うべきなのか。原田さんのお考えをお聞かせください。

そこの区別はちょっと難しいんですけれど、規模が関係してくると思うんですよね。JNDI 等が必要になるほどのものなのか、数台の Webサーバだけで済むのか−そういったところですね。

-- それはアプリケーションの大きさという意味ですか?それとも、サイトに対するトランザクション量の多さということでしょうか?EJB なんていらないと言って Servlet のみで頑張って大規模サイトを作られているようなところも結構ありますよね。

あります。できてしまうんですよ。

-- だから、規模といってもどこを指針にしたらいいのか。もしかしたら EJB って要るのかな、って。

私も今のところ疑問は持っているんですよ。ただ、EC-One さんとかのコンポーネントという商売っていうか。使えるものがたくさんあってですね。で、やはり EJB はプログラミングが難しいんですね。それなりに便利なんだってことになってくると、どんどん普及してくると思いますし、Servlet だけで作っていても、内部で自分でコンポーネント化して作ってるわけですよね。それが、もうちょっと EJB という土台に乗っかって、共通的なコンポーネントになって、動いていくと、そういうコンポーネントを作った人はコンポーネントを売れるし使えるし、そこでメリットが出てくるんですよね。

-- やはり、コンポーネントテクノロジーという意味での利用価値がある?

というのが私の考えですね。ただ、EJB を使えるサーバーの値段の高さっていうのは、大分ネックだと思います。あれはちょっと普及を妨げてるんじゃないかな、と思う。

-- 価格面を考えた上で、多くのサイトで Tomcat とかは結構使われてると思うんですけど、まだ EJB コンテナ(フリーの)が使われてるっていうのはあまり聞いたことがないですね。何か、ご存知ですか?

そうですね、あまり使われていないかもしれませんけど、表に出てこないんで、その辺はちょっとわからないんですね。

-- ベンダーさんは、自分のところの製品が使ってもらえれば宣伝しますけどね。

実際にアプリケーションを納入している業者さんは、普通はしゃべらないですから。ベンダーさんは、自分のところで使ってもらえれば宣伝しますけどね



最近の Servlet の動向

インタビュー風景 -- Servlet の最近の進化っていうか、今度新しく API2.3 が出ましたね。どこが変わったんですか?フィルターくらいしか理解認識してないんですけど。

目玉はフィルターですけど、あともう1つは、Web アプリケーション間の通信ができるようになった部分。

-- アプリケーション間の通信ですか?

コンテナに、Web Application っていって、一定の書式のものを追加しましたよね。

-- WAR ってやつですね?

そうですね。今までまったく独立で、通信する手段はなかったんです。それは、やっぱり、一般プロバイダーが頭にあったっていうのがあると思うんですよ。でも結局 Servlet ってそんなところで使われなくて、いわゆる e-Commerce サイトでしか使われない、ということが彼らもわかったらしくて。WAR 間で通信できないのが、やっぱり不便なんですよね。両方のアプリケーション通信ができるようなイベントが追加されたんですよ。

-- ある意味でサーバーサイドでいくつかの役割分担をして、必要に応じてコミュニケーションしているということですね?

そうですね。開発してても、インターフェースが取れてればお互いに通信できる。

-- Servlet 単体でそんなに進化すると、ますますその後ろの部分はいらなくなっちゃうんじゃないかと?

あとは、何台か用意したときのセッションの維持ですか。どうしても負荷分散したいけれども、セッションも維持したいときに、Web アプリケーションにはできないんで、このバックエンドをどこかでやらなきゃいけない。で、それを多分今は、WebLogic のような商用製品ではできるような気がするんですけど、そうじゃないサーバーを使ってる方は、自作してたりとかされるんで。

-- それは複数台のサーバーを含めてセッション管理?

ええ、そうなんですよ。どこの WebServer に振られても、セッション維持ができるようにしていたいっていうと、DB を使いたいケースって結構あると思うんですけれども、DBってどうしても負荷が高くって、で、それをやらないとちょっと途中にサーバーを1個つくったりとかするんで、そこにEJBサーバーを1つ置いてみるとかいうのもあるかもしれないですね。

-- ちょっと視点を変えてですね。Java のポータビリティってメリットの1つになっていると思うんですけど、Servlet とか EJB とかっていう世界においては、本当に進化が速いですよね。これは Java の本質ではないかもしれないんですけど、本当にポータビリティが維持されるのか。具体的にいうと、あるお客様のところで、アプリケーションを使って導入して。で、ちょっとプラットフォームを変えたい。でも、そのときには製品も新しくなって次のバージョンになっている。EJB のバージョンが違うと、一部構造を書き換えなくちゃいけない。結局は Java で書いてるのに、J2EE のバージョンの問題で、構造を書き換えなくてはいけないっていう悩ましいところがありました。Servlet でも、前のバージョンで書いてるコードが書き換えになることがありますか?

最近はないですね。少なくても、2.2から2.3に関してはありません。

-- そうか、そういう意味で言うと、もうある意味 EJB よりも枯れた・・・

もう大分枯れてきましたね。

-- EJB を利用したアプリケーションの場合だと、明らかに書き換えないといけない部分もあったんで、そういう意味合いにおいても Servlet は…

大分落ち着いて来たんじゃないかな、という感じですね。



仕事のスタイル

インタビュー風景 -- 私も Java One の BOF (IAJ Java 部会 WG/BOF ページをご覧下さい。) 、聞かせていただいたんですけど、今はフォーディーネットワークスさんに所属しておられるんですよね。メールにあった「ねぽる」とはどのような関係になるのでしょうか?

会社をやめたときに、何も肩書きがないと困るんですよね。名刺を作るにしても、渡すにしても。で、netpotlet っていうドメインを取っているので、長いんでねぽると省略して、それを一応肩書きとして使うことにしているんです。フォーディーさんの方にも契約社員としてお世話になっているんですけど、常駐はしてないんですね。

-- そういう形なんですか?

フォーディーネットワークスは、場所が神奈川の市ヶ尾で、ちょっと遠いものですから、通うっていうのもちょっときついし。フォーディーさんの方も、「毎日来る必要はないから、たまに来ればいいよ」っていう感じなんで。

-- いいですね。契約社員として、フォーディーネットワークさんにお勤めで、一応個人でもやってるということで。

個人でもやっている仕事はあるんですけど、ライティング関係というんでしょうか。雑誌、書籍関係だけで。ソフト開発とか、これからは教育関係にも手を広げていきたいのですが、そちらはフォーディーを通してということで。

-- 原田さんのエンジニアとしての側面以外にも、表現者として、著作者として、色々なものを書かれていると思うんですが、原田さんの書かれたものを見させていただくと、アカデミックというよりも、わかりやすく書かれていて。表現に気を使われていることとか、こういう人を対象に書いているんだっていうようなところはありますか?

出版社さんの方から初心者向けでという条件があることが多いんですよ。やはりそういう記事を読みたいと思ってる方は初心者の方が多くて。出来る方は自分で仕様を読めばわかるんで、あんまり読まないらしくて。初心者向けでっていう条件がついたときには、私なりに敷居を下げて、なるべく分かり易い表現を心がけているんです。

-- では、原田さんのポリシーというよりは、需要と供給の関係で(笑)。

そういうことはありますよ(笑)。

-- いちばん最初に出された Java Servlet には非常にお世話になって。多分東京のオフィス(オージス総研の)だけで7冊か8冊はあると思いますよ。

あれはかなりオブジェクト指向を意識して書いたものですね。わからないっていう方がすごく多くて。基礎的な部分は書かなくて、そこはわかっているものとして書いたので。、ちょっとやった方にはよかったらしいんですけど。あの頃はあまり本がなかったんですよね。2冊目はですね、雑誌をまとめたということもありますし、少し1冊目は難しいと言われたんで、だいぶ初心者向けに易しくしたんです。ちょっと物足りないものがあったかもしれません。

-- 著作のほかに、自分のホームページなんかで Web のコミュニティという意味合いで顔をだされたりしてるんですけど、Web の「おちゃらけ・・・」ってありますよね?。

はい、ありますね、おちゃらけ(笑)。もともと北島さんという方の声かけで、何人か「オブジェクト指向大好き」みたいな人が集まったのがはじまりで。そこから聞きつけて入ってくる方が何人かいて、今もう10人以上いるのかな。

-- 具体的にどういう活動を?

活動っていう場はないんですが、メーリングリストでくだけたオブジェクト指向談を話したりなどして、楽しんでいるというか。

-- えーとですね、それから今回浅海さんからのご紹介ということなんですけれども、浅海さんとお知り合いとなったきっかけは?

XML つながりといいますか。一昨年になるでしょうか、去年は XML Japan っていう名前だったんですけれども、その前は XML フェスタっていう名前で、結構わりと大きなカンパニーが開催されたんです。そちらに呼ばれてちょっと XML 方面をやりだして。それ以来ですね。ServletWG っていう、今は IAJapan ですね、Java の会の幹事をやってまして。で、ミーティングで色々頼むんですよ。で、以前、浅海さんにもお願いしたことがあったんですね。多分それが浅海さんにお会いした最初だと思うんですが、その後は XML の関係で会ってますね。

-- Java と XML って非常に近いというか、関係が深いですよね。



プライベート

-- 結構この業界って、女性が向いてるからかもしれないんですけれども、女性が多いですよね。うちの会社でも、結婚後も仕事を続けていて、出産でしばらく休職した後、再び復職した人も何人かいます。読者の方にとっては、バリバリと活躍されている原田さんのライフスタイルも、非常に興味が大きいと思います。お子さんはもう小学3年生ですよね。そういう意味での苦労もあると思いますが、具体的に仕事と主婦の顔を使い分けるテクニックはありますか?

テクニックなんていうものは、特にないんですけども。

-- 限られた時間の中で、どのように時間を作ってらっしゃるんですか?

私は八王子にしばらくいて、子供を生んだ時も八王子だったんですよ。保育園に預けて仕事に行くようになったんですが、その頃はですね、会社のすぐそばに住んでいたんですね。

-- 八王子オフィスですね?

ええ。会社のすぐそばにも保育園もあって、行ったり来たりする時間がかなり短縮されてたんですよ、都心みたいに1時間、30分ということはなくて。保育園に預けて会社に行っても、30分未満で。私が勤めていた会社にはわりあい古くから働く女性向けの制度が色々とありまして、短時間勤務制度がかなり早い段階からあったんです。

-- ライフスタイルにあわせた制度を会社が用意してくれてたんですね。

そうなんですよ。パターンも何種類かあって、選べるんですね。週に4日とか、5日働くけど時間短くするとか。結構便利に使わせていただいて。

-- 当然、ご主人と協力というところも?

いや、あんまりして協力してもらわなかったかな。仕事、忙しかったんで。行ったらもう夜遅くにしか帰ってこないみたいな感じで。あとは上司。私はいつも恵まれましてですね、理解と協力を得られて。上司の方でうまくやってくれたことも何度かありまして。

-- これまで一番大変だったことは何ですか?

子供の病気はきつかったですね。子供の病気で私の有給休暇は全て吹っ飛んだという年が。

-- 会社を独立されて、時間的には融通がきくようになりましたか?

ええ、ずいぶんきくようになりましたね。でも、小学校にあがってからはきついですね。特に小さいうちは、まだ1人置いておけないので、普段は学童保育で、夏休みとかに入ると、毎日お弁当を朝作って持たせて出すんです。給食がないんで、お弁当を持って学童に行くんです。こっちもきついんですけど、休んで家に置いとくわけにもいかないし、行けばお友達もいるんで、それなりに子供は楽しく遊ぶんで。



今後の予定

-- 原田さんとして何か告知するようなものはありますか?

技術評論社から出した図書*の第2版を出す予定です。

サーブレット&JSPではじめるJavaサーバサイドプログラミング (2001/03/01発行)

-- バージョンも変わって、新しい機能も加わりましたし、やはり版が変わったときには、色々と手を入れていかなければいけないんですね。

ざっくり変えようと思っています。本を出したころは、JSP サーブレットの本ってあまりなかったんですが、今は色々あるんですよ。同じ内容で出しても、重なるところも多いし、技術評論社さんからも既に2冊出てるんですね。上級者向けに書いてみようかな、と思ってるんですけど。

-- いつ頃出版されるんですか?

「5月とか6月くらいに出るといいですね」とは言われてるんですけどね。あまり遅くなると苦しいんですよ。書いてるうちにバージョンが上がってしまうんで。

-- 悩ましいところですね。

新しいバージョンでまた動作確認をしてから出さないといけなくなりますからね。

-- 原田さんとして、今後取り組んでいきたいことをお聞かせいただけますか?テクノロジー的なことを含めてで構いませんが。

XML に今すごく興味を持ってて。浅海さんとかもすごく興味をお持ちですよね。Relaxer っていうんですか。あと、 Jini を使えるような方面で。

-- Jini はもともとご専門ですものね。



新人SEへのアドバイス

-- これからこの世界に入ってくる人たちに何かアドバイスをお願いします。

やっぱり「勉強しなさいよ」というのかな。本を読んで、勉強する態度ですかね。勉強しようとする取り組み、自ら取り組もうとする態度を身に付けてほしい。あとは広く見て欲しいんですよね。Web アプリケーションなんか特にそうなんですけど、セキュリティの問題、HTTP のところとか、要素がたくさんあるんですよ。それを Java だ、Servlet だっていって、そこしか見てないと、なかなか目に入ってこないんで。あとはユーザさんの立場になって見るとか。横を見て欲しいですね。

--「勉強しなさい」と。肝に銘じます。

他人のソースコードを読むのはいい勉強になりますね。

-- そうですね。ソースコードにしろ、デザインにしろ、結局いいものを見て覚えるしかないのかな。

本を読んでもなかなかわからないところだと思う。

-- わかりました。もう1回奮起して、勉強などし直させていただきますので、また何か機会があればですね、色々とご指導をお願いしたいと思います。

-- 本当に本日はありがとうございました。


©2002 OGIS-RI Co., Ltd.
Prev Index Next
Prev. Index Next