読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

Javaから他の言語に移行する

昨日のScalaの記事に旧システムから新システムへの移行の話がありました。間に腐敗防止層というものを置いているそうです。新機能をどんどん作っていくとだんだん新システムになっていくというやり方のようです。

実はオイシックスもだいぶ昔から近いことをやっていますがいまだに旧プラットフォームが残っています。しかも中核部分。結局中核部分は改修するときに新プラットフォームに作り変えようと思っても工数が膨大になるのでやむなく諦めることになります。でも今度思い切って投資して全部作り直しますが。チャットワークさんは無事移行できることを祈ります。

作り直すにあたっては脱Javaも視野に入れています。とはいえいっせーので全部違う言語で作り直すのは自殺行為以外の何物でもありません。やはりチャットワークさんのように並存環境を作って段階的に移行したいものです。

RubyJavaScriptJVM上で全然動くので、RubyJavaScriptからJavaクラスを使うことは昔からできます。なので段階的に移行するのは結構できそうなものですが一番ネックになるのがHttpSessionです。HttpSessionにはログイン状態やショッピングカートなどさまざまな情報やクラスが入っています。これが新旧で共有できる必要があります。ここが最大のボトルネックでいい案がなくスタックしてしまいます。

サーブレットベースのRubyJavaScriptはないものか?Grailsだったら行けるかもしれません。

HttpSessionをやめて独自のセッション管理を実装してDBにデータを入れるか?その時点で全部作り直しに等しいです。

session idをクッキーにセットしてHTTPリクエストをJava側に飛ばして情報を取得するようにするか?Java側ではJSONで返すようなAPIを用意して。できそうな気はしますが永久に裏側に旧システムが残りそうです。

何かいい案ないでしょうか。