архитектура soa google-агрегирование контента для веб-интерфейса пользователя google

при входе в Google Домашняя страница Google ссылается на несколько других сервисов (например, Gmail, Play, Drive).

Q1) есть ли шаблон SOA, который описывает способ, которым они свободно соединяют UIs для каждой службы, но в то же время также предоставляют стандартную строку меню, стандартный внешний вид и единый вход в свои приложения?

К2) есть ли документация, которая описывает архитектуру для подключения интерфейса довольна?

редактировать

Я посмотрел с Firebug, и кажется, что существует двусторонняя связь между меню и приложением. Меню имеет ссылку на каждое приложение, но каждое приложение также имеет панель меню включены.

Я могу связать это с затмение UI, где приложение может внести свой вклад в меню приложения, но каждое меню живет в контексте приложения eclipse, которое агрегирует все отдельные плагины пользовательского интерфейса.

Итак, как google делает это в своем пользовательском интерфейсе? Похоже, что происходит какое-то волшебство javascript, при этом строка меню вводится в каждое приложение.

3 ответов


Я не могу сказать о Google, но я работал на сайты, которые делают подобные вещи. В одном примере это был веб-сайт для крупного агентства недвижимости, которое имеет офисы по всему миру, Домашняя страница (и другие страницы) включает карусель, которая отображает контент, специфичный для страны, все офисы использовали разные экземпляры одной и той же CMS для управления своим собственным контентом.

происходит то, что CMS (.Сети) использованы пользовательские и пользовательские элементы управления (.ascx) файлы для рендеринга финала страница ASPX. Эти ascx-файлы (для верхнего, нижнего колонтитула и карусели), все стили и javascript, связанные с этими файлами (поместите в папку, которая не может быть обработана под названием _CSS и _JS в соответствии с нашим соглашением), поддерживаются централизованно, а затем реплицируются на все локальные веб-сайты.

экземпляр CMS-специфичный для одного странового офиса - затем создаст свои собственные страницы, но все они используют эти общие верхние и нижние колонтитулы, предоставляемые центральным приложением.

последняя часть картина должна держать все это в синхронизации, вам нужен какой-то агент или служба для распространения этих общих компонентов на все серверы и экземпляры CMS, чтобы убедиться, что все они используют одни и те же элементы управления, стили и javascript (стили и javascript могут ссылаться централизованно, но пользовательский элемент управления должен жить в домене приложения конкретной CMS по крайней мере для .NET). Мы использовали Repliweb для таких задач, но я не очень хорошо знаком с его деталями.

от архитектурная точка зрения, я вижу это как своего рода архитектуру плагина для пользовательского интерфейса, поэтому вы правы, чтобы связать его с архитектурой 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()
    {

    }
}

Google использует собственную Библиотеки Закрытия по части пользовательского интерфейса:

что такое библиотека закрытия?

библиотека закрытия обширное, хорошо испытанное, модульное, и кросс-браузерная JavaScript библиотека. Ты можешь получить то, что тебе нужно. большой набор многоразовых виджетов и элементов управления пользовательского интерфейса, а также из нижнего уровня утилиты для манипулирования DOM, связи с сервером, анимации, данных структуры, модульное тестирование, редактирование rich-text и больше.

[...]

кто использует библиотеку закрытия?

Поиск, Gmail, Карты, Документы, Сайты, Книги, Читатель, Блоггер, Календарь, Google+, Фото

https://developers.google.com/closure/library/?hl=en


hawt.проект io имеет интересный подход:

hawtio очень модульный, так что он может точно определить, какие службы находятся внутри JVM и динамически обновлять консоль, чтобы предоставить им интерфейс.

ссылка здесь