摘要:隨著社會的發(fā)展,二維碼技術(shù)作為一種全新的自動實別技術(shù),被應(yīng)用于生活的各個方面。本文主要討論二維碼技術(shù)在物理隔絕的內(nèi)網(wǎng)和外網(wǎng)之間如何進(jìn)行數(shù)據(jù)傳輸。對于物理隔離的內(nèi)網(wǎng)和互聯(lián)網(wǎng),對內(nèi)網(wǎng)中的信息通過二維碼技術(shù)和短信網(wǎng)關(guān)發(fā)送到指定移動終端上的過程進(jìn)行了闡述,對系統(tǒng)的使用場景、設(shè)計和實現(xiàn)方法進(jìn)行了說明。
關(guān)鍵詞:二維碼技術(shù);數(shù)據(jù)傳輸;短信網(wǎng)關(guān);即時提醒
中圖分類號:TP322+.3 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 20-0000-02
1 引言
隨著社會的發(fā)展,二維碼技術(shù)作為一種全新的自動實別技術(shù),被應(yīng)用于生活的各個方面。目前,二維碼技術(shù)在表單、安全保密、追蹤、證照、存貨盤點、資料備援等方面得到廣泛的應(yīng)用。針對二維碼的特點,本文主要描述了如何將二維碼掃描技術(shù)應(yīng)用于物理隔絕的內(nèi)網(wǎng)和外網(wǎng)系統(tǒng)中,將內(nèi)網(wǎng)中的辦公提示信息通過二維碼技術(shù)和短信網(wǎng)關(guān)將指定的信息發(fā)送到用戶的移動終端上。
2 二維碼技術(shù)簡介
二維碼作為一種新的信息存儲和傳遞技術(shù),經(jīng)過多年的努力,在各個領(lǐng)域得到了廣泛的使用,它能夠在橫向和縱向兩個方位同時表達(dá)信息。一維條碼相比,它具有面積小、存儲信息量大、編碼范圍廣、容錯能力強、譯碼可靠性高、成本低等優(yōu)點。
3 應(yīng)用背景
本應(yīng)用為某事業(yè)單位辦公系統(tǒng)的一部分,該應(yīng)用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示:
從在圖1中可以看出,該單位的辦公內(nèi)網(wǎng)和互聯(lián)網(wǎng)是物理隔離的,辦公內(nèi)網(wǎng)和互聯(lián)網(wǎng)的數(shù)據(jù)推送是通過網(wǎng)閘來進(jìn)行控制的,在實際的應(yīng)用上,數(shù)據(jù)推送并非實時開啟。在內(nèi)網(wǎng)的辦公系統(tǒng)中,項目執(zhí)行過程中需要提示項目的負(fù)責(zé)人項目進(jìn)展情況,如:待辦事宜提醒、項目即將超限的黃牌提醒、項目已經(jīng)超限的紅牌提醒等。由于內(nèi)網(wǎng)中的業(yè)務(wù)系統(tǒng)不能夠連接互聯(lián)網(wǎng),這使得用短信進(jìn)行提示實現(xiàn)有一定的困難。
為了保證項目負(fù)責(zé)人能實時準(zhǔn)確的獲得提示信息,通過二維碼技術(shù),在內(nèi)容平臺上生成二維碼圖片,將需要發(fā)送的信息保存到二維碼中,通過二維碼掃描設(shè)備,使用計算機屏幕將信息讀取并保存到互聯(lián)網(wǎng)部署的系統(tǒng)中,通過SP提供的短信網(wǎng)關(guān),向項目負(fù)責(zé)人的移動終端上發(fā)送短信息,起到提示的作用。
4 設(shè)計與實現(xiàn)
4.1 二維碼生成
在內(nèi)網(wǎng)辦公系統(tǒng)中生成二維碼的流程如圖2所示:
用戶登錄到內(nèi)網(wǎng)系統(tǒng),根據(jù)業(yè)務(wù)規(guī)則,獲取所需要的數(shù)據(jù),組合成字符串。將組合的字符串轉(zhuǎn)換為Unicode字符并生成二維碼圖片。在界面上,以列表的形式展示。
二維碼生成代碼如下所示:
1.轉(zhuǎn)化為Unicode字符
public static String toUnicode(String str) {
char[] arChar = str.toCharArray();
int iValue = 0;
String uStr = \"\";
for (int i = 0; i < arChar.length; i++) {
iValue = str.charAt(i);
if (iValue <= 256) {
uStr+=\"\\u00\"+ Integer.toHexString(iValue);
} else {uStr += \"\\u\" + Integer.toHexString(iValue);}}
return uStr;}
2.生成二維碼圖片
public static void create_image(String sms_info,String name)throws Exception{
try{
Qrcode testQrcode =new Qrcode();
testQrcode.setQrcodeErrorCorrect('M');
testQrcode.setQrcodeEncodeMode('B');
testQrcode.setQrcodeVersion(20);//20-40
String testString = sms_info;
testString = Cn2Un.toUnicode(testString);
byte[] d = testString.getBytes();
BufferedImage bi = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g = bi.createGraphics();
g.setBackground(Color.WHITE);
g.clearRect(0, 0, 200, 200);//200-300
g.setColor(Color.BLACK);
// 限制最大字節(jié)數(shù)為120
if (d.length>0 d.length <10000){
boolean[][] s = testQrcode.calQrcode(d);
for (int i=0;i for (int j=0;j if (s[j][i]) {g.fillRect(j*2+3,i*2+3,2,2);}}}} g.dispose(); bi.flush(); File f = new File(\"D:\\QRCodeTest\\\"+name+\".jpg\"); if(!f.exists()){f.createNewFile();} //創(chuàng)建圖片 ImageIO.write(bi, \"jpg\", f); } catch (Exception e) {e.printStackTrace();}} 4.2 二維碼信息提取 在互聯(lián)網(wǎng)系統(tǒng)中,讀取二維碼信息的流程如圖3所示,通過掃描槍通過顯示器屏幕掃描在內(nèi)網(wǎng)中生成的二維碼圖片,將讀取的二維碼信息由Unicode信息轉(zhuǎn)化為漢字,并進(jìn)行拆分,保存到數(shù)據(jù)庫中。 二維碼讀取的代碼如下所示 public void readCode(String scode) throws Exception { String message=Cn2Un.toChinese(scode); if(!message.contains(\";\")){ String [] arr=message.split(\",\"); Project pro=new Project(); if(!arr[0].equals(\"0\")){pro.setName(arr[0]);}if(!arr[1].equals(\"0\")){pro.setProjectName(arr[1]);} if(!arr[2].equals(\"0\")){…………} ………… if(!arr[8].equals(\"0\")){ pro.setStep(arr[8]);} pro.setIssend(\"2\"); pro.setSmtime(new Date()); pro.setDetails(\"\"); projectDao.saveObject(pro);}} 4.3 即時短信發(fā)送 即是短信發(fā)送流程如圖4所示 在項目列表中,可以對項目信息進(jìn)行單條或批量發(fā)送,根據(jù)即時短信提醒數(shù)據(jù)庫中人員信息進(jìn)行數(shù)據(jù)匹配。己發(fā)送信息不顯示在項目列表中,顯示在己發(fā)送短信列表中。顯示短信發(fā)送報告,即該短信負(fù)責(zé)人是否收到。 結(jié)束語 本文闡述了二維碼掃描技術(shù)的一種使用場景,即物理隔絕的內(nèi)網(wǎng)和互聯(lián)網(wǎng)之間的數(shù)據(jù)傳輸方式和方法。解決了通過短信網(wǎng)關(guān)進(jìn)行即時短信發(fā)送的問題,對數(shù)據(jù)量不大的數(shù)據(jù)傳輸方式,提供了一種解決方法。 參考文獻(xiàn): [1]阮李英.如何應(yīng)用二維碼[J].中國質(zhì)量技術(shù)監(jiān)督,2009(05). [2]蘇景玲.二維條碼國家標(biāo)準(zhǔn)《漢信碼》發(fā)布[J].中國品牌與防偽,2007(11). [作者簡介]張海建(1978-),男,北京市,講師,碩士,從事數(shù)據(jù)庫系統(tǒng)設(shè)計、應(yīng)用軟件開發(fā)的研究。孫丹(1978-),女,北京市,講師,碩士,從事web設(shè)計標(biāo)準(zhǔn)、應(yīng)用軟件開發(fā)的研究。