Какие элементы WSDL требуются (Oracle SOA Suite)
Я пытаюсь понять файлы.wsdl, сгенерированные JDeveloper в проектах SOA. Я заметил, что они, как правило, содержат только типы, portType и элементы сообщения, но не сервис или элемент привязки.
Затем я проверил определение схемы WSDL по адресу http://schemas.xmlsoap.org/wsdl/ и заметил, что привязка и обслуживание являются "ключевыми" элементами элемента определения wsdl. Означает ли это, что сервис и привязка являются обязательными элементами? Если так, то почему они не включены в файлы WSDL JDeveloper / SOA Suite?
[Обновить]
Хорошо, я нашел частичный ответ на мой вопрос. Оказывается, когда вы получаете доступ к файлу WSDL через URL-адрес, привязка и элемент службы на самом деле включены.
Может ли кто-нибудь предоставить более подробную информацию о:
- Как это происходит?
- Почему это сделано?
- Если (2) это потому, что вы хотите, чтобы конкретные определения вашего WSDL были скрыты от разработчика и обрабатывались динамически с помощью SOA Suite: конкретные примеры того, как это динамическое связывание работает и используется в реальных приложениях...?
1 ответ
То, что вы видите сгенерированным, это абстрактный WSDL, который является минимумом, необходимым с точки зрения функциональности. Типы данных, операции и т. Д. Все там.
То, что вы ищете, - это конкретный WSDL, который конкретно определяет, как получить доступ к конкретной службе (местоположение, протокол и т. Д.). Это больше касается конфигурации / развертывания с точки зрения SOA Suite.
Коротко ответить на ваши вопросы;
- Если клиенту нужен конкретный WSDL, SOA Suite генерирует конкретное определение WSDL по требованию (это предписывается спецификацией связывания WS). Если клиент выполняет вызов в соответствии с этим конкретным WSDL, SOA Suite знает, как разрешить вызов к вашему сервису.
- По сути, вы определяете только функциональные части вашего сервиса и оставляете подробности, касающиеся доступа к SOA Suite. В конце концов, они сильно зависят от деталей развертывания. Таким образом, ваши услуги становятся немного более отделенными от физических деталей.
- Это способ SCA делать вещи. С точки зрения потребителя, опыт на самом деле не отличается. Они могут искать конкретный WSDL, как и любой другой сервис.
С точки зрения разработчиков следует помнить, что мы находимся в мире SCA. Внутри домена SCA привязки используются для предоставления сервисов или ссылки на них внутри композита. Только когда кто-то хочет предоставить сервис за пределами домена SCA, эти привязки преобразуются в обычные стандарты WS.
Для получения дополнительной информации вы можете ознакомиться со стандартом связывания WS в OASIS. http://docs.oasis-open.org/opencsa/sca-bindings/sca-wsbinding-1.1-spec.pdf