樊新華,鄭 紅
(1東北大學(xué)計算機科學(xué)與工程學(xué)院,沈陽110169;2東北大學(xué) 工商管理學(xué)院,沈陽110169)
根據(jù)國際公認的老齡化社會標準,1999年中國就已經(jīng)邁入了老齡化社會;截至2008年末,國內(nèi)老齡人口已經(jīng)達到1.69億,現(xiàn)在仍以年均近1 000萬的增幅在不斷變換著這一數(shù)字[1]。伴隨著中國老齡化問題的備受關(guān)注,老年群體中的高齡化、空巢化等問題正日趨嚴重。而且,高齡空巢老人無人照料也隱藏著不容忽視的社會風(fēng)險。
中國步入老齡化社會后,國家和個人層面都面臨著種種養(yǎng)老問題。但是,現(xiàn)階段在養(yǎng)老方面,仍然處于諸多問題未臻妥善處置的階段。當今,除了機構(gòu)養(yǎng)老、居家養(yǎng)老和社區(qū)養(yǎng)老三種比較成熟的養(yǎng)老方式在普及推行外,還有借鑒國外發(fā)達國家的“時間銀行”新型居家養(yǎng)老方式。
時間銀行概念是在20世紀80年代初由美國人埃德加·卡恩提出。所謂時間銀行,是指志愿者將參與公益服務(wù)的時間存進時間銀行,當自己遭遇困難時就可以從中支取“被服務(wù)時間”[2-3]。孟艷等人[4]對國內(nèi)的“時間銀行”與社區(qū)養(yǎng)老結(jié)合的可行性進行研究,并提出了社區(qū)“時間銀行”互助養(yǎng)老體系的思路。鄭紅等人[5]以貨幣經(jīng)濟學(xué)角度,對時間銀行的可持續(xù)發(fā)展進行研究,并提出了在社區(qū)發(fā)行時間貨幣的想法。魯偉等人[6]論證了時間貨幣所具有貨幣的所有職能,并說明以時間貨幣為媒介的老人照護支持系統(tǒng)的可行性。文獻[7]和文獻[8]應(yīng)用現(xiàn)有的理論知識,成功建立了時間銀行信息系統(tǒng)平臺,并在數(shù)據(jù)管理方面也有相應(yīng)斬獲。現(xiàn)在,在國內(nèi)的上海、廣州、南京、重慶、武漢、鄭州等眾多城市已經(jīng)出現(xiàn)了時間銀行的試點工作范圍[9],并嘗試構(gòu)建“年輕人照顧老人”,“老人幫助老人”的互助互惠型養(yǎng)老新形式。
為滿足高齡、病殘等弱勢群體老人日常生活照顧需求,引入了時間銀行和時間幣的概念,并將社區(qū)居民、志愿者或身體狀況良好的低齡老人的日常生活照護弱勢群體老人的能力以時間幣的形式儲存起來,待志愿者或低齡老人到年老需要幫助時,直接從時間銀行兌付其他人的服務(wù),以緩解人到老年身邊無人照料的社會風(fēng)險,促進志愿者或低齡老人社會閑暇時間的有效利用和合理配置,從而真正實現(xiàn)了高齡老人在日常生活中亟待專人貼近照護的這一主旨設(shè)定目標[5-6]。時間幣是交換幫助的媒介,儲戶通過幫助別人獲取時間幣,也通過支付時間幣獲取他人的幫助。在實際服務(wù)工作中,本著勞動不分貴賤,每個人的工作時間都是平等的思想,按照1:1的比例折算成時間幣。
具體設(shè)計方案:首先,每位志愿者或社區(qū)居民都要憑借身份證到社區(qū)服務(wù)中心進行登記、審核工作;其次,通過審核后,為其設(shè)立相應(yīng)賬戶。對于社區(qū)的高齡、孤寡、空巢及失能老人等弱勢群體提供一定的救助,每月發(fā)放一定量的時間幣;志愿者通過參與志愿活動及活動時長得相應(yīng)的時間幣,整個過程類似銀行“存取轉(zhuǎn)”的業(yè)務(wù)。在社區(qū)內(nèi),通過發(fā)行時間幣的紙幣,社區(qū)居民可以相互自愿結(jié)對,進行服務(wù)和交易,使操作過程更加靈活和便利。
為了更為便捷、準確地實時記錄和處理時間幣的存取轉(zhuǎn)發(fā)等業(yè)務(wù),同時進行業(yè)務(wù)核算和數(shù)據(jù)分析,實時掌控社區(qū)時間貨幣的發(fā)行、流通和回籠情況,開發(fā)了社區(qū)時間貨幣管理系統(tǒng)軟件。該系統(tǒng)是將銀行業(yè)務(wù)進行簡化,運用計算機技術(shù)的有機融合,有效克服手工記賬的局限性,可以節(jié)約大量人力財力,提高工作效率,還可對敏感數(shù)據(jù)進行加密,確保系統(tǒng)安全可靠。
依據(jù)社區(qū)貨幣理論和社區(qū)實際管理需求,參照商業(yè)銀行系統(tǒng)的管理模式[10],在試點社區(qū)手工運營的基礎(chǔ)上,對社區(qū)時間貨幣運營管理過程進行優(yōu)化整合,并結(jié)合商業(yè)銀行業(yè)務(wù)流程和軟件工程的相關(guān)理論,將該系統(tǒng)分為系統(tǒng)業(yè)務(wù)處理、系統(tǒng)數(shù)據(jù)分析和系統(tǒng)輔助功能三部分。其中,賬戶管理、存取轉(zhuǎn)發(fā)、結(jié)算管理為系統(tǒng)數(shù)據(jù)核算部分;查詢輸出和數(shù)據(jù)分析為系統(tǒng)數(shù)據(jù)分析部分;數(shù)據(jù)管理、輔助工具和系統(tǒng)幫助為系統(tǒng)輔助功能[7-8,11]。系統(tǒng)功能模塊設(shè)計如圖1所示。
圖1 系統(tǒng)模塊圖Fig.1 The system module chart
由圖1可見,系統(tǒng)中各主題模塊的綜合設(shè)計功能可闡釋如下:
(1)賬戶管理模塊:主要包括社區(qū)居民的賬戶開戶、賬戶信息修改和賬戶掛失與銷戶功能。
(2)存取轉(zhuǎn)發(fā)模塊:主要包括賬戶中的時間幣存與取,以及賬戶之間的轉(zhuǎn)賬,高殘病特殊人群的發(fā)放時間幣的功能。
(3)結(jié)算管理模塊:主要包括按日、月、年進行業(yè)務(wù)數(shù)據(jù)的統(tǒng)計功能。
(4)查詢輸出模塊:主要包括社區(qū)居民的賬戶信息、交易信息、結(jié)算信息和盤點信息的查詢、導(dǎo)出、打印功能。
(5)數(shù)據(jù)分析模塊:主要包括社區(qū)居民的赤字賬戶、活躍賬戶、休眠賬戶的查詢、導(dǎo)出、打印功能。
(6)數(shù)據(jù)管理模塊:主要包括社區(qū)信息、用戶管理、設(shè)置額度、現(xiàn)幣投入、用戶日志和數(shù)據(jù)備份功能。
(7)輔助管理功能:主要包括在本系統(tǒng)中就可以使用上網(wǎng)、Word、Excel和計算器功能。
(8)系統(tǒng)幫助模塊:主要包括密碼修改、屏幕鎖定、幫助手冊和版權(quán)信息功能。
C#是MicroSoft由C和C++派生來的一種簡單、現(xiàn)代、安全的面向?qū)ο箢愋偷木幊陶Z言。C#簡化了C++語言在類、命名空間、方法重載和異常處理等方面的操作,程序易于編寫,容錯率高。同時,C#還提供了可視化的應(yīng)用程序開發(fā)工具和快速開發(fā)程序向?qū)У男鹿δ?,大大地提高了編程效率和易用性?/p>
Access數(shù)據(jù)庫是MS Office中的一個數(shù)據(jù)庫組件,存儲方式簡單,易于維護管理。其中,采用了圖形用戶界面、操作靈活,廣泛地應(yīng)用于開發(fā)應(yīng)用系統(tǒng)。在編寫程序時通過調(diào)用數(shù)據(jù)庫引擎對數(shù)據(jù)庫里的大量記錄進行更新、檢索、管理等操作。
本軟件系統(tǒng)使用C#.NET和Access軟件結(jié)合進行應(yīng)用開發(fā)。其中,C#.NET軟件主要開發(fā)應(yīng)用系統(tǒng)用戶界面和數(shù)據(jù)處理功能;Access數(shù)據(jù)庫軟件主要用于應(yīng)用系統(tǒng)的數(shù)據(jù)保存功能;C#.NET通過ADO.NET組件來操作Access數(shù)據(jù)庫的數(shù)據(jù)。
對于初次使用本系統(tǒng)的用戶,必須通過默認的系統(tǒng)管理員對系統(tǒng)啟用初始化處理,即在數(shù)據(jù)管理模塊中,進行初始數(shù)據(jù)設(shè)置,主要包括社區(qū)信息、用戶管理、設(shè)置額度等信息設(shè)置。其中,社區(qū)信息是用戶管理、設(shè)置額度的操作基礎(chǔ),必須先審查通過社區(qū)信息的設(shè)置,此后才可執(zhí)行用戶管理、設(shè)置額度的操作。在初始數(shù)據(jù)設(shè)置后,用戶就可以運行本系統(tǒng),對指定的社區(qū)居民進行開設(shè)賬戶、存取轉(zhuǎn)發(fā)、數(shù)據(jù)分析等操作。系統(tǒng)設(shè)計流程如圖2所示。
圖2 系統(tǒng)操作流程Fig.2 The system operation flow
在設(shè)計系統(tǒng)界面時,采用下拉式菜單的對話界面方式進行基本操作,當出現(xiàn)操作完成或發(fā)生錯誤時,會彈出提示信息,以減少用戶的困惑和焦慮。整個系統(tǒng)的界面美觀、操作友好,有利于無基礎(chǔ)的用戶操作。具體操作過程如下:
從開始或屏幕上啟動應(yīng)用軟件系統(tǒng),首先會出現(xiàn)用戶登錄界面,如圖3所示。接下來,用戶按照提示內(nèi)容輸入用戶名、密碼數(shù)據(jù),選擇用戶權(quán)限等信息,其中用戶權(quán)限分為系統(tǒng)管理員和操作員兩類。此后,根據(jù)不同的用戶權(quán)限,將進入相應(yīng)操作的主界面,可以進行相應(yīng)的操作。
圖3 用戶登錄界面Fig.3 User login interface
以系統(tǒng)管理員的用戶權(quán)限所涉及的系統(tǒng)主界面,如圖4所示。在系統(tǒng)主界面中,可以根據(jù)不同的指令要求,在主菜單欄中選擇相應(yīng)子菜單來執(zhí)行操作。
圖4 主界面Fig.4 The main interface of the system
本系統(tǒng)使用C#.NET調(diào)用 ADO.NET組件來操作Access數(shù)據(jù)庫中的數(shù)據(jù)編程技術(shù),對此調(diào)用方法可做探討詳述如下。
ADO.NET是一組用于和數(shù)據(jù)源進行交互的面向?qū)ο箢悗?。而且,這也是.NET平臺的數(shù)據(jù)訪問標準,由一組相關(guān)類和接口組成,主要包括2個核心組件:DataSet和數(shù)據(jù)提供程序。在ADO.NET對象模型中還可見到5個數(shù)據(jù)庫訪問和操作對象:Connection、 Command、 DataAdapter、 DataSet 和DataReader等對象[11-12]。其中,各對象的功能推介見表1。
表1 ADO.NET的對象功能Tab.1 The ADO.NET object function
對于Access數(shù)據(jù)庫的訪問,通常需引入命名空間,設(shè)計代碼如下:
using System.Data;
using System.Data.OleDb;
對于信息系統(tǒng)來說,輸入數(shù)據(jù)完整和正確是系統(tǒng)的基礎(chǔ),所以此系統(tǒng)對身份證、郵箱、電話等基本信息提供了數(shù)據(jù)校驗功能。C#的WinForm中,信息驗證可分為按鍵級、控件級和窗口級。一般情況下,使用文本框控件輸入信息,在輸入數(shù)據(jù)或輸入結(jié)束時,通過激發(fā)相應(yīng)事件對數(shù)據(jù)進行驗證;或者在數(shù)據(jù)處理或數(shù)據(jù)保存時,對所有數(shù)據(jù)進行驗證[13-14]。數(shù)據(jù)驗證過程所用到的控件和事件,見表2。
表2 數(shù)據(jù)驗證的控件和事件Tab.2 Data validation controls and events
另外,C#也提供了 ErrorProvider控件用于WinForm的數(shù)據(jù)驗證。出現(xiàn)錯誤時,會在文本框控件旁邊顯示錯誤圖標和提示信息。對于各種字符串的驗證,使用正則表達式驗證是最方便、最簡單的方法。使用正則表達式驗證,通常需引入命名空間,對應(yīng)代碼如下:
using System.Text.RegularExpressions;
在此,使用ErrorProvider控件對TextBox控件的輸入數(shù)據(jù)的通用驗證方法。通用函數(shù)如下:
private boolvalidaing(TextBoxtextbox, intlength, stringcontrolName)
{
boolresult=false;
if(textbox.TextLength= = 0) //顯示錯誤圖標
{
errorProvider1.SetError(textbox,"請輸入"+controlName+"內(nèi)容?。ⅲ?/p>
textbox.SelectAll();
textbox.Focus();
}
else if(…)
{
……
}
else{ //取消錯誤圖標
errorProvider1.SetError(textbox,"");
result=true;
}
returnresult;
}
在驗證時,可以調(diào)用通用函數(shù),如姓名的txtName控件,代碼如下:
if(validaing(txtName, 8, "姓名") = = false)
return;
在系統(tǒng)開發(fā)中,為了保證一些關(guān)鍵信息的安全性(如用戶名、密碼等),經(jīng)常會用到一些簡單的加密、解密算法對其進行處理。具體操作:對于用戶名和密碼信息,在輸入或修改時,先將輸入數(shù)據(jù)加密后,再保存至數(shù)據(jù)庫中;在登錄時,可采用對輸入數(shù)據(jù)加密后,在數(shù)據(jù)庫中進行查詢,或者將數(shù)據(jù)庫中的數(shù)據(jù)解密,再與輸入的數(shù)據(jù)進行比較的方式。
常用的加密算法分為對稱加密和非對稱加密,其中DES加密是一種對稱加密體制,也是迄今為止最常用的、使用最廣泛的加密算法[15-16]。將DES加密、解密算法封裝在通用類中,便于管理和調(diào)用。在編寫DES加密解密程序時,通常要引入命名空間:
using System.Text;
using System.Security.Cryptography;
using System.IO;
DES加密、解密算法類,可參考代碼如下:
using System.Text;
using System.Security.Cryptography;
using System.IO;
classEntryptUtils
{
private staticbyte[]Keys={ …… };
//DES加密字符串
public static stringEncryptDES(stringencryptString)
{
stringencryptKey=…;
try
{
……
returnConvert.ToBase64String(mStream.ToArray());
}
catch
{
returnencryptString;
}
}
//DES解密字符串
public static stringDecryptDES(stringdecryptString)
{
stringdecryptKey=…;
try
{
……
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
returndecryptString;
}
}
}
在加密時,可以調(diào)用類中的方法,如密碼的txtPassword控件,代碼如下:
EntryptUtils.EncryptDES(txt_Password.Text.Trim())
總之,在系統(tǒng)開發(fā)過程中,為了簡化數(shù)據(jù)庫的訪問過程,將常用的數(shù)據(jù)訪問操作(如數(shù)據(jù)庫連接打開和關(guān)閉、增刪改查SQL語句執(zhí)行、數(shù)據(jù)庫事務(wù)等操作)封裝在通用數(shù)據(jù)庫訪問類中,通過使用類的方法就可以實現(xiàn)數(shù)據(jù)庫的訪問;對數(shù)據(jù)驗證方法,編寫成公共程序,在需要的地方調(diào)用;將DES加密、解密算法封裝在通用類中,在需要的地方進行調(diào)用。通過設(shè)計操作類文件,程序結(jié)構(gòu)清晰,減少了軟件的編碼量,大大地提高編程效率。
本軟件采用面向?qū)ο蟮木幊谭椒?,?jīng)過了試點社區(qū)的實際應(yīng)用,滿足了不熟悉編程的人員方便使用,為社區(qū)管理工作提供強大的輔助工具;同時節(jié)約社區(qū)管理的人力和財力成本,有助于社區(qū)管理工作的信息化。經(jīng)過歸納梳理后,系統(tǒng)特點可概論如下。
(1)在輸入數(shù)據(jù)過程中,有些輸入數(shù)據(jù)進行了綜合性校驗,沒有通過校驗的數(shù)據(jù)會顯示提示信息,提示用戶應(yīng)檢查輸入數(shù)據(jù)是否符合要求。
(2)對于使用本系統(tǒng)人員分別設(shè)置用戶名、密碼、權(quán)限的功能,并且不同的權(quán)限進行不同的操作,對使用人的操作時間進行記錄。
(3)防止系統(tǒng)數(shù)據(jù)的意外丟失或損毀,可以對數(shù)據(jù)庫數(shù)據(jù)進行備份恢復(fù)操作;同時,防止別人查看數(shù)據(jù)庫,對數(shù)據(jù)庫設(shè)置密碼、關(guān)鍵字段進行加密處理等,保證數(shù)據(jù)庫中的數(shù)據(jù)不會對外泄露。
在本系統(tǒng)的基礎(chǔ)上,為了方便社區(qū)居民使用,今后擬將展開的工作如下:
(1)建立網(wǎng)站。讓社區(qū)居民了解社區(qū)相關(guān)的動態(tài)信息。
(2)發(fā)布需求。社區(qū)居民可以發(fā)布需求幫助信息或提供幫助信息,并可提供幫助相似匹配推薦工作。
(3)網(wǎng)上操作。社區(qū)居民通過上網(wǎng),可以進行時間幣的查詢、轉(zhuǎn)賬和修改相關(guān)信息。
通過以上網(wǎng)上功能的擴展,會大大提高了管理水平和效率,更利于便民服務(wù),為社區(qū)居民和社會職能部門起到橋梁和紐帶作用。另外,通過在試點社區(qū)引入時間幣養(yǎng)老模式探索,積累經(jīng)驗,為社會職能部門設(shè)計引入社區(qū)時間幣提供理論和實踐參考。