エンタープライズ領域にもRuby普及か
独SAP、自社VMでRuby処理系のサポート追加へ
2009/04/01
Java VM、.NET Frameworkに続いて、エンタープライズアプリケーションで使われてるもう1つのメジャーなバーチャルマシン(VM)、「ABAP VM」上でもRuby言語がサポートされる可能性が出てきた。
独SAPは3月27日、同社のWebアプリケーションサーバで動くRubyの実験実装「Blue Rubyプロジェクト」について明らかにしている。ABAP(Advanced Business Application Programming)は、独SAPが提供するWebアプリケーションサーバ「SAP NetWeaver Application Server」は、J2EEと独自言語ABAPによるアプリケーション開発が可能なVMを備えている。
Blue Rubyプロジェクトは、開発効率が高くアジャイル開発に適したRubyの世界と、すでに実績があり堅牢なSAPのWebアプリケーションサーバの世界をつなぐもの、という。DSL(Domain Specific Languages)を作成する環境も、Rubyによって実現できる。
Rubyソースコードを中間言語にコンパイル
具体的にはRubyで書かれたコンパイラを使い、Rubyで書かれたソースコードをBRIL(Blue Ruby Intermediate Language)と呼ぶバイトコードに変換。これをBlue Ruby VMと呼ぶスタックマシン上で走らせる。このBlue Ruby VMは、ABAB VM上で動くプロセスの1つで、同じABAPのVM上に載ることから、Rubyアプリケーションから、ABAPのすべてのオブジェクトにアクセスできるほか、オブジェクトの生成や、それらオブジェクトへのメッセージの送信が可能という。逆に、ABAPアプリケーションからRubyのメソッドを呼ぶこともできる。Rubyのソースコードは、仮想ファイルシステムシステムを通してデータベースに保存される。また、RubyソースコードのBRILへのコンパイルは、セーブ時に毎回行われるため、起動時のオーバーヘッドはないという。
BRILはBlue Ruby向けに作られたバイトコードで、動的言語の特徴を持っている。例えば文法エラーがあっても、コンパイル時にエラーを出すのではなく、実行時に例外を上げるといった違いがあるという。
RubyからABAP、ABAPからRubyの双方向の呼び出しには制限もある。Ruby側からは、ABPA側のすべてにアクセスできるできるわけではなく、とりわけ、データベースアクセスに関しては、ブリッジと呼ばれるインターフェイスを通しABAPアプリケーションからのみ可能。これは、Ruby開発者が既存のプラットフォームを破壊しないようにするための設計で、こうしたコントロールがなければ、業務目的での利用は望めないだろうとしている。
Blue Rubyは、2009年3月27日時点でRubyの互換性を検証するrubyspecテストに70%程度パスしているという。ただし、OSに依存するプロセス関連や、低レベルなネットワーク関連ライブラリはなく、I/O関連も仮想化ファイルシステムのライブラリとして実装されているなどの違いがある。
このBlue Rubyプロジェクトは、動的言語をサポートするための汎用的なアプローチであるため、Blue Rubyがうまくいけば、今後はBlue PHP、Blue Pythonなども計画しているという。
すでにマイクロソフトは.NET上のRuby実装としてIronRubyを提供しているほか、サン・マイクロシステムズはJava VM上のRuby実装としてJRubyの開発を支援している。SAPのRuby言語サポート追加が実現すれば、エンタープライズ用途へのRuby普及が加速するかもしれない。
関連リンク
関連記事
情報をお寄せください:
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|
キャリアアップ
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
2023年のSNS炎上総数は189件、炎上元の媒体1位は「X」――コムニコ「炎上レポート」
コムニコが「炎上レポート」2023年版を公開しました。
今度の「TikTok禁止」はこれまでとどう違う?
米国ではまたしてもTikTok禁止措置が議論されている。これまでは結局実現に至らなかった...
「ゼロクリック検索」とは? SGE時代の検索の変化と5つの対策を解説
SEO専門家やマーケター、そして情報を求める人々にとって、「ゼロクリック検索」はどのよ...