Я сделал очень краткий обзор ICE несколько лет назад, и хотя я не сравнивал их напрямую раньше, обладая достаточным знанием WCF, мои мысли могут иметь некоторое отношение.
Во-первых, не совсем честно сравнивать WCF с ICE, поскольку WCF, поскольку ICE - это особый механизм удаленной связи, а WCF - это структура удаленной связи более высокого уровня.
Хотя WCF часто рассматривается как реализация веб-сервисов SOAP, и это действительно его основное использование на сегодняшний день, его также можно использовать для реализации удаленных сервисов с использованием всевозможных кодировок и транспортных каналов, что означает, что теоретически его можно использовать для эффективных коммуникаций. между приложениями.
Для сравнения, ICE - это кроссплатформенный механизм удаленной связи, который использует двоичное кодирование для эффективной связи между приложениями. Это что-то вроде упрощенной эволюции CORBA и более прямо сопоставимо с CORBA, DCOM, .NET Remoting и JNI.
Однако, несмотря на то, что между ICE и WCF нет прямой корреспонденции, если вам нужно, чтобы ваше .NET-приложение взаимодействовало удаленно, они оба являются соперниками. Некоторые из моментов принятия решения, которые вы, возможно, захотите рассмотреть, включают:
Ресурсы. Будет легче найти разработчиков с опытом работы с WCF, чем с ICE.
Представление. Если вам нужна производительность, то ICE работает быстро, но WCF также можно использовать в производительной конфигурации. В качестве альтернативы .NET Remoting может обеспечить очень хорошую производительность, и что бы ни говорили тесты, спонсируемые MS, я видел, что он превосходит WCF на 10%.
Кроссплатформенность. Если вам нужно взаимодействовать с приложениями, отличными от Windows, вы ограничены параметрами WCF, которые вы можете использовать. Кроме того, поскольку кажется, что каждый стек SOAP реализует стандарты по-разному, создание действительно общих веб-служб может оказаться сложной задачей (хотя WS-I помогает).
Если вам не нужна каждая капля производительности с первого дня, то я лично для начала бы выбрал WCF, а затем подумал о ICE, если производительность когда-либо станет критичной. Даже в этом случае было бы дешевле масштабировать ваши сервисные боксы, чем переходить на ICE, и если у вас нет каких-либо экзотических кроссплатформенных потребностей, вы всегда можете посмотреть на перенастройку WCF для двоичного кодирования и т. Д.
person
Ubiguchi
schedule
22.09.2008