JP4927830B2 - データ言語における変数の自動更新 - Google Patents

データ言語における変数の自動更新 Download PDF

Info

Publication number
JP4927830B2
JP4927830B2 JP2008514741A JP2008514741A JP4927830B2 JP 4927830 B2 JP4927830 B2 JP 4927830B2 JP 2008514741 A JP2008514741 A JP 2008514741A JP 2008514741 A JP2008514741 A JP 2008514741A JP 4927830 B2 JP4927830 B2 JP 4927830B2
Authority
JP
Japan
Prior art keywords
value
dynamic variable
dynamic
data language
variables
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.)
Expired - Fee Related
Application number
JP2008514741A
Other languages
English (en)
Other versions
JP2008546095A (ja
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008546095A publication Critical patent/JP2008546095A/ja
Application granted granted Critical
Publication of JP4927830B2 publication Critical patent/JP4927830B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、一般に、ソフトウェアアプリケーションの変数処理に関する。更に詳しくは、本発明は、データ言語における動的変数の処理に関する。
関連出願への相互参照
本願は、2005年5月31日に出願され、その全体が、参照によって本明細書に組み込まれている米国仮出願番号60/686,271の優先権を主張する。
データ言語は、プログラムに対してより普及した方法になっている。データ言語は、HTMLやTRIGML(登録商標)(カルコム社が保有)を含むXMLに基づくようなマークアップ言語を含む。データ言語は、ウェブベースのアプリケーションのプログラミングに広範に使用されるが、それに限定されない。XMLベースの言語を使用して実施される機能の例は、課金処理プログラムやトランザクション処理プログラムを含んでいる。
データ言語は、元々、解釈可能である。データ言語プログラムによってパスが生成され、例えば、そのプログラムで定義された要素を使用してウェブページが表示される。プログラムは、使用される要素の定義のみならず、これら要素がどのように表示されるかに関する要素の特徴をも定義しうる。これら言語はまた、ユーザインタフェースの生成に使用することもできる。
データ言語の使用においては、例えば、変数の取り扱いに困難性がある。XMLはもともと解釈可能であるので、一旦変数が設定されると、動的な変数は変更することができない。この問題を解決する幾つかの試みは、java(登録商標)スクリプトの使用を伴う。しかしながら、javaスクリプトは、コードが再実行されるまで変数を変えないので、何かがトリガをかけて、javaスクリプトを再実行させねばならない。自動的なトリガは存在しない。言い換えると、javaスクリプトを含むプログラムコードは、新たな変数値を決定するために再実行されねばならない。変数が動的であり変化するのであれば、javaスクリプトで使用される変数は、コードが再実行されるまで更新されないだろう。
データ言語を使用する際における別の困難さは、データ言語が、基礎をなすコンピュータ又はプロセッサプラットフォーム機能へのアクセスを許可しないことである。例えば、データ言語ディスプレイを、バッテリレベルを示すバッテリアイコンに使用したくても、データ言語には、プラットフォームに知られているようなバッテリレベルにアクセスするためのメカニズムが存在しない。Javaスクリプトは、コンピュータ/プラットフォーム機能にアクセスする能力を持っていないので、この問題を被る。
従って、動的変数を含む表式の評価を可能にする方法及び装置を提供するニーズが、当該技術にある。更に、コンピュータ/プラットフォームレベル機能へのアクセスを提供する方法及び装置を有するニーズがある。
本発明と一貫するシステム及び方法は、動的変数を評価し、コンピュータプラットフォームの基礎をなしている機能へアクセスするシステム、方法、及び装置を生み出すことによって、既存システムの欠点を克服する。
本発明の1つの実施形態では、データ言語で書かれ動的変数を有する表式が、動的変数を受け取り、動的変数の第1の値を決定し、この第1の値を用いて表式を評価し、動的変数に関連した変化を検知することによって評価される。動的変数に関連する第2の値を受け取り、この第2の値を用いて表式を評価した後、表式は、この表式を含む他のプログラムコードを再解釈することなく、第2の値を用いて評価される。
他の実施形態では、動的変数は、動的変数を含み、データ言語で書かれた命令を解析し、動的変数をメモリ内に生成し、動的変数の値を割り当て、動的変数を含み、データ言語で書かれた命令を解析することなく、動的変数の値を更新することによって更新される。この動的変数はまた、動的変数の値に関連付けられたオブジェクトを生成することによって更新される。このオブジェクトは、動的変数の値を決定する。更に、機能値を観察することが、動的変数に関連しており、この機能値が変化した場合、オブジェクトに通知がなされる。
また別の実施形態では、データ言語における動的変数を更新する装置は、動的変数に割り当てられたメモリ位置を備える。ここで、動的変数は、データ言語及びプロセッサ内の命令を解析することに応じてメモリ位置が割り当てられ、動的変数に対する更新値が評価される。
また別の実施形態では、コンピュータ読取可能媒体は、データ言語で書かれ、動的変数を更新するコンピュータ実行可能命令を含んでおり、この命令は、実行されると、動的変数を含み、データ言語で書かれた命令を解析することと、動的変数をメモリ内に生成することと、動的変数の値を割り当てることと、動的変数を含み、データ言語で書かれた命令を解析することなく、動的変数の値を更新することとを備える各ステップを実行する。
本発明の他の目的、利点、及び機能が、図面の簡単な説明、発明を実施するための最良の形態、及び特許請求の範囲の後に本明細書をレビューすることにより明らかになるであろう。
全体を通じて同一符号が同一要素を示す図を参照して説明する。
添付図面で例示されるような本発明の典型的かつ好適な実施形態に対する参照がより詳細になされる。ここでは、同一の参照符号が、幾つかの図面を通じて、同一又は対応する部位を指定している。本発明の特徴、目的、及び利点が、添付図面と関連付けられた以下の詳細記述を考慮した後に、当業者により明らかになるであろう。
用語に使用に関して、本明細書では、用語「無線デバイス」、「無線電話」、及び「モバイルデバイス」が置き換え可能に使用される。本明細書で使用される用語「アプリケーション」は、実行可能型及び実行不能型ソフトウェアファイル、生データ、集合データ、パッチ、コンテンツ、ユーザインタフェース及びユーザインタフェースコンポーネント、及びその他のコードセグメントを含むことが意図される。更に、同一参照符号は、幾つかの図面を通じて同一の要素を示し、冠詞"a"及び"the"は、別段の定めがない限り複数の参照を含む。
TrigMLは、ユーザインタフェースの開発に役立つデータ駆動(driven)言語である。TrigMLは、カルコム社によって所有されている製品である。XMLの下で定義されたデータ言語のように、TrigMLコードは、タグの使用を含んでいる。実施形態は、無線デバイス上のユーザインタフェース用のTrigMLに関して記述されているかもしれないが、これは説明目的のみのためであって、本発明の限定ではないことが認識されよう。本明細書に記載の装置及び方法はまた、非ユーザインタフェース環境、及び、上述したように、異なるデータ言語を用いる環境を用いる場合でも適用可能である。
図1は、本発明の実施形態においてデバイスが動作しうる通信環境100の機能ブロック図である。この例では、通信環境100は、無線ネットワーク122を含んでいる。無線ネットワーク122は、無線サービスプロバイダによって操作され、データ及び電気通信接続をモバイルデバイスに提供する通信ネットワークでありうる。更に、無線ネットワーク122はまた、有線ネットワーク、インターネット、広域ネットワーク、公衆電話交換網(PSTN)、及び、その他の大衆ネットワーク及び/又はプライベートネットワークをも含み、これによって、デバイスは、これらネットワークに接続された他のデバイスを用いて、直接的又は間接的に通信することができる。
一例では、無線ネットワーク122は、セルラ電話ネットワークを含みうる。幾つかのモバイルデバイスは、例えばセルラ電話112、ラップトップコンピュータ116、PDA118、及び、モバイルメッセージングデバイス120であり、無線ネットワーク122と通信する。これらデバイスは、無線ネットワーク122によって通信する多くのタイプのデバイスの例として示されているだけである。
アプリケーションサーバ124及びユーザインタフェースサーバ126が、図1に図示される。ユーザインタフェースサーバ126は、ユーザインタフェースコンポーネント130(より詳細に後述する)にサービス提供する計算デバイスである。これらユーザインタフェースコンポーネント130は、無線ネットワーク122に接続された他のデバイスにダウンロードされうる。ユーザインタフェースコンポーネントは、ユーザインタフェース(例えば、機能呼出し、メニュー、コンテンツ呼出のためのコード、スキン等)を与えるためのコード及び/又はデータを含んでいる。コンテンツサーバを含むその他の多くのサーバが、情報を配信するためにネットワークへの接続に使用されうることに注目されたい。利用可能となる情報のタイプは無限であり、極めて多くの異なる例が、当業者に明らかになるであろう。ユーザインタフェースサーバ126は、要求元のデバイスへ、無線ネットワーク122を介してユーザインタフェースコンポーネント130を提供するように構成されたサーバソフトウェアを含んでいる。
アプリケーションサーバ124は、無線ネットワーク122に接続された計算デバイス又はシステムであり、ソフトウェアアプリケーション128を、モバイルデバイスによるダウンロードのために利用可能にする。一般に述べられているように、アプリケーション128は、デバイス上での実行のため、無線ネットワーク122に接続された例えばセルラ電話112によってダウンロード可能である。この特定の実例では、アプリケーションダウンロードサーバ124によってサービス提供されるアプリケーション128のうちの少なくとも1つは、モバイルデバイスの少なくとも1つの実行のために構成されたコンテンツベースのアプリケーションである。このコンテンツベースのアプリケーション(クライアント)は、ユーザインタフェースを介してモバイルデバイスから表式するために、コンテンツサーバ(図示せず)からコンテンツを検索するように構成されている。
図2は、本発明の実施形態におけるサンプルモバイルデバイス201のコンポーネントを一般に例示する機能ブロック図である。モバイルデバイス201は、例えば、セルラ電話、パーソナルデジタルアシスタント、ハンドヘルド「パームトップ」デバイス、ラップトップコンピュータ、ポータブル音楽プレーヤ、グローバルポジショニング衛星(GPS)デバイス等のような計算機能を有する任意のデバイスでありうる。
モバイルデバイス201は、ソフトウェアアプリケーションの受信及び実行、並びにデータの表式が可能なコンピュータプラットフォーム250を有する。コンピュータプラットフォーム250は、例えば、特定用途向けIC「ASIC」、デジタル信号プロセッサ「DSP」、マイクロプロセッサ、マイクロコントローラ、論理回路、状態計算機、又は、その他のデータ処理デバイスのようなプロセッサ252を含んでいる。プロセッサ252は、モバイルデバイスのメモリ256内の幾つかの常駐プログラムとインタフェースするアプリケーションプログラミングインタフェース(API)レイヤ254を実行する。メモリ256は、ランダムアクセス又は読取専用メモリ(RAM又はROM)、EPROM、EEPROM、フラッシュメモリ、又は、コンピュータプラットフォームに一般的な任意のメモリを含むことができる。コンピュータプラットフォーム250は更に、例えばユーザインタフェースサーバ126(図1)からダウンロードしたソフトウェアアプリケーションやユーザインタフェースコンポーネントのように、メモリ256内で実際に使用されないソフトウェアアプリケーション、ファイル、又はデータを保持することができるローカルストレージ258を含む。このローカルストレージ258は、一般に、1又は複数のフラッシュメモリセルで構成されるが、例えば、磁気媒体、EPROM、EEPROM、光学媒体、テープ、又はソフトディスクやハードディスクのような任意の2次あるいは3次記憶デバイスにもなりうる。
コンピュータプラットフォーム250はまた、ユーザインタフェース(図示せず)を用いてデータを表示するためのソフトウェアアプリケーションによって使用されるディスプレイ260を含む。
図2に示すコンポーネントは、多くのタイプのモバイルデバイスに典型的であるが、その他のコンポーネントがモバイルデバイス201に追加されうること、及びある場合においては、図2に示す幾つかのコンポーネントがモバイルデバイス201から省略されうることが理解されよう。
図3は、本発明の実施形態において、サンプル計算デバイス301のコアコンポーネントを一般に例示する機能ブロック図である。計算デバイス301は、例えばデスクトップコンピュータかサーバのような任意の固定式計算デバイスでありえる。
この例では、計算デバイス301は、プロセッサユニット304、メモリ306、記憶媒体313、及びオーディオユニット331を含んでいる。プロセッサユニット304は、有利なことに、マイクロプロセッサ、又は、例えばデジタル信号プロセッサ(DSP)のような特別目的プロセッサを含むが、代替例では、任意の従来式のプロセッサ、コントローラ、マイクロコントローラ、又は状態計算機の形態でありうる。プロセッサユニット304は、メモリ306に接続されている。メモリ306は、プロセッサユニット304によって実行されるソフトウェア命令を保持するRAMメモリとして実装される。代替実施形態では、メモリ306は、ファームウェア又はフラッシュメモリから構成されうる。この実施形態では、メモリ306に格納されたソフトウェア命令は、オペレーティングシステム310や、例えばユーザインタフェース(図示せず)を用いるアプリケーションのような1又は複数のその他のアプリケーション312を含む。
モバイルデバイス301はまた、計算デバイス301と、例えばモバイルデバイスのような1又は複数のその他の計算デバイスとの間の双方向通信を可能にする通信モジュール321を含む。通信モジュール321は、例えば、セルラ電話ネットワーク、Bluetooth(登録商標)接続、無線ローカルエリアネットワーク、あるいは恐らくは無線広域ネットワークのような、RF通信又はその他の無線通信を可能にするコンポーネントを含む。あるいは、通信モジュール321は、例えば、イーサネット(登録商標)接続、RJ−11接続、ユニバーサルシリアルバス接続、IEEE 1394(Firewire)接続等のような陸線ネットワーク通信又はハードワイヤネットワーク通信を可能にするコンポーネントを含む。これらは、完全ではないリストであることが意図されており、その他多くの代替例が可能である。オーディオユニット331は、アナログフォーマットとデジタルフォーマットとの間で信号を変換するように構成されたモバイルデバイス301のコンポーネントである。オーディオユニット331は、モバイルデバイス301によって使用され、スピーカ332によって音が出力され、マクロフォン333から入力された信号が受け取られる。
図3は、多くの従来式の計算デバイスで一般に見られるあるコンポーネントのみを示している。特定の実装では、他の極めて多くのコンポーネントも見受けられ、ある場合においては、図3に示す幾つかのコンポーネントが省略されうる。しかしながら、図3に示す計算デバイス301は、今日一般的に見受けられる計算デバイスの典型である。
図4は、本発明の実施形態におけるデバイスのアプリケーションアーキテクチャを示す。このデバイスは、「コンピュータプラットフォーム」を含む。コンピュータプラットフォームは、ハードウェア、ソフトウェア、又はこれら両方を含むデバイスのコンポーネントを称する。例えば、それは、チップ、ユーザインタフェースハードウェア(例えば、ディスプレイ、入出力デバイス)、ライブラリ、サポートAPI、オペレーティングシステムへの追加拡張機能等を含むハードウェアコンポーネントに内在するオペレーティングシステムを含みうる。
1つの実施形態では、無線デバイスのアプリケーションアーキテクチャ400は、デバイスAPI405、BREW(登録商標)API410、BREW拡張機能415、Trigプレーヤ、アクタ425、及びTrig430を含む。デバイスAPI405は、例えば、特定のプロセッサ又はASIC機能、特定のデバイスハードウェア機能等のようなデバイスと特に関連している機能を扱うソフトウェアプラットフォームによって使用されるAPIを含む。
BREW API410は、カルコム社によって開発されたソフトウェアプラットフォームである。BREW API410は、デバイスのために特別に書かれる必要なく、デバイスAPI405及びその他の機能を呼び出す能力をアプリケーションに提供する。言い換えれば、それは、アプリケーションから、ハードウェアの特定の局面を抽出する。これによって、特別に作成する必要なく、多くのデバイスのためにアプリケーションを書くことが可能となるか、あるいは、アプリケーションが実行する具体的な各デバイスのために、ほんの少しの手直ししか必要としない。
BREW拡張機能415は、例えば、提供しているMP3プレーヤ、Javaバーチャルマシン等のようなBREWプラットフォームへ、追加機能を与える能力を提供する。
Trigプレーヤ420、Trig430、及びアクタ425は、カルコム社によって開発されたuiOne(登録商標)アーキテクチャのコンポーネントである。これらコンポーネントは一般に、デバイス400のユーザインタフェース局面を称する。1つの実施形態では、Trig430は、コンパイルされたTrigML(登録商標)、及び、デバイス400上にユーザインタフェースを与えるためにアプリケーションによって使用されるその他のリソース(メタデータ、テキストファイル、及びイメージを含む)である。ここでTriglet(図示せず)と称される多くのTrig430及びTrig最新版が、ユーザインタフェースのために使用されうる。
カルコム社によって所有されているTrigMLコードは、XMLに基づいたデータ言語であり、Trig430のオーサリングのためのユーザインタフェース表示言語のために使用され、とりわけ、モバイルをターゲットとした機能、インタラクティブユーザインタフェースイベントモデル、及び、ピクセルポジショニングの利点を含む。
アクタ425は、Trigを、下にあるデバイスAPI405及び/又はBREW API410に接続するための基礎をなしているCコードを含む。アクタ425はまた、入出力のために実行可能なものとして動作する。また、アクタは、下にあるデバイスAPI及びBREW APIに接続しているので、コンピュータプラットフォーム機能へのアクセスを有する。
Trigプレーヤ420は、図4では、分離されているが、BREW拡張機能415として実現することができる。Trigプレーヤは、Trig及びアクタを用いてユーザインタフェースを与えるために使用される。
図4の説明は、カルコム社のuiOneアーキテクチャ(コンパイルされたTrigML、Trigプレーヤ、BREW API等を含む)に関連するものであるが、これは説明目的であって、本発明は、その他のデータ言語、コンピュータ、ソフトウェアプラットフォーム、及びデバイスアーキテクチャを含むことが認識されるだろう。
図5は、本発明の実施形態において、Trigプレーヤ420、アクタ425、及びTrig430を示すアーキテクチャと、ユーザインタフェースコンポーネントを更新するシステムを例示するブロック図である。デバイス500は、Trigプレーヤ420、アクタ425、及びTrig430を含む。Trigは、TrigMLコード505、テキスト文字列510、イメージ515、及び、最新チャネル520(最新チャネルは、Triglet530を取得するためのURL及びタイミングスキームを定義する)を含む。Trigは、無線で更新される。これによって、デバイスは、製造者から既に出荷された後でもユーザインタフェースが更新される。サーバ525は、新たなTrig、及び/又は、Trigの最新版(例えば、Triglet530)をダウンロードするために使用される。これによって、デバイスのためにユーザインタフェースがカスタマイズされる。
図6は、本発明の実施形態における関連TrigMLコード、オブジェクト、及びアクタを例示するブロック図である。TrigMLコードは、一連のタグ(605−625)を用いて書かれる。これらタグは、プログラムコードの目的と関連する具体的なパラメータを実行及び定義するための動作を定義する。1つの実施形態では、TrigMLコードは、無線デバイス上での解析及び実行の前にコンパイルされる。
本発明の1つの実施形態では、TrigMLプログラムコードが実行のために解析された場合、オブジェクト(630−650)が、TrigMLコード内の要素(605−625)と関連付けられる。これらオブジェクトは、要素の表式を含んでいる。例えば、要素620は、3の長さを持つボックスを示す。この要素が評価される時、ボックス長さ=3の値を持つオブジェクト(645)が生成される。
プログラムコード内の表式に動的変数を含めることが望ましいかもしれない。例えば、無線デバイスのバッテリレベルに示すアイコンが望まれる場合、バッテリレベルが変化すると、ボックスの幅が変化すると仮定して、ボックスの幅を、バッテリが充電されたり消耗されると変化させ、現在のバッテリレベルを示すように更新することが望ましい。
この場合、要素“<ボックス幅=“バッテリ寿命/10”>”(645)は、バッテリに残っている電力量に依存して変化する動的変数“バッテリ寿命”を有する表式を含む。それは更に、バッテリ寿命値を10で除することによって、オブジェクトによって操作される。この表式は、動的変数とともに数、文字列、及び演算を用いることを含む単純又は複雑な演算を含みうることに注目されたい。
1つの実施形態では、動的変数を含む要素の表式の値を決定するためにオブジェクト640が生成される。更に、アクタ655が生成され、バッテリ寿命値を受け取るために使用される。このオブジェクト640は、表式を評価する際に、動的変数のためのアクタ内で示される値を用いるだろう。
デバイスでは、例えばAPIのような機能が、現在のバッテリ寿命をモニタして判定する(660)。この機能は、計算デバイスに対するコンピュータ又はプラットフォームレベルにおける機能を含むか、あるいは、他のAPI機能の他の機能、機能、あるいは、ローカルコンピュータ又は遠隔コンピュータに関連しているかローカル又は遠隔に実行されるタスクでありうる。当業者であれば、“バッテリ寿命”機能は、説明目的のみに使用され、任意の機能/APIが使用されることを認識するだろう。
バッテリ寿命機能660の値の変化をアクタ655に示すために、多くのパラダイムが使用される。例えば、アクタ655が存在することと、値に変化が生じてアクタ655に通知する時とがバッテリ寿命機能660に通知される、観察/通知パターンが実現されうる。このパラダイムを用いて、アクタ655はスタンバイし、変化が生じたとの表示をバッテリ寿命機能660から待つ。アクタ655は、変化の表示を受け取ると、オブジェクト640に通知し、オブジェクト640は、バッテリ機能660から値を取得することができる。オブジェクトは、その後、この新たな機能値を用いて、動的変数を含む表式を評価することができる。
別のパラダイムはポーリングを含んでいる。そこでは、アクタ655が、変化が生じたという表示に対してバッテリ寿命機能660を取得する。上述したような処理が進み、オブジェクトは機能値を取得し、表式を評価する。当業者に周知であり、本発明のスコープに含まれる他の例も存在する。
表式を表すオブジェクトが再評価された場合、新たな値が、TrigMLコードを書き込む目的のために使用される。また、動的変数は、頻繁に変化しうり、各変化においては、新たな値を決定するためには、表式に関連付けられたオブジェクトだけ再評価する必要があることに注目されたい。TrigMLコードは、再解析される必要はない。
図7は、本発明の実施形態において、動的表式を評価するプロセスを示すフローチャートである。まずこの方法は、動的変数を有する表式を受け取ることにより始まる(ステップ705)。この表式は、一般に、例えばXMLに基づくようなデータ言語フォーマットであることに留意されたい。しかしながら、他のデータ言語フォーマットも使用されうる。
また、動的変数は、変化しうる変数であり、動的変数に対するどの変化も、データ言語プログラムコードの初期解析の後であることが望まれる。更にそれは、コンピュータプラットフォームに関連付けられた機能に関連しうる。
次に、表式を評価するためにオブジェクトが生成される(ステップ710)。オブジェクトの使用は必ずしも必要ではなく、単に幾つかの要素のためにのみ必要かもしれない。必ずしもスカラ値あるいは数値ではないが、要素の意図の表示である値を、オブジェクトは含んでいる。
そしてアクタが生成される(ステップ715)。これは、動的変数の値を提供するのを支援する。あるいは、アクタは、既に存在しているかもしれない。そして、この既存のアクタは、機能値が変化したことをオブジェクトに通知するために使用される。アクタは、動的変数に関連した機能にリンクされる。アクタは、2つの機能を提供する(これら機能は、アクタに割り当てられる必要はなく、更なる機能を実行するかもしれない)。アクタによって、先ず、値のクエリ/取得/読み取り等がなされる。次に、アクタは、(本明細書で説明したパラダイムのうちの1つを用いて)機能における変化をオブジェクトへ示すためのメカニズムとして動作する。
そして、オブジェクトは、機能から機能値を取得する(ステップ720)。オブジェクトは、表式の評価を開始する(ステップ725)。次に、機能値に変化があるかが判定される(ステップ730)。これは、変化が生じたことをアクタに示す機能と、変化が生じたことをオブジェクトに示すアクタとによって、本明細書で説明したようにして行われる。
ステップ730において、機能値が変化した場合、“yes”のパスに従い、オブジェクトが、機能から新たな機能値を再取得し(ステップ735)、(動的変数に関連する)新たな機能値を用いてこの表式を評価する(ステップ745)。
ステップ730において、機能値が変化しない場合、“no”のパスに従い、本明細書で説明した例のうちの1つ、又は、当業者に周知の他の例を用いて、機能に変化がないかがモニタされる。
他の実施形態は、例えば、
Figure 0004927830
のようなBoolean表式に依存する「アクション」タグを更新することを含む。
ここで、与えられたBoolean表式が真である間、「アニメート」アニメーションタグが起動される。将来、いかなる時点においても、この表式が「偽」であることが判明した場合には、このアニメーションは停止される。
Boolean表示は、表式が真であることが判明した場合、すなわち、表式の任意のサブ要素が変化し、表式全体が真であることが判明した場合には、タグが(瞬間的に)起動されることを要求することにより、例えば
Figure 0004927830
のように、1度限りの「アクション」タグのためにも使用されうる。
この‘doload’アクションは、VFS node/res/errormsgが更新され、表式が真であると評価される毎に実行される。
表式は更に、例えば
Figure 0004927830
のようなリソースパス要素として組み込まれうる。
この実施形態では、3つの要素のリソースパスが、第1の要素のための文字列定数と、最終要素のための2つの表式とを用いて構築される。このリソースパスは、再現されるイメージの位置を示す。サブ表示のうちの何れかが変化するのであれば、リソースパスが自動的に再評価され、異なるイメージが表示されるかもしれない。
複雑な表式をXML属性に直接的に任意に埋め込むことによって、イベント又は組込式スクリプト言語を必要とすることなく、簡潔かつエレガントなマークアップを用いて、更新可能なUIを動的に生成することが可能となる。
上述した方法及びソフトウェア設計の説明はまた、RAM、又は、その他のメモリ記憶デバイスに格納された命令として、装置に実装することができる。本書で示されたプロセスは、例示的に示され、かつ、具体的な順番に従って連続して説明されているが、他の実施形態では、これらプロセスのステップは、異なる順番で、多くの回数で、及び/又は並列しても行われうる。更に、幾つかの実施形態では、幾つかのプロセスで説明した1又は複数のステップが、個別のステップとして、2〜3のステップに結合されて、又は、完全に省略されて実行されることもありうる。
上記開示は、本発明の例示的な実施形態を示す一方、特許請求の範囲によって定義したような本発明の精神及びスコープから逸脱することなく、記載された実施形態に対して様々な変形及び変更がなされることが注目されるべきである。更に、本発明の要素は、単数で記述又はクレイムされているかもしれないが、単数への限定が明示的に述べられていないのであれば、複数も考慮される。
図1は、本発明の実施形態においてデバイスが動作する通信環境の機能図である。 図2は、本発明の実施形態におけるサンプルモバイルデバイスのコンポーネントを一般に例示する機能ブロック図である。 図3は、本発明の実施形態におけるサンプル計算デバイスのコンポーネントを一般に例示する機能ブロック図である。 図4は、本発明の実施形態におけるコンピュータプラットフォームのアプリケーションアーキテクチャを図示するブロック図である。 図5は、本発明の実施形態におけるTrigプレーヤ(trigplayer)、アクタ(actor)、Trigを例示しており、アーキテクチャとユーザインタフェースコンポーネントとを更新するシステムを例示するブロック図である。 図6は、本発明の実施形態におけるTrigMLコード、オブジェクト、及びアクタの関係を例示するブロック図である。 図7は、本発明の実施形態における動的表式の評価のプロセスを示すフローチャートである。

Claims (6)

  1. 計算デバイスの記憶媒体に記憶されたデータ言語における動的変数を更新する方法であって、
    前記動的変数を含み、前記データ言語で書かれた命令を解析することと、
    前記動的変数を生成することと、
    前記動的変数の値を割り当てること、
    前記動的変数の値を決定する、前記動的変数の値に関連付けられたオブジェクトを生成することと、
    前記動的変数に関連付けられた機能値を観察することと、
    前記機能値が変化した場合、前記オブジェクトに通知することと、
    前記動的変数を含み、前記データ言語で書かれた命令を再解析することなく、前記変化した機能値に基づいて前記動的変数の値を更新することと、
    を備える方法。
  2. 前記動的変数の値を割り当てることは、ソフトウェアプラットフォームに関連する機能を評価することを備える請求項1に記載の方法。
  3. 前記動的変数は、式に含まれ、
    更に、前記更新された動的変数の値を用いて前記を更新することを備える請求項1に記載の方法。
  4. 計算デバイスの記憶媒体に記憶され、データ言語で書かれた動的変数を更新するコンピュータ実行可能命令を含むコンピュータ読取可能媒体であって、前記命令は、実行された場合、
    前記動的変数を含み、前記データ言語で書かれた命令を解析することと、
    前記動的変数を生成することと、
    前記動的変数の値を割り当てることと、
    前記動的変数の値を決定し、前記動的変数の値に関連付けられたオブジェクトを生成することと、
    前記動的変数に関連付けられた機能値を観察することと、
    前記機能値が変化した場合、前記オブジェクトに通知することと、
    前記動的変数を含み、前記データ言語で書かれた命令を再解析することなく、前記変化した機能値に基づいて前記動的変数の値を更新することと
    からなる各ステップを実行するコンピュータ読取可能媒体。
  5. 前記動的変数の値を割り当てることは、ソフトウェアプラットフォームに関連する機能を評価することを備える請求項4に記載のコンピュータ読取可能媒体。
  6. 計算デバイスの記憶媒体に記憶されたデータ言語における動的変数を更新する装置であって、
    前記動的変数を含み、前記データ言語で書かれた命令を解析する手段と、
    前記動的変数を生成する手段と、
    前記動的変数の値を割り当てる手段と、
    前記動的変数の値を決定する、前記動的変数の値に関連付けられたオブジェクトを生成する手段と、
    前記動的変数に関連付けられた機能値を観察する手段と、
    前記機能値が変化した場合、前記オブジェクトに通知する手段と、
    前記動的変数を含み、前記データ言語で書かれた命令を再解析することなく、前記変化した機能値に基づいて前記動的変数の値を更新する手段と
    を備える装置。
JP2008514741A 2005-05-31 2006-05-31 データ言語における変数の自動更新 Expired - Fee Related JP4927830B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US68627105P 2005-05-31 2005-05-31
US60/686,271 2005-05-31
PCT/US2006/020703 WO2006130537A1 (en) 2005-05-31 2006-05-31 Automatic updating of variables in a data language

Publications (2)

Publication Number Publication Date
JP2008546095A JP2008546095A (ja) 2008-12-18
JP4927830B2 true JP4927830B2 (ja) 2012-05-09

Family

ID=36821523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008514741A Expired - Fee Related JP4927830B2 (ja) 2005-05-31 2006-05-31 データ言語における変数の自動更新

Country Status (7)

Country Link
US (1) US7908595B2 (ja)
EP (1) EP1889157A1 (ja)
JP (1) JP4927830B2 (ja)
KR (1) KR100948472B1 (ja)
CN (1) CN101185062B (ja)
BR (1) BRPI0611320A2 (ja)
WO (1) WO2006130537A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313245B2 (en) * 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
CN105159679A (zh) * 2015-09-15 2015-12-16 北京国科世纪激光技术有限公司 视窗类软件的消息响应和处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101016A (ja) * 1999-06-25 2001-04-13 Sun Microsyst Inc スクリプト変数を自動的に同期化するためのメカニズム
JP2002108600A (ja) * 2000-10-02 2002-04-12 Digital Electronics Corp 制御システムの端末装置、記録媒体、および、制御システム
JP2003150440A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd 複数ユーザインタフェースの同期方法とそのシステム及びプログラム
JP2004178303A (ja) * 2002-11-27 2004-06-24 Digital Electronics Corp 表示装置、画面データ生成装置、および、そのプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US7165243B1 (en) * 1999-06-25 2007-01-16 Sun Microsystems, Inc. Multi-lingual tag extension mechanism
US20030189593A1 (en) * 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
US7096456B2 (en) * 2001-11-30 2006-08-22 Microsoft Corporation Method and apparatus for providing dynamically scoped variables within a statically scoped computer programming language

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101016A (ja) * 1999-06-25 2001-04-13 Sun Microsyst Inc スクリプト変数を自動的に同期化するためのメカニズム
JP2002108600A (ja) * 2000-10-02 2002-04-12 Digital Electronics Corp 制御システムの端末装置、記録媒体、および、制御システム
JP2003150440A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd 複数ユーザインタフェースの同期方法とそのシステム及びプログラム
JP2004178303A (ja) * 2002-11-27 2004-06-24 Digital Electronics Corp 表示装置、画面データ生成装置、および、そのプログラム

Also Published As

Publication number Publication date
JP2008546095A (ja) 2008-12-18
EP1889157A1 (en) 2008-02-20
KR20080017420A (ko) 2008-02-26
CN101185062A (zh) 2008-05-21
US20060271845A1 (en) 2006-11-30
US7908595B2 (en) 2011-03-15
KR100948472B1 (ko) 2010-03-17
WO2006130537A1 (en) 2006-12-07
BRPI0611320A2 (pt) 2010-08-31
WO2006130537B1 (en) 2007-02-01
CN101185062B (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
US10635728B2 (en) Manifest-driven loader for web pages
Meier Professional Android 4 application development
US8875098B2 (en) Workflow engine for execution of web mashups
US9703761B2 (en) Delayed code parsing for reduced startup latency
KR101025949B1 (ko) Xml 표현에서 z-order 엘리먼트들의 정밀립 제어
US20190303219A1 (en) Embedding an interface of one application into an interface of another application
US10554784B2 (en) Method and system for rendering content using templates
US20150113504A1 (en) Virtual hybrid application
US20140289761A1 (en) Systems and Methods of Processing Data Involving Presentation of Information on Android Devices
JP4927830B2 (ja) データ言語における変数の自動更新
US20050197157A1 (en) System enabling easy application development on mobile devices
JP5437322B2 (ja) データ言語中の複数の言語の管理
US20140304690A1 (en) Systems and Methods for Outputting an Application to Another Environment
CN109933334B (zh) 一种程序执行方法、装置、设备及介质
WO2023169212A1 (zh) 一种识别应用程序中sdk的方法、终端及服务器
Patel Profile manager-Android application
Manathkar SDSUHood
Albert et al. A REST Framework for Dynamic Client Environments
PUERTO DESIGN AND DEVELOPMENT OF A LOCATION AWARE

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4927830

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees