2012-01-09 12 views
8

Chcielibyśmy mieć konfigurację, w której podczas wdrażania naszych usług internetowych do naszego serwera pomostowego, otrzymywalibyśmy powiadomienie o ewentualnych zmianach w kontraktach WSDL przez porównanie ich z WSDL w naszej witrynie produkcyjnej.Jak wykrywać zmiany w kontraktach WSDL?

Czy są jakieś narzędzia lub usługi, które mogą w tym pomóc?

Tried Membrane WSDL comparer ale ten rzucił java.lang.StackOverflowError gdy próbuje ją :)

+0

Co definiują Państwo jako niezłamanie zmiany? Każda zmiana istniejących konstrukcji WSDL może mieć wpływ na każdy program, który z niej korzysta. Więc niezłamanie zmiany polega na dodaniu nowej funkcji i/lub zmianie w istniejących strukturach, które nie używały żadnego programu w twoim systemie (czy jest to część kodu, którą możesz podać, aby odpowiedzieć na pytanie)? –

+0

Być może definicja łamania zmian nie jest jasna, ponieważ zależy od sposobu, w jaki klient korzysta z usługi. Jednak oczekiwałbym, że np. dodanie nowej operacji nie naruszy żadnych klientów, ale zmiana nazwy operacji/typów/parametrów spowoduje zmianę zmian. W idealnym przypadku narzędzie może wymienić zmiany w umowie, a następnie możemy zdecydować, czy zmiany są akceptowalne. Ogólnym celem jest uniknięcie przypadkowych zmian w umowie, np. Jeśli ktoś zmienił nazwę, nie wiedząc, że została ujawniona przez serwis internetowy. –

+0

@Ira Zapytałem również [to pytanie] (http://stackoverflow.com/questions/8786935/what-are-considered-non-breaking-or-backwards-compatible-changes-to-a-wsdl-contr) Twój komentarz. –

Odpowiedz

3

pierwsze; Nie wiem o takich narzędziach.

Odpowiedziałem również na pytanie "inne". Patrząc na zamieszczone tam wytyczne, powiedziałbym, że powinno być możliwe rozwijanie własnych (Możliwe, nie łatwe :).

Podobną pracę wykonałem w przeszłości; choć nie dla WSDL, ale dla innego dialektu. Moje podejście było;

  1. Analizować WSDL/schematu jak regularne XML (są one po sobie wszystkich dialektów XML) (Schemat może być trudne, chociaż)
  2. Budowanie modelu w pamięci
  3. Definiowanie zasad i stosuje je

Część WSDL jest łatwiejsza, ponieważ istnieje ograniczona liczba konstrukcji; Schemat byłby trudny, ale nadal wykonalny, jak sądzę.

Powiązane problemy