(57)【要約】      （修正有）【課題】動的コンテンツをマイクロブロギングポストに投ずる技術を提供する。【解決手段】動的コンテンツは、ポスト又はフィードがフェッチ又はリフレッシュされるたびに更新される。ユーザは、ポストを作成するときに動的コンテンツのためのプレースホルダを加えることがある。プレースホルダは、データプロバイダ及びデータパラメータを示す。ポストが公開される場合に、データプロバイダ及びデータパラメータは、ポストの残りのコンテンツとともに記憶される。ポストが要求される場合に、ポスト内のあらゆるプレースホルダがパースされ、コンテンツは、データパラメータをデータプロバイダへ渡すことによって、あらゆるプレースホルダについて入手される。プレースホルダは、データプロバイダによって返されたデータにより置換され、ポストは、入手されたデータをプレースホルダの代わりに含みながら、要求元に供給される。【選択図】図６
2019075092.tif 000002
【特許請求の範囲】
【請求項１】
マイクロブロギングプラットフォームによって実装されるコンピュータプログラムであって、
マイクロブロギングポストで公開されるコンテンツを受け、
データプロバイダ識別子（ＤＰＩＤ）及びデータプロバイダパラメータ（ＤＰＰ）を示す動的コンテンツプレースホルダ（ＤＣＰ）を前記コンテンツ内で特定し、
前記マイクロブロギングポストの各要求に応答して、
前記ＤＣＰによって示される前記ＤＰＰを用いて、データについて、前記ＤＰＩＤに関連するデータプロバイダにクエリを行い、
前記コンテンツ内の前記ＤＣＰの位置において前記データプロバイダから入手されたデータを含めるよう前記マイクロブロギングポストを生成する
よう動作する命令の組を有するコンピュータプログラム。
【請求項２】
前記命令の組は、
前記コンテンツを含むメッセージを受け、該メッセージの本文部分において前記コンテンツが位置し、
前記メッセージの前記本文部分において前記コンテンツをパースし、
前記パースされたコンテンツからＤＣＰフィールドを特定し、
前記ＤＣＰフィールド内のＤＰＩＤフィールドのＤＰＩＤ値を前記ＤＰＩＤとして決定し、
前記ＤＣＰフィールド内のＤＰＰフィールドのＤＰＰ値を前記ＤＰＰとして決定する
よう動作する、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記命令の組は、前記ＤＣＰ値、前記ＤＰＩＤ値、及び前記ＤＰＰ値の記憶をＤＣＰデータベースオブジェクトの対応する記録において制御するよう動作する、
請求項２に記載のコンピュータプログラム。
【請求項４】
前記データプロバイダにクエリを行うよう、前記命令の組は、
前記ＤＣＰデータベースオブジェクトから前記ＤＰＰ値を取得し、
前記ＤＰＩＤ値を用いて、アプリケーションプログラミングインターフェイス（ＡＰＩ）へのＤＰＩＤのマッピングに基づき前記データプロバイダのＡＰＩを特定し、
ＡＰＩパラメータとして前記ＤＰＰ値を用いて前記データプロバイダの前記ＡＰＩを呼び出す
よう動作する、
請求項３に記載のコンピュータプログラム。
【請求項５】
前記データプロバイダの前記ＡＰＩは、ＲＥＳＴ  ＡＰＩ、ＳＯＡＰ  ＡＰＩ、又は前記データプロバイダに関連したプロプライエタリＡＰＩである、
請求項４に記載のコンピュータプログラム。
【請求項６】
前記データプロバイダは、前記マイクロブロギングプラットフォームとは別であるプラットフォーム又はサービスプロバイダである、
請求項４に記載のコンピュータプログラム。
【請求項７】
前記データプロバイダは、データベースオブジェクトであり、
前記データプロバイダにクエリを行うよう、前記命令の組は、
前記データベースオブジェクトのフィールド、レコード、又はデータベースエレメントである前記ＤＰＰを示すクエリエレメントを含むデータベースクエリを生成し、
前記データベースオブジェクトの記憶を制御するデータベースシステムへ前記データベースクエリを送る
よう動作する、
請求項１に記載のコンピュータプログラム。
【請求項８】
ユーザシステムによって実行される方法であって、
前記ユーザシステムによって、マイクロブロギングプラットフォームと相互に作用するためのマイクロブロギングプラットフォームグラフィカルユーザインターフェイス（ＭＰＧＵＩ）のインスタンスを生成しレンダリングし、該ＭＰＧＵＩは、フィードアイテムを表示するネットワークフィードを有し、前記フィードアイテムは、該フィードアイテムにおいて動的コンテンツプレースホルダ（ＤＣＰ）の代わりにデータプロバイダから入手されたデータを有し、該データは、前記ＤＣＰによって示されるデータプロバイダ識別子（ＤＰＩＤ）及び前記ＤＣＰによって示されるデータプロバイダパラメータ（ＤＰＰ）に基づき前記データプロバイダから入手され、
前記ユーザシステムによって、前記ネットワークフィードをリフレッシュ又はフェッチするためのグラフィカルコントロールエレメント（ＧＣＥ）が選択されているかどうかを特定し、
前記ＧＣＥの各選択に応答して前記ユーザシステムによって、前記ネットワークフィードと、前記フィードアイテムにおいて前記ＤＣＰの代わりに前記データプロバイダからの新たに入手されたデータを含む、前記ネットワークフィードによって表示される前記フィードアイテムとを有する前記ＭＰＧＵＩの新しいインスタンスを生成しレンダリングし、前記新たに入手されたデータは、前記ＧＣＥの選択に基づき、前記ＤＣＰによって示された前記ＤＰＰを用いて入手される
ことを有する方法。
【請求項９】
前記ＧＣＥは第１ＧＣＥであり、前記ＭＰＧＵＩは、他のＤＰＰ及び他のＤＰＩＤを含む他のＤＣＰを含むフィードアイテムデータを入力することを前記ユーザシステムのユーザに可能にするオーサリングツールを有し、該オーサリングツールは、前記マイクロブロギングプラットフォームへの前記入力されたフィードアイテムデータの投稿を制御する第２ＧＣＥを有する、
請求項８に記載の方法。
【請求項１０】
前記第２ＧＣＥの選択に応答して前記ユーザシステムによって、前記入力されたフィードアイテムデータを前記マイクロブロギングプラットフォームへ送信し、
前記ユーザシステムによって、前記入力されたフィードアイテムデータとともに他のフィードアイテムを含む前記ネットワークフィードを含む前記ＭＰＧＵＩの他のインスタンスを生成するためのプログラムコードを受信し、
前記ＧＣＥの各選択に応答して前記ユーザシステムによって、前記他のフィードアイテムにおいて前記他のＤＣＰの位置で前記他のＤＣＩＤに関連した他のデータプロバイダから入手された他のデータとともに前記他のフィードアイテムを含む前記ＭＰＧＵＩの他のインスタンスを生成しレンダリングし、前記他のデータは、前記他のＤＣＰによって示される前記他のＤＰＰを用いて新たに入手される
ことを更に有する請求項９に記載の方法。
【請求項１１】
前記ユーザシステムによって、オートコンプリートアプリケーションを用いて、前記オーサリングツールのオーサリングパネルに入力されたＤＣＰインジケータを検出し、
前記ユーザシステムによって、前記ＤＣＰインジケータの検出に応答してＤＰＩＤの組を示すＤＣＰリストＧＵＩのインスタンスを生成しレンダリングする
ことを更に有する請求項９に記載の方法。
【請求項１２】
前記ユーザシステムによって、前記オートコンプリートアプリケーションを用いて、前記ＤＣＰインジケータが前記オーサリングパネルに入力された後に該オーサリングパネルに入力された文字を検出し、
各検出された文字に応答して、
前記ユーザシステムによって、前記オートコンプリートアプリケーションを用いて、前記検出された文字の夫々に基づきＤＰＩＤの新しい組を決定し、
前記ユーザシステムによって、前記ＤＰＩＤの新しい組を示す前記ＤＣＰリストＧＵＩの新しいインスタンスを生成しレンダリングする
ことを更に有する請求項１１に記載の方法。
【請求項１３】
前記ユーザシステムによって、前記示されたＤＰＩＤの組からのＤＰＩＤの選択を検出し、
前記ユーザシステムによって、前記選択されたＤＰＩＤに関連したＤＰＰの組を示す前記ＤＣＰリストＧＵＩの他のインスタンスを生成しレンダリングする
ことを更に有する請求項１２に記載の方法。
【請求項１４】
前記ユーザシステムによって、前記オートコンプリートアプリケーションを用いて、前記選択されたＤＰＩＤの選択後に前記オーサリングパネルに入力された文字を検出し、
各検出された文字に応答して、
前記ユーザシステムによって、前記オートコンプリートアプリケーションを用いて、前記検出された文字の夫々に基づきＤＰＰの新しい組を決定し、
前記ユーザシステムによって、前記ＤＰＰの新しい組を示す前記ＤＣＰリストＧＵＩの新しい他のインスタンスを生成しレンダリングする
ことを更に有する請求項１３に記載の方法。
【請求項１５】
マイクロブロギングポストで公開されるコンテンツをユーザシステムから受け取るネットワークインターフェイスと、
プロセッサシステムと
を有し、
前記プロセッサシステムは、
データプロバイダ識別子（ＤＰＩＤ）及びデータプロバイダパラメータ（ＤＰＰ）を示す動的コンテンツプレースホルダ（ＤＣＰ）を前記コンテンツ内で特定し、
前記マイクロブロギングポストの各要求に応答して、
前記ＤＣＰによって示される前記ＤＰＰを用いて、データについて、前記ＤＰＩＤに関連するデータプロバイダにクエリを行い、
前記コンテンツ内の前記ＤＣＰの位置において前記データプロバイダから入手されたデータを含めるよう前記マイクロブロギングポストを生成する、
マイクロブロギングプラットフォーム。
【請求項１６】
前記ＤＣＰを特定するよう、前記プロセッサシステムは、
受信されたメッセージの本文部分から前記コンテンツを特定し、
前記メッセージの前記本文部分において前記コンテンツをパースし、
前記パースされたコンテンツからＤＣＰフィールドを特定し、
前記ＤＣＰフィールド内のＤＰＩＤフィールドのＤＰＩＤ値を前記ＤＰＩＤとして決定し、
前記ＤＣＰフィールド内のＤＰＰフィールドのＤＰＰ値を前記ＤＰＰとして決定する、
請求項１５に記載のマイクロブロギングプラットフォーム。
【請求項１７】
前記プロセッサシステムは、前記ＤＣＰ値、前記ＤＰＩＤ値、及び前記ＤＰＰ値の記憶をＤＣＰデータベースオブジェクトの対応する記録において制御する、
請求項１６に記載のマイクロブロギングプラットフォーム。
【請求項１８】
前記データプロバイダにクエリを行うよう、前記プロセッサシステムは、
前記ＤＣＰデータベースオブジェクトから前記ＤＰＰ値を取得し、
前記ＤＰＩＤ値を用いて、アプリケーションプログラミングインターフェイス（ＡＰＩ）へのＤＰＩＤのマッピングに基づき前記データプロバイダのＡＰＩを特定し、前記データプロバイダの前記ＡＰＩは、ＲＥＳＴ  ＡＰＩ、ＳＯＡＰ  ＡＰＩ、又は前記データプロバイダに関連したプロプライエタリＡＰＩであり、
ＡＰＩパラメータとして前記ＤＰＰ値を用いて前記データプロバイダの前記ＡＰＩを呼び出す、
請求項１７に記載のマイクロブロギングプラットフォーム。
【請求項１９】
前記データプロバイダは、当該マイクロブロギングプラットフォームとは別であるプラットフォーム又はサービスプロバイダである、
請求項１８に記載のマイクロブロギングプラットフォーム。
【請求項２０】
前記データプロバイダは、データベースオブジェクトであり、
前記データプロバイダにクエリを行うよう、前記プロセッサシステムは、
前記データベースオブジェクトのフィールド、レコード、又はデータベースエレメントである前記ＤＰＰを示すクエリエレメントを含むデータベースクエリを生成し、
前記データベースオブジェクトの記憶を制御するデータベースシステムへ前記データベースクエリを送る、
請求項１５に記載のマイクロブロギングプラットフォーム。
【発明の詳細な説明】
【技術分野】
【０００１】
１つ以上の実施例は、概してデータ処理、特に、マイクロブロギングプラットフォームでポストするための動的コンテンツを生成することに関係がある。
【背景技術】
【０００２】
Ｃｈａｔｔｅｒ（登録商標）、Ｆａｃｅｂｏｏｋ（登録商標）、Ｔｗｉｔｔｅｒ（登録商標）のようなマイクロブロギングプラットフォームは、短文、画像、映像、ウェブページへのリンク、及び同様のもののような、小エレメントのコンテンツを公開又は交換することをユーザに可能にする。それらは“ポスト”と呼ばれ、ポストの集合は“フィード”と呼ばれることがある。ほとんどのマイクロブロギングプラットフォームの１つの欠点は、最も関連がある又は最も最新の情報によりポストが更新され得ないことである。このことの１つの理由は、ほとんどのマイクロブロギングプラットフォームが、公開されたポストが編集されることを認めないからである。一部のマイクロブロギングプラットフォームは、公開後にポストを手動で編集することをユーザに認めている。しかし、そのようなプラットフォームは、通常、ユーザに、更新すべき正確なポストを検索し、実際にポストを編集する相当量の時間を費やすことを求める。ほとんどのマイクロブロギングプラットフォームの他の欠点は、ポストがウェブリソースへのハイパーリンクを含む場合に、ユーザがマイクロブロギングプラットフォームコンテキストから離れ、情報を見るためにウェブリソースをロードし、次いでマイクロブロギングプラットフォームコンテキストに戻る必要があることである。この欠点は、大勢のユーザがこのようにしてコンテキストを切り替える場合に相当量のネットワークリソースが消費されることを生じさせる可能性がある。
【図面の簡単な説明】
【０００３】
包含されている図面は、例示的な目的のためであり、開示されている発明のシステム、装置、方法及びコンピュータ可読記憶媒体のためのとり得る構造及び動作の例を与える役目を果たす。これらの図面は、開示されている実施例の精神及び適用範囲から逸脱することなしに当業者によって行われ得る形態及び詳細の如何なる変更も決して制限しない。
【図１Ａ】いくつかの実施例に従って、オンデマンドデータベースサービスが使用され得る環境の例のブロック図を示す。
【図１Ｂ】いくつかの実施例に従って、図１Ａの要素の実装の例及びそれらの要素の間の相互接続の例のブロック図を示す。
【図２Ａ】いくつかの実施例に従って、オンデマンドデータベースサービス環境の構造上のコンポーネントの例のシステム図を示す。
【図２Ｂ】いくつかの実施例に従って、オンデマンドデータベースサービス環境の構造上のコンポーネントの例を更に説明するシステム図を示す。
【図３】いくつかの実施例に従って、グループプロフィールページ上のグループフィード表示の例を示す。
【図４Ａ】いくつかの実施例に従って、レコードプロフィールページのレコードフィード表示の例を示す。
【図４Ｂ】いくつかの実施例に従って、新しいポストを作成することを支援するようオーサリングツールが作動された状態で図４Ａのレコードフィードページの例を示す。
【図５】様々な実施形態に従って、ユーザシステムのコンポーネントがデータベースシステムのコンポーネントと相互に作用する配置を示す。
【図６】様々な実施形態に従って、ポストデータを取得するプロセス及びポストを生成するプロセスを図解する。
【図７】様々な実施形態に従って、ポスト（又はフィードアイテム）を作るプロセス及びポストを生成するプロセスを図解する。
【図８】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図９】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１０】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１１】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１２】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１３】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１４】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１５】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１６】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【図１７】様々な実施形態に従って、例となるグラフィカルユーザインターフェイスを表す。
【発明を実施するための形態】
【０００４】
本明細書で説明されている実施形態は、マイクロブロギングポストで動的コンテンツを投じ且つユーザが動的コンテンツをポストすることを可能にするためのメカニズムを提供する。動的コンテンツは、ポスト又はフィードがフェッチ又はリフレッシュされるたびに更新される。実施形態において、ユーザは、ポストを作成するときに動的コンテンツのためのプレースホルダを加えてよい。プレースホルダはデータプロバイダ識別子（ＩＤ）及びデータパラメータを含む又は示す。ポストが公開される場合に、プレースホルダ情報（データプロバイダＩＤ及びデータパラメータ）は、ポストの残りのコンテンツとともに記憶される。ポストがフェッチされる場合に（例えば、フィードがウェブブラウザにおいてリフレッシュされる場合に）、ポスト内のあらゆるプレースホルダがパースされる。コンテンツは、データパラメータを、データプロバイダＩＤによって示されるデータプロバイダへ渡すことによって、あらゆるプレースホルダについて入手される。データパラメータのデータがデータプロバイダから入手される場合に、プレースホルダは、データプロバイダによって返されたデータにより置換され、ポストは、そのデータをプレースホルダの代わりに含みながら、要求元に供給される。いくつかの実施形態において、データプロバイダは他のプラットフォーム又はサービスであってよく、システムは、データプロバイダのアプリケーションプログラミングインターフェイス（Application  Programming  Interface）（ＡＰＩ）を呼び出すことによって、データパラメータをデータプロバイダへ送る。いくつかの実施形態において、データプロバイダはデータベースオブジェクトであってよく、システムは、データベースオブジェクトのデータ項目を得るためにデータパラメータを用いてデータベースシステムにクエリを行う。他の実施形態が記載及び／又は請求されてよい。
【０００５】
開示される実施例に従うシステム、装置、コンピュータ可読記憶媒体、及び方法の例は、本項目において記載される。それらの例は、文脈を追加し、開示される実施例の理解を助けるためにのみ与えられている。よって、当業者に明らかなように、開示される実施例は、与えられている具体的な詳細の一部又は全てによらずに実施されてよい。他の事例では、本明細書で“ブロック”とも称される特定のプロセス又は方法動作は、開示される実施例を不必要に不明りょうにしないために、詳細には記載されていない。他の実施例及び応用も可能であり、そのようなものとして、以下の例は、範囲又は設定において限定も制限もされてはならない。
【０００６】
以下の詳細な説明では、本明細書の一部を形成し且つ実例として具体的な実施例が示されている添付の図面が参照される。それらの開示される実施例は、当業者が実施例を実施することを可能にするほど十分詳細に記載されるが、それらの例は限定的ではない点が理解されるべきであり、他の実施例が使用されてよく、変更が、開示される実施例に対して、それらの精神及び適用範囲から逸脱することなしに行われてよい。例えば、本明細書で図示及び記載される方法のブロックは、いくつかの他の実施例で示されている順序で必ずしも実施されない。その上、いくつかの他の実施例では、開示される方法は、記載されているよりも多い又は少ないブロックを含んでよい。他の例として、別個のブロックとして本明細書で記載されるいくつかのブロックは、いくつかの他の実施例では組み合わされてよい。反対に、単一のブロックとして本明細書で記載され得るものは、いくつかの他の実施例では複数のブロックにおいて実装されてよい。その上、接続詞“又は（or）”は、別なふうに示されない限り、必要に応じて、包括的な意味で本明細書では意図される。すなわち、語句“Ａ、Ｂ又はＣ”は、“Ａ”、“Ｂ”、“Ｃ”、“Ａ及びＢ”、“Ｂ及びＣ”、“Ａ及びＣ”、及び“Ａ、Ｂ及びＣ”の可能性を含むよう意図される。
【０００７】
本明細書で使用されるように、語“テナント”は、ソフトウェアインスタンスへの特定の特権を伴った共通アクセスを共有するユーザのグループを含んでよい。本明細書で説明されているもののような、マルチテナントアーキテクチャは、テナント特有のデータ、ユーザマネージメント、テナント特有の機能、構成、カスタマイズ、非機能特性、関連アプリケーション、などの中の１つ以上を通常は含むソフトウェアインスタンスの専用共有をテナントに提供し得る。マルチテナンシはマルチインスタンスアーキテクチャと対照的であり、別々のソフトウェアインスタンスが異なるテナントの代理として動作する。
【０００８】
本明細書で使用されるように、語“マイクロブロギング”、“マイクロブロギングサービス”、“マイクロブロギングプラットフォーム”、及び同様のものは、コンテンツが集められ、ユーザが、短文、個人の画像又は映像、他のウェブページへのリンク、及び同様のもののような、小エレメントのコンテンツを交換することを可能にされ得るブロードキャスト媒体を指し得る。本明細書で使用される語“ソーシャルネットワーキングサービス”、“ソーシャルネットワーク”、“ソーシャルネットワーキングプラットフォーム”、“ソーシャルメディア”、“ソーシャルメディアサービス”、“ソーシャルメディアプラットフォーム”、などは、ソーシャルネットワーク又は他のユーザとの社会的関係を構築し維持することをユーザに可能にし、且つ、マイクロブロギングサービス、電子メールサービス、テキストメッセージングサービス、コンテンツストリーミングサービス、及び他の同様のサービスを含み得るオンラインプラットフォームを指し得る。本明細書で使用されるように、“マイクロブロギングサービス”又はその変形は、“ソーシャルネットワーキングサービス”又はその変形と交換可能であることができる。
【０００９】
いくつかの実施例において、本明細書で記載されるユーザは、双方向オンライン“ソーシャルネットワーキングサービス”、あるいは、“企業ソーシャルネットワーキングサービス”、“企業協業ネットワーク”と、又はより簡単に“企業ネットワーク”とも呼ばれる“企業ソーシャルネットワーク”のユーザ（又は“メンバー”）である。そのようなオンライン企業ネットワークは、誰もが企業ユーザと認識され得る人々の間の通信を容易にするためにますます一般的な方法になりつつある。オンライン企業ソーシャルネットワークは、カリフォルニア州サンフランシスコのセールスフォース・ドットコム社によって提供されるＣｈａｔｔｅｒである。セールスフォース・ドットコム社は、企業ソーシャルネットワーキングサービス、顧客関係管理（Customer  Relationship  Management）（ＣＲＭ）サービス及び他のデータベース管理サービスのプロバイダである。それらのサービスのいずれもが、いくつかの実施例において本明細書で開示される技術と関連してアクセスされ使用され得る。それらの様々なサービスは、例えば、マルチテナントデータベースシステムとの関係で、本明細書で記載されるクラウドコンピューティング環境において提供され得る。記載される技術又はプロセスのいくつかは、局所的にソフトウェアをインストール必要なしに、すなわち、クラウドを通じて利用可能なサービスと相互に作用するユーザのコンピュータ装置上で、実装され得る。開示される実施例は、Ｃｈａｔｔｅｒを及びより一般的には企業ソーシャルネットワーキングを参照して記載され得るが、当業者には当然ながら、開示される技術は、Ｃｈａｔｔｅｒにも、セールスフォース・ドットコム社によって提供されている何らかの他のサービス及びシステムにも制限されず、マルチテナントデータベースシステムの部分でなく、あるいは、企業ソーシャルネットワーキングサービスを提供しないクラウドベースのシステムのような様々な他のデータベースシステムとの関係において、実装され得る。
【００１０】
［例となるシステムの概要］
図１Ａは、いくつかの実施例に従って、オンデマンドデータベースサービスが使用され得る環境１０の例のブロック図を示す。環境１０は、ユーザシステム１２、ネットワーク１４、データベースシステム１６（“クラウドベースのシステム”とも本明細書で呼ばれる。）、プロセッサシステム１７、アプリケーションプラットフォーム１８、ネットワークインターフェイス２０、テナントデータ２３を記憶するテナントデータベース２２、システムデータ２５を記憶するシステムデータベース２４、システム１６の様々な機能を実装するプログラムコード２６、及びデータベースシステムプロセス及びテナント特有のプロセス（例えば、アプリケーションホスティングサービスの部分としてアプリケーションを実行すること）を実行するプロセス空間２８を含む。いくつかの他の実施例では、環境１０は、それらのコンポーネント又はシステムの全てを有さなくてよく、あるいは、先に挙げられているものの代わりに、又はそれらに加えて、他のコンポーネント又はシステムを有してよい。
【００１１】
いくつかの実施例において、環境１０は、オンデマンドデータベースサービスが存在する環境である。システム１６を用いて実装され得るもののような、オンデマンドデータベースサービスは、システム１６へのアクセスを所有し、維持し、又は提供する企業の外にいるユーザに利用可能にされ得るサービスである。上述されたように、そのようなユーザは、一般に、システム１６を構築又は維持することに関係している必要がない。代わりに、システム１６によって提供されるリソースは、システム１６によって提供されるサービスをユーザが必要とする場合に、すなわち、ユーザの要求時に、そのようなユーザの使用のために利用可能であってよい。いくつかのオンデマンドデータベースサービスは、１つ以上のテナントから、共通のデータベース画像のテーブルに情報を格納して、マルチテナントデータベースシステム（Multi-Tenant  database  System）（ＭＴＳ）を形成することができる。語“マルチテナントデータベースシステム”は、データベースシステムのハードウェア及びソフトウェアの様々な要素が１つ以上の顧客又はテナントによって共有され得るシステムを指すことができる。例えば、所与のアプリケーションサーバは、大勢の顧客の要求を同時に処理することができ、所与のデータベーステーブルは、潜在的によりずっと大勢の顧客のフィードアイテムのようなデータの行を記憶することができる。データベース画像は、１つ以上のデータベースオブジェクトを含むことができる。関係データベース管理システム（Relational  DataBase  Management  System）（ＲＤＢＭＳ）又は同等のものは、データベースオブジェクトに対する情報の記憶及び取り出しを実行することができる。
【００１２】
アプリケーションプラットフォーム１８は、システム１６のハードウェア又はソフトウェア基盤のような、システム１６のアプリケーションが実行することを可能にするフレームワークであることができる。いくつかの実施例において、アプリケーションプラットフォーム１８は、オンデマンドデータベースサービスのプロバイダ、ユーザシステム１２を介してオンデマンドデータベースサービスにアクセスするユーザ、又はユーザシステム１２を介してオンデマンドデータベースサービスにアクセスするサードパーティのアプリケーション開発者によって開発される１つ以上のアプリケーションの作成、管理及び実行を可能にする。
【００１３】
いくつかの実施例において、システム１６は、ウェブベースの顧客関係管理（ＣＲＭ）システムを実装する。例えば、いくつかのそのような実施例において、システム１６は、ＣＲＭソフトウェアアプリケーションを実装及び実行するとともに、関連するデータ、コード、フォーム、レンダリング可能なウェブページ及びドキュメント並びにユーザシステム１２への及びユーザシステム１２からの他の情報を供給するよう、且つ、関連したデータ、オブジェクト、及びウェブページコンテンツをデータベースシステムに記憶し、それから取り出すよう構成されたアプリケーションサーバを含む。いくつかのＭＴＳ実装において、複数のテナントのためのデータは、テナントデータベース２２内の同じ物理データベースオブジェクトに記憶されてよい。斯様な実施例において、テナントデータは、１つのテナントのデータが他のテナントのデータとは論理的に別々にされて、１つのテナントが他のテナントのデータへのアクセスを、そのようなデータが明示的に共有されない限りは有さないようにするように、テナントデータベース２２の記憶媒体において配置される。システム１６はまた、ＣＲＭアプリケーション以外の、又はそれに加えて、他のアプリケーションを実装する。例えば、システム１６は、ＣＲＭアプリケーションを含む複数のホストされた（標準及びカスタムの）アプリケーションへのアクセスをテナントに提供することができる。ユーザ（又はサードパーティ開発者）アプリケーションは、ＣＲＭを含んでも含まなくてもよく、アプリケーションプラットフォーム１８によってサポートされ得る。アプリケーションプラットフォーム１８は、１つ以上のデータベースオブジェクトへのアプリケーションの作成及び記憶と、システム１６のプロセス空間における１つ以上の仮想機械でのアプリケーションの実行とを管理する。
【００１４】
いくつかの実施例に従って、夫々のシステム１６は、ウェブページ、フォーム、アプリケーション、データ及びメディアコンテンツをユーザ（クライアント）システム１２へ供給して、システム１６のテナントとしてユーザシステム１２によるアクセスをサポートするよう構成される。そのようなものとして、システム１６は、データが共有されない限りは各テナントデータを別々なままにするセキュリティメカニズムを提供する。１つよりも多いＭＴＳが使用される場合に、それらはお互いに近接して（例えば、１つの建物又はキャンパスに位置するサーバファームにおいて）位置してよく、あるいは、それらは、お互いから離された位置で分布してよい（例えば、１つ以上のサーバは町Ａに位置し、１つ以上のサーバは町Ｂに位置する。）。本明細書で使用されるように、夫々のＭＴＳは、局所的に又は１つ以上の地理的位置にわたって分布している１つ以上の論理的又は物理的に接続されたサーバを含んでよい。その上、語“サーバ”は、プロセッシングハードウェア及びプロセス空間、メモリデバイス又はデータベースのような関連する記憶媒体、並びにいくつかの場合に、当該技術でよく知られているデータベースアプリケーション（例えば、ＯＯＤＢＭＳ又はＲＤＢＭＳ）を含むコンピュータ装置又はシステムを指すよう意図される。また、“サーバシステム”及び“サーバ”は、本明細書でしばしば同義的に使用される点が理解されるべきである。同様に、本明細書で記載されるデータベースオブジェクトは、単一のデータベース、分散型データベース、分散型データベースの集合、冗長なオンライン若しくはオフラインのバックアップを備えたデータベース、又は他の冗長性、などの部分として実装され得、分散型データベース又は記憶ネットワーク及び関連するプロセッシングインテリジェンスを含むことができる。
【００１５】
ネットワーク１４は、お互いと通信するシステム又はデバイスのあらゆるネットワーク又はネットワークの組み合わせであり、あるいは、それを含むことができる。例えば、ネットワーク１４は、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）、電話網、ワイヤレスネットワーク、セルラーネットワーク、ポイント・ツー・ポイントネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、又は他の適切な構成のうちのいずれか１つ又はいずれかの組み合わせであるか、あるいは、それを含むことができる。ネットワーク１４は、“インターネット”（Internet）（大文字“Ｉ”を有する。）としばしば呼ばれるネットワークのグローバルな相互接続ネットワークのような、ＴＣＰ／ＩＰ（Transfer  Control  Protocol  and  Internet  Protocol）を含むことができる。インターネットは、本明細書での例の多くで使用される。なお、開示される実施例が使用することができるネットワークはそのように限られず、ＴＣＰ／ＩＰはたびたび実装されるプロトコルである点が理解されるべきである。
【００１６】
ユーザシステム１２は、ＴＣＰ／ＩＰ及び、より高いネットワークレベルでは、ＨＴＴＰ、ＦＴＰ、ＡＦＳ、ＷＡＰ、などのような、通信するための他の共通のインターネットプロトコルを用いて、システム１６と通信することができる。ＨＴＴＰが使用される例では、各ユーザシステム１２は、ＨＴＴＰ信号をシステム１６のＨＴＴＰサーバとの間で送受信するための、“ウェブブラウザ”又は単に“ブラウザ”と一般に呼ばれるＨＴＴＰクライアントを含むことができる。そのようなＨＴＴＰサーバは、システム１６とネットワーク１４との間の単一のネットワークインターフェイス２０として実装され得るが、他の技術が、それらの技術に加えて、又はそれらの技術に代えて使用され得る。いくつかの実施例において、システム１６とネットワーク１４との間のネットワークインターフェイス２０は、多数のサーバの間で等しく負荷の平衡を保ち且つ入来するＨＴＴＰリクエストを分配するラウンドロビンＨＴＴＰリクエスト分配器のような負荷共有機能を含む。ＭＴＳ実装では、サーバの夫々がＭＴＳデータへのアクセスを有することができるが、他の代替の構成が代わりに使用されてよい。
【００１７】
ユーザシステム１２は、データベースシステム１６にアクセスするためにユーザによって使用可能な何らかのコンピュータ装置又は他のデータ処理装置若しくはシステムとして実装され得る。例えば、ユーザシステム１２のいずれかは、デスクトップコンピュータ、ワークステーション、ラップトップコンピュータ、タブレットコンピュータ、携帯型コンピュータ装置、モバイル携帯電話（例えば、“スマートフォン”）、若しくはあらゆる他のＷｉ−Ｆｉ対応デバイス、ワイヤレスアクセスプロトコル（Wireless  Access  Protocol）（ＷＡＰ）対応デバイス、又はインターネット若しくは他のネットワークへ直接若しくは間接にインターフェイス接続することが可能な他のコンピュータ装置であることができる。語“ユーザシステム”及び“コンピュータ装置”は、お互いと及び語“コンピュータ”と本明細書中で同義的に使用される。上述されたように、各ユーザシステム１２は、通常は、ＨＴＴＰクライアント、例えば、ＷｅｂＫｉｔプラットフォーム、マイクロソフトのインターネットエクスプローラブラウザ、アップルのサファリ、グーグルのクローム、オペラのブラウザ、若しくはモジラのファイヤフォックスブラウザ、又は同様のものに基づくウェブブラウザのような、ウェブブラウジング（又は単に“ブラウジング”）プログラムを実行し、ユーザシステム１２のユーザ（例えば、システム１６によって提供されるオンデマンドサービスの加入者）がシステム１６からネットワーク１４上で利用可能な情報、ページ及びアプリケーションにアクセスし、処理し、そして見ることを可能にする。
【００１８】
各ユーザシステム１２はまた、通常は、システム又は他のシステム若しくはサーバによって提供されるページ、フォーム、アプリケーション及び他の情報と関連してユーザシステム１２のディスプレイ（例えば、特に、モニタ画面、液晶表示（Liquid  Crystal  Display）（ＬＣＤ）、発光ダイオード（Light-Emitting  Diode）（ＬＥＤ）表示）上でブラウザによって提供されたグラフィカルユーザインターフェイス（Graphical  User  Interface）（ＧＵＩ）と相互に作用するための、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーン、ペン若しくはスタイラス、又は同様のもののような、１つ以上のユーザ入力装置を含む。例えば、ユーザインターフェイス装置は、システム１６によってホストされるアプリケーション及びデータにアクセスするために、且つ、記憶されているデータに対して検索を実行するために使用され、その他には、ユーザに提示され得る様々なＧＵＩページと相互に作用することをユーザに可能にすることができる。上述されたように、実施例は、インターネットとともに使用するために適切であるが、他のネットワークがインターネットの代わりに又はそれに加えて使用され得る。例えば、イントラネット、エクストラネット、仮想プライベートネットワーク（Virtual  Private  Network）（ＶＰＮ）、非ＴＣＰ／ＩＰベースのネットワーク、あらゆるＬＡＮ若しくはＷＡＮ、又は同様のものがある。
【００１９】
ユーザシステム１２のユーザは、それらの各々の能力が異なってよく、特定のユーザシステム１２の能力は、そのようなユーザシステムの現在のユーザの許可（許可レベル）によってもっぱら決定され得る。例えば、販売員がシステム１６と相互に作用するために特定のユーザシステム１２を使用している場合に、そのユーザシステムは、販売員に割り当てられている能力を有することができる。しかし、管理者がシステム１６と相互に作用するためにそのユーザシステム１２を使用している間は、そのユーザシステムは、その管理者に割り当てられている能力を有することができる。階層的な役割モデルが使用される場合に、１つの許可レベルにあるユーザは、より低い許可レベルのユーザによってアクセス可能なアプリケーション、データ、及びデータベース情報へのアクセスを有することができるが、より高い許可レベルにあるユーザによってアクセス可能な特定のアプリケーション、データベース情報、及びデータへのアクセスを有することはできない。よって、異なるユーザは、一般に、ユーザの各々のセキュリティ又は許可レベル（“権限”とも呼ばれる。）に応じて、アプリケーション及びデータベース情報にアクセスし変更することに関して異なる能力を有する。
【００２０】
いくつかの実施例に従って、各ユーザシステム１２及びそのコンポーネントの一部又は全ては、インテルＰｅｎｔｉｕｍ（登録商標）若しくはＣｏｒｅ（登録商標）プロセッサ、アドバンスド・マイクロ・デバイセズ（Advanced  Micro  Devices）（ＡＭＤ）Ｒｙｚｅｎ（登録商標）ＣＰＵ若しくはアクセラレーテッド・プロセッシング・ユニット（Accelerated  Processing  Unit）（ＡＰＵ）、又は同様のもののような中央演算処理装置（Central  Processing  Unit）（ＣＰＵ）を用いて実行されるコンピュータコードを含め、ブラウザのようなアプリケーションを用いてオペレータが構成可能である。同様に、システム１６（及び、１つよりも多くが存在する場合には、ＭＴＳの追加インスタンス）並びにそのコンポーネントの全ては、プロセッサシステム１７を用いて実行されるコンピュータコードを含むアプリケーションを用いてオペレータが構成可能であることができる。プロセッサシステム１７は、ＣＰＵを含むよう実装されてよく、ＣＰＵは、１つ以上のインテルＰｅｎｔｉｕｍ若しくはＸｅｏｎ（登録商標）プロセッサ、１つ以上のＡＭＤ  Ｅｐｙｃ（登録商標）プロセッサ、又は同様のものを含んでよい。
【００２１】
システム１６は、本明細書で記載されるプロセスの実装のいくつかを実行するようサーバ若しくは他のコンピュータシステム（又はそのようなサーバ若しくはコンピュータシステムの集合）をプログラムするために使用されるか又はサーバ若しくはコンピュータシステムによって実行可能である非一時的な命令を記憶している有形なコンピュータ可読媒体を含む。例えば、コンピュータプログラムコード２６は、互いに通信するよう、且つ、本明細書で記載されるようにウェブページ、アプリケーション並びに他のデータ及びメディアコンテンツを処理するようシステム１６を動作させ構成するための命令を実装することができる。いくつかの実施例において、コンピュータコード２６は、ダウンロード可能であり、ハードディスクに記憶され得るが、プログラムコードの全体又はその部分はまた、ＲＯＭ又はＲＡＭのような、よく知られているあらゆる他の揮発性又は不揮発性メモリ媒体においても記憶され、あるいは、フロッピー（登録商標）ディスク、光ディスク、デジタルバーサタイルディスク（Digital  Versatile  Disks）（ＤＶＤ）、コンパクトディスク（ＣＤ）、マイクロドライブ、及び光学磁気ディスクを含むあらゆるタイプの回転媒体、並びに磁気若しくは光学カード、ナノシステム（分子メモリ集積回路（Integrated  Circuits）（ＩＣ））、又は命令若しくはデータを記憶するのに適したあらゆる他のタイプのコンピュータ可読媒体若しくはデバイスのような、プログラムコードを記憶することが可能な如何なる媒体でも提供され得る。その上、プログラムコードの全体又はその部分は、ソフトウェアソースから伝送媒体を介して、例えば、インターネット上で、又はよく知られている他のサーバから送信及びダウンロードされ、あるいは、よく知られている何らかの通信媒体及びプロトコル（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、Ｅｔｈｅｒｎｅｔ（登録商標）、など）を用いて、よく知られている何らかの他の既存のネットワーク接続（例えば、エクストラネット、ＶＰＮ、ＬＡＮ、など）を介して送信されてよい。また、明らかなように、開示される実施例のためのコンピュータコードは、例えば、Ｃ、Ｃ＋＋、ＨＴＭＬ、何らかの他のマークアップ言語、ＪＡＶＡ（登録商標）、ＪａｖａＳｃｒｉｐｔ、ＡｃｔｉｖｅＸ、何らかの他のスクリプティング言語（例えば、ＶＢＳｃｒｉｐｔ）のような、サーバ又は他のコンピュータシステム上で実行され得る如何なるプログラミング言語でも実現され得、そして、よく知られている多くの他のプログラミング言語が使用されてよい（Ｊａｖａは、サンマイクロシステムズ社の商標である。）。
【００２２】
図１Ｂは、いくつかの実施例に従って、図１Ａの要素の実装の例及びそれらのようその間の相互接続の例のブロック図を示す。すなわち、図１Ｂも環境１０を表すが、図１Ｂでは、システム１６の様々な要素及びそのような要素の間の様々な相互接続が、いくつかのより具体的な実施例に従って、更なる特定をもって示されている。その上、図１Ｂにおいて、ユーザシステム１２は、プロセッサシステム１２Ａ、メモリシステム１２Ｂ、入力システム１２Ｃ、出力システム１２Ｄ、及び通信システム１２Ｅを含む。プロセッサシステム１２Ａは、シングルコア若しくはマルチコアプロセッサを含む１つ以上の中央演算処理装置（ＣＰＵ）、１つ以上のグラフィクス処理ユニット（Graphics  Processing  Units）（ＧＰＵ）、１つ以上のフィールドプログラマブルゲートアレイ（Field  Programmable  Gate  Array）（ＦＰＧＡ）、又は算術的、論理的、及び／若しくは入出力動作を実行するようプログラムコード及び／若しくはソフトウェアモジュールを実行することが可能なあらゆる他の電子回路のような、１つ以上のプロセッサの如何なる適切な組み合わせも含むことができる。メモリシステム１２Ｂは、揮発性記憶装置（例えば、ランダムアクセスメモリ（Random  Access  Memory）（ＲＡＭ）、動的（Dynamic）ＲＡＭ（ＤＲＡＭ）、など）及び不揮発性メモリ装置（例えば、リードオンリーメモリ（Read  Only  Memory）（ＲＯＭ）、フラッシュメモリ、など）のような１つ以上のメモリ装置の如何なる適切な組み合わせも含むことができる。入力システム１２Ｃは、１つ以上のタッチスクリーンインターフェイス、キーボード、マウス、トラックボール、スキャナ、カメラ、又はネットワークへのインターフェイスのような入力装置の如何なる適切な組み合わせも含むことができる。出力システム１２Ｄは、１つ以上の表示装置、プリンタ、又はネットワークへのインターフェイスのような出力装置の如何なる適切な組み合わせも含むことができる。通信システム１２Ｅは、無線ネットワーク又は有線ネットワークと通信するための回路を含んでよい。通信システム１２Ｅは、リンク１５（“チャネル１５”、“ネットワーキングレイヤトンネル１５”、などとも呼ばれる。）を確立するために使用されてよい。リンク１５を通じて、ユーザシステム１２はデータベースシステム１６と通信してよい。通信システム１２Ｅは、特定の無線通信プロトコル（例えば、Ｗｉ−Ｆｉ及び／又はＩＥＥＥ８０２．１１プロトコル）、セルラー通信プロトコル（例えば、ロングタームエボリューション（Long  Term  Evolution）（ＬＴＥ）及び同様のもの）、無線パーソナルエリアネットワーク（Wireless  Personal  Area  Network）（ＷＰＡＮ）プロトコル（例えば、ＩＥＥＥ８０２．１５．４〜８０２．１５．５プロトコル、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＬＥ）、など）、及び／又は有線通信プロトコル（例えば、Ｅｔｈｅｒｎｅｔ、光ファイバ分散データインターフェイス（Fiber  Distributed  Data  Interface）（ＦＤＤＩ）、ポイント・ツー・ポイント（Point-to-Point）（ＰＰＰ）、など）に専用である１つ以上のプロセッサ（例えば、ベースバンドプロセッサ、など）を含んでよい。通信システム１２Ｅはまた、固体又は非固体媒体を通じて、変調された電磁放射を用いて、無線／有線ネットワーク及び／又は他のユーザインターフェイス１２との通信を可能にするハードウェア装置を含んでよい。そのようなハードウェア装置は、１つ以上の他の装置へデータを送信するための無線波を発生させるか又は別なふうに生成し、且つ、受信された信号を、ユーザシステム１２の１つ以上の他のコンポーネントへ供給され得るデジタルデータのような有用な情報に変換することによって、無線で又は配線を通じて通信を容易にするよう、スイッチ、フィルタ、増幅器、アンテナ素子、及び同様のものを含んでよい。データベースシステム１６と通信する（例えば、送信／受信する）よう、通信システム１２Ｅを使用するユーザシステム１２は、データベースシステム１６のネットワークインターフェイス２０とリンク１５を確立し得る。
【００２３】
図１Ｂにおいて、ネットワークインターフェイス２０は、ＨＴＴＰアプリケーションサーバ１００１〜１００Ｎの組として実装されている。各アプリケーションサーバ１００は、“ａｐｐサーバ”とも本明細書中で呼ばれ、テナントデータベース２２及びその中のテナントデータ２３並びにシステムデータベース２４及びその中のシステムデータ２５と通信して、ユーザシステム１２から受け取られるリクエストのために働くよう構成される。テナントデータ２３は、個々のテナント記憶空間１１２に分割され得る。個々のテナント記憶空間１１２は、物理的又は論理的に配置又は分割され得る。各テナント記憶空間１１２内で、ユーザストレージ１１１４及びアプリケーションメタデータ１１６は、ユーザ毎に同様に割り当てられ得る。例えば、ユーザが最近使用した（Most  Recently  Used）（ＭＲＵ）アイテムのコピーがユーザストレージ１１４に格納され得る。同様に、テナントである組織全体のＭＲＵアイテムのコピーはテナント記憶空間１１２に格納され得る。
【００２４】
プロセス空間２８は、システムプロセス空間１０２、個々のテナントプロセス空間１０４、及びテナント管理プロセス空間１１０を含む。アプリケーションプラットフォーム１８は、アプリケーション開発者の基準及びアプリケーションの管理を支援するアプリケーションセットアップメカニズム３８を含む。そのようなアプリケーション及び他は、例えば、テナント管理プロセス１１０によって管理される１つ以上のテナントプロセス空間１０４としての加入者による実行のために、セーブルーチン３６によってテナントデータベース２２内にメタデータとしてセーブされ得る。そのようなアプリケーションの起動は、プログラミング言語スタイルのインターフェイス実行をＡＰＩ３２へ供給するＰＬ／ＳＯＱＬ３４を用いて符号化され得る。いくつかのＰＬ／ＳＯＱＬ言語実装の詳細な記載は、２０１０年６月１日付けで発行された、Craig  Weissmanによる、METHOD  AND  SYSTEM  FOR  ALLOWING  ACCESS  TO  DEVELOPED  APPLICATIONS  VIA  A  MULTI-TENANT  ON-DEMAND  DATABASE  SERVICEと題された、本願の譲受人に譲渡された米国特許第７，７３０，４７８号において説明されている。なお、この特許文献は、これをもってその全文を全ての目的のために参照により本願に援用される。アプリケーションの起動は、１つ以上のシステムプロセスによって検出され得る。システムプロセスは、加入者が起動を行って、仮想機械においてアプリケーションとしてメタデータを実行するために、アプリケーションメタデータ１１６を読み出すことを管理する。
【００２５】
図１Ｂのシステム１６はまた、ユーザシステム１２のユーザ又は開発者に対する常駐プロセスをシステム１６に提供するためのユーザインターフェイス（User  Interface）（ＵＩ）３０及びアプリケーションプログラミングインターフェイス（Application  Programing  Interface）（ＡＰＩ）３２を含む。いくつかの他の実施例では、環境１０は、上述されているものと同じ要素を有さなくてよく、あるいは、上述されているものに代えて、又はそれらに加えて他の要素を有してよい。
【００２６】
各アプリケーションサーバ１００は、異なるネットワーク接続を介して、例えば、テナントデータ２３及びシステムデータ２５へのアクセスを夫々有しているテナントデータベース２２及びシステムデータベース２４と通信上結合され得る。例えば、１つのアプリケーションサーバ１００１は、ネットワーク１４（例えば、インターネット）を介して結合され得、他のアプリケーションサーバ１００Ｎ−１は、ダイレクトネットワークリンクを介して結合され得、他のアプリケーションサーバ１００Ｎは、更に別のネットワーク接続によって結合され得る。転送制御プロトコル（Transfer  Control  Protocol）及びインターネットプロトコル（Internet  Protocol）（ＴＣＰ／ＩＰ）は、アプリケーションサーバ１００とシステム１６との間の通信のために使用され得る典型的なプロトコルの例である。しかし、当業者に明らかなように、他の転送プロトコルが、使用されるネットワーク相互接続に応じてシステム１６を最適化するために使用され得る。
【００２７】
いくつかの実施例において、各アプリケーションサーバ１００は、システム１６のテナントである何らかの組織に関連したいずれかのユーザのリクエストを扱うよう構成される。如何なる時点でも様々な理由のためにサーバプールからアプリケーションサーバ１００を追加及び削除することが望まれ得るので、いくつかの実施例において、特定のアプリケーションサーバ１００へのユーザ又は組織のサーバアフィニティは存在しない。いくつかの斯様な実施例では、負荷平衡機能（例えば、Ｆ５  Ｂｉｇ−ＩＰロードバランサ）を実装するインターフェイスシステムは、アプリケーションサーバ１００へリクエストを分配するためにアプリケーションサーバ１００とユーザシステム１２との間に通信上結合される。１つの実施例において、ロードバランサは、ユーザリクエストをアプリケーションサーバ１００へ送るために最小接続（least-connections）アルゴリズムを使用する。ラウンドロビン及び被観測応答時間（observed-response-time）のような、負荷平衡アルゴリズムの他の例が使用され得る。例えば、いくつかの場合に、同じユーザからの３つの連続したリクエストが３つの異なるアプリケーションサーバ１００にぶつかる可能性があり、且つ、異なるユーザからの３つのリクエストが同じアプリケーションサーバ１００にぶつかる可能性がある。このように、一例として、システム１６は、システム１６がバラバラのユーザ及び組織の間で異なるオブジェクト、データ及びアプリケーションの記憶及びそれらへのアクセスを扱うマルチテナントシステムであることができる。
【００２８】
一例となるストレージ使用ケースにおいて、１つのテナントは、各販売員が彼らの販売の状況を管理するためにシステム１６を使用するところの、販売力を用いる会社であることができる。ユーザは、そのユーザの個人の販売プロセスに全て適用できる連絡先データ、リード（leads）データ、顧客追跡データ、実績データ、目標及び進捗データ、などを（例えば、テナントデータベース２２において）保持することができる。ＭＴＳ配置の例では、アクセス、閲覧、変更、報告、送信、などをすべきデータ及びアプリケーションの全てが、ネットワークアクセスをほとんど有さないユーザシステム１２によって保持されアクセスされ得るので、ユーザは、多種多様なユーザシステムのいずれかから彼又は彼女の販売努力及びサイクルを管理することができる。例えば、販売員が顧客を訪問しており、顧客がロビーでインターネットアクセスを有している場合に、販売員は、顧客がロビーに到着するのを待ちながらその顧客に関する重要な更新を入手することができる。
【００２９】
各ユーザのデータは、各ユーザの雇用主に関わらず他のユーザのデータとは別に保持され得、一方で、一部のデータは、テナントである所与の組織の幾人かのユーザ又は全てのユーザによって共有され又はアクセス可能である全組織的なデータであることができる。よって、テナントレベルで割り当てられる、システム１６によって管理される一部のデータ構造が存在することができ、一方で、他のデータ構造はユーザレベルで管理され得る。ＭＴＳは、可能性がある競合企業を含む複数のテナントを支援することができるので、ＭＴＳは、データ、アプリケーション、及びアプルケーション利用を別々なままにするセキュリティプロトコルを有することができる。また、多くのテナントは、彼ら自身のシステムを維持するよりむしろＭＴＳへのアクセスを選択し得るので、冗長性、アップタイム及びバックアップは、ＭＴＳで実装され得る追加機能である。ユーザ特有のデータ及びテナント特有のデータに加えて、システム１６はまた、複数のテナントによって使用可能なシステムレベルデータ、又は他のデータを保持することができる。斯様なシステムレベルデータは、テナント間で共有可能である産業報告、ニュース、ポスティング、及び同様のものを含むことができる。
【００３０】
いくつかの実施例において、ユーザシステム１２（クライアントシステムであることもできる。）は、システム１６にシステムレベル及びテナントレベルのデータを要求し更新するようアプリケーションサーバ１００と通信する。そのような要求及び更新は、テナントデータベース２２又はシステムデータベース２４へ１つ以上のクエリを送ることを伴うことができる。システム１６（例えば、システム１６に含まれるアプリケーションサーバ１００）は、所望の情報にアクセスするよう設計された１つ以上のＳＱＬステートメント（例えば、１つ以上のＳＱＬクエリ）を自動的に生成することができる。システムデータベース２４は、データベースの要求されたデータにアクセスするようクエリプランを生成することができる。語“クエリプラン”は、一般に、データベースシステム内の情報にアクセスするために使用される１つ以上の動作を指す。
【００３１】
各データベースは、一般に、所定の又はカスタマイズ可能なカテゴリに適合されたデータを含む、論理テーブルの組のようなオブジェクトの集合と見なされ得る。“テーブル”は、データオブジェクトの１つの表現であり、いくつかの実施例に従って、オブジェクト及び顧客オブジェクトの概念記述を簡単にするために本明細書で使用されることがある。“テーブル”及び“オブジェクト”は、本明細書では同義的に使用され得ることが理解されるべきである。各テーブルは、一般に、目に見えるスキーマにおいてカラム又はフィールドとして論理的に配置された１つ以上のデータカテゴリを含む。テーブルの各行又は要素は、フィールドによって定義されたカテゴリごとにデータのインスタンスを含むことができる。例えば、ＣＲＭデータベースは、名称、住所、電話番号、ファクシミリ番号、などのような基本の連絡先情報のためのフィールドにより顧客を記述するテーブルを含むことができる。他のテーブルは、顧客、製品、販売価格、日付、などのような情報のためのフィールドを含む購入注文を記述することができる。いくつかのＭＴＳ実装では、標準エンティティテーブルが、全てのテナントによる使用のために提供され得る。ＣＲＭデータベース適用のために、このような標準的なエンティティは、夫々が事前に定義されたフィールドを含むケース、アカウント、連絡先、リード、及び機会データオブジェクトのためのテーブルを含むことができる。本明細書で使用されるように、語“エンティティ”も、“オブジェクト”及び“テーブル”と同義的に使用されてよい。
【００３２】
いくつかのＭＴＳ実装では、テナントは、顧客オブジェクトを作成及び記憶することを可能にされ、あるいは、例えば、顧客インデックスフィールドを含む、標準的なオブジェクトのための顧客フィールドを作成することによって、標準的なエンティティ又はオブジェクトをカスタマイズすることを可能にされ得る。２０１０年８月１７日付けで発行された、Weissman  et  al.による、CUSTOM  ENTITIES  AND  FIELDS  IN  A  MULTI-TENANT  DATABASE  SYSTEMと題された、本願の譲受人に譲渡された米国特許第７，７７９，０３９号（これをもってその全文を全ての目的のために参照により本願に援用される。）は、マルチテナントデータベースシステムにおいて顧客オブジェクトを作成するとともに標準的なオブジェクトをカスタマイズするためのシステム及び方法を教示する。いくつかの実施例において、例えば、全ての顧客エンティティのデータ行は、単一のマルチテナント物理テーブルに格納される。このテーブルは、組織ごとに複数の論理テーブルを含んでよい。顧客の複数の“テーブル”は実際には１つの大きいテーブルに格納されること、又は彼らのデータは他の顧客のデータと同じテーブルに格納され得ることが、顧客にとってトランスペアレントである。
【００３３】
図２Ａは、いくつかの実施例に従って、オンデマンドデータベースサービス環境２００の構造上のコンポーネントの例を説明するシステム図を示す。本明細書で記載されるように、組み合わせて１つ以上のネットワークを一般的に参照するクラウド２０４と通信上接続されているクライアントマシンは、１つ以上のエッジルータ２０８及び２１２を介してオンデマンドデータベースサービス環境２００と通信することができる。クライアントマシンは、上述されたユーザシステム１２の例のうちのいずれかであることができる。エッジルータは、ファイヤウォール２１６を通じて１つ以上のコアスイッチ２２０及び２２４と通信することができる。コアスイッチは、ロードバランサ２２８と通信することができる。ロードバランサは、ポッド２４０及び２４４のような異なるポッドにわたってサーバ負荷を分配することができる。ポッド２４０及び２４４は、１つ以上のサーバ又は他の計算リソースを夫々が含むことができ、オンデマンドサービスを提供するために使用されるデータ処理及び他の動作を実行することができる。本明細書で使用されるように、語“計算リソース”、“ハードウェアリソース”などは、コンピュータ装置、機械装置、メモリ空間、プロセッサ／ＣＰＵ時間及び／若しくはプロセッサ／ＣＰＵ利用、ハードウェア時間若しくは利用、電力、入出力動作、ポート若しくはネットワークソケット、チャネル／リンク割り当て、スループット、並びに／又は同様のもののような、物理的若しくは仮想的な装置、コンピュータ環境内の物理的若しくは仮想的なコンポーネント、及び／又は特定の装置内の物理的若しくは仮想的なコンポーネントを指してよい。本明細書で使用されるように、語“ネットワークリソース”は、通信ネットワークを介してコンピュータ装置によってアクセス可能である計算リソースを指してよい。ポッドとの通信は、ポッドスイッチ２３２及び２３６を介して行われ得る。オンデマンドデータベースサービス環境のコンポーネントは、データベースファイヤウォール２４８及びデータベーススイッチ２５２を通じてデータベースストレージ２５６と通信することができる。
【００３４】
図２Ａ及び２Ｂに示されるように、オンデマンドデータベースサービス環境にアクセスすることは、多種多様なハードウェア又はソフトウェアコンポーネントの間で送信される通信を伴うことができる。更には、オンデマンドデータベースサービス環境２００は、実際のオンデマンドデータベースサービス環境の簡略化された表現である。例えば、各タイプの１つ又は２つの装置しか図２Ａ及び２Ｂで示されていないが、オンデマンドデータベースサービス環境のいくつかの実施例は、各タイプの１乃至複数個の装置をどこでも含むことができる。また、オンデマンドデータベースサービス環境は、図２Ａ及び２Ｂに示されている各装置を含む必要はなく、あるいは、図２Ａ及び２Ｂに示されていない追加の装置を含むことができる。
【００３５】
その上、当然ながら、オンデマンドデータベースサービス環境２００における装置のうちの１つ以上は、同じ物理装置で又は異なるハードウェアで実装され得る。いくつかの装置は、ハードウェア又はハードウェアとソフトウェアとの組み合わせにより実装され得る。よって、本明細書で使用される“データ処理装置”、“機械”、“サーバ”及び“デバイス”といった語は、単一のハードウェア装置に制限されず、むしろ、それらの語への言及は、記載される機能を提供するよう構成されたハードウェア及びソフトウェアの如何なる適切な組み合わせも含むことができる。
【００３６】
クラウド２０４は、しばしばインターネットを含むデータネットワーク又は複数のデータネットワークを指すよう意図される。クラウド２０４と通信上接続されているクライアントマシンは、オンデマンドデータベースサービス環境によって提供されるサービスにアクセスするようオンデマンドデータベースサービス環境２００の他のコンポーネント通信することができる。例えば、クライアントマシンは、情報を取り出し、記憶し、編集し、又は処理するようオンデマンドデータベースサービス環境にアクセスすることができる。いくつかの実施例において、エッジルータ２０８及び２１２は、クラウド２０４とオンデマンドデータベースサービス環境２００の他のコンポーネントとの間でパケットを送る。例えば、エッジルータ２０８及び２１２はボーダーゲートウェイプロトコル（Border  Gateway  Protocol）（ＢＧＰ）を用いることができる。ＢＧＰは、インターネットのコアルーティングプロトコルである。エッジルータ２０８及び２１２は、インターネット上の自律システムの間のネットワーク到達可能性を示すＩＰネットワーク又は“プレフィックス”のテーブルを保持することができる。
【００３７】
いくつかの実施例において、ファイヤウォール２１６は、インターネットトラフィックからオンデマンドデータベースサービス環境２００の内部コンポーネントを保護することができる。ファイヤウォール２１６は、ルールの組又は他の基準に基づきオンデマンドデータベースサービス環境２００の内部コンポーネントへのアクセスを遮断、許可、又は拒否することができる。ファイヤウォール２１６は、パケットフィルタ、アプリケーションゲートウェイ、ステートフルフィルタ、プロキシサーバ、又は何らかの他のタイプのファイヤウォールのうちの１つ以上として動作することができる。
【００３８】
いくつかの実施例において、コアスイッチ２２０及び２２４は、オンデマンドデータベースサービス環境２００内でパケットを転送する大容量スイッチである。コアスイッチ２２０及び２２４は、オンデマンドデータベースサービス環境内の異なるコンポーネント間で直ちにデータを送るネットワークブリッジとして構成され得る。いくつかの実施例において、２つ以上のコアスイッチ２２０及び２２４の使用は、冗長性及び低減されたレイテンシーを提供することができる。
【００３９】
いくつかの実施例において、ポッド２４０及び２４４は、オンデマンドデータベースサービス環境によって提供されるコアデータ処理及びサービス機能を実行する。各ポッドは、様々なタイプのハードウェア又はソフトウェアの計算資源を含むことができる。ポッドアーキテクチャの例は、図２Ｂを参照して更に詳細に説明される。いくつかの実施例において、ポッド２４０及び２４４の間の通信は、ポッドスイッチ２３２及び２３６を介して行われる。ポッドスイッチ２３２及び２３６は、例えば、コアスイッチ２２０及び２２４を介して、ポッド２４０及び２４４と、クラウド２０４と通信上接続されているクライアントマシンとの間の通信を容易にすることができる。また、ポッドスイッチ２３２及び２３６は、ポッド２４０及び２４４とデータベースストレージ２５６との間の通信を容易にすることができる。いくつかの実施例において、ロードバランサ２２８は、ポッド２４０及び２４４の間でワークロードを分配することができる。ポッド間でオンデマンドサービスリクエストの平衡を保たせることは、リソースの使用を改善すること、スループットを増大させること、応答時間を削減すること、又はオーバヘッドを低減させることを支援することができる。ロードバランサ２２８は、トラフィックを解析し転送するためのマルチレイヤスイッチを含んでよい。
【００４０】
いくつかの実施例において、データベースストレージ２５６へのアクセスは、ファイヤウォール２４８によって保護されている。データベースファイヤウォール２４８は、プロトコルスタックのデータベースアプリケーションレイヤで動作するコンピュータアプリケーションファイヤウォールとして動作することができる。データベースファイヤウォール２４８は、構造クエリ言語（Structure  Query  Language）（ＳＱＬ）インジェクション、データベースルートキット及び不正な情報開示のようなアプリケーション攻撃からデータベースストレージ２５６を保護することができる。いくつかの実施例において、データベースファイヤウォール２４８は、プロキシトラフィックをゲートウェイルータへ送る前にプロキシトラフィックに対して１つ以上の形態のリバースプロキシサービスを使用するホストを含む。データベースファイヤウォール２４８は、データベーストラフィックのコンテンツを詳しく調べて、特定のコンテンツ又はデータベースリクエストを遮断することができる。データベースファイヤウォール２４８は、ＴＣＰ／ＩＰスタックの上のＳＱＬアプリケーションレベルで働くことができ、データベース又はＳＱＬ管理インターフェイスへのアプリケーションの接続を管理するとともに、データベースネットワーク又はアプリケーションインターフェイスへ又はそこから移動するパケットをインターセプトし強化する。
【００４１】
いくつかの実施例において、データベースストレージ２５６との通信は、データベーススイッチ２５２を介して行われる。マルチテナントデータベースストレージ２５６は、データベースクエリを扱うための１つよりも多いハードウェア又はソフトウェアコンポーネントを含むことができる。然るに、データベーススイッチ２５２は、オンデマンドデータベースサービス環境の他のコンポーネント（例えば、ポッド２４０及び２４４）によって送られたデータベースクエリをデータベースストレージ２５６内の正確なコンポーネントに向けることができる。いくつかの実施例において、データベースストレージ２５６は、図１Ａ及び１Ｂを参照して上述されたように、多くの異なる組織によって共有されるオンデマンドデータベースシステムである。
【００４２】
図２Ｂは、いくつかの実施例に従って、オンデマンドデータベースサービス環境の構造上のコンポーネントの例を更に説明するシステム図を示す。ポッド２４４は、オンデマンドデータベースサービス環境２００のユーザへサービスを与えるために使用され得る。いくつかの実施例において、各ポッドは、様々なサーバ又は他のシステムを含む。ポッド２４４は、１つ以上のコンテンツバッチサーバ２６４、コンテンツ検索サーバ２６８、クエリサーバ２８２、ファイルフォースサーバ２８６、アクセス制御システム（Access  Control  System）（ＡＣＳ）サーバ２８０、バッチサーバ２８４、及びａｐｐサーバ２８８を含む。ポッド２４４はまた、データベースインスタンス２９０、クイックファイルシステム（Quick  File  Systems）（ＱＦＳ）２９２、及びインデクサ２９４を更に含むことができる。いくつかの実施例において、ポッド内のサーバ間の一部又は全ての通信は、スイッチ２３６を介して送信され得る。
【００４３】
いくつかの実施例において、ａｐｐサーバ２８８は、ポッド２４４を介してオンデマンドデータベースサービス環境２００によって提供されるアプリケーションの構成を支援するためのプロシージャ（例えば、プログラム、ルーチン、スクリプト）の実行に専用のハードウェア又はソフトウェアフレームワークを含む。いくつかの実施例において、ａｐｐサーバ２８８のハードウェア又はソフトウェアフレームワークは、本明細書で記載される様々な方法又はプロセスのブロックの実行を含め、本明細書で記載されるサービスの動作を実行するよう構成される。いくつかの代替の実施例において、２つ以上のａｐｐサーバ２８８が含まれ、そのような方法を実行するよう協働することができ、あるいは、本明細書で記載される１つ以上の他のサーバが、開示される方法を実行するよう構成され得る。
【００４４】
コンテンツバッチサーバ２６４は、ポッド内部のリクエストを処理することができる。いくつかのそのようなリクエストは、長く続き、又は特定の顧客に結び付けられ得ない。例えば、コンテンツバッチサーバ２６４は、ログマイニング、クリーンアップ作業、及びメンテナンスタスクに関連したリクエストを処理することができる。コンテンツ検索サーバ２６８は、クエリ及びインデクサ機能を提供することができる。例えば、コンテンツ検索サーバ２６８によって提供される機能は、オンデマンドデータベースサービス環境で記憶されているコンテンツをユーザが検索することを可能にすることができる。ファイルサーバ２８６は、ファイルストレージ２９８に記憶されている情報に対するリクエストを管理することができる。ファイルストレージ２９８は、ドキュメント、画像、及び基本ラージオブジェクト（Basic  Large  OBjects）（ＢＬＯＢ）のような情報を記憶することができる。ファイルフォースサーバ２８６を用いて情報のリクエストを管理することによって、データベース上の画像フットプリントは低減され得る。クエリサーバ２８２は、１つ以上のファイルシステムから情報を取り出すために使用され得る。例えば、クエリシステム２８２は、ａｐｐサーバ２８８から情報のリクエストを受け、ポッドの外にあるＮＦＳ２９６へ情報クエリを送ることができる。
【００４５】
ポッド２４４は、異なる組織が同じデータベースへのアクセスを共有するマルチテナント環境として構成されたデータベースインスタンス２９０を共有することができる。その上、ポッド２４４によって提供されるサービスは、様々なハードウェア又はソフトウェアリソースを要求し得る。いくつかの実施例において、ＡＣＳサーバ２８０は、データ、ハードウェアリソース、又はソフトウェアリソースへのアクセスを制御する。いくつかの実施例において、バッチサーバ２８４は、指定された時点でタスクを実行するために使用されるバッチジョブを処理する。例えば、バッチサーバ２８４は、バッチジョブをトリガするよう、ａｐｐサーバ２８８のような他のサーバへ命令を送ることができる。
【００４６】
いくつかの実施例において、ＱＦＳ２９２は、カリフォルニア州サンタクララのサンマイクロシステムズから入手できるオープンソースのファイルシステムである。ＱＦＳは、ポッド２４４内で利用可能な情報の記憶及びアクセスための高速アクセスファイルシステムとして働くことができる。ＱＦＳ２９２は、いくつかのボリューム管理機能をサポートすることができ、多くのディスクがファイルシステムにまとめられることを可能にする。ファイルシステムメタデータは、別個の組のディスクに保持され得る。これは、長いディスクシークが許容され得ないアプリケーションをストリーミングするのに有用であることができる。よって、ＱＦＳシステムは、ネットワークファイルシステム２９６又は他の記憶システムに記憶されているデータを識別し、取り出し、移動し、又は更新するよう、１つ以上のコンテンツ検索サーバ２６８又はインデクサ２９４と通信することができる。
【００４７】
いくつかの実施例において、１つ以上のクエリサーバ２８２は、ポッド２４４の外部に記憶されている情報を検索又は更新するようＮＦＳ２９６と通信する。ＮＦＳ２９６は、ポッド２４４内にあるサーバが、ローカルストレージがアクセスされる方法と同様の様態でネットワーク上のファイルにアクセスするための情報にアクセスすることを可能にすることができる。いくつかの実施例において、クエリサーバ２８２からのクエリは、ロードバランサ２２８を介してＮＦＳ２９６へ送られる。ロードバランサ２２８は、オンデマンドデータベースサービス環境で利用可能な様々なリソースにわたってリソースリクエストを分配することができる。ＮＦＳ２９６はまた、ＮＦＳ２９６で記憶されている情報を更新するよう、又はポッド２４４内に位置するサーバによる使用のためにＱＦＳ２９２へ情報を供給するよう、ＱＦＳ２９２と通信することができる。
【００４８】
いくつかの実施例において、ポッドは、１つ以上のデータベースインスタンス２９０を含む。データベースインスタンス２９０は、情報をＱＦＳ２９２へ送ることができる。情報がＱＦＳへ送られる場合に、それは、追加のデータベース呼び出しを使用することなしに、ポッド２４４内のサーバによる使用のために利用可能であることができる。インデクサ２９４は、データベース２９０又はＱＦＳ２９２で利用可能な情報のインデックスを供給することができる。インデックス情報は、ファイルフォースサーバ２８６又はＱＦＳ２９２へ供給され得る。
【００４９】
［企業ソーシャルネットワーキング］
最初に上述されたように、いくつかの実施例において、本明細書で記載される方法、プロセス、装置及びシステムのいくつかは、企業ソーシャルネットワーキングを実装するか、又はそれとの関連で使用され得る。いくつかのオンライン企業ソーシャルネットワークは、ビジネス、組織及び他の企業（それらの全てが本明細書では同義的に使用される。）を含む様々な設定において実装され得る。例えば、オンライン企業ソーシャルネットワークは、ビジネス団体、提携若しくは組織内のユーザ、又はそのような企業内のユーザのグループをつなぐよう実装され得る。例えば、Ｃｈａｔｔｅｒは、様々な企業に関連した目的のためにお互いとデータを共有し、通信し、そして協力するよう、企業組織内の従業員であるユーザによって使用され得る。本明細書で記載される開示される方法、プロセス、装置、システム及びコンピュータ可読記憶媒体のいくつかは、システム１６に関して上述されたように、マルチテナントデータベース環境での使用のために構成又は設計され得る。実施例において、夫々の組織又は組織内のグループは、システムの各々のテナントであることができる。
【００５０】
いくつかの実施例において、データベースシステム１６の各ユーザは、“ユーザプロフィール”に関連付けられる。ユーザプロフィールは、一般に、所与のユーザに関するデータの一群を指す。データは、名称、タイトル、電話番号、写真、略歴、又はステータス（例えば、ユーザが現在行っていること、考えていること又は表明していることを記述するテキスト）のような一般的な情報を含むことができる。後述されるように、データは、他のユーザによって作成されたメッセージを含むことができる。複数のテナントが存在する実施例では、ユーザは、通常は、特定のテナント（又は“組織”）と関連する。例えば、ユーザは、データベースシステム１６のテナントである組織の販売員であってよい。
【００５１】
“グループ”は、一般に、組織内のユーザの一群を指す。いくつかの実施例において、グループは、同じか若しくは類似した属性を持ったユーザとして、又は会員の地位若しくは加入によって、定義され得る。グループは、企業ソーシャルネットワーク内のユーザに対して様々な可視性を有することができる。例えば、いくつかのグループは非公開であることができ、一方、他は公であることができる。いくつかの実施例において、非公開のグループ内のメンバーになるために、且つ、そのグループのグループフィード上でフィードアイテムを公開し見る能力を有するために、ユーザは、グループに加入され（そして、例えば、グループの管理者又は所有者によって受け入れられ）るか、グループに加入するよう招待され（そして、受け入れられ）るか、又は（例えば、グループの管理者又は所有者によって）グループに直接加入されるよう要求しなければならない。いくつかの実施例において、企業ソーシャルネットワーク内の如何なるユーザも、企業ソーシャルネットワーク内の公開グループに加入し又はそれを追うことができる（よって、公開グループの“メンバー”になる）。
【００５２】
“レコード”は、一般に、データベースシステム１６のユーザ又はユーザのグループによって作成されたデータオブジェクトのインスタンスのようなデータエンティティを指す。そのようなレコードは、とりわけ、例えば、アカウント、ケース、機会、リード、ファイル、ドキュメント、注文、価格表、製品、解決法、報告及び予測を含むことができる。例えば、レコードは、ユーザ又はユーザの組織のビジネスパートナー又は潜在的なビジネスパートナー（例えば、クライアント、ベンダー、配給業者、など）のためであることができ、企業全体、企業の子会社、又は企業の窓口を記述する情報を含むことができる。他の例として、レコードは、既存のパートナーとの機会（例えば、販売可能性）のような、ユーザ又はユーザのグループが取り組んでいるプロジェクト、又はユーザが手に入れようと試みているプロジェクトであることができる。レコードは、オブジェクトの構造によって定義されるデータフィールド（例えば、特定のデータタイプ及び目的のフィールド）を有している。レコードはまた、ユーザ又は組織によって定義されたカスタムフィールドを有することができる。フィールドは、他のレコードを含む（か、又はそれへのリンクを含む）ことができ、それによって、レコード間の親子関係を提供する。
【００５３】
レコードはまた、企業ソーシャルネットワーク内のユーザに対して様々な可視性を有することができる。例えば、いくつかのレコードは非公開であることができ、一方、他は公であることができる。いくつかの実施例において、非公開レコードにアクセスするために、且つ、レコードのレコードフィードでフィードアイテムを公開し見る能力を有するために、ユーザは、レコードに加入され（そして、例えば、レコードの管理者又は所有者によって受け入れられ）るか、レコードに加入するよう招待され（そして、受け入れられ）るか、又は（例えば、レコードの管理者又は所有者によって）レコードに直接加入されか若しくはレコードを共有されるよう要求しなければならない。いくつかの実施例において、企業ソーシャルネットワーク内の如何なるユーザも、企業ソーシャルネットワーク内の公開レコードに加入し又はそれを追うことができる。
【００５４】
いくつかのオンライン企業ソーシャルネットワークにおいて、ユーザはまた、お互いに“友達申請する”（friending）とも時々呼ばれる、お互いと“リンク”又は“接続”を確立することによってお互いを追う（フォローする）ことができる。そのようなリンクを確立することによって、１人のユーザは、他のユーザによって生成された、他のユーザに関して生成された、又は別なふうに他のユーザに関連付けられた情報を見ることができる。例えば、第１ユーザは、第２ユーザのプロフィールページに第２ユーザによってポストされた情報を見ることができる。１つの例において、第１ユーザが第２ユーザをフォローしている場合に、第１ユーザのニュースフィードは、第２ユーザのプロフィールフィードに投稿された第２ユーザからのポストを受け取ることができる。
【００５５】
いくつかの実施例において、ユーザは、フィードにおいてフィードアイテム又は入力として提示され得る情報の項目を含む１つ以上の企業ネットワークフィード（本明細書では単に“フィード”とも呼ばれる。）にアクセスすることができる。情報の項目は、例えば、ユーザ、グループ、組織（ｏｒｇ）、レコード、などに関連したパブリケーション、ファイル、フィード追跡更新を含んでよい。ネットワークフィードは、上述されたユーザシステム１２のディスプレイのような表示装置上のグラフィカルユーザインターフェイス（ＧＵＩ）において表示され得る。パブリケーションは、様々なソースからの様々な企業ソーシャルネットワーク情報又はデータを含むことができ、データベースシステム１６において、例えば、テナントデータベース２２において記憶され得る。特定のユーザ、グループ、組織、レコード、などに関連したフィードアイテムのアグリゲーションは、ユーザフィード、グループフィード、組織フィード、レコードフィード、などと呼ばれることがある。例えば、いくつかの実施例において、ユーザのための又はユーザに関するフィードアイテムは、各々のユーザフィードにおいて提示され得、グループのための又はグループに関するフィードアイテムは、各々のグループフィードにおいて提示され得、レコードのための又はレコードに関するフィードアイテムは、各々のレコードフィードにおいて提示され得る。第１ユーザ、第１グループ、又は第１レコードをフォローする第２ユーザは、第２ユーザのニュースフィードでの表示のために、第１ユーザ、第１グループ又は第１レコードに関連したフィードアイテムを自動的に受け取ることができる。いくつかの実施例において、ユーザフィードはまた、各々のユーザが加入するグループのグループフィードからのフィードアイテムとともに、各々のユーザが加入するレコードのレコードフィードからのフィードアイテムを表示することができる。
【００５６】
語“フィードアイテム”（又はフィードエレメント）は、フィードにおいて見ることができる情報の項目を指す。フィードエレメントは，フィードが含む最高位のオブジェクトであってよい。フィードエレメントタイプは、特定のフィードエレメントの特性を記述してよい。フィードエレメントの１つのタイプがフィードアイテムである。フィードアイテムは、メッセージ（例えば、ユーザによって生成されたテキストのポスト又はコメント）、ファイル（例えば、ドキュメント、オーディオデータ、イメージデータ、ビデオデータ又は他のデータ）、及びユーザ、グループ又はレコードに関連した“フィード追跡された”（feed-tracked）更新（フィード追跡された更新については、以下で更に詳細に記載される。）のような、パブリケーションを提示するか、あるいは、別なふうにそれを含むことができる。フィードアイテム及びフィード全般は、メッセージ、ファイル、及びフィード追跡された更新を含むことができる。ドキュメント及び他のファイルが、ポスト又はコメントに含まれ、それとリンクされ、又はそれに添付され得る。例えば、ポストは、ドキュメントと組み合わせてテキストのステートメントを含むことができる。フィードアイテムは、関連するフィードが、例えば、ユーザのコンピュータ装置上で、グラフィカルユーザインターフェイス（ＧＵＩ）において表示される場合に、発生順又は他の適切な若しくは望ましい順序（ユーザによってカスタマイズ可能であることができる。）で編成され得る。通常、フィードアイテムは、シングルペアレントを有してよく、１つのコミュニティ／組織に又は全てのコミュニティ／組織にわたって見られ得る。その上、フィードアイテムは、ブックマーク、キャンバス、コンテンツ、コメント、リンク、投票、などのような能力を有することができる。フィードエレメントの他のタイプには、バンドル及びリコメンデーションがある。バンドルは、常にテキストのみの値へグレスフルデクラデーションされ得るメッセージセグメント、オブジェクト、タグ、エレメント、属性、又は他の同様のコンストラクトから構成された本体を更に具備するフィードエレメントのコンテナであってよい。リコメンデーションは、リコメンデーション能力を備えたフィードエレメントであってよく、コンテキストユーザにとって有益であるフォローすべきレコード、参加すべきグループ、又はアプリケーションを提案する。
【００５７】
様々な実施形態に従って、フィードアイテムは、他の能力に加えて、動的コンテンツプレースホルダを更に含んでよい。これについては、後で更に詳細に説明される。
【００５８】
ポストのようなメッセージは、語、語句、記述、質問、環状表現、又はシンボルのような、英数字又は他の文字ベースのユーザ入力を含むことができる。いくつかの実施例において、コメントは如何なるフィードアイテムに対して行われ得る。いくつかの実施例において、コメントは、フィード追跡更新、ポスト、又はステータス更新のような特定のフィードアイテムに明示的に結び付けられたリストとして編成される。いくつかの実施例において、コメントはフィードアイテムの（階層的な意味での）最初の層ではリストアップされなくてよく、特定の第１層フィードアイテムから枝分かれする第２の層としてリストアップされる。いくつかの実施例において、“好き”又は“嫌い”も、特定のポスト、コメント又は他のパブリケーションに応答して投稿され得る。
【００５９】
“フィード更新”とも本明細書で呼ばれる“フィード追跡更新”は、フィードアイテムとして提示され得る他のタイプのパブリケーションであり、一般的に、イベントを表すデータを指す。フィード追跡更新は、１つ以上のフィードにおける可能な包含のために１つ以上のフィードアイテムとして供給されるようイベントに応答してデータベースシステムによって生成されるテキストを含むことができる。１つの実施例において、データは、最初に、データベースシステムにおいて、例えば、テナントデータベース２２に格納され、その後に、データベースシステムによって、イベントを記述するテキストを作成するために使用され得る。データ及びテキストは両方ともが、本明細書で使用されるように、フィード追跡更新であることができる。いくつかの実施例において、イベントは、レコードの更新であることができ、ユーザによる特定の動作によってトリガされ得る。どのアクションがイベントをトリガするかは、設定可能であることができる。どのイベントがフィード追跡更新を有するか、及びどのフィード更新がどのユーザへ送られるかも、設定可能であることができる。メッセージ及びフィード更新は、レコードのフィールド又は子オブジェクトとして記憶され得る。例えば、フィードは、レコードの子オブジェクトとして記憶され得る。
【００６０】
上述されたように、ネットワークフィードは、オンラインのソーシャルネットワークの個々のユーザに特有であることができる。例えば、ユーザニュースフィード（又は“ユーザフィード”）は、一般的に、特定のユーザのために生成されたフィードアイテムのアグリゲーションを指し、いくつかの実施例においては、ユーザのホームページ上で各々のユーザにだけ見える。いくつかの実施例において、ユーザプロフィールフィード（同じく“ユーザフィード”と呼ばれる。）は、特定のユーザによって又は特定のユーザのために生成されたフィードアイテムのアグリゲーションを指す他のタイプのユーザフィードであり、いくつかの実施例においては、ユーザのプロフィールページ上で各々のユーザ及びそのユーザをフォローする他のユーザによってのみ見える。より具体的な例として、ユーザプロフィールフィードにおけるフィードアイテムは、他のユーザが特定のユーザに関して作成するか又は特定のユーザへ送信するポスト及びコメント、並びに特定のユーザによってなされたステータス更新を含むことができる。他の例として、ユーザプロフィールフィードにおけるフィードアイテムは、特定のユーザによってなされたポスト、及び特定のユーザの動作に基づき開始されたフィード追跡更新を含むことができる。
【００６１】
上述されたように、ネットワークフィードは、オンラインの企業ソーシャルネットワークの企業ユーザのグループに特有であることができる。例えば、グループニュースフィード（又は“グループフィード”）は、一般に、データベースシステム１６のユーザの特定のグループのために又はそのグループに関して生成されたフィードアイテムのアグリゲーションを指し、グループのプロフィールページ上でグループをフォローするか又はそのグループに属しているユーザによって見られ得る。例えば、斯様なフィードアイテムは、各々のグループへの変更（又はグループにより共有されているドキュメント又は他のファイルへの変更）に関するフィード追跡更新又はグループのメンバーによってなされたポストを含むことができる。グループのメンバーは、フィード及びグループの許可設定に従ってグループフィードを見、そして、それに対してポストすることができる。グループコンテキストにおけるパブリケーションは、ドキュメント、ポスト、又はコメントを含むことができる。いくつかの実施例において、グループフィードはまた、グループ全体、グループの目的、グループの説明、グループのステータス、並びにグループに関連して記憶されているグループレコード及び他のオブジェクトに関するパブリケーション及び他のフィードアイテムを含む。ポスト、コメント、好き、などのような更新及びメッセージを含むパブリケーションのスレッドは、時間にわたる会話及び変更を定義することができる。グループのフォローは、例えば、レコードにおいて又はドキュメント若しくは他のファイル（レコードに関連し得る。）において、ユーザがグループ内の他のユーザと協調することを可能にする。
【００６２】
同じく上述されたように、ネットワークフィードは、オンラインの企業ソーシャルネットワーク内のレコードに特有であることができる。例えば、レコードニュースフィード（又は“レコードフィード”）は、一般に、データベースシステム１６における特定のレコードに関するフィードアイテムのアグリゲーションを指し、レコードのプロフィールページ上でレコードに加入しているユーザによって見られ得る。例えば、斯様なフィードアイテムは、レコードに関してユーザによってなされたポスト、又は各々のレコードへの変更（又はレコードに関連したドキュメント又は他のファイルへの変更）に関するフィード追跡更新を含むことができる。レコードの加入者は、フィード及びレコードの許可設定に従ってレコードフィードを見、そして、それに対してポストすることができる。レコードコンテキストにおけるパブリケーションはまた、ドキュメント、ポスト、又はコメントを含むことができる。いくつかの実施例において、レコードフィードはまた、レコード全体、レコードの目的、レコードの説明、及びレコードに関連して記憶されている他のレコード又は他のオブジェクトに関するパブリケーション及び他のフィードアイテムを含む。ポスト、コメント、好き、などのような更新及びメッセージを含むパブリケーションのスレッドは、時間にわたる会話及び変更を定義することができる。レコードのフォローは、例えば、レコードにおいて又はレコードに関連したドキュメント若しくは他のファイルにおいて、ユーザがそのレコードの進捗を追跡し、レコードに加入する他のユーザと協調することを可能にする。
【００６３】
いくつかの実施例において、データは、“エンティティオブジェクト”（単に“エンティティ”とも本明細書で呼ばれる。）の形で、テナントデータベース２２を含むデータベースシステム１６において記憶される。いくつかの実施例において、エンティティは、“レコードオブジェクト”及び“協調オブジェクト”に分類される。いくつかの斯様な実施例において、レコードオブジェクトは、企業ソーシャルネットワーク内の全てのレコードを含む。各レコードは、包括的なレコードオブジェクトのサブオブジェクトと見なされ得る。いくつかの実施例において、協調オブジェクトは、例えば、“ユーザオブジェクト”、“グループオブジェクト”、“グループユーザ間系オブジェクト”、“レコードユーザ関係オブジェクト”及び“フィードアイテムオブジェクト”を含む。
【００６４】
いくつかの実施例において、ユーザオブジェクトは、例えば、ユーザに関するメタデータを含む各々のユーザに関する又は関係がある情報にユーザを関連付ける“ユーザテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、ユーザテーブルは、組織内の全てのユーザを含む。いくつかの実施例において、組織内の夫々の部、課、チーム又は他の下位組織ごとにユーザテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、ユーザテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのユーザを含むことができる。いくつかの実施例において、各ユーザは、少なくともユーザの各々の組織内で一意であるユーザ識別子（“ユーザＩＤ”）によって識別され得る。いくつかの実施例において、各組織も、一意の組織識別子“ＯｒｇＩＤ”を有している。
【００６５】
いくつかの実施例において、グループオブジェクトは、例えば、グループに関するメタデータを含む各々のグループに関する又は関係がある情報にグループを関連付ける“グループテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、グループテーブルは、組織内の全てのグループを含む。いくつかの実施例において、組織内の夫々の部、課、チーム又は他の下位組織ごとにグループテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、グループテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのグループを含むことができる。いくつかの実施例において、各グループは、少なくとも各々の組織内で一意であるグループ識別子（“グループＩＤ”）によって識別され得る。
【００６６】
いくつかの実施例において、データベースシステム１６は、“グループユーザ間系オブジェクト”を含む。グループユーザ間系オブジェクトは、各々のグループに加入しているユーザにグループを関連付ける“グループユーザテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、グループユーザテーブルは、組織内の全てのグループを含む。いくつかの他の実施例では、組織内の部、課、チーム又は他の下位組織ごとにグループユーザテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、グループユーザテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのグループを含むことができる。
【００６７】
いくつかの実施例において、レコードオブジェクトは、例えば、レコードに関するメタデータを含む各々のレコードに関する又は関係がある情報にレコードを関連付ける“レコードテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、レコードテーブルは、組織内の全てのレコードを含む。いくつかの他の実施例では、組織内の夫々の部、課、チーム又は他の下位組織ごとにレコードテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、レコードテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのレコードを含むことができる。いくつかの実施例において、各レコードは、少なくとも各々の組織内で一意であるレコード識別子（“レコードＩＤ”）によって識別され得る。
【００６８】
いくつかの実施例において、データベースシステム１６は、“レコードユーザ関係オブジェクト”を含む。レコードユーザ関係オブジェクトは、各々のレコードに加入しているユーザにレコードを関連付ける“レコードユーザテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、レコードユーザテーブルは、組織内の全てのレコードを含む。いくつかの他の実施例では、組織内の夫々の部、課、チーム又は他の下位組織ごとにレコードユーザテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、レコードユーザテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのレコードを含むことができる。
【００６９】
いくつかの実施例において、データベースシステム１６は、“フィードアイテムオブジェクト”を含む。フィードアイテムオブジェクトは、各々のユーザフィード、レコードフィード、及びグループフィードにおいてフィードアイテムとして表示されるポスト、コメント、ドキュメント又は他のパブリケーションにユーザ、レコード及びグループを夫々関連付ける“フィードアイテムテーブル”として表現又は概念化され得るデータ構造である。いくつかの実施例において、フィードアイテムテーブルは、組織内の全てのフィードアイテムを含む。いくつかの実施例において、組織内の夫々の部、課、チーム又は他の下位組織ごとにフィードアイテムテーブルが存在し得る。組織がマルチテナント企業ソーシャルネットワークプラットフォームのテナントである実施例では、フィードアイテムテーブルは、マルチテナント企業ソーシャルネットワークプラットフォームのテナントである全ての組織内の全てのフィードアイテムを含むことができる。
【００７０】
企業ソーシャルネットワークのニュースフィードは、それらが情報に優先順位をつける点を含め、様々に、典型的な顧客対応ソーシャルネットワークニュースフィード（例えば、Ｆａｃｅｂｏｏｋ）と相違する。顧客対応ソーシャルネットワークでは、一般に、ソーシャルネットワークのユーザが、彼らが個人的に関心がある情報を見つけるのを助けることに焦点を置いている。しかし、企業ソーシャルネットワークでは、いくつかの場合、用途、又は実施例において、企業の観点から、関係がある企業関連情報のみをユーザに分配し、無関係な情報分配を制限することが望まれ得る。いくつかの実施例において、関係がある企業関連情報は、企業によって又は企業のために保持されているデータベースレコードへの更新のような、情報を知っている受取人が企業に利益をもたらすと予測又は期待されうる情報を指す。よって、関連性の意味は、従業員に対応する又は組織メンバーに対応する企業ソーシャルネットワークと比較して、顧客に対応するソーシャルネットワークとの関連で大いに相違する。
【００７１】
いくつかの実施例において、１人以上の企業ユーザからのポスト又はコメントのようなデータが、オンラインの企業ソーシャルネットワーク内の特定のユーザ、グループ、レコード又は他のオブジェクトについてネットワークフィードに投稿される場合に、電子メール通知又は他のタイプのネットワーク通信が、１以上のユーザ、グループ、レコード又は他のフィードにおけるフィードアイテムとしてのデータの包含に加えて、各々のユーザ、グループ、レコード又はオブジェクトをフォローしている全てのユーザへ送られてよい。いくつかのオンラインの企業ソーシャルネットワークにおいて、斯様な通知の発生は、より大きい会話の部分を形成し得る公開される入力の最初のインスタンスに制限される。例えば、通知は、最初のポストのために送られるのであって、そのポストに関するコメントのためには送られ得ない。いくつかの他の実施例では、別の通知が、ポストに関するコメントのような、夫々の斯様なパブリケーションのために送られる。
【００７２】
図３は、いくつかの実施例に従って、グループプロフィールページにおけるグループフィードの例を示す。図示されるように、フィードアイテム３１０は、ユーザがドキュメントをグループフィードにポストしたことを示す。テキスト“Bill  Bauer  has  posted  the  document  Competitive  Insights”（Bill  BauerはドキュメントCompetitive  Insightsをポストした）は、レコードが変更されることに関してフィード追跡更新と同じようにデータベースシステムによって生成され得る。フィードアイテム３２０は、Ella  Johnson、James  Saxon、Mary  Moore及びBill  Bauerからのコメント３３０とともに、グループへのポストを示す。
【００７３】
図４Ａは、いくつかの実施例に従って、レコードプロフィールページにおけるレコードフィードの例を示す。レコードフィードは、フィード追跡更新、ポスト及びコメントを含む。フィードアイテム４１０は、承認のために割引を提起するイベントに基づくフィード追跡更新を示す。フィード追跡更新は、示されているように、自動的にシステムによって生成されてよい。他のフィードアイテムは、ポストに対してなされた、例えばErica  Law及びJake  Rappからのレコード及びコメントに対してなされた、例えば、Bill  Bauerからのポストを示す。その上、図４Ａのユーザインターフェイスは、後述されるように、ユーザがポストされるべきコンテンツを入力し得る新ポストフィールド４３０を含む。
【００７４】
図４Ｂは、オーサリングパネル又はウィンドウ４２０を伴った、図４Ａで見られたレコードフィードの例を示す。パネル４２０は、オーサリングツールのユーザインターフェイスＧＵＩを有する。オーサリングツールは、いくつかの実施形態において、１つ以上のプロフィールページ上でその目的のために専用のソフト“ボタン”（図示せず。）をクリックすることによって、起動されてよい。他の実施形態では、オーサリングツールは、新ポストフィールド４３０（“What  are  you  working  on?”（なにをやっているの？）を参照されたい。）においてどこかをクリックすることによって起動されてよい。オーサリングツールが起動される場合に、それは、パネル４２０又は新しいウィンドウのようなパネルを開いてよい。
【００７５】
［フィードアイテムにおける動的なインラインコンテンツインジェクション］
図５は、様々な例となる実施形態に従って、ユーザシステム１２のコンポーネントがデータベースシステム１６と相互に作用する配置５００を示す。図５において、同じ番号が付けられた項目は、図１Ａ乃至４Ｂに関して記載されたとおりである（なお、図１Ａ乃至４Ｂによって示された全ての項目が図５で示されているわけではない。）。図５によって示されている例では、データベースシステム１６は、マイクロブロギングプラットフォーム５５０を実装してよい。これは、上述された企業ソーシャルネットワークの部分であってよい。
【００７６】
ユーザシステム１２を参照すると、メモリシステム１２Ｂは、オペレーティングシステム（Operating  System）５０５、アプリケーション５１０、及び１つ以上のデータベース（図示せず。）を含んでよい。ＯＳ５０５は、コンピュータハードウェア及びソフトウェアリソースを管理し、ユーザシステム１２のアプリケーションのための共通のサービスを提供してよい。ＯＳ５０５は、インターフェイスをハードウェアデバイスに提供し、それによって、ＯＳ５０５及びアプリケーション５１０がハードウェア機能にアクセスすることを可能にする１つ以上のドライバ及び／又はＡＰＩを含んでよい。いくつかの実施形態において、ＯＳ５０５は、２つ以上の別個のアプリケーションを接続するか、又はアプリケーションを、ＯＳ５０５及び／又はドライバ／ＡＰＩから利用可能なものを超えて、基礎をなすハードウェアコンポーネントと接続し得るミドルウェアを含んでよい。ＯＳ５０５は、汎用のオペレーティングシステム又は、ユーザシステム１２のために特に記述され、それに合わせられているオペレーティングシステムであってよい。
【００７７】
アプリケーション５１０は、ユーザシステム１２で実行されるよう設計されたソフトウェアアプリケーションであってよく、上述されたのと同じか又は類似した様態でマイクロブロギングプラットフォーム５５０にアクセスするために使用されてよい。いくつかの実施例において、アプリケーション５１０は、専用のアプリケーションコンテナ内で動作するよう設計されたネイティブアプリケーション、ユーザシステム１２によって作動されるウェブブラウザにおいて動作するよう設計されたウェブアプリケーション、又は例えば、専用のアプリケーションコンテナ若しくはスケルトン内でウェブアプリケーションをレンダリングし動作させるよう設計されたハイブリッドアプリケーションであってよい。アプリケーション５１０がネイティブアプリケーション、ウェブアプリケーション、又はハイブリッドアプリケーションとして実装されるかどうかに関わらず、アプリケーション５１０を実装するプロセッサシステム１２Ａは、マイクロブロギングプラットフォーム５５０とインターフェイス接続すること、データをデータベースシステム１６に要求して取得すること、及びアプリケーションコンテナ若しくはブラウザにおいてＧＵＩをレンダリングすることが可能であってよい。更には、アプリケーション５１０はまた、ユーザシステムが認証クレデンシャル（例えば、ユーザ識別子（ユーザＩＤ）、パスワード、個人識別番号（Personal  Identification  Number）（ＰＩＮ）、など）をマイクロブロギングプラットフォーム５５０に供給することを可能にして、マイクロブロギングプラットフォーム５５０がユーザシステム１２のユーザの身元を認証し得るようにしてよい。
【００７８】
アプリケーション５１０は、例えば、ユーザシステム１２が、スマートフォン、タブレットコンピュータ、及び同様のもののようなモバイル装置で実装される場合に、プラットフォーム特有であってよい。アプリケーション５１０は、ＰＨＰ、Ｎｏｄｅ．ｊｓ、ＡＳＰ．ＮＥＴ、及び／又はＨＴＭＬをレンダリングするその他の同様の技術のような、サーバ側開発ツール及び／又はプログラミング言語により；ＨＴＭＬ、Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅｓｈｅｅｔｓ（ＣＳＳ）、ＪａｖａＳｃｒｉｐｔ、ＪＱｕｅｒｙ、及び同様のもののようなウェブサイト開発ツール及び／又はプログラミング言語を用いて；且つ／あるいは、プラットフォーム特有の開発ツール及び／又はプログラミング言語（例えば、Ｓａｌｅｓｆｏｒｃｅ（登録商標）  Ａｐｅｘ、Ｓａｌｅｓｆｏｒｃｅ  Ｖｉｓｕａｌｆｏｒｃｅ（登録商標）、Ｓａｌｅｓｆｏｒｃｅ  Ｌｉｇｈｔｎｉｎｇ（登録商標）、Ｓａｌｅｓｆｏｒｃｅ  Ｗａｖｅ  Ｄａｓｈｂｏａｒｄ  Ｄｅｓｉｇｎｅｒ、Ｓａｌｅｓｆｏｒｃｅ  Ｆｏｒｃｅ．ｃｏｍ  ＩＤＥ、Ａｎｄｏｒｏｉｄ（登録商標）  Ｓｔｕｄｉｏ統合開発環境（Integrated  Development  Environment）（ＩＤＥ）、Ａｐｐｌｅ  ｉＯＳソフトウェア開発キット（Software  Development  Kit）（ＳＤＫ）、など）を用いて、開発されてよい。語“プラットフォーム特有”は、ユーザシステム１２によって実装されるプラットフォーム、データベースシステム１６によって実装されるプラットフォーム、又はマイクロブロギングプラットフォーム５５０のプラットフォームを指してよい。いくつかの実施形態において、マイクロブロギングプラットフォーム５５０の所有者／オペレータは、組織／テナントのエージェントによってその組織／テナントの企業ソーシャルネットワークにアクセスするために使用されるように、アプリケーション５１０を予め構築していてよい。メモリシステム１２Ｂはまた、データシステム１６によって記憶されているテナントデータにアクセスするために使用されるアプリケーションを記憶してよい（図示せず。）。いくつかの実施形態において、データベースシステム１６の所有者／オペレータは、組織／テナントのエージェントによってテナントデータベース２２に記憶されているテナントデータにアクセスするために使用されるように、斯様なアプリケーションを予め構築していてよい。このとき、ユーザシステム１２のユーザは、組織／テナントのエージェントであってよい。ＯＳ５０５、データベース、及びアプリケーション５１０の適切な実装、並びにユーザシステム１２の一般的な機能は、知られており、あるいは、商業的に利用可能であり、特に、本明細書での開示に照らして、当業者によって容易に実施される。
【００７９】
上述されたように、アプリケーション５１０を実装するプロセッサシステム１２Ａは、マイクロブロギングプラットフォーム５５０とインターフェイス接続すること、及びアプリケーションコンテナ又はブラウザにおいてＧＵＩ（例えば、本明細書で説明される様々なＧＵＩ）をレンダリングすることが可能であってよい。ＧＵＩは、１つ以上のウィジェット又はグラフィカル制御要素（Graphical  Control  Elements）（ＧＣＥ）を含んでよい。これらは、ユーザシステム１２のユーザが、マイクロブロギングポストを構成し、構成されたポストを公開のためにマイクロブロギングプラットフォーム５５０へ送り、ブラウザ又はアプリケーションコンテナによってレンダリング／表示されるマイクロブロギングポスト又はフィードを要求又はフェッチすることを可能にしてよい。上記のウィジェット／ＧＵＩのうちの１つは、ユーザシステム１２のユーザが、マイクロブロギングプラットフォーム５５０の所望のネットワークフィードにおいてポストされるポストデータ（例えば、テキスト、画像、映像、など）を入力することを可能にするオーサリングツールであってよい。いくつかの実施形態において、アプリケーション５１０は、ユーザがテキストをオーサリングツールに入力する場合にＤＰＩＤのリストを生成するオートコレクト（又はオートコンプリート）アプリケーション（又はユーザシステム１２によって実装される別のオートコレクト／コンプリートアプリケーションを呼ぶ。）を含んでよい。斯様なＧＵＩ及びウィジェット／ＧＣＥの例は、図８乃至１７に関して図示及び記載される。
【００８０】
様々な実施形態に従って、ユーザシステム１２のユーザがポストを構成する場合に、ユーザは動的コンテナプレースホルダ（Dynamic  Content  Placeholder）（ＤＣＰ）を加えてよい。これは、動的コンテンツがポストに入れられるためのプレースホルダであってよい。ＤＣＰは、データプロバイダ識別子（Data  Provider  Identifier）（ＤＰＩＤ）及びデータプロバイダパラメータ（Data  Provider  Parameter）（ＤＰＰ）を含むか又は示してよい。ＤＰＩＤは、特定のデータプロバイダを識別してよく、ＤＰＰは、ＤＰＩＤに関連したデータプロバイダから特定のデータ項目又はデータセットを取得するために使用されてよい。
【００８１】
ユーザシステム１２（又は何らかの他のユーザシステム１２）がポスト（又はポストを含むフィード）をフェッチ又はリフレッシュするたびに、ＤＰＰは、ＤＰＩＤに関連したデータプロバイダへ送られてよく、データプロバイダから取得されたデータは、ＤＣＰの場所／位置でポスト内に置かれてよい。ユーザシステム１２のユーザがＤＣＰを含むポストを構成し、ＧＣＥ（例えば、送信又は投稿ボタン、及び同様のもの）を選択してポストを公開した後、アプリケーション５１０は、マイクロブロギングプラットフォーム５５０へ送られるメッセージを生成してよい。
【００８２】
例えば、プロセッサシステム１２Ａは、ユーザ入力（例えば、ＧＣＥの選択）に応答してリクエストメッセージ５１１（“リクエスト５１１”などとも呼ばれる。）を生成しマイクロブロギングプラットフォーム５５０へ送るようアプリケーション５１０を実装してよい（例えば、アプリケーション５１０のプログラムコード及び／又はソフトウェアモジュールを実行することによる。）。リクエストメッセージ５１１は、ポストデータ５１２（“フィードアイテムデータ５１２”、“リクエストパラメータ５１２”などとも呼ばれる。）を含んでよい。これは、コンテンツ（例えば、テキスト、画像データ、映像データ、音声データ、リンク、など）及び１つ以上のＤＣＰを含んでよい。実施形態において、リクエストメッセージ５１１は、ＨＴＴＰメッセージであってよく、ポストデータ５１２は、ＨＴＴＰメッセージのヘッダ又は本文部分に位置してよい。１つの例において、リクエストメッセージ５１１は、ＨＴＴＰ  ＰＯＳＴメッセージであってよく、ＰＯＳＴメッセージの本文は、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）符号化データ、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）ドキュメント、及び／又は同様のものとしてポストデータ５１２を含んでよい。斯様なメッセージの本文部分は、ポストを（再）生成するために記憶されて後に読み出され得るテキストのみの値へデグラデーションされ得るメッセージセグメント、オブジェクト、タグ、エレメント、属性、又は他の同様の構成概念から構成されてよい。メッセージセグメントは、ポスト（フィードアイテム）又はコメントを含む如何なるメッセージにおいても含まれてよく、ポストタイプ及び／又はポスト能力を識別してよい。表１は、フィードアイテムをポストするためのＪＳＯＮフォーマットにおけるＨＴＴＰ  ＰＯＳＴメッセージの例を示す。
【表１】
2019075092.tif 000003
【００８３】
表１のＨＴＴＰ  ＰＯＳＴメッセージの例において、“/chatter/feed-elements”はフィードアイテムリソースであり、組織においてフィードアイテム又はコメントをポストするために使用されてよい。これに関連して、リソース（“エンドポイント”とも呼ばれる。）は、特定のオブジェクト、エレメント、又はエンティティにアクセスするために使用される如何なるタイプのマッピングであってもよい。いくつかの実施形態において、リソースは、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ又はＲＥＳＴｆｕｌ）ウェブリソースであってよい。例となるＨＴＴＰ  ＰＯＳＴメッセージの“body”特性は、メッセージのこの部分がメッセージ本文入力であることを示してよい。この例において、メッセージ本文入力は、テキストリクエストパラメータ“Can  you  please  take  a  look  at”（どうぞご覧下さい）を含むメッセージセグメント入力“Text”を有している“messageSegments”特性を含む。メッセージ本文入力は、dataProviderIdリクエストパラメータ“ＤＰＩＤ”及びdataProviderParamリクエストパラメータ“ＤＰＰ”を含むメッセージセグメント入力“dynamicContentPlaceholder”を有している“messageSegments”特性を更に含む。表１によって示されている例は、単一のdataProviderIdリクエストパラメータ及び単一のdataProviderParamリクエストパラメータしか示さないが、いくつかの実施形態において、例えば、サブスクリプション情報が、適切にデータにアクセスするために、データプロバイダへ送られるよう要求される場合に、複数のdataProviderParamリクエストパラメータが、１つ以上のdataProviderIdリクエストパラメータと関連付けられてよい。
【００８４】
他の実施形態では、リクエストメッセージ５１１は、コメントをポストするために使用されてよい。斯様な実施形態において、斯様なリクエストメッセージ５１１のＨＴＴＰ  ＰＯＳＴメッセージにおけるコメントリソースは、“/chatter/feed-elements/feedElementId/capabilities/comments/items”又は同様のものであってよく、本文部分は、表１に示されている本文部分と同じか又は類似してよい。
【００８５】
実施形態において、リクエストメッセージ５１１は、ユーザのニュースフィード、他のユーザのフィード、ユーザが属するグループのグループフィード、などを取得するために使用されてよく、このフィードは、ＤＣＰを含むフィードアイテム又はコメントを含んでよい。斯様な実施形態において、リクエストメッセージ５１１は、所望のフィードのリソース（又はＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ））を含むＨＴＴＰ  ＧＥＴメッセージであってよい。上記の例はＨＴＴＰメッセージを使用するが、他のメッセージタイプが、ポストデータ５１２を伝達するために使用されてよく、ポストデータ５１２は、そのようなメッセージのヘッダ又は本文部分に位置してよい。その上、ポストデータ５１２は、如何なる適切なフォーマット又は言語によっても形成又は具現されてよい。
【００８６】
更には、本明細書における上記の例及び他の例は、ＤＣＰを伝達するためにメッセージセグメントを使用し得るが、本明細書における実施形態は、それに制限されない。実施形態において、ＤＣＰは、ポスト又はメッセージフォーマット（例えば、メッセージセグメント、ＪＳＯＮ、ＸＭＬ、ＨＴＭＬ、など）に関わらず、マイクロブロギングポストにおいて含まれるか又は別なふうに表現されてよい。
【００８７】
メッセージタイプに関わらず、リクエストメッセージ５１１は、データベースシステム１６（マイクロブロギングプラットフォーム５５０）へ送られてよい。リクエストメッセージ５１１は、ネットワークインターフェイス２０（例えば、図１Ｂに示されているアプリケーションサーバ１００１〜１００Ｎを含んでよい。）を介してデータベースシステム１６によって取得されてよい。データベースシステム１６は、様々なデータベース管理機能及び様々なソーシャルメディア／マイクロブロギング機能を実装するために使用されるプログラムコード２６を含んでよい。例えば、プログラムコード２６は、データにアクセスし、操作し、データベース２２／２４に格納するためのクエリエンジン５６０を含んでよく、プログラムコードは、上述されたように様々なマイクロブロギング／ソーシャルメディアサービスを提供するためのマイクロブロギングプラットフォーム５５０を含んでよい。他の実施形態では、マイクロブロギングプラットフォーム５５０及び／又はクエリエンジン５６０のためのプログラムコードの一部又は全ては、システムデータストレージ２４に記憶されているシステムデータ２５であってよい（例えば、図１Ａ〜１Ｂの説明を参照されたい。）。
【００８８】
プログラムコード２６（又はシステムデータ２５）は、本明細書で説明されるように様々な動作、プロシージャ、機能、などを実行するようプロセッサシステム１７によって実行されてよい。実施形態において、プロセッサシステム１７は、リクエストメッセージ５１１の本文部分に含まれるコンテンツ（例えば、ポストデータ５１２）をパースし、ＤＣＰをコンテンツ／ポストデータ５１２とともに、ユーザに関連した適切なデータベースオブジェクトのレコード／フィールドに記憶するよう、マイクロブロギングプラットフォーム５５０を実装してよい。他の実施形態では、プロセッサシステム１７は、リクエストメッセージ５１１の本文部分に含まれるコンテンツ（ポストデータ５１２）を、ユーザに関連した適切なデータベースオブジェクトのレコード／フィールドに（又はそれ自体のデータベースオブジェクト）に記憶するようマイクロブロギングプラットフォーム５５０を実装してよく、マイクロブロギングプラットフォーム５５０は、表示のためにポストを生成するときにポストデータ５１２をパースしてよい。このデータベースオブジェクトは、“ＤＣＰデータベースオブジェクト”などと呼ばれ得る。
【００８９】
プログラムコード２６（又はシステムデータ２５）はパーサ５５５を含んでよい。これは、データベースシステム１６へ送られるウェブサービスメッセージ（例えば、メッセージ５１１）を処理し、パースし、生成し、変換し得るプログラムコードであってよい。いくつかの実施例において、パーサ５５５は、（図５によって示されるように）プログラムコード２６の他のソフトウェアモジュールとは別のそれ自体のソフトウェアモジュールであってよく、適切なＡＰＩ、ミドルウェア、ソフトウェアコネクタ、ソフトウェアグルー、などを用いてマイクロブロギングプラットフォーム５５０によって呼び出されてよい。他の実施例では、パーサは、マイクロブロギングプラットフォーム５５０の部分であり、もっぱらマイクロブロギングプラットフォーム５５０によって使用可能であってよい。例として、パーサ５５５は、Ｓｉｍｐｌｅ  ＡＰＩ  ｆｏｒ  ＸＭＬ（ＳＡＸ）；Ｓｔｒｅａｍｉｎｇ  ＡＰＩ  ｆｏｒ  ＸＭＬ（ＳｔＡＸ）；Ａｐａｃｈｅ（登録商標）  Ｘｅｒｃｅｓ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ（ＸＮＩ）；それ自体のＪＳＯＮベースのＳｔｒｅａｍｉｎｇ  ＡＰＩを含むＪａｖａ  ＡＰＩ  ｆｏｒ  ＪＳＯＮ  Ｐｒｏｃｅｓｓｉｎｇ（ＪＳＲ  ３５３）；セールスフォース・ドットコムに基づくプラットフォームのためのＡｐｅｘ  ＪＳＯＮＰａｒｓｅｒクラスメソッド；プロプライエタリパーサアプリケーション／ＡＰＩ；及び／又はマイクロブロギングプラットフォーム５５０のために特に設計されたパーサであってよい。その上、複数のパーサ５５５（又は複数のパーサエンティティ）が、異なるサービスメッセージをパースするために使用されてよい。例えば、第１パーサ５５５は、ＸＭＬを含むメッセージをパースするために使用されてよく、第２パーサは、ＪＳＯＮを含むメッセージをパースするために使用されてよい。パーサの出力は、ツリー構造、オブジェクト、アレイ、又はその他の適切なデータ構造であってよい。生成されると、データ構造のエレメントは、本明細書で説明されているもののような適切なクエリ言語を用いてデータベース２２又は２４内のデータベースオブジェクトの対応するレコードに格納されてよい。
【００９０】
実施形態において、プロセッサシステム１７は、リクエストメッセージ５１１が適切に処理されたか否かを示す応答／ステータスコードを含む応答メッセージ（例えば、ＨＴＴＰ応答メッセージ、又は同様のもの）を返すようマイクロブロギングプラットフォーム５５０を実装してよい。リクエストメッセージ５１１が成功しなかった場合に、応答メッセージのヘッダ部分は、ステータスコードを含んでよく、応答メッセージの本文部分は、エラーメッセージ又は同様のもの、及び必要に応じて、エラーが起こったオブジェクトに関する情報、を含んでよい。追加情報も、リクエストメッセージ５１１が成功した場合に、応答メッセージの本文部分に含まれてよく、この情報の一部又は全ては、ユーザシステム１２のユーザに表示されてもされなくてよい。
【００９１】
様々な実施例において、成功を示す応答メッセージの本文部分は、新しいポストを含み得るユーザのフィードを生成しレンダリングするためのプログラムコード（例えば、ＸＭＬ、ＪＳＯＮ、ＨＴＭＬ、又は他の適切なフォーマットにおける。）を含んでよい。様々な実施形態において、データベースシステム１６は、データプロバイダからデータを取得し、そのデータをＤＣＰの場所／位置でポストに挿入してよい。そうするために、データベースシステム１６は、ＤＣＰの記憶されているＤＰＩＤ値及びＤＰＰ値を取得し、ＤＰＩＤに関連したデータプロバイダを特定し、ＤＰＰをそのデータプロバイダへ送ってよい。
【００９２】
データプロバイダの特定は、ＤＰＩＤと、データプロバイダの名称／ハンドル、ネットワークアドレス／ロケーション情報（例えば、ＩＰアドレス、ネットワークソケット、プロセスＩＤ、データベースコネクション、など）及び何らかの他の関係がある又は適切な情報のような、他のデータプロバイダ情報との間の関連性を示すデータベースオブジェクト５６５に基づいてよい。データベースオブジェクト５６５は、如何なる適切なマッピング、アルゴリズム、テーブル、ハッシュテーブル、リレーション、又は他の同様のデータ構造であってよい。本明細書で使用されるように、“データベースオブジェクト”は、オブジェクト又はタプルの形をとるデータベース内の情報の如何なる表現も指してよく、変数、データ構造、関数、メソッド、クラス、データベースレコード、データベースフィールド、データベースエンティティ、データとデータベースエンティティとの間又は２つ以上のデータベースエンティティどうしの間の関連性（“リレーション”とも呼ばれる。）、及び同様のものを含んでよい。マイクロブロギングプラットフォーム５５０は、ポストデータ５１２に含まれるＤＰＩＤから適切なデータプロバイダを決定するために適切なハッシュ関数を使用してよい。例えば、マイクロブロギングプラットフォーム５５０を作動させるプロセッサシステム１７は、インデックスを得るためにキー値対のキー（例えば、ＤＰＩＤ）に対してハッシュ演算を実行してよい。いくつかの実施形態において、ハッシュ関数への入力は、ユーザＩＤ及び／又はｏｒｇＩＤを更に含んでよく、それによって、キー／値対をユーザ又は組織特有なものにする。実施形態において、キーをハッシングすることによって得られたインデックスは、キー値対の値を記憶しているデータベースオブジェクト５６５におけるメモリ位置及び／又はデータベースエレメントを示してよい。データベースエレメントに記憶されている値は、データプロバイダからデータを取得するための情報であってよい。
【００９３】
いくつかの実施形態において、データプロバイダは、データベースシステム１６とは別であるサービスプロバイダであってよい（例えば、図５におけるサービスプロバイダプラットフォーム５７０のオペレータ／所有者）。斯様な実施形態において、データプロバイダ情報は、ＤＰＰをサービスプロバイダプラットフォーム（Service  Provider  Platform）（ＳＰＰ）５７０へ送るために使用されるＡＰＩ情報を含んでよい。第１の例では、データプロバイダはＳＰＰ５７０であってよく、データベースシステム１６は、ＳＰＰ５７０のＡＰＩに従ってリクエストメッセージ５１３ａを生成してよい。ＳＰＰ５７０は、ユーザシステム及び／又はデータベースシステムのために１つ以上のサービスを提供する１つ以上のハードウェアコンピュータ装置（例えば、１つ以上のデータセンタに位置し得る様々なサーバ、ネットワークインターフェイス、及びデータ記憶装置）であってよい。この関連で、ＳＰＰ５７０は、ＳＰＰ５７０によって定義されるか又は別なふうに利用されるＡＰＩを介してデータベースシステム１６とデータをやり取りしてよい（例えば、送信及び受信してよい。）。例として、サービスプロバイダ５７０によって提供されるサービスは、検索エンジンサービス；マイクロブロギングプラットフォーム５５０とは異なるソーシャルメディア／マイクロブロギングサービス／プラットフォーム；バンキング／金融サービス；発券サービス；セキュリティ／安全サービス；マルチメディアサービス；様々な分析及び／又は自動化サービス：クラウドコンピューティング／ストレージサービス；データベースシステム１６によって提供されるものとは異なるＣＲＭサービス；通信／ネットワーキングサービス；及び／又はその他サービスを含んでよい。
【００９４】
ＳＰＰ５７０によって利用されるＡＰＩは、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）ベースのウェブＡＰＩ、ＲｅｓｔｆｕｌウェブＡＰＩ、サーバサイドＡＰＩ、サービスプロバイダインターフェイス（Service  Provider  Interface）（ＳＰＩ）、又はサービスプロバイダ５７０のロジックと相互に作用するためのインターフェイスを示すその他の適切なＡＰＩであってよい。ＡＰＩは、如何なる適切な記述言語又はインターフェイス記述言語（Interface  Description  Language）（ＩＤＬ）、マークアップ言語、ハイパーテキスト言語、及び同様のものの形もとってよい。リクエストメッセージ５１３ａは、ＡＰＩに従ってサービスプロバイダ５７０から適切なデータにアクセスするためのリソース５１４ａ又は他の入力を示してよい。リソース５１４ａは、適切なデータにアクセスするために必要とされるＤＰＰ及び／又はその他のパラメータを含むか又は示してよい。例えば、いくつかの実施形態において、ＳＰＰ５７０は、サブスクリプションに基づくサービスプロバイダであってよく、リソース５１４ａは、ＳＰＰ５７０からデータにアクセスするためのユーザクレデンシャル又は認証／承認情報を更に含んでよい。リクエスト５１３ａの受け取りに応答して、ＳＰＰ５７０は、データ５１６ａを含む応答メッセージ５１５ａを生成し、データベースシステム１６へ送信してよい。リクエストメッセージ５１３ａ及び応答メッセージ５１５ａは、ＨＴＴＰメッセージであってよく、あるいは、本明細書で説明されているもののような、如何なる他のメッセージタイプ／フォーマットであってもよい。
【００９５】
いくつかの実施形態において、データプロバイダは、ユーザに関連したテナント空間に含まれるデータベースオブジェクトであってよい。斯様な実施形態において、他のデータプロバイダ情報は、ＤＰＰをデータベースオブジェクトへ送るために使用されるクエリ情報／パラメータを含んでよい。第２の例では、データプロバイダは、データベースオブジェクト５３０であってよく、プロセッサシステム１７は、データベースオブジェクト５３０に関連したデータ項目についてデータベース２２へクエリ５１３ｂを送るよう、クエリエンジン５６０（“クエリプロセッサ５６０”、“関係エンジン５６０”などとも呼ばれる。）を実装してよい。データベースオブジェクト５３０は、特定のユーザ、組織／テナント、などのための様々なデータを記憶してよく、テナント空間２３に位置してよい（例えば、図１Ｂを参照。）。
【００９６】
この例において、クエリ５１３ｂは、データベースオブジェクト５３０に記憶されている１つ以上のデータ値、レコード及び／又はフィールドのリクエストであってよい。クエリ５１３ｂは、検索されるべきテーブル若しくはレコードを示す、ＤＰＰを含む１つ以上のクエリ要素／パラメータ、返されるべきレコードの特性を示す１つ以上の条件、返されるべきレコードのエレメント（例えば、テーブル内の特定のデータ値又はフィールド）を示す１つ以上のフィルタ、及び１つ以上の他のオプション（例えば、ソートパラメータ、最大結果サイズ、及び同様のもの）を含んでよい。クエリ５１３ｂに応答して、データベース２２は、クエリ５１３ｂによって指定されているデータベースオブジェクト５３０からのデータ項目／値５１６ｂを含む応答５１５ｂを返してよい。
【００９７】
データプロバイダがＳＰＰ５７０又はデータベースオブジェクト５３０であるかどうかに関わらず、マイクロブロギングプラットフォーム５５０は、関係があるデータ（例えば、応答５１５ａからのデータ５１６ａ、又は応答５１５ｂからのデータ項目５１６ｂ）を取得してよく、応答５１７を生成しユーザシステム１２へ送ってよい。応答５１７は、ユーザインターフェイスデータ５１８を含んでよい。ユーザインターフェイスデータ５１８は、データ値の１つ以上の視覚表現を生成及び表示するためにユーザシステム１２によって使用される関係があるデータ及び情報を含んでよい。ユーザインターフェイスデータ５１８は、出力システム１２Ｄによって視覚表現５１９を介してコンパイル及びレンダリングされ得るコンピュータ読み取り可能な形で様々なデータオブジェクトを有してよい、例えば、ユーザインターフェイスデータ５１８は、１つ以上のＨＴＭＬドキュメント、ＸＭＬドキュメント、ＪＳＯＮドキュメント、及び／又はその他の適切なデータフォーマットであってよく、ユーザシステム１２によって実装されているブラウザ又はアプリケーションコンテナによって復号及びレンダリングされる場合に、ポスト（フィードアイテム）若しくはコメント、ポスト／コメントを含むフィード、又はポスト（フィードアイテム）のその他のレンダリングを示す。応答５１７がユーザシステム１２によって受信されると、プロセッサシステム１２Ａは、応答５１７からユーザインターフェイスデータ５１８を取り出し、視覚表現５１９を生成するよう、アプリケーション５１０を実装してよい。視覚表現５１９は、出力システム１２Ｄにより表示されてよい。
【００９８】
配置５００の上記のプロセス／プロシージャは、リクエスト５１１が、新たに構成されたポストについてのデータを含むかどうか、又はリクエスト５１１が、動的コンテンツプレースホルダ（ＤＣＰ）を伴ったポストを含むフィードのためであるかどうかに関わらず、リクエスト５１１がデータベースシステム１６へ送信されるたびに繰り返されてよい。すなわち、ＤＣＰを含むマイクロブロギングポストの各リクエスト５１１に応答して、データベースシステム１６（マイクロブロギングプラットフォーム５５０）は、データプロバイダからデータを取得するためにＤＣＰのデータプロバイダパラメータ（ＤＰＰ）を用いてＤＣＰのデータプロバイダ識別子（ＤＰＩＤ）に関連したデータプロバイダ（例えば、ＳＰＰ５７０及び／又はデータベースオブジェクト５３０）にクエリを行い、そして、データプロバイダから取得されたデータをマイクロブロギングポストにおいてＤＣＰの位置に含めるようマイクロブロギングポストを生成してよい。
【００９９】
図６〜７は、様々な例となる実施形態に従って、プロセス６００Ａ〜Ｂ及び７００Ａ〜Ｂを夫々表す。実例のために、プロセス６００Ａ〜Ｂの動作は、本明細書で説明されるデータベースシステム１６によって実行されるものとして記載され、プロセス７００Ａ〜Ｂは、本明細書で説明されるユーザシステム１２によって実行されるものとして記載される。なお、他のコンピュータ装置が、多数の実装、配置、及び／又は環境においてプロセス６００Ａ〜Ｂ及び７００Ａ〜Ｂを作動させてよい。実施形態において、プロセス６００Ａ〜Ｂ及び７００Ａ〜Ｂは、プロセッサシステムによって実行される場合に、コンピュータ装置に、プロセス６００Ａ〜Ｂ及び７００Ａ〜Ｂの様々な動作を実行させ得るプログラムコードとして具現されてよい。動作の特定の例及び順序が図６及び７で説明されているが、様々な実施形態において、それらの動作は、並べ替えられ、追加の動作に分けられ、結合され、あるいは、完全に削除されてよい。
【０１００】
図６を参照すると、様々な実施形態に従ってポストデータ５１２を取得するプロセス６００Ａ及びポストを生成するプロセス６００Ｂが示されている。プロセス６００Ａは動作６０５から開始してよい。動作６０５で、プロセッサシステム１７は、ポストデータ５１２を含むメッセージ５１１を取得するよう、マイクロブロギングプラットフォーム５５０を実装してよい。ポストデータ５１２はＤＣＰを含むか又は示してよい。実施形態において、メッセージ５１１は、マイクロブロギングプラットフォーム５５０にアクセスし及び／又はそれと相互に作用するためにアプリケーション５１０を実装するユーザシステム１２によって送信されたものであってよい。動作６１０で、プロセッサシステム１７は、例えば、ユーザシステム１２のユーザに関連した１つ以上のデータベースオブジェクト、関連する組織、などにおけるポストデータ５１２の記憶を制御するよう、マイクロブロギングプラットフォーム５５０を実装してよい。動作６１５で、プロセッサ１７は、ポスト、ポストを含むフィードをレンダリングのために生成することを制御するよう、マイクロブロギングプラットフォーム５５０を実装してよい。この生成については、プロセス６００Ｂに関して図示及び記載される。
【０１０１】
プロセス６００Ｂは動作６２０から開始してよい。動作６２０で、プロセッサシステム１７は、ポスト及び／又はフィードのリクエストがマイクロブロギングプラットフォーム５５０によって取得されたかどうかを判定するよう、マイクロブロギングプラットフォーム５５０を実装してよい。動作６２０で、ポスト／フィードのリクエストが取得されていないとマイクロブロギングプラットフォーム５５０が決定する場合には、マイクロブロギングプラットフォーム５５０は、ポスト／フィードのリクエストをモニタし続けるために、動作６２０を実行するよう一巡して元に戻ってよい。動作６２０で、ポスト／フィードのリクエストが取得されたとマイクロブロギングプラットフォーム５５０が決定する場合には、マイクロブロギングプラットフォーム５５０は、要求されているフィード／ポストに関連したデータベースオブジェクトに記憶されているポストデータ５１２を取得するよう動作６２５へ進んでよい。
【０１０２】
動作６３０で、プロセッサシステム１７は、ポストデータをパースし、ポストの各ＤＣＰを取り出すよう、マイクロブロギングプラットフォーム５５０を実装してよい。代替の実施形態では、動作６３０は、ポストデータを受け取った後にポストデータを記憶することの部分として、プロセス６００Ａの動作６１０で実行されてよい。実施形態において、マイクロブロギングプラットフォーム５５０は、パーサ５５５を呼び出すか又は別なふうに作動させてよい。
【０１０３】
ポストデータ５１２をパースした後、プロセッサシステム１７は、開始動作６３５から順番にポストの各ＤＣＰを処理するよう、マイクロブロギングプラットフォーム５５０を実装してよい。動作６４０で、プロセッサシステム１７は、例えば、複数のデータプロバイダに関連する情報を記憶するか又はそれを指し示す適切なデータベースオブジェクトにおいて斯様な情報を検索すること、などによって、ＤＣＰのデータプロバイダ識別子（ＤＰＩＤ）からデータプロバイダ情報を特定するよう、マイクロブロギングプラットフォーム５５０を実装してよい。実施形態において、データプロバイダ情報は、ＡＰＩ情報、ネットワークソケット情報、ＩＰアドレス、データベースシステム及び／又はデータクエリ情報、などのような、データプロバイダからデータを取得するための情報を含んでよい。
【０１０４】
動作６４５で、プロセッサシステム１７は、データプロバイダパラメータ（ＤＰＰ）によりデータプロバイダを呼び出してデータプロバイダからデータを取得するよう、マイクロブロギングプラットフォーム５５０を実装してよい。マイクロブロギングプラットフォーム５５０は、動作６４０で特定されたデータプロバイダ情報を使用して、データプロバイダを呼び出してよい。動作６５０で、プロセッサシステム１７は、動作６４５でデータプロバイダから取得されたデータによりＤＣＰを置き換えるよう、マイクロブロギングプラットフォーム５５０を実装してよい。動作６５５で、プロセッサシステム１７は、動作６３５へ戻って（もしあれば）次の未決のＤＣＰを処理するよう、マイクロブロギングプラットフォーム５５０を実装してよい。
【０１０５】
全てのＤＣＰが処理された後、プロセッサシステム１７は、動作６６０で、ポスト／フィードを生成し、そのポスト／フィードを要求元のエンティティへ返すよう、マイクロブロギングプラットフォーム５５０を実装してよい。動作６６０の実行後、プロセス６００Ｂは終了するか、又は必要に応じて繰り返してよい。
【０１０６】
図７を参照すると、様々な実施形態に従ってポスト（又はフィードアイテム）を構成するプロセス７００Ａ及びポストを生成するプロセス７００Ｂが示されている。ポストを構成するために、プロセス７００Ａは動作７０５から開始してよい。動作７０５で、プロセッサシステム１２Ａは、マイクロブロギングプラットフォーム５５０と相互に作用するためのＧＵＩのインスタンスを生成しレンダリングするよう、アプリケーション５１０を実装してよい。実施形態において、プロセッサシステム１２Ａは、ＧＵＩを生成するためのプログラムコードのリクエストを送信するよう、アプリケーション５１０を実装してよい。
【０１０７】
動作７１０で、プロセッサシステム１２Ａは、データプロバイダパラメータ（ＤＰＰ）及びデータプロバイダ識別子（ＤＰＩＤ）を含む動的コンテンツプレースホルダ（ＤＣＰ）を伴ったポストデータ（又はフィードアイテムデータ）を生成するよう、アプリケーション５１０を実装してよい。いくつかの実施形態において、動作７１０は、例えば、生成されレンダリングされたＧＵＩのオーサリングツールを用いて、実行されてよい。動作７１５で、プロセッサシステム１２Ａは、ポストデータ（又はフィードアイテムデータ）を含むメッセージを生成してマイクロブロギングプラットフォーム５５０へ送信するよう、アプリケーション５１０を実装してよい。動作７２０で、プロセッサシステム１２Ａは、レンダリングのためにポスト（又はフィードアイテム）を含めるべきであるフィードをリフレッシュ／フェッチするよう、アプリケーション５１０を実装してよい。このレンダリングについては、プロセス７００Ｂに関して図示及び記載される。
【０１０８】
プロセス７００Ｂは動作７２５から開始してよい。動作７２５で、プロセッサシステム１２Ａは、フィードを要求するコマンドがアクティブにされているかどうかを判定するよう、アプリケーション５１０を実装してよい。この判定は、フィードを含むＧＵＩのＧＣＥとのインタラクション、リフレッシュボタンを選択すること（例えば、アプリケーション５１０がウェブブラウザである場合）、及び同様のものに基づいてよい。動作７２５で、ポスト／フィードをリクエストするコマンドがアクティブにされていないとアプリケーション５１０が決定する場合には、アプリケーション５１０は、フィードリフレッシュ／フェッチコマンドをモニタし続けるために、動作７２５を実行するよう一巡して元に戻ってよい。動作７２５で、ポスト／フィードを要求するコマンドがアクティブにされているとアプリケーション５１０が決定する場合には、アプリケーション５１０は動作７３０に進んで、所望のフィードのリクエストを生成し送信してよい。
【０１０９】
動作７３５で、プロセッサシステム１２Ａは、要求されているフィードを含むＧＵＩのためのプログラムコードを取得するよう、アプリケーション５１０を実装してよい。フィードは、新たに取得されたデータをフィードアイテム（又はポスト）内の対応するＤＣＰの場所／位置に含む１つ以上のフィードアイテム（又はポスト）を含んでよい。動作７４０で、プロセッサシステム１２Ａは、フィードを含むＧＵＩを生成しレンダリングするよう、アプリケーション５１０を実装してよい。このＧＵＩは、新たに取得されたデータを、対応するＤＣＰの代わりにレンダリングすることを更に含んでよい。動作７４０の実行後、プロセス７００Ｂは、一巡して動作７２５へ戻り、フィードをフェッチ／リフレッシュするためのコマンドがアクティブにされているかどうかを判定してよい。このようにして、新たに取得されたデータは、フィードがリフレッシュ／フェッチされる場合にポストに挿入されてよい。
【０１１０】
［ユーザインターフェイスの例］
図８〜１７は、様々な実施形態に従って、動的コンテンツプレースホルダ（ＤＣＰ）を含むポストを構成しレンダリングするグラフィカルユーザインターフェイス（ＧＵＩ）の様々な例を表す。特に、図８〜１１は、構成状態の様々な段階にある第１の例のＧＵＩの様々なインスタンスを示し、図１２〜１４は、レンダリング状態の様々な段階にある第１の例のＧＵＩの様々なインスタンスを示し、図１５は、構成状態における第２の例のＧＵＩのインスタンスを示し、図１６〜１７は、レンダリング状態の様座漫談会にある第２の例のＧＵＩの様々なインスタンスを示す。図８〜１７の夫々は、ユーザシステム１２で表示され得るインターフェイスの例を表す（例えば、上記の様々なＧＵＩ及びＧＣＥ）。例となるＧＵＩは、ユーザシステム１２によって実装されている専用のアプリケーションによって表示又はレンダリングされるか、あるいは、ユーザシステム１２によって実装されているウェブブラウザ内でレンダリングされてよい。特定の例のＧＵＩが説明されるが、様々な実施形態において、他のインターフェイスが利用されてよい。その上、図８〜１７の例は、ユーザシステム１２のプログラムコード／モジュールによって生成されてよく、一方で、他の実施形態では、ＧＵＩは、全体として又は部分的に、データベースシステム１６でプログラムコード／モジュールによって生成され、レンダリング（例えば、ユーザシステム１２によって実装されているブラウザ又はアプリケーションコンテナにおいてレンダリングされる１つ以上のウェブページ）のために通信システム１２Ｅを介してユーザシステム１２へ供給されてよい。
【０１１１】
図８を参照すると、いくつかの実施例に従うグループページＧＵＩ８００の例が示されている。ＧＵＩ８００は、グループフィード８１５及び／又はグループページをマイクロブロギングプラットフォーム５５０に要求する結果として生成されレンダリングされてよい。表されているように、ＧＵＩ８００は、フィード表示セクション（“グループフィード８１５”とも呼ばれる。）及びオーサリングパネル８２０を含んでよい。
【０１１２】
フィード８１５はフィードアイテム８１０を含む。フィードアイテム８１０は、ユーザ（“Test  User”）が動的インラインコンテンツアイテム（Dynamic  Inline  Content  Item）（ＤＩＣＩ）８１１をグループフィード８１５にポストしたことを示す。フィードアイテム８１０は、上述されたフィード追跡更新などと同じようにデータベースシステム１６によって生成されてよい。実施形態において、ＤＩＣＩ８１１は、データプロバイダによって供給されたデータを含むコンテンツであってよく、テキスト、画像又はアイコン、映像、音声、などのようなコンテンツであってよい。この例において、フィードアイテム８１０に含まれるＤＩＣＩ８１１は、例えば、グループページに関連したコードスニペットデータベースオブジェクトから取得され、コードサンプルスタイルに従ってフォーマットされたコードスニペット（例えば、“テキスト”）であってよい。
【０１１３】
パネル８２０のオーサリングツールは、グループフィード８１５においてポストされるポスト／フィードアイテムを構成するために使用されてよい。ＧＵＩ８００は、例えば、ユーザシステム１２のユーザによって構成されるポストを示す。パネル８２０のオーサリングツールは、図４Ｂに関して上述されたのと同じか又は類似した様態で起動されてよい。この例において、オーサリングツールは、ユーザが文字列８２１、スラッシュ拡張子８２２、メンション８２３、及び／又はポスト、コメント、若しくは他のフィードアイテムにおいてポストされる他のコンテンツのようなテキストを入力し得るテキストボックスＧＣＥである。
【０１１４】
メンション８２３は、フィードアイテムの本文においてどこかにユーザ識別子を含むオンラインソーシャルネットワークフィードアイテムであってよい。例えば、第１メンション８２３は、ユーザ“Jane  Do”のユーザプロフィールへリンクしてよく、第２メンション８２３は、ユーザ“John  Do”のユーザプロフィールへリンクしてよく、第３メンション８２３は、ユーザ“James  Jones”のユーザプロフィールへリンクしてよい。ポストがポストされると、@[Jane  Do]、@[John  Do]、及び@[James  Jones]に対応するユーザは、電子メールメッセージ又は同様のものを介して、彼らの各々のニュースフィードにおいてメンションを通知されてよい。ポストされると、メンション８２３は、マイクロブロギングプラットフォーム５５０内の各々のユーザプロフィール又はグループページへのインラインのリンクであってよい。
【０１１５】
オーサリングツールによるフィードアイテムの構成中に、ユーザは、メンションインジケータを打ち込み始めてよく、その後に所望のユーザ又はグループの名称の最初の数文字が続く。オートコンプリートアプリケーションは、既に入力されている文字に対応するユーザ／グループ識別子の自動入力されたリストから選択するようユーザに促すために使用されてよい。図８の例では、メンションインジケータはユーザによって入力された“@”文字であってよく、この後に文字“J”、“a”及び“n”が続いてよく、オートコンプリートアプリケーションは、既に入力されている文字に基づき“Jane  Do”のユーザ識別子を選択するようユーザに促してよい。自動入力されたリストは、既に入力されている文字に一致する最近入力されたユーザ識別子、連絡先リストからの全てのユーザ識別子、グループリストからの全てのユーザ識別子、などを含んでよい。ユーザシステム１２で実行される大部分のオートコンプリートアプリケーションは、マイクロブロギングプラットフォーム５５０からユーザ識別子のリストを取り出し、ユーザが入力する夫々の文字についてそうするためのリクエストを提起する。いくつかの実施例において、オートコンプリートアプリケーションは、オートコンプリートアプリケーションが、タイプ入力における所定のアイドル又は遅延の後に、マイクロブロギングプラットフォーム５５０にクエリを行う最適化プロセスを使用してよい。
【０１１６】
様々な実施形態において、ＤＣＰは、メンションと同様にしてフィードアイテムの構成中に供給されてよい。フィードアイテムの構成中に、ユーザは、ＤＣＰインジケータを打ち込んでよく、オートコンプリートアプリケーションは、ＤＰＩＤ８２６の自動入力されたリストを含むインターフェイス８２５を生成し表示することによって、データプロバイダ識別子（ＤＰＩＤ）を選択するようユーザに促してよい。
【０１１７】
図８によって示されているように、インターフェイス８２５は、ＧＵＩ８００の上に重ね合わされるか又はオーバーレイされてよい。図８の例では、ＤＣＰインジケータは、ユーザによって入力された“/”文字（“スラッシュ拡張子８２２”とも呼ばれる。）であってよく、オートコンプリートアプリケーションは、ＤＰＩＤ８２６を選択するためのインターフェイス８２５（“ＤＣＰリストＧＵＩ８２５”などとも呼ばれる。）を生成し、それを表示させてよい。上記のメンションと同様に、自動入力されたリストは、最近入力されたＤＰＩＤ８２６、予め定義されたデータプロバイダリストからのＤＰＩＤ８２６、などを含んでよい。この例において、“/code”、“/quicklist”、“/stock”、“/yelp”、及び“/lead”についてのＤＰＩＤ８２６は、コードスニペットデータベースオブジェクト、メンションリストのデータベースオブジェクト、金融／事業報告ＳＰＰ５７０、ＳＰＰ５７０Ｙｅｌｐ，Ｉｎｃ．、及びリードのデータベースオブジェクトと夫々対応してよい。
【０１１８】
実施形態において、ユーザは、リストアップされているＤＰＩＤ８２６の中の１つをクリック（例えば、マウス−カーソルインターフェイスを使用する。）又はタップ（例えば、タッチスクリーンインターフェイスを使用する。）することによって、所望のＤＰＩＤ８２６を選択してよい。選択されると、選択されたＤＰＩＤ８２６に関連したデータプロバイダパラメータの自動入力されたリストが表示されてよい（図示せず。）。加えて、ユーザは、所望のＤＰＩＤ８２６の最初の数文字を打ち込み続けることによって、上記のオートコンプリートアプリケーションを使用してよい。これは、オートコンプリートアプリケーションに、既に入力されている文字に対応するＤＰＩＤ８２６によりリストを修正（又は再入力）させ得る。このオートコンプリート機能の例は、図９によって示される。
【０１１９】
図９を参照すると、スラッシュ拡張子８２２の後にユーザが追加の文字を打ち込む場合に、オートコンプリートアプリケーションは、打ち込まれた文字に対応するＤＰＩＤ８２６のみを含むようインターフェイスの自動入力されたリストを変更してよい。例えば、図９によって示されている例では、ユーザは、スラッシュ拡張子８２２の後に“lead”を入力している。これは、オートコンプリートアプリケーションに、“/lead”ＤＰＩＤ８２６をインターフェイス８２５に自動入力させる。実施形態において、特定のＤＰＩＤ８２６の選択は、予め定義されたキー／ボタンをキーボード上で押すこと（例えば、キャッリジリターン）、カーソル、タッチジェスチャ、などを用いてリスト８２５からＤＰＩＤ８２６を選択すること、又は図１０によって示されるように、単に、リストアップされているＤＰＩＤ８２６に関連したデータプロバイダパラメータ（ＤＰＰ）に関連した更なる文字を打ち込み続けることによって、行われてよい。
【０１２０】
図１０を参照すると、ＤＰＩＤ８２６がユーザによって選択されると、ユーザは、所望のデータプロバイダパラメータ（ＤＰＰ）に対応する文字を打ち込み始めてよく、オートコンプリートアプリケーションは、選択されたＤＰＩＤ８２６に関連したリストＤＰＰ８２７を含めるようインターフェイス８２５を再入力してよい。リストアップされたＤＰＰ８２７は、既に入力されている文字に対応する。図１０によって示されている例では、ユーザは、“/leads”の選択されたＤＰＩＤ８２６の後に、文字“b”を入力している。これは、オートコンプリートアプリケーションに、文字“b”から始まる様々なＤＰＰ８２７をインターフェイス８２５に自動入力させる。実施形態において、特定のＤＰＰ８２７の選択は、予め定義されたキー／ボタンをキーボード上で押すこと（例えば、キャッリジリターン）、カーソル、タッチジェスチャ、などを用いてリスト８２５からＤＰＰ８２７を選択すること、又は図１１によって示されるように、単に、リストアップされているＤＰＰ８２７の中の所望の１つに関連した更なる文字を打ち込み続けることによって、行われてよい。
【０１２１】
図１１によって示されているように、オートコンプリートアプリケーションは、ユーザがリスト８２５から所望のＤＰＰ８２７を選択した後に、ＤＣＰオブジェクト８３０を生成してよい。例えば、図１１によって示されている例では、ユーザは、“Bertha  Boxer”のＤＰＰ８２７を選択した。これは、オートコンプリートアプリケーションに、オーサリングツールにおいてＤＣＰオブジェクト８３０を生成させる。実施形態において、ＤＣＰオブジェクト８３０は、“Bertha  Boxer”に関連したユーザ又はグループページへのリンクであってよく、及び／又は選択されたＤＣＰを表す如何なるタイプのウィジェット又はＧＣＥであってもよい。この例において、ＤＣＰオブジェクト８３０は、選択されたＤＰＰ８２７のアイコン及び名称、すなわち“Bertha  Boxer”、を含むグラフィカル要素であってよい。ＤＣＰ８３０がパネル８２０に入力された後、ユーザは、マイクロブロギングプラットフォーム５５０へのポストデータの投稿を制御するためのＧＣＥを選択することによって、フィードアイテムをポストしてよい。図１１によって示されている例では、このＧＣＥは“Share”ボタン８３５であってよい。ポストデータ５１２がマイクロブロギングプラットフォーム５５０に投稿された後、ＧＵＩの他のインスタンスが、新たにポストされたフィードアイテムを示すよう生成されてよい。これは、図１２によって示されている。
【０１２２】
図１２によって示されているように、ユーザが、図１１のＧＵＩ８００から、構成されたポストを共有した後、ユーザシステム１２は、リフレッシュされたフィード８１５を含むＧＵＩ８００の他のインスタンス（例えば、図１２のＧＵＩ１２００）を生成してよい。リフレッシュされたフィード８１５は、フィードアイテム１２２１を含んでよい。フィードアイテム１２２１は、ユーザ（“Test  User”）がグループフィード８１５にＤＩＣＩ１２３０（例えば、リード“Bertha  Boxer”）をポストしたことを示す。フィードアイテム１２２１は、上述されたのと同様にしてデータベースシステム１６によって生成されてよく、ＤＩＣＩ１２３０は、グループページに関連するリードデータベースオブジェクトであることができる“leads”データプロバイダから取得されたデータに基づき生成されていてよい。この例において、ＤＩＣＩ１２３０は、リードの名称Bertha  Boxerをリストアップし、“(Nurturing-Contracted)”というように、括弧内にリードのステータスを含むアイコンであってよい。フィード８１５がユーザシステム１２によってリフレッシュ又はフェッチされるたびに、リードステータスデータは、マイクロブロギングプラットフォーム５５０によって新たに取得され、ポスト１２２１に挿入されてよい。その例は図１３によって示されている。
【０１２３】
図１３は、リフレッシュされたフィード８１５を含むＧＵＩ８００の他のインスタンス（例えば、図１３のＧＵＩ１３００）を示す。リフレッシュされたフィード８１５は、ＤＩＣＩ１２３０（例えば、リード“Bertha  Boxer”）を含むフィードアイテム１２２１を含む。上述されたように、ＤＩＣＩ１２３０は、“leads”データベースオブジェクトから取得されたデータに基づき生成されていてよい。リード“Bertha  Boxer”に関連したデータは、ユーザシステム１２が以前にフィード８１５を要求したので（例えば、図１２に示されるように）更新されていてよく、この更新されたデータは、ＧＵＩ１３００のフィードアイテム１２２１に挿入されてよい。図１３によって示されている例では、更新されたデータは、ＧＵＩ１２００における“(Nurturing-Contracted)”と対照的に、“(Closed-Converted)”というように、括弧内にリードの変更された状態を含んでよい。図１３によって示されている動的に挿入されたコンテンツに加えて、いくつかの実施形態において、追加の情報がＧＵＩに動的に挿入されてよい。その例は図１４によって示されている。
【０１２４】
図１４は、様々な実施形態に従って、ＤＩＣＩ１２３０の追加のデータを示すインターフェイス１２２５を含むＧＵＩ１３００の他のインスタンスを表す。実施形態において、ユーザは、ＤＩＣＩ１２３０で又はその近くでカーソル１２５０をとどめておくこと（“ホバリング動作”又は“ホバリング”とも呼ばれる。）によって、追加のデータを表示するよう選択してよい。カーソル１２５０がＤＩＣＩ１２３０の上でホバリングされる場合に、ＤＩＣＩ１２３０は、例えば、示されているようにテキストに下線を引くこと、ポスト１２２１において他のテキストのサイズに対してテキストのサイズを大きくすること（図示せず。）、及び／又は同様のことによって、強調表示されてよい。加えて、インターフェイス１２２５は、カーソル１２５０がＤＩＣＩ１２３０の上でホバリングされる場合に、ＤＩＣＩ１２３０のＤＰＰに関連した追加のデータを示すよう表示されてよい。インターフェイス１２２５は、示されているリードのタイトル（“Director  of  Vendor  Relations,  Farmers  Coop.  of  Florida”）、連絡先情報（“Email”）、及びステータス“”（“Closed-Converted”）のような、ＤＩＣＩ１２３０に関連した他の情報を示すよう、生成されてＧＵＩ１３００の上に重ね合わされてよい。
【０１２５】
図１５を参照すると、いくつかの実施例に従うオーサリングツールのＧＵＩ１５００の例が示されている。ＧＵＩ１５００は、ユーザシステム１２のユーザによってポスト／フィードアイテムを構成するために使用されてよい。ＧＵＩ１５００は、ＧＣＥ１５４０（例えば、図１５における“Ｐｏｓｔ”トラベルを付されたタブ）を選択する結果として生成されレンダリングされてよい。表されているように、ＧＵＩ１５００は、ＧＣＥ１５２６、オーサリングパネル１５２０、及びＧＣＥ１５３５を含んでよい。
【０１２６】
ＧＵＩ１５００は、様々なユーザ又はグループフィードにおいてポストされるポスト／フィードアイテムを構成するために使用されてよい。ＧＣＥ１５３５は、構成されたポストをポストすべき所望のユーザ／グループフィードを示すために使用されてよい。この例では、ポストは、リスト“My  Followers”（私のフォロワー）に含まれているユーザ／グループへポストされ得る。オーサリングパネル１５２０は、図８〜１１に関して上述されたのと同じか又は類似した様態で、文字列１５２１及びＤＣＰオブジェクト１５３０のようなポストデータ５１２を入力するために使用されてよい。この例では、ＤＣＰオブジェクト１５３０は、金融／事業報告ＳＰＰ５７０と関連付けられてよく、選択されたＤＰＰは、セールスフォース・ドットコム社のニューヨーク株式市場（New  York  Stock  Exchange）（ＮＹＳＥ）シンボル“ＣＲＭ”であって。ＧＣＥ１５３５は、マイクロブロギングプラットフォーム５５０へのポストデータ５１２の投稿を制御するものである（例えば、図１５における“Share”トラベルを付されたボタン）。
【０１２７】
図１６は、いくつかの実施例に従ってネットワークフィード１６１５を含むＧＵＩ１６００の例を示す。ＧＵＩ１６００は、ユーザが構成されたポストをＧＵＩ１５００から共有した後に生成されレンダリングされてよい。フィード１６１５は、ユーザ（“Test  User”）によってポストされたＤＩＣＩを含むフィードアイテム１６２１を含んでよい。フィードアイテム１６２１は、上述されたのと同様にしてデータベースシステム１６によって生成されてよく、ＤＩＣＩ１６３０は、金融サービスＳＰＰ５７０から取得されたデータに基づき生成されていてよい。この例では、ＤＩＣＩ１６３０は、ＤＰＰに関連したアイコン（例えば、図１６によって示されるセールスフォース・ドットコム社のロゴ）であることができ、データは株価（例えば、“＄87.68”）である。フィード１６１５がユーザシステム１２によってリフレッシュ又はフェッチされるたびに、株価は、マイクロブロギングプラットフォーム５５０によって新たに取得され、図１７によって示されるようにフィードアイテム１６２１に挿入されてよい。
【０１２８】
図１７は、様々な実施形態に従って、ＤＩＣＩ１６３０の追加データを示すインターフェイス１７２５を含むＧＵＩ１６００の他のインスタンスを表す。図１７は、リフレッシュされたフィード１６１５を含むＧＵＩ１６００の他のインスタンスを示す。リフレッシュされたフィード１６１５は、図１６によって示されたＧＵＩ１６００の前のインスタンスとは異なるデータを有しているＤＩＣＩ１６３０を含むフィードアイテム１６２１を含む（例えば、図１６に示されている“＄87.68”とは対照的に“＄88.72”）。ＣＲＭ株に関連したデータは、ユーザシステム１２がフィードアイテム１６２１を前もって要求していることから更新されていてよく、この更新されたデータは、フィードアイテム１６２１に挿入されてよい。更には、ユーザは、ＤＩＣＩ１６３０で又はその近くでカーソル１７５０をとどめることによって、追加データを表示するよう選択することができる。カーソル１７５０がＤＩＣＩ１６３０の上でホバリングされる場合に、インターフェイス１７２５は、ＤＰＰに関連した追加データを示すよう表示されてよい。更には、インターフェイス１７２５は、図示されるように、会社セールスフォース・ドットコム社に関する背景情報のような、ＤＩＣＩ１６３０のＤＰＰに関連した他のデータを示すよう、生成されてＧＵＩ１６００の上の重ね合わされてよい。
【０１２９】
本明細書で開示される実施例の具体的な態様の具体的な詳細は、開示されている実施例の精神及び適用範囲から逸脱することなしに、如何なる適切な様態でも組み合わされてよい。しかし、他の実施例は、夫々の個々の態様、又はそれらの個々の態様の具体的な組み合わせに関する具体的な実施例を対象としてよい。加えて、開示されている例は、オンデマンドのデータベースサービス環境が、複数のテナントをサポートすることができるオンデマンドのデータベースサービスのためのフロントエンドを供給するアプリケーションサーバを備えたシステムにおいて実装されるところの実施例を参照して、本明細書でしばしば記載されており、一方で、本実施例は、アプリケーションサーバにおける配置又はマルチテナントデータベースに制限されない。実施例は、請求されている実施例の適用範囲から逸脱することなしに、他のデータベースアーキテクチャ、すなわち、ＯＲＡＣＬＥ（登録商標）、ＩＢＭによるＤＢ２（登録商標）、及び同様のものを用いて実施されてよい。
【０１３０】
また、開示されている実施例のいくつかは、制御ロジックの形を含め、様々なタイプのハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせの形で、モジュラー又は集積された様態で斯様なハードウェア又はソフトウェアにより、具現され得ることが理解されるべきである。他の方法又はメソッドは、ハードウェア及びハードウェアとソフトウェアとの組み合わせにより可能である。その上、本願で記載されるソフトウェアコンポーネント又は機能のいずれかは、例えば、既存の又はオブジェクト指向の技術を用いて、例えば、Ｊａｖａ、Ｃ＋＋又はＰｅｒｌのような如何なる適切なコンピュータ言語によっても、１つ以上のプロセッサによって実行されるようソフトウェアコードとして実装され得る。ソフトウェアコードは、物理的な非一時的コンピュータ可読媒体でコンピュータ又はプロセッサ実行可能な命令として記憶され得る。適切な媒体の例には、ランダムアクセスメモリ（Random  Access  Memory）（ＲＡＭ）、リードオンリーメモリ（Read  Only  Memory）（ＲＯＭ）、ハードドライブ若しくはフロッピー（登録商標）ディスクのような磁気媒体、又はコンパクトディスク（Compact  Disk）（ＣＤ）若しくはＤＶＤ（Digital  Versatile  Disk）のような光学媒体、フラッシュメモリ、及び同様のもの、あるいは、斯様な記憶又は伝送装置のあらゆる組み合わせが含まれる。
【０１３１】
ソフトウェア／プログラムコードにより符号化されているコンピュータ可読媒体は、他の装置から（例えば、インターネットダウンロードを介して）別々に提供されるか、又は互換性のある装置とまとめられてよい。如何なる斯様なコンピュータ可読媒体も、単一のコンピュータ装置又は完全なコンピュータシステムに又はその中に存在してよく、システム又はネットワーク内の他のコンピュータ可読媒体の間にあってよい。コンピュータシステム又は他のコンピュータ装置は、本明細書で記載されている結果のいずれかをユーザに提供するためのモニタ、プリンタ、又は他の適切なディスプレイを含んでよい。
【０１３２】
いくつかの実施例が本明細書で記載されているが、それらが制限ではなく単に一例として提示されていることが理解されるべきである。よって、本願の範囲は、本明細書に記載される実施例のいずれによっても制限されるべきではなく、続く、後に提示されている特許請求の範囲及びそれらの均等に従ってのみ定義されるべきである。
【０１３３】
［著作権表示］
本特許文献の開示の一部は、著作権保護を受ける題材を含む。著作権所有者は、米国特許商標庁の特許ファイル又は記録に記載されているように、特許文書又は特許開示の何者かによる複製に異論を唱えないが、それ以外の場合は全ての著作権を留保する。
【符号の説明】
【０１３４】
１２            ユーザシステム
１２Ａ          プロセッサシステム
１２Ｂ          メモリシステム
１２Ｃ          入力システム
１２Ｄ          出力システム
１２Ｅ          通信システム
１４            ネットワーク
１６            データベースシステム
１７            プロセッサシステム
１８            アプリケーションプラットフォーム
２０            ネットワークインターフェイス
２２            テナントデータベース
２４            システムデータベース
２６            コンピュータプログラムコード
２８            プロセス空間
３０            ユーザインターフェイス（ＵＩ）
３２            アプリケーションプログラミングインターフェイス（ＡＰＩ）
３６            セーブルーチン
３８            アプリケーションセットアップメカニズム
１００          アプリケーションサーバ
１０２          システムプロセス空間
１０４          テナントプロセス空間
１１０          テナント管理プロセス
１１２          テナント記憶空間
１１４          ユーザストレージ
１１６          アプリケーションメタデータ
２００          オンデマンドデータベースサービス環境
２０４          クラウド
２０８，２１２  エッジルータ
２１６          ファイヤウォール
２２０，２２４  コアスイッチ
２２８          ロードバランサ
２３２，２３６  ポッドスイッチ
２４０，２４４  ポッド
２４８          データベースファイヤウォール
２５２          データベーススイッチ
２５６          マルチテナントデータベースストレージ
２６４          コンテンツバッチサーバ
２６８          コンテンツ検索サーバ
２８０          アクセス制御システム（ＡＣＳ）サーバ
２８２          クエリサーバ
２８４          バッチサーバ
２８６          ファイルフォースサーバ
２９０          データベースインスタンス
２９２          クイックファイルシステム（ＱＦＳ）
２９４          インデクサ
２９６          ネットワークファイルシステム
２９８          ファイルストレージ
３１０，３２０  フィードアイテム
３３０          コメント
４１０          フィードアイテム
４２０          オーサリングパネル
４３０          新ポストフィールド
５０５          オペレーティングシステム（ＯＳ）
５１０          アプリケーション
５１１          リクエストメッセージ
５１２          ポストデータ
５１８          ユーザインターフェイスデータ
５１９          視覚表現
５３０          データベースオブジェクト
５５０          マイクロブロギングプラットフォーム
５５５          パーサ
５６０          クエリエンジン
５６５          データベースオブジェクト
５７０          サービスプロバイダ
８１０          フィードアイテム
８１１          動的インラインコンテンツアイテム（ＤＩＣＩ）
８１５          グループフィード
８２０          オーサリングパネル
１００１        アプリケーションサーバ
１１１４        ユーザストレージ
１２２５        インターフェイス
１２５０        カーソル
１５２０        オーサリングパネル
１６１５        ネットワークフィード
１６２１        フィードアイテム
１７５０        カーソル
【図１Ａ】
2019075092.tif 000004
【図１Ｂ】
2019075092.tif 000005
【図２Ａ】
2019075092.tif 000006
【図２Ｂ】
2019075092.tif 000007
【図３】
2019075092.tif 000008
【図４Ａ】
2019075092.tif 000009
【図４Ｂ】
2019075092.tif 000010
【図５】
2019075092.tif 000011
【図６】
2019075092.tif 000012
【図７】
2019075092.tif 000013
【図８】
2019075092.tif 000014
【図９】
2019075092.tif 000015
【図１０】
2019075092.tif 000016
【図１１】
2019075092.tif 000017
【図１２】
2019075092.tif 000018
【図１３】
2019075092.tif 000019
【図１４】
2019075092.tif 000020
【図１５】
2019075092.tif 000021
【図１６】
2019075092.tif 000022
【図１７】
2019075092.tif 000023
【外国語明細書】
2019075092000001.pdf