2013年のIT予測(俺版)の答え合わせ

今年の元旦に以下の記事を書いた。ITと書いているが、エンタープライズシステムと捉えてもらった方が正しいと思う。この答え合わせをしよう。

2013年のIT予測(俺版)
http://www.mushagaeshi.com/2013/01/01/2013-my-it-trend/

書いたのは以下の5点であった。

  1. SI企業は大手に収斂されていく
  2. クラウドシフトが一段落するが、中小企業への導入が一層進む
  3. 企業システム開発でJava EEが息を吹き返す
  4. パーソナル市場での「ガラケー」「PC」の事實上の滅亡が起こるか
  5. 国内IT技術者のレベルは一層落ちる

1. SI企業は大手に収斂されていく

まずこの点。「SI」の動向を押さえなくなって久しいので、実際どうなっているのかはよく分からない。まあ、和製英語で日本にしか無いガラパゴス業界なので、もはやあんまり興味が無いというのも本音ではある。

ので、採用状況を見てみる。調子が悪いならば悪化しているはずだが、どうも調子は良さそうである。

日経コンピュータ 2014年春採用版 IT業界就職人気ランキング
SI の人気上昇、メーカーは苦戦
http://itpro.nikkeibp.co.jp/article/COLUMN/20130318/464164/

で、決算はどうかというと・・・

NTTデータの上期決算は大幅減益、不採算案件が営業利益を250億円押し下げ
2013/10/31
http://itpro.nikkeibp.co.jp/article/NEWS/20131031/515305/

NTT DATAだと『営業利益は同91.3%減』だそうで、どう考えても好調とは言えない状態のようである。ただ、富士通はテクノロジーソリューション部門が増収増益、NECは減収減益とのことで、実際の所どっちかというのは分からない。微妙だったということだろうか。

2. クラウドシフトが一段落するが、中小企業への導入が一層進む

次。クラウドだが、案の定銀の弾丸よろしく何でもござれの熱狂はどこへやら。概ねクラウドは熱狂から冷却へ完全に舵を切ったと考えても良いだろう。まあ、この予測は簡単。

機械と人間との関係が変わる—ガートナーの技術トレンド・レポートより
http://gendai.ismedia.jp/articles/-/36838

中小企業への導入、に関しては正確に調べようが無いのでよく分からないのではあるが、例えばiPhoneを持ってる人は使ってるiCloudなどはまあその名の通りクラウドではあるし、Windowsに組み込まれたSkyDriveもクラウドストレージではある。中小も個人も、これらを使わざるを得ない状況に段々シフトしてきていると考えても良かろう。Microsoft Officeも365でクラウド化してしまったわけだし。(日本への個人向けは何故か未導入だが)

3. 企業システム開発でJava EEが息を吹き返す

三つ目。これについても正確なところは分からない。が、今年Oracleでセミナーで喋った記事のページビューは非常に良かった、と担当の方から聞いている通り、実際流行ってるかどうかはよくわからないものの、企業の担当レベルでは気になっている、のは間違いなさそうと考えて良いだろう。

楽天とオラクルのアーキテクトが本音で語る、「Java EE 6導入を推進するうえでのポイントと導入効果」
http://builder.japan.zdnet.com/sp_oracle/weblogic_2013/35036674/

また、IT教育サービス関連の方から年末に良く聞いた話としては、Java EEのワークショップが必要に好調である、だそうだ。これはこの会社がたまたまそうなのかも知れないし、そうでないのかもしれない。

今年という範囲だと微妙かも知れないが、そろそろ本格再始動、というステージに居そうだな、という感触である。

4. パーソナル市場での「ガラケー」「PC」の事實上の滅亡が起こるか

四つ目。これは最初からだいぶ先の話、と断り書きがあったとおりである。ので、今年では無い話。滅亡という意味だとまだまだ使われてるので、2013年末の時点ではまだまだ現役。

ただ、方向性としてガラケーがスマートフォンへ、PCがスマートタブレットへのシフトは完全に方向付けられた一年だったと荒く総括しても、そんなに無茶では無さそうである。

ガラケーの滅亡は概ね誰もがそう思ってるので省略するとしても、MicrosoftのWindows 8の失敗と8.1の方向修正という混乱、及びSurfaceでのハードウェア参入で従来のハードウェアメーカーと乱闘中という状況は、どう考えても輝く未来がありそうに見えない。そのうち離散する可能性が非常に高い。

滅亡へのカウントダウンが正式に開始した、と考えて良いだろう。

5. 国内IT技術者のレベルは一層落ちる

最後。レベルの話なので評価するのは無茶すぎるのであるが(笑)、IT系技術書の刊行ペースは予想通りかなり鈍化してきているし、JavaWorldが復活するか?と思っていたIDGインタラクティブも9月に完全撤退してしまった。

勉強会に参加しよう (IDGの撤退について話あり)
http://el.jibun.atmarkit.co.jp/yokoyama/2013/09/

ピアソン桐原もピアソンから離脱して、翻訳書が全滅した。これで『人月の神話』の邦訳もC++系書籍もジエンドである。まあ、底本が古くなったのが多かったのでしょうがなくはある。原書で読みましょう。

ピアソンの技術書は書店在庫限りとの見通し。ピアソン桐原社がピアソングループ離脱で(追記あり)
http://www.publickey1.jp/blog/13/post_233.html

まあ、要するに日本語縛りのある日本IT市場は投資に適しないと世の中から判断されていると考えれば良いだろう。今までがバブルだったのかもしれない。わからん。

かといって、技術者の英語力が上がっているとも思えない。日本人は39位、全体平均512点。

TOEIC TEST World Wide Report 2012 抜粋
http://www.toeic.or.jp/library/toeic_data/toeic/pdf/data/Worldwide_2012.pdf

下記を見ると、「SE」の平均点は466点である(Listening 258点、Reading 208点)。日本人の平均より50点近く低い上に、Readingが200点程度と、「日本のIT技術者の平均層は英語の技術書に関してはほぼ読めない」と考えて良いだろう。

『TOEIC®プログラムDATA & ANALYSIS 2012』今年もまとまる
http://www.toeic.or.jp/press/2013/57.html

一応補足しておくと、TOEIC自体は別に大したことの無いテストであるし、それが高得点取れたからとて、然程凄いという話でも無く、ネイティブの小学校レベルとも言われているし、私自身もそんな程度と思うので、まあ精々そんなもんだと思って頂ければ良い。

ただ、自身の経験から言うと、せめて700点〜800点程度のスコア(Reading 350-400程度)が無いと、英語の技術書は読めない。少なくとも、そこに何が書いてあるのか、という事をすらすらと把握することは難しい。TOEICの短文で構成されているPart 7に頭を悩ませている程度でどうして難しい技術書が読めるのか、という話。まあそれでもせいぜい小学校レベルの読解力なので、やたらとややこしいことが書いてあるともうアウトである。

で、話を戻すと、日本語の書籍は減少。英語の書籍やオンラインドキュメントは多いけど読めない。新技術はどんどん登場してくる。で、どうやってこのラットイヤーを乗り切るのか?

無理でしょう。

実際のやっぱり緩やかな死を迎えつつあると考えて良さそうかなと思っている。結果が出るのは早くても数年後だろうけど、分かったときにはもう取り返しの付かない状況かなと。もう個人レベルでどうこうできる状態では無いので、熱意のある方は頑張って英語を勉強して読めるようになりましょう。(英語学習については年明けに別に書きます)

ということで、以上、ざっくりとまとめてみた。当たらずしも遠からず、という評価でいいかなと思ったが、甘いかも知れない。まあ、所詮は個人の寝言を書き散らしたBlogなので、ネタのひとつとして読み飛ばして欲しい。

何故サンフランシスコに一眼レフを持って行かなかったか

Scan-131124-0007

超逆光寫眞である。これがXAの限界であらう。まあ頑張ってる方である。さてサンフランシスコの寫眞は一杯あるものの、他にも澤山あるのでこのくらいで一旦止めておこう。

今回持參したOLYMPUS XAであるが、前回持って行ったNikon F6に代へて、といふ話は前回書いた。で、どんくらいその大きさが違ふのか、といふ事を最後に記しておきたい。

IMG_4399

35mm判の寫眞の大きさはこのくらいで、XAの大きさがこのくらい。これを憶えておきたい。

IMG_4400

で、前回持參したセットであるF6 + AF-S VR Zoom-Nikkor 24-120mm F3.5-5.6Gとの比較がこれ。圧倒的にF6がデカすぎる。ちなみにこのレンズはF6発売時の標準レンズみたいな位置づけで出たものである。一眼レフ側の重量は本体975g + レンズ575g = 約1.6kg。對してXA側はたったの200g。

IMG_4401

横から見てもこれ。ペンタプリズムの出っ張り分はしょうがないとしても、それ以外がデカすぎる氣がする。

で・・・撮れる寫眞は同じサイズなのである。

うーむ、と考へるわけである。寫眞を撮る行爲が愉しいか否か、という點は時と場合に依るためさておき、同じサイズの寫眞しか撮れないのにこの格差。いくら何でも酷すぎるんじゃないか、と思ふのである。

元々、何で35mm判が登場したのか、を考へると、35mmの映画フィルムを轉用して小型の箱にぶち込んだバルナックライカの登場まで遡る。それまでの120判(ブローニーフィルム)と比較して幅が約半分で可搬性に優れ經濟的だったところが自己同一性だったはずである。

で、その成れの果てといふか進化し盡くした結末が、ニコンの35mm判フィルム最終機になりさうな予感の、このF6である。F5と比較したらこれでもだいぶ輕くて小さいのであるが、やっぱりでかくて重い。でも「35mm判」なのである。所詮小型判。レンズが良いとか惡いとかズームが便利だとか逆光がアレだコレだと言っても、言っちゃ惡いが所詮小型判なのである。これで撮った寫眞を四切りや半切に伸ばすと結構辛い。といふかかなり辛い。ボケボケで無理。

で、5年くらい前に散々惱んだ擧げ句、中判・大判に進むことにしたのであった。巡り巡って、またもや同じ問題に當たった。我ながらアホだなと思ふのだが、趣味だからこんなもんだらう。

なので、やっぱり35mm判はちっちゃい方がいいよね、ってことでXAなのである。こいつが金属で出來てて趣味性に溢れてゐれば本當に良かったのにね、と云ふ事は語り盡くされて久しいやうであるが、やっぱり同じ事を思ってしまふ。

で、その先に行き着くところはやはり原點のライカスタンダードなのだらう。まあ、足腰が丈夫な内はその前に中判・大判を愉しむことにしたいと思っているので。だいぶ先になる予定である。予定は予定なのでどうなるかは不明だが・・・

今年はメインでHASSELBLADを使ふことが多かった。忘れさうなので、といふのと、整理を豫て、今年撮った寫眞を近くまとめておきたいと考へているところである。

サンフランシスコの街中 其の貳

Scan-131124-0005
(Click to large)

サンフランシスコの街中の2枚目である。相變はらず逆光っぽいところもあり、やっぱり何となくボケっとしていて、被寫體もレトロで、今度は更に遡って70年代テイストである。輝度差が酷すぎるため、とにかくハイライトは飛びまくっている。まあ、こんなもんであらう。

さて、あちらは電車もレトロなのが普通に走っており、雰圍氣滿點である。經濟效率優先な東京のガキっぽいギラギラ銀色ではない所が良い。どちらかといふと米國はあまり好きではないのだが、欧米の大人な雰圍氣優先な所はさすがに見習ふべきだと思ふ。良い所は良い、惡いところは惡いといふ眞っ當な感覺を大事にしたいと常々思ふのである。

過去、東京に住んでると心地よくてこの當たり前の感覺を忘れてしまいがちであった。九州に戻ってこの點を強く感じた。そしてサンフランシスコに行って更に強く感じた。世界の中心は最初から東京ではない。東京の感覺とそれ以外の地方の感覺は違う。東京の感覺は他の國ともかけ離れている。ここを辨えず踏み外すと、いろいろ失敗しそうな氣がするのである。まあ、おっさんの戯れ言である。

ちなみに前回のタグでFUJICOLOR X-TRA400(ネガフィルム)としていたのだが、PROVIA 100F(リバーサルフィルム)の間違い。ボケっと眠い系の描寫だったのでネガとばかり思ひこんでいた。確かにフィルムを見ると、途中まで撮って放置していたあと、そのままアメリカに持って行ったのであった。普通に手荷物検査でX線照射を浴びまくったはずなのだが、ISO 100の爲か全く問題がない。低感度フィルム萬歳である。

IMG_4398

前回の寫眞のスキャン畫像を上げたときに「XAって何?」と聞かれたので、これも上げておきたい。超小型のレンジファインダー型カメラである。たぶん、光學視差式の距離計が付いてるカメラの中で最小であらう。ファインダーを覗くと、真ん中に黄色い窓があって、そこが左右にぶれて見へる。レンズの下のレバーを動かすと、その像が左右に動き、ぴったり合ったら焦點が合っている、という、まあライカ(バルナック・M型)とかと同じやつである。

IMG_4399

ちなみに前回も書いたが、デカい一眼レフF6でも、このオモチャなXAでも、35mm判(135)である限り、撮れる寫眞のサイズはあくまで小っこい35mmフィルムの幅、24mm x 36mmといふ極小の像である。(この極小サイズを「フルサイズ」とか「FX」とか大仰に吹聽する近年のデジタル一眼レフ市場の滑稽さであることよ。)

35mm判の場合小さい方が良い、と特に最近思ふやうになった。これは次回にまとめておきたい。

サンフランシスコの街角

Scan-131124-0002
(Click to large)

これまでの流れを考へると何となく場違いな(笑)コンピューターな話題が續いてしまったのだが、そろそろ年末であるため、今年の寫眞についてもゆるりとまとめておきたい。

今年の9月末にJavaOneカンファレンスの爲サンフランシスコにまたもや行ってしまったのだが、前回の教訓として「重い物はヤバい」といふのがあった。まあ、重いのを背負って一日中移動しまくると云ふのは確かに考へた方が良くて、去年はHASSELBLADと散々比較して悩んだ擧げ句、万能用途としてF6とAF-S VR 24-120mm(旧型)をリュックに突っ込んで行ったものの、デカいわ重いわで碌な想い出が無いといふ散々な結果に終はってしまったのであった。ハッセルを持っていかなかったのだけは、正解であった。

そのため、今年は思ひ切ってレンジファインダー至上最軽量のXAをポケットに突っ込んで行った。結果は大成功で、無限遠に固定して街角でパチ、ギーギー、何かあったらパチ、ギーギー、とまあスナップ用途としては確かに素晴らしい成果を挙げたのであった。

第一、この写ルンですの元ネタでもあるXAは端から見ても只の玩具であり、もしくは激安のデジカメ型落ち品のやうにも見える。このためクソ危險なサンフランシスコの街中でも、盗まれる恐れも、その爲に襲はれる恐れも少ないのである。絶対高値で賣れないであらうことは素人目にも明らかなのだ。iPhone 5Sで撮る方が100倍危ない。

XAのレンズは一応、瑞光の名前が入っているものの、まあツァイスのテッサーもどきな小型レンズの割に描寫は微妙といふものかなと思ふ。この寫眞のスキャン結果を見ても分かるとおり、今年の街角でもあら不思議、80年代の薫りが。要するに、逆光氣味で撮るとボワーンとなってしまうのである。順光だといいんだけどね。

ピントが合ってるところは流石にテッサー型であるためか、至って鋭い。ISO 400のフィルムの粒子の粗さも相まって、なかなかの雰圍氣である。

まあ、逆に云ふと變なコーティングやら何やらが無くて至って普通の何の変哲もないレンズだ、とも云へるだらう。

XAは持つ喜びと云ふ世界とは無縁のプラカメであるものの、かういふ用途には絶好である。同行の士に「それ何?」と何度も聞かれたが、「只の35mmフルサイズのカメラ」と應へておいた。殘念ながらこの洒落はほとんど通じなかったやうだ。

GlassFishの商用乗り換え先について(補足)

昨日のJava EE Advent Calendarの続きなんですが、前回はWebLogicをターゲットにしたんですけど、それだけだとちょっと物足りない感じもするし、何だかOracleの回し者のような気もする(笑)ので、とりあえず他の会社のも簡単に補足しておきたいと思います。

※「補足」の字が間違ってました(笑) 疲れてますねー (2013/12/09 09:35)
※ Interstageの選択について誤ったメッセージが伝わるといけないので、更に補足を追加しました(2013/12/09 14:39)

その他の会社のJava EE商用サーバー群について

今年の楽天テックカンファレンス2013でも語ったのですが、Java EEにはそれぞれ対応バージョンがあり、各社から下記のような形で出ています。

※英語のWikipediaでもかなりいい加減だったので、各社の発表やドキュメントを開き、必死に調べました(笑)

で、今回の商用製品(商用サポート付き)としてのGlassFishからの乗り換え先としては、繰り返しになりますがJava EE 7対応は残念ながらまだ出ていないです。恐らくJBossのオープンソース版であるWildFly(改名)が最初に出るのではないかな、とは思いますが、現時点では何とも言えませんね。

Java EE 6以前に関しては、概ね選り取り見取りと思ってもらっていいでしょう。最新版さえ選べば、対応しています。ベンダーによっては、最新版の提供は勧めない変な所もありますが、そういったところは品質に問題を抱えているか、もしくはサポート部隊が心許なくクレームを恐れているか、どちらかかなと思ってもらってもいいですし、何て石橋を叩いて渡る顧客思いの会社なんだ、と思ってもらっても良いと思います(笑)。

もちろん、個人的にはサポートライフサイクルが最長である最新版を選択することをお勧めしたいですが、まあそこはご自身で総合的に判断してもらった方が良いでしょう。

何を基準に決めればいいのか

さて、Java EEの商用サーバーシェアについては、いろんな調査会社があれこれ出しており、しかも会社によってバラバラの順位だったりするので眉に唾を付けて見る方がいいでしょうが(笑)、国際的にはWebLogic、WebSphereが二強、プラスJBossの三つ巴の戦いと考えてもらえれば良いかなと思います。国内を見た場合には、これに富士通のInterstageやCosminexus辺りがドカーンと参戦している形かなと思います。

わたし自身は過去これらのサーバーをだいたい使ったことがあるのですが、残念ながら最近のCosminexusを知らないというのと、WebOTXだけは実物を一度も見たことが無い、という制約はあります。

※使った(苦労した)or知ってるけど消えてしまったJava商用サーバーも多いです。Netscape Application Server (iPlanet AS)とかSilverstreamとかJRunとかOracle iAS (OC4J)とか・・・J2EE前後でかなりの興亡がありましたね・・・

で、このなかのどれがお勧めか、と問われると、どうかなぁ、と。どれも一長一短あり、なかには絶対使いたく無いものもありますが、そんなものをここで明け透けに発表したところで私自身には何の得も無いため、まあそこはオブラートに包むとしても、評価基準は幾つか持っておいた方が良いでしょう。

基準のひとつとして個人としてお勧めなのは、サポート力です。これは国内にどれだけのサポート部隊を抱えているか、バグなどが発覚した場合に、どのくらいのリードタイムでパッチ等を提供してもらえそうか、営業さんがどれだけ熱心に対応してくれるか、などなど、ここだけ見てもチェックすべき所は多数あります。これは勿論国内ベンダーが強い面もありますし、そうでない所もあります。

でも何が何でもGlassFishを商用サポート付きで使いたいたいんだ!という場合

さて、最終手段というか究極の話なんですが、でもGlassFishを愛してやまない、何とかして商用で使いたいんだ、という場合の話なんですけど、選択肢が無くは無いです。

実は、上記の製品のなかに、GlassFish互換品が含まれているんです。どれだと思いますか?

何と、富士通のInterstageの最新版なんです。Interstageといえば昔のバージョンはTomcatベースだったんですが、Java EE 5対応以降(つまり9.2以降辺り)で、GlassFish 2.xを丸ごと取り込みました。その後GlassFish 3系も取り込んだんですが、しばらく「本番用途サポート不可」という謎のステータスを経て、最新版でようやく正式に対応したようです。

勿論、GlassFish 4系ではなく3系なのでJava EE 6対応になってしまいますが、基本エンジン部分はだいたい同じであり、サーバーの乗り換えに際しての挙動変更を嫌う場合、実は良い選択肢かも知れません。

が、違う箇所もかなりあり、サポートOSの縛りがあるとか、インストーラーが独自すぎてわけわからんとか、管理コンソールとがGlassFishのと違うとか、周辺ライブラリーがごっそり違うとか、過去の遺産を引きずっているところも多分にあります。

まあ、なので勿論、決める前に実際に試用版を使ってみることをお勧めします。何とWindows XPや7などクライアントOSが非対応だったりするので、いきなり詰まる気もしますが(笑)、テスト用のWindows ServerやLinuxなどを用意してもらえれば良いかと思います。

※念のため更に補足しておきますが、Interstageが将来GlassFish 4.x系をそもそも採用するかどうか、また仮に採用したとしてもそれはいつなのか、というのは全く不明なので、もし気になる方は富士通の営業さんに実際に問い合わせてみましょう。ただ、富士通の場合、国内ベンダーらしく、サポート終了までの数年間は、ひたすら延々と黙々とサポートを続けてくれると思います。もちろん、GlassFish側も現時点では2.x系および3.x系のサポートについては一応続けています。なので、将来を見据えての乗り換え先としてはそもそも微妙でもありますし、とにかく「最終手段」です。

実は情報が少ないJava EEサーバーの選択

とまあ、一般に結構珍しいのではと思う観点でEE商用サーバーを私の視点で軽くまとめてみましたが、この辺りは意外にも公平な情報に欠ける点が多く、営業さんの営業力や技術者の趣味とか、はたまたお偉いさんによる星取表で決まってしまいがちな所でもありますけど、まあ何せプラットフォーム(土台)でもありますので、ちゃんと頭を使って選んだ方が良いですよ、という当たり前の話としてまとめておきましょう。

個人的には、どれが一番好きかって? うーん、一長一短だなぁ・・・(笑)

WebLogicをGlassFishの商用版として使う方法

※ WebLogicだけ書いておくのも何なので、その他の商用Java EEサーバーもこちらでまとめてみました(2013/12/08 22:20)
http://www.mushagaeshi.com/2013/12/08/from-glassfish-to-other-commercial/
※ GlassFish2系・3系のサポート継続について言葉が足りなかったので、念のため補足を入れました(2013/12/09 14:46)

こんにちは。Advent Calendarな時期になりましたね。この記事はJava EE Advent Calendar 2013の12/7の担当回です。12/6の回はwaritohutsuさんの http://d.hatena.ne.jp/waritohutsu/20131206 になります。

Java EE Advent Calendar 2013
http://www.adventar.org/calendars/152

ところで、先日Java EE界隈でプチ騒動が起きました。何とGlassFishの商用サポートが切られてしまったのです。大変残念な話です。

Java EE and GlassFish Server Roadmap Update (打ち切りの話が出てます)
https://blogs.oracle.com/theaquarium/entry/java_ee_and_glassfish_server

何故残念なのか? どうすればいいのか? そういった話を以下つらつらと続けてみます。Java EEは企業用途であり、商売が直接絡む話でもあって、こういった話はソフトウェア発売元もしづらいと思います。一方、困ってる所も結構多いと思いますので、ベンダー各社と全く無関係な筆者が私見をまとめてみました。

何故GlassFish商用版が必要だったのか?

この辺りに詳しくない方に一応説明だけしておきましょう。GlassFishは過去2.x系より「商用サポート」というSunおよびその買収会社であるOracleによって提供されてきた「パッチ」が存在します。Community Editionという一般公開版が3.1, 3.1.1, 3.1.2, 3.1.2.2, 4.0とバージョンを重ねてきましたが、この「商用サポート」には、何と、例えば3.1.2.2と4.0の間のバージョン、および4.0公開後に修正された一般未公開のバージョンが存在するのです。

これまでは、これを購入する場合にはOracleの営業さんに話をして、商用サポート権を購入していた訳ですね。知ってた人は知ってた話ですが、あんまり知らない人は全然知らないという系の話でしょう。

この辺りを見れば掲載されています。3系の最新版(最終版?)は何と3.1.2.6なんですね。
https://blogs.oracle.com/GlassFishForBusiness/

※念のため補足しますと、2.x系および3.x系のサポートについては、まだ一応継続しています。あくまで、将来のバージョンのサポートが無くなるという話になります。

商用サポートは何故必要だったのでしょうか? 特定の機能がちゃんと動かないとか、緊急の脆弱性が発見された場合に、その一般未公開バージョンがリリースされ、契約者はそれを適用して動作させていたのです。Java EEを利用するメインターゲットはEnterprise Editionの名前の通りEnterprise (企業)であり、何が何でも安定運用することが使命付けられたサイトやシステムに使われる事が大前提となっているから、ですね。

例えば、脆弱性があるからって放置してたり、バグで落ちまくる有名サイトがあったら利用者は困るでしょ? 金融系だと、さらに厳しくて、サービスによっては監督省庁に報告せねばならなかったりします。お金のやりとりが止まったら困りますよね? だから、企業はお金を払って、バグ修正版をもらう権利を買っていたわけです。

自分で修正すればいいじゃないかって? まあ、それはそうですが、修正したことで他の正常に動いていた機能が動かなくなったらヤバいですよね。どうやって修正が正しいことを証明するのか? それと、その次の修正版が出た場合、自分で修正した内容と異なる対処がされていたらどうでしょう? 延々と新しいバージョンが出るたびに、自分が修正した差分を適用していく必要が出てきてしまいます。ここらへんはGitやSubversionのbranchの関係を考えてもらえれば良いでしょう。つまり、公式の修正版を買った方が安い・早い・安全なのです。

ここらへんはEnterprise Systemの独特な所なので責めないで下さいね。世界中どこでも、大規模サイト、特に金融系など落ちたら大変なことになる所は、同じ事をやっています。オープンソースだからと自前で改変して独自バージョンをひたすらメンテナンスしているところは、現実の世界では実は多くはありません。

GlassFishが使えなければ、WebLogicがあるじゃないか

さて、話を元に戻しましょう。GlassFishが商用サポートの未来が無くなってしまったということは、別の商用サポートされているJava EE準拠アプリケーションサーバーを選択する必要が出てくるでしょう。幸いJava EEはMicrosoftの.NET Frameworkとは異なり、多数のベンダーが多数のアプリケーションサーバーとその商用サポートを提供しています。

そしてGlassFishの開発元であるOracleは、商用版Java EE準拠サーバーとして、WebLogic (ウェブロジック)を販売し続けています。古くからJ2EEを触ってきた人にはご存じのサーバーであり、Java EEサーバーの世界シェアNo.1、デファクトスタンダードと言われているものです。

一応言い訳をしておくと、筆者はJ2EE仕様準拠前よりWebLogicを使い続けているので、最も詳しいということがあるので、この記事ではWebLogicとしているだけです。勿論、他にもWebSphere、JBoss、Interstage、Cosminexus、WebOTX等、商用サポートが提供されているJava EE 6準拠サーバーはありますので、よりどりみどりです。

※こちらにWebLogic以外のサーバーを補足しました。
http://www.mushagaeshi.com/2013/12/08/from-glassfish-to-other-commercial/

が、最近GlassFishからJava EE世代になって入ってきた人にとってJava EEはさておき、その元ネタであるWebLogicは馴染みが薄いと思いますので、こちらも簡単に説明しておきましょう。

WebLogicの過去・未来

WebLogicは1997年頃に誕生した、元々WebLogic Inc.という会社が開発していたJava上で動くアプリケーションサーバーでした。当時はアプリケーションサーバーという名前もあるのかないのか、微妙な時代でした。名前も一時期Tengah (テンガー)というものでした。勿論、J2EE仕様なんてものもありませんでしたし、その前の暫定仕様であるProject JPE (Java Professional Edition)よりもさらに前の話です。

WebLogicはT3というプロトコルを持ち、それを土台としたEJBという独自仕様を持っていました。これはCORBAのモデルを忠実に移植したものであり、現在のEJBとほぼ同じものでした。CORBAは当時、特に金融系のデファクト・スタンダードとして、Object Brokerと呼ばれる製品と一緒に利用されていました。有名なところとしてはTuxedoやOpenJP1などがあります。トランザクション処理が可能なリモート通信を既に実現していたんですね。

これを買収した会社がTuxedoをも買収していたBEA(ビー・イー・エー)というところで、BEA WebLogic Serverという名前になり、トランザクション処理が更に強化されていきました。もはや知らない人も多いかも知れないので、読み方も補足しておきます(笑)

その後、Sunが1998年のProject JPEを経て1999年末にJ2EE仕様の初版(1.2)を出し、そこにWebLogicからEJBが持ち込まれたという経緯があります。つまり、WebLogicはJ2EEよりも古い、恐らくJavaで現存する最古の歴史を持つアプリケーションサーバーとなります。勿論、Apahce Jakarta Tomcatの登場よりもずっと前です。まだApache JServとか別の名前でした。

その後2000年代にWebLogicが一世を風靡した後、J2EE仕様が普及するにつれ圧倒的な優位性を失い、2008年頃にOracleに買収され、現在Oracle WebLogic Serverとして販売されている現状となります。

2013年末現在、このWebLogicの最新版は12c R2 (12.1.2)であり、これはJava EE 6準拠となります。残念ながらJava EE 7には現状未対応です。筆者の予測としては、来年辺りにはJava EE 7対応をしてくるのでは、と見立ててますが、残念ながら私はOracleの人ではないため、あくまで単なる推測になります。気になる方はOracleの営業さん辺りに聞いてみましょう。

GlassFish 2系・3系からWebLogicへ移行する

さて、またもや話が逸れてしまったので元に戻り、実際にWebLogicへGlassFishから移行するパターンを考えてみましょう。

まず、Java EEの対応バージョンです。WebLogicの最新版はEE 6対応なので、動作可能なアプリケーション仕様はEE 6, EE 5, J2EE 1.4の三つです。GlassFishはEE 5以降の仕様に準拠しているので、これは問題ありません。

次に、開発環境です。Java EEを開発する場合にはEclipseではなく是非NetBeansを使って頂きたいと日頃から言い続けている筆者ですが、NetBeansは幸いWebLogicにも当然ながら対応しています。サーバーのタブからWebLogicを追加すれば、GlassFishと全く同じように開発ができます。

更に有り難い話としては、WebLogicにはFaceletだけではなく、Backing BeanやEJBなどが、再配備せずとも自動的に画面に反映してくれる「Fast Swap」があります。例えば画面を書き換える場合、JSF Faceletを書き換えて、Backing Beanやその他Javaのファイルも書き換えると思うんですが、GlassFishの場合、Facelet以外を反映するためには再配備が必要になります。ところが、WebLogicのFast Swapはこれが必要ないんですね。NetBeansで書き換えて保存して再実行したら即時反映してくれます。実際の開発作業はこれが無いと結構やってられないので、現実の近代的なエンタープライズ開発現場には必須の機能です。GlassFishには残念ながらこういうプロ仕様の機能は無いので、ここはさすがに商用製品になります。

じゃあ開発にもコストがかかるか、というと、何と先日WebLogicの開発作業のためのライセンス費用が無料になりました。つまり、GlassFishと同じように、誰でもいつでもじゃんじゃん使えるわけです。但し、商用サポート締結時に入手可能な膨大なるパッチの入手はできませんので、まあそういう風に割り切って、ですね。

[WLS] WebLogic Application Server: free for developers!
http://orablogs-jp.blogspot.jp/2012/10/weblogic-application-server-free-for.html

勿論、入手はWebから普通にダウンロードできます。

http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html?ssSourceSiteId=ocomen

スクリーンショット 2013-11-17 21.30.55

インストーラーは、ダウンロードしたJARファイルを「java -jar wls_121200.jar」と実行するだけです。下記のようなビジュアルなインストーラーが出てきますので、これを進めるだけです(多少面倒なところあり)。無論、CUI版でもOKですので、Xが起動できない現実の本番サーバーでも普通に作業可能です。

スクリーンショット 2013-11-17 21.52.01

開発環境は是非NetBeansを使いましょう。GlassFishと同じく、サービスタブから追加します。

スクリーンショット 2013-11-17 22.10.41

サーバーを追加したら、プロジェクトでWebLogic Serverに指定を切り替えます。

Screen Shot 2013-12-06 at 10.25.36 PM

あとは普通通りアプリケーションを「実行」すると、WebLogicが起動してWeb画面が表示されます。

何だ、環境的にはほぼGlassFishと同じじゃん!!!

プログラムの修正は必要か?

基本的にWebLogicは、特に最近のものは、内部のコンポーネントがオープンソース主体にどんどんシフトしてきています。GlassFishと比較しても、特に新しい仕様であるJSF2は同じMojarraが使われていますし、JPAもEclipseLinkです。設定ファイルもJava EE仕様のweb.xmlなどの標準がそのまま動きますので、WARを作成して配備して終わり、だったりします。

では非互換面はあるのか、と問われると、残念ながら、はい、あります。同じにしてよ!! と言いたいところですが・・・

設定ファイルとしては、Web系の設定ファイルがGlsssFish側は「WEB-INF/glassfish-web.xml」、WebLogic側は「WEB-INF/weblogic.xml」、EJB系がGlassFishが「META-INF/glassfish-ejb-jar.xml」でWebLogicが「META-INF/weblogic-ejb-jar.xml」とファイル名も中身の構成も全く違います。元々の出自が違うのでしょうがない面もありますね。

※一応最新版でどっちでも動くようになってますが、そもそも設定できる項目自体が色々違うので、あくまで暫定利用目的と思った方が良いです。

挙動的な非互換面としては、古い系のものがあります。特に違うのが、EJB周りです。WebLogicのEJB周りの仕様は2001年-2004年辺りで実装されたものが延々と使われ続けている経緯があり、初期化タイミングからリモートインタフェースの挙動、あとはWebLogic独自の(WebLogicのWebLogicたる所以でもある)T3プロトコル周りまで含めて、結構GlassFishと異なります。なので、この辺りをGlassFishの挙動をアテにしていたら、結構裏切られることが多く、最悪プログラムの修正も必要でしょう。

サーバー内部の実装もOSGI準拠の近代的な後発のGlassFishと比較して、WebLogicはいかにも重厚で巨大であり、何とも古くさい感じがします。現バージョン12cのオリジナルが2001年初頭頃登場(だったと思う)のWebLogic 6.0であり、そこからディレクトリー構成、設定ファイルを含めあんまり変わってない所も、イケてないところとよく非難される所ではあります。

まあ、とはいえアプリを作る側からすると、ちゃんと動いてくれればぶっちゃけどっちでもいい話でもあるかもしれません。

ただ、これらはかなり細かい面でもあるので、「だいたいそのまま動くよ、但し追加の独自設定ファイル(weblogic.xmlやweblogic-ejb-jar.xml)が必要だよ(特に本番目的だと)」と憶えておいてもらえればと思います。

運用にあたっての違い

GlassFishの運用も結構細かい知識が必要ですが、WebLogicの運用知識はGlassFishのものとはかなり異なります。最も違う特徴的な面は、Production Redeploymentという、古いアプリを動かしながら新しいバージョンのアプリを再配備するという、アクロバティックな機能です。これは24時間ノンストップ運用のために必須でありますが、結構きわい挙動もたまにあり、常に安定して動作させるためには現場の知見の蓄積が必要です。無視すればまあ、GlassFishのようにも使えます(笑)

またWebLogicにはかなり多くのパッチが提供されており、定期的にマイナーアップデートも出ます。商用サポートに入っていれば専用サイトで提供されていますので、それらを定期的に適用していく作業も必要になります。つまり、専任の技術者を育てる必要があります。まあ、GlassFishについても本番運用する場合は同じ話ではありますが、WebLogicの方がより多くの(数倍の)項目を設定できるため、そこは注意が必要でしょう。

なので、まあ内部実装の古くささ等もまるっと含めて、オープンソースでドラスティックに改良を続けるMySQL・Maria DB辺りに対する、商用の王道・互換性命のOracle Databaseの関係みたいなもんだと思ってもらえれば良いかなと思います。WebLogicも最初から徹頭徹尾、商用製品なんですよね。

GlassFish 4系からWebLogicに移行する

さて、GlassFish 3系以前からの移行については上記の通り、やることをやればだいたい問題ないと思います。では4系はどうか? 前述の通りですが、残念ながらWebLogic 12cのEE 7対応待ちになります。いつ出るのか? 繰り返しになりますが、オラクルの営業さんに聞いて下さい(笑)。私も残念ながら正確なところは知りません。

では他社の場合どうか? 残念ながらEE 7対応の商用アプリケーションサーバーはどこからも出てません。つまり、移行先はこの2013年度末時点で、無いのです。2014年は? 出るといいなぁ。出してね!!

まとめ

凄く面白くないまとめになってしまいますが、当たり前のことはそれはそれで重要なので、まとめておきます。

  • GlssFish 3系の移行先は、Java EE 6対応アプリケーションサーバーになります。
  • Oracle社の場合、商用版Java EE 6対応アプリケーションサーバーはWebLogic Serverになります。(今はFusion Middlewareという分類になっているようです)
  • Java EE 6に準拠していれば、(当たり前ですが)基本的なところは互換性があり、動きます。
  • 但し互換性のないところもあり、特にEJB周りと設定ファイル周りは注意が必要です。
  • 更に本番運用に際しては便利な機能も多い判面、パッチ適用も含め注意の必要な箇所も多いため、専門の技術者を揃える方が賢明でしょう。
  • GlassFish 4系の移行先は、2013年末時点では、ありません

さてJava EE Advent Calendarの次回(明日)はNorito Agetsumaさんの回です。宜しくお願いします!