Platforma Jazz jest oparta na architekturze klient-serwer. Serwer Jazz, uruchamiany zwykle na bezpiecznej maszynie o klasie serwera, udostępnia zestaw usług i przechowuje dane w swoich repozytoriach. Klienty zdalne komunikują się z serwerem Jazz za pośrednictwem sieci przy użyciu protokołu HTTP. Klienty zdalne mają różne formy. Typowym klientem zdalnym jest środowisko IDE ze zintegrowaną obsługą platformy Jazz i z użytkownikiem zaangażowanym w grupowe tworzenie oprogramowania. Inne klienty zdalne, takie jak narzędzia wierszy komend specyficzne dla platformy Jazz lub skrypty Ant, działają w trybie nienadzorowanym. Jeszcze inne uzyskują dostęp do serwera, korzystając bezpośrednio z przeglądarki WWW, bez konieczności instalowania na komputerze oprogramowania specyficznego dla platformy Jazz.
Platforma Jazz zawiera zgodne części: usługę i bibliotekę klienta. Usługa znajduje się po stronie serwera. Implementacja usługi jest napisana w języku Java. Kontakt z usługą jest nawiązywany za pośrednictwem interfejsu usługi. Interfejs usługi jest używany jako definicja usługi Java interfejsu usługi WWW, co służy na potrzeby synchronicznej komunikacji w stylu RPC w kierunku od klienta do serwera.
Odpowiadająca część po stronie klienta to biblioteka klienta oparta na języku Java, która reprezentuje interfejs klienta. Biblioteka klienta wykonuje wywołania do odpowiadającego interfejsu usługi. Wywołania te są wysyłane za pośrednictwem sieci do odpowiedniej usługi na serwerze w celu przetworzenia. Biblioteka klienta udostępnia buforowanie, powiadamianie o zdarzeniach i inne funkcje, które czynią interfejs API bardziej wygodnym w użytkowaniu niż surowy interfejs usługi.
Klienty Jazz oparte na języku Java, takie jak Ant oraz środowisko IDE Eclipse, korzystają z metod w interfejsie klienta. (Analogiczne biblioteki klienta mogą zostać napisane na potrzeby klientów nie opartych na języku Java).
Klienty oparte na przeglądarkach WWW są obsługiwane w sposób analogiczny przy użyciu pokrewnego interfejsu usługi, który jest bardziej odpowiedni w przypadku dostępu z poziomu języka JavaScript (opisanego w dalszej sekcji dotyczącej interfejsów użytkownika WWW).
Platforma Jazz charakteryzuje się modułową i rozszerzalną architekturą. Typowy moduł (nazywany komponentem Jazz) udostępnia możliwość pomocną w niektórych aspektach cyklu życia tworzenia oprogramowania, na przykład w śledzeniu defektów lub automatycznym budowaniu. Typowy komponent udostępnia co najmniej jedną usługę i odpowiadające biblioteki klienta razem z fragmentami interfejsu użytkownika specyficznego dla domeny, które są zbudowane na tych niższych warstwach. Zainstalowanie komponentu na serwerze Jazz sprawia, że usługi komponentu są ogólnie dostępne, natomiast zainstalowanie komponentu na kliencie Jazz pozwala na dostęp użytkownika do nowej usługi. Komponent Jazz może działać autonomicznie (polegając tylko na podstawowej, wbudowanej funkcjonalności) lub może korzystać z funkcjonalności udostępnionej przez inne zainstalowane komponenty.
Idea komponentu pozwala na łatwe wyjaśnienie sposobu rozszerzania platformy Jazz, ale platforma ta nie oferuje nowego mechanizmu komponentu ogólnego przeznaczenia. Zamiast tego platforma Jazz wykorzystuje mechanizmy rozszerzalności platformy Eclipse zarówno na serwerze, jak i na klientach opartych na języku Java. Czytelnik niezaznajomiony z ideą platformy Eclipse opartą na wtyczkach i punktach rozszerzeń powinien zapoznać się z sekcją dotyczącą środowiska wykonawczego platformy i architektury wtyczek publikacji Eclipse Platform Technical Overview (Przegląd techniczny platformy Eclipse). Realizując ideę wtyczek środowiska Eclipse, tworzone są pakiety komponentów, które wnoszą rozszerzenia do innych komponentów, korzystając z idei punktów rozszerzeń środowiska Eclipse. Jeden komponent jest złożony ze zbioru wtyczek, z których część jest instalowana na serwerze, a część na kliencie.
Prototypowy komponent Jazz składa się z pięciu wtyczek:
Wtyczka usługi, wtyczka wspólna i wtyczka interfejsu użytkownika WWW są instalowane na serwerze.
Do rejestrowania wtyczek na platformie Jazz używane są punkty rozszerzeń. Wtyczka wspólna komponentu, która jest instalowana zarówno na kliencie, jak i na serwerze, rejestruje interfejs usługi komponentu za pośrednictwem punktu rozszerzenia. Wtyczka usługi rejestruje odpowiadającą implementację usługi za pośrednictwem punktu rozszerzenia tylko po stronie serwera. Wtyczka biblioteki klienta rejestruje interfejs klienta za pośrednictwem punktu rozszerzenia tylko po stronie klienta. Te elementy wnoszone zawierają łańcuch identyfikatora komponentu. Elementy wnoszone są używane do łączenia komponentów w czasie wykonywania.
Wtyczki po stronie klienta dla interfejsu użytkownika klienta i biblioteki klienta komponentu są instalowane w środowisku IDE Eclipse. Wtyczki interfejsu użytkownika klienta wnoszą widoki, edytory itd. za pośrednictwem punktów rozszerzeń platformy Eclipse, a wtyczki biblioteki klienta rejestrują interfejsy klienta za pośrednictwem punktu rozszerzenia specyficznego dla platformy Jazz.
Biblioteki klienta są przeznaczone do pracy na klientach (takich jak Ant) niezawierających środowiska wykonawczego OSGi. Biblioteki klienta mogą zależeć tylko od bibliotek klienta innych komponentów, a nie od ich usług lub interfejsów użytkownika.
Komponenty muszą deklarować wszystkie zależności względem innych komponentów. Wykres zależności nie może zawierać cykli. Komponent może również deklarować własne punkty rozszerzeń, pozwalając z kolei na ich rozszerzanie przez inne komponenty.
Serwer Jazz jest aplikacją WWW opartą na języku Java, która działa na dowolnym serwerze aplikacji zgodnym ze środowiskiem Java EE 1.4. Aktualnie obsługiwanymi serwerami aplikacji są serwery Apache Tomcat oraz IBM WebSphere Application Server. Apache Tomcat jest kontenerem serwletu typu Open Source, który może być instalowany na komputerach klasy desktop. IBM WebSphere Application Server jest dostępnym komercyjnym produktem oferującym rozwiązania na różną skalę. Znaczenie usług i interfejsów API platformy Jazz po stronie serwera jest niezależne od wybranego serwera aplikacji, pozwalając na obsługę dodatkowych serwerów aplikacji w przyszłych wersjach.
Aplikacja WWW platformy ma wewnętrzną strukturę zgodną ze środowiskiem OSGi (informacje dla czytelników zaznajomionych ze środowiskiem Eclipse). Aplikacja WWW platformy Jazz obsługuje usługi wszystkich komponentów Jazz zainstalowanych na serwerze. Zainstalowanie nowego komponentu na serwerze Jazz wymaga przekazania informacji dotyczących wtyczek komponentu znajdujących się po stronie serwera (pakunków OSGi) środowisku wykonawczemu OSGi podstawowej aplikacji WWW. Manifest pakunku deklaruje wszystkie zależności z innymi zainstalowanymi komponentami. Oddzielny manifest rozszerzenia zawiera wszystkie elementy wnoszone do różnych punktów rozszerzeń. Środowisko wykonawcze OSGi przetwarza manifesty pakunków podczas uruchamiania, zapewniając spełnienie zależności między komponentami dla wszystkich zainstalowanych komponentów. Aplikacja WWW platformy Jazz zarządza rejestrem rozszerzeń zbierającym elementy wnoszone wszystkich zainstalowanych komponentów oraz kieruje wszystkie żądania przychodzące odbierane przez interfejs usługi komponentu do odpowiedniej usługi w celu przetworzenia.