piątek, września 23, 2011

J(MS)Transport design patterns

Założenie jest takie, że gotowe wzorce powinny być proste w użyciu i zapobiegać błędom dewelopera, a z drugiej strony nie ograniczać funkcjonalności dawanej przez oryginalne oprogramowanie. Proces 'prepareNewMessage' ma tylko dwa wymagane parametry: nazwa przepływu biznesowego (pomaga w pracy ludziom z IT Operations) i nazwa usługi. Wyjście procesu tworzącego nowy komunikat zawiera gotowe wejście dla aktywności 'JMS Queue Sender', 'JMS Queue Requestor', 'Get JMS Queue Message', wystarczy tylko zrobić drag&drop.

Proces odbierający jest tworzony z szablonu, zmianie podlega tylko proces HandleMessage, który jest właściwą implementacją usługi. Odebrany komunikat jest walidowany: czy nadal spełnia uwarunkowania czasowe, czy trafił na właściwe środowisko, czy jest zgodny z wzorcem transportowym, czy deweloper po stronie klienta usługi poprawnie obsłużył transakcyjność. W razie zbyt dużej wartości JMSXDeliveryCount proces pośpi trochę lub skasuje komunikat - deweloper nie musi pamiętać o 'sleep on error'.



Odsyłanie odpowiedzi też jest bardzo proste. Proszę zwrócić uwagę, że błędy techniczne wysyłane są jako właściwości komunikatu JMS a nie w Body, tam mogą być tylko odsyłane błędy biznesowe.

Wzorzec jest explicite wersjonowany, w projekcie można używać różnych wersji artefaktów.

0 komentarze: