「Jazz 平台」是以主從架構為基礎。 Jazz 伺服器通常是在安全伺服器等級的機器上執行,管理一組服務,並將資料存放在它的儲存庫中。 遠端用戶端利用 HTTP,透過網路來與 Jazz 伺服器通訊。 遠端用戶端有許多種形式,參與協同軟體開發的使用者所驅動、整合了「Jazz 平台」支援的 IDE 便是一種典型的形式。 Jazz 特定指令行工具或 Ant Script 之類的其他遠端用戶端,則採用遠端控制模式來運作。 此外便是直接利用 Web 瀏覽器來存取伺服器,它們的機器不需要安裝 Jazz 特定軟體。

這個圖解說明「Jazz 平台」主從架構

主從架構

「Jazz 平台」有相匹配的部分:服務和用戶端程式庫。 服務是在伺服器端。 服務實作是以 Java 來撰寫。 服務是透過它的服務介面來聯絡的。 服務介面用來作為 Web 服務介面的 Java 服務定義,Web 服務介面則用來進行從用戶端到伺服器的同步 RPC 樣式通訊。

對應的用戶端部分是顯現用戶端介面的 Java 型用戶端程式庫。 用戶端程式庫會呼叫對應的服務介面,這些呼叫透過網路送到伺服器上對應的服務來進行處理。 用戶端程式庫提供快取、事件通知等,以及使 API 比原始服務介面更方便好用的其他特性。

Eclipse IDE 和 Ant 之類的 Java 型 Jazz 用戶端使用用戶端介面中的方法。 (如果要給非 Java 型用戶端使用,也可以撰寫類似的用戶端程式庫。)

Web 瀏覽器用戶端也是以類似的方式來處理,但所用的相關服務介面更適合從 JavaScript 存取(稍後的 Web 使用者介面相關區段會加以說明)。

元件

「Jazz 平台」採用模組化可延伸架構。 一般模組稱為 Jazz 元件,負責協助處理軟體開發生命週期的某一方面,例如,問題報告的追蹤或自動化建置。 一般元件會提供一或多項服務和對應的用戶端程式庫,以及建置在這些較低層次之上的領域特定使用者介面片段。 將元件安裝在 Jazz 伺服器上,可以公開元件的服務,將元件安裝在 Jazz 用戶端上,則可以讓使用者存取新的服務。 Jazz 元件可以獨立自足(只依賴基本的內建功能),也可以運用其他安裝元件所提供的功能。

元件概念是為了便於說明「Jazz 平台」的延伸方式,Jazz 並不提供新的一般用途的元件機制。 相反地,「Jazz 平台」在伺服器及 Java 型用戶端兩方面,都使用「Eclipse 平台」的延伸機制。 (不熟悉 Eclipse 平台外掛程式和延伸點概念的讀者,應該閱讀「Eclipse 平台技術概觀」的「平台執行時期和外掛程式架構」一節,以瞭解背景。) 元件包裝成 Eclipse 的外掛程式概念,利用 Eclipse 的延伸點概念來延伸到其他元件。 單一元件是由一組外掛程式組成,部分安裝在伺服器上,部分安裝在用戶端上。

Jazz 元件原型由五個外掛程式組成:

服務、共用和 Web 使用者介面外掛程式安裝在伺服器上。

外掛程式利用延伸點,在 Jazz 中進行登錄。 同時安裝在用戶端和伺服器的元件共用外掛程式,也透過延伸點來登錄元件的服務介面。 服務外掛程式透過伺服器端專用延伸點來登錄對應的服務實作。 用戶端程式庫外掛程式透過用戶端專用延伸點來登錄用戶端介面。 這些要素項都帶有元件的 ID 字串。 執行時期便利用這些要素項,將各個元件連結起來。

元件用戶端使用者介面的用戶端外掛程式與用戶端程式庫安裝在 Eclipse IDE 中。 用戶端使用者介面外掛程式透過「Eclipse 平台」延伸點來提供它們的視圖、編輯器等; 用戶端程式庫外掛程式透過 Jazz 特定延伸點來登錄它們的用戶端介面。

用戶端程式庫設計成在不含 OSGi 執行時期的用戶端運作,如 Ant。 用戶端程式庫只能相依於其他元件的用戶端程式庫,不能相依於它們的服務或使用者介面。

元件必須宣告與其他元件的任何相依關係。 相依關係圖不能含有循環。 元件也必須宣告它自己的延伸點,以便其他元件向它延伸。

伺服器

Jazz 伺服器是在任何 Java EE 1.4 標準應用程式伺服器內執行的 Java 型 Web 應用程式。 目前支援的應用程式伺服器有 Apache Tomcat 和 IBM WebSphere Application Server。 Apache Tomcat 是可以安裝在桌面等級機器上的開放程式碼 Servlet 儲存器。 IBM WebSphere Application Server 是一個上巿產品,提供各種規模的解決方案。 服務和伺服器端 Jazz API 的語意與應用程式伺服器選項無關,因此,未來的版本也能夠支援其他應用程式伺服器。

如果讀者熟悉 Eclipse,Jazz Web 應用程式是在內部環繞著 OSGi 執行時期來結構的。 Jazz Web 應用程式會處理伺服器上所安裝之所有 Jazz 元件的各項服務。 將新元件安裝在 Jazz 伺服器上,包括使主要 Web 應用程式的 OSGi 執行時期能夠識別元件的伺服器端外掛程式(OSGi 軟體組)。 軟體組的資訊清單會宣告與其他已安裝之元件的任何相依關係;個別的延伸資訊清單含有在各種延伸點上的任何要素項。 OSGi 執行時期會在啟動之時處理軟體組資訊清單,確保能夠滿足所有已安裝之元件的跨元件相依關係。 Jazz Web 應用程式會管理延伸登錄,延伸登錄將所有已安裝之元件的要素項聚集起來,並將元件服務介面上的每個送入要求遞送到對應的服務來進行處理。