(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023099313
(43)【公開日】2023-07-12
(54)【発明の名称】フロントエンドページ生成のエンドツーエンドソリューションを提供するシステム、方法、及びコンピュータプログラム
(51)【国際特許分類】
G06F 8/34 20180101AFI20230705BHJP
【FI】
G06F8/34
【審査請求】有
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022200989
(22)【出願日】2022-12-16
(31)【優先権主張番号】63/295,195
(32)【優先日】2021-12-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/679,238
(32)【優先日】2022-02-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100099623
【弁理士】
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【弁理士】
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【弁理士】
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【弁理士】
【氏名又は名称】田中 祐
(72)【発明者】
【氏名】アルマンド・ヘルナンデス
(72)【発明者】
【氏名】サンダー・クリシュナムルシー
(72)【発明者】
【氏名】ボウ・ジャン
(72)【発明者】
【氏名】トミー・タン
(72)【発明者】
【氏名】ジア・シェイ
(72)【発明者】
【氏名】ビクター・アーサー・ナザレス
(72)【発明者】
【氏名】ヤオドン・ユウ
(72)【発明者】
【氏名】ジュリアーノ・マンノ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC07
5B376BC43
5B376BC52
(57)【要約】 (修正有)
【課題】デザインツーパブリッシングフロントエンドページ生成のエンドツーエンドソリューションを提供する。
【解決手段】システムは、UIコンポーネントをデザインするデザインモジュールと、デザインエレメント属性を用いてUIコンポーネントをアノテートするアノテーションサブモジュールと、データスキーマに従ってデータベースオブジェクトを記憶するデータベースと、グラフィカルユーザインタフェースを介してコーディングすることなくUIコンポーネントのデザインエレメント属性をデータベースオブジェクト属性にマッピングするマッパーモジュールと、UIコンポーネントをフロントエンドページフィードに追加し、データベースオブジェクトに関連付けるコンテンツ管理モジュールと、マッピングされたUIコンポーネントのデータベースオブジェクト属性のインスタンス固有の値を取り出すフィード生成モジュールと、メタデータバスと、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
フロントエンドページ生成のデザインからパブリッシングまでのエンドツーエンドソリューションを提供するシステムであって、
ユーザがUIコンポーネントをデザインすることを可能にするデザインモジュールと、
ユーザがデザインエレメント属性を用いて前記UIコンポーネントをアノテートすることを可能にする前記デザインモジュール内のアノテーションサブモジュールと、
データスキーマに従ってデータベースオブジェクト属性を有するデータベースオブジェクトを記憶するデータベースと、
ユーザがグラフィカルユーザインタフェースを介してコーディングすることなく前記UIコンポーネントのデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするマッパーモジュールと、
ユーザがマッピングされたUIコンポーネントをフロントエンドページフィードに追加し、該マッピングされたUIコンポーネントを前記データベースオブジェクトのインスタンスに関連付けることを可能にするコンテンツ管理モジュールと、
フロントエンドページフィードにおけるマッピングされたUIコンポーネントの前記データベースオブジェクト属性のインスタンス固有の値を取り出すフィード生成モジュールであって、フロントエンドページの前記インスタンス固有の値は、クライアントアプリケーションによる前記フロントエンドページのリクエストに応答して前記データベースから取り出される、フィード生成モジュールと、
前記デザインモジュール、前記データベース、前記マッパーモジュール、前記コンテンツ管理モジュール、及び前記フィード生成モジュールが通信することであって、前記デザインエレメント属性、前記データベースオブジェクト属性、及びデータベースオブジェクト属性へのデザインエレメント属性の前記マッピングに関連したメタデータを通信することを含むことを可能にするメタデータバスと、
を備える、システム。
【請求項2】
ユーザがデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするために、前記マッパーモジュールは、前記デザイン属性に関連したメタデータを、前記メタデータバスを介して前記アノテーションサブモジュールから取り出すとともに、前記ビジネスオブジェクトのメタデータを、前記メタデータバスを介して前記データベースから取り出す、請求項1に記載のシステム。
【請求項3】
ユーザがマッピングされたUIコンポーネントをフィードに追加することを可能にするために、前記コンテンツ管理モジュールは、前記マッピングされたUIコンポーネントのメタデータを、前記メタデータバスを介して前記マッピングモジュールから取得し、前記ユーザが前記マッピングされたUIコンポーネントをデータベースオブジェクトのインスタンスに関連付けることを可能にするために、前記コンテンツ管理モジュールは、前記データベースオブジェクトの前記インスタンスのデータを前記データベースから抽出する、請求項2に記載のシステム。
【請求項4】
前記アノテーションモジュールは、前記デザインモジュールへのソフトウェアプラグインである、請求項1に記載のシステム。
【請求項5】
ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にすることは、ユーザがフィールドを用いてUIコンポーネントをアノテートすることを可能にすることを含み、各フィールドは、1つ以上の既定のフィールドプロパティに関連付けられ、デザインエレメント属性をビジネスオブジェクト属性にマッピングすることは、フィールドプロパティをビジネスオブジェクト属性にマッピングすることを含む、請求項1に記載のシステム。
【請求項6】
前記データベースオブジェクトはビジネスオブジェクトである、請求項1に記載のシステム。
【請求項7】
前記ビジネスオブジェクトは、複数の店舗のデータを有するデータベーステーブルを含む、請求項6に記載のシステム。
【請求項8】
デザインからパブリッシングまでのフロントエンドページ生成を可能にする、コンピュータシステムによって実行される方法であって、
ユーザがUIコンポーネントをデザインすることを可能にすることと、
ユーザがデザインエレメント属性を用いて前記UIコンポーネントをアノテートすることを可能にすることと、
UIコンポーネントのユーザのアノテーションを受信することと、
前記アノテートされたUIコンポーネントのメタデータを生成することであって、該メタデータは、前記デザインエレメント属性を記述していることと、
データベースオブジェクトのデータベースオブジェクト属性に関連したメタデータを取り出すことと、
前記デザインエレメント属性の前記メタデータと、前記データベースオブジェクト属性からの前記メタデータとを使用して、ユーザがコーディングすることなく前記UIコンポーネントの前記デザインエレメント属性のそれぞれを前記データベースオブジェクト属性のうちの1つにマッピングすることを可能にするユーザインタフェースを提供することと、
前記UIコンポーネントのデータベースオブジェクト属性へのデザインエレメント属性の前記ユーザのマッピングを受信することと、
ユーザが前記UIコンポーネントをフロントエンドページフィードに追加し、前記マッピングされたUIコンポーネントを前記データベースオブジェクトの1つ以上のインスタンスに関連付けることを可能にすることと、
前記フロントエンドページのリクエストをクライアントアプリケーションから受信することと、
前記UIコンポーネントにマッピングされた前記ビジネスオブジェクト属性のインスタンス固有の値を前記データベースから取り出すことと
前記フロントエンドページを前記UIコンポーネントの前記ビジネスオブジェクト属性の前記インスタンス固有の値とともに前記クライアントアプリケーションに提供することと、
を含む、方法。
【請求項9】
ユーザがデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするために、前記マッパーモジュールは、前記デザイン属性に関連したメタデータを、前記メタデータバスを介して前記アノテーションサブモジュールから取り出すとともに、前記ビジネスオブジェクトのメタデータを、前記メタデータバスを介して前記データベースから取り出す、請求項8に記載の方法。
【請求項10】
ユーザがマッピングされたUIコンポーネントをフィードに追加することを可能にするために、前記コンテンツ管理モジュールは、前記マッピングされたUIコンポーネントのメタデータを、前記メタデータバスを介して前記マッピングモジュールから取得し、前記ユーザが前記マッピングされたUIコンポーネントをデータベースオブジェクトのインスタンスに関連付けることを可能にするために、前記コンテンツ管理モジュールは、前記データベースオブジェクトの前記インスタンスのデータを前記データベースから抽出する、請求項9に記載の方法。
【請求項11】
前記アノテーションモジュールは、前記デザインモジュールへのソフトウェアプラグインである、請求項8に記載の方法。
【請求項12】
ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にすることは、ユーザがフィールドを用いてUIコンポーネントをアノテートすることを可能にすることを含み、各フィールドは、1つ以上の既定のフィールドプロパティに関連付けられ、デザインエレメント属性をビジネスオブジェクト属性にマッピングすることは、フィールドプロパティをビジネスオブジェクト属性にマッピングすることを含む、請求項8に記載の方法。
【請求項13】
前記データベースオブジェクトはビジネスオブジェクトである、請求項8に記載の方法。
【請求項14】
前記ビジネスオブジェクトは、複数の店舗のデータを有するデータベーステーブルを含む、請求項13に記載の方法。
【請求項15】
コンピュータシステムによって実行されると、該コンピュータシステムがデザインからパブリッシングまでのフロントエンドページ生成を可能にする以下のステップを実行することを可能にするコンピュータプログラムを含む非一時的コンピュータ可読媒体であって、前記ステップは、
ユーザがUIコンポーネントをデザインすることを可能にすることと、
ユーザがデザインエレメント属性を用いて前記UIコンポーネントをアノテートすることを可能にすることと、
UIコンポーネントのユーザのアノテーションを受信することと、
前記アノテートされたUIコンポーネントのメタデータを生成することであって、該メタデータは、前記デザインエレメント属性を記述していることと、
データベースオブジェクトのデータベースオブジェクト属性に関連したメタデータを取り出すことと、
前記デザインエレメント属性の前記メタデータと、前記データベースオブジェクト属性からの前記メタデータとを使用して、ユーザがコーディングすることなく前記UIコンポーネントの前記デザインエレメント属性のそれぞれを前記データベースオブジェクト属性のうちの1つにマッピングすることを可能にするユーザインタフェースを提供することと、
前記UIコンポーネントのデータベースオブジェクト属性へのデザインエレメント属性の前記ユーザのマッピングを受信することと、
ユーザが前記UIコンポーネントをフロントエンドページフィードに追加し、前記マッピングされたUIコンポーネントを前記データベースオブジェクトの1つ以上のインスタンスに関連付けることを可能にすることと、
前記フロントエンドページのリクエストをクライアントアプリケーションから受信することと、
前記UIコンポーネントにマッピングされた前記ビジネスオブジェクト属性のインスタンス固有の値を前記データベースから取り出すことと、
前記フロントエンドページを前記UIコンポーネントの前記ビジネスオブジェクト属性の前記インスタンス固有の値とともに前記クライアントアプリケーションに提供することと、
を含む、非一時的コンピュータ可読媒体。
【請求項16】
ユーザがデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするために、前記マッパーモジュールは、前記デザイン属性に関連したメタデータを、前記メタデータバスを介して前記アノテーションサブモジュールから取り出すとともに、前記ビジネスオブジェクトのメタデータを、前記メタデータバスを介して前記データベースから取り出す、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
ユーザがマッピングされたUIコンポーネントをフィードに追加することを可能にするために、前記コンテンツ管理モジュールは、前記マッピングされたUIコンポーネントのメタデータを、前記メタデータバスを介して前記マッピングモジュールから取得し、前記ユーザが前記マッピングされたUIコンポーネントをデータベースオブジェクトのインスタンスに関連付けることを可能にするために、前記コンテンツ管理モジュールは、前記データベースオブジェクトの前記インスタンスのデータを前記データベースから抽出する、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記アノテーションモジュールは、前記デザインモジュールへのソフトウェアプラグインである、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にすることは、ユーザがフィールドを用いてUIコンポーネントをアノテートすることを可能にすることを含み、各フィールドは、1つ以上の既定のフィールドプロパティに関連付けられ、デザインエレメント属性をビジネスオブジェクト属性にマッピングすることは、フィールドプロパティをビジネスオブジェクト属性にマッピングすることを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記データベースオブジェクトはビジネスオブジェクトである、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項21】
前記ビジネスオブジェクトは、複数の店舗のデータを有するデータベーステーブルを含む、請求項20に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、包括的には、フロントエンド開発に関し、より具体的には、フロントエンドページ生成のデザインからパブリッシングまでのエンドツーエンドソリューションを提供するシステム及び方法に関する。
【0002】
[関連出願の相互参照]
本出願は、「System, Method, and Computer Program for Providing an End-to-end Solution for Frontend Page Generation」と題する2021年12月30日に出願された米国仮特許出願第63/295,195号に対する優先権を主張し、その内容は、本明細書中に完全に記載されているように、引用することにより本明細書の一部をなすものとする。
【背景技術】
【0003】
既存のフロントエンドページ生成ソリューションにおいて、デザインシステム、コンテンツ管理システム、及びフィード(feed)生成システムは全て、通信を行わず、連携するには手動による介入を必要とする個別のスタンドアローンシステムである。各システムは、多くの時間とコストを要する可能性があるデザイン及び開発のために、特に、ユーザインタフェース(UI:user interface)コンポーネントが頻繁に変化するウェブサイトのために独自のリソースを必要とする。本発明は、デザインモジュール、コンテンツ管理モジュール、及びフィード生成モジュールの間に担当の分離が存在して、変更の際の柔軟性及び効率性を提供するが、モジュール間にメタデータバスを介した明確でまとまりのある(clear and cohesive)通信が存在するシステムを提供する。さらに、本発明は、ユーザがコーディングをほとんど又は全く行わずにウェブサイトに変更を加えることを可能にし、その結果、UIのデザインからユーザインタフェースにおいてレンダリングを行うクライアントアプリケーションに提供されるコンテンツまでのエンドツーエンドソリューションを提供する。
【発明の概要】
【0004】
本開示は、フロントエンドページ生成のデザインからパブリッシングまでのエンドツーエンドソリューションを提供するシステム、方法、及びコンピュータプログラムを記載している。本方法は、サーバと、記憶システムと、ネットワークと、オペレーティングシステムと、データベースとを含むコンピュータシステムによって実行される。
【0005】
相互接続するのに多くのリソースを要する手動介入を必要とする3つの個別のシステムではなく、本発明は、ユーザがコーディングをほとんど又は全く行わずにウェブサイト又はモバイルアプリケーションウェブビューに変更を加えることができるとともに、デザインモジュール、コンテンツ管理モジュール、及びフィード生成モジュールが、メタデータバスを介して明確でまとまりのある方法で通信して、フロントエンドページをインスタンス固有の値とともにクライアントアプリケーションに提供するソリューションを提供する。
【0006】
1つの実施形態において、デザインからパブリッシングまでのフロントエンドページ生成を可能にする方法が、以下のステップ、すなわち、
ユーザがUIコンポーネントをデザインすることを可能にするステップと、
ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にするステップと、
UIコンポーネントのユーザのアノテーションを受信するステップと、
アノテートされたUIコンポーネントのメタデータを生成するステップであって、メタデータは、デザインエレメント属性を記述している、ステップと、
データベースオブジェクトのデータベースオブジェクト属性に関連したメタデータを取り出すステップと、
デザインエレメント属性のメタデータと、データベースオブジェクト属性からのメタデータとを使用して、ユーザがコーディングすることなくUIコンポーネントのデザインエレメント属性のそれぞれをデータベースオブジェクト属性のうちの1つにマッピングすることを可能にするユーザインタフェースを提供するステップと、
UIコンポーネントのデータベースオブジェクト属性へのデザインエレメント属性のユーザのマッピングを受信するステップと、
ユーザがUIコンポーネントをフロントエンドページフィードに追加し、マッピングされたUIコンポーネントをデータベースオブジェクトの1つ以上のインスタンスに関連付けることを可能にするステップと、
フロントエンドページのリクエストをクライアントアプリケーションから受信するステップと、
UIコンポーネントにマッピングされたビジネスオブジェクト属性のインスタンス固有の値をデータベースから取り出すステップと、
フロントエンドページをUIコンポーネントのビジネスオブジェクト属性のインスタンス固有の値とともにクライアントアプリケーションに提供するステップと、
を含む。
【図面の簡単な説明】
【0007】
【
図1】従来技術のウェブページ生成の方法を示すフローチャートである。
【
図2】デザインツーパブリッシング(design-to-publishing)フロントエンドページ生成の、1つの実施形態による例示のシステムアーキテクチャを示すブロック図である。
【
図3A】デザインツーパブリッシングフロントエンドページ生成プロセスの、1つの実施形態による方法を示すフローチャートである。
【
図3B】デザインツーパブリッシングフロントエンドページ生成プロセスの、1つの実施形態による方法を示すフローチャートである。
【
図4】UIコンポーネントをアノテートする、1つの実施形態による例示的なグラフィカルユーザインタフェースのスクリーンショットである。
【
図5】アノテーションツーマッピング(annotation-to-mapping)プロセスの、1つの実施形態による例示的なユーザインタフェースのスクリーンショットである。
【
図6】マッピングがコンテンツ管理モジュールにおいてオーバライドにされる、1つの実施形態による例示的なユーザインタフェースのスクリーンショットである。
【
図7A】整合するタイプに基づいて属性をマッピングする、1つの実施形態による例示的なユーザインタフェースのスクリーンショットである。
【
図7B】整合するタイプに基づいて属性をマッピングする、1つの実施形態による例示的なユーザインタフェースのスクリーンショットである。
【
図8】インスタンス固有のデータを有するUIコンポーネントの、1つの実施形態による例示的なユーザインタフェースのスクリーンショットである。
【
図9】メタデータバスの、1つの実施形態による例示のシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0008】
本開示は、フロントエンドページ生成のデザインからパブリッシングまでのエンドツーエンドソリューションを提供するシステム、方法、及びコンピュータプログラムを記載している。ソフトウェアプログラム又はウェブサイトのフロントエンドページは、ユーザがインタラクトする全てのものである。例えば、フロントエンドページは、ウェブページ、モバイルアプリケーションにおけるウェブビュー、又はクライアントデバイスにおいてユーザに見える他の任意のユーザインタフェース画面を含むことができる。本方法は、サーバと、記憶システムと、ネットワークと、オペレーティングシステムと、データベースとを含むコンピュータシステム(「本システム」)によって実行される。
【0009】
本方法の例示の実施態様を
図1~
図8に関してより詳細に説明する。
【0010】
1.従来技術のウェブページ生成の方法
図1は、従来技術のウェブページ生成の方法を示している。
図1に見られるように、デザインシステム110、コンテンツ管理システム120、及びフィード生成システム130は、それぞれスタンドアローンシステムであり、接続されていない。それどころか、ユーザ(例えば、ソフトウェア開発者)は、これらのシステムの間の関連付けを手動でプログラミング又はコーディングしなければならず、これにはかなりのリソースを要する。例えば、データを定義するコンテンツ管理システム120と、どのデータが使用されているかを定義するフィード生成システム130とを手動で接続する必要があり、これらの双方をデザインシステム110におけるデザインと整合させる必要がある。
【0011】
2.例示のシステムアーキテクチャ
図2は、本明細書に説明される方法を実行するシステムの例示のアーキテクチャを示している。ただし、本明細書に説明される方法は、他のシステムにおいても実施することができ、図示したシステムに限定されるものではない。
【0012】
図2に見られるように、デザインモジュール210は、ユーザがUIコンポーネントをデザインすることを可能にする。いくつかの実施形態において、デザインモジュールは、本システムに本来備わっている場合もあるし、本システムに含まれるサードパーティアプリケーション(例えば、FIGMA)である場合もある。デザインモジュール210内には、アノテーションサブモジュール215がある。いくつかの実施形態において、アノテーションサブモジュール215は、デザインモジュール210へのソフトウェアプラグインである。アノテーションサブモジュール215は、ユーザが、ユーザインタフェースの1つ以上のフィールドを構成することによって、デザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にする。各フィールドは、既定のフィールドプロパティに関連付けられている。ユーザインタフェース内の各フィールドは完全に構成可能であるので、これによって、ユーザは、新たなフィールドタイプを容易に追加することが可能になる。既定のフィールドプロパティは、後に、特定のビジネスオブジェクトプロパティにマッピングされるが、一般的な既定フィールドプロパティから開始することによって、UIエレメントを容易に変更することが可能になり、最大の柔軟性を有することが可能になる。
【0013】
いくつかの実施形態において、アノテーションサブモジュール215は、単純タイプ(例えば、シンプルテキスト、リンク、又はURL)及び複合タイプ(例えば、ボタンコンポーネント、シンプル画像コンポーネント、報酬等)等の1つ以上のタイプ定義を有し、単純タイプ及び複合タイプは、以下の例示的なコンポーネントを有する。
単純タイプ(最低レベルの異なる種類のプロパティ値に基づく):
・ストリング、リンク、画像URL、16進数、アイコン、ブール
複合タイプ(単純タイプの組み合わせに基づく):
・シンプルテキスト
○<アイテムテキスト,タイプ:ストリング>
・ボタン
○<ボタンテキスト,タイプ:ストリング>
○<CTA URL,タイプ:リンク>
・画像
○<Altテキスト,タイプ:ストリング>
○<画像URL,タイプ:画像URL>
○<背景色,タイプ:16進数>
・複合画像(リンク画像):
○<Altテキスト,タイプ:ストリング>
○<画像URL,タイプ:画像URL>
○<背景色,タイプ:16進数>
○<CTA URL,タイプ:リンク>
【0014】
全てのタイプ定義は、<isOptional,タイプ:ブール>及び<isOverridable,タイプ:ブール>等の拡張可能なプロパティを有する。これらのプロパティは、フィード定義内のUIコンポーネントを使用してトピックをセットアップするときに、属性の包含又は取り替えを制御する能力をコンテンツ管理モジュールユーザに与える。UIコンポーネントをアノテートするとき、ユーザは、UIコンポーネントにおける属性のそれぞれについてタイプ(例えば、単純又は複合)を選択する。このタイプは、そのメタデータの一部として記憶される。メタデータの例として、画像、テキスト、ボタン、リンク画像、リンクテキスト等がある。
【0015】
データベース245は、データスキーマに従って、データベースオブジェクト属性を有するデータベースオブジェクトを記憶する。いくつかの実施形態において、データベースオブジェクトはビジネスオブジェクトであり、データスキーマは、そのプロパティがAPIを通じてアクセス可能である販売業者、クーポン、製品、及びカテゴリ等のビジネスオブジェクトのデータベース表現である。いくつかの実施形態において、ビジネスオブジェクトは、1つ以上のプロパティ(例えば、店舗のURL、店舗の画像、店舗の色等)を有する店舗オブジェクトである(例えば、店舗オブジェクトのインスタンスはMACY’Sである)。いくつかの実施形態において、ビジネスオブジェクトは、複数の店舗のデータを有するデータベーステーブルを含む。例えば、データベーステーブルは、店舗情報を含むことができ、各行は、店舗オブジェクトのインスタンスであり(すなわち、各行は異なる店舗の情報を提供する)、各列は、異なる店舗オブジェクトプロパティ(例えば、店舗名、店舗画像、店舗URL等)に対応する。
【0016】
マッパーモジュール220は、ユーザが、データベースサービスインタフェース240を介してコーディングすることなくUIコンポーネントのデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にする。UIコンポーネントがビジネスオブジェクトデータを表示するには、UIコンポーネントをビジネスオブジェクトプロパティに関連付けなければならない。マッパーモジュール220は、プログラマがこの関連付けを手動でコーディングする必要性をなくす。マッパーモジュール220は、UIコンポーネントに追加されるフィールドのフィールドプロパティを取得する。マッパーモジュール220は、ビジネスオブジェクトのビジネスオブジェクトプロパティも取得する。マッパーモジュール220は、ユーザが、一般的なフィールドプロパティを特定のビジネスオブジェクトプロパティにマッピングすることを可能にする。マッパーモジュール220は、コンテンツ管理モジュール250及びフィード生成モジュール260がコンテンツ選択及びフィード生成の間に使用するUIコンポーネント及びビジネスオブジェクトとの関連付けを生成する。
【0017】
いくつかの実施形態において、UIコンポーネント属性のタイプは、メタデータにおいて既に定義されているので、ビジネスオブジェクトのメタデータに定義された整合する属性のみが選択に利用可能である。例えば、データスキーマからの画像URL(ImageURL)値のみが、そのタイプのコンポーネント値における画像URLタイプの選択に許可されている。
【0018】
コンテンツ管理モジュール250は、ユーザが、マッピングされたUIコンポーネントをフロントエンドページフィードに追加し、マッピングされたUIコンポーネントをデータベースオブジェクトのインスタンスに関連付けることを可能にする。いくつかの実施形態において、ユーザは、1つ以上のUIコンポーネントをUIコンポーネントのライブラリから選択して、フロントエンドページフィードに追加することができる。コンテンツ管理モジュール250は、マッパーモジュール220と通信して、UIコンポーネントのライブラリを取得する。フィードに追加された各UIコンポーネントについて、コンテンツ管理モジュール250は、ユーザが、データがUIコンポーネントを介してフロントエンドページに表示されるビジネスオブジェクトのインスタンス(複数の場合もある)を指定することを可能にする。例えば、ユーザは、データがフロントエンドページに表示される特定の店舗を指定することができる。
【0019】
フィード生成モジュール260は、フロントエンドページフィードにおいて、マッピングされたUIコンポーネントのデータベースオブジェクト属性のインスタンス固有の値を取り出す。フロントエンドページのインスタンス固有の値は、クライアントアプリケーションによるフロントエンドページのリクエストに応答してデータベースから取り出される。いくつかの実施形態において、フロントエンドページは、複数のセクションを備えることができ、各セクションは、デザイン(すなわちUIコンポーネント)及びデータを含む。フィード生成モジュール260は、コンテンツ管理モジュール250からフィード定義を取得し、次に、データベースサービスインタフェース240を介してデータベース245からデータを取得する。デザインモジュール210、データベース245(データベースサービスインタフェース240を介する)、マッパーモジュール220、コンテンツ管理モジュール250、及びフィード生成モジュール260のそれぞれは、メタデータ(例えば、デザインエレメント属性、データベースオブジェクト属性、及びデータベースオブジェクト属性へのデザインエレメント属性のマッピングに関連したメタデータ)をメタデータバス230に送信し、メタデータバス230は、次に、このメタデータをこの情報を必要とする他のモジュールに送信する。
【0020】
メタデータバス230は、本システムに参加している他の全てのモジュール(例えば、ツール、サービス、及び/又はクライアントアプリケーション)の中央通信サービスとしての機能を果たす(例えば、メタデータバスの1つの実施形態による例示のシステムアーキテクチャを示す
図9を参照されたい)。メタデータをパブリッシュするツール及びサービスは、それらのメタデータ更新をメタデータバス230に登録することによってこれを行う。サービスによってパブリッシュされる任意のメタデータに関心があるいずれのツール、サービス、及び/又はクライアントアプリケーションも、更新メッセージ通知を受信するように加入することができるか、又は、関心のある任意のメタデータをメタデータバス230に照会することができる。メタデータバス230が中央通信サービスとしての機能を果たすことによって、任意のメタデータプロデューサの直接的なポイントツーポイント通信が省かれる。
【0021】
全ての既存のメタデータコンポーネントサービスは、強化(enrichment)、変換、集約、マッピング等のサービスを提供するという点で従来のサービスバス定義に適合する。メタデータバス230は、全てのアーティファクトプロデューサの正確な詳細を知る必要なく、任意のサービスが任意のメタデータアーティファクトタイプ(例えば、UIメタデータ、コンポーネントマッピングメタデータ、テーマメタデータ、トークンメタデータ等)のロケーション及びバージョンを見つけ出す標準的な方法を提供する。
【0022】
いくつかの実施形態において、ユーザがデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするために、マッパーモジュール220は、デザイン属性に関連したメタデータを、メタデータバス230を介してアノテーションサブモジュール215から取り出すとともに、ビジネスオブジェクトのメタデータ(例えば、全ての販売業者、クーポン、カテゴリ等用に作成されたメタデータ)を、メタデータバス230を介してデータベース245から取り出す。ビジネスオブジェクトは、1つ以上の企業によってデータベースサービスインタフェース240を介してデータベース245に入力される。いくつかの実施形態では、ユーザがマッピングされたUIコンポーネントをフィードに追加することを可能にするために、コンテンツ管理モジュール250は、マッピングされたUIコンポーネントのメタデータを、メタデータバス230を介してマッパーモジュール220から取得し、この場合に、ユーザがマッピングされたUIコンポーネントをデータベースオブジェクトのインスタンスに関連付けることを可能にするために、コンテンツ管理モジュール250は、データオブジェクトのインスタンスのデータをデータベース245から抽出する。
【0023】
いくつかの実施形態において、ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にすることは、ユーザがフィールドを用いてUIコンポーネントをアノテートすることを可能にすることを含む。ここで、各フィールドは、1つ以上の既定のフィールドプロパティに関連付けられ、デザインエレメント属性をビジネスオブジェクト属性にマッピングすることは、フィールドプロパティをビジネスオブジェクト属性にマッピングすることを含む。いくつかの実施形態において、開発者は、構成ツールを介して既定のフィールドプロパティをアノテーションサブモジュール215にロードすることができる。各デザイン「アトム」(すなわち、UIコンポーネントの最小のコンポーネント)について、開発者は、アノテーションプロセスの間にそのエレメントに関連付けることができるフィールドプロパティを選択することができる。
【0024】
3.デザインツーパブリッシングフロントエンドページ生成プロセスの方法
図3A及び
図3Bは、デザインツーパブリッシングフロントエンドページ生成プロセスの方法を示している。
図3A及び
図3Bに見られるように、本システムは、ユーザがUIコンポーネントをデザインする(ステップ310)ことを可能にする。このステップは、デザインモジュールによって実行され、ユーザがUIコンポーネントをデザインすることを可能にする(ステップ310a)ことと、デザインされたUIコンポーネントを受信する(ステップ310b)こととを含む。
【0025】
本システムは、ユーザがデザインエレメント属性を用いてUIコンポーネントをアノテートする(ステップ320)ことを可能にする。このステップは、アノテーションサブモジュールによって実行され、UIコンポーネントのデザイントークンを抽出する(ステップ320a)ことと、既定のデザインエレメント属性を取り出す(ステップ320b)ことと、ユーザがコーディングすることなくデザインエレメント属性を用いてUIコンポーネントをアノテートすることを可能にするグラフィカルユーザインタフェースを提供する(ステップ320c)ことと、UIコンポーネントのユーザのアノテーションを受信する(ステップ320d)ことと、アノテートされたUIコンポーネントのメタデータを生成する(ステップ320e)こととを含む。ここで、メタデータは、デザインエレメント属性を記述している。いくつかの実施形態において、デザイントークンは、デザインシステムにおいてデザイン決定又はデザイン標準を表す方法である。例えば、デザイントークンは、テキストが14ポイントに設定されること、又はフロントエンドページの背景の色が白であることを表すことができる。ユーザがUIコンポーネントを作成するときはいつでも、UIコンポーネントは、そのUIコンポーネントが視覚的にどのようにレンダリングされるかを決定する1つ以上のデザイントークンに関連付けられる。アノテーションサブモジュールは、デザイントークンを抽出し、それらを既定のデザインエレメント属性とともに使用して、UIコンポーネントを、グラフィカルUIを通じて有効にされたデザインエレメント属性を用いてアノテートする。
【0026】
本システムは、データベースオブジェクトのデータベースオブジェクト属性に関連したメタデータを取り出す。本システムは、デザインエレメント属性のメタデータと、データベースオブジェクト属性のメタデータとを使用して、ユーザがコーディングすることなくUIコンポーネントのデザインエレメント属性のそれぞれをデータベースオブジェクト属性のうちの1つにマッピングする(ステップ330)ことを可能にするユーザインタフェースを提供する。このステップは、マッパーモジュールによって実行され、UIコンポーネントのデザインエレメント属性のメタデータを取得する(ステップ330a)ことと、データベースオブジェクト属性のメタデータを取得する(ステップ330b)ことと、取得されたメタデータ内のフィールドタイプを比較することによって、どのデータベース属性を各デザインエレメント属性にマッピングすることができるかを決定する(ステップ330c)ことと、ユーザがコーディングすることなくデザインエレメント属性をデータベースオブジェクト属性にマッピングすることを可能にするグラフィカルユーザインタフェースを提供する(ステップ330d)ことと、UIコンポーネントのデータベースオブジェクト属性へのデザインエレメント属性のユーザのマッピング(及び任意の関連付けられたメタデータ)を受信して記憶する(ステップ330e)こととを含む。いくつかの実施形態において、どのデータベース属性を各デザインエレメント属性にマッピングすることができるかを決定することは、フィールドのタイプをアノテーションステップ中に最初に割り当てられたものと比較することと、整合するもののみを示すこととを含む。いくつかの実施形態において、本システムが、取得されたメタデータ内のフィールドタイプを比較することによって、どのデータベース属性を各デザインエレメント属性にマッピングすることができるかを決定すると、本システムは、適格のオプション(すなわち、適格のフィールドタイプを有するオプション)をドロップダウンメニューに提供する。いくつかの実施形態において、適格性は、デザイン属性に割り当てられたタイプをメタデータ内のビジネスオブジェクトフィールドのタイプと照合することによって定義される。
【0027】
本システムは、ユーザがUIコンポーネントをフロントエンドページフィードに追加し、マッピングされたUIコンポーネントをデータベースオブジェクトの1つ以上のインスタンスに関連付ける(ステップ340)ことを可能にする。このステップは、コンテンツ管理モジュールによって実行され、マッピングされたUIコンポーネントデータをマッパーモジュールから取得する(ステップ340a)ことと、データベースオブジェクトに関連したメタデータをデータベースから取り出す(ステップ340b)ことと、ユーザがマッピングされたUIコンポーネントをフロントエンドページのフィード定義に追加し、マッピングされたコンポーネントのそれぞれをデータベースオブジェクトの1つ以上のインスタンス(ここで、データベースオブジェクトの1つ以上のインスタンスは、データベース内のビジネスオブジェクトに関連したメタデータから生成される)に関連付けることを可能にするユーザインタフェースを提供する(ステップ340c)ことと、フロントエンドページのフィード定義(及び任意の関連付けられたメタデータ)を保存する(ステップ340d)こととを含む。
【0028】
本システムは、その後、フロントエンドページを生成する(ステップ350)。このステップは、フィード生成モジュールによって実行され、フロントエンドページのリクエストをクライアントアプリケーションから受信する(ステップ350a)ことと、フロントエンドページのフィード定義をコンテンツ管理モジュールから取り出す(ステップ350b)ことと、フィード定義においてUIコンポーネントに関連付けられたデータベースオブジェクトインスタンスのUIコンポーネントにマッピングされたビジネスオブジェクト属性のインスタンス固有の値をデータベースから取り出す(ステップ350c)ことと、UIコンポーネントのビジネスオブジェクト属性のインスタンス固有の値をフロントエンドページフィードに挿入し、フロントエンドページフィードをクライアントアプリケーションに提供する(ステップ350d)こととを含む。換言すれば、フィード生成モジュールによって提供されるフロントエンドページフィードは、フィードと、フィードに渡されている異なるタイプのコンポーネントの参照とに基づく最終的なフロントエンドページを構成することができる。
【0029】
4.UIコンポーネントをアノテートするユーザインタフェースの例示のスクリーンショット
図4は、本発明によるUIコンポーネントをアノテートする例示的なグラフィカルユーザインタフェースのスクリーンショットを示している。当業者であれば、本発明の範囲内でより多くの機能又はより少ない機能を有する他のユーザインタフェースにおいて本発明を具現化することができることが分かる。したがって、
図4は、例示を意図するものであり、決して限定を意図するものではない。
図4に見られるように、ユーザは、「店舗ロゴ(Store Logo)」フィールドを用いてノードタイプ「タイルアイテム(Tile Item)」をアノテートしている。
【0030】
5.アノテーションツーマッピングプロセスのユーザインタフェースの例示のスクリーンショット
図5は、本発明によるアノテーションツーマッピングプロセスの例示的なユーザインタフェースのスクリーンショットを示している。当業者であれば、本発明の範囲内でより多くの機能又はより少ない機能を有する他のユーザインタフェースにおいて本発明を具現化することができることが分かる。したがって、
図5は、例示を意図するものであり、決して限定を意図するものではない。
【0031】
図5に見られるように、ユーザは、デザインモジュールにおいてUIコンポーネントを選択する。ユーザは、フィールドを用いてUIコンポーネントをアノテートする。ユーザは、フィールドに関連付けられたフィールドプロパティがオプションであるか否かを指定することができる。ユーザは、当該ユーザが、コンテンツ管理モジュールにおいてUIコンポーネントをフロントエンドページフィードに追加するときに、マッピング(マッパーモジュールによって実行される)をオーバライドすることができるか否かも指定することができる。ユーザは、その後、フィールドプロパティを店舗オブジェクトプロパティにマッピングする。
【0032】
いくつかの実施形態において、ユーザがオプションのチェックボックスを選択したときに、マッパーモジュールは、属性のマッピングを作成するのに必要とされない。そのようなシナリオにおいて、マッパーモジュールがマッピングを作成する場合には、マッピングは表示されるが、マッパーモジュールがマッピングを作成しない場合には、マッピングは表示されない。
【0033】
6.マッパーモジュールにおいてUIコンポーネント属性をオーバライド可能に設定する方法を示すユーザインタフェースの例示のスクリーンショット
図6は、本発明によるマッピングがコンテンツ管理モジュールにおいてオーバライドされる例示的なユーザインタフェースのスクリーンショットを示している。当業者であれば、本発明の範囲内でより多くの機能又はより少ない機能を有する他のユーザインタフェースにおいて本発明を具現化することができることが分かる。したがって、
図6は、例示を意図するものであり、決して限定を意図するものではない。
【0034】
図6に見られるように、UIコンポーネント属性は、マッパーモジュールにおいてオーバライド可能に設定される。このコンポーネントがコンテンツ管理モジュールにおいて選択されたときに、ユーザは、デフォルトのビジネスオブジェクト属性(例えば、この場合には画像)をカスタム値(例えば、テキスト、画像、色等)に取り替えるか又はオーバライドするオプションを有する。例えば、背景のデフォルトのビジネスオブジェクト属性が店舗画像である場合に、ユーザは、このデフォルトをカスタム背景でオーバライドするオプションを選択することができる。いくつかの実施形態において、デフォルトのビジネスオブジェクト属性をカスタム値でオーバライドすることは、(例えば、全ての店舗に対する)大域的なものである。いくつかの実施形態において、デフォルトのビジネスオブジェクト属性をカスタム値でオーバライドすることは、(例えば、特定の店舗に対する)局所的なものである。オーバライドすることは、マッパーモジュールが通常、或るデフォルトのフィールドを引き出すが、オーバライドオプションがコンテンツ管理モジュールにおいて選択されることに起因して、マッパーモジュールが異なるカスタムフィールドを引き出すように、マッピングごとに行われる。
【0035】
7.整合するタイプに基づいて属性をマッピングするユーザインタフェースの例示のスクリーンショット
図7A及び
図7Bは、整合するタイプに基づいて属性をマッピングする例示的なユーザインタフェースのスクリーンショットを示している。当業者であれば、本発明の範囲内でより多くの機能又はより少ない機能を有する他のユーザインタフェースにおいて本発明を具現化することができることが分かる。したがって、
図7A及び
図7Bは、例示を意図するものであり、決して限定を意図するものではない。
【0036】
図7Aに見られるように、ユーザは、UIコンポーネントのデザインエレメントのフィールドタイプを選択する。
図7Bに見られるように、マッパーモジュールは、UIコンポーネント属性のタイプメタデータを使用して、整合するタイプメタデータを有するビジネスオブジェクト属性のみを選択する。
【0037】
8.インスタンス固有のデータを有するUIコンポーネントのユーザインタフェースの例示のスクリーンショット
図8は、本発明によるインスタンス固有のデータを有する
図4のユーザインタフェースを使用して作成された1つ以上のUIコンポーネントの例示的なユーザインタフェースのスクリーンショットを示している。当業者であれば、本発明の範囲内でより多くの機能又はより少ない機能を有する他のユーザインタフェースにおいて本発明を具現化することができることが分かる。したがって、
図8は、例示を意図するものであり、決して限定を意図するものではない。
【0038】
図8は、本発明に従って作成及びレンダリングされた「タイルカルーセル(Tile Carousel)」を示している。ユーザが、最初に、デザインモジュールを使用して「タイルカルーセル」UIコンポーネントを作成した。「タイルカルーセル」は、特定の店舗データをまだ有していない方形タイルテンプレートである「タイルエレメント」を含む。ユーザは、アノテーションサブモジュールを使用して、フィールドを用いてタイルエレメントをアノテートする。この場合に、フィールドは、次のフィールドプロパティ、すなわち、画像、代替テキスト、行動喚起(call-to-action)URL、及び背景色を有する。ユーザは、マッパーモジュールを使用してフィールドプロパティを「店舗」オブジェクトプロパティにマッピングする。例えば、店舗オブジェクトプロパティが店舗画像、店舗テキスト、店舗URL、及び店舗色である場合には、マッピングは、画像→店舗画像、代替テキスト→店舗テキスト、行動喚起URL→店舗URL、及び背景色→店舗色である。
【0039】
コンテンツ管理モジュールにおいて、ユーザは、「タイルカルーセル」をフロントエンドページのフィードに追加し、店舗のリスト(すなわち、THE NORTH FACE、TARGET、TRIPADVISOR、HILTON、及びBODEN)から「タイルカルーセル」に表示される店舗を選ぶ。フィード生成モジュールは、クライアントアプリケーションからフィードのリクエストを受信し、コンテンツ管理モジュールからのフィード定義と、選択された店舗のそれぞれの値(すなわち、店舗画像、店舗テキスト、店舗URL、及び店舗色)とを特定し、取り出された値をフィード内に挿入し、フィードをクライアントアプリケーションに提供する。クライアントアプリケーションは、UIにおいて「タイルカルーセル」を用いてフロントエンドページをレンダリングする。
【0040】
「タイルカルーセル」におけるタイルエレメントは、マッピングを変更することによって容易に変更することができる。例えば、店舗オブジェクトは、複数の画像プロパティを有することができ、画像フィールドは、異なる画像プロパティにマッピングすることができる。ユーザが「タイルカルーセル」を使用してクーポンデータを表示したい場合には、フィールドをクーポンオブジェクトのプロパティ等の異なるオブジェクトのプロパティにマッピングすることができる。
【0041】
9.全般
図1~
図8に関して説明した方法は、ソフトウェアにおいて具現化され、ソフトウェアを実行するコンピュータシステム(1つ以上のコンピューティングデバイスを備える)によって実行される。当業者であれば、コンピュータシステムが、ソフトウェア命令を記憶する1つ以上のメモリユニット、ディスク又は他の物理的コンピュータ可読ストレージ媒体、及びソフトウェア命令を実行する1つ以上のプロセッサを有することを理解するであろう。
【0042】
当該技術分野に精通した当業者であれば、本発明の趣旨及び本質的な特性から逸脱することなく、本発明を他の特定の形態で具現化することができることを理解するであろう。したがって、上記の開示は、添付の特許請求項に示される本発明の範囲を限定するものではなく、説明するものであることが意図される。
【外国語明細書】