Platforma Jazz je založena na architektuře klient - server. Server Jazz, který je obvykle provozován na zabezpečeném počítači serverové třídy, provozuje určitý počet služeb a uchovává ve svém úložišti data. Vzdálení klienti komunikují se serverem Jazz prostřednictvím sítě a protokolu HTTP. Vzdálení klienti mají více podob. Základní podobou je integrované vývojové prostředí s integrovanou podporou platformy Jazz, jež se orientuje na uživatele zapojeného do vývoje softwaru v rámci spolupráce pracovní skupiny. Další vzdálení klienti, například nástroje příkazového řádku nebo skripty Ant specifické pro platformu Jazz, pracují v bezobslužném režimu. Ostatní přistupují k serveru prostřednictvím webového prohlížeče bez potřeby instalace softwaru Jazz na svém počítači.

Tento diagram představuje architekturu klient - server platformy Jazz

Klient - server

Platforma Jazz obsahuje vzájemně optimalizované součásti: Službu a knihovnu klienta. Služba je na straně serveru. K implementaci služby je použit jazyk Java. Služba se kontaktuje prostřednictvím svého rozhraní služby. Rozhraní služby se používá jako definice služby Java webového rozhraní služby, které se používá pro synchronní komunikaci RPC od klienta na server.

Odpovídající část na straně klienta je javovská knihovna klienta, jež poskytuje rozhraní klienta. Knihovna klienta provádí volání příslušného rozhraní služby, přičemž tato volání jsou odesílána prostřednictvím sítě k odpovídající službě na serveru pro zpracování. Knihovna klienta poskytuje mezipaměť, oznamování událostí a další funkce, které usnadňují používání rozhraní API ve srovnání s přímým rozhraním služby.

Klienti Jazz založení na technologii Java, například Eclipse IDE a Ant, používají metody rozhraní klienta. (Lze sestavit analogické klientské knihovny pro klienty, kteří nepoužívají Javu.)

Klienti webového prohlížeče jsou obsluhováni analogickým způsobem prostřednictvím souvisejícího rozhraní služby, které je lépe vybaveno pro přístup prostřednictvím JavaScript (viz popis v jedné z následujících sekci webového uživatelského rozhraní).

Komponenty

Platforma Jazz má modulární a rozšiřitelnou architekturu. Typický modul, který nazýváme komponentou Jazz, poskytuje funkce, jež pomáhají s určitými aspekty životního cyklu vývoje softwaru, například se sledováním defektů a automatickým sestavením. Typická komponenta poskytuje jednu nebo několik služeb a odpovídající knihovny klienta společně se specifickými částmi uživatelského rozhraní, které jsou vybudovány na těchto nižších vrstvách. Instalace komponenty na server Jazz zajistí obecné zpřístupnění služeb komponenty, zatímco instalace komponenty do klienta Jazz umožní přístup k nové službě určitému uživateli. Komponenta Jazz může být použita buď samostatně (přičemž používá pouze základní vestavěné funkce), nebo může používat funkce poskytované ostatními instalovanými komponentami.

Třebaže pojem komponenty je příhodný k výkladu metod rozšiřování platformy Jazz, Jazz nenabízí nový víceúčelový mechanizmus komponent. Místo toho platforma Jazz využívá mechanizmy rozšiřování platformy Eclipse pro server a pro klienty založené na technologiích Java. (Čtenáři, který není obeznámen s pojmy platformy Eclipse "modul plug-in" a "bod rozšíření", doporučujeme získat obecné informace prostudováním sekce Běhové prostředí platformy a Architektura modulu plug-in Technického přehledu pozadí platformy Eclipse.) Komponenty jsou zabaleny ve stylu modulů plug-in platformy Eclipse a příspěvky rozšiřující jiné komponenty jsou zabaleny jako body rozšíření Eclipse. Komponenta se skládá ze sady modulů plug-in, z nichž některé jsou instalovány na serveru a jiné v klientovi.

Prototypová komponenta Jazz sestává z pěti modulů plug-in:

Modul plug-in služby, obecný modul plug-in a plug-in webového uživatelského rozhraní jsou instalovány na serveru.

Moduly plug-in používají body rozšíření pro registraci v platformě Jazz. Obecný modul plug-in komponenty, který je instalován v klientovi i na serveru, registruje rozhraní služby komponenty prostřednictvím bodu rozšíření. Modul plug-in služby registruje příslušnou implementaci služby prostřednictvím bodu rozšíření, který je pouze na straně serveru. Modul plug-in knihovny klienta registruje rozhraní klienta prostřednictvím bodu rozšíření, který je pouze na straně klienta. Tyto příspěvky jsou označeny řetězcem ID komponenty. Příspěvky se používají pro vzájemné propojování komponent za běhu.

Moduly plug-in na straně klienta pro uživatelské rozhraní klienta komponenty a knihovnu klienta se instalují do integrovaného vývojového prostředí Eclipse. Moduly plug-in uživatelského rozhraní klienta přispívají svými pohledy, editory atd. přes body rozšíření platformy Eclipse. Moduly plug-in knihovny klienta registrují svá klientská rozhraní přes bod rozšíření platformy Jazz.

Knihovny klienta jsou určeny pro práci v klientech, které neobsahují běhové prostředí OSGi, což je například Ant. Knihovny klienta mohou záviset pouze na knihovnách klienta jiných komponent a nikoli na jejich službách či uživatelských rozhraních.

Komponenty musejí deklarovat případné závislosti na jiných komponentách. Graf závislosti nesmí obsahovat cykly. Komponenta může deklarovat rovněž své vlastní body rozšíření, které jí umožňují rozšíření o jiné komponenty.

Server

Server Jazz je javovská webová aplikace, kterou lze provozovat v rámci libovolného aplikačního serveru Java EE 1.4. V současné době jsou podporovány tyto aplikační servery: Apache Tomcat a IBM WebSphere Application Server. Apache Tomcat je kontejner servletů s otevřeným zdrojem, který lze nainstalovat na stolní počítače. IBM WebSphere Application Server je komerčně dostupný produkt, který nabízí řešení různých rozměrů. Sémantika služeb a rozhraní API Jazz na straně serveru je nezávislá na použitém aplikačním serveru, což umožní podporu dalších aplikačních serverů v budoucích verzích.

Pro čtenáře obeznámené s platformou Eclipse poznamenejme, že vnitřní struktura webové aplikace Jazz je založena na běhovém prostředí OSGi. Webová aplikace Jazz obsluhuje služby všech komponent Jazz, které jsou instalovány na serveru. Instalace nové komponenty na server Jazz zahrnuje obeznámení primárního běhového prostředí OSGi webové aplikace s moduly plug-in (balíky OSGi) komponenty na straně serveru. Soubor typu manifest balíku deklaruje veškeré závislosti na dalších instalovaných komponentách. Samostatný manifest rozšíření obsahuje veškeré přispěvatele do různých bodů rozšíření. Běhové prostředí OSGi zpracovává soubory typu manifest balíků při spuštění, a zajišťuje tak uspokojení mezikomponentových závislostí pro všechny instalované komponenty. Webová aplikace Jazz spravuje registr rozšíření, který shromažďuje příspěvky všech instalovaných komponent a směruje jednotlivé příchozí požadavky směrující na rozhraní služby komponenty k příslušné službě ke zpracování.