代理程式執行實際部署工作,這會從伺服器中移除作業。代理程式是 IBM® UrbanCode Deploy 中可調整性的重要部分。透過新增更多代理程式,系統的傳輸量與容量幾乎以指數方式增加,因此系統可以調整以適合甚至最大的企業。
雖然通常將代理程式視為單個程序,但從技術上講,代理程式由工作者程序及監視器程序組成。工作者程序是一個多執行緒程序,用於在接收來自伺服器的指令之後執行部署工作。工作指令來自外掛程式步驟,這些外掛程式步驟會提供與許多協力廠商工具的整合。監視器是一種服務,會管理工作者程序,例如啟動及停止、處理重新啟動、升級及安全。代理程式極少升級,因為它們的功能衍生自外掛程式,而外掛程式可以隨意升級。安裝代理程式之後,可以從 IBM UrbanCode Deploy Web 應用程式對其進行管理。
IBM UrbanCode Deploy 伺服器要求的所有程序(包括包裝、配置及部署)都在已指派給代理程式的硬體上執行。為了新增安全,代理程式不會接聽埠,但會開啟與伺服器的直接連線。啟動已安裝的代理程式之後,代理程式會根據安裝資訊,開啟與 IBM UrbanCode Deploy 伺服器的 Socket 連線。伺服器與代理程式之間的大部分通訊都使用 Java™ 訊息服務 (JMS) 型通訊協定。可以使用 SSL 以及每一個端點的選用相互金鑰型鑑別,來確保通訊的安全。這個通訊協定 Stateless,且對網路中斷具復原力。
未位於伺服器所位於之網路上的代理程式可能需要開啟防火牆,來建立連線。建立通訊之後,代理程式將在 IBM UrbanCode Deploy Web 應用程式中可見,並可以在其中對它進行配置。可以使用 Web 應用程式來升級作用中的代理程式,而無論作業系統為何。
雖然大部分代理程式透過 JMS 進行通訊,但部分代理程式活動透過 HTTP 及 HTTPS 存取 Web 層級。例如,公佈日誌、傳輸測試結果或將檔案公佈至 CodeStation,會根據需要透過 HTTP 或 HTTPS 來存取 Web。
代理程式監視服務使用 JMS 進行所有伺服器通訊,並使用 JMS 將指令(例如,run step 指令)傳送至工作者程序。在完成外掛程式步驟或從伺服器擷取資訊時,工作者程序將 JMS 用於系統通訊及 HTTP REST 服務。
Stateless 伺服器代理程式通訊會為效能、安全、可用性及災難回復提供明顯好處。因為每一個代理程式要求都是自行包含的,所以交易由獨立的訊息組成,訊息可以在出現時同步至輔助儲存體。端點、伺服器或代理程式可以停止並重新啟動而沒有負面影響(除了會丟失時間訊息)。如果通訊無法進行中間交易,則不會遺失任何訊息。重新連接之後,伺服器與代理程式會自動判定已傳遞了哪些訊息以及哪些工作已完成。中斷之後,系統會同步端點,並回復受影響的程序。代理程式在中斷期間完成之工作的結果會傳遞至伺服器。