《基于二維碼的公安戶口遷移系統(tǒng)的設計系統(tǒng)的開發(fā)》由會員分享,可在線閱讀,更多相關《基于二維碼的公安戶口遷移系統(tǒng)的設計系統(tǒng)的開發(fā)(3頁珍藏版)》請在裝配圖網上搜索。
1、基于二維碼的公安戶口遷移系統(tǒng)的設計系統(tǒng)的開發(fā)
1 引言
二維碼相對于條形碼是一種新的編碼方式,具有信息容量大、編碼范圍廣、糾錯能力強、自動識別率高和制作成本低等特點,其可以被自動識別的特點特別適用于作為信息傳遞的載體。在公安戶口遷移業(yè)務中,需要將居民的戶口信息由A地遷往B地。傳統(tǒng)的戶口遷移業(yè)務需要手動將居民的戶口信息錄入信息系統(tǒng),不但工作量大而且容易出錯,本文結合二維碼適于作為信息傳遞載體的特點,設計并實現(xiàn)了一個基于二維碼的公安戶口遷移系統(tǒng),旨在提高公安工作的信息化水平。
2 二維碼戶口遷移系統(tǒng)概述
二維碼戶口遷移系統(tǒng)主要包括登錄模塊、用戶管理模塊和戶口遷移模塊。首先用戶
2、需要輸入正確的用戶名和密碼才可以登錄使用二維碼戶口遷移系統(tǒng);當用戶進入系統(tǒng)后系統(tǒng)會根據(jù)用戶名自動從數(shù)據(jù)庫中查詢用戶的權限,只有管理員用戶才可以使用用戶管理模塊,普通用戶只能使用戶口遷移模塊;戶口遷移模塊包括戶口遷入模塊和戶口遷出模塊。戶口遷出模塊可以將數(shù)據(jù)庫里戶口信息表中的記錄轉化成為二維碼,并通過打印機打印出帶二維碼的戶口遷移證,戶口遷入模塊可以將帶有二維碼的戶口遷移證上的戶口信息通過二維碼掃描器掃描到數(shù)據(jù)庫的戶口信息表中。其功能模塊如圖1所示。
3 系統(tǒng)開發(fā)技術方案
二維碼戶口遷移系統(tǒng)采用面向對象的軟件工程思想進行開發(fā),主要涉及到四個關鍵技術:(1)對象持久化,即實現(xiàn)應用程序中
3、的對象與數(shù)據(jù)庫中的記錄的相互轉化;(2)對象序列化和反序列化,即實現(xiàn)對象和數(shù)據(jù)流之間的相互轉化;(3)二維碼編碼和解碼,即實現(xiàn)數(shù)據(jù)流和二維碼之間的相互轉化;(4)二維碼打印和掃碼,即將實現(xiàn)現(xiàn)實世界中的二維碼圖片和計算機內存中的二維碼圖像相互轉化。
3.1 對象的持久化
對象持久化是指將內存中的對象保存到可以長久保存的存儲媒介中,存儲媒介一般是數(shù)據(jù)庫。居民的戶口信息在數(shù)據(jù)庫中以記錄的形式存在,在應用程序中以對象的形式存在,信息系統(tǒng)開發(fā)需要實現(xiàn)對象與記錄的相互轉化。.NET平臺下有多種技術可以實現(xiàn)對象和記錄的相互轉化,例如ADO.NET技術、Entity Framework技術、NHi
4、bernate技術等。其中NHibernate技術相對于其他技術擁有多種優(yōu)點:首先采用了面向對象思想為開發(fā)人員屏蔽了底層的數(shù)據(jù)庫;其次具有較好的移植性,當?shù)讓訑?shù)據(jù)庫需要遷移或升級時只需要修改一下配置文件;最后簡化了程序的開發(fā),縮短了開發(fā)周期,提高了開發(fā)效率。
3.2 對象的序列化和反序列化
對象序列化是指將內存中的對象轉化數(shù)據(jù)流的過程,對象反序列化是指將數(shù)據(jù)流化為內存中的對象的過程。對象序列化與反序列化的作用在于:(1)可以用最小的花銷來保存各種類型的數(shù)據(jù);(2)使內存中的對象可以跨平臺傳遞。對象可以采用多種序列化格式,例如可以將對象序列化為XML格式、SOAP簡單對象訪問協(xié)議格式
5、、JSON格式等。由于二維碼編碼是對字符串的編碼,所以需要先將對象序列化為內存流,然后再將內存流轉化為二維碼。在進行二維碼解碼時先將二維碼圖片解析為內存流,然后再將內存流反序列化為對象。
3.3 二維碼編碼和解碼
現(xiàn)存有多種類型的二維碼,本文采用了QR二維碼技術來開發(fā)系統(tǒng)。QR二維碼有四級容錯率,最高容錯率可達30%?,F(xiàn)行多種類庫可以用來對二維碼進行編碼和解碼,其中以Google的開源項目ZXing最為流行,不但包含的二維碼種類齊全,而且性能穩(wěn)定。其中的QR二維碼處理器主要包含讀和寫兩個功能,讀二維碼功能是指將二維碼圖像轉化成數(shù)據(jù)流,寫二維碼功能是指將數(shù)據(jù)流轉化為二維碼圖像。只需要
6、在應用程序中添加ZXing.dll動態(tài)鏈接庫,并聲明正確的命名空間,就可以生成QR二維碼處理器對象,實現(xiàn)數(shù)據(jù)流和二維碼圖像的相互轉化。
3.4 二維碼打印和掃碼
二維碼打印比較簡單,只要調用連接在計算機上的打印機就可以完成。對于二維碼掃碼,雖然有專業(yè)的二維碼掃碼器,但是一般市場價格比較昂貴?,F(xiàn)在的智能手機和平板電腦自帶的攝像頭都具有二維碼掃碼功能,但是將臺式機或筆記本電腦的攝像頭制作成二維碼掃碼器并不常見,本系統(tǒng)通過編程開發(fā)可以將普通的計算機攝像頭制作成為性能穩(wěn)定的二維碼掃碼器。原理如下:(1)定位計算機的攝像頭并打開它進行視頻采集;(2)每隔一段間隔捕獲一個幀生成圖像;(3)其次
7、對生成的幀圖像進行二值化處理生成二進制流;(4)根據(jù)生成的二進制流再次生成圖像;(5)對在此生成的圖像進行二維碼解析,如果解析成功則完成二維碼掃碼,如果解析失敗則返回步驟(2)。
4 系統(tǒng)功能實現(xiàn)
以上從背景、業(yè)務和技術三方面對系統(tǒng)進行了概述,現(xiàn)在從功能模塊的角度對系統(tǒng)進行深入分析。
4.1 用戶登錄模塊
用戶登錄模塊主要用于滿足系統(tǒng)的安全性需求,在此主要體現(xiàn)了訪問控制和分權制衡的原則。訪問控制通過用戶名和口令來實現(xiàn),只有輸入正確的用戶名和口令被授權的用戶才可以使用系統(tǒng)。除此之外用戶登錄模塊還負責界面重定向功能,因為設置了管理員用戶和普通用戶兩個權限,所以對于普通用戶戶
8、登錄模塊會將其重定向到戶口遷移模塊,對于管理員用戶會將其重定向到用戶管理模塊,如果管理員用戶也需要使用戶口遷移模塊可以為其再單獨添加一個用戶。
4.2 用戶管理模塊
管理員使用用戶管理模塊來維護數(shù)據(jù)庫中的用戶表,主要實現(xiàn)對用戶表的增刪改查。當需要添加用戶時,要根據(jù)用戶名查詢用戶表中是與否有與之同名的記錄,如果沒有才能增加新紀錄;當需要刪除用戶時,要查詢尋用戶表中是否有該記錄,如果有該記錄才能將其刪除;當修改用戶信息時,要先將記錄從用戶表中提取到內存的對象中,修改完畢后再將最終結果更新到數(shù)據(jù)庫中。
4.3 戶口遷移模塊
戶口遷出模塊會根據(jù)居民的身份證號碼在戶口信息表中查詢
9、,并將查詢的結果和同時將生成的二維碼展示在工作臺賬中,通過打印機將帶有二維碼的戶口遷移證打印出來。戶口遷入模塊不需要民警手動輸入任何信息,只需要通過計算機攝像頭掃描二維碼,便可以將居民的戶口信息掃描到計算機中并展示在臺賬上,經確認無誤后,通過單擊按鈕將臺賬上的信息保存到數(shù)據(jù)庫中。
5 結束語
通過對系統(tǒng)測試證明該系統(tǒng)可以完成公安戶口遷移業(yè)務中的基本需求。二維碼技術用途廣泛,隨著公安信息化建設的推進和發(fā)展,相信會有更多的公安業(yè)務領域引入二維碼技術。
參考文獻
【1】 ISO/IEC 18004:2000. Information technology - Automatic identification and data capture techniques - Bar code symbology - QR Code, 2000.
【2】 Soon T J. QR code. Synthesis Journal, 2008: 59-78.