Извините за очень сложный вопрос, но это то, что я изучал какое-то время, и это действительно расстраивает меня. Я чувствую, что в сегодняшнем возрасте у нас есть миллион и один способ реализовать сервисы, которые являются кросс-платформенными (SOAP) и просты в построении (благодаря .NET, java и другим фреймворкам). Тем не менее, эти технологии были в обществе в течение 5-10 лет, но мы (или, по крайней мере, я) постоянно сталкиваются с теми же проблемами:SOA/ESB Dilemma
- идентификации (услуги слежения) - UDDI; например, должен был напомнить сотруднику 3 раза в этом месяце, где работает служба, несмотря на то, что существует вики, в которой обсуждается сервис и версия PDF той же документации, которая хранится в репозитории, где мы храним наши сервисные документы ,
- Масштабируемость - из кластера; Как организации, мы тратим много денег на то, чтобы заплатить нашим администраторам только за то, чтобы следить за использованием наших услуг и принимать такие решения, как эта служба нуждается в большей ОЗУ, больше ЦП, больше интерфейсов? Как загрузить баланс?
- Мониторинг - регистрация ошибок и т. Д .; Я не могу подсчитать, сколько раз мне приходится настраивать трассировку на сервисах, чтобы понять, почему происходит ошибка, которая, по-видимому, влияет только на одного клиента, или должна закодировать логику в сервисе для сериализации исключений, исключений журналов в dbs, сбой изящно и т. д.
- Развертывание - легко развертывается; ни одна из этих развертываемых библиотек DLL на 5 балансированных серверах
Для каждой из этих проблем требуется определенное типовое решение, реализуемое организацией. Документация и UDDI для # 1. Оборудование и программное обеспечение для виртуализации и балансировки нагрузки для # 2. Трассировка, запись исключений из баз данных/журналов и т. Д. Для # 3. Специальное программное обеспечение для развертывания для # 4. Я работаю в организации среднего размера. Я даже не могу представить, как компания размером с Sun, Google или Microsoft справится с этими дилеммами.
Возможно, мое видение нереально, но я мечтаю о создании Framework, который живет поверх кластера серверов, который управляет всем вышеперечисленным. Я был в восторге от того, что читал о AppFabric от Microsoft, поскольку действительно кажется, что некоторые функциональные возможности BizTalk для разработчиков WCF-сервисов: кэширование, хостинг, мониторинг и т. Д. Однако, из того, что я видел, я до сих пор не чувствую, что он живет вплоть до моей мечты о решении «все-в-одном», которое помогает разработчику и организации писать службы, которые легко масштабируются по кластерам, легко развертываются в кластере и могут быть идентифицированы, возможно, даже с возможностью версии.
Итак, я не имею в виду этот пост, чтобы быть о моей мечте. У меня действительно есть вопрос. Для начала, моя мечта/хочу совершенно нереалистично? Кроме того, какие существуют решения, которые пытаются решить эти проблемы, не ограничивая нас новым и более проприетарным способом (BizTalk) для разработки сервисов? Наконец, в отношении полного решения SOA/ESB, где мы видим наибольший потенциал на рынке прямо сейчас или в будущем?