2012-02-17 8 views
5

Mój zespół tworzy warstwę usług w języku Java i GUI w dot-net, używając mydła. Deweloperzy GUI wciąż się denerwują, ponieważ warstwa usługowa od czasu do czasu zmienia interfejs usługi WWW.Zmiana interfejsów SOAP i wycofywanie metod WWW w java

Aby zachować chaps GUI, zamiast niszczyć oryginalne metody sieciowe, piszemy teraz nowe, które żyją obok istniejących. Ponieważ nasz projekt interfejsu mydła wciąż jest udoskonalany, staje się on brudny, na pewno jest lepszy sposób! Jakieś sugestie?

Co więcej, zdarzają się sytuacje, w których chcemy wycofać metodę usługi sieciowej - czy jest tam adnotacja java (taka, która pojawiłaby się w WSDL)?

Dzięki za wszelkie sugestie

+0

Czy Twoje usługi są już produkowane? Jeśli nie, jest to raczej kwestia komunikacji niż cokolwiek innego. Poproś wszystkich o pozostanie w tym samym pokoju i daj im znać, że będzie trochę odlotu, dopóki produkt nie przejdzie do kontroli jakości. Po prostu muszą być na to przygotowani. – Perception

Odpowiedz

6

Nie ma takiego deprecation adnotacja o tym nie wiem. Jest to ogólny wzór, który normalnie używam:

  • Wdrożenie API SOAP wprowadzenie numeru wersji (V1) w obu nazwą WSDL lub ścieżki
  • Napisz nowy (lub lepszą) kodu aplikacji, która zasługuje zaktualizowaną SOAP api
  • wdrożenie całkowicie nowej wersji interfejsu API SOAP z nowym numerem wersji (v2) obok kodu V1, ale wspierane przez tych samych klas domen
  • zmienić wdrożenie usługi v1 internetowej, aby wykonać migrację i (gdy możliwe) wywołaj odpowiednią metodę usługi v2
  • Informuj klientów, że powinni zacząć używając v2 zamiast v1
  • Czekaj
  • Jeśli jesteś w dużym środowisku przedsiębiorstwa, czekać jeszcze dłużej ;-)
  • Gdy nikt nie korzysta v1 dowolny więcej (to sprawdzić z bali, i rozmowy z użytkownikami), usuń interfejs v1

Takie podejście działa bardzo dobrze, gdy masz dobre oddzielenie kodu usługi internetowej od rzeczywistego kodu aplikacji. Pomaga myśleć o kodzie usług internetowych jako warstwie prezentacji.