Вопрос

Я знаю разницу между UDDI и Ws-Discovery (хорошо знаю, где искать службу, а где вещать).Но мой вопрос:каков самый простой способ обнаружить веб-сервис в WCF?Под самым простым я подразумеваю то, что уже реализовано в WCF и можно использовать сейчас?Я не видел в WCF встроенной реализации UDDI или Ws-Discovery.

Есть ли у вас какая-либо ссылка или опыт, которым вы могли бы поделиться об этих двух протоколах в WCF?

ОБНОВЛЯТЬ

Сейчас я думаю о трех решениях: жду WS-обнаружения в .NET 4.0 или, возможно, создаю собственную привязку обнаружения с помощью привязки Peer to Peer, предоставляемой WCF.Таким образом я могу транслировать запрос.Или используя реализацию, представленную по ссылке eed3si9n.

Я думаю, что я сделаю интерфейс шлюза, чтобы можно было легко изменить последнюю реализацию.

Это было полезно?

Решение

.NET 4.0 будет иметь WS-Discovery. См. Улучшения обмена сообщениями в .NET 4.0: (Часть I обнаружения) Использование WS-Discovery в WCF 4.0 . Тем временем Клаудио Масьери предоставил реализацию. См. WS-Discovery for WCF .

Существует также пользовательская реализация обнаружения, выполненная аналогично UDDI. См. Обнаружение службы связи Windows . р>

  

Представьте, что у вас есть 200 клиентов, использующих   Ваш фанк сервис Wcf. Они бы все   иметь в своем файле Conf раздел, как   этот:

<client>
   <endpoint configurationName="default"
               address="http://localhost/servicemodelsamples/service.svc"
               binding="wsHttpBinding"
               bindingConfiguration="Binding1"
              contract="IDataContractCalculator" />
 </client>
 <bindings>
   <wsHttpBinding>
      <binding configurationName="Binding1" />
   </wsHttpBinding>
</bindings>
  

Теперь вы решили изменить существующий   конечная точка (на стороне сервера) с новой   который использует SSL по соображениям безопасности. Как   Вы обновляете своих клиентов? Вы можете   быстро увидеть, что это может стать   утомительный. Так что идея, которую я хочу подробно   здесь, чтобы реализовать открытие   сервис похож на то, что делает UDDI и   использовать распознаватель метаданных, чтобы получить   Конфигурация вне службы в   Для того чтобы динамически создать прокси   позволяя клиенту обсудить с   услуга.

У этого человека такая же проблема, как и у вас, и, похоже, у него есть рабочее решение.

Другие советы

  

UDDI предоставляет центральный реестр   хранить информацию о наличии   Сервисы. Это поставляет каталог, где   потребители могут найти услуги, которые отвечают   их потребности. Эта телефонная книга похожа   справочник информации позволяет   потребители находят услуги по названию,   адрес, контракт, категория или   другие данные. UDDI можно думать о   в качестве DNS веб-сервисов.

     

С другой стороны, WS-Discovery   предоставляет протокол для обнаружения   услуги, которые приходят и уходят   из сети. Как сервис присоединяется   сеть, она сообщает своим сверстникам   его прибытие путем трансляции Hello   сообщение; аналогично, когда услуги падают   От сети они многоадресные пока   сообщение. WS-Discovery не полагается на   один узел для размещения информации   обо всех доступных сервисах как UDDI   делает. Скорее, каждый узел вперед   информация о доступных услугах   в особом порядке. Это уменьшает   количество сетевой инфраструктуры   необходимо обнаружить услуги и   облегчает загрузку.

Цитата из: http://travisspencer.com/blog/2007/09/ post.html

Вот хороший список свойств: http://laflour.spaces.live.com/Blog/cns! 7575E2FFC19135B4! 728.entry

У jUDDI есть клиент .NET, который вы можете использовать.Это значительно упрощает ряд вещей по работе с UDDI.

По опыту, существует только две или три функционирующие реализации WS-Discovery.

  • Apache CXF, но только при запуске вне контейнера
  • Вот этот: https://code.google.com/p/java-ws-discovery/ который не работает в Jboss и не поддерживается
  • Microsoft .NET 4.0иш

UDDI, к которому вы можете получить доступ из чего угодно.Существует множество реализаций клиента и сервера.(Здесь перечислены только материалы версии 3)

  • IBM WS-реестр
  • Апач jUDDI
  • Microsoft UDDI v3 с Biztalk (бесплатно с сервером 2008 г.)
  • HP SOA/Systinet или как он сейчас называется
  • В WSO2 есть что-то
  • У ebXML есть какой-то мост или адаптер.

Существует даже конечная точка REST для UDDI3 (она есть в jUDDI 3.2, ответы XML или JSON), которая открывает гораздо больше возможностей.

Кроме того, данные, которые можно использовать совместно с WS-Discovery, несколько ограничены по сравнению с практически неограниченными данными, которые вы можете прикрепить к UDDI.

Это всего лишь мои 2 цента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top