ACS由管理/ACS伺服器組成
ACS系統架構有兩大伺服器(圖1),其一為管理伺服器(Management Server),其包含一個網頁伺服器(Web Server)與資料庫。其目的為提供簡單易用的管理介面,讓使用者容易地管理支援TR-069協定的家用連網設備。另一則為ACS伺服器(ACS Server),其包含網頁伺服器(Web Server)、檔案伺服器(File Server)與資料庫。其目的為透過TR-069協定與家用連網設備溝通。
![]() |
| 圖1 ACS系統架構 |
管理介面提供多元管理
管理介面主要目的是提供一個功能強大的網站,使用者不必安裝任何用戶端軟體,只要簡單地使用瀏覽器,就能進行ACS的日常維運與管理家用連網設備。就目前業界的應用而言,管理介面應提供如下的基本功能:
| 使用者身分驗證與執行權限管理。 |
| 用戶資料來源為外部系統,具有唯讀性質,通常僅限資料查詢功能。 |
| 察看設備詳細相關資料、設備所在的家庭網路拓撲圖、設備貯存於系統資料庫的參數(Parameter)內容,以及察看設備首次出廠預設的供裝設定程序與參數內容,若是曾經執行過,也可察看執行結果。 |
| 為了管理便利,可依據需要將一群設備設為一個群組,作為後續管理的基本單位。在實務上,通常也支援動態群組。動態群組的概念類似使用SQL語法存取資料庫的作法,將符合某些特定條件的設備組成一個群組,群組的實際設備數目是隨著設備移出移入而動態變化。比方說,群組X的組成成員為符合「廠商名稱為A,機型型號為B,韌體號碼小於0.95」等條件設備的集合,群組成員數目會隨著資料庫的異動而動態變化。 |
| 符合TR-069協定的連網設備只能識別SOAP格式的命令,編寫這些命令是相當專業且繁瑣的事情,實務上無法要求管理人員都具有此水平,所以系統會提供另外一套容易閱讀的語法,讓管理人員透過管理介面所提供的命令編輯輔助工具,將所要進行的管理程序編寫成易讀易懂的腳本。另外,系統也提供大量批次匯入功能,可匯入使用外部其他編輯工具產生的腳本檔案。 |
| 任務是由設備群組與腳本組成。預設是及時交付執行。但也可以支援預約執行。 |
| 對於已經執行完成的任務,可察看結果內容;而尚在進行中的任務,可監看進度;至於預約中的任務,可進行刪除、暫停執行、恢復執行、立刻執行、變更預約時間等管理。 |
| 提供各種角度來察看系統運行記錄,並可針對特定條件,如某段時間、某設備進行記錄ACS系統詳細運行過程供除錯或分析使用。 |
| 在彈性擴充架構機制下,管理介面可管理多台ACS伺服器,且依據實際需要管理設備的數目,動態調整ACS伺服器的數目。 |
管理功能的應用流程
處理流程首先使用Device管理功能,了解目前家用網路上所有連網設備連結的拓撲圖,察看各個連網設備的概況,然後選定管理標的設備。第二步使用Device Group管理功能,將管理設備標的設成一個新的群組,或是加入已經存在的群組。第三步使用腳本管理功能,透過編輯輔助工具,編寫管理腳本。有了管理對象–設備群組,也知道要做什麼事–腳本,於是使用任務管理功能,將前述二者組成一個新任務,設定預定執行時間後,即可交付該任務給系統執行。接著透過排程管理功能,察看目前任務進行的狀態,並確認是否有任何不正常的情況發生。最後使用運轉日誌管理功能,察看前述任務整體運行紀錄,若有進一步除錯的必要,可察看整個過程中SOAP封包交換的細節,以找出具體錯誤所在。
各版本協定互通性低
雖然目前市面上家用連網設備支援TR-069相關協定已成為新趨勢,新型的設備大部分皆可納入ACS管理架構下。但TR-069相關協定已提出有段時間了,許多協定都有很多新舊版本,各家廠商機型支援協定程度又不同,共通性是很令人頭痛的問題,尤其市占率很高的產品,通常版本都不是很新,解決之道只有盡可能想辦法向下相容。
對於家用連網設備來說,TR-069協定並非代表全部,很多細節尚未規範清楚,所以設備廠商就會以獨特的方式實作沒有清楚定義的部分,基本上各家作法差異很大,對ACS管理來說,是一項很大的挑戰。
舉例來說,用戶將家用連網設備首次開機連結上ACS後,ACS會主動進行供裝設定的動作,市面上的機器設備大部分都支援該機制,但在TR-069中卻沒有描述該做什麼事情、該如何進行,在WT-131中也只是大略描述需求,在該情況下,廠商自然會以自己的方法實作此供裝設定的功能。在供裝設定這個功能裡,重點在於如何識別用戶的設備,並能容忍客戶舊換新或是故障替換等設備更換,有的廠商使用特殊帳號/密碼配對組成唯一的識別值,有的要求客戶輸入廠商提供的唯一序號當作識別值,有的以Gateway上的埠口(Port)為識別值等,作法都相當獨特。
管理介面除提供基本功能外,為能適應各家設備製造商的需求,對於TR-069協定沒有清楚規範的地方,架構設計上要盡可能的保持彈性與模組化,以適應各種難以預料的狀況,在實務上,通常會須要對所管理的連網設備進行某種程度的管理客製化,讓使用者能以更加直覺的方式來有效管理龐大數量的設備。
TR-069協定處理機制
TR-069協定處理機制包含排程管控與簡易物件通訊協定(Simple Object Access Protocol, SOAP)處理兩大部分。排程管控主要目的在於將使用者所交付的任務依照所設定的執行時間,平均地交給ACS伺服器,然後依序通知家用連網設備連線到ACS伺服器。至於SOAP處理的主要為維持與家用連網設備一收一發形式的HTTP會談(Session),分析從設備傳來的訊息,然後準備回應給設備的訊息,週而復始,一直到交談結束。
| 排程管控基本上分成兩個部分(圖2),分別位於管理伺服器與ACS伺服器上。在彈性擴充架構機制下,兩者是一對多的關係。 管理伺服器端上的功能為分配使用者所交付的任務,其主要處理程序首先要依照使用者所設定的任務執行時間,開始進行此程序。再來將目前複數的任務盡可能平均分給彈性擴充架構下的ACS伺服器群組,最後再呼叫遠端ACS伺服器上的排程管控功能。 ACS伺服器端上的功能為執行使用者所交付的任務,主要處理程序第一步從管理伺服器端的資料庫下載所指定執行的所有任務;第二步當任務數量龐大時,調整執行時間間距,使其不超過伺服器系統本身最大處理量;接著依序向家用連網設備發出連結需求(Connection Request),使其主動連結ACS伺服器,執行指定的任務;最後將執行結果上傳回管理伺服器端的資料庫。
|
| SOAP處理功能很單純(圖3),就是接收一個SOAP訊息後,緊接著發出一個回應的SOAP訊息,週而復始,直到整個HTTP會談結束。 接收SOAP訊息的功能為識別解讀所接收的SOAP訊息,主要處理程序首先接收一個HTTP需求(Request)。 從HTTP Request取出SOAP訊息,識別SOAP的類型後,再從資料庫找出相對應的任務資料,接著分析SOAP訊息的內容,最後進行相關處理後,將所有資訊存回資料庫中。 回應SOAP訊息的功能為編組將要回應的SOAP訊息,處理第一步是依據資料庫的任務資料,找出目前所要回應的訊息,將回應訊息編組成SOAP訊息,再將SOAP放入HTTP回應(Response),最後發出一個HTTP Response。
|
彈性擴充架構提高效能
在ACS管理過程中,有兩種特性值得注意,其一是為符合經濟效益,ACS通常管理數量龐大的家用連網設備,故即使是平常的營運維護作業,ACS伺服器的負擔也相當沈重。其二由於商業活動需求,ACS使用者常會在短時間內,對大量的設備進行管理,這會對ACS伺服器造成短時間內的尖峰負載量。
為提供穩定平順的服務,ACS必須採用分散式架構(圖4),提高整體處理能量。為達成此目標,須將ACS伺服器擴充成複數,讓複數的ACS伺服器組成叢集(Cluster)系統,使系統管理者能夠依據實際所遭遇的情況,彈性調整ACS伺服器的數目。工作負荷重時,可增加運行的ACS伺服器數目,提升尖峰處理能力;工作負荷輕時,可減少運行的ACS伺服器,節省資源。
![]() |
| 圖4 ACS彈性擴充架構 |
簡單分散式架構運作流程
假設在分散式架構下,共有三台ACS伺服器主機。ACS使用者透過管理介面交付一個任務,內容為對一個內含三千台設備的設備群組執行某個腳本。ACS管理伺服器的排程處理模組,會將前述的任務轉成三千個子任務。子任務與任務類似,不同處在於作用對象是單一設備而非設備群組。然後,排程處理模組會依照內定的分配公式將這三千台設備分成三堆,而原來的三千個子任務也會依照對應關係分成三個部分,準備待會兒交給三台ACS伺服器執行。此處假設分配公式發展的很完美,乃是根據設備某個獨特關鍵值進行雜湊(Hash)運算,能夠將大量的設備平均分成N等分。
有了上述的資訊,管理伺服器開始進行遠端呼叫執行三台ACS伺服器的「子任務排程處理模組」,並將子任務清單分別傳送給子任務排程處理模組。此時,管理伺服器的工作就告一段落。ACS伺服器的子任務排程處理模組啟動後,開始依據所接收的子任務清單,主動連接管理伺服器的資料庫,下載自己所屬的子任務資料。資料下載完成後,子任務排程處理模組會依據子任務的數目,自動適當分配調整執行間隔,務求在不超過系統最大執行能力下,盡速將所有的子任務執行完畢。
子任務排程處理模組每隔一段時間,會將目前已經執行完畢的子任務上傳給管理伺服器的資料庫,確認上傳完成後,再將本身的子任務資料刪除,保持本身資料庫小型化。由於前述的機制,管理伺服器每隔一段時間就會收到各個ACS伺服器所回傳的子任務資料,使用者透過管理介面的排程管理功能,就可得知目前此任務進行的狀態。當家用連網設備連結ACS端時,會先連結上負載平衡伺服器,此時負載平衡伺服器會進行前述的分配公式進行運算,將該設備重新導向所分配的ACS伺服器,達成分散式處理的目的。由於使用相同的關鍵值與相同的公式,這樣就可以確保排程處理模組所分配指定執行任務的ACS伺服器與設備被重新導向後所連結的ACS伺服器是同一台。
依照前述的架構。如果ACS系統所管理的家用連網設備繼續增加,到了某種程度,無論再怎麼樣地增加ACS伺服器的數目,大量的連線請求與資料庫存取還是會成為效能瓶頸,讓系統無法繼續再提供穩定迅速的服務。對此,現行可能的解決方案為將家用連網設備依照地區或是廠商分類,每個地區設置一套ACS系統來負責管理,降低單一ACS系統的工作負荷量。
(本文作者任職於資策會網路多媒體研究所)



