środa, 26 czerwca 2013

Replikacja repozytorium EAP

Gdy nie jedna osoba, a zespół ludzi pracuje nad projektem wówczas zachodzi potrzeba zorganizowania jednego współdzielonego repozytorium. W przypadku pracy z programem Enterprise Architect mamy wiele możliwości zorganizowania pracy.
Jedną z takich metod jest replikacja.

Kiedy warto stosować replikację?

Replikacja najlepiej sprawdza się, gdy użytkownicy modelu:
  • pochodzą z różnych organizacji - w konsorcjum, podwykonawcy;
  • pracują w różnych lokalizacjach, w różnych sieciach;
  • są mobilni - pracują u klienta, z domu, z biura.



Zalety replikacji

Do wytworzenia współdzielonego repozytorium w formie replik nie jest potrzebne stworzenie i utrzymywanie  infrastruktury i usług centralnych w postaci na przykład wspólnej bazy danych, serwera kontroli wersji (SVN, czy TFS). Nie ma również potrzeby wystawiania żadnych usług z sieci lokalnej do internetu. 

Warto dodać, że zorganizowanie pracy w oparciu o repliki nie wymaga dużego nakładu pracy i czasu. Dzięki temu replikacja doskonale się sprawdza w sytuacji, gdy w krótkim czasie wykonawca jest zobowiązany przekazać klientowi efekty prac.

Wady replikacji

Replikacja repozytorium nie jest rozwiązaniem idealnym. Do najważniejszych wad można zaliczyć:

  • Zmiany wprowadzone przez innych użytkowników nie są widoczne od razu.
    Replika stanowi zrzut zawartości repozytorium na dany moment. Zmiany będą widoczne dopiero w kolejnej iteracji, gdy repliki zostaną scalone.
  • Potrzeba organizacyjnego przypisania właścicieli określonych pakietów, aby uniknąć wzajemnego nadpisywania tych samych elementów.
  • Nakład pracy administratora modelu na zarządzanie replikami i rozwiązywanie konfliktów.
  • Edycja modelu zorganizowana w iteracje, gdzie iteracja rozpoczyna się wygenerowaniem replik a kończy scaleniem ich.
W przypadku, gdy nie jest potrzebne (lub możliwe) uruchomienie dedykowanej bazy danych jako repozytorium EA (np. MySQL, MS SQL, PostgreSQL) oraz wszyscy użytkownicy pracują w jednej lokalizacji wówczas zamiast replikacji lepiej zastosować współdzielony plik EAP w udostępnionym udziale sieciowym.

Proces replikacji repozytorium

W dokumentacji EA można znaleźć podstawowe informacje o zasadach pracy z replikami. Jednak ze swojego doświadczenia wiem, że aby skutecznie edytować model konieczne jest opracowanie i wdrożenie odpowiedniej procedury projektowej. Procedura ta powinna zawierać informacje o tym, kto, kiedy i co powinien wykonać. Dzięki temu znacząco ogranicza się ryzyko wzajemnego nadpisywania zmian w modelu, a tym samym utraty istotnych informacji. Gdyż najbardziej stresogenną sytuacją, jaką znam, jest ta, gdy do przekazania dokumentacji pozostało tylko kilka godzin i okazuje się, że z modelu zniknęła część danych i trzeba ją odzyskać.

Organizacja pracy z replikami została przedstawiona na poniższym diagramie aktywności.
Proces rozpoczyna się oznaczeniem istniejącego repozytorium (w postaci pliku EAP) jako główny (Master).  Następnie rozpoczyna się pierwsza iteracja poprzez wygenerowanie tylu replik (również w postaci pliku EAP) osobno dla każdego użytkownika modelu. Repliki te należy dostarczyć konkretnym użytkownikom (na przykład jako załącznik w mailu). W momencie przekazania repliki należy wyznaczyć datę końca iteracji.
Koniec iteracji to data, do której wszyscy użytkownicy są zobowiązani odesłać swoje repliki administratorowi modelu. Następnie administrator modelu synchronizuje repliki tworząc nową wersję głównego repozytorium (Master). Po zakończeniu tej operacji można przystąpić do rozpoczęcia nowej iteracji poprzez wygenerowanie nowych replik i przekazanie ich użytkownikom.
Użytkownicy w nowej wersji swoich replik będą widzieli zmiany dokonane przez pozostałych użytkowników.

Generalnie rzecz biorąc, jak już wcześniej wspomniałem, jeden użytkownik powinien być proceduralnie "właścicielem" określonych pakietów w repozytorium. Jednakże nie zawsze jest to możliwe. Na przykład model użycia powinien zawierać jeden wspólny pakiet aktorów. Ten sam aktor może być wykorzystywany na wielu diagramach przypadków użycia tworzonych przez wielu użytkowników. W takim przypadku można wyznaczyć jednego użytkownika właścicielem pakietu wspólnego. Aktorzy stworzeni przez niego będą dostępni do wykorzystania przez innych użytkowników w kolejnych iteracjach.

Jak długo powinna trwać iteracja? 
To jest oczywiście kwestia do decyzji zespołu projektowego. Jeśli na opracowanie projektu przeznaczono na przykład 4 tygodnie, wówczas można ten czas podzielić na 4 iteracje o długości jednego tygodnia. Należy jednak uwzględnić czas potrzebny na synchronizację replik. W przypadku sporadycznego występowania konfliktów ten czas może być krótki, ale warto wziąć pod uwagę scenariusz pesymistyczny. Wówczas może to potrwać nawet kilka godzin.

Ponadto należy szczególnie pielęgnować główny model. Gdy model ma być pielęgnowany również po zakończeniu etapu prac w oparciu o replikację można zakończyć tryb replikacji (opcja Remove Replication) tylko w odniesieniu do głównego modelu. Repliki nie są pełnowartościowym modelem. Gdyby nastąpiła utrata głównego modelu, co może nastąpić nawet z przyczyn technicznych, gdy nieprzestrzegano zasad iteracyjnej edycji, wówczas pozostaje tylko stworzenie nowego modelu i zasilenie go wyeksportowanym plikiem XMI.

W następnym wpisie opiszę czynności techniczne w EA niezbędne do zarządzania replikacją.

Brak komentarzy:

Prześlij komentarz