人道註冊
2008 年 12 月 1 日
SOA 狂熱者推廣的新服務世界功能之一,就是註冊中心的概念。這通常以自動化系統來描述,讓系統可以在註冊中心自動查詢有用的服務,並自行繫結和使用這些服務。
嗯,電腦偶爾看起來很聰明,但我並不太認同這個想法。雖然自動化服務查詢可能會有奇怪的邊緣案例,但我認為在二十次中有二十二次,進行查詢的會是人類程式設計師。
我最近與我的同事 Erik Dörnenburg 聊天,討論他與 Halvard Skogsrud 合作建置一個專為人類使用和維護的服務註冊中心專案。該組織已經使用 服務保管人 來管理專案開發,因此註冊中心需要在該背景下運作。這導致以下原則
- 人員開發和使用服務,因此要以人員為導向(抱歉 UDDI,謝謝你的參與)。
- 不要期望人員輸入內容以保持最新,人員已經夠忙了。
- 讓人員容易閱讀和貢獻。
註冊中心的核心是一個 wiki,讓人員可以輕鬆輸入特定服務的資訊。不僅是服務的建置人員,還有使用過服務的人員。畢竟,使用者的意見通常比供應商更有用(我猜測產品評論網站的流量比供應商網站多)。
維基讓大家可以輕鬆地描述服務,但這仰賴於人們有時間貢獻。維基讓這件事變得容易,因為你只要按一下就可以開始,但這仍然需要花時間。因此,他們用一些自動收集的有用資訊來備份人工輸入。
- 一個工具,可以詢問原始碼控制系統,並顯示誰在什麼時候提交了多少服務。這有助於人類讀者找出他們應該與哪些人交談。即使有一段時間沒有提交,提交次數最多的人,可能對服務的核心設計和目的非常了解。最近提交過幾次的人,可能對最近的使用方式和怪癖比較了解。
- 來自 CI 伺服器和原始碼控制系統的 RSS 饋送。
- 來自問題追蹤系統的任務和錯誤資訊。
- 來自訊息匯流排的流量資料,顯示服務的使用量和時間。訊息匯流排也會提供一些關於服務使用者的線索。
- EJB 容器中的攔截器,用於擷取使用者應用程式名稱,同樣是為了了解誰在使用服務。這些攔截器在使用者端用於擷取使用者應用程式名稱,在服務端用於了解使用模式。
- 來自 Ivy 相依性的資訊。
這種註冊表的重點在於,它會自動執行大量工作來取得資訊,但會以人類讀者可以理解的方式呈現。此外,它了解人類讀者最重要的問題是關於專案中的人員:他們是誰、他們什麼時候處理這件事、我應該寄信給誰,以及哪裡可以喝到真正好的巴西雞尾酒?