Witajcie po krótkiej przerwie :) Dziś słów kilka o bardzo ciekawej platformie: IBM Rational Team Concert, na którą natknąłem się w dość nietypowych okolicznościach. Czytając o ciekawych zastosowaniach i wykorzystaniu JSONa w dużych projektach znalazłem informację, że JSON stanowi ważny element tejże platformy.

Generalnie jest to zbiór dość innowacyjnych rozwiązań jeśli chodzi o tematykę zarządzania projektem informatycznych, które powinno zainteresować osoby, którym Team Foundation Server Microsoftu nie przypadł specjalnie do gustu. W tym krótkim przeglądzie postaram się przytoczyć kilka zalet i wad tegoż rozwiązania oraz dorzucić kilka info o tym jak tego w ogóle użyć :)

No to zaczynamy!

Zalety

  • W pełni bezpłatne dla grup max 10-osobowych (wersja Express-C – ma ograniczone możliwości w stosunku do wersji standardowej – o tym później). Także dla rozwiązań komercyjnych ;]
  • Łatwa instalacja serwera Jazz (to serwer, na którym działa całe rozwiązanie RTC). Trudno to nazwać nawet instalacją, wystarczy przekopiować katalog, odpalić skrypt i już
  • Dostępny zarówno na Windows, Linux, Solaris, itd.
  • Connectory dla Visual Studio 2008, Visual Studio 2010, Eclipse, NetBeans, IntelliJ IDEA i oczywiście innego oprogramowania Rational
  • Duża funkcjonalność porównywalna z TFS w najnowszej wersji – możliwość podpięcia Build Servera, platformy testowej, source controla (do wyboru są różne, nie ma ograniczenia tylko do jednego słusznego SCM), dobry system zarządzania taskami, zintegrowana metodyka SCRUM (w formie pluginów dostępne są także inne metodyki)
  • Podział ról – tzn. jeślibyśmy mieli projekt komercyjny, w którym pracowałoby >> 10 osób, to możemy zakupić licencje dla konkretnych użytkowników w zależności od potrzeb. Innymi słowy – nie każda osoba pracująca w projekcie jest programistą i nie każdy potrzebuje dostępu do Build Servera, kodu źródłowego, itd. W zależności od tych uprawnień różnią się też opłaty licencyjne
  • Ciekawy wygląd i wysoka funkcjonalność interfejsu
  • Dodatkowo pakiet dostępny jest w wielu językach (w tym po polsku)

Wady

  • Ciężkawa konfiguracja – zmiany trzeba dokonywać zarówno w plikach konfiguracyjnych Tomcata (co może być wyzwaniem, jeśli nigdy nie miało się styczności z tym serwerem), oraz w dość rozległej konfiguracji samego RTC (zamiast tego można zainstalować IBM WebSphere, które jest płatne :))
  • Problem z zarządzaniem użytkownikami w bezpłatnej wersji (zarządzanie użytkownikami nie jest częścią samego Rational Team Concert, a częścią tylko wykorzystywaną. Można więc w wyższych wersjach sprząc serwer LDAP typu  np. Active Directory z IBM RTC lub zainstalować IBM WebSphere. Bez tych (płatnych) rzeczy mamy jedynie standardową obsługę użytkowników serwera Tomcat.
  • Jeśli chcemy mieć funkcjonalny i działający serwer zaraz po instalacji to powinniśmy wybrać raczej TFS. Tam zaraz po instalacji mamy gotowego builda, source control i jakimiś kreatorami sobie wszystko skonfigurujemy. RTC wymaga od nas sporo ręcznych modyfikacji
  • Dobrze jest postawić serwer Jazz i Team Concert na osobnej dedykowanej maszynie. Mając tylko 4GB ramu, windows 7, Windows Server odpalony na VMWare, oraz kupę innych rzeczy działających serwer Jazz potrafi się zadławić i już się nie odezwać. Działa na Javie – to wszystko tłumaczy

RTC nie tylko na localhoście

Poniżej przedstawiam opis jak skonfigurować RTC oraz Tomcata aby nasz serwer był dostępny nie tylko na localhoście – tak by wypróbować jego możliwości w kilka osób.

Po pierwsze – musimy włączyć serwer, zalogować się przez przeglądarkę, w konfiguracji serwera wybrać Właściwości zaawansowane i znaleźć na tej liście wpis Katalog główny publicznego identyfikatora URI. Należy tam zmodyfikować link by używał docelowej nazwy hosta. Możemy też zmodyfikować wartość wpisu Zdalny serwer ClearQuest Web. Wyłączamy serwer. Przechodzimy do katalogu: **..\jazz\server\tomcat\conf **i edytujemy plik server.xml. To co chcemy w nim zrobić, to dodać nowy binding do danego udziału. Robimy to przez dodanie (i odpowiednie zmodyfikowanie) poniższego snippeta w gałęzi Engine (najlepiej pod obecnym wpisem hosta).

<Host name="IP_LUB_NAZWADOMENY" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host>

Warto jeszcze ustawić nowododany host jako host domyślny przez edycję gałęzi Engine i dopisanie do niej:

defaultHost="IP_LUB_NAZWADOMENY"

Kilka screenshotów i podsumowanie

Dla wrażliwych co do wyglądu docelowego rozwiązania podaję kilka screenów z normalnego działania:

p1
p2
p3

Jako podsumowanie nie stwierdzę, które rozwiązanie jest jednoznacznie lepsze, gdyż tego typu kategoryzacja nie jest na ogół możliwa. Poza tym trudno byłoby mi ułożyć jakieś bardziej zaawansowane i trafniejsze uzasadnienie, gdyż nie używałem tego rozwiązania w większym projekcie. Chętnie jednak wysłuchałbym opinii na temat RTC od osób, które miały więcej do czynienia z tą platformą :) Obecnie jednak pozostaje mi polecić omawiany produkt wszystkim tym, którzy wahają się przed wyborem konkretnego rozwiązania lub po prostu nie lubią wypocin Microsoftu.

Referencje

User Management in Tomcat

Rational Team Concert - strona główna

Trying Rational Team Concert

Comparison of Team Concert and Team Foundation Server Features

IBM Rational Team Concert, czyli programowanie w jazzowych klimatach