Я не предполагаю веб-приложение традиционным способом - но с точки зрения поставщиков услуг и потребителей.На работе у нас есть уровень API RESTful, работающий под Tomcat, созданный с использованием интерфейсов Shindig.Уровень взаимодействует с MySQL, а также с MongoDB.Мы используем ближнее / дальнее кэширование с использованием Memcached, которое мы планируем переместить в Redis, учитывая, что мы используем много операций со списками и множествами.Этот слой также взаимодействует с Twitter и Facebook для определенных API (например, выталкивает обновления статуса).Все конечные точки доступны как вызовы REST / XML, совместимые с OpenSocial.Мы используем NewRelic для мониторинга производительности сервиса и SLA.В настоящее время мы делаем чуть более 30 000 оборотов в минуту с временем отклика 10 мс.У нас есть кластер из 4 Tomcats, 3 memcacheds, 3 MySQL (1M 2S) и 3 MongoDB (replicaset).Весь стек работает на виртуальных машинах, размещенных на XenServer с Centos.Мы используем RabbitMQ для обмена сообщениями / асинхронных операций, таких как отправка уведомлений или общение с третьими лицами (Twitter / Facebook), чтобы не блокировать потоки виртуальных машин.Мы планируем перейти на HornetQ + Scala Actors в ближайшем будущем, поскольку платформа станет популярной.Поиск выполняется в Solr, но мы активно переходим на ElasticSearch.
Мы спроектировали систему в этой модели на основе API / Services, чтобы мы могли обслуживать более одной клиентской платформы.Поэтому, когда наше мобильное приложение запускается, оно может повторно использовать API вместо того, чтобы иметь отдельный набор одного и того же стека для Mobile.Эта архитектура абстрагирует серверные предложения без связи с внешним интерфейсом.Внешний интерфейс, который у нас есть, построен на PHP / Zend и широко использует JQuery.Мы создаем мобильный интерфейс с использованием HTML5, PhoneGap и Sencha Touch.
В целях безопасности у нас есть открытые GET, но запись защищена с помощью двухстороннего oauth.Нам нужно будет предоставить трехстороннюю поддержку, как только мы откроем API для внешних потребителей и разработчиков приложений.
Надеюсь, это резюме поможет.Пожалуйста, не стесняйтесь комментировать, если вам нужна дополнительная информация или у вас есть какие-либо вопросы.