JP6648845B2 - ガイドされるウェブアプリケーション作成 - Google Patents

ガイドされるウェブアプリケーション作成 Download PDF

Info

Publication number
JP6648845B2
JP6648845B2 JP2019013723A JP2019013723A JP6648845B2 JP 6648845 B2 JP6648845 B2 JP 6648845B2 JP 2019013723 A JP2019013723 A JP 2019013723A JP 2019013723 A JP2019013723 A JP 2019013723A JP 6648845 B2 JP6648845 B2 JP 6648845B2
Authority
JP
Japan
Prior art keywords
data
suggestion
widget
widgets
determining
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.)
Active
Application number
JP2019013723A
Other languages
English (en)
Other versions
JP2019133661A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2019133661A publication Critical patent/JP2019133661A/ja
Application granted granted Critical
Publication of JP6648845B2 publication Critical patent/JP6648845B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Description

実施形態は、ウェブアプリケーションの作成及び管理に関する。
このセクションに記載されるアプローチは、追求され得るアプローチであるが、必ずしも、以前に着想又は追求されたアプローチであるとは限らない。したがって、別途示されない限り、このセクションに記載されるアプローチのいずれも、単にこのセクションに含まれることにより従来技術に該当するとみなされるべきではない。
中堅・中小企業(SMB)環境におけるユーザは、注文書、依頼書、日常取引データ等、様々なビジネスタスクのためにデータを追跡及び編成する(organize)必要がある。SMBユーザは、データを記憶するために、スプレッドシートソフトウェア、単純なデータベースアプリケーション、又はワードプロセッシングソフトウェアを使用することがある。しかしながら、そのようなデータは、通常、ファイルとして記憶され、複数のユーザは、同時には、ファイルにアクセスできない又はファイルを変更できないことがある。ユーザは、他のユーザとファイルを共有するために又はデータに対する変更を追跡するために、ファイルの複数のコピーを生成することもあるし、異なるビジネスタスクに対応する複数のファイルを記憶することもある。ユーザが、ファイルの複数のバージョンの間でデータを統合すること、どのファイルが最新であるかを判別すること、又は、ファイルを共有及び編成することは、難しい。
大きなデータベースシステムは、多くのユーザ又はクライアントアプリケーションが、同時にデータベースに接続することを可能する。しかしながら、大きなデータベースシステムは、SMBが実現するには、コストがかかることもあるし、実用的でないこともある。大きなデータベースシステムは、SMBに対するそのようなシステムの有用性を超える可能性があるセットアップコスト及び管理コストを生じさせる。加えて、データベースアプリケーションは、特定のユースケースに基づいて特にプログラムされ得る。新たなアプリケーションは、既存のユースケースに対応しない新たな独特のトランザクションが記憶される必要があるときに、開発される必要があり得る。
したがって、複数のユーザの間での共有を可能にする低コストでフレキシブルなシステムにおいてデータベースデータを記憶及び管理することが望ましく有用である。
一実施形態に従うと、システムは、1つ以上のプロセッサと、命令を記憶している非一時的なコンピュータ読み取り可能な媒体と、を含む。命令は、1つ以上のプロセッサにより実行されたときに、編成済みデータ(organized data)を受信することを生じさせる。編成済みデータを受信したことに応じて、編成済みデータに含まれる複数のデータタイプが判別される。複数のデータタイプの各データタイプについての1つ以上の提案ウィジェットが決定される。1つ以上の提案ウィジェットを決定することは、特定のデータタイプを2つ以上のデータタイプに分割することができると判定することと、特定のデータタイプについての2つ以上のデータタイプからの各データタイプについての提案ウィジェットを決定することと、を含む。複数のデータタイプと、特定のデータタイプについての2つ以上のデータタイプからの各データタイプについての提案ウィジェットを含む、複数のデータタイプの各データタイプについての決定された1つ以上の提案ウィジェットと、が表示される。1つ以上の提案ウィジェットを承諾するユーザ入力を受信したことに応じて、1つ以上の提案ウィジェットを含むウェブアプリケーションが作成される。
ウェブアプリケーションを作成及び管理するための構成を示すブロック図。 例示的なウェブアプリケーショングラフィカルユーザインタフェースを示す図。 ウェブアプリケーションを手動作成するための例示的なグラフィカルユーザインタフェースを示す図。 受信された編成済みデータに基づく、ウェブアプリケーションのガイドされる作成のためのアプローチを示すフロー図。 ウェブアプリケーションを作成するための例示的な編成済みデータを示す図。 1つ以上の提案ウィジェットを含むプレビュー画面を示す図。 実施形態が実現され得る例示的なコンピュータシステムを示すブロック図。
以下の記載において、説明の目的のために、多数の具体的な詳細が、本発明の完全な理解を提供するように記載されている。しかしながら、本発明は、これらの具体的な詳細がなくても実施され得ることが明らかであろう。他の例において、周知の構造及びデバイスが、本発明を不必要に曖昧にしないようにするために、ブロック図の形で示されている。
I.概要
II.システムアーキテクチャ
III.ウェブアプリケーション概要
A.手動作成
B.自動作成
IV.所定の実施形態の利点
V.実現例
I.概要
本開示においてウェブアプリとも呼ばれるウェブアプリケーションを作成するためのアプローチが提供される。ウェブアプリケーションは、ユーザが、データを入力又はインポートし、該データを構造化された形で記憶することを可能にする。例えば、ウェブアプリケーションデータは、スプレッドシート又はデータベーステーブルのデータと同様に構造化され得る。ウェブアプリケーションは、複数のユーザにより、共有、アクセス、編集、及び利用され得る。
このアプローチに従うと、編成済みデータが、ウェブアプリケーションを作成するためのシステムにおいて受信される。編成済みデータを受信したことに応じて、編成済みデータに含まれる複数のデータタイプが判別される。例えば、編成済みデータは、文字列データタイプに対応する名前と、数値データタイプに対応するジップコード(郵便番号)と、を含み得る。各データタイプについての1つ以上の提案ウィジェットが決定される。例えば、文字列データタイプは、テキストボックスウィジェットに対応し得、数値データタイプは、数値ウィジェットに対応し得、日付データタイプは、カレンダーウィジェットに対応し得る、等である。1つ以上の提案ウィジェットを決定することは、特定のデータタイプを2つ以上のデータタイプに分割することができると判定することを含み得る。例えば、住所に対応する文字列データタイプは、住所の道路番号部分に対応する数値データタイプと、住所の道路名部分に対応する文字列データタイプと、に分割され得る。別の例として、顧客名に対応する文字列データタイプは、顧客のファーストネーム(名)に対応する第1の文字列データタイプと、顧客のラストネーム(姓)に対応する第2の文字列データタイプと、に分割され得る。第3の例として、電話番号に対応する数値データタイプは、国コードとエリアコード(市外局番)とメイン電話番号(main phone number)とにそれぞれ対応する3つの数値データタイプに分割され得る。提案ウィジェットは、各分割されたデータタイプについて決定され得る。
分割されたデータタイプの各々についての提案ウィジェットを含む、各データタイプについての1つ以上の提案ウィジェット及び対応するデータタイプが、ユーザに表示される。システムは、ユーザが、データタイプを2つ以上のデータタイプに分割すること又は2つ以上のデータタイプを単一のデータタイプにマージすることを可能にし、分割又はマージに応じて、1つ以上の変更されたウィジェットを提案することができる。加えて、システムは、ユーザが、提案ウィジェットを変更又は除去することを可能にし得る。
現在の提案ウィジェットのセットを承諾するユーザ入力を受信すると、現在の提案ウィジェットのセットを含むウェブアプリケーションが作成される。編成済みデータの内容は、生成されたウェブアプリケーションにより管理されるデータとして、自動的にインポートされ得る。
II.システムアーキテクチャ
図1に示されている例において、アプリケーションサーバ110は、データインタフェース112、ユーザインタフェース114、ウェブアプリケーション管理アプリケーション116、及び1つ以上のウェブアプリケーション118を含む。アプリケーションサーバ110は、ウェブアプリケーションを作成しウェブアプリケーションを管理しウェブアプリケーションにアクセスするための機能を提供する。一例として、アプリケーションサーバ110は、ウェブアプリケーションを作成しウェブアプリケーションを管理しウェブアプリケーションにアクセスするためのグラフィカルユーザインタフェースを提供する1つ以上のウェブページを生成及び提供することができる。アプリケーションサーバ110は、具体的な実装に応じて変わり得る様々な他のコンポーネントを含んでよく、アプリケーションサーバ110は、特定のコンポーネント又は機能のセットに限定されるものではない。アプリケーションサーバ110は、具体的な実装に応じて変わり得る様々なハードウェアコンポーネント及びソフトウェアコンポーネントを含んでよく、アプリケーションサーバ110は、特定のハードウェアコンポーネント及びソフトウェアコンポーネントに限定されるものではない。
データインタフェース112は、クライアントデバイス102からデータを受信するよう構成されており、様々な通信プロトコルを使用して、様々な媒体から、そのようなデータを受信することができる。例示的なプロトコルは、ファイル転送プロトコル(FTP)、テルネットプロトコル、伝送制御プロトコル(TCP)、TCP/インターネットプロトコル(TCP/IP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、又は、任意の他のデータ通信プロトコルを含む。データインタフェース112は、FTPフォルダ、電子メールフォルダ、ウェブサーバ、メモリスティック等のリモート媒体、又は任意の他の媒体からデータを読み取るよう構成され得る。データインタフェース112は、これらの伝送方法をサポートするための対応する要素を含み得る。
例えば、データインタフェース112は、クライアントデバイス102におけるFTPクライアントからの要求を処理するFTPサーバを含んでもよいし、そのようなFTPサーバとインタラクトしてもよい。別の例として、データインタフェース112は、電子メールサーバから電子メールを取得するための電子メールクライアントを含んでもよいし、そのような電子メールクライアントとインタラクトしてもよい。さらに別の例として、データインタフェース112は、クライアントデバイス102におけるhttpクライアントからの要求に応答するウェブサーバを含んでもよいし、そのようなウェブサーバとインタラクトしてもよい。データインタフェース112は、さらに、アプリケーションサーバ110から、例えば、クライアントデバイス102、他のコンピューティングデバイス、ウェブアプリケーション管理アプリケーション116及びウェブアプリケーション118等の他のサービス等といった他のデバイス及びプロセスへの、データの伝送をサポートするよう構成されている。
ユーザインタフェース114は、以下でより詳細に説明されるように、管理者等のユーザが、アプリケーションサーバ110、ストレージ120に記憶されているデータ、及び/又は、ウェブアプリケーション管理アプリケーション116により管理されるウェブアプリケーションにアクセスするための機構を提供する。ユーザインタフェース114は、アプリケーションサーバ110用のAPIとして実現され得る。代替的に、ユーザインタフェース114は、他の機構により実現されてもよい。例えば、ユーザインタフェース114は、アプリケーションサーバ110についてのウェブベースのユーザインタフェースを提供するウェブページを提供するウェブサーバとして実現されてもよい。
ウェブアプリケーション管理アプリケーション116は、ウェブアプリケーションを作成及び管理するための機能を提供する。例示的な機能は、編成済みデータを受信すること、編成済みデータを分析して1つ以上のウィジェットを提案すること、及び、提案された1つ以上のウィジェットを含むウェブアプリケーションを作成することを含む。例示的な機能はまた、1つ以上のウィジェットを指定するユーザ入力を受信すること、及び、指定されたウィジェットを含むウェブアプリケーションを作成すること、並びに、ユーザ入力に基づいて、作成されたウェブアプリケーションを変更又は削除することを含む。ウェブアプリケーションを変更することは、ウェブアプリケーションに1つ以上のウィジェットを追加すること、1つ以上のウィジェットを変更すること、又は、ウェブアプリケーションから1つ以上のウィジェットを除去することを含み得る。ウェブアプリケーションを変更することはまた、ウェブアプリケーションについてのデータにアクセスする、そのようなデータを変更する、且つ/又はそのようなデータを閲覧する権限を有するユーザを変更することを含み得る。
一実施形態に従うと、ウェブアプリケーション管理アプリケーション116は、ユーザが前述の機能にアクセスすることを可能にするグラフィカルユーザインタフェースを提供する。グラフィカルユーザインタフェースは、クライアントデバイス102におけるアプリケーションソフトウェア、アプリケーションサーバ110におけるアプリケーションソフトウェア、又は、クライアントデバイス102におけるアプリケーションソフトウェアとアプリケーションサーバ110におけるアプリケーションソフトウェアとの何らかの組み合わせにより提供され得る。一例として、グラフィカルユーザインタフェースは、アプリケーションサーバ110において生成されクライアントデバイス102に提供される1つ以上のウェブページにより実現され得る。ウェブアプリケーション管理アプリケーション116は、コンピュータハードウェア、コンピュータソフトウェア、又は、コンピュータハードウェアとコンピュータソフトウェアとの何らかの組み合わせにより実現され得る。例えば、ウェブアプリケーション管理アプリケーション116は、アプリケーションサーバ110において実行される、例えばウェブアプリケーションといったアプリケーションとして実現され得る。
1つ以上のウェブアプリケーション118は、ウェブアプリケーション管理アプリケーション116により作成される。1つ以上のウェブアプリケーションは、データを管理及び記憶するデータ管理アプリケーションであり得る。例えば、オーダー情報ウェブアプリケーションは、オーダー番号、オーダーアイテム、数量、及び総コスト等の、会社により受注されたオーダーに関連するデータを管理することができる。アイテムウェブアプリケーションは、会社が販売する商品についてのアイテムデータを記憶することができる。ウェブアプリケーションはまた、他のウェブアプリケーションにより記憶されたデータへのリンクを記憶することもできるし、他のウェブアプリケーションにより記憶されたデータをインポートすることもできる。例えば、オーダー情報ウェブアプリケーションは、アイテムウェブアプリケーションから取得されたアイテム情報を含み得る。
各ウェブアプリケーションは、1つ以上のウィジェットを含む。1つ以上のウェブアプリケーション118は、以下でより詳細に説明されるように、クライアントデバイス102から受信されたデータを処理及び管理する。ウェブアプリケーション118により管理されるデータは、ストレージ120に記憶され得る。
一実施形態に従うと、ウェブアプリケーション118は、ユーザがデータを追加、変更、削除、又は閲覧することを可能にするグラフィカルユーザインタフェースを提供する。グラフィカルユーザインタフェースは、クライアントデバイス102におけるアプリケーションソフトウェア、アプリケーションサーバ110におけるアプリケーションソフトウェア、又は、クライアントデバイス102におけるアプリケーションソフトウェアとアプリケーションサーバ110におけるアプリケーションソフトウェアとの何らかの組み合わせにより提供され得る。一例として、グラフィカルユーザインタフェースは、アプリケーションサーバ110において生成されクライアントデバイス102に提供される1つ以上のウェブページにより実現され得る。ウェブアプリケーション管理アプリケーション116は、コンピュータハードウェア、コンピュータソフトウェア、又は、コンピュータハードウェアとコンピュータソフトウェアとの何らかの組み合わせにより実現され得る。
ストレージ120は、揮発性メモリ及び/又は不揮発性メモリ、ハードドライブ等といった任意のタイプのストレージを含み得る。
ネットワーク130は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パブリックインターネット等の1つ以上のインターネットワーク、セルラネットワーク、会社ネットワーク等といった任意の数及びタイプの有線ネットワーク又は無線ネットワークを含み得る。ネットワーク130はまた、1つ以上のサーバコンピュータ、ロードバランシングコンピュータ、クラウドベースのコンピュータ、データセンター、記憶デバイス、及び/又は、任意の他の特殊目的コンピューティングデバイス等の1つ以上のコンピューティングデバイスを含み得る。図1に示されている様々な要素はまた、直接通信リンクを介して、互いと通信してもよい。
一実施形態において、クライアントコンピューティングデバイス102は、ワークステーション、パーソナルコンピュータ、汎用コンピュータ、ラップトップ、ハンドヘルドコンピュータ、ウェアラブルコンピュータ、セルラ電話機又は移動電話機、ポータブルデジタルアシスタント(PDA)、タブレットコンピュータ等といった任意のコンピューティングデバイスである。実施形態が、単一のクライアントコンピューティングデバイスのコンテキストにおいて、図面に示され本明細書において説明されるが、これは、説明の目的のためになされるに過ぎず、実施形態は、任意の数のクライアントコンピューティングデバイスに適用可能である。各クライアントコンピューティングデバイス102は、ネットワーク130を介して、サーバコンピュータ110に通信可能に接続される。
クライアントコンピューティングデバイス102は、説明の目的のために図1に示されていない、1つ以上の入力デバイス、メモリ、プロセッサ等といった他の要素を含んでよい。クライアントコンピューティングデバイス102はまた、本開示に記載の実施形態の様々な態様を促進するためのアプリケーション、ソフトウェア、及び他の実行可能な命令を含んでよい。これらのアプリケーション、ソフトウェア、及び他の実行可能な命令は、ユーザ、所有者、製造業者、又は、クライアントコンピューティングデバイスに関連する他のエンティティによりインストールされ得る。
一実施形態において、クライアントコンピューティングデバイス102は、ブラウザを含む。ブラウザは、ディスプレイ等の1つ以上のデバイスを介してユーザに提示されるグラフィカルユーザインタフェースを生成するために、アプリケーションサーバ110等のウェブサーバに対してウェブページを要求し、ウェブサーバからのウェブページを処理することができるコンピュータアプリケーションである。
III.ウェブアプリケーション概要
ウェブアプリケーションは、ネットワークを介してクライアントコンピューティングデバイスからアクセス可能である、アプリケーションサーバ110等のサーバにおいて実行されるアプリケーションである。一実施形態において、1つ以上のウェブアプリケーション118は、スプレッドシートアプリケーション又はデータベースアプリケーション等のデータ管理アプリケーションである。ユーザは、ウェブアプリケーションにデータを入力又はインポートすることができる。ウェブアプリケーションは、受信されたデータを記憶及び管理する。ウェブアプリケーションはまた、表、グラフ、チャート等、記憶されているデータの様々な視覚化を提供することもでき、データをフィルタリング又はソートすることもできる。
一実施形態において、ウェブアプリケーションにより管理されるデータは、編成済みの形式で記憶される。明確な例を示す目的のために、データが1つ以上のデータレコードを含み、各データレコードがデータフィールドのセットを含む実施形態が、本開示において説明される。しかしながら、他の実施形態において、データは、具体的な実装に応じて変わり得る他の方法で編成されることもある。
一実施形態において、ウェブアプリケーションは、1つ以上のウィジェットを含む。本開示において使用されるウィジェットは、ウェブアプリケーションのグラフィカルユーザインタフェースにおける任意のコントロール要素を指す。ウィジェットは、例えば、表示ウィジェット、入力ウィジェット、ユーザインタフェースウィジェット、データ処理ウィジェット、決定ウィジェット、ダイアログウィジェット、イベントリスナーウィジェット等であり得る。ウィジェットはまた、複数のウィジェットタイプ又は機能の組み合わせであり得る。一実施形態において、ユーザは、1つ以上のウィジェットを使用して、ウェブアプリケーションについてのデータを入力する。ウェブアプリケーションの各ウィジェットは、ウェブアプリケーションにより記憶されるデータレコードについてのデータフィールドに対応し得る。例えば、顧客情報を格納する顧客レコードは、顧客名フィールド及び顧客住所フィールドを含み得る。第1のウィジェットは、顧客名フィールドに対応し得、第2のウィジェットは、顧客住所フィールドに対応し得る。ユーザは、第1のウィジェット及び第2のウィジェットをそれぞれ使用して、顧客名及び顧客住所を入力することができる。これに応じて、ウェブアプリケーションは、入力された顧客情報を含むデータレコードを生成して記憶する。
一実施形態において、ウェブアプリケーションの各ウィジェットは、特定のウィジェットタイプである。例示的なウィジェットタイプは、数値、単一行テキスト、複数行テキスト、リッチテキスト、チェックボックス、ラジオボタンリスト、日付/カレンダー、時間、ドロップダウンリスト、電子メール等を含む。ウィジェットを使用して入力されるデータのタイプは、ウィジェットタイプに応じて変わり得る。上記の例を参照すると、顧客名を入力するためのウィジェットは、単一行テキストウィジェットタイプであり得る。
一実施形態において、ウェブアプリケーションは、ウェブアプリケーションの1つ以上のウィジェットを含む、データ入力のためのグラフィカルユーザインタフェースを含む。1つ以上のウィジェットに対応するグラフィカルユーザインタフェース要素は、データ入力グラフィカルユーザインタフェース内に特定のレイアウトで配置され得る。
各ウィジェットは、1つ以上のプロパティを含み得る。プロパティは、関連するデータフィールドのフィールド名に対応するウィジェット名を含み得る。ウィジェットについての追加のプロパティは、具体的なウィジェットタイプに応じて変わり得る。プロパティは、ウィジェットに入力されるデータのフォーマット、タイプ、及び/又は他のプロパティを指定することができる。例えば、数値ウィジェットタイプは、数字フォーマット、最小値、最大値、カンマ配置、及び小数部桁数等のプロパティを含み得る。別の例として、ドロップダウンウィジェットタイプは、ドロップダウン値のリストを含み得る。一実施形態において、ウィジェットについての1つ以上のプロパティの各々は、デフォルト値を含む。
一実施形態において、ウィジェットタイプは、計算ウィジェットタイプを含む。計算ウィジェットタイプであるウィジェットは、式プロパティを含み、式に基づくデータ値を計算する。式は、予め規定された値を含むこともあるし、且つ/又は、他のウィジェットから受け取られる値を指定することもある。
一例として、ウェブアプリケーションは、アイテム価格に対応するウィジェット及びオーダー数量に対応するウィジェットを含み得る。オーダー価格に対応する計算ウィジェットは、「アイテム価格*オーダー数量」という式を含み得る。データが、アイテム価格ウィジェット及びオーダー数量ウィジェットについて入力された後、オーダー価格ウィジェットは、アイテム価格ウィジェット及びオーダー数量ウィジェットについて入力されたデータに基づく値を自動的に計算することができる。加えて、計算ウィジェットは、対応するウィジェット値(例えば、アイテム価格及び/又はオーダー数量)が変更されたとき、その値を自動的に更新することができる。
一実施形態において、ウィジェットタイプは、ルックアップウィジェットタイプを含む。ルックアップウィジェットタイプであるウィジェットは、ソースアプリケーションプロパティ値及びキーフィールドプロパティ値を含む。ソースアプリケーションプロパティ値は、どのウェブアプリケーションからデータをルックアップするかを示し、キーフィールドプロパティ値は、値がチェックされるべきであるフィールド又は列を示す。このウィジェットは、ルックアップ値を受け取り、ルックアップ値に合致するキーフィールド値を有するデータレコードについて、ソースアプリケーションを検索する。このウィジェットはまた、フィールドマッピングプロパティを含み得る。フィールドマッピングは、ソースアプリケーションにおけるフィールド値を、ウェブアプリケーションにおける特定のウィジェットにマッピングする。1つ以上の検索結果から特定のレコードを選択することは、マッピングされたフィールドの値を、特定のウィジェットに入力させる。
上記の例を参照すると、オーダー情報ウェブアプリケーションは、顧客データを記憶する顧客データウェブアプリケーションの「顧客名」フィールドを検索するルックアップウィジェットを含み得る。顧客データウェブアプリケーションからの「顧客ID」フィールドが、オーダー情報ウェブアプリケーションにおける「顧客ID」ウィジェットにマッピングされる。ユーザが、顧客名をルックアップウィジェットに入力したとき、このルックアップ値に合致する顧客名を有する1つ以上のレコードのセットが表示される。ユーザは、合致する1つ以上のレコードから特定のレコードを選択することができ、特定のレコードの顧客IDが、オーダーウェブアプリケーションにおける「顧客ID」ウィジェットについての値として入力される。一実施形態において、対応するレコードを更新することは、マッピングされる値も更新する。
一実施形態において、ウェブアプリケーションは、管理されるデータをソート、フィルタリング、及び表示するための機能を提供する。ウェブアプリケーションは、表、グラフ、チャート、又は他のデータ視覚化等、グラフィカルな形式でデータを表示することができる。ウェブアプリケーションにより管理されるデータはまた、カンマ区切り値(CSV)ファイル、又は、編成済みデータを格納するための他のファイルフォーマット等のデータファイルにエクスポートされ得る。
図2は、例示的なウェブアプリケーショングラフィカルユーザインタフェース200を示している。グラフィカルユーザインタフェース200は、ウェブアプリケーションにより記憶されたデータを表示するデータ部分202を含む。データ部分202は、単一のデータレコードを変更するためのコントロール、複数のデータレコードを同時に変更するためのコントロール(バッチ変更)、及び/又は、単一のフィールドを変更するためのコントロールを含む。これらのコントロールは、ユーザが、データ部分202の表示内に埋め込まれたレコードを変更することを可能にし得る。
グラフィカルユーザインタフェース200はまた、記憶されたビュー(ストアドビュー)のリストを表示するビューリスト204を含む。記憶されたビューは、データフィルタ、ソート、グループ化、及び他のデータ表示オプションを指定することができる。記憶されたビューを選択することは、データ部分202に表示されるデータを更新させ得る。
グラフィカルユーザインタフェース200はまた、記憶されたグラフ(ストアドグラフ)のリストを表示するグラフリスト206を含む。記憶されたグラフは、グラフタイプとグラフで示される1つ以上のデータフィールドとを指定することができる。記憶されたグラフはまた、1つ以上のデータフィールドをグループ化、集約、フィルタリング、及び/又はソートすることができる。記憶されたグラフを選択することは、ウェブアプリケーションにより記憶された現在のデータのセットに基づいてグラフを生成させ得る。
A.手動ウェブアプリケーション作成
一実施形態において、ウェブアプリケーション管理アプリケーションは、ウェブアプリケーションを手動作成するためのグラフィカルユーザインタフェースを提供する。ユーザは、ウェブアプリケーションに含める1つ以上のウィジェットを選択することができる。ユーザはまた、所望の順序及び/又はレイアウトでウィジェットを配置することができる。例えば、ユーザは、ウィジェットを、ウェブアプリケーション作成GUI内の場所にドラッグアンドドロップすることができる。ユーザはまた、各ウィジェットについてのプロパティを指定することができる。図3は、例示的なウェブアプリケーション作成GUIを示している。ウェブアプリケーション作成GUI300は、ウィジェット選択部分302及びレイアウト部分304を含む。ウィジェット選択部分302は、利用可能なウィジェットのセットを表示する。図示されている例において、ウィジェット選択部分302は、各ウィジェットのウィジェットタイプを示す。
ユーザは、ウィジェットに対応するユーザインタフェース要素を、ウィジェット選択部分302からレイアウト部分304にドラッグすることができる。レイアウト部分304は、ユーザにより選択されたウィジェットに対応する1つ以上のユーザインタフェース要素を表示する。選択されたウィジェットに対応するユーザインタフェース要素は、該ユーザインタフェース要素がレイアウト部分304内でドロップされた位置に配置されてもよいし、ユーザインタフェース要素は、グリッド又は他のレイアウト位置にスナップされてもよい。いくつかの実施形態において、レイアウト部分304内の以前に配置されたユーザインタフェース要素は、ドロップされたウィジェットを入れるために移動され得る。ユーザインタフェース要素が、レイアウト部分304上にドラッグされると、レイアウト部分304内の他のユーザインタフェース要素の位置は、他のユーザインタフェース要素が、選択されたユーザインタフェース要素が現在の位置にドロップされるならば移動されるであろう位置を示すように更新され得る。
図3を参照すると、ウィジェットについてのユーザインタフェース要素が、レイアウト部分304に配置された後、ユーザインタフェース要素は、ウィジェットプロパティを変更するためのボタン及びウィジェットを削除するためのボタンを含むようになる。プロパティボタンを選択することは、ウィジェットプロパティについてのプロパティ値をユーザが入力できるダイアログを起動させ得る。例えば、数値ウィジェットタイプの場合、ユーザは、最小値及び最大値を指定し、数字フォーマットを指定することができ得る。
別の例として、計算ウィジェットの場合、計算のための式を入力するためのグラフィカルユーザインタフェースが提供され得る。グラフィカルユーザインタフェースは、ウェブアプリケーションにおける他のウィジェットのリスト及び演算のリストを提供することができる。ユーザは、計算を規定するために、これらのリストから選択することができる。
第3の例として、ルックアップウィジェットの場合、ルックアップソースを選択しフィールドマッピングを指定するためのグラフィカルユーザインタフェースが提供され得る。グラフィカルユーザインタフェースは、ウェブアプリケーション管理アプリケーション116により管理される他のウェブアプリケーションのリストを表示することができる。ソースウェブアプリケーションが選択された後、ソースウェブアプリケーションのウィジェットのリストが表示され得る。ソースウェブアプリケーションからのウィジェットが、現在のウェブアプリケーションにおけるウィジェットにマッピングされ得る。例えば、利用可能なウェブアプリケーションは、顧客ウェブアプリケーション及びアイテムウェブアプリケーションを含み得る。顧客が選択された場合、顧客名、顧客ID、顧客住所、及び顧客電話番号が、マッピングされ得るウィジェットとして表示され得る。数値ウィジェットタイプである顧客IDを選択することは、顧客IDにマッピングされ得る、現在のウィジェットにおける数値ウィジェットタイプのリストを表示させ得る。
一実施形態において、ユーザは、1つ以上のレイアウトウィジェットを選択することができる。レイアウトウィジェットは、例えば、ウェブアプリケーションの外観又はレイアウトに影響を及ぼすラベル、仕切り、ブランクスペース、又は他のグラフィカルユーザインタフェース要素であり得る。
次いで、ユーザは、ウェブアプリケーションを保存することを選択することができる。1つ以上のウィジェットを指定されたレイアウトで含む新たなウェブアプリケーションが作成される。新たなレコードが、ウェブアプリケーションについて追加されているときに、1つ以上のウィジェットに対応するユーザインタフェース要素を含むグラフィカルユーザインタフェースが、データ入力のために、指定されたレイアウトで表示される。
B.ガイドされる作成
図4は、編成済みデータに基づく、ウェブアプリケーションのガイドされる作成のための例示的なステップを示している。
ステップ402において、ウェブアプリケーションを作成するための編成済みデータが受信される。編成済みデータは、ユーザが、ウェブアプリケーション管理アプリケーション116を呼び出し、ウェブアプリケーションを作成するためのデータをインポートするオプションを選択し、編成済みデータを含むファイルを選択したことに応じて、取得され得る。例えば、ユーザは、ガイドされるウェブアプリケーション作成の命令を呼び出すための、ウェブアプリケーション管理アプリケーション116のグラフィカルユーザインタフェース内のアイコンを選択することができる。次いで、ユーザは、ウェブアプリケーションを作成するために使用される1つ以上のファイルについて問い合わせられる。次いで、ユーザは、使用される1つ以上のファイルを選択することもできるし、使用される1つ以上のファイルの例えばパスといった位置を指定することもできる。
編成済みデータは、クライアントコンピューティングデバイス102、ストレージ120、別のサーバコンピュータ、又は、別のサービス若しくはアプリケーションから等、任意のソースから取得され得る。ファイルは、CSV、XLS、XML、JSON等といった構造化されたデータファイルであり得る。追加的又は代替的に、ファイルは、フォーム(form)を表すドキュメントであってもよいし、画像ファイル、テキストドキュメント、又はPDF等、他の構造化されたドキュメントであってもよい。図5は、1つ以上のデータタイプを含む例示的な編成済みデータを示している。図示されている例において、編成済みデータは、複数の行及び複数の列を含むスプレッドシートテーブル500である。
ステップ404において、編成済みデータに含まれる1つ以上のデータタイプが判別される。図5を参照すると、テーブル500の各列についてのデータタイプが判別される。これは、具体的な実装と受信されるデータファイルのタイプとに応じて変わり得る多様な技術を使用して実現され得、実施形態は、データタイプを判別するための特定の技術に限定されるものではない。例えば、テーブルの場合、データタイプは、ラベルから判別され得る。ラベルは、例えば、テーブルにおける行及び列についてのものであり得る。別の例として、テーブルの場合、ある列の各行に含まれるデータを分析して、その列のデータタイプを判別することができる。その列の全ての行におけるデータが、全て数値である等、特定のデータタイプである場合、その列についてのデータタイプは、その特定のデータタイプである。いくつかの実施形態において、データタイプを判別することができない場合、テキスト(文字列)データタイプ等のデフォルトのデータタイプが選択され得る。別の例として、CSVファイルを解析して、1つ以上のフィールドを含む1つ以上のレコードを判別することができる。フィールドの内容を分析して、1つ以上のデータタイプを判別することができる。
一実施形態において、ファイルは、フォームを表すドキュメントであってもよいし、他の構造化されたドキュメントであってもよい。ファイルを分析して、ドキュメントにおいて示される1つ以上のフィールドを識別することができる。データタイプは、1つ以上のフィールドの各フィールドについて判別される。多様な技術を使用して、1つ以上のフィールドを識別することができる。例えば、ファイルは、フォームの画像であり得る。テキスト認識及び/又は画像分析を用いて、フォームにおいて示される1つ以上のフィールドを識別することができる。
一実施形態において、1つ以上のデータタイプを判別することは、データタイプを2つ以上のデータタイプに分割することができるかどうかを判定することを含む。データタイプを分割することができるかどうかを判定することは、編成済みデータのうちの、このデータタイプに対応する部分を分析することに基づき得る。様々な技術を使用して、データタイプを2つ以上のデータタイプに分割することができるかどうかを判定することができる。
一実施形態において、データタイプを分割することができるかどうかを判定することは、対応するデータが2つ以上のサブデータタイプを含むかどうかを判定することを含む。例えば、住所フィールドのデータタイプは文字列であり得る。ウェブアプリケーション管理アプリケーション116は、対応するデータを分析して、このフィールドが、数字(住所の道路番号)及び文字(道路名)の両方を含むと判定することができる。この文字列データタイプは、数値データタイプ及び文字列データタイプに分割され得る。
一実施形態において、データタイプを分割することができるかどうかを判定することは、対応するデータが、キャリッジリターン、改行、スペース、カンマ、セミコロン等といった1つ以上のデリミタを含むかどうかを判定することを含む。例えば、顧客名フィールドのデータタイプは文字列であり得る。ウェブアプリケーション管理アプリケーション116は、対応するデータを分析して、顧客名が、スペース文字により分けられる第1の文字列(ファーストネーム)及び第2の文字列(ラストネーム)を含むと判定することができる。この文字列データタイプは、2つの文字列データタイプに分割され得る。
一実施形態において、データタイプを2つ以上のデータタイプに分割することができると判定したことに応じて、2つ以上のデータタイプが、グラフィカルユーザインタフェースにおいて、ユーザに提示される。ユーザは、2つ以上のデータタイプのうちの特定のデータタイプを選択することができる。例えば、グラフィカルユーザインタフェースは、名前文字列が、ファーストネーム、ミドルネーム、及びラストネームという3つの文字列に分割され得ることを示すことができる。ユーザは、名前文字列を、ファーストネームプラスミドルネーム及びラストネームという2つの文字列のみに分割することを選択することができる。この選択に基づいて、データタイプが、選択されたデータタイプに分割される。
追加的又は代替的に、提案分割データタイプが、グラフィカルユーザインタフェースにおいて、ユーザに提示される。ユーザは、2つ以上のデータタイプについて、データタイプを変更又は承諾することができる。例えば、グラフィカルユーザインタフェースは、提案データタイプと代替データタイプのリストとを示す各提案分割データタイプについてのドロップダウンボックスを提示することができる。ユーザは、ドロップダウンボックスから代替データタイプを選択することにより、データタイプを変更することができる。
一例として、ウェブアプリケーション管理アプリケーション116は、文字列データタイプを数値データタイプ及び文字列データタイプに分割することができると判定することがある。グラフィカルユーザインタフェースは、数値データタイプが選択されている第1のドロップダウンボックスと文字列データタイプが選択されている第2のドロップダウンボックスとを表示することができる。ユーザは、文字列が、数字及び文字列ではなく、2つの文字列に分割されるべきであることを示すことができる。
追加的又は代替的に、2つ以上のデータタイプに分割され得る複数のデータタイプが、グラフィカルユーザインタフェースにおいて、ユーザに提示される。ユーザは、どのデータタイプが2つ以上のデータタイプに分割されるべきであるかを選択することができる。この選択を受信したことに応じて、選択されたデータタイプが、2つ以上のデータタイプに分割される。例えば、編成済みデータは、住所に対応する文字列データタイプ、名前に対応する文字列データタイプ、及び、地理座標のセットに対応する文字列データタイプを含み得る。ウェブアプリケーション管理アプリケーション116は、3つの文字列データタイプの各々を2つ以上のデータタイプに分割することができると判定することができる。グラフィカルユーザインタフェースは、住所、名前、及び地理座標、並びに/又は、3つの文字列データタイプを含む選択可能なリストを表示することができる。ユーザは、2つ以上のデータタイプに分割されるべきである文字列データタイプを選択することができる。例えば、ユーザは、住所及び名前に対応する文字列データタイプは分割されるべきであるが、地理座標のセットに対応する文字列データタイプは分割されるべきでないことを示すことができる。これに応じて、選択された文字列データタイプが、上述したように分割され得る。
ステップ406において、ウェブアプリケーション管理アプリケーション116は、1つ以上のデータタイプの各データタイプについて、1つ以上の提案ウィジェットを決定する。各提案ウィジェットは、データタイプに対応するウィジェットタイプである。例えば、数値ウィジェットが、数値データタイプについて提案され得、日付ウィジェットが、日付データタイプについて提案され得る、等である。一実施形態において、複数のウィジェットが、あるデータタイプについての可能性のある提案ウィジェットである。複数のウィジェットのうちの特定のウィジェットが、編成済みデータのうちの、このデータタイプに対応する部分に基づいて選択され得る。例えば、文字列/テキストデータタイプについての可能性のある提案ウィジェットのウィジェットタイプは、単一行テキスト、複数行テキスト、リッチテキスト、又はドロップダウンボックスを含み得る。このデータタイプに対応するデータが、複数行のテキスト又は所定の文字数よりも多いテキストを含む場合、複数行テキストウィジェットが提案され得る。このデータタイプに対応するデータが、限られた数のオプションを含む場合(例えば、複数の行が、ある列について同じ値を有する場合)、ドロップダウンウィジェットが提案され得る。
一実施形態において、データタイプが2つ以上のデータタイプに分割された場合、提案ウィジェットは、分割された2つ以上のデータタイプの各データタイプについて決定される。
ステップ408において、提案ウィジェットが、グラフィカルユーザインタフェースにおいて、ユーザに表示される。一実施形態において、提案ウィジェットは、提案ウィジェットに対応するデータのプレビューとともに表示される。例えば、編成済みデータのうちの、提案ウィジェットに対応する1つ以上の部分が、提案ウィジェットとともに表示され得る。図6は、ユーザに提示され得る例示的な表示を示している。図示されている例において、複数の提案ウィジェットが、ヘッダ行に提示されている。各提案ウィジェットについてのウィジェットタイプが表示されている。後続の行は、行の各列が、上記で示された提案ウィジェットに対応するデータを含む、行を表示している。各行は、生成されている場合には、ウェブアプリケーションのデータレコードに対応し得、行の各列は、データレコードのデータフィールドに対応し得る。
一実施形態において、グラフィカルユーザインタフェースは、ユーザが、提案ウィジェットを並べ替えること、提案ウィジェットを変更すること、提案ウィジェットを2つ以上の提案ウィジェットに分割すること、又は、2つ以上の提案ウィジェットを単一のウィジェットにマージすることを可能にする。提案ウィジェットを変更することは、ウィジェットタイプを変更すること又は提案ウィジェットを除去することを含み得る。
一例として、2つ以上のウィジェットをマージするユーザ要求に応じて、マージされるウィジェットについての提案ウィジェットが提示され得る。提案ウィジェットのウィジェットタイプは、2つ以上のウィジェットのウィジェットタイプに基づき得る。例えば、日付ウィジェットと時間ウィジェットとがマージされる場合、提案ウィジェットは、日付−時間ウィジェットであり得る。追加的又は代替的に、提案ウィジェットのウィジェットタイプは、単一行テキスト等のデフォルトのウィジェットタイプであり得る。例えば、2つ以上のウィジェットが、適合しないウィジェットタイプ群に対応する場合、デフォルトのウィジェットタイプが選択され得る。ウィジェットタイプは、同じデータタイプに対応しない場合、適合しないものであり得る。例えば、2つのウィジェットのうちの第1のウィジェットが日付データタイプに対応し、2つのウィジェットのうちの第2のウィジェットが文字列データタイプに対応する場合、これらの2つのウィジェットは、適合しないものであり得る。加えて、対応するデータのプレビューが、マージを示すように変更され得る。
例えば、単一行テキストウィジェットは、市に対応し得、ドロップダウンリストウィジェットは、州に対応し得る。単一行テキストウィジェットは、編成済みデータに含まれる1つ以上の市とともに表示され得、ドロップダウンリストウィジェットは、編成済みデータに含まれる1つ以上の州とともに表示され得る。ユーザは、単一行テキストウィジェット及びドロップダウンリストウィジェットを選択し、これらの2つのウィジェットがマージされるべきであることを示すボタン又は他のユーザインタフェース要素を選択することができる。これに応じて、単一行テキストウィジェット及びドロップダウンリストウィジェットが除去され、これらのウィジェットが、市と州との組み合わせに対応する単一行テキストウィジェットで置換され得る。1つ以上の市及び1つ以上の州の各々がペアにされ得、1つ以上のペアが、マージされた単一行テキストウィジェットに関連して表示され得る。
一実施形態において、複数の可能性のあるウィジェットタイプが決定され、ユーザは、複数の可能性のあるウィジェットタイプのうちのウィジェットタイプを選択することができる。例えば、ドロップダウンリストウィジェットとラジオボタンリストウィジェットとがマージされる場合、マージされるウィジェットのウィジェットタイプは、ドロップダウンリスト、ラジオボタンリスト、コンボボックス等といったリストからオプションを選択することを可能にする任意のウィジェットタイプであり得る。提案が、選択可能なリストの一部として、ユーザに提示され得、ユーザは、オプションのリストから、代替ウィジェットタイプを選択することができる。
一実施形態において、特定のウィジェットタイプのウィジェットは、マージされることが可能でない。例えば、計算ウィジェット及びルックアップウィジェットは、他のウィジェットとマージされ得ない。ユーザは、これらの特定のウィジェットタイプのウィジェットを他のウィジェットとマージするために、これらの特定のウィジェットタイプのウィジェットを選択することはできない。
別の例として、特定のウィジェットを2つ以上のウィジェットに分割するユーザ要求に応じて、提案ウィジェットのセットが、特定のウィジェットに基づいて決定され得る。加えて、対応するデータのプレビューが、分割を示すように変更され得る。例えば、単一行テキストウィジェットは、顧客住所に対応し、編成済みデータに含まれる1つ以上の顧客住所とともに表示され得る。単一行テキストウィジェットを分割するユーザ要求に応じて、単一行テキストウィジェットは、道路番号に対応する数値ウィジェット及び道路名に対応する単一行テキストウィジェットに分割され得る。数値ウィジェットが1つ以上の顧客住所の道路番号とともに表示され、単一行テキストウィジェットが1つ以上の顧客住所の道路名とともに表示されるように、プレビューが更新され得る。
一実施形態において、特定のウィジェットを分割する要求を受信したことに応じて、ウェブアプリケーション管理アプリケーション116は、特定のウィジェットに対応するデータタイプを2つ以上のデータタイプに分割することができると判定する。特定のデータタイプを2つ以上のデータタイプに分割することができると判定することは、上述したように、データタイプに対応するデータに基づき得る。提案ウィジェットが、2つ以上のデータタイプの各々について決定され得る。一実施形態において、グラフィカルユーザインタフェースは、可能性のある分割のインジケーションを表示することができる。ユーザは、各データタイプ、及び/又は、各データタイプについての提案ウィジェットを変更することができる。
追加的又は代替的に、ユーザは、特定のウィジェット及び/又はウィジェットのタイプをいくつのウィジェットに分割するかのウィジェット数を指定してもよい。ウェブアプリケーション管理アプリケーションは、特定のウィジェットを、指定された数のウィジェットに自動的に分割することができる。一実施形態において、対応するデータタイプを、指定されたように、2つ以上のデータタイプに自動的に分割することができない場合、通知がユーザに送られ得、分割は遂行され得ない。代わりに、ユーザは、データがどのように分割されるべきであるかを示し得る、又は、ウィジェットは分割され得るが、データは、全ての分割されたウィジェットよりも少ないウィジェットに関連付けられ得る。一例として、編成済みデータのうちの、データタイプに対応する1つ以上の部分が、グラフィカルユーザインタフェースにおいて表示され得る。ユーザは、グラフィカルユーザインタフェースを使用して、編成済みデータのうちの1つ以上の部分がどのように分割されるべきであるかを特定することができる。例えば、ユーザは、表示されたデータの諸部分のあたりに、分割線、ボックス、又は他のインジケータを描くことができる。データタイプが、ユーザ入力に基づいて分割される。別の例として、顧客名に対応する特定のウィジェットは、ファーストネームとミドルイニシャルとラストネームとにそれぞれ対応する3つのウィジェットに分割され得る。1つ以上の顧客名は、ミドルイニシャルを含まないことがある。このウィジェットが分割されたとき、データがミドルイニシャルウィジェットに関連付けられるように、全ての顧客名が分割されるわけではない。
ステップ410において、提案ウィジェットのセットを承諾するユーザ入力を受信したことに応じて、提案ウィジェットのセットを含むウェブアプリケーションが作成される。ユーザが、ウィジェットを変更、移動、分割、又はマージしたとき、ウェブアプリケーションは、提案ウィジェットのセットに対する変更を含むようになる。
ステップ412において、編成済みデータが、この新たなウェブアプリケーションに自動的に追加される。データタイプが、2つ以上のデータタイプに分割された場合、編成済みデータを追加することは、編成済みデータのうちの対応する部分を分割することを含む。2つ以上のデータタイプが、単一のデータタイプにマージされた場合、編成済みデータを追加することは、編成済みデータのうちの対応する部分をマージすることを含む。
例えば、編成済みデータは、1つ以上のレコードに分割され得る。各レコードについてのデータは、1つ以上のフィールドに分割され得、各フィールドは、ウェブアプリケーションの1つのウィジェットに対応する。編成済みデータは、複数のデータレコードとして記憶され、各データレコードは、それぞれの1つ以上のデータフィールドを含む。
IV.所定の実施形態の利点
従来のスプレッドシートファイル及びスプレッドシートソフトウェアに伴う問題のうちの1つは、スプレッドシートを閲覧又は変更することを望むユーザが、スプレッドシートファイルに適合するソフトウェアを有する必要があることである。加えて、複数のユーザは、同時にファイルを開くことができないことがある。一実施形態において、ウェブアプリケーションを使用してデータを記憶及び管理するためのアプローチが説明される。このアプローチは、分散されるサーバのネットワークにおいてホストされるクラウドシステムを含む任意のネットワークストレージシステムにおいてスプレッドシートデータを記憶することを可能にする。ウェブアプリケーションが、ウェブブラウザを有する任意のコンピューティングデバイスを使用して任意のユーザによりアクセスされ得る。加えて、いくつかの実施形態に従うと、複数のユーザは、アプリケーションサーバに接続し、同時に同じウェブアプリケーションにアクセスすることができる。いく人かのユーザは、データを閲覧、追加、又は変更できるのに対し、いく人かのユーザは、データを閲覧することだけはできるが、データを追加できない又は既存のデータを変更できないように、ユーザ権限が、ウェブアプリケーションに割り当てられ得る。結果として、このアプローチは、ネットワークを介してアクセス可能である単一のウェブアプリケーションへとデータを統合し、該データを複数のユーザに容易に利用可能にすることにより、演算パワー、メモリ、及び/又は帯域幅の使用量を低減する。さらに、このアプローチは、複数のユーザによるデータへのセキュアでカスタマイズされたアクセスを可能にする。
一実施形態において、編成済みデータに基づく、ウェブアプリケーションのガイドされる作成のためのアプローチが提示される。このアプローチは、データタイプを識別するための編成済みデータの自動分析と、データタイプに対応するウィジェットの自動提案と、を可能にする。これは、記憶されるよう意図されている編成済みデータのタイプに正確に対応するウェブアプリケーションをもたらす。加えて、ウェブアプリケーションは、特にプログラムされる必要はないし、どのウィジェットがウェブアプリケーションに含められるべきであるかを手動で決定するようにユーザに要求することもない。ユーザは、ウェブアプリケーションを作成するために、コンピュータプログラミングの専門的な知識又は編成済みデータに含まれるデータの専門的な知識を有する必要がない。いくつかの実施形態において、提案ウィジェットのユーザ承諾が必要とされないことがあり、ウェブアプリケーションは、上述した技術に従って、編成済みデータから自動的に作成され得、提案ウィジェットが、作成されるウェブアプリケーションに自動的に含められ得る。
さらに、このアプローチは、複数のデータタイプに分割され得るデータタイプの自動識別及び分割と、分割された複数のデータタイプに対応するウィジェットの提案と、を可能にする。このアプローチは、編成済みデータ内では分割されていないデータタイプを自動的に分割することにより、提案ウィジェットにおけるより高い正確度レベルを提供する。加えて、データが、新たなウェブアプリケーションにインポートされるときに、データが、自動的に分割され、対応するウィジェットに関連付けられることが可能である。対照的に、「従来の」スプレッドシート又はデータベースを用いると、1つの列を複数の列に分割することは、各新たな列に属するデータを再入力することを必要とする。新たに追加されるテーブル又はスプレッドシート列には、自動的には入力されない。したがって、本開示に記載のアプローチを用いると、コンピューティングデバイス及び関連するアプリケーションのユーザビリティ及び機能全般も向上する。
V.実現例
一実施形態に従うと、本開示に記載の技術は、少なくとも1つのコンピューティングデバイスにより実現される。本技術は、全部又は一部が、少なくとも1つのサーバコンピュータ及び/又はパケットデータネットワーク等のネットワークを使用して接続される他のコンピューティングデバイスの組み合わせを使用して、実現され得る。コンピューティングデバイスは、本技術を実行するようにハードワイヤードされてもよいし、本技術を実行するように永続的にプログラムされる少なくとも1つの特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)等のデジタル電子デバイスを含んでもよいし、ファームウェア、メモリ、他のストレージ、又はこれらの組み合わせにおけるプログラム命令に従って本技術を実行するようにプログラムされる少なくとも1つの汎用ハードウェアプロセッサを含んでもよい。そのようなコンピューティングデバイスはまた、記載されている技術を実現するために、カスタムハードワイヤードロジック、ASIC、又はFGPAを、カスタムプログラミングと組み合わせてもよい。コンピューティングデバイスは、サーバコンピュータ、ワークステーション、パーソナルコンピュータ、ポータブルコンピュータシステム、ハンドヘルドデバイス、モバイルコンピューティングデバイス、ウェアラブルデバイス、身体取り付け型又は埋め込み型デバイス、スマートフォン、スマートアプライアンス、インターネットワーキングデバイス、ロボット又は無人地上車両若しくは航空機等の自律又は半自律デバイス、記載されている技術を実現するためにハードワイヤードロジック及び/又はプログラムロジックを組み込んだ任意の他の電子デバイス、データセンターにおける1つ以上の仮想コンピューティングマシン又はインスタンス、及び/又は、サーバコンピュータ及び/又はパーソナルコンピュータのネットワークであってよい。
図7は、実施形態が実現され得る例示的なコンピュータシステムを示すブロック図である。図7の例において、コンピュータシステム700と、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより、開示されている技術を実現するための命令と、が、コンピュータアーキテクチャ及びコンピュータシステム実装について伝達するために、本開示に関連する当業者により通常用いられるのと同じ詳細レベルで、例えば、ボックス及び円として、概略的に表されている。
コンピュータシステム700は、入力/出力(I/O)サブシステム702を含み、I/Oサブシステム702は、電子信号パスを介してコンピュータシステム700のコンポーネントの間で情報及び/又は命令を通信するためのバス及び/又は1つ以上の他の通信機構を含み得る。I/Oサブシステム702は、I/Oコントローラ、メモリコントローラ、及び少なくとも1つのI/Oポートを含み得る。電子信号パスは、図において、例えば、線、一方向矢印、又は両方向矢印として、概略的に表されている。
少なくとも1つのハードウェアプロセッサ704は、情報及び命令を処理するために、I/Oサブシステム702に接続される。ハードウェアプロセッサ704は、例えば、汎用マイクロプロセッサ若しくはマイクロコントローラ、及び/又は、組み込みシステム、グラフィックス処理装置(GPU)、デジタル信号プロセッサ、若しくはARMプロセッサ等の特殊目的マイクロプロセッサを含み得る。プロセッサ704は、統合された算術論理演算装置(ALU)を含んでもよいし、別個のALUに接続されてもよい。
コンピュータシステム700は、プロセッサ704により実行される命令及びデータを電子的にデジタルで記憶するために、I/Oサブシステム702に接続されるメインメモリ等のメモリ706の1つ以上のユニットを含む。メモリ706は、様々な形態のランダムアクセスメモリ(RAM)又は他の動的記憶デバイス等の揮発性メモリを含み得る。メモリ706はまた、プロセッサ704により実行される命令の実行中に一時変数又は他の中間情報を記憶するために使用され得る。そのような命令は、プロセッサ704にアクセス可能である非一時的なコンピュータ読み取り可能な記憶媒体に記憶されているときに、コンピュータシステム700を、そのような命令において指定されている動作を実行するようにカスタマイズされる特殊目的マシンに変換することができる。
コンピュータシステム700は、プロセッサ704用の命令及び情報を記憶するために、I/Oサブシステム702に接続される読み取り専用メモリ(ROM)708又は他の静的記憶デバイス等の不揮発性メモリをさらに含む。ROM708は、様々な形態のプログラム可能なROM(PROM)(消去可能なPROM(EPROM)又は電気的に消去可能なPROM(EEPROM)等)を含み得る。永続的ストレージ710のユニットは、様々な形態の不揮発性RAM(NVRAM)(FLASHメモリ等)、ソリッドステートストレージ、磁気ディスク、又は、光ディスク(CD−ROM又はDVD−ROM等)を含み得、命令及び情報を記憶するためにI/Oサブシステム702に接続され得る。ストレージ710は、プロセッサ704により実行されたときに、本開示における技術を実行するための、コンピュータにより実現される方法を実行させる命令及びデータを記憶するために使用され得る非一時的なコンピュータ読み取り可能な記憶媒体の例である。
メモリ706、ROM708、又はストレージ710における命令は、モジュール、メソッド、オブジェクト、ファンクション、ルーチン、又はコールとして編成される1つ以上の命令セットを含み得る。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又は、モバイルアプリケーションを含むアプリケーションプログラムとして編成され得る。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディアプログラミング又は他の機能をサポートするための1つ以上のライブラリ;TCP/IP、HTTP、又は他の通信プロトコルを実装するためのデータプロトコル命令又はスタック;HTML、XML、JPEG、MPEG、又はPNGを使用してコード化されたファイルを解析又はレンダリングするためのファイルフォーマット処理命令;グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース、又はテキストユーザインタフェース用のコマンドをレンダリング又は解釈するためのユーザインタフェース命令;オフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックスアプリケーション、オーディオアプリケーション、ソフトウェアエンジニアリングアプリケーション、教育アプリケーション、ゲームアプリケーション、又は各種アプリケーション等のアプリケーションソフトウェア;を含み得る。命令は、ウェブサーバ、ウェブアプリケーションサーバ、又はウェブクライアントを実現し得る。命令は、プレゼンテーション層、アプリケーション層、及び、構造化クエリ言語(SQL)を用いる又はSQLを用いないリレーショナルデータベースシステム、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータストレージ等のデータ記憶層として編成され得る。
コンピュータシステム700は、I/Oサブシステム702を介して、少なくとも1つの出力デバイス712に接続され得る。一実施形態において、出力デバイス712は、デジタルコンピュータディスプレイである。様々な実施形態において使用され得るディスプレイの例は、タッチスクリーンディスプレイ、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、又は電子ペーパーディスプレイを含む。コンピュータシステム700は、ディスプレイデバイスに代えて又はディスプレイデバイスに加えて、1つ以上の他のタイプの出力デバイス712を含んでもよい。他の出力デバイス712の例は、プリンタ、チケットプリンタ、プロッタ、プロジェクタ、サウンドカード、ビデオカード、スピーカ、ブザー、圧電デバイス、若しくは他の可聴デバイス、ランプ、LEDインジケータ若しくはLCDインジケータ、触覚デバイス、アクチュエータ、又はサーボ機構を含む。
少なくとも1つの入力デバイス714が、信号、データ、コマンド選択、又はジェスチャをプロセッサ704に伝達するために、I/Oサブシステム702に接続される。入力デバイス714の例は、タッチスクリーン、マイクロフォン、スチールデジタルカメラ、ビデオデジタルカメラ、英数字キー、他のキー、キーパッド、キーボード、グラフィックスタブレット、イメージスキャナ、ジョイスティック、クロック、スイッチ、ボタン、ダイアル、スライド、及び/又は、様々なタイプのセンサ(力覚センサ、動きセンサ、熱センサ、加速度計、ジャイロスコープ、及び慣性測定ユニット(IMU)センサ等)、及び/又は、様々なタイプのトランシーバ(セルラトランシーバ、Wi−Fi(登録商標)トランシーバ、無線周波数(RF)トランシーバ、又は赤外線(IR)トランシーバ等の無線トランシーバ、及び全地球測位システム(GPS)トランシーバ等)を含む。
別のタイプの入力デバイスは、入力機能に代えて又は入力機能に加えて、カーソル制御、又は、ディスプレイスクリーン上のグラフィカルインタフェースにおける誘導等の他の自動制御機能を実行してもよい制御デバイス716である。制御デバイス716は、タッチパッド、マウス、トラックボール、又は、方向情報及びコマンド選択をプロセッサ704に伝達し、ディスプレイ712上でのカーソル移動を制御するためのカーソル方向キーであってよい。入力デバイスは、第1の軸(例えばx軸)及び第2の軸(例えばy軸)という2つの軸における少なくとも2自由度を有することができ、これは、デバイスが平面内の位置を指定することを可能にする。別のタイプの入力デバイスは、ジョイスティック、ワンド、コンソール、ステアリングホイール、ペダル、ギアシフト機構、又は他のタイプの制御デバイス等の有線制御デバイス、無線制御デバイス、又は光学制御デバイスである。入力デバイス714は、ビデオカメラ及び奥行きセンサ等の複数の異なる入力デバイスの組み合わせを含んでもよい。
別の実施形態において、コンピュータシステム700は、出力デバイス712、入力デバイス714、及び制御デバイス716のうちの1つ以上が省かれるインターネットオブシングス(IoT)デバイスを含み得る。あるいは、そのような実施形態において、入力デバイス714が、1つ以上のカメラ、動き検出器、温度計、マイクロフォン、地震検知器、他のセンサ若しくは検出器、測定デバイス、又はエンコーダを含んでもよく、出力デバイス712が、シングルラインLED若しくはLCDディスプレイ等の特殊目的ディスプレイ、1つ以上のインジケータ、ディスプレイパネル、計器、バルブ、ソレノイド、アクチュエータ、又はサーボ機構を含んでもよい。
コンピュータシステム700がモバイルコンピューティングデバイスである場合、入力デバイス714は、複数の全地球測位システム(GPS)衛星に対して三角測位し、コンピュータシステム700の地球物理学的位置についての緯度−経度値等のジオロケーション又は位置データを判定して生成することができるGPSモジュールに接続されるGPS受信機を含んでもよい。出力デバイス712は、単独で、又は、他の特定用途向けデータが向けられるホスト724又はサーバ730との組み合わせで、コンピュータシステム700の位置を指定する位置報告パケット、通知、パルス若しくはハートビート信号、又は他の繰り返しデータ伝送を生成するためのハードウェア、ソフトウェア、ファームウェア、及びインタフェースを含んでもよい。
コンピュータシステム700は、カスタマイズされたハードワイヤードロジック、少なくとも1つのASIC又はFPGA、ファームウェア、及び/又は、コンピュータシステムとの組み合わせでロードされて使用又は実行されたときに、コンピュータシステムに特殊目的マシンとして動作させさせる又は特殊目的マシンとして動作するようにコンピュータシステムをプログラムするプログラム命令若しくはロジックを使用して、本開示に記載の技術を実現することができる。一実施形態に従うと、本開示における技術は、プロセッサ704が、メインメモリ706に含まれる少なくとも1つの命令の少なくとも1つのシーケンスを実行したことに応じて、コンピュータシステム700により実行される。そのような命令は、ストレージ710等の別の記憶媒体からメインメモリ706に読み出され得る。メインメモリ706に含まれる命令のシーケンスの実行は、プロセッサ704に、本開示に記載のプロセスステップを実行させる。代替実施形態において、ハードワイヤード回路が、ソフトウェア命令の代わりに又はソフトウェア命令との組み合わせで、使用されてもよい。
本開示において使用される「記憶媒体」という用語は、マシンに特定のやり方で動作を実行させる命令及び/又はデータを記憶する任意の非一時的な媒体を指す。そのような記憶媒体は、不揮発性媒体及び/又は揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージ710等の光ディスク又は磁気ディスクを含む。揮発性媒体は、メモリ706等の動的メモリを含む。一般的な形態の記憶媒体は、例えば、ハードディスク、ソリッドステートドライブ、フラッシュドライブ、磁気データ記憶媒体、任意の光学的又は物理的データ記憶媒体、メモリチップ等を含む。
記憶媒体は、伝送媒体とは異なるが、伝送媒体とともに使用され得る。伝送媒体は、記憶媒体の間で情報を転送することに関与する。例えば、伝送媒体は、I/Oサブシステム702のバスを含むワイヤを含め、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体はまた、電波及び赤外線データ通信中に生成されるもの等、音響又は光波の形態をとり得る。
様々な形態の媒体が、実行のために少なくとも1つの命令の少なくとも1つのシーケンスをプロセッサ704に伝達することに関与し得る。例えば、命令は、初期には、リモートコンピュータの磁気ディスク又はソリッドステートドライブに存在し得る。リモートコンピュータは、その動的メモリに命令をロードし、モデムを使用して、光ファイバ、同軸ケーブル、又は電話回線等の通信リンクを介して、命令を送信することができる。コンピュータシステム700のローカルにあるモデム又はルータは、通信リンクを介してデータを受信し、データを、コンピュータシステム700により読み取り可能なフォーマットに変換することができる。例えば、無線周波数アンテナ又は赤外線検出器等の受信機は、無線信号又は光信号において伝達されたデータを受信することができ、適切な回路は、データをバスに配置する等、データをI/Oサブシステム702に提供することができる。I/Oサブシステム702は、データをメモリ706に伝達し、プロセッサ704は、メモリ706からデータを読み出し、命令を実行する。メモリ706により受信された命令は、任意的に、プロセッサ704による実行の前又は後に、ストレージ710に記憶されてもよい。
コンピュータシステム700はまた、バス702に接続される通信インタフェース718を含む。通信インタフェース718は、ネットワーク722、又はインターネット上のパブリッククラウド若しくはプライベートクラウド等の少なくとも1つの通信ネットワークに直接的に又は間接的に接続される1つ以上のネットワークリンク720への双方向データ通信接続を提供する。例えば、通信インタフェース718は、Ethernet(登録商標)ネットワーキングインタフェース、サービス総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、又は、例えばEthernet(登録商標)ケーブル、任意の種類の金属ケーブル、光ファイバ回線、又は電話回線といった対応するタイプの通信回線へのデータ通信接続を提供するためのモデムであってよい。ネットワーク722は、幅広く、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、キャンパスネットワーク、インターネットワーク、又はこれらの任意の組み合わせを表す。通信インタフェース718は、適合するLANへのデータ通信接続を提供するためのLANカード、若しくは、セルラ無線電話無線ネットワーキング標準に従ってセルラデータを送信又は受信するように接続されるセルラ無線電話インタフェース、又は、衛星無線ネットワーキング標準に従ってデジタルデータを送信又は受信するように接続される衛星無線インタフェースを含み得る。そのような実装において、通信インタフェース718は、様々なタイプの情報を表すデジタルデータストリームを伝達する信号パスを介して、電気信号、電磁気信号、又は光信号を送受信する。
ネットワークリンク720は、典型的には、例えば、衛星技術、セルラ技術、Wi−Fi(登録商標)技術、又はBLUETOOTH(登録商標)技術を使用して、直接的に又は少なくとも1つのネットワークを介して他のデータデバイスに、電気データ通信、電磁気データ通信、又は光データ通信を提供する。例えば、ネットワークリンク720は、ネットワーク722を介するホストコンピュータ724への接続を提供することができる。
さらに、ネットワークリンク720は、インターネットサービスプロバイダ(ISP)726により運用されるコンピュータ及び/又はインターネットワーキングデバイスを介して、ネットワーク722を介する又は他のコンピューティングデバイスへの接続を提供することができる。ISP726は、インターネット728として表されているワールドワイドのパケットデータ通信ネットワークを介するデータ通信サービスを提供する。サーバコンピュータ730は、インターネット728に接続され得る。サーバ730は、幅広く、任意のコンピュータ、データセンター、ハイパーバイザを伴う又は伴わない仮想マシン又は仮想コンピューティングインスタンス、又は、DOCKER又はKUBERNETES等のコンテナプログラムシステムを実行するコンピュータを表す。サーバ730は、2つ以上のコンピュータ又はインスタンスを使用して実現される電子デジタルサービスであって、ウェブサービス要求、HTTPペイロード内のパラメータを含むユニフォームリソースロケータ(URL)文字列、APIコール、アプリケーションサービスコール、又は他のサービスコールを送信することによりアクセス及び使用される電子デジタルサービスを表すこともある。コンピュータシステム700及びサーバ730は、タスクを協調して実行する又はアプリケーション若しくはサービスを協調して実行する他のコンピュータ、処理クラスタ、サーバファーム、又は、コンピュータの他の団体構成を含む分散型コンピューティングシステムの要素を形成することができる。サーバ730は、モジュール、メソッド、オブジェクト、ファンクション、ルーチン、又はコールとして編成される1つ以上の命令セットを含み得る。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又は、モバイルアプリケーションを含むアプリケーションプログラムとして編成され得る。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディアプログラミング又は他の機能をサポートするための1つ以上のライブラリ;TCP/IP、HTTP、又は他の通信プロトコルを実装するためのデータプロトコル命令又はスタック;HTML、XML、JPEG、MPEG、又はPNGを使用してコード化されたファイルを解析又はレンダリングするためのファイルフォーマット処理命令;グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース、又はテキストユーザインタフェース用のコマンドをレンダリング又は解釈するためのユーザインタフェース命令;オフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックスアプリケーション、オーディオアプリケーション、ソフトウェアエンジニアリングアプリケーション、教育アプリケーション、ゲームアプリケーション、又は各種アプリケーション等のアプリケーションソフトウェア;を含み得る。サーバ730は、プレゼンテーション層、アプリケーション層、及び、構造化クエリ言語(SQL)を用いる又はSQLを用いないリレーショナルデータベースシステム、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータストレージ等のデータ記憶層をホストするウェブアプリケーションサーバを含み得る。
コンピュータシステム700は、1つ以上のネットワーク、ネットワークリンク720、及び通信インタフェース718を介して、メッセージを送信し、プログラムコードを含む命令及びデータを受信することができる。インターネットの例において、サーバ730は、インターネット728、ISP726、ローカルネットワーク722、及び通信ネットワーク718を介して、アプリケーションプログラムについての要求されたコードを送信することがある。コードが、受信されると、且つ/又は、後の実行のためにストレージ710又は他の不揮発性ストレージにおいて記憶されると、受信されたコードが、プロセッサ704により実行され得る。
このセクションにおいて説明された命令の実行は、実行されておりプログラムコード及びその現在のアクティビティからなるコンピュータプログラムのインスタンスの形で、プロセスを実施し得る。オペレーティングシステム(OS)に応じて、プロセスは、同時に命令を実行する複数の実行スレッドから構成され得る。このコンテキストにおいて、コンピュータプログラムは、命令の受動的集合体であり、プロセスは、これらの命令の実際の実行であり得る。複数のプロセスが、同じプログラムに関連付けられ得る。例えば、同じプログラムの複数のインスタンスを開始することは、2つ以上のプロセスが実行されていることをしばしば意味する。複数のプロセスがプロセッサ704を共用することを可能にするために、マルチタスキングが実行され得る。各プロセッサ704又はプロセッサのコアが、一度に1つのタスクを実行する間、コンピュータシステム700は、各タスクが終了するのを待つ必要なく、各プロセッサが、実行されているタスクの間で切り替えることを可能にするマルチタスキングを実行するようにプログラムされ得る。一実施形態において、タスクが入力/出力動作を実行するときに、切り替えることが可能であることをタスクが示したときに、又はハードウェア割り込みのときに、切り替えが実行され得る。複数のプロセスの並行実行の発生を提供するようにコンテキスト切り替えを迅速に実行することにより、インタラクティブなユーザアプリケーションについて迅速な応答を可能にするために、時分割が実行され得る。一実施形態において、セキュリティ及び信頼性のために、オペレーティングシステムは、厳格に調停及び制御されるプロセス間通信機能を提供することで、独立したプロセスの間の直接通信を防ぐことができる。
102 クライアント(コンピューティング)デバイス
110 アプリケーションサーバ
112 データインタフェース
114 ユーザインタフェース
116 ウェブアプリケーション管理アプリケーション
118 ウェブアプリケーション
120 ストレージ
130 ネットワーク
700 コンピュータシステム
702 入力/出力(I/O)サブシステム
704 プロセッサ
706 メモリ
708 ROM
710 ストレージ
712 出力デバイス
714 入力デバイス
716 制御デバイス
718 通信インタフェース
720 ネットワークリンク
722 ネットワーク
724 ホスト
726 ISP
728 インターネット
730 サーバ

Claims (20)

  1. ウェブアプリケーションを作成するためのシステムであって、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサにより実行されたときに、
    編成済みデータを受信することと、
    前記編成済みデータを受信した後に、
    前記編成済みデータに含まれる複数のデータタイプを判別することと、
    前記複数のデータタイプの各データタイプについての1つ以上の提案ウィジェットを決定することであって、各データタイプについての前記1つ以上の提案ウィジェットを決定することは、
    特定のデータタイプを2つ以上のデータタイプに分割することができると判定することと、
    前記特定のデータタイプについての前記2つ以上のデータタイプからの各データタイプについての提案ウィジェットを決定することと、
    を含む、決定することと、
    前記複数のデータタイプと、前記特定のデータタイプについての前記2つ以上のデータタイプからの各データタイプについての前記提案ウィジェットを含む、前記複数のデータタイプの各データタイプについての決定された前記1つ以上の提案ウィジェットと、を表示することと、
    前記1つ以上の提案ウィジェットを承諾するユーザ入力を受信したことに応じて、前記1つ以上の提案ウィジェットを含むウェブアプリケーションを作成することと、
    を生じさせる命令を記憶している記憶媒体と、
    を有する、システム。
  2. 前記1つ以上の提案ウィジェットの各ウィジェットは、特定のウィジェットタイプであり、各データタイプについての1つ以上の提案ウィジェットを決定することは、当該データタイプに対応する1つ以上の特定のウィジェットタイプを選択することを含む、請求項1に記載のシステム。
  3. 前記複数のデータタイプを表示することは、前記特定のデータタイプについての前記2つ以上のデータタイプを表示することを含む、請求項1に記載のシステム。
  4. 前記記憶媒体は、前記1つ以上のプロセッサにより実行されたときに、
    前記複数のデータタイプのうちの2つ以上のデータタイプを分割することができると判定することと、
    選択可能なオプションとして該2つ以上のデータタイプを表示することと、
    前記複数のデータタイプのうちの該2つ以上のデータタイプから前記特定のデータタイプを選択するユーザ入力を受信したことに応じて、前記特定のデータタイプを2つ以上のデータタイプに分割することと、
    を生じさせる命令をさらに記憶している、請求項1に記載のシステム。
  5. 前記記憶媒体は、前記1つ以上のプロセッサにより実行されたときに、
    前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定したことに応じて、2つ以上の提案データタイプを表示することと、
    前記2つ以上の提案データタイプを承諾するユーザ入力を受信したことに応じて、前記特定のデータタイプを前記2つ以上の提案データタイプに分割することと、
    を生じさせる命令をさらに記憶している、請求項1に記載のシステム。
  6. 前記記憶媒体は、前記1つ以上のプロセッサにより実行されたときに、前記1つ以上の提案ウィジェットを表示した後に、
    特定の提案ウィジェットを分割するユーザ要求を受信することと、
    前記特定の提案ウィジェットについての2つ以上の提案ウィジェットを決定することと、
    前記特定の提案ウィジェットを、前記特定の提案ウィジェットについての前記2つ以上の提案ウィジェットで置換することと、
    を生じさせる命令をさらに記憶しており、
    前記ウェブアプリケーションは、前記2つ以上の提案ウィジェットを含むが、前記特定の提案ウィジェットを含まない、請求項1に記載のシステム。
  7. 前記記憶媒体は、前記1つ以上のプロセッサにより実行されたときに、前記1つ以上の提案ウィジェットを表示した後に、
    2つ以上の特定の提案ウィジェットをマージするユーザ要求を受信することと、
    前記2つ以上の特定の提案ウィジェットについての置換用提案ウィジェットを決定することと、
    前記2つ以上の特定の提案ウィジェットを、前記置換用提案ウィジェットで置換することと、
    を生じさせる命令をさらに記憶しており、
    前記ウェブアプリケーションは、前記置換用提案ウィジェットを含むが、前記2つ以上の特定の提案ウィジェットを含まない、請求項1に記載のシステム。
  8. 前記記憶媒体は、前記1つ以上のプロセッサにより実行されたときに、
    前記ウェブアプリケーションを使用して、前記編成済みデータを記憶すること
    を生じさせる命令をさらに記憶しており、
    前記編成済みデータを記憶することは、前記編成済みデータを複数の部分に分割することを含み、前記複数の部分の各部分は、前記1つ以上の提案ウィジェットのうちの提案ウィジェットに関連付けられる、請求項1に記載のシステム。
  9. 前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定することは、前記編成済みデータのうちの、前記特定のデータタイプに関連する部分が、2つ以上の異なるデータタイプに対応すると判定することを含む、請求項1に記載のシステム。
  10. 前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定することは、前記編成済みデータのうちの、前記特定のデータタイプに関連する部分が、1つ以上のデリミタを含むと判定することを含む、請求項1に記載のシステム。
  11. ウェブアプリケーションを作成するための方法であって、
    編成済みデータを受信することと、
    前記編成済みデータを受信した後に、
    前記編成済みデータに含まれる複数のデータタイプを判別することと、
    前記複数のデータタイプの各データタイプについての1つ以上の提案ウィジェットを決定することであって、各データタイプについての前記1つ以上の提案ウィジェットを決定することは、
    特定のデータタイプを2つ以上のデータタイプに分割することができると判定することと、
    前記特定のデータタイプについての前記2つ以上のデータタイプからの各データタイプについての提案ウィジェットを決定することと、
    を含む、決定することと、
    前記複数のデータタイプと、前記特定のデータタイプについての前記2つ以上のデータタイプからの各データタイプについての前記提案ウィジェットを含む、前記複数のデータタイプの各データタイプについての決定された前記1つ以上の提案ウィジェットと、を表示することと、
    前記1つ以上の提案ウィジェットを承諾するユーザ入力を受信したことに応じて、前記1つ以上の提案ウィジェットを含むウェブアプリケーションを作成することと、
    を含む、方法。
  12. 前記1つ以上の提案ウィジェットの各ウィジェットは、特定のウィジェットタイプであり、各データタイプについての1つ以上の提案ウィジェットを決定することは、当該データタイプに対応する1つ以上の特定のウィジェットタイプを選択することを含む、請求項11に記載の方法。
  13. 前記複数のデータタイプを表示することは、前記特定のデータタイプについての前記2つ以上のデータタイプを表示することを含む、請求項11に記載の方法。
  14. 前記複数のデータタイプのうちの2つ以上のデータタイプを分割することができると判定することと、
    選択可能なオプションとして該2つ以上のデータタイプを表示することと、
    前記複数のデータタイプのうちの該2つ以上のデータタイプから前記特定のデータタイプを選択するユーザ入力を受信したことに応じて、前記特定のデータタイプを2つ以上のデータタイプに分割することと、
    をさらに含む、請求項11に記載の方法。
  15. 前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定したことに応じて、2つ以上の提案データタイプを表示することと、
    前記2つ以上の提案データタイプを承諾するユーザ入力を受信したことに応じて、前記特定のデータタイプを前記2つ以上の提案データタイプに分割することと、
    をさらに含む、請求項11に記載の方法。
  16. 前記1つ以上の提案ウィジェットを表示した後に、
    特定の提案ウィジェットを分割するユーザ要求を受信することと、
    前記特定の提案ウィジェットについての2つ以上の提案ウィジェットを決定することと、
    前記特定の提案ウィジェットを、前記特定の提案ウィジェットについての前記2つ以上の提案ウィジェットで置換することと、
    をさらに含み、
    前記ウェブアプリケーションは、前記2つ以上の提案ウィジェットを含むが、前記特定の提案ウィジェットを含まない、請求項11に記載の方法。
  17. 前記1つ以上の提案ウィジェットを表示した後に、
    2つ以上の特定の提案ウィジェットをマージするユーザ要求を受信することと、
    前記2つ以上の特定の提案ウィジェットについての置換用提案ウィジェットを決定することと、
    前記2つ以上の特定の提案ウィジェットを、前記置換用提案ウィジェットで置換することと、
    をさらに含み、
    前記ウェブアプリケーションは、前記置換用提案ウィジェットを含むが、前記2つ以上の特定の提案ウィジェットを含まない、請求項11に記載の方法。
  18. 前記ウェブアプリケーションを使用して、前記編成済みデータを記憶すること
    をさらに含み、
    前記編成済みデータを記憶することは、前記編成済みデータを複数の部分に分割することを含み、前記複数の部分の各部分は、前記1つ以上の提案ウィジェットのうちの提案ウィジェットに関連付けられる、請求項11に記載の方法。
  19. 前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定することは、前記編成済みデータのうちの、前記特定のデータタイプに関連する部分が、2つ以上の異なるデータタイプに対応すると判定することを含む、請求項11に記載の方法。
  20. 前記特定のデータタイプを2つ以上のデータタイプに分割することができると判定することは、前記編成済みデータのうちの、前記特定のデータタイプに関連する部分が、1つ以上のデリミタを含むと判定することを含む、請求項11に記載の方法。
JP2019013723A 2018-02-01 2019-01-30 ガイドされるウェブアプリケーション作成 Active JP6648845B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/886,501 2018-02-01
US15/886,501 US10664245B2 (en) 2018-02-01 2018-02-01 Guided web-application generation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020004051A Division JP7222364B2 (ja) 2018-02-01 2020-01-15 ガイドされるウェブアプリケーション作成

Publications (2)

Publication Number Publication Date
JP2019133661A JP2019133661A (ja) 2019-08-08
JP6648845B2 true JP6648845B2 (ja) 2020-02-14

Family

ID=65440759

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019013723A Active JP6648845B2 (ja) 2018-02-01 2019-01-30 ガイドされるウェブアプリケーション作成
JP2020004051A Active JP7222364B2 (ja) 2018-02-01 2020-01-15 ガイドされるウェブアプリケーション作成

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020004051A Active JP7222364B2 (ja) 2018-02-01 2020-01-15 ガイドされるウェブアプリケーション作成

Country Status (3)

Country Link
US (2) US10664245B2 (ja)
EP (1) EP3522032B1 (ja)
JP (2) JP6648845B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664245B2 (en) * 2018-02-01 2020-05-26 Ricoh Company, Ltd. Guided web-application generation
CN110446228B (zh) * 2019-08-13 2022-02-22 腾讯科技(深圳)有限公司 数据传输方法、装置、终端设备及存储介质
US10970050B1 (en) * 2019-09-27 2021-04-06 Adp, Llc User interface engine for miniapp development
US12118399B2 (en) * 2020-11-16 2024-10-15 Shenzhen Chuangwei-Rgb Electronics Co., Ltd. Resource allocation method, device and audio-visual playback terminal
US11119736B1 (en) * 2021-02-24 2021-09-14 Contentful GmbH Content management system using an application framework for integrating apps for editing content
US20220398140A1 (en) * 2021-06-09 2022-12-15 Citrix Systems, Inc. Enabling microapp access based on determined application states and user-initiated triggering events

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710901A (en) * 1995-12-29 1998-01-20 Tci Summitrak Of Texas, Inc. Method and apparatus for validating data entered by a user
JP3956553B2 (ja) * 1998-11-04 2007-08-08 富士ゼロックス株式会社 アイコン表示処理装置
US6476828B1 (en) * 1999-05-28 2002-11-05 International Business Machines Corporation Systems, methods and computer program products for building and displaying dynamic graphical user interfaces
US6701345B1 (en) * 2000-04-13 2004-03-02 Accenture Llp Providing a notification when a plurality of users are altering similar data in a health care solution environment
EP1310084B1 (en) * 2000-04-17 2005-10-12 Shawn E. Wiederin Method for charging on-line directory assistance services
US7254782B1 (en) * 2001-06-29 2007-08-07 Family Vet, Inc. Recordation and organization of problem solving data
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7835504B1 (en) * 2003-03-16 2010-11-16 Palm, Inc. Telephone number parsing and linking
US7415484B1 (en) * 2003-05-09 2008-08-19 Vignette Corporation Method and system for modeling of system content for businesses
US20090013245A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor xml editor framework
US8458612B2 (en) * 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
EP2192474B1 (en) * 2008-12-01 2017-04-12 LG Electronics Inc. Method for operating execution icon of mobile terminal
US9171076B2 (en) * 2009-05-18 2015-10-27 International Business Machines Corporation Help information for links in a mashup page
JP2011008599A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd 集合知データベースシステムにおける項目情報処理装置
US8751952B2 (en) * 2009-11-18 2014-06-10 Sap Ag Dataflow-driven service composition at the presentation layer
US9253306B2 (en) * 2010-02-23 2016-02-02 Avaya Inc. Device skins for user role, context, and function and supporting system mashups
US8949834B2 (en) * 2010-04-07 2015-02-03 Yahoo! Inc. Modeling and scheduling asynchronous incremental workflows
US8645165B2 (en) * 2010-06-03 2014-02-04 General Electric Company Systems and methods for value-based decision support
US8739157B2 (en) * 2010-08-26 2014-05-27 Adobe Systems Incorporated System and method for managing cloud deployment configuration of an application
US9959263B2 (en) * 2010-12-07 2018-05-01 Microsoft Technology Licensing, Llc. User interface form field expansion
US20120180033A1 (en) * 2011-01-12 2012-07-12 David Amos Brown System and Methodology for Autonomous, Value-Centric, Architectural, Software Programming
US8689235B2 (en) * 2011-01-18 2014-04-01 Gbc Industries System and method for enabling interaction between a cloud application and a local application
US8806348B2 (en) * 2011-05-12 2014-08-12 Google Inc. Data model generation based on user interface specification
US8788955B2 (en) * 2011-05-12 2014-07-22 Google Inc. Creation and configuration of compound widgets
US9087361B2 (en) * 2012-06-06 2015-07-21 Addepar, Inc. Graph traversal for generating table views
WO2014004154A1 (en) * 2012-06-24 2014-01-03 Bharatia Veeral Systems and methods for declarative applications
US20140032392A1 (en) * 2012-07-30 2014-01-30 Apple Inc. Financing systems integration
US9594814B2 (en) * 2012-09-07 2017-03-14 Splunk Inc. Advanced field extractor with modification of an extracted field
KR20140040920A (ko) * 2012-09-27 2014-04-04 한국전자통신연구원 매쉬업 블록 유저 인터페이스를 이용한 매쉬업 저작 장치 및 그 방법
US20140196022A1 (en) * 2013-01-08 2014-07-10 Alexey Skutin Cloud Based Application Packaging
GB201301888D0 (en) * 2013-02-03 2013-03-20 Neutrino Concepts Ltd User interface
US10019144B2 (en) * 2013-02-15 2018-07-10 Quick Eye Technologies Inc. Organizer for data that is subject to multiple criteria
US10084650B2 (en) * 2013-07-09 2018-09-25 Tail-f Systems AB Graphical user interface for customizing graphical representations based on registry data
US20150113451A1 (en) * 2013-10-23 2015-04-23 Steve Kopp Creation of widgets based on a current data context
WO2015143416A1 (en) * 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
JP2016091244A (ja) * 2014-10-31 2016-05-23 富士通エフ・アイ・ピー株式会社 情報処理装置、プログラム
US20180032605A1 (en) 2015-02-18 2018-02-01 Persistent Systems Limited Integrated intermediary computing device for data analytic enhancement
US10437575B2 (en) * 2015-08-14 2019-10-08 Aeris Communications, Inc. Aercloud application express and aercloud application express launcher
JP6613706B2 (ja) * 2015-08-18 2019-12-04 日本電気株式会社 テーブル設計支援装置、テーブル設計支援方法及び制御プログラム
US9904536B1 (en) * 2015-09-18 2018-02-27 Quest Software Inc. Systems and methods for administering web widgets
US10930389B2 (en) * 2016-01-20 2021-02-23 Change Healthcare Holdings, Llc Systems and methods for the classification and indexing of contract documentation
GB2549314A (en) * 2016-04-14 2017-10-18 Ge Aviation Systems Llc Systems and methods for providing data exploration techniques
CA2975550C (en) * 2016-08-05 2024-02-20 Capital One Services, Llc Browser extension for field detection and automatic population
US10002163B2 (en) * 2016-08-18 2018-06-19 Palantir Technologies Inc. Managing sharable cell-based analytical notebooks
US10642853B2 (en) * 2016-12-14 2020-05-05 Palantir Technologies Inc. Automatically generating graphical data displays based on structured descriptions
US11328128B2 (en) * 2017-02-28 2022-05-10 SavantX, Inc. System and method for analysis and navigation of data
US20180275845A1 (en) * 2017-03-23 2018-09-27 International Business Machines Corporation Dashboard Creation With Popular Patterns and Suggestions Using Analytics
US10528700B2 (en) * 2017-04-17 2020-01-07 Rockwell Automation Technologies, Inc. Industrial automation information contextualization method and system
US10664245B2 (en) * 2018-02-01 2020-05-26 Ricoh Company, Ltd. Guided web-application generation

Also Published As

Publication number Publication date
EP3522032B1 (en) 2022-05-04
US11392352B2 (en) 2022-07-19
JP2019133661A (ja) 2019-08-08
EP3522032A1 (en) 2019-08-07
US20200394023A1 (en) 2020-12-17
US10664245B2 (en) 2020-05-26
US20190235845A1 (en) 2019-08-01
JP2020064679A (ja) 2020-04-23
JP7222364B2 (ja) 2023-02-15

Similar Documents

Publication Publication Date Title
JP6648845B2 (ja) ガイドされるウェブアプリケーション作成
US10592588B2 (en) Semantic distance-based assignment of data elements to visualization edges
JP7053885B2 (ja) 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム
US10691299B2 (en) Display of hierarchical datasets using high-water mark scrolling
US11281358B2 (en) Selective display of chat room contents
US10108931B2 (en) Lock-based updating of a document
US20140096046A1 (en) Composite application framework
US11526464B2 (en) Scaling HDFS for hive
US11762701B2 (en) Computer system providing numeric calculations with less resource usage
US11061552B1 (en) Accessing shared folders with commands in a chat interface
US20210406454A1 (en) Automated suggestions in cross-context digital item containers and collaboration
US20240168986A1 (en) Efficient access marking approach for efficient retrieval of document access data
US11075916B2 (en) Entitlement-driven communication of functionality privileges between network-based services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191230

R151 Written notification of patent or utility model registration

Ref document number: 6648845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151