InfoQ

News

SunによるJavaのiPhoneへの移植で問題に直面

作者 Charles Humble , 翻訳者 編集部 投稿日 2008年4月3日 午前6時33分

コミュニティ
Java
トピック
モバイル
タグ
iPhone,
Java ME,
Apple

AppleがiPhone SDKを発表してから1日もしないうちに、Sun MicrosystemsはJava ME JVMをAppleのiPhoneおよびiPod Touchに移植する意向を表明した。ビデオ録画による発表(source)の中で、Eric Klein氏はJVMがiPhoneで動作しないわけがないと述べている。

「過去24時間は、SDKに関してAppleが提供しているあらゆる情報の収集に費やし、iPhoneおよびiTouch(iPod Touch)の開発の一部を第三者に委託する決定を下したことに、興奮せずにはいられない。Javaに対するもともとの展望の1つには、デベロッパコミュ ニティが世界中で可能な限りのデバイスに素晴らしいコンテンツおよびアプリケーションを作成可能にすることで、その点では、iPhoneが重要なプラット フォームである」。

Sunの発表を受けて、目先が利くブロガーやフォーラムへの投稿者が、Sunの移植の妨げとなりうる2つの重要な問題を指摘した。その1つは、ライセンス契約条項である。

「アプリケーションはそれ自体決してインストールせず、その他の実行可能なコードを実行しない。プラグインアーキテクチャーの使用、他のフレームワークの 呼び出し、その他のAPIなどに関する制限がないとしてもである。AppleのPublished APIや組み込みインタープリターで解釈され実行されたコードを除けば、アプリケーションでダウンロードもされないし、使用もされない」。

2つ目は、一見したところ、SDKにおける技術的な制限である。Appleの公式iPhone Human Interface Guidelines(Apple iPhone Dev Center(source)から利用可能、要ログイン)によると、1つのiPhoneアプリケーションのみが同時に実行でき、第三者によるiPhoneアプリケーションはそのバックグラウンドでは実行しないようである。

「これは、ユーザが他のアプリケーションに移行したり、電話に出たり、メールを確認したりするとき、使用していたアプリケーションが終了することを意味する。重要なのは、この現実によってユーザが悪影響を受けることはないことである。つまり、ユーザはiPhoneアプリケーションをあきらめて、そして後で そこに戻ることは、コンピュータでアプリケーションを移行することより困難だと感じるべきではない。

恐らくこれは技術的な制限ではないのだが、iPhoneは、 複数の並行処理をサポートするMac OS Xと同じカーネルを実行する。iPhone自体は確かにマルチタスクである(そうでなければ、たとえばそれでSafariを使用しているとき、 音を出すことができない)。したがって、この制限は、第三者によるバックグラウンドプロセスで使用されるRAM量を制限する際に課されることが多い。それゆえに、Appleが、選ばれた第三開発業者に自身のバックグラウンドでアプリケーションを実行させる機能を与えると推測するのが妥当なように思える。しかしながら、AppleがSunにそういった権利を与えるとは想像しがたい。 まず第一に、Java MEアプリケーションをiPhoneやiPod Touch でインストールできたり、実行できるようにすることで、店舗への分配をAppleが意図している通りに規制することが難しくなる。また一方で、ここ数年に わたり、JavaとAppleの関係がますます悪化しているような現実がある。それとは対照的に、JavaOne 2000での基調講演でSteve Job氏が以下のように語った。

「われわれが望んでいるのは、大々的にJavaをデスクトップに復活させることである。今日わたしがこの場にいるのは、この地球上でMacが最高の Java提供手段にすべく、日々努力していることを個人的に伝えるためである。今われわれが取り組んでいる最大のことは、すべてのMac OS X(発売予定のMacintoshオペレーティングシステム)にJava SEを搭載することである。今期下半期に発売予定である」。

昨年は、New York Times(source)に以下のような意見を述べた。

「Javaは構築する価値はない。もはや誰も使っていない。これほどまでに重いボールや鎖である。」

先週Eric Klein氏は引き続き声明を出し、Sunの計画を阻害する条件があるならば、Sunは喜んでAppleとの協議の場を設けることを述べた。

「われわれの発表は、iPhoneやiPod Touch向けにJVMを構築することの興奮とAppleが公開しているSDKやそれに関連した取引条件についての情報の評価に基づいている。 iPhone beta SDKライセンス契約で条項があり、それが潜在的に第三者のアプリケーションの分配を制限するものであるならば、それらについてAppleと前向きな協議を持ちたい。SunおよびAppleは、Mac OS XのJava SEがらみで継続的な関係を保っており、iPhoneおよびiPod TouchについてAppleとさらに詰めた協議をおこなうことを期待している。間違いなくSunは、iPhoneおよびiPod Touch向けにJVMを提供する計画を可能な限り立てている」。

JavaOneの開催期間に、Sunが詳細を発表することになれば面白くなるであろう。

原文はこちらです:http://www.infoq.com/news/2008/03/jme_iphone

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
slashdot+
Hatena

特集コンテンツ一覧

アジャイルにおけるプロジェクトマネジャーの役割

この記事では最初に一般的に産業界でのプロジェクトマネージャーの役割について説明し、それから、アジャイルにおけるコーチ/ファシリィテーターの役割にあてはめてみます。

アレグザンダー祭りにて、James.O.Coplienが語るアジャイルとスクラムの源流とは

「パターン」と呼ばれる設計手法をご存知ですか?この建築の分野ではじまった設計の形式知化手法、および、使う人と作る人の対話のプロセスは、私たちソフトウェアの世界に援用されて1995年に「デザインパターン」という書籍で注目を浴びました。さらに、アジャイルと呼ばれる開発手法には、ユーザーといっしょに対話をしながら設計を進める「パターン」の思想が脈々と引き継がれているのです。

仮想パネル:ソフトウェアアーキテクチャの文書化について

この仮想パネルでは、特に、アジャイルソフトウェア開発環境におけるソフトウェアアーキテクチャの文書化について、Len Bass氏、Grady Booch氏、Paulo Merson氏、Eoin Woods氏に話を聞いた。

HTTPSコネクションの最初の数ミリ秒

HTTPSコネクションを確立するとき、一体何が起こっているのだろう。この記事では安全なコネクションを準備するためにクライアントとサーバの間でどのようなデータの交換が行われているのか、バイトレベルまで詳細に分析する。

Modular Java:動的なモジュール化

Modular Javaシリーズの第3弾は、動的なモジュール化、どのようにバンドルのクラスが解決され、どのように生成され、消滅するのか、どのようにお互いに通信するのかについて、議論する。

分散バージョン管理システムの詳細なガイド

分散バージョン管理システムへの関心や採用は増え続けています。この記事では、分散バージョン管理システムのコンセプトを紹介し、git、Mercurial、Bazaarの3つについて詳しく見てみようと思います。

Modular Java:それは何なのか?

ここ数年にわたって、Javaのモジュール化は活発に議論され続けている話題である。いくつかのJSRによってJavaの進化におけるモジュール化の必要性が示されている。モジュール化の意味するところは何で、なぜそれを気にかけるべきなのだろうか?

Modular Java:静的なモジュール化

Modular Javaシリーズの第2弾は、静的なモジュール化、バンドルの作り方、OSGiのエンジンにそれらをインストールする方法、バンドル間の(バージョン付き)依存性の設定のしかたなどについて扱う。