SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

エンタープライズマッシュアップを実現するコンポジットアプリケーション開発の現在

ユーザー・インターフェースの変遷とリッチなアプリケーションへの渇望

第1回

デスクトップ・アプリケーションのポータビリティー

 企業で使われているデスクトップ・アプリケーションには、ワープロ、表計算、プレゼンテーションなどのオフィス・ソフトウェア、チャット、インスタントメッセージング、開発ツール、業務用のグラフィカル・アプリケーションなどがあります。

 デスクトップ・アプリケーションには、「ポータビリティー」という課題が長きにわたって議論されてきました。ポータビリティーとは、日本語で「可搬性」、または「移植性」。簡単に言うと「他のシステムへ持って行けるか?」という議論です。デスクトップ・アプリケーションの場合、Windows、X-Window(Linuxなど)、Mac OS、モバイル画面などのシステム間で共通のソフトウェアを使うことができるか、という議論です。

 ソフトウェアのポータビリティーを実現するには、いくつかの選択肢があります。ソースコードを共通化する方法、共通レイヤー(層)を作る方法、シミュレーション、スクリプト言語、仮想マシンや仮想ランタイムを利用する方法などです。

 ソースコードを共通化する方法は、非常に多くの技術で試されてきました。ソースコードを共通化する方法の代表的な例は標準APIです。標準APIは、オープンなテクノロジーであり、標準化団体などで規定され、ベンダー各社が自由に使えるものです。The Open GroupPOSIXOpenGLX.Orgなどがあります。しかし、多くのデスクトップ・アプリケーションでは、標準APIは事実上の標準とはなりませんでした。X.Orgが策定しているX Window SystemなどのAPIが、ウィンドウシステムの標準APIとならなかったからです。多くのウィンドウシステムは、専用APIを使ってアプリケーションを作るのが標準であり、標準APIで記述されたアプリケーションはコンパイルできません。

 共通レイヤーを使う方法は、そこそこ成功を収めており、今でも使われている方式です。それは、ウィンドウシステムの仮想APIを定義して、複数のシステムに準備することでした。たとえば、あるメーカーのソフトウェアを共通レイヤーの上に構築して作ることにし、その共通レイヤーを対象となるすべてのウィンドウシステムに準備します。これによって、結果的にソフトウェアが複数のプラットフォームに対応できたことになります。IBM Open Class Libraryや、IBM Open32-APIなどは、Windows、X-Window、OS/2などに準備されたAPIライブラリーで、共通のソースコードをOSごとにコンパイルしなおすことができました。

 この方法は、広くは普及しませんでした。大きな原因はオープン・テクノロジーが登場しなかったことです。また、C言語などではプリコンパイラー言語(#ifdef)などを大量に記述する必要があり、よけいなコード管理コストがかかる原因ともなりました。また、ウィンドウシステム固有のライブラリーを呼び出すコードは移植できませんでした。固有のライブラリーは、ソースコードが手に入らないので再コンパイルができないからです。このため、新APIを使うアプリケーションの移植のほとんどはこの方法で解決できませんでした。

 OSをシミュレーションする方法もよく使われています。有名なのはオープンソースのWINEでしょう。WINEでは、Linux上でWindowsのバイナリーを動作させることができます。ソフトウェアのソースコードは必要ありません。しかし、実行速度などの面で限界もあります。

 スクリプト言語で書かれたソフトウェアはとてもポータビリティーの高いものとなります。スクリプトの実行環境(インタープリター)の互換性を高めることで、ソフトウェアは簡単にポータブルになります。欠点は速度が遅いことが多いこと、APIのサポート範囲が狭いこと、などです。

図5 Javaによるマルチプラットフォーム対応
図5 Javaによるマルチプラットフォーム対応

 特別なアーキテクチャーを定義して、そのためにコンパイルしたソフトウェアを仮想マシンによって実行するソフトウェア環境が登場しています。Javaや.NETのCLR(Common Language Runtime)などです。これらの環境では、ソフトウェアをあらかじめコンパイルするため速度的に有利です。JITコンパイラーやオプティマイザーの性能が向上したりしたことにより、ネイティブコンパイルしたアプリケーションと同等の性能が出る他、幅広いAPIをサポートしており、ネイティブ・アプリケーションと同等のものが作れます。特にJavaは、マルチプラットフォームに最も強い環境となっています。

次のページ
Eclipse RCPの登場

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
エンタープライズマッシュアップを実現するコンポジットアプリケーション開発の現在連載記事一覧

もっと読む

この記事の著者

米持 幸寿(ヨネモチ ユキヒサ)

日本アイ・ビー・エム株式会社 ソフトウェア コンサルティング・テクノロジー・エバンジェリスト ソフトウェア・テクノロジー・ストラテジー・リード。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/121 2007/09/04 12:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング