Это детально.
, Если у Вас должен быть другой системный интерфейс с Вашими сервисами, чем много клиентов, будет более довольно SOAP, из-за слоев "проверки", которую Вы имеете с контрактами, WSDL и стандартом SOAP.
Для ежедневных систем, звонящих в системы, я думаю, что SOAP является большим количеством ненужных издержек, когда простой вызов HTML сделает.
Я получил следующий ответ от разработчика Sun
Общая политика развития API в JDK для выпусков функций, таких как JDK 7,
(Для получения более подробной информации о различных видах совместимости см.
«Виды совместимости: Источник , Двоичный и поведенческий " а также «Совместимо развивающееся BigDecimal»
Добавление методов к интерфейсам является двоичным совместимым , но несовместимым с исходным кодом , поэтому обычно это не делается. Как правило, чем шире реализован интерфейс, тем меньше вероятность того, что мы добавим к нему методы. Область JDBC является исключением из этой политики и использует более гибкие правила обновления, но это действительно вызывает реальные проблемы, когда люди хотят перейти на новую версию JDK.
Обратите внимание, что добавление новых методов только нарушает совместимость исходного кода, уже скомпилированные реализации Statement
или ResultSet
в драйвере JDBC будут продолжать работать на более новой JDK. Только при попытке вызвать новый метод вы получите NoSuchMethodError
.
Sun никогда не гарантирует совместимость исходного кода между выпусками, только двоичную совместимость. Наиболее распространенный пример - исходный код, содержащий идентификаторы assert или enum, не будет компилироваться под JDK 1.4 (для assert) или 1.5+ (для enum), но существующие файлы .class по-прежнему будут работать под этими новыми JVM.
Вы можете попробовать использовать флаг -source для компиляции старых файлов .java под более новыми JVM, но вы все равно можете столкнуться с проблемами, если полагаетесь на классы jvm, которые изменились.
Они, вероятно, предполагают, что поставщики драйверов баз данных, которые реализуют эти методы, постоянно обновляются с новыми средами выполнения Java, и что это лучше ввести новые полезные методы и временно нарушить совместимость.
Конечно, они могли бы спроектировать это лучше, чтобы не было необходимости нарушать совместимость…