基于移動定位服務的考勤管理系統
定位執行子模塊,系統接收用戶的定位請求,調用定位SP 提供的定位接口進行定位,然后將定位結果存入數據庫的定位結果表中。如果定位成功,則定位執行子模塊將定位成功的移動終端的經度和緯度寫入定位成功表;如果定位失敗,系統給出提示信息,并將定位失敗的信息寫入定位失敗表中,以備查詢。此外,定位結束后,定位執行子模塊給出提示信息,如:定位結束、定位成功、定位失敗等信息。在定位執行期間,定位執行子模塊不能再接受新的定位請求。
范圍搜索子模塊,接受用戶范圍搜索請求,從數據庫中取出定位成功的移動終端所在位置信息,查找該移動終端是否在設定的工作區域內。對于定位成功的移動終端,用戶可以隨時啟動、或者設定時間來啟動范圍搜索程序,查看某定位成功的移動終端是否在工作區域內,以獲得員工的考勤情況。
其中范圍搜索算法采用經典的點與多邊形關系判定方法,根據本系統的實現,具體分為(1)判斷一點是否在一個圓內,只需判斷該點與圓心的距離是否小于或等于半徑即可。(2)判斷點是否在多邊形內,過該點向x 軸正方向做一條射線,如果該射線與多邊形有奇數個交點,則該點在多邊形內,有偶數個交點則在多邊形外[13].對于移動終端定位失敗的情況,需要對該移動終端進行自動周期定位搜索,即,根據設定的定位周期和定位次數,在工作區域內對該移動終端定位并進行范圍搜索的過程。圖3 給出了自動周期定位搜索流程。

圖3 自動周期定位搜索流程圖
GIS 地圖子模塊用于在定位成功后將被定位移動終端的位置顯示在數字地圖上。根據此功能,考勤管理系統能夠根據該位置信息為用戶服務,比如在數字地圖上進行指定條件的搜索,獲取搜索結果的信息等。
該子模塊還具有定位歷史記錄回放功能。
根據定位和范圍搜索結果,系統生成移動終端對應的員工考勤信息,存儲在數據庫中,從而完成考勤工作。
2.2 員工軌跡回放
本系統還具有根據查詢條件顯示所存儲的移動終端定位歷史記錄的回放功能,回放方式分為兩種:
(1)按照真實的定位時間間隔回放。根據之前對用戶的每次定位操作成功后,定位記錄中包含的移動終端號碼、經緯度和定位時間信息,按照定位記錄的原始時間間隔在地圖上依次顯示移動終端的位置。
(2)按照系統設定的時間快速回放。用戶可以快速地瀏覽該時間段內的定位記錄,而不考慮真實的時間間隔,按照系統配置時設定的時間快速對某個移動終端在某個時間段內的定位歷史記錄在數字地圖上回放。
移動終端定位的歷史記錄就是存放在數據庫中的搜索結果表,在使用定位歷史記錄回放功能時,首先需要根據用戶指定的回放時間段和移動終端號碼從數據庫中得到所有的定位記錄,選擇定位回放方式,在數字地圖上回放被定位設備的歷史軌跡。
按照真實定位時間間隔回放的實現方式并不能保證時間間隔完全準確,由于接口調用時間等原因只能保證大致準確。如果要求快速回放,只需在取得所有符合條件的定位記錄后,按照系統設定的固定時間間隔休眠所述線程即可,而不需要做相鄰兩條記錄之間的時間差運算。在兩種回放過程中,用戶均可以隨時中止回放。
圖4 給出了按照真實定位時間間隔回放定位歷史記錄的工作流程。

圖4 回放定位歷史記錄工作流程
用戶輸入查詢條件后,系統調用定位歷史記錄接口,并判斷如果存在符合條件的定位歷史記錄,則啟動一個定位回放線程,將查詢到的所有定位歷史記錄傳入該線程(該線程中定義了一個循環來顯示定位記錄)。在定位回放線程中判斷記錄的總數是否大于1,如果總數大于1,則取出相鄰兩條定位記錄,然后將前一條定位記錄的經度和緯度信息傳入GIS 地圖模塊顯示移動終端位置的接口,在數字地圖上顯示被定位移動終端的位置,將該線程休眠,休眠的時間為前面取出來的相鄰兩條定位記錄的時間差,這樣做是為了保證回放的時間間隔與先前定位時的時間間隔一致,然后結束線程休眠,將定位記錄的總數減1,再次啟動一個定位回放線程,重復上述操作直至最后一條定位歷史記錄顯示完畢。
3 系統仿真
3.1 仿真環境
服務器端軟硬件環境包括:SUN Fire V440 服務器,配置2 個UltraSPAR C IIIi CPU,時鐘速度為1593MHz,物理內存4096MB,操作系統采用SUNSolaris 5.9;應用服務器為WebLogic 8.1 SP5;數據庫采用MySQL 5.0;GIS 服務器軟件采用MapInfoMapXtreme(R) Java Edition(TM) 4.5.0.采用短信和定位模擬網關。
客戶端軟硬件環境包括:PC 機聯想啟天M2400;操作系統為Microsoft Windows XP Professional SP2;JDK 1.5.0(Update6)。
3.2 仿真方法
使用CDMA 手機模擬移動終端,每個模擬終端具備唯一的號碼。用1 個模擬用戶并使用模擬程序創建1 至299 個虛擬用戶,以3 次/分鐘的速率執行短信定位業務。搜索范圍設置為多邊形。定位方式采用自動定位,自動周期定位的時間間隔為1 分鐘,自動周期定位次數為4 次。在短信和定位模擬網關的配置中,設置不同的循環次數和間隔時間,根據返回的定位信息次數、總時間和平均一次定位時間對性能進行測試。
3.3 仿真結果
將模擬移動終端隨機放置于多邊形區域附近進行測試,定位結果如表1 所示,在模擬終端數量相對較少和相對較多的兩種情況下,系統均能對終端進行有效定位,其中模擬終端個數較多時,定位平均時間會下降,而成功率基本保持穩定。
表1 移動終端定位成功數量表

評論