JP6746746B2 - Systems and methods for websites - Google Patents

Systems and methods for websites Download PDF

Info

Publication number
JP6746746B2
JP6746746B2 JP2019066780A JP2019066780A JP6746746B2 JP 6746746 B2 JP6746746 B2 JP 6746746B2 JP 2019066780 A JP2019066780 A JP 2019066780A JP 2019066780 A JP2019066780 A JP 2019066780A JP 6746746 B2 JP6746746 B2 JP 6746746B2
Authority
JP
Japan
Prior art keywords
contact
party application
stream
website
activity
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
JP2019066780A
Other languages
Japanese (ja)
Other versions
JP2019133700A (en
Inventor
ヨアヴ アブラハミ
ヨアヴ アブラハミ
クフィル ブロシュ
クフィル ブロシュ
ニザン アクサフ
ニザン アクサフ
Original Assignee
ウィックス.コム リミテッド.
ウィックス.コム リミテッド.
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 ウィックス.コム リミテッド., ウィックス.コム リミテッド. filed Critical ウィックス.コム リミテッド.
Publication of JP2019133700A publication Critical patent/JP2019133700A/en
Application granted granted Critical
Publication of JP6746746B2 publication Critical patent/JP6746746B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、オンラインアプリケーションと、特に、そこに含まれるサードパーティアプリケーションと組み合わせての使用方法とに関する。 The present invention relates to online applications and, in particular, their use in combination with third party applications contained therein.

ウェブサイトおよびその他のオンラインアプリケーションを作成および編集する目的に使用することのできる数多くのウェブサイト構築システムや、その他の対話型のアプリケーション構築ツールが市販されている。エンドユーザは、通常のパーソナルコンピュータ、スマートフォン、タブレット、および他のデスクトップまたはモバイルデバイスなどの幅広いプラットフォーム上のクライアントソフトウェアを使用して、このようなウェブサイトにアクセスすることができる。 There are numerous website building systems and other interactive application building tools available on the market that can be used to create and edit websites and other online applications. End users can access such websites using client software on a wide variety of platforms such as regular personal computers, smartphones, tablets, and other desktop or mobile devices.

これらのウェブサイト構築システムは、さまざまな形態で提供され、例えば、インターネットに接続されている1つまたは複数のサーバ上でホストされ、HTTP(ハイパーテキスト転送プロトコル)などのインターネット通信プロトコルを使用してアクセスされる完全にオンラインのウェブサイト構築システムなどである。これらのウェブサイト構築システムの作成、編集、およびデプロイは、すべてサーバによる直接的なオンライン動作によって実行される。 These website building systems are provided in various forms, for example hosted on one or more servers connected to the Internet and using Internet communication protocols such as HTTP (Hypertext Transfer Protocol). Such as a fully online website building system that is accessed. Creation, editing, and deployment of these website building systems are all performed by direct online operations by the server.

ウェブサイト構築システムは、部分的にオンラインとする、または完全にオンラインとすることもできる。部分的にオンラインのシステムの場合、ウェブサイトの編集をユーザのマシン上でローカルに実行し、後から中央の1つまたは複数のサーバにアップロードしてデプロイする。ウェブサイトがアップロードされると、これらのウェブサイト構築システムは、完全にオンラインのウェブサイト構築システムと同じように機能する。 The website building system can be partially online or completely online. For partially online systems, website editing is performed locally on the user's machine and later uploaded to a central server or servers for deployment. Once websites are uploaded, these website building systems function in the same way as fully online website building systems.

ウェブサイト構築システムは、システム内のデータおよび要素を体系化する目的で、内部のデータアーキテクチャを有する。このアーキテクチャは、ユーザから見える対象のサイトの外観とは異なることがあり、さらに、一般的なHTML(ハイパーテキストマークアップ言語)ページがブラウザに送られる方式とも異なることがある。例えば、内部のデータアーキテクチャは、ページ上の各要素の追加のプロパティ(作成者、作成日時、アクセス許可、テンプレートへのリンクなど)を含むことができ、これらの追加のプロパティは、ウェブサイト構築システム内でサイトを編集および維持管理するうえで欠かせないものであるが、外部のエンドユーザ(場合によっては編集を行う一部のユーザ)には見えない。ウェブサイト構築システムに基づくサイトの一般的なアーキテクチャは、コンポーネント(例えば、形状コンポーネント、写真コンポーネント、テキストコンポーネントのほか、ミニページを含むシングルページコンテナおよびマルチページコンテナなど)を含むページから構成することができる。 A website construction system has an internal data architecture for the purpose of organizing the data and elements within the system. This architecture may differ from the appearance of the target site as seen by the user, and may also differ from the way standard HTML (Hypertext Markup Language) pages are sent to the browser. For example, the internal data architecture may include additional properties for each element on the page, such as author, creation date, permissions, links to templates, etc., and these additional properties may be used by the website building system. Indispensable for editing and maintaining the site internally, but invisible to external end users (and in some cases editing some users). The general architecture of a site based on a website building system can consist of pages containing components such as shape components, photo components, text components, as well as single-page and multi-page containers containing minipages. it can.

コンポーネントは、内部コンテンツを持たない星形などのコンテンツレスとすることができ(ただし色、大きさ、位置、およびその他の属性は有する)、あるいは、テキストパラグラフコンポーネントなど内部コンテンツを有することができ、このようなコンポーネントの内部コンテンツには、表示されるテキストに加えて、フォント、書式、レイアウトの情報が含まれる。当然ながら、このコンテンツは、テキストパラグラフコンポーネントごとに異なりうる。 A component can be contentless, such as a star with no internal content (but with color, size, position, and other attributes), or it can have internal content, such as a text paragraph component, The internal content of such components includes the text to be displayed as well as font, format, and layout information. Of course, this content can vary for each text paragraph component.

このようなウェブサイト構築システムを使用するデザイナーは、何もない状態から新しいサイトをデザインする(空白の画面から開始する)、または、デザイナー自身、システムクリエーター、またはデザイナーのコミュニティによって作成された事前定義されたアプリケーションテンプレートを利用することができる。ウェブサイト構築システムは、単なるコンポーネントの集合であるテンプレート、完全なページ(またはミニページ)または一連のページであるテンプレート、および完全なウェブサイトであるテンプレートをサポートすることができる。 Designers using such website building systems can either design a new site from scratch (starting with a blank screen) or pre-defined by the designer himself, the system creator or a community of designers. You can use the created application template. A website building system can support templates that are simply collections of components, templates that are complete pages (or minipages) or series of pages, and templates that are complete websites.

アプリケーションのテンプレートが提供されるときには、デザイナーは、それを自由にカスタマイズすることができ、テンプレートのすべての要素の追加、削除、または修正を行って、デザイナー自身のテンプレートのバージョンを作成する。このようなカスタマイズは、テンプレートの修正されたバージョン(テンプレートとは異なる個別のバージョン)を作成することによって実施することができる。あるいは、ウェブサイト構築システムが、継承型メカニズム(inheritance-type mechanism)を通じてカスタマイズを適用することができ、継承型メカニズムは、元のテンプレートへのリンクを維持し、したがってテンプレートに対して後から行われる変更が反映される。 When a template for an application is provided, the designer is free to customize it and add, remove, or modify all the elements of the template to create his own version of the template. Such customization can be performed by creating a modified version of the template (a separate version different from the template). Alternatively, the website construction system can apply the customization through an inheritance-type mechanism, which keeps the link to the original template, and hence the template later. The changes are reflected.

さらに、ウェブサイト構築システムは、サードパーティアプリケーションおよびその中に埋め込まれているコンポーネントを使用して、拡張することができる。このようなサードパーティアプリケーションは、ウェブサイト構築システムのデザイン環境に含まれていることがあり、または、さまざまな配布機構を通じて、例えばウェブサイト構築システムに組み込まれているアプリケーションストア(AppStore)から、またはウェブサイト構築システム(WBS)のベンダーまたは別の組織によって運営されているウェブベースまたは独立したアプリケーションリポジトリ(またはAppStore)から、個別に購入する(または他の方法で取得する)ことができる。さらに、サードパーティアプリケーションは、サードパーティアプリケーションのベンダーから(AppStoreを通じて、または通じずに)直接取得することもでき、この場合、ベンダーは、実際のインストールモジュールを提供する、またはアクティベーションコードまたはアクセスコードのみを提供する。 Further, the website building system can be extended with third party applications and components embedded therein. Such third party applications may be included in the design environment of the website building system, or through various distribution mechanisms, such as from an application store (AppStore) that is embedded in the website building system, or It can be purchased (or otherwise obtained) separately from a web-based or independent application repository (or AppStore) operated by a website building system (WBS) vendor or another organization. Further, the third-party application may also be obtained directly (through or without AppStore) from the third-party application vendor, in which case the vendor provides the actual installation module, or the activation or access code. Provide only.

サードパーティアプリケーションには、フロントエンド(表示)要素とバックオフィス要素の任意の組合せ(これらはウェブサイトには表示されない)が含まれることがある。サードパーティアプリケーションは、全体がバックオフィスである(すなわち表示要素を含まない)、または全体がフロントエンドである(すなわちウェブサイトで使用されるときのみ起動される)、または2つの組合せであることがある。 Third party applications may include any combination of front end (display) elements and back office elements, which are not displayed on the website. The third-party application may be wholly back-office (i.e. without display elements) or wholly front-end (i.e. launched only when used on a website), or a combination of the two. is there.

サードパーティアプリケーションのバックオフィス要素には、データベース通信オプションや外部更新オプションなどの機能が含まれることがある。例えば、ブログのサードパーティアプリケーションには、人以外の発信元(例えば、大手のニュースサービスからのRSSニュース配信)からと、ウェブサイトに関係ない人の発信元(例えば、ブログエントリを投稿できるスタンドアロンのスマートフォンアプリケーション)から、更新を受信することのできるバックオフィス要素が含まれることがある。 The back office elements of the third party application may include features such as database communication options and external update options. For example, blog third-party applications may include sources other than people (eg, RSS news distribution from a major news service) and sources not related to the website (eg, standalone blog entries that can be posted. Back office elements that can receive updates (from smartphone applications).

サードパーティアプリケーションの視覚要素を、それらが含められるウェブサイトに組み込む処理は、さまざまな方法で行うことができる。ウィジェットタイプのサードパーティアプリケーションは、ウェブサイトのページの内側にコンポーネントとして埋め込むことができるのに対して、セクションタイプのサードパーティアプリケーションは、ウェブサイトに1つまたは複数の追加のページとして加えることができる。 The process of incorporating the visual elements of a third party application into the website in which they are included can be done in a variety of ways. Widget-type third-party applications can be embedded as components inside the pages of a website, while section-type third-party applications can be added to a website as one or more additional pages. ..

さらには、サードパーティアプリケーション(ウィジェットタイプおよびセクションタイプの両方)は、シングルページのサードパーティアプリケーション、またはマルチページのサードパーティアプリケーション(内部URL構造として表される内部ミニページを有する)とすることができる。システムは、4つの可能な組合せ(ウィジェットまたはセクション、シングルページまたはマルチページ)のうちの1つまたは複数、あるいはすべてを実装することができる。 Furthermore, the third-party application (both widget type and section type) can be a single-page third-party application or a multi-page third-party application (with internal mini-pages represented as an internal URL structure). .. The system can implement one or more, or all, of four possible combinations (widgets or sections, single page or multipage).

マルチページのサードパーティアプリケーションは、通常ではデフォルトの「ランディング」ミニページを提供し、このミニページは、オープニングページ、特定の内部のミニページ(例えばブログのサードパーティアプリケーションにおける最新のブログエントリ)、ミニページ選択画面、またはその他のミニページである。 Multi-page third-party applications usually provide a default "landing" mini-page, which can be an opening page, a specific internal mini-page (eg the latest blog entry in a blog's third-party application), a mini-page. A page selection screen or other mini page.

ウェブサイト構築システムに基づくウェブサイトにおけるサードパーティアプリケーションの使用は、サードパーティアプリケーションのインスタンスを通じて行われる。ウェブサイト構築システムは、複数のレベルにおけるサードパーティアプリケーションの複数の使用法をサポートすることができ、例えば、ウェブサイト全体においてサードパーティアプリケーションの1つのインスタンスを許可する、ウェブサイトの内側で複数のサードパーティアプリケーションのインスタンスを作成することを許可する(ただし1つのサードパーティアプリケーションあたり1つのインスタンスのみ)、複数のサードパーティアプリケーションの複数のインスタンスを作成することを許可する(ただし1ページあたり1つのインスタンスのみ)が挙げられる。さらに、コンポーネント型サードパーティアプリケーション(セクションタイプのサードパーティアプリケーションではない)のページあたり複数のインスタンスを許可することもでき、さらに、サードパーティアプリケーションのインスタンスの数、多重度、または位置の制限なしに、複数のサードパーティアプリケーションの複数のインスタンスを作成することを許可することもできる。 Use of third party applications in websites based on the website building system is through instances of the third party applications. The website building system can support multiple usages of third party applications at multiple levels, eg, multiple third parties inside the website, allowing one instance of the third party application throughout the website. Allow creating instances of party applications (but only one instance per third party application), Allow creating multiple instances of multiple third party applications (but only one instance per page) ) Is mentioned. In addition, you can allow multiple instances per page for component-type third-party applications (not section-type third-party applications), and also, without restrictions on the number, multiplicity, or location of instances of third-party applications. You can also allow multiple instances of multiple third-party applications to be created.

サードパーティアプリケーションのインスタンスは、インスタンスに固有なコンテンツを有することができる。例えば、オンラインショップ(e-Shop)のサードパーティアプリケーションは、特定のインスタンスに関連付けられる製品データベースを有することができ、この製品データベースは、(同じサイトまたは別のサイト内の)同じオンラインショップのサードパーティアプリケーションの別のインスタンスに関連付けられる製品データベースとは異なる。 Instances of third-party applications can have content that is unique to the instance. For example, an online shop (e-Shop) third-party application may have a product database associated with a particular instance, which product database may be a third party of the same online shop (in the same site or another site). Different from the product database that is associated with another instance of the application.

説明を目的として、サードパーティアプリケーションおよびそのミニページや要素を含むウェブサイトページ(またはミニページ)(すなわち「ラッパーページ」)は、含有ウェブページ(containing web page)と称するものとし、ウェブサイト全体にメインサイトとして既知であるものとする。ユーザに示される統合されたページ(メインページおよび埋め込まれたTPAミニページ/コンポーネントを含む)を、合成ページと称する。セクションタイプのサードパーティアプリケーションの場合、サードパーティアプリケーションを含む「仮想ページ」が、含有ウェブページの役割を果たす。 For purposes of explanation, a website page (or minipage) that includes a third-party application and its minipages or elements (ie, a "wrapper page") shall be referred to as a containing webpage, and shall be referred to as the entire website. It is assumed to be known as the main site. The integrated page presented to the user (including the main page and embedded TPA minipages/components) is referred to as the composite page. For section-type third-party applications, the "virtual page" containing the third-party application acts as the containing web page.

サードパーティアプリケーションは、通常では、ウェブサイト構築システムのベンダーのサーバ上、サードパーティアプリケーションのベンダーのサーバ上、外部(フォースパーティ)のサーバ上、またはこれらのサーバの任意の組合せ上にデプロイされる。サードパーティアプリケーションは、エンドユーザのマシン上で実際に実行される要素(例えば、静的にインストールされるブラウザエクステンションや、図1に示したようにウェブサイト構築システムのクライアント側コードの内側で動的に実行されるJavaScript(登録商標)コンポーネントなど)も含むことができる。以下ではこの図1を参照する。 The third party application is typically deployed on the vendor's server of the website building system, on the vendor's server of the third party application, on an external (force party) server, or on any combination of these servers. A third-party application may be an element that actually executes on the end user's machine (eg, a statically installed browser extension, or dynamically inside the client-side code of a website building system as shown in Figure 1). Javascript (registered trademark) component that is executed in the above). In the following, reference is made to FIG.

ウェブサイト構築システムのベンダーのサーバは、エンドユーザのための連絡口として機能し、要求に応答する(場合によってはサードパーティアプリケーションのベンダーのサーバに接続して必要な情報を受け取る)。ウェブサイト構築システムは、例えばビデオストリーミングが要求されるとき、クライアントのコンピュータとサードパーティアプリケーションのベンダーのサーバとの間に(必要に応じて)直接的な接続を形成することができる。 The website building system vendor's server acts as a contact point for the end user and responds to the request (possibly connecting to the third party application vendor's server to receive the required information). The website building system can form a direct connection (if desired) between the client computer and the third party application vendor's server, for example when video streaming is required.

含まれているサードパーティアプリケーションのインスタンスは、通常のコンポーネントが内部コンテンツを含むのと同様に、自身の内部コンテンツを有することができる。図2を参照し、この図に示したように、サードパーティアプリケーションは、ウェブサイト構築システムと、ウェブサイト構築システムを使用して生成されたウェブサイトとは無関係に、このコンテンツを管理することができる。1つまたは複数のサードパーティアプリケーションの複数のインスタンスは、共有コンテンツを有することができ、例えば、2つの個別のウェブサイトページにおける2つのオンラインショップのインスタンスが、同じ製品データベースを参照することができる。 Instances of contained third-party applications can have their own internal content, just as regular components do. Referring to FIG. 2, as shown in this figure, a third-party application may manage this content independently of the website building system and the websites created using the website building system. it can. Multiple instances of one or more third-party applications can have shared content, eg, two online shop instances on two separate website pages can reference the same product database.

含まれているサードパーティアプリケーションからの出力は、例えば以下のようなさまざまな方法で、含有ウェブページに組み込むことができる。 Output from included third-party applications can be incorporated into the containing web page in a variety of ways, including:

サーバ側の処理: (以下では図3を参照する。)図3に示したこの方法においては、サードパーティアプリケーション[a](デザイン要素および表示要素を含む)と、ユーザに固有なサードパーティアプリケーションのデータ[b]とが、サードパーティアプリケーションのベンダーのサーバ[d]上で実行されているサードパーティアプリケーションのサーバコード[c]によってマージされる。これらは通信媒体[e]を介してウェブサイト構築システムのサーバコード[f]に送られ、サーバコード[f]は、これらを含有ウェブページの情報[g]とマージした後、これらをユーザのクライアントステーション[h]に表示できるように送る。 Server-side processing: (See FIG. 3 below.) In this method shown in FIG. 3, the third-party application [a] (including the design element and the display element) and the user-specific third-party application The data [b] is merged by the server code [c] of the third-party application running on the server [d] of the third-party application vendor. These are sent to the server code [f] of the website construction system via the communication medium [e], and the server code [f] merges these with the information [g] of the containing web page, and then merges them with the user's information. Send so that it can be displayed on the client station [h].

クライアント側の処理: (以下では図4を参照する。)図4に示したこの方法においては、サードパーティアプリケーション[a](デザイン要素および表示要素を含む)と、ユーザに固有なサードパーティアプリケーションのデータ[b]とが、サードパーティアプリケーションのベンダーのサーバ[d]上で実行されているサードパーティアプリケーションのサーバコード[c]によってマージされる。これらは通信媒体[e]を介してクライアント側の処理コンポーネント[h]に送られる。ウェブサイト構築システムのサーバコード[f]は、含有ウェブページの情報[g]を、このクライアント側の処理コンポーネント[h]に送る。クライアント側の処理コンポーネント[h]は、2つの情報源のマージを実行し、統合されたアプリケーションをブラウザ(または他のクライアントエージェント)[i]に提示する。 Client-side processing: (See FIG. 4 below.) In this method shown in FIG. 4, the third-party application [a] (including design elements and display elements) and the user-specific third-party application The data [b] is merged by the server code [c] of the third-party application running on the server [d] of the third-party application vendor. These are sent to the processing component [h] on the client side via the communication medium [e]. The server code [f] of the website construction system sends the information [g] of the contained web page to the processing component [h] on the client side. The client-side processing component [h] performs a merge of the two sources and presents the integrated application to the browser (or other client agent) [i].

iFrameのインクルージョン(inclusion): (以下では図5を参照する。)図5に示した方法においては、サードパーティアプリケーション[a](デザイン要素および表示要素を含む)と、ユーザに固有なサードパーティアプリケーションのデータ[b]とが、サードパーティアプリケーションのベンダーのサーバ[d]上で実行されているサードパーティアプリケーションのサーバコード[c]によってマージされる。これらは、ユーザエージェント(例えばウェブブラウザ)[i]の内側で実行されているブラウザベースのアプリケーション[h]に、通信媒体[e]を介して送られる。ウェブサイト構築システムのサーバコード[f]は、含有ウェブページの情報[g]を、このブラウザベースのアプリケーション[h]に送る。含有ウェブページは、サードパーティアプリケーションのサーバ[d]からのコンテンツを含める1つまたは複数のiframeディレクティブを含むウェブページとして作成される。追加の方法および代替方法も適用可能である。 iFrame Inclusion: (See FIG. 5 below.) In the method shown in FIG. 5, a third party application [a] (including design and display elements) and a third party application specific to the user are included. Data [b] of the third party application is merged by the server code [c] of the third party application running on the server [d] of the vendor of the third party application. These are sent via a communication medium [e] to a browser-based application [h] running inside a user agent (eg a web browser) [i]. The server code [f] of the website construction system sends the information [g] of the contained web page to this browser-based application [h]. The containing web page is created as a web page that includes one or more iframe directives that include content from the server [d] of the third party application. Additional and alternative methods are also applicable.

米国特許出願公開第2013/0219263号明細書U.S. Patent Application Publication No. 2013/0219263

本発明の好ましい実施形態によると、クライアント/サーバシステムを介してウェブサイト上に実装可能なシステムであって、クライアント/サーバシステムが、本システムを定義する命令を処理する少なくとも1つのプロセッサを有する、システム、を提供する。本システムは、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の少なくとも1つのアクティビティメッセージを調整する少なくとも1つのハブであって、少なくとも1つのアクティビティメッセージが、標準化されたフォーマットを有する、少なくとも1つのハブ、を含む。さらに、本システムは、少なくとも1つのアクティビティメッセージをリスンし、これら少なくとも1つのメッセージから抽出されたデータを、識別されたコンタクトおよび匿名のコンタクトのうちの少なくとも一方に関連付けられるストリームに少なくとも加える、アクティビティコーディネータであって、識別されたコンタクトおよび匿名のコンタクトのうちの少なくとも一方が、ウェブサイトの利用者である、アクティビティコーディネータ、を含む。さらに、本システムは、コンタクト関連情報をストリームから取得および分析して、コンタクトの以前に保持された情報の質を高める、コンタクトコーディネータと、ウェブサイトおよびコンタクトによって使用できるように、アクティビティストリームおよびコンタクト関連情報を格納する少なくとも1つのデータベースと、を含む。 According to a preferred embodiment of the present invention, a system implementable on a website via a client/server system, the client/server system comprising at least one processor for processing the instructions defining the system. System. The system is at least one hub for coordinating at least one activity message between a website and at least one third-party application, the at least one activity message having a standardized format. Including a hub. Further, the system listens for at least one activity message and adds at least data extracted from the at least one message to a stream associated with at least one of the identified contact and the anonymous contact, an activity coordinator. At least one of the identified contact and the anonymous contact includes an activity coordinator, who is a user of the website. In addition, the system retrieves and analyzes contact-related information from the stream to enhance the quality of previously held information for the contact, as well as the activity coordinator and the contact stream for use by websites and contacts. At least one database for storing information.

さらに、本発明の好ましい実施形態によると、少なくとも1つのハブは、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の少なくとも1つのアクティビティメッセージをルーティングおよび追跡するルータ/追跡器(router and tracker)と、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間のプライバシーポリシーを実施するプライバシーポリシーエンフォーサと、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の事前に指定される少なくとも1つのメッセージ変換/コンテンツ適合化規則を適用する変換器/適合器(translator and adapter)と、プライベートデータプロキシとプライベートデータ置換のうちの少なくとも一方を実施し、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の利用者許可フィールドの制限を実施する、プライベートデータプロキシ(private data proxy)と、少なくとも1つのアクティビティメッセージの署名を、少なくとも1つのサードパーティアプリケーションの入力鍵を使用して検証し、少なくとも1つのアクティビティメッセージに関連付けられる外部IDを内部ウェブサイトIDを使用して変換し、送出される少なくとも1つのアクティビティメッセージに、少なくとも1つのサードパーティアプリケーションの出力鍵を使用して署名する、検証器/署名器と、のうちの少なくとも1つ、を含む。 Furthermore, according to a preferred embodiment of the invention, the at least one hub is a router/tracker for routing and tracking at least one activity message between the website and the at least one third party application. , A privacy policy enforcer that enforces a privacy policy between the website and the at least one third-party application, and at least one pre-specified message conversion/content adaptation between the website and the at least one third-party application. User field between the website and at least one third-party application that implements at least one of a private data proxy and a private data replacement, and a translator/adapter that applies the emulation rules. A private data proxy that enforces the restrictions of at least one activity message, validates the signature of the at least one activity message using an input key of at least one third party application, and is associated with at least one activity message external At least one of a verifier/signer that transforms the ID using the internal website ID and signs at least one activity message sent using the output key of at least one third party application. Including one.

さらに、本発明の好ましい実施形態によると、アクティビティコーディネータは、少なくとも1つのアクティビティメッセージに関連付けられるコンタクトを識別し、関連付けられるコンタクトが存在しない場合にデータのストリームを作成する、ストリーム作成器と、少なくとも1つのアクティビティメッセージからのデータを既存のストリームにマージし、アクティビティストリームのうちの少なくとも2つからのデータを1つのストリームにマージする、ストリームマージャと、アクティビティストリームからのアクティビティデータを少なくとも1つのデータベースに記録するログ作成器と、のうちの少なくとも1つ、を含む。 Further in accordance with a preferred embodiment of the present invention, the activity coordinator identifies a contact associated with at least one activity message and creates a stream of data if there is no associated contact and a stream creator and at least one Merge data from one activity message into an existing stream, merge data from at least two of the activity streams into one stream, record stream merger and activity data from the activity stream into at least one database And at least one of:

さらに、本発明の好ましい実施形態によると、コンタクトコーディネータは、少なくとも1つのアクティビティメッセージ、ストリーム、別のコンタクト、外部ソースのうちの少なくとも1つから、コンタクト関連情報を抽出するデータ抽出器と、少なくとも2つのコンタクト情報レコードをマージし、抽出されたコンタクト関連情報を、事前に定義されるマージ規則に従って、既存のコンタクトの関連情報にマージする、データマージャであって、レコードが、同じ識別されたコンタクトとの関連性を有する、データマージャと、識別可能な新しいコンタクトおよび匿名のコンタクトの少なくとも一方を作成し、ウェブサイトのセッションの間、コンタクトのアクティビティを追跡する、コンタクトハンドラと、抽出されたコンタクト関連情報のプライバシー保護および許可を処理するデータ/許可ハンドラと、のうちの少なくとも1つ、を含む。 Further in accordance with a preferred embodiment of the present invention, the contact coordinator comprises a data extractor for extracting contact related information from at least one of at least one activity message, stream, another contact, external source, and at least 2. A data merger that merges two contact information records and merges the extracted contact related information with the related information of existing contacts according to predefined merge rules, where the records are the same as the identified contact. A contact handler and extracted contact-related information that creates data mergers and/or new and/or anonymous identifiable contacts that track contact activity during a website session And/or at least one of: a data/authorization handler that handles privacy protection and authorization of the.

さらに、本発明の好ましい実施形態によると、ルータ/追跡器は、少なくとも1つのサードパーティアプリケーションによって指定されるリスニングクエリ(listening query)を使用して少なくとも1つのアクティビティメッセージをルーティングすることをサポートする。 Further, according to a preferred embodiment of the present invention, the router/tracker supports routing at least one activity message using a listening query specified by at least one third party application.

さらに、本発明の好ましい実施形態によると、ストリームマージャは、データを、識別されたコンタクトに関連付けられるストリームにマージするアクティビティ−ストリームマージャと(activity-to-stream merger)、少なくとも2つの個別のストリームを1つのストリームにマージするストリーム−ストリームマージャ(stream-to-stream merger)と、を含む。 Further in accordance with a preferred embodiment of the present invention, the stream merger merges data into a stream associated with the identified contact, an activity-to-stream merger, and at least two separate streams. Stream-to-stream merger, which merges into one stream.

さらに、本発明の好ましい実施形態によると、ストリーム−ストリームマージャは、少なくとも2つの個別のストリームを、識別された共通のコンタクトに従ってマージする水平ストリームマージャ(horizontal stream merger)と、匿名のコンタクトと、登録されたコンタクトとが、ログイン時または登録時に結びつけられたときに、匿名のコンタクトに対して作成されたストリームを、登録されたコンタクトに関連付けられるストリームにマージする、垂直ストリームマージャ(vertical stream merger)と、のうちの少なくとも一方、を含む。 Furthermore, according to a preferred embodiment of the present invention, the stream-stream merger merges at least two separate streams according to the identified common contact, a horizontal stream merger, an anonymous contact and a registration. A vertical stream merger that merges streams created for anonymous contacts with streams associated with registered contacts when they are tied together at login or registration. And at least one of

さらに、本発明の好ましい実施形態によると、データマージャは、コンタクト情報レコードのうちの少なくとも2つの中の同じプライマリIDフィールド値を特定する、コンタクト情報レコードのうちの少なくとも2つの中の、正規化されたときに同じであるプライマリIDフィールド値を特定する、クッキーを使用してサイト利用者を識別する、登録された利用者の場合にサイトログインを使用してサイト利用者を識別する、ソーシャルネットワークに関連付けられるアカウントを持つサイト利用者の場合にソーシャルログインを通じてサイト利用者を識別する、のうちの少なくとも1つを行うコンタクト識別器、を含む。さらに、データマージャは、言語解析、構文解析、およびテキスト解析のうちの少なくとも1つと、外部データソースおよび外部サービスの参照・利用とを用いて、コンタクト情報を結合する結合器と、コンタクトレコード間の矛盾を、事前に定義される規則に従って解消する矛盾解消器と、リスト値フィールドを作成し、コンタクトレコード間の明確な優先順位を定義する、リスト値作成器と、共通のプライマリIDが検出されたことにより、互いに関連しない2人のコンタクトをマージする水平コンタクトマージャ(horizontal contact merger)と、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとが、ログイン時または登録時に結びつけられたときに、匿名のコンタクトを、登録された利用者に関連付けられるコンタクトにマージする、垂直コンタクトマージャ(vertical contact merger)と、を含む。 Further, according to a preferred embodiment of the present invention, the data merger is normalized in at least two of the contact information records identifying the same primary ID field value in at least two of the contact information records. Identify the primary ID field value that is the same when you use, use cookies to identify site users, and if you are a registered user use site login to identify site users, to social networks A contact identifier that performs at least one of identifying a site user through social login in the case of a site user who has an associated account. In addition, the data merger uses at least one of linguistic analysis, syntactic analysis, and text analysis and reference/use of external data sources and external services to combine contact information between a combiner and a contact record. A common primary ID was found, with a conflict resolver that resolves conflicts according to predefined rules, and a list value creator that creates list value fields and defines a clear priority among contact records. This allows a horizontal contact merger that merges two unrelated contacts, an anonymous contact, and a contact associated with a registered user when they are linked at login or registration. , A vertical contact merger that merges anonymous contacts into contacts associated with registered users.

さらに、本発明の好ましい実施形態によると、水平コンタクトマージャは、少なくとも2つのコンタクトレコードを個別のレコードとして維持し、これら2つのコンタクトレコードが同じコンタクトを表していることが示されるように2つのコンタクトレコードを互いにリンクする、仮想マージャ(virtual merger)、を含む。 Further, in accordance with a preferred embodiment of the present invention, the horizontal contact merger maintains at least two contact records as separate records, two contact records being shown to represent the same contact. Includes a virtual merger, which links records together.

さらに、本発明の好ましい実施形態によると、垂直コンタクトマージャは、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとを個別のコンタクトとして維持し、匿名のコンタクトおよび登録された利用者に関連付けられるコンタクトが同じコンタクトを表していることが示されるように互いにリンクする、仮想マージャ、を含む。 Further, according to a preferred embodiment of the present invention, the vertical contact merger maintains anonymous contacts and contacts associated with registered users as separate contacts and associates them with anonymous contacts and registered users. Virtual mergers, which are linked to each other so that the contacts that are represented represent the same contact.

さらに、本発明の好ましい実施形態によると、利用者許可フィールドは、ウェブサイトもしくはウェブサイトのオーナーまたはその両方によって決定される。 Further, according to a preferred embodiment of the present invention, the user permission field is determined by the website and/or the website owner.

さらに、本発明の好ましい実施形態によると、標準化されたフォーマットは、事前に定義されるスキーマによって定義されるフォーマット、継承によって定義されるフォーマット、コールバックリンクによって定義されるフォーマット、少なくとも1つのサードパーティアプリケーションによって符号化および定義されるフォーマット、外部の正式標準、業界標準、または事実上の標準に基づくフォーマット、のうちの少なくとも1つである。 Furthermore, according to a preferred embodiment of the present invention, the standardized format is a format defined by a predefined schema, a format defined by inheritance, a format defined by a callback link, at least one third party. At least one of a format encoded and defined by the application, an external formal standard, an industry standard, or a de facto standard-based format.

本発明の好ましい実施形態によると、クライアント/サーバシステムを介してウェブサイト上に実装可能な方法であって、クライアント/サーバシステムが、本方法を定義する命令を処理する少なくとも1つのプロセッサを有する、方法、を提供する。本方法は、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の少なくとも1つのアクティビティメッセージを調整するステップであって、少なくとも1つのアクティビティメッセージが、標準化されたフォーマットを有する、ステップと、少なくとも1つのアクティビティメッセージをリスンし、これら少なくとも1つのメッセージから抽出されたデータを、識別されたコンタクトおよび匿名のコンタクトのうちの少なくとも一方に関連付けられるストリームに少なくとも加えるステップであって、識別されたコンタクトおよび匿名のコンタクトのうちの少なくとも一方が、ウェブサイトの利用者である、ステップと、を含む。さらに、本方法は、コンタクト関連情報をストリームから取得および分析して、コンタクトの以前に保持された情報の質を高めるステップと、ウェブサイトおよびコンタクトによって使用できるように、アクティビティストリームおよびコンタクト関連情報を格納するステップと、を含む。 According to a preferred embodiment of the invention, a method implementable on a website via a client/server system, wherein the client/server system comprises at least one processor for processing the instructions defining the method. Method. The method comprises coordinating at least one activity message between a website and at least one third party application, the at least one activity message having a standardized format, and at least one Listening for activity messages and at least adding data extracted from these at least one message to a stream associated with at least one of the identified contact and the anonymous contact, the identified contact and the anonymous contact At least one of the contacts is a user of the website. In addition, the method obtains and analyzes contact-related information from the stream to enhance the previously held information of the contact and the activity stream and contact-related information for use by the website and contact. Storing, and.

さらに、本発明の好ましい実施形態によると、調整するステップは、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の少なくとも1つのアクティビティメッセージをルーティングおよび追跡するステップと、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間のプライバシーポリシーを実施するステップと、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の事前に指定される少なくとも1つのメッセージ変換/コンテンツ適合化規則を適用するステップと、プライベートデータプロキシとプライベートデータ置換のうちの少なくとも一方を実施し、ウェブサイトと少なくとも1つのサードパーティアプリケーションとの間の利用者許可フィールドの制限を実施するステップと、少なくとも1つのアクティビティメッセージの署名を、少なくとも1つのサードパーティアプリケーションの入力鍵を使用して検証し、少なくとも1つのアクティビティメッセージに関連付けられる外部IDを内部ウェブサイトIDを使用して変換し、送出される少なくとも1つのアクティビティメッセージに、少なくとも1つのサードパーティアプリケーションの出力鍵を使用して署名するステップと、のうちの少なくとも1つ、を含む。 Furthermore, according to a preferred embodiment of the present invention, the step of coordinating comprises the steps of routing and tracking at least one activity message between the website and the at least one third party application, and the website and at least one third party. Enforcing a privacy policy with the application, applying at least one pre-specified message conversion/content adaptation rule between the website and the at least one third party application, and a private data proxy. And/or private data substitution to enforce user permission field restrictions between the website and at least one third party application, and at least one activity message signature to at least one Verify using an input key of a third party application, convert an external ID associated with at least one activity message using an internal website ID, and send at least one activity message with at least one third party And/or signing with the output key of the application.

さらに、本発明の好ましい実施形態によると、リスンして少なくとも加えるステップは、少なくとも1つのアクティビティメッセージに関連付けられるコンタクトを識別し、関連付けられるコンタクトが存在しない場合にデータのストリームを作成するステップと、少なくとも1つのアクティビティメッセージからのデータを既存のストリームにマージし、アクティビティストリームのうちの少なくとも2つからのデータを1つのストリームにマージするステップと、アクティビティストリームからのアクティビティデータを少なくとも1つのデータベースに記録するステップと、のうちの少なくとも1つを含む。 Further, in accordance with a preferred embodiment of the present invention, listening and at least adding comprises identifying a contact associated with at least one activity message and creating a stream of data if the contact does not exist. Merging data from one activity message into an existing stream, merging data from at least two of the activity streams into one stream, and recording the activity data from the activity stream in at least one database. And at least one of:

さらに、本発明の好ましい実施形態によると、取得および分析するステップは、少なくとも1つのアクティビティメッセージ、ストリーム、別のコンタクト、外部ソースのうちの少なくとも1つから、コンタクト関連情報を抽出するステップと、少なくとも2つのコンタクト情報レコードをマージし、抽出されたコンタクト関連情報を、事前に定義されるマージ規則に従って、既存のコンタクトの関連情報にマージするステップであって、レコードが、同じ識別されたコンタクトとの関連性を有する、ステップと、のうちの少なくとも1つを含む。さらに、取得および分析するステップは、識別可能な新しいコンタクトおよび匿名のコンタクトの少なくとも一方を作成し、ウェブサイトのセッションの間、コンタクトのアクティビティを追跡するステップと、抽出されたコンタクト関連情報のプライバシー保護および許可を処理するステップと、を含む。 Further in accordance with a preferred embodiment of the present invention the steps of obtaining and analyzing include extracting contact related information from at least one of at least one activity message, stream, another contact, external source, and at least Merging two contact information records and merging the extracted contact related information with the related information of an existing contact according to a predefined merge rule, wherein the records are associated with the same identified contact. At least one of the steps having relevance. In addition, the steps of retrieving and analyzing create at least one identifiable new contact and/or anonymous contact, tracking the activity of the contact during the website session and privacy protection of the extracted contact-related information. And processing the authorization.

さらに、本発明の好ましい実施形態によると、ルーティングおよび追跡するステップは、少なくとも1つのサードパーティアプリケーションによって指定されるリスニングクエリを使用して少なくとも1つのアクティビティメッセージをルーティングすることをサポートする。 Further, according to a preferred embodiment of the present invention, the routing and tracking step supports routing at least one activity message using a listening query specified by at least one third party application.

さらに、本発明の好ましい実施形態によると、マージするステップは、データを、識別されたコンタクトに関連付けられるストリームにマージするステップと、少なくとも2つの個別のストリームを1つのストリームにマージするステップ、を含む。 Further in accordance with a preferred embodiment of the present invention the merging step comprises merging the data into a stream associated with the identified contact and merging at least two separate streams into one stream. ..

さらに、本発明の好ましい実施形態によると、データを識別されたコンタクトに関連付けられるストリームにマージするステップと、少なくとも2つの個別のストリームを1つのストリームにマージするステップは、少なくとも2つの個別のストリームを、識別された共通のコンタクトに従って水平にマージする(horizontally merging)ステップと、匿名のコンタクトと、登録されたコンタクトとが、ログイン時または登録時に結びつけられたときに、匿名のコンタクトに対して作成されたストリームを、登録されたコンタクトに関連付けられるストリームに垂直にマージする(vertically merging)ステップと、のうちの少なくとも一方を含む。 Furthermore, in accordance with a preferred embodiment of the present invention, the steps of merging data into streams associated with identified contacts and merging at least two separate streams into one stream combine at least two separate streams. , A horizontally merging step according to the identified common contacts, an anonymous contact and a registered contact are created for anonymous contacts when they are tied at login or registration. Vertically merging the stream to a stream associated with the registered contact.

さらに、本発明の好ましい実施形態によると、少なくとも2つのコンタクト情報レコードをマージするステップは、コンタクト情報レコードのうちの少なくとも2つの中の同じプライマリIDフィールド値を特定するステップ、コンタクト情報レコードのうちの少なくとも2つの中の、正規化されたときに同じであるプライマリIDフィールド値を特定するステップ、クッキーを使用してサイト利用者を識別するステップ、登録された利用者の場合にサイトログインを使用してサイト利用者を識別するステップ、ソーシャルネットワークに関連付けられるアカウントを持つサイト利用者の場合にソーシャルログインを通じてサイト利用者を識別するステップ、のうちの少なくとも1つを含む。さらに、少なくとも2つのコンタクト情報レコードをマージするステップは、言語解析、構文解析、およびテキスト解析のうちの少なくとも1つと、外部のデータソースおよび外部サービスの参照・利用とを用いて、コンタクト情報を結合するステップと、コンタクトレコード間の矛盾を、事前に定義される規則に従って解消するステップと、リスト値フィールドを作成し、コンタクトレコード間の明確な優先順位を定義するステップと、共通のプライマリIDが検出されたことにより、互いに関連しない2人のコンタクトを水平にマージするステップと、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとが、ログイン時または登録時に結びつけられたときに、匿名のコンタクトを、登録された利用者に関連付けられるコンタクトに垂直にマージするステップと、を含む。 Further in accordance with a preferred embodiment of the present invention, the step of merging at least two contact information records comprises identifying the same primary ID field value in at least two of the contact information records, Identifying the primary ID field value that is the same when normalized, of at least two, using cookies to identify site users, and using registered site users for site login Identifying the site user through a social login if the site user has an account associated with a social network. Further, the step of merging at least two contact information records combines the contact information using at least one of linguistic parsing, parsing, and text parsing and referencing/using external data sources and services. To resolve inconsistencies between contact records according to pre-defined rules, create list value fields to define clear priorities between contact records, and detect common primary IDs By doing so, the step of horizontally merging two unrelated contacts, the anonymous contact, and the contact associated with the registered user are linked to each other at the time of login or registration. Vertically merging contacts with contacts associated with registered users.

さらに、本発明の好ましい実施形態によると、水平にマージするステップは、少なくとも2つのコンタクトレコードを個別のレコードとして維持し、これら2つのコンタクトレコードが同じコンタクトを表していることが示されるように2つのコンタクトレコードを互いにリンクして仮想的にマージする(virtual merging)ステップ、を含む。 Further, according to a preferred embodiment of the present invention, the step of horizontally merging maintains at least two contact records as separate records, as shown by the two contact records representing the same contact. Linking two contact records together and virtual merging.

さらに、本発明の好ましい実施形態によると、垂直にマージするステップは、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとを個別のコンタクトとして維持し、匿名のコンタクトおよび登録された利用者に関連付けられるコンタクトが同じコンタクトを表していることが示されるようにこれらを互いにリンクして仮想的にマージするステップ、を含む。 Further, according to a preferred embodiment of the present invention, the vertically merging step maintains the anonymous contact and the contact associated with the registered user as separate contacts, and the anonymous contact and the registered user Linking and virtually merging the contacts associated with each other such that they represent the same contact.

さらに、本発明の好ましい実施形態によると、利用者許可フィールドは、ウェブサイトもしくはウェブサイトのオーナーまたはその両方によって決定される。 Further, according to a preferred embodiment of the present invention, the user permission field is determined by the website and/or the website owner.

さらに、本発明の好ましい実施形態によると、標準化されたフォーマットは、事前に定義されるスキーマによって定義されるフォーマット、継承によって定義されるフォーマット、コールバックリンクによって定義されるフォーマット、少なくとも1つのサードパーティアプリケーションによって符号化および定義されるフォーマット、外部の正式標準、業界標準、または事実上の標準に基づくフォーマット、のうちの少なくとも1つである。 Furthermore, according to a preferred embodiment of the present invention, the standardized format is a format defined by a predefined schema, a format defined by inheritance, a format defined by a callback link, at least one third party. At least one of a format encoded and defined by the application, an external formal standard, an industry standard, or a de facto standard-based format.

本発明とみなされる主題は、本明細書の結論部分に具体的に指摘して明確に記載してある。しかしながら、添付の図面を参照しながら以下の詳細な説明を読み進めることによって、本発明について、その編成および動作方法の両方に関してと、本発明の目的、特徴、および利点とを、深く理解することができる。 The subject matter regarded as the invention is particularly pointed out and distinctly stated in the concluding portion of the specification. However, a deep understanding of the present invention, both with respect to its organization and method of operation, as well as the objects, features, and advantages of the present invention, will be obtained by reading the following detailed description with reference to the accompanying drawings. You can

ウェブサイト構築システムとサードパーティアプリケーションとの間のデプロイ構成の概略図Schematic diagram of deployment configuration between website building system and third party applications サードパーティアプリケーションの内部コンテンツ管理の概略図Schematic of internal content management for third-party applications サーバ側の処理によって含有ウェブページにサードパーティアプリケーションを含めるときの概略図Schematic diagram of including third party application in contained web page by server side processing クライアント側の処理によって含有ウェブページにサードパーティアプリケーションを含めるときの概略図Schematic diagram of including third-party application in contained web page by client side processing iframeのインクルージョンによって含有ウェブページにサードパーティアプリケーションを含めるときの概略図Schematic diagram of including a third-party application in the containing web page by including iframe ページレイアウトの変更時における既存の非最適なサードパーティアプリケーションの表示の概略図Schematic view of existing non-optimal third-party applications when changing page layout 本発明に従って構築されて動作する、ウェブサイト構築システムと1つまたは複数のサードパーティアプリケーションとを統合するシステムの概略図Schematic diagram of a system that integrates a website building system with one or more third-party applications, constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、ウェブサイト構築システムと1つまたは複数のサードパーティアプリケーションとを統合するシステムの概略図Schematic diagram of a system that integrates a website building system with one or more third-party applications, constructed and operative in accordance with the present invention. コンポーネントモデルと比較してのドキュメントオブジェクトモデルの概略図Schematic representation of the document object model compared to the component model ブログのマルチパートサードパーティアプリケーションの例の概略図Schematic diagram of an example of a multipart third-party application for a blog 販売用のモジュール式サードパーティアプリケーションの例の概略図Schematic diagram of an example modular third-party application for sale 本発明に従って構築されて動作する通信ハブの異なる実装の概略図Schematic diagram of different implementations of a communication hub constructed and operative in accordance with the invention. 本発明に従って構築されて動作する通信ハブの異なる実装の概略図Schematic diagram of different implementations of a communication hub constructed and operative in accordance with the invention. 本発明に従って構築されて動作する図11Aおよび図11Bの通信ハブの要素の概略図Schematic representation of elements of the communication hubs of FIGS. 11A and 11B constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する図11Aおよび図11Bの通信ハブによって実行される通信変換処理の概略図Schematic diagram of a communication conversion process performed by the communication hubs of FIGS. 11A and 11B constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、関連付けられるテンプレートを有するサードパーティアプリケーションを扱う含有ウェブページの概略図Schematic diagram of a contained web page handling a third party application with associated templates constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、関連付けられるテンプレートを有するサードパーティアプリケーションをミニページの内側に含む含有ウェブページの概略図Schematic diagram of a contained web page that includes a third-party application inside an minipage with an associated template constructed and operative in accordance with the invention. ウェブサイト構築システムと1つまたは複数の埋め込まれたサードパーティアプリケーションとの間で交換されるさまざまなメッセージからのデータを調整および収集する、本発明に従って構築されて動作するシステムの概略図Schematic diagram of a system constructed and operative in accordance with the present invention for coordinating and collecting data from various messages exchanged between a website construction system and one or more embedded third party applications. 本発明に従って構築されて動作する、図15のシステムの要素の概略図15 is a schematic diagram of elements of the system of FIG. 15 constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、図15のシステムの要素の概略図15 is a schematic diagram of elements of the system of FIG. 15 constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、図15のシステムの要素の概略図15 is a schematic diagram of elements of the system of FIG. 15 constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、図15のシステムの要素の概略図15 is a schematic diagram of elements of the system of FIG. 15 constructed and operative in accordance with the present invention. 本発明に従って構築されて動作する、コンタクトに関連付けられるアクティビティストリームを表示するグラフィカルユーザインタフェースの一例の概略図Schematic diagram of an example of a graphical user interface displaying activity streams associated with contacts, constructed and operative in accordance with the present invention. クライアント側およびサーバ側のサードパーティアプリケーションのアクティビティメッセージのメッセージパッシングの概略図Schematic diagram of message-passing activity messages for client-side and server-side third-party applications 利用者のウェブサイトセッション時におけるログイン/ログアウト処理の概略図Schematic diagram of login/logout processing during a user's website session

図を簡潔かつ明瞭にするため、図面に示した要素は必ずしも正しい縮尺で描かれていないことを理解されたい。例えば、明瞭さのため、いくつかの要素の寸法が別の要素よりも誇張されていることがある。さらに、適切と考えられる場合、複数の図面において対応する要素または類似する要素を同じ参照数字によって表してある。 It should be understood that the elements shown in the figures are not necessarily drawn to scale for the sake of brevity and clarity. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Furthermore, where considered appropriate, corresponding or similar elements have been designated by the same reference numeral in the several figures.

以下の詳細な説明においては、本発明を完全に理解できるようにする目的で、膨大な具体的な細部を記載してある。しかしながら、これらの具体的な細部なしでも本発明を実施できることが、当業者には理解されるであろう。さらには、本発明が曖昧になることがないように、周知の方法、手順、およびコンポーネントについては、詳細には説明していない。 In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, one of ordinary skill in the art will appreciate that the invention may be practiced without these specific details. Furthermore, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.

出願人は、サードパーティアプリケーションが一般にウェブサイト構築システムに統合される現在の方法と、統合されたサードパーティアプリケーションとウェブサイト構築システムとが対話する現在の方法には、多くの制限が存在することを認識した。 Applicants have found that there are many limitations to the current way in which third party applications are generally integrated into website building systems and the way in which integrated third party applications interact with website building systems. Recognized.

このような制限としては、サードパーティアプリケーションの表示が、含有ウェブページの内側の1つの長方形領域(この領域はiframeに含まれる)に制限されることが挙げられる。さらなる制限として、サードパーティアプリケーションのウィンドウのサイズおよび位置と、サードパーティアプリケーションの実際の表示ウィンドウの外側である視覚要素(例えば、サードパーティアプリケーションのウィンドウの周囲の専用の表示フレーム)を、サードパーティアプリケーションが制御する能力が挙げられる。 Such restrictions include limiting the display of the third-party application to one rectangular area inside the containing web page, which area is included in the iframe. As a further limitation, the size and position of the window of the third-party application and visual elements that are outside the actual display window of the third-party application (for example, a dedicated display frame around the window of the third-party application) may be The ability to control.

サードパーティアプリケーションは、自身の表示スタイル(配色、フォント、文字サイズなど)を有しうる。これらのスタイルは、いくつかの含有ウェブページには適合するが、別の含有ウェブページでは視覚的に問題があったり調和しないことがある。 The third party application may have its own display style (color scheme, font, font size, etc.). These styles are compatible with some contained web pages, but may be visually problematic or inconsistent with other contained web pages.

別の制限は、含有サイトの観点からのサードパーティアプリケーションの表示に柔軟性がないことである。(例えば、画面サイズの異なるプラットフォームにデプロイするため、あるいは動的レイアウトイベントに起因して)サイトを視覚的に修正しなければならない場合、サードパーティアプリケーションに割り当てられているウィンドウのサイズを変更するように含有ウェブページに要求されることがある。このような場合、サードパーティアプリケーションの表示が途中で切り取られ、サードパーティアプリケーションにおけるさまざまなサブ領域に達するためにはスクロールバーを介してスクロールすることが要求される。図6を参照し、この図は、含有ウェブページ[a]をリサイズしたときに起こりうる状況の例を示している。オンラインショップのサードパーティアプリケーション[b]に割り当てられる領域が減少し、「購入」ボタン[c]を、ショッピングカート[d]の内容と一緒に表示させることができないため、購入を完了するためには何回かのスクロール操作が要求され、実際に購入が完了される可能性が大幅に減少する。 Another limitation is the inflexibility of displaying third party applications from the perspective of the containing site. If you need to visually modify your site (for example, to deploy on platforms with different screen sizes, or due to a dynamic layout event), change the size of the window assigned to the third-party application. May be required for contained web pages. In such a case, the display of the third party application is cut off in the middle and scrolling via the scroll bar is required to reach the various sub-areas in the third party application. Referring to FIG. 6, this figure shows an example of a situation that can occur when resizing the containing web page [a]. The space allocated to the online shop's third-party application [b] is reduced and the "Buy" button [c] cannot be displayed with the contents of the shopping cart [d], so to complete the purchase Several scrolling operations are required, greatly reducing the chances of the actual purchase being completed.

サードパーティアプリケーションは含有ウェブページ内の別のコンポーネントと対話することができず、複雑な機能を達成するためにはこのような対話が必要となりうることを理解されたい。特に、サードパーティアプリケーションは、含有ウェブページ内のコンポーネントのタイプおよびコンテンツに従って異なる動作を実行することはできない。この1つの例は、オンライン料理教室をストリーミングするウェブサイトである。利用者は、動画を観ているバックグラウンドにおいて、画面の別の領域に、最新のニュースおよび天気情報(例えばCNNからのライブストリームなど)を配信するための専用の小さい画面領域を表示させたいことがある。利用者は、自分が住む地域の天気予報が始まったときに、学習セッションを自動的に一時停止させることを望むことがある。 It should be appreciated that a third party application may not be able to interact with another component within the containing web page, and such interaction may be required to achieve complex functionality. In particular, third-party applications cannot perform different actions depending on the type and content of components within the containing web page. One example of this is a website streaming an online cooking class. The user wants to display a small screen area dedicated to delivering the latest news and weather information (for example, a live stream from CNN) in another area of the screen in the background of watching a video. There is. A user may wish to have a learning session automatically paused when the weather forecast for his area begins.

さらには、特に、複数のサードパーティアプリケーションが異なるベンダーによって提供されている場合、これらのサードパーティアプリケーションが互いに協力するための明確かつ標準的な方法は存在しない。したがって、デザイナーには、異なるベンダーからの複数のサードパーティアプリケーションを組み合わせる明確な方法がない。この1つの例は、サードパーティの発注システムのモジュールと、出荷システムの異なるモジュールとを実行する電子商取引のウェブサイトの場合である。出荷スケジュールなどに従って商品を発注することが望ましいことがある。 Furthermore, there is no clear and standard way for these third-party applications to cooperate with each other, especially if the third-party applications are provided by different vendors. Therefore, designers have no clear way to combine multiple third-party applications from different vendors. One example of this is in the case of an e-commerce website that implements modules of a third party ordering system and different modules of a shipping system. It may be desirable to order merchandise according to a shipping schedule or the like.

出願人は、ウェブサイト構築システムと、その中に含まれるサードパーティアプリケーションインスタンスとの間と、同じ含有ページ内に実装することのできる複数の異なるサードパーティアプリケーションインスタンスの間の、構造化された双方向通信チャネルを使用することによって、この統合を達成できることを認識した。これらのチャネルは、レイアウト、スタイル、および追加の情報に関する情報を転送することもできる。 Applicant has structured both the website construction system and the third party application instances contained therein and between different third party application instances that may be implemented within the same containing page. We have recognized that this integration can be achieved by using a directional communication channel. These channels can also transfer information regarding layout, style, and additional information.

以下の説明は、iframeインクルージョン法に焦点を当てており、この方法は、最近のブラウザに内蔵されたり統合されたりしており、専用の統合コードを作成する必要がないため、好ましい方法であることを理解されたい。さらに、iframeインクルージョン法では、ブラウザによってサポートされるカプセル化およびサンドボックス機能が提供されるほか、悪意のあるサードパーティアプリケーションによって採用されうるクロスサイトスクリプティング攻撃などのハッキング技術に対する本質的な保護も提供される。 The following discussion focuses on the iframe inclusion method, which is the preferred method because it is built into or integrated into modern browsers and does not require you to write your own integration code. I want you to understand. In addition, the iframe inclusion method provides the encapsulation and sandboxing features supported by the browser, as well as inherent protection against hacking techniques such as cross-site scripting attacks that can be adopted by malicious third-party applications. It

次に、図7Aおよび図7Bを参照し、これらの図は、本発明の実施形態による、ウェブサイト構築システムと1つまたは複数のサードパーティアプリケーションとを統合するシステム100を示している。図7Aは、デザイン段階におけるシステム100を示しており、図7Bは、実行時におけるシステム100を示している。図7Aにおいて理解できるように、システム100は、クライアント10と、ウェブサイト構築システム(WBS)サーバ20にインストールされているウェブサイト構築システム30と、1つまたは複数のサードパーティアプリケーションサーバ50にインストールされている1つまたは複数のサードパーティアプリケーション40とを備えている。ウェブサイト構築システム30は、WBSコーディネータ21と、アプリケーションリポジトリ22と、WBS側TPAプロパティシート23と、サードパーティアプリケーション(TPA)コーディネータ24と、AppStore 25(サーチャー26を含むことができる)とを備えている。クライアント10は、ページコンポーザ12と、TPAプロパティシート23のクライアント側表示とを備えている。いくつかの実施形態においては、クライアント10は、AppStore 25のクライアント側表示をさらに備えていることができる。ページコンポーザ12は、後からさらに詳しく説明するリンカ13を備えている。サードパーティサーバ50は、サードパーティアプリケーション40と、外部TPAコーディネータ51と、TPAデータベース52とを備えており、TPAデータベース52は、サードパーティアプリケーション40のコンポーネントやテンプレートなどを使用できるように格納している。なお、システム100は、サードパーティアプリケーション40の複数のベンダーに属する複数のサードパーティサーバ50を含むことができる。 7A and 7B, which show a system 100 that integrates a website building system with one or more third party applications, according to embodiments of the invention. FIG. 7A shows the system 100 at the design stage, and FIG. 7B shows the system 100 at run time. As can be seen in FIG. 7A, system 100 is installed on a client 10, a website building system 30 installed on a website building system (WBS) server 20, and one or more third party application servers 50. And one or more third party applications 40 that are installed. The website construction system 30 includes a WBS coordinator 21, an application repository 22, a WBS side TPA property sheet 23, a third party application (TPA) coordinator 24, and an AppStore 25 (which may include a searcher 26). There is. The client 10 includes a page composer 12 and a client-side display of the TPA property sheet 23. In some embodiments, the client 10 may further comprise an AppStore 25 client-side display. The page composer 12 includes a linker 13, which will be described in more detail later. The third party server 50 includes a third party application 40, an external TPA coordinator 51, and a TPA database 52, and the TPA database 52 stores components and templates of the third party application 40 so that they can be used. .. It should be noted that the system 100 may include multiple third party servers 50 belonging to multiple vendors of the third party application 40.

TPAプロパティシート23は、サードパーティアプリケーション40のインスタンスの属性が指定されるときに呼び出すことができることを理解されたい。さらには、呼び出されたとき、TPAプロパティシート23は、クライアント10においてはTPAプロパティシート23のクライアント側表示として表示されることを理解されたい。さらには、オフラインの実施形態は、インストールされているクライアントソフトウェアの一部として自身のプロパティシートを有することができ、したがって、アプリケーションTPAプロパティシート23やリポジトリは存在しないことを理解されたい。 It should be appreciated that the TPA property sheet 23 can be invoked when the attributes of an instance of the third party application 40 are specified. Further, it should be appreciated that when called, the TPA property sheet 23 is displayed on the client 10 as a client-side display of the TPA property sheet 23. Further, it should be appreciated that the offline embodiment may have its own property sheet as part of the client software installed, and thus there is no application TPA property sheet 23 or repository.

クライアント10の前に座っているデザイナーまたはエンドユーザ5は、ページコンポーザ12を使用してウェブサイトページおよび対話(インタラクション)(ページ間対話およびページ内対話)を作成することで、自身のウェブサイト(または他のオンラインアプリケーション)を作成することができることを理解されたい。デザイナー5は、アプリケーションリポジトリ22に格納されている、ウェブサイト構築システム30の一部であるコンポーネントやテンプレートなどを、WBSコーディネータ21を介して選択することができる。さらに、デザイナー5は、サードパーティアプリケーション40からのサードパーティアプリケーション40インスタンスを埋め込む含有ウェブページ203を作成することができ、サードパーティアプリケーション40は、あらかじめ購入することができ、そのテンプレートやコンポーネントなどをアプリケーションリポジトリ22に格納しておくことができる。代替実施形態においては、購入したテンプレートやコンポーネントなどは、TPAデータベース52に格納しておき、外部TPAコーディネータ51を介してアクセスすることができる。さらに別の実施形態においては、サードパーティアプリケーション40のテンプレートやコンポーネントなどを、必要に応じてAppStore 25を介して購入することができる。プロパティシート23は、デザイナー5によって指定することができ、後からさらに詳しく説明するように、購入したサードパーティアプリケーション40のインスタンスに関する情報(許可、インストールガイド、支払いなど)を保持することができる。さらに、デザイナー5は、リンカ23を使用して、含まれる複数のサードパーティアプリケーション40の間の通信チャネル(必要な場合)を手操作で指定することができる。さらに、デザイナー5は、リンカ23を使用することで、構築している含有ウェブページと、そこに含まれるサードパーティアプリケーション40のインスタンスとの間の固有の通信接続および規則を指定できることを理解されたい(上述したように動画やCNNニュースレポートが同時に表示されるなど)。リンカ23によって作成されたリンクは、ウェブサイトが存続している限り修正できることを理解されたい。 A designer or end user 5 sitting in front of the client 10 creates website pages and interactions (inter-page and intra-page interactions) using the page composer 12 to create his own website (inter-page and intra-page interactions). Or other online applications) can be created. The designer 5 can select, via the WBS coordinator 21, components, templates, etc., which are stored in the application repository 22 and are a part of the website construction system 30. Further, the designer 5 can create a contained web page 203 that embeds a third party application 40 instance from the third party application 40, which can be pre-purchased, such as its templates and components. It can be stored in the repository 22. In an alternative embodiment, purchased templates, components, etc. may be stored in the TPA database 52 and accessed via the external TPA coordinator 51. In yet another embodiment, templates, components, etc. of the third party application 40 can be purchased via AppStore 25 as needed. The property sheet 23 can be specified by the designer 5 and can hold information about the purchased instance of the third party application 40 (permissions, installation guides, payments, etc.), as described in more detail below. Furthermore, the designer 5 can use the linker 23 to manually specify the communication channel (if necessary) between the included third party applications 40. Further, it should be appreciated that the designer 5 can use the linker 23 to specify unique communication connections and rules between the containing web page that it is building and the instance of the third party application 40 that it contains. (Videos and CNN news reports are displayed simultaneously as described above). It is to be understood that the links created by the linker 23 can be modified as long as the website is alive.

デザイナー5は、サードパーティアプリケーション40のベンダーまたは外部業者によって運営されている外部のAppStoreなど、AppStore 25の外部のチャネルを通じて、サードパーティアプリケーション40を取得することができることを理解されたい。このような場合、ウェブサイト構築システム30は、デザイナー5によってウェブサイト構築システム30を通じて作成されたウェブサイトにそのサードパーティアプリケーション40を最初にインストールするときに、サードパーティアプリケーション40およびその構成データ(configuration data)を登録することができる。 It should be appreciated that the designer 5 may obtain the third party application 40 through a channel external to the AppStore 25, such as an external AppStore operated by a vendor of the third party application 40 or an external vendor. In such a case, when the website building system 30 first installs the third party application 40 on the website created by the designer 5 through the website building system 30, the third party application 40 and its configuration data (configuration). data) can be registered.

必要な場合にリンカ23が通信チャネルを確立できるようにするためには、サードパーティアプリケーション40は、(自身が通信しようとする)含有ウェブページ203内のコンポーネント(別のサードパーティアプリケーション40のインスタンスを含む)を正しく認識および識別できる必要があることを理解されたい。関連付けられるテンプレートに基づくコンポーネント(後からさらに詳しく説明する)の場合、この識別は、サードパーティアプリケーション40のベンダーによってあらかじめ実行される。関連付けられるテンプレート内のコンポーネントには、固有の参照IDを与えることができ、サードパーティアプリケーション40は、これらのコンポーネントと通信するときに、これらのIDを使用することができる。 In order to allow the linker 23 to establish a communication channel when needed, the third party application 40 may have a component (including an instance of another third party application 40) within the containing web page 203 (that it is trying to communicate with). It is to be understood that (including) must be correctly recognized and identified. In the case of associated template-based components (discussed in more detail below), this identification is pre-performed by the vendor of the third party application 40. The components in the associated template can be given unique reference IDs and the third party application 40 can use these IDs when communicating with these components.

さらに、(後からさらに詳しく説明する)マルチパートサードパーティアプリケーション40(すなわち複数のiframeにわたり分散する1つのサードパーティアプリケーション40)の場合、複数のパートは、互いに通信する方法を自動的に認識することができることを理解されたい。 Furthermore, in the case of a multi-part third-party application 40 (which will be described in more detail below) (ie, one third-party application 40 distributed across multiple iframes), multiple parts will automatically know how to communicate with each other. Please understand that

関連付けられるテンプレートに含まれていない、含有ウェブサイトページのコンポーネント(後からさらに詳しく説明する)については、サードパーティアプリケーション40は、自身が機能するために存在しているべき要求される(必須またはオプションの)含有ウェブページ203のコンポーネントのリストを含むことができる。このリストは、プロパティシート23の中に格納することができ、一意のIDと、説明と、コンポーネントの詳細(例えば、テキストコンポーネントでなければならない、ブログの応答(talkback)ラベルとして使用される)とを含むことができる。このリストは、AppStore 25へのサードパーティアプリケーション40のエントリに列挙することができ、デザイナー5は、サードパーティアプリケーション40の要件を満たす含有ウェブページ203の中のコンポーネント(フィールド)を、リンカ23を使用して指定することができる。ウェブサイト構築システム30は、サードパーティアプリケーション40のインスタンスが作成されたときに、含有ウェブページ203の不足しているコンポーネントを動的に作成することができ、デザイナー5は、後からこれらのコンポーネントを移動する、リサイズする、および完全に指定することができることを理解されたい。 For components of the containing website page (discussed in more detail below) that are not included in the associated template, the third party application 40 is required (required or required) to be present for it to function. A) of the containing web page 203 components. This list can be stored in the property sheet 23 and contains a unique ID, description, and component details (eg, used as a blog talkback label, which must be a text component). Can be included. This list can be listed in the entry of the third party application 40 to the AppStore 25, and the designer 5 uses the linker 23 to identify the components (fields) in the containing web page 203 that meet the requirements of the third party application 40. Can be specified. The website construction system 30 can dynamically create the missing components of the containing web page 203 when an instance of the third party application 40 is created, and the designer 5 will later create these components. It should be appreciated that it can be moved, resized, and fully specified.

これに代えて、ウェブサイト構築システム30は、含有ウェブページ203のコンポーネントモデル全体または一部を、含有ウェブページ203に含まれるサードパーティアプリケーション40に公開することができる。この場合のコンポーネントモデルは、含有ウェブページ203のコンポーネントモデルであり、ドキュメントオブジェクトモデル(DOM)ではないことを理解されたい。含有ウェブページ203のドキュメントオブジェクトモデル(DOM)は、コンポーネントモデルよりもずっと複雑かつ詳細なモデルであることがあり、なぜなら実際の含有ウェブページ203には、ウェブサイト構築システム30のインフラストラクチャの一部である、または含有ウェブページ203のコンポーネントをサポートする、膨大なHTML要素(非表示要素および可視要素の両方)が含まれうるためである。したがって、コンポーネントモデルはずっと単純である。 Alternatively, the website construction system 30 can expose the whole or a part of the component model of the contained web page 203 to the third party application 40 included in the contained web page 203. It should be appreciated that the component model in this case is the component model of the containing web page 203, not the Document Object Model (DOM). The Document Object Model (DOM) of the containing web page 203 may be a much more complex and detailed model than the component model because the actual containing web page 203 is part of the infrastructure of the website building system 30. Or a huge number of HTML elements (both hidden and visible elements) that support the components of the containing web page 203 may be included. Therefore, the component model is much simpler.

次に、図8を参照し、図8は、複数のHTMLコンストラクト(一部を囲むdivタグ[b]、内部divタグ[c]、フレーム「ミニウィジェット」[d1]..[d5]など)を使用してテキストコンポーネント[a]を実装する方法を示している。含有ウェブページ203のDOMモデル[e]は、これらのサブ要素それぞれに対する個別のDOMツリーノードを含むことができる。コンポーネントモデル[f]はずっと単純にすることができ、1つのコンポーネントノード[g]のみを含む。 Next, referring to FIG. 8, FIG. 8 shows a plurality of HTML constructs (div tag [b] surrounding a part, internal div tag [c], frame “mini-widget” [d1]... [d5], etc.). Shows how to implement a text component [a] using. The DOM model [e] of the containing web page 203 can include a separate DOM tree node for each of these sub-elements. The component model [f] can be much simpler and contains only one component node [g].

システム100は、選択的なコンポーネントの公開をサポートすることもでき、デザイナー5は、どのコンポーネントをサードパーティアプリケーション40に公開するべきかをリンカ23を介して指定することができ、これらのコンポーネント(場合によってはこれらのコンポーネントに通じる「含有経路(containment path)」を含む)のみを、サードパーティアプリケーション40から可視である単純化されたコンポーネントモデルに含めることができることを理解されたい。この指定は、含まれているコンポーネントを、それらのタイプや、ウェブサイト構築システム30の他の属性に従って、明示的にマークすることによって実行することができる。これにより、サードパーティアプリケーション40は、含有ウェブページ203のコンポーネントモデルをたどって、要求されるコンポーネントを特定することができる。 The system 100 may also support selective component publishing, allowing the designer 5 to specify via the linker 23 which components should be exposed to the third party application 40, and these components (in case It should be appreciated that some may only include the "containment path" leading to these components) in the simplified component model visible to the third party application 40. This designation can be performed by explicitly marking the included components according to their type and other attributes of the website building system 30. This allows the third party application 40 to follow the component model of the containing web page 203 to identify the required component.

さらに、含有ウェブページ203とサードパーティアプリケーション40のインスタンスとの間のリンク(例えばブロードキャストリンク)を自動的に作成することもでき、ブロードキャストリンクでは、サードパーティアプリケーション40は、実行時に通信を送って特定のイベントを記録することができることを理解されたい。この通信は、オプションまたは必須とすることができる(すなわちサードパーティアプリケーション40は、このようなメッセージを受信するためにリンクされている対応するサードパーティアプリケーション40が存在しない限り、機能しない、またはインストールしない)。例えば、サードパーティアプリケーション40は、自身が実行する動作・機能に関する情報パケットをブロードキャストすることができ、インストールされているロギングのサードパーティアプリケーション40は、これらの情報パケットを受信することができる。 In addition, a link (eg, a broadcast link) between the containing web page 203 and an instance of the third-party application 40 may be automatically created, where the third-party application 40 may communicate at run time to identify a particular link. It should be understood that the event of can be recorded. This communication may be optional or mandatory (ie the third party application 40 will not work or install unless there is a corresponding third party application 40 linked to receive such messages). ). For example, the third party application 40 can broadcast information packets regarding the operations/functions that the third party application 40 executes, and the installed logging third party application 40 can receive these information packets.

このようにして設定が完了した新たに作成されたページは、後からさらに詳しく説明するように、実行時に呼び出すことができるように、(WBSコーディネータ21を介して)アプリケーションリポジトリ22に格納しておくことができる。 The newly created page, which has been set up in this way, is stored in the application repository 22 (via the WBS coordinator 21) so that it can be called at runtime, as will be explained in more detail later. be able to.

次に、図7Bを参照する。この実施形態においては、要素は、クライアント10の要素を除いて、図7Aにおける要素と同じである。実行時、クライアント10は、含有ウェブページ203を表示するためのビューア201を備えている。ビューア201は、それぞれがサードパーティアプリケーション40の異なるインスタンス(1つまたは複数のサードパーティアプリケーション40から派生するインスタンス)を表示させるための複数のビューポート202を備えていることができることを理解されたい。さらに、クライアント10は通信ハブ205を備えており、通信ハブ205は、通信を促進するものであり、含有ウェブページ203と、含有ウェブページ203がホストしているサードパーティアプリケーション40との間のバックチャネルと、ホストされている複数のサードパーティアプリケーション40の間で要求される通信とを、関連する含有ウェブページ203に接続することなく、提供する。ハブ205の機能については、後からさらに詳しく説明する。 Next, refer to FIG. 7B. In this embodiment, the elements are the same as those in FIG. 7A, except for the client 10 elements. At runtime, the client 10 comprises a viewer 201 for displaying the contained web page 203. It should be appreciated that the viewer 201 may comprise multiple viewports 202, each for displaying a different instance of the third party application 40 (instances derived from one or more third party applications 40). In addition, the client 10 includes a communication hub 205 that facilitates communication and provides a back-up between the contained web page 203 and a third party application 40 hosted by the contained web page 203. It provides the channels and required communications between hosted third party applications 40 without connecting to the associated contained web page 203. The function of the hub 205 will be described in more detail later.

ハブ205はクライアント10に実装することができ、なぜなら、含有ウェブページ203とサードパーティアプリケーション40のインクルージョンの両方が、可視のウェブサイトの対話部分であり、これらの通信を、クライアントとサーバの間の往復によって遅延させるべきではないためであることを理解されたい。代替実施形態においては、サードパーティアプリケーションサーバ50が大量のデータを交換する必要があり、これらのデータをクライアント10を経由させないことが好ましい場合、ハブ205を、ウェブサイト構築システムのサーバ20に実装することができる。 The hub 205 can be implemented on the client 10, because both the containing web page 203 and the inclusion of the third party application 40 are visible interactive parts of the website, and these communications are between the client and server. It should be understood that it should not be delayed by a round trip. In an alternative embodiment, the hub 205 is implemented on the server 20 of the website building system when the third party application server 50 needs to exchange large amounts of data and it is preferable not to route these data through the client 10. be able to.

通信ハブ205は、ウェブサイト構築システム30と1つまたは複数のサードパーティアプリケーション40との間の通信と、複数のサードパーティアプリケーション40の間の通信のさまざまな組合せをサポートすることができることを理解されたい。例えば、ハブ205によって、サードパーティアプリケーション40が、メインサイト内の別のページに切り替えるようにウェブサイト構築システム30に要求することが可能になる。さらに、通信ハブ205によって、サードパーティアプリケーション40が、自身のウィンドウをリサイズする(場合によっては含有ページのレイアウトに影響しうる)ように要求することが可能になる。このリサイズは、後からさらに詳しく説明する動的レイアウト処理を通じて行うことができる。あるいは、(例えば)表示の変更に対応するためにはサードパーティアプリケーション40が別のバージョンに切り替えることが要求される場合、含有ウェブページ203は、この切り替えを要求することができる。この双方向通信は、サードパーティアプリケーション40のコンポーネントと、サードパーティアプリケーション40に関連するウェブサイト構築システム30の(追加の情報を表示する)コンポーネントとの間と、上述したようにマルチパートサードパーティアプリケーション40の要素とモジュール式サードパーティアプリケーションとの間に、確立することもできることを理解されたい。 It is understood that the communication hub 205 can support various combinations of communication between the website building system 30 and one or more third party applications 40, as well as communication between the plurality of third party applications 40. I want to. For example, the hub 205 allows the third party application 40 to request the website building system 30 to switch to another page within the main site. In addition, the communication hub 205 allows the third party application 40 to request that its window be resized (possibly affecting the layout of the containing pages). This resizing can be performed through a dynamic layout process which will be described later in more detail. Alternatively, if the third party application 40 is required to switch to another version to accommodate (for example) a display change, the containing web page 203 can request this switching. This two-way communication is between the components of the third-party application 40 and the components (displaying additional information) of the website building system 30 associated with the third-party application 40, and as described above, the multi-part third-party application. It should be appreciated that there may also be established between 40 elements and modular third party applications.

さらに、システム100は、オンラインおよびオフラインのウェブサイト構築システム30の両方を使用して実装することもでき、また、システム100は、ホスティング方法(例えば、クライアント側要素、ウェブサイト構築システム30のベンダーのサーバ、サードパーティアプリケーション40のベンダーのサーバ、他のフォースパーティのサーバなど)の任意の組合せを使用できることを理解されたい。上述したオフラインの実施形態の場合であっても、サーバはシステム100を実装することが要求されうることを理解されたい。 Further, the system 100 may be implemented using both online and offline website building systems 30, and the system 100 may also be implemented using hosting methods (eg, client-side components, website building system 30 vendors'). It should be appreciated that any combination of servers, third party application 40 vendor servers, other fourth party servers, etc.) may be used. It should be appreciated that the server may still be required to implement system 100, even for the offline embodiments described above.

さらに、システム100は、大きな組織におけるプライベートサイトホスティングシステムなど、(ウェブサイト構築システムのベンダーによって運営されていない)別のサーバセット上でホストすることもできる。 Further, the system 100 can also be hosted on another set of servers (not operated by the website construction system vendor), such as a private site hosting system in a large organization.

さらに、システム100は、上述したサードパーティアプリケーション40からのインスタンスのインクルージョンオプションのすべてをサポートすることができる。しかしながら、システム100は、これらのオプションのサブセットのみをサポートすることもでき、あるいは、サードパーティアプリケーション40のインスタンスのインクルージョンオプションに制限を課すことができる。 In addition, the system 100 can support all of the above instance inclusion options from the third party application 40. However, the system 100 may only support a subset of these options, or may impose restrictions on inclusion options for an instance of the third party application 40.

さらに、システム100は、マルチパートサードパーティアプリケーション40を実装することもできる。マルチパートサードパーティアプリケーション40は、それぞれが個別のiframeを使用して処理される複数の表示領域を含むことができる。これらの領域は、後からさらに詳しく説明するように、通信ハブ205を通じて(必要に応じて)協力することもできる。 Further, the system 100 may also implement a multi-part third party application 40. The multi-part third party application 40 can include multiple display areas, each processed using a separate iframe. These areas may also cooperate (if desired) through communication hub 205, as described in more detail below.

次に、図9を参照し、この図は、マルチパートサードパーティアプリケーション40の例を示している。図示したように、AppStore[b]から取得されたブログのサードパーティアプリケーション[a]が、含有ウェブページ203[c]に配置されている。ブログのサードパーティアプリケーション[a]は、3つの領域、すなわち、ブログエントリ領域[d]と、タグクラウド領域[e]と、ニュース更新領域[f]とを含む。マルチパートサードパーティアプリケーションは、自身の複数の領域をさまざまな方法で使用することができ、例えば、(上のブログの例におけるように)1つのアプリケーションの同時に存在する複数の部分として、あるいは、1つのアプリケーションのオプションとして存在する複数の部分(つねに表示される複数の領域と、要求されるときにのみ表示されるオプションの複数の領域とを含む)として、使用することができることを理解されたい。オプションの領域の表示は、サードパーティアプリケーション40によって、または(サードパーティアプリケーションを含めるときにそれをどのように構成するかを決定する)デザイナー5によって、制御することができる。さらに、表示は、構成領域や追加ダイアログ領域などのサポート機能領域として制御することもできる。代替として、(例えば、サードパーティアプリケーションのスモールバージョンおよびラージバージョンを有する、またはサードパーティアプリケーションのポートレートバージョンおよびランドスケープバージョンを有する)マルチバージョンのサードパーティアプリケーションの表示についても同様である。 Referring now to FIG. 9, this figure shows an example of a multipart third party application 40. As illustrated, the blog's third party application [a] acquired from AppStore[b] is placed on the containing web page 203[c]. The blog third party application [a] includes three areas, namely a blog entry area [d], a tag cloud area [e], and a news update area [f]. A multipart third-party application can use multiple areas of its own in a variety of ways, for example, as multiple co-existing parts of an application (as in the blog example above), or It should be understood that it can be used as multiple parts that exist as options in one application, including areas that are always displayed and areas of options that are only displayed when requested. The display of the optional areas can be controlled by the third party application 40 or by the designer 5 (which determines how to configure it when it is included). Further, the display can be controlled as a support function area such as a configuration area or an additional dialog area. Alternatively, the same is true for the display of multi-versioned third-party applications (eg, having small and large versions of third-party applications, or having portrait and landscape versions of third-party applications).

上述した機能は、サードパーティアプリケーション40の要素の表示にiframeを使用して実装することができ、したがって、iframeベースのアーキテクチャのカプセル化およびセキュリティの利点が得られることを理解されたい。 It should be appreciated that the functionality described above can be implemented using iframes to render elements of the third party application 40, thus providing the encapsulation and security benefits of an iframe-based architecture.

さらに、マルチパートサードパーティアプリケーション40を実装するには、(それぞれのiframeの内側の)サードパーティアプリケーション40が、さまざまなiframeの表示(例えば、iframeの可視性、サイズ、位置)を制御できることが要求される。さらに、後からさらに詳しく説明するように、通信ハブ205によって、この表示を可能にできることを理解されたい。 Furthermore, implementing a multi-part third-party application 40 requires that the third-party application 40 (inside each iframe) be able to control the display of various iframes (eg, iframe visibility, size, position). To be done. Further, it should be appreciated that the communication hub 205 may enable this display, as described in more detail below.

さらに、マルチパートサードパーティアプリケーション40が(視覚的に)複数の要素および領域からなるときでも、(例えばAppStore 25における)購入、インストール、設定などの点において、このアプリケーション40は依然として1つのサードパーティアプリケーション40とみなされることを理解されたい。 Moreover, even when the multi-part third-party application 40 consists of (visually) multiple elements and regions, in terms of purchasing, installation, configuration (eg in AppStore 25), this application 40 is still a single third-party application. It should be understood that it is considered 40.

既存のシステムにおいては、サードパーティアプリケーション40それぞれが個別のエンティティとみなされ、(同じベンダーからの、または提携しているベンダーからの)2つのサードパーティアプリケーション40の間の協力関係は、ケースバイケースでシステムごとに開発しなければならない。システム100は、個別に購入およびインストールすることのできる協力する複数のサブモジュールからなるモジュール式サードパーティアプリケーション40をサポートすることもできることを理解されたい。 In existing systems, each third-party application 40 is considered as a separate entity, and the collaboration between two third-party applications 40 (from the same vendor or from an affiliated vendor) is case-by-case. You have to develop it for each system. It should be appreciated that the system 100 may also support a modular third party application 40 consisting of cooperating sub-modules that may be individually purchased and installed.

次に、図10を参照し、この図は、販売管理のモジュール式サードパーティアプリケーション[a]が、サブモジュールとして、顧客管理(CRM)モジュール[b]と、リードマネージメントモジュール[c]と、電子商取引モジュール[d]とを、どのように含むことができるかを示している。この1つのサードパーティアプリケーションのベンダーは、必要なサードパーティアプリケーションモジュールすべてを提供することができる。これに代えて、サードパーティアプリケーションのベンダーは、サードパーティアプリケーション40のモジュール(および機能)のサブセットを提供することができ、デザイナーは、補足的なサードパーティアプリケーションモジュールを、同じかまたは別のサードパーティアプリケーションベンダーから購入してインストールすることができる。マルチパートサードパーティアプリケーションは、1つのベンダーからの1つのサードパーティアプリケーションとして取得およびインストールされるのに対して(マルチパートサードパーティアプリケーションは複数の画面領域を占有するにすぎない)、モジュール式サードパーティアプリケーションは、個別に取得およびインストールすることのできる複数のモジュールを含み、場合によっては複数のサードパーティアプリケーションベンダーからのモジュールを含むことを理解されたい。複数のベンダーからの複数のサードパーティアプリケーションモジュールを統合できるようにするためには、サードパーティアプリケーションモジュールそれぞれが、自身が必要とするインタフェース/機能と、自身が提供するインタフェース/機能のリストを提供しなければならない。リストの提供は、例えば、ドットで区切られた階層的な名前表記法に基づくインタフェース名のリスト(例えば、My_CRM_TPA.NewClient.GetInfo)と、インタフェースパラメータの指定を使用することによって、行うことができる。 Next, referring to FIG. 10, a sales management modular third-party application [a] has sub-modules such as a customer management (CRM) module [b], a lead management module [c], and an electronic module. It shows how the commerce module [d] can be included. This one third-party application vendor can provide all the required third-party application modules. Alternatively, the third party application vendor may provide a subset of the modules (and functionality) of the third party application 40 and the designer may provide supplemental third party application modules to the same or another third party. It can be purchased and installed from an application vendor. Multipart third-party applications are acquired and installed as one third-party application from one vendor (multipart third-party applications only occupy multiple screen areas), while modular third-party It should be appreciated that an application includes multiple modules that can be individually obtained and installed, and in some cases, modules from multiple third-party application vendors. To be able to integrate multiple third-party application modules from multiple vendors, each third-party application module provides a list of the interfaces/features it needs and the interfaces/features it provides. There must be. Providing the list can be done, for example, by using a list of interface names based on a dot-separated hierarchical name notation (eg, My_CRM_TPA.NewClient.GetInfo) and interface parameter specifications.

サードパーティアプリケーション40のモジュールは、必須として要求されるインタフェース(すなわちそれがないとモジュールが機能しないインタフェース)、またはオプションとして要求されるインタフェース(すなわちそれがなくてもモジュールは機能するが提供される機能が制限されたり変化するインタフェース)を指定することができる。したがって、各インタフェースに提供されるパラメータは、一意のインタフェース名、インタフェースの説明(デザイナー5が(例えば)不足しているインタフェースによって扱われる機能を認識できるようにデザイナー5に示される)、必須/オプションのステータス、インタフェースパラメータのリストおよびタイプである。サードパーティアプリケーションモジュールそれぞれは、依然として個別のiframe(またはiframeのセット)に属すことを理解されたい。インタフェースの動作は、後からさらに詳しく説明する通信チャネルに基づく。 A module of the third-party application 40 may have a required interface (ie, an interface without which the module would not work) or an optional required interface (ie, the module would work without it but provided functionality). Interfaces that are restricted or change) can be specified. Therefore, the parameters provided for each interface are: a unique interface name, a description of the interface (shown to designer 5 so that designer 5 can (eg) recognize the functionality handled by the missing interface), required/optional. Status, list of interface parameters and types. It should be appreciated that each third party application module still belongs to a separate iframe (or set of iframes). The operation of the interface is based on the communication channel, which will be described in more detail later.

サードパーティアプリケーション40のモジュールは、ウェブサイトのデザイン段階においてアセンブルすることができることを理解されたい。ウェブサイト構築システム30は、サードパーティアプリケーション40の追加モジュールが追加されるため、インタフェース参照(interface references)を解決することができ、この場合、サードパーティアプリケーション40の新しいモジュールが既存の必要なインタフェースを解決するが、場合によっては新しい(解決されていない)必要なインタフェースを追加する。 It should be appreciated that the modules of the third party application 40 can be assembled at the design stage of the website. The website building system 30 can resolve interface references because an additional module of the third-party application 40 is added, in which case the new module of the third-party application 40 can replace the existing required interface. Resolve, but in some cases add new (unresolved) required interfaces.

さらに、デザイナー5は、必須(およびオプションの)インタフェースが依然として解決していない間に、完成したウェブサイトを編集して実行することができることを理解されたい。しかしながら、デザイナー5は、必須のインタフェースすべてが解決されるまでは、作成したウェブサイトを公開することはできず、解決していない必須のインタフェースを依然として有するサードパーティアプリケーションモジュールをハブ205が起動することを要求する機能を試みると、メッセージが表示される。 Further, it should be appreciated that the designer 5 can edit and run the completed website while the required (and optional) interfaces are still unresolved. However, the designer 5 cannot publish the created website until all the required interfaces are resolved, and the hub 205 starts the third-party application module that still has the required interfaces that have not been resolved. If you try to request a function, a message will be displayed.

さらに、AppStore 25は、要求されるサードパーティアプリケーションモジュールのインタフェースを解決するサードパーティアプリケーションモジュールを特定することを試みるサーチャー26を備えていることができることを理解されたい。サーチャー26は、特定のサードパーティアプリケーションモジュールまたはすべてのサードパーティアプリケーションモジュールを、解決されていないインタフェースに基づいて検索することができる。さらに、サーチャー26は、現時点で解決していないインタフェース、またはすでに解決したインタフェースに基づいて検索することができ、さらには、必須のインタフェース、オプションのインタフェース、または両方のタイプのインタフェースに基づいて検索することができる。さらに、サーチャー26を、特定のサードパーティアプリケーションの解決していないインタフェースを解決することと、特定のサードパーティアプリケーションベンダーを検索することに限定することができることを理解されたい。サーチャー26は、第1のレベルの検索(すなわち現時点で解決されていないインタフェースを満たすモジュール)、または複数レベルの検索(すなわち反復検索を実行し、前の検索によって見つかったサードパーティアプリケーションモジュールを考慮するときに加わる解決していないインタフェースを満たすモジュールも探す)のいずれかを実行することができる。 Further, it should be appreciated that the AppStore 25 may include a searcher 26 that attempts to identify a third party application module that resolves the interface of the required third party application module. The searcher 26 may search for a particular third party application module or all third party application modules based on the unresolved interface. In addition, the searcher 26 can search based on interfaces that are not currently resolved, or interfaces that have already been resolved, and even based on required interfaces, optional interfaces, or both types of interfaces. be able to. Further, it should be appreciated that the searcher 26 can be limited to resolving unresolved interfaces of a particular third party application and searching for a particular third party application vendor. The searcher 26 performs a first level search (ie, a module that fills an interface that is not currently resolved) or a multi-level search (ie, an iterative search and considers third-party application modules found by previous searches). Sometimes I also look for modules that satisfy unresolved interfaces).

システム100は、インタフェースの説明を使用して、いくつかの不足しているインタフェースを提供することの重要性に関する情報をデザイナー5に提供することができる。ハブ205は、依然として通信する必要のある非互換性のサードパーティアプリケーションの間のインタフェース変換を提供することができる。この変換は、ウェブサイト構築システム30の供給元または外部業者によって追加されるアダプタモジュールによって行うことができ、アダプタモジュールは、要求される指定のインタフェースを別のフォーマットに適合させる。 The system 100 can use the interface description to provide the designer 5 with information regarding the importance of providing some missing interfaces. The hub 205 can provide interface translation between incompatible third party applications that still need to communicate. This conversion can be done by an adapter module added by the vendor of the website construction system 30 or an external vendor, which adapts the required specified interface to another format.

さらに、システム100をオンラインアプリケーション編集システムに適用することができ、オンラインアプリケーション編集システムは、インターネット(または任意の別のネットワーク接続)と、ブラウザではないクライアント側ソフトウェアを使用して、作成されたオンラインアプリケーションを表示させる。このようなシステムでは、通常のウェブインフラストラクチャによって使用される特定の技術(例えば、IP通信、HTTP、HTMLなど)を使用する必要がない。 Further, the system 100 may be applied to an online application editing system that is created using the Internet (or any other network connection) and client side software that is not a browser. Is displayed. In such a system, it is not necessary to use the particular technology used by normal web infrastructure (eg, IP communication, HTTP, HTML, etc.).

この技術分野において公知である標準的なクロスドメイン通信方法を使用して、クロスドメイン通信を容易にすることができることを理解されたい。クロスドメイン通信方法としては以下が挙げられる。 It should be appreciated that standard cross domain communication methods known in the art can be used to facilitate cross domain communication. The following are examples of cross-domain communication methods.

HTML5 PostMessage: HTML5の標準的な機能であり、この機能を使用することで、安全なクロスドメインメッセージングを提供することができる。HTML5 Windows.Postmessageを使用すると、たとえ異なるドメインに属していても、ウィンドウ、iframe、およびメインHTMLドキュメントの間で安全にメッセージを送ることができる。PostMessageでは、送信側iframeがメッセージの送信先のドメインを指定するためのツールと、受信側iframeがメッセージの送信元のドメインを確認するためのツールが提供される。 HTML5 PostMessage: This is a standard function of HTML5, and it is possible to provide secure cross-domain messaging by using this function. HTML5 Windows. Postmessage allows you to securely send messages between windows, iframes, and main HTML documents, even if they belong to different domains. PostMessage provides a tool for the sender iframe to specify the domain of the message destination, and a tool for the receiver iframe to confirm the domain of the sender of the message.

メッセージのURLフラグメント識別子: この方法では、URLフラグメント識別子を使用して、1つのエンドポイントから別のエンドポイントにメッセージデータを送る。データをプレーンテキストに符号化し、ターゲットのエンドポイントドメインにおけるサービス、またはターゲットのエンドポイントiframeの内側の非表示iframeを呼び出すために使用されるURLに、(フラグメント識別子として)加える。フラグメント識別子を、ターゲットのサービスまたはiframeにおけるコードによって復号化する。 Message URL Fragment Identifier: This method uses a URL fragment identifier to send message data from one endpoint to another. The data is encoded in plain text and added (as a fragment identifier) to the service used in the target endpoint domain or the URL used to call the hidden iframe inside the target endpoint iframe. Decode the fragment identifier by the code in the target service or iframe.

専用の通信ウェブサービス: ウェブサイト構築システム30は、ウェブサイト構築システムのサーバ20上でホストされる専用ウェブを提供する。さまざまな通信エンドポイントがこのサーバに接続し、メッセージを送る、あるいは待機中のメッセージがないかチェックする。この方法は、pre−HTML5 Cometセットオブテクノロジ、HTML5ベースのWebSocket、または任意の他のキューイング、ポーリング、サーバプッシュ、または類似する手法など、この技術分野において公知の方法によって行うことができる。 Dedicated Communication Web Service: The website building system 30 provides a dedicated web hosted on the server 20 of the website building system. Various communication endpoints connect to this server to send messages or check for waiting messages. This can be done by methods known in the art such as the pre-HTML5 Comet set of technologies, HTML5-based WebSockets, or any other queuing, polling, server push, or similar technique.

HTML5のローカルストレージ: HTML5では、構造化されたローカルストレージ機能が提供され、この機能を使用することで、キューに入っているメッセージを格納することができる。しかしながら、ローカルストレージにアクセスできるのは、格納しているiframeと同じドメインに属するウェブコンテンツのみである。この技術分野において開発された解決策としては、Meebo XAuth製品(現在はGoogle社が所有)によって使用されている基礎技術などが挙げられ、この技術では、小型のサーバが、要求される中間iframeを作成するためのサポートを提供し、これにより、ドメインに固有なローカルストレージに、外部ドメインに属するiframeからアクセスすることができる。 HTML5 Local Storage: HTML5 provides a structured local storage function that can be used to store queued messages. However, the local storage can be accessed only by the web content belonging to the same domain as the stored iframe. Solutions developed in this area of technology include the underlying technology used by the Meebo XAuth product (now owned by Google Inc.), in which a small server provides the required intermediate iframe. Provides support for creating, which allows domain-specific local storage to be accessed from iframes that belong to foreign domains.

HTML5ローカルファイルアクセスAPI(アプリケーションプログラミングインタフェース): 上述したローカルストレージを使用する方法に似ており、HTML5のファイルアクセスAPI(File API、FileWriter API、FileReader API)を通じてアクセスされるユーザエージェントのローカルストレージ上のローカルファイルを使用して、クロスiframe通信チャネル(cross-iframe communication channel)を構築することができる。ただし、HTML5のファイルシステムアクセスAPIによって作成されるサンドボックス化されたローカルファイルシステムは、依然としてオリジン内からのみアクセス可能であり(origin-private)、したがって、同一オリジンという制限を克服するために中間iframe/サーバコンポーネントが要求される。 HTML5 Local File Access API (Application Programming Interface): Similar to the method of using local storage described above, on the local storage of the user agent accessed through the HTML5 file access API (File API, FileWriter API, FileReader API) Local files can be used to build a cross-iframe communication channel. However, the sandboxed local file system created by the file system access API of HTML5 is still only accessible from within the origin (origin-private), and thus the intermediate iframe is used to overcome the limitation of the same origin. /Server component required.

専用のブラウザプラグイン: クロスiframeメッセージキューを管理するための、専用のブラウザ(または他のユーザエージェント)プラグインを作成することができる。このようなプラグインは、(すべてのレベルにおける)ウェブサイト構築システム30のユーザがインストールしなくてはならないが、すべてのiframeと、ウェブサイト構築システム30のメインページに、必要なサービスを提供する。 Dedicated browser plugins: Dedicated browser (or other user agent) plugins can be created to manage the cross iframe message queue. Such plugins, which must be installed by the user of the website building system 30 (at all levels), provide all the iframes and the main page of the website building system 30 with the necessary services. ..

通信ハブ205は、上述した転送方法のいずれかを使用するiframe間通信すべてにおいてブローカーとして機能することができることを理解されたい。さらに、ハブ205は、含有ウェブページ203の構造と、サードパーティアプリケーション40のベンダーによって提供されてプロパティシート23に格納されているサードパーティアプリケーション40の詳細情報を、完全に認識することができることを理解されたい。さらに、サードパーティアプリケーション40は、複数の異なるアプリケーションに含まれているときと、(上述したように)同じアプリケーション内に含められる複数の異なるインスタンスにおいて、異なるパラメータを有することができる。このようなパラメータとしては、(後からさらに詳しく説明する)スマートアドレッシング(smart addressing)に使用することのできる一意のインスタンス名が挙げられる。さらに、ハブ205は、プロパティシート23に格納されていない、サードパーティアプリケーション40の追加の詳細情報を認識することもできることを理解されたい。 It should be appreciated that the communication hub 205 can act as a broker in all inter-iframe communication using any of the transfer methods described above. Further, it is understood that the hub 205 can fully understand the structure of the contained web page 203 and the detailed information of the third party application 40 provided by the vendor of the third party application 40 and stored in the property sheet 23. I want to be done. Further, the third party application 40 can have different parameters when included in different applications and in different instances included in the same application (as described above). Such parameters include unique instance names that can be used for smart addressing (discussed in more detail below). Further, it should be appreciated that the hub 205 may also recognize additional details of the third party application 40 that are not stored in the property sheet 23.

さらに、ハブ205は、スマートアドレッシングおよびスマート識別を容易にする、通信元を確認する、通信ポリシーを適用する、サードパーティアプリケーション40の非互換性の問題を解決する、さらにはサードパーティアプリケーション40からコンポーネントにリダイレクトすることができることを理解されたい。さらに、ハブ205は、後からさらに詳しく説明するように、含有ウェブページ203に行われた変更に基づいて、サードパーティアプリケーション40におけるレイアウトの動的な更新を可能にすることができる。 In addition, the hub 205 facilitates smart addressing and smart identification, verifies the source of communication, enforces communication policies, resolves incompatibility issues with the third party application 40, and is a component from the third party application 40. Please understand that you can be redirected to. In addition, the hub 205 may enable dynamic layout updates in the third party application 40 based on changes made to the containing web page 203, as described in more detail below.

次に、図11A、図11B、および図11Cを参照する。図11Aおよび図11Bは、ハブ205の異なる実施形態を示しており、図11Cは、ハブ205のさまざまな要素の機能を示している。 Next, please refer to FIG. 11A, FIG. 11B, and FIG. 11C. 11A and 11B show different embodiments of the hub 205, and FIG. 11C shows the function of various elements of the hub 205.

ハブ205は、スマート識別子/アドレッサ310、発信元確認器320、通信ポリシーエンフォーサ330、プロトコル変換器340、リダイレクタ350、動的レイアウト更新器360、構成マネージャ370、一般更新器380、およびホストされているAPI(アプリケーションプログラミングインタフェース)のラッパー390を備えていることができる。これらの要素の機能については、後から詳しく説明する。すべての機能を、すべてのクロスドメイン通信チャネル(例えば、サードパーティアプリケーション40からウェブサイト構築システム30へのチャネル、サードパーティアプリケーション40から別のサードパーティアプリケーション40へのチャネル)に適用することができることを理解されたい。 Hub 205 is hosted by smart identifier/addresser 310, origin verifier 320, communication policy enforcer 330, protocol converter 340, redirector 350, dynamic layout updater 360, configuration manager 370, general updater 380, and hosted. An API (application programming interface) wrapper 390 may be provided. The function of these elements will be described in detail later. All features can be applied to all cross-domain communication channels (eg, channel from third party application 40 to website building system 30, third party application 40 to another third party application 40). I want you to understand.

次に、図11Aを参照し、この図は、中間iframe[a]を通じてのハブ205の一般的な実施形態を示しており、中間iframeは、内部通信API(アプリケーションプログラミングインタフェース)を使用してウェブサイト構築システム30と通信する。このようにすることで、(例えば)TPA(サードパーティアプリケーション)[d](通信APIモジュール[f]を使用する)からTPA[e](通信APIモジュール[g]を使用する)に送られるメッセージ[c]を、アプリケーションに固有な情報を適用する方法において、分析、確認、または修正することができる。 Referring now to FIG. 11A, which shows a general embodiment of the hub 205 through an intermediate iframe[a], which uses the internal communication API (application programming interface) to access the web. Communicate with the site construction system 30. By doing this, a message sent from (for example) TPA (third party application) [d] (using communication API module [f]) to TPA [e] (using communication API module [g]). [C] can be analyzed, verified, or modified in a way that applies information specific to the application.

次に、図11Bを参照し、この図は代替実施形態を示しており、この実施形態では、中間iframeを使用せずに、(サードパーティアプリケーション[c]に埋め込まれている)通信APIモジュール[a]と、(サードパーティアプリケーション[d]に埋め込まれている)通信APIモジュール[b]の一方または両方において、クロスドメイン通信を使用する。モジュール[a]およびモジュール[b]は、通信メッセージ[f]を扱うとき、ウェブサイト構築システム30と直接対話してアプリケーションに固有な情報を受信し、この情報を使用する。(図11Aに示した実施形態と比較したときの)この実施形態の欠点として、ウェブサイト構築システム30のレベルの相当な量の情報が、サードパーティアプリケーションに含まれているモジュールの内側で処理されることがあり、これらの情報が、悪意のあるサードパーティアプリケーションによってアクセスされる(場合によっては修正される)ことがある。 Referring now to FIG. 11B, which shows an alternative embodiment, in which the communication API module [embedded in the third party application [c]] is used without the use of an intermediate iframe. a] and one or both of the communication API module [b] (embedded in the third party application [d]). Modules [a] and [b] interact directly with the website construction system 30 to receive application specific information and use this information when handling the communication message [f]. As a drawback of this embodiment (compared to the embodiment shown in FIG. 11A), a considerable amount of information at the level of the website building system 30 is processed inside a module contained in a third party application. This information may be accessed (and possibly modified) by malicious third-party applications.

上述したように、上に説明したすべてのクロス通信方法においては、iframeのアドレッシングは、iframeのオリジン(ソースドメイン、ソースプロトコル、ソースポートなど)に基づき、すなわち、(受信側を指定するための)メッセージを送るときと、(受信側に提供される送信側の名前としての)メッセージを受信するときに、サードパーティアプリケーション40のダイレクトアドレッシングを使用する。さらに、メッセージを送るためには、送信側は、(JavaScriptのdocument.getElementById(”...”).contentWindowコールまたは任意の他のメソッドを使用して)ターゲットのiframeウィンドウを指定することが要求される。したがって、既存のシステムにおいては、サードパーティアプリケーション40それぞれが、自身が通信する先の別のサードパーティアプリケーション40の具体的な詳細情報すべて(ドメイン、プロトコル、ポート、iframe IDを含む)を含んでいなければならない。 As mentioned above, in all the cross-communication methods described above, the addressing of the iframe is based on the origin of the iframe (source domain, source protocol, source port, etc.), ie (to specify the receiver). Use the direct addressing of the third party application 40 when sending the message and when receiving the message (as the sender's name is provided to the receiver). In addition, in order to send the message, the sender requires that the target iframe window be specified (using the Javascript document.getElementById("...").contentWindow call or any other method). To be done. Thus, in existing systems, each third-party application 40 contains all the specific details (including domain, protocol, port, iframe ID) of another third-party application 40 with which it communicates. There must be.

このタイプのダイレクトアドレッシングは、システム100の環境において扱いにくいことがあることを理解されたい。たとえデザイナー5が、提携していない複数のサードパーティアプリケーション40ベンダーからの複数のサードパーティアプリケーション40を統合しても、サードパーティアプリケーション40ベンダーによって供給されるサードパーティアプリケーション40が、最初は特定のドメインにおいてホストされるが、後から別のドメインまたはサブドメインに移動することがある。サードパーティアプリケーション40ベンダーは、特定のサードパーティアプリケーションと通信するために使用されるプロトコルまたはポートを変更することがある。デザイナー5には、サードパーティアプリケーション40を含む含有ウェブページ203のデザインを修正することが要求されうる。これらのすべては、運営中であり膨大な利用者によってアクセスされるウェブサイトにおいて使用されているサードパーティアプリケーション40において起こりうる。さらに、1つの含有ウェブページ203が、異なる機能を果たすことのできる、1つのサードパーティアプリケーション40の複数のインスタンスを含むことがある。例えば、製品サポートのウェブサイト内の1つのページに、チャットのためのサードパーティアプリケーション40の2つのインスタンス(1つは利用者同士のチャットおよびフォーラムのためのインスタンス、もう1つは、連絡可能なときにベンダーのサポート担当者に相談するために使用されるインスタンス)が含まれることがある。 It should be appreciated that this type of direct addressing can be awkward in the environment of system 100. Even though the designer 5 integrates multiple third-party applications 40 from multiple non-affiliated third-party application 40 vendors, the third-party application 40 supplied by the third-party application 40 vendor is initially a specific domain. Hosted in, but may later be moved to another domain or subdomain. Third party application 40 vendors may change the protocol or port used to communicate with a particular third party application. The designer 5 may be required to modify the design of the contained web page 203, including the third party application 40. All of these can occur in third party applications 40 that are in use and used on websites that are accessed by thousands of users. Further, one contained web page 203 may include multiple instances of one third party application 40 that may perform different functions. For example, two pages of a third-party application 40 for chat (one for user-to-user chat and forums, the other for contacting one page in the product support website) Sometimes used to consult vendor support personnel).

アドレッサ/識別子310は、含有ウェブページ203の構造と、(サードパーティアプリケーション40のベンダーによってウェブサイト構築システム30に提供される)サードパーティアプリケーション40の詳細情報とを完全に認識していることができることを理解されたい。アドレッサ/識別子310は、送信元サードパーティアプリケーション40または送信先サードパーティアプリケーション40のアドレッシングを、(AppStore 25に登録されている)サードパーティアプリケーション40の一意の名前と、含有ウェブページ203におけるサードパーティアプリケーション40の各インスタンスに加えられ、したがって同じサードパーティアプリケーション40の複数のインスタンスのアドレッシングを可能にする、サードパーティアプリケーション40のインスタンスの記述ID(descriptive ID)と、要求されるサードパーティアプリケーションのタイプ/クラスの一般識別子(generic identifier)(例:「含有ウェブページ203におけるイベントロギングのサードパーティアプリケーション40のインスタンスにメッセージ<x>を送りたい」)、のうちのいずれかを使用して、互いに提供することができる。このような識別子は、サードパーティアプリケーション40によってサポートされるべき特定のサービスを記述することもできる。さらに、アドレッサ/識別子310は、バージョンの指示情報を使用することができる(例:「会計パッケージ<y>がバージョン<z>である場合のみ、会計パッケージ<y>のインスタンスにトランザクション<x>を送りたい」)。 The addresser/identifier 310 may be fully aware of the structure of the containing web page 203 and the detailed information of the third party application 40 (provided by the vendor of the third party application 40 to the website building system 30). I want you to understand. The addresser/identifier 310 addresses the addressing of the source third party application 40 or the destination third party application 40, the unique name of the third party application 40 (registered in AppStore 25) and the third party application in the containing web page 203. A descriptive ID of the instance of the third party application 40 that is added to each instance of the 40 and thus allows addressing of multiple instances of the same third party application 40 and the type/class of the third party application required. Of each of the generic identifiers (e.g., "I want to send a message <x> to an instance of the event logging third party application 40 in the containing web page 203") of each other. You can Such an identifier may also describe the particular service to be supported by the third party application 40. In addition, the addresser/identifier 310 can use version indication information (eg, "Transaction <x> for instance of accounting package <y> only if accounting package <y> is version <z>". want to send").

実行時、サードパーティアプリケーション40は、ハブ205と通信するのみであり、したがって、ハブ205の直接アドレスを認識しているのみでよく、他のサードパーティアプリケーション40のアドレスは認識している必要がないことを理解されたい。この1つの直接アドレスを、ウェブサイト構築システム30によってサードパーティアプリケーション40の提供業者に提供される通信APIラッパーによってカプセル化することができる(図11Aに示した通信モジュールfおよびg、図11Bに示した通信モジュールaおよびbなど)。呼出し側のサードパーティアプリケーション40は、アプリケーションが認識している自身の(上述した)記述アドレスを提供することができ、アドレッサ/識別子310は、これらのアドレスを、サードパーティアプリケーション40の直接アドレスに変換してルーティングを実行することができる。このようにすることで、サードパーティアプリケーション40は、自身が通信しうるすべてのサードパーティアプリケーション40の絶対アドレスのテーブルを維持する必要がない。 At runtime, the third-party application 40 only communicates with the hub 205, and thus need only know the direct address of the hub 205, not the addresses of other third-party applications 40. Please understand that. This single direct address can be encapsulated by the communication API wrapper provided by the website construction system 30 to the provider of the third party application 40 (communication modules f and g shown in FIG. 11A, shown in FIG. 11B). Communication modules a and b etc.). The calling third party application 40 can provide its own (as described above) descriptive addresses known to the application and the addresser/identifier 310 translates these addresses into the direct addresses of the third party application 40. Then, the routing can be performed. In this way, the third party application 40 does not have to maintain a table of absolute addresses of all the third party applications 40 with which it can communicate.

メッセージの発信元の確認は重要であり、確認を行わないと、受信側のサードパーティアプリケーション40が、敵意のあるサードパーティアプリケーション40からのメッセージを受信しうることを理解されたい。すべての通信はハブ205を介して行われるため、発信元確認器320は、サードパーティアプリケーションからの入力メッセージすべての信頼性をチェックすることができる。さらに、発信元確認器320は、メッセージに追加することのできる追加情報を提供することができ、この追加情報を使用して追加の確認を行うことができる。AppStore 25に含まれておりシステム100によって使用されるすべてのサードパーティアプリケーション40それぞれは、ウェブサイト構築システム30に登録されるため、ハブ205は、メッセージに含まれている発信元の一意のIDがメッセージの発信元(ドメイン、ポートなど)に合致するかを、ウェブサイト構築システム30によって確認することができることを理解されたい。 It should be appreciated that confirmation of the originator of the message is important and without confirmation the receiving third party application 40 may receive the message from the hostile third party application 40. Since all communication is via the hub 205, the origin verifier 320 can check the authenticity of all incoming messages from third party applications. Further, the origin verifier 320 can provide additional information that can be added to the message, and this additional information can be used to provide additional confirmation. Each and every third party application 40 included in the AppStore 25 and used by the system 100 is registered with the website building system 30 so that the hub 205 knows that the unique ID of the originator contained in the message. It should be appreciated that the match with the originator of the message (domain, port, etc.) can be verified by the website construction system 30.

サードパーティアプリケーション40は、外部情報や含有ウェブページ203の情報などに依存しうる一般的な通信ポリシーを定義することができる。通信ポリシーエンフォーサ330は、仕様に準拠しない通信を扱う必要がないように、該当する通信ポリシーが適用されるようにすることができる。例えば、機密情報を扱うウェブサイトにおいては、サードパーティアプリケーションに、それらのプロファイル内の機密レベルフィールドを付与することができる。機密レベルXを扱うことが許可されている、バックエンドのイベントロギングデータベースを提供するサードパーティアプリケーション40は、Xより高い機密レベルを有するイベントを受け入れてロギングしないというポリシーを定義することができる。このような状況において、通信ポリシーエンフォーサ330は、必要な事前フィルタリングを実行して、機密レベルの高いメッセージが、低い機密レベルしか扱うことのできないアプリケーションに到達することさえも防止することができる。 The third party application 40 can define a general communication policy that can depend on external information, information on the contained web page 203, and the like. The communication policy enforcer 330 can ensure that applicable communication policies are applied so that communication that does not comply with the specifications need not be handled. For example, in a website that handles sensitive information, third-party applications can be given the confidentiality level field in their profile. A third-party application 40 that provides a backend event logging database that is allowed to handle sensitivity level X can define a policy that it will not accept and log events with a sensitivity level higher than X. In such a situation, the communication policy enforcer 330 can perform the necessary pre-filtering to prevent even highly sensitive messages from reaching applications that can only handle low confidentiality levels.

さらには、デザイナー5は、協力することは可能であるがプロトコル互換性の問題のために実際には協力することのない2つ(またはそれ以上)のサードパーティアプリケーションを、作成した同じウェブサイトに含めることを望むことがあることを理解されたい。ここで図12を参照し、例えばこの図に示したように、オンラインショップのサードパーティアプリケーション[a]は、(異なるベンダーから提供されている)サードパーティアプリケーション[b]などの調達・出荷のサードパーティアプリケーションに、購入注文メッセージを送信する機能を有することがある。しかしながら、サードパーティアプリケーション[a]によって提供される情報に、サードパーティアプリケーション[b]において必要ないくつかのフィールドが含まれていないことがある。このような状況は、一般には、関与するサードパーティアプリケーションのベンダーによって解決されるべきであるが、場合によってはこのような解決を行うことができない(例えば、2つのサードパーティアプリケーションの一方が何らかの理由で現時点で更新されていない)。プロトコル変換器340は、[a]から[b]への関連するメッセージを、(例えば必要な追加のフィールドを提供することによって)変換することができる。このような変換は、プロトコル変換器340によって実行することができる、または、アプリケーションが埋め込まれているウェブサイトおよび含有ウェブページ203との対話を伴うことがある(例えば追加情報が必要である場合)。 In addition, Designer 5 has two (or more) third-party applications on the same website that can work together, but do not actually work because of protocol compatibility issues. It should be appreciated that you may wish to include it. Referring now to FIG. 12, for example, as shown in this figure, a third-party application [a] in an online shop is a third party for procurement and shipment of a third-party application [b] (provided by a different vendor). The party application may have the ability to send a purchase order message. However, the information provided by the third party application [a] may not include some fields required by the third party application [b]. Such situations should generally be resolved by the vendor of the third party application involved, but in some cases such a resolution cannot be made (eg one of the two third party applications may Has not been updated at this time). The protocol converter 340 can convert the relevant message from [a] to [b] (eg, by providing the required additional fields). Such conversion may be performed by the protocol converter 340 or may involve interaction with the website in which the application is embedded and the containing web page 203 (eg, if additional information is needed). ..

さらには、サードパーティアプリケーション40は、別のサードパーティアプリケーション40にメッセージを送信する、またはこのようなサードパーティアプリケーション40からメッセージを受信することが要求される機能を有することがあることを理解されたい(例えば、上述したオンラインショップ/調達のサードパーティアプリケーション40のペア)。しかしながら、場合によってはソリューションの一部が存在しないことがあり、上の例においては、対応する、または適切な調達のサードパーティアプリケーション40が存在しないことがある。このような場合、リダイレクタ350を使用することによって、デザイナー5は、特定のメッセージを含有ウェブページ203のコンポーネントにルーティングする、または含有ウェブページ203のコンポーネントからの特定のメッセージをルーティングするようにと、匹敵する機能を、含有ウェブページ203のコンポーネントと、コンポーネントが提供することのできる機能とによって解決するように指定することができる。これにより、専用のサードパーティアプリケーション40を構築する必要なしに、完全なウェブサイトを構築することができる。したがって、トランザクションをデータベースにロギングすることのできるウェブサイト構築システム30のコンポーネントにトランザクションを送信することができ、このデータベースを後から(別のプログラムによって)使用して、オフラインでの調達および出荷を実行することができる。 Furthermore, it should be appreciated that the third party application 40 may have the functionality required to send messages to or receive messages from another third party application 40. (For example, the online shop/procurement third party application 40 pair described above). However, in some cases some of the solution may not be present, and in the above example, there may not be a corresponding or appropriate procured third party application 40. In such a case, by using the redirector 350, the designer 5 routes a particular message to a component of the containing web page 203 or a particular message from a component of the containing web page 203. Comparable functionality can be specified to be resolved by the components of the containing web page 203 and the functionality that the component can provide. This allows a complete website to be built without having to build a dedicated third party application 40. Thus, the transaction can be sent to a component of the website construction system 30 that can log the transaction to a database, which can be used later (by another program) to perform offline procurement and shipping. can do.

サードパーティアプリケーション40は、同じコードベースを使用するが異なる機能が有効になる、異なる能力を有する複数の構成を提供することができる。例えば、サードパーティアプリケーション40は、無料バージョンを通じて基本的な機能を提供し、購入するプレミアムバージョン、複数の有料バージョン、またはサードパーティアプリケーション40の購入する追加機能を通じて、追加の機能を提供することができる。 Third party application 40 may provide multiple configurations that use the same code base but have different capabilities enabled. For example, the third-party application 40 may provide basic functionality through a free version and may provide additional functionality through a premium version to purchase, multiple paid versions, or additional functionality to purchase of the third-party application 40. ..

システム100は、ユーザごとの(実際にはデザイナーごとの)サードパーティアプリケーション40の購入状況を管理する、ウェブサイト構築システム30をベースとする機能を含むことができることを理解されたい。さらに、すべてのデザイナーを、ウェブサイト構築システム30の登録ユーザとすることができ、したがって、ウェブサイト構築システム30は、各デザイナー5のサードパーティアプリケーション40の購入状況のデータベースを管理することができることを理解されたい。この情報は、デザイン段階においてはTPAコーディネータ24によって、実行時には構成マネージャ370によって、プロパティシート23に格納することができる。例えば、サードパーティアプリケーション40は、ウェブサイト構築システム30のクライアント側要素にバージョン問い合わせメッセージを送ることができる。ウェブサイト構築システム30のクライアント側要素は、リポジトリ22、またはローカルにキャッシュされているリポジトリのコピーに照会して、サードパーティアプリケーション40が提供するべき能力に関する情報を含む応答メッセージをサードパーティアプリケーション40に返す。 It should be appreciated that the system 100 may include functionality based on the website building system 30 that manages the purchase status of the third party application 40 by user (actually by designer). Further, all the designers can be registered users of the website building system 30, and thus the website building system 30 can manage the database of the purchase status of the third party application 40 of each designer 5. I want you to understand. This information can be stored in the property sheet 23 by the TPA coordinator 24 at the design stage and by the configuration manager 370 at run time. For example, the third party application 40 can send a version query message to the client-side element of the website building system 30. The client-side element of the website building system 30 queries the repository 22 or a locally cached copy of the repository and sends a response message to the third-party application 40 containing information about the capabilities the third-party application 40 should provide. return.

代替実装においては、ウェブサイト構築システム30は、サードパーティアプリケーション40の必要な構成情報(暗号化されたiframeパラメータなど)を、事前の問い合わせメッセージを必要とすることなしに、代替チャネルを介してサードパーティアプリケーション40に提供することができる。 In an alternative implementation, the website building system 30 provides the necessary configuration information for the third party application 40 (such as encrypted iframe parameters) to the third party via the alternative channel without the need for a prior inquiry message. It can be provided to the party application 40.

上述したように、サードパーティアプリケーション40は、含有ウェブページ203の特定のコンポーネントと直接通信することができる。サードパーティアプリケーション40は、通信先のコンポーネントを、さまざまな方法で識別することができ、すなわち、(後からさらに詳しく説明するように)関連付けられるテンプレートに基づいてコンポーネントを直接的に識別する、またはデザイナー5によって含有ウェブページ203の特定のコンポーネントに明示的に指定されるアクセスIDを通じて識別する、または含有ウェブページ203によってサードパーティアプリケーション40に提供される(場合によっては選択的な)コンポーネントモデルをたどることによって識別する。 As mentioned above, the third party application 40 can communicate directly with certain components of the containing web page 203. The third party application 40 can identify the component with which it communicates in a variety of ways: directly identifying the component based on an associated template (as described in more detail below), or by the designer. 5 through an access ID explicitly specified for a particular component of the containing web page 203 by, or following (optionally optional) component model provided by the containing web page 203 to the third party application 40. Identify by.

実行時、更新器380は、含有ウェブページ203のコンポーネントとサードパーティアプリケーション40との間のメッセージおよび応答を実装することができることを理解されたい。例えば、サードパーティアプリケーション40は、含有ウェブページ203のコンポーネントの視覚・表示属性(コンポーネントの位置、サイズ、色、透明度など)を変更・修正する、または問い合わせることができる。さらに、更新器380によって、サードパーティアプリケーション40は、含有ウェブページ203のコンポーネントのコンテンツを読み取るまたは書き込むことを可能になり、さらには、サードパーティアプリケーション40が、メディア機能(例えば、指定のオーディオセグメントまたはビデオセグメントをメディアプレイヤーコンポーネントに渡す、あるいは指定の期間にわたり再生を一時停止するようにメディアプレイヤーコンポーネントに要求する)を実行するコンポーネントに指示することが可能になる。 It should be appreciated that at run time, the updater 380 may implement messages and responses between the components of the containing web page 203 and the third party application 40. For example, the third-party application 40 can change or modify the visual/display attributes (component position, size, color, transparency, etc.) of the component of the contained web page 203, or inquire. In addition, the updater 380 enables the third party application 40 to read or write the content of the components of the containing web page 203, further allowing the third party application 40 to perform media functions (eg, a specified audio segment or It is possible to pass the video segment to the media player component or instruct the component to perform a request to the media player component to pause playback for a specified period of time.

さらに、更新器380によって、ウェブサイト構築システム30のコンポーネントが、サードパーティアプリケーション40に許可するアクセスのタイプを指定することが容易になり、この場合、最近のオペレーティングシステムにおいてファイルを保護するためにアクセス許可ビットやアクセス制御リスト(ACL)が機能するのと類似する方法による。このような許可は、すべてのサードパーティアプリケーション40、特定のベンダーからのサードパーティアプリケーション40、または特定のサードパーティアプリケーション40に適用されるように、各コンポーネントに対して定義することができる。例えば、サードパーティアプリケーション40が、含有ウェブページ203の中の、サードパーティアプリケーション40の外側のテキストフィールドにアクセスできるようにすることができる。ブログのサードパーティアプリケーション40の場合、このテキストフィールドを使用してブログエントリを編集することができ、ブログのサードパーティアプリケーション40の領域自体の内側に提供することのできる画面領域よりも広い画面領域が提供される。マルチページコンテナの内側の特定のミニページに埋め込まれているサードパーティアプリケーション40の場合、ウェブサイト構築システム30は、サードパーティアプリケーション40からのアクセスを、その特定のミニページ内のコンポーネントのみに制限することができることを理解されたい。 In addition, the updater 380 facilitates the components of the website building system 30 to specify the type of access to allow to the third party application 40, in which case access to protect files in modern operating systems. By a method similar to how permission bits and access control lists (ACL) work. Such permissions may be defined for each component to apply to all third party applications 40, third party applications 40 from a particular vendor, or a particular third party application 40. For example, the third party application 40 may be allowed to access text fields within the containing web page 203 outside the third party application 40. For a blog third party application 40, this text field can be used to edit a blog entry, providing more screen area than can be provided inside the area of the blog third party application 40 itself. Provided. For a third-party application 40 embedded in a particular minipage inside a multi-page container, the website construction system 30 limits access from the third-party application 40 to only the components within that particular minipage. Please understand that you can.

さらに、更新器380によって、サードパーティアプリケーション40がサイト全体の要素に影響を与えることが可能になることを理解されたい。例えば、サイト内の現在のページ、サードパーティアプリケーション40を含むコンテナ内の現在のミニページ、ページ履歴などの属性を取得して設定する処理が挙げられる。さらに、更新器380は、このような要求をフィルタリングまたは制限することができる。 Further, it should be appreciated that the updater 380 allows the third party application 40 to influence site-wide elements. For example, there is a process of acquiring and setting attributes such as the current page in the site, the current minipage in the container including the third party application 40, and the page history. Further, updater 380 can filter or limit such requests.

さらに、更新器380によって、ウェブサイト構築システム30がサードパーティアプリケーション40のスタイルおよび表示を変更・修正することが可能になる。更新器380は、ウェブサイト構築システム30がフォーマッティングおよびスタイルのガイドラインをサードパーティアプリケーション40に提供するときに使用する呼出しを実施することができる。ガイドラインは、色および配色、フォント、文字サイズ、透明度、アニメーションおよび特殊効果(例:ぼかし)などのプロパティを含むことができる。配色としては、特に、一般的配色(例えば以下のx色を使用する)や、ハイレベル配色(例えば、テキストに色xを使用し、フレームに色yを使用する)が挙げられる。 In addition, updater 380 allows website building system 30 to change and modify the style and presentation of third party applications 40. Updater 380 may implement the calls that website construction system 30 uses when providing formatting and style guidelines to third party applications 40. Guidelines can include properties such as color and color scheme, font, font size, transparency, animation and special effects (eg blur). Color schemes include, in particular, general color schemes (eg, use the x color below) and high-level color schemes (eg, use color x for text and color y for frames).

複雑なスタイル情報を表現するための1つの好ましい方法は、カスケードスタイルシート(CSS)を使用することであり、カスケードスタイルシートは、フォントやサイズ、色などの複数のスタイルディレクティブの組合せを表現することができることを理解されたい。更新器380は、このようなCSSベースのメッセージをサードパーティアプリケーション40に送ることができる。スタイルシートは、本質的に汎用とする、または、サードパーティアプリケーション40によって定義される固有のスタイル名を含むことができ、したがってウェブサイト構築システム30は、より適切なガイドラインをサードパーティアプリケーション40に提供することができる(例えば、スタイルシートは、特定のサードパーティアプリケーション40の要素を参照して、これらのガイドラインを提供することができる)。 One preferred way to represent complex style information is to use Cascading Style Sheets (CSS), which represents a combination of multiple style directives such as font, size, and color. Please understand that Updater 380 can send such CSS-based messages to third party application 40. The style sheet may be generic in nature or may include unique style names defined by the third party application 40, so the website building system 30 provides the third party application 40 with better guidelines. (For example, the stylesheet can reference elements of a particular third party application 40 to provide these guidelines).

これにより、サードパーティアプリケーション40は、これらのガイドラインを使用して、含有ウェブページ203に良好に適合した自身の外観/操作感(ルックアンドフィール)を生み出すことができる。このことは、同じサイト内の複数の含有ウェブページ203に含まれる、または複数の含有ウェブページ203から可視である(上述したマルチポートインクルージョン)サードパーティアプリケーション40にとって、特に重要である。複数の含有ウェブページが、異なる配色や基本デザインを採用することができる。サードパーティアプリケーション40は、これらのスタイルメッセージを通じて提供される情報を使用して、自身の表示色およびスタイルを、含有ページそれぞれに良好に合うように適合させ、含有ウェブページと比較して調和しない配色が表示されたり外観/操作感が生じることを回避することができる。 This allows the third-party application 40 to use these guidelines to create its own look and feel that fits well into the containing web page 203. This is particularly important for third party applications 40 that are contained in or visible from multiple contained web pages 203 within the same site (multiport inclusion as described above). Multiple contained web pages can adopt different color schemes and basic designs. The third-party application 40 uses the information provided through these style messages to adapt its display colors and styles to each of the included pages to suit them well and to create a color scheme that is inconsistent compared to the included web pages. It is possible to avoid the display of and the appearance/operation feeling.

動的レイアウト更新器360は、動的レイアウトイベントの結果としての表示の変更を処理するときに、ウェブサイト構築システム30とサードパーティアプリケーション40、あるいはサードパーティアプリケーション40と補助的なサードパーティアプリケーションが、協力することを可能にすることを理解されたい。ウェブサイト構築システム30は、ページ内のコンポーネントのいくつかを変更するイベント発生時に、ページデザインを維持する目的で、そのページ内のコンポーネントのサイズおよび位置を変更することができる。これらの動的レイアウトイベントとしては、例えば、異なるサイズを有する画面上でウェブサイトを閲覧する、ポートレートモードとランドスケープモードの間で表示装置を回転させる、いくつかのコンポーネントのサイズや位置を変更する、特定のコンポーネントのコンテンツを変更する(結果としてコンポーネントのサイズ変更が要求される)、が挙げられる。さらに、動的レイアウトイベントとしては、(例えばデータフィード(data feed)からの情報を表示するコンポーネントにおける)サーバベースのコンテンツの更新、あるいは同じウェブサイトの別の同時ユーザによるコンテンツの変更による、コンポーネントの更新が挙げられる。さらに、動的レイアウトイベントは、デザイン環境のみならず実行時環境においても起こりうることを理解されたい。特に、コンポーネントおよびサードパーティアプリケーション40によっては、デザイナーによってのみならず、実行時に(すなわちエンドユーザによって)コンポーネントのコンテンツやサイズ/位置を変更することができる。 The dynamic layout updater 360 may be used by the website building system 30 and the third-party application 40, or the third-party application 40 and ancillary third-party applications to process the display changes resulting from the dynamic layout event. It should be understood that it enables us to work together. The website building system 30 can change the size and position of components within a page for the purpose of maintaining the page design when an event occurs that changes some of the components within the page. These dynamic layout events include, for example, browsing a website on screens with different sizes, rotating the display between portrait mode and landscape mode, changing the size or position of some components. , Changing the content of a particular component (resulting in a requirement to resize the component). In addition, dynamic layout events include component-based updates of server-based content (eg, in a component that displays information from a data feed), or content changes by another concurrent user of the same website. Updates are included. Further, it should be appreciated that dynamic layout events can occur in the runtime environment as well as the design environment. In particular, depending on the component and third party application 40, the content and size/position of the component can be changed at runtime (ie by the end user) as well as by the designer.

さらに、動的レイアウトイベントは、サードパーティアプリケーション40によっても発生しうることを理解されたい。例えば、オンラインショップのサードパーティアプリケーション40では、利用者が製品カタログの表示から(異なるサイズを有する)ショッピングカートの表示に移動するときに、サイズの変更が要求されることがある。別の例として、製品カタログのサードパーティアプリケーション40は、製品を強調表示するためのオプションを含むことがあり、このオプションに起因して、サードパーティアプリケーション40は、より多くのコンテンツを含むより大きなカタログページを表示する。さらなる例としては、追加領域の表示を開始または停止させることができるマルチ領域のサードパーティアプリケーション40が挙げられる。 Further, it should be appreciated that the dynamic layout event may also be raised by the third party application 40. For example, an online shop's third party application 40 may require resizing when a user navigates from a product catalog view to a shopping cart view (having a different size). As another example, a product catalog third party application 40 may include an option to highlight a product, which results in the third party application 40 having a larger catalog with more content. Display the page. A further example is a multi-region third party application 40 that can start or stop the display of additional regions.

ここで前出の図6を参照する。既存のシステムでは、このような状況は、たとえ扱うにしても、一般には、サードパーティアプリケーションの表示を途中で切り取り、表示にスクロールバーを追加する、または図6に示したようにページの他のコンポーネントを隠すポップアップウィンドウとして単に表示をリサイズすることによって処理する。動的レイアウト更新器360は、協力的な動的レイアウトを実装することができ、この場合、ウェブサイト構築システム30とサードパーティアプリケーション40とが協力して動的レイアウトを実行し、含有ウェブページ203の基本的なデザインを維持する。動的レイアウトの機能は、特許文献1(出願日:2013年2月20日、本発明の共通の譲受人に譲渡されている)にさらに記載されている。しかしながら、たとえ協力的な動的レイアウトをサポートするシステムにおいても、含有ウェブページ203における動的レイアウトメカニズムは、サードパーティアプリケーション40の内部レイアウトを完全には制御しない。さらには、ウェブサイト構築システム30のウィジェットは、(特定の範囲内で)任意のサイズにリサイズできるように設計されることがあるが、サードパーティアプリケーション40が任意のリサイズをサポートしないことがある。サードパーティアプリケーション40は、例えば、異なるサイズを有する複数の表示設定(例:より多くの、またはより少ない詳細情報を表示する)、サードパーティアプリケーション40の内部要素のいくつかをリサイズする機能、サードパーティアプリケーション40のテキスト要素のいくつかを複数のフォントサイズを使用して表示する機能、の任意の組合せを提供することがある。 Referring now to FIG. 6 above. In existing systems, even if this situation is dealt with, it is common to cut off the display of the third-party application and add a scroll bar to the display, or to other pages such as shown in FIG. Handle by simply resizing the display as a popup window that hides the component. The dynamic layout updater 360 may implement a collaborative dynamic layout, in which case the website building system 30 and the third party application 40 cooperate to perform the dynamic layout and to include the contained web pages 203. Keep the basic design of. The functionality of the dynamic layout is further described in US Pat. No. 6,037,086 (filed on Feb. 20, 2013, assigned to the common assignee of the present invention). However, even in systems that support collaborative dynamic layout, the dynamic layout mechanism in the containing web page 203 does not fully control the internal layout of the third party application 40. Furthermore, the widgets of the website construction system 30 may be designed to be resized to any size (within a certain range), but the third party application 40 may not support any resizing. The third party application 40 may, for example, have multiple display settings with different sizes (eg, show more or less detailed information), the ability to resize some of the internal elements of the third party application 40, a third party Any combination of the ability to display some of the text elements of application 40 using multiple font sizes may be provided.

さらに、サードパーティアプリケーション40は、提供される可能な表示サイズの数が限られていることがあり、可能なサイズの範囲全体を有することがある。したがって、含有ウェブページ203からサードパーティアプリケーション40へのリサイズ要求は、サードパーティアプリケーション40が最も近い可能なサイズに切り替えることによって、またはサードパーティアプリケーション40の可能なサイズのリストを提供する(これによりウェブサイト構築システム30は使用する適切なサイズを選択することができる)ことによって、解決することができる。 Further, the third party application 40 may have a limited number of possible display sizes offered and may have an entire range of possible sizes. Therefore, a resizing request from the containing web page 203 to the third party application 40 provides a list of the possible sizes of the third party application 40 by switching to the closest possible size of the third party application 40 (which allows the web The site building system 30 can choose the appropriate size to use) to solve the problem.

動的レイアウト更新器360は、[含有ウェブページ203からサードパーティアプリケーション40への]協力的な動的レイアウトを、次のシーケンスを使用して実装することができる。 The dynamic layout updater 360 may implement a collaborative dynamic layout [from the containing web page 203 to the third party application 40] using the following sequence.

例えば、含有ウェブページ203に埋め込まれているサードパーティアプリケーション40を、特定の所望のサイズ(例:X1*Y1ピクセル)にリサイズすることが必要となることがある。動的レイアウト更新器360は、サードパーティアプリケーション40が自身のコンテンツを特定の所望のサイズ(例:X1*Y1ピクセル)にリサイズするように要求するメッセージを、サードパーティアプリケーション40に送ることができる。サードパーティアプリケーション40は、代替の表示設定、内部でのリサイズ処理、内部での動的レイアウト処理、または任意の他の手段を使用することによって、指定のサイズに調整することができる。さらには、含有ウェブページ203が、サードパーティアプリケーション40を含む外部iframeウィンドウを新しいサイズ(X1*Y1)にリサイズできることを理解されたい。 For example, it may be necessary to resize the third party application 40 embedded in the containing web page 203 to a particular desired size (eg, X1*Y1 pixels). The dynamic layout updater 360 may send a message to the third party application 40 requesting that the third party application 40 resize its content to a particular desired size (eg, X1*Y1 pixels). The third-party application 40 can be sized to a specified size by using alternative display settings, internal resizing, internal dynamic layout, or any other means. Furthermore, it should be appreciated that the containing web page 203 can resize the external iframe window containing the third party application 40 to a new size (X1*Y1).

さらに、サードパーティアプリケーション40は、可能なサイズの限られたセットにリサイズ処理できるのみでありうることを理解されたい(例えば特定のユーザインタフェース構成)。したがって、動的レイアウト更新器360は、サードパーティアプリケーション40が可能なサイズのセットを提供することができる次の代替アルゴリズムを使用することができる。 Further, it should be appreciated that the third party application 40 may only be able to resize to a limited set of possible sizes (eg, particular user interface configurations). Therefore, the dynamic layout updater 360 can use the following alternative algorithm that can provide a set of sizes that the third party application 40 can.

含有ウェブページ203がリサイズされ、動的レイアウト更新器360は、サードパーティアプリケーション40が自身のコンテンツを特定の所望のサイズ(X1*Y1)にリサイズするように要求するメッセージを、サードパーティアプリケーション40に送る。サードパーティアプリケーション40は、最も近い可能なサイズ(例:X2*Y2ピクセル)を求め、代替の表示設定、内部でのリサイズ処理、内部での動的レイアウト処理、または任意の他の手段を使用することによって、そのサイズにリサイズする。次いで、更新器380は、リサイズ処理を確認する応答メッセージを含有ウェブページ203に送り、実際の新しいサイズ(X2*Y2)を提供することができる。含有ウェブページ203は、サードパーティアプリケーション40を含む外部iframeウィンドウを実際の新しいサイズ(X2*Y2)にリサイズすることができる。含有ウェブページ203は、実際の新しいサイズ(X2*Y2)に基づいて動的レイアウト処理を続行することができる。 The containing web page 203 is resized and the dynamic layout updater 360 sends a message to the third party application 40 requesting that the third party application 40 resize its content to a particular desired size (X1*Y1). send. The third-party application 40 finds the closest possible size (eg, X2*Y2 pixels) and uses alternative display settings, internal resizing, internal dynamic layout, or any other means. By resizing to that size. The updater 380 can then send a response message confirming the resizing process to the containing web page 203 and provide the actual new size (X2*Y2). The containing web page 203 can resize the external iframe window containing the third party application 40 to the actual new size (X2*Y2). The containing web page 203 can continue the dynamic layout process based on the actual new size (X2*Y2).

特に、含有ウェブページ203内に複数のサードパーティアプリケーション40(またはマルチ領域サードパーティアプリケーション40)が存在する場合、別の実施形態も適用可能であることを理解されたい。この実施形態においては、含有ウェブページ203は、埋め込まれているサードパーティアプリケーション40が複数のサードパーティアプリケーション40の複数のオプションを考慮して外観/操作感を最適化することを試みることができるように、埋め込まれているサードパーティアプリケーション40に問い合わせて表示サイズのリストを取得することができる。この実施形態は、サードパーティアプリケーション40が複数の領域にわたり表示される場合にも関連する。 It should be appreciated that other embodiments are also applicable, particularly where there are multiple third party applications 40 (or multi-domain third party applications 40) within the containing web page 203. In this embodiment, the containing web page 203 allows the embedded third-party application 40 to attempt to optimize the look/feel by considering the options of the third-party applications 40. First, the embedded third-party application 40 can be queried to obtain a list of display sizes. This embodiment is also relevant when the third party application 40 is displayed across multiple areas.

含有ウェブページ203は、動的レイアウト処理を実行して、1つまたは複数のサードパーティアプリケーション40(TPA[1]〜TPA[n])が含有ウェブページ203に埋め込まれており次のアルゴリズムを使用してリサイズするべきであることを認識する。 The contained web page 203 executes the dynamic layout process and one or more third party applications 40 (TPA[1] to TPA[n]) are embedded in the contained web page 203 and use the following algorithm. Then recognize that it should be resized.

iについて1からnまでループする。 Loop from 1 to n for i.

各TPA[i]について、以下を求める。 For each TPA[i], we find:

最小サイズXmin[i]*Ymin[i]、
最大サイズXmax[i]*Ymax[i]、
最適サイズXopt[i]*Yopt[i]、
動的レイアウト更新器360は、上記の最小/最大/最適サイズを列挙するメッセージをTPA[i]に送り、サードパーティアプリケーション40の可能なサイズに関する情報を要求することができる。
Minimum size Xmin[i]*Ymin[i],
Maximum size Xmax[i]*Ymax[i],
Optimal size Xopt[i]*Yopt[i],
The dynamic layout updater 360 may send a message to TPA[i] listing the above min/max/optimal sizes to request information about the possible sizes of the third party application 40.

サードパーティアプリケーション40は、自身が採用することのできる可能なサイズオプションのセット(Xposs[i][j]*Yposs[i][j])を動的更新器360に提供することができる。 The third party application 40 may provide the dynamic updater 360 with a set of possible size options (Xposs[i][j]*Yposs[i][j]) that it can adopt.

含有ウェブページ203は、上記のようにして集めたXposs[][]/Yposs[][]情報に基づき、(例えば)サードパーティアプリケーションの可能なサイズの組合せすべての完全な評価、線形計画法、または動的レイアウトアルゴリズムによって使用される任意の他の手法を使用することによって、動的レイアウト計算の解を計算することができる。 The containing web page 203 is based on the Xposs[][]/Yposs[][] information gathered as described above, a complete evaluation of all possible size combinations (for example) of third party applications, linear programming, Alternatively, the solution of the dynamic layout calculation can be calculated by using any other technique used by the dynamic layout algorithm.

すべてのTPAについて結果をXfinal[i]/Yfinal[i]に格納する。 Store the results for all TPAs in Xfinal[i]/Yfinal[i].

iについて1からnまでループする。 Loop from 1 to n for i.

含有ウェブページ203が、Xfinal[i]/Yfinal[i]を含むリサイズメッセージをTPA[i]に送る。 The containing web page 203 sends a resizing message containing Xfinal[i]/Yfinal[i] to TPA[i].

含有ウェブページ203が、TPA[i]を含む外部iframeウィンドウをXfinal[i]/Yfinal[i]にリサイズする。 The containing web page 203 resizes the external iframe window containing TPA[i] to Xfinal[i]/Yfinal[i].

含有ウェブページ203が、実際の新しいサイズに基づいて動的レイアウト処理を続行する。 The containing web page 203 continues the dynamic layout process based on the actual new size.

動的レイアウト処理では、一般に、サードパーティアプリケーション40を単にリサイズするだけではなく、サードパーティアプリケーション40を移動させることが要求されうることを理解されたい。しかしながら、サードパーティアプリケーション40は、含有ウェブページ203の内側の自身のフレームの正確な位置に対して不変であるべきである。 It should be appreciated that the dynamic layout process may generally require moving the third party application 40 rather than just resizing the third party application 40. However, the third party application 40 should be invariant to the exact location of its frame inside the containing web page 203.

上述したように、サードパーティアプリケーション40は、その表示ウィンドウのサイズを変更する必要もときおり生じうる。iframeを表示するウィンドウのサイズは、ホスティングページ(すなわち含有ウェブページ203)によって管理されるため、サードパーティアプリケーション40のウィンドウサイズの変更は含有ウェブページ203によって実行されなければならず、この場合、サードパーティアプリケーション40はウィンドウサイズを変更するように含有ウェブページ203に(動的レイアウト更新器360を介して)要求する。 As mentioned above, the third party application 40 may occasionally need to resize its display window. Since the size of the window displaying the iframe is managed by the hosting page (ie the containing web page 203), changing the window size of the third party application 40 must be performed by the containing web page 203, in which case the third The party application 40 requests (via the dynamic layout updater 360) the containing web page 203 to change the window size.

さらに、サードパーティアプリケーション40は、含有ウェブページ203の内側の自身の位置を変更するように(動的レイアウト更新器360を介して)要求することもできることを理解されたい。この場合には、(サイズ変更のときのように)内部的にサードパーティアプリケーション40が影響されることはないが、含有ウェブページ203内の表示の変更が要求される。動的レイアウト更新器360は、この要求と動的レイアウトとを統合することができる。含有ウェブページ203は、動的レイアウト更新器360を起動して、サードパーティアプリケーション40のウィンドウサイズ(および場合によってはウィンドウの位置)を変更し、サイズおよび位置の変更の確認をサードパーティアプリケーション40に送ることができる。 Further, it should be appreciated that the third party application 40 may also request (via the dynamic layout updater 360) to change its position inside the containing web page 203. In this case, the third party application 40 is not affected internally (as when resizing), but a change in the display within the containing web page 203 is required. The dynamic layout updater 360 can integrate this requirement with the dynamic layout. The containing web page 203 invokes the dynamic layout updater 360 to change the window size (and possibly the window position) of the third party application 40 and ask the third party application 40 to confirm the size and position change. Can be sent.

ハブ205は、サードパーティアプリケーション40のクラスに固有な追加のメッセージ、またはサードパーティアプリケーション40に固有な追加のメッセージとして、ウェブサイト構築システム30自体、または特定の含有ウェブページ203、または補助的なサードパーティアプリケーション40がサードパーティアプリケーション40に影響を与えることのできる追加のメッセージ、を実装することもできることを理解されたい。例えば、ブログのサードパーティアプリケーション40は、新しいブログエントリ、または現在のブログエントリへの新しい応答を投稿することのできる入力メッセージを定義することがある。このようなメッセージは、(例えば、サードパーティアプリケーションの領域の外側の大きな編集フィールドからブログエントリを投稿するための方法として)含有ウェブページ203によって使用することができる。さらに、このようなメッセージは、上位レベルのアプリケーション間のリンクに使用することもでき、これにより例えば、サポートのサードパーティアプリケーションがブログのサードパーティアプリケーションにブログエントリを投稿することができる。 The hub 205 may provide additional messages specific to the class of the third party application 40, or additional messages specific to the third party application 40 as the website building system 30 itself, or a particular contained web page 203, or an auxiliary third party. It should be appreciated that the party application 40 may also implement additional messages, which may affect the third party application 40. For example, the blog third party application 40 may define an input message that may post a new blog entry or a new response to the current blog entry. Such a message can be used by the containing web page 203 (eg, as a way to post a blog entry from a large edit field outside the area of a third party application). Further, such messages can also be used for links between higher level applications, which allows, for example, a supporting third party application to post a blog entry to the blog's third party application.

サードパーティアプリケーション40では、自身のサイト内でサードパーティアプリケーション40を使用しているデザイナーがサードパーティアプリケーション40の内部で使用する、または下流で使用するための幅広い複雑なサービスがしばしば要求されることを理解されたい。このようなサービスとしては、ユーザ管理や請求・出荷管理が挙げられる。ウェブサイト構築システム30のベンダーは、(例えば技術的な問題またはビジネス上の理由で)ウェブサイト構築システムの一部としてこのようなサービスを提供できないことがある。さらには、これらのサービスは、単独でサードパーティアプリケーション40として「パッケージ化」するのに適していないことがある。さらに、サードパーティアプリケーション40のベンダーは、サードパーティアプリケーション40を使用するデザイナーに複数のそのようなサービス(例:サードパーティの複数の請求API)を提供して、デザイナー5が適切なサービスを選択して使用できるようにするオプションを必要とすることがある。 Third party applications 40 often require a wide range of complex services for use within or downstream of third party applications 40 by designers using the third party applications 40 within their site. I want you to understand. Such services include user management and billing/shipping management. The vendor of the website building system 30 may not be able to provide such services as part of the website building system (eg, due to technical issues or business reasons). Moreover, these services may not be suitable to be “packaged” as a third party application 40 alone. In addition, the vendor of the third party application 40 may provide a number of such services (eg, third party billing APIs) to the designer using the third party application 40 so that the designer 5 selects the appropriate service. May need options to make it available for use.

例えば、ウェブサイト構築システム30において、PaypalTMによってホストされるAPIを提供することができ、このAPIをサードパーティアプリケーション40によって直接使用する、またはこのAPIを使用するデザイナー5にサードパーティアプリケーション40によって提供することができる。さらに、サードパーティアプリケーション40は、自身のオプションのセット(すなわち特定の請求タイプ、例えば一回単位請求、自動継続請求、レベニューシェア(revenue sharing)を使用する)を提供し、ホストされているPaypalのAPIを呼び出すことによってこれらのオプションを実装することもできる。 For example, in the website construction system 30, an API hosted by Paypal can be provided, and this API can be directly used by the third party application 40 or provided by the third party application 40 to the designer 5 who uses this API. can do. In addition, the third-party application 40 provides its own set of options (ie, uses a particular billing type, such as one-time billing, automatic recurring billing, revenue sharing), and is hosted by Paypal. You can also implement these options by calling the API.

したがって、ウェブサイト構築システム30を使用しているデザイナー5は、前払請求(advanced billing)を使用する固有のサービス(楽曲を販売するオンラインショップなど)を開発することができる。デザイナー5は、ホストされている請求APIを、直接的に使用する、または追加の抽象レベル(または抽象層)を提供するサードパーティアプリケーション40を通じて使用することによって、請求APIの提供者との特定の清算協定や取引合意(merchant agreement)を交渉する必要性を回避することができる。この意味で、ウェブサイト構築システム30は、ホストされているAPIのベンダーの代理店となりうる。 Therefore, the designer 5 using the website construction system 30 can develop a unique service (such as an online shop that sells music) that uses advanced billing. The designer 5 uses the hosted billing API either directly, or through a third party application 40 that provides an additional level of abstraction (or abstraction layer) to identify a particular billing API provider. It avoids the need to negotiate clearing agreements and merchant agreements. In this sense, the website construction system 30 can be an agent of a vendor of a hosted API.

ホストされているAPIのラッパー390は、システムの複数の異なる部分(例えば、ウェブサイト構築システム30、ホストされているAPIコード、含まれているサードパーティアプリケーション40)の間のこの通信を容易にすることができる。APIのラッパー層と、実際のAPIの実装は、ウェブサイト構築システム30自体または別のサードパーティアプリケーション40に属することができることを理解されたい。サードパーティアプリケーション40のベンダー(またはデザイナー5)は、実際の下層のAPIの実装方法を認識することなく、ホストされているAPIのラッパー390を通じて、ホストされているAPIを使用することができる。 The hosted API wrapper 390 facilitates this communication between different parts of the system (eg, website building system 30, hosted API code, included third party applications 40). be able to. It should be appreciated that the API wrapper layer and the actual API implementation may belong to the website building system 30 itself or another third party application 40. The vendor (or designer 5) of the third-party application 40 can use the hosted API through the hosted API wrapper 390 without knowing how to actually implement the underlying API.

本発明の補足的な代替実施形態においては、出願人は、ウェブサイト構築システムの追加のテンプレートおよびコンポーネントが、AppStore 25のレベルにおけるサードパーティアプリケーションと、関連するサードパーティアプリケーションのインスタンスとに関連付けられる統合モデルを使用することによって、ウェブサイト構築システム30と1つまたは複数のサードパーティアプリケーション40との間のスマートな統合を達成できることをさらに認識した。サードパーティアプリケーション40は、これらのコンポーネント(および関連付けられていないコンポーネント)と通信して、データおよび制御メッセージを交換することもできる。上述したように、含有ウェブページ203内のサードパーティアプリケーション領域40は、メインサイトがホストされているドメインとは異なる個別のドメイン(サードパーティアプリケーションのベンダーのドメインまたはそれ以外)においてコンテンツがホストされる個別のiframeである。したがって、複数の異なるiframe間の通信には、ブラウザの「同一オリジンポリシー」が適用され、上述した手法を使用することが要求される。 In a complementary alternative embodiment of the present invention, Applicant is confident that additional templates and components of the website building system are associated with third party applications at the AppStore 25 level and associated instances of the third party applications. It was further recognized that by using the model, smart integration between the website building system 30 and one or more third party applications 40 can be achieved. Third party applications 40 may also communicate with these components (and unassociated components) to exchange data and control messages. As mentioned above, the third-party application area 40 within the containing web page 203 is a separate host where the content is hosted in a separate domain (third party application vendor domain or otherwise) different from the domain where the main site is hosted. Iframe. Therefore, the "same origin policy" of the browser is applied to the communication between a plurality of different iframes, and it is required to use the above-described method.

既存のシステムでは、サードパーティアプリケーション40を、含有ウェブページ203に含まれるがそれ以外の点では含有ウェブページ203自体の外観/操作感には影響しない、一体的な柔軟性の低いオブジェクトとして実装する。サードパーティアプリケーション40のインスタンスは、(一般には長方形の)領域内に配置され、その動作・機能のすべてをこの領域内で実行する。 In existing systems, the third-party application 40 is implemented as an integral, less flexible object that is included in the contained web page 203 but otherwise does not affect the appearance/feel of the contained web page 203 itself. .. The instance of the third-party application 40 is located in a (generally rectangular) area and performs all of its operations/functions in this area.

さらに、出願人は、サードパーティアプリケーション40に関連付けられる、ウェブサイト構築システム30の(オプションの)追加のテンプレート(本発明の実施形態によると、関連付けられるテンプレートと称する)を有することによって、この概念を拡張できることを認識した。この関連付けは、サードパーティアプリケーション40の開発時または公開時に実行することができ、(AppStore 25からの)サードパーティアプリケーション40の選択/購入プロセスおよびサードパーティアプリケーション40のインスタンス作成の一部として、デザイナー5に提示することができることを理解されたい。サードパーティアプリケーション(TPA)コーディネータ24は、サードパーティアプリケーション40に関連付けられるテンプレートを、(AppStore 25によって管理される、またはサードパーティアプリケーション40のベンダーによって提供されるアプリケーションリポジトリの一部として)取得して、上述したように、後から使用できるようにテンプレートをリポジトリ22に格納することができる。 In addition, Applicants have taken this concept by having an (optional) additional template (referred to as an associated template, according to embodiments of the invention) of the website building system 30 that is associated with the third party application 40. Recognized that it can be expanded. This association can be performed at the time of development or publication of the third party application 40, and as part of the selection/purchase process of the third party application 40 (from AppStore 25) and instantiation of the third party application 40, the designer 5 Please understand that can be presented to. The third party application (TPA) coordinator 24 retrieves the templates associated with the third party application 40 (as part of the application repository managed by the AppStore 25 or provided by the vendor of the third party application 40), As mentioned above, the template can be stored in the repository 22 for later use.

システム100は、複数の関連付けられるテンプレートを有するサードパーティアプリケーション40の公開をサポートすることができ、これによりデザイナー5は、必要に応じて最適なテンプレートを選択することができることを理解されたい。 It should be appreciated that the system 100 can support the publishing of a third party application 40 having multiple associated templates, which allows the designer 5 to select the optimal template as needed.

含有ウェブページ203の中にサードパーティアプリケーション40のインスタンスを作成するとき、関連付けられるテンプレート内のコンポーネントを、含有ウェブページ203とマージすることができ、含有ウェブページ203の中の他のコンポーネントと一緒に表示することができることを理解されたい。 When creating an instance of the third party application 40 in the containing web page 203, the components in the associated template can be merged with the containing web page 203, along with other components in the containing web page 203. It should be appreciated that it can be displayed.

次に、図13を参照し、この図は、本発明の実施形態による、関連付けられるテンプレートの使用例を示している。図示したように、サードパーティアプリケーション[a]は、コンポーネント[d]および[e]を含む関連付けられるテンプレート[c]とともに、AppStore[b]の中に配置されている。サードパーティアプリケーション[a]が含有ウェブページ203[f]に含まれているとき、サードパーティアプリケーション[a]を、ページ[f]の内側の指定された領域[g]に表示することができ、コンポーネント[d]および[e]のインスタンス[d’]および[e’]を、前から存在するコンポーネント[h]および[i]とともにページ[f]に表示することができることを理解されたい。 Referring now to FIG. 13, this figure illustrates an example of the use of associated templates, according to an embodiment of the invention. As shown, the third party application [a] is located in AppStore[b] with an associated template [c] that includes components [d] and [e]. When the third party application [a] is included in the containing web page 203[f], the third party application [a] can be displayed in a designated area [g] inside the page [f], It should be appreciated that instances [d'] and [e'] of components [d] and [e] may be displayed on page [f] along with pre-existing components [h] and [i].

システム100は、関連付けられるテンプレートコンポーネントのインスタンス(例えば上記の[d’]および[e’])を含有ウェブページ203[f]の中に配置する複数の方法をサポートすることができることを理解されたい。配置方法としては、絶対的な配置(すなわち、関連付けられるテンプレート[c]に指定されている、元のコンポーネント[d]および[e]のサイズおよび位置を使用する)、ターゲットを基準とする配置(すなわち、含有ウェブページ203[f]に従って新しいインスタンス[d’]および[e’]のサイズおよび位置を調整する)、サードパーティアプリケーション40を基準とする配置(すなわち、含有ウェブページ203[f]の内側のサードパーティアプリケーションのインスタンス[g]に指定されるサイズおよび位置を基準として、新しいインスタンス[d’]および[e’]のサイズおよび位置を調整する)、が挙げられる。採用する配置方法は、関連付けられるテンプレート[c]とともに含まれている設定に基づいて決定することができ、デザイナー5は、必要であれば別の配置方法を使用することができる。 It is to be appreciated that the system 100 can support multiple ways of placing the associated template component instances (eg, [d′] and [e′] above) into the containing web page 203[f]. .. The placement methods include absolute placement (that is, using the sizes and positions of the original components [d] and [e] specified in the associated template [c]), and placement based on the target ( That is, the size and position of the new instances [d′] and [e′] are adjusted according to the containing web page 203[f], and the arrangement based on the third party application 40 (ie, of the containing web page 203[f]). Adjusting the size and position of the new instances [d'] and [e'] based on the size and position specified for the inner third-party application instance [g]). The placement method employed can be determined based on the settings included with the associated template [c], and the designer 5 can use another placement method if desired.

さらに、デザイナー5は、テンプレート[c]から継承される、[f]の中のコンポーネント[d]および[e]のインスタンスを修正することができることを理解されたい。変更は、[f](および場合によっては、ページ間継承(inter-page inheritance)をサポートするウェブサイト構築システム30の中から継承するページ)の中での[d]および[e]の使用に適用されるのみであり、AppStore[b]内のサードパーティアプリケーション[a]に関連付けられる「元の」テンプレート[c]には影響しない。 Further, it should be appreciated that designer 5 can modify the instances of components [d] and [e] in [f] that are inherited from template [c]. The modification is to the use of [d] and [e] in [f] (and in some cases, pages inherited from within a website building system 30 that supports inter-page inheritance). Only applied and does not affect the "original" template [c] associated with the third party application [a] in AppStore [b].

上記の[d]および[e]のインスタンスへの変更としては、特に、フィールドのインスタンスに特定のコンテンツ(テキスト、画像など)を割り当てることや、通常の属性を変更することが挙げられることを理解されたい。さらに、図14を参照し、サードパーティアプリケーション40がミニページの内側に含まれる場合、図14に示したように、関連付けられるテンプレートは、サードパーティアプリケーション40が含まれている特定のミニページに適用されることを理解されたい。図示したように、サードパーティアプリケーション40はミニページ[x]に含まれており、したがってコンポーネント[d]および[e]は[x]に追加されるが、同じマルチページコンテナ[g]のさらなるミニページ[y]および[z]には追加されない。 Understand that changes to the above instances of [d] and [e] include, among other things, assigning specific content (text, images, etc.) to the instance of the field, or changing normal attributes. I want to be done. Further, referring to FIG. 14, if the third party application 40 is included inside the minipage, the associated template is applied to the particular minipage containing the third party application 40, as shown in FIG. Please understand what is done. As shown, the third party application 40 is contained in the mini page [x], thus components [d] and [e] are added to [x], but a further mini of the same multi-page container [g]. It is not added to pages [y] and [z].

さらに、セクションタイプのミニページの場合、関連付けられるテンプレート(存在時)は、サードパーティアプリケーション40を含むために作成された仮想の(かつ空の)含有ウェブページ203に適用されることを理解されたい。 Further, for section type mini pages, it should be appreciated that the associated template (when present) applies to the virtual (and empty) containing web page 203 created to include the third party application 40. ..

代替実施形態においては、あらかじめ作成される関連付けられるテンプレートを、含有ウェブページ203に「並列」である新たに作成されるページまたはミニページに適用することができる。この新たに作成されるページまたはミニページをテンプレートによって初期化し、それを必要に応じて修正することができる。 In an alternative embodiment, pre-created associated templates can be applied to newly created pages or mini-pages that are "parallel" to the containing web page 203. This newly created page or minipage can be initialized with a template and modified as needed.

さらに、ウェブサイト構築システム30では、マルチポートインクルージョンも可能になり、この場合、サードパーティアプリケーション40の同じインスタンスがメインサイトの複数のページから可視であり、これらのページに「属する」。マルチポートインクルージョンは、メインサイト内の特定のサードパーティアプリケーション40の複数のインクルージョン(サードパーティアプリケーション40の複数のインスタンスを作成する)とは異なる。したがって、サードパーティアプリケーション40のコンテンツ(インスタンスに固有である)が、同じマルチポートサードパーティアプリケーション40の複数の表示の間で共有される。 In addition, the website building system 30 also allows for multi-port inclusion, where the same instance of the third party application 40 is visible to and "belongs" to) multiple pages on the main site. Multi-port inclusion is different from multiple inclusions (creating multiple instances of third party application 40) of a particular third party application 40 within the main site. Thus, the content of the third party application 40 (which is instance specific) is shared among multiple representations of the same multi-port third party application 40.

このようなマルチポートインクルージョンにおいては、関連付けられるテンプレートを、サードパーティアプリケーション40のインスタンスが追加されるページおよびミニページのそれぞれに個別に適用することができる。 In such multi-port inclusion, the associated template can be applied individually to each of the page and minipage to which the instance of the third party application 40 is added.

上述したように、システム100は、含有ウェブページ203の中のサードパーティアプリケーション40とコンポーネントとの間の双方向通信リンクを提供することができる。このようなコンポーネントとしては、サードパーティアプリケーションからの関連付けられるテンプレートをマージする結果としての、含有ウェブページ203のコンポーネントと、このような関連付けられるテンプレートに関連しないコンポーネントとが含まれることを理解されたい。 As mentioned above, the system 100 can provide a two-way communication link between the third party application 40 and the components within the containing web page 203. It is to be understood that such components include components of the containing web page 203 as a result of merging associated templates from third party applications and components not associated with such associated templates.

したがって、サードパーティアプリケーション40のベンダーは、一般に、ベンダーによって提供されるサードパーティアプリケーション40に関連付けられる複数のテンプレートを作成することができることを理解されたい。これらのテンプレートとしては、実際に配布されている(すなわちその時点で配布されているサードパーティアプリケーションバージョンに関連付けられる)テンプレートに加えて、テストテンプレート、開発テンプレート、およびその他のテンプレートが挙げられる。 Therefore, it should be appreciated that the vendor of the third party application 40 may generally create multiple templates associated with the third party application 40 provided by the vendor. These templates include test templates, development templates, and other templates, in addition to the templates that are actually distributed (ie, associated with the currently distributed third party application version).

上述したように、サードパーティアプリケーション40は、AppStore 25を通じて配布することができ、さらには、ウェブサイト構築システム30のベンダーには関連しない、またはベンダーによって管理されない代替経路を通じて配布することもできる。しかしながら、サードパーティアプリケーション40とともに配布される関連付けられるテンプレートは、アプリケーションリポジトリ22に強く関連して結合されていることがあり、なぜなら関連付けられるテンプレートは、ウェブサイト構築システム30によって管理されるコンポーネント、ベーステンプレート、および他の要素を使用して構築されるためである。 As mentioned above, the third-party application 40 can be distributed through the AppStore 25, and even through alternative paths that are not related to or controlled by the vendor of the website building system 30. However, the associated template distributed with the third party application 40 may be strongly associated with the application repository 22, because the associated template is a component managed by the website building system 30, the base template. , And other elements are used to build it.

さらには、このような個別に配布される関連付けられるテンプレートの基礎をなす、ウェブサイト構築システム30の要素を、修正または削除しなければならないことがある(これにより場合によっては関連付けられるテンプレートが「壊れる」)。この問題を解決するため、システム100は、これらの関連付けられるテンプレートを、アプリケーションリポジトリ22の内側の(場合によってはサードパーティアプリケーション40のベンダーごとの)個別の領域に実装することができる。ウェブサイト構築システム30は、これらのテンプレートを、ウェブサイト構築システム30の他のテンプレートと同様に管理することができる。 Furthermore, the elements of the website building system 30 that underlie such individually distributed associated templates may have to be modified or deleted (which in some cases causes the associated template to "break"). "). To solve this problem, the system 100 can implement these associated templates in separate areas inside the application repository 22 (possibly by the vendor of the third party application 40). The website construction system 30 can manage these templates like any other template of the website construction system 30.

さらに、サードパーティアプリケーション40のベンダーに、作成される各テンプレートの一意のID(開発ID)を提供することができ、サードパーティアプリケーション40のベンダーは、サードパーティアプリケーション40の開発およびテストプロセス時にこのIDを使用することができることを理解されたい。サードパーティアプリケーション40が公開/配布される時点で、サードパーティアプリケーション40のベンダーには、代わりの一意のID(公開ID)を適用および受信することが要求されることがあり、ベンダーは、公開されるサードパーティアプリケーション40においてそのIDを参照することができる。公開IDが提供されると、テンプレートの個別のロックされたコピーが作成される。このコピーは、サードパーティアプリケーション40によって参照され、サードパーティアプリケーション40のインスタンスを作成するときに使用されるコピーである。このようにすることで、サードパーティアプリケーション40のベンダーは、(デザイナーによって含められている)「生の」サードパーティアプリケーション40に関連付けられるテンプレートを誤って修正することができなくなり、参照整合性が維持される。さらには、システム100は、このようなロックされたテンプレートと、基礎をなすコンポーネントおよびベーステンプレートとの間の関係を、相互参照させることができる。この相互参照を使用することで、例えば、このようなロックされたテンプレートに含まれている、ウェブサイト構築システム30のコンポーネントやベーステンプレートが修正されようとする(そしてこのような修正によってテンプレートまたはサードパーティアプリケーション40が何らかの形で壊れうる)場合に、ウェブサイト構築システム30のスタッフに警告することができる。 Further, the vendor of the third-party application 40 can be provided with a unique ID (development ID) for each template created, and the vendor of the third-party application 40 can use this ID during the development and testing process of the third-party application 40. It should be appreciated that can be used. At the time the third-party application 40 is published/distributed, the vendor of the third-party application 40 may be required to apply and receive an alternate unique ID (public ID), which will be published. The ID can be referred to in the third party application 40. When the public ID is provided, a separate locked copy of the template is created. This copy is the copy referenced by the third party application 40 and used when creating an instance of the third party application 40. This ensures that the vendor of the third party application 40 cannot inadvertently modify the template associated with the "raw" third party application 40 (included by the designer), maintaining referential integrity. To be done. Moreover, the system 100 can cross-reference the relationship between such locked templates and the underlying components and base templates. The use of this cross-reference attempts to modify, for example, the components of the website building system 30 or the base template contained in such locked template (and such modification may result in modification of the template or third-party template). The staff of the website building system 30 can be alerted if the party application 40 may break in some way).

したがって、システム100は、サードパーティアプリケーション40と、含有ウェブページ203の中のコンポーネントと、ウェブサイト構築システム30との間の双方向通信チャネルを提供することができる。含有ウェブページ203のコンポーネントは、サードパーティアプリケーションに関連付けられる(1つまたは複数の)テンプレートをベースとする、またはウェブサイト構築システム30の別のテンプレートをベースとする、またはテンプレートには無関係とすることができる。 Thus, the system 100 can provide a two-way communication channel between the third party application 40, the components in the containing web page 203, and the website building system 30. The components of the containing web page 203 are based on the template(s) associated with the third party application, or based on another template of the website building system 30, or are independent of the template. You can

上述したように、通信ハブ205は、通信を促進することができ、含有ウェブページとサードパーティアプリケーション40との間のバックチャネルを提供することができる。出願人は、含有ウェブページとサードパーティアプリケーション40との間で双方向に送られるデータは、これらをいったん集めて処理し、統合した後に有用であることをさらに認識した。 As mentioned above, the communication hub 205 can facilitate communication and can provide a back channel between the containing web page and the third party application 40. Applicants have further recognized that the data sent bi-directionally between the containing web page and the third party application 40 is useful once they have been collected, processed and integrated.

例えば、ウェブサイトのオーナーは、自身のサイトあたりの利用者数やメンバーシップを管理する必要があり、これらは関連するウェブサイト構築システム30の登録利用者をベースとする値とは異なる。ウェブサイトの利用者は、登録する、または登録しない(匿名)ことができ、ウェブサイトは、異なるレベルの利用者に異なるレベルの機能を提供することができる。さらには、利用者は(たとえ匿名利用者であっても)、インスタントメッセンジャーソフトウェアを起動してサイトのオーナーに連絡するときや、サイトでのアクティビティの一部としてソーシャルネットワークに接続するときに、個人情報や連絡先情報(例えばコンタクトフォームにおけるデータ)をしばしば提供する。これらの情報は、作成されたサイトに直接的に入力される、または、サイト内に埋め込まれているサードパーティアプリケーションとのインタラクションの一部として利用可能になることを理解されたい。 For example, a website owner needs to manage the number of users and membership per site, which is different from the value based on the registered users of the associated website building system 30. Users of the website can either register or not register (anonymous), and the website can provide different levels of functionality to different levels of users. In addition, users (even anonymous users) may not be able to personalize when launching instant messenger software to contact the site owner or when connecting to social networks as part of their activity on the site. Often provide information and contact information (eg data in contact forms). It should be appreciated that this information may be entered directly into the created site or made available as part of interaction with a third party application embedded within the site.

さらに、これらの情報は、組織化されておらず、互いに関連しておらず、場合によっては矛盾を含み、多くの場合には保存されないことを理解されたい。例えば、ある1人の利用者が、自分のプライベートな電子メールアドレスを、(サイトによって直接管理されている)コンタクトフォームに入力し、同じセッションにおいて、仕事用の電子メールアドレスを、(サードパーティアプリケーション40によって管理されている)別のサブスクリプションフォームに入力することがある。 Further, it is to be understood that these pieces of information are unorganized, unrelated to each other, possibly inconsistent, and often not preserved. For example, one user enters his private email address into a contact form (managed directly by the site) and, in the same session, a work email address (from a third-party application). 40) (subject to management by 40).

さらには、これらの「流動的な」情報には、その情報の使用に関する異なる許可が含まれることがある。例えば、サブスクリプションフォームに自分の電子メールアドレスを入力した利用者は、自分が加入した電子メールベースのサブスクリプションおよび場合によっては関連する電子メールニュースレターを受信することを予期する。これに対して、登録IDとして電子メールアドレスを開示した利用者は、自分のアカウントの取扱いやセキュリティ警告などに関する電子メールを除いて、自分の登録アドレス宛の電子メールを受け取ることを望まないことがある。 Furthermore, these “fluid” information may include different permits for the use of that information. For example, a user who enters their email address in the subscription form expects to receive the email-based subscriptions they have subscribed to and possibly the associated email newsletter. On the other hand, users who have disclosed their e-mail address as their registration ID may not want to receive e-mail addressed to their registered address, except for e-mails regarding the handling of their accounts and security warnings. is there.

次に図15を参照し、この図は、ウェブサイト構築システム30と1つまたは複数の埋め込まれたサードパーティアプリケーション40との間で交換されるさまざまなメッセージからのデータを調整および収集するシステム200を示している。システム200は、クライアント220にインストールされているクライアントハブ210と、サーバ260にインストールされているサーバハブ230、コンタクトコーディネータ240、アクティビティコーディネータ250、コンタクトデータベース245、およびアクティビティストリームデータベース255とを備えている。ハブ210およびハブ230は、ハブ205に関連して上述したように、ウェブサイト構築システム30と、サーバ270にインストールされている複数のサードパーティアプリケーションとの間の通信と、複数の異なるサードパーティアプリケーション40間の通信とを促進できることを理解されたい。コンタクトデータベース245およびアクティビティストリームデータベース255は、後からさらに詳しく説明するように、コンタクト情報およびアクティビティ情報と、メッセージストリームから抽出される情報とを保持することができる。 Referring now to FIG. 15, which illustrates a system 200 for coordinating and collecting data from various messages exchanged between a website building system 30 and one or more embedded third party applications 40. Is shown. The system 200 comprises a client hub 210 installed on a client 220, a server hub 230 installed on a server 260, a contact coordinator 240, an activity coordinator 250, a contact database 245, and an activity stream database 255. Hub 210 and hub 230 communicate between website building system 30 and a plurality of third party applications installed on server 270, as described above in connection with hub 205, and a plurality of different third party applications. It should be appreciated that communication between 40 can be facilitated. The contact database 245 and the activity stream database 255 can hold contact information and activity information and information extracted from the message stream, as described in more detail below.

次に図16Aおよび図16Bを参照し、図16Aは、クライアントハブ210の要素を示しており、図16Bは、サーバハブ230の要素と、コンタクトコーディネータ240の要素と、アクティビティコーディネータ250の要素とを示している。クライアントハブ210は、ルータ211と、変換器/適合器212と、プライバシーポリシーエンフォーサ213とを備えている。サーバハブ230は、ルータ/追跡器231と、変換器/適合器232と、プライバシーポリシーエンフォーサ233と、プライベートデータプロキシ234と、検証器/署名器235とを備えている。コンタクトコーディネータ240は、データ抽出器241と、コンタクトハンドラ242と、データマージャ243と、データ/許可ハンドラ244とを備えている。アクティビティコーディネータ250は、ストリーム作成器251と、ストリームマージャ252と、ログ作成器253とを備えている。これらの要素の機能については、後からさらに詳しく説明する。 16A and 16B, FIG. 16A shows elements of the client hub 210, and FIG. 16B shows elements of the server hub 230, elements of the contact coordinator 240, and elements of the activity coordinator 250. ing. The client hub 210 includes a router 211, a converter/adapter 212, and a privacy policy enforcer 213. The server hub 230 includes a router/tracker 231, a converter/adapter 232, a privacy policy enforcer 233, a private data proxy 234, and a verifier/signer 235. The contact coordinator 240 includes a data extractor 241, a contact handler 242, a data merger 243, and a data/permission handler 244. The activity coordinator 250 includes a stream creator 251, a stream merger 252, and a log creator 253. The function of these elements will be described in more detail later.

次に図16Cおよび図16Dを参照し、図16Cは、ストリームマージャ252の要素を示しており、図16Dは、データマージャ243の要素を示している。ストリームマージャ252は、アクティビティ−ストリームマージャ261と、ストリーム−ストリームマージャ262とを備えている。ストリーム−ストリームマージャ262は、水平ストリームマージャ263と、垂直ストリームマージャ264をさらに備えている。データマージャ243は、コンタクト識別器272と、結合器273と、矛盾解消器274と、リスト値作成器275と、垂直コンタクトマージャ276と、水平コンタクトマージャ277とを備えている。水平コンタクトマージャ277は、仮想水平マージャ278をさらに備えている。垂直コンタクトマージャ276は、仮想垂直マージャ279をさらに備えている。これらの要素の機能については、後からさらに詳しく説明する。 16C and 16D, FIG. 16C shows the elements of the stream merger 252 and FIG. 16D shows the elements of the data merger 243. The stream merger 252 includes an activity-stream merger 261 and a stream-stream merger 262. The stream-stream merger 262 further includes a horizontal stream merger 263 and a vertical stream merger 264. The data merger 243 includes a contact identifier 272, a combiner 273, a conflict resolver 274, a list value creator 275, a vertical contact merger 276, and a horizontal contact merger 277. The horizontal contact merger 277 further includes a virtual horizontal merger 278. Vertical contact merger 276 further comprises a virtual vertical merger 279. The function of these elements will be described in more detail later.

システム200は、システム200と複数のサードパーティアプリケーションとの間のメッセージパッシングを可能にする一方で、さまざまな機能、すなわち、アクティビティメッセージをストリームによって組織化する、アクティビティメッセージの履歴を格納する、マルチレベルでのアクティビティメッセージのメッセージパッシング、アクティビティメッセージ用にサイドチャネル(side channel)を使用する、アクティビティメッセージを変換およびコンテンツを適合化する、アクティビティメッセージを検証およびアクティビティメッセージに署名する、リスナークエリ(listener query)を使用してアクティビティメッセージを動的にルーティングする、などの機能を提供することを理解されたい。これらの機能については後から詳しく説明する。 The system 200 enables message passing between the system 200 and multiple third-party applications, while providing various capabilities: organizing activity messages by stream, storing a history of activity messages, multi-level. Message passing of activity messages in, using side channels for activity messages, transforming activity messages and adapting content, validating activity messages and signing activity messages, listener query It should be appreciated that it provides functionality such as using to dynamically route activity messages. These functions will be described later in detail.

さらに、システム200は、利用者に関連する情報を抽出してそれらをマージする(複数のソースからの情報およびシステム200の中にすでに存在する情報を結合する)ことができる。マージは、異なる種類の、場合によっては互いに矛盾する情報を調整するマージ規則を通じて行うことができる。結合された情報は、コンタクトデータベース245に格納することができる。この情報には、後からさらに詳しく説明するように、集められた情報の許可される用途(allowed use)を制御する使用許可フィールドをさらに含めることができる。 In addition, system 200 can extract user-related information and merge them (combining information from multiple sources and information already present in system 200). Merging can be done through merge rules that coordinate different types of information, possibly conflicting with each other. The combined information can be stored in the contact database 245. This information may further include permission fields that control the allowed use of the gathered information, as described in more detail below.

本発明の代替実施形態においては、クライアントハブ210およびサーバハブ230のいずれかを単独で使用して、サーバ270にインストールされている複数のサードパーティアプリケーション40と通信することができる。クライアントハブ210のみが使用される状況では、コンタクトコーディネータ240と、アクティビティコーディネータ250と、データベース245,255とを、関連するクライアントにローカルにインストールできることを理解されたい。 In alternative embodiments of the invention, either client hub 210 or server hub 230 may be used alone to communicate with multiple third party applications 40 installed on server 270. It should be appreciated that in situations where only client hub 210 is used, contact coordinator 240, activity coordinator 250, and databases 245, 255 may be installed locally on the associated clients.

さらには、システム200は、さらなるコンポーネントとして、サードパーティアプリケーション40が、利用者自身によって設定される使用制限を実施しながら、利用者に連絡するアクティビティ(例えばニュースレターの大量送信)を管理することを可能にするコンポーネントを備えることができることを理解されたい。このようなコンポーネントは、利用者のプライベートデータをサードパーティアプリケーション40から隔離することもできる(したがってサードパーティアプリケーション40は、利用者のプライベートデータに実際にアクセスすることなくそれぞれの動作を実行することができる)。このような機能は、例えば、後からさらに詳しく説明するようにプライベートデータプロキシ234を使用して実施することができる。 In addition, system 200 allows, as a further component, third-party application 40 to manage the activity of contacting the user (eg, mass sending of newsletters) while enforcing usage restrictions set by the user himself. It should be appreciated that the components that enable may be provided. Such a component may also insulate the user's private data from the third party application 40 (thus the third party application 40 may perform each operation without actually accessing the user's private data). it can). Such functionality may be implemented, for example, using private data proxy 234, as described in more detail below.

さらに、コンタクトデータベース245は、各サイトに固有とすることができることを理解されたい。しかしながら、ウェブサイト構築システム30では、(同じサイトオーナーによって所有される)ウェブサイトの集合を含むメタサイト/メタプロジェクトレベルを定義することができ、コンタクトが単一サイトレベルではなくメタサイトレベルで格納、処理、およびマージされることを指定することができる。サイトのそれ以外の要素(含まれているサードパーティアプリケーション40など)も、サイトレベルではなくメタサイトレベルで定義することができる。メタサイトをサポートする以外は、一般にシステム200は、異なるサイトの間または異なるサイトオーナーの間でコンタクトを共有することはなく(ただし後から説明する状況を除く)、コンタクト情報を統合することもない(したがって、あるエンドユーザによって1つのサイトに提供されたデータは別のサイトに漏れない)。 Further, it should be appreciated that the contact database 245 can be unique to each site. However, the website building system 30 may define a metasite/metaproject level that includes a collection of websites (owned by the same site owner), where contacts are stored at the metasite level rather than the single site level, It can be specified to be processed and merged. Other elements of the site (such as included third party applications 40) can also be defined at the metasite level rather than at the site level. Other than supporting metasites, the system 200 generally does not share contacts between different sites or different site owners (except in situations described below), and does not consolidate contact information (except as described below). Therefore, data provided by one end user to one site does not leak to another site).

上述したように、システム200は、ウェブサイト構築システム30と1つまたは複数のサードパーティアプリケーション40との間の複数のインタラクションをサポートすることができる。このようなインタラクションは、買物をする、アイテムをショッピングカートに追加する、連絡先情報を入力するなど、事前に定義されるアクティビティとすることができる。あるサードパーティアプリケーション40が、自身がサポートするアクティビティを指定することができ、他のサードパーティアプリケーション40が、特定のアクティビティを「リスン」して、受け取ったアクティビティおよびそれに関連付けられる情報に基づいて動作することができる。特定のサードパーティアプリケーション40においてリスンされるアクティビティのリストは、明示的に1つまたは複数のアクティビティに設定する、または後からさらに詳しく説明するように、アクティビティリスニングクエリによって決定することができることを理解されたい。 As mentioned above, system 200 can support multiple interactions between website building system 30 and one or more third party applications 40. Such interactions can be predefined activities such as shopping, adding items to a shopping cart, entering contact information, and so on. One third-party application 40 can specify the activities it supports, and other third-party applications 40 "listen" for a particular activity and act on the received activity and the information associated with it. be able to. It is understood that the list of activities listened to in a particular third party application 40 can be explicitly set to one or more activities, or determined by an activity listening query, as described in further detail below. I want to.

各アクティビティは、メッセージと考えることができ、各メッセージはアクティビティデータ構造体を含むことができることを理解されたい。アクティビティデータ構造体は、事前に定義されるデータ型であるが、互いの間の継承を通じて定義する、あるいは(フィールドを追加することによってアクティビティデータ構造体を拡張するオプションを有する)サードパーティアプリケーション40を通じて定義することもできる。アクティビティデータ構造体は、システムに固有とする、あるいは、標準化されているデータ構造に基づく、または標準化されているデータ構造を含むことができる。アクティビティデータ構造体は、何らかの方法(XML、JSONデータ、またはバイナリオブジェクト符号化方式を使用するなど)で符号化することもできる。 It should be appreciated that each activity can be thought of as a message and each message can include an activity data structure. Activity data structures are predefined data types, but defined through inheritance between each other or through a third party application 40 (with the option to extend the activity data structure by adding fields). It can also be defined. The activity data structure may be system specific, based on, or include standardized data structures. The activity data structure can also be encoded in some way (such as using XML, JSON data, or binary object encoding).

さらに、アクティビティデータ構造体は、サードパーティアプリケーション40によって提供される「説明」フィールドを含むことができる。これは、サードパーティアプリケーション40によって定義される、アクティビティの説明である(ウェブサイト構築システム30に認識されている説明よりも詳細にすることができる)。例えば、VOIP通信のサードパーティアプリケーション40は、「Call to John Smith at 999-555-1234 - 01:15(ジョンスミス(999−555−1234)に電話(01:15))」というアクティビティ説明テキストを提供することができる。 In addition, the activity data structure may include a “description” field provided by the third party application 40. This is a description of the activity as defined by the third party application 40 (which may be more detailed than the description known to the website building system 30). For example, the third party application 40 of the VOIP communication displays the activity description text "Call to John Smith at 999-555-1234-01:15 (01:15)". Can be provided.

さらに、アクティビティデータ構造体は、コールバックリンク、例えば「さらなる情報」(アクティビティデータ構造体に戻る)を含むことができる。コールバックリンクは、追加の重要な情報を提供する目的に使用することができ、例えば、電子商取引のアクティビティデータ構造体の場合には、注文の完全な追跡情報や注文履歴などであり、チャットのアクティビティデータ構造体の場合には、完全なチャットログであり、電話のアクティビティデータ構造体の場合には、通話記録である。したがって、一例としての完全なアクティビティデータ構造体は、以下のフィールド、すなわち、作成時刻、アクティビティの種類、アクティビティの発生元(サードパーティアプリケーション40/コンポーネントのID)、アクティビティストリームID、アクティビティの種類に固有な情報(アクティビティの種類に依存する)、作成サイトID、サイトメンバーデータベースID、アクティビティが行われたサイトページのID/URL、サードパーティアプリケーション40によって提供されるアクティビティの説明、サードパーティアプリケーション40によって使用されるさらなる情報リンクおよび取得された利用者の詳細情報など、を含むことができる。 Further, the activity data structure may include a callback link, eg, "more information" (return to activity data structure). Callback links can be used to provide additional important information, for example, in the case of e-commerce activity data structures, complete order tracking information, order history, etc. In the case of the activity data structure, it is the complete chat log, and in the case of the telephone activity data structure, it is the call log. Thus, the complete activity data structure as an example is specific to the following fields: creation time, activity type, activity origin (third party application 40/component ID), activity stream ID, activity type. Information (depending on the type of activity), created site ID, site member database ID, site page ID/URL where the activity was performed, description of the activity provided by the third party application 40, used by the third party application 40. Additional information links provided and details of the retrieved user, etc. may be included.

アクティビティコーディネータ250は、ロギング要素と考えることができ、ハブ230から渡されるメッセージからデータを受け取る。ストリーム作成器251は、初期ストリーム(ログまたはチェーン状の構造と考えることができる)を作成することができ、ストリームマージャ252は、この初期ストリームに、それ以降に入ってくるアクティビティを加えることができ、このとき各ストリームはコンタクトに固有である。ストリーム作成器251は、異なるメッセージに含まれる個別のアクティビティごとに新しいストリームを作成しなくてよいことを理解されたい。さらには、ストリームに含まれる複数のアクティビティは、正しい順序でないことがある(例えばアクティビティの報告において、あるサードパーティアプリケーション40が遅れることがある)ことを理解されたい。ストリームマージャ252は、動作時、複数のストリームが同じ1人のコンタクトに属している場合にそれらのストリームをマージすることができ、ログ作成器253は、それ以前に作成されたすべてのアクティビティストリームのアクティビティストリームデータベース255に、ログファイルを保存することができる。 The activity coordinator 250, which can be considered a logging element, receives data from the messages passed from the hub 230. The stream creator 251 can create an initial stream (which can be thought of as a log or chain-like structure), and the stream merger 252 can add activity to this initial stream as it comes in. , Each stream is then unique to the contact. It should be appreciated that the stream creator 251 does not have to create a new stream for each individual activity contained in a different message. Furthermore, it should be appreciated that the activities included in the stream may not be in the correct order (eg, some third party application 40 may be delayed in reporting the activity). In operation, the stream merger 252 can merge multiple streams if they belong to the same single contact, and the log maker 253 can stream all previously created activity streams. Log files may be stored in the activity stream database 255.

図16Cに関連して上述したように、ストリームマージャ252は、アクティビティ−ストリームマージャ261と、ストリーム−ストリームマージャ262とを備えている。アクティビティ−ストリームマージャ261は、アクティビティを、識別されたコンタクトに関連付けられるストリームに関連付けることができ、ストリーム−ストリームマージャ262は、2つの個別のストリームを1つのストリームに変換することができる。水平ストリームマージャ263は、共通のプライマリIDが検出されたことにより、互いに関連していない2つのストリームをマージすることができ、垂直ストリームマージャ264は、匿名のコンタクトに対して作成されたストリームと、登録された利用者に関連付けられるストリームとが、ログイン時または登録時に結びつけられたときに、これら2つのストリームをマージすることができる。ストリームマージャ252は、必要時に、アクティビティストリームデータベース255の中の以前に作成されたストリームにアクセスできることを理解されたい。 As described above with reference to FIG. 16C, the stream merger 252 comprises an activity-stream merger 261 and a stream-stream merger 262. The activity-stream merger 261 can associate the activity with the stream associated with the identified contact, and the stream-stream merger 262 can convert two separate streams into one stream. The horizontal stream merger 263 can merge two streams that are not related to each other due to the detection of the common primary ID, and the vertical stream merger 264 can merge the streams created for anonymous contacts with These two streams can be merged when the stream associated with the registered user is tied at login or registration. It should be appreciated that the stream merger 252 can access previously created streams in the activity stream database 255 when needed.

例えば、匿名利用者がサイト内でコンタクトフォームに入力する。ストリーム作成器251は、(ID「anon1」を有する)新しいアクティビティストリームを作成し、コンタクトハンドラ242は、(後からさらに詳しく説明するようにID「anon1」を有する)新しいコンタクトを作成する。次いで、この同じ利用者が、サイトのオーナーとチャットする。ストリームマージャ252は、このアクティビティを「anon1」アクティビティストリームにマージし、(後からさらに詳しく説明するように)コンタクト「anon1」が更新される。次に、この利用者は、別のブラウザを使用して、スケジュールフォーム(schedule form)に入力する。最初の利用者との相互関係がないため、ストリーム作成器251は、ID「anon2」を有する新しいアクティビティストリームを作成し、コンタクトハンドラ242は、ID「anon2」を有する新しいコンタクトを作成する。 For example, anonymous users fill out contact forms on the site. The stream creator 251 creates a new activity stream (with ID "anon1") and the contact handler 242 creates a new contact (with ID "anon1" as described in more detail below). This same user then chats with the site owner. Stream merger 252 merges this activity into the "anon1" activity stream and the contact "anon1" is updated (as described in more detail below). The user then fills in the schedule form using another browser. The stream creator 251 creates a new activity stream with the ID "anon2" and the contact handler 242 creates a new contact with the ID "anon2" because there is no interaction with the first user.

次に、この利用者は、このサイトから買物をする。ストリームマージャ252は、この新しいアクティビティを「anon2」アクティビティストリームにマージし、コンタクト「anon2」を(例えば「顧客」タグを使用して)更新する。 The user then shop from this site. The stream merger 252 merges this new activity into the “anon2” activity stream and updates the contact “anon2” (eg, using the “customer” tag).

この利用者は、さらに別のブラウザを使用して、このサイトに登録する。登録されると、すべての利用者は、サイトのメンバーシップハンドラからID「利用者x」を受け取る。この時点で、ストリーム作成器251は、(ID「利用者x」を有する)新しいアクティビティストリームを作成し、コンタクトハンドラ242は、(同じID「利用者x」を有する)新しいコンタクトを作成する。 This user uses yet another browser to register on this site. Once registered, all users receive the ID "user x" from the site's membership handler. At this point, stream creator 251 creates a new activity stream (with ID "user x") and contact handler 242 creates a new contact (with the same ID "user x").

その後、この利用者は別のブラウザから再びサイトにアクセスし、サイトのオーナーとチャットする。このウェブサイトではクッキーが使用されないため、ストリーム作成器251は、さらに別の新しいストリームID「anon3」を作成し、コンタクトハンドラ242は、新しいコンタクト「anon3」を作成する。 The user then visits the site again from another browser and chats with the site owner. Since no cookies are used on this website, the stream creator 251 creates yet another new stream ID "anon3" and the contact handler 242 creates a new contact "anon3".

次に、この利用者はこのウェブサイトにログインする。この時点で、ID「anon3」およびID「利用者x」を有するコンタクトが存在する。データマージャ243は、コンタクト「anon3」を「利用者x」にマージすることができ、したがって、「利用者x」のストリームにおけるログインアクティビティと、コンタクト「利用者x」のログインアクティビティの両方が、アクティビティストリーム「利用者x」および「anon3」を指している。ストリームマージャ252は、このセッションにおいて利用者によって実行された追加の動作を、「利用者x」のアクティビティストリームにマージすることができる。ログ作成器253は、これらのストリームからのすべてのアクティビティデータをロギングし、ログのコピーをアクティビティデータベース255に保存することができる。 The user then logs in to the website. At this point, there is a contact with ID “anon3” and ID “user x”. The data merger 243 can merge the contact “anon3” into “user x”, so both the login activity in the stream of “user x” and the login activity of the contact “user x” are activities. It refers to the streams "user x" and "anon3". Stream merger 252 may merge additional actions performed by the user in this session into the activity stream of "user x". The log maker 253 can log all activity data from these streams and store a copy of the log in the activity database 255.

次に図17を参照し、サイトのオーナーは、図17に示した、ウェブサイト構築システム30によって提供される関連するユーザインタフェースを通じて、特定のコンタクトのアクティビティストリームの履歴にアクセスできることを理解されたい。1人のコンタクト「Dani Bronstein」について、ウェブサイトの利用履歴に容易にアクセスすることができる。さらに、ウェブサイト構築システム30またはサードパーティアプリケーション40は、ログ情報にアクセスするためのAPIを提供することもできることを理解されたい。アクティビティのログは、最適化、ユーザインタフェースの改良、広告のターゲティングなどの目的に使用できることを理解されたい。 Referring now to FIG. 17, it is to be understood that the site owner can access the activity stream history for a particular contact through the associated user interface provided by the website construction system 30 shown in FIG. For one contact "Dani Bronstein", the usage history of the website can be easily accessed. Further, it should be appreciated that website building system 30 or third party application 40 may also provide APIs for accessing log information. It should be appreciated that activity logs can be used for purposes such as optimization, user interface improvements, ad targeting, and so on.

さらには、これと並行して、コンタクトコーディネータ240は、アクティビティストリーム(メッセージ)によって提供されるデータから情報を集めて、対象の利用者のコンタクトプロファイル(contact profile)を構築できることを理解されたい。データ抽出器241は、アクティビティメッセージおよびアクティビティストリームからデータを抽出することができ、データマージャ243は、関連するデータを特定のコンタクトにマージすることができ、このコンタクトの詳細情報は、コンタクトデータベース245に格納することができ、コンタクトデータベース245からアクセスすることができる。コンタクトハンドラ242は、新しいコンタクトを作成することができ、またサイト利用者の識別情報(匿名利用者など)を処理することができ、データ/許可ハンドラ244は、関連するデータのプライバシー保護および許可を処理することができる。データマージャ243は、上述したように、水平コンタクトマージャ277と、垂直コンタクトマージャ276とを備えている。水平コンタクトマージャ277は、共通のプライマリIDが検出されたことにより、互いに関連しない2人のコンタクトをマージすることができ、垂直コンタクトマージャ276は、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとが、ログイン時または登録時に結びつけられたときに、前記匿名のコンタクトを、登録された利用者に関連付けられる前記コンタクトにマージすることができる。水平コンタクトマージャ277は仮想水平マージャ278をさらに備えていることができ、この仮想水平マージャ278は、2人のコンタクトを個別のコンタクトとして維持するが、これら2人のコンタクトが同じコンタクトを表していることが示されるようにこれらを互いにリンクする(実際のコンタクト情報をマージする、またはマージしない)。垂直コンタクトマージャ276は仮想垂直マージャ279をさらに備えていることができ、この仮想垂直マージャ279は、匿名のコンタクトと、登録された利用者に関連付けられるコンタクトとを個別のコンタクトとして維持するが、これら2人のコンタクトが同じコンタクトを表していることが示されるようにこれらを互いにリンクする(実際のコンタクト情報をマージする、またはマージしない)。さらに、データマージャ243は、(一般にはデータ抽出器241から抽出された)コンタクト情報を、既存のコンタクトにマージすることができる。コンタクト識別器272は、クッキーを使用して利用者の識別情報を追跡することができ、マージするべきコンタクトを、後らからさらに詳しく説明するようにして認識できることを理解されたい。 Further, in parallel, it should be appreciated that the contact coordinator 240 can gather information from the data provided by the activity stream (message) to build a contact profile for the target user. The data extractor 241 can extract data from activity messages and activity streams, the data merger 243 can merge related data into a particular contact, and detailed information of this contact can be found in the contact database 245. It can be stored and can be accessed from the contact database 245. The contact handler 242 can create new contacts and can process the site user's identity information (such as anonymous users), and the data/permission handler 244 provides privacy protection and authorization of relevant data. Can be processed. The data merger 243 includes the horizontal contact merger 277 and the vertical contact merger 276 as described above. The horizontal contact merger 277 can merge two unrelated contacts due to the detection of a common primary ID, and the vertical contact merger 276 is associated with anonymous contacts and registered users. The anonymous contact can be merged with the contact associated with a registered user when the contact is tied at login or registration. The horizontal contact merger 277 can further include a virtual horizontal merger 278 that maintains the two contacts as separate contacts, but the two contacts represent the same contact. Link them with each other (with or without merging the actual contact information) as shown. The vertical contact merger 276 may further comprise a virtual vertical merger 279, which maintains anonymous contacts and contacts associated with registered users as separate contacts. Link them together (merge or not merge actual contact information) so that it is shown that two contacts represent the same contact. Further, the data merger 243 can merge contact information (typically extracted from the data extractor 241) into existing contacts. It should be appreciated that the contact identifier 272 can track the identity of the user using cookies and can recognize the contacts to be merged as will be described in more detail later.

再び図15、図16A、および図16Bを参照し、メッセージパッシングは、クライアント220もしくはサーバ260またはその両方において実行することができる。サードパーティアプリケーション40は、一般には、クライアント側要素およびサーバ側要素を有する、または少なくとも、サードパーティアプリケーション40のプロバイダのサーバ270とのサーバ側接続を有することを理解されたい。ハブ210は、クライアント220とサードパーティアプリケーション40との間のメッセージを処理することができ、ハブ230は、サーバ260とサードパーティアプリケーション40との間のメッセージを処理することができる。ハブ210によって受信されたデータは、処理した後、後からさらに説明するさらなる処理のためにハブ230に転送できることを理解されたい。 Referring again to FIGS. 15, 16A, and 16B, message passing can be performed at client 220 or server 260, or both. It should be appreciated that the third party application 40 generally has client and server side elements, or at least has a server side connection with the server 270 of the provider of the third party application 40. The hub 210 can handle messages between the client 220 and the third party application 40, and the hub 230 can handle messages between the server 260 and the third party application 40. It should be appreciated that the data received by the hub 210 can be processed and then forwarded to the hub 230 for further processing, which will be described further below.

次に図18を参照し、この図は、異なるプラットフォームの間でのメッセージパッシングのシナリオを示している。利用者のクライアントマシンXを、サーバY上のウェブサイト構築システム30に接続することができる。ウェブサイト構築システム30は、ウェブサイト構築システム30のクライアントコンポーネントA’と、ウェブサイト構築システム30のサーバコンポーネントAとを使用して実装することができる。作成されたサイトが表示されるとき、サイトはクライアント側要素(データ/コード)B’とサーバ側要素Bとを含むことができる。作成されたサイトは、さらに3つのサードパーティアプリケーション40(TPA1、TPA2、およびETPA3)を含むことができる。 Referring now to FIG. 18, this figure illustrates a scenario of message passing between different platforms. The user's client machine X can be connected to the website building system 30 on the server Y. The website building system 30 can be implemented using the client component A′ of the website building system 30 and the server component A of the website building system 30. When the created site is displayed, the site can include a client-side element (data/code) B'and a server-side element B. The created site can further include three third party applications 40 (TPA1, TPA2, and ETPA3).

TPA1は、クライアント側コンポーネントD’と、TPA1のベンダーのサーバHに接続されているサーバ側コンポーネントDとによって実装することができる。TPA2は、クライアント側コンポーネントE’と、TPA2のベンダーのサーバIに接続されているサーバ側コンポーネントEによって実装することができる。しかしながら、ETPA3は、サーバ側コンポーネントGによって実装されているサーバ側のみのサードパーティアプリケーション40とすることができ、サーバ側コンポーネントGはウェブサイト構築システム30のサードパーティアプリケーション40サポートバックエンドFに接続されている。これら2つのコンポーネントは、サードパーティアプリケーション40のベンダーのサーバJと通信することができる。 The TPA1 can be implemented by the client-side component D'and the server-side component D connected to the server H of the vendor of the TPA1. The TPA2 can be implemented by the client-side component E'and the server-side component E connected to the server I of the vendor of the TPA2. However, the ETPA 3 can be a server-side only third-party application 40 implemented by the server-side component G, which is connected to the third-party application 40 support backend F of the website building system 30. ing. These two components can communicate with the server J of the vendor of the third party application 40.

TPA1およびTPA2は、クライアント上で(コンポーネントD’とコンポーネントE’との間で)、もしくはサーバ上で(コンポーネントDとコンポーネントEとの間で)、またはクライアントおよびサーバの両方において、メッセージを交換できることを理解されたい。しかしながら、ETPA3との通信は、サーバ上でのみ行わなければならない。さらには、いずれか一方の方法を使用することにはメリットとデメリットがあることを理解されたい。クライアント側でのアクティビティメッセージの送信は、よりインタラクティブとすることができ、利用者の応答がより高速となる。サーバ側でのアクティビティメッセージの送信は、堅牢性および信頼性を高めることができ(例えば利用者はプロセスの途中でブラウザのウィンドウを閉じることができない)、メッセージが正しい順序で受信されるようにされ、さらには、バックエンドにインストールされているバックエンドサードパーティアプリケーション40またはアプリケーションダッシュボードにアクティビティメッセージを送ることができる。これらのバックエンドサードパーティアプリケーション40は、クライアント側には表示されないことを理解されたい。 TPA1 and TPA2 are capable of exchanging messages on the client (between components D'and E'), on the server (between components D and E), or on both the client and server. I want you to understand. However, communication with ETPA3 must only be done on the server. Furthermore, it should be understood that there are advantages and disadvantages to using either method. Sending activity messages on the client side can be more interactive, resulting in faster user response. Sending activity messages on the server side can be more robust and reliable (eg, users cannot close their browser windows in the middle of the process) and ensure that messages are received in the correct order. Additionally, activity messages can be sent to backend third party applications 40 or application dashboards installed on the backend. It should be appreciated that these backend third party applications 40 are not displayed on the client side.

複数のサードパーティアプリケーション40を使用するケースとして、例えば、ある利用者がサードパーティアプリケーションAにおいて商品をショッピングカートに追加する(アクティビティのタイプは「カートの変更」)。するとサードパーティアプリケーションAは、商品が追加されたことに関するアクティビティメッセージをウェブサイト構築システム30に送る。ウェブサイト構築システム30は、「カートの変更」に登録されているすべてのサードパーティアプリケーション40に、このアクティビティを転送する。サードパーティアプリケーションBは登録されているため、このアクティビティを受信する。サードパーティアプリケーションBは、「さらに商品Xも購入すると割引が適用されます」あるいは「このサイトをシェアすると割引が適用されます」などのメッセージを利用者に表示することができる。 As a case of using a plurality of third party applications 40, for example, a user adds a product to a shopping cart in the third party application A (the activity type is “change cart”). Then, the third party application A sends an activity message regarding the addition of the product to the website building system 30. The website building system 30 forwards this activity to all third party applications 40 registered in the "Change Cart". The third party application B receives this activity because it is registered. The third-party application B can display a message to the user, such as "The discount will be applied if you also purchase the product X" or "The discount will be applied if you share this site".

別の例としては、ある利用者がサードパーティアプリケーションAにおいて(例えばフェイスブックを介して)何かに対して「いいね!ボタンを押す」。するとサードパーティアプリケーションAは、アクティビティのタイプ「フェイスブックのいいね!」に関するアクティビティメッセージをウェブサイト構築システム30に送る。ウェブサイト構築システム30は、「いいね!ボタンを押す」アクティビティに登録されているすべてのサードパーティアプリケーション40に、このアクティビティを転送する。サードパーティアプリケーションBは登録されているため、このアクティビティを受信する。サードパーティアプリケーションBは、リエンゲージメント(re-engagement)ウィジェットを利用者に示し、「このサイトがお気に入りなら、サイトのオーナーに連絡してみませんか?」あるいは「割引クーポンをご希望ですか?」などのメッセージを表示することができる。 As another example, a user “presses a like button” for something in third party application A (eg, via Facebook). The third party application A then sends an activity message to the website building system 30 regarding the activity type “Like Facebook”. The website construction system 30 forwards this activity to all third party applications 40 that are registered with the "Like Button" activity. The third party application B receives this activity because it is registered. The third-party application B presents a re-engagement widget to the user and asks, "If you like this site, why don't you contact the owner of the site?" or "Want a discount coupon?" A message such as "can be displayed.

上述したように、すべての通信はハブ210およびハブ230を介して行うことができる。 As mentioned above, all communications can occur via hub 210 and hub 230.

ルータ211は、クライアント側メッセージをウェブサイトと任意のサードパーティアプリケーション40との間でルーティングすることができる。さらに、ルータ211は、後からさらに詳しく説明するように、さらなる処理のためハブ210とハブ230との間でメッセージをルーティングすることができる。 The router 211 can route client-side messages between the website and any third party application 40. In addition, router 211 can route messages between hub 210 and hub 230 for further processing, as described in more detail below.

ルータ/追跡器231は、ウェブサイトと任意のサードパーティアプリケーション40との間でメッセージをルーティングすることができ、さらにメッセージを追跡することができる。さらに、サードパーティアプリケーション40は、クライアントおよびサーバの両方においてメッセージをリスンすることができることを理解されたい。さらには、サードパーティアプリケーション40は、自身がリスンする1つまたは複数のアクティビティを明示的に指定することができる(例えば、「ショッピングカート: アイテムを追加する」アクティビティすべてをリスンする)ことを理解されたい。さらに、サードパーティアプリケーション40は、自身がリスンするアクティビティのクラスを指定することができる(例えば、フェイスブックに関連するすべてのアクティビティをリスンする)。さらには、サードパーティアプリケーションは、アクティビティをそのサードパーティアプリケーションに送るべきか否かを判定する目的に使用されるワイルドカード表現(アクティビティ名に適用される)を使用することができる。 The router/tracker 231 can route messages between the website and any third party application 40 and can further track the messages. Further, it should be appreciated that the third party application 40 may listen for messages on both the client and server. Furthermore, it is understood that the third party application 40 can explicitly specify one or more activities that it listens to (eg, listens to all "shopping cart: add item" activities). I want to. In addition, the third party application 40 can specify the class of activity it listens to (eg, listens to all activities related to Facebook). Furthermore, third party applications can use wildcard expressions (applied to activity names) that are used to determine whether an activity should be sent to that third party application.

さらに、サードパーティアプリケーション40は、アクティビティリスナークエリを使用できることを理解されたい。このようなクエリは、サードパーティアプリケーション自体から通常では利用できない情報を含む、追加のシステム情報を参照し、例えば、利用者の属性(例:登録利用者のみ、ヨーロッパの利用者のみ)、ウェブサイトの属性または構造(例:特定のページテンプレートから作成されたページ上の特定のアクティビティのみをリスンする)、利用者履歴(例:利用者が過去にXを超える買い物を行った場合にのみカート清算アクティビティをリスンする)などである。このようなクエリは、サードパーティアプリケーション40によって指定することができるが、デザイナーによって編集可能とすることもできる。 Further, it should be appreciated that the third party application 40 may use activity listener queries. Such queries refer to additional system information, including information not normally available from the third-party application itself, such as user attributes (eg registered users only, European users only), websites. Attributes or structure (eg listen to only certain activities on pages created from certain page templates), user history (eg only cart clearing if user has made more than X purchases in the past) Listen to activities) and so on. Such queries can be specified by the third party application 40, but can also be editable by the designer.

したがって、ルータ/追跡器231は、サードパーティアプリケーション40によってリスンされているメッセージを追跡することもできる。このようなアクティビティリスナークエリのアーキテクチャは、(サードパーティアプリケーション40の内側のAPI呼出しによって実行されるのではなく)アクティビティのルーティングレベルにおいて実装するのが最良であり、なぜならこれによりウェブサイトのデザイナーは、サードパーティアプリケーション40が高度にプログラム可能およびカスタマイズ可能である必要なしに、調整およびカスタマイズを実行できるためであることを理解されたい。さらに、ルータ/追跡器231は、利用者のプライバシーを保護するうえでも役立ち、なぜならウェブサイトのデザイナーは、(ルーティングの決定に必要な)追加の情報を、関与するサードパーティアプリケーション40に提供する必要がないためである。さらに、ルータ/追跡器231は、サードパーティアプリケーション40との不要な通信の実行(しばしば別のサーバによってホストされる)を抑制することができる。 Therefore, the router/tracker 231 may also track messages being listened to by the third party application 40. Such an activity listener query architecture is best implemented at the routing level of the activity (rather than being executed by an API call inside the third party application 40) because it allows the website designer to It should be appreciated that the third party application 40 can perform adjustments and customizations without having to be highly programmable and customizable. In addition, the router/tracker 231 also helps protect the privacy of the user because the website designer needs to provide additional information (necessary for routing decisions) to the involved third party applications 40. This is because there is no In addition, the router/tracker 231 can prevent unwanted communication (often hosted by another server) with the third party application 40.

ウェブサイトを訪問する、ウェブサイトに登録する、ウェブサイトに情報を提供するのは、利用者(ウェブサイト訪問者)であることを理解されたい。利用者は、自身がアクセスしているウェブサイトが、ウェブサイト構築システム30、コンポーネント、作成されたウェブサイト、およびサードパーティアプリケーション40の組合せを使用して構築されていることを実際には認識していないことがある。したがって、利用者のプライバシーに関する責任は、最終的にはウェブサイトのオーナーにある(さらにオーナーは、自身のウェブサイトに含まれているサードパーティアプリケーション40によって行われるアクティビティに関する責任も負う)。 It is to be understood that it is the users (website visitors) who visit, register with, or provide information to the website. The user is actually aware that the website he is accessing is built using a combination of the website building system 30, components, the created website, and a third party application 40. Not always. Therefore, the responsibility for the privacy of the user ultimately lies with the owner of the website (and the owner is also responsible for the activities performed by the third party applications 40 included on his website).

さらには、サードパーティアプリケーション40(およびウェブサイト構築システム30の他のコンポーネント)は、ウェブサイト構築システム30によって定義されるプライバシー規則に基づき、ウェブサイト構築システム30によって提供されるAPIを通じて、利用者プロファイル情報にアクセスできることを理解されたい。さらには、含有側サイトおよびそこに含まれるサードパーティアプリケーション40は、コンタクト情報を使用して(電子メールまたはその他の手段を介して)利用者と通信することができる。 Furthermore, the third-party application 40 (and other components of the website building system 30) may be able to interact with the user profile through the API provided by the website building system 30 based on the privacy rules defined by the website building system 30. Understand that you can access the information. Further, the containing site and the third party applications 40 contained therein can use the contact information to communicate with the user (via email or other means).

プライバシーに関連する3つの大きな問題が存在しうることを理解されたい。最初の問題は、ウェブサイトおよびウェブサイト構築システム30と、サードパーティアプリケーション40のプロバイダとの間の相互関係である。ウェブサイト(およびウェブサイト構築システム30)は、利用者データの使用に関してサードパーティアプリケーション40を完全に信頼することができず、例えば、サードパーティアプリケーション40が(サイトによって提供される利用者の電子メールアドレスを使用して)大量に電子メールを送信しないこと、メール配信リストから削除するように要求した利用者にスパムメールを送信しないこと、あるいは利用者の個人情報を他の第三者に譲渡しないことに関してである。しかしながら、この問題は以下の方法で解決することができる。 It should be appreciated that there can be three major privacy-related issues. The first issue is the interrelationship between the website and website building system 30 and the provider of the third party application 40. The website (and website building system 30) may not completely trust the third party application 40 with respect to the use of the user data, for example, the third party application 40 may (such as the user's email provided by the site). Do not send large numbers of emails (using your address), do not send spam emails to users who request you to remove them from your mailing list, or transfer your personal information to other third parties. Regarding that. However, this problem can be solved by the following method.

ウェブサイト構築システム30のベンダーは、サードパーティアプリケーション40のプロバイダをウェブサイト構築システム30のアプリケーションマーケット(application market)に加えるときに、サードパーティアプリケーション40のプロバイダに、利用規約(ToU)同意書に署名するように要求することができる。このような同意書には、サードパーティアプリケーション40(およびサードパーティアプリケーション40のプロバイダ)が利用者の情報を不正に使用したり、第三者に開示したりしてはならないことを記載することができる。これにより、ウェブサイト構築システム30のベンダーは、サードパーティアプリケーション40のプロバイダが情報を不正に使用した場合に、そのプロバイダに罰則を適用することができる(例えば、サードパーティアプリケーション40を無効にする、ウェブサイト構築システム30のアプリケーションマーケットからサードパーティアプリケーション40を削除する)。プライバシーポリシーエンフォーサ213,233およびプライベートデータプロキシ234は、後からさらに詳しく説明するように、サードパーティアプリケーション40に対してプライバシーポリシーを実施することができる。 The vendor of the website building system 30 signs the terms of service (ToU) agreement with the provider of the third party application 40 when adding the provider of the third party application 40 to the application market of the website building system 30. Can be asked to. Such consent form may state that the third party application 40 (and the provider of the third party application 40) must not illegally use the user information or disclose it to a third party. it can. This allows the vendor of the website building system 30 to apply penalties to a third party application 40 provider if the provider of the third party application 40 misuses the information (eg, disables the third party application 40, The third party application 40 is deleted from the application market of the website construction system 30). Privacy policy enforcers 213, 233 and private data proxy 234 can enforce privacy policies for third party applications 40, as described in further detail below.

プライバシーに関連する2番目の問題は、ウェブサイトおよびウェブサイト構築システム30と利用者(サイトの訪問者)との間の相互関係である。ウェブサイトは、利用者の個人データがどのように使用されるかに関する明確な認識を利用者に提示し、利用者からの同意を受け、利用者が同意した条項を遵守しなければならない。ウェブサイト構築システム30は、利用者に属する個人情報の許可される用途を定義した利用規約文書を利用者に提示するように、公開されているすべてのサイトに要求し、この場合、利用者はその文書に電子署名するように要求される。サイトは、これらの条項および許可される用途を遵守しなければならない。さらに、ウェブサイト構築システム30は、自身が提供するウェブサイトテンプレートそれぞれにサンプルの利用規約ページを含めることができる。プライバシーポリシーエンフォーサ213,233は、利用規約文書の利用規約が確実に守られるようにすることができる。さらに、プライバシーポリシーエンフォーサ213,233は、関連するデータを削除または再編成することによって、許可された情報のみがサードパーティアプリケーションに提供されるようにすることができる。 A second privacy related issue is the interrelationship between the website and website building system 30 and the user (site visitor). Websites must provide users with a clear understanding of how their personal data will be used, obtain their consent, and comply with the terms they have agreed to. The website construction system 30 requests all the published sites to present the user with the terms of use document that defines the permitted use of the personal information belonging to the user. In this case, the user You are required to digitally sign the document. The site must comply with these terms and permitted uses. Further, the website building system 30 can include a sample Terms of Use page in each website template it provides. The privacy policy enforcers 213 and 233 can ensure that the terms of use of the terms of use document are observed. Further, the privacy policy enforcers 213, 233 can delete or reorganize relevant data so that only authorized information is provided to third party applications.

プライバシーに関連する3番目の問題は、配信停止要求をサポートすることである。サイトは、任意のマーケティング電子メールを配信停止するオプションを利用者に提供しなければならない。これは、後からさらに詳しく説明されているデータ/許可ハンドラ244によって処理することができる。 A third privacy-related issue is supporting unsubscribe requests. The Site must provide you with the option to unsubscribe any marketing emails. This can be handled by the data/authorization handler 244, which is described in more detail below.

データ/許可ハンドラ244は、後からさらに詳しく説明するように、異なる利用者によって設定される異なる利用者許可を扱うこともできる。 The data/authorization handler 244 can also handle different user permissions set by different users, as described in more detail below.

ウェブサイト構築システム30(およびその中に構築されたウェブサイト)では、プライベートデータプロキシ234によって、すべてまたは一部のプライベートデータを、ウェブサイト構築システム30によって管理される安全なリポジトリの中に保持することができ、プライベートデータプロキシ234は、サードパーティアプリケーションに(プライベートデータの代わりに)代替の一意のIDを提供することができ、サードパーティアプリケーションは、このIDを使用して、隠されているプライベートデータを取得することができる。例えば、電子メールアドレスを代替の「電子メールアドレスID」に置き換えてサードパーティアプリケーション40に提供され、したがってサードパーティアプリケーション40は、実際の電子メールアドレスにはアクセスすることができない。 In the website building system 30 (and the websites built therein), the private data proxy 234 keeps all or some of the private data in a secure repository managed by the website building system 30. The private data proxy 234 can provide the third party application with an alternate unique ID (instead of private data), which the third party application can use to hide the hidden private Data can be acquired. For example, the email address may be provided to the third party application 40 by replacing it with an alternate "email address ID" so the third party application 40 cannot access the actual email address.

さらに、プライベートデータプロキシ234は、さまざまな通信方法(例えば電子メール、ソーシャルネットワークのメッセージング)のための一連のインタフェースを提供することができ、サードパーティアプリケーション40は、これらのインタフェースを使用して利用者に連絡する、あるいはメッセージを送ることができ、このときサードパーティアプリケーション40はその利用者に関連付けられるプライベートデータに実際にアクセスすることはない。このようなプライベートデータとしては、それを用いて利用者に連絡することのできるあらゆる詳細な識別情報(例えば、名前、住所、電子メールアドレス、電話番号(SMS/MMSを含む)、統一された通信ID(スカイプなど)、ソーシャルネットワークID)が挙げられる。 In addition, the private data proxy 234 can provide a set of interfaces for various communication methods (eg, email, social network messaging) that the third party application 40 can use to interface with the user. Can be contacted or a message sent to third party application 40 without actually accessing the private data associated with the user. Such private data may be any detailed identification information (eg name, address, e-mail address, telephone number (including SMS/MMS)) that can be used to contact the user, unified communication. ID (Skype etc.) and social network ID) are mentioned.

したがって、プライベートデータプロキシ234は、利用者許可フィールドの制限を実施する、利用者の配信停止要求を実施する、および、利用者へのメッセージの送信を抑制する(例えば特定のサイトにおいて動作する特定のサードパーティアプリケーション40に対して1日あたり100通までの電子メールを許可する)ことができる。プライベートデータプロキシ234は、プロキシパラメータと、サードパーティアプリケーションに公開するプライベートデータおよび公開しないプライベートデータを(サードパーティアプリケーション40ごとに)定義することができ、これらの設定はフィールド単位で行うことができる。 Therefore, the private data proxy 234 enforces user permission field restrictions, enforces user unsubscribe requests, and suppresses sending messages to users (e.g., certain operating sites at certain sites). It is possible to allow up to 100 e-mails per day for the third party application 40). The private data proxy 234 can define proxy parameters and private data (for each third party application 40) that is exposed to the third party application and private data that is not disclosed to the third party application, and these settings can be performed on a field-by-field basis.

プライベートデータプロキシ234は、ウェブサイト構築システム30のサーバ上でホストされるサードパーティアプリケーション40に、元のプライベートデータに形が似ている代替の一意のIDを提供する(例えば、利用者の元のプライベートな電子メールアドレスの代わりに代替のダミー電子メールアドレスを提供する)ことができ、その情報を使用するコールを「捕捉」し、(この例では)その電子メールを正しいアドレスに転送する。この機能は、許可された特権を超えているサードパーティアプリケーション40を検出する目的にも使用することができる。 The private data proxy 234 provides the third party application 40 hosted on the server of the website building system 30 with an alternative unique ID that is similar in shape to the original private data (eg, the user's original ID). An alternate dummy email address can be provided instead of the private email address) and the call that uses that information is "captured" and the email is (in this example) forwarded to the correct address. This feature can also be used to detect third-party applications 40 that have exceeded their authorized privileges.

ウェブサイトのオーナーが、特定のサードパーティアプリケーション40に提供される情報を制限する、または修正することを望むことがあることを理解されたい。その理由として、例えば、一般的なセキュリティ上の懸念、利用者のデータの任意の要素に関する特定のプライバシーコミットメント、特定の業界またはアプリケーションに固有な規制要件が挙げられる。プライバシーポリシーエンフォーサ213,233は、ウェブサイトのオーナーによって行われるこのような変更を実施し、現在の設定を上書きすることができる。 It should be appreciated that website owners may wish to limit or modify the information provided to a particular third party application 40. Reasons for this include, for example, general security concerns, specific privacy commitments regarding any element of your data, and regulatory requirements specific to a particular industry or application. The privacy policy enforcers 213, 233 can implement such changes made by the website owner and overwrite the current settings.

一例として、医療情報を扱うウェブサイトでは、利用者の一般的な地理的分布を解析するサードパーティアプリケーション40にコンタクト情報を渡すときに、コンタクト情報のうち詳細な個人情報の一部にアクセスできないようにすることを望むことがある。別の例として、あるサードパーティアプリケーション40において、特定の種類のコンタクト情報を扱うときに問題が発生することがある。そのサードパーティアプリケーション40を(バグが判明しているが)そのまま使用したいと考えるウェブサイトオーナーは、分かっている問題を引き起こすコンタクトを除外する、あるいは問題が発生しないようにデータを修正することを望むことがある。 As an example, a website that handles medical information may not access some of the detailed personal information of the contact information when passing the contact information to a third party application 40 that analyzes the general geographical distribution of users. You may want to As another example, certain third party applications 40 may have problems handling certain types of contact information. Website owners who want to use the third party application 40 as is (although the bug is known) want to exclude contacts that cause known problems or modify the data so that the problems do not occur. There is.

変換器/適合器212,232は、メッセージを変換およびコンテンツを適合化するための事前に指定される規則を適用することができる。このような規則それぞれには、規則が適用されるサードパーティアプリケーション40、規則が適用されるメッセージを選択するフィルタリング基準、変換規則(例えば(特定のサードパーティアプリケーション40に関連する)特定のメッセージを破棄する)、アクティビティデータ構造体の中の特定の1つまたは複数のフィールドに適用される変換などの条件を含めることができる。 The translators/adaptors 212, 232 can apply pre-specified rules for translating messages and adapting content. For each such rule, a third-party application 40 to which the rule applies, filtering criteria that select messages to which the rule applies, conversion rules (eg, discard specific messages (related to a particular third-party application 40). Conditions), such as transformations that apply to a particular field or fields in the activity data structure.

このようにすることで、ハブ210,230は、サイトのオーナーによって作成される仕様に従って、異なるサードパーティアプリケーション40にアクティビティデータ構造体の異なるバージョンを提供する(またはまったく提供しない)ことができる。 In this way, the hub 210, 230 can provide different versions of the activity data structure (or not provide it at all) to different third party applications 40 according to the specifications created by the site owner.

さらに、関連するウェブサイト構築システム30は、障害、および侵入の試み(サードパーティアプリケーション40のメッセージのペイロードデータを改ざんすることを目的とする中間者攻撃など)に対してシステムを強化するため、メッセージの検証および署名をサポートすることができる。したがって、ウェブサイト構築システム30に登録されているサードパーティアプリケーション40それぞれは、2組の秘密鍵/公開鍵を持つことができ、1組は、サードパーティアプリケーション40からウェブサイト構築システム30に送られたメッセージを復号する目的に使用され(入力鍵)、1組は、ウェブサイト構築システム30からサードパーティアプリケーション40に送られるメッセージを符号化する目的に使用される(出力鍵)。 In addition, the associated website building system 30 provides message protection in order to harden the system against failures and intrusion attempts (such as man-in-the-middle attacks aimed at tampering with the payload data of the messages of the third party application 40). Can support validation and signing of. Therefore, each third party application 40 registered in the website building system 30 can have two sets of private/public keys, one set being sent from the third party application 40 to the website building system 30. Used to decrypt the message (input key) and one set is used to encode the message sent from the website construction system 30 to the third party application 40 (output key).

例えば、サードパーティアプリケーションAがウェブサイト構築システム30にメッセージを送る。このメッセージは、サイトにおけるサードパーティアプリケーションID(サードパーティアプリケーションの外部ID(サードパーティアプリケーションスコープを有する))を使用して送られ、メッセージはサードパーティアプリケーションによって署名される。ウェブサイト構築システム30はこのメッセージを受信する。検証器/署名器235は、サードパーティアプリケーションAの入力鍵を使用して署名を検証する。この検証に合格しない場合、検証器/署名器235はその入力メッセージを無効と報告し、そのメッセージはそれ以上送信されない。 For example, the third party application A sends a message to the website building system 30. This message is sent using the third party application ID at the site (external ID of the third party application (has third party application scope)) and the message is signed by the third party application. The website construction system 30 receives this message. The verifier/signer 235 verifies the signature using the input key of the third party application A. If this verification does not pass, the verifier/signer 235 reports the input message as invalid and the message is no longer sent.

検証器/署名器235は、メッセージに関連付けられる外部IDを内部サイトIDを使用して変換することができる。検証器/署名器235は、どのサードパーティアプリケーション40がそのメッセージを受信するべきかを確認することができる。 The verifier/signer 235 can translate the external ID associated with the message using the internal site ID. The verifier/signer 235 can identify which third party application 40 should receive the message.

例えば、検証器/署名器235は、サードパーティアプリケーションB1〜Bnそれぞれについて、サードパーティアプリケーションBの外部IDを認識することができる。次いで、検証器/署名器235は、サードパーティアプリケーションBへのメッセージを作成し、上述した適用可能なフィルタリングおよび変換規則を適用するように変換器/適合器212,232に命令する。次いで、検証器/署名器235は、サードパーティアプリケーションBの出力鍵を使用してメッセージに署名し、そのメッセージをルータ/追跡器231(またはルータ211)を介してサードパーティアプリケーションBに送る。サードパーティアプリケーションBは、そのメッセージを受信し、署名を検証する。検証に合格しない場合、そのメッセージは無効と報告され、それ以上処理されない。検証器/署名器235は、秘密の検証データが信頼できないクライアントに送られることがないように、クライアント側の処理を実行せずにサーバ側の処理のみを実行することを理解されたい。 For example, the verifier/signer 235 can recognize the external ID of the third-party application B for each of the third-party applications B1 to Bn. The verifier/signer 235 then instructs the converters/adaptors 212, 232 to compose a message to the third party application B and apply the applicable filtering and conversion rules described above. The verifier/signer 235 then signs the message using the output key of the third party application B and sends the message to the third party application B via the router/tracker 231 (or router 211). Third party application B receives the message and verifies the signature. If the verification fails, the message is reported as invalid and cannot be processed further. It should be appreciated that the verifier/signer 235 performs only server-side processing, not client-side processing, so that secret verification data is not sent to untrusted clients.

上述したように、システム200は、ウェブサイト構築システム30とサードパーティアプリケーション40との間の複数のタイプの通信を採用することができる。このような通信としては、例えば、制御上の通信(例:ウェブサイト構築システム30がサードパーティアプリケーション40にシャットダウンするように命令する)や、機能上の通信(例:ショッピングカートのサードパーティアプリケーション40が合計購入金額をウェブサイト構築システム30を通じて課金のサードパーティアプリケーション40に送る(したがって本出願において説明した例においては支払いまたはアクティビティの通信が修正される)、が挙げられる。これらの異なるタイプの通信は、(例えば、送られるメッセージの量、優先度、堅牢性、応答時間に関する)異なるプロファイルおよび要件を有することを理解されたい。 As mentioned above, system 200 can employ multiple types of communication between website building system 30 and third party applications 40. Such communication includes, for example, control communication (eg, the website construction system 30 instructs the third party application 40 to shut down), and functional communication (eg, shopping cart third party application 40). Sends the total purchase amount to the billing third party application 40 through the website building system 30 (thus modifying the payment or activity communication in the example described in this application). Should be understood to have different profiles and requirements (eg, with respect to the amount of messages sent, priority, robustness, response time).

特に、システム200では、極めて頻繁なアクティビティ報告が行われることがある(例えば、サードパーティアプリケーション40のグラフィカルユーザインタフェース(GUI)のイベントが、サードパーティアプリケーション40のアクティビティとして報告される場合)。このような膨大なアクティビティ報告によって、より重要なメッセージを扱うシステムの部分が圧迫されることがある。したがって、システム200は、各クラスのメッセージが個別のチャネルを介して送られるように、(例えば、異なるポートや複数の同時セッションを使用して)複数の通信チャネルを実装することができる。このようにすることで、アクティビティ報告にはサイドチャネルが使用され、命令の通信および機能上の通信と並行して行われ、後者の通信を妨げない。 In particular, system 200 may have very frequent activity reports (eg, when a graphical user interface (GUI) event of third party application 40 is reported as an activity of third party application 40). Such huge activity reports can overwhelm parts of the system that handle more important messages. Thus, system 200 can implement multiple communication channels (eg, using different ports and multiple simultaneous sessions) such that each class of message is sent over a separate channel. In this way, the side channel is used for activity reporting and is done in parallel with the communication of instructions and the communication of functions, without interfering with the latter communication.

上述したように、システム200は、コンタクトコーディネータ240およびアクティビティコーディネータ250を介してコンタクト情報を作成およびその質を高める目的と、特定のコンタクトに関連付けられるアクティビティイベントを照合する目的で、アクティビティ情報を集めることができる。コンタクトコーディネータ240およびアクティビティコーディネータ250は、ハブ210およびハブ230を通じてルーティングされる各アクティビティメッセージごとに、情報を処理することができる。ストリーム作成器251は、アクティビティメッセージから、コンタクトに固有なデータストリームを作成することができ、コンタクトコーディネータ240の複数の要素は、データを抽出して処理した後、それをコンタクトデータベース245に格納することができる。 As mentioned above, the system 200 collects activity information for the purpose of creating and enhancing contact information via the contact coordinator 240 and the activity coordinator 250 and for matching activity events associated with a particular contact. You can Contact coordinator 240 and activity coordinator 250 can process information for each activity message routed through hub 210 and hub 230. The stream creator 251 may create a contact-specific data stream from the activity message, and multiple elements of the contact coordinator 240 may extract and process the data before storing it in the contact database 245. You can

したがって、各アクティビティストリームに対して、それぞれに関連付けられるコンタクトを構築することができ、構築されたコンタクトを、それぞれのデータストリームの下で実行されるアクティビティから抽出されるデータを使用して徐々に質を高めることができる。コンタクトコーディネータ240は、互いに関連するコンタクト(同じ人を記述するものと判明した複数のコンタクトレコード)の存在を認識することもできることを理解されたい。コンタクト識別器272は、プライマリIDフィールド(電子メールアドレス、電話番号、ソーシャルセキュリティ番号、フェイスブックIDなど)のマッチングによって、このようなレコードを認識することができる。いくつかのプライマリIDフィールドは複数値フィールドである(例えば1人の人が、その人を識別する複数の電子メールアドレスを持つことができる)のに対して、いくつかのプライマリIDフィールドは厳密に単一値のフィールド(例えばソーシャルセキュリティ番号)であることを理解されたい。 Therefore, for each activity stream, it is possible to build a contact that is associated with each, and the built contacts are progressively quality graded using the data extracted from the activities performed under each data stream. Can be increased. It should be appreciated that the contact coordinator 240 may also be aware of the existence of related contacts (a plurality of contact records found to describe the same person). The contact identifier 272 can recognize such a record by matching the primary ID field (e-mail address, telephone number, social security number, Facebook ID, etc.). Some primary ID fields are multi-valued fields (eg, a person can have multiple email addresses identifying that person), while some primary ID fields are strictly It should be appreciated that it is a single valued field (eg social security number).

したがって、データマージャ243は、新しいアクティビティから抽出されたコンタクトのフィールドを、現在の構築されているコンタクトにマージすることができ、匿名利用者がウェブサイトを使用している間にその匿名利用者に対して構築されたコンタクトを、匿名利用者がログイン動作を実行して識別された利用者になった時点で、すでに定義されて保存されているコンタクトにマージすることができる(これを「垂直マージ」と称することがある)。さらに、水平コンタクトマージャ277は、2人の異なるコンタクト(構築されたコンタクトまたは格納されているコンタクト)が、同じ利用者を表す互いに関連するコンタクトであることを検出したときに、これら2人のコンタクトの「水平」マージを実行することができる。上述したように、このようなマージは、実際にマージする(すなわち2人の個別のコンタクトを1人のコンタクトに変換する)、または1人のコンタクトを別のコンタクトにマージする、または仮想マージを通じて実行する(すなわち2人のコンタクトを個別のコンタクトとして維持するが、これらが同じ利用者を表していることが示されるように互いにリンクし、このとき実際のコンタクト情報およびアクティビティストリームをマージする、またはマージしない)ことによることができる。さらに、仮想マージの場合でも、仮想的にマージされてリンクされた複数のコンタクトにさらなる追加情報を追加できることを理解されたい。 Therefore, the data merger 243 can merge the fields of the contacts extracted from the new activity into the contacts that are currently being constructed, giving the anonymous user the ability to use it while using the website. Contacts built against it can be merged into contacts that are already defined and stored once the anonymous user has performed the login action to become the identified user (this is called "vertical merge"). May be referred to as "). In addition, the horizontal contact merger 277 detects when two different contacts (built contacts or stored contacts) are related contacts that represent the same user. A "horizontal" merge of can be performed. As mentioned above, such a merge may be an actual merge (ie converting two individual contacts into one contact), or one contact into another contact, or through a virtual merge. Execute (ie keep the two contacts as separate contacts but link them together as shown to represent the same user, then merge the actual contact information and activity stream, or It can be done by not merging). Further, it should be appreciated that even in the case of virtual merging, additional additional information can be added to multiple contacts that are virtually merged and linked.

したがって、データ抽出器241は、関連するアクティビティデータ構造体からコンタクトタイプの情報を抽出することができ、データマージャ243は、このコンタクトタイプの情報を、アクティビティストリームに関連付けられる(匿名または識別された)コンタクトに統合することができる。コンタクトタイプの情報IにプライマリIDフィールドが含まれている場合、データマージャ243は、互いに関連するコンタクトがないかをプライマリIDフィールドの値に基づいてチェックし、見つかった場合、これらのコンタクトをマージする。さらに、データマージャ243は、アクティビティによって、サイト内の利用者の識別情報が確立されるかをチェックすることができ(例えばサイトログインアクティビティ)、確立される場合、匿名のコンタクトを、その利用者に対して格納されている既存のコンタクトレコードとマージし、そのコンタクトを以降は識別されたコンタクトにする。 Accordingly, the data extractor 241 can extract contact type information from the associated activity data structure and the data merger 243 associates this contact type information with the activity stream (anonymous or identified). Can be integrated into contacts. If the contact type information I includes a primary ID field, the data merger 243 checks for contacts that are related to each other based on the value of the primary ID field, and if found, merges these contacts. .. In addition, the data merger 243 can check if the activity establishes the identity of the user within the site (eg, site login activity), and if so, an anonymous contact to the user. Merges with the existing contact record stored for it, making that contact a subsequently identified contact.

コンタクト識別器272は、サイト利用者を識別するための複数の方法を実施できることを理解されたい。例えば、(サイトにログインしていない)1人の匿名利用者によるセッションをクッキーを使用して追跡する、登録されている利用者の場合にサイトログインを使用する、アカウントがソーシャルネットワークに関連付けられるサイト利用者の場合にソーシャルログインを使用する、プライマリIDフィールド(電子メールアドレスや電話番号など)のマッチングを行って2つの利用者プロファイルが同じ利用者を記述していることを識別することによる。 It should be appreciated that the contact identifier 272 can implement multiple methods for identifying site users. For example, use a cookie to track sessions by one anonymous user (not logged into the site), use site login for registered users, sites whose accounts are associated with social networks By using social login for users, by matching primary ID fields (such as email addresses and phone numbers) to identify that two user profiles describe the same user.

さらには、詳細情報がコンタクトデータベース245に格納されているサイト利用者は、サイトに登録していない匿名利用者、登録されている利用者、および潜在的利用者(サイトに正式にはまだ登録されていないが、外部ソースからインポートされたレコードを有する)に分類できることを理解されたい。 Furthermore, site users whose detailed information is stored in the contact database 245 include anonymous users who have not registered with the site, registered users, and potential users (not officially registered with the site yet. Not have, but have records imported from external sources).

関連するウェブサイトは、セッションが変わっても持続される永続的クッキーをインストールすることができるため、同じブラウザを使用して同じコンピュータ上で実行される複数の匿名セッションから、同じコンタクトレコードへの情報を取得し続けることができる。したがって、匿名利用者であっても、相当な量のコンテキスト情報およびコンタクト情報を有することができる。 Information related to the same contact record from multiple anonymous sessions running on the same computer using the same browser, as the relevant websites can install persistent cookies that persist across session changes. Can continue to get. Therefore, even anonymous users can have a significant amount of contextual and contact information.

登録される利用者は、その特定のサイトにおいて一意であるIDを提供しなければならない。複数のタイプのIDを使用することができ、例えば、個々のサイトに固有なID(例:利用者名)、外部識別子(電子メールアドレス、電話番号、ソーシャルセキュリティ番号など)、あるいは別のシステムによって提供された外部識別子(ソーシャルネットワークID、Google ID、OpenIDのIDなど)である。 Registered users must provide an ID that is unique at that particular site. Multiple types of IDs can be used, for example by unique IDs for individual sites (eg user name), external identifiers (email address, phone number, social security number, etc.) or by another system. The provided external identifier (social network ID, Google ID, OpenID ID, etc.).

ソーシャルネットワークへのログインを通じての利用者登録では、サイトは、ソーシャルネットワークにおいて利用可能な個人情報を使用して、同じ利用者のサイトプロファイルに入力することができる。さらに、データ抽出器241は、ソーシャルネットワークのプロファイルに再アクセスして、その個人情報の変更があれば検出して、サイト利用者のプロファイルを更新することができる。 User registration through login to a social network allows the site to populate the same user's site profile using personal information available on the social network. Further, the data extractor 241 can re-access the profile of the social network, detect any change in the personal information, and update the profile of the site user.

登録された利用者は、一般的には、自身の識別情報を確立するためシステムにログインしなければならないが、システムは、「このシステムに接続したままにする」オプションを提供することができる。このようなログイン手順は、明示的とする(利用者がログインダイアログを呼び出す)、または暗黙的とする(例えばブログに書き込みを追加するときに、何らかの識別情報を提供するように利用者に要求する)、または外部ログインに基づく(システムは、別のシステムに関連付けられるログイン手順(ソーシャルネットワークへのログインやOpenIDログインなど)を呼び出す)ことができる。さらに、物理的デバイス(例えばシステムに直接または無線インタフェースを介して接続されるセキュリティトークン)を通じて、またはバイオメトリック情報の使用(利用者のバイオメトリックパラメータ(例:指紋、虹彩スキャン)および利用者挙動検出(タイピングパターン検出など)の両方を含む)を通じて、または上に詳述した方法の任意の組合せを通じて、ログイン手順を修正することもできる。 Registered users typically have to log in to the system to establish their identity, but the system can provide an option to "Keep Connected to This System." Such a login procedure may be explicit (the user invokes a login dialog) or implicit (for example, requiring the user to provide some identifying information when adding a post to the blog). ), or based on an external login (the system invokes a login procedure associated with another system, such as a social network login or an OpenID login). In addition, through physical devices (eg security tokens connected directly to the system or via a wireless interface) or using biometric information (user biometric parameters (eg fingerprint, iris scan) and user behavior detection). The login procedure may also be modified through (including both typing pattern detection, etc.) or through any combination of the methods detailed above.

さらに、ソーシャルログイン手順と通常のログインとの間で双方向に情報をやりとりできることを理解されたい。例えば、ソーシャルIDがサイトメンバーIDに関連付けられ、したがってソーシャルログインすることは暗黙的にサイトにログインすることであり、あるいは、サイトメンバーIDを1つまたは複数のソーシャルネットワークIDに関連付けることができ、したがってサイトにログインすると、1つまたは複数のソーシャルネットワークにおいて利用者が識別される。 Further, it should be appreciated that information can be exchanged in both directions between the social login procedure and normal login. For example, a social ID is associated with a site member ID, and thus social login is implicitly logging in to the site, or the site member ID can be associated with one or more social network IDs, thus Logging in to the site identifies the user on one or more social networks.

利用者が明示的なログアウトを実行するとき、コンタクトハンドラ242は、新しい匿名利用者のクッキーを生成し、したがって新しい匿名セッション(または一連のセッション)を開くことができ、このセッションのアクティビティはその新しい匿名のコンタクトの下で保存される。さらなるログイン時に、この新しい匿名のコンタクトを、そのログイン時に識別されるコンタクトとマージすることができる。 When a user performs an explicit logout, the contact handler 242 may create a new anonymous user cookie and thus open a new anonymous session (or series of sessions) whose activity is the new one. Saved under anonymous contact. At further login, this new anonymous contact can be merged with the contact identified at that login.

次に図19を参照し、この図は、匿名利用者のログイン/ログアウトプロセスを示している。利用者は、システムの利用を匿名で開始することができる。利用者がサードパーティアプリケーションでの最初のアクティビティact1を実行すると、コンタクトハンドラ242がコンタクトを作成し、ストリーム作成器251がアクティビティストリームanon1を自動的に作成する。ストリームマージャ252は、act1からの情報および次のアクティビティact2およびact3からの情報を、利用者anon1にマージする。 Referring now to FIG. 19, this figure illustrates the anonymous user login/logout process. The user can start using the system anonymously. When the user executes the first activity act1 in the third party application, the contact handler 242 creates a contact and the stream creator 251 automatically creates the activity stream anon1. The stream merger 252 merges the information from act1 and the information from the next activities act2 and act3 into the user anon1.

同じ利用者が利用者Xとしてログインを実行した時点で、データマージャ243は、anon1のコンタクト(およびアクティビティストリームから取得される他の関連するコンタクトデータ)を、利用者Xのコンタクト情報にマージする。さらに、ストリームマージャ252は、さらなるアクティビティact4およびact5から抽出される情報を1つのストリームにマージし、次いでデータ抽出器241が利用者Xのコンタクト情報を抽出することを理解されたい。利用者Xがログアウトを実行すると、コンタクトハンドラ242は、新しいクッキーを作成し、それ以降のアクティビティを利用者Xから切り離す。したがって、新しいアクティビティact6が実行されると、コンタクトハンドラ242は新しい匿名のコンタクトanon2を作成し、データ抽出器241は、そのコンタクトの抽出されたコンタクト詳細情報(およびアクティビティ)を、新たに作成された匿名のコンタクトanon2の下で保存する。 When the same user logs in as user X, the data merger 243 merges the contact of anon1 (and other relevant contact data obtained from the activity stream) with the contact information of user X. Further, it should be understood that the stream merger 252 merges the information extracted from the further activities act4 and act5 into one stream, and then the data extractor 241 extracts the contact information of the user X. When user X performs a logout, contact handler 242 creates a new cookie and disconnects subsequent activity from user X. Therefore, when the new activity act6 is executed, the contact handler 242 creates a new anonymous contact anon2, and the data extractor 241 newly creates the extracted contact detail information (and activity) of the contact. Save under anonymous contact anon2.

(シナリオAのように)利用者anon2が2回目のログインを利用者Yとして実行する場合、データマージャ243は、(act6およびact7によって更新された)利用者anon2のコンタクト情報を、さらなるアクティビティと一緒に、識別された利用者Yのコンタクト詳細情報にマージする。 If user anon2 performs the second login as user Y (as in scenario A), data merger 243 will include contact information for user anon2 (updated by act6 and act7) along with further activities. To the contact detail information of the identified user Y.

(シナリオBのように)利用者anon2が2回目のログインを利用者Xとして実行する場合、データマージャ243は、(act6およびact7によって更新された)利用者anon2のコンタクト情報を、さらなるアクティビティと一緒に、(すでに更新されてact1〜act5が反映された)利用者Xのコンタクト詳細情報にマージする。 If user anon2 performs a second login as user X (as in scenario B), data merger 243 will include contact information for user anon2 (updated by act6 and act7) along with further activities. Then, it is merged with the contact detail information of the user X (which has already been updated and reflects act1 to act5).

アクティビティに関連付けられるアクティビティデータ構造体は、コンタクト詳細情報を含むこともできることを理解されたい。データ抽出器241は、この情報を抽出してデータマージャ243に転送することができ、データマージャ243は、この情報を、コンタクトデータベース245の中の既存のコンタクト情報と統合し、既存のコンタクト情報の質を高めることができる。さらには、データ抽出器241は、特定のアクティビティメッセージ、ストリーム全体、別のコンタクト、または外部ソース(後からさらに詳しく説明する、IPから地理情報への住所変換サービスなど)から、詳細情報を抽出できることを理解されたい。上述したように、コンタクトデータベース245の中のコンタクトは、登録またはサインアッププロセスの一部として利用者が明示的に提供するコンタクト詳細情報、またはウェブサイトに(ソーシャルログイン/登録機能を介して)サインアップするときに利用者が使用するソーシャルネットワーキングアカウントから抽出されるコンタクト詳細情報、または利用者が自身の利用者プロファイルを更新するときに提供するコンタクト詳細情報を含むこともできる。さらに、データ抽出器241は、外部ソースからコンタクト情報を取得することもできる(例えば利用者が米国郵便番号のみを指定するとき、サイトはこの情報を使用して、郵便番号復号(zip code decoding)の外部ウェブサービスから完全な住所情報を取得する)。 It should be appreciated that the activity data structure associated with the activity may also include contact details information. The data extractor 241 can extract this information and forward it to the data merger 243, which integrates this information with the existing contact information in the contact database 245 to create the existing contact information. You can improve the quality. Furthermore, the data extractor 241 can extract detailed information from a particular activity message, an entire stream, another contact, or an external source (such as an IP-to-geographic address translation service, which will be discussed in more detail below). I want you to understand. As mentioned above, contacts in the contact database 245 can be contact details provided by the user explicitly as part of the registration or sign-up process, or a website (via the social login/registration feature). It may also include contact details extracted from the social networking account used by the user when uploading or provided when the user updates their user profile. In addition, the data extractor 241 can also obtain contact information from an external source (eg, when a user specifies only a US zip code, the site uses this information to zip code decoding). Get full address information from an external web service).

上述したように、コンタクト識別器272は、2人のコンタクトを、プライマリIDフィールド(利用者名、電子メールアドレス、電話番号など)に基づいて、互いに関連しているものと認識することができる。コンタクトA(新規)とコンタクトB(既存)が互いに関連していることが判明すると、データマージャ243がAをBにマージすることができる(Bがマスター)。この処理は、例えば以下のようなフィールドマージ規則を使用して行う。 As described above, the contact identifier 272 can recognize the two contacts as being related to each other based on the primary ID field (user name, email address, telephone number, etc.). When it is determined that contact A (new) and contact B (existing) are related to each other, data merger 243 can merge A into B (B is master). This process is performed using the following field merge rule, for example.

B1=BまたはA(例えば「B||A」): Bをとり、Bがヌルまたは空である場合、Aをとる。 B1=B or A (eg “B||A”): Take B, and if B is null or empty, take A.

B1=数学関数(A,B): プライベートデータの重要なケースは以下である。 B1=Mathematical function (A, B): The important cases of private data are:

B1=A+B: 例えば、訪問回数、合計購入額
B1=min(A,B): 例えば、サイトへの登録日
B1=max(A,B): 例えば、最後のアクティビティの日付
B1=A+B: For example, number of visits, total purchase amount B1=min(A,B): For example, registration date on the site B1=max(A,B): For example, date of the last activity

B1=list−unite(B,A): リストBの最後にリストAを連結し、Aの要素のうちBの要素と重複する要素を削除する(すなわちB1=B&(A−B))。データマージャ243は、リストの要素間の重複を、以下の規則に従って判定することができる。 B1=list-unite(B,A): The list A is concatenated at the end of the list B, and the element that overlaps the element of B among the elements of A is deleted (that is, B1=B&(AB)). The data merger 243 can determine the duplication between the elements of the list according to the following rules.

通常の値(すなわちスカラー)からなるリストの場合、通常の値の比較を使用する。 For a list of regular values (ie scalars), use regular value comparison.

構造体からなるリストの場合、構造体の特定のサブフィールドを比較キーとして使用する。例えば、複数の住所をサポートするウェブサイト構築システム30における住所のタイプ(自宅、会社、配送先など)。 For a list of structs, use a particular subfield of the struct as the comparison key. For example, the type of address (home, company, shipping address, etc.) in the website construction system 30 that supports multiple addresses.

正規化数の比較。(例えば)後述する電話番号の処理を参照。 Normalized number comparison. See (for example) the processing of telephone numbers below.

構造体Aが構造体Bのさらに詳細なバージョンである場合、AをBに結合する(後からさらに詳しく説明する)。 If structure A is a more detailed version of structure B, then join A to B (discussed in more detail below).

より高い確実性スコア(certainty score): 値に確実性スコアを付加することができる(例えば、利用者によって直接提供された情報と、利用者に関して推測された情報とに、異なる確実性スコアを付加する)。データマージャ243は、より高い確実性スコアを有する値を選択することができる。 Higher certainty score: A certainty score can be added to the value (for example, information provided directly by the user and information guessed about the user will have different certainty scores). To). The data merger 243 can select the value with the higher certainty score.

いくつかのフィールドタイプは、正規化されたフォーマットを有することを理解されたい。例えば、電話番号を、正規化された米国形式(例:(999)555−1234)または国際形式(例:+1−999−555−1234)に正規化することができる。データマージャ243は、例えばコンタクトのプライマリキー(電話番号など)を比較するときや、マージされたリストにおける重複をチェックするときに、比較できるようにフィールド値を正規化されたフォーマットに変換することができる。 It should be appreciated that some field types have a normalized format. For example, a telephone number can be normalized to a normalized US format (eg (999)555-1234) or an international format (+1-999-555-1234). The data merger 243 may convert the field values to a normalized format for comparison when comparing, for example, the primary key of a contact (such as a phone number) or checking for duplicates in the merged list. it can.

データマージャ243は、同じ基本構造を有する2つの構造化された値(例えば、複数のサブフィールド(国、州、郵便番号、ストリート、番地など)からなる住所値)を比較することができる。構造体Xの中の空ではないフィールドそれぞれの値が、構造体Yの中の同じフィールドの値と等しい(すなわち、Yは、Xの空ではないフィールドの値すべてと、場合によってはいくつかのさらなるフィールドの値とを含む)場合、構造体Yは、構造体Xの詳細バージョンである。したがってデータマージャ243は、AがBの詳細バージョンであり、かつAがBと同一ではない場合、AをBに結合することができる。 The data merger 243 can compare two structured values having the same basic structure (eg, an address value consisting of multiple subfields (country, state, zip code, street, street address, etc.)). The value of each non-empty field in structure X is equal to the value of the same field in structure Y (ie, Y is the value of all non-empty fields of X, and possibly some Structure Y is a detailed version of structure X). Therefore, the data merger 243 can join A to B if A is a detailed version of B and A is not the same as B.

データ抽出器241は、アクティビティの発生元であるIPアドレスから、コンタクトの住所を推測できることを理解されたい。この機能は、アクティビティの発生元がブラウザセッションであり、かつ利用者の住所が取得されていない場合にのみ使用される。したがって、データ抽出器241は、IPアドレスの地理情報に従って州/国情報を抽出することができる。この場合、住所は、「推定された地理IPアドレス」とマークされる。このようなマーキングが必要であるのは、IPマッピングに基づく(場合によっては不正確な)住所が住所フィールドにすでに含まれているが故に、後からの住所のマージ処理と衝突し、これにより後からの詳細な(ただし基本的に異なる)住所をコンタクトデータベース245に保存することが妨げられないようにするためである。 It should be appreciated that the data extractor 241 can infer the contact's address from the IP address from which the activity originated. This feature is used only if the activity originated in a browser session and the user's address has not been obtained. Therefore, the data extractor 241 can extract the state/country information according to the geographical information of the IP address. In this case, the address is marked as "estimated geographic IP address". Such marking is necessary because it conflicts with later address merging processes because the address field based on IP mapping (possibly incorrect) is already included in the address field. This is to prevent the detailed (though basically different) address from the above from being stored in the contact database 245.

データマージャ243は、マージされたリストにおけるタグの衝突を処理することもできる。リストをマージする場合、2つのエンティティ(1つはコンタクトAから、他方はコンタクトBから)が存在し、これらのエンティティは異なるが同じタグを有するという状況が起こりうることを理解されたい。このシナリオにおいては、データマージャ243は、同じタグを有する両方のエンティティをリストに含める。 The data merger 243 can also handle tag collisions in the merged list. It should be appreciated that when merging lists, there may be situations where there are two entities (one from contact A, the other from contact B) and these entities are different but have the same tag. In this scenario, the data merger 243 will include both entities with the same tag in the list.

したがって、[{タグ:”自宅”,電子メール:”a@b.com”}]+[{タグ:”自宅”,電子メール:”c@d.com”}]という結合を行うと、[{タグ:”自宅”,電子メール:”a@b.com”},{タグ:”自宅”,電子メール:”c@d.com”}]が作成される。この方法は、マージされるフィールドが、「一意でないリストタグを許可」としてマークされている場合に使用する。 Therefore, when the combination of [{tag: "home", e-mail: "a@b.com"}]+[{tag: "home", e-mail: "c@d.com"}] is performed, [[ {Tag: "home", e-mail: "a@b.com"}, {tag: "home", e-mail: "c@d.com"}] are created. Use this method if the fields to be merged are marked as "Allow non-unique list tags".

さらに、データマージャ243は、コンタクト情報の結合を試みるとき、言語解析法、構文解析法、または他のテキスト解析法と、外部データソースまたは外部サービスの参照・利用を用いることができる。例えば利用者が、2つのアクティビティレコードに、自宅の住所のうちストリート名を2つの異なる様式で入力し、番地、市、および郵便番号は同じものを入力することがある。結合器273は、2つのエントリを比較するときにテキスト解析(例えばsoundexアルゴリズム)を適用することができ、さらに、ストリート名の2つのバージョンを、与えられた市および郵便番号に対する、外部ソースによるストリート名と比較することができる。このような場合、結合器273は、両方の住所が標準的なストリート名に似ており(ただし場合によっては同じではない)、かつ他のすべての住所データフィールドが正しい値を有する場合、その標準的なストリート名を選択することができる。 Further, the data merger 243 can use linguistic parsing, parsing, or other text parsing techniques, and referencing/using external data sources or services when attempting to combine contact information. For example, a user may enter a street name of a home address in two different formats in two activity records, with the same street number, city, and zip code. The combiner 273 can apply text parsing (eg, the soundex algorithm) when comparing the two entries, and additionally, two versions of the street name can be used to generate streets from an external source for a given city and zip code. Can be compared with the name. In such a case, the combiner 273 will use the standard if both addresses resemble a standard street name (but in some cases they are not), and all other address data fields have the correct values. You can select a typical street name.

さらに、データマージャ243は、ログイン/セッション情報に従ってコンタクト情報をマージすることができる。利用者は、ログインまたは登録を実行せずにサイトを利用してセッションを開始し、そのセッションの一部としていくつかのアクティビティを実行し、後から登録またはログインすることがあり、したがってそのセッションは、新たに作成される利用者プロファイルまたは登録された利用者の既存のプロファイル(コンタクト情報を含む)に関連付けられる。 Further, the data merger 243 can merge contact information according to login/session information. A user may use the site to initiate a session without performing a login or registration, perform some activity as part of that session, and later register or login, so the session is , Is associated with a newly created user profile or an existing profile (including contact information) of a registered user.

利用者が(匿名として)セッションを開始すると、コンタクト識別器272が、そのセッションの間、(クッキー、セッションIDなどを使用して)利用者を追跡することができ、コンタクトハンドラ242が、匿名セッション中に利用者によって実行されたアクティビティに基づいて、その特定の匿名利用者に対して、構築されたコンタクトを作成することができる。さらに、ルータ/追跡器231が、同じコンピュータからの複数のセッションにわたり、その匿名利用者の追跡を続けることができる。この追跡は、(セッションクッキーではなく)永続的クッキーを使用することによって行うことができる。 When a user initiates a session (as anonymous), the contact identifier 272 can track the user (using cookies, session ID, etc.) during the session, and the contact handler 242 can Based on the activities performed by the user during, a contact can be created that is built for that particular anonymous user. In addition, the router/tracker 231 can keep track of its anonymous users over multiple sessions from the same computer. This tracking can be done by using persistent cookies (rather than session cookies).

利用者が登録すると、データマージャ243は、構築されたコンタクトの情報を使用して、利用者プロファイルに最初の入力を行うことができる。利用者がログインする場合、データマージャ243は、構築されたコンタクトの情報を、既存の利用者プロファイルに最初に結合することができる。構築されたコンタクトの情報は、利用者のサイトIDに従ってマージされ、なぜならデータマージャ243は、サイトID以外には、マージするために使用するプライマリID(電子メールアドレスなど)を、構築されたコンタクトの情報の中に保持していないためであることを理解されたい。さらに、このようなマージでは、集められた情報において矛盾が生じうることを理解されたい。匿名の構築されたコンタクトを既存のプロファイルデータにマージするときには、回避できない矛盾が発生することがある。例えば、ある匿名利用者が、(何らかのサードパーティアプリケーション40によって表示される)データフォームに、John Smithという名前で入力し、その後、(同じかまたは別のブラウザセッションを使用して)Jane Doeという名前でアカウントにログインするとする。この場合、(例えば)後からのログインは、同じコンピュータを使用する実際に別の人によって行われたログインであるか、または、最初の利用者が自分のプライバシーを守るためコンタクトフォームにおいて偽名を使用した可能性がある。データマージャ243が、複数の匿名の構築されたコンタクトをマージするときにも、同じことがあてはまる。 Once registered by the user, the data merger 243 can use the contact information constructed to make an initial entry in the user profile. When the user logs in, the data merger 243 can first combine the information of the constructed contacts with the existing user profile. The information of the constructed contact is merged according to the user's site ID, because the data merger 243 also has a primary ID (such as an email address) to use for merging in addition to the site ID of the constructed contact. It should be understood that this is because it is not retained in the information. Furthermore, it should be understood that such merges can cause inconsistencies in the information gathered. When merging anonymous structured contacts with existing profile data, there may be inevitable inconsistencies. For example, an anonymous user fills in a data form (displayed by some third-party application 40) with the name John Smith and then (using the same or another browser session) the name Jane Doe. Suppose you log in to your account with. In this case, the later login (for example) is a login that was actually made by another person using the same computer, or the first user used a pseudonym in the contact form to protect his privacy. It may have been done. The same applies when the data merger 243 merges multiple anonymous constructed contacts.

矛盾解消器274は、一般には矛盾を自動的に処理することができ、なぜならほとんどのフィールド(電子メールアドレスや電話番号などのプライマリIDフィールドを含む)は、複数の値を含むことのできるリストフィールドであるためである。このことは、同じ下層サイト(underlying site)が複数回利用される場合にのみ適用することができる。(例えば複数の値をリスト値にマージすることによって)解消することのできない矛盾については、サイトのオーナーまたはエンドユーザによって手動で対処する(どの値を使用するかを決定することができる)、または別の手法を使用して対処することができるように、フラグを付しておくことができる。 Conflict resolver 274 can generally handle conflicts automatically because most fields (including primary ID fields such as email addresses and phone numbers) are list fields that can contain multiple values. This is because. This can only be applied if the same underlying site is used multiple times. For inconsistencies that cannot be resolved (for example, by merging multiple values into a list value), the site owner or the end user can manually deal with it (you can decide which value to use), or It can be flagged so that it can be addressed using another approach.

したがって、構築されたコンタクト情報が、1人の人を反映するのではなく、同じコンピュータを介して同じサイトにアクセスする一連の利用者を反映することがありうる。 Thus, the constructed contact information may reflect a set of users accessing the same site through the same computer, rather than a single person.

上述したように、データマージャ243は、複数のコンタクトが作成または修正されるとき、一般にプライマリIDフィールド(電子メールアドレスや電話番号など)に従ってコンタクトをマージする。 As mentioned above, the data merger 243 generally merges contacts according to the primary ID field (such as email address or phone number) when multiple contacts are created or modified.

入力される情報は、1つまたは複数の値を有する1つまたは複数のプライマリIDフィールドを有するコンタクトレコード(入力されたコンタクトC)である(例えば、2つの電子メールアドレスおよび3つの電話番号を有するコンタクトレコード)。利用者は、(例えば)自宅/会社/携帯電話の各番号と、自宅/仕事用の電子メールアドレスを持つことがあり、利用者はこれらのいずれかをコンタクトフォームの中で入れ替えて使用することがあるため、複数のプライマリIDフィールドが要求されうる。 The information entered is a contact record (contact C entered) having one or more primary ID fields with one or more values (eg, having two email addresses and three phone numbers). Contact record). Users may have (for example) home/work/mobile phone numbers and home/work e-mail addresses, and users may replace any of these in the contact form. Therefore, multiple primary ID fields may be required.

データマージャ243は、プライマリID値を正規化し、正規化されたプライマリID値のいずれかを含むコンタクトレコードを検索するクエリ(例えば、「(電話=P1 OR 電話=P2)」あるいは「(電子メール=E1 OR 電子メール=E2)」)を作成することができる。さらに、データマージャ243は、クエリの対象を、特定のサイトのコンタクトデータベース245に制限することができる。さらに、データマージャ243は、コンタクトデータベース245に対してクエリを実行し、一致したコンタクトのリストL(入力されたコンタクトCを含む)を取得することができる。 The data merger 243 normalizes the primary ID value and searches for a contact record that includes any of the normalized primary ID values (eg, “(telephone=P1 OR telephone=P2)” or “(email= E1 OR E-mail=E2)”) can be created. Further, the data merger 243 can limit the query to the contact database 245 of the particular site. Further, the data merger 243 can query the contact database 245 to obtain a list L of matching contacts (including the input contact C).

入力されたコンタクトが(特定のサイトの)登録されたサイトメンバーである場合、データマージャ243は、リストLからコンタクトCを削除し、リストLの中の残りのコンタクトすべてをコンタクトCにマージすることができる。次いで、データマージャ243は、更新されたコンタクトCをコンタクトデータベース245に再び保存し、リストLの中の残りのコンタクトすべてをコンタクトデータベース245から削除することができる。これに代えて、データマージャ243は、上述したように仮想マージを実行することができ、すなわち、すべてのコンタクト情報を結合し(すなわち、利用可能なすべての情報が含まれるようにすべてのコンタクトレコードを更新する)、(「重複する」コンタクトレコードを削除する代わりに)一致したコンタクトレコードを、同じ人に属するものとマークする。このような処理が必要となるのは、例えば、サードパーティアプリケーション40によって、コンタクトレコードに固有な内部IDが格納または使用されており、したがってコンタクトレコードを削除するとこれらのサードパーティアプリケーション40が正しく動作しない場合である。同じ処理(すなわちコンタクトを削除するのではなくコンタクトを互いに関連するものとマークする)は、後からさらに詳しく説明する別の場合にも適用することができる。 If the contact entered is a registered site member (of a particular site), the data merger 243 deletes contact C from list L and merges all remaining contacts in list L with contact C. You can The data merger 243 can then save the updated contact C back to the contact database 245 and delete all remaining contacts in the list L from the contact database 245. Alternatively, the data merger 243 can perform a virtual merge as described above, ie combine all contact information (ie all contact records to include all available information). , And mark the matching contact records (instead of removing the “duplicate” contact records) as belonging to the same person. Such processing is necessary because, for example, the internal ID unique to the contact record is stored or used by the third party application 40, and therefore, when the contact record is deleted, the third party application 40 does not operate properly. This is the case. The same process (i.e. marking contacts as related to each other rather than deleting them) can be applied in other cases as will be explained in more detail later.

入力されたコンタクトが、登録されたサイトメンバー「ではない」場合、データマージャ243は、リストLに含まれるサイトメンバーコンタクトの数をチェックすることができる。サイトメンバーが0である場合、データマージャ243はリストLからコンタクトCを削除し、リストLの中の残りのコンタクトすべてをコンタクトCにマージすることができる。次いでデータマージャ243は、更新されたコンタクトCをコンタクトデータベース245に再び保存し、リストLの中の残りのコンタクトすべてをコンタクトデータベース245から削除することができる。 If the entered contact is “not” a registered site member, the data merger 243 can check the number of site member contacts included in the list L. If the site member is 0, data merger 243 can remove contact C from list L and merge all remaining contacts in list L into contact C. The data merger 243 can then save the updated contact C back to the contact database 245 and delete all remaining contacts in the list L from the contact database 245.

1人のサイトメンバー(コンタクトD)が存在する場合、データマージャ243は、リストLからコンタクトDを削除し、リストLの中の残りのコンタクトすべて(コンタクトCを含む)をコンタクトDにマージすることができる。次いでデータマージャ243は、更新されたコンタクトDをコンタクトデータベース245に再び保存し、リストLの中の残りのコンタクトすべてをコンタクトデータベース245から削除することができる。 If there is one site member (contact D), data merger 243 deletes contact D from list L and merges all remaining contacts in list L (including contact C) into contact D. You can The data merger 243 can then save the updated contact D back to the contact database 245 and delete all remaining contacts in the list L from the contact database 245.

2人以上のサイトメンバーコンタクト(D,D1,D2,...)が存在する場合、データマージャ243は、見つかったサイトメンバーコンタクト(D,D1,D2,...)からコンタクトDを選択し、リストLからコンタクトDを削除することができる。次いでデータマージャ243は、リストLの中のコンタクトのうちサイトメンバーではないコンタクトを含むサブリストLLを、リストLから作成することができる。次いでデータマージャ243は、リストLLの中の残りのコンタクトすべてをコンタクトDにマージすることができる。次いでデータマージャ243は、更新されたコンタクトDをコンタクトデータベース245に再び保存し、リストLLの中の残りのコンタクトすべてをコンタクトデータベース245から削除することができる。 If more than one site member contact (D, D1, D2,...) Is present, the data merger 243 selects contact D from the found site member contacts (D, D1, D2,...). , The contact D can be deleted from the list L. The data merger 243 can then create a sublist LL from the list L that includes contacts in the list L that are not site members. Data merger 243 can then merge all remaining contacts in list LL into contact D. The data merger 243 can then save the updated contact D again in the contact database 245 and delete all remaining contacts in the list LL from the contact database 245.

ログイン時のマージに関して上述したように、データに矛盾が発生することがある。しかしながら、リスト値作成器275が、(複数の値を有する)リスト値フィールドを作成することができ、さらにコンタクト間の明確な優先順位を定義することができるため、ほとんどの場合にこの問題は発生しない。 As mentioned above regarding merging at login, data inconsistency may occur. However, in most cases this problem occurs because the list value creator 275 can create list value fields (having multiple values) and can also define explicit priorities between contacts. do not do.

例えば、データマージャ243が以下のコンタクトをマージする。 For example, the data merger 243 merges the following contacts.

コンタクト1=[電話1,電子メール1];
コンタクト2=[電話1,電子メール2];
コンタクト3=[電話2,電子メール2];
Contact 1 = [Telephone 1, Email 1];
Contact 2 = [Telephone 1, Email 2];
Contact 3 = [phone 2, email 2];

データマージャ243は、次のように結合されたコンタクトを生成することができる。 The data merger 243 can generate the combined contacts as follows.

結合されたコンタクト=[電話=[電話1,電話2],電子メール=[電子メール1,電子メール2]]. Combined contacts = [phone = [phone 1, phone 2], email = [email 1, email 2]].

コンタクトデータベース245には、複数のソースからの、使用に関する異なるレベルの許可を有するコンタクト情報が含まれることがあることを理解されたい。以下の説明では電子メールを例にとるが、以下の説明および手法は、利用者に連絡するために使用される前述した任意のタイプの情報(電話番号、FAX番号、スカイプID、インスタントメッセージングID、ソーシャルネットワークIDなど)にもあてはまる。 It should be appreciated that the contact database 245 may include contact information from multiple sources with different levels of permission for use. Although the following discussion takes e-mail as an example, the discussion and techniques below describe any of the types of information (phone numbers, fax numbers, Skype IDs, instant messaging IDs, etc.) described above used to contact users. Social network IDs).

例えば、サイトに電子メールアドレスが提供された経路によって、その電子メールアドレスの使用に関する許可が異なることがある。電子メールアドレスのいくつかの可能な取得経路は、登録ID、コンタクトフォーム、ニュースレターのサインアップ、配信停止要求である。さらに、電子メールアドレスは、利用者によって電子署名される「許可される用途の同意」の点で異なることがある。 For example, the route that an email address is provided to a site may have different permissions regarding the use of that email address. Some possible ways to get an email address are registration ID, contact form, newsletter signup, unsubscribe request. Further, email addresses may differ in terms of "permitted use agreement" that is electronically signed by the user.

一般に、ウェブサイト構築システム30は、与えられた電子メールの許可される用途に関する情報を有することを理解されたい。しかしながら、ウェブサイトのオーナーが、それとは異なる情報、個別の情報、または追加の情報を有することができる。例えば、サイト内の異なるサインアップフォームの性質に起因する、または追加の使用許可情報を含む異なるソースからのコンタクトが、ウェブサイトによってシステム内にインポートされる場合である。 It should be appreciated that in general, the website construction system 30 has information regarding the permitted uses of a given email. However, the website owner may have different, personalized or additional information. For example, contacts from different sources due to the nature of the different sign-up forms within the site, or from different sources containing additional usage authorization information, are imported into the system by the website.

データ/許可ハンドラ244は、この情報の管理に関してウェブサイトのオーナーを支援する目的で、サイト内で使用されるサードパーティアプリケーション40に対して、正しい使用ポリシーを実施することができる。 The data/authorization handler 244 can enforce the correct usage policies for the third party applications 40 used within the site in order to assist the website owner in managing this information.

したがって、関連するコンタクトのコンタクトレコードに、2つの情報フィールドを含めることができる。最初のフィールドは、利用者のアクティビティからウェブサイトによって計算されて導かれる許可または提案される許可を含むウェブサイト許可フィールドである。コンタクトフォームは、機能上の電子メールを暗黙的に指定するのみであるのに対して、サブスクリプションフォームは、反復性の電子メールを暗黙的に指定する。2番目のフィールドは、ウェブサイト許可フィールドの値に基づくサイトオーナー許可フィールドである。サイトのオーナーは、ウェブサイトの推奨許可を変更することができ、自身が望むように設定することができるが、ウェブサイト許可フィールドによって定義されている許可の範囲を超える使用に関して責任を負う。 Therefore, the contact record of the associated contact can include two information fields. The first field is the website permissions field that contains the permissions calculated or derived by the website from the user's activity or the proposed permissions. The contact form only implicitly specifies functional e-mail, while the subscription form implicitly specifies repetitive e-mail. The second field is a site owner permission field based on the value of the website permission field. The site owner can change the recommended permissions for the website and set them as he wishes, but is responsible for use beyond the permissions defined by the website permissions field.

ウェブサイト許可フィールドの値は、利用者の意図に関するウェブサイトの最良の認識を表すことを理解されたい。サイトオーナー許可フィールドの値は、ウェブサイトによって割り当てられてサードパーティアプリケーション40およびシステムの他の部分によって(例えばニュースレター配信を提供するサードパーティアプリケーション40によって)使用される値である。 It should be appreciated that the value of the website permission field represents the website's best perception of the user's intent. The value of the site owner permission field is the value assigned by the website and used by the third party application 40 and other parts of the system (eg, by the third party application 40 providing newsletter delivery).

データ/許可ハンドラ244は、これらの許可フィールドを使用して、複数の方法で許可を定義することができる。例えば、データ/許可ハンドラ244は、(電子メールアドレスおよびその他のコンタクトIDに対して)以下のコードのいずれかまたはその組合せ、およびこれらのバリエーションを実装することができる。 The data/authorization handler 244 can use these authorization fields to define the authorization in multiple ways. For example, the data/authorization handler 244 may implement any of the following codes (for email addresses and other contact IDs), or combinations thereof, and variations thereof.

不明: 電子メールアドレスは不明なソースから抽出され、電子メールを送る目的に使用することはできない。 Unknown: The email address is extracted from an unknown source and cannot be used to send email.

電子メールID: 登録する目的に提供された電子メールアドレス。登録に関連する内容(登録の確認、パスワードを忘れた場合、セキュリティ違反が疑われることの通知など)を除いて、電子メールを送る目的に使用することはできない。 Email ID: The email address provided for registration purposes. It cannot be used for the purpose of sending e-mail except for the contents related to registration (confirmation of registration, notification of suspected security violation if password is forgotten, etc.)

機能上の電子メール: 特定の機能のために提供され、ワンタイム電子メールを許可する。例えば、購入確認の電子メールや、特定のコンタクトフォームに対して提供される電子メール。 Functional emails: Allowed one-time emails provided for certain features. For example, a purchase confirmation email or an email provided for a particular contact form.

反復性の電子メール: 特定のウェブサイトが複数回の定期的なサブスクリプションおよび広告を送ることを許可する。この場合には明示的なサブスクリプション/承認が要求される。 Repetitive Email: Allows certain websites to send multiple recurring subscriptions and advertisements. In this case, explicit subscription/approval is required.

共有可能な電子メール: ウェブサイトおよびそのパートナー(サードパーティアプリケーション40、他の第三者(4th parties))が複数回の定期的なサブスクリプションおよび広告を送ることを許可する。この場合には明示的なサブスクリプション/承認が要求され、許可される共有に関する詳細な情報を含めることができる。 Shareable e-mail: Allow that the web site and its partners (third-party application 40, other third parties (4 th parties)) sends a plurality of times regular subscriptions and advertising. In this case an explicit subscription/approval is required and can include detailed information about the shares allowed.

オプトアウト: 利用者が明示的に配信停止を行った。その利用者には電子メールを送ることができない(場合によってはオプトアウトの通知を除く)。 Opt-out: The user explicitly stopped the delivery. You will not be able to send email to that user (except in some cases except for opt-out notices).

データ/許可ハンドラ244は、代替方法、例えば許可ビットマスク(UNIX(登録商標)システムおよびLinux(登録商標)システムで使用されるものに似ている)やACL(アクセス制御リスト)メカニズムを使用できることを理解されたい。さらに、データ/許可ハンドラ244は、コンタクト情報の個別の部分(例えば、電子メールアドレス、インスタントメッセンジャーのアドレス、ソーシャルネットワークIDなど)を対象とする個別の許可フィールドを実装することができる。 The data/authorization handler 244 may use alternative methods, such as an authorization bitmask (similar to those used in UNIX and Linux systems) and ACL (access control list) mechanisms. I want you to understand. In addition, the data/authorization handler 244 may implement individual authorization fields that are targeted to individual portions of contact information (eg, email addresses, instant messenger addresses, social network IDs, etc.).

代表的な使用のシナリオとして、コンタクトデータベース245には、コンタクトフォームから集められた第1のセットの電子メールアドレスと、サブスクリプション要求からの第2のセットの電子メールアドレスとが含まれる。ウェブサイトは、ニュースレター配信のサードパーティアプリケーション40を呼び出すことができ、このとき、第2の利用者セットに属する利用者(サブスクリプション要求を送った利用者)「のみ」にサードパーティアプリケーション40が電子メールを送ることを認識している。 As a typical usage scenario, contact database 245 includes a first set of email addresses gathered from contact forms and a second set of email addresses from subscription requests. The website can call the newsletter-delivered third-party application 40. At this time, the third-party application 40 is “only” to the users (users who sent the subscription request) belonging to the second user set. I am aware of sending emails.

このようなシステムの利点として、利用者に誤ってスパムメールが送信されることや個人情報が不正に使用されることに関して、ウェブサイトおよびウェブサイトオーナーの両方に対して(技術的および法律的な両面において)良好な保護が得られることと、上述したようにプライベートデータプロキシ234と組み合わせてシステムが使用されるときにプライバシーポリシーを実際に実施する機能が挙げられる。さらに、配信停止要求がさらに厳密に実施されるようにすることができる。 The advantage of such a system is that both websites and website owners (both technical and legal (In) and the ability to actually enforce a privacy policy when the system is used in combination with private data proxy 234 as described above. Further, the delivery stop request can be more strictly enforced.

したがって、利用者に対して、関連するウェブサイト構築システム30と任意の関連するサードパーティアプリケーション40との間のアクティビティのストリームを生成することができる。これらのストリームは、アクティビティストリームと称することがある。各アクティビティストリームは、1人のコンタクトに関する情報源として使用することができる。さらに、異なるアクティビティストリームの発生源が同じであると判定される場合、個々のストリームのアクティビティデータ構造体をマージしてコンタクトを形成することができる。例えば、1人の利用者が、2つのデバイス(モバイルデバイスとパソコンなど)を通じて匿名としてアクティビティを行うことがある。このような利用者によって、2つの匿名ストリームが生成され、これらの匿名ストリームの下でメッセージが格納される。これらのストリームが同じ利用者に関連付けられるものと認識された時点で、これらのストリームをマージすることができる。 Thus, a stream of activity between the associated website building system 30 and any associated third party application 40 can be generated for the user. These streams are sometimes referred to as activity streams. Each activity stream can be used as a source of information about one contact. Further, if it is determined that the origins of different activity streams are the same, the activity data structures of the individual streams can be merged to form a contact. For example, one user may perform an activity anonymously through two devices (a mobile device and a personal computer, etc.). Two anonymous streams are generated by such a user and messages are stored under these anonymous streams. Once they are recognized as being associated with the same user, they can be merged.

本明細書に記載されているプロセスおよび表示は、本質的に特定のコンピュータまたは他の装置に関連するものではない。さまざまな汎用システムを、本明細書における教示内容によるプログラムと組み合わせて使用することができ、あるいは、所望の方法を実行するための専用装置を構築することが好都合でありうる。さまざまなこれらのシステムの所望の構造は、上記の説明から明らかであろう。さらに、本発明の実施形態は、特定のプログラミング言語に関連して説明していない。本明細書に記載されている本発明の教示内容を実施する目的に、さまざまなプログラミング言語を使用することができることを理解されたい。 The processes and displays described herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used in combination with the programs according to the teachings herein, or it may be convenient to construct a dedicated device to carry out the desired method. The desired structure for a variety of these systems will be apparent from the description above. Moreover, the embodiments of the present invention are not described with reference to a particular programming language. It should be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.

特に明記していない限り、ここまでの説明から明らかであるように、本明細書全体を通じて、「処理する」、「計算する」、「求める」などの用語を使用した説明部分は、コンピュータ、コンピューティングシステム、または同様の電子コンピューティング装置(物理量として表されるデータ、例えばコンピューティングシステムのレジスタやメモリ内の電子量を、コンピューティングシステムのメモリ、レジスタ、または他のそのような情報記憶装置、送信装置、表示装置内の物理量として同様に表される別のデータに操作したり変換したりする装置)の動作や処理を意味することを理解されたい。 As will be apparent from the foregoing description, unless otherwise specified, the description using terms such as “processing”, “calculating”, and “determining” is used throughout the specification. Computer system or similar electronic computing device (data represented as a physical quantity, such as an electronic quantity in a register or memory of the computing system, a memory, register, or other such information storage device of the computing system, It is to be understood that it means an operation or a process of a transmitting device, a device for operating or converting into another data which is similarly expressed as a physical quantity in a display device.

本発明の実施形態は、本明細書に記載されている動作・操作を実行する装置を含むことができる。この装置は、所望の目的のために専用に構築することができる、または、この装置は、コンピュータに格納されるコンピュータプログラムによって選択的に起動または再構成される汎用コンピュータ、を備えていることができる。このようなコンピュータプログラムは、コンピュータ可読記憶媒体、例えば、以下に限定されないが、任意のタイプのディスク(フロッピー(登録商標)ディスク、光ディスク、光磁気ディスクなど)、読み取り専用メモリ(ROM)、コンパクトディスク読み取り専用メモリ(CD−ROM)、ランダムアクセスメモリ(RAM)、電気的プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、磁気カードまたは光カード、フラッシュメモリ、または電子的命令を格納するのに適しておりコンピュータシステムバスに結合することのできる任意の他のタイプの媒体、に格納することができる。 Embodiments of the invention may include devices that perform the operations or operations described herein. This device may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. it can. Such a computer program may be a computer-readable storage medium, such as, but not limited to, a disc of any type (floppy (registered trademark) disc, optical disc, magneto-optical disc, etc.), read-only memory (ROM), compact disc. Read Only Memory (CD-ROM), Random Access Memory (RAM), Electrically Programmable Read Only Memory (EPROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Magnetic or Optical Card, Flash Memory, or Electronic It may be stored on any other type of medium suitable for storing instructions and capable of being coupled to a computer system bus.

ここまで本発明の特定の特徴を図示および説明してきたが、この技術分野における通常の技能を有する者には、数多くの修正、置き換え、変更、および等価物が明らかであろう。したがって、添付の請求項は、本発明の実質的な概念に含まれるそのような修正および変更すべてを包含するように意図されていることを理解されたい。 While we have shown and described specific features of the present invention, numerous modifications, substitutions, alterations and equivalents will be apparent to those of ordinary skill in the art. Therefore, it is to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true concept of the invention.

[関連出願]
本出願は、米国仮特許出願第61/911,485号(出願日:2013年12月4日)の優先権を主張し、この仮特許出願はその全体が参照によって本出願に組み込まれている。
[Related application]
This application claims priority to US Provisional Patent Application No. 61/911,485 (filing date: December 4, 2013), which is incorporated herein by reference in its entirety. ..

Claims (24)

ウェブサイトのためのシステムであって、
少なくとも前記ウェブサイトの利用者に対して現在のコンタクト情報を格納する、データベースと、
前記ウェブサイトおよび前記ウェブサイトに埋め込まれた少なくとも1つのサードパーティアプリケーションの間で交換される少なくとも1つのアクティビティメッセージを受信する、アクティビティコーディネータと、
前記少なくとも1つのアクティビティメッセージから、前記ウェブサイトの前記利用者の1人、新しいコンタクト、および匿名のコンタクトの少なくとも1つに対するコンタクト関連情報を収集し、それに応じたコンタクトプロファイルを構築する、コンタクトコーディネータと、
を備え、
前記コンタクトコーディネータは、前記コンタクトプロファイルからの、前記1人に対する更新された現在のコンタクト関連情報で前記データベースを更新し、前記コンタクトプロファイルからの前記新しいコンタクトおよび前記匿名のコンタクトに対する新しいコンタクト情報を作成する、システム。
A system for a website,
A database that stores current contact information for at least the users of the website;
An activity coordinator for receiving at least one activity message exchanged between the website and at least one third party application embedded in the website;
A contact coordinator that collects contact-related information from the at least one activity message for at least one of the user of the website , a new contact, and an anonymous contact, and constructs a contact profile accordingly. ,
Equipped with
The contact coordinator from the contact profile, wherein updating the database with the current contact related information updated for one person, to create a new contact information for the new contact and the anonymous contact from the contact profile ,system.
前記アクティビティコーディネータは、
前記少なくとも1つのアクティビティメッセージに関連付けられた前記コンタクトを識別し、関連付けられたコンタクトが存在しない場合、データのアクティビティストリームを生成する、ストリーム生成器と、
前記少なくとも1つのアクティビティメッセージからのデータを既存のストリームにマージし、少なくとも2つの前記アクティビティストリームからのデータを1つのストリームにマージする、ストリームマージャと、
の少なくとも1つを備える、請求項1に記載のシステム。
The activity coordinator is
A stream generator that identifies the contact associated with the at least one activity message and generates an activity stream of data if the contact does not exist.
A stream merger that merges data from the at least one activity message into an existing stream and merges data from at least two activity streams into a stream;
The system of claim 1, comprising at least one of:
前記コンタクトコーディネータは、
前記少なくとも1つのアクティビティメッセージ、前記アクティビティストリーム、前記コンタクトに対する前記現在のコンタクト情報、および外部ソースの少なくとも1つから、前記コンタクト関連情報を抽出する、データ抽出器と、
同じ識別されたコンタクトとの関連づけを有する少なくとも2つのコンタクト情報レコードをマージすることと、事前に定義されるマージ規則にしたがって既存のコンタクト情報と前記抽出されたコンタクト関連情報をマージする、データマージャと、
識別可能な新しいコンタクトと匿名コンタクトの少なくとも1つを生成し、前記ウェブサイトのセッションの間、コンタクトアクティビティを追跡する、コンタクトハンドラと、
抽出されたコンタクト関連情報のプライバシ保護および許可を処理するデータ/許可ハンドラと、
を備える、請求項2に記載のシステム。
The contact coordinator is
A data extractor for extracting the contact related information from at least one of the at least one activity message, the activity stream, the current contact information for the contact, and an external source;
A data merger for merging at least two contact information records having an association with the same identified contact, and for merging existing contact information with the extracted contact related information according to a predefined merge rule; ,
A contact handler for generating at least one of identifiable new contacts and anonymous contacts to track contact activity during the website session;
A data/authorization handler that handles privacy protection and authorization of the extracted contact-related information,
The system of claim 2, comprising:
クライアント上で実装可能である、請求項1に記載のシステム。 The system of claim 1, which can be implemented on a client. 前記少なくとも1つのサードパーティアプリケーションは、ソーシャルネットワークと、ソーシャルネットワークへのインタフェースと、ソーシャルネットワークメッセージングソフトウェアおよびインスタントメッセージングシステムへのインタフェースと、の少なくとも1つである、請求項1に記載のシステム。 The system of claim 1, wherein the at least one third party application is at least one of a social network, an interface to a social network, and interfaces to social network messaging software and instant messaging systems. 前記データ抽出器は、新たに生成された匿名のコンタクトの下に抽出されたコンタクト詳細情報を保存する、請求項に記載のシステム。 The system of claim 3 , wherein the data extractor stores the extracted contact detail information under a newly created anonymous contact. 前記データマージャは、
前記コンタクト情報レコードの少なくとも2つにおいて、同じプライマリIDフィールド値を特定することと、正規化された場合に同じである前記コンタクト情報レコードの少なくとも2つにおいて、プライマリーキーフィールド値を特定することと、クッキーを使用してサイトの利用者を識別することと、登録された利用者のためのサイトログインを使用してサイトの利用者を識別することと、ソーシャルネットワークに関連付けられたアカウントを有するサイトの利用者のためのソーシャルログインを介してサイトの利用者を識別することと、の少なくとも1つを実行する、コンタクト識別器と、
言語解析、構文解析、およびテキスト解析のうちの少なくとも1つと、外部のデータソースおよび外部サービスの参照および利用とを用いて、コンタクト情報を結合する、結合器と、
コンタクトレコード間の矛盾を、事前に定義される規則に従って解消する、矛盾解消器と、
リスト値フィールドを作成し、前記コンタクトレコード間の明確な優先順位を定義する、リスト値作成器と、
共通のプライマリIDが検出されたことにより、互いに関連しない2人のコンタクトをマージする、水平コンタクトマージャと、
登録された利用者に関連付けられたコンタクトを匿名コンタクトと結びつけるログインまたは登録時に、匿名コンタクトとマージする、垂直コンタクトマージャと、
の少なくとも1つを備える、請求項3に記載のシステム。
The data merger is
Identifying the same primary ID field value in at least two of the contact information records and identifying a primary key field value in at least two of the contact information records that are the same when normalized. Use cookies to identify users of the site, use site logins for registered users to identify users of the site, and of sites that have accounts associated with social networks. Identifying a user of the site via a social login for the user, and a contact identifier for performing at least one of:
A combiner for combining contact information using at least one of linguistic parsing, parsing, and text parsing and referencing and consuming external data sources and services.
A conflict resolving device for resolving conflicts between contact records according to a predefined rule,
A list value builder that creates a list value field and defines a clear priority among the contact records,
A horizontal contact merger that merges two unrelated contacts due to a common primary ID being detected;
A vertical contact merger that merges contacts associated with registered users with anonymous contacts, merges with anonymous contacts at login or registration,
The system of claim 3, comprising at least one of:
前記ストリームマージャは、
前記識別されたコンタクトに関連付けられた前記ストリームに前記データをマージする、アクティビティ−ストリームマージャと、少なくとも2つの個別のストリームを1つのストリームにマージする、ストリーム−ストリームマージャと、
をさらに備える、請求項2に記載のシステム。
The stream merger is
An activity-stream merger that merges the data into the stream associated with the identified contact, and a stream-stream merger that merges at least two separate streams into one stream;
The system of claim 2, further comprising:
前記ストリーム−ストリームマージャは、
少なくとも2つの個別のストリームを、識別された共通のコンタクトに従ってマージする、水平ストリームマージャと、
登録されたコンタクトを匿名のコンタクトと結びつけるログイン時または登録時に、前記匿名のコンタクトに対して作成されたストリームを、前記登録されたコンタクトに関連付けられるストリームにマージする、垂直ストリームマージャと、
の少なくとも1つを備える、請求項8に記載のシステム。
The stream-stream merger is
A horizontal stream merger for merging at least two separate streams according to an identified common contact;
A vertical stream merger that merges the stream created for the anonymous contact with the stream associated with the registered contact upon login or registration that links the registered contact with an anonymous contact.
9. The system of claim 8, comprising at least one of:
前記水平コンタクトマージャは、少なくとも2つのコンタクトレコードを個別に維持し、2つのコンタクトが同じコンタクトを表していることが示されるように2つのコンタクトをリンクする、仮想マージャを備える、請求項7に記載のシステム。 The horizontal contact merger comprises a virtual merger that maintains at least two contact records separately and links two contacts so that the two contacts are shown to represent the same contact. System. 前記垂直コンタクトマージャは、匿名のコンタクトと登録された利用者に関連付けられたコンタクトとを個別に維持し、前記匿名のコンタクトと前記登録された利用者に関連付けられたコンタクトとが同じコンタクトを表していることが示されるように2つのコンタクトをリンクする、仮想マージャを備える、請求項7に記載のシステム。 The vertical contact merger maintains an anonymous contact and a contact associated with a registered user separately, wherein the anonymous contact and the contact associated with the registered user represent the same contact. 8. The system of claim 7, comprising a virtual merger that links two contacts as shown to be present. 用者許可フィールドが、前記ウェブサイトによって決定されるおよび前記ウェブサイトのオーナーによって決定されるうちの少なくとも1つである、
請求項2に記載のシステム。
A Subscriber authorization field is at least one of which is determined by the owner of the determined is and the website by the website,
The system according to claim 2.
ウェブサイトのための方法であって、
少なくとも前記ウェブサイトの利用者に対して現在のコンタクト情報を格納することと、
前記ウェブサイトおよび前記ウェブサイトに埋め込まれた少なくとも1つのサードパーティアプリケーションの間で交換される少なくとも1つのアクティビティメッセージを受信することと、
前記少なくとも1つのアクティビティメッセージから、前記ウェブサイトの前記利用者の1人、新しいコンタクト、および匿名のコンタクトの少なくとも1つに対するコンタクト関連情報を収集し、それに応じたコンタクトプロファイルを構築することと、
を備え、
前記コンタクトプロファイルを構築することは、前記コンタクトプロファイルからの、前記1人に対する更新された現在のコンタクト関連情報でデータベースを更新し、前記コンタクトプロファイルからの前記新しいコンタクトおよび前記匿名のコンタクトに対する新しいコンタクト情報を作成することを備える、方法。
A method for a website,
Storing current contact information for at least the users of the website;
Receiving at least one activity message exchanged between the website and at least one third party application embedded in the website;
Collecting contact-related information from the at least one activity message for at least one of the user of the website , a new contact, and an anonymous contact, and constructing a contact profile accordingly ;
Equipped with
Constructing the contact profiles, the from contact profiles, the updates the database with current contact related information updated for one person, the new contact information for the new contact and the anonymous contact from the contact profile A method comprising: creating a .
前記少なくとも1つのアクティビティメッセージを受信することは、
前記少なくとも1つのアクティビティメッセージに関連付けられた前記コンタクトを識別し、関連付けられたコンタクトが存在しない場合、データのアクティビティストリームを生成することと、
前記少なくとも1つのアクティビティメッセージからのデータを既存のストリームにマージし、少なくとも2つの前記アクティビティストリームからのデータを1つのストリームにマージすることと、
の少なくとも1つを備える、請求項13に記載の方法。
Receiving the at least one activity message comprises:
Identifying the contact associated with the at least one activity message, and generating an activity stream of data if the contact does not exist.
Merging data from the at least one activity message into an existing stream and merging data from the at least two activity streams into a stream;
14. The method of claim 13, comprising at least one of:
前記コンタクト関連情報を収集し、コンタクトプロファイルを構築することは、
前記少なくとも1つのアクティビティメッセージ、前記アクティビティストリーム、前記コンタクトに対する前記現在のコンタクト情報、および外部ソースの少なくとも1つから、前記コンタクト関連情報を抽出することと、
同じ識別されたコンタクトとの関連づけを有する少なくとも2つのコンタクト情報レコードをマージすることと、事前に定義されるマージ規則にしたがって既存のコンタクト情報と前記抽出されたコンタクト関連情報をマージすることと、
識別可能な新しいコンタクトと匿名コンタクトの少なくとも1つを生成し、前記ウェブサイトのセッションの間、コンタクトアクティビティを追跡することと、
抽出されたコンタクト関連情報のプライバシ保護および許可を処理することと、
を備える、請求項14に記載の方法。
Gathering the contact-related information and building a contact profile includes:
Extracting the contact-related information from at least one of the at least one activity message, the activity stream, the current contact information for the contact, and an external source;
Merging at least two contact information records having an association with the same identified contact, merging existing contact information with the extracted contact related information according to a predefined merge rule,
Generating at least one of identifiable new contacts and anonymous contacts to track contact activity during the session of the website;
Processing the privacy protection and authorization of the extracted contact-related information;
15. The method of claim 14, comprising:
クライアント上で実装可能である、請求項13に記載の方法。 14. The method of claim 13, which can be implemented on a client. 前記少なくとも1つのサードパーティアプリケーションは、ソーシャルネットワークと、ソーシャルネットワークへのインタフェースと、ソーシャルネットワークメッセージングソフトウェアおよびインスタントメッセージングシステムへのインタフェースと、の少なくとも1つである、請求項13に記載の方法。 14. The method of claim 13, wherein the at least one third party application is at least one of a social network, an interface to a social network, and interfaces to social network messaging software and instant messaging systems. 前記コンタクト関連情報を抽出することは、新たに生成された匿名のコンタクトの下に抽出されたコンタクト詳細情報を保存することを備える、請求項14に記載の方法。 15. The method of claim 14, wherein extracting the contact related information comprises storing extracted contact detail information under a newly created anonymous contact. 前記少なくとも2つのコンタクト情報レコードをマージすることおよび前記抽出されたコンタクト関連情報をマージすることは、
前記コンタクト情報レコードの少なくとも2つにおいて、同じプライマリIDフィールド値を特定することと、正規化された場合に同じである前記コンタクト情報レコードの少なくとも2つにおいて、プライマリーキーフィールド値を特定することと、クッキーを使用してサイトの利用者を識別することと、登録された利用者のためのサイトログインを使用してサイトの利用者を識別することと、ソーシャルネットワークに関連付けられたアカウントを有するサイトの利用者のためのソーシャルログインを介してサイトの利用者を識別することと、の少なくとも1つを実行することと、
言語解析、構文解析、およびテキスト解析のうちの少なくとも1つと、外部のデータソースおよび外部サービスの参照および利用とを用いて、コンタクト情報を結合することと、
コンタクトレコード間の矛盾を、事前に定義される規則に従って解消することと、
リスト値フィールドを作成し、前記コンタクトレコード間の明確な優先順位を定義することと、
共通のプライマリIDが検出されたことにより、互いに関連しない2つのコンタクトをマージすることと、
登録された利用者に関連付けられたコンタクトを匿名コンタクトと結びつけるログインまたは登録時に、前記登録された利用者に関連付けられたコンタクトに匿名のコンタクトをマージすることと、
の少なくとも1つを備える、請求項15に記載の方法。
Merging the at least two contact information records and merging the extracted contact related information comprises:
Identifying the same primary ID field value in at least two of the contact information records and identifying a primary key field value in at least two of the contact information records that are the same when normalized. Use cookies to identify users of the site, use site logins for registered users to identify users of the site, and of sites that have accounts associated with social networks. Performing at least one of identifying a user of the site via a social login for the user;
Combining contact information using at least one of linguistic parsing, parsing, and text parsing and referencing and consuming external data sources and services.
Resolving conflicts between contact records according to predefined rules,
Creating a list-valued field and defining a clear priority between the contact records;
Merging two contacts that are not related to each other due to the common primary ID being detected,
Merging a contact associated with a registered user with an anonymous contact, upon login or registration, merging the anonymous contact with the contact associated with the registered user;
16. The method of claim 15, comprising at least one of:
前記少なくとも1つのアクティビティメッセージからのデータを既存のストリームにマージし、少なくとも2つの前記アクティビティストリームからのデータを1つのストリームにマージすることは、
前記識別されたコンタクトに関連付けられた前記ストリームに前記データをマージすることと、
少なくとも2つの個別のストリームを1つのストリームにマージすることと、
をさらに備える、請求項14に記載の方法。
Merging data from the at least one activity message into an existing stream and merging data from the at least two activity streams into a stream is
Merging the data into the stream associated with the identified contact;
Merging at least two separate streams into one stream;
15. The method of claim 14, further comprising:
前記少なくとも2つの個別のストリームを1つのストリームにマージすることは、
少なくとも2つの個別のストリームを、識別された共通のコンタクトに従ってマージすることと、
登録されたコンタクトを匿名のコンタクトと結びつけるログイン時または登録時に、前記匿名のコンタクトに対して作成されたストリームを、前記登録されたコンタクトに関連付けられるストリームにマージすることと、
の少なくとも1つ、を備える、請求項20に記載の方法。
Merging the at least two separate streams into one stream is
Merging at least two separate streams according to the identified common contacts;
Merging a stream created for the anonymous contact with a stream associated with the registered contact at login or at registration, which associates the registered contact with an anonymous contact, and
21. The method of claim 20, comprising at least one of:
前記互いに関連しない2つのコンタクトをマージすることは、
少なくとも2つのコンタクトレコードを個別に維持することと、
2つのコンタクトが同じコンタクトを表していることが示されるように2つのコンタクトをリンクすることと、
を備える、請求項19に記載の方法。
Merging two unrelated contacts is
Maintaining at least two contact records separately, and
Linking the two contacts so that the two contacts represent the same contact, and
20. The method of claim 19, comprising:
前記匿名のコンタクトをマージすることは、
匿名のコンタクトと登録された利用者に関連付けられたコンタクトとを個別に維持することと、
前記匿名のコンタクトと前記登録された利用者に関連付けられたコンタクトとが同じコンタクトを表していることが示されるように2つのコンタクトをリンクすることと、
を備える、請求項19に記載の方法。
Merging the anonymous contacts
Maintaining separate anonymous contacts and contacts associated with registered users;
Linking the two contacts such that the anonymous contact and the contact associated with the registered user represent the same contact;
20. The method of claim 19, comprising:
用者許可フィールドが、前記ウェブサイトによって決定されるおよび前記ウェブサイトのオーナーによって決定されるうちの少なくとも1つである、請求項14に記載の方法。 A Subscriber authorization field is at least one of the determined by the owner of and the website is determined by the web site The method of claim 14.
JP2019066780A 2013-12-04 2019-03-29 Systems and methods for websites Active JP6746746B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361911485P 2013-12-04 2013-12-04
US61/911,485 2013-12-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016536678A Division JP6506762B2 (en) 2013-12-04 2014-12-04 System and method for collecting third party application activity data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020133242A Division JP7032492B2 (en) 2013-12-04 2020-08-05 Systems and methods for websites

Publications (2)

Publication Number Publication Date
JP2019133700A JP2019133700A (en) 2019-08-08
JP6746746B2 true JP6746746B2 (en) 2020-08-26

Family

ID=53274235

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2016536678A Active JP6506762B2 (en) 2013-12-04 2014-12-04 System and method for collecting third party application activity data
JP2019066780A Active JP6746746B2 (en) 2013-12-04 2019-03-29 Systems and methods for websites
JP2020133242A Active JP7032492B2 (en) 2013-12-04 2020-08-05 Systems and methods for websites
JP2022027082A Active JP7387779B2 (en) 2013-12-04 2022-02-24 Systems and methods for websites
JP2023194539A Pending JP2024023313A (en) 2013-12-04 2023-11-15 System and method for website

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016536678A Active JP6506762B2 (en) 2013-12-04 2014-12-04 System and method for collecting third party application activity data

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2020133242A Active JP7032492B2 (en) 2013-12-04 2020-08-05 Systems and methods for websites
JP2022027082A Active JP7387779B2 (en) 2013-12-04 2022-02-24 Systems and methods for websites
JP2023194539A Pending JP2024023313A (en) 2013-12-04 2023-11-15 System and method for website

Country Status (11)

Country Link
EP (1) EP3077920A4 (en)
JP (5) JP6506762B2 (en)
KR (3) KR102361002B1 (en)
CN (2) CN111859128A (en)
AU (4) AU2014358700B2 (en)
BR (1) BR112016012695A8 (en)
CA (1) CA2932286C (en)
EA (1) EA036433B1 (en)
IL (3) IL292474A (en)
MX (2) MX359477B (en)
WO (1) WO2015083115A2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016193906A1 (en) 2015-05-31 2016-12-08 Wix.Com Ltd System and method for capability packages offering based on analysis of edited websites and their use
US10320821B2 (en) 2016-05-10 2019-06-11 Allstate Insurance Company Digital safety and account discovery
US9906541B2 (en) 2016-05-10 2018-02-27 Allstate Insurance Company Digital safety and account discovery
US10419455B2 (en) 2016-05-10 2019-09-17 Allstate Insurance Company Cyber-security presence monitoring and assessment
CN114070812B (en) * 2016-10-21 2023-10-03 好事达保险公司 System and method for digital security and account discovery
CN109275357B (en) * 2017-05-17 2022-05-24 谷歌有限责任公司 Method, system and computer storage medium for preventing data leakage
JP7040124B2 (en) * 2018-02-28 2022-03-23 トヨタ自動車株式会社 Vehicle movement notification device and notification method
WO2020100081A1 (en) 2018-11-14 2020-05-22 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
CN110007979A (en) * 2018-12-13 2019-07-12 平安普惠企业管理有限公司 Browser information application method, device, computer equipment and storage medium
US20210004481A1 (en) * 2019-07-05 2021-01-07 Google Llc Systems and methods for privacy preserving determination of intersections of sets of user identifiers
US11275842B2 (en) 2019-09-20 2022-03-15 The Toronto-Dominion Bank Systems and methods for evaluating security of third-party applications
US11436336B2 (en) 2019-09-23 2022-09-06 The Toronto-Dominion Bank Systems and methods for evaluating data access signature of third-party applications
CN113934482A (en) * 2020-07-14 2022-01-14 北京奇虎科技有限公司 Page display method, equipment, storage medium and device
KR102557919B1 (en) * 2021-07-09 2023-07-21 주식회사 티지360테크놀로지스 Method and System for Generating Unified ID by Integrating Multiple Digital IDs

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1019858A1 (en) * 1998-08-07 2000-07-19 E2 Software Corporation Network contact tracking system
WO2002027529A2 (en) * 2000-09-28 2002-04-04 Oracle Corporation Enterprise web mining system and method
US20020198943A1 (en) * 2001-06-20 2002-12-26 David Zhuang Web-enabled two-way remote messaging facility
EP1504385A4 (en) * 2001-12-05 2008-12-03 Xchange Advantage Inc E Method and system for managing distributed trading data
US7305469B2 (en) * 2001-12-18 2007-12-04 Ebay Inc. Prioritization of third party access to an online commerce site
US20030220812A1 (en) * 2002-04-09 2003-11-27 Jones Michael B. Method of coordinating business transactions between repair service participants
US7281202B2 (en) * 2003-06-19 2007-10-09 Microsoft Corporation Framework for creating modular web applications
US20120150888A1 (en) * 2003-09-10 2012-06-14 Geoffrey Hyatt Method and system for relationship management and intelligent agent
JP3892877B2 (en) * 2005-03-28 2007-03-14 株式会社コナミデジタルエンタテインメント Message character string output system, control method and program for message character string output system
JP5073974B2 (en) 2006-06-23 2012-11-14 公栄 中嶋 Web site construction system
US8583772B2 (en) * 2008-08-14 2013-11-12 International Business Machines Corporation Dynamically configurable session agent
US10007895B2 (en) * 2007-01-30 2018-06-26 Jonathan Brian Vanasco System and method for indexing, correlating, managing, referencing and syndicating identities and relationships across systems
US7958516B2 (en) * 2007-04-18 2011-06-07 Google Inc Controlling communication within a container document
US10068238B2 (en) * 2007-05-23 2018-09-04 Excalibur Ip, Llc Incentive-based system and method for third-party web application development and publication
US8270577B2 (en) * 2007-12-13 2012-09-18 Verizon Patent And Licensing Inc. Multiple visual voicemail mailboxes
US20090209286A1 (en) * 2008-02-19 2009-08-20 Motorola, Inc. Aggregated view of local and remote social information
CN101556669A (en) * 2008-04-11 2009-10-14 上海赢思软件技术有限公司 Method and device for conducting personalized marketing with user by using human-computer interaction technology
US8793339B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US20100057560A1 (en) * 2008-09-04 2010-03-04 At&T Labs, Inc. Methods and Apparatus for Individualized Content Delivery
US8869256B2 (en) * 2008-10-21 2014-10-21 Yahoo! Inc. Network aggregator
US8683554B2 (en) * 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US8549072B2 (en) * 2009-07-23 2013-10-01 Facebook, Inc. Markup language for incorporating social networking system information by an external website
US8589326B2 (en) * 2009-08-21 2013-11-19 Avaya Inc. Utilizing presence in conjunction with other information to determine an appropriate communications modality
US20120084151A1 (en) * 2009-12-30 2012-04-05 Kozak Frank J Facilitation of user management of unsolicited server operations and extensions thereto
AU2011213606B2 (en) * 2010-02-08 2014-04-17 Facebook, Inc. Communicating information in a social network system about activities from another domain
US8244848B1 (en) * 2010-04-19 2012-08-14 Facebook, Inc. Integrated social network environment
CA2704866A1 (en) * 2010-05-19 2011-11-19 Vendasta Technologies Inc. Unifying social graphs across multiple social networks
WO2011156832A1 (en) * 2010-06-13 2011-12-22 Bnc Ventures B.V. Method and system for managing customer relationships
US9553878B2 (en) * 2010-08-16 2017-01-24 Facebook, Inc. People directory with social privacy and contact association features
JP2012120041A (en) * 2010-12-02 2012-06-21 Ntt Docomo Inc Telephone-directory-data integrating apparatus and method, and computer program therefor
CN102307210B (en) * 2011-01-13 2014-12-10 国云科技股份有限公司 Data downloading system and data management and downloading method thereof
US20120197967A1 (en) * 2011-01-27 2012-08-02 Sivapathalingham Sivavakeesar Socializing System, Framework and Methods thereof
US9547626B2 (en) * 2011-01-29 2017-01-17 Sdl Plc Systems, methods, and media for managing ambient adaptability of web applications and web services
JP5758693B2 (en) * 2011-04-28 2015-08-05 株式会社日立国際電気 Customer service management system
JP2013008345A (en) * 2011-06-24 2013-01-10 Argyle Inc Coupon issuance system associated with social media
US9384101B2 (en) * 2011-07-26 2016-07-05 Apple Inc. Web application architecture
US10217117B2 (en) * 2011-09-15 2019-02-26 Stephan HEATH System and method for social networking interactions using online consumer browsing behavior, buying patterns, advertisements and affiliate advertising, for promotions, online coupons, mobile services, products, goods and services, entertainment and auctions, with geospatial mapping technology
CN103095663B (en) * 2011-11-04 2016-08-03 阿里巴巴集团控股有限公司 Information interacting method between a kind of A non logged-on user and device
CN103167444B (en) * 2011-12-19 2015-09-30 中国电信股份有限公司 Website obtains the method for subscriber phone number, system, client and server
US20130217416A1 (en) * 2011-12-23 2013-08-22 Microsoft Corporation Client check-in
CN102624728B (en) * 2012-03-09 2015-04-15 浙江大学城市学院 Method and system for carrying out whole-network login authentication by utilizing registered website user information
JP2013196063A (en) * 2012-03-16 2013-09-30 Cellant Corp Cookie sharing program, web server with cookie sharing function, cookie sharing system and cookie sharing method
US8898766B2 (en) * 2012-04-10 2014-11-25 Spotify Ab Systems and methods for controlling a local application through a web page
US9141957B2 (en) * 2012-04-11 2015-09-22 Netgear, Inc. System and method for filtering advertising in a networking device
JP5175402B1 (en) * 2012-06-21 2013-04-03 株式会社 ディー・エヌ・エー COMMUNICATION METHOD, COMMUNICATION DEVICE, AND PROGRAM
JP5510690B2 (en) * 2013-06-03 2014-06-04 豊 塚本 Personal information protection device

Also Published As

Publication number Publication date
CN105940391B (en) 2020-08-04
EP3077920A4 (en) 2017-05-10
EP3077920A2 (en) 2016-10-12
EA201691088A1 (en) 2016-11-30
AU2014358700B2 (en) 2019-08-15
KR102251844B1 (en) 2021-05-13
IL245992A0 (en) 2016-07-31
MX359477B (en) 2018-09-27
JP2024023313A (en) 2024-02-21
EA036433B1 (en) 2020-11-10
JP7387779B2 (en) 2023-11-28
MX2018011867A (en) 2020-11-06
JP7032492B2 (en) 2022-03-08
JP2022068338A (en) 2022-05-09
JP6506762B2 (en) 2019-04-24
CN105940391A (en) 2016-09-14
CN111859128A (en) 2020-10-30
IL273052B (en) 2022-06-01
WO2015083115A2 (en) 2015-06-11
JP2019133700A (en) 2019-08-08
KR102433089B1 (en) 2022-08-16
KR20220018101A (en) 2022-02-14
AU2021240187A1 (en) 2021-10-28
AU2023285951A1 (en) 2024-01-25
KR20160092021A (en) 2016-08-03
KR20210056451A (en) 2021-05-18
IL245992B (en) 2020-03-31
AU2014358700A1 (en) 2016-07-21
WO2015083115A3 (en) 2015-12-17
CA2932286C (en) 2023-07-18
JP2020191123A (en) 2020-11-26
MX2016007301A (en) 2017-01-06
BR112016012695A8 (en) 2020-05-12
BR112016012695A2 (en) 2017-08-08
AU2019264558A1 (en) 2019-12-05
IL292474A (en) 2022-06-01
IL273052A (en) 2020-04-30
KR102361002B1 (en) 2022-02-08
CA2932286A1 (en) 2015-06-11
JP2017502392A (en) 2017-01-19

Similar Documents

Publication Publication Date Title
JP6746746B2 (en) Systems and methods for websites
US20230273971A1 (en) System and method for third party application activity data collection
JP6900421B2 (en) Equipment for website building system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190329

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190702

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200805

R150 Certificate of patent or registration of utility model

Ref document number: 6746746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250