(57)【要約】    無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが、（a）無線モバイル機器により要求される機能をカプセル化し、（b）標準インタフェース構造を共有し、（c）コマンドラインインタフェースの制御の下に装置上で動作する。エレメントはコマンドラインインタフェースの制御下で動作する（そして従って、コマンドラインプログラムである）ので、プログラマはエレメントの機能、特に所与の入力に対するエレメントの対応を調べるのが遙かに容易である。
2007510979.tif 000002
【特許請求の範囲】
【請求項１】
無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが、（a）前記無線モバイル機器により要求される機能をカプセル化し、（b）標準インタフェース構造を共有し、（c）コマンドラインインタフェースの制御の下に前記装置上で動作することを特徴とする方法。
【請求項２】
１または複数のモジュール化ソフトウエアエレメントが装置のネットワーク化機能をカプセル化することを特徴とする請求項１に記載の方法。
【請求項３】
前記装置のネットワーク化機能が以下のＧＰＲＳ、２Ｇセルラー、ＣＤＭＡ、ＷＣＤＭＡ、ブルートゥース、８０２．１１、赤外線、ＩＰネットワーク化、ダイアルアップ、ＨＳＣＳＤおよびＥＤＧＥのモーデムの１または複数を介する接続性に関係することを特徴とする請求項２に記載の方法。
【請求項４】
１または複数の前記モジュール化ソフトウエアエレメントが一般的なモバイル機器の機能をカプセル化することを特徴とする請求項１に記載の方法。
【請求項５】
前記一般的なモバイル機器の機能が以下の呼制御および処理、ＰＩＭ機能、ＳＩＭ機能、画面を磨く、キー押下のふりをすることを含む遠隔制御、処理、スレッド、メモリおよび設定を含む監視、前記画面エレメントがスクリプトで規定されるアプリケーションを創ることを含むＵＩ、監視と呼び出しを含む電話、ファイルとフォルダの読み書き、変更の監視を含むファイルシステム、構造化された格納、抽出、任意のアプリケーションデータの検索と監視を含むデータベース、リングトーン、壁紙および設定を含む装置の個性化の１または複数に関係することを特徴とする請求項４に記載の方法。
【請求項６】
コマンドラインインタフェースの前記制御下にある前記エレメントがＴＣＰＩＰインタフェースであり、該インタフェースが前記装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある前記装置から出接続を行うことを許容することを特徴とする請求項１に記載の方法。
【請求項７】
コマンドラインインタフェースの前記制御下にある前記エレメントが遠隔コマンド実行プロトコルを実装することを特徴とする請求項１に記載の方法。
【請求項８】
コマンドラインインタフェースの前記制御下にある前記エレメントがスクリプト記述言語を実装し、該言語がコマンドラインインタフェースによりまた制御される前記装置の他のプログラムを使用するスクリプトの記述を許容することを特徴とする請求項１に記載の方法。
【請求項９】
高水準言語プログラムが指示を送信することができる前記装置から遠隔にあるアプリケーション開発コンピュータ上で動作する、あるいは各エレメントがコマンドラインインタフェースにより制御される前記装置上で動作することを特徴とする請求項１に記載の方法。
【請求項１０】
前記高水準言語プログラムがコマンドラインプログラムであり、該プログラムが前記モバイル機器と該装置と同じ前記遠隔コマンド実行プロトコルを実装する前記アプリケーション開発コンピュータ上の更なるプログラムとの間のＩＰ接続を可能にすることを特徴とする請求項９に記載の方法。
【請求項１１】
迅速なアプリケーション開発が、前記遠隔コマンド実行プロトコルを使用して前記アプリケーション開発コンピュータのコマンド指示によるコマンドラインインタフェースにより制御される、前記装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成されることを特徴とする請求項１０に記載の方法。
【請求項１２】
各コマンドの出力が前記アプリケーション開発コンピュータの前記コマンド指示に示されることを特徴とする請求項１１に記載の方法。
【請求項１３】
迅速なアプリケーション開発が、前記装置上に書かれた前記スクリプト記述言語のコマンドラインインタフェースにより制御される、幾つかの装置ベースのエレメントの前記結果を結合するスクリプトを使用することにより達成されることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記スクリプトが前記アプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成されることを特徴とする請求項１３に記載の方法。
【請求項１５】
迅速なアプリケーション開発が、前記スクリプトを前記装置に転送し、前記コンピュータのコマンド指示を再び使用して前記スクリプトを実行することにより達成されることを特徴とする請求項１３または１４に記載の方法。
【請求項１６】
モジュール化ソフトウエアエレメントの前記標準インタフェース構造が前記エレメントの前記名称、コマンドライン選択肢の組、２つの入力ストリームおよび２つの出力ストリームであることを特徴とする請求項１に記載の方法。
【請求項１７】
前記高水準言語が単一のタイプの高水準言語に制限されず、前記ソフトウエアアプリケーション開発者の前記要件に応じて以下の、
（ａ）コマンドラインインタフェース、
（ｂ）スクリプト記述言語、
（ｃ）コンパイルされた言語
の何れでもあり得ることを特徴とする請求項９に記載の方法。
【請求項１８】
前記アプリケーション開発コンピュータがデスクトップＰＣであることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記高水準言語プログラムがさらに前記装置上で動作し、別のアプリケーション開発コンピュータの使用を必要とすることなく前記装置の再プログラミングを可能にすることを特徴とする請求項１に記載の方法。
【請求項２０】
前記モジュール化ソフトウエアエレメントによって前記オペレーティングシステムを使用して機能を実装するのに必要な特殊コードを動作させる特殊事項ではなく、使用する機能の前記タイプを前記アプリケーション開発者が理解することを求めることにより、前記装置の前記オペレーティングシステムの前記特殊事項に前記アプリケーション開発者が係わらないようにすることを特徴とする請求項１に記載の方法。
【請求項２１】
前記装置がコマンドインタプリータを動作させ、前記アプリケーション開発コンピュータがコマンド実行シェルを動作させることを特徴とする請求項９に記載の方法。
【請求項２２】
前記アプリケーション開発コンピュータがローカルポイントツーポイントＩＲ、ブルートゥース、ＵＳＢ、ＷＡＮ、ＬＡＮ、ＳＭＳあるいはＧＰＲＳ、あるいは以上の任意の組み合わせを介して前記装置に接続されることを特徴とする請求項９に記載の方法。
【請求項２３】
モジュール化ソフトウエアエレメントが互いに連鎖され、複合機能を構築できることを特徴とする請求項１に記載の方法。
【請求項２４】
前記モジュール化ソフトウエアエレメントがアイデンティおよび関連する許可に関して前記装置上で動作することを特徴とする請求項1乃至２３のいずれかに記載の方法。
【請求項２５】
前記アイデンティおよび関連する許可を提供し、制御する安全な許可を持つアイデンティサーバが存在することを特徴とする請求項２４に記載の方法。
【請求項２６】
前記アイデンティサーバが前記装置に位置することを特徴とする請求項２５に記載の方法。
【請求項２７】
請求項１から２６の何れかに記載の方法を使用して開発されることを特徴とするソフトウエアアプリケーションプログラム。
【請求項２８】
遠隔アプリケーション開発コンピュータから起動あるいは制御されることを特徴とする請求項２７に記載のソフトウエアアプリケーションプログラム。
【請求項２９】
安全な方法で前記遠隔アプリケーション開発コンピュータによりアクセスあるいは制御されることを特徴とする請求項２８に記載のソフトウエアアプリケーションプログラム。
【請求項３０】
遠隔アプリケーション開発コンピュータからの開始あるいは制御がなくとも前記装置上で独立に動作することを特徴とする請求項２７に記載のソフトウエアアプリケーションプログラム。
【請求項３１】
無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが高水準言語プログラムを使用して、（a）前記無線モバイル機器により要求されるネットワーク化機能をカプセル化し、（b）標準インタフェース構造を共有し、（c）装置上で動作することを特徴とする方法。
【請求項３２】
前記高水準言語が、
（ａ）コマンドラインインタフェースあるいは、
（ｂ）記述言語あるいは
（ｃ）コンパイル化言語
であることを特徴とする請求項３１に記載の方法。
【請求項３３】
請求項１から２６の何れかに記載により特定される内容を更に含むことを特徴とする請求項３１または３２に記載の方法。
【請求項３４】
前記モジュール化ソフトウエアエレメントが前記モバイル機器のＣＰＵ上で動作することを特徴とする請求項1乃至３３の何れかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法に関する。
【背景技術】
【０００２】
無線モバイル機器（例えば、スマートフォン、コミュニケータ、ＰＤＡなど）のためのソフトウエアアプリケーションを開発する場合、多くの問題がある。重要な問題は、
１．ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）、ＧＳＭ、ＧＰＲ、ＩＲおよびケーブルなどアプリケーションにより管理しなければならない広い範囲のネットワーク接続の選択肢がある。
２．モバイル機器はソフトウエア開発のための適切なユーザインタフェースを持たない。
３．モバイル機器はラップトップやデスクトップＰＣに比べて通常少量のメモリと処理能力を持ち、従って開発されるソフトウエアはリソースを極めて有効に使用しなければならない。
４．現在のプログラミング手法は特定の開発ソフトウエアに関する極めて熟練したプログラマを必要とするか（即ち、モバイル機器のＯＳ、例えばシンビアン（Ｓｙｍｂｉａｎ）ＯＳの詳細な知識によりＣ＋＋を使用する）、あるいは携帯電話の制限されたリソースを極めて非効率的に使用する（例えば、シンビアンＯＳでビジュアルベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ）を使用するには１ＭＢのランタイムエンジンを要し、代表的なアプリケーションはまた通常１ＭＢを超える）。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
これらの問題を全て解決するのに良い解決策は無い。問題１および３と取り組むための現在の主な選択肢は電話機のこれらの特徴の全てに直接アクセスする低レベルコードをＣ＋＋などの言語で開発することである。詳細な知識とプログラミングスキルが要求されるので、これは学習することが難しく、かつアプリケーションの開発が遅くなる。
【０００４】
問題２と取り組むための現在の主な選択肢はＰＣで動作する装置用のエミュレータを使用することである。開発者はそのアプリケーションを２度、一度はエミュレータ上で、そして２度目は直接装置上で開発し、テストしなければならないので、この取り組みはそれ程早くなく、エミュレータとＰＣとの間の動作に常に違いがある。エミュレータは電話機で利用可能な広い範囲のネットワーク接続の選択肢を持たないので、ネットワーク化アプリケーションを記述する場合、特にこの問題があり、従って装置においてより多くのテストを行わなければならない。
【課題を解決するための手段】
【０００５】
第１の態様では、無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法があり、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが（a）無線モバイル機器により要求される機能をカプセル化し、（b）標準インタフェース構造を共有し、（c）コマンドラインインタフェースの制御の下に装置上で動作する。
【０００６】
エレメントはコマンドラインインタフェースの制御下で動作する（そして従って、コマンドラインプログラムである）ので、プログラマはエレメントの機能、特に所与の入力に対するエレメントの対応を調べるのが遙かに容易である。機能可視性の類は従来の開発手法を使用して達成するのは極めて困難である。
【０００７】
１または複数のモジュール化ソフトウエアエレメントは装置のネットワーク化機能をカプセル化することが出来る。装置のネットワーク化機能は以下のＧＰＲＳ、２Ｇセルラー、ＣＤＭＡ、ＷＣＤＭＡ、ブルートゥース、８０２．１１、赤外線、ＩＰネットワーク化、ダイアルアップ、ＨＳＣＳＤおよびＥＤＧＥのモーデムの１または複数を介する接続性に関係する。以前は、装置のネットワーク化の動作を体系的に調査できるようにするということは極めて困難なことであった。
【０００８】
１または複数の前記モジュール化ソフトウエアエレメントが、呼制御および処理、ＰＩＭ機能、ＳＩＭ機能、画面を磨く、キー押下のふりをすることを含む遠隔制御、処理、スレッド、メモリおよび設定を含む監視、画面エレメントがスクリプトで規定されるアプリケーションを創ることを含むＵＩ、監視と呼び出しを含む電話、ファイルとフォルダの読み書き、変更の監視を含むファイルシステム、構造化された格納、抽出、任意のアプリケーションデータの検索と監視を含むデータベース、リングトーン、壁紙および設定を含む装置の個性化のような一般のモバイル機器の機能をカプセル化する。
【０００９】
一実装では、コマンドラインインタフェースの制御下にあるエレメントはＴＣＰＩＰであり、このプロトコルは装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある装置から出接続を行うことを可能にする。コマンドラインインタフェースの制御下にある別のエレメントは遠隔コマンド実行プロトコルを実装する。コマンドラインインタフェースの制御下にある別のエレメントが記述言語を実装し、この言語はコマンドラインインタフェースによりまた制御される装置の他のプログラムを使用するスクリプトの記述を可能にする。
【００１０】
好ましくは、高水準言語プログラムは指示を送信することができる装置から遠隔にある（デスクトップＰＣのような）アプリケーション開発コンピュータ上で動作する、あるいは各エレメントがコマンドラインインタフェースにより制御される装置上で動作し、アプリケーション開発コンピュータがローカルポイントツーポイントＩＲ、ブルートゥース、ＵＳＢ、ＷＡＮ、ＬＡＮ、ＳＭＳあるいはＧＰＲＳ、あるいは以上の任意の組み合わせを介して前記装置に接続される。
【００１１】
高水準言語プログラムは好ましくはまたコマンドラインプログラムであり、このプログラムはモバイル機器と、装置と同じ遠隔コマンド実行プロトコルを実装するアプリケーション開発コンピュータ上の更なるプログラムとの間のＩＰ接続を可能にする。高水準言語は単一のタイプの高水準言語に制限されず、ソフトウエアアプリケーション開発者の要件に応じて以下の、
（ａ）コマンドラインインタフェース、
（ｂ）スクリプト記述言語、
（ｃ）コンパイルされた言語
の何れでもあり得る。
高水準言語プログラムはさらに装置上で動作し、別のアップリケーション開発コンピュータの使用を必要とすることなく装置の再プログラム化を可能にする。
【００１２】
迅速なアプリケーション開発は、次いで遠隔コマンド実行プロトコルを使用してアプリケーション開発コンピュータのディスプレイに表示されるコマンド指示によるコマンドラインインタフェースにより制御される装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成される。各コマンドの出力はアプリケーション開発コンピュータのコマンド指示に示される。迅速なアプリケーション開発は、さらに装置上に書かれたスクリプト記述言語におけるコマンドラインインタフェースにより制御される幾つかの装置ベースのエレメントの結果を結合するスクリプトを使用することにより達成される。スクリプトはアプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成することができる。最後に、迅速なアプリケーション開発はスクリプトを装置に転送し、コンピュータのコマンド指示を再び使用してスクリプトを実行することにより達成される。
【００１３】
（発明を実施するための最良の形態の節で後述する）実装において、モジュール化ソフトウエアエレメントの標準インタフェース構造はエレメントの名称、コマンドライン選択肢の組、２つの入力ストリームおよび２つの出力ストリームである。モジュール化ソフトウエアエレメントは互いに連鎖され、複合機能を構築し、オペレーティングシステムを使用して機能を実装するのに必要な特殊コードを動作させる特殊事項ではなく、使用する機能のタイプをアプリケーション開発者が理解することを求めることにより装置のオペレーティングシステムの特殊事項にアプリケーション開発者が係わらないようにする。
【００１４】
装置はコマンドインタプリータを動作させることができ、次いでアプリケーション開発コンピュータはコマンド実行シェルを動作させる。
【００１５】
別の実装では、モジュール化ソフトウエアエレメントは装置上でアイデンティティおよび関連するパーミッション（許可）に関して動作する。（装置に位置する）安全な許可を持つアイデンティサーバはイデンティティおよび関連する許可を提供し、制御する。
【００１６】
一実装では、パイププロセッサと呼ばれるモジュール化ソフトウエアエレメントはモバイル機器のネットワーク化アプリケーションの開発に要する時間をかなり短縮する方法により結合される。
【００１７】
パイププロセッサは独立のモジュールであり、モバイル機器の機能範囲をカプセル化する。パイププロセッサはＣ＋＋のような電話機のオペレーティングシステムに適するソフトウエアコードで効率的に記述される。これらパイププロセッサは全てパイププロセッサの名称および選択肢の組からなる標準インタフェース構造からコールされる。パイププロセッサの結果は標準出力および標準誤りを使用してコール元のエレメントに戻される。
【００１８】
迅速なネットワーク化アプリケーション開発は以下の理由により容易化される。
・全てのパイププロセッサはコマンドラインインタフェースあるいは他の高水準言語からコールすることのできる同じタイプのインタフェースを有する。これにより開発者に特定のネットワークインタフェースあるいはＣ＋＋のような低レベル言語のプログラムの詳細を学習することを必要とすることなくネットワーク管理の問題１を解決する手段を提供する。
・全てのパイプロセッサはＰＣから遠隔の装置上で実行でき、従ってソフトウエアを先ずエミュレータ上で、次いで装置用に開発する必要がなく、開発者に良好な開発のためのユーザインタフェースを提供する。
・パイププロセッサのモジュール構造は、モジュールが必要により含まれたり削除されたりすることができることを意味する。これはソフトウエアが迅速に開発され、またモバイル機器の限られたリソースの有効使用を行い、従って問題３を解決することを意味する。ビジュアルベーシックのような高水準言語を使用するようなモバイル機器に対する他の迅速な開発手法は大きな実行時のコンポーネントを必要とし、それ故モバイル機器の大きなリソースを消費する。
【００１９】
ＰＤＡのようなモバイル機器が長年随所に存在したように、迅速なネットワーク化アプリケーション開発および再構成の問題もここしばらく随所に存在する。しかしながら、Ｊａｖａ（登録商標）ＭＩＤＰのようなこの問題への現在の対処は、開発を迅速に、簡易に行うのに要求される高水準インタフェースに制限されるので、モバイル機器のネットワークの特徴を十分に活用することができない。また、多くの現在の対処はＰＣ上のエミュレータの使用に頼る。本発明はこれらの制限を克服するためにＪａｖａ（登録商標）ＭＩＤＰを補完することができる。以前に注記したように、全てのパイプロセッサをコマンドライン、スクリプトあるいは他のプログラミング言語からコールすることができるので、本発明はそれ故迅速なネットワーク化アプリケーション開発および再構成の問題を解決する。従って、必要な機能は機能を立証するスクリプト記述を使用して直ちにプロトタイプ化し、その後アプリケーション用のプログラミング言語にコード化できる。
【００２０】
本発明にはさらに３つの有意な利点が存在する。
１．非熟練プログラマによるプログラミングを可能にする。コマンドラインインタフェース、スクリプト記述言語の両方からコールすることのできるパイププロセッサコンポーネントの組および多様なプログラミング言語を使用することにより、高級ソフトウエア開発者、並びにプログラミング経験のない電話機ユーザの両者が全て同じコンポーネントを使用して電話機上でソフトウエアを「プログラムする」ことを可能する。これにより電話機上でスクリプトをただ修正することにより、非熟練者によるソフトウエアの変更を可能にし、プログラマにより本来想定されていなかった使用にソフトウエアを適応させることができる。これは非熟練プログラマが自ら使用するためにアプリケーションを修正する、あるいは熟練開発者に手渡して、モバイル機器の完全なネットワーク化ソフトウエアアプリケーションに変えることのできるアプリケーションを素早くプロトタイプ化し、テストすることを可能にする手段として使用することができる。
２．所有する全てがモバイル機器である場合、例えば列車に乗っている場合、ソフトウエアアプリケーションを誰もが変更することを許容する。モバイル機器にリンクを持つＰＣからソフトウエアを開発することができる。しかしながら、ＰＣから離れているときに、もしアプリケーションがモバイル機器上でスクリプト化されていれば、標準ＰＣベースのソフトウエア開発に要求されるコンパイラ、デバッガ、エミュレータや他の開発ツールを必要とすることなく、スクリプトは素早く修正され、異なるアプリケーションを創ることができる。
３．コマンドラインおよびスクリプト記述インタフェースを含む広い範囲のプログラミング言語から広い範囲のオペレーティングシステムを動作させるモバイル機器への単一インタフェースを提供する。従って、プログラマはソフトウエアを開発する如何なる好みの言語でも選択することができ、種々のモバイル機器に対する異なるインタフェースを学習しなくとも良い。これは考え方においてはスマートフォンの携帯アプリケーションを記述するためのベースとしてＪａｖａ（登録商標）ＭＩＤＰを使用するのに類似である。しかしながら、Ｊａｖａ（登録商標）ＭＩＤＰを使用するとＪａｖａ（登録商標）ＭＩＤＰ標準は電話機の必要なネットワーク化の特徴へのアクセスを許さないので、モバイル機器のために良好なネットワーク化アプリケーションを記述することができない。これはＭＩＤＰプログラミングインタフェースをモバイル機器に特定のインタフェースを追加して拡張することにより達成することができるが、これには開発者が各電話機により異なるインタフェースを理解する必要がある。提案する枠組みはこの問題を種々のモバイル機器のオペレーティングシステムに亘って共通の低レベルネットワーク化および他の電話機の特徴に対する共通インタフェースを提供することにより排除する。
【００２１】
別の態様では、上述の迅速なソフトウエアアプリケーション開発の方法を使用して開発されたソフトウエアアプリケーションが存在する。このソフトウエアアプリケーションは遠隔アプリケーション開発コンピュータから開始あるいは制御されることが出来、安全な方法で遠隔アプリケーション開発コンピュータによりアクセスあるいは制御することができる。ソフトウエアアプリケーションはまた遠隔アプリケーション開発コンピュータからの開始あるいは制御が無くとも装置上で独立に動作することができる。
【００２２】
別の態様では、無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法があり、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが高水準言語プログラムを使用して、（a）無線モバイル機器により要求されるネットワーク化機能をカプセル化し、（b）標準インタフェース構造を共有し、（c）装置上で動作する方法が存在する。高水準言語は、
（ａ）コマンドラインインタフェースあるいは、
（ｂ）スクリプト記述言語あるいは
（ｃ）コンパイルされた言語
でありうる。
【００２３】
物理的ハードウエアとの相互作用に関して、モジュール化ソフトウエアエレメントはモバイル機器のＣＰＵ上で動作する。さらに、エレメントはコマンドラインインタフェースを使用して動作するので、インタフェースは必ずコンピュータディスプレイに表示されなければならない。
【発明を実施するための最良の形態】
【００２４】
本発明の目的はモバイル機器のためのネットワーク化アプリケーションソフトウエアの迅速な開発を容易にすることである。本発明はイントゥーウエイブ社（Ｉｎｔｕｗａｖｅ  Ｌｉｍｉｔｒｄ）のｍｒｉｘと呼ばれる技術で実装され、ｍｒｉｘは、
・学習曲線を削減し、それ故に開発者のより大きなコミュニティに開発を開放する、
・スマートフォンを共有ネットワークコンポーネントのように取り扱うことを許すネ
ットワークＯＳの様な設備を提供する、
・複雑なスマートフォンの機能をカプセル化する重要な「構成ブロック」を提供する
ことによりスマートフォンを含む製造問題解決法の市場投入に要する時間をかなり短縮するために設計された無線ソフトウエアプラットフォームである。
【００２５】
ｍｒｉｘはスマートフォンのためのプラットフォームを意識しない遠隔コマンド実行環境を含む。コマンドインタプリータはコマンドあるいは「パイププロセッサ」の組を通してスマートフォンとインタフェースする。これらはスマートフォンの機能範囲をカプセル化するＣ＋＋あるいはスクリプト記述言語で記述された小さな独立モジュールである。付録１はｍｒｉｘガイドから諸節を再現したものであり、付録２は幾つかの利用可能なパイププロセッサのリストである。付録３はシンビアンＯＳのパイププロセッサの記述を希望する開発者のためのガイドである。付録４は（Ｃ＋＋パイププロセッサおよびスクリプトの両方を含む）ｍｒｉｘコマンドの書き方および動作の仕方を記述する。付録５はシンビアンＯＳスマートフォンの製造会社の製品試験の品質と量の改善を支援するためにｍｒｉｘを採用する機会の数を概説する。
【００２６】
（「ｍｒ」を前に付した）装置に所在するｍｒｉｘパイププロセッサが提供され、ｍｒｉｘパイププロセッサは多重ベアラー（ＧＰＲＳ、ＳＭＳ、ブルートゥース、ＭＭＳ、ＷｉＦｉなど）、（バーコードリーダ、ペン、プリンタ、ＧＰＳなどのような）装置周辺機器、他の装置やサーバおよびネットワーク料金請求の制御と管理を容易にする。パイププロセッサはさらに多くの機能を構築するために互いに連鎖することができる。これらの構成ブロックは移動に関する問題解決法の早い、繰り返す開発を許容する。スクリプト記述言語の使用により開発が遙かに広い開発者のコミュニティに開放される。
【００２７】
実装には図１に示す構成例を含む、ネットワークに接続されるスマートフォン、デスクトップＰＣおよびサーバのような種々の（モバイル機器を含む）計算装置に所在するソフトウエアが含まれる。
【００２８】
ソフトウエアコンポーネントは迅速なアプリケーション開発と配備を容易にするためにネットワークの全ての異なるエレメントにおいて必要である。これはユーザがよりよい顧客との関係のために企業ＣＲＭシステムを十分に使用することを可能にするモバイル機器上でネットワーク化アプリケーションを開発するための以下の実施例により説明される。これを行うために、ソフトウエアはモバイル機器上で開発されなければならず、モバイル機器は企業のサーバに接続することができ、ＣＲＭシステムを実装し、企業の顧客とのやり取りの全てを管理する。モバイル機器は（ＧＰＲＳを介するような）広域接続を介するサーバへの他に、広帯域無線リンクを通してより高速なローカル接続によるＰＣへの接続の両方が可能でなければならない。モバイル機器の制限のあるユーザインタフェースもまたモバイル機器がデスクトップＰＣと容易に接続し、ユーザがそのデスクに座っているときにデスクトップＰＣの大きなスクリーンやキーボードの利点の活用を許容しなければならないことを意味する。
【００２９】
そのようなアプリケーションを開発する従来手段はＩＤＥのような適切な開発ツールを使用してデスクトップＰＣ上でソフトウエアを開発し、デスクトップＰＣのエミュレータ上でアプリケーションを動作させ、試験することである。一度ソフトウエアがエミュレータ上で成功裏に動作し始めると、次いでソフトウエアをモバイル機器に転送することができ、そこで再びデバッグする必要がある。エミュレータとＰＣとの間に殆ど差がないので、屡々この手法は非ネットワーク化アプリケーションでは優れている。しかしながらネットワーク化アプリケーションでは、エミュレータはモバイル機器上に利用できるネットワーク接続の範囲がないので、開発は遙かに困難である。この問題は本発明ではブルートゥースのようなローカル無線リンクを介してローカルに、あるいはＧＰＲＳ（あるいはＳＭＳのような電話機への任意の他の接続）を介して遠隔からネットワーク接続を経て実行できるコンポーネントをデスクトップＰＣ（この用語はウインドウズ、マッキントッシュ、リナックスあるいは他のオペレーティングシステムを備えたコンピュータを含む）およびモバイル機器上に持つことにより克服される。従って、開発者は以下のように遙かに早くネットワーク化アプリケーションの開発に向かうことができる。
１．開発者はアプリケーションに使用されるｍｒｉｘパイププロセッサコンポーネントのモジュールの組を選択する。
２．開発者はコマンドラインから選択したパイププロセッサの使用法を試験する。
３．簡単なスクリプトは纏めて、電話機上で動作する完全なアプリケーションに組み込み、デスクトップＰＣから遠隔で再び動作させることができる。
４．ｍｒｉｘの一部でありうるｍＲｏｕｔｅｒのようなＰＣの接続コンポーネントは、もしモバイル機器からデスクトップＰＣへのネットワーク接続、あるいは通過ルーティングが要求されれば使用される。ｍＲｏｕｔｅｒの詳細については内容が参照により組み込まれるＰＣＴ／ＧＢ２００２／００３９２３を参照されたい。
５．サーバ上の接続性コンポーネントはもしサーバが電話機に接続する必要があれば使用される。これは電話機のＩＰアドレスが外部には見えず、従ってサーバによりコンタクトすることができないので必要である。従って、電話機およびバックオフイスサーバの両方により見ることができ、サーバへのネットワーク接続を可能にする、リレーサーバが要求される。
【００３０】
（ｍｒｉｘ構成）
ｍｒｉｘはスマートフォン上で動作するコマンドインタプリータおよび遠隔ＰＣあるいは他の適切なプラットフォーム上で動作するコマンド実行シェルの周りに設計される。パイププロッセサを、ｍＲｏｕｔｅｒ（登録商標）を介してデスクトップＰＣから、あるいはリレーを介して遠隔サーバから（ユニックスコマンドのように）遠隔呼び出しができる。これによりｍｒｉｘの解決法による開発およびデバッグを都合の良いデスクトップＰＣから実施できるばかりでなく、またネットワークを介して実行時にスマートフォンのコンポーネントの共有を許容する。
【００３１】
幾つかのパイププロセッサは必須であり、システムの核と考えられる。実施例にはイベントに基づいて処理を開始および停止するのに使用されるｍｔＥｖｅｎｔあるいはｍｔＡＴが含まれる。また、メモリ量を最小にするために、もし必要であれば実行時に削除できる選択可能なパイププロセッサの組も供給される。また、特注のパイププロセッサをＣ＋＋あるいはＬＵＡスクリプトで構築することができ、このためにテンプレートが提供される。
【００３２】
（ｍｒｉｘ解決法の実施例）
使用するコンポーネントに関するより多くの情報については「ｍｒｉｘの特徴一覧」を参照されたい。
【００３３】
【表１】
2007510979.tif 000003
【００３４】
【表２】
2007510979.tif 000004
【００３５】
【表３】
2007510979.tif 000005
【００３６】
【表４−１】
2007510979.tif 000006
【００３７】
【表４−２】
2007510979.tif 000007
【００３８】
【表５】
2007510979.tif 000008
【００３９】
（特徴リスト）
核をなすｍｒｉｘシステムは幾つかのエレメントを含み、その幾つかはスマートフォン上に配備される。
【００４０】
ｍｒｃｍｄ：ｍｒｃｍｄは２つのエレメント、スマートフォンのコマンドインタプリータおよび遠隔コマンド実行シェルからなる。コマンドインタプリータは現在シンビアン上で動作する。遠隔コマンド実行シェルはウインドウズ、ＭａｃＯＳＸおよびリナックス上で動作する。
ｍ-Ｒｏｕｔｅｒ（登録商標）：シンビアンＯＳのスマートフォン上のローカル接続の管理を処理するイントュウエイブの既存のｍ-Ｒｏｕｔｅｒ（登録商標）製品へのコマンドラインインタフェースである。ｍ-Ｒｏｕｔｅｒ（登録商標）はシリアル、ブルートゥース、ＵＳＢおよびＩｒＤＡベアラを介して動作する。
ｍｒＥｌａｙ：ｍｒＥｌａｙはイントュウエイブの遠隔リレーサーバへのコマンドラインインタフェースとリレーサーバ自体の両方からなる。現在、リレーサーバはＧＰＲＳあるいはローカルｍ-Ｒｏｕｔｅｒ（登録商標）リンクにより代理されるＷＡＮを介してスマートフォンからアクセスすることができる。
パイププロセッサ：パイププロセッサはスマートフォンの機能をカプセル化する小型自己完結モジュールである。イベント処理およびファイルアクセスを管理する少数のパイププロセッサはｍｒｉｘの核に存在する。
スクリプトエンジン：強力でコンパクト（６０ｋ）なＬＵＡ５．０スクリプト記述エンジンはスマートフォンに含まれ、開発者がスクリプトを使用して直接難なくパイププロセッサの機能を結合することを許容する。スクリプト記述エンジンに含まれるのは、既存のパイププロセッサの機能を強力に結合する幾つかの核ｍｒｉｘスクリプトである。
ｍｒｉｘ参照マニュアル：全ての既存の核パイププロセッサの使用法を説明するＨＴＭＬページである。ｍ-Ｒｏｕｔｅｒ（登録商標）およびｍｒｃｍｄ機能、並びに新しいパイププロセッサの記述に関する指示も存在する。文書およびスクリプトの詳細が含まれる。
【００４１】
システムの核機能を拡張する付加的パイププロセッサの範囲がある。これらパイププロセッサは難なくｍｒｉｘシステムに付加され、その能力を高めることができる。
【００４２】
（ｍｒｉｘの利点）
（アプリケーションの分野）
ｍｒｉｘ技術はスマートフォン装置の遠隔制御が重要なアプリケーションの広い範囲に直接適用できる。
試験：ｍｒｉｘはシステムの完全自動化、即ち機能、受理、後戻りおよび相互作用のテストを可能にする。
ＰＩＭアプリケーション：ｍｒｉｘはスクリプトがアクセス可能なツールキットを介してＰＣ接続性ＰＩＭアプリケーションの迅速な開発を可能にする。
【００４３】
（利点）
ｍｒｉｘはスマートフォン製造会社および電話ネットワーク運用会社に数多くの利点をもたらす。
・開発スピード：ｍｒｉｘの開発はＡＰＩに対するコーディングよりむしろスクリプトを発展させることにより迅速に反復して行われる。これにより開発ライフサイクルがかなりスピードアップされる。
・経費：ｍｒｉｘの機能はスクリプトを基本とするので、保守および機能の高度化の経費、並びに開発経費はかなり削減される。
・クロスプラットフォーム：ｍｒｉｘはスマートフォンのための完全なクロスプラットフォームのサポートを提供する。クロスプラットフォームツールキットと結合されると、サーバアプリケーションが構築され、種々のＰＣオペレーティングシテムに亘って動作できる。
【００４４】
（付録１）
（ＭＲＩＸ-開始への指針）
（ＭＲＩＸの概要）
ｍｒｉｘはプラットフォームを意識しない無線ネットワークオペレーティングシステムである。ｍｒｉｘはスマートフォン、パーソナルコンピュータおよびサーバ上ならびにそれらの間の両方で移動アプリケーションの広い範囲の迅速なクロス-プラットフォーム開発を許すように設計されている。ｍｒｉｘはコマンドライン駆動ツールの強力なセットからなり、スクリプト記述言語を使用して洗練されたＰＣアプリケーション上での構築、内部への組み込みが可能である。さらに、ｍｒｉｘを使用してスマートフォン自体において実行可能なアプリケーションを記述することができる。
【００４５】
図２は可能なｍｒｉｘの構成を示す。
【００４６】
ｍｒｉｘは幾つかのエレメントからなり、図３に示すように遠隔リレー（ＴＣＰ／ＩＰ、ＧＰＲＳ）経由、並びにローカルリンク（ＩＲ、ブルートゥースおよびＵＳＢ）を介してコマンドを実行するのに使用することができる。
【００４７】
構成に関する幾つかの重要なエレメントが存在する。
・ｍ-Ｒｏｕｔｅｒ：ベアラ接続エージェントである。ｍ-Ｒｏｕｔｅｒは幾つかのＰＣおよびスマートフォンコンポーネントの両方からなる。ｍ-Ｒｏｕｔｅｒは色々な短リンクベアラ、即ちＩｒＤＡ、ブルートゥース、ＵＳＢおよびシリアルを介してスマートフォンとＰＣ間の通信を可能にする。
・リレー：リレー、ｍｒＥｌａｙＤ（「Ｄ」はディーモンを意味する）はＰＣからＧＰＲＳを介してスマートフォンへの遠隔アクセスを許す。ＰＣおよびスマートフォンの両方は両者間の通信実現のためにリレーに接続する。
・アイデンティティサーバ：全てのコマンドはローカルあるいは遠隔何れにしろ、「識別」（人あるいはシステム）のために動作する。種々のアイデンティティ（同一性）を構成し、種々の結果を得るコマンドを動作させることができる。
・ブートサーバ：スマートフォンリブートによりｍｒｉｘイベントの開始を処理する。
・コマンドインタプリータ：コマンドインタプリータモジュール、ｒｓｈｄはスマートフォン上で動作し、普通はブートにより開始するように設定される。
・コマンドシェル：コマンドシェル、ｍｒｃｍｄはＰＣ上で動作する。シェルは現在ウインドウズ上で動作するが、やがてリナックスおよびマックＯＳＸ上で利用可能になる。プログラムおよびスクリプトはスマートフォン上のｍｒｉｘコンポーネントと通信および相互作用をするＰＣに対して記述することができる。
・Ｌｕａスクリプト記述エンジン：Ｌｕａで書かれたスクリプトはスマートフォンで動作することができる。幾つかの有用なスクリプト、例えばＳＭＴＰおよびＦＴＰクライエントがレリースされている。
・パイププロセッサ：個別のスマートフォンモジュールであり、ｍｒｉｘコマンド環境を通じてアクセスし、スマートフォン機能の範囲へのアクセスを提供する。
【００４８】
（事前要件）
ｍｒｉｘの使用には次のハードウエアおよびソフトウエアが必要である。
【００４９】
・ＩｒＤＡあるいはブルートゥースのサポートのあるＰＣ
・マイクロソフトウインドウズ２０００あるいはその後のバージョン
・ｍ-Ｒｏｕｔｅｒ
・ｍｒｉｘ
・スマートフォン（ノキア７６５０、３６５０、６６００、Ｎ-ゲージ、ソニーエリクソンＰ８００）
（ＭＲＩＸの使用）
（ｍ-Ｒｏｕｔｅｒ-スマートフォンへの接続）
ＰＣ上でコマンド指示を開き、
＞ｍｒｏｕｔｅｒ-ｈ
をタイプする。
【００５０】
このコマンドはｍ-Ｒｏｕｔｅｒのヘルプを表示する。全てのコマンドはヘルプの選択肢を有し、-ｈあるいは長い形式--ｈｅｌｐにより呼び出すことができる。
【００５１】
接続するスマートフォンを探すために、
＞ｍｒｏｕｔｅｒ-ｃｓｅａｒｃｈ-ｄｅｖｉｃｅｓ
をタイプする。
【００５２】
このコマンド選択肢はローカルに全てのブルートゥース装置を探す。
【００５３】
リストした最初の４列は装置、ＵＩＤ（スマートフォン装置ではこれはＩＭＥＩ番号-この実施例ではこれは装置８に対してのみ示す）、ブルートゥースアドレスおよびブルートゥースと相性の良い名称（装置ユーザにより割り当てられる）を表すために使用される任意の順序を示すリスト番号である。
【００５４】
得られる装置リストからスマートフォンを見つけ、次いでコマンド指示の以下のコマンドをタイプしてスマートフォンに接続する。
【００５５】
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄ＜ブルートゥース装置名＞
例えば、もしスマートフォンがＮｏｋｉａ７６５０のブルートゥース名を持っていれば、その場合コマンドは、
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄＮｏｋｉａ７６５０となる。
【００５６】
システムトレイのｍ-Ｒｏｕｔｅｒアイコンのスクリーンが赤から青に変わるのが見られる。
【００５７】
開発の目的に対して、「装置を探す」から得られる順序を示す結果を使用するのが最も好都合であることが分かる。種々のアドレス方式を使用してスマートフォンに接続できる。選択肢「-ｄ」は＜ｓｃｈｅｍａ＞：＜ｉｄ＞の形式を取る。ＳｃｈｅｍａはＮ、ＩＭＥＩ、ＢＴＡＤＤＲ、ＢＴＮＡＭＥ、ＡＮＹの１つでありうる。もし見つからなければ、ｓｃｈｅｍａはＡＮＹと想定される。Ｎはリスト-装置あるいはサーチ-装置によって戻される各装置の次のリスト番号と整合する。ＩＭＥＩはＵＩＤフィールドと整合する。ＢＴＡＤＤＲはブルートゥースアドレスに整合する。ＢＴＮＡＭＥはＢＴと相性の良い名称に整合する。ＡＮＹは以上の何れにも整合する。従って、このように種々の方法で装置に接続することが可能である。
【００５８】
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄ８
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄＩＭＥＩ：ｘｘｘｘｘｘｘｘ
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄＢＴＡＤＤＲ：ｘｘｘｘｘｘ
＞ｍｒｏｕｔｅｒ-ｃｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄＳＪＣｘｘｘｘｘｘｘｘｘ
スマートフォンを切断するためには、
＞ｍｒｏｕｔｅｒ-ｃｄｉｓｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄ＜ブルートゥース装置名＞をタイプする。
また、
＞ｍｒｏｕｔｅｒ-ｃｄｉｓｃｏｎｎｅｃｔ-ｄｅｖｉｃｅ-ｄ．
をタイプすることもできる。
上のタイプでもし複数の装置が現在接続されていれば、ピリオドは現在接続されている装置、あるいは最初に接続された装置を表す。
【００５９】
（ｍｒｃｍｄ-ＰＣからの電話機制御）
ｍｒｃｍｄはスマートフォン上でパイププロセッサとスクリプトを動作させることを許容するＰＣのサイドプログラムである。スマートフォン上でパイププロセッサとスクリプトを動作させる前に、ｍｒｉｘの設定のための要件レベルのセキュリティを設定する必要がある。これはｍｒｃｍｄ環境変数を設定することにより行われる。現在、アイデンティティ構成情報はスマートフォンの＼ｓｙｓｔｅｍ＼ｍｒｉｘ＼ｉｄｅｎｔｉｔｙ．ｉｎｉファイルに格納されている。ＣＴＯアイデンティティはパスワードＧＯＯＤと共にこのファイルに設定されている。ｍｒｉｘシステムとプレイするためにこのアイデンティティを使用しなければならない。これは以下のようにＤＯＳコマンドシェルから行われる。
【００６０】
＞ｓｅｔｍｒｃｍｄ＝-ｉＣＴＯ-ａＧＯＯＤ
あるいは、これを以下のように永久に設定することを希望することができる。
【００６１】
デスクトップの「マイコンピュータ」を右クリックし、「プロパティ」を選択。
【００６２】
「次へ」タブを選択。
【００６３】
「環境変数」ボタンをクリック。
【００６４】
「システム変数」リストの「新」ボタンをクリック。
【００６５】
「変数」フィールドに「ＭＲＣＭＤ」を入力し、「-ｉＣＴＯ-ａＧＯＯＤ」を「変数値」フィールドに入力。
【００６６】
変更を保存するためにＯＫを３度クリック。
【００６７】
一度セキュリティが設定されると、スマートフォン上で遠隔シェルデーモン、ｒｓｈｄを開始する必要がある。スマートフォン上で初めてｍｒｉｘを動作させるときに一度だけこれを行はなければならない。その後ｍｒｉｘブートサーバを使用して、ｒｓｈｄは自動的にブートで開始される。ｒｓｈｄを動作させるために、スマートフォン上でｍｒｉｘアプリケーションを開き、以下のようであるべきリストボックスの第１のコマンドを実行する必要がある。
【００６８】
ｍｒｔｃｐ
--ａｃｃｅｐｔ--ｌｏｃａｌ３０１１--ｒｕｎ“ｒｓｈｄ--ｒｕｎ”
ｍｒｉｘアプリケーションはスマートフォン上でコマンドとスクリプトを動作させる単純な方法である。ｍｒｉｘから別のコマンドを呼び出すためには、単純にただ既存のコマンドラインを上書きする（および必要なパラメータ）。
【００６９】
そうすると、既存のｍＲｏｕｔｅｒ接続を介してｍｒｃｍｄを使用してｍｒｉｘコマンドの動作を試す準備が整う。既存のパイププロセッサの広い範囲から任意のものを試すことができる。以下に、ｍｒｐｓおよびｍｒｆｉｌｅを記す。
【００７０】
ｍＲｏｕｔｅｒを使用して、スマートフォンに接続する。
【００７１】
スマートフォン上で全ての処理が動作するのを見るために、
＞ｍｒｃｍｄ．“ｍｒｐｓ-１”をタイプする。
【００７２】
ｍｒｃｍｄはスマートフォンに-１選択肢により（この場合、現在接続されている装置を意味するピリオドにより示されるが、明白にブルートゥースの名称を指定することができる）ｍｒｐｓパイププロセッサを動作させることを告げる。コマンドが２重引用符で囲まれていることに注意されたい。
【００７３】
コマンドラインからｍｒｐｓに関するヘルプを得るには、
＞ｍｒｃｍｄ．“ｍｒｐｓ-ｈ”をタイプする。
【００７４】
ファイルをスマートフォンに送信するには、
＞ｍｒｃｍｄ．“ｍｒｆｉｌｅ-ｗｃ：＼ｓｙｓｔｅｍ＼ｄｅｆａｕｌｔ．ｃａｒ”＜ｃ：＼ｍｒｉｘ＼ｂｉｎ＼ｄｅｆａｕｌｔ．ｃａｒをタイプする。
【００７５】
このコマンドはファイル（ｃ：＼ｍｒｉｘ＼ｂｉｎ＼ｄｅｆａｕｌｔ．ｃａｒ）をスマートフォンに再度差し向ける。選択肢「-ｗ」はスマートフォン上でファイルが書かれるべき場所を指定する（ｃ：＼ｓｙｓｔｅｍ＼ｄｅｆａｕｌｔ．ｃａｒ）。
【００７６】
スマートフォンからファイルを削除するには、
＞ｍｒｃｍｄ．“ｍｒｆｉｌｅ-ｄｃ：＼ｓｙｓｔｅｍ＼ｄｅｆａｕｌｔ．ｃａｒ”をタイプする。
【００７７】
コマンドラインからｍｒｆｉｌｅに関するヘルプを得るには、
＞ｍｒｃｍｄ．“ｍｒｆｉｌｅ-ｈ”をタイプする。
【００７８】
ｍｒｃｍｄを使用して、Ｌｕａスクリプトを呼び出すこともできる。コマンドラインからｌｕａスクリプトを動作させることに関するヘルプを得るには、
＞ｍｒｃｍｄ．“ｌｕａｒｕｎ-ｈ”をタイプする。
【００７９】
ｔｅｓｔ．ｌｕａと呼ばれるスクリプトファイルを創り、テキストをコピーし、シェブロンで挟んで（を含まず）ファイルに貼り付ける。
＞＞＞＞＞＞＞＞＞＞＞＞
＃！ｌｕａｒｕｎ
ｍｒｉｘ．ｗｒｉｔｅ（“Ｈｅｌｌｏ、Ｗｏｒｌｄ＼ｎ”）
ｍｒｐｒｏｍｐｔのパイププロセッサを駆動。
【００８０】
ｍｒｉｘ．ｒｕｎは他のスクリプトとパイプロセッサ動作させ、フォームを持つ。
【００８１】
ｍｒｉｘ．ｒｕｎ（コマンド、コマンドパラメータ、［選択肢の入力］）
ｒｅｓ＝ｍｒｉｘ．ｒｕｎ（“ｍｒｐｒｏｍｐｔ”、“-ｔＹＥＳＮＯ-ｐ＼”Ｎｅｅｄ  ｈｅｌｐ-＼” ”）
ｍｒｉｘ．ｗｒｉｔｅ（“Ｒｅｓｕｌｔ＝”．．ｒｅｓ“＼ｎ”）
＞＞＞＞＞＞＞＞＞＞＞＞
Ｌｕａスクリプトはスマートフォン上で２つの方法の内の１つで動作させることができる。
・ｌｕａスクリプトをスマートフォンに流すことによる。
・スマートフォン上にあるｌｕａスクリプトを動作させることによる。
【００８２】
スクリプトをスマートフォンに流すためには、
＞ｍｒｃｍｄ．“ｌｕａｒｕｎ-”＜ｔｅｓｔ．ｌｕａをタイプする。
【００８３】
スクリプトは“Ｈｅｌｌｏ、Ｗｏｒｌｄ”をコマンドラインに印刷する。この方法により、スクリプトはスマートフォン上に存在する必要はない。
【００８４】
スマートフォンからスクリプトを動作させるには、先ずスクリプトをスマートフォンに書く。
【００８５】
＞ｍｒｃｍｄ．“ｍｒｆｉｌｅ-ｗｃ：＼ｓｙｓｔｅｍ＼ｍｒｉｘ＼ｔｅｓｔ．ｌｕａ”＜ｔｅｓｔ．ｌｕａ
スクリプトを動作させるには、
＞ｍｒｃｍｄ．“ｌｕａｒｕｎｃ：＼ｓｙｓｔｅｍ＼ｍｒｉｘ＼ｔｅｓｔ．ｌｕａ”をタイプする。
【００８６】
結果は第１の方法によりスクリプトを動作させるのと同じである。
【００８７】
Ｌｕａは、従って以下の実施例のように相互作用により呼び出すことができる。
【００８８】
＞ｍｒｃｍｄ．“ｌｕａｒｕｎ”
＞ｍｒｉｘ．ｗｒｉｔｅ（“Ｈｅｌｌｏ、Ｗｏｒｌｄ”）
＞ｑ
（さらなるスクリプトについて）
ＰＣとの相互作用とは独立に、スマートフォン上でＬｕａスクリプトを動作させる２つの方法がある。
【００８９】
第１はｍｒｉｘを使用してＬｕａスクリプトを呼び出す。単にＣｍｄフィールドにスクリプトの名称とＰａｒａｍｓフィールドにスクリプトのパラメータをタイプし、Ｒｕｎを選択する。
【００９０】
第２はスマートフォンがオンの時にスクリプトを動作させる。これを行うには、スクリプトをスマートフォンのブートファイルにロードするイベントを設定する必要がある：
＞ｍｒｃｍｄ．“ｍｒｅｖｅｎｔ-ａ-ｎｒｕｎｍｙｓｃｒｉｐｔ-ｅＢＯＯＴ-ｃｌｕａｓｃｒｉｐｔ．ｌｕａ”
このコマンドは（-ａ）ブートコマンド（-ｅＢＯＯＴ）をスマートフォンのブートファイルに加え、スマートフォンがオンの時にスクリプト（-ｃｌｕａｓｃｒｉｐｔ．ｌｕａ）を動作させる。イベントには名称（-ｎｒｕｎｍｙｓｃｒｉｐｔ）が与えられ、名前として働き、以下のようにブートからイベントを削除することができる。
【００９１】
＞ｍｒｃｍｄ．“ｍｒｅｖｅｎｔ-ｄ-ｎ  ｒｕｎｍｙｓｃｒｉｐｔ”
（アイデンティティ）
全てのｍｒｉｘスマートフォンスクリプトおよびパイププロセッサは、ローカルあるいは遠隔からアイデンティティの承認の下に動作する。アイデンティティはユーザネーム、パスワードおよびアイデンティティの下に動作させることの出来るスクリプトおよびパイププロセッサを管理する承認の組からなる。ｉｄｅｎｔｉｔｙ  ｆｉｌｅ、ｉｄｅｎｔｉｔｙ．ｉｎｉはスマートフォンの＼ｓｙｓｔｅｍ＼ｍｒｉｘ  ｄｉｒｅｃｔｏｒｙに位置する。
【００９２】
これまで、ユーザ、（全てのコマンドに対する完全な承認を有する）ＣＴＯを使用してｍｒｃｍｄを介してコマンドを動作させた。もしスマートフォンが起動するときにスクリプトを動作させるように設定されていれば、その場合使用するデフォールトアイデンティティは最小限度の承認を有する「ゲスト」である。それ故、スクリプトは動作できるｍｒｉｘコマンドに制限がある。何か有益なことを行うには、スクリプトがより多くの承認を得ることが出来るように、アイデンティティは変化しなければならない。以前に創られたｌｕａスクリプトファイルを編集する。テキストをコピーし、シェブロンを挟んで（を含まず）ファイルに貼り付ける。次いでｍｒｆｉｌｅを使用して、スクリプトをスマートフォンに送信し、ｍｒｉｘアプリケーションを使用してスクリプトを動作させる。ｍｒｉｘで、Ｏｐｔｉｏｎｓ｜Ｒｕｎを選択し、“ｔｅｓｔ．ｌｕａ”をＣｍｄフィールドに入力し（Ｐａｒａｍｓフィールドが空白であることを確認する）、Ｒｕｎを選択する。指示が与えられ、ハイあるいはイイエを選択することができる。
＞＞＞＞＞＞＞＞＞＞＞＞＞
＃！ｌｕａｒｕｎ
現在のアイデンティティ、この場合ゲストを保存。
ｏｌｄ＿ｉｄ＝ｍｒｉｘ．ｇｅｔｃｕｒｒｅｎｔｉｄｅｎｔｉｔｙ（）
ＣＴＯｕｓｅｒｎｅｍｅを使用して、新しいアイデンティティの名前を作成。
ｎｅｗ＿ｉｄ＝ｍｒｉｘ．ｍａｋｅｎｅｗｉｄｅｎｔｉｔｙ（“ＣＴＯ”、“ＧＯＯＤ”）
以下のコマンドを動作させるために新しく創ったアイデンティティを使用。
ｍｒｉｘ．ｓｅｔｃｕｒｒｅｎｔｉｄｅｎｔｉｔｙ（ｎｅｗ＿ｉｄ）
ｍｒｉｘ．ｗｒｉｔｅ（“ｈｅｌｌｏ、ｗｏｒｌｄ＼ｎ”）
ｍｒｐｒｏｍｐｔパイププロセッサを駆動。
【００９３】
ｍｒｉｘ．ｒｕｎは他のスクリプトとパイプロセッサ動作させ、フォームを持つ。
【００９４】
ｍｒｉｘ．ｒｕｎ（コマンド、コマンドパラメータ、［選択肢の入力］）
ｒｅｓ＝ｍｒｉｘ．ｒｕｎ（“ｍｒｐｒｏｍｐｔ”、“-ｔＹＥＳＮＯ-ｐ＼”Ｎｅｅｄ  ｈｅｌｐ-＼” ”）
ｍｒｉｘ．ｗｒｉｔｅ（“Ｒｅｓｕｌｔ＝“．．ｒｅｓ”＼ｎ”）
-保存したアイデンティティを復活。
ｍｒｉｘ．ｓｅｔｃｕｒｒｅｎｔｉｄｅｎｔｉｔｙ（ｏｌｄ＿ｉｄ）
-新しいアイデンティティを開放し、リソースを開放する。
ｍｒｉｘ．ｒｅｌｅａｓｅｉｄｅｎｔｉｔｙ（ｎｅｗ＿ｉｄ）
＞＞＞＞＞＞＞＞＞＞＞＞＞
（付録２）
（パイププロセッサ）
ｍｒＡｇｅｎｄａ          アジェンダデータベースへのインタフェースの提供。
ｍｒＡｔ                  所与の時間に動作させるコマンドを計画。
ｍｒＢｌｕｅｔｏｏｔｈ    ブルートゥースサービスの範囲へのアクセスの提供。
ｍｒＣｏｎｔａｃｔｓ      連絡先データベースへのインタフェースの提供。
ｍｒＥｌａｙｄ            リレーサーバへの接続の確立。
ｍｒＥｖｅｎｔ            イベントの設定と駆動（コマンド）。
ｍｒＦｉｌｅ              基本ファイルとディレクトリ操作の実行。
ｍｒＩｍａｇｅ            装置からの単一イメージあるいはイメージストリームの獲得。
ｍｒＫｅｙｂｏａｒｄ      キーボードへの文字入力の模擬。
ｍｒＬａｕｎｃｈ          アプリケーションの開始、実装／動作アプリケーションのリ
スト。
ｍｒＭｅｓｓａｇｅ        メッセージの閲覧／削除、ＳＭＳ送信、受信ボックスの注視。
ｍｒＭｒ                  他のパ一プロセッサに関する情報の抽出。
ｍｒＯｂｅｘ              装置のブルートゥースＯＢＥＸを発出するクライアントへの
転換。
ｍｒＰｒｏｍｐｔ          単純な質問によるユーザへの指示。
ｍｒＰｓ                  処理とスレッドの状況管理。
ｍｒＳｈｕｔｄｏｗｎ      閉鎖、リブートあるいは装置のブート状況の閲覧。
ｍｒＳｉｍ                ｓｉｍ関連情報の抽出。
ｍｒＳｋｙ                インターネットの「常時利用可能」格納エリアのデータを格納。
ｍｒＳｔｏｒａｇｅ        装置へのデータ格納の許容。
ｍｒＳｙｓｉｎｆｏ        システム情報を返信。
ｍｒＴｃｐ                ＴＣＰ／ＩＰ接続の確立。
ｍｒＴｈｒｏｕｇｈｐｕｔ  電話機へおよび／からの疎通試験。
ｍｒＷａｔｃｈｆｉｒｅ    注視されるリソースが変化するときコマンドを作動。
【００９５】
（付録３）
（シンビアンパイププロセッサの開発）
（１．序説）
本節はシンビアンパイププロセッサを記述することを望む全ての開発者の手引きとして役立つことを意図する。ｍｒｉｘパイププロセッサのテンプレートを使用して開始することの基礎を明らかにし、またパイププロセッサの開発過程で遭遇することのある幾つかの共通パターンを説明する。
【００９６】
（２．パイププロセッサとは何か-）
パイププロセッサはスマートフォンを基本とするモジュールであり、論理的に関係のあるスマートフォン機能の組をカプセル化する。このモジュールがそう呼ばれるのはｍＳｔｒｅａｍから導かれるインタフェースにより全てのその入力および出力を抽象化するからである。即ち、このモジュールはコマンドラインインタフェースによりその機能を本質的に表す。例えば、ｍｒＣｏｎｔａｃｔｓパイププロセッサはスマートフォンに関する連絡先管理の全側面を抽象化する。もしｍｒＣｏｎｔａｃｔｓがａ-１選択肢により呼び出されると、全ての連絡先リストを返す。もしａ-ｐ選択肢により呼び出されると、スマートフォンの連絡先データベースを更新するのに使用する連絡先情報のファイルが期待される。
【００９７】
シンビアンでは、パイププロセッサはＣｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＩｎｓｔａｎｃｅＧｒｏｕｐから導かれるクラスの単一の例を創り、次にこれを使用して任意の数のＣｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＩｎｓｔａｎｃｅから導かれる例を創り、特定のタスクを管理する。通常、それぞれ重要なコマンドライン選択肢に個別のＣｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＩｎｓｔａｎｃｅが創られる。パイププロセッサは独立の実体として設計することができる、あるいはＣＰｉｐｅＰｒｏｃｅｓｓｏｒＲｕｎｎｅｒＣｏｎｔａｉｎｅｒクラスの例を使用して他のパイププロセッサを内部で呼び出すことが出来る。
【００９８】
パイププロセッサの能力は本明細書の焦点であるｍｒｉｘの枠組みを通じて最も強力に梃子入れすることができる。この枠組みの中で、パイププロセッサの能力はｍｒｉｘのｍｒｃｍｄ遠隔シェルインタフェースにより、あるいは装置上で動作するＬＵＡスクリプトを介して直接呼び出すことができる。一般に、明確に独立のスマートフォン機能の諸側面に責任を持つ論理的に自己完結のモジュールであるようにパイププロセッサを設計するのは良い考え方である。換言すれば、パイププロセッサは可能な限り「直交に」維持されるべきであり、設計者は単一のモジュールに責任の異なる種類を詰め込もうとすることを避けるべきである。
【００９９】
シンビアンの全てのパイププロセッサに共通の特徴は以下の通りである：
１．パイププロセッサグループにポインタを戻す単一出力を持つ多様形ＤＬＬ。ｍｒＣｏｎｔａｃｔｓにとりこれは以下の通りである：
ＣｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＩｎｓｔａｎｃｅＧｒｏｕｐ＊  ＣｍｒＣｏｎｔａｃｔｓＧｒｏｕｐＣｒｅａｔｏｒＦｕｎｃｔｉｏｎ（ｃｏｎｓｔｍＳｔｒｅａｍＭａｎ：：ＦｉｘｅｄＳｔｒｉｎｇ＆ａＮａｍｅ）
２．ＵＩＤ１は０ｘ１０００ＡＦ７０である。
３．スマートフォン機能の幾つかの個別の側面に対する責任。
【０１００】
（３．パイププロセッサの開始）
（ｍｒｉｘパイププロセッサのテンプレート）
パイププロセッサ構築の推奨方法は＼ｍｒｉｘ＼ｓｏｕｒｃｅ＼ｅｐｏｃ＼ｇｅｎｅｒｉｃに見出すことのできるｍｒｉｘパイププロセッサのテンプレート、ｃｏｍｍａｎｄｔｅｍｐｌａｔｅ．ｐｌにより始めることである。ＤＯＳシェルコマンドラインから適切なＵＩＤ２と共にパイププロセッサの意図した名前を持つこのテンプレートを呼び出す。開発に有効なＵＩＤの範囲は０ｘ０００００００１から０ｘ０ｆｆｆｆｆｆｆである。この範囲のＵＩＤは公開コードに使用されるべきではない。代わりに、第３パーティの開発者はシンビアンテクニカルペーパを調べる必要がある。例えば、テンプレートパイププロセッサを創るために、０ｘ００ｆ００ｆ００の開発ＵＩＤを持つｍｒＦｏｏは＼ｍｒｉｘ＼ｓｏｕｒｃｅ＼ｅｐｏｃ＼ｇｅｎｅｒｉｃディレクトリにおいて以下のコマンドを動作せる：
ｃｏｍｍａｎｄｔｅｍｐｌａｔｅ．ｐｌ-ｎｍｒＦｏｏ-ｕ０ｘ００ｆ００ｆ００-ｓ  ｔｅｍｐｌａｔｅｓ＼ｓｙｎｃｈｒｏｎｏｕｓ＿ｐｐ
このコマンドを動作させる場合、ＭＳＶＣ６が骨格プロジェクトにより発出されていることを知るべきである。そのプロジェクト内では、既成のテンプレート、ｍｒＦｏｏ．ｈｔｍｌｍａｎｐａｇｅ、ｅｍｐｔｙｔｏｄｏ．ｔｘｔおよびｈｉｓｔｏｒｙ．ｔｘｔファイルおよびまた幾つかのＣ＋＋ソースおよびヘッダファイルが見出される。
【０１０１】
ＭＳＶＣ６の中およびＤＯＳシェルコマンドラインからの両方でパイププロセッサをコンパイルし、構築できる筈である。シンビアンスマートフォンのためにパイププロセッサを構築するためには、まずディレクトリを＼ｍｒｉｘ＼ｓｏｕｒｃｅ＼ｅｐｏｃ＼ｇｅｎｅｒｉｃから＼ｍｒｉｘ＼ｓｏｕｒｃｅ＼ｅｐｏｃ＼ｇｅｎｅｒｉｃ＼ｍｒｆｏｏ＼ｇｒｏｕｐに変える必要がある。次いで、合図変数ｂｕｉｌｄを以下のように呼び出す。
【０１０２】
ａｂｌｄ  ｂｕｉｌｄ  ｔｈｕｍｂ  ｕｒｅｌ
そしてパイププロセッサを適切に接続されている目標に以下のように転送する。
【０１０３】
ｐｕｔｐｐ．ｍｒｆｏｏ
これを行うには、ｍ-Ｒｏｕｔｅｒ（登録商標）接続がシンビアンスマートフォンとＰＣの間で動作中であり、ｍｒｉｘ遠隔シェルディーモンｒｓｈｄが動作していることを保証する必要がある。
【０１０４】
一度パイププロセッサｍｒＦｏｏが装置上に存在すると、デフォールトでは動作させることができないので、アイデンティティがこのパイププロセッサを動作させることを許容するように装置のｉｄｅｎｔｉｔｙ．ｉｎｉファイルを変更する必要がある。これにはこのファイルに次の行を追加する必要がある（適切なユーザアイデンティティタグの下に）。
【０１０５】
ＡｌｌｏｗｍｒＦｏｏ＝Ｙｅｓ
電話機のリブートが、アイデンティティサーバがアップグレードの登録ができることを保証するのに続いて、パイププロセッサを動作させることが出来るようになるはずである。
【０１０６】
ｍｒＦｏｏの埋め込みヘルプを以下のように呼び出すことができる。
【０１０７】
ｍｒｃｍｄ．“ｍｒｆｏｏ-ｈ”
この点で、ｍｒＦｏｏパイププロセッサはシンビアンスマートフォン上で動作する。ｍｒＦｏｏパイププロセッサが正当なパイププロセッサとしてシステムパイププロセッサのｍｒｍｒ-１リストに現れるのを見ることができるはずである。以下の選択肢のサポートはテンプレートによりデフォールトとして埋め込まれている。
＊    -ｈ：ｈｅｌｐ  ｌｉｓｔｉｎｇ
-ｖ：ｖｅｒｂｏｓｅ
＊    -Ｖ：ｖｅｒｓｉｏｎ
コマンドテンプレートの呼び出しからシステムに実装された動作するパイププロセッサを得るに至る過程は１分を要しない筈である。
【０１０８】
（ライブラリサポート）
パイププロセッサは次の３つのライブラリにリンクする：
＊    ｍＳｔｒｅａｍＣｌｉｅｎｔＥｘ．ｌｉｂ：ｍＳｔｒｅａｍのクラス。
＊    ｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＥｘ．ｌｉｂ：ｍｒｉｘパイププロセッサの拡張。
ｍＳｔｒｅａｍＵｔｉｌＥｘ．ｌｉｂ：ｍｒｉｘパイププロセッサのユーティリティ。
これらライブラリに対応するヘッダは以下の通りである。
＊    ＃ｉｎｃｌｕｄｅ＜ｍＳｔｒｅａｍＣｌｉｅｎｔＥｘ．ｈ＞
＊    ＃ｉｎｃｌｕｄｅ＜ｍＳｔｒｅａｍＰｒｏｃｅｓｓｏｒＥｘ．ｈ＞
＃ｉｎｃｌｕｄｅ＜ｍＳｔｒｅａｍＵｔｉｌＥｘ．ｈ＞
もしｍｒｉｘパイププロセッサテンプレートを使用する場合、これらのライブラリおよびヘッダは関係するファイル、即ち．ｍｍｐ作成ファイルおよびｓｔｄａｆｒ．ｈヘッダァファイルに自動的に挿入されることに注意されたい。
【０１０９】
（４．構成エレメント）
（他のパイププロセッサの呼び出し）
以下のコードの抜粋はＣＰｉｐｅＰｒｏｃｅｓｓｏｒＲｕｎｎｅｒＣｏｎｔａｉｎｅｒの例の創り方および標準-Ｖ選択肢を使用するパイププロセッサのバージョンを決定するための使用法を示す。
【０１１０】
ｒｕｎｎｅｒ＝ＣＰｉｐｅＰｒｏｃｅｓｓｏｒＲｕｎｎｅｒＣｏｎｔａｉｎｅｒ：：ＮｅｗＬ（）；
ＴＩｎｔｈａｎｄｌｅ＝ｒｕｎｎｅｒ-＞ＰＰＯｐｅｎ（ａＰＰ，＿Ｌ
（“--ｖｅｒｓｉｏｎ”））；
Ｉｎｆｏ（＿Ｌ８（“ＰＰＯｐｅｎｒｅｔｕｒｎｅｄ％ｄ”），ｈａｎｄｌｅ）；
ｉＶｅｒｓｉｏｎＢｕｆｆｅｒ．ＳｅｔＬｅｎｇｔｈ（０）；
ｉｆ（ｈａｎｄｌｅ＞０）
｛／／ファイルの終わりまでＰＰ出力の同期読み取り、
ｅｒｒ＝ＫＥｒｒＮｏｎｅ；
ｗｈｉｌｅ（ｌｅｒｒ）
｛
ＴＢｕｆｆ８＜８＞ｂｕｆ；
ｅｒｒ＝ｒｕｎｎｅｒ-＞ＰＰＲｅａｄ（ｈａｎｄｌｅ，＆ｂｕｆ）；
Ｉｎｆｏ（＿Ｌ８（“ＰＰＲｅａｄｅｒｒ＝％ｄ，＼“％Ｓ＼” ”），ｅｒｒ，＆ｂｕｆ）；
ｉｆ（ｌｅｒｒ）
ｉＶｅｒｓｉｏｎｂｕｆｆｅｒ＋＝ｂｕｆ；
｝
ｅｒｒ＝ｒｕｎｎｅｒ-＞ＰＰＣｌｏｓｅ（ｈａｎｄｌｅ）；
Ｉｎｆｏ（＿Ｌ８（“ＰＰｃｌｏｓｅｒｅｔｕｒｎｅｄ％ｄ”），ｅｒｒ）；
ｄｅｌｅｔｅｒｕｎｎｅｒ：
（５．パイププロセッサ設計パターン）
パイププロセッサ内において起こりうる処理の４つの共通タイプが存在する。
＊    リスト処理
＊    入力処理
＊    接続管理
＊    状態管理
これら構成上の使用の各場合は特定のパターンを使用して処理することができる。
【０１１１】
（付録４）
（ｍｒｉｘコマンドおよびスクリプトガイドライン）
（１．序説）
本節はｍｒｉｘコマンドの書き方（Ｃ＋＋パイププロセッサとスクリプトの両方を含む）および動作のさせ方のガイドラインを記す。これらコマンドの記述者と試験者の両者向きである。
【０１１２】
（２．パイププロセッサとスクリプトの共通事項）
以下のガイドラインはパイププロセッサとスクリプトの両方に適用される。
【０１１３】
（２．１  入力／出力フォーマット）
他のソフトウエアから来る、あるいは他のソフトウエアにより処理されると考えられるコマンドによるデータ入力あるいは出力は少なくとも以下のフォーマットの１つにおいて受理／利用されるべきである。
【０１１４】
（ＭＩＭＥタイプの記述例）
固定数のフィールドを持つレコードのテキスト／コンマで区切られた値のリスト。第１のレコードはヘッダレコードである。
【０１１５】
ｍｒｐｓ-Ｌ，ｍｒｏｕｔｅｒ-ｃｌｉｓｔ-ｄｅｖｉｃｅｓ
ｔｅｘｔ／ｘ-ｍｒｉｘ-ｖｅｒｓｉｔ    恐らく可変数のフィールドを持つレコードの木またはフラット構造リスト
ｍｒｃｏｎｔａｃｔｓ-１，ｍｒａｇｅｎｄａ-１，ｍｒｍｅｓｓａｇｅ-１
ｔｅｘｔ／ｘ-ｍｒｉｘ-ｔａｇｇｅｄ    「ラベル：値」の対の静的リストであり、単一の静的レコードが出力される度に使用される。    ｍｒｓｉｍ-１
ａｐｐｌｉｃａｔｉｏｎ／ｏｃｔｅｔ-ｓｔｒｅａｍ    コマンドに特定のフォーマットの一般のバイナリデータ
ｍｒｆｉｌｅ-ｒ，ｍｒｉｍａｇｅ，ｍｒｔｃｐ
（２．２  誤り、警告および情報）
全ての誤り、警告および情報メッセージは標準的誤りについて出力され、補助的情報はパイプについて出力される。そのフォーマットは次の１つである。
【０１１６】
（フォーマットの使用）
ＥＲＲＯＲ：誤りメッセージ。コマンドの動作を継続できないことを意味する致命的誤り。誤りメッセージを出力後、コマンドは直ちに停止しなければならない。
ＷＡＲＮ：警告メッセージ。ユーザが警告を受けるべき何かが生じたことを意味する診断誤りであるが、コマンドの動作は継続することができる。控えめに使用のこと。
ＩＮＦＯ：情報メッセージ。クライアントが彼等自身のソフトウエアをデバッグ中にコマンドのクライアントを助ける診断メッセージである。コマンド自体のデバッグに使用されるメッセージは公開前に削除されるべきである。ユーザがＶＥＲＢＯＳＥコマンド選択肢を選んだ場合にのみ、ＩＮＦＯメッセージは出力されるべきである。控えめに使用のこと。
【０１１７】
標準的誤りに関するデータ出力に対して特別の注意が払われるべきである。４Ｋを超えるデータは出力されるべきでなく、さもなければクライアントは出力パイプを同時に読まないかぎり、デッドロックになりうる。
【０１１８】
（２．３  リターン値）
コマンドが成功する場合の動作は零のリターン値となる。誤りが生じると、リターン値は適切な（負の）誤りコードに設定される。
【０１１９】
（２．４  パターン）
コマンドは次のパターンの１つに従わなければならない。
【０１２０】
（タイプの説明）
出力のみ。    実行すると、コマンドはコマンドラインに基づいて何かしら処理を行い、何らかのデータを出力する。
【０１２１】
入力のみ。    実行すると、コマンドは標準入力（ファイルの終わりまで）、あるいはファイル、あるいはコマンドラインからデータを読み、次いで読んだものを処理する。データは出力されない。
【０１２２】
入力、次いで出力。    実行すると、コマンドは標準入力（ファイルの終わりまで）、あるいはファイル、あるいはコマンドラインからデータを読み、次いで読んだものを処理する。その後、なにがしかデータが出力される。
【０１２３】
見張り。    実行すると、コマンドは動作し、何らかのシステムリソースの監視を開始する。リソースの変化の度に、「変化」と新しい行をプリントする。また、コマンドは入力パイプを読む。パイプが閉鎖されている、あるいはテキスト「中止」が送信されると、その場合には見張りは消える。
【０１２４】
ストリームＩＯ。    実行すると、あるコマンドに特定の規則に従い、コマンドは読むことと書くことの両方を行う。
【０１２５】
（２．５  ライン終了子）
出力すると、全てのコマンドは＼ｒ＼ｎ文字対により行を終了する。テキストフォーマットで入力を受理する全てのコマンドは＼ｒ＼ｎまたは＼ｎで終了する行が分かる。
【０１２６】
（２．６  他の装置の指定）
コマンドが他の装置の指定を要求されると、その場合その実行のためにコマンドは幾つかの異なる方法を許容する。方法は装置を参照して、ＳＣＨＥＭＥ：ＮＡＭＥとして適用される。装置参照に方法が付されていない場合、デフォールトの方法はＡＮＹである。
【０１２７】
（方法の説明）
Ｎ        コマンドが１から番号を付された装置リストを出力すると、その場合Ｎ方法により、クライアントはリストの番号によりリストの特定の装置を参照することが許容される。
【０１２８】
ＢＴＮＡＭＥ    ブルートゥース名による装置参照。必要により名称を引用したり、しなかったりすることの保証はクライアントの責任である。
【０１２９】
ＢＴＡＤＤＲ    ブルートゥースｍａｃアドレスによる装置参照。コマンドはアドレスの：制限子の有無を知る。
ＩＭＥＩ      ＩＭＥＩ番号による装置参照。
ＡＮＹ        上記の任意の方法による整合する装置検出の試み。
【０１３０】
（２．７  標準選択肢）
全てのコマンドは長い（ｐｏｓｉｘ）および短い形式の選択肢をサポートし、かつ少なくとも以下の選択肢をサポートしなければならない。
【０１３１】
（選択肢の説明）
-ｈ，--ｈｅｌｐ      コマンド選択肢をリストする短い方を使用するテキストおよび余裕があれば極めて短い説明を表示。-ｈにより出力されるテキストは１０２４バイトを超えない。
-Ｖ，-ｖｅｒｓｉｏｎ    以下のフォーマットでバージョン情報を表示：ａ，ｂ，ｃ（ｄ）（ｅ）。ａ，ｂ，ｃ，ｄはバージョンであり、構成されたコマンドに対するｍｒｉｘの番号を構成する。ｅはコマンドに特定のバージョン番号であり、コマンド改版の度に増える。
【０１３２】
-ｖ，-ｖｅｒｂｏｓｅ    このコマンドはコマンドに関する情報出力の表示を許容する。この情報はクライアントのプログラムの問題を見出すためにのみ存在すべきであり、コマンド自体のデバッグのためではない。
【０１３３】
Ｎｏ  ｏｐｔｉｏｎ    コマンドライン選択肢は、コマンドが誤りとヘルプ選択肢に対するデフォールトをプリントするようにしてはならない。
【０１３４】
さらに、多数のコマンドは主要な検閲あるいは表示機構として-ｌｉｓｔ，-ｌ選択肢を提供する。
【０１３５】
（２．８  追加ファイル）
コマンド自体並びに開発者はコマンドの目的と動作を詳細に説明するためにｈｔｍｌフォーマットのマンページを供給すべきである。また、開発者は（コマンドの各バージョンで変化したものを記録するために）ｈｉｓｔｉｒｙ．ｔｅｘｔファイルと（次バージョンの考え方を記録するために）ｔｏｄｏ．ｔｅｘｔファイルを維持すべきである。
【０１３６】
（２．９  依存性）
他のコマンドへの依存性は最小に保たれねばならない。核ｍｒｉｘコマンドのみが他の核ｍｒｉｘコマンドに依存することができる。再使用するように設計されたコマンドのみが核ｍｒｉｘコマンドに依存すべきである。
【０１３７】
（３．パイププロセッサのみ）
以下のガイドラインはパイププロセッサのみに適用される。
（３．１  メモリの使用）
全てのパイププロセッサはメモリの使用を最小にする観点で書かれるべきである。
【０１３８】
使用するコマンドラインによりオブジェクトが要求される場合にのみ、オブジェクトが創られるべきであり、例えばｍｒＡｇｅｎｄａ-Ｖを動作させることによりコマンドがアジェンダサーバに接続するようにすべきでない。
【０１３９】
利用できる１６ｋのスタックの有効利用をすべきである。
【０１４０】
大きなストリングのデータを出力する必要があれば、大きなＴＢｕｆ８の代わりにＣＢｕｆＦｌａｔを使用のこと。
【０１４１】
１６ｋを超えるデータを出力する必要があれば、非同期に塊で出力することを考えること。
【０１４２】
（３．２  データ出力）
パイププロセッサは単一のバッファにおいてその出力すべきデータを構成し、次いで出力すべきであり、何度もＷｒｉｔｅＰｉｐｅＬをコールしてはならない。
【０１４３】
（３．３  国際的サポート）
パイププロセッサは全てのユニコードデータをＵＴＦ８に変換し、その後プラットフォームの埋め込み文字変換設備を使用して出力すべきである。
【０１４４】
（４．スクリプトのみ）
以下のガイドラインはスクリプトのみに適用される。
【０１４５】
（４．１  ローカル）
全ての変数をローカルにする。
【０１４６】
（４．２  誤りコード）
コールするパイププロセッサの誤りコードを常に確実に調べる。
【０１４７】
誤りコードを適切に設定する（この実行方法を追加する必要がある）。
【０１４８】
（４．３  メモリの使用）
可能であれば、連ねるよりむしろ一度に１行のデータを処理する。
【０１４９】
（４．４  デバッグ）
他のコマンドから動作させるように設計されたものであっても、全てのスクリプトはデバッグを許容する観点からローカルに動作可能であるべきである。
【０１５０】
（付録５）
（ｍｒｉｘおよびスマートフォン試験環境）
（１．要約）
本節はｍｒｉｘを使用してシンビアンＯＳスマートフォンの製造会社が製品試験の品質と数量を改善する手助けをする幾つかの機会を概説する。この試験は製品搬出の前に生じるシンビアンＯＳスマートフォンの長い開発期間中に行われる。機会が現れるのは今日行われる試験の大半が明らかに手動的性格だからである。
（２．概要）
（２．１  今日のスマートフォン試験の課題）
今日、長い開発期間中のシンビアンＯＳスマートフォンの試験は経費がかかり、困難な課題である。プロセスはアドホックで、手動の、繰り返しのできない試験に強く係わる。
（装置応用試験の課題）
＊  試験の大半は手動で行われる。
＊  長い動作試験と強制試験は自動方式で行うことがほぼ不可能である。
＊  装置に関するデータ作成は困難で、単調な課題である。
＊  試験は難なく繰り返しができない。
＊  開発サイクルの間ＲＯＭを常にリフレッシュするのはより困難な、あるいは長い動作試験の多くを「割れ目に落とす」ことになる。
（接続性ソフトウエアの試験の課題）
上記の全ての課題はスマートフォンの接続性ソフトウエアの試験に等しく当てはまる。なお、接続性はＰＣとスマートフォンの間のリンク確立を含むので、ＰＣ／サーバとスマートフォンの同時制御が現在不可能であるという複雑さがさらに加わる。
【０１５１】
（２．３  ｍｒｉｘの利点）
製品試験に関するスマートフォン装置製造会社に重要なことは以下の通りである。
＊  スモーク試験-基本的なＵＩ機能を試験する。
＊  寿命システム試験-数千回の追加／削除／変更入力。
＊  ローカル化試験-試験実行。
＊  運用会社の試験-電話ネットワークの相互運用試験。
上記のリストに関して、ｍｒｉｘは試験の場に重要な付加的エレメント、即ち可能性を秘めた複数のシンビアンＯＳ装置の遠隔制御能力をもたらす。遠隔制御は自動試験の余地を劇的に増し、シンビアンＯＳスマートフォン製造会社に試験の品質と量の両方の改善を可能にすると同時に経費を削減するので、これがまたシンビアンＯＳスマートフォンの製造会社にとって魅力的である。
【０１５２】
（３．可能性のあるｍｒｉｘの試験機会）
以下にシンビアンＯＳスマートフォンの装置試験の基本としてｍｒｉｘを使用する利点を説明する手助けとなるプロトタイプの具体的な示唆を行う。示唆を実装の困難性に関して評価する。
【０１５３】
３．１  アプリケーションテスタ
シンビアンＯＳスマートフォンのアプリケーションの試験は骨の折れる、困難なプロセスである。さらに、スマートフォンの製造会社の中には既に開発者許可プログラムの導入を通じてスマートフォンの試験過程の標準化を模索するものもある。第３パーティのシンビアンＯＳ開発者が全ての許可の経費に圧倒されることのある危険が存在する。理想的には、廉価で、容易なアプリケーションの健全なチェック方法が望まれる。
【０１５４】
アプリケーションテスタはシンビアンＯＳアプリケーションの試験過程を自動化する。これはｍｒｉｘにおけるスクリーン確認サポートの実装を必要とし、この実装は時間を消費することを示すが、アプリケーションテスタのみならず多くの以下の機会にとっても恐らく本質的である。サポートは恐らくパイププロセッサの実装を含み、パイププロセッサはシンビアンＯＳのｗｓｅｒｖと遙かに緊密に相互作用することができ、遠隔スクリプトがアプリケーションへの入力の直接制御と、そのスクリーン出力の試験を行うことを許容する。ｍｒｉｘリンクを介して伝達されるＣｉｔｒｉｘプロトコルのｉｗｔｈＧＤＩオブジェクト情報に何か似たものを含むことが必要である。ｍＶｉｅｗの取る現在の手法はリンクを介するスクリーンビットマップの伝達を含む。
【０１５５】
（３．２  スモークテスタ）
スモーク試験は試験フェーズでは他の何よりも多く恐らく繰り返される。スモーク試験は構成の次のベータ試験への適性を判断するために使用される主たる道標であるので、厳しい活動である。換言すれば、スモーク試験は後戻りへの早期警告として重要な役割を担う。今日、スモーク試験は殆ど専ら手動である。通常、スモーク試験は電子メールの送信あるいはウエブのブラウジングのようなスマートフォン上での適切な使用事例の範囲を制定するテスタの形を取る。
【０１５６】
ｍｒｉｘ「スモークテスタ」はスモーク試験手順全体を自動化し、テスタに構成の合否を指示する。試験は種々の独立の先在するパイププロセッサを使用したスクリプトから行うか、あるいは単一のパイププロセッサにカプセル化することができる。何れの場合でも、代表的なスモーク試験に対して行われる試験範囲が高度化され、後続の試験を受け入れるための障害が高められることを保証する。勿論、完全なシステムテスタに発展するべくスモークテスタを高度化しない理由はない。
【０１５７】
（３．３  寿命強制テスタ）
大部分のスマートフォン試験が手動で行われることを前提にすると、寿命試験は特に実行が困難である。試験は長い時間を経たスマートフォンの使用シミュレーションを含む。スマートフォン製造会社が寿命試験による品質改善の助けになることに非常な関心を持つのは、それが非常に高くつく製品リコールの回避の手助けになるからである。
【０１５８】
ｍｒｉｘ「寿命強制試験」は例えば６ヶ月の代表的な使用を遙かに短い時間に圧縮することにより寿命の過程をシミュレートする。これは連絡先、備忘録および電子メール入力の定期的挿入および随時削除のようなユーザ操作の全範囲を含む。試験は先在パイププロセッサを使用して、あるいは新しい独立のパイププロセッサへの試験のカプセル化により行うことができる。何れの場合も、スクリプトにより動作する試験の変更は容易である。
【０１５９】
（３．４  試験コード装置）
シンビアンＯＳコンポーネントの試験コードは通常屡々自動化される試験装置の形式で書かれる。このように、そのような試験コードのテンプレート化のために実行可能なかなりの量が存在する。さらに、コンポーネントインタフェースの試験コードのパイププロセッサへの移動により完全にスクリプト記述によるシンビアンＯＳコンポーネントの試験の可能性が高まる。
【０１６０】
ｍｒｉｘ「試験コード装置」はゲーム関連のコンポーネントおよびインタフェース試験を向上させる。装置は適切なインタフェース機能を記入し、次いでスクリプトインタフェースにより駆動することのできるテンプレートパイププロセッサの形式にある。一度記述すると、スクリプト、並びにコンポーネント試験パイププロセッサは結合され、強力なシステム試験の記述を許容する。
【０１６１】
（３．５  データジェネレータ）
スマートフォンに関するサンプルデータの生成は今日徒労の感を催す限界のある、主として手動の手順である。特に、変化のあるデータの組を生成するのは困難である。
【０１６２】
データジェネレータは独立のパイププロセッサあるいは複数のパイププロセッサの組み合わせを使用してデータの組を変化させる装置側の仕事と柔軟なスクリプトインタフェースを処理することによりデータ生成過程を自動化する。
【０１６３】
（３．６  接続性テスタ）
スマートフォンの接続性試験は今日非効率的で、主として手動の手順である。シンビアンＯＳスマートフォンの製造会社は実際従来からこの分野と戦ってきた。
【０１６４】
接続性テスタは幾つかのパイププロセッサおよび試験スクリプトの組を使用して基本的なｍｒｏｕｔｅｒ、ｃｏｎｔｐｒｏ、ｂａｃｋｕｐｐｒｏおよびａｇｅｎｄａｓｙｎｃの試験を集積することによりシンビアンＯＳの接続性の根幹の試験過程を自動化する。
【０１６５】
（３．７  電話ネットワーク強制テスタ）
ネットワーク運用会社の認可を得るために、スマートフォンは広範な相互運用試験を受ける必要がある。シンビアンＯＳスマートフォンの製造会社は従来から運用会社の受理を得ることと戦ってきたと考えられる。
【０１６６】
ネットワーク強制テスタはネットワーク運用会社の受理基準に対する試験過程を自動化する。テスタはＳＭＳ、ＭＭＳおよび電話ネットワーク機能の試験を許容するパイププロセッサの組に対して実装されるスクリプトサポートからなる。この機会は複数の装置に関する試験においてｍｒｉｘの能力と柔軟性を既に提示するＲｏｂＣのＳＭＳテスタスクリプト上にそもそも構築することができた。
【０１６７】
（４．ｍｒｉｘの関連する機会）
シンビアンＯＳスマートフォン製造会社がｍｒｉｘ技術を展開する幾つかの良い機会を提供する試験に緊密に関係する幾つかの分野がある。特に、現場試験、診断およびデバッグは最も可能性があるように見える。関心が持てる更なる分野はＩＤＥの組み込みと製品開発自体の活動である。
【０１６８】
（４．１  現場診断ダンパー）
現場試験中に、ユーザが欠陥のある商品格付けとデバッグを支援するために試験中のスマートフォンから実際に包括的な診断を行う手段を持つことは極めて有益である。
現場診断ダンパーはパイププロセッサであり、小型の付属設備であり、試験中の装置から素早く、包括的な診断を行うのに使用することができる。
【０１６９】
（４．２  ＩＤＥの組み込み）
パイププロセッサの開発中に、ｍｒｉｘが製品開発をかなり加速する能力を持つことが明らかになった。ｐｕｔｐｐ設備は素早くパイププロセッサを更新するのに極めて便利であることを単独で証明した。ＩＤＥのツールベンダとパートナーを組み、ｍｒｉｘを内部に持つ結合ＩＤＥを開発し、現在の状況よりもっと進んだ開発環境を提供することには可能性が潜んでいる。この分野にはかなりの開発の可能性が潜んでいるが、その実現以前に時間と努力に関してもっと多くの投資が恐らく必要であることに注目すべきである。
【図面の簡単な説明】
【０１７０】
【図１】本発明に従う迅速なアプリケーション開発のためのシステム（「ｍｒｉｘ」）の構成例である。
【図２】本発明の実装のための可能なｍｒｉｘの構造を示す。
【図３】遠隔リレー（ＴＣＰ／ＩＰ、ＧＰＲＳ）、並びにローカルリンク（ＩＲ、ブルートゥースおよびＵＳＢ）を介してコマンドを動作させるのに使用することのできる幾つかのエレメントからなるｍｒｉｘの構成法を示す。
【図１】
2007510979.tif 000009
【図２】
2007510979.tif 000010
【図３】
2007510979.tif 000011
【手続補正書】
【提出日】平成17年11月7日(2005.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、前記アプリケーションは企業のネットワーク化アプリケーションであり、該アプリケーションでは前記装置が１または複数のタイプのネットワーク接続を介して企業サーバと通信し、前記方法は、
（ａ）開発者が前記モバイル機器から遠隔コンピュータ上の（前記モバイル機器のＯＳに特定ではない）標準の高水準インタフェースを使用して、前記ネットワーク接続の１つを介して前記装置上で動作するモジュール化ソフトウエアエレメントをコールし、前記モジュール化エレメントのそれぞれが、（1）前記無線モバイル機器により要求される機能をカプセル化し、（2）前記高水準インタフェースのインタプリータの制御の下に前記装置上で実行するステップと、
（ｂ）前記開発者が、前記装置上で動作するスクリプト記述エンジンを使用して、前記装置上のエレメントが結合されるようにするステップと、
（ｃ）前記開発者が、前記ステップ（ａ）および（ｂ）を繰り返すことにより入力への種々のエレメントの応答方法を調査するステップと、
を含むことを特徴とする方法。
【請求項２】
１または複数のモジュール化エレメントが以下のＧＰＲＳ、２Ｇセルラー、ＣＤＭＡ、ＷＣＤＭＡ、ブルートゥース、８０２．１１、赤外線、ＩＰネットワーク化、ダイアルアップ、ＨＳＣＳＤおよびＥＤＧＥのモーデムの１または複数を介する接続性に関係する装置のネットワーク化機能をカプセル化することを特徴とする請求項１に記載の方法。
【請求項３】
１または複数の前記モジュール化ソフトウエアエレメントが一般のモバイル機器の機能をカプセル化することを特徴とする請求項１に記載の方法。
【請求項４】
前記一般的なモバイル機器の機能が以下の呼制御および処理、ＰＩＭ機能、ＳＩＭ機能、画面を磨く、キー押下のふりをすることを含む遠隔制御、処理、スレッド、メモリおよび設定を含む監視、前記画面エレメントがスクリプトで規定されるアプリケーションを創ることを含むＵＩ、監視と呼び出しを含む電話、ファイルとフォルダの読み書き、変更の監視を含むファイルシステム、構造化された格納、抽出、任意のアプリケーションデータの検索と監視を含むデータベース、リングトーン、壁紙および設定を含む装置の個性化の１または複数に関係することを特徴とする請求項３に記載の方法。
【請求項５】
高水準インタフェースの前記制御下にある前記エレメントがＴＣＰＩＰインタフェースであり、該インタフェースが前記装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある前記装置から出接続を行うことを許容することを特徴とする請求項１に記載の方法。
【請求項６】
前記高水準インタフェースの前記制御下にある前記エレメントが遠隔コマンド実行プロトコルを実装することを特徴とする請求項１に記載の方法。
【請求項７】
前記高水準インタフェースの前記制御下にある前記エレメントがスクリプト記述言語を実装し、該言語がコマンドラインインタフェースによりまた制御される前記装置の他のプログラムを使用するスクリプトの記述を許容することを特徴とする請求項１に記載の方法。
【請求項８】
高水準言語プログラムが指示を送信することができる前記装置から遠隔にあるアプリケーション開発コンピュータ上で動作する、あるいは各エレメントが前記高水準インタフェースにより制御される前記装置上で動作することを特徴とする請求項１に記載の方法。
【請求項９】
前記高水準言語プログラムがコマンドラインプログラムであり、該プログラムが前記モバイル機器と該装置と同じ前記遠隔コマンド実行プロトコルを実装する前記アプリケーション開発コンピュータ上の更なるプログラムとの間のＩＰ接続を可能にすることを特徴とする請求項８に記載の方法。
【請求項１０】
迅速なアプリケーション開発が、前記遠隔コマンド実行プロトコルを使用して前記アプリケーション開発コンピュータのコマンド指示による前記高水準インタフェースにより制御される、前記装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成されることを特徴とする請求項９に記載の方法。
【請求項１１】
各コマンドの出力が前記アプリケーション開発コンピュータの前記コマンド指示に示されることを特徴とする請求項１０に記載の方法。
【請求項１２】
迅速なアプリケーション開発が、前記装置上に書かれた前記スクリプト記述言語のコマンドラインインタフェースにより制御される、幾つかの装置ベースのエレメントの前記結果を結合するスクリプトを使用することにより達成されることを特徴とする請求項９に記載の方法。
【請求項１３】
前記スクリプトが前記アプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成されることを特徴とする請求項１２に記載の方法。
【請求項１４】
迅速なアプリケーション開発が、前記スクリプトを前記装置に転送し、前記コンピュータのコマンド指示を再び使用して前記スクリプトを実行することにより達成されることを特徴とする請求項１２または１３に記載の方法。
【請求項１５】
モジュール化ソフトウエアエレメントの前記標準インタフェースが前記エレメントの前記名称、コマンドライン選択肢の組、２つの入力ストリームおよび２つの出力ストリームであることを特徴とする請求項１に記載の方法。
【請求項１６】
前記高水準言語が単一のタイプの高水準言語に制限されず、前記ソフトウエアアプリケーション開発者の前記要件に応じて以下の、
（ａ）コマンドラインインタフェース、
（ｂ）スクリプト記述言語、
（ｃ）コンパイルされた言語
の何れでもあり得ることを特徴とする請求項８に記載の方法。
【請求項１７】
前記アプリケーション開発コンピュータがデスクトップＰＣであることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記高水準言語プログラムがさらに前記装置上で動作し、別のアプリケーション開発コンピュータの使用を必要とすることなく前記装置の再プログラミングを可能にすることを特徴とする請求項１に記載の方法。
【請求項１９】
前記モジュール化ソフトウエアエレメントによって前記オペレーティングシステムを使用して機能を実装するのに必要な特殊コードを動作させる特殊事項ではなく、使用する機能の前記タイプを前記アプリケーション開発者が理解することを求めることにより、前記装置の前記オペレーティングシステムの前記特殊事項に前記アプリケーション開発者が係わらないようにすることを特徴とする請求項１に記載の方法。
【請求項２０】
前記装置がコマンドインタプリータを動作させ、前記アプリケーション開発コンピュータがコマンド実行シェルを動作させることを特徴とする請求項８に記載の方法。
【請求項２１】
前記アプリケーション開発コンピュータがローカルポイントツーポイントＩＲ、ブルートゥース、ＵＳＢ、ＷＡＮ、ＬＡＮ、ＳＭＳあるいはＧＰＲＳ、あるいは以上の任意の組み合わせを介して前記装置に接続されることを特徴とする請求項８に記載の方法。
【請求項２２】
モジュール化ソフトウエアエレメントが互いに連鎖され、複合機能を構築できることを特徴とする請求項１に記載の方法。
【請求項２３】
前記モジュール化ソフトウエアエレメントがアイデンティおよび関連する許可に関して前記装置上で動作することを特徴とする請求項１乃至２２のいずれかに記載の方法。
【請求項２４】
前記アイデンティおよび関連する許可を提供し、制御する安全な許可を持つアイデンティサーバが存在することを特徴とする請求項２３に記載の方法。
【請求項２５】
前記アイデンティサーバが前記装置に位置することを特徴とする請求項２４に記載の方法。
【請求項２６】
前記モジュール化ソフトウエアエレメントが前記モバイル機器のＣＰＵ上で動作することを特徴とする請求項１乃至２５の何れかに記載の方法。
【請求項２７】
請求項１乃至２６の何れかに記載の方法を使用して開発されるソフトウエアアプリケーションプログラムであって、前記アプリケーションがモジュール化ソフトウエアエレメントを含み、前記モジュール化エレメントがそれぞれ、（1）無線モバイル機器により要求される機能のカプセル化、（2）高水準インタフェースのインタプリータの制御下にある前記装置上での動作を含むことを特徴とするソフトウエアアプリケーションプログラム。
【請求項２８】
遠隔アプリケーション開発コンピュータから開始あるいは制御されることを特徴とする請求項２７に記載のソフトウエアアプリケーションプログラム。
【請求項２９】
安全な方法で前記遠隔アプリケーション開発コンピュータによりアクセスあるいは制御されることを特徴とする請求項２８に記載のソフトウエアアプリケーションプログラム。
【請求項３０】
遠隔アプリケーション開発コンピュータからの起動あるいは制御がなくとも前記装置上で独立に動作することを特徴とする請求項２７に記載のソフトウエアアプリケーションプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
第１の態様では、無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、アプリケーションは企業のネットワーク化アプリケーションであり、該アプリケーションでは装置が１または複数のタイプのネットワーク接続を介して企業サーバと通信し、当該方法は、
（ａ）開発者がモバイル機器から遠隔コンピュータ上の（モバイル機器のＯＳに特定ではない）標準の高水準インタフェースを使用して、ネットワーク接続の１つを介して装置上で動作するモジュール化ソフトウエアエレメントをコールし、モジュール化エレメントのそれぞれが、（1）無線モバイル機器により要求される機能をカプセル化し、（2）高水準インタフェースのインタプリータの制御の下に装置上で実行するステップと、
（ｂ）開発者が、装置上で動作するスクリプト記述エンジンを使用して、装置上のエレメントが結合されるようにするステップと、
（ｃ）開発者が、ステップ（ａ）および（ｂ）を繰り返すことにより入力への種々のエレメントの応答方法を調査するステップと、
を含むことを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
この手法は、プログラマーがエレメントの機能、特に所与の入力に対するエレメントの対応を調べるのを遙かに容易にする。機能可視性の類は従来の開発手法を使用して達成するのは極めて困難である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
一実装では、高水準インタフェースの制御下にあるエレメントがＴＣＰＩＰインタフェースであり、該インタフェースは装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある装置から出接続を行うことを許容する。高水準インタフェースの制御下にある別のエレメントがスクリプト記述言語を実装し、この言語はコマンドラインインタフェースによりまた制御される装置の他のプログラムを使用するスクリプトの記述を許容する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
高水準言語プログラムは指示を送信することができる装置から遠隔にある（デスクトップＰＣのような）アプリケーション開発コンピュータ上で動作する、あるいは各エレメントは高水準インタフェースにより制御される装置上で動作する。アプリケーション開発コンピュータはローカルポイントツーポイントＩＲ、ブルートゥース、ＵＳＢ、ＷＡＮ、ＬＡＮ、ＳＭＳあるいはＧＰＲＳ、あるいは以上の任意の組み合わせを介して装置に接続される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
迅速なアプリケーション開発は、次いで遠隔コマンド実行プロトコルを使用してアプリケーション開発コンピュータのディスプレイに表示されるコマンド指示による高水準インタフェースにより制御される装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成される。各コマンドの出力はアプリケーション開発コンピュータのコマンド指示に示される。迅速なアプリケーション開発は、さらに装置上に書かれたスクリプト記述言語の高水準インタフェースにより制御される、幾つかの装置ベースのエレメントの結果を結合するスクリプトを使用することにより達成される。スクリプトはアプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成することができる。最後に、迅速なアプリケーション開発は、スクリプトを装置に転送し、コンピュータのコマンド指示を再び使用してスクリプトを実行することにより達成される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】削除
【補正の内容】
【国際調査報告】
2007510979.tif 000012
2007510979.tif 000013
2007510979.tif 000014