視圖庫過車數據模擬工具設計(上) 1. 需求 2. 設計思想 3 軟件架構

1. 需求

  在視圖庫產品測試中目前我們目前有專門的壓力測試工具。這些工具能夠模擬大量併發的過車數據,但由於這些數據是無規律模擬出來的隨機數據,與現實世界中的過車數據規律存在一定差異,不利於基於視圖庫的應用系統進行技戰法分析。
  模擬工具的主要需求有:
  1.能夠模擬生成設備,車卡,車牌信息。
  2.生成的車卡具有拓撲關係,所有的車卡投射到二維平面上都有自己的座標。
  3.對於每輛車,生成過車數據的軌跡應遵循2中車卡的拓撲關係,即行車軌跡覆蓋相鄰的車卡。
  4.爲提高併發量,可水平擴展。 多個模擬工具可併發生成過車數據。

2. 設計思想

2.1 空間分析

  在實際世界中,卡口之間都是有地理空間關係的。這些卡口之間的空間關係構成了一個圖,圖中的每個節點是一個卡口。圖中的多條邊構成了一輛車的行駛軌跡。
  在模擬工具中,我們將卡口定義一個網格中的每個點,每個卡口座標是這個網格座標系中的某個定點,如下圖所示:



  工具初始化時將配置的所有卡口定義爲一個M×N網格中的所有端點,併爲每個卡口分配一個座標。
  如圖1所示,某車的行駛軌跡爲座標爲(4,2),(5,2),(5,3),(5,4),(6,4)的卡口。其過車記錄爲5條,每一條過車對應其經過的某個卡口。

2.2 時間分析

  對於現實世界中的車輛,行駛速度有不同。因此對於同一條路徑,經過相鄰兩個端點間的時間也不一樣。因而,模擬過車工具需要模擬車輛行駛的速度,並根據模擬(隨機)生成的速度計算經過每個端點(卡口)的時間。
  仍以圖1爲例,假設每個卡口間距離是1公里,生成的隨機速度爲60公里/小時,則相鄰過車記錄之間時間間隔爲1分鐘(勻速行駛)。

2.3 資源池

  工具在啓動時需要根據工具的配置信息生成對應資源池,模擬過車agent取資源池中數據生成過車記錄。工具中使用的資源池有:
   車卡資源池:本實例中使用的所有車卡,每個車卡具有二維座標。
   車牌資源池:本實例中使用的所有車牌號。

2.4. 模擬過車agent

  過車記錄由模擬過車agent生成。模擬過車agent在系統中可設置多個,可並行工作。
  模擬過車agent的工作流程如下:
  1.在車卡資源池中獲取一個車卡作爲車輛軌跡起點。
  2.在車牌資源池中獲取一個車牌,並將該車牌號鎖定。
  3.隨機生成行駛路徑長度和隨機行駛速度。
  4.根據1中的起始車卡和3中的行駛路徑長度生成n條過車記錄,這n條過車記錄的過車時間根據2中取出車牌的最後出現時間、3中生成的隨機行駛速度算出(默認卡口間的距離一致,且勻速行駛),並記錄下該車牌最後出現時間留做下次使用。
  5.解鎖2中的車牌號,以便該車牌可被其它agent使用。
  6.將生成的過車記錄寫入數據庫中。

3 軟件架構

  過車數據模擬工具的軟件架構如下圖所示:



  系統啓動時:根據配置信息生成卡口ID資源池及各卡口的座標;根據配置信息生成車牌資源池;根據配置信息生成過車agent集合。
  對於每個過車agent,持續不斷地生成過車軌跡,其生成算法如之後的章節所示。
生成的過車軌跡是一個過車集合,被髮送過車數據流中,該數據流被寫入到數據庫中。
對於大數據量模擬環境,可部署多個過車模擬工具實例用於模擬大併發數據量。爲保證沒有衝突數據,每個實例配置的車牌資源和卡口資源請隔離開。
  如下圖中,多個實例運行配置的卡口座標範圍不一致但不衝突:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章