JP2007510979A - 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法 - Google Patents

無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法 Download PDF

Info

Publication number
JP2007510979A
JP2007510979A JP2006537444A JP2006537444A JP2007510979A JP 2007510979 A JP2007510979 A JP 2007510979A JP 2006537444 A JP2006537444 A JP 2006537444A JP 2006537444 A JP2006537444 A JP 2006537444A JP 2007510979 A JP2007510979 A JP 2007510979A
Authority
JP
Japan
Prior art keywords
command
application development
mrix
command line
smartphone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006537444A
Other languages
English (en)
Inventor
デイヴィッド スプーナー,
マーク メリング,
ロバート カールトン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intuwave Ltd
Original Assignee
Intuwave Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0325882A external-priority patent/GB0325882D0/en
Application filed by Intuwave Ltd filed Critical Intuwave Ltd
Publication of JP2007510979A publication Critical patent/JP2007510979A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/02Details of telephonic subscriber devices including a Bluetooth interface

Abstract

無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが、(a)無線モバイル機器により要求される機能をカプセル化し、(b)標準インタフェース構造を共有し、(c)コマンドラインインタフェースの制御の下に装置上で動作する。エレメントはコマンドラインインタフェースの制御下で動作する(そして従って、コマンドラインプログラムである)ので、プログラマはエレメントの機能、特に所与の入力に対するエレメントの対応を調べるのが遙かに容易である。

Description

本発明は無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法に関する。
無線モバイル機器(例えば、スマートフォン、コミュニケータ、PDAなど)のためのソフトウエアアプリケーションを開発する場合、多くの問題がある。重要な問題は、
1.ブルートゥース(Bluetooth)、GSM、GPR、IRおよびケーブルなどアプリケーションにより管理しなければならない広い範囲のネットワーク接続の選択肢がある。
2.モバイル機器はソフトウエア開発のための適切なユーザインタフェースを持たない。
3.モバイル機器はラップトップやデスクトップPCに比べて通常少量のメモリと処理能力を持ち、従って開発されるソフトウエアはリソースを極めて有効に使用しなければならない。
4.現在のプログラミング手法は特定の開発ソフトウエアに関する極めて熟練したプログラマを必要とするか(即ち、モバイル機器のOS、例えばシンビアン(Symbian)OSの詳細な知識によりC++を使用する)、あるいは携帯電話の制限されたリソースを極めて非効率的に使用する(例えば、シンビアンOSでビジュアルベーシック(Visual Basic)を使用するには1MBのランタイムエンジンを要し、代表的なアプリケーションはまた通常1MBを超える)。
これらの問題を全て解決するのに良い解決策は無い。問題1および3と取り組むための現在の主な選択肢は電話機のこれらの特徴の全てに直接アクセスする低レベルコードをC++などの言語で開発することである。詳細な知識とプログラミングスキルが要求されるので、これは学習することが難しく、かつアプリケーションの開発が遅くなる。
問題2と取り組むための現在の主な選択肢はPCで動作する装置用のエミュレータを使用することである。開発者はそのアプリケーションを2度、一度はエミュレータ上で、そして2度目は直接装置上で開発し、テストしなければならないので、この取り組みはそれ程早くなく、エミュレータとPCとの間の動作に常に違いがある。エミュレータは電話機で利用可能な広い範囲のネットワーク接続の選択肢を持たないので、ネットワーク化アプリケーションを記述する場合、特にこの問題があり、従って装置においてより多くのテストを行わなければならない。
第1の態様では、無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法があり、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが(a)無線モバイル機器により要求される機能をカプセル化し、(b)標準インタフェース構造を共有し、(c)コマンドラインインタフェースの制御の下に装置上で動作する。
エレメントはコマンドラインインタフェースの制御下で動作する(そして従って、コマンドラインプログラムである)ので、プログラマはエレメントの機能、特に所与の入力に対するエレメントの対応を調べるのが遙かに容易である。機能可視性の類は従来の開発手法を使用して達成するのは極めて困難である。
1または複数のモジュール化ソフトウエアエレメントは装置のネットワーク化機能をカプセル化することが出来る。装置のネットワーク化機能は以下のGPRS、2Gセルラー、CDMA、WCDMA、ブルートゥース、802.11、赤外線、IPネットワーク化、ダイアルアップ、HSCSDおよびEDGEのモーデムの1または複数を介する接続性に関係する。以前は、装置のネットワーク化の動作を体系的に調査できるようにするということは極めて困難なことであった。
1または複数の前記モジュール化ソフトウエアエレメントが、呼制御および処理、PIM機能、SIM機能、画面を磨く、キー押下のふりをすることを含む遠隔制御、処理、スレッド、メモリおよび設定を含む監視、画面エレメントがスクリプトで規定されるアプリケーションを創ることを含むUI、監視と呼び出しを含む電話、ファイルとフォルダの読み書き、変更の監視を含むファイルシステム、構造化された格納、抽出、任意のアプリケーションデータの検索と監視を含むデータベース、リングトーン、壁紙および設定を含む装置の個性化のような一般のモバイル機器の機能をカプセル化する。
一実装では、コマンドラインインタフェースの制御下にあるエレメントはTCPIPであり、このプロトコルは装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある装置から出接続を行うことを可能にする。コマンドラインインタフェースの制御下にある別のエレメントは遠隔コマンド実行プロトコルを実装する。コマンドラインインタフェースの制御下にある別のエレメントが記述言語を実装し、この言語はコマンドラインインタフェースによりまた制御される装置の他のプログラムを使用するスクリプトの記述を可能にする。
好ましくは、高水準言語プログラムは指示を送信することができる装置から遠隔にある(デスクトップPCのような)アプリケーション開発コンピュータ上で動作する、あるいは各エレメントがコマンドラインインタフェースにより制御される装置上で動作し、アプリケーション開発コンピュータがローカルポイントツーポイントIR、ブルートゥース、USB、WAN、LAN、SMSあるいはGPRS、あるいは以上の任意の組み合わせを介して前記装置に接続される。
高水準言語プログラムは好ましくはまたコマンドラインプログラムであり、このプログラムはモバイル機器と、装置と同じ遠隔コマンド実行プロトコルを実装するアプリケーション開発コンピュータ上の更なるプログラムとの間のIP接続を可能にする。高水準言語は単一のタイプの高水準言語に制限されず、ソフトウエアアプリケーション開発者の要件に応じて以下の、
(a)コマンドラインインタフェース、
(b)スクリプト記述言語、
(c)コンパイルされた言語
の何れでもあり得る。
高水準言語プログラムはさらに装置上で動作し、別のアップリケーション開発コンピュータの使用を必要とすることなく装置の再プログラム化を可能にする。
迅速なアプリケーション開発は、次いで遠隔コマンド実行プロトコルを使用してアプリケーション開発コンピュータのディスプレイに表示されるコマンド指示によるコマンドラインインタフェースにより制御される装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成される。各コマンドの出力はアプリケーション開発コンピュータのコマンド指示に示される。迅速なアプリケーション開発は、さらに装置上に書かれたスクリプト記述言語におけるコマンドラインインタフェースにより制御される幾つかの装置ベースのエレメントの結果を結合するスクリプトを使用することにより達成される。スクリプトはアプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成することができる。最後に、迅速なアプリケーション開発はスクリプトを装置に転送し、コンピュータのコマンド指示を再び使用してスクリプトを実行することにより達成される。
(発明を実施するための最良の形態の節で後述する)実装において、モジュール化ソフトウエアエレメントの標準インタフェース構造はエレメントの名称、コマンドライン選択肢の組、2つの入力ストリームおよび2つの出力ストリームである。モジュール化ソフトウエアエレメントは互いに連鎖され、複合機能を構築し、オペレーティングシステムを使用して機能を実装するのに必要な特殊コードを動作させる特殊事項ではなく、使用する機能のタイプをアプリケーション開発者が理解することを求めることにより装置のオペレーティングシステムの特殊事項にアプリケーション開発者が係わらないようにする。
装置はコマンドインタプリータを動作させることができ、次いでアプリケーション開発コンピュータはコマンド実行シェルを動作させる。
別の実装では、モジュール化ソフトウエアエレメントは装置上でアイデンティティおよび関連するパーミッション(許可)に関して動作する。(装置に位置する)安全な許可を持つアイデンティサーバはイデンティティおよび関連する許可を提供し、制御する。
一実装では、パイププロセッサと呼ばれるモジュール化ソフトウエアエレメントはモバイル機器のネットワーク化アプリケーションの開発に要する時間をかなり短縮する方法により結合される。
パイププロセッサは独立のモジュールであり、モバイル機器の機能範囲をカプセル化する。パイププロセッサはC++のような電話機のオペレーティングシステムに適するソフトウエアコードで効率的に記述される。これらパイププロセッサは全てパイププロセッサの名称および選択肢の組からなる標準インタフェース構造からコールされる。パイププロセッサの結果は標準出力および標準誤りを使用してコール元のエレメントに戻される。
迅速なネットワーク化アプリケーション開発は以下の理由により容易化される。
・全てのパイププロセッサはコマンドラインインタフェースあるいは他の高水準言語からコールすることのできる同じタイプのインタフェースを有する。これにより開発者に特定のネットワークインタフェースあるいはC++のような低レベル言語のプログラムの詳細を学習することを必要とすることなくネットワーク管理の問題1を解決する手段を提供する。
・全てのパイプロセッサはPCから遠隔の装置上で実行でき、従ってソフトウエアを先ずエミュレータ上で、次いで装置用に開発する必要がなく、開発者に良好な開発のためのユーザインタフェースを提供する。
・パイププロセッサのモジュール構造は、モジュールが必要により含まれたり削除されたりすることができることを意味する。これはソフトウエアが迅速に開発され、またモバイル機器の限られたリソースの有効使用を行い、従って問題3を解決することを意味する。ビジュアルベーシックのような高水準言語を使用するようなモバイル機器に対する他の迅速な開発手法は大きな実行時のコンポーネントを必要とし、それ故モバイル機器の大きなリソースを消費する。
PDAのようなモバイル機器が長年随所に存在したように、迅速なネットワーク化アプリケーション開発および再構成の問題もここしばらく随所に存在する。しかしながら、Java(登録商標)MIDPのようなこの問題への現在の対処は、開発を迅速に、簡易に行うのに要求される高水準インタフェースに制限されるので、モバイル機器のネットワークの特徴を十分に活用することができない。また、多くの現在の対処はPC上のエミュレータの使用に頼る。本発明はこれらの制限を克服するためにJava(登録商標)MIDPを補完することができる。以前に注記したように、全てのパイプロセッサをコマンドライン、スクリプトあるいは他のプログラミング言語からコールすることができるので、本発明はそれ故迅速なネットワーク化アプリケーション開発および再構成の問題を解決する。従って、必要な機能は機能を立証するスクリプト記述を使用して直ちにプロトタイプ化し、その後アプリケーション用のプログラミング言語にコード化できる。
本発明にはさらに3つの有意な利点が存在する。
1.非熟練プログラマによるプログラミングを可能にする。コマンドラインインタフェース、スクリプト記述言語の両方からコールすることのできるパイププロセッサコンポーネントの組および多様なプログラミング言語を使用することにより、高級ソフトウエア開発者、並びにプログラミング経験のない電話機ユーザの両者が全て同じコンポーネントを使用して電話機上でソフトウエアを「プログラムする」ことを可能する。これにより電話機上でスクリプトをただ修正することにより、非熟練者によるソフトウエアの変更を可能にし、プログラマにより本来想定されていなかった使用にソフトウエアを適応させることができる。これは非熟練プログラマが自ら使用するためにアプリケーションを修正する、あるいは熟練開発者に手渡して、モバイル機器の完全なネットワーク化ソフトウエアアプリケーションに変えることのできるアプリケーションを素早くプロトタイプ化し、テストすることを可能にする手段として使用することができる。
2.所有する全てがモバイル機器である場合、例えば列車に乗っている場合、ソフトウエアアプリケーションを誰もが変更することを許容する。モバイル機器にリンクを持つPCからソフトウエアを開発することができる。しかしながら、PCから離れているときに、もしアプリケーションがモバイル機器上でスクリプト化されていれば、標準PCベースのソフトウエア開発に要求されるコンパイラ、デバッガ、エミュレータや他の開発ツールを必要とすることなく、スクリプトは素早く修正され、異なるアプリケーションを創ることができる。
3.コマンドラインおよびスクリプト記述インタフェースを含む広い範囲のプログラミング言語から広い範囲のオペレーティングシステムを動作させるモバイル機器への単一インタフェースを提供する。従って、プログラマはソフトウエアを開発する如何なる好みの言語でも選択することができ、種々のモバイル機器に対する異なるインタフェースを学習しなくとも良い。これは考え方においてはスマートフォンの携帯アプリケーションを記述するためのベースとしてJava(登録商標)MIDPを使用するのに類似である。しかしながら、Java(登録商標)MIDPを使用するとJava(登録商標)MIDP標準は電話機の必要なネットワーク化の特徴へのアクセスを許さないので、モバイル機器のために良好なネットワーク化アプリケーションを記述することができない。これはMIDPプログラミングインタフェースをモバイル機器に特定のインタフェースを追加して拡張することにより達成することができるが、これには開発者が各電話機により異なるインタフェースを理解する必要がある。提案する枠組みはこの問題を種々のモバイル機器のオペレーティングシステムに亘って共通の低レベルネットワーク化および他の電話機の特徴に対する共通インタフェースを提供することにより排除する。
別の態様では、上述の迅速なソフトウエアアプリケーション開発の方法を使用して開発されたソフトウエアアプリケーションが存在する。このソフトウエアアプリケーションは遠隔アプリケーション開発コンピュータから開始あるいは制御されることが出来、安全な方法で遠隔アプリケーション開発コンピュータによりアクセスあるいは制御することができる。ソフトウエアアプリケーションはまた遠隔アプリケーション開発コンピュータからの開始あるいは制御が無くとも装置上で独立に動作することができる。
別の態様では、無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法があり、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが高水準言語プログラムを使用して、(a)無線モバイル機器により要求されるネットワーク化機能をカプセル化し、(b)標準インタフェース構造を共有し、(c)装置上で動作する方法が存在する。高水準言語は、
(a)コマンドラインインタフェースあるいは、
(b)スクリプト記述言語あるいは
(c)コンパイルされた言語
でありうる。
物理的ハードウエアとの相互作用に関して、モジュール化ソフトウエアエレメントはモバイル機器のCPU上で動作する。さらに、エレメントはコマンドラインインタフェースを使用して動作するので、インタフェースは必ずコンピュータディスプレイに表示されなければならない。
本発明の目的はモバイル機器のためのネットワーク化アプリケーションソフトウエアの迅速な開発を容易にすることである。本発明はイントゥーウエイブ社(Intuwave Limitrd)のmrixと呼ばれる技術で実装され、mrixは、
・学習曲線を削減し、それ故に開発者のより大きなコミュニティに開発を開放する、
・スマートフォンを共有ネットワークコンポーネントのように取り扱うことを許すネ
ットワークOSの様な設備を提供する、
・複雑なスマートフォンの機能をカプセル化する重要な「構成ブロック」を提供する
ことによりスマートフォンを含む製造問題解決法の市場投入に要する時間をかなり短縮するために設計された無線ソフトウエアプラットフォームである。
mrixはスマートフォンのためのプラットフォームを意識しない遠隔コマンド実行環境を含む。コマンドインタプリータはコマンドあるいは「パイププロセッサ」の組を通してスマートフォンとインタフェースする。これらはスマートフォンの機能範囲をカプセル化するC++あるいはスクリプト記述言語で記述された小さな独立モジュールである。付録1はmrixガイドから諸節を再現したものであり、付録2は幾つかの利用可能なパイププロセッサのリストである。付録3はシンビアンOSのパイププロセッサの記述を希望する開発者のためのガイドである。付録4は(C++パイププロセッサおよびスクリプトの両方を含む)mrixコマンドの書き方および動作の仕方を記述する。付録5はシンビアンOSスマートフォンの製造会社の製品試験の品質と量の改善を支援するためにmrixを採用する機会の数を概説する。
(「mr」を前に付した)装置に所在するmrixパイププロセッサが提供され、mrixパイププロセッサは多重ベアラー(GPRS、SMS、ブルートゥース、MMS、WiFiなど)、(バーコードリーダ、ペン、プリンタ、GPSなどのような)装置周辺機器、他の装置やサーバおよびネットワーク料金請求の制御と管理を容易にする。パイププロセッサはさらに多くの機能を構築するために互いに連鎖することができる。これらの構成ブロックは移動に関する問題解決法の早い、繰り返す開発を許容する。スクリプト記述言語の使用により開発が遙かに広い開発者のコミュニティに開放される。
実装には図1に示す構成例を含む、ネットワークに接続されるスマートフォン、デスクトップPCおよびサーバのような種々の(モバイル機器を含む)計算装置に所在するソフトウエアが含まれる。
ソフトウエアコンポーネントは迅速なアプリケーション開発と配備を容易にするためにネットワークの全ての異なるエレメントにおいて必要である。これはユーザがよりよい顧客との関係のために企業CRMシステムを十分に使用することを可能にするモバイル機器上でネットワーク化アプリケーションを開発するための以下の実施例により説明される。これを行うために、ソフトウエアはモバイル機器上で開発されなければならず、モバイル機器は企業のサーバに接続することができ、CRMシステムを実装し、企業の顧客とのやり取りの全てを管理する。モバイル機器は(GPRSを介するような)広域接続を介するサーバへの他に、広帯域無線リンクを通してより高速なローカル接続によるPCへの接続の両方が可能でなければならない。モバイル機器の制限のあるユーザインタフェースもまたモバイル機器がデスクトップPCと容易に接続し、ユーザがそのデスクに座っているときにデスクトップPCの大きなスクリーンやキーボードの利点の活用を許容しなければならないことを意味する。
そのようなアプリケーションを開発する従来手段はIDEのような適切な開発ツールを使用してデスクトップPC上でソフトウエアを開発し、デスクトップPCのエミュレータ上でアプリケーションを動作させ、試験することである。一度ソフトウエアがエミュレータ上で成功裏に動作し始めると、次いでソフトウエアをモバイル機器に転送することができ、そこで再びデバッグする必要がある。エミュレータとPCとの間に殆ど差がないので、屡々この手法は非ネットワーク化アプリケーションでは優れている。しかしながらネットワーク化アプリケーションでは、エミュレータはモバイル機器上に利用できるネットワーク接続の範囲がないので、開発は遙かに困難である。この問題は本発明ではブルートゥースのようなローカル無線リンクを介してローカルに、あるいはGPRS(あるいはSMSのような電話機への任意の他の接続)を介して遠隔からネットワーク接続を経て実行できるコンポーネントをデスクトップPC(この用語はウインドウズ、マッキントッシュ、リナックスあるいは他のオペレーティングシステムを備えたコンピュータを含む)およびモバイル機器上に持つことにより克服される。従って、開発者は以下のように遙かに早くネットワーク化アプリケーションの開発に向かうことができる。
1.開発者はアプリケーションに使用されるmrixパイププロセッサコンポーネントのモジュールの組を選択する。
2.開発者はコマンドラインから選択したパイププロセッサの使用法を試験する。
3.簡単なスクリプトは纏めて、電話機上で動作する完全なアプリケーションに組み込み、デスクトップPCから遠隔で再び動作させることができる。
4.mrixの一部でありうるmRouterのようなPCの接続コンポーネントは、もしモバイル機器からデスクトップPCへのネットワーク接続、あるいは通過ルーティングが要求されれば使用される。mRouterの詳細については内容が参照により組み込まれるPCT/GB2002/003923を参照されたい。
5.サーバ上の接続性コンポーネントはもしサーバが電話機に接続する必要があれば使用される。これは電話機のIPアドレスが外部には見えず、従ってサーバによりコンタクトすることができないので必要である。従って、電話機およびバックオフイスサーバの両方により見ることができ、サーバへのネットワーク接続を可能にする、リレーサーバが要求される。
(mrix構成)
mrixはスマートフォン上で動作するコマンドインタプリータおよび遠隔PCあるいは他の適切なプラットフォーム上で動作するコマンド実行シェルの周りに設計される。パイププロッセサを、mRouter(登録商標)を介してデスクトップPCから、あるいはリレーを介して遠隔サーバから(ユニックスコマンドのように)遠隔呼び出しができる。これによりmrixの解決法による開発およびデバッグを都合の良いデスクトップPCから実施できるばかりでなく、またネットワークを介して実行時にスマートフォンのコンポーネントの共有を許容する。
幾つかのパイププロセッサは必須であり、システムの核と考えられる。実施例にはイベントに基づいて処理を開始および停止するのに使用されるmtEventあるいはmtATが含まれる。また、メモリ量を最小にするために、もし必要であれば実行時に削除できる選択可能なパイププロセッサの組も供給される。また、特注のパイププロセッサをC++あるいはLUAスクリプトで構築することができ、このためにテンプレートが提供される。
(mrix解決法の実施例)
使用するコンポーネントに関するより多くの情報については「mrixの特徴一覧」を参照されたい。
Figure 2007510979
Figure 2007510979
Figure 2007510979
Figure 2007510979
Figure 2007510979
Figure 2007510979
(特徴リスト)
核をなすmrixシステムは幾つかのエレメントを含み、その幾つかはスマートフォン上に配備される。
mrcmd:mrcmdは2つのエレメント、スマートフォンのコマンドインタプリータおよび遠隔コマンド実行シェルからなる。コマンドインタプリータは現在シンビアン上で動作する。遠隔コマンド実行シェルはウインドウズ、MacOSXおよびリナックス上で動作する。
m-Router(登録商標):シンビアンOSのスマートフォン上のローカル接続の管理を処理するイントュウエイブの既存のm-Router(登録商標)製品へのコマンドラインインタフェースである。m-Router(登録商標)はシリアル、ブルートゥース、USBおよびIrDAベアラを介して動作する。
mrElay:mrElayはイントュウエイブの遠隔リレーサーバへのコマンドラインインタフェースとリレーサーバ自体の両方からなる。現在、リレーサーバはGPRSあるいはローカルm-Router(登録商標)リンクにより代理されるWANを介してスマートフォンからアクセスすることができる。
パイププロセッサ:パイププロセッサはスマートフォンの機能をカプセル化する小型自己完結モジュールである。イベント処理およびファイルアクセスを管理する少数のパイププロセッサはmrixの核に存在する。
スクリプトエンジン:強力でコンパクト(60k)なLUA5.0スクリプト記述エンジンはスマートフォンに含まれ、開発者がスクリプトを使用して直接難なくパイププロセッサの機能を結合することを許容する。スクリプト記述エンジンに含まれるのは、既存のパイププロセッサの機能を強力に結合する幾つかの核mrixスクリプトである。
mrix参照マニュアル:全ての既存の核パイププロセッサの使用法を説明するHTMLページである。m-Router(登録商標)およびmrcmd機能、並びに新しいパイププロセッサの記述に関する指示も存在する。文書およびスクリプトの詳細が含まれる。
システムの核機能を拡張する付加的パイププロセッサの範囲がある。これらパイププロセッサは難なくmrixシステムに付加され、その能力を高めることができる。
(mrixの利点)
(アプリケーションの分野)
mrix技術はスマートフォン装置の遠隔制御が重要なアプリケーションの広い範囲に直接適用できる。
試験:mrixはシステムの完全自動化、即ち機能、受理、後戻りおよび相互作用のテストを可能にする。
PIMアプリケーション:mrixはスクリプトがアクセス可能なツールキットを介してPC接続性PIMアプリケーションの迅速な開発を可能にする。
(利点)
mrixはスマートフォン製造会社および電話ネットワーク運用会社に数多くの利点をもたらす。
・開発スピード:mrixの開発はAPIに対するコーディングよりむしろスクリプトを発展させることにより迅速に反復して行われる。これにより開発ライフサイクルがかなりスピードアップされる。
・経費:mrixの機能はスクリプトを基本とするので、保守および機能の高度化の経費、並びに開発経費はかなり削減される。
・クロスプラットフォーム:mrixはスマートフォンのための完全なクロスプラットフォームのサポートを提供する。クロスプラットフォームツールキットと結合されると、サーバアプリケーションが構築され、種々のPCオペレーティングシテムに亘って動作できる。
(付録1)
(MRIX-開始への指針)
(MRIXの概要)
mrixはプラットフォームを意識しない無線ネットワークオペレーティングシステムである。mrixはスマートフォン、パーソナルコンピュータおよびサーバ上ならびにそれらの間の両方で移動アプリケーションの広い範囲の迅速なクロス-プラットフォーム開発を許すように設計されている。mrixはコマンドライン駆動ツールの強力なセットからなり、スクリプト記述言語を使用して洗練されたPCアプリケーション上での構築、内部への組み込みが可能である。さらに、mrixを使用してスマートフォン自体において実行可能なアプリケーションを記述することができる。
図2は可能なmrixの構成を示す。
mrixは幾つかのエレメントからなり、図3に示すように遠隔リレー(TCP/IP、GPRS)経由、並びにローカルリンク(IR、ブルートゥースおよびUSB)を介してコマンドを実行するのに使用することができる。
構成に関する幾つかの重要なエレメントが存在する。
・m-Router:ベアラ接続エージェントである。m-Routerは幾つかのPCおよびスマートフォンコンポーネントの両方からなる。m-Routerは色々な短リンクベアラ、即ちIrDA、ブルートゥース、USBおよびシリアルを介してスマートフォンとPC間の通信を可能にする。
・リレー:リレー、mrElayD(「D」はディーモンを意味する)はPCからGPRSを介してスマートフォンへの遠隔アクセスを許す。PCおよびスマートフォンの両方は両者間の通信実現のためにリレーに接続する。
・アイデンティティサーバ:全てのコマンドはローカルあるいは遠隔何れにしろ、「識別」(人あるいはシステム)のために動作する。種々のアイデンティティ(同一性)を構成し、種々の結果を得るコマンドを動作させることができる。
・ブートサーバ:スマートフォンリブートによりmrixイベントの開始を処理する。
・コマンドインタプリータ:コマンドインタプリータモジュール、rshdはスマートフォン上で動作し、普通はブートにより開始するように設定される。
・コマンドシェル:コマンドシェル、mrcmdはPC上で動作する。シェルは現在ウインドウズ上で動作するが、やがてリナックスおよびマックOSX上で利用可能になる。プログラムおよびスクリプトはスマートフォン上のmrixコンポーネントと通信および相互作用をするPCに対して記述することができる。
・Luaスクリプト記述エンジン:Luaで書かれたスクリプトはスマートフォンで動作することができる。幾つかの有用なスクリプト、例えばSMTPおよびFTPクライエントがレリースされている。
・パイププロセッサ:個別のスマートフォンモジュールであり、mrixコマンド環境を通じてアクセスし、スマートフォン機能の範囲へのアクセスを提供する。
(事前要件)
mrixの使用には次のハードウエアおよびソフトウエアが必要である。
・IrDAあるいはブルートゥースのサポートのあるPC
・マイクロソフトウインドウズ2000あるいはその後のバージョン
・m-Router
・mrix
・スマートフォン(ノキア7650、3650、6600、N-ゲージ、ソニーエリクソンP800)
(MRIXの使用)
(m-Router-スマートフォンへの接続)
PC上でコマンド指示を開き、
>mrouter-h
をタイプする。
このコマンドはm-Routerのヘルプを表示する。全てのコマンドはヘルプの選択肢を有し、-hあるいは長い形式--helpにより呼び出すことができる。
接続するスマートフォンを探すために、
>mrouter-csearch-devices
をタイプする。
このコマンド選択肢はローカルに全てのブルートゥース装置を探す。
リストした最初の4列は装置、UID(スマートフォン装置ではこれはIMEI番号-この実施例ではこれは装置8に対してのみ示す)、ブルートゥースアドレスおよびブルートゥースと相性の良い名称(装置ユーザにより割り当てられる)を表すために使用される任意の順序を示すリスト番号である。
得られる装置リストからスマートフォンを見つけ、次いでコマンド指示の以下のコマンドをタイプしてスマートフォンに接続する。
>mrouter-cconnect-device-d<ブルートゥース装置名>
例えば、もしスマートフォンがNokia7650のブルートゥース名を持っていれば、その場合コマンドは、
>mrouter-cconnect-device-dNokia7650となる。
システムトレイのm-Routerアイコンのスクリーンが赤から青に変わるのが見られる。
開発の目的に対して、「装置を探す」から得られる順序を示す結果を使用するのが最も好都合であることが分かる。種々のアドレス方式を使用してスマートフォンに接続できる。選択肢「-d」は<schema>:<id>の形式を取る。SchemaはN、IMEI、BTADDR、BTNAME、ANYの1つでありうる。もし見つからなければ、schemaはANYと想定される。Nはリスト-装置あるいはサーチ-装置によって戻される各装置の次のリスト番号と整合する。IMEIはUIDフィールドと整合する。BTADDRはブルートゥースアドレスに整合する。BTNAMEはBTと相性の良い名称に整合する。ANYは以上の何れにも整合する。従って、このように種々の方法で装置に接続することが可能である。
>mrouter-cconnect-device-d8
>mrouter-cconnect-device-dIMEI:xxxxxxxx
>mrouter-cconnect-device-dBTADDR:xxxxxx
>mrouter-cconnect-device-dSJCxxxxxxxxx
スマートフォンを切断するためには、
>mrouter-cdisconnect-device-d<ブルートゥース装置名>をタイプする。
また、
>mrouter-cdisconnect-device-d.
をタイプすることもできる。
上のタイプでもし複数の装置が現在接続されていれば、ピリオドは現在接続されている装置、あるいは最初に接続された装置を表す。
(mrcmd-PCからの電話機制御)
mrcmdはスマートフォン上でパイププロセッサとスクリプトを動作させることを許容するPCのサイドプログラムである。スマートフォン上でパイププロセッサとスクリプトを動作させる前に、mrixの設定のための要件レベルのセキュリティを設定する必要がある。これはmrcmd環境変数を設定することにより行われる。現在、アイデンティティ構成情報はスマートフォンの\system\mrix\identity.iniファイルに格納されている。CTOアイデンティティはパスワードGOODと共にこのファイルに設定されている。mrixシステムとプレイするためにこのアイデンティティを使用しなければならない。これは以下のようにDOSコマンドシェルから行われる。
>setmrcmd=-iCTO-aGOOD
あるいは、これを以下のように永久に設定することを希望することができる。
デスクトップの「マイコンピュータ」を右クリックし、「プロパティ」を選択。
「次へ」タブを選択。
「環境変数」ボタンをクリック。
「システム変数」リストの「新」ボタンをクリック。
「変数」フィールドに「MRCMD」を入力し、「-iCTO-aGOOD」を「変数値」フィールドに入力。
変更を保存するためにOKを3度クリック。
一度セキュリティが設定されると、スマートフォン上で遠隔シェルデーモン、rshdを開始する必要がある。スマートフォン上で初めてmrixを動作させるときに一度だけこれを行はなければならない。その後mrixブートサーバを使用して、rshdは自動的にブートで開始される。rshdを動作させるために、スマートフォン上でmrixアプリケーションを開き、以下のようであるべきリストボックスの第1のコマンドを実行する必要がある。
mrtcp
--accept--local3011--run“rshd--run”
mrixアプリケーションはスマートフォン上でコマンドとスクリプトを動作させる単純な方法である。mrixから別のコマンドを呼び出すためには、単純にただ既存のコマンドラインを上書きする(および必要なパラメータ)。
そうすると、既存のmRouter接続を介してmrcmdを使用してmrixコマンドの動作を試す準備が整う。既存のパイププロセッサの広い範囲から任意のものを試すことができる。以下に、mrpsおよびmrfileを記す。
mRouterを使用して、スマートフォンに接続する。
スマートフォン上で全ての処理が動作するのを見るために、
>mrcmd.“mrps-1”をタイプする。
mrcmdはスマートフォンに-1選択肢により(この場合、現在接続されている装置を意味するピリオドにより示されるが、明白にブルートゥースの名称を指定することができる)mrpsパイププロセッサを動作させることを告げる。コマンドが2重引用符で囲まれていることに注意されたい。
コマンドラインからmrpsに関するヘルプを得るには、
>mrcmd.“mrps-h”をタイプする。
ファイルをスマートフォンに送信するには、
>mrcmd.“mrfile-wc:\system\default.car”<c:\mrix\bin\default.carをタイプする。
このコマンドはファイル(c:\mrix\bin\default.car)をスマートフォンに再度差し向ける。選択肢「-w」はスマートフォン上でファイルが書かれるべき場所を指定する(c:\system\default.car)。
スマートフォンからファイルを削除するには、
>mrcmd.“mrfile-dc:\system\default.car”をタイプする。
コマンドラインからmrfileに関するヘルプを得るには、
>mrcmd.“mrfile-h”をタイプする。
mrcmdを使用して、Luaスクリプトを呼び出すこともできる。コマンドラインからluaスクリプトを動作させることに関するヘルプを得るには、
>mrcmd.“luarun-h”をタイプする。
test.luaと呼ばれるスクリプトファイルを創り、テキストをコピーし、シェブロンで挟んで(を含まず)ファイルに貼り付ける。
>>>>>>>>>>>>
#!luarun
mrix.write(“Hello、World\n”)
mrpromptのパイププロセッサを駆動。
mrix.runは他のスクリプトとパイプロセッサ動作させ、フォームを持つ。
mrix.run(コマンド、コマンドパラメータ、[選択肢の入力])
res=mrix.run(“mrprompt”、“-tYESNO-p\”Need help-\” ”)
mrix.write(“Result=”..res“\n”)
>>>>>>>>>>>>
Luaスクリプトはスマートフォン上で2つの方法の内の1つで動作させることができる。
・luaスクリプトをスマートフォンに流すことによる。
・スマートフォン上にあるluaスクリプトを動作させることによる。
スクリプトをスマートフォンに流すためには、
>mrcmd.“luarun-”<test.luaをタイプする。
スクリプトは“Hello、World”をコマンドラインに印刷する。この方法により、スクリプトはスマートフォン上に存在する必要はない。
スマートフォンからスクリプトを動作させるには、先ずスクリプトをスマートフォンに書く。
>mrcmd.“mrfile-wc:\system\mrix\test.lua”<test.lua
スクリプトを動作させるには、
>mrcmd.“luarunc:\system\mrix\test.lua”をタイプする。
結果は第1の方法によりスクリプトを動作させるのと同じである。
Luaは、従って以下の実施例のように相互作用により呼び出すことができる。
>mrcmd.“luarun”
>mrix.write(“Hello、World”)
>q
(さらなるスクリプトについて)
PCとの相互作用とは独立に、スマートフォン上でLuaスクリプトを動作させる2つの方法がある。
第1はmrixを使用してLuaスクリプトを呼び出す。単にCmdフィールドにスクリプトの名称とParamsフィールドにスクリプトのパラメータをタイプし、Runを選択する。
第2はスマートフォンがオンの時にスクリプトを動作させる。これを行うには、スクリプトをスマートフォンのブートファイルにロードするイベントを設定する必要がある:
>mrcmd.“mrevent-a-nrunmyscript-eBOOT-cluascript.lua”
このコマンドは(-a)ブートコマンド(-eBOOT)をスマートフォンのブートファイルに加え、スマートフォンがオンの時にスクリプト(-cluascript.lua)を動作させる。イベントには名称(-nrunmyscript)が与えられ、名前として働き、以下のようにブートからイベントを削除することができる。
>mrcmd.“mrevent-d-n runmyscript”
(アイデンティティ)
全てのmrixスマートフォンスクリプトおよびパイププロセッサは、ローカルあるいは遠隔からアイデンティティの承認の下に動作する。アイデンティティはユーザネーム、パスワードおよびアイデンティティの下に動作させることの出来るスクリプトおよびパイププロセッサを管理する承認の組からなる。identity file、identity.iniはスマートフォンの\system\mrix directoryに位置する。
これまで、ユーザ、(全てのコマンドに対する完全な承認を有する)CTOを使用してmrcmdを介してコマンドを動作させた。もしスマートフォンが起動するときにスクリプトを動作させるように設定されていれば、その場合使用するデフォールトアイデンティティは最小限度の承認を有する「ゲスト」である。それ故、スクリプトは動作できるmrixコマンドに制限がある。何か有益なことを行うには、スクリプトがより多くの承認を得ることが出来るように、アイデンティティは変化しなければならない。以前に創られたluaスクリプトファイルを編集する。テキストをコピーし、シェブロンを挟んで(を含まず)ファイルに貼り付ける。次いでmrfileを使用して、スクリプトをスマートフォンに送信し、mrixアプリケーションを使用してスクリプトを動作させる。mrixで、Options|Runを選択し、“test.lua”をCmdフィールドに入力し(Paramsフィールドが空白であることを確認する)、Runを選択する。指示が与えられ、ハイあるいはイイエを選択することができる。
>>>>>>>>>>>>>
#!luarun
現在のアイデンティティ、この場合ゲストを保存。
old_id=mrix.getcurrentidentity()
CTOusernemeを使用して、新しいアイデンティティの名前を作成。
new_id=mrix.makenewidentity(“CTO”、“GOOD”)
以下のコマンドを動作させるために新しく創ったアイデンティティを使用。
mrix.setcurrentidentity(new_id)
mrix.write(“hello、world\n”)
mrpromptパイププロセッサを駆動。
mrix.runは他のスクリプトとパイプロセッサ動作させ、フォームを持つ。
mrix.run(コマンド、コマンドパラメータ、[選択肢の入力])
res=mrix.run(“mrprompt”、“-tYESNO-p\”Need help-\” ”)
mrix.write(“Result=“..res”\n”)
-保存したアイデンティティを復活。
mrix.setcurrentidentity(old_id)
-新しいアイデンティティを開放し、リソースを開放する。
mrix.releaseidentity(new_id)
>>>>>>>>>>>>>
(付録2)
(パイププロセッサ)
mrAgenda アジェンダデータベースへのインタフェースの提供。
mrAt 所与の時間に動作させるコマンドを計画。
mrBluetooth ブルートゥースサービスの範囲へのアクセスの提供。
mrContacts 連絡先データベースへのインタフェースの提供。
mrElayd リレーサーバへの接続の確立。
mrEvent イベントの設定と駆動(コマンド)。
mrFile 基本ファイルとディレクトリ操作の実行。
mrImage 装置からの単一イメージあるいはイメージストリームの獲得。
mrKeyboard キーボードへの文字入力の模擬。
mrLaunch アプリケーションの開始、実装/動作アプリケーションのリ
スト。
mrMessage メッセージの閲覧/削除、SMS送信、受信ボックスの注視。
mrMr 他のパ一プロセッサに関する情報の抽出。
mrObex 装置のブルートゥースOBEXを発出するクライアントへの
転換。
mrPrompt 単純な質問によるユーザへの指示。
mrPs 処理とスレッドの状況管理。
mrShutdown 閉鎖、リブートあるいは装置のブート状況の閲覧。
mrSim sim関連情報の抽出。
mrSky インターネットの「常時利用可能」格納エリアのデータを格納。
mrStorage 装置へのデータ格納の許容。
mrSysinfo システム情報を返信。
mrTcp TCP/IP接続の確立。
mrThroughput 電話機へおよび/からの疎通試験。
mrWatchfire 注視されるリソースが変化するときコマンドを作動。
(付録3)
(シンビアンパイププロセッサの開発)
(1.序説)
本節はシンビアンパイププロセッサを記述することを望む全ての開発者の手引きとして役立つことを意図する。mrixパイププロセッサのテンプレートを使用して開始することの基礎を明らかにし、またパイププロセッサの開発過程で遭遇することのある幾つかの共通パターンを説明する。
(2.パイププロセッサとは何か-)
パイププロセッサはスマートフォンを基本とするモジュールであり、論理的に関係のあるスマートフォン機能の組をカプセル化する。このモジュールがそう呼ばれるのはmStreamから導かれるインタフェースにより全てのその入力および出力を抽象化するからである。即ち、このモジュールはコマンドラインインタフェースによりその機能を本質的に表す。例えば、mrContactsパイププロセッサはスマートフォンに関する連絡先管理の全側面を抽象化する。もしmrContactsがa-1選択肢により呼び出されると、全ての連絡先リストを返す。もしa-p選択肢により呼び出されると、スマートフォンの連絡先データベースを更新するのに使用する連絡先情報のファイルが期待される。
シンビアンでは、パイププロセッサはCmStreamProcessorInstanceGroupから導かれるクラスの単一の例を創り、次にこれを使用して任意の数のCmStreamProcessorInstanceから導かれる例を創り、特定のタスクを管理する。通常、それぞれ重要なコマンドライン選択肢に個別のCmStreamProcessorInstanceが創られる。パイププロセッサは独立の実体として設計することができる、あるいはCPipeProcessorRunnerContainerクラスの例を使用して他のパイププロセッサを内部で呼び出すことが出来る。
パイププロセッサの能力は本明細書の焦点であるmrixの枠組みを通じて最も強力に梃子入れすることができる。この枠組みの中で、パイププロセッサの能力はmrixのmrcmd遠隔シェルインタフェースにより、あるいは装置上で動作するLUAスクリプトを介して直接呼び出すことができる。一般に、明確に独立のスマートフォン機能の諸側面に責任を持つ論理的に自己完結のモジュールであるようにパイププロセッサを設計するのは良い考え方である。換言すれば、パイププロセッサは可能な限り「直交に」維持されるべきであり、設計者は単一のモジュールに責任の異なる種類を詰め込もうとすることを避けるべきである。
シンビアンの全てのパイププロセッサに共通の特徴は以下の通りである:
1.パイププロセッサグループにポインタを戻す単一出力を持つ多様形DLL。mrContactsにとりこれは以下の通りである:
CmStreamProcessorInstanceGroup* CmrContactsGroupCreatorFunction(constmStreamMan::FixedString&aName)
2.UID1は0x1000AF70である。
3.スマートフォン機能の幾つかの個別の側面に対する責任。
(3.パイププロセッサの開始)
(mrixパイププロセッサのテンプレート)
パイププロセッサ構築の推奨方法は\mrix\source\epoc\genericに見出すことのできるmrixパイププロセッサのテンプレート、commandtemplate.plにより始めることである。DOSシェルコマンドラインから適切なUID2と共にパイププロセッサの意図した名前を持つこのテンプレートを呼び出す。開発に有効なUIDの範囲は0x00000001から0x0fffffffである。この範囲のUIDは公開コードに使用されるべきではない。代わりに、第3パーティの開発者はシンビアンテクニカルペーパを調べる必要がある。例えば、テンプレートパイププロセッサを創るために、0x00f00f00の開発UIDを持つmrFooは\mrix\source\epoc\genericディレクトリにおいて以下のコマンドを動作せる:
commandtemplate.pl-nmrFoo-u0x00f00f00-s templates\synchronous_pp
このコマンドを動作させる場合、MSVC6が骨格プロジェクトにより発出されていることを知るべきである。そのプロジェクト内では、既成のテンプレート、mrFoo.htmlmanpage、emptytodo.txtおよびhistory.txtファイルおよびまた幾つかのC++ソースおよびヘッダファイルが見出される。
MSVC6の中およびDOSシェルコマンドラインからの両方でパイププロセッサをコンパイルし、構築できる筈である。シンビアンスマートフォンのためにパイププロセッサを構築するためには、まずディレクトリを\mrix\source\epoc\genericから\mrix\source\epoc\generic\mrfoo\groupに変える必要がある。次いで、合図変数buildを以下のように呼び出す。
abld build thumb urel
そしてパイププロセッサを適切に接続されている目標に以下のように転送する。
putpp.mrfoo
これを行うには、m-Router(登録商標)接続がシンビアンスマートフォンとPCの間で動作中であり、mrix遠隔シェルディーモンrshdが動作していることを保証する必要がある。
一度パイププロセッサmrFooが装置上に存在すると、デフォールトでは動作させることができないので、アイデンティティがこのパイププロセッサを動作させることを許容するように装置のidentity.iniファイルを変更する必要がある。これにはこのファイルに次の行を追加する必要がある(適切なユーザアイデンティティタグの下に)。
AllowmrFoo=Yes
電話機のリブートが、アイデンティティサーバがアップグレードの登録ができることを保証するのに続いて、パイププロセッサを動作させることが出来るようになるはずである。
mrFooの埋め込みヘルプを以下のように呼び出すことができる。
mrcmd.“mrfoo-h”
この点で、mrFooパイププロセッサはシンビアンスマートフォン上で動作する。mrFooパイププロセッサが正当なパイププロセッサとしてシステムパイププロセッサのmrmr-1リストに現れるのを見ることができるはずである。以下の選択肢のサポートはテンプレートによりデフォールトとして埋め込まれている。
* -h:help listing
-v:verbose
* -V:version
コマンドテンプレートの呼び出しからシステムに実装された動作するパイププロセッサを得るに至る過程は1分を要しない筈である。
(ライブラリサポート)
パイププロセッサは次の3つのライブラリにリンクする:
* mStreamClientEx.lib:mStreamのクラス。
* mStreamProcessorEx.lib:mrixパイププロセッサの拡張。
mStreamUtilEx.lib:mrixパイププロセッサのユーティリティ。
これらライブラリに対応するヘッダは以下の通りである。
* #include<mStreamClientEx.h>
* #include<mStreamProcessorEx.h>
#include<mStreamUtilEx.h>
もしmrixパイププロセッサテンプレートを使用する場合、これらのライブラリおよびヘッダは関係するファイル、即ち.mmp作成ファイルおよびstdafr.hヘッダァファイルに自動的に挿入されることに注意されたい。
(4.構成エレメント)
(他のパイププロセッサの呼び出し)
以下のコードの抜粋はCPipeProcessorRunnerContainerの例の創り方および標準-V選択肢を使用するパイププロセッサのバージョンを決定するための使用法を示す。
runner=CPipeProcessorRunnerContainer::NewL();
TInthandle=runner->PPOpen(aPP,_L
(“--version”));
Info(_L8(“PPOpenreturned%d”),handle);
iVersionBuffer.SetLength(0);
if(handle>0)
{//ファイルの終わりまでPP出力の同期読み取り、
err=KErrNone;
while(lerr)

TBuff8<8>buf;
err=runner->PPRead(handle,&buf);
Info(_L8(“PPReaderr=%d,\“%S\” ”),err,&buf);
if(lerr)
iVersionbuffer+=buf;

err=runner->PPClose(handle);
Info(_L8(“PPclosereturned%d”),err);
deleterunner:
(5.パイププロセッサ設計パターン)
パイププロセッサ内において起こりうる処理の4つの共通タイプが存在する。
* リスト処理
* 入力処理
* 接続管理
* 状態管理
これら構成上の使用の各場合は特定のパターンを使用して処理することができる。
(付録4)
(mrixコマンドおよびスクリプトガイドライン)
(1.序説)
本節はmrixコマンドの書き方(C++パイププロセッサとスクリプトの両方を含む)および動作のさせ方のガイドラインを記す。これらコマンドの記述者と試験者の両者向きである。
(2.パイププロセッサとスクリプトの共通事項)
以下のガイドラインはパイププロセッサとスクリプトの両方に適用される。
(2.1 入力/出力フォーマット)
他のソフトウエアから来る、あるいは他のソフトウエアにより処理されると考えられるコマンドによるデータ入力あるいは出力は少なくとも以下のフォーマットの1つにおいて受理/利用されるべきである。
(MIMEタイプの記述例)
固定数のフィールドを持つレコードのテキスト/コンマで区切られた値のリスト。第1のレコードはヘッダレコードである。
mrps-L,mrouter-clist-devices
text/x-mrix-versit 恐らく可変数のフィールドを持つレコードの木またはフラット構造リスト
mrcontacts-1,mragenda-1,mrmessage-1
text/x-mrix-tagged 「ラベル:値」の対の静的リストであり、単一の静的レコードが出力される度に使用される。 mrsim-1
application/octet-stream コマンドに特定のフォーマットの一般のバイナリデータ
mrfile-r,mrimage,mrtcp
(2.2 誤り、警告および情報)
全ての誤り、警告および情報メッセージは標準的誤りについて出力され、補助的情報はパイプについて出力される。そのフォーマットは次の1つである。
(フォーマットの使用)
ERROR:誤りメッセージ。コマンドの動作を継続できないことを意味する致命的誤り。誤りメッセージを出力後、コマンドは直ちに停止しなければならない。
WARN:警告メッセージ。ユーザが警告を受けるべき何かが生じたことを意味する診断誤りであるが、コマンドの動作は継続することができる。控えめに使用のこと。
INFO:情報メッセージ。クライアントが彼等自身のソフトウエアをデバッグ中にコマンドのクライアントを助ける診断メッセージである。コマンド自体のデバッグに使用されるメッセージは公開前に削除されるべきである。ユーザがVERBOSEコマンド選択肢を選んだ場合にのみ、INFOメッセージは出力されるべきである。控えめに使用のこと。
標準的誤りに関するデータ出力に対して特別の注意が払われるべきである。4Kを超えるデータは出力されるべきでなく、さもなければクライアントは出力パイプを同時に読まないかぎり、デッドロックになりうる。
(2.3 リターン値)
コマンドが成功する場合の動作は零のリターン値となる。誤りが生じると、リターン値は適切な(負の)誤りコードに設定される。
(2.4 パターン)
コマンドは次のパターンの1つに従わなければならない。
(タイプの説明)
出力のみ。 実行すると、コマンドはコマンドラインに基づいて何かしら処理を行い、何らかのデータを出力する。
入力のみ。 実行すると、コマンドは標準入力(ファイルの終わりまで)、あるいはファイル、あるいはコマンドラインからデータを読み、次いで読んだものを処理する。データは出力されない。
入力、次いで出力。 実行すると、コマンドは標準入力(ファイルの終わりまで)、あるいはファイル、あるいはコマンドラインからデータを読み、次いで読んだものを処理する。その後、なにがしかデータが出力される。
見張り。 実行すると、コマンドは動作し、何らかのシステムリソースの監視を開始する。リソースの変化の度に、「変化」と新しい行をプリントする。また、コマンドは入力パイプを読む。パイプが閉鎖されている、あるいはテキスト「中止」が送信されると、その場合には見張りは消える。
ストリームIO。 実行すると、あるコマンドに特定の規則に従い、コマンドは読むことと書くことの両方を行う。
(2.5 ライン終了子)
出力すると、全てのコマンドは\r\n文字対により行を終了する。テキストフォーマットで入力を受理する全てのコマンドは\r\nまたは\nで終了する行が分かる。
(2.6 他の装置の指定)
コマンドが他の装置の指定を要求されると、その場合その実行のためにコマンドは幾つかの異なる方法を許容する。方法は装置を参照して、SCHEME:NAMEとして適用される。装置参照に方法が付されていない場合、デフォールトの方法はANYである。
(方法の説明)
N コマンドが1から番号を付された装置リストを出力すると、その場合N方法により、クライアントはリストの番号によりリストの特定の装置を参照することが許容される。
BTNAME ブルートゥース名による装置参照。必要により名称を引用したり、しなかったりすることの保証はクライアントの責任である。
BTADDR ブルートゥースmacアドレスによる装置参照。コマンドはアドレスの:制限子の有無を知る。
IMEI IMEI番号による装置参照。
ANY 上記の任意の方法による整合する装置検出の試み。
(2.7 標準選択肢)
全てのコマンドは長い(posix)および短い形式の選択肢をサポートし、かつ少なくとも以下の選択肢をサポートしなければならない。
(選択肢の説明)
-h,--help コマンド選択肢をリストする短い方を使用するテキストおよび余裕があれば極めて短い説明を表示。-hにより出力されるテキストは1024バイトを超えない。
-V,-version 以下のフォーマットでバージョン情報を表示:a,b,c(d)(e)。a,b,c,dはバージョンであり、構成されたコマンドに対するmrixの番号を構成する。eはコマンドに特定のバージョン番号であり、コマンド改版の度に増える。
-v,-verbose このコマンドはコマンドに関する情報出力の表示を許容する。この情報はクライアントのプログラムの問題を見出すためにのみ存在すべきであり、コマンド自体のデバッグのためではない。
No option コマンドライン選択肢は、コマンドが誤りとヘルプ選択肢に対するデフォールトをプリントするようにしてはならない。
さらに、多数のコマンドは主要な検閲あるいは表示機構として-list,-l選択肢を提供する。
(2.8 追加ファイル)
コマンド自体並びに開発者はコマンドの目的と動作を詳細に説明するためにhtmlフォーマットのマンページを供給すべきである。また、開発者は(コマンドの各バージョンで変化したものを記録するために)histiry.textファイルと(次バージョンの考え方を記録するために)todo.textファイルを維持すべきである。
(2.9 依存性)
他のコマンドへの依存性は最小に保たれねばならない。核mrixコマンドのみが他の核mrixコマンドに依存することができる。再使用するように設計されたコマンドのみが核mrixコマンドに依存すべきである。
(3.パイププロセッサのみ)
以下のガイドラインはパイププロセッサのみに適用される。
(3.1 メモリの使用)
全てのパイププロセッサはメモリの使用を最小にする観点で書かれるべきである。
使用するコマンドラインによりオブジェクトが要求される場合にのみ、オブジェクトが創られるべきであり、例えばmrAgenda-Vを動作させることによりコマンドがアジェンダサーバに接続するようにすべきでない。
利用できる16kのスタックの有効利用をすべきである。
大きなストリングのデータを出力する必要があれば、大きなTBuf8の代わりにCBufFlatを使用のこと。
16kを超えるデータを出力する必要があれば、非同期に塊で出力することを考えること。
(3.2 データ出力)
パイププロセッサは単一のバッファにおいてその出力すべきデータを構成し、次いで出力すべきであり、何度もWritePipeLをコールしてはならない。
(3.3 国際的サポート)
パイププロセッサは全てのユニコードデータをUTF8に変換し、その後プラットフォームの埋め込み文字変換設備を使用して出力すべきである。
(4.スクリプトのみ)
以下のガイドラインはスクリプトのみに適用される。
(4.1 ローカル)
全ての変数をローカルにする。
(4.2 誤りコード)
コールするパイププロセッサの誤りコードを常に確実に調べる。
誤りコードを適切に設定する(この実行方法を追加する必要がある)。
(4.3 メモリの使用)
可能であれば、連ねるよりむしろ一度に1行のデータを処理する。
(4.4 デバッグ)
他のコマンドから動作させるように設計されたものであっても、全てのスクリプトはデバッグを許容する観点からローカルに動作可能であるべきである。
(付録5)
(mrixおよびスマートフォン試験環境)
(1.要約)
本節はmrixを使用してシンビアンOSスマートフォンの製造会社が製品試験の品質と数量を改善する手助けをする幾つかの機会を概説する。この試験は製品搬出の前に生じるシンビアンOSスマートフォンの長い開発期間中に行われる。機会が現れるのは今日行われる試験の大半が明らかに手動的性格だからである。
(2.概要)
(2.1 今日のスマートフォン試験の課題)
今日、長い開発期間中のシンビアンOSスマートフォンの試験は経費がかかり、困難な課題である。プロセスはアドホックで、手動の、繰り返しのできない試験に強く係わる。
(装置応用試験の課題)
* 試験の大半は手動で行われる。
* 長い動作試験と強制試験は自動方式で行うことがほぼ不可能である。
* 装置に関するデータ作成は困難で、単調な課題である。
* 試験は難なく繰り返しができない。
* 開発サイクルの間ROMを常にリフレッシュするのはより困難な、あるいは長い動作試験の多くを「割れ目に落とす」ことになる。
(接続性ソフトウエアの試験の課題)
上記の全ての課題はスマートフォンの接続性ソフトウエアの試験に等しく当てはまる。なお、接続性はPCとスマートフォンの間のリンク確立を含むので、PC/サーバとスマートフォンの同時制御が現在不可能であるという複雑さがさらに加わる。
(2.3 mrixの利点)
製品試験に関するスマートフォン装置製造会社に重要なことは以下の通りである。
* スモーク試験-基本的なUI機能を試験する。
* 寿命システム試験-数千回の追加/削除/変更入力。
* ローカル化試験-試験実行。
* 運用会社の試験-電話ネットワークの相互運用試験。
上記のリストに関して、mrixは試験の場に重要な付加的エレメント、即ち可能性を秘めた複数のシンビアンOS装置の遠隔制御能力をもたらす。遠隔制御は自動試験の余地を劇的に増し、シンビアンOSスマートフォン製造会社に試験の品質と量の両方の改善を可能にすると同時に経費を削減するので、これがまたシンビアンOSスマートフォンの製造会社にとって魅力的である。
(3.可能性のあるmrixの試験機会)
以下にシンビアンOSスマートフォンの装置試験の基本としてmrixを使用する利点を説明する手助けとなるプロトタイプの具体的な示唆を行う。示唆を実装の困難性に関して評価する。
3.1 アプリケーションテスタ
シンビアンOSスマートフォンのアプリケーションの試験は骨の折れる、困難なプロセスである。さらに、スマートフォンの製造会社の中には既に開発者許可プログラムの導入を通じてスマートフォンの試験過程の標準化を模索するものもある。第3パーティのシンビアンOS開発者が全ての許可の経費に圧倒されることのある危険が存在する。理想的には、廉価で、容易なアプリケーションの健全なチェック方法が望まれる。
アプリケーションテスタはシンビアンOSアプリケーションの試験過程を自動化する。これはmrixにおけるスクリーン確認サポートの実装を必要とし、この実装は時間を消費することを示すが、アプリケーションテスタのみならず多くの以下の機会にとっても恐らく本質的である。サポートは恐らくパイププロセッサの実装を含み、パイププロセッサはシンビアンOSのwservと遙かに緊密に相互作用することができ、遠隔スクリプトがアプリケーションへの入力の直接制御と、そのスクリーン出力の試験を行うことを許容する。mrixリンクを介して伝達されるCitrixプロトコルのiwthGDIオブジェクト情報に何か似たものを含むことが必要である。mViewの取る現在の手法はリンクを介するスクリーンビットマップの伝達を含む。
(3.2 スモークテスタ)
スモーク試験は試験フェーズでは他の何よりも多く恐らく繰り返される。スモーク試験は構成の次のベータ試験への適性を判断するために使用される主たる道標であるので、厳しい活動である。換言すれば、スモーク試験は後戻りへの早期警告として重要な役割を担う。今日、スモーク試験は殆ど専ら手動である。通常、スモーク試験は電子メールの送信あるいはウエブのブラウジングのようなスマートフォン上での適切な使用事例の範囲を制定するテスタの形を取る。
mrix「スモークテスタ」はスモーク試験手順全体を自動化し、テスタに構成の合否を指示する。試験は種々の独立の先在するパイププロセッサを使用したスクリプトから行うか、あるいは単一のパイププロセッサにカプセル化することができる。何れの場合でも、代表的なスモーク試験に対して行われる試験範囲が高度化され、後続の試験を受け入れるための障害が高められることを保証する。勿論、完全なシステムテスタに発展するべくスモークテスタを高度化しない理由はない。
(3.3 寿命強制テスタ)
大部分のスマートフォン試験が手動で行われることを前提にすると、寿命試験は特に実行が困難である。試験は長い時間を経たスマートフォンの使用シミュレーションを含む。スマートフォン製造会社が寿命試験による品質改善の助けになることに非常な関心を持つのは、それが非常に高くつく製品リコールの回避の手助けになるからである。
mrix「寿命強制試験」は例えば6ヶ月の代表的な使用を遙かに短い時間に圧縮することにより寿命の過程をシミュレートする。これは連絡先、備忘録および電子メール入力の定期的挿入および随時削除のようなユーザ操作の全範囲を含む。試験は先在パイププロセッサを使用して、あるいは新しい独立のパイププロセッサへの試験のカプセル化により行うことができる。何れの場合も、スクリプトにより動作する試験の変更は容易である。
(3.4 試験コード装置)
シンビアンOSコンポーネントの試験コードは通常屡々自動化される試験装置の形式で書かれる。このように、そのような試験コードのテンプレート化のために実行可能なかなりの量が存在する。さらに、コンポーネントインタフェースの試験コードのパイププロセッサへの移動により完全にスクリプト記述によるシンビアンOSコンポーネントの試験の可能性が高まる。
mrix「試験コード装置」はゲーム関連のコンポーネントおよびインタフェース試験を向上させる。装置は適切なインタフェース機能を記入し、次いでスクリプトインタフェースにより駆動することのできるテンプレートパイププロセッサの形式にある。一度記述すると、スクリプト、並びにコンポーネント試験パイププロセッサは結合され、強力なシステム試験の記述を許容する。
(3.5 データジェネレータ)
スマートフォンに関するサンプルデータの生成は今日徒労の感を催す限界のある、主として手動の手順である。特に、変化のあるデータの組を生成するのは困難である。
データジェネレータは独立のパイププロセッサあるいは複数のパイププロセッサの組み合わせを使用してデータの組を変化させる装置側の仕事と柔軟なスクリプトインタフェースを処理することによりデータ生成過程を自動化する。
(3.6 接続性テスタ)
スマートフォンの接続性試験は今日非効率的で、主として手動の手順である。シンビアンOSスマートフォンの製造会社は実際従来からこの分野と戦ってきた。
接続性テスタは幾つかのパイププロセッサおよび試験スクリプトの組を使用して基本的なmrouter、contpro、backupproおよびagendasyncの試験を集積することによりシンビアンOSの接続性の根幹の試験過程を自動化する。
(3.7 電話ネットワーク強制テスタ)
ネットワーク運用会社の認可を得るために、スマートフォンは広範な相互運用試験を受ける必要がある。シンビアンOSスマートフォンの製造会社は従来から運用会社の受理を得ることと戦ってきたと考えられる。
ネットワーク強制テスタはネットワーク運用会社の受理基準に対する試験過程を自動化する。テスタはSMS、MMSおよび電話ネットワーク機能の試験を許容するパイププロセッサの組に対して実装されるスクリプトサポートからなる。この機会は複数の装置に関する試験においてmrixの能力と柔軟性を既に提示するRobCのSMSテスタスクリプト上にそもそも構築することができた。
(4.mrixの関連する機会)
シンビアンOSスマートフォン製造会社がmrix技術を展開する幾つかの良い機会を提供する試験に緊密に関係する幾つかの分野がある。特に、現場試験、診断およびデバッグは最も可能性があるように見える。関心が持てる更なる分野はIDEの組み込みと製品開発自体の活動である。
(4.1 現場診断ダンパー)
現場試験中に、ユーザが欠陥のある商品格付けとデバッグを支援するために試験中のスマートフォンから実際に包括的な診断を行う手段を持つことは極めて有益である。
現場診断ダンパーはパイププロセッサであり、小型の付属設備であり、試験中の装置から素早く、包括的な診断を行うのに使用することができる。
(4.2 IDEの組み込み)
パイププロセッサの開発中に、mrixが製品開発をかなり加速する能力を持つことが明らかになった。putpp設備は素早くパイププロセッサを更新するのに極めて便利であることを単独で証明した。IDEのツールベンダとパートナーを組み、mrixを内部に持つ結合IDEを開発し、現在の状況よりもっと進んだ開発環境を提供することには可能性が潜んでいる。この分野にはかなりの開発の可能性が潜んでいるが、その実現以前に時間と努力に関してもっと多くの投資が恐らく必要であることに注目すべきである。
本発明に従う迅速なアプリケーション開発のためのシステム(「mrix」)の構成例である。 本発明の実装のための可能なmrixの構造を示す。 遠隔リレー(TCP/IP、GPRS)、並びにローカルリンク(IR、ブルートゥースおよびUSB)を介してコマンドを動作させるのに使用することのできる幾つかのエレメントからなるmrixの構成法を示す。

Claims (34)

  1. 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが、(a)前記無線モバイル機器により要求される機能をカプセル化し、(b)標準インタフェース構造を共有し、(c)コマンドラインインタフェースの制御の下に前記装置上で動作することを特徴とする方法。
  2. 1または複数のモジュール化ソフトウエアエレメントが装置のネットワーク化機能をカプセル化することを特徴とする請求項1に記載の方法。
  3. 前記装置のネットワーク化機能が以下のGPRS、2Gセルラー、CDMA、WCDMA、ブルートゥース、802.11、赤外線、IPネットワーク化、ダイアルアップ、HSCSDおよびEDGEのモーデムの1または複数を介する接続性に関係することを特徴とする請求項2に記載の方法。
  4. 1または複数の前記モジュール化ソフトウエアエレメントが一般的なモバイル機器の機能をカプセル化することを特徴とする請求項1に記載の方法。
  5. 前記一般的なモバイル機器の機能が以下の呼制御および処理、PIM機能、SIM機能、画面を磨く、キー押下のふりをすることを含む遠隔制御、処理、スレッド、メモリおよび設定を含む監視、前記画面エレメントがスクリプトで規定されるアプリケーションを創ることを含むUI、監視と呼び出しを含む電話、ファイルとフォルダの読み書き、変更の監視を含むファイルシステム、構造化された格納、抽出、任意のアプリケーションデータの検索と監視を含むデータベース、リングトーン、壁紙および設定を含む装置の個性化の1または複数に関係することを特徴とする請求項4に記載の方法。
  6. コマンドラインインタフェースの前記制御下にある前記エレメントがTCPIPインタフェースであり、該インタフェースが前記装置の他のプログラムが入り接続を受けて動作する、あるいは他の装置ベースのプログラムの制御下にある前記装置から出接続を行うことを許容することを特徴とする請求項1に記載の方法。
  7. コマンドラインインタフェースの前記制御下にある前記エレメントが遠隔コマンド実行プロトコルを実装することを特徴とする請求項1に記載の方法。
  8. コマンドラインインタフェースの前記制御下にある前記エレメントがスクリプト記述言語を実装し、該言語がコマンドラインインタフェースによりまた制御される前記装置の他のプログラムを使用するスクリプトの記述を許容することを特徴とする請求項1に記載の方法。
  9. 高水準言語プログラムが指示を送信することができる前記装置から遠隔にあるアプリケーション開発コンピュータ上で動作する、あるいは各エレメントがコマンドラインインタフェースにより制御される前記装置上で動作することを特徴とする請求項1に記載の方法。
  10. 前記高水準言語プログラムがコマンドラインプログラムであり、該プログラムが前記モバイル機器と該装置と同じ前記遠隔コマンド実行プロトコルを実装する前記アプリケーション開発コンピュータ上の更なるプログラムとの間のIP接続を可能にすることを特徴とする請求項9に記載の方法。
  11. 迅速なアプリケーション開発が、前記遠隔コマンド実行プロトコルを使用して前記アプリケーション開発コンピュータのコマンド指示によるコマンドラインインタフェースにより制御される、前記装置ベースのエレメントの実行により装置能力の調査を可能にすることにより達成されることを特徴とする請求項10に記載の方法。
  12. 各コマンドの出力が前記アプリケーション開発コンピュータの前記コマンド指示に示されることを特徴とする請求項11に記載の方法。
  13. 迅速なアプリケーション開発が、前記装置上に書かれた前記スクリプト記述言語のコマンドラインインタフェースにより制御される、幾つかの装置ベースのエレメントの前記結果を結合するスクリプトを使用することにより達成されることを特徴とする請求項10に記載の方法。
  14. 前記スクリプトが前記アプリケーション開発コンピュータ上で動作するテキストエディタにおいて構成されることを特徴とする請求項13に記載の方法。
  15. 迅速なアプリケーション開発が、前記スクリプトを前記装置に転送し、前記コンピュータのコマンド指示を再び使用して前記スクリプトを実行することにより達成されることを特徴とする請求項13または14に記載の方法。
  16. モジュール化ソフトウエアエレメントの前記標準インタフェース構造が前記エレメントの前記名称、コマンドライン選択肢の組、2つの入力ストリームおよび2つの出力ストリームであることを特徴とする請求項1に記載の方法。
  17. 前記高水準言語が単一のタイプの高水準言語に制限されず、前記ソフトウエアアプリケーション開発者の前記要件に応じて以下の、
    (a)コマンドラインインタフェース、
    (b)スクリプト記述言語、
    (c)コンパイルされた言語
    の何れでもあり得ることを特徴とする請求項9に記載の方法。
  18. 前記アプリケーション開発コンピュータがデスクトップPCであることを特徴とする請求項17に記載の方法。
  19. 前記高水準言語プログラムがさらに前記装置上で動作し、別のアプリケーション開発コンピュータの使用を必要とすることなく前記装置の再プログラミングを可能にすることを特徴とする請求項1に記載の方法。
  20. 前記モジュール化ソフトウエアエレメントによって前記オペレーティングシステムを使用して機能を実装するのに必要な特殊コードを動作させる特殊事項ではなく、使用する機能の前記タイプを前記アプリケーション開発者が理解することを求めることにより、前記装置の前記オペレーティングシステムの前記特殊事項に前記アプリケーション開発者が係わらないようにすることを特徴とする請求項1に記載の方法。
  21. 前記装置がコマンドインタプリータを動作させ、前記アプリケーション開発コンピュータがコマンド実行シェルを動作させることを特徴とする請求項9に記載の方法。
  22. 前記アプリケーション開発コンピュータがローカルポイントツーポイントIR、ブルートゥース、USB、WAN、LAN、SMSあるいはGPRS、あるいは以上の任意の組み合わせを介して前記装置に接続されることを特徴とする請求項9に記載の方法。
  23. モジュール化ソフトウエアエレメントが互いに連鎖され、複合機能を構築できることを特徴とする請求項1に記載の方法。
  24. 前記モジュール化ソフトウエアエレメントがアイデンティおよび関連する許可に関して前記装置上で動作することを特徴とする請求項1乃至23のいずれかに記載の方法。
  25. 前記アイデンティおよび関連する許可を提供し、制御する安全な許可を持つアイデンティサーバが存在することを特徴とする請求項24に記載の方法。
  26. 前記アイデンティサーバが前記装置に位置することを特徴とする請求項25に記載の方法。
  27. 請求項1から26の何れかに記載の方法を使用して開発されることを特徴とするソフトウエアアプリケーションプログラム。
  28. 遠隔アプリケーション開発コンピュータから起動あるいは制御されることを特徴とする請求項27に記載のソフトウエアアプリケーションプログラム。
  29. 安全な方法で前記遠隔アプリケーション開発コンピュータによりアクセスあるいは制御されることを特徴とする請求項28に記載のソフトウエアアプリケーションプログラム。
  30. 遠隔アプリケーション開発コンピュータからの開始あるいは制御がなくとも前記装置上で独立に動作することを特徴とする請求項27に記載のソフトウエアアプリケーションプログラム。
  31. 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法であって、モジュール化ソフトウエアエレメントをコールするステップを含み、エレメントのそれぞれが高水準言語プログラムを使用して、(a)前記無線モバイル機器により要求されるネットワーク化機能をカプセル化し、(b)標準インタフェース構造を共有し、(c)装置上で動作することを特徴とする方法。
  32. 前記高水準言語が、
    (a)コマンドラインインタフェースあるいは、
    (b)記述言語あるいは
    (c)コンパイル化言語
    であることを特徴とする請求項31に記載の方法。
  33. 請求項1から26の何れかに記載により特定される内容を更に含むことを特徴とする請求項31または32に記載の方法。
  34. 前記モジュール化ソフトウエアエレメントが前記モバイル機器のCPU上で動作することを特徴とする請求項1乃至33の何れかに記載の方法。
JP2006537444A 2003-11-06 2004-11-08 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法 Withdrawn JP2007510979A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0325882A GB0325882D0 (en) 2003-11-06 2003-11-06 Rapid networked-application development for mobile devices
GB0329520A GB0329520D0 (en) 2003-11-06 2003-12-19 A method and framework of rapid software application development on wireless mobile devices
PCT/GB2004/004702 WO2005045667A2 (en) 2003-11-06 2004-11-08 A method of rapid software application development for a wireless mobile device

Publications (1)

Publication Number Publication Date
JP2007510979A true JP2007510979A (ja) 2007-04-26

Family

ID=33542692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006537444A Withdrawn JP2007510979A (ja) 2003-11-06 2004-11-08 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法

Country Status (5)

Country Link
US (1) US20070220494A1 (ja)
EP (1) EP1692614A2 (ja)
JP (1) JP2007510979A (ja)
GB (1) GB2407893B (ja)
WO (1) WO2005045667A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011028985A2 (en) * 2009-09-03 2011-03-10 Moggle Inc. Parent playback
US8650621B2 (en) 2009-09-03 2014-02-11 Virtual Piggy, Inc. System and method for verifying the age of an internet user
US8762230B2 (en) 2011-11-02 2014-06-24 Virtual Piggy, Inc. System and method for virtual piggy bank wish-list
US8812395B2 (en) 2009-09-03 2014-08-19 Virtual Piggy, Inc. System and method for virtual piggybank
US9203845B2 (en) 2009-09-03 2015-12-01 Virtual Piggy, Inc. Parent match

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI122213B (fi) * 2004-09-28 2011-10-14 Capricode Oy Menetelmä ja laitejärjestely päätelaitteen käyttöprofiilin hallitsemiseksi
US8823636B2 (en) 2005-03-18 2014-09-02 The Invention Science Fund I, Llc Including environmental information in a manual expression
US8232979B2 (en) 2005-05-25 2012-07-31 The Invention Science Fund I, Llc Performing an action with respect to hand-formed expression
US7809215B2 (en) 2006-10-11 2010-10-05 The Invention Science Fund I, Llc Contextual information encoded in a formed expression
US8640959B2 (en) 2005-03-18 2014-02-04 The Invention Science Fund I, Llc Acquisition of a user expression and a context of the expression
US8340476B2 (en) 2005-03-18 2012-12-25 The Invention Science Fund I, Llc Electronic acquisition of a hand formed expression and a context of the expression
US8749480B2 (en) 2005-03-18 2014-06-10 The Invention Science Fund I, Llc Article having a writing portion and preformed identifiers
US8290313B2 (en) 2005-03-18 2012-10-16 The Invention Science Fund I, Llc Electronic acquisition of a hand formed expression and a context of the expression
US20060212430A1 (en) 2005-03-18 2006-09-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Outputting a saved hand-formed expression
US7826687B2 (en) 2005-03-18 2010-11-02 The Invention Science Fund I, Llc Including contextual information with a formed expression
US8229252B2 (en) 2005-03-18 2012-07-24 The Invention Science Fund I, Llc Electronic association of a user expression and a context of the expression
US8559987B1 (en) * 2005-12-31 2013-10-15 Blaze Mobile, Inc. Wireless bidirectional communications between a mobile device and associated secure element
WO2008012738A2 (en) * 2006-07-25 2008-01-31 Nxp B.V. Mobile device comprising an operating system emulator
US9451009B2 (en) * 2007-02-19 2016-09-20 Appcentral, Inc. Methods and system to create applications and distribute applications to a remote device
US8813041B2 (en) * 2008-02-14 2014-08-19 Yahoo! Inc. Efficient compression of applications
US11182175B2 (en) * 2008-09-18 2021-11-23 International Business Machines Corporation Apparatus and methods for workflow capture and display
US20100087214A1 (en) * 2008-10-07 2010-04-08 International Business Machines Corporation Asynchronous url notification
US8676942B2 (en) * 2008-11-21 2014-03-18 Microsoft Corporation Common configuration application programming interface
US8751612B2 (en) * 2008-11-21 2014-06-10 Microsoft Corporation Creating cross-technology configuration settings
US8615570B2 (en) * 2008-11-21 2013-12-24 Microsoft Corporation Unified storage for configuring multiple networking technologies
US8683046B2 (en) * 2008-11-21 2014-03-25 Microsoft Corporation Unified interface for configuring multiple networking technologies
BR112012004974A2 (pt) * 2009-09-03 2016-05-03 Virtual Piggy Inc sistema e método para cofrinho virtual
TWI402763B (zh) * 2010-01-20 2013-07-21 Mitake Information Corp 金融看盤軟體之價量統計價位標記顯示之裝置與方法
US20110191787A1 (en) * 2010-02-02 2011-08-04 Sun Microsystems, Inc. System and method for providing sensor data from embedded device to software development environment
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8479154B1 (en) 2010-08-20 2013-07-02 Google Inc. Interaction with partially constructed mobile device applications
WO2012048257A2 (en) 2010-10-08 2012-04-12 Lumi Technologies, Inc. Scalable synchronization of events among server and clients with varying lag-times
US20120117181A1 (en) * 2010-11-05 2012-05-10 Verizon Patent And Licensing, Inc. System for and method of providing mobile applications management
DE112011103880T5 (de) 2010-11-23 2013-08-22 International Business Machines Corporation Direktes Migrieren von Software-Abbildern mit Streaming-Technik
US8694954B2 (en) * 2010-11-29 2014-04-08 Norman Ortiz System and methods for mobile application development using mobile devices
JP5904505B2 (ja) 2010-12-09 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想ディスクを暗号化及び復号するためのコンピュータ可読ストレージ媒体
DE112011104356B4 (de) * 2010-12-13 2014-05-15 International Business Machines Corporation Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US8898630B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform
US8978006B2 (en) 2011-04-06 2015-03-10 Media Direct, Inc. Systems and methods for a mobile business application development and deployment platform
US9134964B2 (en) 2011-04-06 2015-09-15 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform
WO2012142263A2 (en) 2011-04-12 2012-10-18 Applied Science, Inc. Systems and methods for managing blood donations
US10496824B2 (en) 2011-06-24 2019-12-03 Microsoft Licensing Technology, LLC Trusted language runtime on a mobile platform
US9218164B2 (en) * 2011-09-26 2015-12-22 Norman Ortiz System and method for mobile application development using mobile devices
US20130091444A1 (en) * 2011-10-11 2013-04-11 Microsoft Corporation Automatic rendering of interactive user interface elements
JP5357340B1 (ja) * 2011-11-04 2013-12-04 株式会社メディアシーク アプリケーションソフトウェアを生成するシステム
US20130132933A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Automated compliance testing during application development
CN103049275B (zh) * 2013-01-05 2016-04-27 小米科技有限责任公司 一种处理操作指令的方法、装置和设备
US20140281886A1 (en) 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using website content
US9349365B2 (en) * 2013-03-14 2016-05-24 Accenture Global Services Limited Voice based automation testing for hands free module
US9772919B2 (en) * 2013-03-14 2017-09-26 Accenture Global Services Limited Automation of D-bus communication testing for bluetooth profiles
US9507609B2 (en) 2013-09-29 2016-11-29 Taplytics Inc. System and method for developing an application
CN103744787A (zh) * 2014-01-21 2014-04-23 上海斐讯数据通信技术有限公司 一种手机自动化测试方法
US9665473B2 (en) 2014-03-25 2017-05-30 Accenture Global Services Limited Smart tester application for testing other applications
KR102594025B1 (ko) 2014-05-30 2023-10-24 어플라이드 사이언스, 인코포레이티드 헌혈을 관리하기 위한 시스템들 및 방법들
FR3037686B1 (fr) * 2015-06-17 2017-06-02 Morpho Procede de deploiement d'une application dans un element securise
CN106250113A (zh) * 2016-07-18 2016-12-21 百富计算机技术(深圳)有限公司 一种应用开发平台
US10608889B2 (en) * 2018-06-29 2020-03-31 Hewlett Packard Enterprise Development Lp High-level interface to analytics engine
CN112988029B (zh) * 2019-12-17 2023-05-30 中标软件有限公司 一种登录界面启动软键盘的实现方法
CN111897526B (zh) * 2020-07-16 2024-02-13 重庆长安汽车股份有限公司 一种基于Polyworks的工件特征遥控检测方法
WO2023058027A1 (en) * 2021-10-10 2023-04-13 B.G. Negev Technologies And Applications Ltd., At Ben-Gurion University A computerized charging/interface device with application marketplace and ecosystem capabilities

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0888585A1 (en) * 1996-03-19 1999-01-07 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US6249886B1 (en) * 1997-10-17 2001-06-19 Ramsesh S. Kalkunte Computer system and computer implemented process for performing user-defined tests of a client-server system with run time compilation of test results
US6799320B1 (en) * 1998-12-16 2004-09-28 Microsoft Corporation Providing binding options for component interfaces
US7017116B2 (en) * 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
US6389560B1 (en) * 1999-01-19 2002-05-14 Sun Microsystems, Inc. Universal serial bus interpreter
WO2001065364A1 (en) * 2000-03-02 2001-09-07 Wind River Systems, Inc. System and method for common code generation
US6658653B1 (en) * 2000-06-08 2003-12-02 International Business Machines Corporation Debugging methods for heap misuse
US7418254B2 (en) * 2001-02-20 2008-08-26 Microsoft Corporation Mobile communication device dynamic service application and dynamic service application scripting
KR100422069B1 (ko) * 2001-07-25 2004-03-12 한국전자통신연구원 무선통신을 이용한 교차 개발 장치 및 그 방법
JP2005506631A (ja) * 2001-10-22 2005-03-03 インテュウェーブ リミテッド 資源が制約されたモバイル計算装置のソフトウェアプログラムを開発する方法。
WO2003065654A1 (en) * 2002-01-29 2003-08-07 Koninklijke Philips Electronics N.V. Internet protocol based wireless communication arrangements
US7536181B2 (en) * 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) Platform system for mobile terminals
US7669197B1 (en) * 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US8775649B2 (en) * 2002-11-26 2014-07-08 Oracle America, Inc. Optimizing client code through automated server specialization
DE10255474A1 (de) * 2002-11-28 2004-06-09 Philips Intellectual Property & Standards Gmbh Aufbau eines mobilen Endgeräts für unterschiedliche Kommunikationssysteme
GB0307805D0 (en) * 2003-04-04 2003-05-07 Intuwave Ltd A method of enabling source code to be used to generate a first and a second software application,each compatible with a different operating system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011028985A2 (en) * 2009-09-03 2011-03-10 Moggle Inc. Parent playback
WO2011028985A3 (en) * 2009-09-03 2011-06-30 Moggle Inc. Parent playback
US8650621B2 (en) 2009-09-03 2014-02-11 Virtual Piggy, Inc. System and method for verifying the age of an internet user
US8812395B2 (en) 2009-09-03 2014-08-19 Virtual Piggy, Inc. System and method for virtual piggybank
US9203845B2 (en) 2009-09-03 2015-12-01 Virtual Piggy, Inc. Parent match
US8762230B2 (en) 2011-11-02 2014-06-24 Virtual Piggy, Inc. System and method for virtual piggy bank wish-list

Also Published As

Publication number Publication date
US20070220494A1 (en) 2007-09-20
EP1692614A2 (en) 2006-08-23
WO2005045667A2 (en) 2005-05-19
GB2407893B (en) 2010-01-20
WO2005045667A3 (en) 2005-07-28
GB2407893A (en) 2005-05-11
GB0424655D0 (en) 2004-12-08

Similar Documents

Publication Publication Date Title
JP2007510979A (ja) 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法
US7152229B2 (en) Workflow code generator
US11762634B2 (en) Systems and methods for seamlessly integrating multiple products by using a common visual modeler
CA2604108C (en) System and method of representing data entities of standard device applications as built-in components
US6173438B1 (en) Embedded graphical programming system
CN102160037B (zh) 只需设计一次就能在任何平台应用的移动应用开发框架
US20050177816A1 (en) Automatic generation of graphical program code for a graphical program based on the target platform of the graphical program
US20050268285A1 (en) Object oriented GUI test automation
CN112162753A (zh) 软件部署方法、装置、计算机设备和存储介质
KR20030036736A (ko) 내장형 오퍼레이팅 시스템을 가진 디바이스를 위한 기능및 사용자 인터페이스를 형성하기 위한 방법 및 장치
CN111913889A (zh) 一种测试系统搭建方法及测试系统
Liu Platform-independent and tool-neutral test descriptions for automated software testing
CA2341114C (en) Data definition language
CN115113850A (zh) 一种跨平台应用的构建、运行方法、服务器、终端和系统
GB2400211A (en) A method of creating software that is portable across different operating systems
US20060205399A1 (en) Method for simulating communication functions of a mobile phone according to a markup language and related device thereof
Jaber et al. A high-level modeling language for the efficient design, implementation, and testing of Android applications
Fertitta et al. The state of interchangeability in ATE
Harty A Practical Guide to Testing Wireless Smartphone Applications
Adelmann et al. SPARK rapid prototyping environment–mobile phone development made easy
Kelly et al. Domain-specific modelling for cross-platform product families
Oliver First Steps in Retrofitting a Versatile Software Testing Infrastructure to Android
Botella et al. Achieving SCA Conformance Testing with Model-Based Testing
Hammond Specification and design of database client application for use on Java-based Symbian smartphones and PDA devices
EP4004659A1 (en) Abstraction of plc communication

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070517

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071101

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090309

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090319

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090319

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101124