JP2015501993A - ウェブアプリケーションのための軽量フレームワーク - Google Patents

ウェブアプリケーションのための軽量フレームワーク Download PDF

Info

Publication number
JP2015501993A
JP2015501993A JP2014546194A JP2014546194A JP2015501993A JP 2015501993 A JP2015501993 A JP 2015501993A JP 2014546194 A JP2014546194 A JP 2014546194A JP 2014546194 A JP2014546194 A JP 2014546194A JP 2015501993 A JP2015501993 A JP 2015501993A
Authority
JP
Japan
Prior art keywords
call
control
data store
cloud platform
controls
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.)
Granted
Application number
JP2014546194A
Other languages
English (en)
Other versions
JP2015501993A5 (ja
JP6137505B2 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015501993A publication Critical patent/JP2015501993A/ja
Publication of JP2015501993A5 publication Critical patent/JP2015501993A5/ja
Application granted granted Critical
Publication of JP6137505B2 publication Critical patent/JP6137505B2/ja
Active 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing 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
    • G06F9/45512Command shells
    • 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/45529Embedded in an application, e.g. JavaScript in a Web browser

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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本願において説明される種々の技術は、スクリプト言語ベースのフレームワークを用いてウェブアプリケーションを開発することに属する。呼び出しを、スクリプト言語ベースのフレームワークのインタフェースを介して受けることができる。上記呼び出しは、スクリプト言語ベースのフレームワークに含まれるコントロールを管理することができる。さらに、上記呼び出しは、スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供されることができる。その上、ユーザインタフェースを、上記呼び出しにより管理されたコントロールに基づいて生成することができ、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスに、上記呼び出しにより管理されたコントロールに基づいてアクセスすることができる。

Description

本明細書において説明される種々の技術は、スクリプト言語ベースのフレームワークを用いてウェブアプリケーションを開発することに属する。
ウェブアプリケーションは、インターネットなどのネットワークを介してアクセスすることができるアプリケーションである。ウェブアプリケーションは、クライアント側のウェブブラウザ又はクライアント装置上の別のアプリケーション(例えば、モバイルアプリケーション、デスクトップアプリケーションなど)を通じてアクセス及び利用することができる、ブラウザによりサポートされる言語(例えば、マークアップ言語と組み合わせられたスクリプト言語)で、コード化することができる。ウェブアプリケーションは、ウェブブラウザが至る所に存在することとウェブブラウザをクライアントとして利用することの便利さとに起因して、ますます一般的になってきている。さらに、ウェブアプリケーションの需要は、集中型のアプリケーション市場の成長につながっている。
近年、クラウドコンピューティングが、より普及してきている。それに応じて、ウェブアプリケーションは、クラウドプラットフォーム上に構築することができ、クラウドプラットフォームにおいて、ウェブアプリケーションは、クラウドの中で動作することができ、かつ/あるいはクラウドにより提供されるバックエンドサービスを使用することができる。クラウドプラットフォームに構築されるアプリケーションの従来型の開発は、一般に、種々のクラウドプラットフォーム固有情報(例えば、プロトコル、データ構造など)の理解を有するウェブプログラマを参加させて、クラウドからデータを読み出す、クラウドにデータを書き込む、他のバックエンドサービスを利用する、などを行う。クラウドプラットフォーム上にアプリケーションを開発することに関連するこうした複雑さに加えて、従来型の開発は、しばしば、時間がかかる場合がある。集中型のアプリケーション市場の成長とともに、ウェブプログラマは、モバイル装置及びウェブブラウザで動作する強力なアプリケーションをより少ない時間で書く方法をますます期待している。
スクリプト言語ベースのフレームワークを用いてウェブアプリケーションを開発することに属する種々の技術が、本明細書において説明される。スクリプト言語ベースのフレームワークのインタフェースを、公開する(exposed)ことができる。さらに、呼び出しを、スクリプト言語ベースのフレームワークのインタフェースを介して受けることができる。上記呼び出しは、スクリプト言語ベースのフレームワークに含まれるコントロールを管理することができる。さらに、上記呼び出しは、スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供されることができる。その上、ユーザインタフェースを、上記呼び出しにより管理されたコントロールに基づいて生成することができ、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスに、上記呼び出しにより管理されたコントロールに基づいてアクセスすることができる。
スクリプト言語ベースのフレームワークは、一式のコントロールを含むことができ、上記一式のコントロールは、バックエンドのクラウドベースのサービスにアクセスし、かつ、有効にされたときにユーザインタフェースを生成するように、予めプログラムされる。一例に従い、スクリプト言語ベースのフレームワークに含まれるコントロールのうち1又は複数に対して有効にする、無効にする、属性の値を設定する、などするための呼び出しを提供するアプリケーションを、開発することができる。例えば、上記呼び出しは、アプリケーションに含まれるスクリプト言語コードから生成することができる。したがって、こうした機能性を実行するためにアプリケーションにカスタムコードを含むのではなく、スクリプト言語ベースのフレームワークに包含された機能性を用いる(例えば、上記一式のコントロールを管理することによる)アプリケーションを、開発することができる。
種々の実施形態において、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスには、分散型データストアにデータを書き込むこと、分散型データストアからデータを読み出すこと、分散型データストアに保有されているデータを検索すること、分散型データストアの中のデータをインデックス化すること(indexing)などのうち1又は複数を含むことができる。さらに、又は別法として、1又は複数のサードパーティサービスに、クラウドプラットフォーム上の分散型データストアを介して、及び/又はスクリプト言語ベースのフレームワークから直接的に、アクセス可能とすることができる。
上記の要約は、本明細書において論じられるシステム及び/又は方法のいくつかの態様の基本的理解を与えるための簡素化された要約を提示する。この要約は、本明細書において論じられるシステム及び/又は方法の広範囲に及ぶ概観ではない。上記要約は、重要な/必須の要素を識別すること、あるいはこうしたシステム及び/又は方法の範囲を詳述することを、意図するものではない。上記要約の唯一の目的は、後から提示されるより詳細な説明に対する前置きとして簡素化された形式でいくつかの概念を提示することである。
ウェブアプリケーションの開発を容易にする例示的なシステムの機能的ブロック図を示す。 サードパーティサービスを用いるウェブアプリケーションの開発を容易にする例示的なシステムの機能的ブロック図を示す。 スクリプト言語ベースのフレームワークを用いてアプリケーションを開発するための例示的なシステムの機能的ブロック図を示す。 ウェブアプリケーションを開発するための例示的な方法論を示すフロー図である。 ウェブアプリケーションを開発するための別の例示的な方法論を示すフロー図である。 例示的なコンピューティング装置を示す。
次に、図面を参照して、軽量の、クライアント側のフレームワークを用いるウェブアプリケーションを開発することに属する種々の技術を説明する。図面において、全体にわたって、同様の参照番号を用いて同様の要素を参照する。下記記載において、説明の目的で、多くの特定の詳細が、1又は複数の態様への十分な理解を与えるために説明される。しかしながら、こうした態様(群)は上記の特定の詳細を用いずに実施され得ることが、明らかであろう。他の例において、周知の構造及び装置が、1又は複数の態様を説明することを容易にするために、ブロック図形式で示される。さらに、ある特定のシステムコンポーネントにより実行されるものとして説明される機能性は、複数コンポーネントにより実行することができることを、理解されたい。同様にして、例えば、あるコンポーネントは、複数コンポーネントにより実行されるものとして説明される機能性を実行するように構成することができる。
さらに、「又は」という用語は、排他的な「又は」ではなくて包括的な「又は」を意味するものである。すなわち、他に指定のない、又は文脈から明らでない限り、「XはA又はBを用いる」は、自然な包含的順列のいずれかを意味するものである。すなわち、「XはA又はBを用いる」という表現は、次の例、すなわち、XがAを用いる、XがBを用いる、あるいはXがA及びBの双方を用いるのうち、いずれの下でも満たされる。加えて、本願及び添付の請求項において使用される冠詞「1つの(“a”、“an”)」は、概して、他に指定のない限り又は単数形を対象とすることが文脈から明らかでない限り、「1又は複数の」を意味するものとして解釈されるべきである。
本明細書において説明されるとおり、軽量フレームワークは、ウェブプログラマによる迅速なウェブアプリケーション開発を容易にすることができる。本明細書において説明される軽量フレームワークは、スクリプト言語ベースのフレームワークとすることができる。その上、軽量フレームワークは、装置互換のユーザインタフェース作成を可能にし、かつ、クラウドプラットフォーム上の分散型データストアに保有されているデータ、及び/又はクラウドプラットフォーム上の分散型データストアにより提供される若しくは上記分散型データストアを介して利用可能なバックエンドのクラウドベースのサービスに、アクセスすることができる。対称的に、ウェブアプリケーション開発のために使用される従来型のフレームワークは、しばしば、データアクセスをサポートすることなくユーザインタフェース作成をサポートする。それに応じて、従来型のウェブアプリケーション開発において、ウェブプログラマは、しばしば、クラウドからデータを読み出し、クラウドにデータを書き込み、又は他のバックエンドのクラウドベースのサービスを用いるウェブアプリケーションを開発するために、クラウド技術、データ構造、プロトコルなどの知識を有することを必要とする。
次に、図面を参照し、図1が、ウェブアプリケーションを開発することを容易にするシステム100を示す。システム100は、スクリプト言語ベースのフレームワーク102を含み、スクリプト言語ベースのフレームワーク102は、例示的な実施形態において、クライアント側のフレームワークである。例えば、スクリプト言語ベースのフレームワーク102は、機能豊富な、軽量フレームワークとすることができる。その上、スクリプト言語ベースのフレームワーク102は、アプリケーション開発中に行われる一般的なアクティビティに関連するオーバーヘッドを軽減することによって、ウェブアプリケーションの開発をサポートすることができる。したがって、上記のアクティビティに関連する機能性はスクリプト言語ベースのフレームワーク102に包含することができるため、ウェブプログラマは、アプリケーション開発中に上記のような共通のアクティビティを行う必要がなく、代わって、ウェブプログラマは、スクリプト言語ベースのフレームワーク102により供給される機能性を使用するアプリケーションを作成することができる。
ウェブアプリケーションを開発することには、通常は、一式のユーザインタフェースを構築すること、及びバックエンドシステムへのデータアクセスを構築すること(及び/又は、バックエンドシステムを構築すること)を含む。ユーザインタフェースは、種々の形式の入力をユーザから収集することができ、バックエンドシステムの仕様に合うように上記入力を処理することができる。その上、ユーザインタフェースは、ユーザに出力を提示することができる。スクリプト言語ベースのフレームワーク102は、ウェブプログラマが基本的なスクリプト言語コード及び/又はマークアップ言語コードを用いてバックエンドシステムへのデータアクセスとユーザインタフェースの作成との双方を管理することを可能にすることによって、ウェブアプリケーションの開発を簡素化する。例えば、スクリプト言語は、JavaScript(登録商標)とすることができる。マークアップ言語の一例を、HTMLとすることができる。しかしながら、特許請求される対象事項は前述の例に限定されないことを、十分理解されたい。
スクリプト言語ベースのフレームワーク102は、データアクセスコンポーネント104とユーザインタフェース(UI)作成コンポーネント106とを含む。データアクセスコンポーネント104は、クラウドベースのバックエンドシステムを組み込む。具体的には、データアクセスコンポーネント104は、クラウドプラットフォーム110上の分散型データストア108により提供されるバックエンドのクラウドベースのサービスにアクセスすることができる。例えば、データアクセスコンポーネント104は、分散型データストア108からデータを読み出すこと、分散型データストア108にデータを書き込むこと、分散型データストア108により抽象化されたサードパーティのバックエンドのクラウドベースのサービス(群)を用いることなどができる。データアクセスコンポーネント104は、分散型データストア108を自動的に使用するように設計することができる。したがって、ウェブプログラマにより開発されるウェブアプリケーションは、ウェブプログラマが分散型データストア108により提供されるバックエンドのクラウドベースのサービスへのアクセスを組み込む必要なく、分散型データストア108を自動的に使用することができる。
その上、UI作成コンポーネント106は、一式のユーザインタフェースを生成することができる。UI作成コンポーネント106は、種々の形式の入力をユーザから収集することができ、かつバックエンドシステムの仕様に合うように上記入力を処理することができる、ユーザインタフェースを生成することができる。さらに、UI作成コンポーネント106は、ユーザに出力を提示することができるユーザインタフェースを生成することができる。
さらに、スクリプト言語ベースのフレームワーク102は、一式のコントロール112を含む。一例に従い、スクリプト言語ベースのフレームワーク102は、コントロール112を含む1又は複数のスクリプト言語ライブラリを含むことができる。コントロール112は、ユーザインタフェースを作成するためのUI作成コンポーネント106と、クラウドプラットフォーム110上の分散型データスストア108により提供されるバックエンドのクラウドベースのサービスにアクセスするためのデータアクセスコンポーネント104とによって、活用することができる。1つの例解に従い、コントロール112の中から所与のコントロールが有効にされたとき、UI作成コンポーネント106は上記所与のコントロールに基づいてユーザインタフェースを生成することができ、データアクセスコンポーネントは上記所与のコントロールに基づいてクラウドプラットフォーム110上の分散型データストア108により提供されるバックエンドのクラウドベースのサービスにアクセスすることができる。したがって、ウェブプログラマが所与のコントロールの機能性を提供するためにカスタムコードを書くこととは対照的に、上記所与のコントロールをウェブプログラマが活用することができる。
スクリプト言語ベースのフレームワーク102は、さらに、インタフェースコンポーネント114を含む。インタフェースコンポーネント114は、アプリケーション116(例えば、ウェブアプリケーション)のためのスクリプト言語インタフェースとすることができ、ここで、アプリケーション116は、スクリプト言語コード及び/又はマークアップ言語コードを含むことができる。アプリケーション116は、インタフェースコンポーネント114を介してスクリプト言語ベースのフレームワーク102を参照して、スクリプト言語ベースのフレームワーク102に包含された機能性を用いることができる。その上、アプリケーション116は、インタフェースコンポーネント114を介して、スクリプト言語ベースのフレームワーク102に呼び出し(群)を提供することができる。例えば、呼び出し(群)は、コントロール112のうち1又は複数を管理することができる(例えば、ある呼び出しが、コントロール112の中からあるコントロールを管理することができる)。一例に従い、呼び出しは、アプリケーション116に含まれたスクリプト言語コードから生成することができ、したがって、アプリケーション116は、コントロール112のうち1又は複数を管理する1又は複数の呼び出しを生成することができるスクリプト言語コードを含むことができる。ここで、上記1又は複数の呼び出しは、インタフェースコンポーネント114を介してスクリプト言語ベースのフレームワーク102に提供されることができる。
スクリプト言語ベースのフレームワーク102の中のコントロール112は、アプリケーション116に含まれるスクリプト言語コードに基づいて(例えば、インタフェースコンポーネント114を介してアプリケーション116により提供される呼び出し(群)に応答して)、有効又は無効にすることができる。その上、コントロール112は、(例えば、インタフェースコンポーネント114を介してアプリケーション116により提供される呼び出し(群)に応答して)アプリケーション116の中のスクリプト言語コードにより管理されることができる属性及び効果を有することができる。一例に従い、コントロール112のうち1又は複数は、アプリケーション116の中のスクリプト言語コードに基づいて、動的に様式化することができる。別の例として、コントロール112のうち1又は複数は、アプリケーション116の中のスクリプト言語コードに応答して設定されることができる広範な属性を有することができる。
スクリプト言語ベースのフレームワーク102は、ウェブプログラマが、アプリケーション116を開発するときに使用することができる。スクリプト言語ベースのフレームワーク102は、データアクセス(例えば、データアクセスコンポーネント104を介して)とユーザインタフェース生成(例えば、UI作成コンポーネント106を介して)とに関する機能性を提供する。それに応じて、スクリプト言語ベースのフレームワーク102の使用は、ウェブプログラマがアプリケーション116を開発するときに費やす時間の量を、削減することができる。したがって、スクリプト言語ベースのフレームワーク102は、アプリケーション116のウェブプログラマの、スクリプト言語コード及び/又はマークアップ言語コードを用いてデータアクセスとユーザインタフェース作成とを管理する能力を、改善することができる。
データアクセスコンポーネント104は、クラウドプラットフォーム110上の分散型データストア108に直接的にアクセスすることができる。それに応じて、ウェブプログラマは、シンプルなスクリプト言語コード及び/又はマークアップ言語コードを用いて、分散型データストア108に対して読み出し及び/又は書き込みをするアプリケーション116を生成することができる。ウェブプログラマは、クラウド技術、データ構造、プロトコル、及び類似のものの知識を有することなく、アプリケーション116を作成することができる。むしろ、アプリケーション116は、コントロール112のうち1又は複数を管理する(例えば、有効にする、無効にする、属性又は効果の値を設定する、様式化するなど)ことができ、アプリケーション116により管理されたコントロール112のうち1又は複数に基づいて、データアクセスコンポーネント104は、クラウドプラットフォーム110上の分散型データストア108に直接的にアクセスすることができる。
分散型データストア108は、クラウドプラットフォーム110上に構築される。分散型データストア108は、クラウドプラットフォーム110上の、十分に拡大縮小可能な、複製されたデータストアとすることができる。例示的な実施形態において、分散型データストア108は、NoSQLストアとすることができる。さらに、分散型データストア108は、検索コンポーネント118及びインデックス化コンポーネント120の上に構築することができる。検索コンポーネント118は、フルのテキスト検索及び/又は画像検索を提供する検索エンジンとすることができる。クラウドプラットフォーム110は、さらに、検索コンポーネント118とインデックス化コンポーネント120とに対する追加又は代替として、他のバックエンドサービスを提供することができる。したがって、一例に従い、データアクセスコンポーネント104は、検索コンポーネント118を用いて分散型データストア108の中のデータを検索すること、インデックス化コンポーネント120を用いて分散型データストア108の中のデータをインデックス化することなどができる。
クラウドプラットフォーム110上の分散型データストア108は、一式のアプリケーション・プログラミング・インタフェース(APIs)122を通じて公開される。API122は、RESTfulな(表現的状態転送(representational state transfer))APIとすることができる。さらに、API122は、スクリプト言語ベースのフレームワーク102に包含することができる。例えば、データアクセスコンポーネント104は、API122を用いて分散型データストア108にアクセスすることができる。それに応じて、スクリプト言語ベースのフレームワーク102は、ウェブプログラマがAPI122をどのように活用すべきかを学習する必要がないように、API122を抽象化することができる。むしろ、インタフェースコンポーネント114は、アプリケーション116を開発するためにウェブプログラマが用いることができる簡素なスクリプト言語インタフェースを公開することができる。例として、スクリプト言語ベースのフレームワーク102において利用可能なコントロール112は、インタフェースコンポーネント114を介して公開することができる。
その上、一式のサードパーティサービスを、分散型データストア108に包含することができる。上記一式のサードパーティサービスは、すなわち、サードパーティサービス1の(参照番号)124からサードパーティサービスNの(参照番号)126までであり、ここで、Nは、実質的に任意の整数とすることができる(本明細書において集合的にサードパーティサービス124〜126と呼ぶ)。それに応じて、分散型データストア108は、サードパーティサービス124〜126のAPIへのアクセスを提供することができる。したがって、データアクセスコンポーネント104は、クラウドプラットフォーム110上の分散型データストア108を介してサードパーティサービス124〜126(例えば、サードパーティのバックエンドのクラウドベースのサービス)にアクセスすることができる。サードパーティサービス124〜126の例には、ウェブ検索サービス、画像検索サービス、ビデオ検索サービス、ソーシャルネットワーキングサービス、マイクロブログ(microblogging)サービス、地図作成(mapping)サービス、半構造化(semi-structured)データベース検索サービス、認証サービス、クラウドプラットフォームサービスなどを含むことができる。しかしながら、特許請求される対象事項は前述のサードパーティサービス124〜126の例に限定されないことと、むしろ、いかなるサードパーティサービスも本願に添付の請求項の範囲に入ることが意図されることとを、十分理解されたい。
さらに、アプリケーション116は、開発を完了すると、ウェブホスティングサービス(図示せず)にアップロードすることができる。アプリケーション116は、スクリプト言語コード及び/又はマークアップ言語コードで書くことができるので、アプリケーション116は、例えば、実質的に任意のウェブサイトに埋め込むこと又はアップロードすることができる。アプリケーション116は、利用可能になると、実行のためにクライアント装置(図示せず)のウェブブラウザに読み出すこと又はロードすることができる。さらに、アプリケーション116は、現代のデスクトップ、ラップトップ及びモバイルのブラウザを介して動作することができるように、クライアント装置に依存しない(agnostic)ものとすることができる。
下記例解は、クラウドベースのデータストアの中にアドレス帳を維持するアプリケーションを開発する従来型の手法を論証するものである。ウェブプログラマは、最初に、データオブジェクトとデータオブジェクト間の関係と(例えば、人々、人々が属する組織など)を定義することができる。その後、ウェブプログラマは、一式のユーザインタフェースを構築することができる。一例に従い、ウェブプログラマは、連絡先を作成するためのユーザインタフェース、上記連絡先を他の連絡先と関連付けるためのユーザインタフェース、連絡先を更新するためのユーザインタフェース、連絡先を削除するためのユーザインタフェース、連絡先にわたって検索するためのユーザインタフェースなどを構築することができる。ユーザインタフェースを開発し、データオブジェクトを定義すると、ウェブプログラマは、一式のバックエンドサービス(例えば、バックエンドのクラウドベースのサービス)を構築すること、及び/又は一式のバックエンドサービスにアクセスするシステムを構築することができる。バックエンドサービスの例には、クラウドベースのデータストアにデータを書き込むサービス、クラウドベースのデータストアからデータを読み出すサービス、クラウドベースのデータストアに保有されているデータにわたって検索するサービス、クラウドベースのデータストアの中のデータを編集するサービス、クラウドベースのデータストアからデータを削除するサービスなどを含むことができる。前述の手法は、ウェブプログラマにとって時間のかかるものとなるおそれがある。その上、こうした開発は、種々のプロトコル、データ構造などについてのかなりの理解を伴う場合がある。
対照的に、スクリプト言語ベースのフレームワーク102は、クラウドプラットフォーム110上の分散型データストア108に組み込まれる。その上、スクリプト言語ベースのフレームワーク102は、アプリケーション116に含まれるスクリプト言語コードの機能として管理されることができる一式のコントロール112を含む。さらに、コントロール112は、クラウドベースのバックエンドシステム(例えば、クラウドプラットフォーム110上の分散型データストア108)にアクセスするように、スクリプト言語ベースのフレームワーク102の内部に予めプログラムされることができる。したがって、ウェブプログラマが広範なバックエンドプログラミングをユーザインタフェース開発と同様に行わなければならないことに代わって、ウェブプログラマは、スクリプト言語コード及び/又はマークアップ言語コードを書いてスクリプト言語ベースのフレームワーク102のコントロール112を管理することができ、コントロール112は、クラウドプラットフォーム110上の分散型データストア108の豊富なバックエンドに組み込まれる。
次に、図2を参照し、サードパーティサービスを用いるウェブアプリケーションを開発することを容易にするシステム200を示す。システム200は、スクリプト言語ベースのフレームワーク102を含み、システム200はさらに、データアクセスコンポーネント104、UI作成コンポーネント106、一式のコントロール112、及びインタフェースコンポーネント114を備えることができる。上記で説明されたとおり、データアクセスコンポーネント104は、API122を介してクラウドプラットフォーム110上の分散型データストア108に直接的にアクセスすることができる。
その上、1又は複数のサードパーティサービスを、スクリプト言語ベースのフレームワーク102に直接的に組み込むことができる。したがって、サードパーティサービス1の(参照番号)202からサードパーティサービスMの(参照番号)204まで(本明細書において集合的にサードパーティサービス202〜204と呼ぶ)のAPIを、スクリプト言語ベースのフレームワーク102のデータアクセスコンポーネント104に対して公開することができる。ここで、Mは、実質的に任意の整数とすることができる。スクリプト言語ベースのフレームワーク102は、サードパーティサービス202〜204のAPIを抽象化することができる。それに応じて、アプリケーション116は、コントロール112のうち1又は複数を管理するスクリプト言語コードを含むことができ、ここで、コントロール112は、アプリケーション116のウェブプログラマが1又は複数のサードパーティサービス202〜204のAPIについてのデータ構造、プロトコルなどの知識を有する必要なく、データアクセスコンポーネント104にサードパーティサービス202〜204のうち1又は複数を用いさせることができる。したがって、上記の組み込みがスクリプト言語ベースのフレームワーク102に包含されているため、ウェブプログラマは、アプリケーション116を開発するときに1又は複数のサードパーティサービス202〜204にアクセスするコードを書く必要がなくなる。
サードパーティサービス202〜204の例には、ウェブ検索サービス、画像検索サービス、ビデオ検索サービス、ソーシャルネットワーキングサービス、マイクロブログサービス、地図作成サービス、半構造化データベース検索サービス、認証サービス、クラウドプラットフォームサービスなどを含むことができる。しかしながら、特許請求される対象事項は前述のサードパーティサービス202〜204の例に限定されない。一例に従い、サードパーティサービスは、分散型データストア108とデータアクセスコンポーネント104との双方に組み込まれることができる(例えば、サードパーティサービスは、サードパーティサービス124〜126のうちの1つとサードパーティサービス202〜204のうちの1つとすることができる)。さらに、又は別法として、サードパーティサービスは、分散型データストア108又はデータアクセスコンポーネント104のいずれかに組み込まれることができる(例えば、サードパーティサービスは、サードパーティサービス124〜126のうちの1つ、又はサードパーティサービス202〜204のうちの1つとすることができる)。
例として、クライアント装置(例えば、アプリケーション116を実行している装置)のインターネットプロトコル(IP)アドレスが、(例えば、上記IPアドレスに関連するコンテンツを返すために)サードパーティサービスに提供されることになるとき、コントロール(例えば、コントロール112の中の)は、データアクセスコンポーネント104に、IPアドレスをサードパーティサービスに間接的に渡すのではなく、IPアドレスをサードパーティサービスに直接的に供給させることができる。したがって、データアクセスコンポーネント104は、クラウドプラットフォーム110上の分散型データストア108を介してアクセス可能なサードパーティ124〜126のうち1又は複数にIPアドレスを送信するのではなく、データアクセスコンポーネント104に直接的に組み込まれたサードパーティ202〜204のうち1又は複数にIPアドレスを送信することができる。
次に、図3を参照し、スクリプト言語ベースのフレームワーク102を用いてアプリケーション116を開発するためのシステム300を示す。スクリプト言語ベースのフレームワーク102は、クラウドベースのバックエンドシステム(群)(例えば、図1のクラウドプラットフォーム110上の分散型データストア108、図2のサードパーティサービス202〜204など)にアクセスすることができるデータアクセスコンポーネント104と、ユーザインタフェースを生成するUI作成コンポーネント106と、アプリケーション116とインタフェースをとることができるインタフェースコンポーネント114とを含む。
その上、スクリプト言語ベースのフレームワーク102は、コントロール112を含む。コントロール112は、例えば、モデル・ビュー・コントローラ(MVC)モデルに基づくことができる。コントロール112は、アプリケーション116に含まれたスクリプト言語コードの機能として、有効にすること又は無効にすることができる。例えば、コントロール112のうち1又は複数がアプリケーション116において有効にされるとき、有効にされたコントロール(群)112は、UI作成コンポーネント106にユーザインタフェース(群)を生成させることができる。さらに、コントロール112は、コントロール112に適用することができる広範な属性及び効果を有することができる。1つの例解に従い、コントロール112のうち1又は複数は、アプリケーション116に含まれたスクリプト言語コードに基づいて様式化することができる。例えば、コントロール112のうち1又は複数をアプリケーション116が管理して、UI作成コンポーネント106に、クライアント装置のディスプレイにレンダリングされるユーザインタフェース(群)をアニメ化させることができる。見込まれるアニメーションを、スクリプト言語ベースのフレームワーク102に含まれるコントロール112に組み込むことができる。さらなる例に従い、スクリプト言語ベースのフレームワーク102に含まれるコントロール112は、互いに依存関係を有することができる。この例に従い、コントロール112間の上記依存関係は、UI作成コンポーネント106が、生成されたユーザインタフェース(群)に豊富なアニメーションを提供することを、可能にすることができる。別の例として、コントロール112は、例えば、氏名、敬称などの複数の属性を有することができる。
一例に従い、コントロール112のうち1又は複数は、アプリケーション116のための認証を管理することができる。例えば、アプリケーション116は、一式の利用可能な認証スキーム(例えば、種々のサードパーティサービスにより提供される)から認証スキームを選択するスクリプト言語コードを含むことができる。その後、選択された認証スキームを、バックエンド(例えば、図1のクラウドプラットフォーム110上の分散型データストア108)からフロントエンドまでシステムにわたって用いることができる。
さらに、UI作成コンポーネント106は、アプリケーション116を実行しているクライアント装置の能力を検出することができ、かつ、検出された能力の機能のとおりに、コントロール112のうち1又は複数に基づいて生成されるユーザインタフェースを調整することができる、調整コンポーネント302を含むことができる。例えば、アプリケーション116がスマートフォンにロードされた場合、調整コンポーネント302は、クライアント装置がカメラ及びマイクロフォンを含むことを、検出することができる。この例に従い、調整コンポーネント302は、コントロール112のうち1又は複数に基づいて、UI作成コンポーネント106により生成されるユーザインタフェースを変更して、スマートフォンのカメラ及びマイクロフォンに関連する特性を含ませることができる。一方で、調整コンポーネント302が、クライアント装置はカメラ及びマイクロフォンを欠いていることを検出したとき、上記の特性は、UI作成コンポーネント106により生成されるユーザインタフェースにおいて省略することができる。調整コンポーネント302を含むことによって、スクリプト言語ベースのフレームワーク102は、アプリケーション116が、アプリケーション116を実行しているクライアント装置の能力を用いることを、可能にすることができる。その上、アプリケーション116は、ウェブプログラマによる様々な種類の装置をサポートするためのコーディングなく、スクリプト言語ベースのフレームワーク102に包含された調整コンポーネント302を活用することによって、モバイル装置、デスクトップ、ラップトップなどにわたって動作することができる。
UI作成コンポーネント106は、さらに、段階的にアプリケーション116の特性をロールアウトすることができるフライティング(flighting)コンポーネント304を含むことができる。例えば、ユーザのサブセットがアプリケーション116のある特性へのアクセスを有することを、ウェブプログラマが所望する場合がある。したがって、フライティングコンポーネント304は、上記ユーザのうち上記サブセットに対して生成されるユーザインタフェース(群)においてアプリケーション116の上記特性を提供することができると同時に、アプリケーション116の上記ユーザのうち残りに対して生成されるユーザインタフェース(群)において上記特性を隠すことができる。スクリプト言語ベースのフレームワーク102にフライティングコンポーネント304を含むことによって、アプリケーション116の特性の交互の(staggered)ロールアウトを可能にするカスタムコードを、ウェブプログラマによって書く必要がなくなる。
その上、スクリプト言語ベースのフレームワーク102は、コントロール112から通知を受信し、かつコントロール112に通知を送信する、通知コンポーネント306を含むことができる。したがって、スクリプト言語ベースのフレームワーク102において、通知コンポーネント306は、コントロール112間の情報を交換することができ、これにより、コントロール112間で依存関係を有することを可能にすることができる。1つの例解に従い、アプリケーション116は、スクリプト言語シェルとすることができ、上記スクリプト言語シェルは、複数のコントロール112に対する呼び出しを生成するスクリプト言語コードを含むことができる。この例解に従い、アプリケーション116の内部で呼び出された上記複数のコントロール112は、シェル全体の(shell-wide)通知を通知コンポーネント306から受信することができ、これにより上記複数のコントロール112の間で相互作用を容易にすることができる。
例えば、2つのコントロール(例えば、コントロール112からの)を、ウェブページに含むことができ、例えば、一方のコントロールは氏名のリストビューとすることができ、他方のコントロールは詳細ビューとすることができる。この例に従い、上記2つのコントロールは、通知コンポーネント306を介して情報を交換することができる。したがって、例えば、ある氏名がリストビューの中で選択された(例えば、クリックされた)場合、詳細ビューは、上記リストビューの中で選択された氏名に対応する詳細を示すことができる。その上、通知コンポーネント306は、コントロール112により使用される情報を交換してイベント連鎖(chaining)を生じさせることができる。それに応じて、コントロール112の振る舞いは、イベント(例えば、データをロードすること、トランザクションを処理すること、アニメーションの完了、受信されたユーザ入力など)に基づいて連鎖されることができる。
さらに、データアクセスコンポーネント104は、コントロール112をデータソース(例えば、クラウドベースのバックエンドシステム(群))にバインドすることができるソースバインドコンポーネント308を含むことができる。一例に従い、ソースバインドコンポーネント308は、コントロール112のうち2つを、種々のソースからのオブジェクトにバインドすることができる。この例に従い、ソースバインドコンポーネント308は、コントロール112のうち一方を第1のソーシャルネットワーキングサービスからのオブジェクトに、コントロール112のうち他方を第2のソーシャルネットワークサービスからのオブジェクトに、バインドすることができる。しかしながら、特許請求される対象事項は前述の例に限定されないことを、十分理解されたい。ソースバインドコンポーネント308は、コントロール112を種々のデータソースにバインドすることができるため、データアクセスコンポーネント104は、種々のデータソースからの情報のための標準化スキーマを用いることができる。スキーマのこうした標準化は、コントロール112間の情報の柔軟な交換を可能にすることができる。種々の実施形態において、ソースバインドコンポーネント308は、コントロール112のうち1又は複数を、オープンデータプロトコル(ODdata)ソースにバインドすることができるが、特許請求される対象事項はそのように限定されないことを、十分理解されたい。
図4〜図5は、スクリプト言語ベースのフレームワークを用いてウェブアプリケーションを開発することに関連する例示的な方法論を示す。上記方法論は、ある並びで実行される一連の動作であるとして図示及び説明されるが、上記方法論は上記並びの順序によって限定されないことを、把握及び十分理解されたい。例えば、いくつかの動作が、本明細書において説明される順序とは異なる順序で発生してよい。加えて、ある動作が、別の動作と同時に発生してよい。さらに、いくつかの例において、すべての動作が本明細書において説明される方法論を実装するために必要とされるわけではない場合がある。
その上、本明細書において説明される動作は、1若しくは複数のプロセッサにより実施すること及び/又は1若しくは複数のコンピュータ読取可能媒体に記憶することができる、コンピュータ実行可能命令とすることができる。コンピュータ実行可能命令は、ルーチン、サブルーチン、プログラム、実行のスレッド、及び/又は類似のものを含むことができる。またさらに、上記方法論の動作の結果を、コンピュータ読取可能媒体に記憶すること、ディスプレイ装置に表示すること、及び/又は類似のことができる。
図4は、ウェブアプリケーションを開発するための方法論400を示す。402において、スクリプト言語ベースのフレームワークのためのインタフェースを、公開することができる。404において、呼び出しを、上記インタフェースを介して受けることができる。上記インタフェースを介して受けた呼び出しは、スクリプト言語ベースのフレームワークに含まれるコントロールを管理することができる。さらに、上記呼び出しは、スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供されることができる。例えば、上記呼び出しは、コントロールを有効にすること、コントロールを無効にすること、コントロールの属性又は効果を設定することなどができる。406において、ユーザインタフェースを、上記呼び出しにより管理されたコントロールに基づいて生成することができる。408において、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスに、上記呼び出しにより管理されたコントロールに基づいてアクセスすることができる。
次に、図5を参照し、ウェブアプリケーションを開発するための方法論500を示す。502において、一式のコントロールを含むスクリプト言語ベースのフレームワークのためのインタフェースを、公開することができ、上記一式のコントロールは、バックエンドのクラウドベースのサービスにアクセスし、かつ、有効にされたときにユーザインタフェースを生成するように、予めプログラムされる。504において、スクリプト言語ベースのフレームワークに含まれる一式のコントロールの中のコントロールを有効にする呼び出しを、上記インタフェースを介して受けることができる。上記呼び出しは、スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供されることができる。506において、ユーザインタフェースを、上記呼び出しにより有効にされたコントロールに基づいて生成することができる。508において、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスに、上記呼び出しにより有効にされたコントロールに基づいてアクセスすることができる。
次に、図6を参照し、本明細書において開示されるシステム及び方法論に従って使用することができる例示的なコンピューティング装置600の高水準の例解を示す。例えば、コンピューティング装置600は、スクリプト言語ベースのフレームワークを用いてウェブアプリケーションを開発するシステムにおいて使用されることができる。別の例として、コンピューティング装置600は、スクリプト言語ベースのフレームワーク上に構築されたウェブアプリケーションを実行するシステムにおいて使用されることができる。コンピューティング装置600は、少なくとも1つのプロセッサ602を含み、上記少なくとも1つのプロセッサ602は、メモリ604に記憶された命令を実行する。上記命令は、例えば、上記で論じられた1若しくは複数のコンポーネントにより実行されるとして説明された機能性を実施する命令、又は上記で説明された方法のうち1若しくは複数を実施する命令とすることができる。プロセッサ602は、システムバス606を通じてメモリ604にアクセスすることができる。実行可能命令を記憶することに加えて、メモリ604は、アプリケーション、スクリプト言語ベースのフレームワークなどを記憶することもできる。
コンピューティング装置600は、さらに、データストア608を含み、データストア608は、システムバス606を通じてプロセッサ602によりアクセスすることができる。データストア608は、実行可能命令、アプリケーション、スクリプト言語ベースのフレームワークなどを含むことができる。コンピューティング装置600はさらに、入力インタフェース610を含み、入力インタフェース610は、外部装置がコンピューティング装置600とやりとりすることを可能にする。例えば、入力インタフェース610を用いて、外部のコンピュータ装置、ユーザなどから指示を受け取ることができる。コンピューティング装置600はさらに、出力インタフェース612を含み、出力インタフェース612は、コンピューティング装置600を1又は複数の外部装置とインタフェースでつなぐ。例えば、コンピューティング装置600は、出力インタフェース612を通じて、テキスト、画像などを表示することができる。
さらに、単一のシステムとして図示されているが、コンピューティング装置600は分散型システムとすることができることを、理解されたい。したがって、例えば、いくつかの装置が、ネットワーク接続を経由して通信することができ、コンピューティング装置600により実行されるとして説明されたタスクを集合的に実行することができる。
本明細書において、「コンポーネント」及び「システム」という用語は、コンピュータ実行可能命令を用いて構成されたコンピュータ読取可能データ記憶装置を包含することが意図され、上記コンピュータ実行可能命令は、プロセッサにより実行されると、特定の機能性を実行させる。コンピュータ実行可能命令は、ルーチン、関数、又は類似のものを含むことができる。コンポーネント又はシステムは、単一の装置上に局在させてよく、あるいはいくつかの装置にわたって分散させてよい。
さらに、本明細書において、「例示的」という用語は、「何かの例解又は例としての役割を果たすこと」を意味することが意図される。
本明細書において説明される種々の機能は、ハードウェア、ソフトウェア、又はそれらの組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合、上記機能は、コンピュータ読取可能媒体上の1又は複数の命令又はコードとして、記憶すること又は伝達することができる。コンピュータ読取可能媒体には、コンピュータ読取可能記憶媒体を含む。コンピュータ読取可能記憶媒体は、コンピュータがアクセスすることができる任意の利用可能な記憶媒体とすることができる。限定ではなく例として、こうしたコンピュータ読取可能記憶媒体には、RAM、ROM、EEPROM、CD−ROM若しくは他の光学ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、命令若しくはデータ構造の形式で所望のプログラムコードを担体若しくは記憶するために使用することができ、かつコンピュータによりアクセスすることができる任意の他の媒体を、含むことができる。本明細書において、磁気ディスク(Disk)及びディスク(disc)には、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)磁気ディスク、及びブルーレイディスク(BD)を含み、ここで、磁気ディスクは一般に磁気的にデータを再現し、ディスクは一般にレーザーを用いて光学的にデータを再現する。さらに、伝播される信号は、コンピュータ読取可能記憶媒体の範囲の中に含まれない。コンピュータ読取可能媒体は、さらに、1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む。接続が、例えば、通信媒体であり得る。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線及びマイクロ波などの無線技術を用いて、ウェブサイト、サーバ、又は他の離れた情報源から送信される場合、上記の同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線及びマイクロ波などの無線技術は、通信媒体の定義に含まれる。上記の組み合わせもまた、コンピュータ読取可能媒体の範囲の中に含まれるべきである。
上記で説明されたものには、1又は複数の実施形態の例を含む。前述された態様を説明する目的で上記の装置又は方法論のあらゆる考えられる変更及び調整を説明することは、もちろん不可能であり、しかしながら当業者は、種々の態様の多くのさらなる変更及び置換があり得ることを認識し得る。それに応じて、上記の説明された態様は、添付の請求項の主旨及び範囲に入るすべての上記のような調整、変更及び変形を包含することが意図される。その上、「含む」という用語が本願の詳細説明又は請求項のいずれかにおいて使用される限りにおいて、上記の用語は、「備える」という用語に類似の、「備える」が請求項において移行語として用いられるときに解釈されるような方式で、包括的であることが意図される。

Claims (20)

  1. ウェブアプリケーションを開発するための方法であって、
    スクリプト言語ベースのフレームワークのためのインタフェースを公開するステップと、
    前記インタフェースを介して、前記スクリプト言語ベースのフレームワークに含まれるコントロールを管理する呼び出しを受けるステップであり、前記呼び出しは前記スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供される、ステップと、
    前記呼び出しにより管理された前記コントロールに基づいて、ユーザインタフェースを生成するステップと、
    前記呼び出しにより管理された前記コントロールに基づいて、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスにアクセスするステップと、
    を含む方法。
  2. 前記呼び出しは、前記アプリケーションに含まれるスクリプト言語コードから生成される、請求項1に記載の方法。
  3. 前記コントロールを管理する前記呼び出しは、前記コントロールを有効にする、又は前記コントロールを無効にするのうち1つをなす、請求項1に記載の方法。
  4. 前記コントロールは、前記クラウドプラットフォーム上の前記分散型データストアにより提供される前記バックエンドのクラウドベースのサービスにアクセスするように前記スクリプト言語ベースのフレームワーク内に予めプログラムされる、請求項1に記載の方法。
  5. 前記呼び出しに基づいて、前記コントロールの属性又は前記コントロールの効果のうち少なくとも1つの値を設定するステップ、をさらに含む請求項1に記載の方法。
  6. 前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアにより提供される前記バックエンドのクラウドベースのサービスにアクセスするステップは、
    前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアにデータを書き込むステップ、
    前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアからデータを読み出すステップ、
    前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアの中のデータを検索するステップ、又は
    前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアの中のデータをインデックス化するステップ
    のうち少なくとも1つをさらに含む、請求項1に記載の方法。
  7. 前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアにより提供される前記バックエンドのクラウドベースのサービスにアクセスするステップは、前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアに組み込まれたサードパーティサービスにアクセスするステップをさらに含む、請求項1に記載の方法。
  8. 前記クラウドプラットフォーム上の前記分散型データストアに組み込まれた前記サードパーティサービスは、ウェブ検索サービス、画像検索サービス、ビデオ検索サービス、ソーシャルネットワーキングサービス、マイクロブログサービス、地図作成サービス、半構造化データベース検索サービス、認証サービス又はクラウドプラットフォームサービスのうち1又は複数を含む、請求項7に記載の方法。
  9. 前記呼び出しにより管理された前記コントロールに基づいて、前記スクリプト言語ベースのフレームワークに直接的に組み込まれたサードパーティサービスを用いるステップ、をさらに含む請求項1に記載の方法。
  10. 前記アプリケーションは、前記スクリプト言語ベースのフレームワークに含まれる複数のコントロールを管理する複数の呼び出しを提供するスクリプト言語コードを含む、請求項1に記載の方法。
  11. 前記アプリケーションにより提供される前記複数の呼び出しにより管理された前記複数のコントロール間で情報を交換するステップ、をさらに含む請求項10に記載の方法。
  12. 前記複数のコントロールのうち第1のコントロールを、第1のデータソースからのオブジェクトにバインドするステップと、
    前記複数のコントロールのうち第2のコントロールを、第2のデータソースからのオブジェクトにバインドするステップと、
    をさらに含む請求項10に記載の方法。
  13. 前記スクリプト言語ベースのフレームワークは、クライアント側のフレームワークである、請求項1に記載の方法。
  14. スクリプト言語ベースのフレームワークであって、
    バックエンドのクラウドベースのサービスにアクセスし、かつ有効にされたときにユーザインタフェースを生成するように、予めプログラムされた一式のコントロールと、
    前記一式からのコントロールを管理する呼び出しを受けるインタフェースコンポーネントであり、前記呼び出しは当該スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供される、インタフェースコンポーネントと、
    前記呼び出しにより管理された前記コントロールに基づいてユーザインタフェースを生成するユーザインタフェース(UI)作成コンポーネントと、
    前記呼び出しにより管理された前記コントロールに基づいて、クラウドプラットフォーム上の分散型データストアにより提供されるバックエンドのクラウドベースのサービスにアクセスするデータアクセスコンポーネントと、
    を含むスクリプト言語ベースのフレームワーク。
  15. 前記データアクセスコンポーネントは、前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアに組み込まれたサードパーティサービスにアクセスする、請求項14に記載のスクリプト言語ベースのフレームワーク。
  16. 前記データアクセスコンポーネントは、前記呼び出しにより管理された前記コントロールに基づいて、当該スクリプト言語ベースのフレームワークに直接的に組み込まれたサードパーティサービスを使用する、請求項14に記載のスクリプト言語ベースのフレームワーク。
  17. 前記一式の中の複数のコントロール間で情報を交換する通知コンポーネント、をさらに含む請求項14に記載のスクリプト言語ベースのフレームワーク。
  18. 前記アプリケーションを実行しているクライアント装置の能力を検出し、かつ、前記能力の機能のとおりに、前記コントロールに基づいて生成される前記ユーザインタフェースを調整する、調整コンポーネント、をさらに含む請求項14に記載のスクリプト言語ベースのフレームワーク。
  19. 前記データアクセスコンポーネントは、前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアにデータを書き込む、前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアからデータを読み出す、前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアの中のデータを検索する、又は前記呼び出しにより管理された前記コントロールに基づいて、前記クラウドプラットフォーム上の前記分散型データストアの中のデータをインデックス化するのうち少なくとも1つをなす、請求項14に記載のスクリプト言語ベースのフレームワーク。
  20. プロセッサにより実行されると前記プロセッサに動作を実行させるコンピュータ実行可能命令を含むコンピュータ読取可能記憶媒体であって、前記動作は、
    バックエンドのクラウドベースのサービスにアクセスし、かつ有効にされたときにユーザインタフェースを生成するように、予めプログラムされた一式のコントロールを含むスクリプト言語ベースのフレームワークのためのインタフェースを公開するステップと、
    前記インタフェースを介して、前記スクリプト言語ベースのフレームワークに含まれる前記一式のコントロールからのコントロールを有効にする呼び出しを受けるステップであり、前記呼び出しは前記スクリプト言語ベースのフレームワークを参照するアプリケーションにより提供される、ステップと、
    前記呼び出しにより有効にされた前記コントロールに基づいて、ユーザインタフェースを生成するステップと、
    前記呼び出しにより有効にされた前記コントロールに基づいて、クラウドプラットフォーム上の分散型データストアにより提供される前記バックエンドのクラウドベースのサービスにアクセスするステップと、
    を含む、コンピュータ読取可能記憶媒体。
JP2014546194A 2011-12-12 2012-12-12 ウェブアプリケーションのための軽量フレームワーク Active JP6137505B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/323,198 US8671417B2 (en) 2011-12-12 2011-12-12 Lightweight framework for web applications
US13/323,198 2011-12-12
PCT/US2012/069318 WO2013090476A1 (en) 2011-12-12 2012-12-12 Lightweight framework for web applications

Publications (3)

Publication Number Publication Date
JP2015501993A true JP2015501993A (ja) 2015-01-19
JP2015501993A5 JP2015501993A5 (ja) 2016-01-21
JP6137505B2 JP6137505B2 (ja) 2017-05-31

Family

ID=48573294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014546194A Active JP6137505B2 (ja) 2011-12-12 2012-12-12 ウェブアプリケーションのための軽量フレームワーク

Country Status (6)

Country Link
US (2) US8671417B2 (ja)
EP (1) EP2791822A4 (ja)
JP (1) JP6137505B2 (ja)
KR (2) KR101993944B1 (ja)
CN (1) CN103988200B (ja)
WO (1) WO2013090476A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671417B2 (en) 2011-12-12 2014-03-11 Microsoft Corporation Lightweight framework for web applications
US8943086B2 (en) * 2012-06-29 2015-01-27 Sap Se Model-based backend service adaptation of business objects
US9195477B1 (en) * 2012-10-09 2015-11-24 Sencha, Inc. Device profiles, deep linking, and browser history support for web applications
US9886424B2 (en) 2013-08-30 2018-02-06 Wal-Mart Stores, Inc. Web application framework for extracting content
JP2015114892A (ja) * 2013-12-12 2015-06-22 株式会社リコー サービス提供システム及びサービス提供方法
CN103957255B (zh) * 2014-04-30 2017-08-25 华南理工大学 一种轻量级应用开发云服务平台及其资源的访问方法
US10185706B2 (en) 2014-10-10 2019-01-22 Aktiebolaget Skf Generating web browser views for applications
CN111045676B (zh) * 2015-07-31 2021-05-07 腾讯科技(深圳)有限公司 物联网设备的控制界面的生成方法、装置、存储介质及电子设备
US10375072B2 (en) 2015-11-09 2019-08-06 Microsoft Technology Licensing, Llc Dashboard as remote computing services
KR20170110935A (ko) * 2016-03-24 2017-10-12 전자부품연구원 모바일 디바이스에서의 프레임워크
US10552442B1 (en) 2016-08-29 2020-02-04 Amazon Technologies, Inc. Stateful database application programming interface
US10572315B1 (en) * 2016-08-29 2020-02-25 Amazon Technologies, Inc. Application programming interface state management
US10476860B1 (en) 2016-08-29 2019-11-12 Amazon Technologies, Inc. Credential translation
CA3060362A1 (en) * 2017-07-24 2019-02-28 Wix.Com Ltd. Editing a database during preview of a virtual web page
EP3847547A4 (en) * 2018-09-04 2022-10-12 AVEVA Software, LLC FLOW-BASED COMPOSITION, AND MONITORING SERVER SYSTEM AND METHOD
CN111294368A (zh) * 2018-12-06 2020-06-16 上海博泰悦臻电子设备制造有限公司 云服务器、智能客户端及其车主服务方法
CN109992267A (zh) * 2019-03-12 2019-07-09 厦门网宿有限公司 一种云应用的客户端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006512694A (ja) * 2002-12-26 2006-04-13 リサーチ イン モーション リミテッド プラットホーム中立ジェネリックサービスのクライアントアプリケーションの構築及び実行のためのシステム及び方法
JP2009086759A (ja) * 2007-09-27 2009-04-23 Hitachi Software Eng Co Ltd 携帯電話
JP2010117793A (ja) * 2008-11-11 2010-05-27 Jfe Steel Corp コンピュータシステムおよびフレームワーク管理装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305550B2 (en) * 2000-12-29 2007-12-04 Intel Corporation System and method for providing authentication and verification services in an enhanced media gateway
US7546576B2 (en) 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
AU2003262702A1 (en) 2002-08-23 2004-03-11 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US7523401B1 (en) * 2003-09-03 2009-04-21 Theoris Software, Llc System and method for providing a browser-based user interface
US8245049B2 (en) * 2004-06-14 2012-08-14 Microsoft Corporation Method and system for validating access to a group of related elements
US20070061488A1 (en) * 2004-09-20 2007-03-15 Trilibis Inc. System and method for flexible user interfaces
US7739611B2 (en) * 2005-04-25 2010-06-15 Aol Inc. User interface with connectable elements
US20070106946A1 (en) 2005-11-07 2007-05-10 Philip Goetz Method and system for developing interactive Web applications in a unified framework
US8015543B1 (en) * 2007-01-10 2011-09-06 The Mathworks, Inc. Hardware specific code generation
US20090024915A1 (en) 2007-04-27 2009-01-22 Bea Systems, Inc. Web based application constructor using objects as pages
US8745573B2 (en) 2008-06-16 2014-06-03 Beek Fund B.V. L.L.C. Platform-independent application development framework
US9195525B2 (en) * 2008-10-21 2015-11-24 Synactive, Inc. Method and apparatus for generating a web-based user interface
WO2011091388A2 (en) 2010-01-22 2011-07-28 The Regents Of The University Of California Web application development framework
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
CN102271121A (zh) * 2010-06-01 2011-12-07 铜陵玉成软件科技有限责任公司 面向业务模型的云计算开发平台实现方法
US20120036494A1 (en) * 2010-08-06 2012-02-09 Genwi, Inc. Web-based cross-platform wireless device application creation and management systems, and methods therefor
US8689181B2 (en) * 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
US9626223B2 (en) * 2011-10-28 2017-04-18 Hewlett Packard Enterprise Development Lp Provisioning IaaS services
US8671417B2 (en) 2011-12-12 2014-03-11 Microsoft Corporation Lightweight framework for web applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006512694A (ja) * 2002-12-26 2006-04-13 リサーチ イン モーション リミテッド プラットホーム中立ジェネリックサービスのクライアントアプリケーションの構築及び実行のためのシステム及び方法
JP2009086759A (ja) * 2007-09-27 2009-04-23 Hitachi Software Eng Co Ltd 携帯電話
JP2010117793A (ja) * 2008-11-11 2010-05-27 Jfe Steel Corp コンピュータシステムおよびフレームワーク管理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
川田 徹: "VisualBasic入門講座[3]", I/O 1999年6月号, vol. 第24巻 第6号, JPN6016041371, 1 June 1999 (1999-06-01), pages 102 - 105, ISSN: 0003428096 *

Also Published As

Publication number Publication date
US20130152107A1 (en) 2013-06-13
US10387123B2 (en) 2019-08-20
CN103988200B (zh) 2018-05-29
KR20190077106A (ko) 2019-07-02
KR101993944B1 (ko) 2019-06-27
JP6137505B2 (ja) 2017-05-31
KR102082092B1 (ko) 2020-02-26
US8671417B2 (en) 2014-03-11
KR20140101361A (ko) 2014-08-19
EP2791822A4 (en) 2015-05-20
CN103988200A (zh) 2014-08-13
US20140149965A1 (en) 2014-05-29
EP2791822A1 (en) 2014-10-22
WO2013090476A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
JP6137505B2 (ja) ウェブアプリケーションのための軽量フレームワーク
US10083056B2 (en) Session transfer and suspension in a remote access application framework
US11240289B2 (en) Apparatus and method for low-latency message request/response processing
US9992285B2 (en) Techniques to manage state information for a web service
Wang et al. The research of Android System architecture and application programming
AU2014308856B2 (en) Opening unsupported file types through remoting sessions
JP6215359B2 (ja) 複数のコンピューティングデバイスにわたる情報へのアクセスの提供
US9323504B1 (en) Template-driven data access
Almudarra et al. Issues in adopting agile development principles for mobile cloud computing applications
US20200125336A1 (en) System and method for enhancing component based development models with auto-wiring
US20120198019A1 (en) Web service support for bulk item export/import
US11023558B1 (en) Executing functions on-demand on a server utilizing web browsers
US10819817B2 (en) HTML5 multimedia redirection
CN103975301B (zh) 通过本地服务器对本地客户机应用进行事件服务的方法
US20150067089A1 (en) Metadata driven declarative client-side session management and differential server side data submission
US11429400B2 (en) User interface metadata from an application program interface
US20110246559A1 (en) Four tier architecture for implementing thin clients
US11556608B2 (en) Caching for single page web applications
US20140129917A1 (en) Value-added usage of process-oriented extension fields in business mashups
US10795698B2 (en) User interface based on metadata
US11748120B1 (en) Server-based user interface rendering

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170131

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: 20170321

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170418

R150 Certificate of patent or registration of utility model

Ref document number: 6137505

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250