グーグルについては言えませんが、私は同じようなことをするウェブサイトに取り組んできました。一例では、世界中にオフィスを持つ大規模な不動産会社のWebサイトであり、ホームページ(および他のページ)には国固有のコンテンツを表示するカルーセルが含まれ、すべてのオフィスが同じCMSの異なるインスタンスを使用していました。自分のコンテンツを管理します。
何が起こるかというと、CMS(.NETベース)はカスタムおよびユーザーコントロール(.ascx)ファイルを使用して最終的なaspxページをレンダリングしました。これらのascxファイル(ヘッダー、フッター、カルーセル用)、これらのファイルに関連するすべてのスタイルとjavascript(慣例に従って_CSSおよび_JSと呼ばれる操作できないフォルダーに配置)は一元的に維持され、すべてのローカルWebサイトに複製されます。
CMSインスタンス(1つの国のオフィスに固有)は独自のページを作成しますが、それらはすべて、中央アプリケーションによって提供されるこれらの共通のヘッダーとフッターを使用します。
写真の最後の部分は、これらすべての同期を維持することです。これらの共通コンポーネントをすべてのサーバーとCMSインスタンスに伝播して、それらがすべて同じコントロール、スタイル、およびjavascript(スタイルとjavascriptは一元的に参照できますが、カスタムユーザーコントロールは、少なくとも.NETでは特定のCMSのアプリケーションドメイン内に存在する必要があります)。そのようなタスクにはRepliwebを使用しましたが、その詳細についてはよくわかりません。
アーキテクチャの観点からは、UIのプラグインアーキテクチャのようなものだと思います。そのため、Eclipseアーキテクチャに関連付けるのは正しいことです。中央CMSは、特定のサイトインスタンスが準拠して実装する必要のあるインターフェイスを提供する抽象型です。
abstract class GoogleSite
{
Control Header { get; set; }
Control Footer { get; set; }
public string Title { get { return "Default title"; } }
public abstract void ProvideContents();
}
class Gmail: GoogleSite
{
//still using same header and footer but Title is different
override public string Title { get { return "Gmail"; } }
public override void ProvideContents()
{
}
}
class GPlus: CentralCMS
{
//Another CMS not overriding the title but Providing different contents
public override void ProvideContents()
{
}
}