Я абсолютный новичок в мире SOA. Поэтому я смотрю на некоторые «инфраструктуры / технологии SOA» и пытаюсь понять, как их использовать для создания хорошо масштабируемого (класс Facebook) веб-сайта.
Здесь я пытаюсь решить несколько «проблем»:
- Возможность компоновки (+ управление зависимостями, Pub / Sub)
- Языковая независимость услуг
- Масштабируемость и производительность
- Высокая доступность
Я изучил некоторые технологии, которые отвечают подмножеству вышеуказанных критериев:
- Thrift - кроссплатформенная платформа RPC Facebook
- WCF - поддерживает SOAP, JSON & REST, поэтому его можно считать совместимым с языком. Создает WSDL файлы, которые можно использовать для создания прокси Java.
- Microsoft DSS - просто включил его в мой опрос, но он не выглядит актуальным, поскольку он сильно зависит от состояния и зависит от .NET.
- Веб-сервисы
Теперь я понимаю, как из вышеперечисленного я получаю некоторые аспекты сочетаемости и языковой независимости. Но я не нашел много конкретной информации (не в курсе) о том, как использовать вышеуказанные / другие инструменты для масштабируемости и высокой доступности. Итак, наконец, я перехожу к своему вопросу:
Как использовать технологии SOA для решения проблем, которые я определил выше? Где я могу найти технические руководства для этого? Я ищу не просто системные диаграммы, а реальные библиотеки, примеры кода, APIS ...